[bug] Монтаж короткого перехвата показывает пуск после сбития, затем отматывает время назад #77

Closed
opened 2026-10-30 09:55:49 +00:00 by chexit · 1 comment
Owner

🤖 Filed by Codex, AI-агент Владимира (chexit).

Ревью 76f680eba64b64eb28435e71ce9f22a84b0e5da1 (после 6f3fc64). film.rs::plan_event задаёт минимальную длину launch shot независимо от времени фактического перехвата. Если полёт короткий, следующий план начинается раньше конца предыдущего.

Выполненный нативный пример

Запись: missile track начинается на replay tick=100, Kill на tick=105, запись достаточно длинная для aftermath. Вызван реальный plan_event:

shot spans in replay ticks:
(40,106), (106,116), (73,95), (95,153), (153,255)

План «Пуск» идёт после Kill=105. Следующий «Сближение/цель» возвращается с 116 на 73 — до запуска. Это не намеренный ракурсный повтор кульминации: выводится неверная хронология подготовки и пуска, а at() держит track на концах и может показывать ракету в кадре до её появления. Перехват за несколько тиков возможен на короткой дистанции.

Причина

b=tl+6, a2=b, b2=(a2+44).min(te-20).max(a2+10): последний max принудительно проталкивает shot за Kill. Затем a4=te-32, b4=te-10 берутся независимо от предыдущего конца. Аналогичные min/max стоит проверить для ранних событий и короткой записи.

Нужно

Сначала определить доступные реальные интервалы события, затем строить возможные планы. Для короткого полёта объединять/пропускать этапы или использовать slow motion, сохраняя порядок фактов и существование объектов. Если художественный повтор с другого ракурса намеренный, явно отделять его от основной хронологии. Не клонировать один и тот же launcher/launch template для всех длительностей.

Приёмка

Полёт 1/5/15/100+ тиков, Kill близко к началу/концу записи, gun kill и длинная баллистика. В базовой истории нет отрицательных/обратных диапазонов, пуск не следует за сбитием, ракета не присутствует до своего first. Повторяемый монтаж и правильные звук/вспышка на cut.

🤖 Filed by Codex, AI-агент Владимира (chexit). Ревью `76f680eba64b64eb28435e71ce9f22a84b0e5da1` (после `6f3fc64`). `film.rs::plan_event` задаёт минимальную длину launch shot независимо от времени фактического перехвата. Если полёт короткий, следующий план начинается раньше конца предыдущего. ### Выполненный нативный пример Запись: missile track начинается на replay tick=100, Kill на tick=105, запись достаточно длинная для aftermath. Вызван реальный `plan_event`: ```text shot spans in replay ticks: (40,106), (106,116), (73,95), (95,153), (153,255) ``` План «Пуск» идёт после Kill=105. Следующий «Сближение/цель» возвращается с 116 на 73 — **до запуска**. Это не намеренный ракурсный повтор кульминации: выводится неверная хронология подготовки и пуска, а `at()` держит track на концах и может показывать ракету в кадре до её появления. Перехват за несколько тиков возможен на короткой дистанции. ### Причина `b=tl+6`, `a2=b`, `b2=(a2+44).min(te-20).max(a2+10)`: последний max принудительно проталкивает shot за Kill. Затем `a4=te-32`, `b4=te-10` берутся независимо от предыдущего конца. Аналогичные min/max стоит проверить для ранних событий и короткой записи. ### Нужно Сначала определить доступные реальные интервалы события, затем строить возможные планы. Для короткого полёта объединять/пропускать этапы или использовать slow motion, сохраняя порядок фактов и существование объектов. Если художественный повтор с другого ракурса намеренный, явно отделять его от основной хронологии. Не клонировать один и тот же launcher/launch template для всех длительностей. ### Приёмка Полёт 1/5/15/100+ тиков, Kill близко к началу/концу записи, gun kill и длинная баллистика. В базовой истории нет отрицательных/обратных диапазонов, пуск не следует за сбитием, ракета не присутствует до своего first. Повторяемый монтаж и правильные звук/вспышка на cut.
chexit added the area:renderingarea:uipriority:P2type:bug labels 2026-10-30 09:55:49 +00:00
Author
Owner

🤖 Agent: Сделано в 0f5c4136f3 (запушено в main). План строится по реальным интервалам, время фильма не идёт назад. Проверено тестами, в игре короткие перехваты не смотрели.

🤖 Agent: Сделано в https://gitea.maoniao.team/chexit/airdef/commit/0f5c4136f3bbd2ae3ca06e0b4985f86882a76eb0 (запушено в main). План строится по реальным интервалам, время фильма не идёт назад. Проверено тестами, в игре короткие перехваты не смотрели.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chexit/airdef#77