前提・実現したいこと
XR_MecanimIKPlusとVRoidを使ったVRでの空手の型を練習できるようなゲームを作っています。
VR機器は後日HTC Viveに変更予定ですが、現在はWindows MRを利用しています。
最終的に、手本となるVRoidとプレイヤーの動かすVRoidの手の座標のズレを比較するようなシステムをとりあえずの目標にしています。
そのためにまずテストとして、プレイヤーのVRoidの左手の座標をリアルタイムで取得できてるかをDebug.Logなどで表示して確認しようとしてます。
また、あまりJ_Bip_L_HandのPositionが動いておらずRotationを取得したほうがいいのかとも思っていますが、正直なぜPositionの数値がほとんど変化しないのか、変化するときはなぜなのかがわかっていません。
初心者のため、できる範囲で解説なども頂ければ幸いです。
どうかよろしくお願いします。
発生している問題・エラーメッセージ
VRoidのJ_Bip_L_Handの子オブジェクトとして空のGameObjectを配置し、そのGameObjectに下記のスクリプトをアタッチした。
下記のスクリプトはJ_Bip_L_HandのPositionを取得し続けてる様子をDebug.Logで表示して確認できるようにしてるつもりなのですが、コードはあっているのでしょうか?
また、変化が少ない様子から、PositionではなくRotationを取得したほうが良いのでしょうか?
該当のソースコード
C#
1public class MyVroidHandTransform : MonoBehaviour 2{ 3 public GameObject Parent; 4 5 // Start is called before the first frame update 6 void Start() 7 { 8 Parent = transform.parent.gameObject; 9 } 10 11 // Update is called once per frame 12 void Update() 13 { 14 Transform myTransform = this.transform; 15 myTransform.parent = Parent.transform; 16 17 18 Vector3 localPos = myTransform.parent.localPosition; 19 20 Debug.Log("LeftHand"); 21 Debug.Log(localPos.x); 22 Debug.Log(localPos.y); 23 Debug.Log(localPos.z); 24 25 } 26} 27
試したこと
はじめ、親オブジェクトのJ_Bip_L_HandではなくGameObject自身の座標をlocalPosに入れていたが、オブジェクトが同じところにあるためローカル座標はJ_Bip_L_Handと同じことに気づいたので親オブジェクトのJ_Bip_L_Handから取得することにしたが、できているか分からない。
また、Positionがあまり変化しておらずRotationが変化していたため、取得するものはRotationのほうが良いのかも知れないが確証が持てない。
VRoidやモーショントラッキングが初めてかつ、インターネットで検索してもイマイチ良い情報が見つからない。
回答1件
あなたの回答
tips
プレビュー