[UE 5] 3D 게임 개발 10 - 에임 오프셋

0시0분·2025년 4월 14일
0

UE 5

목록 보기
48/52

지금까지 90도 내외로는 캐릭터가 움직이지 않게 만들었었다.
실제 게임에서는 이런 움직임은 부자연스러우므로, 마우스가 따라다니는 위치로
에임(상체)을 움직이게하는 애니메이션을 추가한다.

Aim Offset

FPS 기반 엔진이라 그런지 그 기능도 이미 다 구현되어 있다!

Snap to Grid 옵션을 켜면 애니메이션을 드래그앤드롭 할 때 자동으로 위치를 보정해주는데,
대신 Min/Max 값이 변경이 되지 않는다...
몇번을 수정했는데도 적용이 안돼서 버그인가 싶었는데 해제하니까 잘 됐다.

사용

Fire 블렌드 스페이스를 사용하던 부분을 수정한다.

사실상 Controller의 각도를 의미한다.


결과물

총구 방향이 카메라 회전에 따라 잘 움직이는걸 볼 수 있다.

Spring Arm 에 Offset 추가하는법
Spring Arm이 Controller의 값을 그대로 사용중인데, 이를 변경하지 않고

Socket Offset 값을 조절하면 원하는대로 각도를 조절할 수 있다.



Blend와 Additive의 차이

Aim Offset의 공식 문서 설명을 보면 AdditiveBlend Space 타입이라고 되어있다.

👀 https://dev.epicgames.com/documentation/ko-kr/unreal-engine/aim-offset-in-unreal-engine

그렇다면 blend 한건 뭐고 additive 한건 뭘까.

Blend

📝
간단하게 애니메이션을 편집하고 싶을때는 변경하려는 부분마다 키를 추가해야 적용이 된다.

테스트용으로 허리를 90도로 숙이는 애니메이션을 하나 만들고, 가만히 서있는 애니메이션과 blend를 해봤다.

90도를 다 숙이지 않고, 45도쯤에서 정지하는걸 볼 수 있다.

즉, blend는 연결된 애니메이션의 bone 값들을 weights에 따라 중간값으로 보정해준다.
각각의 애니메이션을 재생하되, 자연스럽게 이어지도록 해주는 느낌!


Additive

Blend와 마찬가지로 Additive를 테스트 하기 위한 테스트용 애니메이션을 하나 생성한다.

가장 큰 차이점은, Additive로 사용할 애니메이션은 독립적으로 존재할 수 없다.
Base가 되는 애니메이션이 존재해야 한다.

Aim Offset 에도 존재하는걸 알 수 있다.

Blend 때와 마찬가지로 90도 이상 허리를 숙이도록 만들어 주고, Additive를 적용해본다.

Blend 때와 달리 거의 다 재생이 되는걸 알 수 있다.

즉, Additive는 두 애니메이션의 중간값을 보정해주는 것 아니라
Base 애니메이션을 기준으로 얼마나 값이 변화했는지를 체크하고, 그 정도를 Alpha 값에 따라 조절한다.


이게 무슨 말이냐면,

Blend가 두개를 적절히 섞어서 두 애니메이션의 특징을 모두 가진 새로운 애니메이션이라면,
ex) 총쏘기 + 달리기 = 상체는 총을 쏘지만, 하체는 달리고있는 애니메이션

Additive는 명확한 기준점이 존재하고, 그 기준을 어느정도 변화시킬지를 나타낸 애드온 같은 느낌.
ex) 정면보는 애니메이션 > 왼쪽보는 애니메이션, 오른쪽 보는 애니메이션

0개의 댓글