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

入力イベント

Udonの入力イベントを使用することで、あらゆるプラットフォームでプレイヤーのコントローラー入力を統一された方法で読み取ることができます。これらのイベントは、プレイヤーが操作設定を変更した場合でも正しく動作します。

現在、ボタン軸(Axis)という2種類のイベントがあり、それぞれブール値(bool)と浮動小数点値(float)が含まれています。各イベントは、特別な UdonInputEventArgs オブジェクトも保持しています。また、Unityの入力メソッドやプロパティを使用して、直接入力データを読み取ることも可能です。

ボタンイベント

ボタンイベントには bool 値が含まれており、ボタンが押されたときは true に、離されたときは false になります。

InputJump

デスクトップ環境ではスペースキー、コントローラーでは通常、フェイスボタンに対応します。

InputUse

デスクトップ環境では左クリック、コントローラーでは通常、トリガーボタンに対応します。

InputGrab

デスクトップ環境では左クリック、VRコントローラーでは通常、グリップボタンに対応します。

InputDrop

デスクトップ環境では右クリックに対応します。Vive Wandや一部のWindows Mixed Realityコントローラーではグリップボタンを押す動作、その他のコントローラーではグリップボタンを離す動作に対応します。

軸イベント

軸イベントには、通常 -1 から 1 の範囲をとる float 値が含まれます。アナログスティック付きのコントローラーを使用する場合、値が 0 から 0.1、0.2……と変化するたびに新しいイベントがトリガーされます。デスクトップユーザーの場合、出力される値は -1、0、1 といった整数になります。

InputMoveHorizontal

デスクトップでは A キーと D キー、コントローラーでは通常、左スティックやパッドの左右移動に該当します。

InputMoveVertical

デスクトップでは W キーと S キー、コントローラーでは通常、左スティックやパッドの上下移動に該当します。

InputLookVertical

デスクトップではマウスの上下移動、ゲームパッドや VR コントローラーでは通常、右スティックの上下移動に該当します。

InputLookHorizontal

デスクトップではマウスの左右移動、VR コントローラーでは(コンフォートターニング無効時の)右スティックやパッドでの左右旋回、ゲームパッドコントローラーでは通常、右スティックの左右移動に該当します。

UdonInputEventArgs

このオブジェクトはすべての入力イベントに含まれており、イベントに関する役立つ追加データが格納されています。今後、このオブジェクトにデータを追加していく予定ですので、もし参照したい便利なデータがあればぜひお知らせください。現時点では、以下の内容が含まれています。

  • UdonInputEventType: BUTTON または AXIS
  • boolValue: ボタンイベントの場合はTrue/False、軸イベントの場合はfalse(デフォルト値)となります。
  • floatValue: 軸イベントの場合は-1から1の間の数値、ボタンイベントの場合は0(デフォルト値)となります。
  • handType: LEFTまたはRIGHT。キーボードおよびマウスのユーザーに対しても含まれます(マウスはRIGHT、キーボードはLEFT)。

OnInputMethodChanged

このイベントは、ユーザーが入力方式(キーボードからマウス、コントローラー、タッチスクリーンなど)を切り替えるたびに発生します。パラメーターとして VRCInputMethod 列挙型が含まれます。

Vive入力名の曖昧さについて
  • VRCInputMethod.Vive は、SteamVR経由で動作するViveコントローラーを指します。
  • VRCInputMethod.ViveXr は、OpenXR経由で動作するVive XR Eliteコントローラーを指します。

Unityの入力メソッドとプロパティ

Udonは UnityEngine.Input 名前空間から一部のメソッドやプロパティにアクセスできます。これらを使用すると、ユーザー入力に関する詳細な情報を取得できます。

Udonでは以下のメソッドとプロパティが利用可能です:

VRChatメニューにおける入力検知

以下のVRChatメニューが開いている間、Udonは入力を検知できません。

  • メインメニュー
  • クイックメニュー(デスクトップまたはモバイルのみ)
  • テキスト入力ポップアップ

VRChatメニューを開くと、Udonは押されているすべての入力を解除します。これは、入力を押し続けている場合でも同様です。例:

  • 矢印キーを押したままVRChatメニューを開くと、そのキーに対して Input.GetButtonUp()true を返します。
  • ジャンプボタンを押したままVRChatメニューを開くと、Udonは InputJump(false) を実行します。

VRChatメニューを閉じると、Udonは押されているすべての Unity 入力を押下状態にします。例:

  • 右矢印キーを押したままVRChatメニューを閉じると、そのキーに対して Input.GetButtonDown()true を返します。
  • ジャンプボタンを押したままVRChatメニューを閉じると、Udonは InputJump(true) を実行しません。

最終更新: