Files
netease-bedrock-wiki/mcguide/16-美术/6-模型和动作/12-动作优化规范.md
2025-07-31 17:53:14 +08:00

7.4 KiB
Raw Blame History

front: 进阶 time: 15分钟 ---2-地图编辑器使用说明.md # 模型规范指南 ## 前言 在当前模组开发实践中,部分开发者所采用的 Blockbench. 模型与官方标准模型存在差异因此换了BlockBench模型的Mod会导致官方皮肤时出现贴图错位、模型消失等兼容性问题影响了玩家的视觉体验. 因此我们现已开放官方模型规范开发者们请参考并遵循。新作品通过规范指南进行UV、动画等的制作已有作品则可以通过API判断是否需要修改Blockbench 模型,确保模组能够与官方皮肤良好配合,为玩家带来更加一致、流畅的游戏体验。 ## 兼容分类 根据模组与官方皮肤的兼容程度,分为: 1. 完全兼容未更换bb模型。表现为皮肤模型贴图以及穿戴外观模组动画等表现都正常。 2. 部分兼容更换了bb模型但按照官方规范制作。表现为皮肤挂件以及穿戴外观正常但是模型样式改变及贴图错乱。 3. 不兼容更换了bb模型且未按照官方规范制作。表现为模型样式改变皮肤挂件错乱穿戴外观错乱以及动作异常。 ## 规范概要 1. 玩法模组非必要不改bb模型 2. 动作优化类模组:人形角色非必要不修改bb结构即无需使用AddPlayerGeometry的Api * 未增加关节:仅增加和优化动画的 不替换bb模型属于“完全兼容” * 增加关节: - 中高级别多关节官方皮肤:不替换模型与贴图,动画按照官方骨骼层级制作进而保证皮肤表现正常(属于“完全兼容”) - 其他官方皮肤可根据各模组对动画的修改程度选择是否替换bb模型。如果选择替换bb模型则需按官方规范制作属于“部分兼容” 3. 人形角色涉及“动作优化”等必须修改bb模型的遵守以下规范即可可参考 官方人物模型.json 模板) 4. 不建议直接修改 player.entity.json 和 player.render_controllers.json如果改了请务必在官方的规范下进行拓展 ## 美术制作规范 ### 必要骨骼 1. 常规骨骼:常作为挂件的挂点 > root, waist, body, leftArm, leftArmDown, rightArm, rightArmDown, head, bodyDown, leftLeg, leftLegDown, rightLeg, rightLegDown, rightLeg, cape 2. 会员盔甲挂点: > hat, jacket, jacketDown, leftSleeve, leftSleeveDown, rightSleeve, rightSleeveDown, leftPants, leftPantsDown, rightPants, rightPantsDown 【注意】 共计26个骨骼开发者请不要随意删除 必要骨骼中红色字体的骨骼为相比原版Steve新增的关节 ### 骨骼层级一览 | 节点名称 | 枢纽点 | 备注 | |---------------------------|----------------| --- | | root | (0,0,0) | | | —waist | (0, 12, 0) | | | ——body | (0, 24, 0) | | | ———head | (0, 24, 0) | | | —————hat | (0, 24, 0) | | | ———cape | (0, 24, 3) | | | ———leftArm | (-5, 22, 0) | | | —————leftArmDown | (-5, 18, 0) | 新增必要骨骼 | | ———————leftSleeveDown | (-5, 18.25, 0) | 新增盔甲骨骼 | | ———————leftItem | (-6, 15, 0) | | | —————leftSleeve | (-5, 22, 0) | | | ———rightArm | (5, 22, 0) | | | —————rightArmDown | (5, 18, 0) | 新增必要骨骼 | | ———————rightSleeveDown | (5, 18.25, 0) | 新增盔甲骨骼 | | ———————rightItem | (6, 15, 0) | | | —————rightSleeve | (5, 22, 0) | | | ———jacket | (0, 24, 0) | | | ——bodyDown | (0, 16, 0) | 新增必要骨骼 | | ———jacketDown | (0, 16.25, 0) | 新增盔甲骨骼 | | —leftLeg | (-1.9, 12, 0) | | | ——leftPants | (-1.9, 12, 0) | | | ——leftLegDown | (-1.9, 6, 0) | 新增必要骨骼 | | ————leftPantsDown | (-1.9, 6.25, 0) | 新增盔甲骨骼 | | —rightLeg | (1.9, 12, 0) | | | ——rightPants | (1.9, 12, 0) | | | ——rightLegDown | (1.9, 6, 0) | 新增必要骨骼 | | ————rightPantsDown | (1.9, 6.25, 0) | 新增盔甲骨骼 | 【注意】 * 骨骼层级:影响官方动画兼容 * 骨骼命名:影响官方挂件兼容 ### 骨骼层级说明 * body 和 bodyDown 层级并列 * 新增的切分关节 - 5个骨骼节点leftArmDown, rightArmDown, bodyDown, leftLegDown, rightLegDown - 5个骨骼节点jacketDown, leftSleeveDown, rightSleeveDown, leftPantsDown, [12-动作优化规范.md](12-%E5%8A%A8%E4%BD%9C%E4%BC%98%E5%8C%96%E8%A7%84%E8%8C%83.md)rightPantsDown ### UV贴图制作 如下图所示需要按照Steve规范进行制作 ### 其余注意事项 1. 除盔甲骨骼以外其他骨骼下必须有同名cube。例如 ## 新增支持 ### MOD SDK 为了方便开发者们在脚本中判断当前玩家皮肤状态,新增了三个接口和一个事件。 开发者可在事件当中判定当前皮肤是否是官方,从而决定是否修改模型。 也请开发者注意规范概要非必要情况不修改模型。如需修改,也遵循照官方模型规范 【接口和事件】 1. IsOfficialSkin 是否为官方皮肤 2. IsHighLevelOfficialSkin 是否为官方史诗级以上皮肤 3. IsHighLevelMultiJointOfficialSkin 是否为官方史诗级以上的多关节皮肤 4. UpdatePlayerSkinClient 更新模型皮肤事件 【注意】 上述三个接口在收到 Minecraft:EngineScripts:UpdatePlayerSkinClient 事件后进行调用。更多详细说明,见官网文档 使用示例 python # 这里以IsHighLevelMultiJointOfficialSkin为例 self.ListenForEvent('Minecraft', "EngineScripts", "UpdatePlayerSkinClient', self, self onUpdatePlayerSkinClient) def onUpdatePlayerSkinClient(self,args): import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreateGame(levelId) comp.IsHighLevelMultiJointOfficialSkin(args['playerId']) # 返回bool为官方史诗级以上的多关节皮肤 ### 模型模板下载 当前官方提供的“多关节”结构已经能满足大部分的模组开发者,请开发者下载官方规范模型文件 standard_steve.geo.json standard_steve.png ### 测试服测试 为方便开发者测试4D皮肤与模组本身的兼容性官方在开发者测试服提供了测试用4D皮肤可通过邮件领取