diff --git a/.gitignore b/.gitignore index 21cb221..2f120f2 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ .godot/ /android/ .DS_Store +captures/* +!captures/.gdignore diff --git a/addons/proton_scatter/cache/house_big_10774354_scatter_cache.res b/addons/proton_scatter/cache/house_big_10774354_scatter_cache.res new file mode 100644 index 0000000..875af07 Binary files /dev/null and b/addons/proton_scatter/cache/house_big_10774354_scatter_cache.res differ diff --git a/addons/proton_scatter/cache/meadow_1404399578_scatter_cache.res b/addons/proton_scatter/cache/meadow_1404399578_scatter_cache.res new file mode 100644 index 0000000..5eabb6c Binary files /dev/null and b/addons/proton_scatter/cache/meadow_1404399578_scatter_cache.res differ diff --git a/captures/.gdignore b/captures/.gdignore new file mode 100644 index 0000000..e69de29 diff --git a/scenes/house_big.tscn b/scenes/house_big.tscn index 2678b9c..677a78a 100644 --- a/scenes/house_big.tscn +++ b/scenes/house_big.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=71 format=3 uid="uid://clxuoprslq8em"] +[gd_scene load_steps=72 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"] @@ -25,6 +25,7 @@ [ext_resource type="PackedScene" uid="uid://di0splvet24bj" path="res://meshes/village/Corner_Interior_Small.gltf" id="13_fp7uc"] [ext_resource type="PackedScene" uid="uid://duvcn6t2vv8ld" path="res://meshes/interior/Bookcase_2.gltf" id="14_tp3c1"] [ext_resource type="PackedScene" uid="uid://e5chiaecfb3h" path="res://meshes/interior/BookGroup_Medium_1.gltf" id="15_abcjp"] +[ext_resource type="Script" uid="uid://bfr4urrxjg8sm" path="res://addons/proton_scatter/src/cache/scatter_cache.gd" id="15_u6m7x"] [ext_resource type="PackedScene" uid="uid://c7oppbvnch75o" path="res://meshes/interior/BookGroup_Small_2.gltf" id="16_3kjtd"] [ext_resource type="PackedScene" uid="uid://cw2nkxh0q1rd8" path="res://meshes/interior/Book_Stack_2.gltf" id="17_ah86a"] [ext_resource type="PackedScene" uid="uid://b0pjo7hna5kdm" path="res://meshes/village/Roof_RoundTiles_8x8.gltf" id="18_k1p6y"] @@ -59,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_4hat2"] +[sub_resource type="Resource" id="Resource_nrbqc"] script = ExtResource("7_4hat2") amount = 1500 enabled = true @@ -68,7 +69,7 @@ custom_seed = 0 restrict_height = true reference_frame = 1 -[sub_resource type="Resource" id="Resource_u6m7x"] +[sub_resource type="Resource" id="Resource_1c0ay"] script = ExtResource("8_u6m7x") position = Vector3(0.15, 0.15, 0.15) rotation = Vector3(20, 360, 20) @@ -79,7 +80,7 @@ custom_seed = 0 restrict_height = false reference_frame = 2 -[sub_resource type="Resource" id="Resource_nrbqc"] +[sub_resource type="Resource" id="Resource_purgm"] script = ExtResource("9_nrbqc") iterations = 3 offset_step = 0.2 @@ -91,7 +92,7 @@ custom_seed = 0 restrict_height = true reference_frame = 0 -[sub_resource type="Resource" id="Resource_1c0ay"] +[sub_resource type="Resource" id="Resource_615iq"] script = ExtResource("10_1c0ay") ray_direction = Vector3(0, -1, 0) ray_length = 5.0 @@ -107,9 +108,9 @@ custom_seed = 0 restrict_height = false reference_frame = 0 -[sub_resource type="Resource" id="Resource_purgm"] +[sub_resource type="Resource" id="Resource_31h7w"] script = ExtResource("5_3bxb3") -stack = Array[ExtResource("6_53v87")]([SubResource("Resource_4hat2"), SubResource("Resource_u6m7x"), SubResource("Resource_nrbqc"), SubResource("Resource_1c0ay")]) +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") @@ -126,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_615iq"] +[sub_resource type="Resource" id="Resource_ob3ci"] script = ExtResource("7_4hat2") amount = 1200 enabled = true @@ -135,7 +136,7 @@ custom_seed = 0 restrict_height = true reference_frame = 1 -[sub_resource type="Resource" id="Resource_31h7w"] +[sub_resource type="Resource" id="Resource_61s38"] script = ExtResource("8_u6m7x") position = Vector3(0.1, 0.15, 0.1) rotation = Vector3(10, 360, 10) @@ -146,7 +147,7 @@ custom_seed = 0 restrict_height = false reference_frame = 2 -[sub_resource type="Resource" id="Resource_ob3ci"] +[sub_resource type="Resource" id="Resource_p6hgd"] script = ExtResource("9_nrbqc") iterations = 3 offset_step = 0.2 @@ -158,7 +159,7 @@ custom_seed = 0 restrict_height = true reference_frame = 0 -[sub_resource type="Resource" id="Resource_61s38"] +[sub_resource type="Resource" id="Resource_o0mww"] script = ExtResource("10_1c0ay") ray_direction = Vector3(0, -1, 0) ray_length = 5.0 @@ -174,9 +175,9 @@ custom_seed = 0 restrict_height = false reference_frame = 0 -[sub_resource type="Resource" id="Resource_p6hgd"] +[sub_resource type="Resource" id="Resource_ckunl"] script = ExtResource("5_3bxb3") -stack = Array[ExtResource("6_53v87")]([SubResource("Resource_615iq"), SubResource("Resource_31h7w"), SubResource("Resource_ob3ci"), SubResource("Resource_61s38")]) +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") @@ -207,7 +208,8 @@ metadata/_edit_lock_ = true [node name="ScatterGrass" type="Node3D" parent="Meadow"] script = ExtResource("4_u6m7x") -modifier_stack = SubResource("Resource_purgm") +force_rebuild_on_load = false +modifier_stack = SubResource("Resource_31h7w") Performance/use_chunks = true Performance/chunk_dimensions = Vector3(15, 15, 15) metadata/_custom_type_script = "uid://mlpya7qid02x" @@ -249,7 +251,8 @@ metadata/_custom_type_script = "uid://bsl3en0gdt8ka" [node name="ScatterTrees" type="Node3D" parent="Meadow"] script = ExtResource("4_u6m7x") -modifier_stack = SubResource("Resource_p6hgd") +force_rebuild_on_load = false +modifier_stack = SubResource("Resource_ckunl") Performance/use_chunks = true Performance/chunk_dimensions = Vector3(15, 15, 15) metadata/_custom_type_script = "uid://mlpya7qid02x" @@ -276,6 +279,11 @@ negative = true shape = SubResource("Resource_x2olw") metadata/_custom_type_script = "uid://bsl3en0gdt8ka" +[node name="ScatterCache" type="Node3D" parent="Meadow"] +script = ExtResource("15_u6m7x") +cache_file = "res://addons/proton_scatter/cache/house_big_10774354_scatter_cache.res" +metadata/_custom_type_script = "uid://bfr4urrxjg8sm" + [node name="WallsAndShit" type="Node3D" parent="."] [node name="Overhang_UnevenBrick_Corner_Front3" parent="WallsAndShit" instance=ExtResource("5_k70vi")] diff --git a/scenes/meadow.tscn b/scenes/meadow.tscn index b119bd2..f5de4fb 100644 --- a/scenes/meadow.tscn +++ b/scenes/meadow.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=28 format=3 uid="uid://ewd06ff76y0i"] +[gd_scene load_steps=29 format=3 uid="uid://ewd06ff76y0i"] [ext_resource type="Script" uid="uid://mlpya7qid02x" path="res://addons/proton_scatter/src/scatter.gd" id="1_0swbt"] [ext_resource type="Script" uid="uid://dr0q8wis1hmem" path="res://addons/proton_scatter/src/stack/modifier_stack.gd" id="2_gnqbt"] @@ -11,6 +11,7 @@ [ext_resource type="Script" uid="uid://bsl3en0gdt8ka" path="res://addons/proton_scatter/src/scatter_shape.gd" id="9_88tl0"] [ext_resource type="Script" uid="uid://djsvn08xssx6k" path="res://addons/proton_scatter/src/shapes/sphere_shape.gd" id="10_g5616"] [ext_resource type="Script" uid="uid://d011g8ga6gea7" path="res://addons/proton_scatter/src/shapes/box_shape.gd" id="11_woep0"] +[ext_resource type="Script" uid="uid://bfr4urrxjg8sm" path="res://addons/proton_scatter/src/cache/scatter_cache.gd" id="12_0swbt"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dss4m"] albedo_color = Color(0.448364, 0.428649, 0.0977373, 1) @@ -18,7 +19,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_0swbt"] +[sub_resource type="Resource" id="Resource_gnqbt"] script = ExtResource("4_kn6t7") amount = 1500 enabled = true @@ -27,7 +28,7 @@ custom_seed = 0 restrict_height = true reference_frame = 1 -[sub_resource type="Resource" id="Resource_gnqbt"] +[sub_resource type="Resource" id="Resource_emo2u"] script = ExtResource("5_7l28j") position = Vector3(0.15, 0.15, 0.15) rotation = Vector3(20, 360, 20) @@ -38,7 +39,7 @@ custom_seed = 0 restrict_height = false reference_frame = 2 -[sub_resource type="Resource" id="Resource_emo2u"] +[sub_resource type="Resource" id="Resource_kn6t7"] script = ExtResource("6_tlhyx") iterations = 3 offset_step = 0.2 @@ -50,7 +51,7 @@ custom_seed = 0 restrict_height = true reference_frame = 0 -[sub_resource type="Resource" id="Resource_kn6t7"] +[sub_resource type="Resource" id="Resource_7l28j"] script = ExtResource("7_px0u5") ray_direction = Vector3(0, -1, 0) ray_length = 5.0 @@ -66,9 +67,9 @@ custom_seed = 0 restrict_height = false reference_frame = 0 -[sub_resource type="Resource" id="Resource_7l28j"] +[sub_resource type="Resource" id="Resource_tlhyx"] script = ExtResource("2_gnqbt") -stack = Array[ExtResource("3_emo2u")]([SubResource("Resource_0swbt"), SubResource("Resource_gnqbt"), SubResource("Resource_emo2u"), SubResource("Resource_kn6t7")]) +stack = Array[ExtResource("3_emo2u")]([SubResource("Resource_gnqbt"), SubResource("Resource_emo2u"), SubResource("Resource_kn6t7"), SubResource("Resource_7l28j")]) [sub_resource type="Resource" id="Resource_37qwj"] script = ExtResource("10_g5616") @@ -80,7 +81,7 @@ script = ExtResource("11_woep0") size = Vector3(5.47877, 1, 7.53509) metadata/_custom_type_script = "uid://d011g8ga6gea7" -[sub_resource type="Resource" id="Resource_tlhyx"] +[sub_resource type="Resource" id="Resource_px0u5"] script = ExtResource("4_kn6t7") amount = 1200 enabled = true @@ -89,7 +90,7 @@ custom_seed = 0 restrict_height = true reference_frame = 1 -[sub_resource type="Resource" id="Resource_px0u5"] +[sub_resource type="Resource" id="Resource_igrg6"] script = ExtResource("5_7l28j") position = Vector3(0.1, 0.15, 0.1) rotation = Vector3(10, 360, 10) @@ -100,7 +101,7 @@ custom_seed = 0 restrict_height = false reference_frame = 2 -[sub_resource type="Resource" id="Resource_igrg6"] +[sub_resource type="Resource" id="Resource_88tl0"] script = ExtResource("6_tlhyx") iterations = 3 offset_step = 0.2 @@ -112,7 +113,7 @@ custom_seed = 0 restrict_height = true reference_frame = 0 -[sub_resource type="Resource" id="Resource_88tl0"] +[sub_resource type="Resource" id="Resource_g5616"] script = ExtResource("7_px0u5") ray_direction = Vector3(0, -1, 0) ray_length = 5.0 @@ -128,9 +129,9 @@ custom_seed = 0 restrict_height = false reference_frame = 0 -[sub_resource type="Resource" id="Resource_g5616"] +[sub_resource type="Resource" id="Resource_woep0"] script = ExtResource("2_gnqbt") -stack = Array[ExtResource("3_emo2u")]([SubResource("Resource_tlhyx"), SubResource("Resource_px0u5"), SubResource("Resource_igrg6"), SubResource("Resource_88tl0")]) +stack = Array[ExtResource("3_emo2u")]([SubResource("Resource_px0u5"), SubResource("Resource_igrg6"), SubResource("Resource_88tl0"), SubResource("Resource_g5616")]) [sub_resource type="Resource" id="Resource_f17e3"] script = ExtResource("11_woep0") @@ -148,7 +149,8 @@ mesh = SubResource("BoxMesh_kpybi") [node name="ScatterGrass" type="Node3D" parent="."] script = ExtResource("1_0swbt") -modifier_stack = SubResource("Resource_7l28j") +force_rebuild_on_load = false +modifier_stack = SubResource("Resource_tlhyx") Performance/use_chunks = true Performance/chunk_dimensions = Vector3(15, 15, 15) metadata/_custom_type_script = "uid://mlpya7qid02x" @@ -182,7 +184,8 @@ metadata/_custom_type_script = "uid://bsl3en0gdt8ka" [node name="ScatterTrees" type="Node3D" parent="."] script = ExtResource("1_0swbt") -modifier_stack = SubResource("Resource_g5616") +force_rebuild_on_load = false +modifier_stack = SubResource("Resource_woep0") Performance/use_chunks = true Performance/chunk_dimensions = Vector3(15, 15, 15) metadata/_custom_type_script = "uid://mlpya7qid02x" @@ -208,3 +211,8 @@ script = ExtResource("9_88tl0") negative = true shape = SubResource("Resource_x2olw") metadata/_custom_type_script = "uid://bsl3en0gdt8ka" + +[node name="ScatterCache" type="Node3D" parent="."] +script = ExtResource("12_0swbt") +cache_file = "res://addons/proton_scatter/cache/meadow_1404399578_scatter_cache.res" +metadata/_custom_type_script = "uid://bfr4urrxjg8sm" diff --git a/scenes/world.tscn b/scenes/world.tscn index 1285736..c13a8eb 100644 --- a/scenes/world.tscn +++ b/scenes/world.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=28 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"] @@ -14,9 +14,9 @@ [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://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="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"] -[ext_resource type="Script" uid="uid://d2crarvkhd45r" path="res://scripts/player.gd" id="23_kpybi"] [sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_q5onr"] panorama = ExtResource("1_w7kh3") @@ -37,10 +37,6 @@ ssao_intensity = 5.0 fog_density = 0.0051 fog_sky_affect = 0.23 -[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_ctatt"] -radius = 0.4 -height = 1.75 - [sub_resource type="BoxShape3D" id="BoxShape3D_q5onr"] size = Vector3(1.83496, 2.19373, 1.46497) @@ -82,6 +78,15 @@ 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(0, 0, 0, 0, 0, 0, -0.489602, 2, 1.0528, 1.33258, 0, -1.33258, -1.33258, 0, 1.33258, -4.78907, 1, 2.00823, 1.96116, 0, -1.70973, -1.96116, 0, 1.70973, -8.76168, 0, 8.84715, 2.26288, 0, 1.33258, -2.26288, 0, -1.33258, -20.4532, 0, 9.17401, 0.301716, 0, 4.92804, -0.301716, 0, -4.92804, -24.9035, 0, 0.851653, -2.7406, 0, 1.83544, 2.7406, 0, -1.83544, -19.9503, 0, -8.37586, -3.04231, 0, -1.9863, 3.04231, 0, 1.9863, -8.98796, 0, -8.225, 0, 0, 0, 0, 0, 0, -6.02108, -1.2, -0.757503), +"tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0) +} +point_count = 8 + [node name="World" type="Node3D"] [node name="WorldEnvironment" type="WorldEnvironment" parent="."] @@ -93,19 +98,7 @@ light_color = Color(0.939669, 0.875855, 0.802177, 1) light_energy = 2.0 light_bake_mode = 1 shadow_enabled = true - -[node name="Player" type="CharacterBody3D" parent="." node_paths=PackedStringArray("camera")] -transform = Transform3D(-0.658689, 0, 0.752415, 0, 1, 0, -0.752415, 0, -0.658689, 12.1193, 1.93814, -3.63533) -collision_layer = 3 -script = ExtResource("23_kpybi") -camera = NodePath("Camera3D") -metadata/_edit_group_ = true - -[node name="CollisionShape3D" type="CollisionShape3D" parent="Player"] -shape = SubResource("CapsuleShape3D_ctatt") - -[node name="Camera3D" type="Camera3D" parent="Player"] -transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, 0.7, 0) +directional_shadow_blend_splits = true [node name="Meadow" parent="." instance=ExtResource("3_jhx03")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.25, 0) @@ -272,5 +265,26 @@ 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", "follower", "target")] +cull_mask = 524287 +current = true +script = ExtResource("18_lakw3") +travel_time = 10.0 +path = NodePath("../A_FlyAround") +follower = NodePath("../A_FlyAround/PathFollow3D") +target = NodePath("../Target") + +[node name="Target" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.12776, 0.638181, -3.20715) +layers = 524288 +mesh = SubResource("SphereMesh_lakw3") + +[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.21693, -0.21614, 0.951955, 0, 0.975179, 0.221412, -0.976186, 0.0480312, -0.211546, -0.489602, 2, 1.0528) + [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/cinematic_camera.gd b/scripts/cinematic_camera.gd new file mode 100644 index 0000000..2b7ae1b --- /dev/null +++ b/scripts/cinematic_camera.gd @@ -0,0 +1,21 @@ +extends Camera3D + +@export_range(1, 100, 0.1, "suffix:s") var travel_time: float +@export var path: Path3D +@export var follower: PathFollow3D +@export var target: MeshInstance3D + +func _ready() -> void: + assert (path != null) + assert(follower != null) + assert(target != null) + + var t = get_tree().create_tween() + t.set_trans(Tween.TRANS_CUBIC) + t.set_ease(Tween.EASE_IN_OUT) + t.tween_property(follower, "progress_ratio", 1, travel_time) + t.tween_callback(get_tree().quit.bind(0)) + +func _process(delta: float) -> void: + look_at(target.global_position) + global_position = follower.global_position diff --git a/scripts/cinematic_camera.gd.uid b/scripts/cinematic_camera.gd.uid new file mode 100644 index 0000000..1b11033 --- /dev/null +++ b/scripts/cinematic_camera.gd.uid @@ -0,0 +1 @@ +uid://co2pjpdo4nyto