今回は「くっつく」コンポーネントをご紹介いたします。
アバターに着脱可能な帽子や眼鏡をつけたり、扉の鍵穴に鍵がハマるギミック等ができます。
前回はコチラ
SnapTarget(スナップ ターゲット)
スナッパーが付いているスロットを引き寄せてくっつけるコンポーネント。
・場所
Transform/Interaction/
項目 | 解説 | 初期値 |
SnapperWhitelist(list): | スナッパーを指定すると、そのスナッパーのみ作用する。 | 無し |
SnapperKeywordWhitelist(list): | キーワードを指定すると、そのキーワードと合うスナッパーのみ作用する。 | 無し |
Filters(list): | ??? | 無し |
DirectSnapOnly: | ??? | 無効 |
MaximumSnapDistance: | スナッパーが反応する距離。(スフィアコライダーの半径) | 0.1m |
MaximumAngleDeviation: | スナッパーの反応する角度。 | 無制限 |
AnimationTime: | 引き寄せる動作の時間。 | 0.15秒 |
AutoSnap: | ??? | 無効 |
_snapColliderRadius: | 自動。スフィアコライダー半径のドライブ先。 | |
proxySphere: | 自動。自動で追加されるスフィアコライダー。 |
・使い方
(スナッパーと一緒に説明します。)
・補足
MaximumSnapDistanceは初期設定だと半径10cmです。ただし、アバター等で親スケールが等倍じゃないときがあるので、使用する場面に合わせて調節しましょう。(スフィアコライダーを可視化すると分かりやすい。)
MaximumAngleDeviationはスナッパー側のオブジェクトの角度によって引き寄せるかどうかを制限する設定です。例えば帽子を逆さまで頭に近付けたとき、反応させたくない場合は90°等に設定したりします。
AnimationTimeを0にすると一瞬で移動します。数値を大きくすると、ゆっくり移動します。
SnapperWhitelistでひとつずつ紐づけしていく方法と、SnapperKeywordWhitelistでキーワードを登録して選別する方法があります。
自動的にスフィアコライダーがアタッチされます。
スナッパーが付いているスロットを引き寄せて、1個だけ子にします。
LogiXを使って子スロットの数を見ることで脱着した事がわかるので、効果音やハプティクス等を設定すると面白いかも。
・Neos Wiki リンク
https://wiki.neosvr.com/SnapTarget_(Component)
・関連
Snapper
Snapper(スナッパー)
スナップターゲットが付いているスロットに引き寄せられてくっついちゃうコンポーネント。
・場所
Transform/Interaction/
項目 | 解説 | 初期値 |
UseBoundingBoxCenter: | ??? | 無効 |
SnapCheckRadius: | ??? | 0.01 |
CheckStaticColliders: | ??? | 無効 |
SnapTargetWhitelist(list): | スナップターゲットを指定すると、そのスナップターゲットのみ作用する。 | 無し |
Keywords(list): | キーワードを指定すると、そのキーワードと合うスナップターゲットのみ作用する。 | 無し |
・使い方
帽子を例にします。
Grabbableが付いてる帽子を用意します。
アバターと帽子の位置を合わせてから、帽子をアバターのHeadスロットの子にします。
その状態で親スロットを作成して、スナップターゲットをアタッチ。
MaximumSnapDistanceを調整して、Whitelistを指定します。
帽子のルートスロット(Grabbableがあるところ)にスナッパーをアタッチ。
Whitelistを指定します。
(帽子が再配布不可の有料アセット等の場合は、帽子にもアバターと同様にSimpleAvatarProtectionの設定をしましょう。)
・補足
SnapTargetWhitelistでひとつずつ紐づけしていく方法と、キーワードを登録して選別する方法があります。
スナッパーが付いているオブジェクトにスナップターゲットを付けることで、複雑な構成も可能ですがややこしくなります。
くっついたときに、Position、Rotation、Scaleはローカルでリセットされます。外しても元には戻りませんので、特にScaleの歪みに気を付けましょう。
帽子等を他人に掴ませたくない場合は、Grabbableの設定で可能です。(第一回参照)
外した帽子等をセッションに置き忘れることがあります。DestroyOnUserLeave等を設定して、自動的に破棄されるようにしておくと安心です。
大事な事なので二度書きますが、再配布不可な物にはSimpleAvatarProtectionを設定しましょう。
ちなみにスナッパーとスナップは別物です。
・Neos Wiki リンク
https://wiki.neosvr.com/Snapper_(Component)
・関連
SnapTarget
おわり
以上で第三回は終了です。拙文ではございますが、最後までご覧頂きありがとうございました。
次回は消すをテーマにして、様々なデストロイコンポーネントを紹介する予定です。
お楽しみに!