以下の内容はhttps://kan-kikuchi.hatenablog.com/entry/Animator_GetBoneTransformより取得しました。


Animatorから関節(ボーン)を取得するGetBoneTransform【Unity】




この記事でのバージョン
Unity 2021.1.16f1


はじめに

今回は3Dキャラの関節(ボーン)をAnimatorを使って取得する方法です!

f:id:kan_kikuchi:20210906123047j:plain


なお、記事中では以下のアセットを使っています。

Rin | Characters | Unity Asset Store



GetBoneTransform

さっそくですがAnimatorから関節(のTransform)を取得するには

GetBoneTransformというメソッドを使います。



実際に使ってみると以下のような感じでHumanBodyBonesで取得したい部位を指定する感じです。

//Animator取得
Animator animator = GetComponent<Animator>();

//Head(頭)のTransform取得、ログで確認)
Transform head = animator.GetBoneTransform(HumanBodyBones.Head);
Debug.Log($"Head : {head.name}");
f:id:kan_kikuchi:20210906123047j:plain


なお、どの関節にどのTransformが設定されているか

Animatorに設定されているAvatarアセットの

f:id:kan_kikuchi:20210906142503j:plain


Configure Avatarを押すと出てくる

f:id:kan_kikuchi:20210906142514j:plain


Mapping欄から確認する事が出来ます。

f:id:kan_kikuchi:20210906142524j:plain


ちなみに該当の関節にTransformが設定されていなかったり

f:id:kan_kikuchi:20210906164457j:plain


そもそもAnimation TypeがHumanoidでなかったりして取得出来ない場合

f:id:kan_kikuchi:20210906164447j:plain


GetBoneTransformではnullが返ってきます。






以上の内容はhttps://kan-kikuchi.hatenablog.com/entry/Animator_GetBoneTransformより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14