跳到主要内容

2023年7月17日星火编辑器更新日志

开发者中心:

开发者中心的相关配置和数据从此刻起会进行Canary版本和创意工坊版本的隔离,大家如果Canary测试发现游戏模式为空,请去创作者中心重新配置一下Canary分类下的配置。

施法错误提示信息优化

  • 我们优化了技能施放错误时在屏幕上显示的错误信息(如:魔法不足,无法对指定目标使用等)的提示逻辑。今后,只有玩家所下达的指令出错时才会显示错误信息,在这次改动之前,我们的技能错误信息会在当前玩家的主控单位技能遇到任何错误时显示。这曾经导致某些地图使用连续施法,或者连续使用触发器对主控单位下达指令时会频繁地显示错误信息。今后,脚本、触发器和数编所下达的技能指令遇到错误而导致无法执行时,引擎会静默处理,只对玩家(真人)所下达的技能指令错误作出响应。
  • 此外,我们今后也将逐步支持技能摇杆对玩家的非主控单位下达指令的功能,令玩家可以同时操作一个以上的单位。相应地,技能错误信息今后会针对玩家对任何属于自己的单位所下达指令时遇到的错误作出响应,而不仅仅是只显示主控单位遇到的错误。
  • 于此同时,这次针对技能施法错误信息的重构也提高了施法错误信息传输包体的容量,今后在需要显示技能错误消息时,服务端只会对客户端传输一串错误数字代码,而不会将整个错误消息传递过去,大大减少错误信息所占据的网络流量。
  • 此次重构也使技能施法错误提示信息支持了多语言化。为今后星火编辑器的全面多语言支持提供了基础。

账号连入与重连的事件变化

  • 星火编辑器正在为允许玩家中途加入游戏做准备,于此相对应地,我们对玩家账号的连入和重连逻辑进行了一些重定义,而玩家连入相关的事件也有了对应的改动。
  • 由于中途加入游戏逻辑的加入,我们无法再将在游戏开始阶段后连入的玩家一概视为重连玩家,因为该玩家可能是一个全新的玩家账号,甚至可能出现一个特定槽位的旧玩家退出游戏后,又有一个新的账号连入了同一个槽位。

玩家-连入事件

  • 增加了【触发事件的.是否在游戏开始后连入】的事件参数
  • 增加了连入的【触发事件的.用户虚拟Id】的参数。对于将来配置为允许中途加入的游戏,开发者应当严格地判定每次连入的用户虚拟Id是否与该玩家槽位的旧玩家账号Id一致,以免出现问题。
  • 【触发事件的.是否为重连】事件参数保留,但仅会在连入的玩家与旧有的玩家账号Id一致时才会为真。当一个新的玩家账号顶替同一玩家槽位的旧玩家账号时,不再视为重连。

玩家-重连事件

  • 改名为【玩家-在游戏开始后连入】事件以准确描述其逻辑。请使用了该事件的开发者尽快将它改回玩家-连入事件,并使用是否为重连参数来判定是否是重连玩家。

物品技能与物品Buff等级

  • 众所周知,物品是通过关联主动技能和Buff来实现它们的主动和被动效果的。但很多时候我们或许希望某个特定物品所附加的Buff或者技能等级不是默认的1级。
  • 比如我们可能有一个物品提供一个1级光环,又有另一个物品提供这个光环的2级版本。此时,重新制作一个等级2的新光环似乎是一个不方便的实践。为此,我们在物品数据中增加了一个等级字段。
  • 若物品的等级大于0,则会直接影响物品附加的主动技能的等级以及物品所附加的Buff效果的效果树等级。注意,物品所附加的Buff效果不存在引发技能,故不应该用获取引发技能的等级的方式来获取Buff的等级,但可以直接获取效果节点的等级。
  • 若物品等级为0,则会回退到默认的逻辑。技能的等级将由技能的初始等级字段决定。

效果树可视化调试作弊码

为了方便用户理解调试数据编辑器中效果树的概念,我们增加全新的作弊码VisualizeRefParam,缩写为vrp。 用户可以在作弊码输入框输入VisualizeRefParam来打开和关闭效果树可视化模式。效果树可视化模式下,引擎会有以下的变化:

可以看到技能的搜索单位节点范围

可以看到各个节点的执行逻辑

  • 当任何一个效果节点执行时,客户端会在节点的位置显示节点的名称,并在当前节点及其父节点之间连线,目标为点的节点会显示一个圆圈提示节点的位置。而目标为单位的节点则会在对应单位上显示节点名称。
  • 对于有持续时间的节点:如周期性节点和延迟节点,节点的标志和名称会持续显示直到效果结束。
  • 对于有范围概念的节点:如圆形搜索、矩形搜索、扇形搜索和圆内随机点效果,会在节点执行时显示各自对应的实际范围和形状。
  • 对于存在发射位置和目标位置概念的节点:如发射投射物节点、添加移动器节点、瞬移节点,会显示各自发射点和目标点之间的连线。
  • 我们相信可视化的效果树能有效地帮助用户了解到效果树的实际组成、位置概念以及运行中的逻辑。

摇杆触控信息和多点触控判定的初步支持

  • 我们优化了UI编辑器中技能摇杆和移动摇杆的,为它们加入用户广为要求的“摇杆移动按下”,“摇杆移动进行”,“摇杆移动结束”事件,在所有这三个事件中,用户都可以通过UI编辑器来获得玩家所按下的摇杆的方向、距离以及触控Id参数,技能控件还能额外获得摇杆绑定的技能参数。
  • 触控Id的概念:当玩家有多个手指同时点击触摸屏时,UI系统会对每个触控点进行编号。使用户可以获取并区分不同的触摸输入。触控Id为整数。
  • 我们还在UI编辑器中增加了一个更为通用的“摇杆”类型控件。它是现有技能摇杆和移动摇杆的基类控件,允许用户进行更多的自定义。当然,摇杆控件也同样可以获取以上三种参数。
  • 此外,我们也优化了客户端触发器中的获取鼠标位置API,现在用户可以通过输入不同的触控Id来获取多个不同触控点在屏幕上的位置(此函数虽然名为鼠标位置,但也可以获取任何形式的触控坐标,如手指)。

物品品质表现

  • 在数据编辑器的『通用背包配置』中,每个品质节点都可以挂接自定义的品质表现。举例而言,若在精良品质的配置节点下挂接一个绿色光柱的表现节点。那么在游戏中,任何精良品质的物品出现在地上时都会出现对应的绿色光柱。
  • 有了这一功能后,用户将不再需要通过触发器单独地针对每个物品添加不同的品质表现。
  • 我们为不同的品质配置了不同的默认表现,对默认表现不满意的用户可以对它们进行进一步的自定义。
  • 此外,在客户端触发器中,用户将可以直接获取物品身上的品质表现对象列表。

品质表现光效

商店合成预置功能改动

我们重新梳理了商店合成的预制功能,并解决了许多用户广泛反馈的痛点:

  • 我们在数据编辑器的奖励数据中增加了新字段:在商店中合成自动购买缺失奖励。在尝试在商店中合成时,如果缺少某个材料,且该材料勾选了这一标旗的奖励,则会尝试自动购买/合成这一材料。
  • 如果没有勾选这一字段,商店合成系统将不会再尝试自动合成子素材。
  • 商店合成的自动购买今后只会尝试购买当前商店能够买到的物品。
    • 此前的逻辑是可以买到任何材料奖励,即使该奖励没有被配置在商店内。这导致如果一个合成材料没有配置任何价格和子合成材料,玩家可以免费地凭空获得该合成材料,这显然是不合逻辑的。
  • 增加了“Moba商店物品奖励”模版,并配置了适合Moba商店合成物品的对应默认值。

自定义TypeScript脚本文件夹

  • 自从此前版本星火加入了自定义TS和Lua脚本的支持后。我们收到了一些同学的反馈,认为每个TypeScript脚本文件都需要在触发编辑器中声明一次的流程过于繁琐。
  • 为了方便用户的使用体验,在这个版本中我们增加了自定义TypeScript脚本文件夹的功能,用户可以在触发器中建立一个指定名字的自定义文件夹,此后,用户在该文件夹中新建的所有.ts文件都将被自动编译,无需逐一声明。我们今后也将会酌情地提升脚本用户的使用体验。

触发编辑器

  • 现在右键点击任何触发器元素可以跳转到定义。方便用户找到声明和实现该触发器元素的地方。此外,当在触发编辑器中勾选显示依赖库时,跳转到定义功能将可以直接跳转到官方库中对应API的声明位置,方便用户查看对应元素的文档。
  • 触发编辑器和数据编辑器一样,现在也增加了前进和后退按钮,用户可以通过这一功能后退到之前查看过的页面。我们今后还将进一步优化触发编辑器的导航功能。
  • 现在服务端和客户端都可以获得指定物品上面所附加的词缀数组了。
  • 优化了多数条件下的地图触发器保存速度。
  • 客户端也有获取单位身上所有的技能API了。(目前而言,客户端获取非主控单位的技能还比较困难,我们今后会对此作出改进)
  • 集合和数组现在都增加了获取其下一个随机元素和指定个数个随机元素的方法。
  • 随着效果树可视化调试作弊码功能的加入,我们也在触发器中加入了对应的画点、画线、画圈、画扇形、画四边形、显示调试文字的API。它们将由全新的表现类型:“调试绘图表现”来统一控制。请注意,调试绘图表现中的调试文字与数据编辑器中新增的“字体表现”属于不同种类的表现,字体表现是3D字体。
  • 现在客户端触发器也可以选到“数据编辑器表”类型了(所有数编表类型的父类)。

通用背包细节优化

上一次UI更新后,我们发现了通用UI和游戏自定义模块之间可能存在交互冲突的问题。

近期我们又对通用背包进行了一些细节的调整:

  • 可以通过触发语句只打开A类或者B类的背包,解决通用背包和其他模块的遮挡问题
  • 剪影不再是必须的元素,可以通过去除剪影缩小背包的模块尺寸
  • 优化了自定义背包和关闭、丢弃交互的兼容性
  • 优化了部分极端情况下的UI适配问题
  • 这些细节调整当前还停留在开发环境,我们会在本周内完成测试并更新至线上版本

数据编辑器

  • 我们隐藏了移除单位效果节点的目标类型字段,因为移除单位效果节点只有当目标为单位时才有意义。隐藏该字段有助于减少用户误将该字段设置为点目标时的错误。
  • 我们优化了官方物品栏库的逻辑,使得物品在被拾取状态下时,默认无法再被区域搜索效果搜索到。(尽管如此,我们仍然建议用户在配置搜索效果时,如果该搜索效果不应对物品生效,则应当保持目标过滤中的”物品”项为“不允许”,这是一种良好的开发实践)
  • 我们优化了在数据编辑器中新建蓝图时起名的体验。新建蓝图时将允许起任何名称,即使已经存在了和当前蓝图拥有相同显示名称的蓝图。(比如,可以有两个狼人)请注意拥有相同名称的蓝图间,彼此的内部Id实际上也是不同的。
  • 我们增加了全新的表现类型:字体表现。允许在游戏场景中创建和显示3D平面文字。

伴随剑刃风暴一起出现的字体表现

  • 我们对发射投射物节点进行了一些特殊处理,使其下所挂接的播放动画节点拥有了和默认逻辑下不同的功能:当发射投射物节点挂接了一个播放动画表现时,该表现会令对应的投射物单位在投射物移动器运作期间内播放指定的动画。
  • 数据编辑器中的Buff节点增加了“属性最大值”字段,可以显示Buff所附加的单位对应属性的最大值。当有多个限制同一属性的最大值的Buff存在时,单位的对应属性会被限制到其中所设置最小的那个值。当每个实例消失或添加时,属性最大值都会重新计算。使用范例:有时候我们希望将单位定身,但却依然想要允许它被瞬移,此时我们就不能使用会使单位无法瞬移的定身标记,但却可以将单位的移动速度最大值限制为0。
  • 我们模型素材节点增加了全新的“屏外同步”字段。在默认情况下,星火编辑器会优化玩家屏幕外看不见的模型运算,减少不必要的CPU和显卡消耗。但在某些极端情况下,某些模型动画的运动幅度可能过大,导致模型或者角色在运动过程中会暂时地离开屏幕可见范围,但又会在之后恢复。在这种情况下,由于星火编辑器的优化,这类动画可能会在角色离开屏幕可见范围后就暂停动画,使模型卡在屏幕外回不来。为此,我们特地为此类模型增加了这一字段。勾选了屏外同步的模型素材在更新动画时不会受到屏幕可见范围的影响。显而易见的,出于执行效率的考虑,我们建议用户仅在必要的时候使用这一选项。

UI编辑器

  • 增加了小地图类型的UI控件,我们将在今后对小地图相关功能提供更加全面的支持。

错误修复

  • 修复了地图设置中,『正常视野』下无法看到敌方粒子表现的问题。
  • 修复了触发器服务端断点调试失效的问题
  • 修复了在数据编辑器中使用单位变量ABC时,节点提示信息会提示你使用了点变量的错误。(该错误仅仅是编辑器中的显示错误,并不影响实际逻辑)
  • 修复了双击触发器元素进行修改时,触发器元素选择框没有正确定位到原有值的问题。
  • 修复了客户端获取物品品质函数的错误。
  • 修复了当AI尝试施放向量技能时会偶现脚本报告”对空值y2进行四则运算”的错误。
  • 修复了触发器数组遍历会反复输出索引0的元素的问题。
  • 修复了数据编辑器中使用动画别名修改Idle动画失效的问题。
  • 修复了偶现的中文路径导致的报错问题。
  • 修复了由于路径生成问题导致Canary上看不到模型的问题
  • 修复了品质为0的装备和物品无法丢弃的问题
  • 修复了用户昵称、用户名在部分情况下获取失败的问题
  • 修复了多语言ID中带有单引号导致文件加载失败的问题
  • 修复了双击触发器元素时自动定位原先元素失败的问题
  • 修复了局内聊天的昵称异常问题
  • 修复了部分情况下开发者无法正常提交更新的问题