From 2de2b7f5ee24bc704d5ea8de66814d5233a3aca1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojte=CC=8Cch=20Struha=CC=81r?= Date: Wed, 18 Jun 2025 23:26:17 +0200 Subject: [PATCH 1/3] Go back to player-gameplay? --- scenes/world.tscn | 57 ++++++++++++-------------------------- scripts/door_opener.gd | 6 ++++ scripts/door_opener.gd.uid | 1 + 3 files changed, 24 insertions(+), 40 deletions(-) create mode 100644 scripts/door_opener.gd create mode 100644 scripts/door_opener.gd.uid diff --git a/scenes/world.tscn b/scenes/world.tscn index a55f72b..bd04baa 100644 --- a/scenes/world.tscn +++ b/scenes/world.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=30 format=4 uid="uid://dtbrnxalat1d4"] +[gd_scene load_steps=29 format=4 uid="uid://dtbrnxalat1d4"] [ext_resource type="PackedScene" uid="uid://wsu3b5udqtdu" path="res://meshes/village/Wall_UnevenBrick_Straight.gltf" id="1_4mrxx"] [ext_resource type="Texture2D" uid="uid://bgc5rl13dopuj" path="res://addons/proton_scatter/demos/assets/textures/sky_2.png" id="1_w7kh3"] @@ -12,9 +12,10 @@ [ext_resource type="PackedScene" uid="uid://v2td8h7kmqic" path="res://meshes/interior/Bed_Twin2.gltf" id="13_7t5mc"] [ext_resource type="Script" uid="uid://cw1r4c1d7beyv" path="res://addons/portals/scripts/portal_3d.gd" id="13_xo05s"] [ext_resource type="Material" uid="uid://dcfkcyddxkglf" path="res://addons/portals/materials/editor-preview-portal-material.tres" id="14_dss4m"] +[ext_resource type="Script" uid="uid://d2eiwbv6c3kcq" path="res://scripts/door_opener.gd" id="14_lakw3"] [ext_resource type="Script" uid="uid://bxcel82b180o3" path="res://addons/portals/scripts/portal_boxmesh.gd" id="15_7t5mc"] [ext_resource type="PackedScene" uid="uid://clxuoprslq8em" path="res://scenes/house_big.tscn" id="16_dss4m"] -[ext_resource type="Script" uid="uid://co2pjpdo4nyto" path="res://scripts/cinematic_camera.gd" id="18_lakw3"] +[ext_resource type="Script" uid="uid://d2crarvkhd45r" path="res://scripts/player.gd" id="17_7t5mc"] [ext_resource type="PackedScene" uid="uid://dc4ynch2n1ish" path="res://meshes/village/Roof_RoundTiles_4x4.gltf" id="22_kpybi"] [ext_resource type="PackedScene" uid="uid://b7mjoyryltilk" path="res://meshes/village/Roof_Front_Brick4.gltf" id="23_ctatt"] @@ -78,16 +79,9 @@ size = Vector3(1.5, 2.5, 1) [sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_dss4m"] -[sub_resource type="SphereMesh" id="SphereMesh_lakw3"] - -[sub_resource type="Curve3D" id="Curve3D_lakw3"] -_data = { -"points": PackedVector3Array(2.30277, -4.88758e-05, 0.023995, -2.30277, 4.88758e-05, -0.023995, -6.02108, -1.2, -0.757503, 0.560486, 0.0225506, -0.115429, -0.560486, -0.0225506, 0.115429, -13.1853, -1.19995, -0.866791, 0.927, 0, -0.921, -0.927, 0, 0.921, -14.415, -1.2, 0.789, 1.07875, -0.421236, 0.749314, -1.07875, 0.421236, -0.749314, -17.8179, -0.94087, 1.55712, -0.0384521, -0.479881, 1.02453, 0.0384521, 0.479881, -1.02453, -18.2686, 0.298787, -0.965812, -5.40546, 0.0544367, -0.106041, 5.40546, -0.0544367, 0.106041, -12.8151, 1.96112, -3.85685), -"tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0) -} -point_count = 6 - -[sub_resource type="Curve3D" id="Curve3D_7t5mc"] +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_dss4m"] +radius = 0.2 +height = 1.75 [node name="World" type="Node3D"] metadata/movie_file = "captures/b_.png" @@ -186,6 +180,7 @@ transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 3.1, 0 collision_layer = 0 collision_mask = 2 monitorable = false +script = ExtResource("14_lakw3") [node name="CollisionShape3D" type="CollisionShape3D" parent="DoorOpener"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.05282, 0.739908) @@ -268,36 +263,18 @@ shape = SubResource("BoxShape3D_7t5mc") [node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"] shape = SubResource("WorldBoundaryShape3D_dss4m") -[node name="CinematicCamera" type="Camera3D" parent="." node_paths=PackedStringArray("path", "target")] -cull_mask = 524287 -current = true -script = ExtResource("18_lakw3") -travel_time = 15.0 -path = NodePath("../B_Camera") -target = NodePath("../Target") +[node name="CharacterBody3D" type="CharacterBody3D" parent="." node_paths=PackedStringArray("camera")] +transform = Transform3D(0.258819, 0, 0.965926, 0, 1, 0, -0.965926, 0, 0.258819, 12.9999, 1.36224, -1.22552) +collision_layer = 3 +script = ExtResource("17_7t5mc") +camera = NodePath("Camera3D") +metadata/_edit_group_ = true -[node name="Target" type="MeshInstance3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 996.473, 0.638, -2.74) -layers = 524288 -mesh = SubResource("SphereMesh_lakw3") +[node name="Camera3D" type="Camera3D" parent="CharacterBody3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.925, 0) -[node name="A_FlyAround" type="Path3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15.0132, 3, -2.29886) -curve = SubResource("Curve3D_lakw3") - -[node name="PathFollow3D" type="PathFollow3D" parent="A_FlyAround"] -transform = Transform3D(0.0104181, 2.12225e-05, 0.999827, 0, 0.999999, -2.12211e-05, -0.999827, 2.21137e-07, 0.0104181, -6.02108, -1.2, -0.757503) - -[node name="B_Camera" type="Path3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1015.01, 3, -2.299) -curve = SubResource("Curve3D_lakw3") - -[node name="PathFollow3D" type="PathFollow3D" parent="B_Camera"] -transform = Transform3D(0.0104181, 2.12225e-05, 0.999827, 0, 0.999999, -2.12211e-05, -0.999827, 2.21137e-07, 0.0104181, -6.02108, -1.2, -0.757503) - -[node name="B_Target" type="Path3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 996.473, 0.638, -2.74) -curve = SubResource("Curve3D_7t5mc") +[node name="CollisionShape3D" type="CollisionShape3D" parent="CharacterBody3D"] +shape = SubResource("CapsuleShape3D_dss4m") [connection signal="body_entered" from="DoorOpener" to="House_Small/PortalDoor" method="open"] [connection signal="body_entered" from="DoorOpener" to="HouseBig" method="open_door"] diff --git a/scripts/door_opener.gd b/scripts/door_opener.gd new file mode 100644 index 0000000..bc2a5ce --- /dev/null +++ b/scripts/door_opener.gd @@ -0,0 +1,6 @@ +extends Area3D + + +func _process(delta: float) -> void: + if Input.is_key_pressed(KEY_E): + body_entered.emit(null) diff --git a/scripts/door_opener.gd.uid b/scripts/door_opener.gd.uid new file mode 100644 index 0000000..7a5c553 --- /dev/null +++ b/scripts/door_opener.gd.uid @@ -0,0 +1 @@ +uid://d2eiwbv6c3kcq From 700fed5a87647c3f61509ea2e7104b9d37861068 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojte=CC=8Cch=20Struha=CC=81r?= Date: Thu, 19 Jun 2025 00:10:14 +0200 Subject: [PATCH 2/3] Just record me going through the house --- .../house_big_10774354_scatter_cache.res | Bin 62810 -> 140894 bytes project.godot | 4 ++ scenes/house_big.tscn | 28 ++++---- scenes/world.tscn | 6 +- scripts/player.gd | 60 +++++++++++------- 5 files changed, 58 insertions(+), 40 deletions(-) diff --git a/addons/proton_scatter/cache/house_big_10774354_scatter_cache.res b/addons/proton_scatter/cache/house_big_10774354_scatter_cache.res index 875af07adf2fe347e028004bbfcc666ae8689b41..406cd150611422ce97cac6d30b3edffccaee4fc7 100644 GIT binary patch delta 78725 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 V;I@a!Prs&ul$I?*zd3%B{txO%Sl0jm delta 54 zcmcb2hU3;N<_$`WGU5yj3_1D9i8)sK`a!A1`K3k4sqy6o7UkItu9Nc^4Hy|W&u4u8 KnI$MV$Qb|xYZ7k& diff --git a/project.godot b/project.godot index 37cc13b..3061163 100644 --- a/project.godot +++ b/project.godot @@ -20,6 +20,10 @@ config/icon="res://icon.svg" window/size/viewport_width=1920 window/size/viewport_height=1080 +[editor] + +movie_writer/mjpeg_quality=0.9 + [editor_plugins] enabled=PackedStringArray("res://addons/portals/plugin.cfg", "res://addons/proton_scatter/plugin.cfg") diff --git a/scenes/house_big.tscn b/scenes/house_big.tscn index 677a78a..393e66f 100644 --- a/scenes/house_big.tscn +++ b/scenes/house_big.tscn @@ -60,7 +60,7 @@ albedo_color = Color(0.448364, 0.428649, 0.0977373, 1) [sub_resource type="BoxMesh" id="BoxMesh_kpybi"] size = Vector3(1000, 0.5, 1000) -[sub_resource type="Resource" id="Resource_nrbqc"] +[sub_resource type="Resource" id="Resource_u6m7x"] script = ExtResource("7_4hat2") amount = 1500 enabled = true @@ -69,7 +69,7 @@ custom_seed = 0 restrict_height = true reference_frame = 1 -[sub_resource type="Resource" id="Resource_1c0ay"] +[sub_resource type="Resource" id="Resource_nrbqc"] script = ExtResource("8_u6m7x") position = Vector3(0.15, 0.15, 0.15) rotation = Vector3(20, 360, 20) @@ -80,7 +80,7 @@ custom_seed = 0 restrict_height = false reference_frame = 2 -[sub_resource type="Resource" id="Resource_purgm"] +[sub_resource type="Resource" id="Resource_1c0ay"] script = ExtResource("9_nrbqc") iterations = 3 offset_step = 0.2 @@ -92,7 +92,7 @@ custom_seed = 0 restrict_height = true reference_frame = 0 -[sub_resource type="Resource" id="Resource_615iq"] +[sub_resource type="Resource" id="Resource_purgm"] script = ExtResource("10_1c0ay") ray_direction = Vector3(0, -1, 0) ray_length = 5.0 @@ -108,9 +108,9 @@ custom_seed = 0 restrict_height = false reference_frame = 0 -[sub_resource type="Resource" id="Resource_31h7w"] +[sub_resource type="Resource" id="Resource_615iq"] script = ExtResource("5_3bxb3") -stack = Array[ExtResource("6_53v87")]([SubResource("Resource_nrbqc"), SubResource("Resource_1c0ay"), SubResource("Resource_purgm"), SubResource("Resource_615iq")]) +stack = Array[ExtResource("6_53v87")]([SubResource("Resource_u6m7x"), SubResource("Resource_nrbqc"), SubResource("Resource_1c0ay"), SubResource("Resource_purgm")]) [sub_resource type="Resource" id="Resource_37qwj"] script = ExtResource("13_1c0ay") @@ -127,7 +127,7 @@ script = ExtResource("12_615iq") size = Vector3(15.4096, 1, 9.6442) metadata/_custom_type_script = "uid://d011g8ga6gea7" -[sub_resource type="Resource" id="Resource_ob3ci"] +[sub_resource type="Resource" id="Resource_31h7w"] script = ExtResource("7_4hat2") amount = 1200 enabled = true @@ -136,7 +136,7 @@ custom_seed = 0 restrict_height = true reference_frame = 1 -[sub_resource type="Resource" id="Resource_61s38"] +[sub_resource type="Resource" id="Resource_ob3ci"] script = ExtResource("8_u6m7x") position = Vector3(0.1, 0.15, 0.1) rotation = Vector3(10, 360, 10) @@ -147,7 +147,7 @@ custom_seed = 0 restrict_height = false reference_frame = 2 -[sub_resource type="Resource" id="Resource_p6hgd"] +[sub_resource type="Resource" id="Resource_61s38"] script = ExtResource("9_nrbqc") iterations = 3 offset_step = 0.2 @@ -159,7 +159,7 @@ custom_seed = 0 restrict_height = true reference_frame = 0 -[sub_resource type="Resource" id="Resource_o0mww"] +[sub_resource type="Resource" id="Resource_p6hgd"] script = ExtResource("10_1c0ay") ray_direction = Vector3(0, -1, 0) ray_length = 5.0 @@ -175,9 +175,9 @@ custom_seed = 0 restrict_height = false reference_frame = 0 -[sub_resource type="Resource" id="Resource_ckunl"] +[sub_resource type="Resource" id="Resource_o0mww"] script = ExtResource("5_3bxb3") -stack = Array[ExtResource("6_53v87")]([SubResource("Resource_ob3ci"), SubResource("Resource_61s38"), SubResource("Resource_p6hgd"), SubResource("Resource_o0mww")]) +stack = Array[ExtResource("6_53v87")]([SubResource("Resource_31h7w"), SubResource("Resource_ob3ci"), SubResource("Resource_61s38"), SubResource("Resource_p6hgd")]) [sub_resource type="Resource" id="Resource_f17e3"] script = ExtResource("12_615iq") @@ -209,7 +209,7 @@ metadata/_edit_lock_ = true [node name="ScatterGrass" type="Node3D" parent="Meadow"] script = ExtResource("4_u6m7x") force_rebuild_on_load = false -modifier_stack = SubResource("Resource_31h7w") +modifier_stack = SubResource("Resource_615iq") Performance/use_chunks = true Performance/chunk_dimensions = Vector3(15, 15, 15) metadata/_custom_type_script = "uid://mlpya7qid02x" @@ -252,7 +252,7 @@ metadata/_custom_type_script = "uid://bsl3en0gdt8ka" [node name="ScatterTrees" type="Node3D" parent="Meadow"] script = ExtResource("4_u6m7x") force_rebuild_on_load = false -modifier_stack = SubResource("Resource_ckunl") +modifier_stack = SubResource("Resource_o0mww") Performance/use_chunks = true Performance/chunk_dimensions = Vector3(15, 15, 15) metadata/_custom_type_script = "uid://mlpya7qid02x" diff --git a/scenes/world.tscn b/scenes/world.tscn index bd04baa..358edc4 100644 --- a/scenes/world.tscn +++ b/scenes/world.tscn @@ -84,7 +84,7 @@ radius = 0.2 height = 1.75 [node name="World" type="Node3D"] -metadata/movie_file = "captures/b_.png" +metadata/movie_file = "captures/e_.avi" [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_o8fc1") @@ -232,7 +232,7 @@ _teleport_area_path = NodePath("TeleportArea") _teleport_collider_path = NodePath("TeleportArea/Collider") portal_size = Vector2(1.5, 2.5) exit_portal = NodePath("../PortalSmall") -portal_frame_width = 0.0 +portal_frame_width = 1.0 viewport_size_mode = 0 view_direction = 1 portal_render_layer = 524288 @@ -264,7 +264,7 @@ shape = SubResource("BoxShape3D_7t5mc") shape = SubResource("WorldBoundaryShape3D_dss4m") [node name="CharacterBody3D" type="CharacterBody3D" parent="." node_paths=PackedStringArray("camera")] -transform = Transform3D(0.258819, 0, 0.965926, 0, 1, 0, -0.965926, 0, 0.258819, 12.9999, 1.36224, -1.22552) +transform = Transform3D(-0.524357, 0, 0.851498, 0, 1, 0, -0.851498, 0, -0.524357, 10.6968, 1.36224, -8.3989) collision_layer = 3 script = ExtResource("17_7t5mc") camera = NodePath("Camera3D") diff --git a/scripts/player.gd b/scripts/player.gd index 536ec9a..2fa9186 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -30,37 +30,51 @@ func _process(delta: float) -> void: rotation.y = lerp_angle(rotation.y, target_rotation.y, delta * ROTATION_SPEED) camera.rotation.x = lerp_angle(camera.rotation.x, target_rotation.x, delta * ROTATION_SPEED) - -func _physics_process(delta: float) -> void: - var right: Vector3 = (global_transform.basis.x * Vector3(1, 0, 1)).normalized() - var forward: Vector3 = (-global_transform.basis.z * Vector3(1, 0, 1)).normalized() - var has_input = false - velocity.x = 0 - velocity.z = 0 +const ACCELERATION := 10.0 +const DECELERATION := 6.0 + +var input_direction := Vector3.ZERO +var target_velocity := Vector3.ZERO + +func _get_input_direction() -> Vector3: + var direction := Vector3.ZERO if Input.is_key_pressed(KEY_LEFT) or Input.is_key_pressed(KEY_A): - has_input = true - velocity -= right + direction.x -= 1 if Input.is_key_pressed(KEY_RIGHT) or Input.is_key_pressed(KEY_D): - has_input = true - velocity += right + direction.x += 1 if Input.is_key_pressed(KEY_UP) or Input.is_key_pressed(KEY_W): - has_input = true - velocity += forward + direction.z += 1 if Input.is_key_pressed(KEY_DOWN) or Input.is_key_pressed(KEY_S): - has_input = true - velocity -= forward + direction.z -= 1 + return direction.normalized() + +func _physics_process(delta: float) -> void: + # Get input direction relative to player orientation + input_direction = _get_input_direction() - if has_input: - var normalized_horizontal_velocity = Vector2(velocity.x, velocity.z).normalized() - velocity.x = normalized_horizontal_velocity.x * SPEED - velocity.z = normalized_horizontal_velocity.y * SPEED + var basis := global_transform.basis + var forward := -basis.z.normalized() + var right := basis.x.normalized() + # Desired horizontal movement direction in world space + var desired_velocity : Vector3 = (right * input_direction.x + forward * input_direction.z) * SPEED + desired_velocity.y = 0 # Only horizontal + + # Smooth acceleration/deceleration + var accel := DECELERATION if input_direction == Vector3.ZERO else ACCELERATION + target_velocity.x = lerp(target_velocity.x, desired_velocity.x, accel * delta) + target_velocity.z = lerp(target_velocity.z, desired_velocity.z, accel * delta) + + # Preserve existing vertical velocity if not is_on_floor(): - velocity += get_gravity() * delta - - if Input.is_action_just_pressed("ui_accept") and is_on_floor(): - velocity.y = JUMP_VELOCITY + target_velocity.y += get_gravity().y * delta + else: + target_velocity.y = 0 + if Input.is_action_just_pressed("ui_accept"): + target_velocity.y = JUMP_VELOCITY + # Apply movement + velocity = target_velocity move_and_slide() From f0b8c0fd4893ac143bc79a6c2fcbeac3edd8a29b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojte=CC=8Cch=20Struha=CC=81r?= Date: Thu, 19 Jun 2025 14:19:10 +0200 Subject: [PATCH 3/3] Aesthetic improvements that won't be seen --- meshes/interior/Chandelier.gltf.import | 8 +++- scenes/house_big.tscn | 64 +++++++++++++++++--------- scenes/world.tscn | 6 ++- 3 files changed, 52 insertions(+), 26 deletions(-) diff --git a/meshes/interior/Chandelier.gltf.import b/meshes/interior/Chandelier.gltf.import index 2aaf22f..2a71547 100644 --- a/meshes/interior/Chandelier.gltf.import +++ b/meshes/interior/Chandelier.gltf.import @@ -32,6 +32,12 @@ animation/trimming=false animation/remove_immutable_tracks=true animation/import_rest_as_RESET=false import_script/path="" -_subresources={} +_subresources={ +"nodes": { +"PATH:Chandelier": { +"mesh_instance/cast_shadow": 0 +} +} +} gltf/naming_version=1 gltf/embedded_image_handling=1 diff --git a/scenes/house_big.tscn b/scenes/house_big.tscn index 393e66f..24323ca 100644 --- a/scenes/house_big.tscn +++ b/scenes/house_big.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=72 format=3 uid="uid://clxuoprslq8em"] +[gd_scene load_steps=73 format=3 uid="uid://clxuoprslq8em"] [ext_resource type="Script" uid="uid://4nvvgle511m4" path="res://scripts/house_big.gd" id="1_158ph"] [ext_resource type="PackedScene" uid="uid://wsu3b5udqtdu" path="res://meshes/village/Wall_UnevenBrick_Straight.gltf" id="1_p6qno"] @@ -53,6 +53,7 @@ [ext_resource type="PackedScene" uid="uid://ghgretojabc1" path="res://meshes/interior/Vase_4.gltf" id="40_4hat2"] [ext_resource type="PackedScene" uid="uid://co7ijbeyonv5" path="res://meshes/interior/Book_5.gltf" id="41_u6m7x"] [ext_resource type="PackedScene" uid="uid://d1imd6qqtgy2e" path="res://meshes/village/Stair_Interior_Rails.gltf" id="42_isn6p"] +[ext_resource type="PackedScene" uid="uid://c3myqiuhgghyo" path="res://meshes/interior/Lantern_Wall.gltf" id="54_nrbqc"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dss4m"] albedo_color = Color(0.448364, 0.428649, 0.0977373, 1) @@ -60,7 +61,7 @@ albedo_color = Color(0.448364, 0.428649, 0.0977373, 1) [sub_resource type="BoxMesh" id="BoxMesh_kpybi"] size = Vector3(1000, 0.5, 1000) -[sub_resource type="Resource" id="Resource_u6m7x"] +[sub_resource type="Resource" id="Resource_nrbqc"] script = ExtResource("7_4hat2") amount = 1500 enabled = true @@ -69,7 +70,7 @@ custom_seed = 0 restrict_height = true reference_frame = 1 -[sub_resource type="Resource" id="Resource_nrbqc"] +[sub_resource type="Resource" id="Resource_1c0ay"] script = ExtResource("8_u6m7x") position = Vector3(0.15, 0.15, 0.15) rotation = Vector3(20, 360, 20) @@ -80,7 +81,7 @@ custom_seed = 0 restrict_height = false reference_frame = 2 -[sub_resource type="Resource" id="Resource_1c0ay"] +[sub_resource type="Resource" id="Resource_purgm"] script = ExtResource("9_nrbqc") iterations = 3 offset_step = 0.2 @@ -92,7 +93,7 @@ custom_seed = 0 restrict_height = true reference_frame = 0 -[sub_resource type="Resource" id="Resource_purgm"] +[sub_resource type="Resource" id="Resource_615iq"] script = ExtResource("10_1c0ay") ray_direction = Vector3(0, -1, 0) ray_length = 5.0 @@ -108,9 +109,9 @@ custom_seed = 0 restrict_height = false reference_frame = 0 -[sub_resource type="Resource" id="Resource_615iq"] +[sub_resource type="Resource" id="Resource_31h7w"] script = ExtResource("5_3bxb3") -stack = Array[ExtResource("6_53v87")]([SubResource("Resource_u6m7x"), SubResource("Resource_nrbqc"), SubResource("Resource_1c0ay"), SubResource("Resource_purgm")]) +stack = Array[ExtResource("6_53v87")]([SubResource("Resource_nrbqc"), SubResource("Resource_1c0ay"), SubResource("Resource_purgm"), SubResource("Resource_615iq")]) [sub_resource type="Resource" id="Resource_37qwj"] script = ExtResource("13_1c0ay") @@ -127,7 +128,7 @@ script = ExtResource("12_615iq") size = Vector3(15.4096, 1, 9.6442) metadata/_custom_type_script = "uid://d011g8ga6gea7" -[sub_resource type="Resource" id="Resource_31h7w"] +[sub_resource type="Resource" id="Resource_ob3ci"] script = ExtResource("7_4hat2") amount = 1200 enabled = true @@ -136,7 +137,7 @@ custom_seed = 0 restrict_height = true reference_frame = 1 -[sub_resource type="Resource" id="Resource_ob3ci"] +[sub_resource type="Resource" id="Resource_61s38"] script = ExtResource("8_u6m7x") position = Vector3(0.1, 0.15, 0.1) rotation = Vector3(10, 360, 10) @@ -147,7 +148,7 @@ custom_seed = 0 restrict_height = false reference_frame = 2 -[sub_resource type="Resource" id="Resource_61s38"] +[sub_resource type="Resource" id="Resource_p6hgd"] script = ExtResource("9_nrbqc") iterations = 3 offset_step = 0.2 @@ -159,7 +160,7 @@ custom_seed = 0 restrict_height = true reference_frame = 0 -[sub_resource type="Resource" id="Resource_p6hgd"] +[sub_resource type="Resource" id="Resource_o0mww"] script = ExtResource("10_1c0ay") ray_direction = Vector3(0, -1, 0) ray_length = 5.0 @@ -175,9 +176,9 @@ custom_seed = 0 restrict_height = false reference_frame = 0 -[sub_resource type="Resource" id="Resource_o0mww"] +[sub_resource type="Resource" id="Resource_ckunl"] script = ExtResource("5_3bxb3") -stack = Array[ExtResource("6_53v87")]([SubResource("Resource_31h7w"), SubResource("Resource_ob3ci"), SubResource("Resource_61s38"), SubResource("Resource_p6hgd")]) +stack = Array[ExtResource("6_53v87")]([SubResource("Resource_ob3ci"), SubResource("Resource_61s38"), SubResource("Resource_p6hgd"), SubResource("Resource_o0mww")]) [sub_resource type="Resource" id="Resource_f17e3"] script = ExtResource("12_615iq") @@ -209,7 +210,7 @@ metadata/_edit_lock_ = true [node name="ScatterGrass" type="Node3D" parent="Meadow"] script = ExtResource("4_u6m7x") force_rebuild_on_load = false -modifier_stack = SubResource("Resource_615iq") +modifier_stack = SubResource("Resource_31h7w") Performance/use_chunks = true Performance/chunk_dimensions = Vector3(15, 15, 15) metadata/_custom_type_script = "uid://mlpya7qid02x" @@ -252,7 +253,7 @@ metadata/_custom_type_script = "uid://bsl3en0gdt8ka" [node name="ScatterTrees" type="Node3D" parent="Meadow"] script = ExtResource("4_u6m7x") force_rebuild_on_load = false -modifier_stack = SubResource("Resource_o0mww") +modifier_stack = SubResource("Resource_ckunl") Performance/use_chunks = true Performance/chunk_dimensions = Vector3(15, 15, 15) metadata/_custom_type_script = "uid://mlpya7qid02x" @@ -549,26 +550,30 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.9, 6, -3.5) [node name="OmniLight3D" type="OmniLight3D" parent="WallsAndShit/Chandelier2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0676376, -0.834157, 0.600262) light_color = Color(0.860136, 0.848595, 0.752131, 1) -light_energy = 0.961 -omni_range = 5.751 +light_energy = 0.576 +shadow_enabled = true +omni_range = 6.338 [node name="OmniLight3D2" type="OmniLight3D" parent="WallsAndShit/Chandelier2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0676376, -0.834157, -0.548677) light_color = Color(0.860136, 0.848595, 0.752131, 1) -light_energy = 0.961 -omni_range = 5.751 +light_energy = 0.576 +shadow_enabled = true +omni_range = 6.338 [node name="OmniLight3D3" type="OmniLight3D" parent="WallsAndShit/Chandelier2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.632596, -0.834157, -0.00643849) light_color = Color(0.860136, 0.848595, 0.752131, 1) -light_energy = 0.961 -omni_range = 5.751 +light_energy = 0.576 +shadow_enabled = true +omni_range = 6.338 [node name="OmniLight3D4" type="OmniLight3D" parent="WallsAndShit/Chandelier2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.572049, -0.834157, 0.00770402) light_color = Color(0.860136, 0.848595, 0.752131, 1) -light_energy = 0.961 -omni_range = 5.751 +light_energy = 0.576 +shadow_enabled = true +omni_range = 6.338 [node name="Bed_Twin12" parent="WallsAndShit" instance=ExtResource("21_77p6n")] transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -5.6, 0.3, -0.7) @@ -765,6 +770,19 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.60376, 0.0895298, -6.71063) [node name="Stair_Interior_Rails2" parent="WallsAndShit" instance=ExtResource("42_isn6p")] transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -0.185164, 0.0756873, -6.01873) +[node name="Lantern_Wall2" parent="WallsAndShit" instance=ExtResource("54_nrbqc")] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -6.2387, 6.11833, -3.1478) + +[node name="OmniLight3D" type="OmniLight3D" parent="WallsAndShit/Lantern_Wall2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.310703, 0.836766) +light_color = Color(0.873324, 0.836156, 0.57236, 1) +light_energy = 0.346 +light_size = 0.031 +light_bake_mode = 1 +shadow_blur = 2.971 +omni_range = 6.692 +omni_attenuation = 0.486 + [node name="NecessaryColliders" type="StaticBody3D" parent="."] [node name="BalconyGround" type="CollisionShape3D" parent="NecessaryColliders"] diff --git a/scenes/world.tscn b/scenes/world.tscn index 358edc4..c837eac 100644 --- a/scenes/world.tscn +++ b/scenes/world.tscn @@ -34,9 +34,11 @@ ambient_light_color = Color(0.939669, 0.875855, 0.802177, 1) ambient_light_energy = 0.2 tonemap_mode = 3 ssao_enabled = true -ssao_intensity = 5.0 +ssao_power = 0.75 +ssil_enabled = true fog_density = 0.0051 fog_sky_affect = 0.23 +adjustment_enabled = true [sub_resource type="BoxShape3D" id="BoxShape3D_q5onr"] size = Vector3(1.83496, 2.19373, 1.46497) @@ -84,7 +86,7 @@ radius = 0.2 height = 1.75 [node name="World" type="Node3D"] -metadata/movie_file = "captures/e_.avi" +metadata/movie_file = "captures/f_.avi" [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_o8fc1")