VRChatで花火を打ち上げる
はじめに
VRChatで花火を打ち上げてる人がいて、 おもしろいなと思い、 自分でもやってみました。
UnityのParticle Systemで花火を作成し、 それをアバターに組み込みます。
スクリプトを書く必要がないので、 Unityに慣れていない人でも3時間程度あればできると思います。
あと、もっとちゃんとしたやり方があったりするかもしれないので、 一例として参考にしてください。
目次
環境
- Unity5.6.3p1(VRChatが推奨しているバージョン)
- Windows10
参考にした記事
以下の記事を参考にさせていただきました。
Particle Systemで花火を作成する方法について。
Particle Systemの設定項目について。
Particle Systemをアバターに組み込む方法について。
アバターにアニメーションを設定する方法について。
VRChatにアバターをアップロードする方法について。
花火の作成
ここでは、最低限の打ち上げ花火を作ってみます。 パラメータの設定をいじくるとかっこいい花火ができますが、 それは各々でやってみてください。
爆発する部分の作成
新規のプロジェクトを用意し、HierarchyでCreate->Create emptyで空のオブジェクトを作成します。
空のオブジェクトの名前は"Explosion"にしておきます(任意の名前でOK)。
ここでCtrl+Sを押す、またはFile->Save Scenesを選択して、Sceneをセーブしておきます。
名前は"Test"にします(任意でOK)。
HierarchyのExplosionをクリックして、InspectorからAdd Componentで、Effects->ParticleSystemを追加します。
すると、次の画像のように紫色の四角形がたくさん出てきます。
ExprosionのInspectorにあるParticle Systemをみると、設定項目がたくさんあるのが分かります。
この項目をクリックすると、さらに設定項目が出てきます。
"Renderer"の項目を開くと、MaterialがNone、つまり何も設定されていないので、 Materialの項目の右横にある二重丸みたいなやつをクリックして、Default-Particleを選択します。
すると、さっき紫色の四角形だったのが、光る球体に変わります。
"Shape"の項目を開き、ShapeをConeからSphereに変更します。
すると球状に飛び散るようになります。
次に"Explosion"の項目を以下のように設定します。
変更点は以下の通りです。
項目 | 変更後 | 内容 |
---|---|---|
Duration | 0.1 | Particle(粒子)が出力される期間 |
Looping | チェックを外す(false) | Exprosionを繰り返すか |
Start Lifetime | 2から3 | Particleが出力されてから消えるまでの時間 |
Start Speed | 2 | 出力時のParticleの速度 |
Simulation Space | World | 出力された後のParticleがどこに従うか |
"Start Lifetime"については、項目の右横にある三角マークをクリックして、 "Random Between Two Constants"を選択します。
また、デフォルトではParticleは白色に設定されていますが、 "Start Color"の項目で色を変更できます。
次に"Emission"の項目を開き、以下のように設定します。
"Bursts"の項目で"+"ボタンを押します。
そして、"Min"を100に変更します。
一度に100個のParticleが出力されます。
これで、Paticle EffectのSimulateボタンをおすと、球状に100個のPaticleが出力されます。
以上で爆発の部分が完成です。
打ちあがる部分の作成
花火の打ちあがる部分(爆発するまでの「ピューーー」)を作成します。
同じように、HierarchyでCreate->Create Emptyを選択し、空のオブジェクトを作成します。
名前は「打ち上げる」という意味を込めて"Launch"と名付けます(名前は任意でOK)。
さらに、同じようにLaunchにAdd ComponentでParticle Systemを追加します。
まず、"Explosion"の時と同じように、"Renderer"の項目で"Material"にDefault-Particleを設定します。
次に"Launch"を次のように設定します。
変更する項目は"Explosion"と同じです。
項目 | 変更後 |
---|---|
Duration | 0.1 |
Looping | チェックを入れるとたくさん、外すと一つだけ打ちあがる |
Start Lifetime | 3から4 |
Start Speed | 2から4 |
Simulation Space | World |
次に、"Emission"を以下のように設定します。
"Bursts"の項目で"+"ボタンを押し、"Min"と"Max"を1にします。
次は"Launch"の"Transform"を変更します。
画像のように、"Rotation"の"X"に-90を入れます。
これはX軸で-90度回転させることを意味します。
その後、"Tails"にチェックを入れます。
そして、"Renderer"で"Tails Material"にDefault-Prticleを設定します。
以上で打ち上げる部分が完成です。
花火の仕上げ
現在、Hierarchyは以下の画像のようになっていると思います。
"Launch"のInspectorのParticle Systemで"Sub Emitters"にチェックを入れます。
そして、"Sub Emitters"に項目で"Birth"を"Death"に変更し、 そのとなりの"None"となっているところに"Explosion"を設定します。
すると、以下のようなウインドウが出てくると思うので"Yes, Reparent"を押します。
これで花火の完成です。
今行った設定により、"Launch"が起動し、設定した時間が経過して消えたとき、"Explosion"が起動するようになっています。
Hierarchyで"Launch"をクリックし、Scene画面内の"Particle Effect"のSimulateボタンを押すと花火が打ちあがることを確認してください。
また、Scene画面内で花火が画面外に行ってしまう場合は、Hierarchyの"Launch"をダブルクリックするとカメラがいい感じの場所に移動してくれます。
この画像では、"Launch"のLoopingのチェックを外しているので、花火は一つしか打ちあがりません。
花火をアバターへ組み込む
3Dモデルのインポート
作成した花火をアバターに組み込みます。
今回はUnity-Chan3Dモデルを使用させていただきます。
自分で3Dモデルを所持している場合はそちらをインポートしてください(ドラック&ドロップでできます)。
3Dモデルを持っていない場合はUnity-Chan3Dモデルを使用するといいと思います。 その場合は、ライセンスをしっかり守ってください。
Unity-Chan3Dモデルをダウンロードしたら、 Assets->Import Package->Custom PackageでUnity-Chanファイルを選択してインポートします。
花火をアバターへ組み込む
今回は花火をただ打ち上げることにします。
現在、Hierarchyは以下の画像のようになっていると思います。
"Launch"を3Dモデルにドラック&ドロップします。
すると、3Dモデルの中に"Launch"が入ります(入れ子の状態)。
これで花火が3Dモデルの一部になりました。
このアバターをVRChatにアップロードして花火を盛大に打ち上げて下さい。
この画像では3種類の花火を打ち上げています。
また、花火を打ち上げる場合は背景が暗いワールドを選択すると、 きれいに見えます。(この画像はSAKURA hirobaで撮りました)
補足1-アバターのアップロード方法
VRChatへアバターをアップロードする方法は以下の記事を参照してみてください。
補足2-花火作成について
今回作成した花火は最低限のものです。
よりかっこいい花火を作成したい場合は、試行錯誤したり、 検索して調べてみたり、してみてください。
また、花火以外のものも作れます。
おもしろいものをどんどん作って楽しんでいきましょう(私も色々作ってみます)。
(あんまりやりすぎると、処理が重くなってしまうかもしれないので注意。ほどほどに。)
補足3-花火の組み込み方
今回の組み込み方では常に花火が打ちあがり続けてしまいます。
HTC VIVE コントローラのボタンや、 アバターのモーションをトリガーとして、 花火を打ち上げたい場合は、アニメーションを設定する必要があります。(あとVRC Trigger)
また、花火を手から出したり、100m離れたところから出したりもできます。
以下の記事を参考にしてみてください。
おわりに
無事、VRChatで花火を打ち上げられました。
Particle Systemを利用すれば、花火以外にもいろいろ作れそうなので、チャレンジしたいです。
また記事書きます。