상품 설명
lilToonシェーダー:
https://lilxyzw.booth.pm/items/3087170
のカスタムシェーダーを作るためのテンプレートの私的改良版です.
下記の記事に記載している要素を取り込んでいます.
- https://koturn.hatenablog.com/entry/2023/08/23/190000
公式のテンプレートとの差異
公式で提供しているテンプレート:
https://lilxyzw.github.io/lilToon/#/en-us/dev/custom_shader
と下記の差異があります.
## 全体
- 改行コードをLFに変更
## Shaders/custom.cs
- 自動生成される本体バージョン番号マクロ定義ファイルのインクルードを追加
- 本体のv1.4.0であったShadowCasterパスでのLIL_CUSTOM_V2F_MEMBERのid重複に対するワークアラウンドの#if ~ #else ~#endifを追加
## Shaders/custom_insert.cs
- 本体側の宣言を考慮した_AudioTexture宣言のテンプレートをコメントで追加
- ProTVのビデオテクスチャの宣言をコメントで追加
- 下記7つのVRChat用のuniform宣言をコメントアウトで追加
1. _VRChatCameraMode
2. _VRChatMirrorMode
3. _VRChatMirrorCameraPos
4. _VRChatScreenCameraPos
5. _VRChatScreenCameraRot
6. _VRChatPhotoCameraPos
7. _VRChatPhotoCameraRot
## Shaders以下のいくつかのlilcontainer
下記11個のlilcontainerのlilSubShaderURPとlilSubShaderHDRPを本体側のlilinternalを同じものを指定
lts_fur_two.lilcontainer: DefaultFur -> DefaultFurTwoPass
lts_furonly_two.lilcontainer: DefaultUsePassFurOnly -> DefaultUsePassFurOnlyTwoPass
lts_tess_twotrans.lilcontainer: DefaultUsePass -> DefaultUsePassTwoSide
lts_tess_twotrans_o.lilcontainer: DefaultUsePassOutline -> DefaultUsePassOutlineTwoSide
lts_twotrans.lilcontainer: DefaultUsePass -> DefaultUsePassTwoSide
lts_twotrans_o.lilcontainer: DefaultUsePassOutline -> DefaultUsePassOutlineTwoSide
ltsl_twotrans.lilcontainer: DefaultUsePass -> DefaultUsePassTwoSide
ltsl_twotrans_o.lilcontainer: DefaultUsePassOutline -> DefaultUsePassOutlineTwoSide
ltspass_lite_transparent.lilcontainer: DefaultLite -> DefaultLiteTwoSide
ltspass_tess_transparent.lilcontainer: DefaultTessellation -> DefaultTessellationTwoSide
ltspass_transparent.lilcontainer: Default -> DefaultTwoSide
## Editor/CustomInspector.cs
- オリジナルからカスタムシェーダーへ変換するメニューのコメントアウト除去&バリデーション追加
- カスタムシェーダーへオリジナルへ変換するメニュー追加&バリデーション追加
- シェーダーエラーキャッシュ削除&再読み込みのメニュー追加
- Early Return, Scope系のクラスを用いるなどのリファクタ
- Docコメントを記載
- sealed修飾子を追加
- 言語ファイルの読み込みをインスペクタ描画の度に行うのではなく,必要時のみ行うように変更
## Editor/Startup.cs
- 本体バージョン番号マクロ定義ファイル(lil_current_version_value.hlsl)生成例として追加
## Editor/lang_custom.tsv
- 言語ファイル例として追加
## Editor/AssemblyInfo.cs
- DLLのバージョン情報記載例として追加
使い方
まず,TemplateAll.zipを展開したものをUnityに取り込んでください.
取り込み後は下記のようにファイルを編集してください.
## Editor/AssemblyInfo.cs
バージョン情報や,プロダクト名,著作権情報等を記載してください.
DLLの情報に埋め込まれるだけなので必須ではありません.
不要であれば削除してください.
## Editor/AssetGuid.cs
LangCustomという定数にlang_custom.txtのGUIDを,
ShaderDirという定数にShadersディレクトリのGUIDを設定してください.
## Editor/CustomInspector.cs
公式のドキュメントに記載の通り編集してください.
- クラス名を変更
- シェーダープロパティに対応するMaterialPropertyメンバを宣言
- LoadCustomProperties()内でMaterialPropertyメンバを初期化
- DrawCustomProperties()内でMaterialPropertyメンバを描画するなど
ファイル名はC#としては何でもよいですが,クラス名に合わせた方がよいと思います.
## Editor/lang_custom.tsv
タブ区切りの言語ファイルです.
必要に応じて編集してください.
このファイルのLanguage列がキー名であり,インスペクタの言語設定に応じて,English, Japanese列の文字列を
インスペクタではGetLocメソッドを用いて取得することができます.
## Editor/lilToon.TemplateAll
Assembly Definition(asmdef)ファイルです.
インスペクタ中のNameの項目とファイル名をEditor/CustomInspector.cs内のファイル名に合わせてください.
## Editor/Startup.cs
Unity起動時に行う処理を記載したスクリプトファイルです.
lilToon本体のバージョンのマクロ定義を記載したShaders/lil_current_version.hlslを生成します.
## Shaders/custom.hlsl
公式のドキュメントに記載の通り編集してください.
lil_current_version.hlslのインクルードが追加されているだけで,コメントアウト部分を除き,公式のテンプレートと差異はありません.
## Shaders/custom_insert.hlsl
公式のドキュメントに記載の通り編集してください.
AudioLink,VRChat用のuniform変数の宣言のコメントが追加されているだけで,公式のテンプレートと差異はありません.
## Shaders/lilCustomShaderDatas.lilblock
公式のドキュメントに記載の通り編集してください.
公式のテンプレートと差異はありません.
## Shaders/lilCustomShaderProperties.lilblock
公式のドキュメントに記載の通り編集してください.
公式のテンプレートと差異はありません.
모든 리뷰
더보기리뷰 등록
리뷰를 작성하려면 로그인이 필요합니다.
로그인하고 리뷰 쓰기