LeapmotionでVRMモデルの髪を触れるようにする

LeapmotionでVRM/VRoidモデルの髪を触れるようにしたかったので勉強しました。

 

自分用のメモです。

 

Hierarchの配置

LoplyRiggedHandLeft(手当たり判定用
LoplyRiggedHandLeft(手当たり判定用

LeapRig
InteractionManager
CapsuleHandLeft(InteractionHand)
CapsuleHandRight(InteractionHand)
LeapHandController(HandModelManager)


手が認識されてCapsuleHandLeft・Rightが表示されるタイミングは
InteractionHand.csのinitContactBones()
ここで手が表示されたタイミングでタグつけたりとかアタッチしたりとか?

ちなみに指と手のひら2か所あるので手全体にするなら両方忘れないように。
// Finger bones
// Palm bone

initContactBonesは片手ずつ初回認識されたタイミングで同じところを通るし一度手が表示されるとあとは非表示にされてるだけで残っている。
だからここでVRMSpringBoneColliderGroupをアタッチして
VRMSpringBoneの情報とってきて設定していこうと思ったけどメンドくさかったのでココではアタッチせずにLoplyRiggedHandLeft・Rightにアタッチしておく。

LoplyRiggedHandLeft・Rightのマテリアルを透明にしておけば
動的に設定しなくても事前に準備できる

LoplyRiggedHandLeft・Rightの指や手のひらにVRMSpringBoneColliderGroupをアタッチする

VRMモデルのsecondaryに手を設定する

これでLeapmotionの手でVRMモデルを触れるようになる。

 

 

掴めるようにするには

オブジェクトにコライダーつけてInteractionBehaviour.csをアタッチするだけでいい。

 

関連記事




コメントを残す

※コメントは承認後に表示されます。
 コメントを公開されたくない場合、名前の後に「:非公開」とつけてください。