PeakSpectatorMode
Better spectator camera: F3 free-fly cam, Q/E switch players, smooth soft-follow, overhead name/altitude labels, x-ray silhouettes. 更好的观战视角:F3 自由相机、切换玩家、软跟随、头顶标记、轮廓透视。Changelog
v1.2.0
中文
新增
- 头顶标记新增原版说话喇叭图标与房主皇冠图标。 名字左侧显示与原版名牌一致的说话/静音/安静喇叭;房主玩家名字旁显示原版皇冠
- 头顶标签字体改为与原版名牌完全一致。 同字体、字重、间距,直接共享原版字体材质(描边+底衬),替代原先的 8 向阴影副本
变更
- TimeTheme 适配。 标签字色、箭头内圈填充、喇叭与皇冠图标颜色每帧读原版名牌的实时颜色,TimeTheme 的昼夜染色与 0.25 秒过渡原样继承;未装 TimeTheme 时即为原版白天色。箭头外圈仍跟随玩家肤色。
修复
- 顺带修正加载日志版本号停留在 v1.1.1 的问题。
English
Added
- Vanilla speaker icon and host crown on overhead labels. The name's left edge shows the same talking/muted/idle speaker icon as the vanilla nameplate; host players also get the vanilla crown next to their name.
- Overhead label text now matches the vanilla nameplate exactly: same font, weight and spacing, sharing the vanilla font material (outline + underlay) instead of the previous 8-direction shadow copies.
Changed
- TimeTheme adaptation. Label text, arrow fill, speaker and crown colors read the vanilla nameplate's live colors every frame, inheriting TimeTheme's day/night tint and its 0.25s transition as-is; without TimeTheme they simply match the vanilla day color. The arrow outline still follows the player's skin tone.
Fixed
- Fixed the load log still reporting v1.1.1 while the plugin version was 1.1.2.
[1.1.2] - 2026-08-30
Fixed / 修复
- PeakStatsEx 1.4.x compatibility: the map seed row shows up again. PeakStatsEx 1.4.0 merged its three map-seed toggles (Terrain Randomiser / Terrain Customiser / PLL Library) into a single
Display Map Seed. This mod was still looking up the two old names, so the seed row silently went missing from the free camera's "show full PeakStatsEx info" panel (the rest of the compatibility kept working). It now reads the new setting. / PeakStatsEx 1.4.x 兼容:地图种子那一行恢复显示。 PeakStatsEx 1.4.0 把三个地图种子开关(Terrain Randomiser / Terrain Customiser / PLL Library)合并成了单个Display Map Seed,而本 mod 还在按旧的两个名字查找,于是自由相机「显示全部信息」时种子那行静默失效(兼容的其余部分不受影响)。现已改用新设置。
Changed / 变更
- Build deploy path (
<PluginsDir>) re-pointed at the real install folder, so a build no longer creates a second copy under an outdated category folder name. / 构建部署路径(<PluginsDir>)改指实际安装目录,避免因分类目录改过名而在 plugins 下多出一份副本。 - Updated READMD.md / 更新了README.md
[1.1.1] - 2026-07-18
Added / 新增
- ESC now exits the F3 spectator (free camera) mode. Press ESC while spectating to leave free camera immediately. / ESC 现在可退出 F3 观战(自由相机)模式:观战时按 ESC 立即退出自由相机。
[1.1.0] - 2026-07-18
Added / 新增
- Bilingual (English / 中文) release. All player-facing text now ships in both languages.
- In-game text (e.g. the forced-death warning) follows the game's current language automatically (Simplified/Traditional Chinese -> Chinese, otherwise English).
- Config UI: every section, key name and description in the BepInEx config now shows English and Chinese together.
- Logs: a new
0. General / Log Languageoption (Auto/English/Chinese) controls the language of console/log messages.Autofollows the in-game language.
- 双语(English / 中文)版本。 所有面向玩家的文本现在都同时提供中英两种语言。
- 游戏内文本(如强制死亡警告)自动跟随游戏当前语言(简体/繁体中文→中文,其他→英文)。
- 配置界面:BepInEx 配置里的分组、键名与描述均中英并列显示。
- 日志:新增
0. General / Log Language(日志语言)选项(Auto/English/Chinese),控制控制台/日志信息语言,Auto跟随游戏内语言。
Note / 说明
- The plugin GUID (
com.AiAe.peakspectatormode) is unchanged. Because config section/key names were renamed to bilingual labels, existing.cfgfiles will regenerate a fresh set of entries with default values on first launch (old entries are ignored). / 插件 GUID 未变;由于配置分组/键名改为中英双语标签,旧的.cfg首次启动会以默认值重新生成新键(旧键被忽略)。
[1.0.5] - 2026-06-26
修复
- 修复 X 光剪影(轮廓透视)在 F3 下对未激活角色每帧重建的掉帧——与 1.0.4 修掉的「头顶名牌每帧重建」是同一类 bug 的孪生残留,但只在 F3(观战激活)时触发。根因:未激活(死亡/未加载/断线占位)但仍存活的角色,其剪影克隆体因「激活状态」(
activeInHierarchy)判定被每帧销毁、又被每帧重新创建(含AddComponent<SkinnedMeshRenderer>+ 逐材质槽new Material,比名牌更重),8 人局放大成 F3 头号掉帧源。现改为:仅当角色对象真正被销毁时才移除剪影,未激活只隐藏不销毁——剪影不再每帧重建,未激活玩家重新出现时无缝恢复。- 显示判定完全不变:未激活/死亡/被遮挡的隐藏逻辑仍由
IsValid()(含activeInHierarchy)+ 遮挡检测负责;只把「销毁判据」从「未激活」收紧为「GameObject 真正被 Destroy」。高延迟、多人重进、断线占位等网络场景行为与 1.0.4 名牌修复一致且更稳(重进=新实例 ID=全新剪影,旧的由Character.OnDestroy补丁即时清理)。
- 显示判定完全不变:未激活/死亡/被遮挡的隐藏逻辑仍由
性能
- X 光剪影同步降频:F3 下
SyncPair对「目标不可见」的克隆体直接早退(仅确保关闭),跳过每帧的SkinnedMeshRenderer.bones数组 marshal 与 detail 材质逐帧重设;克隆体重新可见的那一帧再一次性完整同步 mesh/骨骼/材质。压低 F3 稳态基线,不影响观感。 - 激活但渲染器尚未就绪(换装/加载中)时的空
_pairs重建加 0.5s 节流,避免该窗口期每帧RebuildRenderers。
说明
- 不改动 GUID/配置,现有设置不受影响。日志依据:2026-06-24 FrameDoctor 报告(当时跑 1.0.3,名牌 thrash 占主导,剪影 thrash 被掩盖;名牌修复后剪影即为下一 F3 瓶颈)。
[1.0.4] - 2026-06-24
修复
- 修复 8 人多人时头顶名牌每帧重建导致的严重掉帧(FrameDoctor 实测:本 mod 占 5.4% CPU、约 44% 卡顿抓栈、p99 帧时 40ms)。根因:未激活(死亡/未加载/断线占位)但仍存活的角色,其名牌因「激活状态」判定被每帧销毁、又被每帧重新创建(含十余次 AddComponent),8 人时放大成头号掉帧源。现改为:仅当角色对象真正被销毁时才移除名牌,未激活只隐藏不销毁——名牌不再每帧重建,未激活玩家重新出现时无缝恢复。
- 同步 csproj 部署路径(
<PluginsDir>)到实际安装目录,避免新版构建到错误文件夹。
说明
- 不改动 GUID/配置,现有设置不受影响。
[1.0.3] - 2026-06-19
变更
- 将当前本地配置值固化为新版默认:名字字号 16→12、世界海拔字号 17→13、标记透明度 0.86→0.7。
- 头顶标签的「文字」与「箭头」透明度解耦为各自独立的绝对值:「标记透明度」现在只控制头顶箭头,文字改由下方新增项控制(不再相乘)。
新增
3. 观战显示新增 标签文字透明度(默认 0.8):独立控制头顶标签文字与文字阴影的不透明度,与「标记透明度」(箭头)互不影响。
[1.0.2] - 2026-06-19
修复
- 修复退出 F3 自由相机后,PeakStatsEx 队友体力条上方物品图标残留、不再更新的问题(本地关闭"显示物品栏"时)。根因:F3 期间临时拉近距离显示所有队友的体力条,退出后远处队友的体力条会淡出并失活,PeakStatsEx 自身无法再清理其物品图标。现在退出 F3 时在短窗口内逐条强制清空残留图标;本地若本来就显示物品则不清。
- 修复 F3 头顶名牌在小字号下"名字"与"海拔"两行间距过近的问题:阴影偏移改为随字号缩放(小字号不再把两行桥接到一起),并按字号自适应行距(小字号补间距、大字号外观不变)。
说明
- 仅影响小字号名牌与 PeakStatsEx 兼容;不改动 GUID/配置,现有设置不受影响。
[1.0.1] - 2026-06-19
修复
- 修复 Summit Roster 名牌文字在变化后偶发重影(阴影副本与主文字不同步、残留旧字)。阴影改为逐个自愈式同步:仅当与主文字不一致时才写入,任何外部改动(含 XUnity AutoTranslator 的异步翻译)都会在下一帧自动纠正。
性能
配合掉帧排查(self-time / 1% low)做的全面优化,观战 mod 每帧开销大幅下降,且不影响任何功能与显示:
- 轮廓透视(X 光剪影)非观战态不再空转:剪影克隆体即使未开启 F3 也会在角色生成时建好,原先每帧同步网格/骨骼/材质——现在仅在观战激活时工作,只在显示↔隐藏切换时同步一次。这是日常游玩(绝大多数时间不观战)最大的一笔节省。
- 头顶名牌文字/阴影改缓存:仅在海拔/名字/字号变化时才重建并写入(原先每帧重写 1 主文字 + 8 阴影共 9 个 TMP,会反复触发翻译插件的 set_text)。
- 名牌渲染器列表缓存:屏幕包围盒计算不再每帧
GetComponentsInChildren遍历整个角色层级(改为 0.5s 刷新一次)。 - 样式刷新降频:名牌样式不再每帧全量重设(改为变化时 + 每 0.5s)。
- Summit Roster 兼容去冗余:每帧逻辑折叠为一帧只跑一次(原先被多路触发跑 2–3 次);Character→Label 映射每帧只建一次(原先每个角色都新建快照,O(N²) 分配);未安装 Summit Roster 时数帧后永久退避,不再每帧扫描程序集与全部 Canvas。
- 消除多处每帧内存分配(key 快照复用等),减少 GC 引起的锯齿/微卡。
说明
- 名牌位置仍每帧更新,跟随依旧丝滑;以上均为内部开销优化,观战体验不变。
[1.0.0] - 2026-06-03
核心
- F3 自由相机下按住 Alt 时移动速度按配置倍率平滑降低,松开后平滑恢复。
配置
- 将当前
com.AiAe.peakspectatormode.cfg的配置值固化为新版默认值或固定值。 - 配置项进一步精简为 3 组:按键设置、相机控制、观战显示。
- 移除重置滚轮缩放按键、望远镜过渡速度、自由相机精简 HUD、显示头顶标记、显示透视细节层、轮廓透明度、调试模式、高级功能组和模组兼容组下的配置项。
- 调试功能和所有兼容功能改为默认固定启用。
- 保留
头顶箭头样式,并将自由相机队友体力条距离移动到2. 相机控制 (Camera)。 - 将
移动阻尼默认值调整为 3。 - 新增
Alt慢速倍率,默认 0.33,用于控制 F3 下按住 Alt 时的自由相机移动速度倍率。 - 新增
自由相机显示完整peakstatsex信息,默认关闭以保持现有精简显示;开启后 F3 模式临时显示 PeakStatsEx 完整统计信息。
兼容性
- PeakStatsEx 运行时覆盖改为统一恢复管理,避免 F3 反复进出后泄漏或覆盖用户原配置。
- 修复退出 F3 后 PeakStatsEx 本地关闭物品显示时,队友体力条上方物品图标仍残留的问题。
- Summit Roster 兼容清理重进/重连后的旧 UI 与缓存状态,并重新绑定当前活跃进度条实例。
[0.1.1] - 2026-05-25
兼容性
- 适配 PeakStatsEx 1.2.1:跟随其官方移除 ShowItemNames 配置项以及 InventorySlotUI.nameText / CreateNameText API,对应反射点清理(保持 1.2.0 向下兼容)
- 文案:
自由相机显示PeakStatsEx物品和名称改为自由相机显示PeakStatsEx物品栏(1.2.1 已无物品名功能)
备注
- StaminaInfoFix 在 1.2.1 上仍有效,新版
AddTextObject未设置 RectTransform 锚点/轴心,"字体大小不一致" bug 仍存在
[0.1.0] - 2026-05-25
核心
- F3 GodCam 自由相机、F4 重置、Q/E 切换玩家
- 切换玩家三段式平滑过渡(缓入 + 匀速 + 缓出)
- 软跟随:过渡完成自动跟随,距离 > 10m 才退出
- 自由相机下精简 HUD:保留体力条/顶部时间/右上角地图,隐藏交互/物品栏/准星/原版名字
- Alt+F3 长按 3 秒强制本地玩家死亡
头顶标记
- 名称 + 海拔,8 方向阴影,距离自适应字号
- 头顶箭头两种风格可选(圆角玻璃 / 线框玻璃)
- C 键三段循环:全部 → 仅箭头 → 全空
- F 键临时显示/隐藏
跟踪指示
- 被跟踪玩家头顶名称左侧朝右白色水滴箭头
- 进入跟踪渐入、退出渐隐
- 75% 不透明度避免遮挡
轮廓透视
- 玩家被遮挡时显示同肤色半透明剪影
- 主体 + 细节层(衣服/帽子/腰带)双层
兼容
- GhostSpectator 0.2.0:永久幽灵观战态自动禁用 Alt+F3、HUD 互斥、Summit Roster 过滤永久观察者
- BetterPlayerDistance v2 0.1.16:F3 时压制 BPD2 标签,退出恢复
- Summit Roster 1.1.2:进度条移右、当前观察玩家箭头指示(同款水滴指针)、字体 8 方向阴影、海拔 > 3000m 兜底过滤
- PEAKTrails:自由相机下用 R 键独立切换玩家轨迹
- PeakStatsEx 1.2.0:自由相机下扩大队友体力条距离到 9999m、强制显示物品图标和名称
