CGBoxの一部の記事にはアフィリエイト広告が含まれております。
【VRChat改変勢向き】パーティクルを指先から撃つ方法

こんにちは。
VRChatでたまに魔法や銃などギミックを撃っている人を見かけますよね。
今回はそんなことが可能になるパーティクルについてご紹介します。
パーティクルとは
パーティクルには大きく分けてLocal(自分自身)追従とWorld固定のパーティクルの二種類があります。
Local追従のパーティクル

Local追従はビームのようにまっすぐ出るパーティクルを作るのに適しています。
自分が移動するとそのままの形でパーティクルも付いてきます。
World固定のパーティクル

World固定のパーティクルは水鉄砲などリアルな動きをしてほしいときに適しています。
自分が移動するとパーティクルは個々にその場にとどまります。
パーティクルを作る方法
パーティクルシステムを作る
それでは実際にパーティクルを作ってみましょう。

Hierarchyを右クリックしてEffects/Particle Systemをクリックします。
白いほわほわした球がたくさん出てきましたね。
これがパーティクルです。
パーティクル用のマテリアルを作る
このままではつまらないので、画像を射出できるようにしましょう。

Assetsのどこかしらを右クリック、Create/Materialで新しいマテリアルを作成します。
名前は適当に分かりやすいものをつけましょう。

作成したマテリアルのInspectorからShaderを変更します。
Particlesのシェーダーのどちらかを選んだら、画像を設定します。
透過画像でないと四角い画像が飛ぶことになるので、透過PNG画像などをUnityにインポートしましょう。
OpaqueからCutoutにすることで、透過をONにします。

画像を飛ばすパーティクルができました。
パーティクルを指先から飛ばす方法
Local追従のパーティクルを作る
まずはUnityにモデルを読み込みます。

パーティクルを飛ばす元にしたい指先のアーマチュアを選択し、particle systemを追加します。
このままではパーティクルの向きがおかしいので回転や移動で任意の方向に合わせます。

また射出元が広いので、指先に合わせるためparticle systemのInspectorから、Shape/Radiusを0.01に設定します。
これでLocal追従のパーティクル設定は終わりです。
あとはパーティクルをON/OFFするアニメーションを作ればOKです。
World追従のパーティクルに変更する
指先に合ったLocal追従のパーティクルが作れたら、それを転用してWorld追従のパーティクルにします。
World追従から作ってもいいのですが、位置の設定などが指の子から始めた方がやりやすいです。

パーティクルと同じ子の位置にCreate Emptyで空のゲームオブジェクトを作成します。
パーティクルをゲームオブジェクトの子にしたら、Armature外に移動します。
Armatureから出せないときは、キャラクター名を右クリックしてUnpack Prefabを選択しましょう

指先のボーンに戻り、指先のInspectorからAdd ComponentでRigidbodyを追加します。
Angular Dragを0、Use Gravityのチェックを外します。

パーティクルを収納したゲームオブジェクトに戻ります。
Inspector内、Add componentでFixed Jointを追加するとRigidbodyも自動で追加されます。
Rigidbodyの設定はさきほどと同じようにします。
Fixed JointはConnected bodyから指先のRigidbodyを選択します。

最後にParticle SystemのSimulation SpaceをWorldに変更します。
これでパーティクルの設定は終了です。
パーティクルをON/OFFするアニメーションを作る
このままではパーティクルを出しっぱなしなので、ON/OFFができるようにしましょう。
下記リンクの3.アバターの表情を変更しようを参考にアニメーションを作成します。


Add PropertyからParticleSystemを選択し、Is Activeを追加しましょう。
これでパーティクルのオンができるようになるので、HierarchyにあるParticle Systemはチェックを外して表示をOFFにしておきましょう。

パーティクル射出のON/OFFができるようになりました。
パーティクルが見えないときには?
下記リンクから抜粋すると
- Render Mode や Material が「 None 」になっていないか
- Start Lifetime や Start Size の数値
- Emission や Renderer のチェックが外れていないか
この3つが挙げられるようです。
ぜひとも元リンクを参考にしてみてください。

おすすめのパーティクル素材
最後におすすめのパーティクル素材について紹介します。
(無料) 可愛いパーティクル

シンプルな星のパーティクルです。
無料なので、とりあえず使ってみたいという方におすすめです。
蝶パーティクル

キレイな蝶が舞うパーティクルです。
使いこなすには少し他の知識が必要かもしれませんが、安価でとても美しいです。

雪降るパーティクル

100円と安価で、実装方法も説明されています。
幻想的な雰囲気に。

まとめ
パーティクルを射出する方法をLocal追従、World固定の二つでご紹介しました。
パーティクルは奥が深いので、設定の仕方でいろんな面白いものが作れそうですね。
ここまで読んでいただきありがとうございました。