【Unity】パーティクルシステムのSkinned Mesh Rendererについて

というわけで、Unity5.3 からパーティクルシステム (Shuriken) の Shape に「Skinned Mesh Renderer」が加わったそうです!
ちょっと気になったので、どんな感じの機能か使ってみました!

パーティクル設定

当然ですが、「Skinned Mesh Renderer」が付いたオブジェクトが必要です。
3Dモデルをインポートすればメッシュに付いてくるので、適当な自作キャラクターの体を使います。

shot2ss20160907233803185

シーン内の Skinned Mesh Renderer を指定すると、パーティクル本体をどこに配置しても、指定したメッシュに合わせてレンダリングされます。
故に空オブジェクト内に整理して置いたり、キャラクターの子オブジェクトにしても問題ないようです。
他にもメッシュからの生成位置(オフセット)を調節したり、マテリアルの色をメッシュに合わせたりできます。

shot2ss20160908001214777

この状態で再生すると、上のようにキャラクターのメッシュに合わせてパーティクルが生成されます。
体からオーラが出ているような感じですね。
「Start Speed」や「Color Over Lifetime」をいじるともっとそれっぽくなります。

キャラクターのメッシュを分けている場合、その分だけパーティクルを作成・設定しておく必要があります。
画像のマリンパも「頭」「上半身」「下半身」と無駄に分かれていたりします。

何が良いかと言えば、「アニメーションの動きに合わせてパーティクルを出せる」ことでしょうか。
今までは固定のメッシュに対してレンダリングするのが限界だったので猶更ですね。
「ダッシュ中にキャラクターの形に合わせてエフェクトを出す」といったことも簡単にできるようになるかも。

いじって分かったこと

「アニメーションの動きに合わせてパーティクルを出せる」と書きましたが、その時点のメッシュの位置に合わせて生成するだけです。
生成後もメッシュに合わせて追従してくれる・・・なんてことはありません。
「Simulation Space」を Local にするとオブジェクト自体の移動には付いてきてくれますが、メッシュの移動には付いてきてくれません。
「アニメーションに合わせてリアルタイムで動かしたい」というケースでは不向きかと思われます。

また、流石に Cloth コンポーネント適用時の動きには対応してくれないようです。

shot2ss20160907232506900

マント (赤い部分) に Cloth を追加し、軽く動かした状態でパーティクルを出してみましたが、(分かりにくいですが) SkinnedMeshRenderer 元々の位置にレンダリングされます。
Cloth の動きに合わせてパーティクルを出すのは大変そうなので、こればかりはしょうがない部分でしょうか。

という点を踏まえると、使い道がありそうでないかもしれません。
手持ちの武器を光らせるのに手っ取り早いかなーと思いきや、パーティクルが追従してくれないので微妙でした。

応用例

「生成後はアニメーションの動きに合わせて移動しない」ことから、アニメーション中に断続的に生成すると残像っぽいエフェクトになります。
これを高速で動くオブジェクトに適用すると面白そう。

shot2ss20160910201151286

「Duration」と「Start Lifetime」の値を短めに調節します。
短時間にドバッとパーティクルを出す場合、Rate を0にして Bursts を設定するといい感じです。
「Simulation Space」は World に設定。
色やサイズ、スピード等はお好みで。

20160910_01

自分のキャラは小さめなのであまり実感はありませんが、頭身の高い人型ならもっと見栄えはよくなるかも。
もっとサイズやスピードを上げても良さそうですね。

まとめ

そんなわけで、パーティクルシステムの「Skinned Mesh Renderer」を試してみました!
ネタがないときはこんな感じで「Unityの気になった機能」を調べてみるのもいいかもしれません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*