[enhancement] С-400/С-500: заметный холодный выброс, задержка зажигания и плавный старт; замедлить разгон перехватчиков #129
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
🤖 Filed by Codex, AI-агент Владимира (chexit).
Запрос владельца
Доработать видимый пуск С-400/С-500: крышка ТПК открывается → ракета выбрасывается вверх без работающего основного двигателя → проходит заметная пауза → зажигается факел → начинается плавный разгон и выход на траекторию. Сейчас открытие крышки уже есть, но пауза почти не читается, а после вертикального вылета ракета слишком резко становится почти горизонтальной.
Дополнительно: сделать более медленный и плавный разгон всех игровых перехватчиков, с индивидуальными профилями семейств. Это не просьба одинаково замедлить все летящие объекты или снизить всем крейсерскую скорость.
Ориентир владельца — примерно 1–1,5 с между выбросом из ТПК и появлением основного факела. Это художественный/игровой ориентир по впечатлению от видео, не заявленная универсальная характеристика реальных боеприпасов. Референс для сравнения: отчётливо различимые фазы запуска, тяжесть движения и непрерывная дуга поворота.
Что в коде сейчас
Проверены актуальные remote HEAD:
kimi-work@61aaa0bf359026711ba811a7f7e9877ce253ead2,main@1a693763fdf98916a39b394bb512340cc84bac87.M48n6иM77n6стоятcold=5,boost=8. При 20 Гц это всего 0,25 с холодной фазы;engine_lit()разрешает двигатель приage > cold(первый такой возраст — 6). Это объясняет, почему задержка кажется отсутствующей: она реализована, но очень коротка.OPEN_TICKS=6и предшествует выбросу. Его время нельзя засчитывать как требуемую паузу после выхода ракеты.accel: 0.5 для M48n6, 0.6 для M77n6. Максимальная скорость достигается примерно за 0,65–0,7 с после зажигания. У других ракет разгон также очень короткий и задаётся постоянным приращением скорости.age >= boost; лимитturn=0.22на тик позволяет набрать изменение направления порядка 90° примерно за восемь тиков после включения полного лимита. Это объясняет резкий перегиб у ПУ, хотя не является полным измерением конкретного пользовательского кадра.coldна 20–30 оставитboost=8. Тогда основная ветка наведения сможет включиться до зажигания, потому что её условие не требуетlit. Нужен согласованный контракт стадий, а не только увеличение одной константы.EJECT_TICKS=5и свой разгон. Его следует согласовать с хореографией той же ПУ, чтобы зенитный и наземный пуски не выглядели двумя несвязанными реализациями.Требуемое поведение
1. Холодный пуск С-400/С-500. Сохранить резервирование конкретной ячейки, расход при физическом выбросе и отдельную крышку. После выброса ракета действительно перемещается вверх без основного факела, моторного света, непрерывного рева и powered smoke. Допустим отдельный газовый выброс/хлопок. Затем — самостоятельное событие зажигания с вспышкой, факелом и звуком в текущем положении ракеты, а не у оставленной ПУ. Начальный ориентир длительности — указанные 1–1,5 с; окончательно подобрать по игровому показу с обычной скоростью времени.
2. Разгон всех перехватчиков. Пересмотреть профили всех MissileKind, включая используемые несколькими комплексами. Нужна заметная фаза набора скорости и плавное включение тяги вместо почти мгновенного достижения максимума. Семейства должны сохранять характер и различия; не выдавать P1-SUN искусственную ракетную струю и не переносить холодный выброс на системы, для которых в игре предусмотрен горячий пуск. Максимальную скорость необязательно снижать: запрос касается прежде всего разгона.
3. Плавный выход на курс. Выделить согласованные игровые стадии opening/ejection/ignition/departure/guidance (названия и представление — на усмотрение реализации). Переход к основному наведению должен зависеть от завершения стартовой стадии, а не от второго несвязанного таймера. Наращивать допустимый темп поворота плавно; ограничить резкое изменение этого темпа. Перенаправление фактической скорости и ориентация модели должны давать непрерывную дугу, без мгновенного излома или чисто декоративного сглаживания поверх прежней ломаной траектории. Можно разрешать небольшой стартовый наклон по профилю, но не переключать ракету с вертикали сразу на почти горизонтальное преследование.
Здесь не требуется аэродинамический симулятор и не утверждается, что любой резкий наклон невозможен у всех реальных ракет. Цель — исправить конкретную неестественную игровую хореографию.
4. Единое состояние для live/replay/export. Открытие, выброс, зажигание, переходные позы, моторный звук, свет, дым и окончание горения должны соответствовать одной записанной последовательности. Пауза/перемотка/slow motion не дублируют звук и не включают факел раньше события. HD и обычный рендер показывают одинаковые стадии; красивый пуск должен сохраняться в киноповторе и MP4.
Проверка и приёмка
Связано: #115 (визуальное качество), #118 (физический носитель RM48U), #120 (конечный двигатель/энергия), #88–#89 (сцена и replay/export). P2, enhancement: продолжение уже реализованного холодного пуска с конкретным дефектом согласования времён/наведения.
🤖 Agent: Kimi Code, с участием Kimi for Coding и DeepSeek fast.
Реализовано и опубликовано в
kimi-work: код1261c3072, проверки/парная съёмка56093b3a5,0b645d77e.Стадии пуска согласованы: выброс без powered effects → зажигание в текущей позиции → departure со spool тяги и растущим темпом поворота → полное наведение только при
age >= cold + boost. С-400: cold 20 тиков (1.00 с), С-500: 24 (1.20 с). RM48U использует согласованные 20 тиков и дым/звук с зажигания. P1-SUN остаётся без ракетной струи. Ранний поворот rail-launched ракет был откачен после регрессии на холмах.pk, максимальные speed/turn/accel/fuse и swept-коллизии не менялись. Добавлены регрессии запрета раннего наведения, continuity скорости/поворота, replay ignition и RM48U.Парный replay/export на одном мире/seed/режиссёре: до и после. Это не live-видео; Windows/Linux и живое прослушивание не заявляются.
Проверки: core release 210 + 8 сценариев (8 ignored), adapter 67 + 1 boundary + 5 сценариев, WASM 30 шагов, generators fresh. Баланс намеренно отражает более долгий старт: сетка 6×8 seed — kills 1988→1939, leaks 216→258, ракет 3461→3467, energy_lost 0→0; массового истечения lifetime нет. Данные.
Issue оставляю открытым для визуальной приёмки пользователем.