Bounce
查看 Markdown按节拍压缩和拉伸载具与行人的渲染期视觉效果。
include/XBase/Bounce.h · XBase::Bounce
Bounce只修改渲染矩阵,不改写物理、碰撞、速度和操控。宿主只传值类型设置,渲染事件、矩阵快照和恢复由 XBase 后端统一管理。
struct Settings {
bool enabled = false;
bool otherVehicles = false;
bool people = false;
float bpm = 135.0f;
float amplitude = 0.20f;
int easing = 1;
};
bool SetSettings(const Settings& settings);
Settings GetSettings();enabled 控制地面载具,包括汽车、卡车和四轮摩托。otherVehicles 控制摩托、船、直升机、飞机等其余载具。people 控制行人和玩家角色;已经在弹跳载具内的人物由载具整体矩阵带动,避免重复缩放。bpm 收敛到 20amplitude 收敛到 0easing 支持 0 线性、1 正弦、2 二次和 3 回弹。XBase::Bounce::Settings settings;
settings.enabled = true;
settings.otherVehicles = true;
settings.people = false;
settings.bpm = 128.0f;
settings.amplitude = 0.18f;
settings.easing = 1;
XBase::Bounce::SetSettings(settings);void Init();
void NotifyGameInit();
void Process();
void Shutdown();Init() 订阅载具、行人和销毁事件,挂载是幂等的。Process() 每帧推进节拍相位并恢复上一帧的矩阵快照;NotifyGameInit() 丢弃旧世界快照,避免读档后访问失效对象;Shutdown() 恢复矩阵并解除所有事件订阅。
| FeatureCapability | SA | VC | III |
|---|---|---|---|
| BounceVehicles | ✅ | ✅ | ✅ |
| BouncePeople | ✅ | ✅ | ✅ |
当前实现不接管 ViceBounce 的音乐导入、节拍图同步和过场演员渲染;这些属于独立的音频与过场管线。
评论