土屋つかさの技術ブログは今か無しか

土屋つかさが主にプログラミングについて語るブログです。

Standard ShaderのEmissionを自作シェーダーに組み込みたかった(過去形)

 Standard ShaderにEmissionという項目があります。
docs.unity3d.com
 これはオブジェクト自体を発光体にする物で、オプション選択で、ライトマップにベイクしたり、ライトプローブにリアルタイム反映させたりできます。とはいえ、その「ライトマップにベイクする」というイベントはいつ発行されているのかと思って調べたら、なんとMaterialEditorにEmission専用のメソッドが用意されていました。まじかー!
https://docs.unity3d.com/ja/current/ScriptReference/MaterialEditor.EmissionEnabledProperty.htmldocs.unity3d.com
https://docs.unity3d.com/ja/current/ScriptReference/MaterialEditor.LightmapEmissionFlagsProperty.htmldocs.unity3d.com
https://docs.unity3d.com/ja/current/ScriptReference/MaterialEditor.LightmapEmissionProperty.htmldocs.unity3d.com
 ドキュメントにはあるので使えはするんでしょうが、ちょっと設計に無理があるんじゃないかなこれ……(まあこれに始まったことではないけども)。

[asin:4862464130:detail]