2013/06/11

Blenderの軟体シミュレーションについて(その4)

前回の続きです。

ソフトボディセルフコリジョン:
  頂点に球状の領域を持たせ、球同士の衝突の判定を有効にする。
  使用するには、ソフトボディエッジ>コリジョン>辺がオンになっている必要がある。
ソフトボディセルフコリジョン>コリジョンボールサイズの計算:
  頂点に持たせる球状領域の半径の計算方法を設定する。
  マニュアル:
    辺の長さによらず、自分で設定した値(単位はBU(ブレンダーユニット))を使用する。
  平均:
    辺の長さの平均値を使用する。
  最小:
    辺の長さの最小値を使用する。
  最大:
    辺の長さの最大値を使用する。
  最小最大平均:
    辺の長さの最小値と最大値の平均値を使用する。
ソフトボディセルフコリジョン>ボール>サイズ:
  コリジョンボールサイズの計算がマニュアルなら、球状領域の半径を、
  それ以外なら、計算された値(平均値など)の係数を設定します。
ソフトボディセルフコリジョン>ボール>剛性:
  不明。
  大きくすると強く反発するようだ。
  減速が1の場合は効果がない。
ソフトボディセルフコリジョン>ボール>減速:
  球状領域内に侵入した球状領域を持つ頂点に働く反発力を弱める量。
  小さくするほど反発力は大きくなり、大きくするほど反発力は小さくなる。
  大きすぎると十分に反発せず自己交差を起こし、
  小さすぎると過剰に反発して破綻する原因になる。


ソフトボディセルフコリジョンは、その効果が非常にわかりにくいので、
実験用のモデルを用意した。

2つの立方体の一辺の長さは、0.5BUである。細分化は行なっていない。

このモデルの原理としては、空中の2つの立方体が同一のオブジェクトであるため、
通常のコリジョンではなくセルフコリジョンが働くというわけである。


まずは、サイズを変更した時の動作の違いを検証する。
重さを0.000256、エッジの減衰を0.391、曲げを10、
セルフコリジョンの計算方法を平均、剛性を0.001、減速を0.001に設定した。

1フレーム目(=0秒後)の様子。パラメータにかかわらず同じ結果になる。

サイズが10の時の6フレーム目(=0.17秒後)の様子。
サイズが大きすぎるため、お互いを押しのけてしまう。

サイズが2の時の11フレーム目(=0.33秒後)の様子。
頂点同士の距離で反発力が決まることがわかる。

サイズが0.5の時の68フレーム目(=2.27秒後)の様子。
反応が大分弱くなるが、サイズをもっと小さくする必要がある。

サイズが0.35の時の様子。
左が61フレーム目(=2.00秒後)、右が256フレーム目(=8.50秒後)。
このサイズになると、反発して上に飛ぶことはなくなるが、
右の画像の青丸部分を見ての通り、メッシュが交差している。
これ以上サイズを小さくすると、メッシュの交差は避けられなくなる。

サイズが0の時の181フレーム目(=6.00秒後)の様子。
ソフトボディセルフコリジョンをオフにした時と同じ動きになる。

サイズが-10の時の181フレーム目(=6.00秒後)の様子。
サイズに負の値を設定できるが、その目的は不明である。


次に、減速を変更した場合の動作の違いを検証する。
重さを0.000256、エッジの減衰を0.391、曲げを10、
セルフコリジョンの計算方法を平均、サイズを0.5、剛性を0.001に設定した。

1フレーム目(=0秒後)の様子。パラメータにかかわらず同じ結果になる。

減速が0.001の時の121フレーム目(=4.00秒後)の様子。
減速が小さすぎて、過剰な反発をしていることがわかる。

減速が0.7の時の241フレーム目(=8.00秒後)の様子。
減速が0.001の時と比べれば、
基本的に、減速に小さな値を設定するべきでないことがわかる。

減速が0.782の時の251フレーム目(=8.37秒後)の様子。
これ以上、減速を大きくするとメッシュが交差するようになる。

減速が0.783の時の251フレーム目(=8.37秒後)の様子。
青丸で示した部分が交差している。

減速が0.8の時の様子。それぞれ別の方向から見ていることに注意。
左が241フレーム目(=8.00秒後)、右が333フレーム目(=11.07秒後)。
頂点が立方体の中心に食い込んでしまっている。

左が減速が1の時の266フレーム目(=8.83秒後)の様子。
右はソフトボディセルフコリジョンをオフにした時の266フレーム目(=8.83秒後)の様子。
ソフトボディセルフコリジョンがオフの時と違って、
斥ける移動力は生じないが減速はすることがわかる。


最後に、剛性を変更した場合の動作の違いを検証する。

……はずっだったが、このパラメータがどのように動作するのか全く不明なため、
検証できないでいる。

0 件のコメント:

コメントを投稿