見出し画像

画像生成AIで絵柄が一貫した2Dゲームのステージを制作する

GenerativeAIをゲーム開発に活用する方法Tipsのマガジン
ゲーム開発AI Lab. Witchpot
に含まれる記事です。ゲームづくりを前提に書かれています。

現在の画像生成AIでアクション要素ゲームステージを作りたいと考えた場合

  • ステージの形状が意図したものであること

  • 複数ステージ間の世界観を統一すること

この2点が大きな課題になると思います。

ステージ形状を意図したものに

画像生成AIのMidjourneyでゲームステージの画像を作ってみます

Prompt: 2D Side Scroller game stage, covering with ice, level design --no character enemy --ar 3:1 --v 5

かなり使えそうな絵が生成できるのですが、アクション要素などを含む場合そこにある障害物やアイテムが重要になるため、障害物やアイテムの位置を絵より先に位置や大きさを意図したものに決める必要があります。

そこで先日Unity上から画像生成をできるようにするstable-diffusion-for-unityを公開しました。

stable-diffusion-for-unityでDepth2Imag機能を使うことでUnity上で事前に準備した形状をもとにステージ画像をつくることが出来るようになります。

Depth2Image

複数ステージ間で絵柄を統一させる

続いて画像生成AIをゲームステージ制作に使うには複数のステージで世界観を統一するために絵柄をそろえたくなります。

画像生成AIでプロンプト入力を頑張って色々なパターンを試しても、ガチャをまわして運よく良い物が生成されるのを待つという状態になってしまいます。

これを何ステージにも渡って行うのはつらい作業となってしまいます。

出力される絵柄をファインチューニングという特定の出力がされやすいよう追加学習を行うことで実現できます。

このstable-diffusion-for-unityにはサンプルとしてicestageというプロンプトを入力すると一貫した氷のステージが出力されるLoRAファイルが入っています。このようにLoRAを使うと↓のように似通った画像を生成することが出来るようになります。

このようなモデルやLoRAなどはHuggingFaceCivitAIなどで他の人が学習したものを取得することが出来ます。
※ただし現在、著作権や倫理的な使い方について規制が追い付いていない状況のため問題が発生しやすい領域です。ライセンスや利用規約について人の権利を侵害しないよう十分ご注意ください。

ここでLoRAはMidjourneyでこの↓ように大量の画像を40枚程度作成・編集して学習に使用しました。

MidjourneyOriginal
背景など余計なものをトリミング

今回はこちらのsd-scriptsを使わせて頂いてLoRAにしました(LoRAは他の方法でも出来るとは思います)

このようにLoRAを作って使用することで複数ステージを世界観を統一しながら作成できるようになります。

@nakashun_t が作ったstable-diffusion-for-unity用のLoRAファイルはHuggingFaceで追加・公開していきます!

もしご自身でモデルやLoRA、ゲームを作ったら良ければ是非TwitterやDiscordなどでご共有ください!

まとめ

  • Depth2Imageを使って形状をコントロールして意図した地形の画像生成ができる

  • LoRAなどの追加学習したファイルを用いることで、複数ステージにわたって絵柄を統一することが出来る

これらはstable-diffusion-for-unityで行えるようにしました。
よかったら使ってみてください
※PC特にGPUスペックがかなり必用ですがVRAM8GBで出来る方法を模索しています。引き続き発信していきますので是非Twitterやnoteをフォローしてください



ゲーム開発にGenerativeAIを活かす方法を共有するDiscordコミュニティを作っています!

興味がある方はぜひご参加ください!

まだ作ったばかりのコミュニティですので是非気軽にコミュニケーションとって頂ければです!

サポートは開発・勉強用に使用させていただきます。