-
Notifications
You must be signed in to change notification settings - Fork 17
UnToon Manual
ここでは UnlitWF/UnToon の設定について解説します。 内容は最新のリリースに基づいて記載しますが、必ずしも最新の状態を反映しているわけではなく細部に違いがある場合もあります。ご了承ください。
インスペクタの最下部に Editor language
の設定があります。『日本語』にすると設定項目名が日本語化されます。
これはUnityEditorで共通の設定のため、どこかひとつのマテリアルで設定されると他マテリアルでも設定が引き継がれます。
インスペクタ最上段に、現在使用しているシェーダの説明が表示されます。
-
Family
からシェーダの系列を切り替えることができます。UnToon
,FakeFur
,Gem
,Grass
,Water
などに切り替えることができます。 -
Variant
からシェーダのタイプを切り替えることができます。Outline や Mobile などに切り替えることができます。 -
RenderType
から描画モードを切り替えることができます。Opaque や Transparent などに切り替えることができます。
インスペクタ最上段に メインテクスチャ
マテリアルカラー
の設定項目があります。
Culling を操作できるバリアントでは カリングモード
も現れます。カリングモード
のないバリアントは常に Cull OFF で描画されます。
透過についての設定です。
-
アルファソース
では、透過に使用するAlpha値の参照先を指定できます。- MAIN_TEX_ALPHA は
Main Texture
およびColor
のAlpha値で透過します。 - MASK_TEX_RED は
アルファマスク
のRチャンネルを参照します。 - MASK_TEX_ALPHA は
アルファマスク
のAチャネルを参照します。
- MAIN_TEX_ALPHA は
-
アルファ強度
は、透過具合の調整用です。0で透明、値が大きくなるほど不透明に近くなります。 -
フレネル強度
は、浅い角度で面をみたときの透過具合を調整します。0では調整なし、値が大きくなるほど浅い角度で不透明に近くなります。 -
ZWrite
は、描画時の深度バッファへの書き込みを制御します。OFF
では書き込みなし、ON
では書き込みありです。
半透明を2パスで描画するシェーダではTwoSided
の選択肢も現れます。この場合ON
は表面のみ書き込みあり、TwoSided
は表面・裏面ともに書き込みありです。
アウトラインについての設定です。
- アウトラインの描画方法を
線の種類
から選択できます。- NORMAL メッシュの法線方向に沿ってアウトラインを膨らませる、通常の描画方法です。
- EDGE ハードエッジに強いアウトラインの描画方法です。
- アウトラインの色を
線色テクスチャ
から指定することもできます(UVはMainTextureと同じ)。ブレンド強度は線色テクスチャとブレンド
にて調整してください。 -
カメラから遠ざける
を調整することで、アウトラインのメッシュを近づけたり遠ざけたりすることができます。
テッセレーションにてメッシュの細分化とスムージングを行います。
- メッシュとカメラの距離が
フェードアウト距離
以上離れると、細分化が無効になります。フェードアウト距離
以下では細分化の効果が最大になります。- メッシュを遠くから見たときには負荷が最小に、メッシュを近くから見たときにはスムージングにて品質が最大になるよう調整されています。
-
スムーズマスク
を指定すると、スムージング強度を部位ごとに変化させることができます。黒がスムーズ強度0、白がスムーズ強度最大です。- 肌をスムージングさせて下着を貫通してしまうときなど、下着部分を黒としたマスクを指定することで重なる範囲のスムーズ強度をゼロにするといった使い方ができます。
裏面に MainTex とは異なる色・テクスチャを使用する時に設定します。
ノーマルマップについての設定です。ここではメッシュ全体の凹凸を制御します。
-
影の濃さ
ではノーマルマップによる陰影の濃さを設定できます。0 は影が付きませんが、0 であっても凹凸の情報は Metallic, Matcap, ToonShade 等に伝達され描画されます。 -
ミラーXY反転
ではUVが反転している箇所 (ミラーモディファイアを使用した箇所など) にて NormalMap を反転させるオプションです。
追加のノーマルマップを利用するときの設定です。Normal Map よりも細かい範囲の、メッシュ表面の微細な凹凸を制御します。 DetailNormalMap は NormalMap とは異なり、陰影を直接描く機能はありません。凹凸情報は Metallic, Matcap, ToonShade 等に伝達され描画されます。
-
ミラーXY反転
ではUVが反転している箇所 (ミラーモディファイアを使用した箇所など) にて NormalMap を反転させるオプションです。この設定は NormalMap 側と連動しています。 - 2ndノーマルマップは効果範囲をマスクテクスチャで指定することができます。
2ndノーマルのマスク
にマスクを設定してください。
金属表現についての設定です。Reflection と Specular の設定ができます。
-
メタリック強度
は 0 が非金属、1 が金属となるパラメータです。Standard Shader での Metallic パラメータに相当します。 -
滑らかさ
は 0 が荒い、1 が滑らかとなるパラメータです。Standard Shader での Smoothness パラメータに相当します。UnToon では Reflection 用と Specular 用にそれぞれの Smoothness を設定できます。 -
MetallicSmoothnessマップ
は Standard Shader でも用いられるメタリックマップ(RチャンネルにMetallic、AチャンネルにSmoothness)を指定できます。 -
Roughnessマップ
は、Standard Shader (Autodesk Interactive) でも用いられるラフネスマップを指定できます。Roughnessマップと MetallicSmoothnessマップは併用可能で、Autodesk Interactive で使用できる MetallicMap + RoughnessMap を流用できます。 - Metallic Secondary では、ReflectionProbeからの環境マップではなく独自のCubeMapを設定できます。
- OFF では
キューブマップ
を使いません。 - ADDITION では環境マップと
キューブマップ
を加算合成して使用します。 - ONLY_SECOND_MAP では、環境マップは使用せず
キューブマップ
のみを使用します。
- OFF では
-
モノクロ反射
を 0 にすると、環境マップ/キューブマップの明度のみ反映し、色彩は Albedo をそのまま用います。1 にすると環境マップ/キューブマップの色彩をブレンドした色が反射光となります。
Matcapについての設定です。UnToon では最大2枚のMatcapを使用できます。また Variant を PowerCap にすると最大8枚のMatcapを使用できます。
-
matcapタイプ
から Matcap の合成モードを選んでください。以下の3種類を使うことができます。-
加算・減算
加算合成と減算合成を行います。灰色が不動点です。 -
加算
加算合成を行います。黒色が不動点です。 -
乗算
乗算合成を行います。白色が不動点です。
-
- matcap画像は
matcapサンプラ
にて指定してください。 -
matcap色調整
では、matcapサンプラの色調を調整できます。 -
視差(Parallax)
は matcap の視差について調整できます。1 にすると右目左目で光沢の位置が変化します。0 にすると右目左目で位置が変化しません。
金属光沢を matcap で表現する時は大きめの値に、影を matcap で表現する時は小さめの値にすることがおすすめです。シングルパスステレオではない場合は無効です。
表面にラメ(Lamé, 金属粉)を追加します。
-
ラメ色
ではラメの基本色を指定します。実際に描画されるラメの色はラメ色.RGB ± ランダム色パラメタ.RGB
で、さらにこれに強度を考慮した色が画面に描画されます。 -
スケール
ではラメの大きさ、密度
はラメの量を調整できます。 -
きらきら
を強くすると、ラメの光量がより強まります。 -
距離フェード開始
は、ラメが見える最大距離を指定します。カメラとメッシュの距離が指定された距離以上になるとラメの効果は弱まり、最終的には不可視になります。 -
スポットフェード強度
は、ラメの見える範囲を指定します。強くするとカメラに対して正面を向いたラメのみが見えるようになります。 -
アニメ速度
は、ラメの明滅速度を指定します。値が大きいほど周期が短くなります。値が0
のとき、明滅せず常に可視になります。
階調影についての設定です。
- UnToon の ToonShade は、
ベース色
に指定された色が1影色
および2影色
となるように描画されます。 -
ベース色
に基準色をスポイトし影色を自動設定する
の APPLY ボタンを押すと、ベース色を元に1影色および2影色を自動で設定します。 -
アンチシャドウマスク
は、影のかかりにくい部分を白色、そうではない部分を黒色としたマスクテクスチャを指定します。- もっぱらアバターの顔に影をかけないよう指定するためのマスクテクスチャです。
- 顔マテリアルが他と独立しているのであれば、テクスチャは指定せず
マスク反転
をチェックするだけでも効果があります。(テクスチャ未指定=黒色の状態にてマスク反転するので、全域が白色となり影がかかりにくくなる)
ToonShade の詳細を ToonShade Advance から設定できます。 1影2影の位置、および境界ぼかし強度を調整可能です。
リムライトの設定です。
-
混合タイプ
を加算・減算
,加算
,アルファ合成
から選ぶことができます。 -
マスクテクスチャ
には、リムライトを無効にする範囲を黒、有効にする範囲を白にしたマスクテクスチャを指定します。
フルカラーテクスチャが利用可能です。リムライト色を指定することもできます。
MainTexをリムライトのマスクに流用する場合APPLY
のボタンを押すことでも設定することができます。 - 強度は
強度(マスター)
にて調整できます。方向によって変化させるときはさらに強度(上)
強度(横)
強度(下)
で変化させることもできます。
質感を微調整するテクスチャを設定することができます。Detail Albedo やデカールテクスチャなどの詳細マップはここで設定してください。
-
オーバーレイテクスチャ
にテクスチャを設定してください。Tiling と Offset を MainTexture とは別に指定できます。 -
UVタイプ
にて Decal Texture の座標系を選ぶことができます。- UV1: MainTextureと同じUV座標系で描画します。
- UV2: UV2の座標系で描画します。
- SKYBOX: SkyBoxのような天球座標系で描画します。オーバーレイテクスチャは Latitude-Longitude 型レイアウトとして扱われます。
- MATCAP: matcap 用の座標系です。オーバーレイテクスチャを matcap として扱います。
- ANGEL_RING: エンジェルリング matcap 用の座標系です。Y座標を
UV2.y
から参照するUTS互換形式です。UV2.y
との混合強度はCustom Parameter 1
で指定します。
-
混合タイプ
では、オーバーレイテクスチャのブレンド方法を指定できます。- ALPHA: アルファブレンド
- ADD: 加算合成
base.rgb + decal.rgb
- MUL: 乗算合成
base.rgb * decal.rgb
- ADD_AND_SUB: 加算合成の亜種で、零点が黒ではなく灰色のものです。
base.rgb + decal.rgb - GRAY.rgb
- SCREEN: スクリーン合成
1 - (1 - base,rgb) * (1 - decal.rgb)
- OVERLAY: オーバーレイ合成
lerp(2 * base.rgb * decal.rgb, 1 - 2 * (1 - base.rgb) * (1 - decal.rgb), step(calcBrightness(base.rgb), 0.5))
- HARD_LIGHT: ハードライト合成
lerp(2 * base.rgb * decal.rgb, 1 - 2 * (1 - base.rgb) * (1 - decal.rgb), step(calcBrightness(decal.rgb), 0.5))
-
UV外の扱い
ではオーバーレイテクスチャのタイリングについて指定できます。REPEAT
は繰り返し、CLIP
はUV外を描画しません。
デカールなどのワンポイントとするテクスチャは CLIP とすると便利です。
メッシュにカメラを近づけたときの塗りつぶし色を指定します。
-
フェード距離
にて発動する距離を指定します。フェード距離以下にカメラが近づくと強度max、フェード距離以上にカメラが離れると強度がゼロになります。
Occlusion Map と Lightmap の設定です。
-
オクルージョンマップ
に Occlusion Map を設定してください。 - Lightmap static を付与したメッシュであればライトマップを読み取ることができます。
ライトマップも使用する
にチェックを入れてください。 - オクルージョンマップやライトマップの合成にて
明るさ
とコントラスト
を調整できます。
エミッションの設定です。
- Emission Map および Emission Color を
Emission
に設定してください。 -
混合タイプ
を ADD(加算合成) と ALPHA(ブレンド) から選ぶことができます。
EmissiveScroll を使用する時は スクロールを使用する
をチェックしてください。
- EmissiveScroll の
波形
を数種類から選ぶことができます。 -
方向の種類
では、スクロールするときの座標系を WORLD_SPACE(ワールド空間)、LOCAL_SPACE(ローカル空間)、UV1、UV2 から選ぶことができます。
Emission を AudioLink と連動させるときは AudioLink を使用する
をチェックしてください。
チェックを入れた場合、AudioLink が有効なワールドでは EmissiveScroll を上書きして Emissive AudioLink が使用されます。
AudioLink が無効なワールドでは Emission および EmissiveScroll が使用されます。もし AudioLink が無効時には Emission 自体を無効にしたい場合は AudioLink無効時は光らせない
をチェックしてください。
メッシュ原点から離れた場所に、指定された色をブレンドします。
フォグがブレンドされるのは次の条件をいずれも満たした部位です。
- 原点から
フェードアウト距離
以上離れている - 原点よりもカメラから遠い
- メッシュ原点の位置を
フォグ原点の位置(オフセット)
にて微調整できます。 - フォグ効果範囲の微調整 (縦長にしたい等) には
フォグ範囲のスケール
を調整してください。(1, 1, 1) では等倍で、0.5にするとその座標軸のみフェードアウト距離の数値が半分に(より原点に近い場所からフォグが始まる)ようになります。
メッシュ出現・消去時の特殊効果を設定できます。
-
ディゾルブ
を操作することでメッシュ出現・消去を変化させられます。0 が完全透明、1 が完全不透明です。- この項目を AnimationClip から変更してください。
- 出現消去の仕方は
制御テクスチャ
にて設定できます。- ディゾルブを 0→1 に変更してメッシュを出現させる場合、黒が最初に出現する場所、白が最後に出現する場所です。
- ディゾルブを 1→0 に変更してメッシュを消去させる場合、白が最初に消える場所、黒が最後に消える場所です。
-
反転
をチェックすると、制御テクスチャの白黒が反転されます。「反転ONかつディゾルブ1→0」のアニメを作ると、最初に出現した場所が最初に消去されるようになります。
ライトに対する反応の設定です。
-
Unlit Intensity (最小明度)
は、ライトの明るさが 0 のときに明度に乗算される係数です。0 に指定すると明るさ 0 のときに真っ黒(明度が0)になります。1 に指定するとライトの明るさに依らずUnlitのように明るく描画されます。初期値 0.125 では暗くなりますが、明るさ 0 でもテクスチャの模様は判別可能です。 -
Saturate Intensity (飽和明度)
は、明度1.0倍となるライトの明るさを設定します。低い値を指定すると、多少暗くても指定された値以下にならないとライトの明るさに反応しないようになります。 -
Chroma Reaction (彩度)
はライト色彩に対する追従度です。0 ではライトの色彩に反応しません。値を大きくするほどライト色彩に影響するマテリアルになります。初期値 0.8 では「ライト色彩の影響は受けるが、Standard Shader と比較すると色付きが穏やか」に調整されています。 -
他の物体に影を落とす
は、SkinnedMeshRenderer のCast Shadows
と同様の設定項目です。チェックを外すと影を落としません。
UnToonのライト応答特性は、次のようにクランプ付き1次関数となっています。Unlit Intensity
と Saturate Intensity
は以下のようになります。
ライティングに関する追加の設定です。通常は変更する必要はありません。
-
太陽光のモード
では、マテリアルが基準とする Realtime Light を選ぶことができます。-
AUTO(自動)
ワールドに配置されたライトを元に自動で Realtime Light を選択します。 -
ONLY_DIRECTIONAL_LIT(DirectionalLightのみ)
ワールド内の Realtime Directional Light を基準にします。 -
ONLY_POINT_LIT(PointLightのみ)
ワールド内の Realtime Point Light、厳密には Light1 を基準にします。 -
CUSTOM_WORLDSPACE(カスタム(ワールド方向))
下欄カスタム太陽の方角
カスタム太陽の高度
で指定されたワールド方向を光源として扱います。 -
CUSTOM_LOCALSPACE(カスタム(ローカル方向))
下欄カスタム太陽の方角
カスタム太陽の高度
で指定されたローカル方向を光源として扱います。 -
CUSTOM_WORLD_POS(カスタム(ワールド座標))
下欄カスタムライトの位置
で指定されたワールド座標を光源として扱います。
-
AUTO(自動)
-
逆光補正しない
にチェックすると、光源方向による ToonShade と RimLight の補正をしません。- ワールド構造物のように、static かつ大きなメッシュである場合にはチェック推奨です。
-
メッシュ原点を取得しない
にチェックすると、一部の処理でメッシュ原点を取得しないようになります。- Batching Static を付与したメッシュ(バッチ処理にて原点位置が変わってしまう)である場合にはチェック推奨です。
UnToonのTessellationシリーズでは、テッセレーションを用いたメッシュの細分化・スムージングを行うことができます。 細分化はカメラとメッシュの距離に応じて行われ、遠距離では無効化され最大パフォーマンスとなり、近距離では最大化されて最大クオリティとなります。
-
分割数
ではポリゴンの分割レベルを制御できます。値が小さいほど荒く、大きいほど細かくなります。デフォルトは 4 で、通常は変更する必要はありません。 -
スムーズ
ではスムージング強度を制御できます。0 ではスムージングが行われません。デフォルトは 1 で、通常は変更する必要はありません。 -
スムーズマスク
には、スムージングする範囲を白、しない範囲を黒で指定したマスクテクスチャを設定します。部分的にスムージング強度を変更することで、例えばハードエッジなパーツをスムージング対象から外したり、肌が衣服を突き抜けることを防止することができます。
UnToonでは簡易なステンシル制御として、Mask で描画した範囲に MaskOut が描画しないよう制御することができます。
例えば「瞳」に Mask を指定し、「前髪」に MaskOut を指定して、瞳が常に前面に描画されるようにすることができます。
Mask 側のシェーダは WF_UnToon_Transparent_Mask
、MaskOut 側のシェーダは WF_UnToon_Transparent_MaskOut
です。
他のバリアントにも Mask と MaskOut を用意しています。
また MaskOut_Blend では MaskOut に加えて半透明合成を利用可能です。これで瞳が前髪と50%アルファ合成されるように描画することができます。
-
ID
で指定した値が同じものどうしでステンシルが動作します。