TypeA Anime Shader

最新 V2.0.0 2021 / 11 / 21

VRCでアニメ風の表現をする為に作成開始したシェーダーです。
通常のアニメ・イラスト風表現にも利用出来ます。
(VRChat用にカラースペースリニアで調整しています。)

v2.0.0からUnity2019以降に正式に対応しました。

設定で様々なライティングに対応出来ます。
例えば、明るさと色の影響は受けるが光源は無視するというような表現が可能です。

複数ライティングによって塗分け部分が何重にも重なる現象防止の為、BasePassで利用可能なライト情報全ての中で一番明るい方向に光源があるものとして処理します。

ステンシルを使った眉毛や目の透過は、完全に透過する部分と半透明の部分を分けて設定出来ます。
その他、影やハイライトなどもアニメ風に細かく設定出来ます。

Staticなものには対応していません。


Set内容

    • シェーダー8種
    • サンプルモデル1つ

メインシェーダー

    • TypeA/Toon02 基本のシェーダー
      Toon03 2019以降用
    • TypeA/Toon02Edge Toon02にアウトラインを追加したシェーダー
      Toon03Edge 2019以降用

サブシェーダー

    • TypeA/Toon02Fade ステンシルマスクの一部を半透明にするシェーダー
      Toon03Fade 2019以降用
    • TypeA/Toon02FadeEdge Toon02にアウトラインを追加したシェーダー
      Toon03FadeEdge 2019以降用

Inspectorの説明

Inspector

blenderを使ってTypeA Animeshader向けのテクスチャ作成をする場合の例

Sample Using Blender

Stencilの設定方法

Stencil in TypeA AnimeShader

VRChat利用時の注意点と必須手順

Use with VRChat

 

Sample Model Test Video

SampleModel Videos


利用規約

著作権は作者であるInsideThighs(=nonact)が保有しています。

UnityAssetstore利用規約に従って下さい。

当データ又は改変したものを使用したことにより発生したトラブルや損失に関して作者は一切の責任を負いません。


Version History

2021/11/21
v2.0.0

    • Unity2019以降に正式対応。機能的な変更はありません。
    • Unity2018以前対応の各シェーダーはv1.0.8の状態で残ります。

2021/05/07
v1.0.8

    • FOVの変化でアウトラインの太さが極端に変わっていた症状を修正。
    • アウトラインの太さ維持の方法を一定距離以内のみ太さ調整するように変更。
      カメラから1.5メートル程の位置にTポーズモデルを置き左手先端側から右手先端を見ているとき、全てのアウトラインがほぼ同じ太さになるように調整しました。

2021/05/05
v1.0.7

    • 以前VRChat利用時に起こっていた不具合がunity2018に移行した事で解消され、逆に不具合を起こしていた物を修正。
      VRChatのミラー内での表示対処の為のコードにより起こっていた不具合を修正しました。
    • 現在のVRChatではレンダーキュー関連の不具合が解消されたため、
      以前のように複数ファイルで対処する必要がなくなりました。
      その為、VRChat用サンプルファイルは削除しました。
    • 2つのパラメータを追加
      • AnchorPoint
        メッシュに設定したアンカーオーバーライドが効かない場合の応急処置。
        メッシュの属するFBXファイルに含まれるもの以外は効果が無いようなので設定できるようにしましたが、変形には対応できないため、あくまでも応急処置です。
      • AmbientTilt
        人体モデルなど縦長なモデルで足元付近(上下先端付近)の影響が強すぎて見える場合などの調整用。

2019/05/01
v1.0.6

    • VRChatで利用時、アバター選択UIを表示すると一部の表示がおかしくなっていた不具合を修正。
    • VRChatでVR環境利用時に、アウトライン用のメッシュがズレて表示される事がある不具合に暫定対応。
      当方でどうしても再現しない為、関連のありそうば箇所の処理を変更しました。
    • VRChatで利用する為のRenderQueue指定シェーダーを使用シェーダーに設定した際、ファイル指定のRenderTypeとRenderQueueを自動で設定するように変更。
      • RenderingSettingsのRendering Mode、Render Queue、SrcBlend、DstBlendが対象。
      • Render Type Cutoutの場合のみ追加でColorMask、AlphaToMaskが対象。
      • 選択時にシェーダー名で判断する為、シェーダー名に必要な文字列が含まれている事が条件です。
        「vrc」「cutout」「fade」「transparent」
    • メインのライト以外のライティング処理の見直しと修正。
      複数ライティングによって塗分け部分が何重にも重なる現象防止の為、BasePassで利用可能なライト情報全ての中で一番明るい方向に光源があるものとして処理します。
      追加のピクセルライティング(AddPass)で処理されるライトは情報が取れない為、これに含まれません。
      Lightに設定していて方向を示す情報が無い場合、ワールド空間上でカメラの上方に光源があるものとして処理します。
      ViewとLightを混合していて方向を示す情報が無い場合、View方向として処理します。
    • ビュー方向固定だったハイライトをライティング方向によってある程度変化するように変更。
    • 以下の5項目のパラメータ追加と、1項目のパラメータの動作変更をしました。
      • 追加パラメータ
        • ColorMask
          書き込みチャンネルの設定。チェック有りで書き込み。
        • AlphaToMask
          アルファチャンネルをマスクするかどうか。チェックでマスク有り。
        • Expand Spherically
          面法線を球状に拡張します。1に設定で完全な球状。
        • Spherical Center
          球状に拡張する際の中心位置を指定。0でMeshの中心位置。
          同一オブジェクト内でMeshが分かれている場合、MeshRenderer>>Bounds>>Centerの値を指定する事でそのMeshの中心を指定出来ます。
        • AmbientLight Color
          MainLightingAffcetに含まれる環境光の成分をそのまま使うか明るさ情報のみとして利用するか指定します。
          メインのライティングはそのままに環境光の色成分だけ弱めたい時などに調整します。
          0で明るさのみ、1で通常の色。
      • 変更パラメータ
        • Lighting Direction
          View と Light を混合出来るようにスライダー設定に変更。
          0が以前のView、1が以前のLightに相当します。
          内部数値に変更は無いので、以前の設定はそのまま維持されます。

2019/04/12
v1.0.5

    • ハイライトが一定の角度で極端に面積が広がる現象を回避出来るよう修正。
    • 裏面を表示する設定の場合に起こるシステムシャドウの余分な効果を軽減。
      仕組み上裏面には正しく影を落とせない為、すでに影が落ちているという方向で調整。
    • 中距離でのアウトラインの変化を調整。

2019/04/06
v1.0.4

    • 追加のライティングがベースパスのライティングと合っていなかった為に発生していた不具合を修正。
    • 直接光と環境光の合成具合をStandardShaderの挙動と同程度に見えるように調整。
    • シェーダーの再読み込みをするまでハイライトが無効にならなかった不具合を修正。
    • ハイライトの色の出具合を調整。
    • 追加のライティングのシステムシャドウの調整用パラメータを追加。
    • VRChatで利用時に必要なレンダーキュー変更シェーダーのサンプルを2個追加。

2018/12/12
v1.0.3

    • Unity2017に合わせて色の出具合を調整。
    • ライティングによる白飛び飽和値の調整用プロパティを追加。

2018/12/04
v1.0.2

    • 特定の条件でTypeAedge.cgincでエラーが出ていたのを修正。
    • サンプルのテクスチャの色を一部調整。
    • VRC用サンプルシェーダにレンダーキュー・タイプ共にTransparentの物を追加。

2018/09/28
v1.0.1

    • Lighting Direction が Lightの時、半透明部分の陰影がおかしかったのを修正。
      Rendering Mode が Cutout の時、半透明部分に追加のライト効果がのらなかったのを修正。
    • Sceneタブやマテリアルプレビューでは透過しているのにgameタブでは透過されていない場合があったのを修正。
    • VRChatで使用する為のファイルコピーのベースになる基本シェーダーを追加
      ReadMeの記載を一部変更。

2018/09/24
v1.0.0

    • First release

TypeA Simple Toon Shader

Set内容

  • シェーダー3種(Toon01/Toon01Edge/Hair)
  • サンプルシーン 1
  • サンプルモデル 1

 

Toon01 輪郭線無し

Toon01シェーダーinspectorのサンプル画像
Main Color 基本は白。全体の色が変わる。
Shadow 影を受けた時の変色具合を決める色。
Ambient 暗い部分の色。
Diffuse 明るい部分の色。
Highlight ハイライトの色味を決める色。
Ambient border 明暗の境目を決める値。
Ambient blur 境界のボカシ度合い。0でボカシ無し。
Highlight Power ハイライトの強さ。0でハイライト無し。
Highlight Hardness ハイライトのボケ具合。
Rim Intensity リムライトの影響の度合い。
Rim Power リムライトの強さ。
Texture RGBはそのまま色、
Aでハイライトの反射部分を調整。
A0で反射無で反射無し~1で反射有り。

 

Toon01Edge 輪郭線有り

Toon01Edgeシェーダーinspectorのサンプル画像
Toon01に輪郭線を付けたshader。
以下、追加点。
Edge Thickness 輪郭線の太さ。カメラとの距離に関係無く、
値1でほぼ1ピクセルになるように計算。
VertexColor to Edge 頂点カラーによる太さの調整を使うかどうか。
R 細 く 0.0 < 0.5 < 1.0 太く
G 未使用
B 標準Z値 0.0 < 1.0 Z値を奥へ値を奥へ
Toon01Edgeシェーダーのvertxcolor使用時のサンプル画像。鼻、顎の輪郭線が変化している。

 

Hair 輪郭線有り

Hairシェーダーinspectorのサンプル画像
Toon01Edgeのハイライトを変形出来るようにしたshader。
以下、変更点。
NU, NV NUとNVを調整する事で、ハイライトを各方向に引 き伸ばす。
二つが同じ値でハイライトは丸くなる。
Rotation ハイライトの出る方向を回転する。
XYZ全て0にするとハイライトが消える。
Wは 未使用。
Hiarシェーダーのハイライト変化のサンプル画像。