117
第 2 第 Unreal Engine4 第第第 UE4 第第第第第第第第第第第第 2 第第第

UE4 パーティクルエフェクトのマテリアル(前半)

Embed Size (px)

DESCRIPTION

第2回 Unreal Engine4 勉強会で講演した際の前半パート 『パーティクルエフェクトのマテリアル』の資料になります。 (実演と口頭での解説をカバーするために追記しています) 講演で扱ったマテリアルの中で気になるノードがあれば、下記マニュアルを参照すると使用事例とともに解説があるのでぜひ一読してみてください。 https://docs.unrealengine.com/latest/JPN/Engine/Rendering/Materials/ExpressionReference/index.html すみません、誤解を招く部分が後から見つかっています。 TextureObjectに関しては、マテリアルファンクションのインプットノードのTexture2Dタイプに指せるノード‥というのが正確だと思います。 ついでに言うと、マテリアルファンクション内でのTextureSampleノードには「Tex」という入力ポートがあり、そこに指せるのがTexture2Dのみになります(多分)。 ちなみにスライドの元はパワポ書類ですが、SlideShareで文字のフチや背景ロゴといった半透明表示が失われてしまい、とても見難い感じになっていますがご了承ください。

Citation preview

Page 1: UE4 パーティクルエフェクトのマテリアル(前半)

第 2 回 Unreal Engine4 勉強会

UE4 のパーティクルエフェクト2 本立て!

Page 2: UE4 パーティクルエフェクトのマテリアル(前半)

◆ はじめに

Page 3: UE4 パーティクルエフェクトのマテリアル(前半)

◆ はじめに

• とあるグラフィックデザイナーです

• エフェクト作ってます

• UE4 分からないことだらけです

• 情報交換してくれる人モトム!

Page 4: UE4 パーティクルエフェクトのマテリアル(前半)

初級~中級くらい ( ? )

◆ はじめに

(多少はマテリアルを触ったことがある人向けです)

Page 5: UE4 パーティクルエフェクトのマテリアル(前半)

資料はアップ予定ないです

◆ はじめに

(ほとんど実演ですスミマセン)

Page 6: UE4 パーティクルエフェクトのマテリアル(前半)

ハイペースで進行します

◆ はじめに

(画面の写真とか撮ってもらっても大丈夫です)

Page 7: UE4 パーティクルエフェクトのマテリアル(前半)

間違ってたらごめんなさい

◆ はじめに

(あとでコッソリ教えてください)

Page 8: UE4 パーティクルエフェクトのマテリアル(前半)

◆ アジェンダ

Page 9: UE4 パーティクルエフェクトのマテリアル(前半)

第一部 パーティクルエフェクトのマテリアル

第二部 パーティクルへのライティング

◆ アジェンダ

50分

50分

Page 10: UE4 パーティクルエフェクトのマテリアル(前半)

パーティクルエフェクトのマテリアル

◆ 第一部

Page 11: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Page 12: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

ノード

ベースマテリアルノード

つなぐ!

Page 13: UE4 パーティクルエフェクトのマテリアル(前半)

基本部分は解説サイトがあります

◆ マテリアルの基本構成

(まずはこちらを読んでみてください)

Page 14: UE4 パーティクルエフェクトのマテリアル(前半)

『ゲームエフェクトデザイナーのブログ (UE4) 』

http://effect.hatenablog.com/

Page 15: UE4 パーティクルエフェクトのマテリアル(前半)

http://monsho.blog63.fc2.com/

『もんしょの巣穴 blog 』

Page 16: UE4 パーティクルエフェクトのマテリアル(前半)

https://trello.com/b/QClfo5l3/ue4

『背景アーティスト UE4 ビギナー勉強会』

Page 17: UE4 パーティクルエフェクトのマテリアル(前半)

http://envgameartist.blogspot.jp/

『背景アーティストのぶろぐ』

Page 18: UE4 パーティクルエフェクトのマテリアル(前半)

今流行りの物理ベースの

マテリアルってどう設定するの?

◆ マテリアルの基本構成

Page 19: UE4 パーティクルエフェクトのマテリアル(前半)

A . まずは公式ページ読むべし

◆ マテリアルの基本構成

Page 20: UE4 パーティクルエフェクトのマテリアル(前半)

  UE4 公式マニュアル『物理ベースのマテリアル』

https://docs.unrealengine.com/latest/JPN/Engine/Rendering/Materials/PhysicallyBased/index.html

Page 21: UE4 パーティクルエフェクトのマテリアル(前半)

  UE4 公式マニュアル『マテリアル入力』

https://docs.unrealengine.com/latest/JPN/Engine/Rendering/Materials/MaterialInputs/index.html

Page 22: UE4 パーティクルエフェクトのマテリアル(前半)

実際にどう設定していけば良いかは

こちらの解説が分かりやすい!

◆ マテリアルの基本構成

Page 23: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

SQUARE-ENIX Open Conference『リアルタイムワークフロー実演解説』http://www.ustream.tv/recorded/27215048

Page 24: UE4 パーティクルエフェクトのマテリアル(前半)

拡散反射・鏡面反射・金属と非金属の違い・

フレネル・ラフネス

‥このあたりが分かってくると、次のような

記事も徐々に理解できる部分が増えてきます

◆ マテリアルの基本構成

Page 25: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

『カプコン独自のゲームエンジン「 Panta Rhei 」と

「 deep  

  down 」の技術的詳細に迫る CEDEC セッションレポート』

  http://www.4gamer.net/games/032/G003263/20140911067/

Page 26: UE4 パーティクルエフェクトのマテリアル(前半)

http://d.hatena.ne.jp/hanecci/

『 hanecci’s Blog』

Page 27: UE4 パーティクルエフェクトのマテリアル(前半)

本題

エフェクトでよく扱うノードの紹介

◆ マテリアルの基本構成

Page 28: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Constant- 定数 -

Page 29: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

• Constant

• Constant 2 Vector

• Constant 3 Vector

• Constant 4 Vector

(各ショートカットキーを押しながら左クリックでノードを追加できます)

Page 30: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Constant 3 Vector

Constant

Constant

(数字を各入力ポートに繋いでいくだけでも立派なマテリアル!)

Page 31: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Add , Multiply- 足し算 と 掛け算 -

Page 32: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

• Add

• Multiply

Page 33: UE4 パーティクルエフェクトのマテリアル(前半)

テクスチャに色を付け足すなどは

一般的に Multiply( 乗算 ) で行います

◆ マテリアルの基本構成

「なんで?」っていう方は下記の記事を読んでみてください

『 [UDK] 色の基本的な考え方』http://maruta.be/effect/106

Page 34: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Multiply

( A と B に入力された情報を掛け合わせます)

Page 35: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Multiply

Page 36: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Multiply

Page 37: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Divide , Power- 割り算 と 掛け算 -

Page 38: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

• Divide

• Power

Page 39: UE4 パーティクルエフェクトのマテリアル(前半)

Power( 累乗 ) はコントラストの調整によく利用しま

雲模様テクスチャに Power をかけて Opacity に繋ぐ

ことで徐々に千切れるように消える表現も可能!

◆ マテリアルの基本構成

Page 40: UE4 パーティクルエフェクトのマテリアル(前半)

つまりこんな感じ

◆ マテリアルの基本構成

Page 41: UE4 パーティクルエフェクトのマテリアル(前半)

Power( 累乗 ) は演算系のノードの中では

処理が重めと聞くので控えたくなりますが

実際にどれくらい重いのかよく分かりません‥

◆ マテリアルの基本構成

Page 42: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Texture Sample- テクスチャの参照 -

Page 43: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

• Texture Sample … T

Page 44: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Page 45: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

似たような3つの違いは?

Page 46: UE4 パーティクルエフェクトのマテリアル(前半)

基本的に Texture Sample で OK だけど

マテリアルファンクション (関数 ) の入力ポートに

繋ぐことができるのは Texture Object

◆ マテリアルの基本構成

Page 47: UE4 パーティクルエフェクトのマテリアル(前半)

Particle SubUV はアニメパターンを敷き詰めた

テクスチャをパーティクルでパターン再生する

時に使うのだけど、それはまた後に解説します

◆ マテリアルの基本構成

Page 48: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

One Minus- 値の反転 -

Page 49: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

• One Minus … O

Page 50: UE4 パーティクルエフェクトのマテリアル(前半)

テクスチャや RGB カラーを反転するのに便利

0 ~ 1 の範囲でクランプされている値に対して使用

◆ マテリアルの基本構成

Page 51: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Particle Color- Cascade から色を取得 -

Page 52: UE4 パーティクルエフェクトのマテリアル(前半)

エフェクトツール「 Cascade 」で色を制御したい時の

最もベーシックな構成

◆ マテリアルの基本構成

Page 53: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Vertex Color- 頂点カラーを取得 -

Page 54: UE4 パーティクルエフェクトのマテリアル(前半)

さらに頂点カラーの色も加えたい時の

ベーシックな構成

◆ マテリアルの基本構成

Page 55: UE4 パーティクルエフェクトのマテリアル(前半)

ここでちょっとマテリアルファンクションについて

Page 56: UE4 パーティクルエフェクトのマテリアル(前半)

プロジェクトで何 100 と増えていくマテリアルに

毎回同じノードを組んでいくのはとても非効率的!

◆ マテリアルファンクションについて

Page 57: UE4 パーティクルエフェクトのマテリアル(前半)

そこで新規マテリアルファンクションを作成して

入力ポートと出力ポートを用意

◆ マテリアルファンクションについて

Page 58: UE4 パーティクルエフェクトのマテリアル(前半)

そしてマテリアル内に放り込んで使用します

さっきのマテリアル構成がこんなにスッキリ!

後から中身を拡張したりもできる

◆ マテリアルファンクションについて

Page 59: UE4 パーティクルエフェクトのマテリアル(前半)

話を元に戻して‥

Page 60: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Texture Coordinate , Panner- UVのタイリングとスクロール -

Page 61: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

• Tex Coord

• Panner

Page 62: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Texcord で U と V のタイリング数を指定

Panner で U と V のスクロール速度を指定

Page 63: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Dynamic Parameter- Cascade から値を取得する -

Page 64: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

超シンプルな例

Dynamic Parameter をメタリックに繋いだので

Cascade からメタリックの値を自由に制御可能にな

Page 65: UE4 パーティクルエフェクトのマテリアル(前半)

エフェクトでは UV スクロールを

カーブエディタでコントロールしたい時や

UV の初期値をランダムにしたい時などに利用

◆ マテリアルの基本構成

Page 66: UE4 パーティクルエフェクトのマテリアル(前半)

その他、色んな場面で使いたいのだけど

残念ながら現状は 1 マテリアルにつき

Dynamic Parameter の出力ポートは 4つまで

という制限がある ( ノードを複数置いてもダメ )

◆ マテリアルの基本構成

Page 67: UE4 パーティクルエフェクトのマテリアル(前半)

UV スクロールのコントロールかつ

UV の初期値をランダムにする構成は

説明が大変なのでここでは割愛

◆ マテリアルの基本構成

Page 68: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Particle Sub UV- テクスチャのパターンアニメーション -

Page 69: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

こういうパターンアニメをパーティクルで行う場合に

使うノードですが‥

Page 70: UE4 パーティクルエフェクトのマテリアル(前半)

実は Texture Sample でも SubUV アニメは可能

では Particle SubUV を使うメリットは‥?

◆ マテリアルの基本構成

Page 71: UE4 パーティクルエフェクトのマテリアル(前半)

Cascade の Required モジュールで SubUV アニメーションの

補間方法の設定「 Linear Blend 」が利用できる

つまりパターン切り替えをクロスフェードできる

◆ マテリアルの基本構成

Page 72: UE4 パーティクルエフェクトのマテリアル(前半)

Linear Blend はパターン切り替え速度を遅くしても

滑らかにアニメーションして見える

しかもゲームスピードがスロー再生中でも問題ない

◆ マテリアルの基本構成

Page 73: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Depth Fade- いわゆるソフトパーティクル -

Page 74: UE4 パーティクルエフェクトのマテリアル(前半)

一言で言えば背景とのめり込みを緩和できる

◆ マテリアルの基本構成

Page 75: UE4 パーティクルエフェクトのマテリアル(前半)

使い方はカンタン

Opacity に繋ぐだけ

◆ マテリアルの基本構成

Page 76: UE4 パーティクルエフェクトのマテリアル(前半)

正確には背後の不透明オブジェクトとの距離が

近いほどピクセルが透明になる処理なので‥

◆ マテリアルの基本構成

Page 77: UE4 パーティクルエフェクトのマテリアル(前半)

背景に突き刺さったところにフェードが入る訳では

ないので注意 (図のように壁際で透明になってしま

う )

◆ マテリアルの基本構成

Page 78: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Liner Interpolate- 直線補間 -

Page 79: UE4 パーティクルエフェクトのマテリアル(前半)

Alpha ポートに入力された 0 ~ 1 の値に応じて

0 に近いほど A ポート、 1 に近いほど B ポートの

値を出力するノードになります

◆ マテリアルの基本構成

Page 80: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Page 81: UE4 パーティクルエフェクトのマテリアル(前半)

色んな場面で利用できます

この後にも登場します

◆ マテリアルの基本構成

Page 82: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Fresnel- フレネル反射 -

Page 83: UE4 パーティクルエフェクトのマテリアル(前半)

フレネル反射とは?

川などの水面を真上から覗くと水底が見えるけど

横から見ると景色が映り込んで水底が見えないように

視点の入射角によって光の反射率が変わる光学現象

◆ マテリアルの基本構成

Page 84: UE4 パーティクルエフェクトのマテリアル(前半)

このような感じで Lerp ノードで使用することが多い

◆ マテリアルの基本構成

Page 85: UE4 パーティクルエフェクトのマテリアル(前半)

Fresnel ノードは視点方向とモデルの法線が

正対すると 0 の値を‥

90度直角になると 1 の値を出力します

◆ マテリアルの基本構成

Page 86: UE4 パーティクルエフェクトのマテリアル(前半)

すると (主に )輪郭部を光らせたり

(主に )輪郭部を透明にするといった表現ができます

◆ マテリアルの基本構成

Page 87: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Bump Offset- 擬似的に視差をつける ( パララックスマップ ) -

Page 88: UE4 パーティクルエフェクトのマテリアル(前半)

実際のモデル表面よりもマテリアルが手前‥

または奥にあるかのように見せる

◆ マテリアルの基本構成

Page 89: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

構成例

Page 90: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

下図のような構成にすることで

二重スクロールのような表現も可能

Page 91: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

Screen Position- 平行投影 -

Page 92: UE4 パーティクルエフェクトのマテリアル(前半)

カメラから平行投影したような表現が可能

◆ マテリアルの基本構成

Page 93: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

構成例

Page 94: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

モデルの角度や凹凸に関係なく

テクスチャが投影されています

Page 95: UE4 パーティクルエフェクトのマテリアル(前半)

ちょっとだけ応用編

Page 96: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアル応用編

Near Camera Fading- カメラめり込み対策のフェードアウト -

Page 97: UE4 パーティクルエフェクトのマテリアル(前半)

Pixel Depth ノードを使って

カメラに近付くほど透明にする構成です

UE4 の wiki にチュートリアルがあります

◆ マテリアルの基本構成

https://wiki.unrealengine.com/Visual_Effects:_Lesson_03_A:_Near_Camera_Fadin

g

Page 98: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

構成例

Page 99: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアル応用編

Vertex Normal / WS- ワールドの頂点法線を取得してアレコレ -

Page 100: UE4 パーティクルエフェクトのマテリアル(前半)

法線が上向きの面に雪の質感を追加したり

法線が下向きの面に水面の反射を追加したり

‥ といった表現が可能です

『背景アーティストのぶろぐ』で詳しい解説があります

◆ マテリアルの基本構成

http://envgameartist.blogspot.jp/2014/10/pixelnormalwsvertexnormalws.html

Page 101: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

構成例

上面 ⇒

下面 ⇒

Page 102: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

構成例

Page 103: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルインスタンス

Page 104: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルインスタンス

1つのマテリアル構成を元に

バージョン違いが沢山必要な時‥

Page 105: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルインスタンス

この構成で基本色のバリエーションが欲しい

Page 106: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルインスタンス

この構成で基本色のバリエーションが欲しい

Page 107: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルインスタンス

そこでとても便利なのが

マテリアルインスタンス!

Page 108: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルインスタンス

元のマテリアルの一部の設定を

自由に変更できるようにすることを

パラメータ化すると言います

Page 109: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルインスタンス

• 色違いのバリエーション

• テクスチャを差し替えたバリエーション

• 片面、両面

• アルファ合成、加算合成

• ソフトパーティクルあり、なし

Page 110: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルの基本構成

• Scaler Parameter

• Vector Parameter

Page 111: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルインスタンス

マテリアルインスタンスを使う

メリットは?

Page 112: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルインスタンス

• シェーダーの再コンパイルを最低限にできる

• ベースとなるマテリアルの一括修正が効く

• 編集がとてもシンプル

• ゲーム実行中に動的にパラメータを変更できる

Page 113: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルインスタンス

チームで詳しい人がマテリアルを作成して

他の人はインスタンスだけを扱う

‥ といった運用も可能

スタッフ全員が自由にマテリアルを組むと

品質や描画コストの統一や管理面で収集が

つかなくなる危惧もあるので、その対策にもなる

Page 114: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルパラメータコレクション

Page 115: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルパラメータコレクション

パラメータを集めたもの

かなり計画的に使う必要がありそう

Page 116: UE4 パーティクルエフェクトのマテリアル(前半)

◆ マテリアルインスタンス

エフェクトではどんな時に使えそうか?

例えば煙の色をレベルの明るさや色に応じて

一括でコントロールしたい時とか使えそう?

Page 117: UE4 パーティクルエフェクトのマテリアル(前半)

第一部はこれで終了