에임 오프셋(AimOffsets)
플레이어가 정면을 바라보고 사격하면 에임이 정상적이지만,
위나 아래를 보고 사격하면 그에 맞게 방향이 돌아가지 않는다.
이를 수정하기위해 에임 오프셋을 적용해주자.
이는 애니메이션에서 확인할 수 있다.
해당 애니메이션은 additive 애니메이션으로 기존 애니메이션에 더하여 사용된다.
따라서 달리는 와중에도 에임 조정이 가능해진다.
이를 위해 AnimGraph에서 해당 에임 오프셋을 배치해주자.
그리고 Pitch 값을 180으로 두고 컴파일 하면 위를 바라보는 것을 볼 수 있다.
pitch 값을 변수로 승격시켜주고, event graph에서 해당 값을 적용해주자.
기존 Event graph에 더해 너무 길어져서 Sequence 노드를 통해 약가느이 정리를 해주었다.
그리고 Get Control Roation을 통해서 글로벌 회전 값을, Get Actor Rotation을 통해 액터(로컬) 회전 값을 얻어준다.
각 회전 값을 Delta을 통해 차이 값을 계산해주면 애니메이션에서 캐릭터의 회전을 정확하게 계산해줄 수 있다.
이후 스플릿을 통해 Pitch 값만 직접 Set 함수에 적용해주면 된다.
이렇게 하면 기존 Player는 무사히 위아래도 조준을 하며 방향도 맞게 돌아간다.
하지만 아직 AI는 적용이 되지 않은 상태이다.
이를 위해서 기존 Behavior Tree를 다시 확인해주자.
기존에 AI가 플레이어를 따라오며 조준하는 것은 플레이어 자체를 보는 것이 아니라, 플레이어의 위치 기반이었다.
이를 플레이어로 바꿔주자.
이를 위해 기존 PlayerLocation을 Player로 바꾸면서 Key Type을 Object 및 Base class를 Actor로 바꿔주자.
다음으로 관련된 값들의 블랙보드 키를 Player로 다시 할당해주자.
이에 맞게 Service의 TickNode 함수 내용도 바꿔주자.
기존의 SetValueAsVector에서 SetValueAsObject로 바꿔주면서 기존의 위치 값도 없애고 PlayerPawn만 할당해주자.
이제 컴파일을 해보면 AI 또한 플레이어가 약간 위에 있을 시 제대로 조준하는 모습을 볼 수 있다.
'Unreal > Udemy 강의' 카테고리의 다른 글
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-51 (0) | 2024.07.29 |
---|---|
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-50 (0) | 2024.07.29 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-48 (0) | 2024.07.29 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-47 (0) | 2024.07.27 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-46 (0) | 2024.07.26 |