游戏战斗方向总结

🗨️字数统计=5.4k字 ⏳阅读时长≈18分钟

这段时间花了几个月的时间回顾了从入行以来经历的项目以及开发经验,总结了MMO中涉及到的战斗方向中的知识点。若有误区,希望大家批评指正。

介绍

MMO手游是指可以支持多人在线的网络游戏,具有极强的交互性,玩家可以在游戏中进行强烈的互动,这也导致了相关的战斗也需要做的生动逼真,打击感强烈,最近经历的项目又是无双割草类,这方面的要求更甚。

游戏中战斗并不是单一的画面的表现,其涉及到方方面面,是多方面的融合,想要做好游戏战斗,需要极强的综合素质。

工欲善其事必先利其器!先从战斗编辑器说起吧。战斗编辑器涉及到以下部分,如有缺漏,请联系我补充。

战斗编辑器涉及要素(技能效果类型)

Animation、WeaponAnims、Damage、FXEffect、Warning、Ghost、Slow、CameraAnimation、CameraPitch–调整相机俯仰角、CameraUp–调整相机垂直高度、CameraTranslate–调整相机水平移动、CameraZoom–调整相机拉近拉远、CameraShake–相机震动、MeshDisappear–武器消失、SceneDisappear–场景消失、LightDown–变暗、Sound、RadialBlur–镜头模糊效果、Bullet、Buff、PositionMove、ShowWindow、BulletTime–子弹时间、HideOperationUI、CallMinion、SkillInfo。

SkillInfo

SkillInfo技能信息是最为基础的元素,任何技能都必须携带该项元素。

描述:技能相关的描述,用于向玩家介绍该技能。

技能图标:技能对应显示的icon

战斗施放距离:自动战斗功能时技能的施放距离,不同技能拥有不同的释放距离,对应了游戏术语中的手长和手短,远程和近战技能施放的距离是不同的。

锁定施放距离:自动锁定会锁定周围离自己距离最近的敌人,一般情况下自动锁定的距离会略大于自动战斗施放技能的距离。

锁定范围角:锁定一定范围内的敌人,一般为360度(普攻)以及当前方向(冲刺)。仅锁定类型为最近时有效。

转向开始时间:不填代表全程都可以旋转(如进场技能)。

转向结束时间:技能施放过程中可以用转向的结束时间。

技能施放过程中的转向速度:转身速度,单位 度/秒。每帧实现时可以使用插值进行平滑处理。

技能优先级:
‘’’ shell
0:采集、回城
1:普攻
2:蓄力技能
3:切换武器、召唤伙伴、qte
4:大招
5:闪避
‘’’

是否是骑乘技能:若为骑乘状态技能,不适用移动僵直,并改变特效挂点为马的骨骼点

施放大招所需技能量:施放大招时所需要的怒气值。

打断时间配置(硬直时间):
‘’’ shell
动作不被打断的开始时间
动作不被技能动作打断的时间
动作不被非技能动作打断结束时间(砍到最后的时间)
技能保护时间(一般技能的CD)
‘’’

输入时间配置:
‘’’ shell
输入开始时间:开始砍的时间。
输入结束时间:收刀结束时间。
AI输入结束时间:AI机器人砍到最后的时间。
清除连招信息时间:一般默认与收刀结束时间一致。
‘’’

Animation

生效时间:动画的时长,包括开始时间与结束时间,其中结束时间一般与动作不被非技能动作打断结束时间一致。
动画名:用于加载相应动画(通过hashcode的形式加载)。
是否无视动作融合:是否与上一个动作融合过渡。

WeaponAnims

生效时间:武器动画的时长(timeline中开始和结束的时间)。

WeaponAnimID:武器动画ID。

动画名:武器动画对应的动画名称(通过hashcode的形式加载)。

Damage

生效时间:攻击的时长(timeline中开始和结束的时间)。

DamageID:攻击信息的ID。

伤害循环次数:如果伤害的循环次数大于一次,那么实际生效时间将会加倍。

实际生效时间:基于原生效时长以及伤害循环次数。

循环伤害是否互斥:循环伤害是否会进行重复伤害,如火焰灼烧等。

伤害互斥组:同组之间不会重复伤害。

攻击信息保留开启时间:某时刻之后若该技能被打断,是否继续产生伤害。

公共设置:
‘’’ shell
技能方向[用于受击方位判断]:”随机”, “顺时针”, “逆时针”, “向外”, “向里”, “特效位置”, “只区分左右”。

可伤害阵营:”仅对敌方”, “友方和自己”, “敌方和友方(不包括自己)”。

击中特效:放置受击时的特效,在适当的时候实例化显示该特效。

击杀特效:放置受击死亡时的特效,在适当的时候实例化显示该特效。

击中音效资源

碰撞盒击中特效及碰撞盒击中特效高度:受击特效,用做射线检测,将受击特效加载在正确的位置。

伤害飘字类型:分为不同系统玩法的飘字。
‘’’

伤害形态设置:
‘’’ shell
伤害形态:”武器”, “圆形”, “扇形”, “矩形”, “特效碰撞”, “碰撞后圆形”, “追踪目标”, “分段扇形”, “击飞锁定”, “范围内参考特效位置”。

圆形伤害形态:中心点偏移(前方向x,右方向z),圆形半径,技能高度的范围(-∞,+∞)。

扇形伤害形态:中心点偏移(前方向x,右方向z),扇形半径,扇形角度,初始偏移角度,技能高度的范围(-∞,+∞)。

矩形伤害形态:中心点偏移(前方向x,右方向z),矩形长宽,技能高度的范围(-∞,+∞)。

分段扇形伤害形态:中心点偏移(前方向x,右方向z),扇形半径,扇形角度,初始偏移角度,扇形分割数量,是否是顺时针,技能高度的范围(-∞,+∞)。
‘’’

伤害公式设置:技能的伤害计算公式,如伤害系数、等级相关等。
‘’’ shell
公式ID:对应公式的ID。

系数列表:霸体系数、格挡减少系数或格挡减少固定值、破霸体的等级强度、等级、伤害系数。

基础公式:如 伤害 = 等级*系数1/1000+系数2/1000
‘’’

硬直参数设置:分为小型、中型、大型、硬直效果-BOSS崩溃时(只要有霸体槽的怪都是崩溃硬直,无视体型)、硬直效果-BOSS崩溃浮空时、硬直效果-小型怪和中型怪浮空时、硬直效果-PVP、浮空硬直效果-floatingPVP。
‘’’ shell
硬直效果: “无硬直效果”, “受击”, “击退”, “击倒”, “击飞”, “吸附”, “旋风”, “地面吸附”, “圆心击退”, “圆心击飞”, “无双恐惧时间”, “擒技”, “特效吸附”, “强化击飞”,”强化圆心击飞”, “大硬直”

硬直时间

水平初速度

水平速度修正

水平加速度持续变化量:针对水平速度修正(减速度)进行每帧变化调整。公式:当前帧水平速度修正=上一帧水平速度修正-水平加速度持续变化量(支持负值)

水平最大距离

竖直初速度

竖直速度修正

击飞最大高度
‘’’

其它设置:
‘’’shell
顿帧时间

仇恨系数

触发器:

  • 触发器类型:”无触发器”, “触发按键输入”, “目标选取”。
  • 触发器string参数
  • 触发器int参数
  • 触发器目标选取:”无”, “单体”, “单体距离优先”, “单体品质优先”, “过滤无硬直怪”, “过滤霸体怪”, “过滤小型怪”, “过滤中型怪”, “过滤大型怪”。

伤害延迟时间:命中后伤害生效延迟(秒)但受击特效先播

击退最大距离衰减系数:

  • 目标距离越远,击退的最大位移越小,该参数控制衰减快慢,越大衰减越快。
  • 设x为主角据目标距离,a为击退最大距离衰减系数
  • 实际击退距离=击退最大距离(1-ax^2)。

击飞竖直初速度衰减系数:

  • 目标距离越远,击飞的竖直速度衰减越快。
  • 设x为主角据目标距离,b为竖直初速度衰减系数
  • 实际竖直初速度=竖直初速度(1-bx^2)*竖直速度衰减随机值。

击飞竖直速度衰减随机值:此随机值对竖直初速度衰减系数进行随机修正(可以不随机)。

是否忽略击飞弹起

叫声:

  • 命中后对面受击叫声强度:”强”, “中”, “弱”。
  • 受击叫声播放权重

吸附:

  • 吸附类型:”不吸附”, “会超出吸附点”, “不会超出吸附点”。
  • 吸附坐标旋转偏移:偏移角度,跟偏移距离一起作用得出具体坐标点偏移位置。
  • 吸附坐标距离:偏移直线距离。
  • 是否更新吸附位置:0、不更新1、更新坐标与方向2、仅更新方向(不更新是指在技能的第一次伤害触发点就决定好吸附坐标,更新坐标与方向是指每造成一次伤害就以当前角色坐标计算吸附位置,仅更新方向指以放技能瞬间的初始坐标点根据人物面向更新方向)

技能调整:用于替换效果,比如修改段数、附加buff、解锁某项功能后伤害变了等等

  • 技能调整分类标签
  • 技能调整ID列表

浮空伤害减免:

  • 是否浮空伤害减免
  • 是否计入浮空受身次数
  • 是否引起格挡反击

弱点标识:

  • 破弱点标识
    ‘’’

BUFF设置:内含伤害触发buff列表。
‘’’shell

  • 伤害触发buff ID:1、先造成伤害,进入硬直后再添加buff。2、每个命中单位独立计算,不是所有命中单位统一计算。
  • 添加buff概率
  • 添加buff概率公式:与 添加buff概率 互斥,如果有公式就按照公式进行计算。
  • 添加buff时长
  • 添加buff时长公式:与 添加buff时长 互斥,如果有公式就按照公式进行计算。
    ‘’’

FXEffect

生效时间:特效的时长(timeline中开始和结束的时间)。

特效类型:”跟随节点”,”跟随位置(旋转不变)”,”特效放在目标位置”,”目标位置半径随机”,”自主控制”,”将自己作为特效碰撞”,”指定范围内特效随机出现”,”UI”,”特效停留在出生时玩家位置”。

特效资源:对应的特效预制。

特效挂载骨骼:挂载在预制的哪个节点上。(仅特效类型为跟随节点生效)

是否忽略Delay时间

当timeline播放时,对应的粒子特效界面会计算并实时显示:

  • 当前粒子颗数:遍历并求和子节点中的ParticleSystem组件中携带的粒子数量particleCount,每帧计算数量。
  • 当前粒子发射器使用情况:遍历并求和子节点中的ParticleSystem组件的数量。
  • 同屏粒子发射器峰值:遍历并求和子节点中的ParticleSystem组件中的携带的粒子数量particleCount大于0的情况。
  • 非法材质:对子节点中shader名错误的ParticleSystemRenderer组件及MeshRenderer组件进行计数。
  • Animator数量:对子节点中Animator组件的数量进行求和。
  • Mesh层数:对子节点中MeshRenderer组件的数量进行求和。

Warning

生效时间:预警的时长(timeline中开始和结束的时间)。

预警类型:用于在施放AOE招式时向玩家进行提前警示,分为圆形、矩形、线、扇形。

预警特效资源:如果不是扇形,会加载对应的预警资源。如果是扇形,就需要填写扇形预警角度。

位置偏移

缩放

最大预警显示范围

预警显示目标位置:”预警显示在自己脚下”,”预警显示在目标位置”。

扇形预警角度:仅预警类型为扇形时会生效。

Ghost

生效时间:残影的时长(timeline中开始和结束的时间)。

残影类型:拖尾残影、技能收缩效果。

跟随速度:技能残影收起速度。

残影数量:一般默认为3个。

Slow

生效时间:慢放的时长(timeline中开始和结束的时间)。

慢放速度

慢放结束恢复时间

慢放期间添加buff

慢放特效:

  • 慢放特效的开始和结束时间。
  • 慢放特效的特效资源。
  • 慢放特效的挂载节点。

CameraAnimation

生效时间:时长(timeline中开始和结束的时间)。

如果是美术镜头:

  • 运镜名称
  • 运镜结束后是否设置主摄像机
  • 运镜结束后播放的主摄像机动画
  • 运镜时摄像机视域夹角

如果不是美术镜头:

  • 普通镜头名称

CameraPitch

生效时间:时长(timeline中开始和结束的时间)。

摄像机仰俯角变化

  • 旋转角度

CameraUp

生效时间:时长(timeline中开始和结束的时间)。

摄像机抬起

  • 移动距离

CameraTranslate

生效时间:时长(timeline中开始和结束的时间)。

摄像机平移

  • 移动距离

CameraZoom

生效时间:时长(timeline中开始和结束的时间)。

摄像机推拉

  • 移动距离

CameraShake

生效时间:时长(timeline中开始和结束的时间)。

摄像机震动

  • 震动角度
  • 震动范围
  • 震动幅度
  • 单次震动频率
  • 震动随机度
  • 震动强度衰减系数
  • 击中时触发震动的持续时间
  • 前后震动强度
  • 晃动角度
  • 强度偏移

MeshDisappear

生效时间:时长(timeline中开始和结束的时间)。

材质隐藏:

  • 隐藏类型:”不隐藏”,”隐藏人物和武器”,”只隐藏左手武器”,”只隐藏右手武器”,”隐藏双手武器”。

SceneDisappear

生效时间:时长(timeline中开始和结束的时间)。

场景消失范围角度

场景消失范围半径

LightDown

生效时间:场景灯光亮度渐变时长(timeline中开始和结束的时间)。

场景灯光变暗目标亮度

Sound

生效时间:音效播放时长(timeline中开始和结束的时间)。

音效资源

是否循环播放

RadialBlur

生效时间:径向模糊时长(timeline中开始和结束的时间)。

径向模糊最大值:加速运动的画面感。

径向模糊范围:

Bullet

生效时间:飞弹生效时长(timeline中开始和结束的时间)。

飞弹ID

飞弹类型:

  • “无目标”:向下加速度、指定射击点坐标偏移、优先仰角、旋转坐标轴。
  • “有目标”:向下加速度、优先仰角。
  • “贝塞尔曲线”:贝塞尔曲线路径关键点、路程区间速度设置。
  • “追踪弹”
  • “环绕飞弹”:环绕飞弹方向顺时针。
    • 指定射击点坐标偏移:1、表示确定飞弹速度、向下加速度后,飞弹飞行路径中必须要经过的相对发射单位偏移的坐标(x,y,z)。2、当配置了该字段后,飞弹发射角度字段无效,真实的发射角度由公式计算得出。3、当发射单位已经选取了目标时,该偏移相当于选取目标的位置偏移坐标(坐标轴朝向还是发射单位的朝向)
    • 优先仰角:仅当指定了射击坐标点时或选定目标时生效。0、优先高射炮。1、优先低射炮。
    • 旋转坐标轴:用于整体旋转飞弹运动轨迹。
    • 路程区间速度设置:在区间段内的速度。区间终点为表示路程上的占比。当2个相邻数组的路程终点一样时,则该路程速度表示在该点的停留时间。

循环生成次数

重复生成间隔

飞弹标签

同飞弹标签上限制

同标签伤害互斥

同标签飞弹到达上限后叠加方式:”不生成新的飞弹,当前同tag飞弹不受影响”,”新飞弹正常出现,移除超出数量的最早生成的同tag飞弹”,”新飞弹不出现,刷新所有同标签旧飞弹的存在时间”。

新飞弹替换该标签指定的旧飞弹

新飞弹替换旧飞弹的方式

  • 以目标标签的各飞弹为中心,生成该飞弹,同时目标标签飞弹消失;以各飞弹朝向为正朝向
  • 以目标标签的各飞弹为中心,生成该飞弹,目标标签飞弹不受影响;以各飞弹朝向为正朝向
  • 以目标标签的各飞弹为中心,生成该飞弹,同时目标标签飞弹消失;以玩家朝向为正朝向
  • 以目标标签的各飞弹为中心,生成该飞弹,目标标签飞弹不受影响;以玩家朝向为正朝向

飞弹特效资源

飞弹击中特效资源

飞弹击中特效持续时间

飞弹消失时特效资源

飞弹消失特效持续时间

飞弹碰撞开启时间:用于控制飞弹什么时间开始计算碰撞,在飞弹初始化延迟前就开始计算了。

飞弹持续时间

命中时伤害信息索引

消失时伤害信息索引

飞弹命中消失方式:”命中不消失”,”命中敌方消失”,”命中阻挡或地面消失”。

命中、消失时伤害是否互斥

飞弹伤害判定中心:”以飞弹发射着为中心”,”以飞弹的位置为中心”。

飞弹朝向:”朝向当前移动方向”,”始终保持出生时的方向”。

飞弹跟随方式:”位置及旋转跟随”,”位置跟随”,”指定骨头点”,”敌人位置”,”敌人位置随机”,”前一个特效碰撞点”,”追踪目标而去”,”运动镜头”,”围绕主角移动”,”挂于摇杆UI预制上”

飞弹速度

发射位置偏移

飞弹发射角度

飞弹目标区域预警特效半径:对于有目标和追踪类型飞弹,预警生成位置为筛选到的目标位置。对于无目标类型飞弹,预警位置为飞弹生成时相对于飞弹发射单位的targetpoint字段值

目标区域预警延迟生效时间

目标区域预警持续时间

筛选范围类型:圆形、扇形、矩形。

飞弹目标选取范围:仅针对有目标的飞弹类型。

飞弹目标筛选规则:仅针对有目标的飞弹类型。

飞弹路径类型:”直线”,”曲线”。

Buff

生效时间:buff的时长(timeline中开始和结束的时间)。

buffID

添加buff的概率

buff与技能时长绑定

PositionMove

生效时间:技能位移的时长(timeline中开始和结束的时间)。

技能位移类型:释放技能过程中产生位移

  • 位移到目标位置
  • 位移到目标中心
  • 位移到目标后方
  • 跟随玩家进行位移

ShowWindow

生效时间:分镜特写的时长(timeline中开始和结束的时间)。

分镜特写类型:三人合体特写框、两人合体特写框。

分镜框A英雄ID

BulletTime

生效时间:子弹时间的时长(timeline中开始和结束的时间)。

子弹时间持续时长
‘’’shell
1、该字段的作用是用于决定子弹时间是否只在命中时触发
2、此时常规配置的子弹时间开始时间和结束时间正常情况下不触发,只在这段时间内有伤害命中才会触发,触发时长为该字段持续时长
3、可触发多次,但前一个没结束后一个触发也不生效
4、根据子弹开始和结束的时间段内有多少次攻击信息来决定最多可以触发几次,暂时没判断互斥的情况

触发情况:
情况1: 存在后半部分伤害信息在判定时间段内
触发方式:该伤害在判定时间段外命中了敌人,则等待到判定起始帧触发子弹时间;
该伤害在判定时间段内命中了敌人,则什么时候命中什么时候触发子弹时间

情况2: 全部伤害信息在判定时间段内
触发方式:什么时候命中什么时候触发子弹时间

情况3: 存在前半部分伤害信息在判定时间段内
触发方式:该伤害在判定时间段外命中了敌人,则不触发;
该伤害在判定时间段内命中了敌人,则什么时候命中什么时候触发子弹时间

情况4: 存在中间部分伤害信息在判定时间段内
触发方式:结合情况1与情况3处理方式

情况5:伤害信息完全在判定时间段外
触发方式:不触发
‘’’

伤害触发时被放大的时间

HideOperationUI

生效时间:隐藏操作界面的时长(timeline中开始和结束的时间)。

CallMinion

生效时间:召唤仆从的时长(timeline中开始和结束的时间)。

仆从ID

技能编辑器总结

技能编辑器总体分为这三个部分:1.左侧技能列表。2.中间timeline可视化编辑。3.右侧技能参数复制。

在timeline中将技能每帧涉及到的元素集成,并且可以播放进行预览。

分享到