見出し画像

VRAM 4GBではじめるStable Diffusion - ゲーム素材を作ろう9 絵地図の生成

 この草稿は、VRAM 4GB環境下で『Stable Diffusion』を利用して、ローカルでの画像生成をするためのものです。生成する画像はファンタジー系の同人ゲーム/インディーゲームの画像素材です。この草稿は、2023年の2月下旬~3月上旬にかけて執筆されました。

 草稿をまとめて大幅増補したものを電子書籍で出しました。VRAMがなくても、Google Colabでも大丈夫なように対応しています。『Kindle Unlimited』ユーザーの方は無料で読めます。是非読んでください。

 この草稿では『Stable Diffusion』の簡単な解説をおこない、『AUTOMATIC1111版 Stable Diffusion web UI』の導入や使い方について説明します。また「背景」「キャラクター」「アイテム」「絵地図」「UI部品」といった画像素材の作成方法を説明します。

 この草稿は、私が2022~2023年に、同人ゲーム『Little Land War SRPG』を開発した時の知見を中心にまとめたものです。こちらも購入して遊んでいただけると幸いです。


本章の概要

 本章では「絵地図の生成」を扱います。

 絵地図の部品作りやレイアウト、最終的な出力までの手順を紹介します。

 以下、本章の目次です。

  • 絵地図の生成について

  • 絵地図の部品を生成する

  • 絵地図の配置をおこなう

  • 絵地図を生成する

  • 再度img2imgにかける

  • 実際のゲームでの絵地図の作成


絵地図の生成について

 ここでは、ファンタジーゲームの絵地図を生成します。山や森、湖などがイラストになった絵地図を生成できると便利です。手書きで描くのは大変だからです。

 地図は配置が重要です。ランダムな地図が得られてもあまり使い道がありません。『Stable Diffusion』をそのまま使うと、ランダムな配置の地図になりますので、一工夫が必要です。

 まずは、呪文でランダムな絵地図を生成します。数十枚出力して、山や森、湖などの描画部品が使えそうなものを選別します。ここでは配置は無視して構いません。配置は次の工程で指定します。まずはAIが「山」や「森」「湖」だと思っている画像の部品を得ます。

 次に、作成した画像の山や森、湖などの部品をコピー&ペーストして、コラージュして絵地図の入力画像を作ります。これが、AIに対しての配置の指示になります。

 なぜ、生成された画像を部品にしてコラージュするかを説明します。『Stable Diffusion』によって生成された部品は、『Stable Diffusion』によって山や森や湖として認識されている部品です。この部品を入力に使うことで、『Stable Diffusion』に、ここに山や森や湖を配置するのだと伝えることができます。

 こうして作った画像を入力にして「img2img」をおこないます。呪文は同じで構いません。何十枚か出力した中で、最もよくできた画像を選別します。これで絵地図を手に入れることができます。

 生成の際には「Negative prompt」でいくつかの単語を指定します。地図には文字やマークが入りやすいためです。それでも出てくるので、その際は不要部分を再生成するか、手作業で修正する必要があります。

 本章で作成する地図の最終出力画像です。


絵地図の部品を生成する

 まずは、素材としての絵地図の部品を作ります。以下の呪文で生成します。何十枚か生成して、部品素材として使える画像を選別します。

(fantasy rpg map:1.3), (pictorial map:1.4), (whole land:1.3),
(extremely detailed:1.1), (concept art:1.3),
(watercolor:1.3), (ink), (oil painting:1.2), (bold line painting),
realism,
(forest map:1.3),
(big map patts:1.5),
high fantasy,
(masterpiece), (best quality), 4k, 8k,
text, error, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, shadow, flat shading, flat color, grayscale, black&white, monochrome, frame,

 以下が、生成した中から選んだ、部品取り用の画像です。山や森などの部品が視認しやすいものを選んでいます。

 また、上記の画像だけでは平野部分が足りなかったので、他の画像も素材として利用しています。素材として利用する画像は1枚だけでなく複数枚でも構いません。1枚から全ての部品が得られることは少ないです。


絵地図の配置をおこなう

 出力した部品素材を使ってコラージュをおこないます。コラージュは画像編集ソフトを使います。まず、平野部を四角形の画像を敷き詰めて作ります。その上に、楕円形にコピーした山や森、湖を配置していきます。

 以下が実際にコラージュした画像です。このレベルの雑な画像で構いません。今回の部品は小さめです。ゲームの種類によっては、もう少し大きな山や森の部品を得てから、コラージュをした方がよいでしょう。


絵地図を生成する

 コラージュした画像を入力に使い、「img2img」で絵地図を生成します。呪文は元の呪文と同じでよいです。最初に数枚出力して、「CFG Scale」や「Denoising strength」のバランスを確かめたあと、数十枚生成して、ベストショットを得るとよいです。

 ここでは「CFG Scale」を「10」、「Denoising strength」を「0.6」で実行します。また、部品が少し小さめに表示されていたので、「pictorial map」「big map patts」の重み付けを強くします。

(fantasy rpg map:1.3), (pictorial map:1.6), (whole land:1.3),
(extremely detailed:1.1), (concept art:1.3),
(watercolor:1.3), (ink), (oil painting:1.2), (bold line painting),
realism,
(forest map:1.3),
(big map patts:1.7),
high fantasy,
(masterpiece), (best quality), 4k, 8k,

 以下が出力された画像です。配置が入力画像に沿っているのが分かります。ただし完全に一致するわけではありません。もっと近付けたい時は『ControlNet』を使うのも手です。


再度img2imgにかける

 生成した画像をさらに「img2img」にかけると、それらしい画像が生成されやすいです。ここではその方法で、何種類か新しい画像を生成してみます。

 以下、出力された画像です。


Inpaintで修正する

 生成した絵地図の画像には、文字の欠片のような黒い点や模様が含まれていることが多いです。こうした部分は、「img2img」の「Inpaint」タブを使うことで除去できます。「Inpaint」では、画像の一部だけを再生成して馴染ませることができます。

 「img2img」の「Inpaint」タブで画像を読み込み、修正したいところをペンで塗りつぶします。そして「Mask blur」の値を「10」程度にして、生成時と同じ呪文を入力して「Generate」ボタンを押します。

 10枚に1枚ほどの割合で、上手くゴミが除去できた画像が生成できます。

 実際に出力した画像です。ある程度ゴミが除去できているのが分かります。まだ気になるようなら、出力された画像を利用して、同じ作業を繰り返すとよいです。


実際のゲームでの絵地図の作成

 以下、『Little Land War SRPG』でキャラクターを作った時のことを書きます。

 初めはランダムで絵地図を作り、ほぼそのまま利用していました。その頃のものです。

 以下は、初期の絵地図を本章の手法でコラージュしたものです。この画像をもとに、大量の画像を生成しました。

 得られた絵地図がこちらです。ゲームの進行に合わせた内容になりました。

 若干暗かったので画像編集ソフトで色味を変更します。また、ゲームの縦横比ぴったりに合わせるようにします。最終的に使用した画像がこちらです。

 こうした画像を素人が描くのは難しいです。『Stable Diffusion』を利用すれば、絵を描くことに慣れていない人でも、ゲーム用の絵地図を作ることができます。


(続く)

全体目次

  • 第1章 環境構築

  • 第2章 基礎知識

  • 第3章 呪文理論

  • 第4章 背景画像の生成

  • 第5章 キャラクター画像の生成

  • 第6章 キャラにポーズを付ける

  • 第7章 キャラを学習させる

  • 第8章 武器や道具の生成

  • ★★★第9章 絵地図の生成★★★【今ここ】

  • 第10章 UI部品のテクスチャの生成


※ 草稿をまとめて大幅増補したものを電子書籍で出しました。VRAMがなくても、Google Colabでも大丈夫なように対応しています。『Kindle Unlimited』ユーザーの方は無料で読めます。是非読んでください。


この記事が気に入ったらサポートをしてみませんか?