ファンタジー背景グラフィック制作事例【UE4 Environment Art Dive 2019】

31.3K Views

December 18, 19

スライド概要

講演動画はこちら
https://www.youtube.com/watch?v=JBcwRoIwmWo

スライドデータはこちらからダウンロード可能です
https://epicgames.box.com/s/kuul0q6igdnukfayyjmlixxkb081vnhz

発表者: 橋本竜さま(プラチナゲームズ株式会社)
本スライドは2019年12月15日に行われた勉強会「 UE4 Environment Art Dive」の講演資料となります。

profile-image

Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

UE4 Environment ArtDive 「ファンタジー背景グラフィック制作事例」

2.

自己紹介 橋本 竜 プラチナゲームズ株式会社 背景アーティスト 普通の背景業務から、表現の検証など色々やってます。

3.

本講演の概要 個人制作として作った背景をベースに 表現的な工夫や、制作中のちょっとした検証、絵作りの際に考えたこと などを簡単に解説させていただきます。

4.

おことわり ・講演内容に関しては、完全に個人の趣味として作ったものになります。 ・制作時のバージョンは4.20を使用しています。 ・描画負荷に関しては 「作業中に重くなるのも嫌だし、適当にLODとかカリングだけ入れとくか...」 くらいの温度感です。

5.

アジェンダ ・作品について ・草のバリエーション作成 ・アセットの馴染ませ検証 ・その他シェーダー小ネタ ・画作りの話 ・Q&A

6.

アジェンダ ・作品について ・草のバリエーション作成 ・アセットの馴染ませ検証 ・その他シェーダー小ネタ ・画作りの話 ・Q&A

13.

ざっくり構造解説 ・地面はランドスケープで作成 ベースのheightmapは Worldmachineで作成 UE4上でスカルプトして 調整しています

14.

ざっくり構造解説 ・アセットはスカルプトして Substance Painterで テクスチャ作成 Smart Materialで効率化

15.

ざっくり構造解説 ・岩山はアセットの組み合わせ

16.

ざっくり構造解説 ・天球はフリーのHDRIを使用 http://noemotionhdrs.net/hdrevening.html

17.

アジェンダ ・作品について ・草のバリエーション作成 ・アセットの馴染ませ検証 ・その他シェーダー小ネタ ・画作りの話 ・Q&A

18.

広い平面をサクッと良い感じにしたい... ・屋外の広いエリアを作る際に要素として一番大きいのは地面 ・アセットの種類を一杯作るのはしんどい ・広い平面の雰囲気を一気に調整できるようにしたい ⇒草のシェーダーでなんか試してみよう

19.

シェーダー効果オフ

20.

シェーダー効果オン

21.

解説

22.

草のバリエーション作成 ・モデルについて 草のモデルの法線は半球から転写

23.

草のバリエーション作成 ・色ムラ具合のリファレンス

24.

手っ取り早くランダムカラーを入れてみる ⇒ SpeedTreeColorVariation

26.

草のアセットを配置しただけの状態

27.

Speed Tree Color Variation を追加

28.

ん~...

29.

草のバリエーション作成 ・色ムラは出るが、全体的に均質に入る →色ムラの出し方をコントロールしたい ・なんか不自然な色が混ざる →発生する色をコントロールしたい シェーダーの方針 ⇒色ムラはマスクで 色味はグラデーションマップでコントロールする

30.

草のバリエーション作成 ・グラデーションマップとは グレースケールのどの階調にどんな色を割り当てるかを指定するマップ

31.

草のバリエーション作成 GradientMap_Multi という マテリアルファンクションがあるので こちらを使っていきます

32.

草のバリエーション作成 グラデーションマップ用のテクスチャを用意します ・横のピクセル数が色数 ・縦のピクセル数がパターンの数になります 今回は128×10ピクセルで作成しました(10パターン) 一列で1パターン

33.

草のバリエーション作成 色ムラ用のマスクテクスチャを用意します これで色ムラの分布を制御します 最終的に良い感じならどんな模様でもOKです

34.

草のバリエーション作成 これらの組み合わせで生成した色の分布を 上から投影して色ムラを作るイメージです

36.

Base Color TEX Specular調整 Normal強さ調整 風揺れ処理 SSS Lerpのマスク グラデーションマップでのカラーバリエーション Speed Tree Color Variation 色味調整

37.

Base Color TEX Specular調整 Normal強さ調整 風揺れ処理 SSS Lerpのマスク グラデーションマップでのカラーバリエーション Speed Tree Color Variation 色味調整

39.

パターンの切り替え マスクの値をオフセット 全体の色味調整 Landscapeのサイズに合わせて投影 マスクテクスチャ 何パターン使うかを指定 グラデーションマップテクスチャ

40.

パターンの切り替え マスクの値をオフセット ParameterCollectionで 複数アセットの値を一括調整 全体の色味調整

41.

パターンの切り替え マスクの値をオフセット アセットごとに個別で調整したい場合は スイッチで切り替えできる

43.

草のバリエーション作成 堆積マップ的なやつ

45.

アジェンダ ・作品について ・草のバリエーション作成 ・アセットの馴染ませ検証 ・その他シェーダー小ネタ ・画作りの話 ・Q&A

46.

アセットの馴染ませ検証 配置したアセットを地面と馴染ませる手法について 製作中にいくつか試してみたものを簡単に解説します ・DistanceField / Precomputed AO Mask を使用したマテリアルブレンド ・Dither + Pixel Depth Offset を使用した擬似半透明ブレンド

47.

アセットの馴染ませ検証 ・DistanceField / PrecomputedAO を使用したマテリアルブレンド

48.

アセットの馴染ませ検証 ・下準備 Distance Fieldを有効にする https://docs.unrealengine.com/ja/Engine/Rendering/LightingAndShadows/MeshDistanceFields/index.html Precomputed AO Maskを使用する(ページの一番下) https://docs.unrealengine.com/ja/Engine/Rendering/Materials/ExpressionReference/Constant/index.html

49.

アセットの馴染ませ検証 ・下準備 Distance Fieldを使用するメッシュは DetailsのAffect Distance Field Lightingの チェックをはずす

50.

アセットの馴染ませ検証 ・岩のマテリアルに地面の草のマテリアルをブレンドするためのマスクを生成 DistanceField Precomputed AO mask

51.

DistanceFieldでのマスク生成 アセットの馴染ませ検証 ・岩のマテリアルに地面の草のマテリアルをブレンドするためのマスクを生成します

52.

DistanceToNearestSurfaceで取得した値を元にマスク生成 コントラスト調整 ブレンド境界にノイズを追加 アセットの馴染ませ検証 ・岩のマテリアルに地面の草のマテリアルをブレンドするためのマスクを生成します

53.

Precomputed AO Mask アセットの馴染ませ検証 ・岩のマテリアルに地面の草のマテリアルをブレンドするためのマスクを生成します

54.

Distance Field Distance Field と Precomputed AO どちらをマスクとして使うか スイッチで切り替え Precomputed AO アセットの馴染ませ検証 ・岩のマテリアルに地面の草のマテリアルをブレンドするためのマスクを生成します

55.

草のマテリアル 岩のマテリアル マスク マテリアルブレンド アセットの馴染ませ検証 ・岩のマテリアルに地面の草のマテリアルをブレンドするためのマスクを生成します

56.

アセットの馴染ませ検証 ・ブレンド結果

57.

アセットの馴染ませ検証 ・ブレンド結果 色味は馴染んでいるが シェーディングが馴染んでいない

58.

アセットの馴染ませ検証 ・ブレンド結果 色味は馴染んでいるが シェーディングが馴染んでいない Base Color

59.

アセットの馴染ませ検証 ・ブレンド結果 色味は馴染んでいるが シェーディングが馴染んでいない Detail Lighting

60.

アセットの馴染ませ検証 ・ブレンド結果 色味は馴染んでいるが シェーディングが馴染んでいない Normal

61.

アセットの馴染ませ検証 ・ブレンド結果 色味は馴染んでいるが シェーディングが馴染んでいない ⇒ブレンド部分の法線を調整する Normal

62.

アセットの馴染ませ検証 ・地形の法線をどう取得するか... 今回は LandscapeのNormalテクスチャを用意し アセット側のマテリアルで参照することに

63.

アセットの馴染ませ検証 ・LandscapeのNormalテクスチャ作成 Heightmapをエクスポートして

64.

アセットの馴染ませ検証 ・LandscapeのNormalテクスチャ作成 Heightmapをエクスポートして Substance DesignerでNormalを作成

65.

アセットの馴染ませ検証 ・LandscapeのNormalテクスチャ作成 ・Height to Normal World Unitsノードの場合 Surface Size = 512 Height Depth = 512 ・Normal ノードの場合 intensity = 256 Substance Designer UE4

66.

Landscapeのノーマル World SpaceからTangent Spaceに変換 Landscapeのワールド座標に合わせて投影 Normalの強さ調整 アセットの馴染ませ検証 ・岩のマテリアルに地面の草のマテリアルをブレンドするためのマスクを生成します

67.

アセットの法線 Distance Field のマスク 法線のブレンド率調整(デバッグ) アセットの法線と地面の法線をブレンド 地面の法線 アセットの馴染ませ検証 ・岩のマテリアルに地面の草のマテリアルをブレンドするためのマスクを生成します

68.

アセットの馴染ませ検証 ・法線ブレンドの結果

69.

アセットの馴染ませ検証 ・法線ブレンドの結果

70.

アセットの馴染ませ検証 ・馴染みました

71.

アセットの馴染ませ検証 ・馴染みました

74.

アセットの馴染ませ検証 ・欠点 1. 地面側のマテリアルが複数になると 対応できない... 2. Landscapeの形状を変更するたびに Normalのテクスチャを更新する必要がある

75.

アセットの馴染ませ検証 ・Dither + Pixel Depth Offset を使用した擬似半透明ブレンド

76.

アセットの馴染ませ検証 ・Pixel Depth Offset Dither TemporalAAに オフセット値を掛けて Pixel Depth Offsetに繋ぐだけ。

77.

アセットの馴染ませ検証 ・Pixel Depth Offset オフセット値を大きくしていくと…

78.

アセットの馴染ませ検証 ・Pixel Depth Offset なんか暗くなる…

79.

アセットの馴染ませ検証 ・Pixel Depth Offset 自分の影が透けて暗く見えている

80.

アセットの馴染ませ検証 ・Pixel Depth Offset Cast Shadowをオフにすると解消

81.

アセットの馴染ませ検証 ・Pixel Depth Offset 地面のマテリアルに左右されない

83.

アジェンダ ・作品について ・草のバリエーション作成 ・アセットの馴染ませ検証 ・その他シェーダー小ネタ ・画作りの話 ・Q&A

84.

その他シェーダー小ネタ ・岩のシェーダー小ネタ

85.

その他シェーダー小ネタ ・岩のシェーダー小ネタ その1 岩に関しては結構大きめの物が多いので ディテールを補完する処理を入れています

86.

その他シェーダー小ネタ ・岩のシェーダー小ネタ その1 ユニークのテクスチャ

87.

その他シェーダー小ネタ ・岩のシェーダー小ネタ その1 ユニークのテクスチャ + ディテールノーマル追加

88.

その他シェーダー小ネタ ・岩のシェーダー小ネタ その1 ユニークのテクスチャ + ディテールノーマル追加 + ディテールノーマルの溝に色

89.

その他シェーダー小ネタ ・岩のシェーダー小ネタ その1 ユニークのテクスチャ + ディテールノーマル追加 + ディテールノーマルの溝に色

90.

その他シェーダー小ネタ ・岩のシェーダー小ネタ その1 ユニークのテクスチャ + ディテールノーマル追加 + ディテールノーマルの溝に色

91.

その他シェーダー小ネタ ・岩のシェーダー小ネタ その1 Detail Tiling オブジェクトのスケールに応じて タイリング数に補正がかかる

93.

その他シェーダー小ネタ ・岩のシェーダー小ネタ その2 Random Tint Object Positionから0~1の乱数を生成し マスクとして使用する

95.

アジェンダ ・作品について ・草のバリエーション作成 ・アセットの馴染ませ検証 ・その他シェーダー小ネタ ・画作りの話 ・Q&A

97.

構図の方針

98.

構図の方針 手前から奥にかけてこんな感じの流れを意識して構成しています

99.

構図の方針 地形の大きな流れをこんな感じで意識しながらレイアウトしています

100.

ライティングの方針 高地の澄んだ感じが出したいので、あまりフォグで空気感を曇らせないように構成していく

101.

ライティングの方針 空気遠近だけに頼らなくても、明暗の対比があると手前と奥が認識できる

102.

ライティングの方針 対比の弱い部分は、背景にフォグシートを敷いてやると手前と奥の切り分けができる

104.

平行光源が全域に当たっている状態

105.

開けた地形に影を落とす要素として、雲の嘘影を利用 明るい領域、暗い領域が大きな塊としてグルーピングできるので画面がまとまりやすい

106.

明暗対比の弱い場所や、前後の切り分けを強調したい場所などにフォグシートを配置

107.

明暗対比の弱い場所や、前後の切り分けを強調したい場所などにフォグシートを配置

108.

明暗対比の弱い場所や、前後の切り分けを強調したい場所などにフォグシートを配置

109.

明暗対比の弱い場所や、前後の切り分けを強調したい場所などにフォグシートを配置

112.

Q&A

113.

参考資料 ・80lv https://80.lv/articles/creating-realistic-virtual-landscapes/ ・Polycount https://polycount.com/discussion/181140/unreal-4-terrain-blending-tool-inspired-by-star-wars-battlefront https://polycount.com/discussion/183365/tips-tutorials-tricks-ue4-alirezas-art-blog#latest ・その他、KiteDemoやUnreal Tournamentの色々なマップなど

114.

素材 ・HDRI http://noemotionhdrs.net/hdrevening.html ・BGM https://www.bensound.com/

115.

ご清聴ありがとうございました