これは、 VRChat Advent Calendar 2019 の19日目の記事です。
VRC_TriggerのActions一覧
VRChatのワールド内にボタンとかを設置したい場合、 VRC_Trigger というものが必要らしく、先週くらいから触り始めました。
トリガーで何が起こせるの?
っていうのをググってみると、少し情報が古かったりで、意外と一覧でまとまっているページが見当たりませんでしたので、作ることにしました。
Actions一覧
- Unity: 2017.4.28f1
- VRChat SDK: 2019.09.18.12.05
上記の環境で Actions を見てみると、以下のようになっていました!
項目がいっぱいありますね!この1つ1つが Action と呼ばれるものです!
それぞれの項目の説明は、以下の公式説明ドキュメントに記載があるのですが、一部説明がないものもありました。
VRChat / v2019.3.2 / Guides / Actions
説明がないものは、検索や質問したりして集めた情報を記載しようと思います。
アルファベット順です。
ActivateCustomTrigger
カスタムトリガーを発火します。
公式説明:https://docs.vrchat.com/docs/activatecustomtrigger
たとえば、
- ボタンAを押したら扉が開く。
- ボタンBを押しても扉は開く。
みたいなシーンを実現したいとします。
以下のように設定すれば一応実現できます。
- ボタンAのActionに、扉が開くアニメーションを設定する。
- ボタンBのActionに、扉が開くアニメーションを設定する。
しかし、カスタムトリガーを利用すれば、以下のように、共通化できます。
- カスタムトリガーを作成し、そのActionに、扉が開くアニメーションを設定する。
- ボタンAのActionに、カスタムトリガーを設定する。
- ボタンBのActionに、カスタムトリガーを設定する。
これはいわゆる UIとロジックの分離 というやつです。(プログラミング界隈でよく聞くやつ)
扉を開ける というUIと、 カスタムトリガーを発火する というロジックを分離することによって、今後、改良がしやすくなるという利点があります。
たとえば、ボタンC、D、Eみたいのが増えたとしても、それぞれのActionにカスタムトリガーを設定するだけで済みます。
さらに、 扉が開いたら風のエフェクトを発生させる みたいな仕様変更があったら、ボタンA~Eすべてを変更するのは大変です!
カスタムトリガーがあれば、カスタムトリガーののActionだけを変更すればよいから楽ですよね!
AddAngularVelocity
公式に説明がないため、根拠はありませんが、おそらく、 Rigidbody に角速度を与えるものだと思います。
AddDamage
GameObject にダメージを与えます。
公式説明:https://docs.vrchat.com/docs/adddamage
AddForce
Rigidbody に力を加えます。
公式説明:https://docs.vrchat.com/docs/vrchat-201821
AddHealth
GameObject にヘルスを与えます。
公式説明:https://docs.vrchat.com/docs/addhealth
おそらく、ダメージで減った体力が回復するのだと思います。
AddVelocity
公式に説明がないため、根拠はありませんが、おそらく、 Rigidbody に速度を与えるものだと思います。
AnimationBool
指定した Animator の bool 変数の値を変更します。
公式説明:https://docs.vrchat.com/docs/animationbool
AnimationFloat
指定した Animator の float 変数の値を変更します。
公式説明:https://docs.vrchat.com/docs/animationfloat
AnimationInt
公式に説明がないため、根拠はありませんが、おそらく、指定した Animator の int 変数の値を変更するものだと思います。
AnimationIntAdd
指定した Animator の int 変数の値に、指定した数値を加算します。
公式説明:https://docs.vrchat.com/docs/vrchat-201811
AnimationIntDivide
指定した Animator の int 変数の値を、指定した数値で除算します。
公式説明:https://docs.vrchat.com/docs/vrchat-201811
AnimationIntMultiply
指定した Animator の int 変数の値に、指定した数値を乗算します。
公式説明:https://docs.vrchat.com/docs/vrchat-201811
AnimationIntSubtract
指定した Animator の int 変数の値から、指定した数値を減算します。
公式説明:https://docs.vrchat.com/docs/vrchat-201811
AnimationTrigger
Animatorのトリガーパラメーターを発火します。
公式説明:https://docs.vrchat.com/docs/animationtrigger
AudioTrigger
指定した Audio Source の Audio Clip を再生します。
公式説明:https://docs.vrchat.com/docs/audiotrigger
DestroyObject
GameObject を破棄します。
公式説明:https://docs.vrchat.com/docs/destroyobject
PlayAnimation
旧 Animation コンポーネントのアニメーションを再生します。
公式説明:https://docs.vrchat.com/docs/playanimation
SendRPC
スクリプトから関数を発火します。
Advanced Mode の時のみ利用できます。
公式説明:https://docs.vrchat.com/docs/sendrpc
SetAngularVelocity
指定した値に、 Rigidbody の角速度を変更します。
公式説明:https://docs.vrchat.com/docs/vrchat-201821
SetComponentActive
Component のアクティブ状態を変更します。
公式説明:https://docs.vrchat.com/docs/setcomponentactive
SetGameObjectActive
GameObject のアクティブ状態を切り替えます。
公式説明:https://docs.vrchat.com/docs/setgameobjectactive
例えば、ボタンを押したらパーティクルライブの Timeline を開始するみたいなことができます。
Timeline を設定した GameObject を用意して、この SetGameObjectActive でその GameObject をアクティブにするという流れです。(パーティクルライブのDiscordで教えてもらいました。)
SetLayer
指定したレイヤーに、選択した GameObject のレイヤーを変更します。
公式説明:https://docs.vrchat.com/docs/setlayer
SetMaterial
指定したマテリアルに、選択した GameObject のマテリアルを変更します。
公式説明:https://docs.vrchat.com/docs/setmaterial
SetParticlePlaying
パーティクルシステムの放出のアクティブ状態を切り替えます。
公式説明:https://docs.vrchat.com/docs/setparticleplaying
SetUIText
指定した値に、 UIText コンポーネントのテキストを変更します。
公式説明:https://docs.vrchat.com/docs/vrchat-201821
SetVelocity
指定した値に、 Rigidbody の速度を変更します。
公式説明:https://docs.vrchat.com/docs/vrchat-201821
SetWebPanelURI
指定したURIをウェブパネルにセットします。
現在無効化されているようです。
公式説明:https://docs.vrchat.com/docs/setwebpaneluri
SetWebPanelVolume
ウェブパネルの音量を調整します。
現在無効化されているようです。
公式説明:https://docs.vrchat.com/docs/setwebpanelvolume
SpawnObject
指定した Prefab をスポーンさせます。
公式説明:https://docs.vrchat.com/docs/spawnobject
SetGameObjectActive との違いは、新たな GameObject を生成するかどうかです。
Unity C#でいう Instantiate 、Playmakerでいう Create Object に相当するものかなぁと思います。
TeleportPlayer
設定した場所にプレイヤーを移動させます。
公式説明:https://docs.vrchat.com/docs/teleportplayer
さいごに
本記事作成にあたり、以下の記事を参考にさせていただきました。ありがとうございました。
- VRChat / v2019.3.2 / Guides / Actions
- VRChat / v2019.3.2 / Guides / VRChat 2018.1.1
- VRChat Document 日本語訳 Wiki / VRC_Trigger / アクション
- [VRChat]初学者向けAnimatorの使い方
- Programming in VRChat / Custom Trigger
これは、 VRChat Advent Calendar 2019 の19日目の記事でした。
明日は @rakurai5 さんによる Amplify Shader Editorを用いてメッシュを雪で覆うシェーダーを作る です!


