act1: реальное освещение + человекоподобный отец
Some checks failed
Godot CI / Import + smoke test (push) Failing after 30s

ОСВЕЩЕНИЕ (главная визуальная разница):
- Все материалы переведены с 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>
This commit is contained in:
Dmitrii Bykov 2026-05-24 18:10:04 +03:00
parent 773b15fd8e
commit 82e134e9e5
2 changed files with 144 additions and 53 deletions

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=44 format=3]
[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"]
@ -89,74 +89,82 @@ size = Vector3(0.18, 0.22, 0.18)
size = Vector3(0.04, 0.04, 0.04)
[sub_resource type="StandardMaterial3D" id="mat_floor"]
shading_mode = 0
albedo_color = Color(0.72, 0.6, 0.41, 1)
[sub_resource type="StandardMaterial3D" id="mat_wall"]
shading_mode = 0
albedo_color = Color(0.83, 0.72, 0.55, 1)
[sub_resource type="StandardMaterial3D" id="mat_ceiling"]
shading_mode = 0
albedo_color = Color(0.92, 0.9, 0.85, 1)
[sub_resource type="StandardMaterial3D" id="mat_fridge"]
shading_mode = 0
albedo_color = Color(0.95, 0.94, 0.9, 1)
[sub_resource type="StandardMaterial3D" id="mat_stove"]
shading_mode = 0
albedo_color = Color(0.42, 0.42, 0.45, 1)
[sub_resource type="StandardMaterial3D" id="mat_counter"]
shading_mode = 0
albedo_color = Color(0.88, 0.86, 0.82, 1)
[sub_resource type="StandardMaterial3D" id="mat_sink"]
shading_mode = 0
albedo_color = Color(0.65, 0.65, 0.7, 1)
[sub_resource type="StandardMaterial3D" id="mat_kitchen_window"]
shading_mode = 0
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"]
shading_mode = 0
albedo_color = Color(0.85, 0.82, 0.75, 1)
[sub_resource type="StandardMaterial3D" id="mat_table"]
shading_mode = 0
albedo_color = Color(0.55, 0.38, 0.2, 1)
[sub_resource type="StandardMaterial3D" id="mat_chair"]
shading_mode = 0
albedo_color = Color(0.55, 0.38, 0.2, 1)
[sub_resource type="StandardMaterial3D" id="mat_note"]
shading_mode = 0
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"]
shading_mode = 0
albedo_color = Color(0.96, 0.94, 0.88, 1)
[sub_resource type="StandardMaterial3D" id="mat_kettle"]
shading_mode = 0
albedo_color = Color(0.85, 0.16, 0.16, 1)
[sub_resource type="StandardMaterial3D" id="mat_knob"]
shading_mode = 0
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)

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=77 format=3]
[gd_scene load_steps=90 format=3]
[ext_resource type="Script" path="res://scripts/prologue/act1.gd" id="1_act1"]
[ext_resource type="Script" path="res://scripts/interactables/interactable.gd" id="2_int"]
@ -131,151 +131,183 @@ size = Vector3(0.09, 0.13, 0.09)
size = Vector3(0.07, 0.08, 0.07)
[sub_resource type="StandardMaterial3D" id="mat_floor"]
shading_mode = 0
albedo_color = Color(0.72, 0.6, 0.41, 1)
[sub_resource type="StandardMaterial3D" id="mat_wall"]
shading_mode = 0
albedo_color = Color(0.83, 0.72, 0.55, 1)
[sub_resource type="StandardMaterial3D" id="mat_ceiling"]
shading_mode = 0
albedo_color = Color(0.92, 0.9, 0.85, 1)
[sub_resource type="StandardMaterial3D" id="mat_window"]
shading_mode = 0
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_window_frame"]
shading_mode = 0
albedo_color = Color(0.95, 0.95, 0.95, 1)
[sub_resource type="StandardMaterial3D" id="mat_windowsill"]
shading_mode = 0
albedo_color = Color(0.96, 0.95, 0.92, 1)
[sub_resource type="StandardMaterial3D" id="mat_radiator"]
shading_mode = 0
albedo_color = Color(0.96, 0.94, 0.88, 1)
[sub_resource type="StandardMaterial3D" id="mat_door"]
shading_mode = 0
albedo_color = Color(0.85, 0.82, 0.75, 1)
[sub_resource type="StandardMaterial3D" id="mat_desk"]
shading_mode = 0
albedo_color = Color(0.96, 0.95, 0.93, 1)
[sub_resource type="StandardMaterial3D" id="mat_old_pc"]
shading_mode = 0
albedo_color = Color(0.55, 0.55, 0.5, 1)
[sub_resource type="StandardMaterial3D" id="mat_keyboard"]
shading_mode = 0
albedo_color = Color(0.85, 0.82, 0.74, 1)
[sub_resource type="StandardMaterial3D" id="mat_bed_frame"]
shading_mode = 0
albedo_color = Color(0.36, 0.23, 0.11, 1)
[sub_resource type="StandardMaterial3D" id="mat_blanket"]
shading_mode = 0
albedo_color = Color(0.13, 0.16, 0.32, 1)
[sub_resource type="StandardMaterial3D" id="mat_pillow"]
shading_mode = 0
albedo_color = Color(0.92, 0.88, 0.78, 1)
[sub_resource type="StandardMaterial3D" id="mat_wall_carpet"]
shading_mode = 0
albedo_color = Color(0.36, 0.12, 0.13, 1)
[sub_resource type="StandardMaterial3D" id="mat_poster_csgo"]
shading_mode = 0
albedo_color = Color(0.94, 0.71, 0.1, 1)
emission_enabled = true
emission = Color(0.94, 0.71, 0.1, 1)
emission_energy_multiplier = 0.25
[sub_resource type="StandardMaterial3D" id="mat_poster_morgen"]
shading_mode = 0
albedo_color = Color(0.7, 0.13, 0.13, 1)
[sub_resource type="StandardMaterial3D" id="mat_shelf"]
shading_mode = 0
albedo_color = Color(0.93, 0.91, 0.88, 1)
[sub_resource type="StandardMaterial3D" id="mat_book_a"]
shading_mode = 0
albedo_color = Color(0.36, 0.18, 0.15, 1)
[sub_resource type="StandardMaterial3D" id="mat_book_b"]
shading_mode = 0
albedo_color = Color(0.2, 0.35, 0.5, 1)
[sub_resource type="StandardMaterial3D" id="mat_book_c"]
shading_mode = 0
albedo_color = Color(0.13, 0.13, 0.15, 1)
[sub_resource type="StandardMaterial3D" id="mat_gift"]
shading_mode = 0
albedo_color = Color(0.1, 0.1, 0.12, 1)
[sub_resource type="StandardMaterial3D" id="mat_sys"]
shading_mode = 0
albedo_color = Color(0.3, 0.32, 0.38, 1)
emission_enabled = true
emission = Color(0.2, 0.5, 0.9, 1)
emission_energy_multiplier = 0.7
[sub_resource type="StandardMaterial3D" id="mat_note"]
shading_mode = 0
albedo_color = Color(0.95, 0.95, 0.9, 1)
emission_enabled = true
emission = Color(0.95, 0.95, 0.7, 1)
emission_energy_multiplier = 0.3
[sub_resource type="StandardMaterial3D" id="mat_flash"]
shading_mode = 0
albedo_color = Color(0.78, 0.18, 0.18, 1)
emission_enabled = true
emission = Color(0.78, 0.18, 0.18, 1)
emission_energy_multiplier = 0.4
[sub_resource type="StandardMaterial3D" id="mat_father"]
shading_mode = 0
albedo_color = Color(0.18, 0.22, 0.4, 1)
[sub_resource type="StandardMaterial3D" id="mat_p4"]
shading_mode = 0
albedo_color = Color(0.45, 0.44, 0.4, 1)
[sub_resource type="StandardMaterial3D" id="mat_sock"]
shading_mode = 0
albedo_color = Color(0.18, 0.22, 0.32, 1)
[sub_resource type="StandardMaterial3D" id="mat_lays"]
shading_mode = 0
albedo_color = Color(0.96, 0.84, 0.34, 1)
[sub_resource type="StandardMaterial3D" id="mat_can"]
shading_mode = 0
albedo_color = Color(0.13, 0.32, 0.68, 1)
[sub_resource type="StandardMaterial3D" id="mat_plant"]
shading_mode = 0
albedo_color = Color(0.25, 0.45, 0.2, 1)
[sub_resource type="StandardMaterial3D" id="mat_cup"]
shading_mode = 0
albedo_color = Color(0.85, 0.83, 0.78, 1)
[sub_resource type="Environment" id="env_room"]
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.45
[sub_resource type="BoxMesh" id="mesh_head"]
size = Vector3(0.26, 0.28, 0.26)
[sub_resource type="BoxMesh" id="mesh_hair"]
size = Vector3(0.28, 0.08, 0.28)
[sub_resource type="BoxMesh" id="mesh_torso"]
size = Vector3(0.42, 0.55, 0.25)
[sub_resource type="BoxMesh" id="mesh_arm"]
size = Vector3(0.13, 0.45, 0.13)
[sub_resource type="BoxMesh" id="mesh_hand"]
size = Vector3(0.12, 0.13, 0.12)
[sub_resource type="BoxMesh" id="mesh_leg"]
size = Vector3(0.18, 0.75, 0.18)
[sub_resource type="BoxMesh" id="mesh_shoe"]
size = Vector3(0.18, 0.08, 0.25)
[sub_resource type="StandardMaterial3D" id="mat_skin"]
albedo_color = Color(0.85, 0.7, 0.55, 1)
roughness = 0.85
[sub_resource type="StandardMaterial3D" id="mat_hair"]
albedo_color = Color(0.18, 0.12, 0.08, 1)
roughness = 0.95
[sub_resource type="StandardMaterial3D" id="mat_shirt"]
albedo_color = Color(0.38, 0.42, 0.5, 1)
roughness = 0.9
[sub_resource type="StandardMaterial3D" id="mat_pants"]
albedo_color = Color(0.18, 0.22, 0.4, 1)
roughness = 0.95
[sub_resource type="StandardMaterial3D" id="mat_shoe"]
albedo_color = Color(0.12, 0.12, 0.14, 1)
roughness = 0.6
[node name="Act1Room" type="Node3D"]
script = ExtResource("1_act1")
[node name="WorldEnv" type="WorldEnvironment" parent="."]
environment = SubResource("env_room")
[node name="SunLight" type="DirectionalLight3D" parent="."]
transform = Transform3D(-1, 0, 0, 0, 0.866, 0.5, 0, 0.5, -0.866, 0, 4, -1.5)
light_color = Color(1, 0.94, 0.82, 1)
light_energy = 1.0
shadow_enabled = true
shadow_bias = 0.08
[node name="WindowFillLight" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.7, -1.6)
light_color = Color(0.7, 0.85, 1, 1)
light_energy = 0.5
omni_range = 3.5
[node name="Floor" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0)
@ -568,11 +600,62 @@ material_override = SubResource("mat_note")
shape = SubResource("shape_note")
[node name="FatherNPC" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.7, 0.85, 0)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.7, 0, 0)
[node name="Mesh" type="MeshInstance3D" parent="FatherNPC"]
mesh = SubResource("mesh_father")
material_override = SubResource("mat_father")
[node name="Head" type="MeshInstance3D" parent="FatherNPC"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.55, 0)
mesh = SubResource("mesh_head")
material_override = SubResource("mat_skin")
[node name="Hair" type="MeshInstance3D" parent="FatherNPC"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.72, 0)
mesh = SubResource("mesh_hair")
material_override = SubResource("mat_hair")
[node name="Torso" type="MeshInstance3D" parent="FatherNPC"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1, 0)
mesh = SubResource("mesh_torso")
material_override = SubResource("mat_shirt")
[node name="ArmL" type="MeshInstance3D" parent="FatherNPC"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.275, 1.12, 0)
mesh = SubResource("mesh_arm")
material_override = SubResource("mat_shirt")
[node name="ArmR" type="MeshInstance3D" parent="FatherNPC"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.275, 1.12, 0)
mesh = SubResource("mesh_arm")
material_override = SubResource("mat_shirt")
[node name="HandL" type="MeshInstance3D" parent="FatherNPC"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.275, 0.83, 0)
mesh = SubResource("mesh_hand")
material_override = SubResource("mat_skin")
[node name="HandR" type="MeshInstance3D" parent="FatherNPC"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.275, 0.83, 0)
mesh = SubResource("mesh_hand")
material_override = SubResource("mat_skin")
[node name="LegL" type="MeshInstance3D" parent="FatherNPC"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.11, 0.42, 0)
mesh = SubResource("mesh_leg")
material_override = SubResource("mat_pants")
[node name="LegR" type="MeshInstance3D" parent="FatherNPC"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.11, 0.42, 0)
mesh = SubResource("mesh_leg")
material_override = SubResource("mat_pants")
[node name="ShoeL" type="MeshInstance3D" parent="FatherNPC"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.11, 0.04, 0.04)
mesh = SubResource("mesh_shoe")
material_override = SubResource("mat_shoe")
[node name="ShoeR" type="MeshInstance3D" parent="FatherNPC"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.11, 0.04, 0.04)
mesh = SubResource("mesh_shoe")
material_override = SubResource("mat_shoe")
[node name="PlayerFPV" parent="." instance=ExtResource("3_player")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.5)