トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

AnimatorをセットしているHumanoidのボーンをスクリプトでいじりたい【AvatarMask/LateUpdate】

Animatorがついているボーンのtransformをスクリプトからいじれない

基本はAnimator経由でアニメーションさせるけど、頭の向きだけスクリプトからボーンのTransformをいじって動かしたい

f:id:bibinbaleo:20210304211708p:plain

Animatorをつけていない状態だと動かせる。

f:id:bibinbaleo:20210304211538p:plain

f:id:bibinbaleo:20210304211534p:plain

Animatorをつけていると、動かせない

インスペクタで直接いじってもダメ

AvatarMask→失敗

AvatarMaskをつけて首はAnimationさせなければ良いかと思いきや、うまくいかない

f:id:bibinbaleo:20210304212829p:plain

そもそもNeckのBoneはAvatarMaskの頭と胴体どっちに含まれるのか。どっちもダメだったけど

f:id:bibinbaleo:20210304211820p:plain

それとも下のTransformで設定すべきなのか。でもTransformにVrmArmを設定しても何も出てこない

f:id:bibinbaleo:20210304211843p:plain

同じ人いた

 うーん?

docs.unity3d.com

LateUpdate

ググったらLateUpdateでスクリプトからいじっている記事が多かった

tsubakit1.hateblo.jp

www.ame-name.com

gomafrontier.com

確かにLateUpdate内でやったら動いた。

void LateUpdate()
{
if( Input.GetKeyDown( KeyCode.Space ) ){
Neck.localRotation= Quaternion.Euler(0.0f, 0.0f, 10f);
}
}

アニメーションが行われた後にやるからか

gametukurikata.com

最後に

LateUpdate使わない方法ないのかな?

UniRxでLateUpdateってどうやるんだろう