feat: interactable have a faint glow

This commit is contained in:
tiger tiger tiger 2026-01-21 16:01:51 +01:00
parent 3fe7d4a6f5
commit 2fccf9d545
5 changed files with 32 additions and 14 deletions

View File

@ -774,7 +774,7 @@ light_size = 20.0
omni_range = 16.8518
[node name="MaskInteractable" parent="logic" instance=ExtResource("22_ks23q")]
transform = Transform3D(0.8829465, 0, -0.4694709, 0, 1, 0, 0.4694709, 0, 0.8829465, -0.032227404, 0.58693635, 2.5655098)
transform = Transform3D(0.8829465, 0, -0.4694709, 0, 1, 0, 0.4694709, 0, 0.8829465, -0.05572912, 0.60013723, 2.536849)
interaction = ExtResource("12_viwxf")
[node name="MindBoardInteractable" parent="logic" instance=ExtResource("22_ks23q")]
@ -782,10 +782,10 @@ transform = Transform3D(-4.3711317e-08, 0, 0.9999984, 0, 1, 0, -0.9999984, 0, -4
interaction = ExtResource("4_gyjxx")
billboard = false
[node name="Frame" parent="logic/MindBoardInteractable" index="1"]
[node name="Frame" parent="logic/MindBoardInteractable" index="2"]
transform = Transform3D(0.99999994, 0, 3.5527137e-15, 0, 1, 0, -3.5527137e-15, 0, 0.99999994, -0.08004689, -0.023632765, 0)
[node name="View" parent="logic/MindBoardInteractable" index="2"]
[node name="View" parent="logic/MindBoardInteractable" index="3"]
transform = Transform3D(0.9999999, 0, 0, 0, 1, 0, 0, 0, 0.9999999, -0.08611119, 0.040526867, -0.06492537)
[node name="CeilingInteractable" parent="logic" instance=ExtResource("22_ks23q")]
@ -793,17 +793,17 @@ transform = Transform3D(-0.7858558, 0, -0.6184074, 0, 1, 0, 0.6184074, 0, -0.785
interaction = ExtResource("19_d3c7p")
[node name="ComicInteractable" parent="logic" instance=ExtResource("22_ks23q")]
transform = Transform3D(-0.86689585, 0, -0.49848735, 0, 1, 0, 0.49848735, 0, -0.86689585, 3.2500308, 0.23531717, -0.7766681)
transform = Transform3D(-0.86689585, 0, -0.49848735, 0, 1, 0, 0.49848735, 0, -0.86689585, 3.324154, 0.23257843, -0.91425914)
interaction = ExtResource("13_v3447")
[node name="ClothesInteractable" parent="logic" instance=ExtResource("22_ks23q")]
transform = Transform3D(-0.79335207, 0, 0.6087605, 0, 1, 0, -0.6087605, 0, -0.79335207, 1.6334484, 1.1331886, -0.8914416)
transform = Transform3D(-0.79335207, 0, 0.6087605, 0, 1, 0, -0.6087605, 0, -0.79335207, 1.5984986, 1.1640409, -0.8420157)
interaction = ExtResource("12_x3dlb")
[node name="Sprite3D" parent="logic/ClothesInteractable/View" index="0"]
transform = Transform3D(1, 0, 2.9802322e-08, 0, 1, 0, -2.9802322e-08, 0, 1, -0.003991425, -0.04700005, 0.09138596)
[node name="collectable_particles" parent="logic/ClothesInteractable" index="3"]
[node name="collectable_particles" parent="logic/ClothesInteractable" index="4"]
transform = Transform3D(0.99999976, 0, 0, 0, 1, 0, 0, 0, 0.99999976, 0.10009599, -0.040801764, -0.19775379)
[node name="DoorInteractable" parent="logic" instance=ExtResource("22_ks23q")]
@ -813,7 +813,7 @@ visible = false
interaction = ExtResource("11_5bsh1")
billboard = false
[node name="View" parent="logic/DoorInteractable" index="2"]
[node name="View" parent="logic/DoorInteractable" index="3"]
transform = Transform3D(-0.99999964, 0, -8.7422755e-08, 0, 1, 0, 8.7422755e-08, 0, -0.99999964, 0.30241805, 0.49012983, -5.9604645e-08)
[node name="RoomAnimationPlayer" type="AnimationPlayer" parent="."]
@ -938,15 +938,16 @@ light_cull_mask = 4293918721
omni_range = 0.147682
[node name="OmniLight3D2" type="OmniLight3D" parent="visuals/lights"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.10614, 0.582081, 0.161548)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.6832433, 0.72138906, -0.30152392)
light_color = Color(0.894118, 0.87451, 0.686275, 1)
light_size = 0.2
light_specular = 0.1
light_bake_mode = 1
light_cull_mask = 4293918721
shadow_enabled = true
omni_range = 2.0
omni_attenuation = 0.450626
shadow_caster_mask = 4293918721
omni_range = 1.5
omni_attenuation = 0.3
[node name="OmniLight3D4" type="OmniLight3D" parent="visuals/lights"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.47143, 1.6968, -0.548992)

View File

@ -5,12 +5,14 @@ var playable : Playable = null
@onready var view: Node3D = $View
@onready var frame: Sprite3D = $Frame
@onready var light: OmniLight3D = $OmniLight3D
@onready var canvas_layer: CanvasLayer = $CanvasLayer
@onready var note: Node3D = $View/Sprite3D
@onready var caption : Label3D = %Caption
@onready var prompt : Label3D = %Prompt
@onready var original_light_energy : float = light.light_energy
@export var billboard : bool = true
@ -30,6 +32,8 @@ func _ready() -> void:
assert(note and frame and canvas_layer, "Interactable must have views and frame attached")
view.scale = Vector3.ZERO
frame.modulate.a = 0.0
light.visible = false
Scenes.player_enable.connect(_player_active) # TODO: do I have to clean this up?
_pull_save_state.call_deferred()
@ -51,9 +55,10 @@ func _player_active(value: bool) -> void:
func expand() -> void:
shown = true
light.visible = true
light.light_energy = 0
if tween and tween.is_valid():
tween.kill()
if tween: tween.kill()
else:
view.scale = Vector3.ZERO
note.rotation.z = -PI*0.5 # Godot angle wrapping is ... something
@ -65,17 +70,21 @@ func expand() -> void:
tween.parallel().tween_property(note, "rotation:z", 0, 0.8).set_delay(0.5)
tween.parallel().tween_property(frame, "modulate:a", 1.0, 2.0).set_trans(Tween.TRANS_QUAD)
tween.parallel().tween_property(frame, "scale", Vector3.ONE, 1.0).set_trans(Tween.TRANS_QUART)
tween.parallel().tween_property(light, "light_energy", original_light_energy, 1.0).set_trans(Tween.TRANS_QUART)
func collapse() -> void:
if not shown: return
shown = false
if tween and tween.is_valid(): tween.kill()
if tween: tween.kill()
tween = create_tween().set_ease(Tween.EASE_IN).set_trans(Tween.TRANS_BACK)
tween.parallel().tween_property(view, "scale", Vector3.ZERO, 0.3)
tween.parallel().tween_property(frame, "modulate:a", 0, 0.5).set_trans(Tween.TRANS_QUAD)
tween.parallel().tween_property(frame, "scale", Vector3.ONE * 2.0, 1.0).set_trans(Tween.TRANS_QUAD)
tween.parallel().tween_property(light, "light_energy", 0, 1.0).set_trans(Tween.TRANS_QUAD)
await tween.finished
light.visible = false
func _process(_delta: float) -> void:
_process_billboard()

View File

@ -20,9 +20,15 @@ metadata/_custom_type_script = "uid://bp6s7vhdd6btk"
transform = Transform3D(-4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0, 1, -0.2727661, -1.1922985e-08, 0)
shape = SubResource("CapsuleShape3D_ih54h")
[node name="OmniLight3D" type="OmniLight3D" parent="."]
light_energy = 0.01
light_indirect_energy = 0.0
light_specular = 0.0
omni_range = 0.4
[node name="Frame" type="Sprite3D" parent="."]
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 0, 0, 0)
pixel_size = 0.0005
pixel_size = 0.0004
no_depth_test = true
render_priority = 100
texture = ExtResource("2_ih54h")

View File

@ -623,6 +623,7 @@ max_acceleration = 7.0
[node name="ShadowCaster" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.54540473, 0)
layers = 1024
cast_shadow = 3
gi_mode = 2
mesh = SubResource("CapsuleMesh_x6v75")

View File

@ -213,6 +213,7 @@ locale/test="de"
[layer_names]
3d_render/layer_3="Trains"
3d_render/layer_11="Player Shadow"
2d_physics/layer_1="World"
3d_physics/layer_1="Scene Geometry"
2d_physics/layer_2="Stickies"