3.2 KiB
3.2 KiB
GPS 点动画系统方案
文档版本:v1.0 最后更新:2026-04-02 08:28:05
目标
把 GPS 点从“静态定位点”升级成状态驱动的动态标记系统:
- 停止时是一种动画
- 移动时是一种动画
- 高速时是一种动画
- 高压/危险状态时还能叠加额外张力
原则:
- 优先程序化动画,不先上重资源
- 不破坏当前位置识别性
- 必须兼容
standard / lite - 品牌 logo 只是贴片,不替代定位点本体和朝向三角
状态分层
1. 运动状态
idle- 基本静止
- 轻呼吸
- 不拖尾
moving- 正常行走/跑动
- 有轻微动势和尾迹
fast-moving- 明显高速
- 更强脉冲
- 更长尾迹
- 朝向更锐利
2. 危险/高压状态
warning- 由心率/张力状态触发
- 不替代运动判断,而是在视觉上给 GPS 点额外警示感
- 更暖的色彩张力
- 更强的外环脉冲
第一阶段实现范围
默认动画 profile
dynamic-runner
后续预留:
minimalwarning-reactive
第一阶段具体表现
idle
- 慢节奏呼吸
- 基本无拖尾
- 方向三角稍收敛
moving
- 普通脉冲
- 后侧轻尾迹
- 方向三角略放大
fast-moving
- 更快脉冲
- 更长尾迹
- 本体略放大
- 方向三角更强
warning
- 保留运动态基础
- 外环增加暖色警示张力
- 脉冲节奏更急
第一阶段配置字段
入口:
"game": {
"presentation": {
"gpsMarker": {}
}
}
新增字段:
{
"animationProfile": "dynamic-runner"
}
说明:
minimal- 更轻、更克制
- 适合低配或保守活动风格
dynamic-runner- 默认值
- 强调移动感
warning-reactive- 更强调高压/危险张力
运行时内部字段
这些字段不建议先暴露给活动配置,而是由运行时自动计算:
motionStatemotionIntensitywakeStrengthwarningGlowStrengthindicatorScalelogoScale
这样可以保证:
- 配置简单
- 逻辑稳定
- 真机调完后再决定哪些值得开放
运行时判定建议
运动状态
< 1.0 km/h:idle1.0 ~ 6.8 km/h:moving>= 6.8 km/h:fast-moving
高压状态
参考现有 telemetry tone:
yelloworangered
其中:
orange / red优先进入warningyellow作为较轻的张力增强
渲染拆分
WebGL 主体
负责:
- 本体
- 外环
- 脉冲
- 尾迹
- 朝向三角
2D 叠加层
负责:
- logo 中心贴片
logo 不参与主几何动画,只跟随缩放强度和尺寸变化。
性能策略
standard
- 完整脉冲
- 完整尾迹
- 警示外环
lite
- 减弱尾迹
- 降低 glow
- 降低 warning 外环强度
- 保留最基本的移动/静止差异
后续第二阶段
- logo 贴片本身的轻动画
- 事件动作
- 打点成功跳动
- 锁定开启反馈
- 高压进入反馈
- mascot/角色化 GPS 点
结论
GPS 点动画不应该做成单一固定动画,而应该做成:
状态驱动的动态标记系统
第一阶段先把:
idlemovingfast-movingwarning
这 4 种状态的程序化动画跑通,再决定后续是否继续开放更细粒度配置。