Slide 1

Slide 1 text

Unityとアセットツールで学ぶ 「絵づくり」の基礎 ライティング 虎の巻 ユニティ・テクノロジーズ・ジャパン合同会社 コミュニティエバンジェリスト 小林信行 2016/07/10 Sun @Unity道場 08

Slide 2

Slide 2 text

絵づくり講座・虎の巻では 実践的なテクニックを 扱います! •  『絵づくり講座』本編のほうはどうでしたでしょうか? こちらの『絵づくり講座』虎の巻では、本編での考え方を元に 現場ですぐに役立つ実践的なテクニックについて扱っていこうと思います。

Slide 3

Slide 3 text

最低限チェックしておきたいUnityの設定 •  Edit>Preference>GI Cacheより、GIキャッシュのサイズ  ⇒ベイクスピードに直結します •  File>Project Settings>Quality  ⇒ディレクショナルライトの影の品質他に影響します •  Main CameraのInspector  ⇒HDRはONになってる? •  File>Build Settings>Player Setting  ⇒カラースペース及びレンダリングパスの設定

Slide 4

Slide 4 text

最低限チェックしておきたいUnityの設定 •  GI Cacheのサイズ(Maximum Cache Size)を大きめ、 かつSSD等の高速のドライブに設定する •  影の形や光の差し込む形が重要な時は、 Shadow ProjectionをClose Fitにする。無視できるならStable Fitで。 •  Main CameraのHDRにチェックを入れる (Anti AliasingをDisabledにする) •  Color SpaceをLinearにする。※ほぼPC/コンソール向けの設定。 •  Rendering PathをDeferredにする。※ほぼPC/コンソール向けの設定。

Slide 5

Slide 5 text

3DCGで使われる「ライト」 の特性とは? •  3DCGで使われる「ライト」オブジェクトは、現実世界のライトとはかなり違った性質を持っています。 そのことを改めて押さえておきましょう。

Slide 6

Slide 6 text

3DCGで使われる「ライト」の特性 •  「ライト」自体はレンダリングしても光らない。 「ライト」はそれ以外のオブジェクトを「照らす」役割しかしない。 •  オブジェクトを「照らす」とは、この場合、そのライトによって照らされる範囲、 影になる範囲を特定することである。 •  照らす対象や影を落とす対象を選択したり、そもそも影を落とさないような コントロールもできる。 •  ライトの物理的法則(エネルギー保存の法則や逆二乗の法則)に 従わないライトも設定することができる。 •  3DCGでは、「光っていること」と「照らしていること」には、直接関係はない。

Slide 7

Slide 7 text

硬いライト/柔らかいライト •  ライトには、その光質に応じて、「硬いライト」「柔らかいライト」というものがあります。 それらを使い分けることで、マテリアルの質感を引き出すことができます。

Slide 8

Slide 8 text

硬いライト/柔らかいライト •  「硬いライト(光)/柔らかいライト(光)」という言葉は、スタジオ撮影のライティ ング技法でよく使われる言葉。主に光質を差し、ソフトネスとも呼ばれる。 •  「硬いライト」とは、直進性のある光(スペキュラーライト)のことで、物の影が シャープに出る光を指す。マテリアル感も、シャープになりメリハリが付きやすい。 •  「柔らかいライト」とは、拡散光(ディフューズライト)のことで、光がまわり、物の 影がソフトに出る光を差す。マテリアル感も全体のディテール重視で、シャープ 感は少なくなる。 •  リアルタイム3DCGの場合、ベイクドライトの多くは「柔らかいライト」ということ ができます。一方、リアルタイムのディレクショナルライトなどは、ソフトシャドウ の設定を入れても硬い傾向があります。(※ただし、あくまで私感)

Slide 9

Slide 9 text

「光をまわす」とは? •  GIシステムでは、いわゆるライティング用語のひとつである「光をまわす」ことができるようになります。 「光をまわす」ことは、シーン全体の基本となる明るさを設定する意味でも重要です。

Slide 10

Slide 10 text

「光をまわす」とは? •  実写のスタジオライティングでは、「光をまわす」とは、主にディフューザー等を 利用しながら、柔らかいバウンス光をシーン全体に行き渡らせることを意味して います。 •  Unityの場合、オープンなシーンか、遮蔽されているシーン(室内のシーン)かに はよります。 •  オープンなシーンの場合、主にEnvironment Lighting内のAmbient Intensityの値 を調整することになります。 •  遮蔽されているシーンの場合、主にGeneral GI内のIndirect Intensityの値および Bounce Boostの値で調整することになります。

Slide 11

Slide 11 text

Ambient Intensityをあげることで、陰の部分が明るくなっていきます。

Slide 12

Slide 12 text

ベイクドライトの場合、Indirect Intensityをあげることで、陰の部分が 明るくなっていきます。

Slide 13

Slide 13 text

ベイクドライトの場合、さらにBounce Boostをあげることで、バウンス光がさらに明るくなります。

Slide 14

Slide 14 text

「シーンを暗くする」 •  シーンライティングは、まず「シーンを暗くする」ことから始まります。 そのやり方は、開放シーンと室内シーンでは違います。まずはそこから押さえましょう。

Slide 15

Slide 15 text

「シーンを暗くする」 •  「シーンを暗くする」のは、「光をまわす」のとちょうど逆の設定をします。 •  開放シーンの場合には、主にAmbient Intensityの調整になります。 (ほとんどの場合、Skyboxの明るさの設定でしょう) •  遮蔽されているシーンの場合には、Reflection Probeを遮蔽する壁に添ってサイ ズ調整&配置し、Box ProjectionをONにします。 遮蔽する壁は、Mesh RendererのCast ShadowsをTwo Sidedなどにし、外光の がすり抜けないようにします。さらにLightMap StaticをONにすることで、ベイクド ライトがバウンスするようにします。

Slide 16

Slide 16 text

「モチベーション」と 「オフスクリーンスペース」 •  シーンライティングを進める際に必要な考え方として、そのシーンを照らしている「モチベーション」(光源)が何かを 特定していくことが大切です。 •  特に「モチベーション」の中でも、画面外の空間(オフスクリーンスペース)に存在するモチベーションがとても重要 なことがあります。 •  これらのモチベーションを考慮に入れた上で、「ストーリーを語る」ようにライティングを設定しましょう。

Slide 17

Slide 17 text

「モチベーション」と「オフスクリーンスペース」 •  「モチベーション」(光源)の選択に当たって重要なのは、どんなタイプのライトを 使用するかの選択です。それには各ライトの特性をよく知る必要があります。 •  各ライトは、リアルタイムで使用する場合とベイクして使用する場合とで、特性 が違っている場合もあります。 •  特にベイクドライトを使う場合には、ライトの減衰について注意して配置すると より高い効果が得られます。 •  「オフスクリーンスペース」に配置したライトは、特に減衰特性に注意しましょう。 例えば、室内に差し込むモチベーションとして、どのようなライトを選択するか で、画面映えが相当変わります。 •  昨今のプリレンダーCGでは、ほとんどの固定ライトにはエリアライトが使われて います。使い方はむずかしいですが、エリアライトをうまく使いこなせると、ライ ティングの品質がぐっとあがります。

Slide 18

Slide 18 text

リアルタイムライトと ベイクドライトの使い分け •  シーンライティングの後半は、リアルタイムライトとベイクドライトの使い分けがポイントとなります。 ここではその使い分けについて考察してみましょう。

Slide 19

Slide 19 text

リアルタイムライトとベイクドライトの使い分け •  「動くライトはリアルタイムで」、というのは至極当たり前ですが、それ以外にも 以下のような使い分けが考えられます。 •  メリハリのある影やメリハリのある光の差し込みが欲しい時に、リアルタイムラ イトを使う。(特にディレクショナルライト) •  一方、柔らかい印象の影が必要で、かつその影が動かなくてもよい場合には、 積極的にベイクドライトを使う。

Slide 20

Slide 20 text

ライトの配置について •  ライトの配置の仕方は、シーンごとに違って当たり前なので、絶対ということはありませんが基本があることは間違 いないです。ここではその基本について押さえていきましょう。

Slide 21

Slide 21 text

ライトの配置について •  基本は、カメラをシーンの中心となるモチーフに向けて配置した後で、主光源と なるキーライト、補助光源となるフィルライト、さらに形状などを強調したりする ためのリムライトやバックライトの順に増やしていきます。フィルライトは、GIによ るバウンス光をそのまま使うこともあります。普通はキーライトを一番光量を高 くします。 •  複数のフィルライトを使用することもあります。その場合、光の加法混色を使っ てホワイトの光を作るようにすると、非常によい効果が得られます。 •  多くの場合、キーライトの向きとカメラの向きを合わせてしまうと、のっぺりとし た画面になってしまうので、避けるべきです。

Slide 22

Slide 22 text

キーライト、フィルライト、バックライト配置の一例。 カメラの向きと同じ向きのライトがないことに注意。

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

高さとキャラまでの距離を変えて、 ポイントライトを配置。

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

ライトの配置について •  昼間の自然光によるシーンライティングの場合、キーライトにあたるのは太陽 光です。太陽光としてディレクショナルライトをモチーフに向けて設定した後で、 場合によっては追加のスピルライト(こちらはキーライトよりも暗めにするが、代 わりにカラーを入れる)を追加します。さらにフィルライトとしてのスカイライトを 追加し、バウンス光を足していきます。 •  もしくは、スカイライトやフォグを調整することで基本となるアンビエントライト の明るさを確保した後で、複数のリアルタイムのディレクショナルライトやポイ ントライトを追加してスペースを分割していくという手法もあります。モチーフが 移動してしまうゲームなどのシーンの場合、こちらのほうがよい場合もあります。 この場合、アンビエントライトは抑えめにして、その他のリアルタイムライトで シーンを彩ってやると、非常によい結果が得られます。(※Deferred推奨)

Slide 27

Slide 27 text

P.A.M.E.L.A.. / NVYVE STUDIOS

Slide 28

Slide 28 text

ライトの配置について •  屋内の自然光によるシーンライティングの場合、まず最初に設定するのは窓か ら入ってくる外光です。スカイライトを強めに設定することもありますが、それよ りもよいのは、窓の外に大きめのエリアライトを設定し、室内に光を引き込むこ とです。引き込んだ光は、室内でバウンスさせて、基礎となる明るさを作ります。 次に窓から光が直接差し込んでいる場合には、太陽のスピルライトに当たる ディレクショナルライトを設定します。最後に室内に照明がある場合には、そこ にポイントライトなどを配置していきます。 •  屋内の自然光によるシーンライティングの場合、部屋や場所ごとに明暗のメリ ハリを付けることで、スペースを分割してやることが大切です。全てが明るすぎ ると、モデルルームのようでカッコ悪い印象になります。

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

Box Projectionで遮蔽する。 各蛍光灯に同サイズの エリアライトを配置する。

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

チーティング(作為) について •  特にリアルタイムでの3DCGのライティングに関しては、現実のイメージに合わせるために様々なチーティング(作 為)が用いられます。 •  ここではそれらのチーティング(作為)のテクニックについて考えてみましょう。

Slide 33

Slide 33 text

チーティング(作為)について •  チーティング(作為)には以下のような手法があります。 Ø  実際の光源とは違う位置に、ライトオブジェクトを置いてライティング補正をする。 Ø  ライトオブジェクトの位置にエフェクトを配置することで、光っているように見せる。 Ø  ライトオブジェクトの位置にエミッシブオブジェクトを配置することで、フィジカルライトのように 見せかける。 Ø  スタティックでないオブジェクトに、ベイクドライトの影響を混ぜる。(ライトプローブ) Ø  イメージエフェクトを使って、リアルタイムに陰の補正をする。(SSAO) Ø  シーンデプスに合わせてカラートーンを変える。(カラーフォグ) ……などなど

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

ライトマップベイクに適した アセット制作について •  ライトマップベイクを行う前提でアセット制作を行う場合の注意を考えてみましょう。

Slide 36

Slide 36 text

ライトマップベイクに適したアセット制作について •  以下のような点は注意したほうがよいです。 Ø  【重要】UVは重ならないように展開する。 Ø  モデルはFBX出力前にフリーズし、履歴も整理して、余計な情報がない状態にしておく。 Ø  Unity上でマイナススケールで反転するのは、なるべく避ける。 Ø  ライトマップを焼いて変なまだらのようなアーティファクトが出る場合には、該当オブジェクトの メッシュインポータで「Generate Lightmap Uvs」に☑するとよい。 Ø  【Tips】ライトマップベイクの調整中は、ライトマップをあまり高い解像度にしない。 (多分だけど、ライトマップ用にUV2を再展開する際に、ライトマップの解像度が高いと  UVのパッキングに時間がかかる気がする ※あくまで個人的な印象) •  以下のブログは参考になるかも 『デスクトップとコンソールのすごいリアルタイムGI』 http://blogs.unity3d.com/jp/2015/11/05/awesome-realtime-gi-on-desktops-and-consoles/

Slide 37

Slide 37 text

Maya/Unity間の シーンのイン/アウト •  特に特定ライトのベイクや、モバイル向けの軽量化を考えていくと、Maya/Unity間でシーンをイン/アウトさせなが ら作業したくなる時がしばしばあります。 ここではその方法およびちょっとしたTipsを紹介します。

Slide 38

Slide 38 text

Maya/Unity間のシーンのイン/アウト •  Unity⇒Mayaは、Export2Maya(AssetStore/$60)を使うのがベスト。 UnityのシーンをMayaのMAシーンに変換して、そのまま引き渡せるので超便利。 •  Maya⇒Unityは、FBXでのエクスポートになる。 その際、Maya側で座標変換が楽になるようなオブジェクトを作って、ライト位 置やカメラ位置にペアレントコンストレイントを使って配置しておくと、Unityに 引き渡した後で、ライトやカメラオブジェクトの再配置が凄く楽になる。 MayaのロケータだとFBXで渡せないので、 テンプレート設定したメッシュオブジェクトを 代わりに使う

Slide 39

Slide 39 text

This extension requires one license per seat Requires Unity 5.3.4 or higher. Importing assets into Unity is easy, but getting assets out of Unity can be tricky. Export2Maya will export your Unity scenes directly to the Maya Ascii file format, generating Maya scene files for you. Ver 2.2.1 supports the following: - Rewritten from the ground up - New Edge Generation Method - 3x faster - Skinned Mesh Export * - Blendshape Export - Single & Multi Frame - Mesh Normals - Mesh UVs - Mesh Lightmap UVs (with correct tiling and offset) - Mesh Vertex Colors - Per-Object and Per-Face Material Assignment - Terrain Export * - Directional Light Export - Point Light Export - Spot Light Export - Area Light Export - Display Layer Lightmap Association. Objects that share the same lightmap index will be grouped under different display layers for easy selection in Maya. - Includes accompanying Maya MEL script for easy scene setup once inside Maya. Note - Skinned Mesh bind poses cannot be exported currently due to limitations in the way Unity stores bind poses for skinned meshes. Note - Terrain detail meshes and grass are not currently supported yet. Planned for next version. Note - Texture Export relies on your shader having standard named shader properties. Supported properties: _MainTex, _SpecGlossMap, _BumpMap, and _EmissionMap. As always if you find a bug, or have a suggestion to make this tool better, do not hesitate to contact me. https://www.assetstore.unity3d.com/en/#!/content/17079

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

No content