lilToonカスタムシェーダーのテンプレート(koturn流)
- 0 JPY
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宣言のテンプレートをコメントで追加 - _VRChatCameraMode, _VRChatMirrorMode, _VRChatMirrorCameraPosの宣言をコメントアウトで追加 ## Editor/CustomInspector.cs - オリジナルからカスタムシェーダーへ変換するメニューのコメントアウト除去&バリデーション追加 - カスタムシェーダーへオリジナルへ変換するメニュー追加&バリデーション追加 - シェーダーエラーキャッシュ削除&再読み込みのメニュー追加 - Early Return, Scope系のクラスを用いるなどのリファクタ - Docコメントを記載 ## Editor/Startup.cs - 本体バージョン番号マクロ定義ファイル(lil_current_version_value.hlsl)生成例として追加 ## Editor/lang_custom.txt - 言語ファイル例として追加 ## Editor/AssemblyInfo.cs - DLLのバージョン情報記載例として追加 ## Editor/lilToon.TemplateFull.asmdef - 本体参照&Editorのみの例として追加
使い方
まず,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.txt タブ区切りの言語ファイルです. 必要に応じて編集してください. このファイルの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 公式のドキュメントに記載の通り編集してください. 公式のテンプレートと差異はありません.