ユニティちゃんトゥーンシェーダー
(出典: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 メソッド
概要
参考:
UNITY ちゃんトゥーンシェーダー2.0 (UTS2.0) を調査 | C++ 幼女先輩
ユニティちゃんトゥーンシェーダー 2.0 使いこなしスペシャル – SlideShare
導入
参考:
ユニティちゃんトゥーンシェーダー入門以前あるいは現代トゥーンシェーダーへの橋渡し | 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
- Currnet UI Type
- Pro / Full Control:全ての項目を表示する。
- Beginner:初心者向けに項目の表示を制限する。
- VRChat Recommendation:VRChat 向けに推奨される基本的な設定を適用する。
- Remove Unused Keywords/Properties from Material:マテリアルから未使用のキーワード及びプロパティーを取り除く。
- Currnet UI Type
- Basic Three Colors and Control Maps Setups
- BaseMap:基本色のテクスチャ
- 1st ShadeMap:1影のテクスチャ
- 2nd ShadeMap:2影のテクスチャ
- NormalMap Settings
- NormalMap
- Normal Scale:ノーマルマップを反映させる強度
- 3 Basic Colors:ベースマップに反映させるかどうか
- HighColor:ハイライトに反映させるかどうか
- RimLight:リムライトに反映させるかどうか
- Shadow Control Maps:影制御マップ (強制的に陰影を生じさせる)
- DoubleShadeWithFeather 系シェーダー
- 1st Shade Position Map:1影を生じさせる。
- 2nd Shade Position Map:2影を生じさせる。
- ShadingGradeMap 系シェーダー
- ShadingGradeMap:陰影の生じ易さを指定するマップテクスチャを与える。
- ShadingGradeMap Level:Shading Grade Map のグレースケール値をレベル補正する。
- Blur Level of ShadingGradeMap:Shading Grade Map にぼかしを掛ける。
- DoubleShadeWithFeather 系シェーダー
- 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影の境界をぼかす度合い
- BaseColor Step:基本色の領域を決める閾値 (
- ShadingGradeMap 系シェーダー
- 1st ShadeColor Step:基本色の領域を決める閾値 (
0
→ 全て基本色/1
→ 全て影色) - 1st ShadeColor Feather:基本色と影色の境界をぼかす度合い
- 2nd ShadeColor Step:1影と2影の割合 (
0
→ 全て1影/1
→ 全て2影) - 2nd ShadeColor Feather:1影と2影の境界をぼかす度合い
- 1st ShadeColor Step:基本色の領域を決める閾値 (
- System Shadows / Self Shadows Receiving
- Receive System Shadows:システム標準の陰影を混合してセルフシャドウを描画する。
- System Shadows Level:システムシャドウのバイアスを調整する。
- DoubleShadeWithFeather 系シェーダー
- 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_RimLight Color:APリムライトの色
- Ap_RimLight Power:APリムライトの減衰を決める。
- Ap_RimLight FeatherOff:APリムライトをぼかすかどうか
- RimLight Mask:リムライトをマスクするマップテクスチャを与える。
- RimLight Mask Level:マスクテクスチャのバイアスを調整する。
- MatCap : Texture Projection Settings
- MatCap:MatCap を有効にする
- MatCap Sampler:MatCap として使用するテクスチャ
- Blur Level of MatCap Sampler:MatCap テクスチャにぼかしを掛ける。
- Color Blend Mode:MatCap の合成モード
- Additive:加算モードで合成する。
- Multiply:乗算モードで合成する。
- Scale MatCapUV:MatCap テクスチャを拡大・縮小する。
- Rotate MatCapUV:MatCap テクスチャを回転させる。
- CameraRolling Stabillizer:カメラのロール回転に対して MatCap の回転を固定する。
- NormalMap for MatCap:MatCap 用のノーマルマップを使用する。
- NormalMap:MatCap 用のノーマルマップテクスチャ
- Rotate NormalMapUV: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:マスクテクスチャのマスク領域を反転させる。
- AngelRing Projection Settings:AngelRing 対応シェーダーで使用できる「天使の輪」を描画する機能
- AngelRing Projection:「天使の輪」の描画を有効にする。
- AngelRing:テクスチャを与える。
- Offset U:水平方向のオフセット
- Offset V:垂直方向のオフセット
- Use α channel as Clipping Mask:アルファチャンネルをクリッピングマスクとして使用する。
- Emissive : Self-luminescene Setings
- Emissive:発光の色と強さをテクスチャとして与える。アルファチャンネルはマスクとして扱われる。
- Emissive Animation:アニメーションを有効にする。
- Base Speed (Time):アニメーションの更新頻度を指定する。
- Scroll Coordinates:スクロールに使用する座標系を指定する。
- UV Coord Scroll:テクスチャの UV 座標をスクロールさせる。
- View Coord Scroll:ビュー座標をスクロールさせる。
- Rotate around UV center:UV 座標を回転させる。
- PingPong Move for Base:アニメーションを往復させる。
- ColorShift with Time:テクスチャに掛け合わせる色を線形補間で変化させる。
- Destination Color:色を変化させる際の目標となる色
- ColorShift Speed (Time):テクスチャに掛け合わせる色を線形補間で変化させる際の速度 (値が
1
の時およそ 6 秒サイクル) - ViewShift of Color:面がビューと成す角度に応じて色を変化させる。
- ViewShift Color:色を変化させる際の目標となる色
- Outline Settings
- Outline Mode
- Normal Direction:法線反転方式
- Position Scalling:ポジションスケーリング方式
- Outline Width:アウトラインの幅 (※モデルインポートのスケールが影響する)
- Outline Color:アウトラインの色
- BlendBaseColor to Outline:基本色テクスチャの色と馴染ませる。(有効にするとライティングの影響を反映させられる。)
- Outline Sampler:アウトラインの幅に倍率を掛けるマップテクスチャを与える。
- Offset Outline with Camera Z-axis:カメラの奥行き方向にオフセットさせる。(細かい凹凸におけるアーティファクトを取り除く。)
- Outline Mode
- 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 NormalMap for Outline:アウトライン用のノーマルマップを与える。
- DX11 Phong Tessellation Settings:テッセレーション (Windows/DirectX 11 環境のみ)
- Edge Length:分割を適用するエッジの長さ (デフォルト:
5
) - Phong Strengh:細分化された分割面の引っ張り強度 (デフォルト:
0.5
) - Extrusion Amount:細分化による膨張に倍率を掛ける (デフォルト;
0
)
- Edge Length:分割を適用するエッジの長さ (デフォルト:
- LightColor Contribution to Materials
- Base Color:基本色領域にライティングを反映させる。
- 1st ShadeColor:1影領域にライティングを反映させる。
- 2nd ShadeColor:2影領域にライティングを反映させる。
- HighColor:ハイライトにライティングを反映させる。
- RimLight:リムライトにライティングを反映させる。
- Ap_RimLight:APリムライトにライティングを反映させる。
- MatCap:MatCap にライティングを反映させる。
- AngelRing:「天使の輪」にライティングを反映させる。
- Outline:アウトラインにライティングを反映させる。
- Environmental Lighting Contributions Setups
- GI Intensity:ライトプローブによるリアルタイム GI の影響度を指定する。
- Unlit Intensity:シーンにディレクショナルライトが存在しない場合の環境光ブースト値を指定する。
- SceneLights 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
Emissive Animation
(出典:@oto_kishin )
参考:
Emissive Animation (@oto_kishin) | Twitter
URP / Universal Toon
使い方
- リリースページから
UnityChanToonShaderVer2_Project-urp-2.xx.xx.zip
をダウンロードし、ローカルでプロジェクト外の適当な場所に展開する。 - パッケージマネージャーを開き、プラスアイコン をクリックして、メニューから「Add Package from Disk」を選択する。
- 展開したディレクトリの
package.json
を指定して開くと、パッケージが該当するディレクトリからインポートされる。
※展開したディレクトリのファイルがそのまま使用されるため、ディレクトリを保持しておく。
リポジトリ:
ドキュメント:
README_ja.md at release/urp/2.5.1 – GitHub
UTS / Universal Toon Ver.2.2.x マニュアル at release/urp/2.5.1 – GitHub
UTS / UniversalToon プロパティ at release/urp/2.5.1 – GitHub
参考:
UTS / Universal 2.2.0 のインストールと Unity パッケージ管理について | トマトタワー
MToon シェーダーから URP 用 UTS / Universal Toon に変更する 基本設定編 | 作って VR で動かすブログ
MToon シェーダーから URP 用 UTS / Universal Toon に変更する 問題解決編 | 作って VR で動かすブログ
ポストエフェクトでアウトラインを描画する (UTS_EdgeDetection)
UTS_EdgeDetection.unitypackage
をパッケージをインポートし、UTS_EdgeDetection コンポーネントをカメラに適用する。
参考:
UTS_EdgeDetection – UTS2_Manual_ja.md at release/legacy/2.0 – GitHub
PBR
参考:
UTS 2.0 の PBR テクスチャ設定 | しぐにゃもブログ
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
参考:
Unity ちゃんトゥーンシェーダー Clipping 使用時の描画順を直す | わたあめ子
システムシャドウ混合時に陰影がギザギザになる
対処法:
- 色空間としてリニア色空間を使用する。
- メッシュの分割を細かくする。
- BaseColor Step の値を大きくする
- System Shadows Level をプラスあるいはマイナスに調整する
参考:
システムシャドウ使用時に、各色の境界に生じるアーティファクトの軽減法 – UTS2_Manual_ja.md at release/legacy/2.0 – GitHub
使用していないキーワードを取り除く
参考:
VRChat で使う
Option Menu
Option Menu から便利機能を使う。「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対応更新版)が存在する。
誰がわかるんだこんなもん。
参考:
誰がわかるんだこんなもん。 (@seflen) – Twitter
資料
ユニティちゃんトゥーンシェーダー 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) 日本語インタフェース | 虎猫亭
ムササビ式マニュアル
入手: