16K Views
September 10, 23
スライド概要
2023年9月に新横浜インディゲームもくもく会でLTした資料です。
フリーランスのTAです。 主にもくもく会でのLT資料などをアップロードしたいと思います。
Unityでトゥーン表現ためしてみた おかひろ
自己紹介 おかひろ Twitter:@okahiro_p フリーランスのTA 個人で東方二次創作ゲーム作っています
最初に トゥーン表現に興味があるが、仕事で関わる機会がなかなかないので、趣味で もいいからやるか 「トゥーン」という言葉を使っているが、自分としてはセルルックもしくはイ ラスト調の3D表現を意識 3Dモデラーではないので、モデルやテクスチャは雑です
作ったもの
テクスチャ ベースマップ 陰色マップ アウトライン色マップ 白かった… パラメーターマップ1 パラメーターマップ2 R:陰マップ、G:スペキュラマスク、B: リムマスク、A:濡れマスク R:アウトラインマスク、G:ハイライト、 B:メタリックマスク、A:未使用
テクスチャはSubstancePainterで作成 ベース色、陰色、アウトライン色を並べて指定して同じマスクをかけたり、 パラメーターマップの作成がすごく楽
陰 Lambert 陰の境目のグラデーション幅や、別の色(下の例だと赤)を指定できるようにして いる 参考:LilToon
陰 地面への落ち影はそのままに、陰だけ制御できるようにする カメラのショットによって見た目の良い陰の付き方を制御できる
影 地面などにCastShadowはするが、自身はReceiveShadowしない セルフシャドウがあると見た目の制御が難しい 必ず影になるような部分はテクスチャに影を描く
影 ReceiveShadowしないので、例えば建物の裏に入ったときなどにキャラが暗くならない セルフシャドウは受けないけどほかオブジェクトからの影を受けるようにする UnityのShadowMapカスタマイズなどが必要?難しそう 建物の裏に入ったらキャラ全体を暗くする 半分だけ暗くするなどができないが、実装コストは安い 日向 日影
天使の輪 参考:ArtStation
顔の陰 影用マスクテクスチャ 影用のマスクテクスチャを用意し、LDotNに補正をかける ArtStationのやり方だとより表現力が高まるが、頭の向きと右方向ベクトルを スクリプトから渡す必要がある
金属 参考:ArtStation
課題 いろいろ試してみたが、細かい箇所で課題が残る。 Material数がそれなりに増える 眉毛と前髪がそれぞれ別Material Stencilを使うため Materialが増えると、SubstancePainterでTextureが増えてしまう SetPassやDrawCallも増える 影 きれいにかつ出したいところに狙って出すのは結構難しい テクスチャに影を描くのも、場所によっては破綻する
課題 身体をひねると・・・
まとめ 表現ひとつとってもいろいろなアプローチがある Shaderで2パス使って背面法で描画 モデルの時点でアウトライン用法線反転Meshを作成 PostEffectのSobelFilterなどでエッジ抽出 どの方法が適切なのかはプロジェクトによる 無料の高機能ToonShaderがいくつもあるので、参考になる 例:アウトライン Shaderかけなくても、十分な表現ができる LilToon UnityChanToonShader Boothなどで公開されているVRアバターにもよく使われている トゥーン表現のゲームを見て研究するとよい じっくり見てみると、「多分こうやってるのかな」ぐらいはわかることがある
参考 ArtStation https://www.artstation.com/artwork/wJZ4Gg UnityURPで原神の表現 LilToon https://lilxyzw.github.io/lilToon/#/ 高機能ToonShader NiloToonURP https://github.com/ColinLeung-NiloCat/UnityURPToonLitShaderExample 一部分しか公開されていないけど勉強になる
ご清聴ありがとうございました