重要: UNet は非推奨のソリューションになり、現在、新しい Multiplayer とネットワーキングソリューション (Netcode for GameObjects) が開発中です。詳細は、GameObjects Web サイトの Unity Netcode を参照してください。 |
Network Animator コンポーネントを利用すると、ネットワーク化されたオブジェクトのアニメーション状態を同期することができます。Network Animator コンポーネントは AnimatorController の状態とパラメーターに同期します。
Network Animator コンポーネントを空のゲームオブジェクトに設定すると、そのオブジェクト上に Network Identity コンポーネントと Animator コンポーネントも作成されます。
プロパティ | 機能 |
---|---|
Animator | Network Animator と同期させる Animator コンポーネントを設定します。 |
Network Animator は、ネットワーク上でのゲームオブジェクトのアニメーションの同期、つまり、すべてのプレイヤーが同時に同じアニメーションを見ること、を管理します。ネットワーク化されたアニメーションには 2 通りの権限があります (権限の詳細については、HLAPI ネットワークシステムの概念 を参照してください)。
ゲームオブジェクトがクライアント上で権限を持つ場合は、ゲームオブジェクトを所有するクライアント上でローカルにアニメートする必要があります。このクライアントがアニメーションの状態情報をサーバーに送信し、サーバーはそれを他のすべてのクライアントにブロードキャストします。 例えば、これはプレイヤーキャラクターに適しています。
ゲームオブジェクトがサーバー上で権限を持つ場合は、サーバー上でゲームオブジェクトをアニメートする必要があります。次に、サーバーはすべてのクライアントに状態情報を送信します。 これは、ノンプレイヤーキャラクターなど、特定のクライアントに関連していないアニメーション化されたゲームオブジェクトに適しています。
Network Animator は、インスペクターウィンドウで設定したアニメーションパラメーターを同期します。 アニメーショントリガーは自動的には同期されません。権限を持つゲームオブジェクトは SetTrigger 関数を使用して、他のクライアント上でアニメーショントリガーを発生させることができます。
GetParameterAutoSend と SetParameterAutoSend 関数を使用して、個々の Animator パラメーターを自動的に同期すべきかどうかを制御できます。