【Godot 4.3 Animation】Mixamo fbx 利用時、Blender もナンタラCombiner も使わずにアニメーションを追加する方法

Godot でゲームを作る時、ちょっと試しにMixamo のキャラとアニメーションを利用しようとします。T-Pose を持って来るのは簡単です。DL してプロジェクトフォルダのどこかに入れれば(Import すれば)いいだけです。問題は、Idle, walk, sprint, jump など複数のアニメーションを追加して使いたい時どうするかです。YouTube でいくつかチュートリアルを見るとBlender を挟んだりウンタラCombiner を利用したりしてメンドクサイことをしています。そういうの無しに「Godot とMixamo だけで簡単に出来るのに何やってんだろ」と思ったので、やり方をここにメモっておきます。俺にもできたくらいですので非常に簡単です。もっといいやり方があったら教えてください。
1. モデルとアニメーションを選ぶ
Godot は4.3 からでしょうかfbx が格段に扱いやすくなりました。ufbx importer というのを使っているらしいです。
ですので、Mixamo から落としてきたfbx をそのまま使いましょう。「T-Pose」の「X Bot」モデルと「In Place」の「Walking」アニメーションを使います。コツさえ分かればどのキャラのどのアニメでも持って来れます。
まずはメッシュ(スキン)付のモデルのfbx をDL します。

❶ [sign in] して[Characters] にして
❷ 「x bot」でフィルタしてキャラを選んでDL

❸ [Download Settings] は[FBX Binary(.fbx)], [T-pose] のまま変えないでOK


❹ 今度は[Animations] にして「walk」でフィルタして[In Place] にチェックを入れてアニメーション用fbx をDL(キャラは「X Bot」のまま変えないでね)

❺ [Download Settings] は変えなくてもいいけど、ちょっとだけファイルサイズが小さくなるので[Without Skin] にするのがイイかも
2. T-Pose 入れる
普通にDLしたT-Pose のキャラをプロジェクトフォルダのどっかに入れます。本当にfbx をドラッグ&ドロップで簡単にインポート出来るので、昔ちょっとGodot をいじった事のある私でも、「今までの苦労は何だったのかぁ~?」とビックリ仰天です。「ufbx importer」マジ神!

❶ エクスプローラからドラッグ&ドロップ(D&D)で入れて

❷ いつもものようにCharacterBody3D をルートにして
❸ コリジョン入れて、1m上げて
❹ Node3D を挟むかはおまかせです(Godot は-Z が前なのでCode をちょっと簡潔にしたければ入れておけという感じです)
❺ [File System] からD&D でここにくっ付ける

(4 でNode3D を挟んでいたらy 軸180° 回転を忘れずに)
くっ付けたやつはアイコンをみれば分かる通りシーンとなります。持って来たfbx のInstance です。ちょっと注意ナノは、
- 持って来たfbx を直に使っているわけではない事(つまりこれはコピーであるということ)
- コピーと言っても継承しているので細工しないと変更できない事(つまり細工をすればこれにアニメを追加できるということ)
な所です。
3. AnimationPlayer に細工する
Godot では基本的にアニメーションはAnimationPlayer ノードが持っています。なので、ここに他から持って来たアニメーションを追加できればいいわけです。

❶ [Scene] のX Bot シーンを右クリして[Editable Children] をON(画像はON する前だね)

❷ 単一だったシーンノードが展開されるから、AnimationPlayer を選択。下部パネルにアニメーション情報が出るので、ちょっと確認(ま、2つ入ってる感じ。[Take 001] は3秒T-Pose アニメ。[mixamo_com] は1フレT-Pose アニメ。[Take 001] の方が要らないと言えば要らないが両方残しておいても問題なし。また[mixamo_com] は後でリネームしてもいい。)

❸ すぐ左横 [Animation] をクリックし、[Manage Animations...] を選択

❹ グレーアウトで変更できませんとアピールしてますが、
❺ なんと、このフロッピーディスクアイコンをクリックすると出てくるメニューの[Make Unique] を選ぶと追加とか削除とか出来るようになります。ここがポイントです。[Make Unique]! まさかフロッピーディスクアイコンから[Make Unique] できるとは思わないよね~

❻ グレーアウトじゃなくなったでしょ
[Make Unique] って何なのか、簡単に言うと「参照を切りますね~」って事です。分かりにくいかな? 今使っているシーンのfbx はインポートしたfbx のコピーなんですが、常にインポートしたfbx のデータを見ているんです。実物として存在してるんじゃなくて、元データの住所が書いてある紙切れで存在している感じです。ま、紙に書いてあるから見に行けって事です。
で、[Make Unique] すると、「お前にはお前独自のデータを授けたから、もう元データを見に行かなくていいからな。」って言う感じになります。ここではアニメ関係だけですが、unique(ユニーク)つまり「唯一の」って意味で、コピー元との関係を断ってこいつだけ独立させましたって事です。もう元データと関係ないので追加も出来るし削除も出来るそういうものになりましたよって事です。
4. アニメーションファイルのみの取り出し
ではモーションの方をとってきましょう。

❶ 今度はさっき落としたWalking.fbx をD&D で持って来る

❷ 右クリして[Open Scene]

❸ [Import Setting] の窓が出ます。[Without Skin] で落としてると「何にも見えねーじゃねーかー」となりますが、まーまーそこは落ち着いて。スケルトンのアニメデータだけが入ってますから見えない感じなだけです。データはあります
❹ AnimationPlayer の下にぶら下がってる[mixamo_com] をクリック。これがアニメーションファイルです
❺ [Save to File] の [Enabled] を [ON] にして、[Path] を入れますよ

❻ フォルダを選んで、ファイル名を入れて保存

❼ そして、[Reimport] します。ここが大事! [Reimport]!

❽ はい、アニメーションファイルだけ取り出せました
拡張子が.res になってるのが嫌ですが・・・、アイコンは間違いなくアニメーションファイルを示しています。これは、Walking.fbx に入っていたアニメーションデータのみをGodot で使いやすいように取り出した形になります。このアニメーションデータは独立していますので、元のWalking.fbx はもう要らないです。削除して問題ありません。データ容量の関係も考慮して、アニメだけ抜き出したら削除でOK。
5. アニメーションファイルの追加
取り出したアニメーションファイルをAnimationPlayer に追加します。(ここはライブラリに追加する考えをとってもいいかもしれませんね。)

❶ さっきみたいにAnimationPlayer > [Animation] > [Manage Animations...] で管理窓が出たら
❷ ここのフォルダアイコンクリックでさっき書き出したWalk アニメを選択して追加。ここが大事! まさかフォルダアイコンをクリックするとアニメが追加できるとは思わないでしょ~


❸ [walking] が選べるようになってるne。GOOD!

独立してますので、「ループ」の設定ももう出来ます。「walking」なのにループしてなかったらAnimationTree で使えないですからね。設定を忘れずに。
6. まとめ
「他のアプリを使わずに、T-Pose モデル入れて、アニメファイルは個別で入れて追加する。」
このやり方、どうですかね? アニメを追加するのも削除するのもお手軽なのではないでしょうか。Blender でアニメをまとめて~の方法だと「あ、やっぱりこのアニメも追加したいわ」ってなったらやり直しでしょ。めんどくさそー。なんとかコンバイナーを使う? めんどくさそー。他のアプリとか経由したくないよね。
そう考えた時、今回のやり方は1個1個やるので追加時はめんどくさそうですが、あとになって追加変更とかあった時、楽ちんですよね。ま、ヒトツのやり方って事で。
後はキャラクタコントローラをコーディングして、AnimationTree を追加してアニメを遷移させればいいよねって事です。