【Blender】3D生成AIのキャラクターをリトポロジーする

これはやらなくてよい苦労について紹介する記事です。



  • こちらは『生成AIでゲームを作る』シリーズの1つとなっております。他にも気になる記事があればご覧ください。

前回からの続き

前回までで、3Dモデルを髪・顔・体(スーツ)の部分にそれぞれ分割しました。

今回は顔と体(スーツ)をリトポロジーしていきたいと思います。

前提:手動リトポロジーは必須ではない

まず、Tripo3Dのスマートメッシュは悪くありません。
特に顔のトポロジーはほぼ問題ないです。

ポリゴン数の上限を大きくしないことで、より良いトポロジーが得られます。

入力上限:6000ポリゴン
出力:9742ポリゴン
  • 額の部分に斜めのトポロジーがないなど、ほぼ完ぺき。
  • このまま動かせる、良いトポロジー。

ではどういうときに多大な労力をかけて手動でやるのかというと、

  • Tripoに課金していないのでスマートメッシュが使えない場合
  • A型なので細部も作り直したくなってしまう場合
  • 表情をアドオンで自動で作るときに破綻する可能性を下げるため

にすぎません。
しかもリトポロジーはそこそこの難易度といえるでしょう。それを踏まえ、「我こそがBlenderを極めたい者なり」という方だけ、ご挑戦ください。

ちなみに自分は今後やらないと思います。

というわけで、『生成AIでゲームを作ろう』シリーズをご覧頂いており「はよゲーム作らんかい!」というお気持ちの方は、揺れもの部分は切り裂くまで飛ばしていただいて結構です。

顔のリトポロジー

シュリンクラップで合わせる

リメッシュする前のハイポリモデルと、リメッシュ後のローポリモデルをインポートします。

ローポリの方は、面が裏返っている場合は表に返しておいてください。

ローポリとハイポリの位置や大きさをほぼ完全に一致させてください。この時点までで髪の毛は位置を合わせるのにいい目安になりましたが、合わせ終わったら非表示にします。

ローポリメッシュのほうにシュリンクラップモディファイアをつけます。

口のリポジトリー

やり方

口元のメッシュを消したら、上下左右の部分を繋げます。

均等になっていない部分はループカットを入れます。ついでにメッシュの流れがおかしかったので直します。

直行している頂点を口の中心に持っています。
そしたら、4つの辺に同じ数のループカットを入れます。今回は3つ。

外周と繋げられるようにループカットを入れます。

1つFでフィルします。そうしたら右の画像の場所を選択してFを長押しすると、バーッっと面が埋まるはずです。

あとは同じようにまたループカットして面を張っていけばいいです。

ある程度埋めたらスカルプトモードに行って、スライドリラックスブラシとリラックスブラシで整えてください。

スライドリラックスブラシ
  • そのまま使えばポリゴンを移動
  • Shift押しながら使えばポリゴンの大きさを均等にする

あとは真ん中の埋めてない部分の頂点はすべて削除し、上下を合わせます。
適当にフープカットを増やして、また整えたら終わりです。

口の完成

完成です。口は可動域に合わせ十分横に大きくしましょう。

めんどくせえな…と思われた方へ

一度作ってしまえば、次回は口元の部分のメッシュだけコピーして、リトポロジーしたいローポリモデルに貼り付け、適当に繋げるとかなりの時短になります。

目のリトポロジー

やり方

まあ口と同じです。
それから、顔面の半分を消して対称化しようと思うので、リトポロジーは片方の目だけでいいですね。

まず目の部分のポリゴンを消します。

4つのエリアの辺の数が均等になるように十字を貼ります。

はい。できました。

顔全体の最終調整

ミラーモディファイアをつける

では半分を消します。

そしたらミラーモディファイアをつけて、シュリンクラップの上にして下さい。

真ん中の線を直線にして、2本目も直線にします。

後はうまく移動させるだけです。

シュリンクラップを適用

シュリンクラップを適用してください。

適用する前に、耳のこの辺がシュリンクラップで別の場所に引っ付いてしまっているため、いったん頂点グループに登録してシュリンクラップから除外します。

耳の欠けている部分を補完

さあ!まだまだやることはウンザリするほどあるので気合出してやっていきましょう。
まずは髪の毛があったせいで生成されなかった耳の部分を作っていきます。

ちなみに影がおかしい場合はノーマルをリセットもしくはスムーズすれば直ります。

おでこと耳の欠けている部分を補完

おでこの伸長

デコやうなじもある程度伸長します。まあ適当に押し出しして丸くすればよいです。

伸長したらスカルプトブラシでなだらかにしていくと楽なのですが、意図しないところまでブラシが影響してしまう事故を防ぐため、編集モードで選択した部分をマスクすると良いでしょう。

選択した部分をマスクするやり方

まずマスクをかけたくない部分を選択したら、Hで隠してください。

あとは全体にマスクをフィルして、隠していた部分を再表示してください。

耳の後ろの作り方

この耳の後ろとめり込んでいる付近は削除してください。

耳のここはいくつかの頂点をまとめてMで中心にマージしてください。

頭のほうも頂点スナップを有効にし、耳のほうに近づけていくと良いでしょう。
最後に重なっている頂点を選択したうえでMでマージするのを忘れずに。

はい、耳の後ろ完成です。

後頭部

頭は以下のようなトポロジーが望ましいので、そうします。

あとは埋めてください。

頭の形を整えます。途中で頭がハート形になっちゃっいました。
ミラーモディファイアの切れ目ではブラシが上手く機能してくれないため、ミラーモディファイアを適用してまた修正します。

はい、頭の形ができました。
ただ、ハイポリモデルの人中がへこんでなかったり、頬骨が平らになってしまっているので、ハイポリモデルを直します。

ハイポリモデルを変更すると実はフラットシェードだったことがわかるため、スムーズシェードに変更しておいてください。

なんか変だがどうしたらわからない方へ

美術解剖学を学ぶほかないのですが、まあTripoで出力したモデルにありがちな顔の形というのはあるので、おおむね画像の通りにスカルプトしてもらえるとよくなります。

もう一度シュリンクラップをつける

シュリンクラップモディファイアをもう一度つけてください。
ハイポリと接触する顔の正面部分だけを新規頂点グループに割り当てて、使用します。

髪:デシメートモディファイアでさらに面を減らす

髪のトポロジーを整える意義は薄く、また単純に面倒なので軽く終わらせます。

穴が開いている場合は埋める

適当に埋めてください。

近い2辺を選択してフィルしたら、できた円形の隙間をグリッドフィルで埋めるとよいでしょう。

はい。出来ました。

デシメートモディファイアでポリゴン数を減らす

顔が6000ポリゴンなのに対し、髪が21000ポリゴンも使用しており、贅沢すぎます。なのでデシメートモディファイアでとりあえず5000ポリゴンぐらいに減らします。

服のリトポロジー

Tripoのスマートローポリをやり直す

Tripoでリメッシュされたモデルを使おうかと思ったのですが、うんちトポロジーのため作り直さないとどうにもいけません。主人公ではないモブならそのまま使っていたのですが…


えー、そういうわけで何時間かかかってローポリを手動で作ったのですが、疲れてしまいました…。

1つ気が付いたのが、この状態で1500三角ポリゴン(左右なら3000三角ポリゴン)なんですよ。だから、実は体にはそんなにポリゴンは必要ないことです。

しかし前回Tripoで出力してもらった体は14000四角ポリゴン。三角形換算だとその2倍程度、28000ポリゴンになります。指定した値が多すぎるのが逆に良くなかった?

スマートローポリの最適解を見つけた

なら、Tripoで同じくらい少ないポリゴン数でスマートローポリしてもらったら、余計なところにNゴンを作ることなく、綺麗になるんじゃないか?って。

やってみました。

上限指定:5000四角ポリゴン
出力:7432四角ポリゴン

……お!これは……まあまあ完ぺきなトポロジーです!

などは関節が考慮されておらず不安ですが、それ以外の部分は私が自力でリトポロジーしたものと一緒…つまり理論上最もよいものになっています

ほかの値も入れてみましょう。関節がもっと綺麗になったら嬉しいです。

上限指定:3500四角ポリゴン
出力:5021四角ポリゴン
  • 期待と異なり、関節部分がループの辺にならなかった。
  • 少し角張りが目立つ。
上限指定:4000四角ポリゴン
出力:5157四角ポリゴン
  • こちらも関節部分がループの辺にならなかった。

うーん…値を変えても関節は綺麗になりませんでした。なのでBlenderでの編集は必須ではあります。

とはいえかなりいい感じではないでしょうか!?

体の個人的アンサー

3500~4000ポリゴンに指定してスマートメッシュ

  • Tripo上では四角換算になっている上、指定したポリゴン数の1.5倍程度で出てくることに注意。
  • ローポリゴンであるほどBlenderで編集がしやすい。

ひじ・膝・手の関節部分を直す

では3500四角ポリゴンで指定し、出力は5021四角ポリゴン≒10000三角ポリゴンのこちらのモデルで行いたいと思います。

半分削除してミラーモディファイアをつけて作業開始です。

関節部分はごちゃつきすぎているので削除しました。
この時、編集する前に複製して、シュリンクラップ先に指定することで面を張りなおしたときに元の形状を概ね保ったままにできます。

手にこだわる場合は同じく関節部分すべてを変えます。

関節部分は、プロポーショナル変形を用いて曲がる方向に少し曲げてください。そうしないと後でアーマーチュアを入れたときにガクガクする可能性があります。

揺れもの部分は切り裂く

ネクタイ、ジャケットの裾は後で揺らしたいのですが、一体化してしまっているので切り離します。

腕と足を簡単に覆って、ジャケットの外周も画像のように辺で覆います。
ジャケットの脇の下、背中などから外周に面を張ります。

シュリンクラップモディファイアをつけて、適当にループカットを入れ、まあいい感じに埋めていきます。

スーツの裾、襟の部分は押し出しで作ることでトポロジーの流れを画像のような理想的な感じにできます。

三角面、Nゴン(五角形以上の面)が作られないようにナイフを入れて、ポケットなどを押し出します。難しければ適当でもいいです。

体と合体

さあ、いよいよラストです。頭部と体を合体させます。

まず配置を合わせます。

体側の余計なポリゴンを削除しつつ、首の太さ位置を調整します。ずれがないように、シュリンクラップモディファイアを顔面と喉仏につけたり適用したりしながら作業します。

おしまい

この記事全体で丸々2日かかりました…。もう今後は顔のリトポロジーはしないと心に決めたのでした。