SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Unreal Fest Osaka | 2016
Kiteの少年と学ぶ
UE4.11の新シェーダ
内容
● Eyeマテリアル
○ 各部名称
○ Content Examplesのマテリアル
○ 改造方法
● Hairマテリアル
○ Content Examplesのマテリアル
○ 少年のマテリアルを調整
○ よりリアルにするための改造
○ ライトの問題について
Eyeマテリアル
• Content Examplesにマテリアル例がある
M_EyeRefractive
特にこだわりがなければこれを使うほうが楽
• 実際に使用されているマテリアルインスタンス
M_Sparrow_EyeRefractive_Inst
Sparrowって何?
Paragonの彼女
Eyeマテリアル:各部名称
• コメント等に英単語があるので簡単に解説
• Iris:虹彩
黒目の周りの模様
• Pupil:瞳孔
いわゆる黒目
• Sclera:強膜
いわゆる白目
• Limbus:角膜輪部/角膜縁
虹彩と白目の境目の部分
出典:
Wikipedia
Eyeマテリアル:Content Examples
• M_EyeRefractive
シェーディングモデルは当然Eye
複雑
関数1つ、Custom1つ
関数内にはCustom2つ
全部は説明できない
Eyeマテリアル:Content Examples
• ML_EyeRefraction
核心部の関数
機能は2つ
前眼房の屈折からUVを求める
虹彩マスクを求める
Eyeマテリアル:ML_EyeRefraction
• Iris UV Mask
全体UV上の虹彩のマスクを求める
テクスチャは白目と虹彩を分けている
合成時にこれを使用する
メッシュのUVは白目用
• IrisUVRadius
虹彩部分が最終UV座標に対してどの程
度のUVサイズになるか
• UV
メッシュのUV
• LimbusUVWidth
角膜輪部の幅をUV座標で指定
x:テクスチャブレンド幅
y:シェーディングブレンド幅
Eyeマテリアル:ML_EyeRefraction
• Refraction Direction
前眼房に侵入した光の屈折ベクトルを求める
• InternalIoR
前眼房のIoR
ほぼ水と同じ
外部のIoRは空気のものを使用
Customコード内部にマジックナンバー
• NormalW
ワールド空間の法線ベクトル
• CameraW
ワールド空間の視線ベクトル
Eyeマテリアル:ML_EyeRefraction
• 深度オフセット
前眼房の膨らみに対応する深度オフセットを入れている
平面で見ると虹彩部分が凹んでいるのがわかる
Eyeマテリアル:ML_EyeRefraction
• 出力Transparencyの計算は間違ってる?
上のSubtractが元のもの、下のDivideが修正したもの
Bへの入力は同じもの
Eyeマテリアルは半透明ではないので、現在は使用していない
多分今後も使用しない
Eyeマテリアル:M_EyeRefractive
• 黒目のサイズを変更しているCustomノード
黒目は虹彩テクスチャに描かれている
このサイズをスケール値で設定する
基本は縮小だが、拡縮どちらでも虹彩がゆが
むので注意
通常の虹彩ならほぼ気にならない
Eyeマテリアル:M_EyeRefraction
• UseEyeBuldge
BuldgeはBulgeのtypoと思われる
メッシュに前眼房の膨らみがあるならどちら
でもよさげ
結果にほぼ変化がない
メッシュが完全な球形ならTrue推奨
True False
Eyeマテリアル:少年に適用した結果
• 上がオリジナル、下がM_EyeRefraction
オリジナルは実は2つのマテリアルで構成
虹彩、白目の不透明マテリアル
屈折を表現する半透明マテリアル
半透明メッシュは膨らみあり
M_EyeRefractionは1つだけ
半透明メッシュに適用
不透明側は非表示
オリジナルはまつげが消える
加算合成が絡んでる?
右目(奥)の屈折
下の方が屈折の結果は正しく見える
眼力が違う
オリジナル
M_EyeRefaction
Eyeマテリアル:改造方法
• 各種パラメータの調整
瞳孔のサイズ、虹彩のサイズがメイン
生気のない目はラフネスを上げると良い
• 虹彩のテクスチャ
眼の色に合わせたテクスチャを用意する
ちょっと特殊な虹彩もあり
画像のようなものもできる
写○眼とかもうまくやれば作れるかも
Hairマテリアル
• Content Examplesにマテリアル例がある
M_Character_Hair
そのまま使うのは難しい
ただし参考にできる部分は多い
• TemporalAAの利用を推奨
特にヘアプレーンを使用する場合
板を複数枚重ねるタイプ
OpacityMaskで抜いた部分が特に汚くなる
Hairマテリアル:Content Examples
• パッと見は複雑だが、見た目ほど複雑ではない
そのままは使えないので重要な部分をピックアップ
• Scatter, Roughness, Backlitは定数
下手に変化させるより定数の方が扱いやすい
Backlitは廃止予定
• Tangent
髪の流れを設定する
重要
• Pixel Depth Offset (PDO)
実はとても重要
• Edge Mask
ポリゴンを水平に見た際のOpacityMask処理
• 各種ノイズ
OpacityMaskとPDOのノイズはTemporalAAを使うこ
とを意図している
Hairマテリアル:少年の髪を調整
• Tangent
Hairマテリアル:少年の髪を調整
• Tangent
髪の流れを指定するTangentMapを別途作成
髪の流れがタンジェント空間に対して一定ではなかったから
FlowMapと作り方は同じ
今回はSubstance Painterを使用
http://monsho.blog63.fc2.com/blog-entry-198.html
Tangentをそのまま使うか法線マップとの外積からBinormalを求め、再び外積をとってTangentに戻
す
TangentのZ値をノイジーにするならそのまま使っても問題なかった
TangentのZ値をノイジーに
Content Examplesと同様、-0.3~0.3の範囲内
LerpのAlphaには法線のZ値かラフネスマップの結果を使用
法線のZ値を加工した方が個人的には良かった
Hairマテリアル:少年の髪を調整
• Scatter
Hairマテリアル:少年の髪を調整
• Scatter
MinとMaxの間をラフネスマップの結果でLerpするようにした
ソリッドメッシュの場合は定数より良かった
定数ではちょっと綺麗すぎる
Fresnelを利用してエッジ部分のScatterが強くなるようにしてみた
効果は限定的でイマイチ
なくてもいいかも
Hairマテリアル:少年の髪を調整
• Roughness
Scatterと同様にMinとMaxを指定してLerp
Scatterと違ってそれほど効果はないので定数でも良かったかも
• Base Color
定数、もしくはオリジナルのカラーマップ
定数で十分な印象
調整もしやすい
• Pixel Depth Offset
地肌が見えてしまったりとあまり良い結果を得られない
ソリッドメッシュに対してはオススメできない
Hairマテリアル:少年の髪を調整
• 結果
オリジナル 調整後
Hairマテリアル:少年の髪を調整
• 結果
オリジナルはSubsurface Profileで作成されている
すこしNPR調
陰影が深い
調整後は艶がかなり出ている
ちょっと出すぎていて綺麗すぎる
しかし、あまりノイジーにし過ぎるとそれはそれでリアリティがなくなる
カメラから遠い場合はラフネスを下げた方が見栄えがいい
テクスチャ等、ちゃんと調整した方がいい
ソリッドメッシュ単体だと調整が難しい
Hairマテリアル:よりリアルにするために
• Sparrowさんに学ぶ
髪のメッシュは2段階
ベースとなる形状はDefaultLit
その上に薄くかぶせるようにベースと似た形状のHairマテリアル、OpacityMaskあり
HairマテリアルはContent Examplesにものに似ている
• 少年モデルにも適用してみた
髪メッシュをコピーして2重化
マテリアルは別に設定
薄くかぶせるようにするのはワールドポジションオフセットを使って法線方向に膨らませて対応
かぶせる方(ヘアラインメッシュ)はContent Examplesのものをほぼそのまま移植
TangentのみTangentMapを使用している
その他テクスチャの差替
Hairマテリアル:よりリアルにするために
• 結果
メッシュ2重
化
Hairマテリアルのみ
Hairマテリアル:よりリアルにするために
• 結果
2重化すると髪のボリューム感、束感が出る
しかし綺麗かと言われるとイマイチな感じ
硬い感じがする
Hairマテリアルのみは綺麗すぎるが、どちらがいいかと言われると…
OpacityMapを別途作成したが、これをもうちょっと綺麗にするといいかも
• Content Examplesのマテリアルとの違い
OpacityMaskにDitherを利用していない
ベースメッシュとPDOを使用している場合は不要
結果は少し変わってくるが、比較しないとわからない程度
TangentMapの使用
使用しているテクスチャの種類
OpacityMapはラフネスマップを調整して作成
Unique_Hair_Valueの代わりはラフネスマップ
Hairマテリアル:よりリアルにするために
• Pixel Depth Offsetの有無による違い
PDOを使用するとOpacityMaskのDitherは不要
深度テストの関係でベースモデルに遮られて非表示となるため
使用しないとヘアラインが平坦になる
PDO:OFFPDO:ON
Hairマテリアル:よりリアルにするために
• ベースメッシュをDefaultLitではなくHairマテリアルにしてみたらどうか?
髪束感が残りつつ綺麗になってる
ただし処理速度に注意
Hairのみ DefaultLit + Hair Hair + Hair
Hairマテリアル:ライトの問題について
• Hairシェーダでは法線が存在しない
髪のような細い糸状の物体では裏面があまり意味を成さない
しかし、髪が束になれば光の当たらない面も考慮する必要がある
法線が存在しないため、光の当たらない面がライト計算だけでは規定できない
• ではどうやって陰影を求める?
シャドウを利用する
光源がシャドウキャストをしない場合は光が透けてしまうので注意!
Hairマテリアル:ライトの問題について
• シャドウキャストしておけば問題ない?
シャドウマップの精度が問題になる
シャドウとして割り当てられるピクセル数が少ないと正しい遮蔽情報が得られない
ライトビルド前のStationaryLight、ライトビルドとは無関係なMovableLightは影響を受けやすい
StationaryLightはライトビルド後にオブジェクトごとのシャドウマップが作られるのでかなりマシ
MovableLightで綺麗に描画したい場合はオブジェクトごとに “Dynamic Inset Shadow”を有効にする
ただし重い
Stationary(ビルド前
)
Stationary(ビルド後
)
Movable
結論
• Content Examplesは偉大
製品に載っているアセットも含まれてたりする
新しいExampleが追加されてたらチェックしよう!
• シェーディングモデルが追加されても適切なマテリアルが作成できなければ意味がない
マテリアル側で対応しなければいけない部分も多い
Eyeマテリアルの屈折
HairマテリアルのPDO
など
Content Examplesだけだと不十分な場合もある
Hairメッシュの2重化
検証してみないとわからない
検証結果を公開すると喜ぶ人も多い
集合知でUE4を攻略していこう!

Weitere ähnliche Inhalte

Was ist angesagt?

[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~com044
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...エピック・ゲームズ・ジャパン Epic Games Japan
 
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DDマテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DDエピック・ゲームズ・ジャパン Epic Games Japan
 
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -historia_Inc
 
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMERエピック・ゲームズ・ジャパン Epic Games Japan
 

Was ist angesagt? (20)

60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編
 
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
 
UE4におけるレベル制作事例
UE4におけるレベル制作事例  UE4におけるレベル制作事例
UE4におけるレベル制作事例
 
UE4の色について v1.1
 UE4の色について v1.1 UE4の色について v1.1
UE4の色について v1.1
 
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
 
もっとNiagaraを楽しもう!~UE4.25での作例と解説~ (UE4 VFX Art Dive)
もっとNiagaraを楽しもう!~UE4.25での作例と解説~ (UE4 VFX Art Dive)もっとNiagaraを楽しもう!~UE4.25での作例と解説~ (UE4 VFX Art Dive)
もっとNiagaraを楽しもう!~UE4.25での作例と解説~ (UE4 VFX Art Dive)
 
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~
 
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
 
猫でも分かる UE4の新しいサンプル「Action RPG」について
猫でも分かる UE4の新しいサンプル「Action RPG」について猫でも分かる UE4の新しいサンプル「Action RPG」について
猫でも分かる UE4の新しいサンプル「Action RPG」について
 
UE4におけるエフェクトの基本戦略事例 後半
UE4におけるエフェクトの基本戦略事例  後半UE4におけるエフェクトの基本戦略事例  後半
UE4におけるエフェクトの基本戦略事例 後半
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
 
Mask Material only in Early Z-passの効果と仕組み
Mask Material only in Early Z-passの効果と仕組みMask Material only in Early Z-passの効果と仕組み
Mask Material only in Early Z-passの効果と仕組み
 
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DDマテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
 
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
 
UE4におけるエフェクトの基本戦略事例 前半
UE4におけるエフェクトの基本戦略事例  前半UE4におけるエフェクトの基本戦略事例  前半
UE4におけるエフェクトの基本戦略事例 前半
 
猫でも分かる Control Rig UE4.25 版
猫でも分かる Control Rig UE4.25 版猫でも分かる Control Rig UE4.25 版
猫でも分かる Control Rig UE4.25 版
 
猫でも分かるUE4のポストプロセスを使った演出・絵作り
猫でも分かるUE4のポストプロセスを使った演出・絵作り猫でも分かるUE4のポストプロセスを使った演出・絵作り
猫でも分かるUE4のポストプロセスを使った演出・絵作り
 
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
 
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
 
UE4における大規模背景制作事例 描画特殊表現編
UE4における大規模背景制作事例 描画特殊表現編UE4における大規模背景制作事例 描画特殊表現編
UE4における大規模背景制作事例 描画特殊表現編
 

Kiteの少年と学ぶUE4.11の新シェーダ