(本記事はUnity Version 2017.4.15f1に対応しております)
こんにちは~♪♪ケーキです!!
前回に引き続き、今回もパーティクルについてをご紹介したいと思います!
して、今回やるのは”アバターからパーティクルを出してみる!!(ワールド編)”です!!
ワールドパーティクルはローカルパーティクルと設定方法が若干異なります。
ですが、作業的に難しいものでもないのであまり困ることもないかもしれません♪♪
ローカル編はこちら→“パーティクルを入れてみよう♪(ローカル編)”
前回でも少し書きましたが、パーティクルについて軽く説明しておきますね。
パーティクルとは・・・?
奇麗なエフェクトや表現をしたり、使い方次第でいろいろなことができるUnityの標準Systemの1つです。
ワールド編・・・?
パーティクルにはローカルとワールドの設定があり、簡単に説明すると
●ローカル:パーティクルは設定したオブジェクト(アバター)に追従する
●ワールド:パーティクルはワールドの物理法則(演算)に準ずる(アバターの動きに追従しなくなる)
目次
準備するもの
モデル
パーティクルを実装させたいアバターをご用意ください。
私はキラキラ目を入れたクレリックちゃん(ぽんでろ様作成)に実装していきます。
出したいエフェクト(パーティクル)の画像
今回私がやりたいのはこんなことです↓↓↓
こんな感じ(?)というか某雪の女王みたいにありのままに手から雪の結晶を出していこうと思います!!
そこで今回使用させていただきます画像はこちら
こちらは”かわいいスタンプ・判子・イラストのフリー素材集”様の雪の結晶です。
とてもかわいいスタンプ画像がたくさんあります!!
モデルにパーティクルを設定していこう
ではさっそくUnity画面での設定作業をしていきましょう!!
パーティクルシステム,マテリアルの作成
最初にパーティクルを発生させるためのシステムとエフェクトのマテリアルを作成していきましょう。
UnityのHierarchy(左上)からアバター名にて右クリック→「Create Empty」を選択し「GameObject」を作成しましょう。
次に作成した「GameObject」で右クリック → 「Effects」 → 「Particle System」を選択しましょう。
※Armature内にGameObjectが入らないようにしましょう。(画像だとArmatureと同じ階層に作成している)
作成したGameObjectとParticle Systemはわかりやすいように名前を変更しておきましょう(GameObject → Snow_Particle, Particle System → Snow_Crystal)(任意)
次にマテリアルを作成していきます。
UnityのProject(左下)Assets内にて右クリック → Creat → Folder、名前を「Particle」としました。
Particleフォルダ内で右クリック → Create → Material
(私は以前のローカルで作成していたのでそこにマテリアルを作成し名前を”Crystal”としました。(任意))
作成したマテリアルのシェーダーも設定をしておきましょう。
マテリアル選択後、UnityのInspecet(右側)内のShader → Particles → Additive を選択。
Particleフォルダ内に用意した画像も入れ、マテリアルに反映しましょう。
次からは細かい設定を行っていきます。
パーティクルの設定
出したいものの大きさ・向き・位置をわかりやすくするため最初にマテリアルを設定しましょう。
Hierarchy内パーティクルシステムを選択、Inspector内Particle System → Rendererにてマテリアルをドラッグ&ドロップしてください。
次にパーティクルの大きさや発生させたい向きと位置など細かい設定を決めていきます。
設定するのはInspector内のTransFormとParticle Systemの基本部分を設定してきます。
Particle Systemの基本設定は以下のようにしました。
中でもSimulation Spaceの”World”設定だけは必ずしましょう!!(これがワールドパーティクル設定の要です)
パーティクル発生源位置の移動もします。
移動の際はParticle Systemが入っているGameObejectのTransFormを使って移動させてください!
ついでにパーティクルエフェクトがいい感じに回転する設定も入れておきます♪
(これはお好みで)
ここまででパーティクルのだいたいの基本設定は完了です。
基本設定はローカルとあまり変わらないですから楽ですね♪
最後の設定としてパーティクルをモデルの出したい位置との設定をしなければいけません。
(現段階ではArmatureの外に出ているため出したい位置に追従されません。)
この設定の際にはUnityコンポーネントの“RigidBody”と“FixedJoint”を使用します。
ではやっていきましょう♪♪
まずは出したい位置の設定をしていきます。
今回でいうとクレリックちゃんの右手の平から出したいため、モデルArmature内のHand.Rで進めていきます。
Hnad.Rまでたどり着いたらInspector内のAdd Componentにて「Rigid」などで検索し”RigidBody”を追加します。
追加したら画像の赤枠のように設定してください。
Angular Drag:0に変更, Use Gravity:チェックを外す
次にFixedJointを設定していきます。
こちらはパーティクルが入っているGameObjectに設定していきます。
Armatureの外に出ているGamebject(Snow_Particle)を選択しInspectorからAdd Component、「Fixed」などで検索し追加します。
FixedJointを追加するとRigidBodyも一緒に追加されます。
追加されたら画像のように設定します。
FixedJoint内Connected Bodyでは先ほど右手に設定したRigodBodyを入れる。
このRigidBodyとFixedJointが何をしているかと言うと、
Armatureの外にあるパーティクルと、アバターの体(今回は右手の平)にそれぞれRigidBodyを設定し、それをFixedJointで接続している状態となっております。
これでワールドパーティクルの設定は終了になります!!
あとはこれをアニメーションオーバーライドの設定に組み込むことで任意のモーションをしたときにパーティクルが出てくるようになります。
※アニメーション設定の際に非表示に設定するものはGameObject内部のパーティクルのみでよいです。
”アニメーションオーバーライドを入れてみよう!!(物・手編)”←こちらを参考にしてください。
では実際にアップロードして見てみましょう♪♪
動画も撮ってみました!
最後に
以上、ローカルに引き続きパーティクル・ワールド編でした!!
いざ書いてみると文字量が増えてしまい難しく見えてしまいそうな感じがしますねぇ・・・
でもでも実際に作業してみるとそんなに大したことなかったりもしますので、技術の一つとしてチャレンジしてみてはいかがでしょうか??
工夫をすれば自分の歩いた後に足跡を付けるだったり寒いときに白くなる呼吸とかもできるかもしれませんね♪♪
(今思いついたこと)
ではでは今回はここまで!
最後まで読んでいただきありがとうございました!!