表演的艺术,妖尾回合制战斗系统客户端设计

妖尾历经几年开发,终于在今年6月底顺利上线,笔者从2017年初参与开发,主要负责妖尾战斗系统开发。战斗作为游戏的核心玩法系统,涉及很多技术点,希望能借几篇文字,系统性总结MMORPG战斗系统的开发经验。
本文主要从宏观层面总结回合制游戏战斗的美术资源规范,系统框架设计和主要技术点,比如断线重连,技能表演等。

系列博文传送门:
记录战斗记录你,详解妖尾战斗录像系统

美术资源规范

  • 模型

模型分为低模(1500-2000面)、高模(6000-10000面)两种规格,战场单位统一使用低模,但在合体技等镜头动画表演使用高模。主角模型是由头、上衣、武器、下装4部分组成的,游戏中通过网格、贴图合并成1个完整模型进行展示,这样可以实现部件换装。非主角模型比较简单,直接加载完整模型。

  • 挂点

高低模都有头、脚、血量、受击、左右手、左右脚等挂点,高模相比低模额外多了表情挂点(下文解释挂点作用)。

  • 材质球

高模跟低模使用不一样的材质球。低模全身只用了一种材质球,而高模用了两种材质球,脸部和身体分别是不同材质球,脸部材质球实现了uv动画用于做表情变化。高低模的身体材质球都实现了描边,高模额外开启了自阴影。高模贴图为256x256大小png图片,低模为128x128大小png图片,贴图都是宽高相等的POT尺寸,这样Android/IOS可以分别使用ECT2/PVRTC压缩格式。

  • 表情实现

人物表情是通过shader uv动画实现的,索引0-3从分别对应下面贴图的4个表情。由于shader是项目TA编写输出的,要让动作美术能够控制表情变化,我们定了个表情挂点位置映射索引的规则,表情挂点x轴数值除以100向下取整即为索引,动作美术在动画时间轴里只需要编辑表情挂点的位置,通过程序转换设置shader参数,就能控制表情变化。

  • 动画

战斗单位的动画状态机具有非常多的状态,有多达60+多个动画,但常用动画只有其中几个,所以战斗单位不会在进入战场时一次性加载所有动画,默认只加载站立、受击、奔跑、死亡等4种动画。其他动画则每回合按需加载,我们会按角色预先存储动作和对应资源路径的配置表,需要用到的动作查表获取路径加载资源,作为AnimationClip加载到RuntimeAnimatorController上。另外,像受击浮空等动画还需要处理好依赖,相关的过渡动画也要一并加载。

  • 技能

技能是使用Flux编辑器制作出来的,通过时间轴上创建多个Sequance轨道来组成一段技能表演,每个Sequance脚本负责1种表现,如角色移动、播放特效等,Sequence脚本共同作用就能表现出一段技能。1个技能最终生成动作、音频共2个Prefab。1个战斗单位拥有的技能也非常多,不会在进入游戏时一次性加载,也是每回合按需加载要用到的技能。

  • Buff

Buff相比技能表现要简单,因为最多只有添加、持续、触发、移除等4个阶段需要做表现,每个buff prefab挂相应的4个脚本,配置特效资源,人物动作,替换材质即可。

  • 美术资源流水线

主角模型与非主角模型的资源提交规范稍有不同,但制作流水线基本是一样的。美术提交包括模型fbx、动作fbx、动画机,材质球、贴图等资源,通过工具脚本进

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值