VRChat 非公式日本語ドキュメント

入力 (Input)

ClientSimでは、すべての入力呼び出しを1つのクラスに集約し、入力の処理とイベントの送信を行っています。ClientSimInputManager は新しい Input System を使用しており、イベント駆動型の入力を可能にしています。このクラスは PlayerInput コンポーネントを使用して、以下に示す Input Bindings に基づいた特定の入力イベントへのアクセスを取得します。Unityの新しい Input System パッケージはデフォルトでは含まれておらず、Unity側で有効にするための特別な設定が必要となるため、Input System へのすべての参照は定義条件(define conditions)でラップされています。これにより、新しいプロジェクトにインポートした際のエラーを防いでいます。

入力イベント

EventDispatcher と同様に、InputManager にも各システムが直接リッスンできる独自のイベントが存在します。これらのイベントは EventDispatcher 本体とは切り離されています。これは、すべての入力イベントが類似したパラメータを持つことに加え、イベントを介してブロードキャストされるのではなく、リスニング側のシステムが更新された軸の値をポーリング(取得)する必要がある入力値も存在するためです。

入力バインディング

Input Systemでは、さまざまな操作スキームに対して異なるバインディングを設定することも可能です。以下に含まれるバインディング(KeyboardMouse、Gamepad、および試験的なXR Controllerバインディング)を参照してください。なお、Unity 2019におけるInputSystem内のXR入力バインディングは非常に限定的であることに注意してください。さまざまなVRコントローラーを適切にサポートするには、InputManagerを拡張する必要があります。

UdonInput

UdonInputシステムはInputManager Prefabの一部であり、InputManager内の適切なイベントをサブスクライブするとともに、移動や視点操作に関する入力をポーリングして更新します。Unityが入力イベントを送信するタイミングと、Udonが入力を受け取るべきタイミングの兼ね合いから、ボタンベースの入力はすべてキューイングされ、フレーム内の後半で移動や視点操作の入力と同時に処理されます。このキューイングと処理を行うことで、VRChatと同様に、Udonのupdateメソッドが呼び出された後に入力イベントが発生するようになっています。

最終更新: