VRChatのアバターでお花を飛ばす話(アニメーションオーバーライド編)※追記あり
先程の記事ではお花を飛ばすパーティクルを作成しました
sabamirin.hatenablog.com
この記事ではこのパーティクルを表情に紐付ける方法を説明します
一応オマケとしてアニメーションオーバーライドの作成までの説明もつけています
※10/14追記
Emissionモジュールによる制御だとなんかオンにしていないのにパーティクルが放出させるという現象が確認されました
そうならない方法としてオブジェクトの有効無効による方法を追記しています
2種の違いとして
- Emissionモジュールによる制御
- パーティクルの放出の有無を制御する
- アニメーションオーバーライドを切り替えてもパーティクルが残る
- オブジェクト有効化による制御
- 放出源のオブジェクト自体の有効無効を制御する
- アニメーションオーバーライドを切り替えるとパーティクルが消える
となります
Emissionモジュールによる制御
※こちらの方法は非推奨となります
いろいろ原因を探ってはみたものの原因不明(VRC側の仕様?)なので以下の「オブジェクト有効化による制御」を参照してください
とはいえ武器などに付ける場合で、かつその武器自体を出し入れする場合などは有用なので方法自体は残しておきます
ParticleSystem上の設定
- 作成したParticleSystemのEmissionをオフにします
- プレビューでもパーティクルの放出が止まります
オブジェクト有効化による制御
パーティクルのアニメーション制御
アニメーションにオブジェクトの有効化の制御を追加する
編集用モデルを選択して、Animationウィンドウを開きます
AddPropertyボタンを押して、ParticleSystemまでたどります
設定できるプロパティの中から「Is Active」を選択し、追加します
1秒後にもキーを追加します
これで指定したアニメーションを再生することで、アニメーションが再生されます
おまけ
※だいたい先人の方の説明を新しくやり直す形になりますのでわかってる人は読む必要ないです
アニメーションの作成
アニメーション編集用のモデルを作成する
そのままアニメーションを紐づけるとモデルのポーズが崩れてしまうため*2、現在のモデルを複製します
編集用モデルにアニメーションを新規作成する
Animationウィンドウを表示して作成したモデルにフォーカスを合わせます
このようなウィンドウが表示されたら、中央の「Create」ボタンをクリックします
animファイルの作成先をが尋ねられますので、適当な名前をつけて保存します
- アニメーションファイルとともにコントローラが作成され、編集用アバターに設定されます
カスタムアニメーションオーバーライドを作成する
コントローラの作成
VRCSDKに入っているカスタムアニメーションオーバーライドコントローラ(長い)を複製します
Projectウィンドウの右上の検索から「override」で検索してでてきたファイルをCtrl+DやCtrl+ドラッグで複製してください
アニメーションをコントローラに紐づける
複製したカスタムアニメーションオーバーライドコントローラを選択します
右のInspectorウインドウのHANDOPENに作成したアニメーションをドラッグアンドドロップしてセットします*3