新增需求
需求:提供蓄力核心组件
系统必须提供一个 chargeOrbGatherComponent,用于在 TresJS canvas 中显示蓄力阶段的核心光球与向中心汇聚粒子。
场景:默认预览模式下自动显示蓄力节奏
- 当 用户以默认参数预览该组件
- 则 组件必须在不依赖键盘输入的前提下自动循环显示 charge progress 带来的球体变大与粒子汇聚效果
场景:业务模式下外部驱动蓄力进度
- 当 外部将
autoAnimate 关闭并传入 chargeProgress
- 则 组件必须按传入的 0 到 1 进度更新球体大小、强度与粒子目标数量
需求:提供释放圆环组件
系统必须提供一个 chargedBlastRingsComponent,用于显示释放后的两道扩散圆环光,并允许其沿指定方向前进。
场景:默认预览模式下自动循环发射圆环
- 当 用户以默认参数预览该组件
- 则 组件必须自动循环生成一组沿发射方向前进的扩散圆环
场景:业务模式下外部触发一次释放
- 当 外部将
autoPlay 关闭并改变 burstToken
- 则 组件必须从当前位置生成一组新的扩散圆环,并按
fireDirectionX/Y/Z 与 fireSpeed 前进
需求:提供释放炮弹组件
系统必须提供一个 chargedBlastProjectileComponent,用于显示释放后的炮弹主体与尾迹,并允许其沿指定方向前进。
场景:默认预览模式下自动循环发射炮弹
- 当 用户以默认参数预览该组件
- 则 组件必须自动循环生成带尾迹的炮弹,并持续前进直到到达最大距离后重置
场景:业务模式下外部触发一次炮弹发射
- 当 外部将
autoPlay 关闭并改变 shotToken
- 则 组件必须生成一个新的炮弹实例,并按
fireDirectionX/Y/Z 与 fireSpeed 进行运动
场景:配置面板手动触发一次炮弹发射
- 当 用户在组件服务的配置面板点击“发射一次”
- 则
chargedBlastProjectileComponent 必须立即触发一次新的炮弹发射,而不依赖等待自动循环
需求:排除无关的 ready 与角色包装效果
三组件方案必须只覆盖用户指定的特效主体,不能把原项目中已排除的包装层继续迁入。
场景:接入组件服务时不包含多余效果
- 当 用户加载这三个组件
- 则 不应出现人物模型、人物闪烁、ready sphere、上升圆环、ready 飘散粒子、后期处理或普通射击效果
需求:提供释放组合组件
系统必须提供一个 chargedBlastReleaseComponent,将释放圆环与炮弹按参考项目的关系协同在一起,并提供更精简的统一参数集。
场景:默认预览模式下协同发射
- 当 用户以默认参数预览该组件
- 则 组件必须同时触发释放圆环与炮弹,使两部分看起来来自同一次释放动作
场景:外部触发一次组合释放
- 当 外部将
autoPlay 关闭并改变 shotToken
- 则 组件必须用同一个触发源同时驱动圆环与炮弹,而不是让两者各自独立循环
场景:配置面板手动触发一次组合释放
- 当 用户在组件服务的配置面板点击“发射一次”
- 则
chargedBlastReleaseComponent 必须立即触发一次新的组合释放,并保持圆环和炮弹同步
需求:通过 dcsConfig 暴露默认值和参数面板
三个组件必须通过 src/dcsConfig.ts 完成注册,并对外暴露默认值与配置面板。
场景:组件服务枚举组件时可见
- 当 动态组件服务读取
src/dcsConfig.ts
- 则 必须能够发现这三个新组件并读取它们的默认值和参数 schema