12/9(月) 応用科学学会シンポジウムで自動運転に関する講演を担当します☆彡

19-9. 【Blender】とがった物に布を掛けたい

やりたいこと

先端がとがっている物に、クロスシミュレーションで布を掛ける。

起きたこと

シミュレーションの条件

布オブジェクトと、障害物オブジェクトを用意し、それぞれ下記のように物理演算の設定をします。

布オブジェクト
・頂点数:10,404
・物理演算:クロス
・コットンのデフォルト設定を使用
・セルフコリジョンあり

障害物オブジェクト
・物理演算:コリジョン
・設定はすべてデフォルト

シミュレーションの結果

布が障害物を貫通してしまいました。

実験1

まずは、クロスシミュレーションの設定項目の中から、貫通現象と関係がありそうな項目を独断と偏見で選んでいきます。
今回は、下記3項目が結果に与える影響を見ることにしました。
・品質のステップ数
・コリジョンの品質
・コリジョンの距離

それぞれの項目の詳細は、こちらの公式ドキュメントをご参照ください。
https://docs.blender.org/manual/en/latest/physics/cloth/index.html

「品質のステップ数」の影響

「品質のステップ数」を5(初期値)→10→20→30と変更してシミュレーションを実行しました。
それ以外の項目は初期値です。
20と30であまり変化が見られなくなったため、30で終了としました。

「コリジョンの品質」の影響

「コリジョンの品質」を2(初期値)→10→15→20と変更してシミュレーションを実行しました。
それ以外の項目は初期値です。
20が設定可能な最大値です。

「コリジョンの距離」の影響

「コリジョンの距離」を0.015(初期値)→0.05→0.075→0.1と変更してシミュレーションを実行しました。
それ以外の項目は初期値です。
布が障害物を登り始めたので、0.1で終了としました。

実験1まとめ

「品質のステップ数」と「コリジョンの品質」の数値を上げるという方針がよさそうです。
「コリジョンの距離」の数値を大きくしてしまうと、布の挙動が不自然になったため、こちらは初期値のままにしておきます。

実験2

次は、「品質のステップ数」と「コリジョンの品質」をいろいろな数値で組み合わせてシミュレーションしてみます。

「品質のステップ数」を10に固定

「品質のステップ数」を10に固定して、「コリジョンの品質」を10→15→20と変更してシミュレーションを実行しました。

「品質のステップ数」を20に固定

「品質のステップ数」を20に固定して、「コリジョンの品質」を10→15→20と変更してシミュレーションを実行しました。

「品質のステップ数」を30に固定

「品質のステップ数」を30に固定して、「コリジョンの品質」を10→15→20と変更してシミュレーションを実行しました。

実験2まとめ

「品質のステップ数」が10のとき、障害物の先端付近の布がボコボコと膨らんでしまい、変な挙動をしています。
「品質のステップ数」を20にすると、上記の挙動が収まっているように見えます。
「品質のステップ数」を30にすると、再び布がバタバタし始めました。
「コリジョンの品質」は10以上であれば貫通せず、10~20で違いはあまりないようです。

まとめ

以上の結果から、次の条件がよさそうです。
・品質のステップ数:20
・コリジョンの品質:10
上記の設定に加えて、障害物の先端付近で布がボコボコ膨らむ変な動きをごまかすため、サブディビジョンサーフェス(ビューポートのレベル数:1)をかけてみました。
最終的な結果がこちらです。

タイトルとURLをコピーしました