大昔にAssetStoreから購入したアセットのアニメーションをAnimationClipPlayableで動かそうとしたところ、Legacyなアニメーションは動かせないよと怒られたので、何とか対応したお話。需要あるのかなこれ・・・
- 概要
- 対処1:AnimationType を Humanoid にする
- 対処2:AnimationType を Generic にする
- 対処3:InspectorのDebugモードから変更する
- まとめ
概要
上図のように Import Settings > Rigタグ にある Animation Type が Legacy のアニメーションデータを AnimationClipPlayable.Create() で設定すると以下のエラーが出て再生することができない。
ArgumentException: Legacy clips cannot be used in Playables.
対処1:AnimationType を Humanoid にする
Legacyをサポートしないと言ってるのでそれ以外に変えれば良いだけなので
Animation Type は「Humanoid」を選択、Avatar Definitionを「Create From This Model」を選択後、Apply をクリックして Avatar を作成します。
ただ、私が確認したアニメーションデータのリグは 3DXMax Biped を使って組まれており以下のようなエラーが出てアニメーションが部分的にしか適用されませんでした・・
こんな感じにスカートしか動かないです。。
対処2:AnimationType を Generic にする
対処1が失敗する、またはモデルが人型ではない場合は AnimationType を「Generic」にすると上手くいくことがあります。私のデータはこれで解決しました。あと Avatarが必要無い場合は Avatar Definition を 「No Avatar」にしておくと良いです。
対処3:InspectorのDebugモードから変更する
これはオススメしないのですが、以下のような対処方法もあります。
1. 対象のFBX内のアニメーションデータをコピーして別animファイルとして出力
2. InspectorビューをDebugモードにする
3. 下図のLegacy という項目のチェックを外す
まとめ
個人的には 対処1 か 対処2 が良いなと思いました。どちらも一度作成したAvatarを使えば同じ構成のアニメーションデータに対して以降は下図のように「Copy From Other Avatar」を選択 > 作成したAvatarを適用すれば都度Avatarを作成する必要がないためです。
あとそもそも古いアニメーションデータを使うなよという話ですね ^ ^;
以上、誰に需要があるんだという内容でした。