※本記事にはアフィリエイトリンクを含みます。
STATION OOPSは、FLIP LAB(重力反転)・WIRE BAY(配線パズル)・SIZE DOCK(サイズ変化)という3つのギミック面で構成されています。それぞれの面にはアクセントカラーを分けて割り当てました。プレイヤーが画面を見た瞬間に「今どの面にいるか」を直感的に把握できるようにするための工夫です。
今回は、この3面の背景アートを作る中で起きた試行錯誤をまとめます。
つまずき①:縦長の「見上げる構図」で作ってしまう
背景アートの生成を始めた当初、できあがった絵が縦に長い「見上げるアングル」の構図になってしまうことがありました。天井を見上げるような構図で、迫力はあるのですが、横方向にスクロールしていくゲーム画面には合いません。
原因は、生成する際に「横スクロールのゲーム画面に使う背景である」という前提を、構図の向きとして明確に指定していなかったことでした。ゲームの見た目に対して構図の向きを意識せずに生成すると、AIは絵として自然な構図を優先してしまい、必ずしも横長のゲーム画面に合うとは限らない、という気づきです。
つまずき②:一点透視から抜け出せない
構図の向きを意識するようにした後も、今度は一点透視(奥の1点に向かって線が集まっていく、遠近感の強い構図のこと。奥に伸びる通路を正面から見たときのような絵になります)の背景から抜け出せない状態が続きました。

対処として、side view(横から見た構図という意味の指定)やflat parallax layer(視差効果用の平面的なレイヤーという意味の指定)といったキーワードをプロンプトに加えて試しましたが、完全には解消しませんでした。
最終的な着地点は、多少の消失点(一点透視の奥の1点)が残ることを前提に受け入れ、実装側でぼかし処理をかけることで目立たなくする、という運用でのカバーです。生成側だけで完璧を目指すのではなく、実装側の処理と組み合わせて解決する、という現実的な判断をしました。
足場タイルは自作に切り替えた理由
背景アートとは別に、プレイヤーが乗る足場のタイル(同じ模様を繰り返し並べて使う画像素材のこと)についても検討が必要でした。
NovelAIでは、継ぎ目のない繰り返しタイル(並べたときに境目が目立たない、シームレスなタイル)の生成が苦手だということが分かりました。何度か試しましたが、境目が不自然に見えてしまいます。
そこで、足場タイルについてはPython(プログラミング言語)とPillow(画像を扱うためのPythonのライブラリ)を使い、シームレスなタイルを自分たちで作る方式に切り替えました。結果として、奥の背景はNovelAIで生成し、手前の足場タイルは自作のベクター調(線と面で構成されたシンプルな絵柄)で作る、という二層構成に落ち着きました。生成AIが得意な部分と苦手な部分を見極めて、素材ごとに作り方を使い分けるという判断です。
まとめ・次回予告
今回は、3面の背景アートとタイル素材を作る中で起きた構図のトラブルと、その解決に至った判断をまとめました。生成AIに完全に任せきるのではなく、実装側の工夫や自作への切り替えも選択肢に入れることで、無理なく着地点を見つけられました。次回は、アニメーション方針転換編として、キャラクターアニメーションを自作ツールで作るか、外部サービス「AutoSprite」を使うかを検討した過程を紹介します。
背景素材やタイルをPythonで自作する、といった「ちょっとしたツールを自分で組む」場面は個人開発ではよく出てきます。プログラミングの基礎から体系的に学びたい方は、以下の講座も参考になります。


コメント