[UE4] PlayerController Possess/Unpossess시 카메라 컨트롤이 잘 안될 때

쿼터뷰 형식으로 카메라를 위치 시키고, 다수의 플레이어가 등장하며, 컨트롤(Possess)하는 플레이어는 그때그때 변경 가능한 상황이다.

playerController->SetViewTargetWithBlend(camActor_1, 0.1f, EViewTargetBlendFunction::VTBlend_Linear);

이렇게 하면 camActor_1으로 view target을 지정하여 볼 수 있다.

A 캐릭터로 컨트롤(Possess)하던 중, B 캐릭터로 컨트롤을 바꿔본다고 하자. A 캐릭터의 플레이어 컨트롤러 상태는 Possess-> Unpossess로 바뀌고, B 캐릭터는 Unpossess -> Possess상태로 변경된다. 이때 카메라가 잠시 의도하지 않는 곳을 바라보게 된다. 플레이어 컨트롤의 영향 없이 카메라를 별도로 운용하고 싶다면?

playerController->bAutoManageActiveCameraTarget = false;

bAutoManageActiveCameraTarget를 false로 바꾸자. Default는 true이다. 이 변수가 true일 경우에는 Possess된 Pawn 기준으로 카메라 타겟을 자동으로 잡아주게 된다. 카메라를 플레이어와 밀접하게 운용하고 싶지 않다면, false로 바꾸자. 이제 플레이어들 사이에 Possess <-> Unpossess가 일어나도 독립적으로 카메라 운용이 가능하게 된다.

여담으로, 플레이어 컨트롤러와 카메라 사이에 디펜던시는 왠지 어색하다. FPS 게임 장르라면 플레이어 기준의 카메라 컨트롤이 필요하지만, 그 외의 장르에서는 아주 딱 들어 맞지는 않는다. 아마도 언리얼의 태생이 FPS이기 때문에 이렇게 발전해 왔을 것이라고 한번 생각해본다.



Leave a Reply

Your email address will not be published. Required fields are marked *