>   >  キャラクター制作から運用まで! リアルタイム向けキャラクターモデリング&Unreal Engine 4への実装
キャラクター制作から運用まで! リアルタイム向けキャラクターモデリング&Unreal Engine 4への実装

キャラクター制作から運用まで! リアルタイム向けキャラクターモデリング&Unreal Engine 4への実装

4 テクスチャとマテリアル

01 3Dペイント①~盛り上がるPBRペイント界隈~

リソースはここ近年で大きな盛り上がりを見せ、多様なサービスが生まれています。PBRペイントでは単色だけではなく、質感を含んだPBRマテリアルで着彩することが可能で、そのためにはスマートマテリアルを用意する必要がありますが、近年はPBRテクスチャのネットリソースが増え「Quixel SUITE」「Substance Live」「GameTextures.com」などのサービスを活用することが多くなりました。

今回の制作では和風の素材が必要でしたが、あまり出回っていませんでした。そこで、制作のメインビジュアルでは自分で撮影した写真素材をBitmap2MaterialPhotoshopでタイル処理や質感加工を施し、使用することにしました。3Dペイントの際は人物やクリーチャーの着彩にアナログペイントに近い感覚で着彩ができる3D-Coatを使用し、石灯籠などの細かい着彩の必要ない背景用素材にはフィルタ類の多いSubstance Designerを使用しています。

オリジナルの素材が必要なAsteriskのロゴマークや金魚の模様、透過処理の必要なレースなどはCLIP STUDIO PAINTやZBrushを活用し、細かい模様はテクスチャベイク時にハイポリに模様のオブジェクトを差し込みベイクするか、ノーマルペイントを施しています。




02 3Dペイント②〜プロシージャルヘアーテクスチャジェネレータの開発〜

背景用テクスチャ制作に使用されることが多いSubstance Designerですが、今回はテクスチャアーティストの若槻義人氏がキャラクターの髪の毛のUVテンプレート画像を入力すると、房ごとに根元から毛先へのグラデーションが入ったカラーマップをプロシージャルに生成するSubstanceグラフを作成しました。出力したSubstanceアーカイブ(sbsarファイル)をゲームエンジン内に持ち込むと、パラメータによって色調や汚れ具合を動的に変化させてゲーム内オブジェクトに適用することができます。

今回は完全なPBRマテリアルを生成するのではなく、UE4のカスタムヘアシェーダが受け取るカラー、ノーマル、アンビエントオクルージョンマップとグレースケールのグラデーションマスクを出力する処理を組みました。また、今回は上から下へ流れるグラデーションを生成しました。SVGファイルとしてベイクしたUVテンプレートをFlood Fillノードに読み込ませることで、UVアイランド内をランダムなカラーやグラデーションで塗りつぶすことができます。UVアイランドごとのサイズに応じて自動的にグラデーションの勾配を設定してくれるので、髪の房ごとに矩形にUV展開されていれば別のモデルにも適用可能です。

GPUエンジンを使用するFlood Fillノードはゲームエンジン内で処理させることができないため、いったん画像として書き出した上で、ビットマップ素材として再インポート。さらに、コントラスト操作やノイズを加えるプロシージャル処理をかけていきます。



03 3Dペイント③~動的に変化するカラーグラデーションの作成~

カラー2色をブレンドしたグラデーション画像をGradient Dynamicノードにグレースケール画像と一緒に入力すると、カラー画像をパレットとして明暗に応じて彩色してくれます。カラー画像の任意の縦軸1ピクセルの列がサンプリングされ、サンプリング列を横にずらすことでブレンドの比率をコントロールできます。ゲームエンジンのシェーダで利用できるように白黒マスクも出力しておきます。PBR表示のプレビューでルックを確認し、グラデーションのバランスとノーマルとアンビエントオクルージョンの強度パラメータをエクスポーズ(公開)して、ゲームエンジン上で調整可能にしたsbsarファイルを出力します。



04 UE4のマテリアルの基礎知識と運用

UE4のマテリアルはUnityやMayaのシェーダに該当し、安易に増やすとGPUリソースを消費して描画負荷が増してしまいます。そこで、Unityでのマテリアルに該当するマテリアルインスタンスを活用。マテリアルインスタンスを使うことで負荷が軽減でき、さらに、即座にビューポート上の見た目を更新することができます。

UE4でSubstanceファイルを読み込んだ後はマテリアルインスタンス同様にSubstanceもインスタンス化することで、シェーダを増やさずに様々なバリエーションのテクスチャを生成することができます。Substance Designer上でエクスポーズしたパラメータ群はUE4エディタ上でも同じようにアクセスし、調整が可能です。複数生成したUEマテリアルインスタンス内に、やはり複数生成したSubstanceグラフインスタンスが出力するテクスチャを読み込むことで、UE内のマテリアルエディタのみでは作成困難な多彩なバリエーションをもつマテリアルを効率良く量産することが可能になります。




05 マテリアルの実用例①~トゥーンマテリアルの利用~

逆光のときにかわいく見えない場合はエミッシブの値を上げるか、トゥーンマテリアルを利用することで光の影響を受けにくくなり、肌を一定のシェーディングに保つことができます。また、ポストプロセスマテリアルを利用することでアウトラインの描画もでき、漫画的な表現が可能になります。

06 マテリアルの実用例②~ヘアーマテリアルのつくり込み

ベースの髪マテリアルを作成した後に、先ほどSubstance Designerで用意したグラデーション、ノーマル、アンビエントオクルージョンマップをアサインします。カラーグラデーションやディテールが加わることで、髪の解像感が増しました。

07 マテリアルの実用例③~スキンマテリアルのつくり込み

3D-Coatで質感をペイントしたラフネスマップの強度を変えることで肌の艶感を再現します。今回は唇にハイライトが乗る程度に調節しました。また、PNテッセレーションを用いることで、カメラが寄ると肌のメッシュが細分化され、滑らかな曲面になるように設定しました。さらに、逆光表現で人肌に暗い影が落ちてしまうのを防ぐために、人肌の表面下散乱光を再現しています。これにはサブサーフェス・スキャタリングシェーダを使用しました。これにより、逆光でも陰領域が明るくなり、また、比較画像をみるとわかるように光が肌を透過する表現も実現できました。


  • SSS適用前

  • SSS適用後

次ページ:
5 ゲームエンジンへの実装

特集