Unreal Engine, SimplePawnData 교체하기 - 카메라
💡
언리얼 에디터를 Lyra 소스코드 기반으로 사용하고 있다.
이전 글 "Unreal Engine SimplePawnData 교체하기 - 메쉬" 글에서 캐릭터를 만들었다. 그러나 게임 구동 시 시작 화면이 바닥을 향해 있다는 것을 볼 수 있는데, 카메라를 정상적으로 바라볼 수 있도록 고쳐준다
- Alt+P 단축키로 시작해보도록 한다.
- 구동 중인 상태에서 카메라가 이상한 곳으로 향해 있다.
- Shift + Escape 중지 또는 F8 단축키를 누르고 뷰포트에서 Alt + 마우스좌클릭 화면을 이동한다.
- 뷰포트로 바라본 모습. 캐릭터 카메라가 바닥부터 바라보는 이유를 찾도록 한다.
Hero_WarriorGame 에셋 요약
- WarriorCore Content > Characters > Hero_WarriorGame 에셋 더블클릭
- Pawn Class: 이 게임의 주인공. 블루프린트 클래스 B_Hero_Warrior 가 할당되어 있고 메쉬 작업도 완료되어 캐릭터가 서 있는 모습을 볼 수 있다.
- Camera: 앞서 보았던 카메라가 바닥을 바라보고 있는데 이 카메라를 설정해서 땅에서 꺼내주도록 한다.
Characters > Cameras 폴더 생성
- WarriorCore Content > Characters 아래에 Cameras 폴더를 생성하였다.
카메라 모드 클래스 추가하기
다른 게임 엔진에서는 국기봉 하나를 만들어 꼭대기에 화면을 붙어서 표시하는 형태로 만드는데, 언리얼 엔진에서는 카메라 모드를 가져와 사용할 수 있다.
- [+Add] 버튼을 눌려 카메라 모드를 가져오도록 한다.
- ALL CLASSES 펼친 후 LyraCameraMode_ThirdPerson 를 검색한다.
- 해당 Lyra 블루프린트를 상속 받아 사용할 것이다.
- Select 버튼을 누르도록 한다.
- 추가한 Blueprint Class 이름을 CM_Warrior 으로 지정하였다.
ThirdPerson OffsetCurve 가져오기
Lyra 공용 Cameras 폴더에서 ThirdPerson OffsetCurve 가 있다.
- Lyra 공용 폴더는 Content Drawer 탐색기에서 All > Content > Characters > Cameras 폴더가 있다.
- ThirdPersonOffsetCurve 커브 에셋 파일이 있는지 확인
- 어떤 에셋파일인지 더블클릭하도록 한다.
- X, Y, Z 종속 변수로 카메라의 거리와 각도 효과로 사용하는 것으로 보인다.
- 원하는 파일이 맞으므로 닫아주고 복사하도록 한다.
- 복사한 ThirdPersonOffsetCurve 파일을 WarriorCore Content > Characters > Cameras 로 붙여넣도록 한다.
- 이름을 "VC_Warrior" 으로 변경하였다.
Camera 블루프린트에 Vector Curve 설정하기
- Characters > Cameras 폴더 추가한 CM_Warrior 블루프린트를 더블 클릭 하도록 한다.
- 우측 Target Offset Vurve 설정이 필요하다.
- Lyra 공용폴더에서 복사한 VC_Warrior 를 등록하도록 한다.
Hero_WarriorGame 에셋 카메라 추가하기
이제 추가한 CM_Warrior 카메라를 Hero_WarriorGame 주인공 데이터로 넣어주도록 한다.
- WarriorCore Content > Characters > Hero_WarriorGame 에셋 더블클릭
- 열린 에디터에서 Default Camera Mode 항목을 추가한 카메라 CM_Warrior 로 설정
- 이제 카메라가 정상적으로 동작 해야했으나 실행하면 카메라가 땅에 묻어있다.
카메라 디버깅
이제 언리얼 엔진 카메라가 동작 안하는 이유를 찾아야 한다.
- 앞의 그림에서 Hero_WarriorGame 열어보기
- 변경할 Pawn Class 를 Lyra 공용 폴더에 B_Hero_Default 로 변경하기
- Alt+P 다시 실행
- 정상적으로 카메라가 바라보고 있다.
- 그럼 B_Hero_Default 에디터를 열고 어느 부분을 수정해야하는지 찾아보도록 한다.
- 옵션 하나하나 Warrior 로 옮겨보고 적용시키는 작업으로 찾는다.
카메라 디버깅 - 픽스하기
- 하나씩 적용하다보면 LyraHero 컴포넌트 인 것을 알 수 있게되었다.
- 해당 LyraHero를 우리가 만든 B_Hero_Warrior 로 가져오도록 한다.
- B_Hero_Warrior 에디터로 열고 Components 에서 [+Add] 선택한다.
- LyraHero 를 검색하여 추가하고 컴파일 하도록 한다.
- 정상적으로 삼인칭 카메라로 바라보는 모습을 볼 수 있다.
- Lyra 가 해당 컴포넌트를 넣은 이유로는 언리얼 엔진 위에 Lyra 프레임워크가 있고, 이 둘 사이에 생명주기 충돌 이슈가 있었던 것으로 보인다. 이로인해 LyraHero 다시 초기화해주는 역할로 필요했던 것으로 보인다.