We will entertain your mind, enhance your brain, expand your lifestyle.

光の軌跡

ボリュームライト

Heptodにはスポットライトを利用したパズルがある。いくつかの色のライトがあり、その位置やON/OFFや光の広がりを変えながらパズルを解く。

このライトにボリュームライトを適用したかったが、Unityの標準機能にはなく、Asset Storeにちょうど適合するものが無かったので、独自で作成した。といってもネット情報を参考に、Shader Graphでマテリアルを貼っただけのもの。ライトが遮られた場合の影などは実装していない。

円錐体の変形

しかし、ライトの光の広がりに合わせて、円錐体を変形させるときに問題発生。照射面の大きさに合わせて拡大縮小すると、ライトの射出面の口径と合わなくなる。射出部が点ではなく面であることが原因。

円錐体ではなく、円錐状に並んだ板の向きを変形させる実装に変えてみたが、板の重なり部分が不自然で不採用。

検討の結果、変形時に円錐体の高さ方向も変形し、位置を調整することで、口径に合わせることとした。上の図の黄色いライトは下の図の様に、長く後ろに飛び出すように変形している。

当然ながら、この方式には欠点があり、ボリュームライトがライト本体の後ろにまで表示される。

このため、先の Shader Graphに、高さ方向のカットオフ機能を追加し、変形時にカットオフの距離を調整することとした。