パーティクル・ヘアーの衝突判定

パーティクル・ヘアーのアニメーションでは必要不可欠な「ヘアーダイナミクス」ですが、今回はこのヘアーダイナミクス機能を有効にした際のパーティクル・ヘアーとメッシュの衝突判定の設定について投稿したいと思います。

パーティクル・ヘアーの衝突判定
今回はこんなものを用意しました。中央上の球体と向かって左下の球体が同一オブジェクトとなっており、そこをエミッター(発生源)としてパーティクル・ヘアーを設定しております。また、向かって右下には別オブジェクトとして球体を配置しております。
これから下の左右の球体に対して、それぞれ衝突判定を設定していきたいと思います。

ヘアーダイナミクスとコリジョンを設定
まず、エミッターとなる左下の球体には[コリジョン]を設定します。合わせて「ヘアーダイナミクス」の[衝突時の摩擦]を最大値の“1.000”に設定します。

ヘアーダイナミクス衝突時の摩擦検証
これでとりあえず検証してみると、もちろん何も設定されていない右下の球体はパーティクル・ヘアーが突き抜けます。
肝心の左下の球体に関しては、一旦は衝突しますが時間が経過するにつれて徐々にパーティクル・ヘアーがメッシュを突き抜けていきます。(単に私の設定値が良くないだけかもしれませんが・・・)

フォースフィールド「力:サーフェス」を設定
次に右下の球体には、[フォースフィールド]を設定し、タイプは[力]、形状は[サーフェス]を選択します。その他諸々、設定値を変更しておりますが、恐らく「減衰」の[最小]と[最大]の値が要になってくると思います。

フォースフィールド「力:サーフェス」検証
再度検証を行うと、衝突した際のパーティクル・ヘアーの動きがそれぞれ異なってはいますが、[フォースフィールド]を設定した右下の球体は時間が経過してもメッシュを突き抜けることはないようです。
因みに、エミッターとなる左下の球体に[フォースフィールド]を設定しても機能しませんでした。

以上、パーティクル・ヘアーとメッシュの衝突判定の検証を行いましたが、個人的には、実際にキャラクターなどでパーティクル・ヘアーを使用する場合は、エミッターとなるメッシュを別オブジェクトとして用意した方が望ましいように思います。


You may also like...