見出し画像

AIで髪差分含む立ち絵群を一式作ってみた!


■はじめに

前回記事からもう三ヶ月……だと!?(挨拶)
いやぁ、月日は立つのは――という前置きは置いておいて、今回も差分の進捗です。
といっても、今回はあんまり解説的な部分には触れません。とりあえずこの程度出来たぜ! ってのを出すのがメインです。

ええ、なんとか髪差分がそれらしく出来るようになりました。
というか、これまでの記事とは真逆のアプローチに近いぐらい手法も色々変えてますし、まだ問題も幾つか抱えてはいます。が、少なくとも実用に耐えて、且つある程度以上の生産性の目処も立った感じです。やったぜ。

■作品例

なにはともあれ見てもろて。

※ゲーム内で色を変えやすくすため、一部除いてベースカラーは青で統一。
ただまだ各パーツごとの色の調整なんかが出来てません。

で、上で上げたものやそれ以外も含めて組み合わせ例を幾つか。

カーディガン+スリットスカート
部屋着感
難しそうという理由だけで作ったダッフルコート
幼女感

 特に前髪と肌着の数をまだ揃えてなくてイマイチバチっと来る組み合わせが無いのですが、まあ、見れる感じ。対して後ろ髪はバリエーション豊富な上に切り抜きの殆どがざっくりで良くてついつい量産してしまう。

ドリルヘアー! と……ね?

 まあ、こんな遊びするぐらいならもっとやることあっただろ、と今になってみれば思うが。
 というか普通にキャラクリのオプションに有りがちなタトゥー差分とか出来るのかな、とやってみたら九割方◯紋しか出なくて草なんよ。別途図案の指定とか出してやればそれらしいのが出たのだろうか?

■制作のポイント

・髪差分が「出来る」と思ったポイント

 結論から言えば「AIにはとにかくそれっぽい絵をそれなりの精度で出して貰って、後は物理(画像編集)でなんとかする」という感じ。最も、それを可能にしたのが……そうだね、ワープ変形だね。
 こいつはGIMPに搭載されているレタッチ機能の一つで、説明が難しいが「ドラッグするとその箇所を適時コピペで前へ前へと押し出していく」みたいな機能だ。これまで何となく存在を知っていはしたが、面倒くさそうで手を出してこなかった。が、こいつが下手なAIのレタッチよりもよっぽど賢いんじゃないか、って位には便利なのだ。

 AIを用いて差分を作ろうとした時にどうしてもぶち当たる壁が「微妙な透過やはみ出しの処理」にある。これまではコピペやぼかしなんかでごまかしてきた。が、ワープ変形のヤツは格が違う。ゴリゴリとエンピツで塗りつぶす感覚で、しかしポイントさえ押さえてやれば殆ど違和感なくパーツ一部分を広げたり削ったりできるのだ。凄い、凄いぞワープ変形!

 というか、あまりに便利すぎてちょっとした修正どころか大きな修正すらこいつで行ける。
 例えばシャツを出力したとして、しかし肩がガッツリ見えている(=シャツの肩幅が足りてない)としよう。これまでなら拡大・縮小ツールや遠近法ツールなんかでなんとかならないか、と四苦八苦して、まあ大体は無理でその素材の活用を諦めていた。

 ――けれどもう諦める事はないんだ、そう、ワープ変形ならね
 いや、実際こいつは凄くクールなんだ。勿論、多少元の絵に沿ってペンを入れてやる必要はある。が、そこはデジタル。マズイと思ったらCTRL+Zという強い味方もいるから安心さ! さぁ、ゴリゴリと塗り進めればほらこの通り! 肩幅もばっちり伸びているのさ! ハハ、こいつは凄いや!

 ……と、謎テンションはともかく、実際ワープ変形だけで九割型の問題を解決した感があるのだ。凄い。

・髪のレイヤー分け

 これに関しては当初から必要と感じていて、今回実際にやってみた。……なんだがこれが思っていたより数段やりやすい。マスクを、耳を除いた顔全体+ちょっと耳より上の部分を膨らます、といった風に用意して、それで髪型を指定してやると「前髪だけ描いてくれる」のだ。逆に立ち絵の透過部分をそのまま描画箇所に指定してやれば「後ろ髪だけを描いてくれる」。
 勿論、そこに至るに二~三の試行錯誤はあったが、それでも意外にすんなりとこの工程にたどり着けた。それぞれ別のパーツに分けている為切り抜きがしやすく、そしてレイヤー分けされるため他のレイヤーとの兼ね合いを気にする部分が大幅に減る。そして前髪と後ろ髪の組み合わせによってヘアスタイルだけでかなりのバリエーションが出来る、と一石三鳥な改善になった。

・AI側も一歩勧めた

 こっちも結論から言えば、ControlNetを活用し始めました。うん、知ってはいたよ? けれどこれまでは出来るだけ拡張機能は避けたいという謎の義務感(面倒くさい)から使うのを避けていた。けど使い始めると、いや、便利やんけー!
 具体的にはタイトな服装のときはLineart(animeモデル)を適用。そうじゃなかったらOpenposeで。そして効果の程は謎だが髪の時はReferenceを適用しています。
 そしてこれまでさんざんやってきた前準備のレイヤー作成を殆ど止めました。そう、ワープ変形があるからね。

 特にLineartを適用した場合の効果をすごく感じる。今は裸棒立ちの元絵から全部作るようになった故、どうしてもボディラインに沿ったパーツにしか向かないヤツだが、その分かなり忠実にボディラインそのままに服とかを描画してくれる。偉い。
 Openposeでもそれなりの精度で元のラインを維持してくれる。いずれにせよ何が凄いって、ノイズ除去強度を0.8~にしても十分素材になる程度のものをコンスタントに出力してくれるのだ。……いやホント繰り返しになるけれど、ワープ変形ありきな部分はあるが。

・問題点

 第一点として、現状耳(と地味に手)を隠す事は前提にしていない、という所。こいつを隠す・隠さないの二通りを実装しようと思うと、実は結構面倒なので今は割り切って隠さない状態(=別途耳のパーツを最上位のレイヤーに仕込む)にしている。ついでに言えばAIでI2Iさせる時に耳を削るような髪の出力をさせると、勝手に耳を新たに書かれたりするのも面倒。

 第二にバストサイズ、つまり胸の問題。現状は後から拡張し易いようにFlat_chestを指定して極力小さくなるように素材を出させているが、デカくするとなるとブラや裸姿だけでなく、その他全て上半身に関わるパーツもサイズ別で素材を用意する必要が出てくる。……手間だが「ソウイウヒトテマガヒッスナゲーム」では準備する必要があるかも。どんなゲーム、とは言わないが。

 最後に色に関して。ゲーム素材として後からカラースケールを変えれるように、そして肌色の逆の色って理由で基本青でパーツを出力しているのだが、どうしても特定の服は色によって認識されている部分がある。例に挙げた中だとトレンチコートや巫女さん服なんかがそうだ。それ以外だとナース服やサンタコスなんかも色による所が大きい気がする。これらは色を変える、という訳にもいかない。
 加えて複数の色を使うことが出来ない問題もある。そのためだけにレイヤーを倍以上にするのは無理だ。
 妥協案として、トレンチコートは違うが巫女さん服なんかは実装するとしたら「一つのアイテムで上下セットの服」として扱うつもりで試作した。ならそういったセット衣装に関しては色固定、というのも有りかもしれない。……いや、単に衣装毎に色固定か否かのフラグ持たせるのと実装の手間はあんまり変わらないか。

■終わりに

 前回記事からぼちぼちと研究を勧めていた差分作成だが、今回日曜日、月曜日、と連休が出来たので本格的に作成開始&そしてとりあえずの記事作成となった次第。
 まだ表情……というか顔面差分をやってないんだが……実際、絵描きさんなんかも「目を入れることで命が」云々良く言う。そういった部分でもあえて最後に残しているんですよね。
 ……ただまあ、切り抜き云々とは別のベクトルで難しい気がする。各パーツ毎にどうバランスを取るのかとか、下手すると不気味の谷現象が多発しそうな予感。

 そう言いつつ、パーツ分けはしてませんが試しにドンで今回はさようなら~。

OL風?
なんか胸がアレなせいか色のせいか、某アイドルゲームのキャラに見えてk

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