更新日志
日期 | 内容 | 作者 |
---|---|---|
2022年12月12日 | 调用震屏控制相机前后与左右旋转 | 朱兴韬 |
2022年12月6日 | 新增准星强制回准与触发镜头移动跳出回准需求 | 朱兴韬 |
2022年12月5日 | 新增每1次射击后坐力镜头运动曲线,与准星回位镜头运动曲线需求 | 朱兴韬 |
2022年11月28日 | 修改系统案,更改后坐力实现方式 | 朱兴韬 |
2022年11月25日 | 创建文档 | 朱兴韬 |
一、设计目的
新增枪械的后坐力机制,强化射击手感,增加枪械策略性与射击趣味性
二、流程图
三、概述
- 枪械现在在射击时,会附带后坐力,后坐力表现区别于现有的震屏功能。本文中将对后坐力的触发方式、触发表现进行规范与细化。
四、配置表
4.1 新增字段
在枪械预制中新增以下配置
字段 | 类型 | 内容 |
---|---|---|
recoilGapTime | int | 停火间隔;配置毫秒 |
recoilMoveBackTime | int | 回位时间;配置毫秒 |
isForceMoveBack | bool | TRUE= 强制回准 FALSE= 如果玩家通过滑屏激活了aimingCamera,则不进行回准 |
四、功能规则
4.1 后坐力计算
后坐力信息读取:枪械预制中新增后坐力脚本。
读取脚本中配置后坐力信息,后坐力信息中枚举了在“连续射击”状态内,每1次射击的镜头偏移量。每1次连续射击的重新触发,都需要从后坐力信息的第1个条目进行重新读取。
KEY(开火次数) X Y 备注 3 0.2 0 表示从第0枪~第3枪,每次射击镜头绕X轴移动0.2个单位。 10 0.15 0.2 表示从第4枪~第10枪,每次射击镜头绕X轴移动0.5个单位,绕Y轴移动0.2个单位。 18 0 -0.2 表示从第11枪~第18枪,每次射击镜头绕Y轴移动-0.2个单位,18枪之后若无配置,则按照第18枪的配置信息执行偏移,直至子弹耗尽。
连续射击的失效
- 当两次射击间隔
≥recoilGapTime
配置的时间,武器被视为停火,下次射击重新计算后坐力。
- 当两次射击间隔
4.2 后坐力表现
新增后坐力运动表现:枪械预制中新增后坐力曲线脚本,用于控制每次射击镜头偏移的运动曲线,调用Unity的Curve组件实现。
- X轴表示后坐力表现时长,一般配置为枪械的射击间隔;Y轴为偏移量表现速度。
- 图示,若图内枪械为“霰弹枪”的后坐力镜头表现,根据该曲线,则表现为:
- 射击后,枪械在0.05s内会迅速播放偏移量的95%,剩余5%部分在0.05s内表现完成。霰弹枪短时间快速抬高,滞空,进入回准表现。
镜头偏移坐标:
- 绕X轴的偏移:根据prefab配置镜头像素偏移,该偏移量可累计。
- 0=不偏移;负整数=向下偏移;正整数=向上偏移。
- 绕Y轴的偏移:根据prefab配置进行准星像素偏移,该偏移量可累计。
- 0=不偏移;负整数=向左偏移;正整数=向右偏移。
- 偏移时长:根据后坐力脚本配置时长,控制准星完成该次偏移所需要的时间,该时间可累计。
- 配置毫秒。
- 绕X轴的偏移:根据prefab配置镜头像素偏移,该偏移量可累计。
4.3 准星回位
- 准星回位触发条件:两次射击间隔
≥recoilGapTime
配置的时间,开始进行准星回位流程。 - 准星回位方式:计算玩家在射击或连续射击期间获得的所有Y轴与X轴偏移量,根据该偏移量,移动准星进行回位。
- 回位的持续时间:根据
recoilMoveBackTime
的配置时长,控制准星从当前位置移动到回位位置所需的时间。 - 新增回位运动表现:在每一把枪械预制中新增参数(同4.2 后坐力表现),用于控制每次回位准星偏移的运动曲线。
- 回位的持续时间:根据
- 新增bool类型字段:
isForceMoveBack
- TRUE= 强制回准。
- FALSE= 如果玩家通过滑屏激活了aimingCamera,则不进行回准。
4.4 震屏功能
- 现在在射击时,调用现有的CameraShake功能,每一次射击,震屏表现的持续时间与后坐力表现时长相等。
- 枪械预制中可加载震屏文件。