読者です 読者をやめる 読者になる 読者になる

当たったらどうすんだよ

当たらなければどうということはない

ZBとBlenderでUE4用のキャラを作る #3:Blenderでジオメトリ編集

Blender UE4 UE4にオリキャラを導入したい ゲーム制作

それでは第3回です。

f:id:kanianthi:20160608094414j:plain

前回までにZbrushですべてのサブツールをZremesherしましたので、GoZ→GoBアドオンを使ってポリゴンデータをBlenderにエクスポート/インポートします。

ここで注意することは、

  1. 単位を「メートル法」にしておく
  2. 各オブジェクトの寸法を把握しておく
  3. 頂点数と面の数も確認。(メインメニューに並びます)
  4. ついでに「Vismaya Tools」があるとフリーズ化作業などに便利ですよ

以上です。

スケール合わせや骨入れは後の工程で

以前の記事でも書いたように、Blenderは「メートル単位」であるのに対して、UE4はセンチメートル単位です。この単位は相対的なものですのでBlender内で1.7メートルと表示されたものは、UE4では1.7センチの指先より小さいキャラになってしまいます。

この後の作業もBlender内だけで完結させる場合はすぐにスケール合わせを行っても良いのですが、Zbrush併用でテクスチャリングやディティール入れを行いたいので、現時点ではスケールを確認するだけに留めます。

なぜなら…Zbrushはブラシの大きさや強度がスケールに依存するため、およそ数十倍にスケール合わせを行ったメッシュにディティールを入れるのが「かなり大変」になるからです。出来ないわけではありませんが、スムーズではなくなるのでストレスが溜まります。

以後、ZbrushSubstanceなどで行いたい作業は「テクスチャの書き出し」です。テクスチャデータはメッシュを均等に拡大すればそのまま使えますので、作業がやりにくくなるのであれば、UE4へのスケール合わせはテクスチャリングが終わってからで十分です。

ジオメトリの修正

ジオメトリの修正はこんなテクニックを組み合わせて行います。

f:id:kanianthi:20160608101938j:plain

ループエッジを追加して袖やスパッツなどの縁を作ります。

  1. 元のポリゴン
  2. エッジを追加(ベベルエッジかctrl Rなど)
  3. 片方のエッジをsでスケール
  4. もう一方のエッジを(画面では)上移動して重ねる
  5. 全体の形状を整える

押し出しを使うと無用の面やエッジが増えてしまうので、上記の方法がポリゴンモデラでのディティール入れでは定番の手法です。作例では垂直に立った円柱で作業していますが、腕や足などは軸平面に対して真っすぐにはなっていませんので、移動マニピュレータを「ノーマル」モードで使用すれば、エッジのノーマル方向に対して作用するようになるので便利です。

f:id:kanianthi:20160608102917j:plain

髪の毛オブジェクトは後頭部の「絶対見えない部分」を面で削除しておきます。また、ジオメトリの修正を行いながら、どのようにUVシームを入れればゆがみのないUVが楽に展開できるか考えながら作業を行い、明らかに必要なシームはどんどん入れていきます。

f:id:kanianthi:20160608103622j:plain

円周状のエッジを閉じる。

  1. 円周エッジをaltクリックで選択
  2. eで押し出しsで均等スケールする
  3. 2を繰り返したあと「頂点」に切り替えaltMで中心に結合

f:id:kanianthi:20160608105049j:plain

面を円形に整形

  1. ベースポリゴンを程よく分割しておく
  2. 面をインセット(i)する
  3. アドオン「LoopTools」の「円」を使う

※今回はサブディビジョンモデルを使わないのでこのまま押し出したりしても構いませんが、円周状に整えたポリゴンをもう一度インセットしておくとカトマルクラークがスムーズになります。↓が作例。

f:id:kanianthi:20160608105949j:plain

三角面の意識的な使用

f:id:kanianthi:20160608110411j:plain

今時ですと意地でも四角ポリゴン!という信仰じみたテーゼが定着しつつありますが、実際に四角ポリゴンだけでモデリングするのは難しい話で、デメリットもたくさんあります。そもそも「四角ポリだけで作る」というのはサブディビジョン・サーフェースが四角面じゃないとうまくスムーズ分割できないことから出てきた話であり、サブディビが使えない前提であれば、四角面にこだわる必要はありません。

ポリゴン編集をするうえで、四角ポリゴンを使わないとエッジループが使えないという問題もありますから、広い領域ではもちろん四角面を使いますが、髪の毛の先端などでは遠慮なく三角ポリゴンを併用して「レンダリングエンジンにエッジを指定する」作業を行いましょう。

f:id:kanianthi:20160608111203j:plain

Zremesherの相変わらずの欠点として、ポリゴン数が少ない指定だと「あり得ない頂点接続」をしてきたりしますが、それでも手動リトポするより便利な面も多いです。

↑のお尻もZremesherそのままだと使い物にならないメッシュでしたが、ちょっとエッジを追加して頂点接続を考え直せばなんとかなります。四角面だけで構成しようとすると汚いシェーディングになってしまうので、効果的に三角ポリを併用して整えます。

f:id:kanianthi:20160608112348j:plain

ボディのジオメトリ編集がほぼ終わりました。

  1. トップス(ウエア上)の袖口をエッジ追加とスライドで作成シーム入れ
  2. トップスとボトムスの継ぎ目?を同じく追加してシーム
  3. 手にもハーフグローブをはめている感じにするため縁を追加
  4. シューズのポリゴンをリダクションしてシームを追加
  5. 手から指が生えている部分が激しく汚かったので修正

眼球を作成

f:id:kanianthi:20160608113841j:plain

  1. 原点でプリミティブのポリゴン球を作成します。セグメント数16、リングを10で作成しました。
  2. 球体をr→xなどでX軸90度回転させ、軸が前方を向くようにします。
  3. エンプティを作成し、球→エンプティの順に選択してctrl+Pで親子付け(ペアレント)します。

f:id:kanianthi:20160608114837j:plain

  1. 眼球がどこを向いているか分かるように、右ペインのオブジェクトタブの「表示」メニューでワイヤーフレームを指定しておきます。
  2. エンプティを移動し、ローカルでYサイズをスケールして平べったく変形し、眼窩(がんか)にうまくはまるよう修正します。親であるエンプティを変形(トランスフォーム)すれば、眼球オブジェクトも変形します。回転もスケールもローカルで行えば軸ズレを起こすことなく編集できるので便利です。

なぜこのような手間をするのか?というと、扁平した眼球そのものをトランスフォームすると「目の回転リグ」が組めなくなるからです。この方法であれば、変形のトランスフォーム値が入るのは親のEmptyだけで、眼球のデータは「球体のまま」なので、回転させても眼窩からはみ出してしまうことがありません。

これは「トゥーン顔」で一般的なテクニックで、扁平した平べったい眼球をはみ出さないで回転させるための基本になります。

今回のようなゲーム用の非ハイエンド設定なキャラでは、眼球リグまでは仕込まないことが多いですから、目の扁平具合と位置決め、スケーリングなどを行ったあとに、眼球自体を回転させて適切な「初期位置」で瞳孔の向きを決めるために行いました。
※ついでに、映像用キャラであれば目のリグも必要になりますので、Tipsの意味もかねて。

このキャラの場合、ハイエンドを狙うわけではなく、PCなら軽く表示できてモバイルデバイスでもなんとか動かせる(それなりのスペックは要求されるでしょうが)ところを狙っていますので、いい感じに眼球が配置できたらペアレントを解除してトランスフォームを適用(alt+P→トランスフォームを維持してクリア)し、裏側のポリゴンは削除してしまいます。

以上ですべてのパーツのジオメトリ編集が終わりました。

次回はUVを展開し、テクスチャリングとディティール入れを行います。