MRが楽しい

MRやVRについて学習したことを書き残す

箱を開ける動作のオブジェクトにRigidbodyを設定したり回転方向を設定したりする

本日は MRTK の小ネタ枠です。
箱を開ける動作のオブジェクトにRigidbodyを設定したり回転方向を設定したりしたので手順を記事にします。
f:id:bluebirdofoz:20211121223550j:plain

前提条件

以下の記事の続きになります。
bluebirdofoz.hatenablog.com

Rigidbodyを設定した場合の動作

前回、ObjectManipulator を設定した箱のトップオブジェクトに Rigidbody コンポーネントを設定して物理演算を試してみました。
f:id:bluebirdofoz:20211121223607j:plain

このままシーンを再生して動作を確認してみます。
箱オブジェクト本体は Rigidbody の重力設定により、地面に落ちます。
f:id:bluebirdofoz:20211121223618j:plain

蓋オブジェクトを掴んで箱を開いてみます。
f:id:bluebirdofoz:20211121223627j:plain

手を放してみると……蓋オブジェクトには重力は働かないため、蓋は開いた状態で止まります。
f:id:bluebirdofoz:20211121223639j:plain

蓋の回転方向を調整する

前回作成したスクリプトは軸を指定した場合、-90度~90度の範囲でオブジェクトを回転させます。
蓋を閉じた状態と完全に開いた状態を再現するため、オブジェクト階層を追加して蓋を立てた状態をニュートラルの 0 度に再設定しました。
f:id:bluebirdofoz:20211121223651j:plain
f:id:bluebirdofoz:20211121223703j:plain

Blender でエンプティオブジェクトを利用して階層構造を作成した場合、出力時の[オブジェクトタイプ]で[エンプティ]を有効にしておく必要があります。
f:id:bluebirdofoz:20211121223713j:plain

Unity に取り込むと以下のようにオブジェクトの階層構造が設定され、開いた状態がニュートラルな回転になりました。
f:id:bluebirdofoz:20211121223725j:plain

このままシーンを再生して動作を確認してみます。
f:id:bluebirdofoz:20211121223736j:plain

蓋を閉める方向に蓋を動かしたり、開く方向に蓋を動かせます。
それ以上には蓋を折り曲げできません。
f:id:bluebirdofoz:20211121223747j:plain
f:id:bluebirdofoz:20211121223757j:plain