UnityMuseとは
Unity公式の生成AIサービス群です。
既存のUnityライセンスとは別に、UnityMuse専用のライセンスが必要です。
(15日間の無料トライアルがあります。)
このドキュメントではキャラクタアニメーションに関する生成AIであるMuseAnimateを使用する方法と、これを使用してみた感想を記載します。
生成されるのはHumanoidに対応したAnimationClipです。
公式リンクはこちらです。
Unityブログ
UnityMuseサイト
始め方
Unityインストール
Unity2022.3以降のUnityをインストールしてください。
手元の環境のUnity6では動作しなかったので、2022.3.2Xを使用しています。
PackageManager経由でのインストール
MuseサイトでAnimate/GetStartedを押すと、PackageManager経由のインストール方法を表示されます。
Unityのパッケージマネージャーのプラスボタンから「Add package by name」を選択します。
「com.unity.muse.animate」を記入し、Addボタンを押します。
タブにMuseメニューが出てくるので、NewAnimateGeneratorからツールを起動します。
アカウントを選択します。
利用規約等のポップアップが表示されます。
生成に関する設定
空欄に生成したいアニメーションに関するプロンプトを入力します。
Generationsは一度に生成するモーション数です。
まとめて生成して、近いものを選ぶのがいいですね。
1~4までの数字を指定可能です。
Duration(sec)でアニメーションの長さを指定出来ます。
ちなみに3(秒)で設定したアニメーションでは、174フレームのAnimationClipが生成されました。
あくまで目安だと思います。
1~5までの数字を指定可能です。
生成
汎用系なモーションを生成
とりあえず簡単そうな単語を入力してアニメーションを生成してみます。
「walk happy」としてみます。
いい感じですね。
歩き方が軽快な感じとか、上を向いている感じとかhappyだなと思います。
こちらもいい感じですね。
前後の立ち姿勢の指定はしてないですが、ゲームでよくある使い方になっていると思います。
ポーズが重要なモーションの生成
Unity公式サイトのOKポーズを想定し、アピールモーションを生成してみます。
プロンプトは以下とします、具体的な単語はGoogle翻訳で得ました。
- アピール(Appeal)
- 右手で親指を立てる(thumbs up with right hand)
- 左手を腰に当てる(put your left hand on your waist)
- 頷き(nod)
前述の2つのアニメーションと比較して難易度が高いようで、なかなかイメージするアニメーションが生成されませんでした。
何度が生成し近いアニメーションを選びましたが、それでも左手の位置がイメージと異なります。
修正していこうと思います。
編集に関する設定
ツール画面下部の【Make Editable】ボタンを押下し、【EditOptions】を表示させます。
生成したアニメーションをいくつかの区間に分割して編集しますので、分割の粒度を指定出来ます。
スライダーを右に動かすほど、分割が細かくなります。
どの程度分割されるか、どのタイミングで分割されるかはアニメーションの内容によって変動するようです。
EditOptionsで【Done】ボタンを押すと編集画面に入れます。
手首、足首などいくつかの部位を移動/回転コントロールできるようです。
肩などの部位は移動のみコントロールできるようでした、エイムのような概念のようです。
KeySettingから分割区間ごとの設定が出来ます。
- Transition Duration...その区間をどれだけの長さとするか。右(カメのアイコン)に動かすほど、長く取るようです
- Extrapolated Pose...オンだとこの区間の最後までポーズを維持しているように感じました。オフだと区間の最後は次のフレームに遷移しています
- Loop to first pose...最終区間のみオンにすることが出来ます。オンの場合は開始区間の最初のポーズとつながり、いわゆるループモーションとなります。
出力に関するボタン
AnimationClipは画面下のExportから保存可能です。
実際にアニメーションをキャラクターに流す
生成したアニメーションを、SDUnityChan、UnityChan、Robotに流してみます。
Humanoidアニメーションですので、当然問題なくリターゲットしてくれます。
感想
歩きや前転など、汎用的なモーションを気軽に作れるのは非常に便利だと思います。
Unityエディタのみで、誰でも簡単に、数秒で生成できることは、イテレーションの観点から何にも変えられないメリットだと思います。
生成が難しいアニメーションでも、ある程度修正可能な点も素晴らしいと思います。
しかし何度生成しても足の接地感は気になりました。
また修正画面においてはいくつかの不便を感じてしまいました、主に感じた点は以下です。
(私が操作方法に気がついていないだけであれば申し訳ないです)
- 指の編集が出来ない
- ローカル回転を直接制御できない骨がある
- アニメーションカーブを確認する事ができない
- タイミングを数値で調整する事ができない
- FullBodyIKのように、1つのコントローラの操作で全身が動く。この際に再推定が走っているのかかなり重い
- SceneViewと視点操作方法が異なる
- Ctrl+Zの戻る操作が使えず、画面上の戻るボタンを押す必要がある
微細な調整が難しく、商業レベルで使うのはかなり難しいと感じます。
他のAIサービスと同様に「エンジニアがモック開発で使うくらいならできるかも」くらいの精度だと感じました。
とは言え「歩き」「武器攻撃」などのベーシックなアニメーションはAssetStoreに並んでいますし、UnityChanのパッケージにもいくつか含まれているので、基本的にはそれらを使用させていただくのがいいと思います。
望みのアニメーションが見つからない場合の選択肢の1つとしては覚えておこうと思います。
あとすごく細かいですが、セッション単位で.assetファイルが生成される点は正しいのかは気になりました。
また精度向上はもちろん、足滑り、カクつきを抑えるなどのオプションや、全ての骨のローカル回転を指定できるモードがほしいと感じました。
他のサービスでは画像や動画をヒントにしてアニメーションを生成してくれるものもあるので、そういったアプローチにも期待したいです。
いずれにしても記事執筆時点ではPreviewパッケージなので、今後に期待したいと思います。
個人的にはとても面白い取り組みだと思うので、アップデートがあれば追っていきたいです。
その他リンク
https://unity-chan.com/contents/guideline/
https://unity-chan.com/download/releaseNote.php?id=UnityChan
https://unity-chan.com/download/releaseNote.php?id=SDUnityChan
https://assetstore.unity.com/packages/3d/characters/robots/robot-kyle-urp-4696?locale=ja-JP