イラスト、モデリング、Unity、VR関連

unityとかblenderとかvr関連の作業メモ

Unity OculusGoのコントローラの動きに合わせてHumanoidアバター・モデルの腕を回転させる

とりあえずこれでうまいことできた、ただ一軸回転を制限している。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BoneMove : MonoBehaviour{

  //操作したいHumanoidに付与してるAnimator
  [SerializeField] Animator Anim;
  [SerializeField] GameObject RightHandAnchor;
  Transform HandTF;
  Transform RTF;
  void Start(){
    HandTF = Anim.GetBoneTransform(HumanBodyBones.RightHand);
    RTF = RightHandAnchor.transform;
  }

  void LateUpdate(){
    var l =RTF.localRotation;
    var a = new Quaternion(1,0,0,-0.5f);
    var b = new Quaternion(0,1,0,l.y);
    var c = new Quaternion(0,0,1,-l.x);
    HandTF.localRotation =  a*b*c;
  }
}

 

 

f:id:arumogina:20190513214129p:plain

初期ポーズ

f:id:arumogina:20190513214117p:plain

 

より応用力の高い方法もあるっぽい

ユニティちゃんの関節を動かしたい話 - Qiita