今回はアセットの紹介をしていきます。
紹介するのはGrabbit - Editor Physics Transforms。
物理ベースでオブジェクトを配置するデザインツールアセットです。
この記事はUnity アセット真夏のアドベントカレンダー 2021 Summer! 1日目の記事です。
2日目はNakaji Kohkiさんの
「【Unity】NatShareでツイート後に報酬を付与する #アセットアドカレ2021」です。
どんなアセット?
物理的なシミュレーションを行いながらオブジェクトを配置するアセットです。
公式のビデオがとてもわかりやすい。
⭐機能の特長⭐
✔️グラバーで物理学衝突トランスフォーム
✔️グループ&整列は、物理学を持つオブジェクト
✔️動的な重力の選択
✔️ローテーションAlignementシステム
✔️スマートテレポート&衝突検出
✔️全元に戻すサポート
✔️ 優れたパフォーマンスと大規模なシーン向けに最適化
✔️柔軟なインターフェイス
✔️アクティブなサポートとコマンドロードマップ
✔️1つのかわいいウサギ!
かわいいウサギ!
机の上に複数のオブジェクトを配置したい場合、通常であればSceneビューのギズモを動かし、
それぞれの位置や角度を調整し、他のオブジェクトと重ならないように配置しなければなりませんが、
これはなかなか面倒な作業です。
Grabbitを使うとメッシュとの衝突を考慮して素早くオブジェクトを配置したり、
重力落下をシミュレートした自然な配置が実現できます。
Grabbitのもう一つの特徴は、衝突判定はGrabbit側が自動で調整してくれる所です。
ColliderやRigidbodyが設定されていないオブジェクト同士を衝突させて配置してくれます。
(作業時にメッシュを計算して自動的にColliderを設定し、作業終了後は削除される)
VRChatでも使える?
このアセットはUnity 2018では動作しません。
Unity ProjectをUnity 2019(厳密にはUnity2019.4.16以降)にアップデートしてあれば使えます。
インポートする前にUnityのバージョンをご確認ください。
間違ってインポートした場合は、Assets/Plugins/Grabbitフォルダを削除すればOK。
開発環境
Unity2020.3.14f1
Grabbit - Editor Physics Transforms ver2021.0.5
※GrabbitはUnity2019.4.16 以降が対象です
インポートの確認
アセットインポート完了時はこんな感じです。
Pluginsの中に入っています。
セットアップ
インポート直後はこのようなセットアップウィザードが表示されます。
ここではGrabbitを使うための初期設定を行います。設定は後から変えることができます。
コライダータイプ
使用するコライダータイプの設定。
Grabbitでは、オブジェクトを配置する時に凹型コライダー(より精密な衝突が取れるコライダー)を生成します。
ただし、このコライダーを生成するには事前にメッシュのスキャンが必要になります。
正確に衝突を再現したい場合は凹面コライダーを使用しましょう。
そこまで正確さを求めないのであればデフォルトコライダーでも構いません。
シーンスキャン
シーンをスキャンする時に、シーン全体をスキャンするかどうかの設定。
Grabbitは起動時にシーンをスキャンします。大きいシーン(20000以上のオブジェクトがあるもの)の場合は約0.8秒(CPUによる)かかります。
これが長いと感じる場合、スキャンする範囲を限定してより早くスキャンを終わらせることができます。
衝突設定
高精度な衝突をシミュレートするかどうかの設定。
Grabbitでは高精度な衝突をシミュレートしスムーズな衝突を行うことができます。
ただし一度にたくさん移動させると動作が遅くなるのでフレームレートがすでに低い場合はオフにしましょう。
これで設定は終わりです。
簡単にまとめるとよほど処理負荷が高くない限り全部左を選んでおけばOK
それ以外の細かい設定はオプション画面から設定できます。
・Grabbitと連動するレイヤーやタグのチェック
・Grabbitが大きすぎるオブジェクト(地形など)を選択しないようにする
など
設定しなおしたい時
Tools/Grabbit/OpenStartupMenuからセットアップウィザードを表示できます
実際に試してみる
実際にオブジェクトを配置してみます。
今回はこちらのアセットを使用して、机の上にノートを配置してみます。
ツールウインドウの表示
ツールバーにGrabbitのウサギマークのボタンが追加されているのでこれを押します。
これでツールウインドウが表示されます。
ここからGrabbitの機能を利用できます。
Placement Mode
配置を行うモードです。
まず机の上にノートや辞書のオブジェクトを適当に配置しておきます。
Grabbitのツールウインドウが表示されている状態で、オブジェクトを選択するとSceneビューにウサギマークがでます。
このマークが出ていればGrabbitは正常に動作しています。
この状態でオブジェクトを移動するだけで簡単に配置できました。
机や他オブジェクトとの衝突も考慮されていますね。
Rotationギズモの無効化
Placement ModeではPositionとRotation両方のギズモが表示されます、
操作しにくいときはRotationのみ無効化できます。
Rotation Mode
衝突を考慮しながらオブジェクトを回転させるモードです。
Placement Modeでも回転させることはできましたが、こっちは位置を無視します。
Align Mode
オブジェクトを整列させるモードです。
ギズモのスケールハンドルを操作することで、選択したオブジェクトの中心を軸に整列させることができます。
Fall Mode
オブジェクトを重力で落下させるモードです。
初期状態ではPausedになっているので、Resume Grabbitボタンを押して落下させます。
物理的に自然な感じで配置したい時に便利そうですね。
Point Mode
マウスの位置に合わせてオブジェクトを追従させるモード。
ドキュメントには載っていないので比較的新しい機能らしい。
Fall Modeと同じくデフォルトでPausedになっているのでResume Grabbitで停止を解除します。
オブジェクトを選択すると、マウスカーソルに合わせて地形や他オブジェクトに沿った移動が可能です。
まとめ
・Grabbit - Editor Physics Transformsを使うと、オブジェクトを物理的シミュレートして配置できる
・Sceneビュー上で移動、回転、重力落下など複数の方法で配置できる
・オブジェクト側にColliderやRigidbodyをつける必要はない
以上です。
他のアセットの紹介記事はこちら↓
※本記事にはAssetStoreアフィリエイトリンクが含まれています。
他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。