はじめに

Unity 6.2から、MuseやSentisのサービスが終了して、Unity AIに統合されました。
主に以下のような機能があります。

  • アシスタント
    • 質疑応答
    • 実行
    • コード生成
  • ジェネレーター
    • 3Dモデルのアニメーション生成
    • マテリアル生成 
    • テクスチャ生成
    • サウンド生成
  • 推論エンジン
    • ニューラルネットワーク推論ライブラリ

まだBeta版ではありますが、3Dモデルにジャンプさせる機能を作りながら紹介していきたいと思います。
※推論エンジンはドキュメントを読む限り、Sentisとほぼ同じなので今回は取り上げません。

注意事項

日本語未対応

日本語の入力はできますが、見当外れな結果が返ってくるので実質対応していません。
プロンプトは英語で行う必要があります。

利用料金

Beta版の間は無制限ですが、正式リリースされると有料になります。”Unityポイント”というポイントを使用するようになり、Pro、Enterprise、Industryに加入していれば毎月一定のポイントが支給されるようです。
利用料金は正式リリースされてからの発表になります。

執筆中に、Unity 6.2が正式リリースされましたが、Unity AI自体はまだBeta版なので、無制限に使用できます。

開発環境

  • Unity 6.2 Beta (6000.2.0b11)
  • Assistant 1.0.0-pre.10
  • Generators 1.0.0-pre.16

3Dモデルの準備

残念ながら、ジェネレーターには3Dモデルを生成する機能は無いので、代わりにMeshy AIという3Dモデルの生成AIサービスを利用しました。無料でも数回分のモデルを生成することができ、ボーンまで入れることができます。
※Meshy AIの使い方は省略します。

ジェネレーター

Animation

3Dモデル用のモーションを作成することができます。生成したモーションを選択して、トリミングやZ方向の固定等の編集を行うことも可能です。動画をインポートして、そこからモーションを生成することも可能です。
添付動画では、ジャンプのモーションを作成しています。

Material

3Dモデル用のマテリアルを作成することができます。最大9個まで同時に作成することができ、
作成された中から、任意の物を選択してアップスケーリングやPBRの作成を行うこともできます。
添付動画では、SF風石膏の地面用マテリアルを作成しています。

Sound

最大10秒の音を作成することができます。元となる音源やマイクからの入力も参照して作成することも可能です。最大9個まで同時に作成できますが、モーションやマテリアルのように、作成後にトリミング等の編集はできないです。
添付動画では、ジャンプ時の効果音を作成しようとしていますが、何度試してもあまり良いと思えるものができませんでした。

Sprite

画像を作成することができます。SpriteもTextureも出力が違うのみで作成方法は全く同じです。
背景なのか?ボタンなのか?など、どのようなニュアンスで作成するかを選択してから作成します。
画像も最大9個まで同時に作成することができ、作成された中から、任意の物を選択して、背景を切り抜いたり、アップスケーリングしたりすることが可能です。
添付動画では、宇宙空間の背景用画像を作成しています。

アシスタント

ask

テキストの先頭に”/ask”を入力することで、質問することができます。
Unityエディターの操作やAPIに関することはもちろんの事、シーンの状態やGameObject、コンポーネント、プロジェクト設定等の質問もすることができます。
添付動画では、シーンの状態と”Robo”というGameObjectの詳細を聞いています。

run

テキストの先頭に”/run”を入力することで、シーン上にGameObjectを作成したり、アセットの作成を行ったりできます。即座に実行するわけではなく、作成用のコードが表示されて、確認して大丈夫なら実行することができます。
添付動画では、ジャンプ用にuGUIのボタンを生成してもらっています。何度か修正を依頼して、
“Jump”の文字をボタン中央に表示するようにしています。

code

テキストの先頭に”/code”を入力することで、ソースコードを生成することができます。
添付動画では、先ほど作成したJumpボタンを押下したら、ロボットがジャンプするコードの生成を依頼しています。同じプロンプトでも結果のバラツキが大きくてジャンプしないこともありました。
ジャンプした時にモーションを変えたり、効果音を付けたい時は、そのこともプロンプトに含める必要があります。

ジャンプをもう少し改良

パワーゲージのようなものを付けて、矢印が高い位置にあるほど、高く飛ぶように改修しました。
本来はゲージそのものを上下させたかったのですが、ジェネレーターでゲージのフレームのみ、中身のみを作成するのが難しかったので、矢印をだして動かすことにしました。

添付動画ではまだ粗がありますが、AIに以下のような細かい挙動を実装してもらうのはかなり大変でした。

  • ジャンプのモーションに合わせて飛ぶ
  • 飛んでいる間はジャンプボタンを非表示
  • 飛んでいる間は矢印の上下アニメーションを止める
  • 着地判定

英語でしかプロンプトが入力できないというのもありますが、何度もやり取りを行い、理想の挙動になるのに時間がかかりました。プロンプトを渡す時は一度に複数の処理ではなく、一つずつ処理の修正を行うと成功率が高かったです。
この程度だったら自分で実装したほうが早いと感じました。

まとめ

自分でコードを書いたり、画像を作成するのは禁止して、完全にUnity AIのみで作業をしてみましたが、
今回のようなジャンプさせる程度だったら自分でやった方が圧倒的に早いなと感じました。
同じプロンプトでも毎回結果が違う運要素があったり、少し気になるような挙動になったりすると、AIに直してもらうのが大変でした。
活用するとしたら、

  • シーンやプロジェクトの状況を聞く
  • 手作業で面倒な大量のGameObjectの配置
  • テスト用の画像の生成

以上のようなことに役立つのではないかと思いました。
流行の完全AI主導より、アシスタントとして使うのが良いと思います。



ギャップロを運営しているアップフロンティア株式会社では、一緒に働いてくれる仲間を随時、募集しています。 興味がある!一緒に働いてみたい!という方は下記よりご応募お待ちしております。
採用情報をみる