Hull)に変換するスクリプトを作ってみました。エフェクト制作の記事をお読み頂き有難うございます。紹介させて頂いたエフェクトで「オーラエフェクト」「爆発エフェクト」で使用したスプライトシートを配布させて頂きますので、この機会に是非お使い下さい。早いもので、もう年が明けてから10日近く経ってしまいましたね。昨日から仕事の人も居るかと思いますがお互い頑張っていきましょう!!さて今回は前回の「オブジェクトをパーティクル化してみて色々触ってみよう」の続きをやっていこうと思います。今回は「オブジェクトをパーティクル化」してみて色々触ってみようと思います。適当なSphereを作って、横に移動する様にアニメーションを付けます。次にTPを作り以下の感じでグループを作ります。平成が30年なので覚えやすいですね。今日のTP解説は「コンディション(条件)」についてです。早いもので、もう年が明けてから10日近く経ってしまいましたね。昨日から仕事の人も居るかと思いますがお互い頑張っていきましょう!!さて今回は前回の「オブジェクトをパーティクル化してみて色々触ってみよう」の続きをやっていこうと思います。前回はこんな感じの組み方で終わっていましたよね前回の最終結果としては、「red」のグループに対して「blue」のグループがめり込んでいます。「おもいっきしめり込んどるがなー!」という訳で修正していこうと思います。「SC」という名称のグループを作って「red」「activePrt」「force」のグループを子供に入れてあげます。次に、「SC」とう名称のDynamicSetを作り、「Operators」→「SharpeCollision」→「SC」ノードを作ります。SCというのは衝突シミュレーションをするノードでパラメーターロールアウトのGroupの項目に入っているグループがシミュレーションの対象になります。「SC」グループを選んであげます。することによって、「SC」グループの子供である「red」「activatePrt」「force」「blue」グループも対象になります。タイムスライダーをスクラブ(進めて)あげて確認してみます。ん~~~ちゃんと衝突シミュレーションをしているんですが、球体「activatePrt」グループも弾かれてどっかに吹っ飛んでしまっています。「Active」「Neutron」「Frozen」という項目があります。「Frozen」なら衝突判定して自分がある一定の力が掛かったら動いてしまう物になります。「red」グループと「activatePrt」グループは「Neutron」に変更してあげます。値を大きくするとポンポンとバウンドします。「DynamicFriction」パーティクル同士が衝突した瞬間の時の摩擦で、高い値だと収まった動きになります。Friction」パーティクル同士が連続して接している時の摩擦で、低い値だと氷が滑っているような動きになります。再度、タイムスライダーを動かして確認してみます。今度はちゃんと球体が弾かれずに衝突している事が確認出来ました。見てみてみると球体が当たる前から重力が破片が落ちていってしまってます。それもそのはずだって、「blue」グループになった時に「force」グループの子供になっているから「red」から「blue」にグループが変わった瞬間に重力が掛かってしまうからです。それを防ぐ為「force」DynamicSetの所で「force」グループが”衝突を受けたらその時はじめて重力が掛かる”様にしていきます。「force」グループの”Velocity”アウトプットから「Threshold」の”Value”インプットに繋いで、”Out”アウトプットから「Force」ノードの”On”インプットに繋いであげます。Threshold1には1、Threshold2には9999の値を入力いていて「Inside(内側)」をチェックしています。することによって「force」グループのVelocity(速度)が1を超えた時(つまり衝突でちょっと動かされた時)に重力が掛かる様になります。どや!ということで、球体が衝突する迄重力が掛からなくなりました。衝突の勢いに欠けるので球体の飛んでいる速度が影響する様にします。「attack」という名称のDynamicSetを作り、下図の様にノードを繋げていきます。ここでは何をしているかというと「blue」グループに対して球体「activatePrt」のVelocity(方向を持った速度)が適用される様にしています。これで、球体の衝撃がより伝わるようになりました。視点を変えて見てみます。すると、当然ですが瓦礫「blue」グループが重力によって下に落ちていっています。この位の個数なら別に問題ないですが、量が増えてくるとシーンが重くなってきたりキャッシュの容量が増えたりするので、カメラの視野外にあるパーティクルは「削除」していきましょう。「killByInmesh」という名称のDynamicSetを作り、以下の様にノードを組んでいきます。ここでは何をしているかというと「InMesh」ノードというノードを使って指定したオブジェクトの中にパーティクルが入ったら「ParticleDie」ノードというパーティクルが消えるノードがオンになる様にしています。「Node」ノードには別途作ったBoxをピックしています。することにより、Boxに「blue」グループがめり込んだら、パーティクルが消えました。最後にキャッシュ(計算した結果をファイルとして出力)を書き出してみましょう。キャッシュを出力することによって2回目以降の再生がスムーズになります。Record」をクリックするだけです。PS:「ここをこうしたら良いんじゃない?」とかご意見、ご感想はツイッターで頂けると幸いです。mono-labページ上部へ戻る。