VRChat Avatars3.0 公式ドキュメント 非公式翻訳 その3 (Expression Menu / Expression Controls)

以下はVRChatのAvatars3.0に関する公式ドキュメント(https://docs.vrchat.com/docs/avatars-30)よりの非公式翻訳です。情報の正確性には留意しましたが、読みやすさを優先して逐語訳よりは意訳・超訳に近いものになっています。自己責任でご参照下さい。元のドキュメントは2021-4-24の状態のものとなっています。

 

Expression Menu and Controls

 

Expression Menu の作り方

  1. Unityのプロジェクトウインドウ上で右クリックして Create/VRC Scriptable Objects/Expression Menu を選択して作成。

  2. プロジェクトウィンドウ上に Expression Menu オブジェクトが作成される

また、ExpressionParametersオブジェクトも作成する必要がある。デフォルトのリストにある以外の自分で任意に作るパラメータはここで定義する。パラメータの名前と型を指定することができる。以下のようにExpressionParametersExpression Menuの時と同じように右クリックから作成できる。

  1. プロジェクトウインドウ上で右クリックして Create/VRC Scriptable Objects/Expression Parameters を選択して作成

  2. 作成された Expression Parameters を選択して

  3. 自分で任意に作るパラメータの名前と型を指定していく。Int型は0~255の範囲の整数が、Float型は-1.0~1.0の範囲の浮動小数点値がとれる。

その後に、もう一度 Expression Menu の方に戻って

  1. Inspector 上で「Add Control」をクリックして、最大8個までメニュー用のコントロールを追加する

  2. またここでは各コントロールの名前やアイコンの設定、コントロールの順序(VRChat内でのメニューを開いた時の表示位置)の設定ができる。

  1. 設定が完了したら Expression Menu オブジェクトを Avatar Descriptor の「Expression Menu」の欄にドラッグ&ドロップで登録する。

  2. 同様に Expression Parameters オブジェクトも Avatar Descriptor の「Expression Parameters」の欄にドラッグ&ドロップで登録する。

 

参考:デフォルトで使えるアイコンを何種類か VRCSDK/Assets3/Expression Menu Icons/ に置いてあるよ

 

コントロールの種類
  • Button (ボタン)クリックした時にパラメータを設定した値に変更、1秒程度で勝手に元に戻る。押しっぱなしは出来ない (訳注:こう書いてあるが記事作成時点では押しっぱなしに出来る)
  • Toggle(トグル)トグルをONにするとパラメータを設定した値に変更し、OFFにすると元の値にリセットされる。
  • Sub-Menu (サブメニュー)別の Expression Menu (サブメニュー)を呼び出す。また、サブメニューを開いた時に特定のパラメータの値を変えることも出来る(この場合、サブメニューを閉じるとパラメータの値は元に戻る)

     大事なお知らせ:サブメニューにさらにサブメニューを設定することで階層的なメニューを作れるよ!

  • Two Axis Puppet (2軸のパペット)2つのパラメータを同時にジョイスティックでコントロールできるパペットメニューを呼び出す。2つのパラメータは垂直・水平方向にそれぞれ割り当てられ、float 型の値として -1.0 ~ 1.0の範囲をとる。
  • Four Axis Puppet (4軸のパペット)4つのパラメータを同時にジョイスティックでコントロールできるパペットメニューを呼び出す。この場合各パラメータは上、右、下、左に順に割り当てられ、0.0~1.0float型の値をとる。
  • Radial Puppet (円形のパペット) – 1個のパラメータをコントロールする、プログレスバー的な円形のパペットメニューを呼び出す。

 

Puppet Menu Fast Sync

パペット系のコントロールは同期が速い。素早い入力に対して出来るだけ正確な同期を得たい時はパペット系を使うとよいです。

ボタンやトグルは秒単位の比較的遅い同期を行います。なので、高度に正確な同期は必要としない「スイッチオン」のような使い方にむいています。

パペットは数分の一秒単位の解像度での同期を行います。なので、タイミングが重要な操作に適しています。

パペットメニューを呼び出す時に、パペットで操作するパラメータを特定の値にセットするというようなこともできます。

 

ジョイスティックを押してパペットを抜けるとパラメータの値はその瞬間のものが維持され、もう一度同じコントロールで値を変える、あるいはどこか別のところで値の指定を行うまではそのままです。