biome generator
This commit is contained in:
BIN
docs/museums/biome_generator/main_train.fbx
Normal file
BIN
docs/museums/biome_generator/main_train.fbx
Normal file
Binary file not shown.
44
docs/museums/biome_generator/main_train.fbx.import
Normal file
44
docs/museums/biome_generator/main_train.fbx.import
Normal file
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://bowkbyxbq2jg2"
|
||||
path="res://.godot/imported/main_train.fbx-3c77896af69edc972695e761c4bf8e47.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/museums/biome_generator/main_train.fbx"
|
||||
dest_files=["res://.godot/imported/main_train.fbx-3c77896af69edc972695e761c4bf8e47.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/root_script=null
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
nodes/use_name_suffixes=true
|
||||
nodes/use_node_type_suffixes=true
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=true
|
||||
animation/remove_immutable_tracks=true
|
||||
animation/import_rest_as_RESET=false
|
||||
import_script/path=""
|
||||
materials/extract=0
|
||||
materials/extract_format=0
|
||||
materials/extract_path=""
|
||||
_subresources={}
|
||||
fbx/importer=0
|
||||
fbx/allow_geometry_helper_nodes=false
|
||||
fbx/embedded_image_handling=1
|
||||
fbx/naming_version=2
|
||||
153
docs/museums/biome_generator/main_train.tscn
Normal file
153
docs/museums/biome_generator/main_train.tscn
Normal file
@@ -0,0 +1,153 @@
|
||||
[gd_scene format=3 uid="uid://dvk3bytqn3m5s"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bowkbyxbq2jg2" path="res://docs/museums/biome_generator/main_train.fbx" id="1_8k78i"]
|
||||
[ext_resource type="Material" path="res://docs/museums/biome_generator/train1.tres" id="2_crne2"]
|
||||
[ext_resource type="Material" path="res://docs/museums/biome_generator/train2.tres" id="3_tf27f"]
|
||||
[ext_resource type="Material" path="res://docs/museums/biome_generator/train3.tres" id="4_e08y7"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_tvivt"]
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_8k78i"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_crne2"]
|
||||
emission_enabled = true
|
||||
emission = Color(0.59849787, 0.2744873, 0.018916829, 1)
|
||||
emission_energy_multiplier = 14.84
|
||||
|
||||
[node name="Train2" unique_id=206892833 groups=["weather_node", "wind_node"] instance=ExtResource("1_8k78i")]
|
||||
transform = Transform3D(-0.85, 0, -1.2834644e-07, 0, 0.85, 0, 1.2834644e-07, 0, -0.85, 0, 0, 0)
|
||||
|
||||
[node name="polySurface3708_002" parent="." index="0" unique_id=1080693866]
|
||||
transform = Transform3D(99.99998, 0, 0, 0, -4.3711375e-06, 99.99999, 0, -99.99997, -4.3711384e-06, 0, 1.5, 0)
|
||||
material_overlay = SubResource("ShaderMaterial_tvivt")
|
||||
surface_material_override/0 = ExtResource("2_crne2")
|
||||
surface_material_override/1 = ExtResource("3_tf27f")
|
||||
surface_material_override/2 = ExtResource("2_crne2")
|
||||
surface_material_override/3 = ExtResource("4_e08y7")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="1" unique_id=1403632389]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.668482, 1.6818931, 2.5172625, 1.2770853)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="." index="2" unique_id=1336101020]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.668482, 1.6125782, 2.5172625, 2.9643514)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D28" type="MeshInstance3D" parent="." index="3" unique_id=311730556]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.668482, 1.640722, 2.5172625, -4.04725)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D29" type="MeshInstance3D" parent="." index="4" unique_id=1304381077]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.668482, 1.640722, 2.5172625, -2.4448335)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="." index="5" unique_id=663441243]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.47599128, 1.640722, 2.5172625, 6.115757)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D37" type="MeshInstance3D" parent="." index="6" unique_id=332999290]
|
||||
transform = Transform3D(1.5214157e-15, -4.371139e-08, -1.4922415, -0.796267, -4.371139e-08, 0, -3.4805936e-08, 1, -6.522796e-08, 0.00024104083, 2.668277, 8.483847)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D30" type="MeshInstance3D" parent="." index="7" unique_id=1998746087]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.47599128, 1.640722, 2.5172625, -7.2599697)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D4" type="MeshInstance3D" parent="." index="8" unique_id=1980372157]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, 5.212925)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D5" type="MeshInstance3D" parent="." index="9" unique_id=122016874]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, 4.909999)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D6" type="MeshInstance3D" parent="." index="10" unique_id=962812717]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, 4.59173)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D7" type="MeshInstance3D" parent="." index="11" unique_id=1668544912]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, 4.283636)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D8" type="MeshInstance3D" parent="." index="12" unique_id=1387960824]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, -0.085068464)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D9" type="MeshInstance3D" parent="." index="13" unique_id=1969224680]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, -0.387995)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D10" type="MeshInstance3D" parent="." index="14" unique_id=3545667]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, -0.7062633)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D11" type="MeshInstance3D" parent="." index="15" unique_id=719869989]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, -1.0143578)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D12" type="MeshInstance3D" parent="." index="16" unique_id=424215252]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, -5.405431)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D13" type="MeshInstance3D" parent="." index="17" unique_id=593531465]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, -5.708358)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D14" type="MeshInstance3D" parent="." index="18" unique_id=1495729886]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, -6.0266256)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="MeshInstance3D15" type="MeshInstance3D" parent="." index="19" unique_id=1576847092]
|
||||
transform = Transform3D(-2.4656883e-08, 1, 0, -0.5640837, -4.371139e-08, 0, 0, 0, 0.1321082, 1.6305791, 2.5172625, -6.3347206)
|
||||
mesh = SubResource("PlaneMesh_8k78i")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_crne2")
|
||||
|
||||
[node name="OmniLight3D" type="OmniLight3D" parent="." index="20" unique_id=1693942993]
|
||||
transform = Transform3D(1, 0, 0, 0, -1.1920932e-07, -1, 0, 1, -1.1920932e-07, -0.9650913, 1.3310676, 8.449412)
|
||||
light_color = Color(0.9818843, 0.6206694, 0.26694176, 1)
|
||||
omni_range = 0.437
|
||||
omni_attenuation = 0.367
|
||||
|
||||
[node name="OmniLight3D2" type="OmniLight3D" parent="." index="21" unique_id=1965838060]
|
||||
transform = Transform3D(1, 0, 0, 0, -1.1920932e-07, -1, 0, 1, -1.1920932e-07, 0.9597263, 1.3310676, 8.449412)
|
||||
light_color = Color(0.9818843, 0.6206694, 0.26694176, 1)
|
||||
omni_range = 0.437
|
||||
omni_attenuation = 0.367
|
||||
|
||||
[node name="SpotLight3D2" type="SpotLight3D" parent="OmniLight3D2" index="0" unique_id=1940430623]
|
||||
transform = Transform3D(-0.9991066, -0.0071844957, -0.041647904, 0.039682645, 0.1795881, -0.9829413, 0.014541405, -0.98371583, -0.17914255, -2.2325838, -0.021801949, -0.18683863)
|
||||
light_color = Color(0.8039216, 0.6784314, 0.3254902, 1)
|
||||
light_energy = 4.0
|
||||
light_cull_mask = 4294967293
|
||||
spot_range = 18.0
|
||||
spot_attenuation = 1.2
|
||||
spot_angle = 35.0
|
||||
spot_angle_attenuation = 8.876516
|
||||
|
||||
[node name="SpotLight3D3" type="SpotLight3D" parent="OmniLight3D2" index="1" unique_id=1754775574]
|
||||
transform = Transform3D(-0.9991066, -0.0071844957, -0.041647904, 0.039682645, 0.1795881, -0.9829413, 0.014541405, -0.98371583, -0.17914255, 0.31696087, -0.020600319, -0.18641448)
|
||||
light_color = Color(0.8574047, 0.65361816, 0.27671134, 1)
|
||||
light_energy = 4.0
|
||||
light_cull_mask = 4294967293
|
||||
spot_range = 18.0
|
||||
spot_attenuation = 1.2
|
||||
spot_angle = 35.0
|
||||
spot_angle_attenuation = 8.876516
|
||||
156
docs/museums/biome_generator/museum_biome_generator.tscn
Normal file
156
docs/museums/biome_generator/museum_biome_generator.tscn
Normal file
@@ -0,0 +1,156 @@
|
||||
[gd_scene format=3 uid="uid://cae0mnf353dy3"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://bneoex8xpmcm8" path="res://core/daynight/sky.gdshader" id="1_p4ojb"]
|
||||
[ext_resource type="Texture2D" uid="uid://dest0qa7vaid0" path="res://core/daynight/stars_albedo.png" id="2_yrmqs"]
|
||||
[ext_resource type="Script" uid="uid://brcimd12tx3dm" path="res://core/daynight/edge_detection_compositor.gd" id="3_8tojn"]
|
||||
[ext_resource type="PackedScene" uid="uid://ujv2f1l4d2ps" path="res://core/biome_generator/biome_generator.tscn" id="4_yrmqs"]
|
||||
[ext_resource type="Script" uid="uid://wv6kcqkibium" path="res://core/biome_generator/biome.gd" id="5_2wjys"]
|
||||
[ext_resource type="PackedScene" uid="uid://cv5xmnow451kl" path="res://core/camera.tscn" id="5_8tojn"]
|
||||
[ext_resource type="PackedScene" uid="uid://botm0dqtr5whb" path="res://docs/museums/daynight/scenes/chunk_c_e_1/chunk_c_e_1.tscn" id="6_21usy"]
|
||||
[ext_resource type="Script" uid="uid://dboerd4a6dwj7" path="res://docs/museums/biome_generator/rails.gd" id="6_pypsn"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvk3bytqn3m5s" path="res://docs/museums/biome_generator/main_train.tscn" id="6_wjpfq"]
|
||||
[ext_resource type="PackedScene" uid="uid://givg3dyrxsk5" path="res://docs/museums/daynight/scenes/chunk_c_f_1/chunk_c_f_1.tscn" id="7_qe84w"]
|
||||
[ext_resource type="PackedScene" uid="uid://0kgjaqijaqku" path="res://docs/museums/biome_generator/rails.tscn" id="8_mb5yv"]
|
||||
[ext_resource type="PackedScene" uid="uid://bi12g5nj421jv" path="res://docs/museums/daynight/scenes/chunk_f_e_1/chunk_f_e_1.tscn" id="8_qe84w"]
|
||||
[ext_resource type="PackedScene" uid="uid://dn1btv0e0ses7" path="res://core/fireworks.tscn" id="8_xtogr"]
|
||||
[ext_resource type="PackedScene" uid="uid://cpebna545ihfh" path="res://docs/museums/daynight/scenes/chunk_f_l_2/chunk_f_l_2.tscn" id="9_3qrd0"]
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_wjpfq"]
|
||||
fractal_lacunarity = 1.915
|
||||
fractal_gain = 0.53
|
||||
fractal_weighted_strength = 0.35
|
||||
|
||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_abyor"]
|
||||
noise = SubResource("FastNoiseLite_wjpfq")
|
||||
seamless = true
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pypsn"]
|
||||
shader = ExtResource("1_p4ojb")
|
||||
shader_parameter/sky_top_color = Color(0.36438444, 0.6417803, 0.8712311, 1)
|
||||
shader_parameter/sky_horizon_color = Color(0.75821966, 0.8417803, 0.92534095, 1)
|
||||
shader_parameter/night_intensity = 0.0
|
||||
shader_parameter/cloud_noise = SubResource("NoiseTexture2D_abyor")
|
||||
shader_parameter/sun_color = Color(1, 0.88767046, 0.775341, 1)
|
||||
shader_parameter/cloud_center_color = Color(1, 1, 1, 1)
|
||||
shader_parameter/cloud_edge_color = Color(0.8, 0.85, 0.9, 1)
|
||||
shader_parameter/cloud_direction = Vector2(0.5, 0.2)
|
||||
shader_parameter/cloud_speed = 0.1
|
||||
shader_parameter/cloud_scale = 0.5
|
||||
shader_parameter/cloud_threshold = 0.5
|
||||
shader_parameter/cloud_edge_thickness = 0.406000019285
|
||||
shader_parameter/cloud_edge_softness = 0.0
|
||||
shader_parameter/star_density = 1500.0
|
||||
shader_parameter/star_rarity = 2500.0
|
||||
shader_parameter/star_scale_variation = 0.5
|
||||
shader_parameter/shooting_star_texture = ExtResource("2_yrmqs")
|
||||
shader_parameter/shooting_star_color = Color(0.38431373, 0.61960787, 0.23137255, 1)
|
||||
shader_parameter/shooting_star_density = 1.0
|
||||
shader_parameter/shooting_star_speed = 1.0
|
||||
shader_parameter/shooting_star_scale = 5.0
|
||||
shader_parameter/shooting_star_lifetime = 0.5
|
||||
shader_parameter/shooting_star_travel_dist = 15.0
|
||||
|
||||
[sub_resource type="Sky" id="Sky_50i22"]
|
||||
sky_material = SubResource("ShaderMaterial_pypsn")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_xtogr"]
|
||||
background_mode = 2
|
||||
sky = SubResource("Sky_50i22")
|
||||
ambient_light_color = Color(1, 0.88767046, 0.775341, 1)
|
||||
tonemap_exposure = 0.9979451
|
||||
ssao_enabled = true
|
||||
ssao_radius = 0.5
|
||||
ssao_intensity = 14.0
|
||||
ssao_detail = 0.0
|
||||
ssil_enabled = true
|
||||
glow_enabled = true
|
||||
glow_levels/4 = 1.0
|
||||
glow_intensity = 1.1835606
|
||||
glow_strength = 0.65
|
||||
glow_bloom = 1.0
|
||||
fog_enabled = true
|
||||
fog_mode = 1
|
||||
fog_light_color = Color(0.75821966, 0.8417803, 0.92534095, 1)
|
||||
fog_density = 0.004876705
|
||||
fog_sky_affect = 0.0
|
||||
|
||||
[sub_resource type="CompositorEffect" id="CompositorEffect_q52t1"]
|
||||
resource_local_to_scene = false
|
||||
resource_name = ""
|
||||
enabled = true
|
||||
effect_callback_type = 1
|
||||
access_resolved_color = false
|
||||
access_resolved_depth = false
|
||||
needs_motion_vectors = false
|
||||
needs_normal_roughness = false
|
||||
script = ExtResource("3_8tojn")
|
||||
metadata/_custom_type_script = "uid://brcimd12tx3dm"
|
||||
|
||||
[sub_resource type="Compositor" id="Compositor_mb5yv"]
|
||||
compositor_effects = Array[CompositorEffect]([SubResource("CompositorEffect_q52t1")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_3qrd0"]
|
||||
script = ExtResource("5_2wjys")
|
||||
name = "countryside"
|
||||
available_chunks = Array[PackedScene]([ExtResource("6_21usy"), ExtResource("7_qe84w")])
|
||||
metadata/_custom_type_script = "uid://wv6kcqkibium"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_2qks6"]
|
||||
script = ExtResource("5_2wjys")
|
||||
name = "Forest"
|
||||
available_chunks = Array[PackedScene]([ExtResource("8_qe84w"), ExtResource("9_3qrd0")])
|
||||
metadata/_custom_type_script = "uid://wv6kcqkibium"
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pypsn"]
|
||||
albedo_color = Color(0.135, 0.45, 0.18224995, 1)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_xtogr"]
|
||||
size = Vector3(200, 0.08, 200)
|
||||
|
||||
[sub_resource type="Curve3D" id="Curve3D_xtogr"]
|
||||
_data = {
|
||||
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, -74.84181, 0, -74.77032, 0, 0, 0, 0, 0, 0, -11.457085, 0, -86.17957, 0, 0, 0, 0, 0, 0, 55.006348, 0, -78.211205, 0, 0, 0, 0, 0, 0, 73.47847, 0, -30.582096, 0, 0, 0, 0, 0, 0, 78.73035, 0, 30.810556, 0, 0, 0, 0, 0, 0, 50.841064, 0, 77.896355, 0, 0, 0, 0, 0, 0, -53.834305, 0, 74.817665, 0, 0, 0, 0, 0, 0, -84.621185, 0, 37.149036, 0, 0, 0, 0, 0, 0, -77.19612, 0, -10.117877, 0, 0, 0, 0, 0, 0, 4.8418427, 0, 26.10198, 0, 0, 0, 0, 0, 0, 42.32939, 0, -18.267347, 0, 0, 0, 0, 0, 0, -19.96875, 0, -47.24322),
|
||||
"tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
}
|
||||
point_count = 12
|
||||
|
||||
[node name="museum" type="Node3D" unique_id=2135293927]
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1936550760]
|
||||
environment = SubResource("Environment_xtogr")
|
||||
compositor = SubResource("Compositor_mb5yv")
|
||||
|
||||
[node name="biome_generator" parent="." unique_id=1861369341 node_paths=PackedStringArray("rail_path") instance=ExtResource("4_yrmqs")]
|
||||
rail_path = NodePath("../rails")
|
||||
biome_list = Array[ExtResource("5_2wjys")]([SubResource("Resource_3qrd0"), SubResource("Resource_2qks6")])
|
||||
|
||||
[node name="Terrain" type="MeshInstance3D" parent="." unique_id=219178561]
|
||||
material_override = SubResource("StandardMaterial3D_pypsn")
|
||||
mesh = SubResource("BoxMesh_xtogr")
|
||||
|
||||
[node name="cameras" parent="." unique_id=310254818 instance=ExtResource("5_8tojn")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 28.635147, 0)
|
||||
|
||||
[node name="rails" type="Path3D" parent="." unique_id=1302444918 node_paths=PackedStringArray("cameras")]
|
||||
curve = SubResource("Curve3D_xtogr")
|
||||
script = ExtResource("6_pypsn")
|
||||
train_model = ExtResource("6_wjpfq")
|
||||
cameras = NodePath("../cameras")
|
||||
sleepers_model = ExtResource("8_mb5yv")
|
||||
fireworks_scene = ExtResource("8_xtogr")
|
||||
|
||||
[node name="Control" type="Control" parent="." unique_id=865533651]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
|
||||
[node name="guide" type="Label" parent="Control" unique_id=2121474959]
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 23.0
|
||||
text = "R-> Reset isometric camera
|
||||
C-> Toggle cinematic mode
|
||||
Z-> soft zoom
|
||||
Manual controls (1-5)
|
||||
"
|
||||
319
docs/museums/biome_generator/rails.gd
Normal file
319
docs/museums/biome_generator/rails.gd
Normal file
@@ -0,0 +1,319 @@
|
||||
extends Path3D
|
||||
|
||||
@export_group("Train")
|
||||
@export var train_speed: float = 6.0
|
||||
@export var is_inmotion: bool = true
|
||||
@export var train_model: PackedScene
|
||||
@export var axes_distance: float = 3.0
|
||||
@export var rail_distance: float = 1.2
|
||||
@export var cameras: Node3D
|
||||
@export_range(0.0, 1.0) var basic_swing: float = 0.5
|
||||
|
||||
@export_group("Rails Bulding")
|
||||
@export var sleepers_distance: float = 1.0
|
||||
@export var sleepers_model: PackedScene
|
||||
|
||||
@export_group("Manual Controls")
|
||||
@export var speed_max: float = 15.0
|
||||
@export var speed_min: float = -5.0
|
||||
@export var manual_acceleration: float = 5.0
|
||||
|
||||
@export_group("Train Stops")
|
||||
@export var enable_stops: bool = true
|
||||
@export var stop_time: float = 4.0
|
||||
@export var brake_distance: float = 15.0
|
||||
@export var restart_time: float = 3.0
|
||||
@export var fireworks_scene: PackedScene
|
||||
|
||||
var fireworks_colors: Array[Color] = [
|
||||
Color(1.0, 0.2, 0.2), # Rosso vivo
|
||||
Color(0.2, 1.0, 0.2), # Verde lime
|
||||
Color(0.3, 0.5, 1.0), # Blu cielo
|
||||
Color(1.0, 0.8, 0.1), # Oro
|
||||
Color(0.8, 0.2, 1.0), # Viola
|
||||
Color(0.1, 1.0, 0.9) # Ciano
|
||||
]
|
||||
|
||||
var train_instance: Node3D
|
||||
var train_progress: float = 0.0
|
||||
var swing_time: float = 0.0
|
||||
|
||||
var stop_offset: Array[float] = []
|
||||
var stops_position: Array[Vector3] = []
|
||||
var stop_ongoing: bool = false
|
||||
var next_stop_index: int = 0
|
||||
var stop_multiply: float = 1.0
|
||||
var is_restarting: bool = false
|
||||
var tween_restart: Tween
|
||||
|
||||
func _ready() -> void:
|
||||
if curve != null and curve.get_baked_length() > 0:
|
||||
build_rails()
|
||||
build_train()
|
||||
_plan_stops()
|
||||
else:
|
||||
print("WARNING: Draw your Path3D!")
|
||||
|
||||
func build_rails() -> void:
|
||||
var mat_wood = StandardMaterial3D.new()
|
||||
mat_wood.albedo_color = Color(0.35, 0.2, 0.1)
|
||||
var mat_iron = StandardMaterial3D.new()
|
||||
mat_iron.albedo_color = Color(0.6, 0.6, 0.65)
|
||||
mat_iron.metallic = 0.8
|
||||
|
||||
var mesh_sleeper = BoxMesh.new()
|
||||
mesh_sleeper.size = Vector3(rail_distance + 0.6, 0.1, 0.3)
|
||||
var mesh_rail = BoxMesh.new()
|
||||
mesh_rail.size = Vector3(0.1, 0.15, sleepers_distance + 0.05)
|
||||
|
||||
var total_length = curve.get_baked_length()
|
||||
var piece_number = int(total_length / sleepers_distance)
|
||||
|
||||
for i in range(piece_number):
|
||||
var distance = i * sleepers_distance
|
||||
var rail_piece = Node3D.new()
|
||||
add_child(rail_piece)
|
||||
|
||||
var local_pos = curve.sample_baked(distance, true)
|
||||
var distance_forward = distance + 0.1
|
||||
var local_pos_forward = Vector3.ZERO
|
||||
|
||||
if distance_forward > total_length:
|
||||
var pos_back = curve.sample_baked(distance - 0.1, true)
|
||||
local_pos_forward = local_pos + (local_pos - pos_back)
|
||||
else:
|
||||
local_pos_forward = curve.sample_baked(distance_forward, true)
|
||||
|
||||
rail_piece.position = local_pos
|
||||
var global_pos = to_global(local_pos)
|
||||
var global_pos_forward = to_global(local_pos_forward)
|
||||
if global_pos.distance_to(global_pos_forward) > 0.001:
|
||||
rail_piece.look_at(global_pos_forward, Vector3.UP)
|
||||
|
||||
if sleepers_model != null:
|
||||
var sleeper_custom = sleepers_model.instantiate()
|
||||
rail_piece.add_child(sleeper_custom)
|
||||
else:
|
||||
var sleeper = MeshInstance3D.new()
|
||||
sleeper.mesh = mesh_sleeper
|
||||
sleeper.material_override = mat_wood
|
||||
rail_piece.add_child(sleeper)
|
||||
|
||||
var rail_sx = MeshInstance3D.new()
|
||||
rail_sx.mesh = mesh_rail
|
||||
rail_sx.material_override = mat_iron
|
||||
rail_sx.position = Vector3(-rail_distance / 2.0, 0.1, 0)
|
||||
rail_piece.add_child(rail_sx)
|
||||
|
||||
var rail_dx = MeshInstance3D.new()
|
||||
rail_dx.mesh = mesh_rail
|
||||
rail_dx.material_override = mat_iron
|
||||
rail_dx.position = Vector3(rail_distance / 2.0, 0.1, 0)
|
||||
rail_piece.add_child(rail_dx)
|
||||
|
||||
func _plan_stops() -> void:
|
||||
var currnet_stops = []
|
||||
for child in get_children():
|
||||
if child is Marker3D:
|
||||
var offset = curve.get_closest_offset(child.position)
|
||||
currnet_stops.append({
|
||||
"offset": offset,
|
||||
"position": child.global_position
|
||||
})
|
||||
currnet_stops.sort_custom(func(a, b): return a["offset"] < b["offset"])
|
||||
for data in currnet_stops:
|
||||
stop_offset.append(data["offset"])
|
||||
stops_position.append(data["position"])
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event is InputEventKey and event.pressed and not event.echo:
|
||||
if event.keycode == KEY_T:
|
||||
_goto_next_stop()
|
||||
elif event.keycode == KEY_F:
|
||||
_test_manual_fires()
|
||||
|
||||
func _test_manual_fires() -> void:
|
||||
if fireworks_scene == null or train_instance == null: return
|
||||
|
||||
var firework_number = randi_range(5, 8)
|
||||
for i in range(firework_number):
|
||||
var fire_root = fireworks_scene.instantiate()
|
||||
get_tree().current_scene.add_child(fire_root)
|
||||
|
||||
var offset_x = randf_range(-6.0, 6.0)
|
||||
var offset_z = randf_range(-6.0, 6.0)
|
||||
fire_root.global_position = train_instance.global_position + Vector3(offset_x, 0.5, offset_z)
|
||||
|
||||
if fire_root.has_method("set_color"):
|
||||
fire_root.set_color(fireworks_colors.pick_random())
|
||||
if fire_root.has_method("turnon"):
|
||||
fire_root.turnon()
|
||||
|
||||
await get_tree().create_timer(randf_range(0.2, 0.6)).timeout
|
||||
|
||||
func _goto_next_stop() -> void:
|
||||
if stop_offset.size() == 0 or stop_ongoing or is_restarting:
|
||||
return
|
||||
var target_offset = stop_offset[next_stop_index]
|
||||
train_progress = target_offset
|
||||
_execute_stop(train_speed >= 0)
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
input_controls_management(delta)
|
||||
train_move(delta)
|
||||
|
||||
func input_controls_management(delta: float) -> void:
|
||||
if not is_inmotion: return
|
||||
if Input.is_action_pressed("ui_up"):
|
||||
train_speed += manual_acceleration * delta
|
||||
elif Input.is_action_pressed("ui_down"):
|
||||
train_speed -= manual_acceleration * delta
|
||||
train_speed = clamp(train_speed, speed_min, speed_max)
|
||||
|
||||
func train_move(delta: float) -> void:
|
||||
if is_inmotion and train_instance and curve:
|
||||
var total_length = curve.get_baked_length()
|
||||
if total_length <= 0: return
|
||||
|
||||
if not stop_ongoing:
|
||||
var last_progress = train_progress
|
||||
|
||||
if enable_stops and stop_offset.size() > 0 and not is_restarting:
|
||||
var target_offset = stop_offset[next_stop_index]
|
||||
var dist = target_offset - train_progress
|
||||
dist = wrapf(dist + total_length / 2.0, 0.0, total_length) - total_length / 2.0
|
||||
|
||||
if abs(dist) < brake_distance and sign(dist) == sign(train_speed):
|
||||
var t = abs(dist) / brake_distance
|
||||
stop_multiply = max(smoothstep(0.0, 1.0, t), 0.05)
|
||||
else:
|
||||
stop_multiply = 1.0
|
||||
|
||||
var current_speed = train_speed * stop_multiply
|
||||
train_progress += current_speed * delta
|
||||
|
||||
if enable_stops and stop_offset.size() > 0:
|
||||
var target_offset = stop_offset[next_stop_index]
|
||||
var exceeded_forward = (current_speed > 0 and last_progress < target_offset and train_progress >= target_offset)
|
||||
var exceeded_back = (current_speed < 0 and last_progress > target_offset and train_progress <= target_offset)
|
||||
|
||||
if exceeded_forward or exceeded_back:
|
||||
train_progress = target_offset
|
||||
_execute_stop(current_speed > 0)
|
||||
|
||||
if train_progress > total_length:
|
||||
train_progress -= total_length
|
||||
if stop_offset.size() > 0: next_stop_index = 0
|
||||
elif train_progress < 0:
|
||||
train_progress += total_length
|
||||
if stop_offset.size() > 0: next_stop_index = stop_offset.size() - 1
|
||||
|
||||
var center_position = to_global(curve.sample_baked(train_progress, true))
|
||||
var prog_forward = wrapf(train_progress + 2.0, 0.0, total_length)
|
||||
var forward_position = to_global(curve.sample_baked(prog_forward, true))
|
||||
|
||||
if center_position.distance_to(forward_position) > 0.01:
|
||||
train_instance.global_position = center_position
|
||||
train_instance.look_at(forward_position, Vector3.UP)
|
||||
train_instance.rotate_y(PI)
|
||||
|
||||
if cameras:
|
||||
cameras.global_position = center_position
|
||||
cameras.global_basis = train_instance.global_basis
|
||||
|
||||
if not stop_ongoing:
|
||||
var real_speed = abs(train_speed * stop_multiply)
|
||||
swing_time += delta * real_speed * 2.0
|
||||
var amplitude_z = 0.006 * basic_swing
|
||||
var amplitude_x = 0.004 * basic_swing
|
||||
train_instance.rotation.z += sin(swing_time) * amplitude_z
|
||||
train_instance.rotation.x += cos(swing_time * 0.8) * amplitude_x
|
||||
|
||||
func _execute_stop(go_forward: bool = true) -> void:
|
||||
stop_ongoing = true
|
||||
stop_multiply = 0.0
|
||||
|
||||
var current_stop_index = next_stop_index
|
||||
|
||||
if go_forward:
|
||||
next_stop_index += 1
|
||||
if next_stop_index >= stop_offset.size():
|
||||
next_stop_index = 0
|
||||
else:
|
||||
next_stop_index -= 1
|
||||
if next_stop_index < 0:
|
||||
next_stop_index = stop_offset.size() - 1
|
||||
|
||||
if fireworks_scene != null:
|
||||
var marker_position = stops_position[current_stop_index]
|
||||
var firework_number = randi_range(5, 8)
|
||||
for i in range(firework_number):
|
||||
var fire_root = fireworks_scene.instantiate()
|
||||
get_tree().current_scene.add_child(fire_root)
|
||||
|
||||
var offset_x = randf_range(-5.0, 5.0)
|
||||
var offset_z = randf_range(-5.0, 5.0)
|
||||
|
||||
fire_root.global_position = marker_position + Vector3(offset_x, 0.5, offset_z)
|
||||
|
||||
if fire_root.has_method("set_color"):
|
||||
fire_root.set_color(fireworks_colors.pick_random())
|
||||
if fire_root.has_method("turnon"):
|
||||
fire_root.turnon()
|
||||
|
||||
await get_tree().create_timer(randf_range(0.3, 0.8)).timeout
|
||||
|
||||
await get_tree().create_timer(stop_time).timeout
|
||||
|
||||
stop_ongoing = false
|
||||
is_restarting = true
|
||||
|
||||
if tween_restart and tween_restart.is_valid():
|
||||
tween_restart.kill()
|
||||
|
||||
tween_restart = create_tween()
|
||||
tween_restart.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT)
|
||||
tween_restart.tween_property(self, "stop_multiply", 1.0, restart_time)
|
||||
tween_restart.tween_callback(func(): is_restarting = false)
|
||||
|
||||
func build_train() -> void:
|
||||
if train_model != null:
|
||||
train_instance = train_model.instantiate()
|
||||
add_child(train_instance)
|
||||
else:
|
||||
build_default_train()
|
||||
|
||||
func build_default_train() -> void:
|
||||
train_instance = Node3D.new()
|
||||
add_child(train_instance)
|
||||
|
||||
var mat_body = StandardMaterial3D.new()
|
||||
mat_body.albedo_color = Color(0.8, 0.15, 0.15)
|
||||
var mat_glass = StandardMaterial3D.new()
|
||||
mat_glass.albedo_color = Color(0.2, 0.8, 1.0)
|
||||
|
||||
var train_base = MeshInstance3D.new()
|
||||
var mesh_base = BoxMesh.new()
|
||||
mesh_base.size = Vector3(1.4, 0.8, 3.0)
|
||||
train_base.mesh = mesh_base
|
||||
train_base.material_override = mat_body
|
||||
train_base.position = Vector3(0, 0.6, 0)
|
||||
train_instance.add_child(train_base)
|
||||
|
||||
var cabin = MeshInstance3D.new()
|
||||
var mesh_cabin = BoxMesh.new()
|
||||
mesh_cabin.size = Vector3(1.4, 1.0, 1.2)
|
||||
cabin.mesh = mesh_cabin
|
||||
cabin.material_override = mat_glass
|
||||
cabin.position = Vector3(0, 1.5, -0.8)
|
||||
train_instance.add_child(cabin)
|
||||
|
||||
var stack = MeshInstance3D.new()
|
||||
var mesh_stack = CylinderMesh.new()
|
||||
mesh_stack.top_radius = 0.2
|
||||
mesh_stack.bottom_radius = 0.3
|
||||
mesh_stack.height = 0.8
|
||||
stack.mesh = mesh_stack
|
||||
stack.material_override = mat_body
|
||||
stack.position = Vector3(0, 1.2, 1.0)
|
||||
train_instance.add_child(stack)
|
||||
1
docs/museums/biome_generator/rails.gd.uid
Normal file
1
docs/museums/biome_generator/rails.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://dboerd4a6dwj7
|
||||
156
docs/museums/biome_generator/rails.tscn
Normal file
156
docs/museums/biome_generator/rails.tscn
Normal file
@@ -0,0 +1,156 @@
|
||||
[gd_scene format=3 uid="uid://0kgjaqijaqku"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="2_0y2rr"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_m6haf"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_0y2rr")
|
||||
shader_parameter/albedo_color = Color(0.08235294, 0.105882354, 0.10980392, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_duyun"]
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_w0ibq"]
|
||||
size = Vector3(0.2, 0.2, 2)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fttrp"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_0y2rr")
|
||||
shader_parameter/albedo_color = Color(0.08061289, 0.10506997, 0.11154168, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_hb1ej"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pp4r2"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_0y2rr")
|
||||
shader_parameter/albedo_color = Color(0.2584173, 0.19781098, 0.10103748, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pur2n"]
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_ysg1u"]
|
||||
size = Vector3(2.5, 0.15, 0.5)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_x2uev"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_0y2rr")
|
||||
shader_parameter/albedo_color = Color(0.25882354, 0.19607843, 0.101960786, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_qv8m2"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_5u2u8"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_0y2rr")
|
||||
shader_parameter/albedo_color = Color(0.22494644, 0.08867701, 0.01631488, 1)
|
||||
shader_parameter/use_texture = false
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_m6haf"]
|
||||
size = Vector3(3.705, 0.2, 1.92)
|
||||
|
||||
[node name="rails" type="Node3D" unique_id=1464572050 groups=["weather_node", "wind_node"]]
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="." unique_id=1040579890]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.7, 0.214, 0)
|
||||
material_override = SubResource("ShaderMaterial_m6haf")
|
||||
material_overlay = SubResource("ShaderMaterial_duyun")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="." unique_id=1870708237]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7, 0.214, 0)
|
||||
material_override = SubResource("ShaderMaterial_fttrp")
|
||||
material_overlay = SubResource("ShaderMaterial_hb1ej")
|
||||
mesh = SubResource("BoxMesh_w0ibq")
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="." unique_id=170245195]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.05, 0.5)
|
||||
material_override = SubResource("ShaderMaterial_pp4r2")
|
||||
material_overlay = SubResource("ShaderMaterial_pur2n")
|
||||
mesh = SubResource("BoxMesh_ysg1u")
|
||||
|
||||
[node name="MeshInstance3D4" type="MeshInstance3D" parent="." unique_id=1389288735]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.05, -0.5)
|
||||
material_override = SubResource("ShaderMaterial_x2uev")
|
||||
material_overlay = SubResource("ShaderMaterial_qv8m2")
|
||||
mesh = SubResource("BoxMesh_ysg1u")
|
||||
|
||||
[node name="MeshInstance3D5" type="MeshInstance3D" parent="." unique_id=1376217081]
|
||||
visible = false
|
||||
material_override = SubResource("ShaderMaterial_5u2u8")
|
||||
mesh = SubResource("BoxMesh_m6haf")
|
||||
24
docs/museums/biome_generator/train1.tres
Normal file
24
docs/museums/biome_generator/train1.tres
Normal file
@@ -0,0 +1,24 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://df1ghvw3d61x8"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="1_i3cgb"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_i3cgb")
|
||||
shader_parameter/albedo_color = Color(0.16250518, 0.23871198, 0.21290374, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
24
docs/museums/biome_generator/train2.tres
Normal file
24
docs/museums/biome_generator/train2.tres
Normal file
@@ -0,0 +1,24 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://cufolpn48xxmv"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="1_qkrhb"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_qkrhb")
|
||||
shader_parameter/albedo_color = Color(0.2520276, 0.25202766, 0.25202763, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 10.0
|
||||
shader_parameter/light_steps = 3.0
|
||||
shader_parameter/step_softness = 0.1
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
24
docs/museums/biome_generator/train3.tres
Normal file
24
docs/museums/biome_generator/train3.tres
Normal file
@@ -0,0 +1,24 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://bu8wmlp0ffark"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="1_gtyqp"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_gtyqp")
|
||||
shader_parameter/albedo_color = Color(0.40934297, 0.38911393, 0.34586716, 1)
|
||||
shader_parameter/use_texture = true
|
||||
shader_parameter/uv_scale = Vector2(1, 1)
|
||||
shader_parameter/palette_shift_y = 0.0
|
||||
shader_parameter/gradient_start_y = 0.0
|
||||
shader_parameter/gradient_end_y = 5.0
|
||||
shader_parameter/light_steps = 5.0
|
||||
shader_parameter/step_softness = 0.00999999977648
|
||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||
shader_parameter/shadow_offset = 0.0
|
||||
shader_parameter/cast_shadow_strength = 0.6
|
||||
shader_parameter/use_ghibli_glint = true
|
||||
shader_parameter/glint_color = Color(1, 0.95, 0.85, 1)
|
||||
shader_parameter/glint_intensity = 1.0
|
||||
shader_parameter/glint_sharpness = 32.0
|
||||
shader_parameter/emission_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/emission_energy = 0.0
|
||||
Reference in New Issue
Block a user