今回の記事では「Grabbit」という有料アセットを紹介します。
このアセットを使うと、通常Unityではできない「非Playモード時にコライダーを加味してアセットを配置する」ということができるようになります。
コライダーを使うことで物理演算に従って配置できるようになります。
そのため、自然なオブジェクトの配置を直感的にできるという特徴があります。
導入〜初回起動まで
Grabbitはこちらからダウンロードできます。
Grabbitをシーンにインポートすると、このような画面が出てきます。
「Set It Up!」から初期設定を行いましょう。
この設定は起動後も Grabbit > Open SetUp Menuから開けます。
最初のステップでは、これから初期設定をする旨を伝えられます。
次のステップでは、凹面のコライダーを生成するかどうかを選択します。
凹面のコライダーを使うと、より正確にオブジェクトの形に合わせた配置ができるようになります。
また、オンにする場合オブジェクトを初めて動かすときに限り、スキャンの時間が少し必要になります。使う場合は左を、使わない場合は右を選択してください。
次のステップでは、Grabbit起動時にシーン全体をスキャンするかどうかを選択します。
オブジェクトが多いシーンではPCに負荷がかかってしまうので、シーンの一部のみスキャンするように変更できます。
シーン全体をスキャンする場合は左を、一部のみスキャンする場合は右を選択してください。
次のステップでは、衝突判定のシミュレーションの精度を選択します。
選択肢はそれぞれ左は精度重視、右はPCのパフォーマンス重視となっています。
まずは左を選び、動作が重ければ右に設定しなおすと良いでしょう。
次のステップでは、環境設定でできるその他のオプションについて書いてあります。
- レイヤーやタグを使ってオブジェクトを動かす
- Terrainなど非常に大きなオブジェクトを勝手に動かせないようにする
- コライダーの精度を変更する
といった設定項目があります。詳しくは環境設定の項で説明します。
最後のステップでショートカットキーを確認できます。
それぞれ
- U:Placementモード
- I:Rotationモード
- O:Alignmentモード
- P:Fallモード
- [:Pointモード
に対応しています。
ただし、デフォルトの設定だとPキーが他のキーと競合している場合があります。
その場合、設定から他のキーに割り当てましょう
次から、各モードの機能について説明します。
項目解説:Placementモード
Placementモードでは、通常のUnityのMove Toolにコライダーを加味して配置できるようになります。
x,y,z軸の延長上に他のコライダーがある場合、その場所を円で示してくれます。
ただし、移動時の原点はcenterかつworldモード固定になります。Pivot, Localの位置移動はできません。
設定項目がいくつかあるので、そちらの解説をします。
- Constraints
選んだ軸に対応する座標、あるいは回転が固定されるようになります。 - Control Rotation
オンにするとrotationを変更するハンドルが追加され、回転させられるようになります。この回転にもコライダーが適用されます。 - Readjust Handle On Mouse Up
オンにすると、常にハンドルがオブジェクトの中心に固定されます。
オフにするとオブジェクトがコライダーで遮られた際に、ハンドルが移動先に残るようになります。 - Distance For Instant Teleport
設定した距離よりオブジェクトがハンドルから離れると、オブジェクトがハンドルの位置までワープします。 - Display Collision Indicator
各軸の延長線上のコライダーを表示するかを設定します。 - Preserve Selection’s Initial Transform
オンにすると、複数のオブジェクトを選んだ時に位置関係を記憶するようになります。
(他のものと干渉して位置がずれた後、干渉が無くなった場合に元の位置に戻る)
項目解説:Rotationモード
Rotationモードではオブジェクトの角度をコライダーを加味して調整できます。
設定項目はPlacementモードと共通のものです。
項目解説:Alignmentモード
Alignmentモードではオブジェクト同士をくっつけたり、反対に引き離したりできます。
操作したいオブジェクトを複数選び、スケール縮小方向にドラッグするとくっつき、拡大方向にドラッグすると離れていきます。
オブジェクトを整列させる時や、均等にばらつかせたい時に便利です。
- Alignment Strength
くっ付ける・引き離す際の力の大きさを設定できます
項目解説:Fallモード
Fallモードでは、重力で落ちていくモデルの動きをシミュレートできます。
操作したいオブジェクトを選択し、スペースキーを押すと重力の働きにそってオブジェクトが移動します。
スペースキーを離して任意の場所で止められます。
- Gravity Strength
ここで指定した向き・強さでオブジェクトが落下します。
項目解説:Pointモード
Pointモードではオブジェクトをポインターで操作できます。
操作したいオブジェクトを選択し、スペースキーを押すとポインターにオブジェクトが追従するようになります。
- Teleport When Too Far
オンにするとポインターとオブジェクトが大きく離れた時にポインターにオブジェクトがワープするようになります。
間にあるオブジェクトは無視されます。
項目解説:環境設定
この項目ではGrabbitの設定ができます。
- Layers To Ignore
Grabbit使用時に指定したレイヤーを無視できます。 - Tags To Ignore
レイヤーと同様に無視するタグを設定できます。 - Simulation Speed
物理シミュレーションの速度を設定できます。デフォルトの速度は1です。
数値を大きくするとオブジェクトを操作した時の移動速度や反応が早くなります。 - Use Low Quality Colliders
オンにするとシミュレートに使うコライダーの質を下げられます。多くのオブジェクトを扱う場合や、PC動作が重い場合はオンにすると動作が改善するかもしれません。 - Limit Scan Zone
デフォルトでは Grabbitはシーン全体をスキャンしますが、スキャンするエリアを指定できます。こちらもPC動作が重い場合に使うと良いでしょう。 - Generate Dynamic Concave Colliders
凹状のコライダーを生成するかどうか選べます。オフにするとコライダーの精度が落ちる代わりにパフォーマンスが向上します。
終わりに
今回はGrabbitの基本的な操作方法について解説しました。
Grabbitの最大の利点は、やはり通常Playモードにしないと確認できないコライダーや重力のシミュレートをすぐにできる点でしょう。
これによっていちいちPlayモードにしなくても物理挙動に沿った配置ができ、視覚的に違和感なくオブジェクトを配置できます。
次回の記事では、実際にこれらの機能を使ってシーンを制作する予定です。
STYLYに関する質問、バグ報告、改善してほしい要望はSTYLY FORUMまで
https://jp.forum.styly.cc/support/discussions