🎮Unreal4/Blueprint

[UE4] 에임 오프셋 (1D/상하), 시야각 제한

공대 컴린이 2023. 2. 8. 18:41
728x90

🎯 에임 오프셋 (1D, 상하)

Aim Offset (1D)

에임 오프셋은 기준 애니메이션을 가지고, 기준 애니메이션을 가지고 위를 보는 동작, 밑을 보는 동작을 만든다.

에임 오프셋을 이용하면 캐릭터가 마우스 또는 컨트롤러 방향으로 무기를 조준할 수 있도록 포즈의 블렌딩 기능을 사용할 수 있다.

 

에임 오프셋은 블렌드 스페이스와 매우 유사하지만, 차이점은 분명 존재한다. 

블렌드 스페이스는 자기 자신이 시작하는 애니메이션의 값이 되는 반면, 에임 오프셋은 들어오는 애니메이션을 배치한 기준 애니메이션들과 섞어준다.

 

ABP_Charactre : Baw Layer

애니메이션 블루프린트에 에임 오프셋을 배치해보면 블렌드 스페이스와 다르게 입력 포즈가 있다.

베이스 포즈로 들어온 동작과 에임 오프셋에 설정된 동작이 섞이면서 최종적인 애니메이션을 출력하게 된다.

 

에임 오프셋의 Pitch 값은 이벤트 그래프에서 캐릭터의 Aim Rotation을 받아 초기화 해 주었다. Aim Rotation은 캐릭터가 조준하고 있는 회전값을 반환해주는 함수이다.

 

그러나 위와 같이 에임 오프셋을 배치했을 때, 기본 동작(걷기, 뛰기)에는 정상적으로 에임 오프셋이 적용되지만, 공격을 시작하면 몽타주가 실행되며 에임 오프셋 값이 적용되지 않고 갑자기 정면을 바라보며 애니메이션이 실행된다.

 

그 이유는 에임 오프셋이 포함된 Bow Layer에서 먼저 섞인 후 바디 포즈에 포함되고 나서야 몽타주가 블렌딩되기 때문에, 몽타주가 에임 오프셋에 안들어갔기 때문이다. 몽타주가 에임 오프셋에 섞여야 자연스럽게 몽타주와 조준 애니메이션이 실행 될 것이다.

 

따라서 위와 같이 Bow의 기본동작을 Bow Pose에 저장하고, Bow Pose와 몽타주를 본마다 레이어로 블렌딩한 결과에 에임 오프셋을 섞어주어 정상적인 애니메이션이 구현되었다.

 

최종적으로 활쏘기 공격이 완성되었다.

🕶️ 시야각 제한

마지막으로, 일반적인 FPS게임은 플레이어가 하늘이나 땅을 너무 직각으로 쳐다보지 않게 하기 위해 시야각을 제한한다. 

BP_Player BP (Begin Play)

Player Camera Manager를 통해 Set View Min/Max 함수를 호출하면 해당 방향으로의 시야를 제한할 수 있다.


참조

https://docs.unrealengine.com/4.27/ko/AnimatingObjects/SkeletalMeshAnimation/AnimHowTo/AimOffset/

 

에임 오프셋 만들기

에임 오프셋을 사용하여, 캐릭터가 마우스 또는 컨트롤러 방향으로 무기를 조준하도록 합니다.

docs.unrealengine.com

 

728x90