アセット機能 その6 物理処理
Unityの物理処理は重力による落下や、物体同士の衝突など 様々な目的で使用されますが、ここでは「やわらかいプリン」を手で触ったり、揺らしたり、持ち上げたりといったデモンストレーションをします。
1.使い方
(1) ダウンロードと転送
sample_pudding.zipをダウンロード。
解凍してできる 「sample_pudding.assetbundle」をQuestへ転送します。
ダウンロードページ
アセット機能の使い方
(2) スロット1
アマレコVRを起動し アセット画面からスロット1へ 「sample_pudding」をロードします。

初期状態だと 読み込んだプリンは重力で落下して すぐに見えなくなります。
(3) スロット1のプリンをテーブルに変える
sample_puddingにはプリンのほかに複数のアイテム(プレハブ)が含まれていますので、スロット1のアセットメニューから 「table」を選択します。

テーブルは重力で落下しないように設定されていますので、目の前に固定されます。

テーブルが視界内に見えない場合は 位置と向きをリセットしてください。
また、環境光と平行光もONにしてください。OFFだと全て真っ黒になり視認できない場合があります。
(4) スロット2
続いてスロット2も sample_puddingをロードします。
こんどはテーブルがあるのでプリンはテーブルの上にとどまります。

(5) 手で触る
アマレコVRのコンソール画面の下部から ハントラの表示をONにします。

ハンドトラッキングの手が表示されたら プリンを触ったり動かしたり、ひっくり返すことができます。
手が表示されない場合は Quest側のハンドトラッキング機能が無効になっているので Quest側の設定を行ってください。
(6) そのほか
・落下してしまったプリンは アセット画面のリロードから復活させることができます。
・カスタードプリンは回転(ひっくり返る)します。持ち上げるにはひっくり返らないよう両手で支える必要があります。
・ノーマルプリンは回転しません。回転しないので指先一つで持ち上げることができます。
・テーブル ムーブはテーブルが上下に動きます。テーブルの動きにより プリンが揺れます。
・無理な力を加えるとプリンは壊れます。リロードしてください。
2.プリンの作り方
アセットファイルのほかにプレハブ等、アセットの作成に必要なファイルを同梱していますので興味がありましたら以下を確認してみてください。

2.1.プリンの3Dモデル(FBX形式)を作る
Blenderを使って主に以下のように作りましたが、FBXファイル(Resources/pudding.fbx)を同梱するので詳細は割愛します。
(1) メッシュの円柱を追加する
(2) 円柱をプリンのような台形に変形させる
(3) 縦の辺を4つに細分化する
(4) アーマチュアを設定する
(5) FBX形式でエクスポートする
2.2.Unityエディタでプリンの3Dモデルへ物理処理を仕込む
アーマチュア内の各Boneへ 物理処理の基本となる「Rigidbody」、当たり判定のための「Box Collider」、各Rigidbodyを繋ぐ「Configurable Joint」を追加します。
一通り設定したプレハブがResources/Pudding.prefabとなりますのでUnityエディタで確認してみてください。

※ Jointには様々な種類が用意されていますが、現時点のアマレコVRで使えるのは「Configurable Joint」のみです。
2.3.プリンと カスタードプリン
ノーマルのプリンは回転しないように(ひっくり返ったり、斜めになったりしないように) 基礎となるBoneのRigidbodyの「Constraints」で回転凍結をONにしています。
これにより 基礎となるBoneが回転しなくなります(斜めに傾いたりしません)。
なお、そのほかのBone.xxxの回転凍結はOFFとします。なので斜めに揺れたりします。

一方、カスタードプリンの回転凍結はOFFとなっています。この場合 物理処理によりBoneが回転し 全体がひっくり返ったりします。

2.4.テーブルを作る
Unityエディタの3Dオブジェクトのキューブへ「Rigidbody」と「Box Collider」を追加して作ります。
一通り設定したプレハブがResources/Table.prefabとなりますのでUnityエディタで確認してみてください。
2.5.動くテーブル
Unityのアニメーション機能でトランスフォームのPositionを上下に動かします。
アニメーションファイルがResources/move_anim.animです。
ゲームオブジェクトからアニメーションを管理するコントローラーがResources/move_controller.controllerです。
テーブルのゲームオブジェクトへコントローラー「Resources/move_controller.controller」を追加することで上下に動きます。
最終的な動くテーブルのプレハブはTable_Move.prefabとなります。
3.アセットの作成(複数のプレハブ)
ここでは複数のプレハブをまとめて 一つのアセットファイルにする方法を説明します。
キャラクターの色違いや服の違い、髪型の違いなど同じキャラクターだけどバリエーションがある場合などに有効です。
(1) 新しいアセットを作る
Unityのツールバーの「Window」から「AssetBundle Browser」を表示します。
AssetBundle Browserが無い場合は「アセット機能 その2 基本的なアマレコVR用アセットの作成」を見てください。
「Configure」タブを選択し右クリックのメニューから「Add new bundle」を選択します。

(2) 名前を sample_puddingにする

(3) アセット構成リストへプレハブを追加する
アセットファイルへ加えたいプレハブファイルを「AssetBundle Browser」の右側のリストへドラッグ&ドロップし追加します。

以下のように プレハブ4つと その構成要素が一つのリストになっていればOKです。

(5) ビルド
ビルドの仕方は「アセット機能 その2 基本的なアマレコVR用アセットの作成」を見てください。
【テスト方法】
なんどもアセットの修正、 ビルド、 アマレコVRで確認を繰り返す場合は アマレコVRサーバーからアセットファイルを使う方法 をお勧めします。
(6) アマレコVRからプレハブを読み込む
アマレコVRのアセット画面でアセットファイルをロードした後、右側のアセットメニューから アセットファイルに含まれているプレハブを選択できます。

- 関連記事
-
- アマレコVR Ver2.3.1 for Pico4 アルファ版 背景透過EX
- アマレコVR Ver2.3.2 背景透過EX Quest版
- アマレコVR Ver2.3.3 for Pico4 アルファ版 背景透過V2
- アマレコVR Ver2.3.3 背景透過V2 Quest版
- アマレコVR Ver2.3.4 背景透過微調整 Quest版
- アマレコVR Ver2.4.0 アッセット機能 アルファ版
- アセット機能 その1 Unityのセットアップ
- アセット機能 その2 基本的なアマレコVR用アセットの作成
- アセット機能 その3 ピンクになるモデルの修正作業
- アセット機能 その4 映画館を作る
- アセット機能 その5 スクリーンオブジェクトとVR動画
- アセット機能 その6 物理処理
- アマレコVR ダウンロードページ
- アマレコVR Ver2.4.1 クロマキーとアルファ付き動画
- アルファ付きVR動画作成ツール rvm_alpha公開
trackback
コメントの投稿