入力をマスターノードからクライアントノードすべてに伝えるには、クラスターレンダリングネットワークを設定する必要があります。このためには、Cluster Input Settings を設定し、VRPN サーバーを使用して、入力をすべてのクライアントノードに送ります。
通常の入力すべてに対し、Cluster Input Manager 設定で入力マッピングを定義する必要があります。Project setting > Cluster Input
メニューで行ってください。
プロパティー | 説明 |
---|---|
Size | クラスター入力エントリーの数。 |
Name | エントリーの一意の名前。スクリプト内で、各エントリーを認識するために使用。 |
Device Name | VRPN サーバーに登録されたデバイスの名前。 |
Server URL | VRPN に接続するための URL。ローカルでサーバーをスタートした場合は、通常は「localhost」。 |
Index | 入力エントリーが接続すべき機器のインデックス/チャネル。 |
Type | 入力タイプ。 |
- Button | 押したり放したりしたときに、バイナリの値を返す。 |
- Axis | float 型の継続的な値を提供するアナログ軸。 |
- Tracker | 位置と方向の値を提供する。 |
- CustomProvidedInput | ユーザーによってカスタム化された入力。 |
Cluster Input Manager 設定に入力したすべてのエントリーには、ClusterInput クラス を使用したスクリプトを通じてアクセスできます。使用法は、Unity の通常の Input クラスと似ています。API で各フレームの入力状態を読むことができ、操作することができます。詳しくは、スクリプトリファレンスの ClusterInput を参照してください。
ClusterInput クラスから入力を読み込むプロジェクトの場合は常に、適切な機器と接続し作動するVRPN サーバーが必要です。VRPN 機器は、その名前と URL で識別されます。通常は、TrackerA@localhost のような完全な形の URL が使われます。TrackerA は機器名、localhost は VRPN 設定で定義されたサーバー URL です。
VRPN に関する詳細は、以下の Web サイトを参照してください。http://www.cs.unc.edu/Research/vrpn/
プロジェクトで ClusterInput クラスを使用せず、カスタム化したインプット のみ (以下を参照) を使用する場合は、VRPN サーバーは必要ありません。
Unity の C++ プラグインを書いて、機器メーカーの SDK を直接利用している入力機器を統合したい場合があるでしょう。プラグインは、interop services を利用して、プロジェクトの C# 側に値を渡します。このような場合、入力はクラスターの残り部分とは同期されません。この橋渡し役として ClusterInput のコマンドセットは、カスタム化された入力値を複製し、クラスター全体に配布します。
これを行うために、Cluster Input インスペクターで Input を作成、設定し、Type を "User Provided Input"
にします。クラスターのマスターノードで、統合した機器から得た入力値にいつも通りポーリングし、以下の API のうちの 1つを使用して Input に送ります。
この値は、残りのクラスターとマスターノードでも使用可能になります。