見出し画像

AIで作るギャルゲー開発記⑤「立ち絵差分を作る」

立ち絵画像に服装・ポーズ・表情の差分をつけました!

画像
やったね

今回はその工程について紹介していきます。

はじめに、作り始めた当初はControlNetCharTurnerなど、差分にかなり使えそうな技術が出回っていなかったため、そういった拡張機能は使用せず作っています。
今から作るなら絶対使いますが、
共通する知見はいくらかあるはず。

立ち絵差分はどれくらい違和感なく切り替えできるかが超重要。
ということで、動画も用意してあります。こちらのツイートに添付された動画をご覧ください。

公式サイトからも見ることができます。
アップで見たい方はこちら。

差分作成にあたって、以前ご紹介した立ち絵の作り方と重複する部分が多いため、その当たりはかなり端折っていきます。こちらの記事も興味があればご一読ください。
ざっくり概要だけ触れると、「一度生成したイラストを、顔・上半身・下半身にバラしてImg2Imgでブラッシュアップしてからつなぎ合わせる」という手順を取っています。

まえがき AIで立ち絵差分を作るべきではない

メイキングに先立ち、差分を作った上での所感を述べておくべきかなと思いました。
論旨は見出しの通りなので、読み飛ばしても大丈夫です。

AIで立ち絵差分を作るべきではない、とは言っても差分がないノベルゲームは今日かなり物足りなく感じるでしょう。差分自体は必要です。
そして、自分で描けるならAIにわざわざ頼る必要はありません。

正確には「一般的なノベルゲームのような、表情や服装だけが切り替わるような立ち絵差分を作るのは明確に向いていない」と言うべきでしょう。

こうした立ち絵の多くは、1枚の立ち絵をベースに、服装や眉・目・口などの表情パーツをレイヤー分けする構造になっています。
これによって、全体のキャラクター素体は1枚用意すれば良く、差分を作る際には差分パーツだけを新しく描けばいいわけです。

作業量を削減できる(それでも大変でしょうが)ほか、ベース部分は完全に同じ絵なので切り替えをなめらかにしやすい利点もありますね。

が、AIにはそれができません。レイヤーの概念がないからです。
出力されるのは常に1枚の画像で、いわばすべてのレイヤーが結合された状態
実際のところ、表情差分を作るためにやっている作業はこの通り。

画像

表情部分を切り出したこのレイヤーは

画像
これと
画像
これに分けています。

無論手作業でのレイヤー分けです。もうちょっと丁寧に削れ。

眉やまつげを消そうとすれば髪と重なる部分をごまかす必要があるし、頬にさしている朱は目と完全に競合するのでどうにか塗り広げています。
ですが、レイヤー構造を無理やりにでも作らないと表情が変わるたびに顔まわりの肌の色だけが微妙に変わるような違和感の強い差分になってしまうおそれがあります。

端的にしんどいです。できる限り一般的なギャルゲーっぽくしたかったので挑戦しましたが、こだわりがなければもう少し違った表現にすべきでしょう。

たとえば、ポーズと表情を完全に紐づけて、表情が変わるときはポーズも変わるようにするのは有効だと思います。
商業のRPGとかに多いイメージ。ダンガンロンパもそういう作りでしたね。キャラクターの動きが大きくなるので、生き生きして見えるはずです。

正直、差分を作る手間は新しく立ち絵を作るのと大差ありません。
であればポーズと表情を一体として、よりダイナミックな表現に寄せた方がAIの特性を活かしていると言えるかも。

前置きが長くなってしまいましたが、ここからメイキングです。
服装、表情、ポーズそれぞれの差分作成をご紹介するため超骨太! 気になるところだけを摘むもよし、読み物として読み流すもよしです。
それではどうぞ。

メイキング~服装差分~

ベースの立ち絵を新しい服装の色で塗りつぶす

差分を作るということは、当然立ち絵は既に1枚できています
そうじゃないと差分じゃないですね。

そして、この完成している立ち絵を使わない手はありません。
特にオリジナルキャラクターの場合、その絵はこの世に存在する(おそらく)唯一のお手本です。

ということで画像をコピーしてきて、決断的に上から塗りつぶします。
髪型差分も作るなら、ここで髪を伸ばしたり短くしたりポニテをほどいたりしましょう。

画像
この通り

今回ご紹介するヒロイン、星野ひびきは写真を撮るのが大好きな元気印。
フォトスポットを求めて駆け回るタイプなので、アウトドアスタイルの私服をイメージしました。
ファッションセンスが要求されます。そんなものはありません。苦しい。

例のごとく、手で描いた絵はウルトラにラフです。
早々にAI様の御力でいい感じにしてもらいましょう。

塗りつぶした下絵をImg2Imgにかけて、服装差分ラフを作る

ということで、ガチャの時間です。

  • 元のポーズを大きく逸脱しない

  • (超雑な塗り絵から)全体的にイメージ通りの服装になっている

という二点を満たすところまで生成を回しましょう。
上手く服装が変わらないときは、服装指定のプロンプトを強めたり、Img2Imgのデノイズを強めて絵が大きく変化するようにしたりします。

今回は私服なのでデザインの幅が広く、またプロンプトでデザインを固定しづらかったこともあり、ガチャが大変でした。
なんだかんだ、制服はかなりデザインが安定します。それがないのは結構たいへん。

あくまで服装差分なので、(髪型変更や帽子、ヘアアクセの類がなければ)顔のガチャは一切しなくていいです。
また、ロングヘアのキャラクターの差分を作るときは、髪型をショートヘアに指定すると後が楽になります。
服が髪に隠れる部分が減るからですね。坊主とかにしてもいいのかも。

いっぱいガチャして(中略。失敗画像が増えすぎて一回掃除しちゃったので残ってないんです……)作ったラフがこちら。

画像
よき

いいですね。
パーカー、ハーフパンツ、スポーツタイツ、バックパック、スニーカー。一通りイメージ通りの服装になっています。
ほんとですって。あの塗り絵はこれをゴールにしていたんですよ?

パーツごとに分解し、Img2Imgで生成ガチャを回す

服装のイメージに合うラフさえ作ってしまえばこっちのもの、残りは最初の立ち絵とほぼ同じ工程です。

画像
画像

今回は「顔のあご辺りを少し残して、首から腰元まで」と「下半身」にバラしました。
靴のディティールに苦戦した子は、さらに靴まわりだけで切ったりしています。
切り方はイメージする服装によって変わってくるでしょう。この切り方はロングコートやワンピースには向きませんね。

例のごとく、帽子etcがなければ顔パーツは生成不要です。

パーツをつなぎ合わせる

フォトショクリスタetcのペイントツールを用いて、生成したパーツを合体させます。

これも通常立ち絵と大きくは変わりませんが、顔パーツは元立ち絵を完全流用しましょう。
ギャルゲー的な表情差分を作るのであればマストです
服装が違うだけなのに顔まで生成し直すのは割に合わないし、統一感が薄れるリスクがあります。

具体的に「首までは胴体パーツと考え、その部位より上を顔とみなす」のが良さそうです。

シャツの襟やパーカーのフード、後ろ髪などによって、首周りはパーツの前後関係がゴタゴタします。
レイヤー分けがちゃんとされていれば問題ないんですが、残念ながらAIはすべてのレイヤーが結合された画像しか出してくれません。

ということで、首元も服装によってブレる場所なので、すべての服装に共通する顔パーツから切り離すのが吉です。

色々コラして完成した服装差分はこんな感じ!

画像
顔が変わってるのは途中でリテイクを挟んだためです

ではでは引き続いて、表情差分に進みましょう。題材はこのまま!

メイキング~表情差分~

顔を切り抜いてImg2Imgで表情を変えた画像を出力する

まずは服装差分では触らなかった立ち絵の顔部分を切り抜きます。
そして、これをそのままImg2Imgの下絵にします。

画像
これ

AIイラストはなんだかんだ顔ガチャになるんですが、Img2Imgを使うと気休め程度に瞳の塗り方を維持してくれる傾向があるように思います。

表情はけっこうプロンプトで簡単に変えられます。プロンプトやデノイズの強さを調整しつつ出力させていきましょう。

画像
かわいい~~~~

お気に入りの顔が出たらOKです。笑顔や閉じ目差分は瞳の塗りという大きなガチャ要素が減るので、最初の差分にオススメ。

肌と髪だけの表情下地レイヤーを作る

正念場です。頑張りましょう。

服装差分のメイキングでも触れましたが、顔パーツは投げなわツールで切り抜いて、別レイヤーにしておきましょう。
この顔レイヤーを複製し、まずは下のレイヤーの目、眉、口を肌色・髪色で塗りつぶしたのっぺらぼうを作ります。

画像
これを
画像
こう!

これを作ることによって、肌の色合いと前髪のディティールを固定します。表情を変えるたびにそこだけブレるのを防ぐためです。

多くの場合、目と頬の朱は隣接し、重なり合います。この部分を単純に肌色で塗ると違和感が残るため、水彩系のブラシを使ったり、うまいことぼかしたりしましょう。
目を閉じている差分は頬と目が重なる範囲が狭まるので、多少は下地に使いやすいかも。

表情差分画像の眉と目と口だけを切り出す

正念場の2です。頑張りましょう。

表情差分画像をコピーしてきて、眉・目・口だけを残して肌や髪の部分をすべて消します。

画像
これが
画像
これになります。

下地と重ねて違和感が出ない範囲まで削ればOKです。ついでにディティールを整え、パーツの位置を下地に合わせて調整しておきましょう。
眉は複雑な塗りのない線だけで構成されることも多いので、なぞるように描き直してもいいかも。
また、目尻は朱が残るようにすると違和感が出にくいです。

切り出し終えたら下地とパーツの両方を重ねて……。

画像
きゃわわ

下地を作ることも含めて、絵を描く本質とも単純なAIイラスト生成ともズレた労力を要求されますが、なんとか完成です。
これで他のパーツへの影響を最小限にして、表情パーツだけを切り替えられるようになりました。

最終手段:自分でも描く

ときにガチャを繰り返しても求める表情にたどり着かないことがあります。
具体的にはしいたけ目の差分を作ろうとしたときです。

画像
失敗例。背景にしか舞わないしいたけ

AIの出力は全く安定しません。瞳の奥にハートマークを入れるタイプの瞳もかなりの苦戦が見込まれます。

……必要な部分だけ自分で描いた方がよくね?

画像
やってやります

イメージに近い出力をトレスして目と眉を描いていきます。
口周りは下地と競合しづらいので、まるまるコピーして大丈夫です。

画像

瞳の塗りは十分な絵心がないと難しいと判断し、既存の立ち絵からコピーしたものを引き伸ばしたり削ったりしてまかないました。

画像
+ワ+

しいたけハイライト投入!!!!

なんとかなりました。こういう手段も適宜使っていきましょう。

メイキング~ポーズ差分~

ベース画像を下絵にImg2Imgでポーズ差分ラフを出力する

服装差分でも同様でしたが、完成している立ち絵画像は非常に優秀なImg2Imgの下絵になります。

そして、下絵をつけて、服装のプロンプトを維持しておけば、元のデザインを大きく逸脱するイラストはかなり出力されにくくなります。

そのため、ポーズを指定プロンプトを変更した上でかなり強調し、デノイズを0.97(97%くらい、という意味のはず?)まで強めて出力することで、無理やりポーズだけが変わった立ち絵のラフを出力します。

今からやるのであればControlNetを併用すべきでしょう。
ポーズ指定を強力にサポートしてくれるので、使わない手がありません。ガチャの手数をかなり減らしてくれるはずです。

画像

とはいえ、ControlNetなしでもこれくらいのポーズ替えはできます。

服装差分とポーズ差分を両方作る場合、服装差分を先に作ってから、完成した服装差分を下絵にポーズ差分を作るのがいいと思います。
服装のほうが指定が複雑になりがちで、プロンプトよりもImg2Imgの下絵で情報を与えたほうが安定するからですね。

パーツごとに分解し、Img2Imgしてから合体する

本開発記の常套手段です。
詳細についてはベース立ち絵と全く同じなので省略し、完成品をドン!

画像
good…

服装差分と同様、方向性を示すラフができればディティールはこの工程で調整・ガチャできるので、キャラクターの同一性を保ちやすいのが強みですね。

おわりに

長いご紹介となりましたが、差分作成は以上となります。
ここまでお読みいただきありがとうございました。

今回は服装差分とポーズ差分を2パターン用意し、表情差分はこれからも拡充予定なんですが……ポーズと服装のパターン数ってかけ算で増えるんですよね。作っている途中でやたら大変なことに気づきました。

これ以上ポーズを増やすのは厳しいし、そもそも服装差分は切り捨てられるなら切った方が良かったですね……。
まあ、学園ラブコメだからと制服絵だけで乗り切るのは少し厳しいものがあるのでやむを得ません。手間はかかれど実現可能な範囲です。

さてさて、立ち絵がここまで仕上がってきたとなると、ゲーム画面にも本格的に着手していきたいところです。
そのためにはあと一つ、作っておきたい画像があります。

そちらについてはまた次回!

いいなと思ったら応援しよう!

ピックアップされています

AIで作るギャルゲー開発記

  • 6本

コメント

コメントするには、 ログイン または 会員登録 をお願いします。
AIで作るギャルゲー開発記⑤「立ち絵差分を作る」|シガナ
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1