とりあえずこれでうまいことできた、ただ一軸回転を制限している。
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; } }
— 光属性のアルモジナ(VRChat勢) (@arumogina) May 13, 2019
初期ポーズ
より応用力の高い方法もあるっぽい