fix мышь + лицо отца (глаза, нос, рот, брови, щетина, уши)
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:
Dmitrii Bykov 2026-05-24 19:16:49 +03:00
parent 579df43289
commit 48a992e07a
4 changed files with 135 additions and 10 deletions

View file

@ -116,46 +116,64 @@ horizontal_alignment = 1
modulate = Color(0.94, 0.71, 0.1, 1)
[node name="SensRow" type="HBoxContainer" parent="SettingsPanel/V"]
custom_minimum_size = Vector2(0, 24)
layout_mode = 2
theme_override_constants/separation = 8
[node name="Label" type="Label" parent="SettingsPanel/V/SensRow"]
custom_minimum_size = Vector2(150, 0)
custom_minimum_size = Vector2(150, 24)
layout_mode = 2
size_flags_vertical = 4
mouse_filter = 2
text = "Чувствительность мыши"
vertical_alignment = 1
[node name="Slider" type="HSlider" parent="SettingsPanel/V/SensRow"]
custom_minimum_size = Vector2(140, 18)
custom_minimum_size = Vector2(140, 24)
layout_mode = 2
size_flags_vertical = 4
min_value = 1.0
max_value = 10.0
step = 0.1
value = 2.5
[node name="Value" type="Label" parent="SettingsPanel/V/SensRow"]
custom_minimum_size = Vector2(50, 0)
custom_minimum_size = Vector2(50, 24)
layout_mode = 2
size_flags_vertical = 4
mouse_filter = 2
text = "0.0025"
vertical_alignment = 1
[node name="VolRow" type="HBoxContainer" parent="SettingsPanel/V"]
custom_minimum_size = Vector2(0, 24)
layout_mode = 2
theme_override_constants/separation = 8
[node name="Label" type="Label" parent="SettingsPanel/V/VolRow"]
custom_minimum_size = Vector2(150, 0)
custom_minimum_size = Vector2(150, 24)
layout_mode = 2
size_flags_vertical = 4
mouse_filter = 2
text = "Громкость"
vertical_alignment = 1
[node name="Slider" type="HSlider" parent="SettingsPanel/V/VolRow"]
custom_minimum_size = Vector2(140, 18)
custom_minimum_size = Vector2(140, 24)
layout_mode = 2
size_flags_vertical = 4
min_value = 0.0
max_value = 100.0
step = 1.0
value = 50.0
[node name="Value" type="Label" parent="SettingsPanel/V/VolRow"]
custom_minimum_size = Vector2(50, 0)
custom_minimum_size = Vector2(50, 24)
layout_mode = 2
size_flags_vertical = 4
mouse_filter = 2
text = "50%"
vertical_alignment = 1
[node name="Spacer2" type="Control" parent="SettingsPanel/V"]
custom_minimum_size = Vector2(0, 10)