AIゲーム開発研究室
第27回 ゲーム背景の実制作 ― AI生成素材を一つのゲーム世界へ統合する
AIゲーム開発ドキュメント
第27回 ゲーム背景の実制作
― AI生成素材を一つのゲーム世界へ統合する ―
前回までの検討によって、ゲーム「森のどんぐり大作戦」に必要となるキャラクター素材の制作方法について、一定の方針を定めることができました。
今回は、実際にゲームで使用する背景の制作を行います。
今回の目的は、単に生成AIに「ゲーム背景を一枚描いてもらう」ことではありません。
まず背景となる一枚の画像を制作し、さらにその手前に配置する枝葉や草地を独立した素材として制作します。
そして、それらを人間が加工・配置・色調補正し、一つのゲーム画面として統合していきます。
1.まず背景画像を制作する
最初に、ゲームの舞台となる「どんぐりの森」の背景画像を画像生成AIで制作しました。
完成した背景画像は、
1536×1024px
でした。
この画像は3:2の比率であり、一般的な16:9のゲーム画面とは比率が異なります。
しかし今回は、この背景画像を16:9へ変形したり、トリミングして新しい画像を作ったりすることはしません。
生成された1536×1024pxの背景原画を、そのままゲーム素材として使用することにしました。
必要があれば色調補正は行いますが、画像そのもののサイズは変更しません。
2.背景だけではなく、前景を別素材として制作する
背景画像をゲーム画面として検討していくと、一枚の背景画像だけで画面を完成させるのではなく、その手前に別の植物を配置した方が、森の奥行きを表現できると考えました。
そこで、
画面上部の枝葉
と、
画面下部の草地
を、背景とは別の透明PNG素材として画像生成AIに制作させました。
上部の枝葉は、画面の手前に木々が存在していることを感じさせます。
下部の草地は、キャラクターのさらに手前に植物を配置することで、キャラクターが森の中に存在している感覚を作ります。
さらに下部には、短い草が密集した「草の地面ベース」も制作しました。
これによって、
背景
+ 上部の枝葉
+ 下部の草地
+ 草の地面ベース
という複数レイヤーによって、ゲーム背景を構成することにしました。
3.生成された素材のサイズは揃っていなかった
画像生成AIによって制作された素材は、すべて同じ画像サイズではありませんでした。
背景画像は、
1536×1024px
です。
一方、前景として制作した枝葉や草地には、
幅2048px
のものと、
幅2172px
のものがありました。
そこで前景素材については、人間が加工を行い、
幅2048px
に統一しました。
ただし、背景画像については1536×1024pxの原画を維持しています。
つまり今回の制作では、
すべてのゲーム素材を同じピクセルサイズに統一したわけではありません。
4.16:9のゲーム画面を想定した作業ファイルを作る
次に、実際のゲーム画面を想定して、16:9で確認できる作業環境を作りました。
ここで重要なのは、
背景画像を16:9の画像へ作り直したわけではない
ということです。
作業画面は、幅2048pxに統一した上下の前景素材を基準として構成しました。
そこへ1536×1024pxの背景原画を配置します。
そのため16:9のシミュレーション画面では、背景画像全体が表示されるのではなく、背景原画の中央付近がゲーム画面として見えている状態になります。
これはゲーム用背景の最終サイズを決定するための作業ではありません。
あくまで、
「実際に16:9のゲーム画面として見た場合、どのように見えるのか」
を確認するためのシミュレーションです。
5.すべての素材をレイヤーとして一つのファイルにまとめる
背景、上部の枝葉、下部の草地などを、それぞれ独立したレイヤーとして一つの制作ファイルへまとめました。
ここでは画像を一枚に結合してしまうのではありません。
それぞれを独立したレイヤーとして保持します。
そして実際のゲーム画面を見ながら、
枝葉の位置、
草地の位置、
素材の重なり、
左右反転、
不要部分の処理、
植物の密度
などを調整していきます。
この段階で重要なのは、個々の素材だけを見て完成させないことです。
最終的にプレイヤーが見るのは、一つ一つの素材ではありません。
すべてが重なったゲーム画面です。
そのため、
ゲーム画面全体を一枚の絵として見ながら、各素材を調整しました。
6.人間が色調補正を行う
今回、背景、枝葉、草地は、それぞれ別々に画像生成AIによって制作されています。
同じ水彩絵本風の画風を指定していても、それだけですべての素材の色彩が完全に統一されるわけではありません。
そこで人間が、
明度、
彩度、
色相、
コントラスト
などを調整しました。
しかも、それぞれの素材を単独で見ながら補正するのではありません。
背景、枝葉、草地を重ねた状態を見ながら、
一つの絵として自然に見えるように色調を合わせていきます。
今回、別々に生成された背景、枝葉、草地が一つの森として見えるようになったのは、画像生成AIが最初から完全に同じ色彩で素材を生成したからではありません。
人間による画像加工と色調補正によって、一つの世界として統合した結果です。
この工程は、AIによるゲーム素材制作において重要な人間側の作業になると考えられます。
7.まず「一枚の絵」として完成させる
加工と色調補正を繰り返しながら、16:9のゲーム画面として全体を確認します。
ここでは、Unityへ持ち込むための個別素材を完成させることを先に考えるのではなく、
まずゲーム画面そのものを一枚の絵として完成させる
ことを優先しました。
上部には手前の枝葉があります。
中央には明るい森が広がっています。
下部には豊かな草地があります。
この前景と背景の重なりによって、単なる森の背景ではなく、
「森の中でゲームをしている」
と感じられる画面を作っていきました。
8.パンタを原寸のまま配置して確認する
背景画面が完成したところで、実際のキャラクターであるパンタを配置してみました。
ここでも、パンタの画像サイズは変更していません。
制作済みのパンタを原寸のまま仮配置しています。
そのため、現在のシミュレーション画面では、パンタが少し小さく見える可能性があります。
しかし、この段階では問題ありません。
今回確認したいのは、
背景の中でパンタを認識できるか、
草地との重なりが自然に見えるか、
キャラクターが森の中に存在しているように見えるか、
といった視覚的な問題です。
実際のゲームにおけるパンタの表示サイズや位置は、Unityへ実装した後に調整します。
したがって、このシミュレーション画像だけを基準としてパンタの原画を拡大・縮小することはしません。
9.落下するどんぐりも配置する
次に、ゲーム中に上から落下するどんぐりの素材を画像生成AIで制作しました。
どんぐりは単なる背景の装飾ではありません。
プレイヤーがパンタを操作し、
追いかけ、
籠でキャッチする、
ゲーム上の重要な対象物です。
そのため、どんぐりには背景の中でも十分に認識できる視認性が必要になります。
実際にパンタと一緒に配置し、両者の見え方を確認しました。
ここでいうパンタとどんぐりの比率は、現実世界における物理的な縮尺を意味するものではありません。
パンタの籠の中に描かれているどんぐりと、落下するどんぐりの大きさを一致させる必要もありません。
重要なのは、
プレイヤーがパンタを操作しながら、落下するどんぐりを瞬時に認識し、追いかけることができること
です。
そこで、ゲームオブジェクトとして十分な存在感と視認性を持つことを基準として、パンタとの相対的な大きさを検討しました。
実際のゲームでは、どんぐりは回転しながら落下する予定です。
最終的な表示サイズや回転速度については、Unity上で実際に動かしながら調整します。
10.完成後、再びパーツへ分離する
16:9のゲーム画面として背景が完成しても、この一枚の画像をそのままゲーム背景として使用するわけではありません。
制作時には一つのファイルへ集めた、
背景、
上部枝葉、
下部草地、
その他の前景素材
を、完成後に再びそれぞれのゲーム素材としてエクスポートします。
つまり今回の制作では、
AIによる個別素材の生成
↓
人間による一つの制作ファイルへの統合
↓
加工・配置・色調補正
↓
ゲーム画面として完成
↓
再びパーツごとに分離してエクスポート
という工程を行いました。
そして、それぞれの素材をUnityへ持ち込みます。
Unity上では、実際のゲーム画面を確認しながら、
表示サイズ、
位置、
キャラクターとの関係、
UIとの関係
などを最終的に調整します。
今回の実制作から分かったこと
今回の背景制作では、画像生成AIに一枚の完成背景を制作させ、それをそのままゲームへ使用する方法は採用しませんでした。
背景、枝葉、草地などを独立した素材として生成し、それらを人間が一つの制作ファイルへ集めました。
そしてゲーム画面全体を見ながら加工し、色調を補正することで、一つの世界として統合しました。
完成後には、再びゲーム実装用の独立した素材へ分離します。
ここから分かるのは、
AIが生成した個々の画像素材と、実際にゲームで使用できる完成素材は、必ずしも同じものではない
ということです。
今回の制作では、
AIが素材を生成する。
人間が素材を加工する。
人間が色調を統一する。
人間がゲーム画面として構成する。
Unity上で最終的な表示サイズと位置を調整する。
という役割分担になりました。
また、背景1536×1024px、前景幅2048px、キャラクターなど、元となる画像素材のピクセルサイズがすべて統一されている必要もありませんでした。
重要なのは、素材の数値を機械的に揃えることではなく、
最終的なゲーム画面の中で、それぞれが適切な大きさ、位置、色彩、役割を持つように調整すること
です。
そして今回、もう一つ重要だったのが、
ゲーム背景を「素材の集合」としてだけではなく、最終的には一枚の絵として判断すること
でした。
「森のどんぐり大作戦」は、絵本「おむすび山」の世界の中で遊ぶゲームです。
ゲームとして機能することだけではなく、
絵本の世界そのものの中でキャラクターを動かしているように感じられること。
そのためには、AIによる素材生成だけでなく、人間による加工、色調補正、構図の判断が必要でした。
今回の実制作によって、
AIによる個別素材の生成と、人間による視覚世界の統合。
その両方を組み合わせることで、AI生成画像を実際のゲーム背景へと変えていく、一つの制作方法が見えてきました。
第26回 ゲーム用背景画像を設計する
AIゲーム開発ドキュメント
第26回
ゲーム用背景画像を設計する
はじめに
前回までに、パンタの基本的なキャラクターアクション素材を制作した。
左右へ小さく跳ねながら移動するキャッチアクション。
そして、その場で上下に小さく跳ねながらどんぐりを待つ、待機キャッチアクション。
画像生成AIによって原画を制作し、人間が画像を選定・加工し、ゲームで使用するシーケンスファイルへ仕上げる。
ここまでの実験によって、現時点の画像生成AIを利用したキャラクターアクション素材制作に、一つの実用的な方法が見えてきた。
次に制作するのは、
キャラクターが実際に動く世界――ゲームの背景である。
しかし、背景も単に画像生成AIへ「森を描いてください」と指示すればよいわけではない。
絵本の背景と、ゲームの背景では役割が違う。
そこで今回は、いきなり背景画像を生成するのではなく、
「森のどんぐり大作戦」のゲーム画面として、背景をどのように構成するのか。
人間と対話AIによる設計会議から始める。
人間と対話AIによる背景設計会議
研究代表
パンタのアクション素材が完成したので、次は背景画像を作りたいと思います。
舞台は「どんぐりの森」です。
絵本で制作した森のような、木々に囲まれた美しい森を背景にしたいと思います。
主任研究員 Arc
ここで最初に一つ決めておきたいことがあります。
今回は「きれいな森の絵」を作ることから始めるのではなく、
ゲームが成立する森を設計する
ところから始めた方がよいと思います。
絵本の背景とゲームの背景では、同じ森でも役割が違います。
研究代表
ゲームでは、画面の上からどんぐりがランダムに落ちてきます。
パンタは画面下部を左右へ小さくジャンプしながら移動して、籠でどんぐりを受け止めます。
パンタの移動する一番下の部分に、背景とは別に細長い草地を置いたらどうでしょう。
草地を最前面にして、
背景の森、
パンタ、
草地、
という順番です。
主任研究員 Arc
それは有効だと思います。
背景の地面には木の根や草、岩などが描かれる可能性があります。
そこをパンタがそのまま移動すると、背景の岩を通り抜けたり、地面との接地が不自然に見えたりする可能性があります。
パンタより手前に草地を配置すれば、足元を自然に隠すことができます。
つまり、この草地は装飾ではなく、
背景とプレイヤーキャラクターの視覚的な不整合を吸収する前景パーツ
になります。
研究代表
上にも別パーツを置きたいです。
画面上部から木の枝葉が、屋根の軒のように少しかぶさっている。
少しシルエット的な枝葉にして、その上にUIを表示します。
どんぐりは、その枝葉の奥から落ちてくるようにしたいです。
主任研究員 Arc
そうすると画面は三つの美術レイヤーに分けられます。
最背面に森。
上部前景に枝葉。
下部前景に草地。
そして、その間にゲーム中のパンタと落下するどんぐりを配置する。
一枚の背景画像ですべてを表現する必要がなくなります。
研究代表
UIには何を表示するのか、どんなデザインにするのか、まだ決めていません。
でも枝葉が別パーツなら、UIが増えても対応できますね。
主任研究員 Arc
はい。
枝葉パーツを作り直す必要もありません。
Unity上で枝葉パーツを上下に移動させれば、UI表示領域を広げたり狭めたりできます。
つまり上部の枝葉は、
UI領域を後から調整できる可動前景
として機能します。
研究代表
それならゲーム画面の比率にも、かなり融通が利きそうですね。
背景は森の中だけですから、上下が多少切れても問題ありません。
主任研究員 Arc
その考え方でよいと思います。
背景の上下左右に、必ず画面内へ入れなければならない重要な建物や地形を配置しなければ、多少トリミングされても森として成立します。
したがって背景は、
画面端が多少切れても自然に見える構図
として制作します。
ゲーム画面の上下については、上部枝葉と下部草地という独立パーツによって調整できます。
研究代表
背景の森には、どんぐりは描かない方がいいですね。
主任研究員 Arc
これは重要です。
ゲーム中に落下するどんぐりは、プレイヤーがキャッチするゲームオブジェクトです。
背景にもどんぐりが描かれていると、
ゲームとして意味を持つどんぐりと、単なる背景のどんぐりが混在してしまいます。
ですから背景には、木になっているどんぐりも、地面に落ちているどんぐりも描かないことにしましょう。
研究代表
絵本を作ったときに素晴らしい森の絵ができたので、川や岩なども入れたくなったのですが(笑)。
主任研究員 Arc
気持ちは分かります(笑)。
ただ今回は、ゲームを優先した方がよいと思います。
川、橋、小屋、大きな岩などを入れると、背景としては豊かになりますが、ゲーム空間としての意味も発生します。
今回は、
「深いどんぐりの森の中」
というシンプルな舞台にする。
その代わり、大きなクヌギやナラ、遠くへ続く木々、草花、シダ、木漏れ日などによって、豊かな森を表現する。
ゲームを邪魔しない豊かな森
を目指します。
研究代表
パンタは正面を向いたまま左右へ移動するアクションなので、今回は背景固定でいいと思います。
ほかのキャラクターや別のゲームで背景スクロールを使う可能性はありますが、それは保留にします。
主任研究員 Arc
賛成です。
今回の背景制作実験では固定背景とします。
スクロールまで同時に検討すると、背景制作だけでなくキャラクター移動やカメラ制御まで検証対象が広がります。
まず固定背景で一つのゲームを成立させる。
スクロール背景については、必要になった時点で別途検討しましょう。
森のどんぐり大作戦
背景・画面構成仕様 Ver.1.0
今回の会議をもとに、背景制作仕様を次のように決定する。
基本方針
ゲーム画面全体を、
「どんぐりの森」の中
として表現する。
ただし、絵本のように一枚の絵ですべてを表現するのではなく、
背景と前景パーツを分離したレイヤー構造
によってゲーム画面を構成する。
背景レイヤー
最背面には、固定された森の背景画像を配置する。
背景には、
大きなクヌギやナラ、
森の奥へ続く木々、
草花、
シダなどの下草、
木漏れ日、
などを描き、豊かな森の奥行きを表現する。
ただし、ゲームプレイを妨げるような強い構造物は原則として配置しない。
川、橋、小屋、大きな岩などは今回は使用しない。
また、
背景にはどんぐりを一切描かない。
木になっているどんぐり、地面に落ちているどんぐりの双方を描かない。
ゲーム中に出現するどんぐりだけが、プレイヤーにとって意味を持つ対象となるようにする。
背景にはキャラクターも描かない。
下部前景レイヤー
画面下部には、背景とは独立した横長の草地パーツを配置する。
パンタは、
背景画像と草地パーツの間
に配置する。
これにより、パンタの足元を草によって自然に隠し、背景の地面に描かれた細かな形状との視覚的な不整合を軽減する。
草地はパンタより手前に表示する。
上部前景レイヤー
画面上部には、背景とは独立した横長の枝葉パーツを配置する。
枝葉は画面上から森の枝が張り出しているような形とし、ややシルエット的な表現とする。
この枝葉の上にUIを表示する。
枝葉パーツはUnity上で上下位置を変更できるようにし、
UI表示領域を調整するための可動前景
として使用する。
UIの内容やデザインが後から変更・追加された場合も、上部枝葉パーツを上下に移動させることで表示領域を拡大・縮小し、背景画像や枝葉パーツそのものを作り直さずに対応できる構造とする。
どんぐりの表示レイヤー
ゲーム中のどんぐりは画面上部からランダムに落下する。
表示上は、
背景画像より手前、上部枝葉より奥
に配置する。
これにより、どんぐりが枝葉の奥から森の中へ落ちてきたように見せる。
背景画像にはどんぐりを描かないため、落下するどんぐりだけが明確なゲームオブジェクトとして認識できる。
プレイヤーレイヤー
パンタは画面下部を左右へ移動する。
パンタの表示位置は、
背景画像より手前、下部草地より奥
とする。
前回までに制作した小ジャンプ移動アクションと、その場ジャンプによる待機キャッチアクションを使用する。
背景の構図
背景画像は、上下左右が多少トリミングされても森として自然に成立する構図とする。
画面端に、
建物、
橋、
川、
特徴的な巨大岩、
など、欠けると構図が破綻する重要物を配置しない。
背景画像そのものにゲーム画面全体の調整機能を持たせるのではなく、
上部枝葉と下部草地を独立させることによって、Unity上で画面構成を調整する。
カメラ
今回のゲームでは背景を固定する。
パンタは固定された森の中を左右へ移動する。
背景スクロールについては、今後ほかのキャラクターや別ゲームで採用する可能性を残すが、今回の背景制作では扱わない。
画面のレイヤー構造
最終的な表示順は、奥から手前へ、
森の背景
↓
落下するどんぐり
↓
パンタ
↓
上部枝葉・下部草地
↓
UI
を基本とする。
ただし、上部と下部は画面上で離れているため、それぞれ独立した前景パーツとして管理する。
今回の背景制作で最も重要な考え方
今回の検討によって、背景画像そのものを美しく作ることだけが目的ではないことが明確になった。
絵本では、
一枚の絵として完成された世界
を作る。
ゲームでは、
キャラクターやゲームオブジェクトがその中で機能できる世界
を作る。
そのため今回は、
森の背景、上部枝葉、下部草地を分離する。
変更される可能性のあるUI領域は、背景画像へ描き込まない。
ゲームとして意味を持つどんぐりも、背景へ描き込まない。
キャラクターの移動に影響する強い地形も、必要がなければ描かない。
つまり、
ゲーム背景では、何を描くかだけでなく、何を描かないかを設計する。
これを今回の背景制作における基本方針とする。
次回
今回、人間と対話AIによる設計会議によって、
「森のどんぐり大作戦 背景・画面構成仕様 Ver.1.0」
が完成した。
次回は、この仕様をもとに、実際に画像生成AIへ渡すためのプロンプトを作成する。
そして、
ゲーム用として設計した背景を、画像生成AIはどこまで意図どおりに制作できるのか。
実際の背景画像制作へ進む。
第25回 その場ジャンプ(待機キャッチ)素材を制作する
AIゲーム開発ドキュメント
第25回
その場ジャンプ(待機キャッチ)素材を制作する
はじめに
前回は、パンタが左右へ移動するためのキャッチアクション素材を制作した。
これまで制作を試みてきた歩行アニメーションではなく、
「ちょん、ちょん」と小さく跳ねながら移動する
という新しいアクションを設計し、画像生成AIによって複数のポーズを生成した。
さらに、その生成画像から使用するポーズを人間が選択し、切り分け、画像加工、色調補正、サイズ・位置調整などを行い、ゲームで使用するシーケンスファイルとして完成させた。
しかし、これだけではパンタのキャッチアクションは完成しない。
プレイヤーが左右の矢印キーを押している間は、パンタは左右へ移動する。
そして、どんぐりの落下位置へ到達して矢印キーを離すと、パンタはその位置でどんぐりが落ちてくるのを待つことになる。
このとき、突然動きを止めて静止画像になるのでは不自然である。
そこで今回は、横移動キャッチアクションと連動する、
「その場ジャンプ(待機キャッチ)」
を制作する。
横移動と待機を一つの動きとして考える
今回のアクションを単独で考えてはいけない。
前回制作した横移動アクションと、今回制作する待機アクションは、一つの操作の中で連続して使用される。
プレイヤーが左右の矢印キーを押す。
パンタが小さく跳ねながら移動する。
目的の位置に到達する。
矢印キーを離す。
パンタはその位置で、小さく上下へ跳ねながらどんぐりを待つ。
つまり、
横へ跳ねる動きから、その場で跳ねる動きへ切り替わる。
この二つのアクションに共通する「小さく跳ねる」という動きを維持することで、操作を切り替えてもキャラクターの動きが突然変化することを防ぐ。
人間と対話AIによる設計会議
研究代表
横移動アクションができたので、次は矢印キーを離したときの動きが必要ですね。
どんぐりの落下位置に到達したら、パンタはその場にいます。
主任研究員 Arc
それなら、横移動と同じ「小ジャンプ」をそのまま利用できます。
左右へ移動せず、その場で上下に跳ねるアクションにすれば、二つの動きを自然につなげられます。
研究代表
パンタは正面向き。
体は傾けない。
頭の上に同じ籠を載せて、両手で支える。
そして、上から落ちてくるどんぐりを見る。
そんな感じですね。
主任研究員 Arc
はい。
歩行や走行ではありませんから、複雑な足運びも必要ありません。
足を曲げた状態と伸ばした状態を中心に、重心の高さを変えれば、その場で小さくジャンプしているように見せることができます。
研究代表
できれば口を開けたものと閉じたものも欲しいですね。
主任研究員 Arc
それも仕様に加えましょう。
口を開けたポーズと閉じたポーズがあれば、ゲーム上で口をパクパクさせる表現にも利用できます。
今回決定した仕様
今回制作するのは、
パンタのその場ジャンプによる待機キャッチアクション
である。
パンタは常に正面を向く。
左右には移動しない。
頭上にはどんぐりを受け止める籠を載せ、両手で籠を支える。
籠は水平を維持し、中にはどんぐりを2個入れる。
パンタの視線は、頭上から落ちてくるどんぐりを見るため、やや上向きとする。
ジャンプは小さな上下運動とし、足を前後へ大きく動かさない。
足を曲げた状態から伸ばした状態へ変化させるとともに、キャラクター全体の重心の高さを変化させる。
また、口を開けた表情と閉じた表情を混在させ、必要に応じてゲーム上の口パク表現に利用できるようにする。
二つの基準画像を使用する
今回は画像生成AIへ、二つの画像を添付した。
一つ目は、
パンタ公式キャラクター基準画像
である。
顔、耳、目の周囲の黒い模様、丸い体形、毛並み、緑色のスカーフ、青色のリュック、色彩、画風など、パンタのデザインを維持するために使用する。
二つ目は、
前回制作した横移動キャッチアクションの生成画像
である。
こちらはキャラクターデザインを指定するためではない。
籠の大きさや位置、両手で籠を支える姿勢、キャラクターと籠の関係などを画像生成AIへ伝えるための参考資料として使用した。
ただし、ここには後に重要な問題が現れることになる。
画像生成AIへのプロンプト
画像生成AIには、二つ目の添付画像について、
「籠の位置・両手の持ち方・キャラクター全体の構図の参考画像」
であることを明記した。
さらに、
「ジャンプ動作は参考にしない」
とも指定した。
そのうえで、今回新たに制作する動作について、
その場で上下に小さくジャンプすること、
真正面を向くこと、
体を左右へ傾けないこと、
左右方向へ重心を移動させないこと、
重心は上下方向だけに変化させること、
などを指定した。
また、前回と同様、
歩行ではない。
走行ではない。
行進ではない。
と明記し、歩行動作として解釈されないようにした。
画像生成AIによる生成結果
生成された画像を見ると、
パンタが頭上の籠を両手で支えながら、小さくジャンプする複数のポーズを得ることができた。
籠の位置や大きさ、両手の持ち方についても、前回の横移動キャッチアクションとの統一感がある。
キャラクターデザインについても、公式基準画像のパンタがよく維持されている。
ゲーム素材の原画として、十分に利用できる結果である。
一方、指定どおりにならなかった部分もある。
「体を左右へ傾けない」と指定したにもかかわらず、実際には体が傾いたポーズが生成された。
また、描かないよう指定した足元の影も生成された。
これらは人間による加工で修正可能であるため、今回は生成をやり直さず、素材として採用することにした。
そして実際の画像を見ると、完全な真正面で機械的に上下するよりも、わずかに体が傾いたことでキャラクターらしい動きが生まれている。
仕様から外れた生成結果が、必ずしも作品として悪い結果になるとは限らない。
これも生成AIを用いた制作では、人間が判断しなければならない部分である。
添付画像がポーズに与えた影響
今回、生成結果を詳しく確認したところ、もう一つ重要なことが分かった。
参考として添付した横移動キャッチアクションと比較すると、
足のポーズ以外は、かなり似た構成になっていた。
プロンプトでは、
「ジャンプ動作は参考にしない」
と明確に指定している。
それでも画像生成AIは、参考画像から籠の位置や持ち方だけを取り出すのではなく、キャラクター全体の姿勢や構図にも強く影響を受けたと考えられる。
これは今後の画像生成AIによるゲーム素材制作において、重要な注意点となる。
参考画像は、単なる補助資料ではない。
何を参考画像として与えるかによって、生成されるポーズそのものが変化する可能性がある。
したがって今後は、
「何を書くか」というプロンプト設計だけではなく、「何を見せるか」という添付資料の設計も必要になる。
人間による加工
生成された画像は、そのままゲーム素材として使用するわけではない。
前回と同様、人間が使用するポーズを選択し、それぞれを独立した画像へ切り分ける。
さらに、
影の除去、
不要部分の除去、
体の傾きの調整、
画像加工、
色調補正、
キャラクターサイズの統一、
位置の調整、
基準位置の統一、
などを行い、ゲームで使用できるシーケンスファイルへ仕上げる。
この工程は決して単純な後処理ではない。
画像生成AIによる出力を、
「イラスト」から「ゲーム素材」へ変換する制作工程
である。
今回も、この人間による加工を経て、待機キャッチアクションを完成させた。
ゲーム素材の規格を見直す
今回の制作では、もう一つ重要な問題が明らかになった。
画像サイズである。
これまでパンタは、
基準身長250px、画像サイズ320×320px
を一つの目安として制作してきた。
しかし、頭上に籠を載せ、さらにジャンプする今回のアクションでは、上下方向により大きな領域が必要になる。
そこで、ゲーム素材の規格そのものを改めて検討した。
その結果、
パンタの基準身長250pxを、キャラクター縮尺の基準とする。
他のキャラクターは、パンタとの身長比率を維持して制作する。
一方、
画像領域は固定しない。
左右移動、上下ジャンプ、大きなアクションなど、それぞれの動作に必要な範囲に応じて画像サイズを決定する。
したがって、画像は正方形である必要もない。
横方向に広い動作なら横長。
上下方向に大きな動作なら縦長。
必要な領域を確保する。
ゲーム素材の規格として統一すべきなのは、
画像サイズではなく、キャラクターの縮尺と基準位置である。
基準位置を統一する
素材制作時の基準位置は、
画像底辺中央
とする。
画像サイズが異なっていても、この基準位置を統一して制作する。
Unityへ読み込んだ際にも、同じ位置に対応するBottom CenterをPivotとして設定する。
これにより、異なる画像サイズのアクションへ切り替えても、ゲーム上でキャラクターの位置を一貫して管理できる。
また、本研究ではスプライトシートではなく、
独立したPNG画像によるシーケンスファイル方式
を採用している。
そのため、アクションごとに異なる画像領域を採用することも容易である。
ここで、ゲーム素材制作の基本規格が明確になった。
キャラクター縮尺を統一する。
キャラクター間の身長比率を維持する。
基準位置を画像底辺中央に統一する。
画像サイズはアクションに必要な範囲に応じて決定する。
シーケンスファイル方式で管理する。
これを、今後のキャラクターアクション素材制作の基本とする。
二つのキャッチアクションが完成した
これでパンタには、
左右へ小さく跳ねながら移動するキャッチアクション
と、
その場で上下に小さく跳ねる待機キャッチアクション
の二種類がそろった。
歩行アニメーションの制作に失敗したところから始まった試行錯誤は、
「歩行を正確に生成する」
という考え方を捨て、
「ゲームとして移動しているように見える動きを設計する」
という発想へ転換した。
そして、画像生成AIによって原画を制作し、人間が選択・加工し、シーケンスファイルとして完成させる。
ここまでの実験によって、
現時点の画像生成AIを利用した2Dゲームキャラクターのアクション素材制作に、一つの実用的な方法が見えてきた。
もちろん、これが唯一の方法ではない。
画像生成AIの性能も今後変化していくだろう。
しかしこれは、実際のゲーム制作を通して、試行錯誤の末に得られた一つの結果である。
次は背景画像を制作する
キャラクターの基本アクション素材について、制作方法のめどが立った。
しかし、ゲームはキャラクターだけでは成立しない。
次に必要になるのは、
キャラクターが実際に動く世界――背景である。
背景画像では、キャラクター素材とは異なる問題が生じる。
画面サイズ、カメラ、ゲーム内での移動範囲、キャラクターとの縮尺、地面の位置、当たり判定、前景と背景の関係。
さらに、一枚の背景画像として制作するのか、複数のパーツとして制作するのかによっても、素材設計は変わる。
次回は、
ゲームに使用する背景画像を、画像生成AIによってどのように制作すればよいのか。
実際の「森のどんぐり大作戦」の背景制作を通して検証する。
キャラクターができた。
次は、そのキャラクターが動く世界を作る。
第24回 画像生成AIからゲーム用アクション素材を制作する
AIゲーム開発ドキュメント
第24回
画像生成AIからゲーム用アクション素材を制作する
はじめに
前回は、パンタの移動アクションについて、人間と対話AIによる設計会議を行った。
これまでの実験では、画像生成AIを用いて歩行アニメーションを制作しようとしたが、左右の足の運びや歩行周期を正確に維持した連続画像を生成することはできなかった。
そこで発想を変えた。
歩行を生成するのではなく、移動しているように見えるアクションを設計する。
その結果、パンタが「ちょん、ちょん」と小さく跳ねながら移動する方式を採用した。
今回は、前回決定した仕様をもとに実際の画像生成AIへのプロンプトを作成し、画像を生成する。
さらに、生成された画像を人間が加工し、ゲームで使用するシーケンスファイルへと仕上げる。
ここからは、設計ではない。
実際のゲーム素材制作である。
画像生成AIへ渡す資料
今回、画像生成AIには二つの基準資料を与えた。
一つ目は、パンタの公式キャラクター基準画像である。
顔、耳、目の周囲の黒い模様、丸い体形、毛並み、緑色のスカーフ、青色のリュックなど、パンタのデザインを維持するための資料である。
二つ目は、今回制作するアクションの仕様である。
ここで重要なのは、画像生成AIに「歩行アニメーションを作ってください」と指示しなかったことである。
今回求めたのは、
右方向へ、小さく跳ねながら移動しているパンタの異なるポーズ
である。
歩行周期を再現させるのではなく、ゲーム上で移動しているように見える複数の瞬間を生成させる。
これは、これまでの実験結果を踏まえて設計した新しい制作方法である。
画像生成AIへのプロンプト
以下が、今回実際に画像生成AIへ与えたプロンプトである。
使用する基準画像
添付した画像を、パンタの公式キャラクター基準画像として使用してください。
パンタの以下のデザインを忠実に維持してください。
顔
耳
目の周囲の黒い模様
丸く大きな体形
毛並み
緑色のスカーフ
青色のリュック
色彩
画風
別のデザインのパンダに変更しないでください。
制作内容
2Dゲームに使用するパンタの移動素材を制作してください。
これは歩行アニメーションではありません。
パンタが画面の右方向へ、
「ちょん、ちょん」と小さく跳ねながら移動している様子を表現するための、異なるポーズ集
を制作してください。
完成した画像は、時間の流れが分かるように左上から右下へ配置してください。
同じポーズを繰り返さず、それぞれ異なる瞬間を描いてください。
パンタの向き
パンタはすべてのカットで、カメラに対して正面を向いています。
顔と胸は常に正面です。
横向き、斜め向き、後ろ向きにはしないでください。
右方向へ移動していることを表現するため、パンタの体全体を、鑑賞者から見て左方向へ少しだけ傾けてください。
この傾きは各カットで少し変化しても構いません。
籠
パンタは頭の上に、どんぐりを受け止める籠を載せています。
両腕を上げ、左右の手で籠の側面を支えています。
すべてのカットで、籠は頭の上に置き、両手で支え、水平を維持してください。
籠の中には、どんぐりを2~3個だけ入れてください。
表情
すべて笑顔。
ただし、
口を開けたカット
口を閉じたカット
を混在させてください。
ゲーム中にパクパクした表情として使用します。
ポーズ
各カットは、小ジャンプの異なる瞬間を描いてください。
着地直後、少し浮き始めた瞬間、一番高く跳ねた瞬間、着地直前など、時間が連続していることが分かるポーズにしてください。
足
歩行ではありません。
走行でもありません。
行進でもありません。
足を前後へ交互に大きく出さないでください。
両足は体の真下付近で、小さく曲げたり伸ばしたりする程度にしてください。
重心
各カットでパンタの重心の高さを変えてください。
着地では少し低くなる。
跳び上がる途中では少し高くなる。
空中では最も高くなる。
着地前では再び下がり始める。
上下方向の変化によって、連続した小ジャンプであることが分かるようにしてください。
背景
背景は完全透明。
文字、数字、枠線、地面、足元の影、光の演出、効果線、その他のキャラクター、不要な物体は描かないでください。
ゲーム素材として切り分けられる、パンタだけの移動ポーズ集を制作してください。
画像生成AIによる生成結果
画像生成AIによって、複数のパンタが一枚の画像として生成された。
ここで重要なのは、これを完成したゲーム素材とは考えないことである。
生成画像には、ゲーム素材としてそのまま使用するには修正すべき部分が残っている。
一方で、パンタのキャラクターデザイン、頭上の籠、両手で籠を支える姿勢、小ジャンプによる動きなど、素材制作の元画像として使用できる品質のポーズも得られた。
歩行アニメーションの実験とは明らかに結果が異なった。
歩行では、連続する足運びの規則性を画像生成AIに要求した。
今回は、その規則性そのものを要求していない。
異なる瞬間のポーズを生成させ、その中からゲームに使用できる画像を人間が選択する。
ここに今回の方法の大きな違いがある。
人間によるゲーム素材への加工
生成された画像から、ゲームに使用するポーズを選択した。
そして、それぞれを独立した画像として切り分ける。
さらに、
背景・不要部分の除去、
影の除去、
画像の切り出し、
キャラクターサイズの調整、
位置の調整、
必要に応じた角度の補正、
色調補正、
基準位置の統一、
などの加工を行う。
ここで重要なのは、画像生成AIが制作したものをそのままゲームへ投入しているわけではないことである。
画像生成AIが素材となる原画を制作し、人間がゲームで使用できる素材へ仕上げている。
この工程は、単なる後処理ではない。
現時点のAIゲーム素材制作における、重要な制作工程の一つである。
シーケンスファイルとして完成させる
今回のゲームでは、スプライトシートではなく、独立したPNG画像によるシーケンスファイル方式を採用している。
そのため、加工した各ポーズを個別の画像として保存する。
この方式では、画像全体のサイズをすべてのアクションで固定する必要はない。
重要なのは、
パンタの基準縮尺を統一すること。
そして、
ゲーム上で使用する基準位置を統一すること。
である。
今回の検討では、パンタの基準身長を250pxとし、他のキャラクターについてはパンタとの身長比率を基準として制作することにした。
また、素材制作時の基準位置は画像底辺中央とする。
Unityへ読み込んだ際にも、これに対応するBottom Centerを基準として設定する。
一方、画像領域そのものは固定しない。
左右移動、上下ジャンプ、その他の大きなアクションでは、必要となる画像領域が異なるためである。
したがって、
キャラクターの縮尺は統一する。
基準位置は統一する。
画像サイズはアクションに必要な範囲に応じて決定する。
これを、今後のゲーム素材制作における基本規格とする。
今回の実験から分かったこと
今回の結果は、「画像生成AIがアニメーションを作れるようになった」という意味ではない。
むしろ逆である。
画像生成AIに、歩行周期のような厳密な連続動作をそのまま生成させることは難しい。
そこで、
AIが苦手なものを無理に作らせるのではなく、AIが作れるものからゲームに必要な動きを構成する。
という方法へ設計そのものを変更した。
画像生成AIは異なるポーズを生成する。
人間はその中から使用可能な画像を選択する。
人間が画像を加工する。
シーケンスファイルとして構成する。
そしてUnity上で連続したアクションとして再生する。
この分業によって、現時点の画像生成AIでもゲーム用アクション素材を制作できる可能性が見えてきた。
まだ結論ではない
ただし、現段階ではまだ「アクション素材制作手法が完成した」とはしない。
今回完成したのは、横方向へ小さく跳ねながら移動するための素材である。
ゲームでは、どんぐりの落下位置へ到達した後、プレイヤーが左右の入力を止める。
そのときパンタには、左右へ移動せず、その場でどんぐりを待つアクションが必要になる。
そこで次に、
その場で上下に小さくジャンプする待機キャッチアクション
を制作する。
横移動キャッチアクションと、待機キャッチアクション。
この二つが完成し、実際にUnity上で連動させることができれば、パンタの基本的なキャッチ移動素材が成立する。
その時点で初めて、
AIによるゲーム用アクション素材制作に、一つの実用的な方法が見つかった
と判断したい。
第23回 2Dゲーム移動素材設計(小ジャンプ方式)
AIゲーム開発ドキュメント
第23回
2Dゲーム移動素材設計(小ジャンプ方式)
はじめに
前回の実験では、画像生成AIによって歩行アニメーションの制作を試みた。
しかし、ゲームで使用できるレベルの歩行サイクルを生成することはできなかった。
特に、
・左右の足運びが正しくならない
・歩行周期が維持できない
・各コマが同じ姿勢になりやすい
など、ループアニメーション特有の規則性を画像生成AIが再現することは困難であることが分かった。
そこで今回は発想を変え、
「歩行を作る」のではなく、「移動中の異なる瞬間を素材化する」
という新しい方法を検討した。
人間と対話AIによる設計会議
研究代表
歩行そのものを作ろうとすると失敗しますね。
毎回同じ足になってしまいます。
主任研究員 Arc
歩行は一定周期で同じ動きを繰り返すため、
画像生成AIが最も苦手とする分野の一つだと思われます。
研究代表
それなら、
歩くこと自体をやめればいいのではないでしょうか。
主任研究員 Arc
例えば、
パンタが
「ちょん、ちょん」
と小さく跳ねながら移動するキャラクターならどうでしょう。
研究代表
なるほど。
ジャンプなら、
毎回少しずつ違う瞬間を描けばいい。
歩行サイクルほど厳密ではありません。
主任研究員 Arc
はい。
歩行周期ではなく、
時間の流れを表現するポーズ集として設計できます。
研究代表
すると、
必要なのは
歩行ポーズではなく、
着地、
跳び上がる途中、
空中、
着地直前、
という
小ジャンプの連続ですね。
主任研究員 Arc
その通りです。
重要なのは、
足の運びではなく、
重心の高さが変化していることです。
研究代表
つまり、
足を大きく前後させる必要はない。
重心だけ変えれば、
人間は連続したジャンプとして認識できます。
主任研究員 Arc
さらに、
頭上の籠は水平を維持し、
パンタの体だけをわずかに傾けることで、
右方向への移動も表現できます。
研究代表
なるほど。
ゲームとして必要なのは、
現実の歩行を完全再現することではありません。
プレイヤーが
「右へ移動している」
と自然に感じられることです。
主任研究員 Arc
そのため、
今回は
歩行アニメーションではなく、
移動ポーズ集
として設計することにします。
今回決定した仕様
今回制作する素材は、
歩行アニメーションではない。
パンタが小さく跳ねながら右方向へ移動している様子を表現する、
複数の異なるポーズ集とする。
各カットは時間が連続していることが分かるように、
着地、跳び始め、空中、着地前など、
異なる瞬間を描く。
パンタは常に正面を向き、
体全体を鑑賞者から見て左へわずかに傾けることで、
右方向への移動を表現する。
頭上の籠は水平を維持し、
両手で支え続ける。
足は歩行や走行ではなく、
体の真下付近で小さく曲げ伸ばしする程度とし、
重心の上下変化によって移動感を表現する。
完成した画像は、
左上から右下へ時間順に配置されたゲーム素材とする。
今回のまとめ
歩行アニメーションの生成は依然として難しいことが確認された。
しかし、設計そのものを見直し、
「歩行を生成する」のではなく、「移動を表現するポーズ集を生成する」
という考え方へ転換したことで、画像生成AIの特性を活かした素材制作が可能となった。
この方法では、人間が最後にシーケンスファイルとして加工することを前提とすることで、実際のゲーム制作に利用できる品質まで仕上げられる可能性が高い。
今回の検討をもとに、次回は完成した仕様を画像生成AIへのプロンプトとしてまとめ、その生成結果と、人間が加工した完成シーケンスファイルを比較・検証する。



















