배그에서는 인벤토리 창을 열면 위와같이 캐릭터 외관을 렌더링 해준다
비슷하게나마 구현하는 법 강좌를 찾았는데 https://www.youtube.com/watch?v=mSDgMmaddJw
실제 멀티플레이에서는 어떻게 PlayerCharacter와 동기화 시키는 지는 안나와있다
아래방법은 위강좌에 보충하여 데이터 동기화 하는법까지 나와있다
Actor를 만들기
RenderTarget 만들고 UI Material 만들기
Widget 블루프린트 작성, PlayerCharacter 데이터 동기화 준비
PlayerController 에서 액터 스폰
Recording 액터에서 데이터 동기화 하기
1.RecordingActor는 Actor클래스이다 SceneCaptureComponent2D 를 추가한뒤 PlayerCharacter와 똑같은 메쉬 정보를 한뒤 그것을 캡쳐하여 RenderTarget을 만든다
2.RenderTarget의 사이즈를 알맞게 맞춘다 보통 ( x:y = 1.5 : 2 )
3.Material을 만든뒤 Material Domain : 유저 인터페이스 BlendMode : Translucent
4.WidgetBP 를 만든뒤 Custom Scale로 아까 RenderTarget 사이즈와 맞춘다 Image를 추가 하고 RenderTaget Material을 Image로 셋팅한다
5. PlayerContorller 객체에서 Spawn 한뒤 변수로 승격하여 Reference 를 가지고 있는다
6.아까 만든 WidgetBP 에선 Construct 이벤트시 playerController가 가지고 있는 RecordingActor 레퍼런스를 변수로 승격하여 가지고 있는다 또한 GetControlledPawn을 통해 PlayerCharacter를 가지고 온후 RecordingActor의 변수로 가지고 있는 playerCharacter에 Set 시킨다
Recording Actor 에서는 Tick 이벤트를 통해 PlayerCharacter 레퍼런스를 통해 Mesh 정보들을 동기화 시킨다
결과 화면
활성레벨 에디터 뷰포트로 플레이할시 이렇게 나오는데
그러나 실제 Shipping 하면 잘나온다