Mecanim 데모
이 데모에서는 PhotonAnimatorView
로 쉽게 메카님 애니메이션 동기화에 대해서 보여 드립니다. 간단히 Animator
와 PhotonView
를 가진 객체에게 PhotonAnimatorView
컴포넌트를 추가합니다. 새로운 콤포넌트를 PhotonView
의 Observed Components 목록에 드래그앤 드롭 합니다.
PhotonAnimatorView
컴포넌트에서 어떤 부분의 애니메이션을 동기화를 할지 제어 할 수 있습니다.
이 데모에서는 PhotonAnimatorView
컴포넌트에 애니메이션을 동기화 하고있는 캐릭터의 인스턴스를 생성 합니다. 데모를 두개 실행하면 어떤 애니메이터 파라미터(Speed, Direction, Jump, Hi)가 전송되는지와 수신측의 클라이언트의 값을 확인할 수 있습니다.
"Robot Kyle Mecanim" 프리팹은 PhotonView
가 있고 , "Observed Components" 에는 PhotonAnimatorView
와 PhotonTransformView
가 있습니다. PhotonTransformView
컴포넌트는 캐릭터의 위치와 회전 정보를 동기화합니다. PhotonTransformView
의 상세 내용은 RPG Movement 데모에서 확인 해 보세요.
PhotonAnimatorView
PhotonAnimatorView
에서 레이어 가중치와 어떤 파라미터를 동기화 할지를 정할 수 있습니다. 레이어 가중치는 게임이 진행되는 과정에서 동기화가 변경되어 나중에 전혀 동기화가 필요 없을 경우에만 사용합니다.
파라미터의 경우에도 동일 합니다. 때로는 다른 요소에 의해서 애니메이터 값을 도출 할 수 있습니다. 동기화 파라미터는 가능한 작게 동기화 하는 것이 좋습니다.
각각의 값은 개별적으로 또는 연속적으로 동기화 될 수 있습니다.
Discrete synchronization(개별동기화)
은 값이 초당 10번 전송(OnPhotonSerializeView
내)됩니다. 수신 클라이언트들은 값을 로컬 애니메이터로 전달 합니다.
Continuous synchronization(연속동기화)
은 PhotonAnimatorView 가 추가적인 값을 저장합니다. OnPhotonSerializeView
이 호출(초당 10회)될 때 마지막 호출이 같이 전송되었기 때문에 값들이 기록됩니다. 수신 클라이언트는 부드러운 전환을 유지 하기 위해서 순차적으로 값을 적용합니다. 이 모드는 더 부드럽지만 전송 해야 하는 데이터의 양은 증가 됩니다.
보충
데모의 초기 구성에서 Speed(속도)는 연속동기화로 설정되어 있습니다. 다른 모든 값은 개별동기화로 설정되어 있습니다. Speed와 Direction의 값으로 2가지 모드의 차이점 이해가 쉽습니다.
Speed 파라미터의 수신 값은 전송 후 바로 변경되지만 Direction 매개 변수의 수신 값은 더 큰 간격으로 천천히 변화합니다. Direction 파라미터의 동기화 모드를 Discrete 에서 Continuous 변경하면 더 부드러워 집니다 (트래픽은 증가합니다)
지금까지 했던 것은 캐릭터에 PhotonAnimatorView
컴포넌트를 적용하여 동기화 모드를 각각의 파리미터에 가장 적합 한 것으로 설정한 것으로 매우 간단 합니다.