[DevNote] 탈 것 처리
Possess 아닌 탈 것 탑승 기능 구현
플레이어 캐릭터가 탈 것에 탑승하는 기능이 필요했다
알아보니, 보통은 Possess 변경을 통해서 처리하는 듯하다
그러나 플레이어 캐릭터 구조가 그렇게 하기 어려운 상태라 다른 방법을 고려해봐야 했다
내가 고민했던 방법
- 탈 것 전용 캐릭터를 만들고 Possess
- 상기했듯 이렇게 만들기는 까다로웠다. 그냥… 까다로웠다
- 탈 것 캐릭터들의 탑승 소켓 높이를 규격화하기
- 탈 것마다 높이는 또 다를 것이란다.
- 작음, 중간, 큼 등의 규격으로 나누어 플레이어 캐릭터의 Root에 그냥 Attach 시킨다
- 그런 다음 플레이어 캐릭터는 탑승 애니메이션을 출력하고, 규격화된 위치에 따라 RelativeLocation만 조정해준다
이전작 솔루션을 적용하기로
플레이어 SkeletalMesh 위에 하나 더 SceneComponent 레이어를 둔다.
일반적으로 Capsule 하위에 SKM이 바로 붙는다는 걸 고려하면, 중간 레이어 역할을 하는 SceneComponent가 필요하다
플레이어 캐릭터 SKM이 Attach 될 위치를 새로 정의하고, 탈 것 Actor를 적당한 위치로 지정하여 스폰한다.
두 캐릭터 모두 적절한 위치에서 애니메이션을 각자 재생할 것이기에, 싱크만 맞춰서 플레이하면 어색하지는 않을 것이다.
다른 방법은 탈 것 액터를 스폰하고, 그 액터의 SKM 소켓에 플레이어 캐릭터의 root를 Attach하는 것이다.
이 역시 위 방법처럼 중간 레이어 역할을 하는 Component가 필요하다.
탈 것 액터를 기준으로 플레이어 캐릭터 SKM을 Attach하는 것이 자연스러울 테니까.
플레이어 캐릭터 SKM에 탈 것 액터를 붙이겠다면, 탈 것의 크기가 적어도 규격화되어 있어야 할것이다.
애니메이션은 동일한데 탈것의 크기가 다르면 애니메이션 재생하는 위치가 항상 동일할테니고, Parent가 플레이어 캐릭터니 아무리 옮겨도 탈것 액터도 따라다닐 것이다.