【生成AI】AIの絵を使ってRPGツクールでゲーム作る その1【ツクール】

題名まんま。

生成AIの使い方をわかってきたので、AIを使ってLoRA学習させたキャラを使い、一からRPGツクールでやってみよう、という思惑。

ちなみに書いている人のツクール歴はそこそこ。
MVで2~3作作ったけど(公開はしてない)、
今回はセールで買って放置してたMZの使い方を学びつつ作っていこうと思います。
基本は行き当たりばったりで、事前準備はあまりなく、思いつきで動いていきます。

とりあえず最初は軽く、「街で依頼を受け、ダンジョンの奥地でボスを倒し、戻ってくる」という習作シナリオを作る。
RPGツクラーの人ならお約束の、「サンプルシナリオ」みたいなやつです。

ということで、今回のLoRA学習はこのキャラ。

盛り込みたい要素は3つ。
・会話シーンでの立ち絵
・戦闘シーンでの立ち絵
・立ち絵を会話内容、戦闘内容で変化させる

いわゆるRPGツクール製のエロゲです。ではやってみよう。

1日目

まずは立ち絵の出力。…の前に。

RPGツクールでは立ち絵に透過画像を使いたいので、Stable Diffusionでの透過画像出力を調べて拡張機能を導入。
今回はABG RemoverとRembgを使った。
ABG Removerは背景色を指定したカラーに変更したり、キャラの切り抜き系を補助する画像を追加生成する機能。
Rembgは画像に透過処理を行う機能。

ではまず、ExtensionタブのAvailableタブからインストールする。
検索名はABG_extensionとstable-diffusion-webui-rembg。


インストールしたらInstalledタブに移動して、Apply and~を押す。


終わったら再起動をしておく。

通常の画像生成の欄の一番下、Scriptのプルダウンメニューを選択するとABG Removerが出てくるので選択。

Custom Backgroundにチェックを入れて、Background Colorを変更すると、画像編集しやすくなるので、キャラのカラーに合わせて変えておくと楽。
(ブルーバックとかグリーンバックとか)

ABG RemoverをONの状態で生成すると、1度に3つ画像が作られる。

プロンプトは立ち絵用のやつ。検索するといっぱい出てくるので割愛。standingとかfull bodyとかsimple backgroundとかで良さげ。
画像のサイズは大きすぎると扱いづらいので小さくしたいけど、小さいと画像が粗くなるので環境や出したいモノで決めると良。
RPGツクールに等倍で出力したいなら500×1000ぐらいに収めとくと良さそう。(ちょうど足元が隠れる感じ)

今回は1024×2048で出力し、画像編集ソフトで500×1000に縮小。少し画像が劣化したけど、とりあえずはこれで。
画像側を小さくするのか、それともツクール側で縮小表示するのか、どっちが良いのかは分からないので、
とりあえず今回は等倍で表示するよう、画像をツクールに合わせた。でも少しガビガビする。
昨今の高速回線環境ならサイズバカデカ画像で縮小表示しても良さそうだけど、ツクール側の表示関連の動き(遅延とか)がまだ分からないのでどうなんだろう。

話を戻して、ABG RemoverをONの状態で生成した結果がこちら。
いつもの画像の下に3つ画像が表示されて、一番右を選ぶと背景色を変えた画像になっているのが分かる。


次にtxt2imgからExtrasタブに移動して、Single Imageに先ほどの画像をIN。

一番下のRemove backgroundにチェックを入れて、Remove backgroundのプルダウンから適当に処理方法を選んでGenerate。

…がっ、駄目…っ!

腕と剣がもげてしまった。
ざんねん ぼうけんは ここで おわってしまった!

なので、ABGで適当に出力して、GIMP(画像編集ソフト)で透過処理を施しました。

で、透過した画像はこんな感じ。


ところどころ粗いのは目を瞑る。
ではこれに表情差分を用意する。

img2imgで、顔の部分だけInpaintでマスクし、立ち絵出力したプロンプトに以下のプロンプトを足した画像をいくつか出力する。
サイズは同じサイズで。

表情差分は以下のタグで出した。

笑顔
happy,^o^
→喜び顔、絵文字通りの顔。

真剣
serious,expressionless
→シリアス、無表情顔。

困り顔
furrowed brow,sulking,confused,worried
→まゆをひそめる、ふてくされる、困惑、心配

恥ずかしがる顔
embarrassed,flustered
→恥ずかしい、動揺顔。

顔だけ変更。ポーズ変更したいときはimg2imgじゃなくて、txt2imgでそのまま出してもいいかも。
RPGツクールは別にポーズ縛りもないので、表情ごとにポーズを変えてもいいけど、今回は「表情差分」ということで表情だけ変えた。

元の立ち絵+表情を変えた画像を揃えたら、GIMPなどの画像編集ソフトで顔の部分だけ切り取って元の立ち絵に上書きする。
…を、差分の数だけ行う。
肌の色が若干変わったり、髪の毛が若干変わったりするので、ある程度サンプルを出して合うのを試しながら作業すると良いかも。

出した画像はこんなかんじ。真剣顔はなんかあんま変わんなかったので不採用。
今回の場合は元の画像が詳細すぎるので、おおげさな表情変化ぐらいがちょうど良いかも。
これを含めてAIにやらせてもいいけど、Inpaintで指定しているのにマスク外も変わったりするので、
今回は手作業でやった。

ある程度の一貫性、整合性を保ちたいならやっぱり手作業が必要にはなりそう。
…だと思う。AIマイスターは違うのかもしれない。私は画像編集もAIも素人なので力業で解決してます。

ちなみに透過処理自体はChat GPTなどが行ってくれるらしい。
この画像ではないけど、別の画像を用意して依頼してみたのが以下のやつ。

……がっ、駄目……っ!

This image generation request did not follow our content policy.
この画像生成リクエストは、当社のコンテンツポリシーに従っていません。

恐らく幼い容姿+露出度が高いのがアウトだったんでしょう。

話を戻して。

立ち絵と表情差分を用意したので、次にRPGツクールMZを起動。
とりあえず、画像はあとで追加するとして、初期アバターのままぱぱっと初期設定と途中まで簡単に作る。

これ。この感じツクールですね。

初期キャラはケイシーちゃんが可愛かったので、ケイシーちゃんで仮組み。
冒頭をこんな感じで作成完了。

動画にしてみた。

ここから、立ち絵を出しての会話シーンへと変更する……のはまた明日。

2日目

ある程度の下地は作ったので、立ち絵を表示する方法を考える。

MVはプラグインを使っていた(デフォのピクチャ表示がなんか使いづらかった)けど、
MZでそこそこ使いやすくなっているっぽいので、とりあえず標準機能のピクチャ表示を使ってやってみる。

簡単設定なんてあったっけ…? これめっちゃ使いやすいじゃないですか。

で、色々軽く設定して、まずはそのまま表示。

まあまあ良さそう。

では次にこれを解決する。


そう、歩行キャラ。

今設定されてるキャラのように帽子はかぶってないし、服も全然違うので作り直す。
右隣のSVはサイドビュー戦闘用のキャラなので、今回は触らない。

色々方法はあると思うけど、
今回はツール→キャラクター生成で、外見(顔は使わないので目の色だけ指定)が同じようなオリジナルキャラクターを生成。


金髪+服無しで指定して歩行キャラ→エクスポートし、これを元に画像加工をする。
ドット打ちというやつです。専用のソフトがいくつかあるので、本格的にやるならそっちの方が良さそう。
今回は1キャラだけなので、GIMPを使ってフィーリングで加工した。


こんな感じ。ちまちま作業して、完成したらimg\characters\に放り込んで、ツクールのアクター設定の歩行グラフィックで指定する。

反映させたら、実際の歩行テスト。


髪の色を寄せればわりとそれっぽい。

とりあえず今日はここまで。
次回はマップ移動させて戦闘関連を試してみたい。

3日目

ささっと森マップをロードして、それっぽく加工。
RPGツクールの中で一番苦手なのがマップ作製なので、ほぼデフォマップです。

ダンジョン移動中(=敵が出てくるエリア)は立ち絵を表示したいので、立ち絵設定関連をコモンイベントで実装。
よくある「立ち絵あり」「立ち絵無し」を選べるやつ。
アイテムの大事なものでこのコモンイベントを紐づけたアイテムを用意すれば、特にプラグイン使わず簡単に設定しなおせるのでらくらく。

次は戦闘中のUI設定。
データベースの戦闘グループで戦闘テストできるのでそこでちょいちょい設定を練る。

で、使用させていただいたのは以下のプラグイン。

立ち絵表示管理プラグイン
https://x.com/triacontane/status/1360841352884285442

名前の通り、立ち絵を表示管理するプラグイン。
会話、戦闘シーン、マップ、タイトルなどなど、色々なところで表示するためのあれやこれを一括管理設定できる。
戦闘時の被弾シェイクなども設定可。
HPで立ち絵を変えたり、選んでるアクターで立ち絵を変えたり…とりあえずこれ一本でなんとかなる便利プラグイン。

タッチUI用ボタンと領域を非表示プラグイン
https://newrpg.seesaa.net/article/502758965.html

マップ移動時に右上にある≡マーク(クリックしたらメニュー開くやつ)とか、戦闘画面の右上にある戻るボタンみたいな矢印のやつを消すプラグイン。
キーボード操作ならそもそも触らないし、マウスで操作してる場合でも右クリックで同様の操作が行える。
要するに、スマホ操作以外ではいらん邪魔なボタンを削除する。スッキリ。

そんなこんなで適当に作る。
次回完成しそう。