見出し画像

Blender パーティクルが貫通する件。

自分が忘れぬうちに急いで書いたので、体裁がおかしいかもしれませんが、ご了承ください・・・

あと、自分がハマったことの備忘録なので、
ベテランの方は「は?何言ってんのこいつ」とか思われるかもしれませんが
どうか温かい目で見守ってください

よ~し!今日はパーティクルだ!なんかフォースフィールドいろいろ弄って遊ぼ♪・・・ん?

「つらぬけーっ!!!」

ボールが貫通している!!!!!!

ってなわけで、ハマりました。
いろいろググった(英語でもググってみた)んですが、なかなか解決策が
見つからず・・・(検索ワードの問題かもですが)

クロスシミュレーションの貫通についての解決策は
いっぱい出てくるのですが、
パーティクルVSオブジェクトの貫通問題は
なかなか記事が見つかりませんでした。。。

数多のチュートリアルをいろいろ見ながら、パラメータを弄りまくった結果
解決策を発見したのでご紹介いたします。

とはいうものの、めっちゃ単純ですw

使用環境:
CPU: Xeon E3 -1505M @ 3.00Ghz
GPU: NVIDIA Quadro M2200(ドライバー最新)
RAM: 48GB
(なのでマシンの問題でないはず)

とりあえずセットアップ

箱(以下「升」)、増やすUV球、パーティクル発生平面を用意
(ググったら作り方など出てきます)

ちゃちゃっと作成

①平面を選択して、
プロパティ>パーティクルプロパティから「+」押してパーティクル作成

②このままだと途中で消えるので、「寿命」をタイムラインの再生フレームの終わり(デフォルトでは200のはず)に設定

③プロパティ>パーティクルプロパティ>レンダーから
レンダリング方法オブジェクト
スケールをそこそこに設定し
オブジェクト>インスタンスオブジェクトに球を選択

④次に升を選択し、
プロパティ>物理演算プロパティからコリジョンリジットボディ
それぞれ適用

⑤自分はボールに跳ねてほしくなかったので、
コリジョン>パーティクル>減衰
を0.5くらい、
摩擦を1.0に設定

ここまで長々書きましたが、設定にそんなに時間かかんないと思います

いざ、再生!(スペースキー)

*冒頭の画像と球のサイズ変えています

一見、うまくいっているように見えるが・・・?

サイドビュー(「3」キー):

超えてるやんけ!

赤い矢印で示したのが升の内側の底ですが、球が貫通しています。

なんで貫通してんだろ、って気になって、

まず出てきた
コリジョン>ソフトボディとクロス外側の厚さ・内側を調整してみるという方法を試してみましたが、効果なし

ここいろいろ弄ってみたが効果なく

メッシュ>ノーマル>面の向きを外側にそろえる(Shift+N)をするも
効果なし

いろいろ悪戦苦闘した結果。。。
単純でした!

解決方法:

平面を選択し、
プロパティ>パーティクルプロパティ>物理演算タブ内
「衝突」の「衝突にサイズを反映」
をチェック

・・・ただそれだけ

パーティクルの物理演算メニュー
チェック!

すると・・・

貫通しなくなった!

球の貫通が改善されました!

なんでうまくいくのか?

Blender公式リファレンスで該当部分をチェックすると・・・

Size Deflect
Use the particle size in deflections.

Blender3.3公式リファレンスより

パーティクルのサイズを(衝突の)動きのずれに反映
・・・ってそのままじゃん

というわけで、よくわかりません
(私の知識・経験不足ですみません)

たぶん、このチェックによって球の外周まで衝突計算に加味されるのかな?Blender学習を進めるうちに、
理解できる自分になれることを期待します!(無責任)

というわけで、この記事がみなさんの参考になれば幸いです!

この記事が気に入ったらサポートをしてみませんか?