TypeA Anime Shader

最新 V1.0.6 2019 / 05 / 01

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

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

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

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

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

Set内容

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

メインシェーダー

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

サブシェーダー

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

VRChat用サンプルシェーダー

    • TypeA/Toon02_vrc / コピー用
    • TypeA/Toon02Edge_vrc / コピー用
    • TypeA/Toon02Fade_vrc / コピー用
    • TypeA/Toon02FadeEdge_vrc / コピー用
    • TypeA/Toon02_vrc_Geometry+10_opaque / eyebaseで使用
    • TypeA/Toon02_vrc_Geometry+20_cutout
    • TypeA/Toon02Edge_vrc_Geometry-10_opaque / faceで使用
    • TypeA/Toon02FadeEdge_vrc_Geometry+225_cutout
    • TypeA/Toon02_vrc_AlphaTest+5_cutout / eye_blue,eye_animeで使用
    • TypeA/Toon02FadeEdge_vrc_AlphaTest+25_cutout / Hair_Fで使用
    • TypeA/Toon02_vrc_Transparent / faceAlphaで使用

 

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

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