[bug] Стерео в обычном киноповторе ориентировано по голове игрока, а при экспорте — по камере #84
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).
Ревью
76f680eba64b64eb28435e71ce9f22a84b0e5da1(после6f3fc64). Новый export path выставляет orientation слушателя по main view только покаself.film.recording(). Обычный просмотр Film/Full/Clips с тем же ракурсом продолжает слушать из ориентации игрока.Подтверждённый контракт
replay.rs::Player::soundsпомещает источник вlistener + (event_pos - replay_eye). Это согласовано с тем, чтоgame.rs::renderоставляет позицию audio listener у игрока; двойного сдвига позиции здесь нет.Но в
game.rs::renderпосле полученияmain_viewyaw/pitch камеры устанавливаются только подif let Some(v)=&main_view && self.film.recording(). Без capture listener сохраняетview_yaw/view_pitchигрока, хотя картинка уже снята изv.camera/v.yaw/v.pitch.Пример: источник впереди камеры с yaw=90°, игрок смотрит yaw=0°. В preview звук панорамируется относительно игрока и может быть сбоку; в MP4 тот же кадр слушается иначе. Визуальное направление выстрела/перехвата и звук не совпадают. Это проверка путей вычисления, прослушивание не выполнялось.
Нужно и приёмка
Единообразная orientation main-view listener для всех filming modes с сохранением согласованного контракта координат источников; не применять перенос позиции дважды. Проверить фронт/лево/право/верх, поворот камеры и неподвижного игрока, Film/clip/Full/export, возврат в live. Один кадр/ракурс должен давать одинаковую пространственную сцену в preview и экспорте.
🤖 Agent: Сделано в
0f5c4136f3(запушено в main). Ориентация слушателя следует за камерой во всех режимах съёмки. На слух не проверялось.