本日は MRTK の小ネタ枠です。
箱を開ける動作のオブジェクトにRigidbodyを設定したり回転方向を設定したりしたので手順を記事にします。
前提条件
以下の記事の続きになります。
bluebirdofoz.hatenablog.com
Rigidbodyを設定した場合の動作
前回、ObjectManipulator を設定した箱のトップオブジェクトに Rigidbody コンポーネントを設定して物理演算を試してみました。
このままシーンを再生して動作を確認してみます。
箱オブジェクト本体は Rigidbody の重力設定により、地面に落ちます。
蓋オブジェクトを掴んで箱を開いてみます。
手を放してみると……蓋オブジェクトには重力は働かないため、蓋は開いた状態で止まります。
蓋の回転方向を調整する
前回作成したスクリプトは軸を指定した場合、-90度~90度の範囲でオブジェクトを回転させます。
蓋を閉じた状態と完全に開いた状態を再現するため、オブジェクト階層を追加して蓋を立てた状態をニュートラルの 0 度に再設定しました。
Blender でエンプティオブジェクトを利用して階層構造を作成した場合、出力時の[オブジェクトタイプ]で[エンプティ]を有効にしておく必要があります。
Unity に取り込むと以下のようにオブジェクトの階層構造が設定され、開いた状態がニュートラルな回転になりました。
このままシーンを再生して動作を確認してみます。
蓋を閉める方向に蓋を動かしたり、開く方向に蓋を動かせます。
それ以上には蓋を折り曲げできません。