개요

캐릭터에 에임 오프셋을 적용하여 바라보는 방향을 조준하도록 설정한다.

에임 오프셋 적용 시 주의사항

Unreal Engine 에임 오프셋 페이지에 따르면 에임 오프셋 제작 시 좌우 모션 적용에 신경써야 한다. 캐릭터의 Yaw 회전을 어떻게 처리하냐에 따라서 에임 오프셋 구성이 달라지기 때문이다.

캐릭터가 회전하지 않고 고정되어있다면 상하좌우 어떠한 방향이든 에임 오프셋이 적용될 것이다. 하지만 플레이어가 바라보는 방향대로 캐릭터가 회전한다면, 좌우 에임 오프셋은 의미가 없을 것이다.

본인은 플레이어 컨트롤러의 방향대로 캐릭터를 회전시킬 것이기에 좌우 에임 오프셋을 사용하지 않고 상하 에임 오프셋만을 적용했다.

에임 오프셋 생성

Untitled

  • 에임 오프셋 BP를 생성하고 세로 축 값으로 플레이어 컨트롤러의 Pitch를 지정했다. (-90, 90)의 범위를 가진다.
  • 다른 애니메이션과 겹쳐지는 부분을 최소화 하고자 고개만 움직인다.

Pitch값 찾기

Pitch 값은 무엇을 사용해야할까? 일반적으로 생각한다면 ControlRotation의 Pitch일 것이다. 그러나 해당 값은 (0, 360) 범위를 가진다. 위쪽 방향으로 (0, 90)을, 아래로는 (270, 360) 범위이다. AO에서 사용하려면 연속된 값이 필요하므로 변환이 필요하다.

Untitled

매번 계산할 것 없이 Rotator의 Normalize() 함수를 사용하면 된다. 회전의 범위를 (-180, 180)으로 변경하는 기능을 가진다. 변경 이후에는 위쪽 방향으로 (0, 90)을, 아래로는(-90, 0) 범위를 가진다.

ABP에서 AO 적용하기

Untitled

달리기, 점프와 같은 움직임 이후에 AO를 연결했다. Addtive 형식의 블랜드 스페이스이기 때문이다. 참고로 AimOffset과 AimOffsetPlayer는 다른 노드이니 혼동하지 말자. AO 재생에 필요한건 플레이어다.

Untitled

참고자료