[Unity #17] Unity 6.4のAIアシスタントによるアニメーション生成と最速の.vrmaエクスポート手順
はじめに
Unity 6.4(6000.x系)に統合されたAI機能(Unity Assistant)を使用し、テキスト指示から直接 AnimationClip を生成する最小手順をまとめました。
前回の記事:
[Unity #16] Starter Assets + VRM + OpenXRを同一シーンで共存・判定切替 // PROTOCOL.LAIN
Unity 2022 LTSでStarter AssetsのThirdPersonControllerとVRMモデル、OpenXRのVR環境を同一シーンに統合し、PCモードとVRモードを自動判定して切り替える完全な手順とハマりどころの解説。PlatformSwitcherによる自動切替方式、カメラ・AudioListener競合排除、VR初期化待機のノウハウをまとめた記事。
lain-lab.comNOTE:
Unity 6.4 AI生成 × VRMA出力。オリジナルアニメーションを自由に作るための最短ルート|lain
Web 3D環境(Three.jsやAstroなど)でアバターを動かすために、オリジナルのアニメーションを自由に作成して組み込みたい。 そう考えたのが今回の発端。 現在、Web上で扱うモーションデータとしてはVRM Animation(.vrma)形式が扱いやすい。 そこで、 「最新のUnity 6.4(6000.x系)に搭載されたAIアシスタントでモーションを生成し、それをそのまま.vrmaとして書き出す」 というフローを構築しようと試みた。 しかし、実際に手を動かし始めると、予期せぬ技術的な壁にぶつかることになった。 ネット上に存在しない「繋ぎ込み」の情報 個別
note.com1. AIによるアニメーションの生成(Unity Assistant)
Unity 6.4(6000.x系)の環境では、テキストベースの指示(プロンプト)から直接 AnimationClip を生成するAI機能を利用できます。これにより、ゼロからキーフレームを打つ手間を省き、ベースとなるモーションを素早くプロトタイピングすることが可能です。
AIアシスタントの起動
生成を開始するには、まずAIと対話するための専用ウィンドウを呼び出します。起動方法は以下の2通りです。
- ショートカット(右クリック): Projectウィンドウ内の空きスペースを右クリックし、コンテキストメニューから
Generateを選択します。 - メニューバーから: 画面上部のメニューから
Window > AI > Assistantを選択し、Assistantウィンドウをドッキングさせておきます。
プロンプトの入力と生成の実行
Assistantウィンドウ内のチャット(プロンプト)入力欄に、どのような動作を作りたいかを自然言語でテキスト入力します。
入力プロンプトの例:
- 「手を振って挨拶する可愛いポーズ」
- 「リラックスした立ち姿での待機(アイドル)モーション」
- 「驚いて軽く後ろにのけぞる動作」
テキストを入力して生成を実行すると、処理が開始されます。数秒〜数十秒ほど待つと、入力したプロンプトに基づいたアニメーションデータが生成されます。
プレビューと調整
生成が完了すると、Assistantウィンドウ内でそのままアニメーションのプレビューを再生できます。 一回の生成で完璧な動きが出ないことも多いため、意図したニュアンスと異なる場合はプロンプトの単語を足し引きして、理想の動きが出るまで再生成(Regenerate)を繰り返すのが効率的です。
2. アニメーションクリップの保存
AIによって生成されたアニメーションは、そのままではAssistantウィンドウ内の一時的なプレビュー状態に過ぎません。これを他のツール(今回の場合はVRMエクスポート)で扱えるように、Unityの標準形式である AnimationClip(.anim)ファイルとしてプロジェクト内に実体化させる必要があります。
プレビューでの最終動作確認
保存を行う前に、プレビュー画面でモデルの関節の破綻や不自然な挙動がないかを最終確認します。特に指先や足元の接地など、AI生成で甘くなりやすい部分をチェックしておくと、Web上でレンダリングした際のクオリティが上がります。
プロジェクトへの抽出(実体化)
生成結果に問題がなければ、実際のファイルとして保存します。
- Assistantウィンドウの生成結果UIにある保存(または抽出/Add to Project等)のボタンをクリックします。
- 保存先のフォルダを問われるため、
Assets配下の管理しやすい場所(例:Assets/Animations/など)を指定します。 - ファイル名を
CutePose.animのような、後から見て何の動作か判別しやすい名前に設定して保存します。
ここで保存した .anim ファイルが、次のステップで Three.js などの Web環境へ持っていくための VRM Animation(.vrma)の元データとなります。このファイルがProjectウィンドウ上で青い三角形のアイコンとして表示されていれば、保存処理は成功です。
3. VRMAエクスポートへの連携(.vrma の最速書き出し)
Unityのパッケージ依存や環境構築の沼を避けるため、獏星(Baxter)氏が公開している「設定完了済みのサンプルプロジェクト」を使用するのが最も確実で高速です。
GitHub:
GitHub - malaybaku/AnimationClipToVrmaSample: Sample Project to Convert AnimationClip to VRM Animation (.vrma) in Unity
Sample Project to Convert AnimationClip to VRM Animation (.vrma) in Unity - malaybaku/AnimationClipToVrmaSample
github.comサンプルプロジェクトの取得
ターミナルを開き、サンプルリポジトリをローカルにクローンします。
git clone https://github.com/baxter-tech/AnimationClipToVrmaSample.git
※ダウンロードしたZIPを解凍する形でも問題ありません。対象フォルダは AnimationClipToVrmaSample-main となります。
Unity Hubでプロジェクトを追加・起動
- Unity Hubを開き、右上の 「追加(Add project from disk)」 をクリックします。
- 先ほどクローン(または解凍)した
AnimationClipToVrmaSample-mainフォルダを選択します。 - リストに追加されたプロジェクトを、Unity 2022.3.x 系(2022.3.62f3 など) で開きます。
- 【注意】 互換性エラーを防ぐため、Unity 6 (6000系) などへのアップグレード処理は行わず、2022.3系を維持してください。
生成したアニメーションの移行(インポート)
前項で Unity 6.4 の AI を使って作成した AnimationClip(例: CutePose.anim)を、現在開いている Unity 2022.3 のプロジェクトへ持ち込みます。
- エクスプローラー(またはFinder)を開き、Unity 6.4 側で保存した
.animファイルをコピーします。 - Unity 2022.3 の Project ウィンドウ下部(
Assetsフォルダ内)へ、コピーしたファイルをドラッグ&ドロップしてインポートします。
.vrma の書き出し(Export)
- Projectウィンドウにインポートした
AnimationClip(CutePose.anim)をクリックして選択します。 - そのまま 右クリック し、メニューから
Export VRM Animationを選択します。 VRM Animation Exporterのウィンドウが開くので、以下を確認します。- Avatar: 対象のアバターモデルが指定されていること
- Animation: 対象のクリップが指定されていること
Exportボタンをクリックし、任意の名前(例:CutePose.vrma)で保存します。