今回は「掴むと増える」コンポーネントと「表面に引き寄せる」コンポーネントをご紹介いたします。
お皿に乗ったお菓子が無限に取れるギミックとか、机にポンッと物を置けるギミックがコンポーネントだけで簡単に実装できます。
前回はコチラ
GrabInstancer(グラブ インスタンサー)
オブジェクトを掴むと増えるコンポーネント。
・場所
Transform/Interaction/
項目 | 解説 | 初期値 |
Template: | 雛型(複製元)を指定する。 | null |
ActivateRoot: | 掴んだ際に、複製した雛型のActiveを有効にする。 | 有効 |
EnableGrabbable: | 掴んだ際に、複製した雛型のGrabbableを有効にする。 | 有効 |
Physical: | レーザーで掴めなくする。 | 無効 |
GrabPriority: | 掴む優先度。 | 0 |
・使い方
雛型を隠す(Activeを無効にする)パターンを紹介します。
適当なスロットにアタッチ。コライダーもアタッチ。
雛型を子スロットに入れて、出現位置等を調整します。
Templateに雛型を指定して、Activeを無効にします。
・補足
上記以外の設定方法もあります。使用する場面に合わせて工夫しましょう。
物によってはGrabPriorityを設定すると、取りやすくなるかも。
アセットも一緒にTemplateに入れちゃうと、アセットがどんどん増えてしまうので、アセットは別のスロットに置いておくと良いです。
一時的に遊ぶアイテムの場合は、遊び終わったらアイテムが消えるようにしておくと良いです。
・Neos Wiki リンク
https://wiki.neosvr.com/GrabInstancer_(Component)
・関連
Grabbable
GrabbableReceiverSurface(グラバブル レシーバー サーフェス)
オブジェクトを近づけると、表面に引き寄せるコンポーネント。
・場所
Transform/Interaction/
項目 | 解説 | 初期値 |
ParentPlaced: | 引き寄せた物を、子スロットに入れて親子化する。 | 無効 |
OverrideParent: | 上記で親子化した物を引きはがした際に、再親子化する先を指定する。 | null |
TweenTime: | 引き寄せる動作の時間。 | 0.1秒 |
MaxDistance: | 引き寄せ判定の距離。 | 最大値 |
Offset: | 引き寄せた物の位置調整。 | 0 |
CheckOffset: | 引き寄せ判定の位置調整。 | 0 |
Directions(list): | 引き寄せる方向。 | y -1(下向き) |
TagFilter: | タグで引き寄せる物を選別する。 | |
Mode: | 選別方法。 | Blacklist |
List(list): | タグのリスト。 | 無し |
・使い方
引き寄せるオブジェクト(机や棚等)にアタッチ。(コライダーも必要です。)
Directions等を設定する。
・補足
引き寄せた後、くっつけたい場合はParentPlacedを有効にします。こうすることで、机にコップやお皿を載せて一緒に運ぶことができます。
ParentPlacedが有効の状態だと、引き寄せられたものがどんどん積み上がっていきます。
MaxDistanceは使用する場面に合わせて調整した方が良いです。
実際に引き寄せる距離は、見た目と違います。(引き寄せる距離はスロットの位置でやってるっぽい。)
写真等の薄い物を引き寄せると、ピッタリ重なってチラつくことがあります。そんな時はOffsetで少しだけ浮かせてあげましょう。
Directionsは一方向毎に1か-1で設定した方が良いです。
TagFilterを設定することで、引き寄せる物を限定する事が出来ます。インスペクターを引き寄せたくない場合は、BlacklistのTagに「Developer」と入力してみてください。
Grabbableコンポーネントに、Receivableの有効/無効の設定があります。(第一回参照)
傾いている物を引き寄せると、90°単位で傾きを直されます。
地面や床に設定することで、物が落ちる重力を疑似的に再現できます。
LogiXで引き寄せた瞬間のインパルスが取得できます。
蛇足ですが、LogiXを貼り付けて並べるのに便利なBlueprintというツールがありますが、これにもこのコンポーネントが入っています。インターフェースノードがうまく張り付かないときは、アイテムの中心位置とBlueprintの前後位置の関係が良くないのかも。
・Neos Wiki リンク
https://wiki.neosvr.com/GrabbableReceiverSurface_(Component)
・関連
Grabbable
On Grabbable Receiver Surface Received(LogiX)
おわり
以上で第二回は終了です。拙文ではございますが、最後までご覧頂きありがとうございました。
次回は帽子や眼鏡等を付け外しするのに便利な、くっつくコンポーネントを紹介する予定です。
お楽しみに!