HDRP版の特徴
※現在HDRP版はベータ版です。今後のアップデートで大きな変更が発生する可能性があります。
HDRP版のタピオカトゥーンシェーダーは、通常版と同じくキャラクター表現に特化したシェーダーです。
パラメータは概ね通常版と同じなので、そちらを参照してください。
動作確認ができているのはUnity 2022.3 (HDRP 14.0)です。
通常版からの変更点
HDRP版では、以下の機能に変更・追加・削除があります。
-
ステンシル / Stencil
HDRPの仕様により、ステンシルは半透明(Transparent, TransparentZWrite)なオブジェクト同士でのみ使用可能です。
不透明(Opaque, Cutout)なオブジェクトはステンシルが無効になるので注意して下さい。
-
影(カゲ/シャドウ) / Shadow
HDRPのContact Shadow機能を使うかどうかのチェックボックスが追加されました。
有効にすると、LightコンポーネントのContact Shadowがオンのライトについて、細かい影が反映されるようになります。
(HDRPの仕様により、Opaque / Cutoutのオブジェクトのみ適用されます)
※『HDRPのライティングの注意点』を読んでからお使いください。
-
リム陰(カゲ/シェイド) / Rim Shade
シェーダーのHDRP対応にあたり、テクスチャの使用枚数の制限に引っ掛かったので、やむなくマスク機能を削除しました。 -
UVスクロール / UV Scroll
シェーダーのHDRP対応にあたり、テクスチャの使用枚数の制限に引っ掛かったので、やむなくマスク機能を削除しました。 -
カスタムポストプロセス / Custom Post Process
HDRPではポストプロセスがVolume機能に統合されたため、通常版のカスタムポストプロセスの機能は全てカスタムVolume機能として移植しました。
また、スクリーンスペースアウトライン機能もカスタムVolume機能に移植しています。
-
スクリーンスペースアウトライン / Screen Space Outline
HDRP対応に当たり、カスタムVolume機能に移植しました。
画面の深度マップのみを使ってアウトラインを追加で描画します。
※画面のノーマル(法線)を使ってアウトラインを描画する機能と、ステンシルを使った範囲選択の機能が無くなっています。 -
フェイクコンタクトシャドウシェーダー / Fake Contact Shadow Shader
HDRP対応にあたり、フェイクコンタクトシャドウシェーダーは削除されました。
前髪の影はHDRPのContact Shadow機能を使ってください。
(HDRPの仕様により、Contact ShadowはOpaque / Cutoutのオブジェクトのみ適用されます)
HDRPのライティング注意点
-
レイヤー機能について
HDRPでのライティングは、メッシュのRendering Layer MaskとライトのLight Layerが合えばライティングされる仕組みです。
Built-inのUnityで使用していたレイヤー機能は使わないので注意が必要です。
(Rendering Layer Mask、Light Layerについては調べてみてください)
その上で、タピオカトゥーンシェーダーではTapioca Rendererによってライト情報を送るため、通常この仕組みは関係ありません。
ただし、影(シャドウ)の描画はUnityの機能で受け取るので、Rendering Layer MaskやLight Layerの仕組みが重要になります。
(キャラクターのメッシュのRendering Layer Maskと、影ありのDirectional LightのLight Layerを合わせる必要がある)
-
Directional Lightについて
HDRPでは影ありのDirectional Lightはシーン内に1つしか存在できません。(2つ目のシャドウマップを作成できない)
そのため、Built-inと同じようにキャラクター専用の影ありのDirectional Lightを使う場合、
他の背景オブジェクトに影ありのDirectional Lightが使えないので注意してください。
Built-inに引き続き、タピオカトゥーンシェーダーでは基本的にDirectional Lightの影だけを受け取ります。
例外は次に説明する以下のContact Shadowです。 -
Contact Shadowについて
HDRPのライトには、Contact Shadow機能が追加されています。
これを使用すると、前髪の落ち影などの細かい影が描画されるようになります。
Contact Shadowを見た目に反映するかどうかはマテリアル側で設定できるようにしています
実装の都合で申し訳ないのですが、タピオカトゥーンシェーダーはLight Layerに関係なく全てのライトのContact Shadowを反映するため、使用する際はご注意ください。
また、HDRPの仕様によりContact ShadowはOpaque / Cutoutのオブジェクトのみ計算されます。Transparent / TransparentZWriteの髪の毛はContact Shadowが落ちません。
アップデート情報
2025年12月12日 ver 0.1.0
-
HDRP対応(ベータ版)リリース
MToon→Tapioca Toon HDRP変換
Built-inと同じく、MToonシェーダーからHDRP版のタピオカトゥーンシェーダーに自動変換できるスクリプトを同梱しています。
使い方
左上のメニューからStudioMaron > Convert MToon to Tapioca Toon HDRPを開く。
出てきたウィンドウに変換したいマテリアルをセットする。
Convertボタンを押下。
影 (カゲ/シャドウ)
他のオブジェクトからの落ち影です。乗算で描画します。
タピオカトゥーンシェーダーでは陰と影で色が別になります。
シャドウありのディレクショナルライト1本を自動取得して影を描画します。
そのため、タピオカレンダラーにセットしたディレクショナルライトはシャドウなしにして、
別のシャドウありのディレクショナルライトを使って影を作ることができます。
例:衣服の影色を薄い緑色にしている
また、スポットライトやポイントライトからのシャドウは無視するので、これらで床に落とす影を作っても、キャラクターの見た目が損なわれません。
例:天井のスポットライトで床に影を出しているが、キャラクターには変な影が出ていない
-
影色
影の部分の色です。ベースカラーに乗算します。 -
マスクテクスチャ
マスクテクスチャです。
フェイクコンタクトシャドウ / Fake Contact Shadow
前髪の落ち影を疑似的に表現します。
個人的に、髪の毛の影はルック向上に大きく貢献すると考えています。
ステンシルを設定し、不要な描画を適切にマスクする必要があります。
ステンシルとは
メッシュを描画するときに、描画するピクセルに透明な番号を「書き込む」または「既に書かれている数値を読み込んで、条件に合う場合のみメッシュを描画する」という機能。
例えば、顔のメッシュを描画するときに「ステンシル番号:2番」を書き込む設定にして、
フェイクコンタクトシャドウシェーダーは「ステンシル番号が2番の時のみ描画する」という設定にすれば、
髪の毛の落ち影は顔の領域以外で描画されない。
使い方
キャラクターの髪の毛のメッシュを複製し、フェイクコンタクトシャドウシェーダーを使ったマテリアルを割り当てます。(以後、髪影マテリアル)
(髪影マテリアルはタピオカレンダラーのTarget Materialsに追加してください)
以下のパラメータを読んで、ステンシルを設定してください。
パラメータ
-
ステンシル/ Stencil
Stencil Ref:ステンシル番号
Stencil Comp:描画条件
Stencil Pass:ステンシルの書き込み処理
フェイクコンタクトシャドウシェーダーはステンシルを適切に設定してマスク処理する必要があります。
キャラクターの顔のマテリアルと髪影マテリアルのステンシルのパラメータを以下のように設定します。
・顔のマテリアル:【Stencil Ref = 2】【Stencil Comp = Always】【Stencil Pass = Replace】(=ピクセルのステンシル値を2に置き換え)
・髪影マテリアル:【Stencil Ref = 2】【Stencil Comp = Equal】【Stencil Pass = Keep】(=ピクセルのステンシル値が2の時のみ描画)
これで、複製した髪のメッシュは顔の領域のみに描画されます。
-
Shadow Color
疑似影の色です。顔のカラーに乗算されます。 -
Shadow Color Texture
疑似影のテクスチャです。 -
Offset Position
描画のオフセットです。髪のメッシュを複製しているので、少しずらして描画します。
ずれる方向はディレクショナルライトの照射方向です。
前髪と顔が近すぎるキャラクターは小さい数値にした方が良いかもしれません。 -
Light Intensity Link Border
ライトの明るさが閾値以下になると、疑似影の色を透明に近づけます。
ライトの明るさが0.5くらいの状態で調整すると良いかと思います。 -
Mask Texture
マスクテクスチャです。
カスタムVolumeの使い方 / Custom Volume
HDRPではVolumeコンポーネントを使ってポストプロセスを行います。
自作のVolume機能を使うためには、所定の手順でセットアップが必要です。
使い方
Edit > Project Settings > Graphics > HDRP Global SettingsのCustom Post Process Ordersを辿り、
Before Post Processの「+」ボタンから、以下のエフェクトを追加します。
-
StudioMaron.DarkGradationHDRP
-
StudioMaron.LightGradationHDRP
-
StudioMaron.SaturateHDRP
-
StudioMaron.SoftLightHDRP
-
StudioMaron.ScreenSpaceOutlineHDRP
上記の設定が完了したら、プロジェクトウィンドウで 右クリック > Create > Volume Profileを作成。
Volume ProfileのInspectorから Add Override > StudioMaron > 各種エフェクト(DarkGradationなど)を追加。
シーン内の適当なオブジェクトにVolumeコンポーネントをアタッチして、Volume Profileをセットすれば適用カスタムVolumeが適用されます。