farming-simulator/scenes/prologue/act1_kitchen.tscn
Dmitrii Bykov 82e134e9e5
Some checks failed
Godot CI / Import + smoke test (push) Failing after 30s
act1: реальное освещение + человекоподобный отец
ОСВЕЩЕНИЕ (главная визуальная разница):
- Все материалы переведены с unshaded на per-pixel shading
  (удалены shading_mode=0 во всех материалах act1_room+act1_kitchen).
- WorldEnvironment в обеих сценах: ambient_light_color бежевый,
  energy 0.4-0.5.
- DirectionalLight3D «солнце из окна»: Y-180 + X-30 rotation чтобы
  светило с севера в юг и вниз. light_energy 1.0, тёплый
  цвет 1,0.94,0.82. shadow_enabled=true с PSSM (GL Compatibility).
- В комнате: OmniLight3D fill-light возле окна для синего
  холодного света (свет неба из окна) — energy 0.5, голубой.
- В кухне: OmniLight3D под потолком как обычная лампа — energy
  0.6, тёплый белый, range 5м.
- Теперь мебель/стены/одеяло имеют объём с тенями.

ОТЕЦ (humanoid рig из 11 кубов вместо одного прямоугольника):
- Head (skin): голова
- Hair (dark brown): волосы сверху
- Torso (gray-blue shirt)
- ArmL/ArmR (рукава рубашки)
- HandL/HandR (skin кисти под рукавами)
- LegL/LegR (jeans dark blue)
- ShoeL/ShoeR (чёрные ботинки, чуть выпирают вперёд)
- Все материалы с roughness 0.6-0.95 для приличных бликов.
- FatherNPC.position = (1.7, 0, 0) — ноги на полу, голова на ~1.8м.
- Tween в act1.gd для exit работает как раньше (position:x).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 18:10:04 +03:00

416 lines
14 KiB
Text

[gd_scene load_steps=45 format=3]
[ext_resource type="Script" path="res://scripts/prologue/act1_kitchen.gd" id="1_kit"]
[ext_resource type="Script" path="res://scripts/interactables/interactable.gd" id="2_int"]
[ext_resource type="PackedScene" path="res://scenes/components/player_fpv.tscn" id="3_player"]
[sub_resource type="BoxMesh" id="mesh_floor"]
size = Vector3(3, 0.1, 3)
[sub_resource type="BoxShape3D" id="shape_floor"]
size = Vector3(3, 0.1, 3)
[sub_resource type="BoxMesh" id="mesh_wall_ns"]
size = Vector3(3, 2.5, 0.1)
[sub_resource type="BoxShape3D" id="shape_wall_ns"]
size = Vector3(3, 2.5, 0.1)
[sub_resource type="BoxMesh" id="mesh_wall_ew"]
size = Vector3(0.1, 2.5, 3)
[sub_resource type="BoxShape3D" id="shape_wall_ew"]
size = Vector3(0.1, 2.5, 3)
[sub_resource type="BoxMesh" id="mesh_fridge"]
size = Vector3(0.6, 1.8, 0.6)
[sub_resource type="BoxShape3D" id="shape_fridge"]
size = Vector3(0.6, 1.8, 0.6)
[sub_resource type="BoxMesh" id="mesh_stove"]
size = Vector3(0.6, 0.85, 0.6)
[sub_resource type="BoxShape3D" id="shape_stove"]
size = Vector3(0.6, 0.85, 0.6)
[sub_resource type="BoxMesh" id="mesh_counter"]
size = Vector3(0.7, 0.85, 0.6)
[sub_resource type="BoxShape3D" id="shape_counter"]
size = Vector3(0.7, 0.85, 0.6)
[sub_resource type="BoxMesh" id="mesh_sink"]
size = Vector3(0.5, 0.05, 0.4)
[sub_resource type="BoxMesh" id="mesh_kitchen_window"]
size = Vector3(0.8, 0.5, 0.06)
[sub_resource type="BoxMesh" id="mesh_door_panel"]
size = Vector3(1.0, 2.0, 0.06)
[sub_resource type="BoxShape3D" id="shape_door"]
size = Vector3(1.0, 2.0, 0.06)
[sub_resource type="BoxMesh" id="mesh_table"]
size = Vector3(0.9, 0.04, 0.7)
[sub_resource type="BoxShape3D" id="shape_table"]
size = Vector3(0.9, 0.04, 0.7)
[sub_resource type="BoxMesh" id="mesh_table_leg"]
size = Vector3(0.05, 0.72, 0.05)
[sub_resource type="BoxMesh" id="mesh_chair_seat"]
size = Vector3(0.35, 0.04, 0.35)
[sub_resource type="BoxShape3D" id="shape_chair_seat"]
size = Vector3(0.35, 0.04, 0.35)
[sub_resource type="BoxMesh" id="mesh_chair_back"]
size = Vector3(0.35, 0.5, 0.04)
[sub_resource type="BoxMesh" id="mesh_chair_leg"]
size = Vector3(0.04, 0.46, 0.04)
[sub_resource type="BoxMesh" id="mesh_note"]
size = Vector3(0.15, 0.01, 0.1)
[sub_resource type="BoxShape3D" id="shape_note"]
size = Vector3(0.15, 0.01, 0.1)
[sub_resource type="BoxMesh" id="mesh_radiator"]
size = Vector3(0.7, 0.4, 0.08)
[sub_resource type="BoxMesh" id="mesh_kettle"]
size = Vector3(0.18, 0.22, 0.18)
[sub_resource type="BoxMesh" id="mesh_knob"]
size = Vector3(0.04, 0.04, 0.04)
[sub_resource type="StandardMaterial3D" id="mat_floor"]
albedo_color = Color(0.72, 0.6, 0.41, 1)
[sub_resource type="StandardMaterial3D" id="mat_wall"]
albedo_color = Color(0.83, 0.72, 0.55, 1)
[sub_resource type="StandardMaterial3D" id="mat_ceiling"]
albedo_color = Color(0.92, 0.9, 0.85, 1)
[sub_resource type="StandardMaterial3D" id="mat_fridge"]
albedo_color = Color(0.95, 0.94, 0.9, 1)
[sub_resource type="StandardMaterial3D" id="mat_stove"]
albedo_color = Color(0.42, 0.42, 0.45, 1)
[sub_resource type="StandardMaterial3D" id="mat_counter"]
albedo_color = Color(0.88, 0.86, 0.82, 1)
[sub_resource type="StandardMaterial3D" id="mat_sink"]
albedo_color = Color(0.65, 0.65, 0.7, 1)
[sub_resource type="StandardMaterial3D" id="mat_kitchen_window"]
albedo_color = Color(0.6, 0.85, 1.0, 1)
emission_enabled = true
emission = Color(0.6, 0.85, 1.0, 1)
emission_energy_multiplier = 0.6
[sub_resource type="StandardMaterial3D" id="mat_door"]
albedo_color = Color(0.85, 0.82, 0.75, 1)
[sub_resource type="StandardMaterial3D" id="mat_table"]
albedo_color = Color(0.55, 0.38, 0.2, 1)
[sub_resource type="StandardMaterial3D" id="mat_chair"]
albedo_color = Color(0.55, 0.38, 0.2, 1)
[sub_resource type="StandardMaterial3D" id="mat_note"]
albedo_color = Color(0.95, 0.95, 0.88, 1)
emission_enabled = true
emission = Color(0.95, 0.95, 0.7, 1)
emission_energy_multiplier = 0.5
[sub_resource type="StandardMaterial3D" id="mat_radiator"]
albedo_color = Color(0.96, 0.94, 0.88, 1)
[sub_resource type="StandardMaterial3D" id="mat_kettle"]
albedo_color = Color(0.85, 0.16, 0.16, 1)
[sub_resource type="StandardMaterial3D" id="mat_knob"]
albedo_color = Color(0.85, 0.2, 0.2, 1)
[sub_resource type="Environment" id="env_kitchen"]
background_mode = 1
background_color = Color(0.04, 0.04, 0.06, 1)
ambient_light_source = 2
ambient_light_color = Color(0.78, 0.72, 0.6, 1)
ambient_light_energy = 0.5
[node name="Act1Kitchen" type="Node3D"]
script = ExtResource("1_kit")
[node name="WorldEnv" type="WorldEnvironment" parent="."]
environment = SubResource("env_kitchen")
[node name="SunLight" type="DirectionalLight3D" parent="."]
transform = Transform3D(-1, 0, 0, 0, 0.866, 0.5, 0, 0.5, -0.866, 0.7, 4, -1)
light_color = Color(1, 0.94, 0.82, 1)
light_energy = 1.0
shadow_enabled = true
shadow_bias = 0.08
[node name="CeilingLight" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.4, 0)
light_color = Color(1, 0.95, 0.85, 1)
light_energy = 0.6
omni_range = 5.0
[node name="Floor" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0)
[node name="Mesh" type="MeshInstance3D" parent="Floor"]
mesh = SubResource("mesh_floor")
material_override = SubResource("mat_floor")
[node name="Coll" type="CollisionShape3D" parent="Floor"]
shape = SubResource("shape_floor")
[node name="Ceiling" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.55, 0)
[node name="Mesh" type="MeshInstance3D" parent="Ceiling"]
mesh = SubResource("mesh_floor")
material_override = SubResource("mat_ceiling")
[node name="Coll" type="CollisionShape3D" parent="Ceiling"]
shape = SubResource("shape_floor")
[node name="WallN" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.25, -1.55)
[node name="Mesh" type="MeshInstance3D" parent="WallN"]
mesh = SubResource("mesh_wall_ns")
material_override = SubResource("mat_wall")
[node name="Coll" type="CollisionShape3D" parent="WallN"]
shape = SubResource("shape_wall_ns")
[node name="Window" type="MeshInstance3D" parent="WallN"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7, 0.35, 0.06)
mesh = SubResource("mesh_kitchen_window")
material_override = SubResource("mat_kitchen_window")
[node name="Radiator" type="MeshInstance3D" parent="WallN"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7, -0.7, 0.1)
mesh = SubResource("mesh_radiator")
material_override = SubResource("mat_radiator")
[node name="WallS" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.25, 1.55)
[node name="Mesh" type="MeshInstance3D" parent="WallS"]
mesh = SubResource("mesh_wall_ns")
material_override = SubResource("mat_wall")
[node name="Coll" type="CollisionShape3D" parent="WallS"]
shape = SubResource("shape_wall_ns")
[node name="DoorPanel" type="MeshInstance3D" parent="WallS"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.7, -0.25, -0.06)
mesh = SubResource("mesh_door_panel")
material_override = SubResource("mat_door")
[node name="DoorBack" type="Area3D" parent="WallS"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.7, -0.25, -0.12)
script = ExtResource("2_int")
prompt = "вернуться в комнату"
[node name="Mesh" type="MeshInstance3D" parent="WallS/DoorBack"]
visible = false
mesh = SubResource("mesh_door_panel")
[node name="Coll" type="CollisionShape3D" parent="WallS/DoorBack"]
shape = SubResource("shape_door")
[node name="WallE" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.55, 1.25, 0)
[node name="Mesh" type="MeshInstance3D" parent="WallE"]
mesh = SubResource("mesh_wall_ew")
material_override = SubResource("mat_wall")
[node name="Coll" type="CollisionShape3D" parent="WallE"]
shape = SubResource("shape_wall_ew")
[node name="WallW" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.55, 1.25, 0)
[node name="Mesh" type="MeshInstance3D" parent="WallW"]
mesh = SubResource("mesh_wall_ew")
material_override = SubResource("mat_wall")
[node name="Coll" type="CollisionShape3D" parent="WallW"]
shape = SubResource("shape_wall_ew")
[node name="Fridge" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.9, 0.9, -1.15)
[node name="Mesh" type="MeshInstance3D" parent="Fridge"]
mesh = SubResource("mesh_fridge")
material_override = SubResource("mat_fridge")
[node name="Coll" type="CollisionShape3D" parent="Fridge"]
shape = SubResource("shape_fridge")
[node name="WiFiNote" type="Area3D" parent="Fridge"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.6, 0.31)
script = ExtResource("2_int")
prompt = "прочитать записку"
[node name="Mesh" type="MeshInstance3D" parent="Fridge/WiFiNote"]
mesh = SubResource("mesh_note")
material_override = SubResource("mat_note")
[node name="Coll" type="CollisionShape3D" parent="Fridge/WiFiNote"]
shape = SubResource("shape_note")
[node name="Stove" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0, 0.425, -1.2)
[node name="Mesh" type="MeshInstance3D" parent="Stove"]
mesh = SubResource("mesh_stove")
material_override = SubResource("mat_stove")
[node name="Coll" type="CollisionShape3D" parent="Stove"]
shape = SubResource("shape_stove")
[node name="Knob1" type="MeshInstance3D" parent="Stove"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.18, 0.4, 0.32)
mesh = SubResource("mesh_knob")
material_override = SubResource("mat_knob")
[node name="Knob2" type="MeshInstance3D" parent="Stove"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.18, 0.4, 0.32)
mesh = SubResource("mesh_knob")
material_override = SubResource("mat_knob")
[node name="Counter" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7, 0.425, -1.2)
[node name="Mesh" type="MeshInstance3D" parent="Counter"]
mesh = SubResource("mesh_counter")
material_override = SubResource("mat_counter")
[node name="Coll" type="CollisionShape3D" parent="Counter"]
shape = SubResource("shape_counter")
[node name="Sink" type="MeshInstance3D" parent="Counter"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.45, 0.05)
mesh = SubResource("mesh_sink")
material_override = SubResource("mat_sink")
[node name="Kettle" type="MeshInstance3D" parent="Stove"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.535, 0)
mesh = SubResource("mesh_kettle")
material_override = SubResource("mat_kettle")
[node name="Table" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.73, 0.7)
[node name="Mesh" type="MeshInstance3D" parent="Table"]
mesh = SubResource("mesh_table")
material_override = SubResource("mat_table")
[node name="Coll" type="CollisionShape3D" parent="Table"]
shape = SubResource("shape_table")
[node name="Leg1" type="MeshInstance3D" parent="Table"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.42, -0.38, -0.32)
mesh = SubResource("mesh_table_leg")
material_override = SubResource("mat_table")
[node name="Leg2" type="MeshInstance3D" parent="Table"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.42, -0.38, -0.32)
mesh = SubResource("mesh_table_leg")
material_override = SubResource("mat_table")
[node name="Leg3" type="MeshInstance3D" parent="Table"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.42, -0.38, 0.32)
mesh = SubResource("mesh_table_leg")
material_override = SubResource("mat_table")
[node name="Leg4" type="MeshInstance3D" parent="Table"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.42, -0.38, 0.32)
mesh = SubResource("mesh_table_leg")
material_override = SubResource("mat_table")
[node name="Chair1" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.48, 1.25)
[node name="Mesh" type="MeshInstance3D" parent="Chair1"]
mesh = SubResource("mesh_chair_seat")
material_override = SubResource("mat_chair")
[node name="Coll" type="CollisionShape3D" parent="Chair1"]
shape = SubResource("shape_chair_seat")
[node name="Back" type="MeshInstance3D" parent="Chair1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.27, 0.15)
mesh = SubResource("mesh_chair_back")
material_override = SubResource("mat_chair")
[node name="Leg1" type="MeshInstance3D" parent="Chair1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.15, -0.25, -0.15)
mesh = SubResource("mesh_chair_leg")
material_override = SubResource("mat_chair")
[node name="Leg2" type="MeshInstance3D" parent="Chair1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.15, -0.25, -0.15)
mesh = SubResource("mesh_chair_leg")
material_override = SubResource("mat_chair")
[node name="Leg3" type="MeshInstance3D" parent="Chair1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.15, -0.25, 0.15)
mesh = SubResource("mesh_chair_leg")
material_override = SubResource("mat_chair")
[node name="Leg4" type="MeshInstance3D" parent="Chair1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.15, -0.25, 0.15)
mesh = SubResource("mesh_chair_leg")
material_override = SubResource("mat_chair")
[node name="Chair2" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.48, 0.1)
[node name="Mesh" type="MeshInstance3D" parent="Chair2"]
mesh = SubResource("mesh_chair_seat")
material_override = SubResource("mat_chair")
[node name="Coll" type="CollisionShape3D" parent="Chair2"]
shape = SubResource("shape_chair_seat")
[node name="Leg1" type="MeshInstance3D" parent="Chair2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.15, -0.25, -0.15)
mesh = SubResource("mesh_chair_leg")
material_override = SubResource("mat_chair")
[node name="Leg2" type="MeshInstance3D" parent="Chair2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.15, -0.25, -0.15)
mesh = SubResource("mesh_chair_leg")
material_override = SubResource("mat_chair")
[node name="Leg3" type="MeshInstance3D" parent="Chair2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.15, -0.25, 0.15)
mesh = SubResource("mesh_chair_leg")
material_override = SubResource("mat_chair")
[node name="Leg4" type="MeshInstance3D" parent="Chair2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.15, -0.25, 0.15)
mesh = SubResource("mesh_chair_leg")
material_override = SubResource("mat_chair")
[node name="PlayerFPV" parent="." instance=ExtResource("3_player")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0, 1.0)
[connection signal="interacted" from="Fridge/WiFiNote" to="." method="_on_note_interacted"]
[connection signal="interacted" from="WallS/DoorBack" to="." method="_on_door_back_interacted"]