# 2.9

2023.10.24:版本号(V2.9 BE1.18.30) 包括Mod PC包,手机测试版启动器,和服务器引擎。

示例Demo:前往此处下载

# 一、更新时间表

  1. 在10月24日上线2.9第一个Beta版。
  2. 在11月07日上线2.9第二个Beta版。
  3. 在11月16日上线2.9稳定版。
  4. 在11月24日,全渠道将更新2.9版本玩家包体,玩家将陆续更新到2.9版本,请开发者合理安排更新节奏。

# 二、重要功能更新

# 材质与着色器

  1. 支持原版BB模型自定义shader的Uniform参数,实现动态材质表现,详见 SetEntityExtraUniformsSetBlockEntityExtraUniforms系列接口。

图片

  1. 新增支持动态替换骨骼模型的材质接口,详见SetModelMaterialSetModelMultiPassMaterial系列接口。

  2. 新增获取骨骼模型shader的Uniform参数的接口,详见GetExtraUniformValue

  3. 新增自定义后处理效果系列接口,包括获取开启状态,参数和管理多pass材质相关功能,详见InsertPassToPostprocessCheckEnabledByName等接口。

  4. 根据反馈再次更新了材质使用相关的教学文档,补充了更详细的配置和接口说明,详情参考材质介绍与着色器入门教程

  5. 示例Demo新增针对性更强的自定义玩家材质、自定义实体模型材质、自定义骨骼模型材质、自定义网易粒子特效材质,自定义后处理的简单Demo,详见示例DEMO,或直接前往内容库下载和使用。

# NBT系列接口

新增了部分获取和设置实体、玩家的NBT属性的接口,详见实体属性实体行为玩家属性玩家权限等模块的新增接口。

# 大型结构特征

  1. 支持下界和末地生成大型结构特征,详见这篇文档
  2. 修复了概率丢失部分结构的问题。
  3. 修复了结构包含命令方块时,概率出现断言的问题。
  4. 新增大型结构生成事件,且支持取消生成,详见PlaceNeteaseLargeFeatureServerEvent

# 成就系统

  1. 成就系统的按钮被拖动时抛出事件,详见AchievementButtonMovedClientEvent
  2. 新增获取和设置成就系统按钮的接口,详见SetAchievementGatePositionGetAchievementGatePosition
  3. 替换了关闭按钮的UI资源。
  4. 修复成就系统概率重置的问题。

# UI

  1. 小地图控件支持增加文本标记,详见AddEntityTextMarker接口。

  2. 网易纸娃娃支持渲染某一类生物,无需关联某个实例,详见RenderEntity

  3. 网易纸娃娃支持定义灯光方向,详见RenderSkeletonModel接口。

图片

  1. 修复了网易纸娃娃arm_model切换到第一人称时出现偏移的问题。
  2. GridComponentSizeChangedClientEvent新增抛出grid路径参数。
  3. GetPath(客户端), 返回当前控件的相对路径。
  4. SetBindWorldPosition,设置绑定到世界坐标的UI控件的位置。

# 物品分页

  1. 物品分页新增sort_by_identifier字段,支持该分页按照物品标识符分组,详见这篇文档

# 游戏设置

  1. SetToggleOption新增多个可控制的游戏设置,包括十字键,平滑光照等等。

# 摄像机

  1. SetCameraAnchor(客户端)支持XZ轴。
  2. 新增GetCameraRotation替代原有GetCameraRot,支持获取三个方向角度。

# 骨骼模型

  1. ModelComp组件下部分接口支持传入ModelId参数,用于指定模型,如SetTexture(客户端)。

# 其他

  1. 修复了射线检测接口无法用于方块检测的问题,详见getEntitiesOrBlockFromRay
  2. 方块配置的netease:block_chest组件新增了can_be_blocked字段,用于控制箱子的开启是否受到实心方块的阻挡,详见这篇文档

# 三、API更新

  • 新增
  1. 新增GetEntityDefinitions(服务端), 获取实体的命名空间ID及其当前和之前的定义组件群

  2. 新增GetEntityFallDistance(服务端), 获取实体的坠落高度,越大的值会给予实体更大的坠落伤害

  3. 新增GetEntityLinksTag(服务端), 获取实体相连接的实体,如获取entityId为马,会返回骑乘者的信息

  4. 新增IsLootDropped(服务端), 获取生物是否生成掉落物

  5. 新增SetLootDropped(服务端), 设置生物是否生成掉落物

  6. 新增GetMobColor(服务端), 获取生物的颜色,截止至网易2.9版本,只对羊和热带鱼有效

  7. 新增SetMobColor(服务端), 设置生物的颜色,截止至网易2.9版本,只对羊和热带鱼有效

  8. 新增GetMobStrength(服务端), 获取生物的强度,截止至网易2.9版本,只对羊驼有效,强度越大羊驼驮运的箱子时格子数量越多

  9. 新增SetMobStrength(服务端), 设置生物的强度,截止至网易2.9版本,只对羊驼有效,强度越大羊驼驮运的箱子时格子数量越多

  10. 新增GetMobStrengthMax(服务端), 获取生物强度的最大值,截止至网易2.9版本,只对羊驼有效,强度越大羊驼驮运的箱子时格子数量越多,SetMobStrength无法超过SetMobStrengthMax的值

  11. 新增SetMobStrengthMax(服务端), 设置生物强度的最大值,截止至网易2.9版本,只对羊驼有效,强度越大羊驼驮运的箱子时格子数量越多,SetMobStrength无法超过SetMobStrengthMax的值

  12. 新增IsSheared(服务端), 判断实体是否被剃毛,截止至网易2.9版本,只对羊有效

  13. 新增SetSheared(服务端), 设置实体是否被剃毛,截止至网易2.9版本,只对羊有效

  14. 新增IsIllagerCaptain(服务端), 判断实体是否为袭击队长,截止至网易2.9版本,只对掠夺者和卫道士有效

  15. 新增PromoteToIllagerCaptain(服务端), 晋升实体为袭击队长,截止至网易2.9版本,只对掠夺者和卫道士有效

  16. 新增IsSitting(服务端), 判断实体是否处于坐下状态

  17. 新增SetSitting(服务端), 设置生物是否坐下

  18. 新增IsBaby(服务端), 判断实体是否为幼年

  19. 新增SetAsAdult(服务端), 设置实体为成年体

  20. 新增IsTamed(服务端), 判断实体是否被驯服

  21. 新增IsAngry(服务端), 判断实体是否处于激怒状态

  22. 新增SetAngry(服务端), 设置实体是否处于激怒状态

  23. 新增IsOutOfControl(服务端), 判断实体是否处于失控状态,截止至网易2.9版本,只对船有效

  24. 新增SetOutOfControl(服务端), 设置实体是否处于失控状态,截止至网易2.9版本,只对船有效

  25. 新增GetVariant(服务端), 获取实体的变种属性值

  26. 新增SetVariant(服务端), 设置实体的变种属性值

  27. 新增GetMarkVariant(服务端), 获取实体的标记变种属性值

  28. 新增SetMarkVariant(服务端), 设置实体的标记变种属性值

  29. 新增HasSaddle(服务端), 判断实体是否装备了鞍

  30. 新增HasChest(服务端), 判断生物是否背负了箱子,截止至网易2.9版本,只对羊驼、驴、骡生效

  31. 新增SetChest(服务端), 设置生物是否背负了箱子,截止至网易2.9版本,只对羊驼、驴、骡生效

  32. 新增IsEating(服务端), 判断非玩家实体是否在进食

  33. 新增IsStunned(服务端), 判断是否处于眩晕状态,截止至网易2.9版本,仅对劫掠兽有效

  34. 新增IsRoaring(服务端), 判断是否处于咆哮状态,截止至网易2.9版本,仅对劫掠兽有效

  35. 新增IsPersistent(服务端), 判断是否为持久性生物

  36. 新增GetLeashHolder(服务端), 获取实体被使用拴绳牵引时牵引者的ID

  37. 新增SetLeashHolder(服务端), 为实体添加牵引者,与原版拴绳的作用相同

  38. 新增GetTradeLevel(服务端), 获取村民的交易等级

  39. 新增SetTradeLevel(服务端), 设置村民的交易等级

  40. 新增GetDeathTime(服务端), 获取生物死亡后持续的时间(刻,1秒20刻),用于控制死亡动画。0表示生物未死亡。

  41. 新增IsNaturallySpawned(服务端), 获取生物是否为自然生成的

  42. 新增IsPregnant(服务端), 获取生物是否怀孕,截止至网易2.9版本,只对海龟有效

  43. 新增GetEnchantmentSeed(服务端), 获取玩家的附魔种子,该种子会决定附魔台上准备附魔的装备的附魔项

  44. 新增SetEnchantmentSeed(服务端), 设置玩家的附魔种子,该种子会决定附魔台上准备附魔的装备的附魔项

  45. 新增SetBuildAbility(服务端), 设置玩家能否放置方块,该接口的设置会存档,且只影响生存模式

  46. 新增SetMineAbility(服务端), 设置玩家能否摧毁方块,该接口的设置会存档,且只影响生存模式

  47. 新增SetOperateDoorsAndSwitchesAbility(服务端), 设置玩家能否与门和开关交互,该接口的设置会存档,影响生存、创造、冒险模式

  48. 新增SetOpenContainersAbility(服务端), 设置玩家能否打开容器,该接口的设置会存档,影响生存、创造、冒险模式

  49. 新增SetAttackPlayersAbility(服务端), 设置玩家能否攻击其他玩家,该接口的设置会存档,影响生存、创造、冒险模式

  50. 新增SetAttackMobsAbility(服务端), 设置玩家能否攻击生物,该接口的设置会存档,影响生存、创造、冒险模式

  51. 新增SetAchievementGatePosition(客户端), 设置自定义成就系统的入口按钮位置

  52. 新增GetAchievementGatePosition(客户端), 获取自定义成就系统的入口按钮位置

  53. 新增SetEntityExtraUniforms(客户端), 新增设置用于实体shader的自定义变量接口

  54. 新增SetEntityUIExtraUniforms(客户端), 新增设置用于实体shader的UI自定义变量接口

  55. 新增GetEntityExtraUniforms(客户端), 新增获取在实体shader使用的自定义变量的值的接口

  56. 新增GetEntityUIExtraUniforms(客户端), 新增获取在实体shader使用的UI自定义变量的值的接口

  57. 新增SetBlockEntityExtraUniforms(客户端), 设置可在自定义方块实体的shader当中使用的自定义变量的值。

  58. 新增GetBlockEntityExtraUniforms(客户端), 获取在自定义方块实体的shader当中使用的自定义变量的值。

  59. 新增GetCameraRotation(客户端), 获取摄像机的朝向,支持获取翻滚角

  60. 新增GetExtraUniformValue(客户端), 获取在骨骼模型shader中使用的自定义变量Uniform的值

  61. 新增SetModelMaterial(客户端), 新增设置骨骼模型的所使用的自定义材质接口

  62. 新增SetModelMultiPassMaterial(客户端), 新增设置骨骼模型的所使用的多Pass材质接口

  63. 新增GetModelMaterial(客户端), 新增获取骨骼模型的正在使用的材质名称的接口

  64. 新增SetRotUseZXY(客户端), 设置粒子发射器旋转,旋转顺序按照绕z,x,y轴旋转

  65. 新增CheckEnabledByName(客户端), 查询是否开启了自定义后处理效果

  66. 新增GetParameter(客户端), 获取指定自定义后处理参数的值

  67. 新增InsertPassToPostprocess(客户端), 往自定义后处理的多pass中的指定位置插入自定义pass

  68. 新增PushBackPassToPostprocess(客户端), 往自定义后处理的多pass的最末尾插入自定义pass

  69. 新增RemovePassInPostprocess(客户端), 删除自定义后处理的多pass中指定位置的pass

  70. 新增PopBackPassInPostprocess(客户端), 删除自定义后处理的多pass的最末尾的pass

  71. 新增SetBindWorldPosition(客户端), 设置UI绑定的worldPosition

  72. 新增AddEntityTextMarker(客户端), 增加实体文本标记

  73. 新增RemoveEntityTextMarker(客户端), 删除实体文本标记

  74. 新增AddStaticTextMarker(客户端), 增加地图上静态文本的标记

  75. 新增RemoveStaticTextMarker(客户端), 删除静态文本标记

  76. 新增GetPath(客户端), 返回当前控件的相对路径,路径从画布节点开始算起

  77. 新增PlayerFeedEntityServerEvent(服务端), 玩家喂养生物时触发,例如玩家手持小麦喂养牛、玩家手持胡萝卜喂养幼年猪。

  78. 新增PlayerNamedEntityServerEvent(服务端), 玩家用命名牌重命名实体时触发,例如玩家手持命名牌对羊修改名字、玩家手持命名牌对盔甲架修改名字。

  79. 新增PlaceNeteaseLargeFeatureServerEvent(服务端), 触发时机:网易版大型结构即将生成时服务端抛出该事件

  80. 新增AchievementButtonMovedClientEvent(客户端), 使用自定义成就系统的时,拖动成就入口结束时触发

  • 调整
  1. 调整getEntitiesOrBlockFromRay(服务端), 支持检测方块

  2. 调整GetRecipeResult(服务端), 返回值新增fullItemName字段,包含了物品的命名空间。原来的itemName字段弃用

  3. 调整GetOwnerId(服务端), 现在主人实体未在世界内加载也可以返回id

  4. 调整SetCameraAnchor(客户端), 支持x、z轴

  5. 调整PlayAnim(客户端), 增加modelId参数,用于选择指定模型

  6. 调整GetAnimLength(客户端), 增加modelId参数,用于选择指定模型

  7. 调整SetAnimSpeed(客户端), 增加modelId参数,用于选择指定模型

  8. 调整SetTexture(客户端), 增加modelId参数,用于选择指定模型

  9. 调整GetTexture(客户端), 增加modelId参数,用于选择指定模型

  10. 调整SetLegacyBindRot(客户端), 增加modelId参数,用于选择指定模型

  11. 调整GetBoneWorldPos(客户端), 增加modelId参数,用于选择指定模型

  12. 调整GetOwnerId(客户端), 现在主人实体未在世界内加载也可以返回id

  13. 调整RenderEntity(客户端), 支持使用实体identifier进行渲染

  14. 调整RenderSkeletonModel(客户端), 新增light_direction参数,可以控制骨骼模型在纸娃娃中的打光方向

  15. 调整DamageEvent(服务端), 增加ignite参数注意事项

  16. 调整OnFireHurtEvent(服务端), 新增cancelIgnite参数,支持取消点燃效果

  17. 调整GridComponentSizeChangedClientEvent(客户端), 增加path参数,grid网格所在的路径(从UI根节点算起)

  18. 调整OptionId, 新增十字键操作、隐藏HUD、摄像机摇晃等8个OptionId

  • 废弃(将在未来不可用)
  1. 废弃GetCameraRot,请使用GetCameraRotation接口