はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】AnimationClipのAnimationTypeをGenericからHumanoidに変更する方法

はじめに

今回はAnimationClipのAnimationTypeをGenericからHumanoidに変更してみようという記事になります!

UnityRecorderという公式アセットによりアニメーションを録画してAnimationClipを作成したのですが、どうやらAnimationTypeGenericのみしか出力できないみたいでした。

ただ一応解決することはできたので、書き残しておきたいと思います。

AnimationTypeとは

AnimationTypeにはLegacyGenericHumanoidの3種類あります。

f:id:hanaaaaaachiru:20200216231222p:plain


Legacyは基本的に後方互換性のために残してあるだけなので、最近のプロジェクトでは使いません。

ちなみにAnimationコンポーネントも同じく昔のものなので、今はAnimatorコンポーネントを利用してください。

docs.unity3d.com


Genericは人型の部位との対応づけをしない手法です。Humanoidでない場合はこちらを選びます。

Humanoidは人型のモデル専用のもので、部位との対応づけにより他の人型モデルにも適応できるようになっています。

light11.hatenadiary.com


今回はUnityちゃんのAnimationClipGenericからHumanoidに変更していきたいと思います。

FBX Exporterをインポートする

まずはFBX Exporterという公式のアセットをインポートする必要があります。

ただしFBX ExporterはUnity2018?あたりからはPackageManagerからインポートしてください。

f:id:hanaaaaaachiru:20200216233203p:plain

AnimatorControllerにAnimationClipを設定する

UnityちゃんのGameObjectを作成し、AnimatorControllerを新規作成・設定をします。

f:id:hanaaaaaachiru:20200216233503p:plain


目的のAnimationClipAnimationControllerの中に入れてください。

f:id:hanaaaaaachiru:20200216233825p:plain

fbxを出力する

ここまで設定できたら、GameObjectをfbxとして出力します。

UnityちゃんのGameObjectを右クリックし、Export To FBX....をクリック。

f:id:hanaaaaaachiru:20200216234251p:plain


名前や出力先のパスを好きなように設定し、Exportをクリックしてください。

f:id:hanaaaaaachiru:20200216234433p:plain

AnimantionClipを取り出す

出力したfbxのImportSettingを開き、Rig -> AnimationTypeGeneric -> Humanoidに変更してください。

f:id:hanaaaaaachiru:20200216234750p:plain

これにより自動的に一緒に含まれているAnimationClipHumanoid用に変換されます。

ただモデルと一緒にAnimationClipが含まれているので、モーションのデータのみが欲しい場合には余分なデータが含まれています。

そこでこれらを分離するためには、AnimationClipを選択してCrtl + Dを押して複製を行ってください。

f:id:hanaaaaaachiru:20200216235033p:plain

さいごに

これでAnimationClipAnimationTypeの変更ができたはずです。

特にFBX Exporterをインポートしなければならないあたりがめんどくさいですが、良かったらやってみてください。

ではまた。