Unreal Engineのゲーム空間をimage2imageで変化させてみた
初めに、image2imageを組み合わせたケースを考えてみましょう。
昨年12月、あき先生ことAkio Kodairaさんを筆頭にした研究グループが、リアルタイム画像生成を実現するために最適化されたパイプライン「StreamDiffusion」を発表しました。画像サイズが小さければ100fps以上も可能という、現状では最高速の生成ができる方法です。
これによってUnreal Engineのゲーム空間を撮影し、それをi2iで生成し続ければ、十分にゲームが成立するのではと考えました。試してみたものがこちらです。
#StreamDiffusion をUE5のポストエフェクト的に使えないかのテスト。FPSサンプルマップを表示している。例のDepthで作成した顔も置いている。4090だが、裏でUE5が動いているので、512x512でFPSは13ぐらいも、ゲームプレイはなんとか成立する。すぐ実現しないだろうが、いずれ来る未来。 pic.twitter.com/moBoTUsEVb
— 新清士@(生成AI)インディゲーム開発者 (@kiyoshi_shin) January 9, 2024
これはUnreal Engine 5(UE5)のサードパーソンビューの基本的なチュートリアルのマップですが、プレイできないことはないですね(笑)。裏でUE5が動いていることもあり、解像度は低く、フレームレートも10fpsぐらいでした。ただ、こうした「何があるのかはっきりしない」テーマのゲームだと定義してしまえば、成立する可能性はあるようにも思います。
さらに、以前に紹介したUE5の森林をテーマにしたプロシージャルマップをi2iで生成したものがこちらです(プロシージャルについては「もし画像生成AI『Midjourney』がメタバースに実装されたら」参照)。
#StreamDiffusion を、昨年のEpicのGDCデモのElectricDreamsのマップに適応してみました。流石にそもそものマップが重いのでFPSは10を切るのと、森の情報なので、画面の一貫性を維持するのは難しいですね。それでも、なんとなくそれっぽいのが楽しい。成立させるには適度な情報量の管理が必要そう。 pic.twitter.com/lbdRcwozQK
— 新清士@(生成AI)インディゲーム開発者 (@kiyoshi_shin) January 9, 2024
森の中を動いているけど、何が映っているのかがわかりません。プロンプトに「森、木、岩」といった指定は入れているのですが、UE5の画面の情報量が多すぎるのか、解像度の限界からか、映像がはっきりしません。最後のシーンでは岩山が映りますが、岩になったり巨大樹になったりと安定しません。
もう1つ、普通の三人称視点のシューターのサンプルマップも試してみました。女性形のアンドロイドが登場するため「少女の後ろ姿(Girl from back)」というプロンプトを入れてみたら、形状が不安定なところがすべて「ガール」になってしまいました(笑)。壁の影のしみからもガールが登場するという有様で、敵の位置がまったくわからず、ゲームとしては成立しませんでした。ただ、もっとマップの情報を単純化したりすると成立するかもしれません。
#StreamDiffusion でUE5のサンプルゲームのLyraStaterGameでも試してみたが、ゲームが成立しなかった。プロンプトに"girl, from back"と入れておくと、壁のシミや銃の発光エフェクトから、女の子が生成されてしまうため、敵がいないのに、敵かと誤って認識してしまう。またライトがない方がいいかも pic.twitter.com/2jvuEQ1EBE
— 新清士@(生成AI)インディゲーム開発者 (@kiyoshi_shin) January 9, 2024
こうした高速化のアプローチでは、まだまだ一貫性が大きな課題になりそうです。それでも、可能性は十分に感じられました。UE5で表示されているものが何か動的にプロンプト分析する手法など、今後も新しいテクニックが出てくるだろうと思います。
筆者の環境はNVIDIA GeForce RTX4090と相当ハイエンドですので、現時点では求められるビデオカードのスペックが高いことも一般化のネックになると考えられます。
週刊アスキーの最新情報を購読しよう
本記事はアフィリエイトプログラムによる収益を得ている場合があります