スクリプトとしての「物理」機能で何ができる ?
「物理アシスタント」は、Shade3D ver.16.1で追加されたウィジットになりますが、
この機能はPythonスクリプトとして追加された関数(メソッド)を使用しています。
「物理アシスタント」ウィンドウを使用しない状態で、物理運動の計算をさせることができます。
この「物理」機能で操作できるスクリプト命令は以下のものがあります。
- 剛体またはソフトボディ同士の衝突判定
- レイキャスト : 物理機能を使用した形状に対するレイ(位置と方向ベクトルを持つ)の衝突判定
- 形状をボックスとして囲ったOBB(Oriented Bounding Box)を計算
剛体またはソフトボディ同士の衝突判定
変形しない「剛体」または、変形が伴う布のような「ソフトボディ」を
物理シーンに配置し、
物理時間を進めることにより形状を移動させることができます。
「物理アシスタント」ウィンドウで操作できることは、主にこの機能を利用しています。
剛体の接地や布などのソフトボディの変形処理を行うことができます。
レイキャスト
物理空間上の形状に対して位置と方向を持つ「レイ」を飛ばし、
形状に衝突した場合はその情報(位置、衝突面での法線、衝突形状)を返します。
上画像では、球のポリゴンメッシュに対してレイを飛ばし、
衝突した位置に赤い球を配置しています。
レイキャストにより衝突位置の判定のほか、
衝突位置を使った接地処理、
衝突した面から指定の距離だけ浮かしてフィットさせる処理(ラインフィットの実装)、
など、応用が利きます。
OBBを計算
指定の物体を囲む傾いたバウンディングボックスを、OBB(Oriented Bounding Box)として計算します。
これにより、衝突判定を効率化します。