【Blender】剛体のコリジョン(衝突)のシェイプ設定とコリジョングループ(3/5)

記事執筆時のBlenderバージョン:2.77a(2016年当時のバージョン)

Blenderの物理演算機能の1つである「剛体」での、「オブジェクト同士のコリジョン(衝突)判定」などについての色々なメモ。

スポンサーリンク

コリジョン(衝突)の形状とは?

例えば、以下のようなシミュレーションがあったとします。

コリジョン(衝突)の判定とは?2
▲[厚みのある平面]に、[立方体]を落下させた様子

この場合↑は、違和感なく衝突しますが、

例えば、以下↓のように、[厚みのある平面]に「面の差し込み」+「押し出し」で”窪み”を作って、その窪み部分に[立方体]を落下させると、実際より上の部分で衝突してしまいます。

上の部分で衝突2
▲[窪みのある平面]に、[立方体]を落下させた様子

こういう時、[厚みのある平面]の衝突コリジョンの”形状”を変更してやる事で、以下↓のように違和感なく衝突させる事ができます。

シェイプ_メッシュ2
▲厚みのある平面に、立方体を落下させた様子

このように、衝突する形状の条件をきちんと設定してやらないと、意図するシミュレーション結果になりません。

衝突させるオブジェクト同士の形状を考慮して、衝突の形状条件を設定してやる必要があります。

コリジョン(衝突)のシェイプ(形状)設定

コリジョン(衝突)の形状(シェイプ)は、[剛体コリジョン]パネルの中の「シェイプ:」より設定できます。

[剛体コリジョン]パネルの中の「シェイプ:」1

メッシュ

メッシュの形状を完璧に再現できる衝突条件です。(重心はオブジェクトの原点になる)

ただし、その分処理が遅めです。

シェイプ_メッシュ2メッシュ_コリジョン
▲立方体:ボックス 土台:メッシュ
(凹部分のシミュレーションも正確に行える)
▲立方体:ボックス 土台:メッシュ
(凸部分のシミュレーションも正確に行える)

凸包

メッシュの頂点間を結んだ形状の衝突条件になります。(重心はオブジェクトの原点になる)

上の部分で衝突2凸包2
▲立方体:ボックス 土台:凸包
(頂点間なので、単純な凹部分は平面になる)
▲立方体:ボックス 土台:凸包
(頂点間なので、凸部分などは傾斜のような形になる)

円錐

高さがZ軸、半径は X または Y 軸の大きい方を使用した円錐が衝突条件になります。Z軸が上方向となります。(重心は常に円錐の中心になる)

円錐_衝突円錐_衝突_ずらs
▲立方体:ボックス 土台:円錐
(円錐部分が衝突条件になり、それ以外の部分はすり抜ける)
▲[編集モード]にした状態で移動すると、円錐の形状をずらす事が可能

円柱

オブジェクトの円柱形状が衝突形状になります。(重心は常に円柱の中心になる)

円柱_衝突
▲モンキー:円柱 土台:凸包
(モンキーのバウンディングボックス(半径)が衝突対象)

カプセル

オブジェクトのカプセル形状が衝突形状になります。(重心は常にカプセルの中心になる)

カプセル_衝突
▲モンキー:カプセル 土台:凸包
(モンキーのバウンディングボックス(半径)が衝突対象)
※土台は傾けている

オブジェクトのバウンディングボックス(半径)が衝突形状になります。(重心は常に球の中心になる)

球_衝突
▲モンキー:球 土台:凸包
(モンキーのバウンディングボックス(半径)が衝突対象)
※土台は傾けている

ボックス

オブジェクトの”バウンディングボックス”が衝突対象になります。(重心は常にボックスの中心になる)

ボックス_衝突
▲モンキー:ボックス 土台:凸包
(モンキーのバウンディングボックスが衝突対象)

処理の重さ

処理の重さは

メッシュ > 凸包 > 円錐 ≒ 円柱 ≒ カプセル ≒ 球 ≒ ボックス

という感じで、「メッシュ」が一番重くなります。次いで「凸包」です。

この2つは、オブジェクトの形状を元に計算されるので、再現性が高い分、負荷も重くなります。

コリジョングループ

コリジョングループでは、衝突するオブジェクトのグループを設定できます。

同じグループに属している剛体同士だと衝突がシミュレーションされますが、異なるグループに属している剛体同士だとスリ抜けるように出来ます。

コリジョングループ_同じコリジョングループ_2
▲土台:コリジョングループ1
UV球:コリジョングループ1
立方体:コリジョングループ1
(全て同じコリジョングループ)
▲土台:コリジョングループ1、2
UV球:コリジョングループ1
立方体:コリジョングループ2
(UV球と立方体は異なるコリジョングループ)
コリジョングループ_3コリジョングループ_4
▲土台:コリジョングループ2
UV球:コリジョングループ1
立方体:コリジョングループ1
(土台をすり抜ける)
▲土台:コリジョングループ1
UV球:コリジョングループ2
立方体:コリジョングループ1
(UV球と土台は異なるコリジョングループ)

 

コリジョングループは、[剛体コリジョン]パネルの「コリジョングループ:」より設定できます。

コリジョングループを複数選択する場合は、Shiftキー+左クリックを押します。

コリジョングループを複数選択2

 

このページの情報は以上です。

コメント

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