언리얼을 시작한지 두 달이 조금 안됩니다.
2.5d 8 방향 이동 캐릭터를 구현하고 있는 중입니다.
paperZD 를 활용하여 8 방향 애니메이션 구성과 ACharacter 를 상속 받은 C++ 클래스와 BP 생성도 완료하였습니다.
개인적인 취향으로 대부분의 구현 내용을 C++ 로 하고 있는데요.
키보드 입력을 통해 캐릭터를 이동, 회전 그에 맞게 8 방향 애니메이션도 동작을 하는 것은 확인했는데요.
상속 구현을 위해 캐릭터의 방향 값 계산을 위해 캐릭터의 회전 값과 spring arm 의 회전 값을 계산하는 과정에서 GetActorRotation 등의 값이 프레임 진입 혹은 끝날 때 초기화가 되는 것인지 입력을 받는 중에도 입력 이벤트에서는 기대한 값이 나오는데 그 외에는 전부 (0, 0, 0) 이 최종적으로 조회가 되고 있습니다. (입력 이벤트에서 기대한 값이 나오기에 원하는 것은 구현하는 것 자체는 가능하긴 하지만 이렇게 구현하면 중복 코드가 너무 많이 나오는 상황입니다.)
캐릭터 자체를 빌보드 비스므리하게 구현하던 터라 혹시 관련 회전 계산 부분이 문제가 있었던 건 아닌가 싶어 전부 주석처리하고 조회를 해보아도 결과는 동일하였습니다.(조회한 값만 그렇고 월드에서의 캐릭터 회전 값 등은 크게 문제 없어 보이고 에디터 상에서의 회전 값도 제대로 수치가 표시되고 있습니다.)
혹시 원인이 무엇인지 알 수 있을까요? 캐릭터 이동 및 회전은 언리얼 Third Person 프로젝트를 참고하여 작성하였습니다.
첨부한 이미지에서 빨간 네모 안의 값이 기대하지 않은 회전 값입니다.
자문자답입니다.
c++ 클래스 내 Use Controller Rotation 관련 내용을 초기화하는 내용이 있는데 해당 내용을 c++ 소스 코드 상에서 수정하더라도 블루프린트에 해당 내용이 반영되지 않아 발생하던 문제였습니다.