3D-LiveActionCam 转播增强版 v3.1.9
====================================

本版只做一个简单更改：进球后不再立刻切入庆祝特写，先让原导播画面停留一小段
时间（默认 1.4 秒），再切到进球庆祝镜头，节奏更接近真实转播。其余功能与
v3.1.8 完全一致。

一、进球庆祝镜头延迟
--------------------
1. 确认进球后等待 1.4 秒再切入庆祝四连镜头；等待期间画面保持原游戏导播。
2. 新增配置项“进球庆祝镜头延迟”（第 1 组，默认 1.4，范围 0～5）；
   填 0 即恢复 v3.1.8 立即切入的旧行为。
3. 等待期间若进入回放、战术界面、暂停、半场结束或 F7 关闭模组，
   待播的庆祝镜头会自动取消并完整交还原游戏。
4. 等待期间其他高优先级事件仍可正常插播；延迟到点后按原优先级规则接管。
5. 连进两球时以最新一次进球为准重新计时。

二、进球四连镜头时长微调
------------------------
1. 进球庆祝：2.8 → 3.0 秒（切入稍晚，多给庆祝动作留一点起幅）。
2. 助攻球员：1.8 → 1.7 秒。
3. 门将失球反应：1.6 → 1.7 秒。
4. 教练反应：1.8 → 1.9 秒。
以上均为默认值，仍可在 cfg 第 1 组自由调整。

三、配置与兼容
--------------
1. cfg 共 137 项，键名全部唯一，默认值与 DLL 一致。
2. v3.1.8 及更早的 cfg 可继续使用，缺少的“进球庆祝镜头延迟”自动取默认值；
   建议替换为随包 cfg，方便调试。
3. 插件、文件和程序集版本统一为 3.1.9。

安装
----
1. 3D-LiveActionCam.dll 放入：BepInEx\plugins2. com.joni9.fm26.3dliveactioncam.cfg 放入：BepInEx\config3. plugins 目录只保留一个 3D-LiveActionCam.dll，然后重启游戏。

前置：BepInEx 6（Unity IL2CPP，win-x64）；不适用于 BepInEx 5.x Mono 版。

若想回到旧行为，把“进球庆祝镜头延迟”改为 0 即可；若需完整回退，换回
v3.1.8 的 DLL 与 cfg。

====================================
以下为 v3.1.8 的原始说明（存档）
====================================

3D-LiveActionCam 转播增强版 v3.1.8
====================================

本版是 v3.1.7 的崩溃热修版；保留门球、角球和回放构图效果，只替换不安全的回放检测方式。
观众、扑救后反应、进球、点球、犯规、换人、终场、第一视角及全部恢复保护均保留。

零、v3.1.8 回放崩溃热修
----------------------
1. 移除对 FM26 OnReplayStarted / OnReplayEnded 私有原生回调的 Harmony 挂接。
2. 移除对按引用返回的 MatchIsInReplay 属性进行托管反射读取。
3. 回放开始、速度切换、暂停和结束只读取 m_currentPlaybackMode 原始枚举字段；该访问只按 IL2CPP
   对象偏移读取，不经过反射或 il2cpp_runtime_invoke。
4. 原有稳定的回放解说事件只负责辨认普通/特殊回放和焦点，不再负责启动或结束回放生命周期。
5. 普通回放必须先命中概率且收到明确普通事件才增强；未知事件保持原生，VAR、越位、鹰眼、门线、
   无效进球和极限判定标记一旦出现，整段回放都会粘性旁路。
6. cfg 关闭“特殊判罚回放保护”时仍可按概率增强未知回放；默认开启保护，优先保证稳定和标线完整。
7. v3.1.7 不建议继续使用；若本版仍异常，请直接换回稳定的 v3.1.6 DLL。

一、现实转播式门球高空视角
--------------------------
1. 使用 FM26 明确的“准备门球 / 执行门球”事件，不匹配模糊解说文字。
2. 每次门球只抽签一次；默认 25%，可在 cfg 调为 0～1。
3. 准备事件只缓存门球位置和抽签结果，门将真正执行门球时才切入高空斜向机位。
4. 默认最多保留 3 秒；进球、扑救、犯规等更高优先级事件仍可立即抢占。
5. 机位后距、侧移、高度、前方注视距离、注视高度、FOV、持续时间和冷却均可配置。

二、现实转播式角球准备视角
--------------------------
1. 每次角球只抽签一次；默认 35%，可在 cfg 调为 0～1。
2. “准备角球”时从角旗外侧斜拍主罚者，并兼顾近侧禁区；四个角会自动镜像构图。
3. 普通角球、短角球或罚向禁区弧顶一旦真正开出，立即归还 FM 原导播，避免漏拍头球和进球。
4. 若扑救后反应正在等待播放，角球低优先级镜头主动让路，不会取消此前的扑救反应。
5. 机位外侧后距、沿边线侧移、高度、禁区注视比例、注视高度、FOV、持续时间和冷却均可配置。

三、原生回放镜头增强（不改速度）
------------------------------
1. FM26 继续完整负责回放倒带、慢速/超慢速、起止时间、次数、声音及退出流程。
2. 模组不改 Time.timeScale，不改 ReplaySettings，不触碰比赛时间片，也不主动触发或重播回放。
3. 默认每组回放以 72% 概率使用更紧凑的转播构图：轻微前移、抬高、FOV 收紧，并仅在原镜头
   已经朝向事件球员时做最多 2.2 度的对焦修正。
4. 所有修改只存在于当前渲染帧；每帧结束立即把位置、旋转、FOV 和近裁剪面还给原生相机，
   原生硬切镜头不会被改成漂移飞镜。
5. 鹰眼、越位线、无效进球和极限判定默认完整旁路，防止破坏图形标线和固定判罚机位。
6. 回放暂停状态 ReplayStopped 也算回放；回放开始会先清掉尚未结束的模组镜头和待播扑救反应。
7. 回放增强开关、概率、FOV、前移、抬高、侧移、最大对焦修正和观众 LOD 均可配置。

四、配置与兼容
--------------
1. cfg 共 136 项，键名全部唯一，默认值与 DLL 一致；全部新增数值均有范围及 NaN/无穷保护。
2. 旧 cfg 仍可直接使用，缺少的新项由 BepInEx 自动生成默认值；建议本次替换为随包 cfg，方便调试。
3. F7 关闭模组时，新增门球、角球和回放构图也会一起关闭并完整让回原游戏。
4. v3.1.7 的 cfg 可直接沿用；插件、文件和程序集版本统一为 3.1.8。

安装
----
1. 3D-LiveActionCam.dll 放入：BepInEx\plugins\
2. com.joni9.fm26.3dliveactioncam.cfg 放入：BepInEx\config\
3. plugins 目录只保留一个 3D-LiveActionCam.dll，然后重启游戏。

前置：BepInEx 6（Unity IL2CPP，win-x64）；不适用于 BepInEx 5.x Mono 版。

建议实测
--------
1. 进入 3D 比赛并至少观看一次普通回放，确认不再出现 UnmanagedCallersOnly 致命崩溃。
2. 门球：确认准备阶段仍是原导播，门将真正开球时偶尔切入高空斜向镜头。
3. 连续门球：确认每次独立抽签，且冷却期间不会连续刷同一机位。
4. 四个角球点：确认准备镜头自动镜像，球一开出马上回到禁区大景别。
5. 扑救出底线：确认扑救后反应优先，角球镜头不会抢掉或取消它。
6. 普通、慢速、超慢速回放：确认速度和时长与原游戏一致，构图更紧凑且切镜没有漂移。
7. 越位线、鹰眼、无效进球：确认保持原游戏固定回放机位和标线。
8. 回放结束、暂停、战术界面、F7 开关后：确认原导播、观众、FOV 和近裁剪面均正常恢复。

若想完整回到 v3.1.6，只需换回上一版 DLL；cfg 中多出的新键不会影响旧版运行。
