Type Dream Moon氏による、独自DSL(Dream Shader Language)でマテリアルを記述することで、Unreal Engineのマテリアルやマテリアル関数、Material Layerなどを自動生成・更新可能なオープンソースプラグイン「DreamShader」のご紹介!
DreamShader

Unreal Engineのマテリアル・スパゲッティ・グラフに代わる、テキストファーストのマテリアル言語です。.dsm、.dsf、および.dsh を使用して、マテリアル・グラフ、関数アセット、マテリアル・レイヤー、共有ヘルパー、およびパッケージの依存関係を記述します。
- DreamShaderLang を使用した、テキスト優先の Unreal Engine マテリアル作成
- DreamShaderは、.dsm、.dsf、および.dsh形式のソースファイルを、UnrealのUMaterial、UMaterialFunction、Material Layer、およびMaterial Layer Blendアセットに変換
- シンプル・高速・完全な構文・HLSL/GLSL 言語対応

| Item | Purpose |
|---|---|
.dsm | マテリアル実装ファイル。通常、Shader、ShaderFunction、ShaderLayer、ShaderLayerBlend、またはVirtualFunctionブロックが含まれます。 |
.dsf | Dream Shader Function ファイル。.dsm ファイルからインポート可能な、再利用可能な ShaderFunction、ShaderLayer、および ShaderLayerBlend アセットを生成します。 |
.dsh | 共有ヘッダーファイル。通常、import、Function、GraphFunction、Namespace、およびVirtualFunctionの宣言が含まれています。 |
Shader | UnrealのUMaterialを生成します。 |
ShaderFunction | UnrealのUMaterialFunctionを生成します。 |
ShaderLayer | ネイティブの UMaterialFunctionMaterialLayer を生成します。 |
ShaderLayerBlend | ネイティブの UMaterialFunctionMaterialLayerBlend を生成します。 |
VirtualFunction | 既存のUnreal UMaterialFunctionを記述し、Graphから呼び出せるようにします。 |
Graph | 生成された素材や関数内で使用される、ノード指向のDSL。 |
Function | 再利用可能なHLSLスタイルのヘルパー。 |
GraphFunction | UE.*のマテリアルノードを生成されたカスタム入力に読み込むことができる、再利用可能なカスタムノードヘルパー。 |
Namespace | グループのヘルパー関数。例えば、Texture::Sample2DRGB(…) など。 |
Path(...) | テクスチャ、オブジェクト設定、または仮想関数用のUnrealアセットパスを宣言します。 |
これはかなりニッチですが、面白いアプローチですね。
Gitなどで差分管理したい開発現場や、大量のマテリアルをコードベースで保守したいプロジェクトでは活躍しそう。一方で、アーティスト主体の制作では従来のMaterial Editorの方が扱いやすいため、現状はテクニカルアーティストやシェーダープログラマー向けのツールという印象です。詳細は公式サイトやGithubページをチェックしてみてください!










コメント