Programming in VRChat

VRChat でのプログラミングについて調べたことの書き溜め

Custom Trigger

Custom Trigger は、具体的な action の定義に名前を付け、 それを別途に定義されるトリガー契機に外部から実行するための機構。 プログラムで関数定義(ないしはメソッド定義)の役割に近いもの。

  • API ドキュメントを見るよりもサンプルを見た方が、おそらく分かりやすい
    • SDK 同梱のシーン Assets/VRCSDK/Examples/Scenes/Example-Actions.unity の中の Action-ActivateCustomTrigger の所を参照
  • API
  • 呼ばれる方の設定
    1. VRC_Trigger コンポーネントを追加
    2. それに Custom trigger を追加
    3. この定義の名前を自由に付ける
    4. 実行する action を設定する
  • 呼ぶ方の設定
    1. 呼び出す契機となる何らかの trigger の action として ActivateCustomTrigger を追加
    2. そのレシーバーとして、上記で定義した(呼ばれる方の)オブジェクトを選択
    3. Name 欄に定義した Custom trigger の名前が出てくるので選択
  • 補足
    • ActivateCustomTrigger を連鎖させることで複数のオブジェクトに定義された action を同時に実行することが可能
      • サブルーチン的な構成の仕方ができる(はず。引数を渡せないので限定的ではある。)
    • 呼び出す先のオブジェクトの有効状態(active)、コンポーネントの有効状態(enabled)の影響は受けずに動作する(ようだ)
      • (意図しない動作、不具合のように思えるが、はたして)
    • あるトリガーに対して、Custom trigger を発動しなおすことでアクションを実行する broadcast type を(実質的に)変更することが出来る。