3Dモデル生成AIを使ったクラフトパズルゲーム『みんなのMOZOO』ができるまで
2024年6月18日、Polyscapeは最先端の3Dモデル生成AIの技術デモを兼ねた短編ゲーム「みんなのMOZOO」をリリースしました(プレスリリースはこちら)。合わせて、WEBサイトを公開しました。
本記事では、最先端の生成AI技術を用いたこのゲームがどのようにして生まれたか、そしてその技術的な仕組の裏側といった、「みんなのMOZOO」開発における技術的な制作秘話を公開します。
また、生成AIをゲームにまとめる際に意識した、ゲームデザイン面の工夫に関しては、弊社のゲームプランナー宮本による記事「生成AIをゲームに組み込むには?3Dモデル生成AI体験ゲーム『みんなのMOZOO』のゲームデザイン実例」にて語られています。合わせて御覧ください!
「みんなのMOZOO」って何?
みんなのMOZOOは、最先端の3Dモデル生成AIの技術デモを兼ねた短編ゲームです。プレイヤーは、不思議な言語学習型実験体「MOZOO(モゾー)」に言葉を教えることで、MOZOOをその場で言葉にあわせた姿に変身させることができます。
プレイヤーは自由にMOZOOを変身させ、最大30体保有することができます。「あそぶ」モードでは、自分のつくったMOZOOに加えて、他のプレイヤーがつくったMOZOOを積み上げて高さと個数を競うつみあげパズルゲームをプレイすることができます。
「みんなのMOZOO」は、アプリ版(iOS版・Android版)は無料、PC版はitch.io から150円でプレイが可能です。ダウンロードは以下のURLから可能です。
PC版 みんなのMOZOO:https://polyscapeinc.itch.io/mozoo
Android版 みんなのMOZOO:https://play.google.com/store/apps/details?id=io.polyscape.mozoo
iOS版 みんなのMOZOO:https://apps.apple.com/jp/app/%E3%81%BF%E3%82%93%E3%81%AA%E3%81%AEmozoo/id6503721192
また、みんなのMOZOOは技術デモということもあり、期間限定公開となっています。公開期間は未定ですので、ご興味のある方はお早めにプレイしてみてください!
どうして「みんなのMOZOO」を作ることになったのか
1作目のMISTRGOUEとはだいぶ毛色が違う「みんなのMOZOO」ですが、その背景には、2024年2月頃から社内で打ち出され始めた、「AI時代のEpic Gamesになるために、AI技術でゲーム制作コストの劇的圧縮をすることを目指す」という戦略がありました(詳しくはこちらの記事をご参照ください)。 Polyscapeは今年3月から、AIを用いたゲームQAがエンジンのサービスを開始しましたが、もともとあったコンテンツ事業も継続して行っています。一見違う2つの事業ですが、その根底には「AI技術をゲーム開発に用いて楽に開発を行う」という共通テーマがあります。
ゲーム開発においては、物量や工数がとても大きい作業が多々ありますが、その中でも非常に大きいものが「3Dモデリング」という作業です。キャラクターであれば、1体作るのに1ヶ月以上かかるといったこともあります。この3Dモデリングという作業が、AIによって自動化できるのであれば、ゲーム制作には非常に大きなインパクトがあるだろう、そう考えたのが、みんなのMOZOOを作るきっかけでした。
当時、Stability AIの Stable Zero 123を始め、3Dモデルを生成するAIがいくつか発表され、「わりと精度が良さそう」ということまではわかっていましたが、実際に触って見なければ精度・価格・レスポンス時間・実装コストなども含めて使い物になるのかよくわからない、というのが当時の印象でした。「もし精度が良くて使えるのであれば、それを使っていないことは大きな機会損失になる」と考え、自分たちで手触りを確かめるとともに、広報的な観点でもより多くの人にPolyscapeのやろうとしていることを知ってもらうことができるという理由で、「ゲームという体験に載せる」ということを選びました。
その方向性を決めたのが2024年の2月で、2月に企画を行い、実制作期間は3,4,5月と、企画を含め4ヶ月でリリースに至りました。メインとなる開発メンバーは約3人(アートディレクター、プランナー、エンジニア)で、広告等の収益は見込めるものの技術デモということもあり、コンパクトに、スモールに作って、早めに世の中のリアクションを見ていこうというスタンスが一貫してありました。
実際に使ってわかった3D生成AI の実情
「みんなのMOZOO」の根幹となるのは、 “Text to 3D (Text to Mesh)” といわれる「テキストからの3Dモデル生成」という技術ですが、この部分の生成エンジンにどのモデルを採用するか、というのが非常に重要なファクターでした。というのも、「3Dモデル生成」においても、LLMや画像生成モデルと同様、日々新しいモデルや新しい手法、新しいアプローチが日進月歩ででてくる状況でした。それらの中から、技術選定を行いコアにする生成エンジンを決める必要がありました。技術選定の道中、幅広くいくつもの3D生成エンジンを触れましたが、ここでは代表的ないくつかの3D生成エンジンと、それらを実際に触った所感をお届けします。
Meshy
初期に試した生成エンジンのひとつが、Meshy です。WebサービスでありながらAPI経由でも利用できそうである点は使い勝手よく思えましたが、ローポリを指定してもわりとハイポリなモデルが出力されるという点と、モデル生成数によって月額利用料がかかるため、今回想定している「動画広告でマネタイズする無料アプリ」という体裁にはマッチしない(AWSに関してはクレジットを保有していたので、実質無料で使えた)、という理由からお見送りとなりました。
MeshGPT
ミュンヘン工科大学、トリノ工科大学、アウディの研究チームが共同で2023年11月27日に発表したのがこの「MeshGPT」(論文はこちら)です。三角形のメッシュを、Transformerを使って自己回帰的につなぎ合わせる(今までのメッシュの集積から次のメッシュの位置を予測する)という独特の手法でメッシュを作ります。
こちらも手元で使用可能な状態に環境整備しましたが、「1つのオブジェクトを生成するのに3分かかる」「生成結果の、モデルとしての精度が出づらい」「それらを改善するために追加で学習させようとしても、学習元に使用できるリソースが限られる」といった課題感から、採用は見送ることにしました。
Stable Zero 123
「Stable Zero 123」は、画像生成AIエンジンの雄、「Stable Diffusion」を開発している Stablity AI が2023年12月14日に公開した3Dモデル生成エンジンです。1枚の画像から類推し、写っていない部分も含めた360度ビューの3Dモデルを生成できるという強力な3D生成機能を有しています。
こちらは、最初サンプルを見たときに精度が高そうと意気込んで真っ先に検証を行いましたが、実際は求められるコンピュータスペックが高く、生成速度が非常に遅かったため(Google ColabのT4 GPUでは数十分かかりました)正直ライブ生成という今回の使用目的では使うことは難しいという判断となりました。
Shap-E
「Shap-E」は、「GPT-4」や「ChatGPT」といった大規模言語AIモデルの定番サービスを多数輩出しているOpenAIが2023年5月に公開した3Dモデル生成AIです。オープンソースで開発されており、無料での使用が可能です。実際に、こちらのHuggingFace上のWEBビューから誰でもブラウザから生成の実験ができます。
実際に使った感想としては、ポリゴン数は低く、形状はかなりざっくりしているものの、生成はT4 GPUで15-30秒前後と使えないことはないといった感じでした。ワードは反映するものの、基本的には一般的な名詞以外は精度が落ちる点、「ジャンプしている猫」といった修飾語つきのワードの反映度がそこまで高くない点がネックで、「失敗も含めて楽しめる」「なんとなく汲み取ってくれて面白い」といった体験となりました。後述の通り、最初はMOZOOはこちらのShape-Eモデルを利用していました。
TripoSR
先程のZero 123 の開発元であるStablity AI 3Dモデル生成AIエンジンの「Tripo AI」を開発するTripoと提携し、2024年3月5日に公開したのがこちらの「Tripo SR」です。
TripoSRは、MOZOO開発中に突如として現れたモデルで、Shap-Eとは違ってImageTo3Dのモデルですが、Shap-Eより早く、Shap-Eより精度が高いという、非常に優れたモデルです。最近ではCRMとったモデルもありますが、現時点では速度・精度ともに最高峰のレベルではないでしょうか。弱点としては、「画像の一角度からみたらたしかに正しいけど、回転させると歪んでいる」といったことが起こる点でしょうか。上記の公式のサンプルは比較的うまく行っている部類ですが、常に上のようなクオリティになるわけではないという印象です。
MOZOOではどのモデルを使ったのか
MOZOOでは、初期はShape-Eを使い、最終的にはTripoSRに移行しました。というのも、TripoSRが発表されたのは2024年3月5日と、MOZOOの開発の真っ最中だったため、途中で移行をするという作り方になりました。
もともと「生成エンジンを決め切らずともアプリとしてのコンテンツ部分は開発を進められる」という状況をつくり、エンジンの載せ替えを前提とした柔軟なデータ&フロー設計をバックエンドにて行っていたため、比較的コストがかからずモデルの変更に対応することができました。
以下は、「馬」というワードでつくった、2つの違うモデルのMOZOOです。Shap-Eは形状はざっくりしているのに対して、TripoSRは造形が細かくなり、脚の形状なんかもリアルに再現されるようになっています。しかも、生成時間はTripoSRはShap-Eに比べると3分の1~4分の1といった感じで、待ち時間の短縮にも貢献しました。
MOZOO生成の仕組みを大解剖!
次に、MOZOO生成の技術的な仕組を公開していきたいと思います。未だAPI化されていない 最新のAIモデルをサービスやゲームに利用しようとしている開発者の方のお役に立てれば幸いです。
システム構成
「みんなのMOZOO」ではクライアントアプリは普段からよく使うUnity製です。バックエンドは、クレジットを保有していたということもありAWSを利用しました。システム構成は下図のようになっています。
実際に、リクエストから3Dモデル生成までの主な流れは、以下のようになります。
クライアントアプリから生成リクエスト(プロンプト)を送る
AWS Gateway、Lambdaを経由してSQSにエンキューする
生成ステータスをRDSに書きこむ
EC2上の3Dモデル生成アプリからSQSをポーリングする
リクエストがあればワークフロー(Json)を生成してComfyUIに読み込ませる
ワークフローを元にSDで画像を生成してTripoSRに渡し3Dモデルを生成する
生成された3DモデルをS3にアップロードする
生成ステータスを更新する
クライアントアプリから生成ステータスを監視して、生成済みであれば3DモデルをDLする
Comfy UI
TripoSRはImageTo3Dのモデルですが、みんなのMOZOOでは、テキストを直接的に3Dに変換します。Comfy UIを使うことによって、この部分の実装を簡単に行うことができました。Comfy UIはノードベースのツールで、コードを記述することなく複雑なStable Diffusionのワークフローを構築できるツールです。
今回の検証(下図)では、まずテキストからStable Diffusionで画像を生成し、それをTripoSRに入力として渡し3Dモデルを生成するというTextTo3Dのワークフローを作成しています。Stable DiffusionやTripoSRの生成結果をComfy UI上でプレビューできるようにすることでパラメータ調整がしやすくなっています。
Comfy UIはノードベースのツールでありコードを書く必要がなく、UI上の操作だけで済むのでエンジニア以外でも簡単に扱うことができました。TripoSRのクオリティチェックであったり、パラメータ調整などをプランナーが行うことでエンジニアはコードを書くことに専念できました。
Comfy UIで作成したワークフローは共有することができます。ワークフローはJsonとして保存され、読み込むことで他の人が設定したワークフローを再現することができます。また、ワークフローはAPIから読み込み実行することができます。この機能を使うことで、生成リクエストからSDのプロンプトを含めたワークフローを生成してComfy UIに渡すといったことも可能になり、既存システムへの組み込みもスムーズでした。
実際の価格感と生成時間
ランニングコストはAWSのみで、API Gateway、Lambda、RDS、S3も使用していますが、それぞれが占める料金の割合は低く、費用のほとんどがEC2となっています。EC2の料金は主にインスタンスのスペック・稼働時間・リージョン・台数で変わってきます。「みんなのMOZOO」ではEC2インスタンスはg4dn.xlargeを複数台起動していて、1カ月フル稼働させると東京リージョンで1台あたり月額約511USD(1時間あたり0.7ドル)ほどかかります。
こちらのg4dn.xlargeは、Google Colabの標準で使えるGPU T4と同じ水準のGPU(もちろんGPU以外の部分は違いますが)なので、これからAIを使ったアプリケーションを開発予定の方は、自分たちのアプリケーションの費用見積もりにあたって、まずはGoogle Colabで実行してみるというのもひとつの手でしょう。
気になる生成時間ですが、こちらのインスタンスで、前述のShap-Eを使う場合は30秒〜1分かかっていました。最終的に生成モデルをTripoSRに切り替えたので、テキストからStableDiffusionの画像生成、画像からのモデル出力を合わせて10秒〜20秒ほどに短縮されました。1台で回す場合、生成している10秒〜20秒の間に別なユーザーの生成がキューイングされると、逐次処理されるので、そのユーザーの生成は、前のユーザーの生成が終わるまで開始が遅延されることになります。生成が分散していれば、何度生成されても1台月500ドルとなりますが、実際は同時に生成リクエストが来るので、生成リクエストの数に応じて台数は動的に変更するようにしています(後述のEC2 AutoScaling)。3D生成をしていますが、画像生成等を行う場合でも基本的には同様の価格感になってくるでしょう。
EC2 AutoScaling
TripoSRの導入によってアプリ側は最適化できましたが、EC2インスタンスを何台起動しておくかが課題になります。生成リクエスト数に対して起動台数が少なければプレイヤーの待ち時間が増えたり、リクエストの受付自体できないことも出てきますし、逆に生成リクエスト数に対して多ければ無駄にコストが発生することになります。
EC2インスタンスを手動で複数台起動しておき生成リクエスト数が少なければ減らす方法もとれますが、「みんなのMOZOO」ではEC2 AutoScalingによって生成リクエスト数に合わせ自動でスケーリングされるようになっています。生成リクエストはSQSにエンキューされ、EC2上の生成アプリから1個ずつ取り出され逐次処理されていきます(少し脱線しますが、SQSを用いることで疎結合なシステムを構築することができます)。EC2 AutoScalingの増台条件をSQSのメッセージ数(生成リクエスト数)に設定することで、生成リクエストが溜まっている時は通常よりも多くのインスタンスが起動して処理にあたります。
注意点としては起動できるEC2インスタンスの台数には上限数があり、その上限を超えて起動することはできません。事前に想定される使用台数を申請して承認してもらう必要があります。そのクォータリクエストの際には試算根拠を一緒に提出すると承認されやすいようです。この審査には数日かかることもありますので、少し多めに見積もって申請しておくといいかもしれません。
ポリゴン削減を行う工夫
Shap-EにしろTripoSRにしろAIによって生成された3Dモデルはポリゴン数が多く、モバイルでそのまま扱うには重すぎるという問題がありました。1体だけであれば問題ありませんが、「みんなのMOZOO」では何十体と画面に描画する必要があります。そこで生成された3Dモデルに対してポリゴンのリダクションを行う処理を入れモデルを軽量化しました。また本作では不要な頂点カラーなども破棄しています。軽量化したことによって
モバイルでも多くのMOZOOを描画できる
プレイヤーの待ち時間を時短できる、通信料の削減
S3の使用容量を抑えられる
といった恩恵が得られました。現状では生成AIで作られた3Dモデルをゲームでそのまま使うにはまだ難しいかもしれませんが、生成されたものを元にすることで今後もワークフローの改善や面白いゲームが生まれることに期待できそうです。
MOZOOの開発を通じて見えてきたこと
ゲームにおける3Dモデル生成AIの所感
MOZOOを通じて、ゲームにおける3Dモデル生成で見えてきたのは、次のような所感です。
TripoSRはじめ最先端のAIもまだ、3D生成においては、商業ゲームの事前アセット生成(2Dキャラクターデザインのモデル起こしなど)にそのまま使えるクオリティではなさそう
とはいえ、草や岩といった、一般的なPropsであったり、ゲームの主軸を成さないオブジェクトであれば、使い所によっては使えそう
一方で、MOZOOのようなAI生成をライブ生成といった「体験面」の応用という目的であれば、企画にはよるが十分な精度が出ている
まだ商業ゲームのキャラクター等の事前生成には使えないという感覚値ではありますが、開発中にTripoSRが出てきたように、この分野は目まぐるしいスピードで進化しているので、人間のモデラーに匹敵するレベルの3Dモデル生成AIは、そう遠くない未来に出てくるだろうという見方をしています。
Polyscapeの生成AIとの向き合い方
SteamのAI規制をはじめ、ゲームに利用される生成AIには、ネガティブな風向きがあるのは事実ですが、同時に多くの人の期待があるのもまた事実です。先日サンフランシスコで開催されたGDC 2024で行われたアンケートでは、57%の人がゲーム産業に生成AIは「Mixed Impact(ネガティブとポジティブの混合したインパクト)」を与える、と答えています。
私達Polyscapeとしては、「生成AIのリスクはまだゼロではないが、ゲーム開発を良くする”道具”としてうまく使えれば、ゲーム開発者にとっては強大な武器となる」という考え方を持っています。特に、私達のようなスタートアップやインディー開発者といった、開発者の中でも比較的リスクをとれるデベロッパーが率先して試していかなければ、前に進んでいかない部分もあるのではないか、と考えています。
かく言うMOZOOも、実はSteamでリリースを試みたところ、やはりユーザーがアダルトコンテンツを生成しうる、という理由でSteamではリリースを拒否されてしまいました。「みんなのMOZOO」ではセンシティブワードは軒並み禁止しており、生成される時点で生成リクエストが飛ばないようになっているものの、それでも100%防ぐことはできないので、Steamの言い分もわかります。
そういった理由でPC版はitch.ioのみ となっていますが、実際にMOZOOを通じて人々がどんな生成を試みるかはまだ見えない部分もあり、これが物議を醸し出す結果となることも一定覚悟はしつつも、そういったことを通してなにか新しい知見が得られるという期待を込めて、このプロジェクトを進めているという一面もあります。
私達は、今後もゲームコンテンツ事業を続けていきますが、その開発過程では生成AIをはじめ使える技術はとことん使って効率的にゲーム開発を行おうと考えています。ゲームQAテック事業として展開している「PolyQA」もその一部で、他社に自動QAエンジンとして提供しつつも、自社のゲーム開発にAIQAを使うことで、開発コストを削減しようと考えています。
その過程で、今回のようにまだ不確定性の高い技術に関しては、デモとコンテンツを兼ねたような形で世に出していくこともあると考えているので、引き続きウォッチしていただければと思います。
さいごに
Polyscapeが目指しているのは、ゲームコンテンツとゲーム開発の両輪の事業を持つ、「強力な開発効率化手法を宿したコンテンツデベロッパー」です。その両方にはAIという共通ノウハウを持ち、面白さと技術両方に強いアンテナを持つ会社にしたいと考えています。こういった技術が発達した暁には、今の開発コストの数分の1〜10分の1でゲームを開発できるという未来も夢ではないかもしれません。
今後も、ゲームに関わる技術研究やコンテンツ開発・エンジン開発をおこなっていきますので、Polyscapeといっしょになにかを共同開発したい、生成AIを用いたゲームを開発したい、ゲームQAをAIで自動化したい、といったニーズやご要望があれば、お気軽に お問い合わせ からご連絡をいただけますと幸いです!
それでは引き続きPolyscapeを よろしくお願いいたします!