diff --git a/src/base-environments/youth_room/youth_room.tscn b/src/base-environments/youth_room/youth_room.tscn index 93e5a49..7a267b2 100644 --- a/src/base-environments/youth_room/youth_room.tscn +++ b/src/base-environments/youth_room/youth_room.tscn @@ -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) diff --git a/src/logic-scenes/interactable/interactable.gd b/src/logic-scenes/interactable/interactable.gd index cb85060..7acdd13 100644 --- a/src/logic-scenes/interactable/interactable.gd +++ b/src/logic-scenes/interactable/interactable.gd @@ -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() diff --git a/src/logic-scenes/interactable/interactable.tscn b/src/logic-scenes/interactable/interactable.tscn index 5d9719f..ce5c21d 100644 --- a/src/logic-scenes/interactable/interactable.tscn +++ b/src/logic-scenes/interactable/interactable.tscn @@ -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") diff --git a/src/logic-scenes/player_controller/player_controller.tscn b/src/logic-scenes/player_controller/player_controller.tscn index 5075b88..524f544 100644 --- a/src/logic-scenes/player_controller/player_controller.tscn +++ b/src/logic-scenes/player_controller/player_controller.tscn @@ -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") diff --git a/src/project.godot b/src/project.godot index c3f39d4..99dc983 100644 --- a/src/project.godot +++ b/src/project.godot @@ -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"