Transform/Interaction/GrabbableReceiverSurface

Last-modified: 2024-10-10 (木) 19:30:37


GrabbableReceiverSurface (グラバブル レシーバー サーフェス)

手から放した物を表面に引き寄せるコンポーネント


項目

Enabled:
このコンポーネントを有効にするかどうか。

ParentPlaced:
引き寄せた物を、子スロットに入れて親子化する。
これをTrueにすると、引き寄せた後くっ付きます。さらに、引き寄せられた物がどんどん積み上がっていきます。

OverrideParent:
上記で親子化した物を引きはがした際に、再親子化する先を指定する。
指定しなければ、グラバブルコンポーネントの設定に従う。

TweenTime:
引き寄せる動作の時間。

MaxDistance:
引き寄せ判定の距離。
距離は使用する場面に合わせて調整した方が良いです。

手を放した物体が近くにある時、その物体のバウンディングボックスの中心位置を基準に計算が開始されます。
そこへ向かってレイキャスト処理を行い、Hitしたコライダー表面との距離が0になるまで移動させるような処理が働きます。
大きなアイテムがなかなか引き寄せられない場合、アイテムの中心を近付けるイメージで操作すると引き寄せられるはずです。
引き寄せ時の判定は、見た目ではなくColliderです。


Offset:
引き寄せた物の位置調整。
写真等の薄い物を引き寄せると、ピッタリ重なってチラつくことがあります。そんな時は0.001mぐらい浮かせてあげましょう。

CheckOffset:
引き寄せ判定の位置調整。

Directions(list):
引き寄せる方向。
初期値はy-1なので、下方向に引き寄せる。

ここでは方向を指定するので、1か-1で設定すると分かりやすいです。
棚にメッシュコライダーを設定した場合。y-1だと棚の上に物が置けるようになります。棚の側面や裏面はy-1(下)方向ではないので引き寄せる事はありません。


TagFilter:
スロットのタグで引き寄せる物を選別する。
TagFilterを設定することで、引き寄せる物を限定する事ができます。

インスペクターを引き寄せたくない場合は、モードをBlacklistにしてListに「Developer」と入力してみてください。(インスペクター等は、もともとスロットのタグ欄にDeveloperと入力されています。)


Mode:
選別方法。
Blacklist(拒否)とWhitelist(許可)の2種類。

List(list):
タグのリスト。
Addを押すと増える。

タグは英数字だけではなく、日本語や記号も使えます。
スペルミスはあるあるなので、なるべくコピペした方が安心です。レーザーで値を掴んで、入れたい先にレーザーを当てて手を放すとコピペできます。


使用例

  • 引き寄せる側(棚やテーブル等)のスロットにアタッチします。
  • テーブルにコップを置く。ホワイトボードに写真を張り付けるなどなど、様々な用途で使います。
    地面や床に設定することで、物が落ちる重力を疑似的に再現できます。


その他

  • 引き寄せられる側(皿やコップ等)のGrabbableコンポーネントのReceivable設定がFalseだと、引き寄せ判定から除外されます。
  • Fluxで、引き寄せた瞬間のインパルスが取得できる専用のノードがあります。
  • 似たようなコンポーネントにGrabbableParenterがありますが、親子化のみです。
  • 特定の位置に引き寄せて親子化する場合はSnapperコンポーネントが便利。