PUN Classic(PUN1とも呼ばれます)はPUNのはじめの主要バージョンです。         現在は、リファクタリングおよび機能拡張されたPUN2に切り替わっています。         新しいプロジェクトはPUN2をご利用いただき、また可能であれば既存のプロジェクトについてもPUN1からPUN2へ移行していただくよう強く推奨しています。 こちらをご参照ください: "移行情報". PUN Cloassicは今後数か月メンテナンスされます。       重要なバグの修正や新しいUnityバージョンのサポートは行いますが、新機能の追加はPUN2のみとなります。

Mecanimデモ

このデモではPhotonAnimatorViewを使ってMecanimアニメーションを同期させる方法を説明します。AnimatorPhotonViewからPhotonAnimatorViewのコンポーネントをオブジェクトに追加します。PhotonViewObserved Componentsリストに新しいコンポーネントをドラッグ&ドロップしてください。PhotonAnimatorViewのコンポーネントではどの部分のアニメーションを同期するかコントロールできます。

Screenshot of Mecanim Demo
アニメーションデモキャラクター

このデモでは、PhotonAnimatorViewのコンポーネントでアニメーションを同期しているキャラクタのインスタンス化を行います。デモ内の2つのインスタンスを起動すれば、送信されるアニメータパラメータ(Speed, Direction, Jump, Hi)と、クライアントが受信する値が確認できます。

Robot Kyle MecanimプレハブにはPhotonView、Observed ComponentsリストにはPhotonAnimatorView及びPhotonTransformViewが含まれています。PhotonTransformViewコンポーネントはキャラクターの位置と回転を同期します。PhotonTransformViewの詳細は RPG Movement デモで確認してください。

PhotonAnimatorView

PhotonAnimatorViewでは同期するレイヤウェイトやパラメータを指定することができます。ゲーム中に変化があるのみレイヤウェイトを同期する必要がありますが、同期する必要がない場合もあります。 パラメータも同じです。他の要素からアニメーションの値を得られる場合があります。例えば、速度の値を正確に同期しなくても、同期された位置の更新を使って値を推定することができます。同期するパラメータは可能な限り少ない方が良いです。

PhotonAnimatorView on prefab for Mecanim Demo
Mecanim デモ・プレハブのPhotonAnimatorView

各値はDiscrete(個別)またはContinuous(連続的)に同期させることができます。

Discrete synchronizationの場合は値が1秒に10回送られます(OnPhotonSerializeView内)。受信するクライアントはローカルのアニメータに値をパスします。

Continuous synchronizationの場合はPhotonAnimatorViewが追加の値を記録します。OnPhotonSerializeViewが呼ばれると(10回/秒)前回のコール以降に記録された値がまとめて送られます。受信するクライアントが順番に値を適用して、これによりスムーズな移行が実現します。このモードの方がスムーズですが送るデータ量は増えます。

Back To Top

補足

デモの初期構成ではSpeed(速度)はcontinuous synchronizationに設定されています。他の値は全てdiscrete synchronizationに設定されています。SpeedとDirection(方向)の値は2つのモードの違いを理解するのに最適です。Speedパラメータの受信値は送信後すぐに変化しますがDirectionパラメータの受信値は大きな間隔で時間をかけて変化します。Directionパラメータの同期モードをDiscreteからContinuousに変更した場合、よりスムーズな結果になります。(代わりにトラフィックが上がります)

PhotonAnimatorViewコンポーネントをキャラクターに適用して各パラメータの同期モードを適切な設定にしてください。

ドキュメントのトップへ戻る