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をアタッチするだけでいい。
※コメントは承認後に表示されます。
コメントを公開されたくない場合、名前の後に「:非公開」とつけてください。