久しぶりのVRChatであれこれしたい記事です。
「足元からオーラを出したい」の2020年バージョンです。
Unity2018のParticle systemで追加された機能も含めて紹介します。
ついでに今まではunityのrigid bodyでアバターとの連動を実装していましたが
今回はConstraintで実装してみます。
今回の実装範囲
- パーティクルで表現するテクスチャーを作成する
- Particle systemでパーティクルを実装する
- パーティクルをConstraintでアバターと連動するようにする
パーティクルで表現するテクスチャーを作成する。
今回は四角の枠のフレームを作ります。文字にすると「□」です。
作り方はキャンバスの全部を選択した範囲を縮小し、そこから漏れた部分を塗りつぶす方式です。
- GIMP起動します。今回はGIMP2.10使います。
- 新規作成でこんな感じの設定やります。
- Ctrl+Aで全てを選択し、選択範囲の縮小をします
縮小では20くらいにしておきましょう。
自己主張強めでいくなら25以上でもいいかもしれません。 - 選択範囲の反転をして外枠を選択した状態にします。
- 外枠を選択した状態で、塗りつぶしを行います。
- 後はpng形式でファイルを保存します。
Particle systemでパーティクルを実装する
せっかくなので2018.4.20f1でできることやります。
unity 2018ではBufferModeやRectangleなど様々なアップデートが入っていますが
今回はOrbital Velocityを中心に実装します。
Orbital Velocityは設定した軸を中心に、渦巻くような軌道が作成できます。
■下準備
- 上で準備したテクスチャーのマテリアルを作成します。
- Projectタブ内で右クリック[Create]->[Material]より作成します。
- 作成したマテリアルのシェーダーを
TintColorは真っ白にし、Alphaを255(不透明)にします。
■作業
- アバターの中にCreate Emptyで空のGameObjectを作成します。
- 作成したGameObjectの中にParticle Systemを作成します。
- 各パラメーターを以下の設定にします。
後々変更していって構いません。
Particle Systemメイン
・StartSpeed:0.3
・StartSize: 0.04
・StartColor:決まった色でもグラデーションでもお好きにどうぞ
・Simulation Space:World
・Max Particles:100
Emissionタブ
・Rate over Time:15
Shapeタブ
・Angle:50
・Shape-Radius:0.1
Velocity over Lifetimeにチェックを入れます
・OrbitalのZ:0.5
Size over Lifetimeにチェックを入れます
・徐々に消えるようにしたいので右肩下がりの線にチェック
Rendererタブ
・Render Mode:Mesh
-Mesh:Cube
・Material:■下準備で用意したマテリアルを適用
・Render Alignment:World
- 足元に設置するためのPositionの設定をします。
今回はお腹あたりに追従させたいのでGame ObjectのPositionをChestに近づけておきます。
パーティクルは足元に出したいのでParticle systemのPositionは足元に近づけます。
パーティクルをConstraintでアバターと連動するようにする
- Game ObjectのInspectorよりAddComponentでParentConstraintを追加します。
- ParentConstraintのIs Activeにチェックをいれ、Sourcesを[+]で追加しそこにChestを入れます。
ひとしきりできたら再生ボタンを押してパーティクルが出ていることを確認します。
これでタイトルみたいなのができているはず!
他にも面白そうな機能はありますが、私の頭では理解できませんでした。
いかがでしたでしょうか。
■おまけ
2020年5月2日時点で自分のアバターに使っているパーティクルの設定です。
かなりランダム性を強めたオーラが放てます