11
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Organization

【VRChat】VRC_TriggerのActions一覧

これは、 VRChat Advent Calendar 2019 の19日目の記事です。

VRC_TriggerのActions一覧

VRChatのワールド内にボタンとかを設置したい場合、 VRC_Trigger というものが必要らしく、先週くらいから触り始めました。

トリガーで何が起こせるの?

っていうのをググってみると、少し情報が古かったりで、意外と一覧でまとまっているページが見当たりませんでしたので、作ることにしました。

Actions一覧

  • Unity: 2017.4.28f1
  • VRChat SDK: 2019.09.18.12.05

上記の環境で Actions を見てみると、以下のようになっていました!

image.png

項目がいっぱいありますね!この1つ1つが Action と呼ばれるものです!

それぞれの項目の説明は、以下の公式説明ドキュメントに記載があるのですが、一部説明がないものもありました。

VRChat / v2019.3.2 / Guides / Actions

説明がないものは、検索や質問したりして集めた情報を記載しようと思います。

アルファベット順です。

ActivateCustomTrigger

カスタムトリガーを発火します。

公式説明:https://docs.vrchat.com/docs/activatecustomtrigger

たとえば、

  • ボタンAを押したら扉が開く。
  • ボタンBを押しても扉は開く。

みたいなシーンを実現したいとします。

以下のように設定すれば一応実現できます。

  • ボタンAのActionに、扉が開くアニメーションを設定する。
  • ボタンBのActionに、扉が開くアニメーションを設定する。

image.png

しかし、カスタムトリガーを利用すれば、以下のように、共通化できます。

  • カスタムトリガーを作成し、そのActionに、扉が開くアニメーションを設定する。
  • ボタンAのActionに、カスタムトリガーを設定する。
  • ボタンBのActionに、カスタムトリガーを設定する。

image.png

これはいわゆる 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

指定した Animatorbool 変数の値を変更します。

公式説明:https://docs.vrchat.com/docs/animationbool

AnimationFloat

指定した Animatorfloat 変数の値を変更します。

公式説明:https://docs.vrchat.com/docs/animationfloat

AnimationInt

公式に説明がないため、根拠はありませんが、おそらく、指定した Animatorint 変数の値を変更するものだと思います。

AnimationIntAdd

指定した Animatorint 変数の値に、指定した数値を加算します。

公式説明:https://docs.vrchat.com/docs/vrchat-201811

AnimationIntDivide

指定した Animatorint 変数の値を、指定した数値で除算します。

公式説明:https://docs.vrchat.com/docs/vrchat-201811

AnimationIntMultiply

指定した Animatorint 変数の値に、指定した数値を乗算します。

公式説明:https://docs.vrchat.com/docs/vrchat-201811

AnimationIntSubtract

指定した Animatorint 変数の値から、指定した数値を減算します。

公式説明:https://docs.vrchat.com/docs/vrchat-201811

AnimationTrigger

Animatorのトリガーパラメーターを発火します。

公式説明:https://docs.vrchat.com/docs/animationtrigger

AudioTrigger

指定した Audio SourceAudio 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 Advent Calendar 2019 の19日目の記事でした。
明日は @rakurai5 さんによる Amplify Shader Editorを用いてメッシュを雪で覆うシェーダーを作る です!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
11
Help us understand the problem. What are the problem?