PointLight2D, Canvas Modulate)エリアの一部のみ暗くする方法
■シーン全体を暗くする通常の場合 シーン全体をcanvas modulateで暗くして、PointLight2Dをプレイヤーに持たせて、 以下のように暗いエリアを光で照らしながら探索する、ということができます。 ・以下のように真ん中がプレイヤー、光がプレイヤーの前方に出るようにしたい ・エリアのシーンにcanvas modulateノードを追加 ・追加したcanvas modulateノードのcolorを編集、どの程度暗くするか決める ・PointLight2Dはプレイヤーのシーンにノードとして追加。 プレイヤーの向きに合わせてライトの位置を調整。 (作りたい光の画像を作成、textureで読み込みます。) ・画像はacepriteというドット絵作成ツールで作りました。 (①:gradient toolを選ぶ/②radial gradientを選ぶ/③背景色設定をクリック/④を透明(R,G,B,Aすべて0)にする/⑤光の色を選ぶ(ここでは白)/⑥ドラッグして円形の光を作成) ■一部エリアのみ暗くする方法 しかし、canvas modulateはどのようにシーン内に配置しても、結局シーン全体に影響するようで、例えば一部の部屋だけ暗くする、といったことができません。 それを行いたく、以下の部屋の壁を透明にする方法を応用して、colorのRGBの部分を0.3にする、として、暗くしてみました。 https://godot-biginner.blogspot.com/2025/05/tilemaplayer.html ただ、どうも光への反応が悪く、照らした箇所が少しは明るくなるのですが、canvas modulateと比べると暗く、わかりづらいライトになってしまいました。この方法は却下。 良い方法が思いつかず、調べると以下情報が見つかりました。 明るいライトだけでなく、暗くするライトも設定できるようで、それを使うと良いようです。 https://www.reddit.com/r/godot/comments/vnnc4v/can_canvas_modulate_be_used_only_on_one_portion/?tl=ja ・PointLight2Dのインスペクタの、Blend Modeを、subtract(引き算)に設定すると、 暗くするライトになる ・以下暗くした...