[Unreal]#5_Character의 이동 속도와 각도 구하기, Animation Blueprint
Unreal 개발 중 "Animation"에 대해 알아보겠습니다.
"Simple Shooter Game"의 Character Class 개발 과정 중 일부입니다.
Animation Blueprint
"Animation Blueprint" 에디터의 "Anim Graph" 내부에 생성한 이동 관련 "Animation Blend Space"는 두 개의 기준 값을 필요로 하죠! X축의 "Angle" 그리고 Y축의 "Speed"!
실제 게임 플레이 과정에서 Character의 이동과 함께 실시간으로 바뀌는 "Angle" 값 그리고 "Speed" 값을
"Animation Blueprint"로 가져와서 활용하는 방법에 대해서 알아보겠습니다.
Animaiton Blend Space
용어들이 매우 헷갈리지만...
스크린샷들과 함께 정리해보겠습니다.
1. Animation Blueprint 내부 "Anim Graph"에 "Animation Blend Space" 생성
1. "Animation Blueprint" 에디터 창을 열어줍니다.
2. "Event Graph" + "Anim Graph"가 보일 텐데, 지금은 "Anim Graph"를 열어줍니다.
3. "Anim Graph" 위에 미리 구현해둔 이동 관련 "Animation Blend Space"를 생성합니다.
4. BS(Blend Space)에 연결할 두 개의 기준 값 "Angle" 과 "Speed"를 변수로 생성합니다.
5. 생성한 두 개의 변수는 "BS"와 연결합니다.
* 이때, Angle 값과 Speed 값은 Setting이 되어있지 않은 변수이므로 우리는 Event Graph로 넘어갑니다!
2. Event Graph에서 float Speed 변수와 float Angle 변수를 설정합니다.
1. Blueprint Update Animation : 매 Frame 마다 실행되며, Animation Blueprint의 변수들을 Update 합니다.
2. Try Get Pawn Owner : Target은 Anim Instance로 연결된 Pawn Object의 참조를 반환합니다.
"Animation Blueprint"의 "Event"는 첫 두 개의 노드를 제공합니다.
하나는 "Blueprint Update Animation"으로 "Event Graph"의 Update 루프의 시작 노드입니다.
이 이벤트는 매 프레임마다 실행되며, Animation Blueprint에서 활용하고자 하는 변수들을 계산하거나 업데이트하는 데 사용됩니다.
다른 하나는 "Try Get Pawn Owner" 노드입니다. 인자는 "Anim Instance"이고, Pawn Object의 참조를 반환합니다.
우리가 미리 연결한 "Character" 객체의 참조를 반환하겠죠.
* 이벤트는 일종의 "Function"으로 전달받은 인자를 정해진 타입의 결과 값으로 다음 노드로 전달합니다.
3. Speed 변수 값 설정
1. Try Get Pawn Owner : Pawn Object의 참조를 반환합니다.
2. Get Velocity : Actor 객체의 참조를 인자로 넘겨받고, 속도 벡터를 반환합니다.
3. Vector Length : Vector를 인자로 넘겨받고, 벡터의 길이를 반환합니다.
4. Set Speed : Float을 인자로 넘겨받고, Speed 변수의 값을 설정합니다.
4. Angle 변수 값 설정
1. Try Get Pawn Owner : Pawn 객체의 참조를 반환합니다.
2. Ge Actor Transform : 인자로 받은 Pawn 객체와 World 간 Transform을 반환합니다.
3. Get Velocity : 인자로 받은 Pawn 객체의 속도 Vector를 반환합니다.
3. Inverse Transform Direction : World 스페이스에서 Local Space로의 방향 Transform이 됩니다.
4. Rotation From XVector : 인자로 받은 방향 Vector의 FRotator(회전 벡터)를 반환합니다.
1. Actor Transform : World에 존재하는 Actor 객체의 위치, 회전, 그리고 스케일 정보를 의미합니다.
2. Inverse Transform Direction : 역 방향 트랜스폼, World Space의 방향벡터를 Local Space로 트랜스폼 합니다.
* Local Direction과 World Direction은 다릅니다. 따라서 변환이 필요합니다!
5. Update 이벤트의 실행 핀을 Speed와 Angle에 연결합니다.
'게임개발 > Unreal C++' 카테고리의 다른 글
[Unreal]#7_Spawn Gun Actor in Runtime (0) | 2022.08.12 |
---|---|
[Unreal]#6_Gun Actor Setting (0) | 2022.08.11 |
[Unreal]#4_Animation Blueprint, Gameplay와 Animation 연결하기 (0) | 2022.08.08 |
[Unreal]#3_Character Animation, Animation Blueprint, Animation Blend Space (0) | 2022.08.07 |
[Unreal]#2_Camera Setting, 3인칭 카메라 세팅 (0) | 2022.08.06 |