fix мышь + лицо отца (глаза, нос, рот, брови, щетина, уши)
Some checks failed
Godot CI / Import + smoke test (push) Failing after 28s
Some checks failed
Godot CI / Import + smoke test (push) Failing after 28s
МЫШЬ КАМЕРА (главный баг):
- Crosshair Control в центре экрана с дефолтным mouse_filter=STOP
ЖРАЛ ВСЕ mouse_motion events когда курсор был в центре (а он
всегда в центре при MOUSE_MODE_CAPTURED). FPV._unhandled_input
не вызывался → камера не вращалась.
- Поставил mouse_filter=2 (IGNORE) на Crosshair, CenterDot,
OuterRing, InnerHole — теперь они только рендерятся, события
пролетают мимо.
- Поставил mouse_filter=2 ТАКЖЕ на все HUD-лейблы (DateTime,
Objective, Money, Weather, Stats, ControlsHint, PromptLabel)
и SubtitlePanel — на будущее, чтобы курсор поверх них не
обламывал камеру.
СЛАЙДЕРЫ В НАСТРОЙКАХ:
- HBoxContainer rows с custom_minimum_size (0, 24).
- Labels: size_flags_vertical=4 (SHRINK_CENTER) +
vertical_alignment=1 (CENTER) + min_size (W, 24).
- Sliders: size_flags_vertical=4 + min_size (140, 24).
- Все элементы строки выровнены по центру по вертикали — слайдер
и текст теперь на одной линии, хитбокс совпадает с визуалом.
ЛИЦО ОТЦА:
- Голова была просто кубом скин-цвета. Теперь у отца:
* 2 глаза (белая склера 0.038×0.025×0.005 + тёмный зрачок
0.018×0.018×0.005 поверх) — реально видно куда смотрит.
* Брови 0.045×0.012 материалом mat_hair (тёмные).
* Нос 0.028×0.05×0.035 — выпирает на 0.012м вперёд от лица.
* Рот 0.065×0.012 тёмно-красным mat_mouth.
* Щетина 0.2×0.075 на нижней части лица mat_stubble
(тёмно-серо-коричневый) — мужик не побрился.
* 2 уха 0.025×0.045×0.025 по бокам головы.
- Все элементы — children FatherNPC/Head, наследуют поворот
родителя, остаются на лице при walking-animation.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
579df43289
commit
48a992e07a
4 changed files with 135 additions and 10 deletions
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=92 format=3]
|
||||
[gd_scene load_steps=103 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"]
|
||||
|
|
@ -302,6 +302,43 @@ roughness = 0.95
|
|||
albedo_color = Color(0.12, 0.12, 0.14, 1)
|
||||
roughness = 0.6
|
||||
|
||||
[sub_resource type="BoxMesh" id="mesh_eye_white"]
|
||||
size = Vector3(0.038, 0.025, 0.005)
|
||||
|
||||
[sub_resource type="BoxMesh" id="mesh_pupil"]
|
||||
size = Vector3(0.018, 0.018, 0.005)
|
||||
|
||||
[sub_resource type="BoxMesh" id="mesh_eyebrow"]
|
||||
size = Vector3(0.045, 0.012, 0.006)
|
||||
|
||||
[sub_resource type="BoxMesh" id="mesh_nose"]
|
||||
size = Vector3(0.028, 0.05, 0.035)
|
||||
|
||||
[sub_resource type="BoxMesh" id="mesh_mouth"]
|
||||
size = Vector3(0.065, 0.012, 0.005)
|
||||
|
||||
[sub_resource type="BoxMesh" id="mesh_stubble"]
|
||||
size = Vector3(0.2, 0.075, 0.004)
|
||||
|
||||
[sub_resource type="BoxMesh" id="mesh_ear"]
|
||||
size = Vector3(0.025, 0.045, 0.025)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="mat_eye_white"]
|
||||
albedo_color = Color(0.95, 0.93, 0.88, 1)
|
||||
roughness = 0.4
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="mat_pupil"]
|
||||
albedo_color = Color(0.08, 0.1, 0.16, 1)
|
||||
roughness = 0.3
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="mat_mouth"]
|
||||
albedo_color = Color(0.4, 0.18, 0.16, 1)
|
||||
roughness = 0.9
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="mat_stubble"]
|
||||
albedo_color = Color(0.32, 0.24, 0.18, 1)
|
||||
roughness = 0.95
|
||||
|
||||
[node name="Act1Room" type="Node3D"]
|
||||
script = ExtResource("1_act1")
|
||||
|
||||
|
|
@ -625,6 +662,61 @@ 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="EyeWhiteL" type="MeshInstance3D" parent="FatherNPC/Head"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.058, 0.035, -0.132)
|
||||
mesh = SubResource("mesh_eye_white")
|
||||
material_override = SubResource("mat_eye_white")
|
||||
|
||||
[node name="EyeWhiteR" type="MeshInstance3D" parent="FatherNPC/Head"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.058, 0.035, -0.132)
|
||||
mesh = SubResource("mesh_eye_white")
|
||||
material_override = SubResource("mat_eye_white")
|
||||
|
||||
[node name="PupilL" type="MeshInstance3D" parent="FatherNPC/Head"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.058, 0.035, -0.135)
|
||||
mesh = SubResource("mesh_pupil")
|
||||
material_override = SubResource("mat_pupil")
|
||||
|
||||
[node name="PupilR" type="MeshInstance3D" parent="FatherNPC/Head"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.058, 0.035, -0.135)
|
||||
mesh = SubResource("mesh_pupil")
|
||||
material_override = SubResource("mat_pupil")
|
||||
|
||||
[node name="EyebrowL" type="MeshInstance3D" parent="FatherNPC/Head"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.058, 0.072, -0.132)
|
||||
mesh = SubResource("mesh_eyebrow")
|
||||
material_override = SubResource("mat_hair")
|
||||
|
||||
[node name="EyebrowR" type="MeshInstance3D" parent="FatherNPC/Head"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.058, 0.072, -0.132)
|
||||
mesh = SubResource("mesh_eyebrow")
|
||||
material_override = SubResource("mat_hair")
|
||||
|
||||
[node name="Nose" type="MeshInstance3D" parent="FatherNPC/Head"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.005, -0.142)
|
||||
mesh = SubResource("mesh_nose")
|
||||
material_override = SubResource("mat_skin")
|
||||
|
||||
[node name="Mouth" type="MeshInstance3D" parent="FatherNPC/Head"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.07, -0.131)
|
||||
mesh = SubResource("mesh_mouth")
|
||||
material_override = SubResource("mat_mouth")
|
||||
|
||||
[node name="Stubble" type="MeshInstance3D" parent="FatherNPC/Head"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.095, -0.131)
|
||||
mesh = SubResource("mesh_stubble")
|
||||
material_override = SubResource("mat_stubble")
|
||||
|
||||
[node name="EarL" type="MeshInstance3D" parent="FatherNPC/Head"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.135, 0.005, 0)
|
||||
mesh = SubResource("mesh_ear")
|
||||
material_override = SubResource("mat_skin")
|
||||
|
||||
[node name="EarR" type="MeshInstance3D" parent="FatherNPC/Head"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.135, 0.005, 0)
|
||||
mesh = SubResource("mesh_ear")
|
||||
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")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue