ユニティちゃんトゥーンシェーダー

Unity Toon Shader 2 (UTS2)

(出典unity3d-jp

公式サイト:

ユニティちゃんトゥーンシェーダー 2.0 | UNITY-CHAN! OFFICIAL WEBSITE [公式]

使い方

UTS2 のシェーダーを使用するには、公式サイトのダウンロードページもしくは GitHub リポジトリのリリースページからダウンロードした UTS2_ShaderOnly_v2.xx.xx_Release.unitypackage をインポートする。ビルトインレンダーパイプラインで使用する場合は Legacy/Built-in と表記されたもの、URP で使用する場合は Universal と表記されたものを使用する。

→ ダウンロード

リリース

シェーダーの使用方法は、UTS2_Manual_ja.md 及び UTS2_Props_ja.md  を参照する。

参考:

簡単設定!ユニティちゃんトゥーンシェーダーでアニメ調にする方法 | CG メソッド

概要

参考:

ユニティちゃんトゥーンシェーダー2.0 (UTS2.0) を調査 | C++ 幼女先輩

ユニティちゃんトゥーンシェーダー 2.0 使いこなしスペシャル – SlideShare

導入

参考:

UTS 2.0 メモ | まるブログ

ユニティちゃんトゥーンシェーダー入門以前あるいは現代トゥーンシェーダーへの橋渡し | izm_11’s blog

推奨環境

  • Unity 2019.4.31f1 以降
  • レンダリングパス フォワードシェーディング
  • 色空間 リニア

ドキュメント:

ターゲット環境 – UTS2_Manual_ja.md at release/legacy/2.0 – GitHub

シェーダーの種類

  • 基本
  • No Outline
  • Angel Ring
  • Mobile
  • Tessellation
  • Helper
シェーディング
  • Double Shade With Feather
  • Shading Grade Map
アルファ/透明
  • Clipping
    • Stencil Mask
    • Stencil Out
  • Stencil Mask
  • Stencil Out
  • Trans Clipping
    • Stencil Mask
    • Stencil Out
  • Transparent

ドキュメント:

各シェーダーの使い分け – UTS2_Manual_ja.md at release/legacy/2.0 – GitHub

プロパティー

カスタムインスペクター
  • Show All Properties プロパティーを直接編集する。
  • 日本語マニュアル ブラウザで UTS2_Manual_ja.md を開く。
  • English Manual ブラウザで UTS2_Manual_en.md を開く。
  • Basic Shader Settings
    • Culling Mode
    • Stencil No.
    • Clipping Mask
    • Inverse Clipping Mask
    • Clipping Level
    • Transparency Level
    • Use BaseMap α as Clipping Mask
    • Option Menu
      • Current UI Type
        • Pro / Full Control 全ての項目を表示する
        • Beginner 初心者向けに項目の表示を制限する
      • VRChat Recommendation VRChat 向けに推奨される基本的な設定を適用する。
      • Remove Unused Keywords/Properties from Material マテリアルから未使用のキーワード及びプロパティーを取り除く。
  • Basic Three Colors and Control Maps Setups
    • Base Map 基本色のテクスチャ
    • 1st Shade Map 1影色のテクスチャ
    • 2nd Shade Map 2影色のテクスチャ
  • Normal Map Settings
    • Normal Map
    • Normal Scale ノーマルマップを反映させる強度
    • 3 Basic Colors ベースマップに反映させるかどうか
    • HighColor ハイライトに反映させるかどうか
    • RimLight リムライトに反映させるかどうか
  • Shadow Control Maps 影制御マップ (強制的に陰影を生じさせる)
    • Double Shade with Feather 系シェーダー
      • 1st Shade Position Map 1影を生じさせる
      • 2nd Shade Position Map 2影を生じさせる
    • Shading Grade Map 系シェーダー
      • Shading Grade Map 陰影の生じ易さを指定するマップテクスチャを指定する
      • Shading Grade Map Level マップの値をレベル補正する
      • Blur Level of Shading Grade Map Shading Grade Map にぼかしを掛ける
  • Basic Lookdevs / Shading Step and Feather Settings
    • DoubleShadeWithFeather 系シェーダー
      • BaseColor Step 基本色の領域を決める閾値 (0 → 全て基本色/1 → 全て影色)
      • Base/Shade Feather 基本色と影色の境界をぼかす度合い
      • ShadeColor Step 1影と2影の割合 (0 → 全て1影/1 → 全て2影)
      • 1st/2nd_Shades Feather 1影と2影の境界をぼかす度合い
    • ShadingGradeMap 系シェーダー
      • 1st ShadeColor Step 基本色の領域を決める閾値 (0 → 全て基本色/1 → 全て影色)
      • 1st ShadeColor Feather 基本色と影色の境界をぼかす度合い
      • 2nd ShadeColor Step 1影と2影の割合 (0 → 全て1影/1 → 全て2影)
      • 2nd ShadeColor Feather 1影と2影の境界をぼかす度合い
    • System Shadows / Self Shadows Receiving
      • Receive System Shadows システム標準の陰影を混合してセルフシャドウを描画する。
      • System Shadows Level システムシャドウのバイアスを調整する
  • Additional Settings
    • Step Offset for PointLights 点光源による階調を微調整する
    • PointLights Hi-Cut Filter 点光源によるハイライトを抑制する
  • HighColor Settings
    • HighColor ハイライトの色を指定する
    • HighColor Power ハイライトの大きさを決める
    • Specular Mode 指数的に減衰する光沢として描画するかどうか
    • Color Blend Mode ハイライトの合成モード
      • Additive 加算モードで合成する
      • Multiply 乗算モードで合成する
    • ShadowMask on HighColor 影色領域のハイライトをマスクするかどうか
    • HighColor Power on Shadow 影色領域におけるハイライトの減衰を決める。
    • HighColor Mask ハイライトをマスクするマップテクスチャを与える。
    • HighColor Mask Level マスクテクスチャのバイアスを調整する。
  • RimLight Settings
    • RimLight リムライトを有効にする
    • RimLight Color リムライトの色を指定する
    • RimLight Power リムライトの減衰を決める
    • RimLight Inside Mask マスクの大きさ (リムライトを内側からマスクする)
    • RimLight FeatherOff リムライトをぼかすかどうか
    • LightDirection Mask リムライトの発生を光源方向のみに限定するかどうか
    • Antipodean(Ap)_RimLight APリムライト/光源の反対方向にリムライトを発生させるかどうか
      • AP Rim Light Color APリムライトの色
      • AP Rim Light Power APリムライトの減衰を決める。
      • AP Rim Light Feather Off APリムライトをぼかすかどうか
    • Rim Light Mask リムライトをマスクするマップテクスチャを与える
    • Rim Light Mask Level マスクテクスチャのバイアスを調整する
  • MatCap :  カメラ方向からの固定投影テクスチャ
    • MatCap MatCap を有効にする
    • MatCap Sampler MatCap として使用するテクスチャ
    • Blur Level of MatCap Sampler MatCap テクスチャにぼかしを掛ける
    • Color Blend Mode MatCap の合成モード
      • Additive 加算モードで合成する
      • Multiply 乗算モードで合成する
    • Scale MatCap UV MatCap テクスチャを拡大/縮小する。
    • Rotate MatCap UV MatCap テクスチャを回転させる。
    • Camera Rolling Stabilizer カメラのロール回転に対して MatCap の回転を固定する。
    • Normal Map for MatCap MatCap 用のノーマルマップを使用する。
      • Normal Map MatCap 用のノーマルマップテクスチャ
      • Rotate Normal Map UV MatCap 用のノーマルマップテクスチャを回転させる。
    • MatCap on Shadow 影色領域における MatCap の効果をマスクする。
      • MatCap Power on Shadow 影色領域における MatCap による効果の減衰を決める。
    • MatCap Projection Camera カメラの投影法を指定する。
      • Perspective 透視投影/MatCap テクスチャの歪み補正が適用される
      • Orthographic 平行投影
    • MatCap Mask MatCap をマスクするマップテクスチャを与える。
    • MatCap Mask Level マスクテクスチャのバイアスを調整する。
    • Inverse MatCap Mask マスクテクスチャのマスク領域を反転させる。
  • Angel Ring Projection Settings 「天使の輪」を描画する
    • Angel Ring Projection 「天使の輪」の描画を有効にする
    • Angel Ring テクスチャを指定する
    • Offset U 水平方向のオフセット
    • Offset V 垂直方向のオフセット
    • Use α channel as Clipping Mask アルファチャンネルをクリッピングマスクとして使用する。
  • Emissive :  発光
    • Emissive 発光の色と強さをテクスチャとして与える。アルファチャンネルはマスクとして扱われる。
    • Emissive Animation アニメーションを有効にする
    • Base Speed (Time) アニメーションの更新頻度を指定する
    • Scroll Coordinates スクロールに使用する座標系を指定する
      • UV Coord Scroll テクスチャの UV 座標をスクロールさせる
      • View Coord Scroll ビュー座標をスクロールさせる
    • Rotate around UV center UV 座標を回転させる
    • Ping Pong Move for Base アニメーションを往復させる
    • Color Shift with Time テクスチャに掛け合わせる色を線形補間で変化させる
    • Destination Color 色を変化させる際の目標となる色
    • Color Shift Speed (Time) テクスチャに掛け合わせる色を線形補間で変化させる際の速度 (値が 1 の時およそ 6 秒サイクル)
    • View Shift of Color 面がビューと成す角度に応じて色を変化させる
    • View Shift Color 色を変化させる際の目標となる色
  • Outline Settings
    • Outline Mode
      • Normal Direction 法線反転方式
      • Position Scaling ポジションスケーリング方式
    • Outline Width アウトラインの幅 (※モデルインポートのスケールが影響する)
    • Outline Color アウトラインの色
    • Blend Base Color to Outline 基本色テクスチャの色と馴染ませる。(有効にするとライティングの影響を反映させられる。)
    • Outline Sampler アウトラインの幅に倍率を掛けるマップテクスチャを与える
    • Offset Outline with Camera Z-axis カメラの奥行き方向にオフセットさせる。(細かい凹凸におけるアーティファクトを取り除く。)
  • Advanced Outline Settings
    • Farthest Distance to vanish アウトラインが消失する距離を指定する
    • Nearest Distance to draw with Outline Width アウトラインの幅が最大となる距離を指定する。
    • Use Outline Texture アウトラインにテクスチャを適用する
      • Outline Texture アウトラインに適用するテクスチャ
    • Use Baked Normal for Outline アウトラインに使用する法線をノーマルマップを適用して生成する。
      • Baked Normal Map for Outline アウトライン用のノーマルマップを与える。
  • DX11 Phong Tessellation Settings テッセレーション (Windows / DirectX 11 環境のみ)
    • Edge Length 分割を適用するエッジの長さ (デフォルト5)
    • Phong Strength 細分化された分割面の引っ張り強度 (デフォルト0.5)
    • Extrusion Amount 細分化による膨張に倍率を掛ける (デフォルト;0)
  • Light Color Contribution to Materials
    • Base Color 基本色領域にライティングを反映させる
    • 1st Shade Color 1影領域にライティングを反映させる
    • 2nd Shade Color 2影領域にライティングを反映させる
    • High Color ハイライトにライティングを反映させる
    • Rim Light リムライトにライティングを反映させる
    • AP Rim Light APリムライトにライティングを反映させる
    • MatCap MatCap にライティングを反映させる
    • Angel Ring 「天使の輪」にライティングを反映させる
    • Outline アウトラインにライティングを反映させる
  • Environmental Lighting Contributions Setups
    • GI Intensity ライトプローブによるリアルタイム GI の影響度を指定する。
    • Unlit Intensity シーンにディレクショナルライトが存在しない場合の環境光ブースト値を指定する。
    • Scene Lights Hi-Cut Filter 特に明るいライティングによる白飛びを抑制する。
    • Built-in Light Direction ディレクショナルライトの方向をオブジェクトに固定された仮想的なライトの方向で置き換える。
      • Offset X-Axis Direction X 軸方向のオフセット
      • Offset Y-Axis Direction Y 軸方向のオフセット
      • Inverse Z-Axis Direction Z 軸の負の方向から照らす

ドキュメント:

カスタムインスペクター – UTS2_Manual_ja.md at release/legacy/2.0 – GitHub

輪郭線/アウトライン

ドキュメント:

アウトラインに関するプロパティ – UTS2_Props_ja.md at release/legacy/2.0 – GitHub

MatCap

参考:

透ける眉とか MatCap とか | 美坂

UTS 2.0 の金属表現/MatCap | しぐにゃもブログ

Angel Ring

参考:

髪の毛に Unity-chan Toon Shader で天使の輪 (Angel Ring) を設定する方法 | ikasyo

Emissive Animation

(出典@oto_kishin

参考:

Emissive Animation (@oto_kishin) | Twitter

URP / Universal Toon

手順
  1. リリースページから UnityChanToonShaderVer2_Project-urp-2.xx.xx.zip をダウンロードし、ローカルでプロジェクト外の適当な場所に展開する。
  2. パッケージマネージャーを開き、プラスアイコン をクリックして、メニューから「Add Package from Disk」を選択する。
  3. 展開したディレクトリの package.json を指定して開くと、パッケージが該当するディレクトリからインポートされる。

※展開したディレクトリのファイルがそのまま使用されるため、ディレクトリを保持しておく。

リポジトリ:

release/urp/2.5.1 – GitHub

ドキュメント:

README_ja.md at release/urp/2.5.1 – GitHub

Universal Toon v2.2.x マニュアル at release/urp/2.5.1 – GitHub

Universal Toon プロパティ at release/urp/2.5.1 – GitHub

参考:

URP にしたら UnityChanToonShader を使ったモデルがピンクになって困った話 | はこねのはこ

Universal Toon v2.2.0 のインストールと Unity パッケージ管理について | トマトタワー

MToon シェーダーから Universal Toon に変更する 基本設定編 | 作って VR で動かすブログ

MToon シェーダーから Universal Toon に変更する 問題解決編 | 作って VR で動かすブログ

ポストエフェクトでアウトラインを描画する

  • 「UTS Edge Detection」を使用して、ポストエフェクトでアウトラインを描画する。
手順

UTS_EdgeDetection.unitypackage をパッケージをインポートし、「UTS Edge Detection」コンポーネントをカメラに適用する。

ドキュメント:

UTS Edge Detection – UTS2_Manual_ja.md at release/legacy/2.0 – GitHub

PBR/金属光沢

参考:

UTS 2.0 の PBR テクスチャ設定 | しぐにゃもブログ

UTS 2.0 で綺麗な金属光沢の表現方法 | しぐにゃもブログ

UTS 2.0 で複雑な色の金属光沢を表現する方法 | しぐにゃもブログ

UTS 2.0 の金属表現/MatCap | しぐにゃもブログ

SD ユニティちゃん

UTS2 仕様の SD ユニティちゃんを使うには、「UnityChanToonShaderVer2_Project」の Assets ディレクトリ以下にある次のディレクトリを使用したいプロジェクトにコピーする。

  • UnityChan
  • Toon/Materials
  • Toon/Textures
  • Post Effect Mask
  • Sample Scenes

Sample Scenes 内の ToonShader.unity を開いて、正常にレンダリングされることを確認する。

参考:

SD ユニティちゃん 3Dモデルデータ | UNITY-CHAN! [公式]

両面描画する

手順

「Culling Mode」を Culling Off に設定する。

ドキュメント:

Culling Mode – UTS2_Manual_ja.md (v2.0.9) – GitHub

参考:

裏面が見えない時の対処法/背面カリング | しぐにゃもブログ

Render Queue

動画:

How to Set Custom Render Queue in UTS2 Materials

参考:

クリッピング使用時の描画順を直す | わたあめ子

ステンシル

「Stencil Mask」と「Stencil Out」を組み合わせて使う。両方のシェーダーで同じ「Stencil No」を指定する。

例えば、前髪に「Stencil Out」シェーダーを用い、眉毛に「Stencil Mask」シェーダーを用いることで、前髪より奥にある眉毛を前髪の上に描画するすることができる。

ドキュメント:

各シェーダーの使い分け – UTS2_Manual_ja.md at release/legacy/2.0 – GitHub

コード:

Toon_DoubleShadeWithFeather_Clipping_StencilMask.shader – GitHub

Toon_DoubleShadeWithFeather_Clipping_StencilOut.shader – GitHub

参考:

透ける眉とか MatCap とか | 美坂

システムシャドウ混合時に陰影がギザギザになる

対処法:

  • 色空間としてリニア色空間を使用する。
  • メッシュの分割を細かくする。
  • BaseColor Step の値を大きくする
  • System Shadows Level をプラスあるいはマイナスに調整する

ドキュメント:

システムシャドウ使用時に、各色の境界に生じるアーティファクトの軽減法 – UTS2_Manual_ja.md at release/legacy/2.0 – GitHub

使用していないキーワードを取り除く

参考:

Restrict shader keyword generation for vrchat · Issue #18 · unity3d-jp/UnityChanToonShaderVer2_Project – GitHub

VRChat で使う

Option Menu

VRChat 向けの補助機能を使うには、「Basic Shader Settings」パネルを開いて「Option Menu」欄にあるボタンから機能を使用する。

  • VRChat Recommendation VRChat 向けに推奨される基本的な設定を適用する。
  • Remove Unused Keywords / Properties from Material マテリアルから未使用のキーワード及びプロパティーを取り除く。
アンビエントブレンディング (Unlit Intensity)

暗いワールドでの環境光の影響をブーストする。「Environmental Lighting Contributions Setups」パネルを開いて、「Unlit Intensity」の値を調整する。1 より大きくすると元の明るさに倍率が掛かる。

ハイカットフィルター (SceneLights Hi-Cut Filter)

特に明るいライティングによる白飛びを抑制する。

ドキュメント:

VRChat ユーザー向けの便利機能について – UTS2_Manual_ja.md at release/legacy/2.0 – GitHub

アンビエントブレンディングを調整する (Unlit Intensity) – UTS2_Manual_ja.md at release/legacy/2.0 – GitHub

開発

今までのUTS2(日本で作った・Unity2020非対応)と、
UTS3(日本のUTS2のメンテが止まったので海外でフォークして独自に更新されだした)と、
新UTS(日本で新設計で作り始めた)と、
UTS2改(2020対応更新版)が存在する。
誰がわかるんだこんなもん。

—— SEF (@seflen)

参考:

誰がわかるんだこんなもん。 (@seflen) – Twitter

ソースコード

コード:

UCTS_DoubleShadeWithFeather.cginc – GitHub

UCTS_Outline.cginc – GitHub

資料

ユニティちゃんトゥーンシェーダー 2.0 使いこなしスペシャル – SlideShare

リアルタイムトゥーンシェーダー徹底トーク – SlideShare

ドキュメント

release/legacy/2.0/UTS2_Manual_ja.md – ユニティちゃんトゥーンシェーダー 2.0 マニュアル – GitHub

release/legacy/2.0/UTS2_Props_ja.md – UTS2 各シェーダーのプロパティ解説 – GitHub

リポジトリ

unity3d-jp/UnityChanToonShaderVer2_Project: Unity-Chan Toon Shader Ver2 Project – GitHub

Tips

UTS 2.0.7 の設定あれこれメモ | AloMarron Blog

チュートリアル

ユニティちゃんトゥーンシェーダー v.2.0.4 の基本的な設定の仕方

How to Set Custom Render Queue into UTS2 Materials

日本語インタフェース

入手:

ユニティちゃんトゥーンシェーダー 2 (UTS2) 日本語インタフェース | 虎猫亭

ムササビ式マニュアル

入手:

ユニティちゃんトゥーンシェーダー 2.0 ムササビ式マニュアル | ムササビ工房++

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA