BBSMC Logo
模组
资源包
数据包
整合包
光影
插件
软件
汉化
论坛
登录
模组插件数据包光影资源包整合包软件汉化
登录
设置
GeckoLib

GeckoLib

GeckoLib 是《我的世界》模组的动画与渲染引擎,支持多种功能,如 3D 关键帧动画、缓动效果等。

1,767
0
前置
实用工具
装饰

基本信息

我的世界Java版本

1.21.10
1.21.3–1.21.8
1.21–1.21.1
1.20.4–1.20.6
1.20–1.20.2
1.19.1–1.19.4
1.18.2
1.17.1
1.16.5
1.15.2
1.12.2

平台

\n \n \n Fabric
\n \n \n Forge
NeoForge
\n \n \n \n \n \n \n \n \n Quilt

运行环境

客户端和服务端

其他链接

反馈问题 查看源码
Modrinth地址

搬运团队

BBSMC 官方搬运(1)
BBSMC 官方搬运(1)团队

搬运资源声明

对于可进行 JAR 文件搬运的许可证,我们提供站内下载服务;其他资源会跳转到原帖下载。资源更新可能不及时,建议前往资源内提供的原帖链接下载最新版本。

详情信息

许可证 MIT
发布于 a year ago
更新于 3 days ago
简介渲染图更新日志版本百科反馈讨论

全部版本

1
2
21

Fabric 1.21.11

on 2025 Dec 10
下载

GeckoLib v5.4-alpha-1

变更内容:

NeoForge 1.21.11

on 2025 Dec 10
下载

GeckoLib v5.4-alpha-1

变更:

NeoForge 1.21.10

on 2025 Nov 05
下载

GeckoLib v5.3-alpha-3

Alpha 3 更新说明:

  • 修复了加载世界时崩溃的问题 (#776)
  • 对护甲渲染和 ItemArmorGeoLayer 进行了更多内部调整
  • 抱歉通知,下一个版本还将带来更多的 API 变动 :(

Alpha 2 更新说明:

  • 修复了在较新版本的 Forge 上加载时崩溃的问题 (#773)
  • 修复了 GeoArmorRenderer 在未渲染完整套装时崩溃的问题 (#771)
  • 将 BlockAndItemGeoLayer#renderStackForBone 和 #renderBlockForBone 分别重命名为 #submitItemStackRender 和 #submitBlockRender
  • 将 OBJECT_RENDER_POSE 和 MODEL_RENDER_POSE DataTicket 移至基础 GeoRenderer 类中,使子类无需在重写方法中处理它们
  • 修复了每个 GeoBone 仅能处理一个 PerBoneRenderTask 的问题
  • 新增 GeoBone#transformToBone
  • 将 PerBoneRender 任务拆分为 GeoRenderer#submitPerBoneRenderTasks
  • 移除了多个 GeoRenderer 方法调用中的 skipPerBoneTasks 参数,因其已不再需要
  • 创建了 PerBoneRenderTasks 以更清晰地管理因复杂性增加而带来的每骨骼渲染任务
  • 限制 GeoArmorLayer 的泛型类型必须继承 AvatarRenderState,因为所用模型实际需要该类型
  • 新增 RenderStateUtil

主要变更

  • 移植至 1.21.10
    • 注意:这是一个 ALPHA 版本,在移除 alpha 标签前可能会有破坏性更改。
    • 大多数 GeoRenderers 不再自动填充 PACKED_LIGHT DataTicket,因为基础 RenderState 类现在默认包含 lightCoords
    • 新增 GeoRenderState#getPackedLight
    • GeoRenderer#defaultRender 已重命名为 #submitRenderTasks,以更准确反映其当前功能(此时并不真正执行渲染)
    • GeoRenderer#actuallyRender 已重命名为 #buildRenderTask,以更好体现其作用
    • GeoLayer#render 已重命名为 #buildRenderTask,以更好体现其作用
    • 移除了 GeoRenderer#reRender。取而代之的是,渲染层或渲染器应通过 GeoRenderer#buildRenderTask 提交新的渲染任务。因此,你不再需要在渲染器方法中检查 isReRender
    • preRender、scaleModelForRender 和 adjustPositionForRender 均已移至 preRender 事件检查之后执行
    • 新增 GeoRenderer#createRenderState
    • 移除了 GeoEntityRenderer#createBaseRenderState — 改为使用 #createRenderState
    • 从默认设置中移除了多个 DataTicket,这些原本只是对现有原版属性的重复克隆,移除后可消除多数据源并提升性能
    • 将 GeckoLib 渲染器中的各种 Matrix4f 变量迁移至 DataTicket 管理
    • 移除了 GeoRenderer#doPostRenderCleanup
    • 在 GeoArmorLayer.RenderData 中添加了关联的 HumanoidModel
    • 新增 RenderModelPositioner
  • 重写了 GeoArmorRenderer — 现在使用和理解起来应该简单得多
  • 修改 DefaultedEntityGeoModel 接收一个可自定义的骨骼名称,而非简单的布尔值
  • 为各种 GeoRenderer 添加了 #withRenderLayer 方法,支持函数式实例化
  • GeoObjectRenderer 现在为其 GeoRenderState 使用泛型,支持泛型扩展
  • 直接将 partialTick 传递给 GeoRenderer#addRenderData、GeoRenderLayer#addRenderData、GeoModel#prepareForRenderPass 以及所有 CompileRenderState 事件/钩子 (#762)
  • 将 GeoRenderer#adjustPositionForRender 重命名为 #adjustRenderPose,以更准确反映其用途
  • ItemArmorGeoLayer.RenderData 现在使用 GeoArmorRenderer.ArmorSegment 而非手动槽位和部件获取器
  • 使 GeoRenderEvent 及其各类子事件支持多加载器平台
  • 所有平台特定的 GeckoLib 事件现已拆分为独立类,便于查找与管理。例如:CompileBlockRenderLayersEvent

新增功能

  • 新增“无状态”可动画对象(Stateless Animatables)。这是处理 GeckoLib 动画对象的另一种方式。
    • 参见:https://github.com/bernie-g/geckolib/wiki/Stateless-Animatable-Handling-(Geckolib5)
    • 新增:
      • StatelessGeoBlockEntity
      • StatelessGeoEntity
      • StatelessGeoObject
      • StatelessGeoReplacedEntity
      • StatelessGeoSingletonAnimatable
      • StatelessAnimationController
  • 新增 attack.punch 默认动画常量
  • 新增 misc.idle.flying 默认动画常量
  • 新增 move.dive 默认动画常量
  • 新增 DefaultAnimations#triggerOnlyController,用于创建专用于任意触发动画的控制器
  • 新增 RawAnimation#getStageCount
  • 新增 AnimationController#getStateHandler
  • 新增 DefaultAnimations#genericWalkFlyIdleController
  • 为各类 GeckoLib 渲染器添加构造函数重载,可直接传入物品并基于注册 ID 创建默认实例,简化快速处理流程
    • 示例:new GeoEntityRenderer(ModEntities.MY_ENTITY);
  • 新增 GeoRenderEvent#hasData
  • 新增 RenderUtil#getReplacedEntityRenderer
  • 新增 RenderUtil#getGeckoLibItemRenderer
  • 新增 RenderUtil#getGeckoLibEntityRenderer
  • 新增 RenderUtil#getGeckoLibBlockRenderer
  • 新增 RenderUtil#getGeckoLibArmorRenderer

Bug 修复

  • 添加对双深度 bedrock 关键帧的解析,因为不清楚为何 Blockbench 会导出这种格式
  • 修复多人游戏中其他玩家无法看到全新物品堆叠上触发动画的问题
  • 修复 AnimationController 中一些错误的 Javadoc 注释
  • 确保在传递给 GeoArmorRenderer 提取前,EntityRenderState 已被正确提取

内部变更

  • 将 GeckoLib 的数据包重新组织到独立文件夹中
  • 为 Animation.Stage 添加 StreamCodec 实现
  • 为 RawAnimation 添加 StreamCodec 实现
  • 为更多内部方法及所有 Mixin 添加 Javadoc 注释,提高代码清晰度
  • 改进 GeoRenderEvent#getRenderData 的 Javadoc 文档
  • 移除了 RenderUtil#getCurrentSystemTick
  • 移除了 RenderUtil#booleanToFloat
  • 移除了 RenderUtil#getGeoModelForEntityType
  • 移除了 RenderUtil#getGeoModelForEntity
  • 移除了 RenderUtil#getGeoModelForItem
  • 移除了 RenderUtil#getGeoModelForBlock
  • 移除了 RenderUtil#getGeoModelForArmor
  • 将 RenderUtil#getCurrentTick 移至 ClientUtil
  • 将 RenderUtil#arrayToVec 移至 JsonUtil
  • 从 GeoRenderProvider#getGeoArmorRenderer 中移除了一些冗余参数
  • 将 ItemArmorGeoLayer#prepHumanoidModelForRender 重命名为 #positionModelPartFromBone

Forge 1.21.10

on 2025 Nov 05
下载

GeckoLib v5.3-alpha-3

Alpha 3 说明:

  • 修复了加载世界时的崩溃问题 (#776)
  • 对护甲渲染和 ItemArmorGeoLayer 进行了更多内部修改
  • 很抱歉,下一个版本还将带来更多的 API 变动 :(

Alpha 2 说明:

  • 修复了在较新版本的 Forge 上加载时崩溃的问题 (#773)
  • 修复了 GeoArmorRenderer 在未渲染完整套装时崩溃的问题 (#771)
  • 将 BlockAndItemGeoLayer#renderStackForBone 和 #renderBlockForBone 分别重命名为 #submitItemStackRender 和 #submitBlockRender
  • 将 OBJECT_RENDER_POSE 和 MODEL_RENDER_POSE DataTicket 移至基础 GeoRenderer 类中,使子类无需在重写方法中处理它们
  • 修复了每个 GeoBone 仅处理一个 PerBoneRenderTask 的问题
  • 新增 GeoBone#transformToBone
  • 将 PerBoneRender 任务拆分为 GeoRenderer#submitPerBoneRenderTasks
  • 移除了多个 GeoRenderer 方法调用中的 skipPerBoneTasks 参数,因为它已不再需要
  • 创建了 PerBoneRenderTasks 以更清晰地处理因复杂性增加而带来的逐骨骼渲染任务
  • 限制 GeoArmorLayer 的泛型类型必须为 AvatarRenderState,因为这是所用模型实际需要的类型
  • 新增 RenderStateUtil

变更内容

  • 移植至 1.21.10
    • 注意:这是一个 ALPHA 版本,在 alpha 标签移除前可能会有破坏性变更。
    • 大多数 GeoRenderers 不再填充 PACKED_LIGHT DataTicket,因为基础 RenderState 类现在默认包含 lightCoords
    • 新增 GeoRenderState#getPackedLight
    • GeoRenderer#defaultRender 已重命名为 #submitRenderTasks,以更好地反映其功能(此时并未真正执行渲染)
    • GeoRenderer#actuallyRender 已重命名为 #buildRenderTask,以更准确描述其作用
    • GeoLayer#render 已重命名为 #buildRenderTask,以更准确描述其作用
    • 移除了 GeoRenderer#reRender。取而代之的是,渲染层或渲染器应通过 GeoRenderer#buildRenderTask 提交新的渲染任务。因此,你不再需要在渲染器方法中检查 isReRender
    • preRender、scaleModelForRender 和 adjustPositionForRender 均已移至 preRender 事件检查之后执行
    • 新增 GeoRenderer#createRenderState
    • 移除了 GeoEntityRenderer#createBaseRenderState —— 请改用 #createRenderState
    • 从默认设置中移除了多个 DataTicket,这些原本只是对现有原版属性的重复拷贝,此举旨在消除多数据源并提升性能
    • 将 GeckoLib 渲染器中的各种 Matrix4f 变量移至 DataTicket 中管理
    • 移除了 GeoRenderer#doPostRenderCleanup
    • 向 GeoArmorLayer.RenderData 添加了关联的 HumanoidModel
    • 新增 RenderModelPositioner
  • 重写了 GeoArmorRenderer —— 现在使用和理解起来应该简单得多
  • 修改 DefaultedEntityGeoModel,使其接受可自定义的骨骼名称而非简单的布尔值
  • 为各种 GeoRenderer 添加了 #withRenderLayer 方法,支持函数式实例化
  • GeoObjectRenderer 现在对其 GeoRenderState 使用泛型,以支持泛型扩展
  • 直接将 partialTick 传递给 GeoRenderer#addRenderData、GeoRenderLayer#addRenderData、GeoModel#prepareForRenderPass 以及各种 CompileRenderState 事件/钩子 (#762)
  • 将 GeoRenderer#adjustPositionForRender 重命名为 #adjustRenderPose,以更准确反映其用途
  • ItemArmorGeoLayer.RenderData 现在使用 GeoArmorRenderer.ArmorSegment 而非手动槽位和部件获取器
  • 使 GeoRenderEvent 及其各类子事件支持多加载器平台
  • 所有平台特定的 GeckoLib 事件现已拆分为独立类,便于查找和管理。例如:CompileBlockRenderLayersEvent

新增功能

  • 新增“无状态”可动画对象(Stateless Animatables)。这是处理 GeckoLib 动画对象的另一种方式。
    • 参见:https://github.com/bernie-g/geckolib/wiki/Stateless-Animatable-Handling-(Geckolib5)
    • 新增:
      • StatelessGeoBlockEntity
      • StatelessGeoEntity
      • StatelessGeoObject
      • StatelessGeoReplacedEntity
      • StatelessGeoSingletonAnimatable
      • StatelessAnimationController
  • 新增 attack.punch 默认动画常量
  • 新增 misc.idle.flying 默认动画常量
  • 新增 move.dive 默认动画常量
  • 新增 DefaultAnimations#triggerOnlyController,用于创建专用于任意触发动画的控制器
  • 新增 RawAnimation#getStageCount
  • 新增 AnimationController#getStateHandler
  • 新增 DefaultAnimations#genericWalkFlyIdleController
  • 为各类 GeckoLib 渲染器添加了构造函数重载,可直接传入物品并使用对象注册 ID 创建默认实例,便于快速处理
    • 示例:new GeoEntityRenderer(ModEntities.MY_ENTITY);
  • 新增 GeoRenderEvent#hasData
  • 新增 RenderUtil#getReplacedEntityRenderer
  • 新增 RenderUtil#getGeckoLibItemRenderer
  • 新增 RenderUtil#getGeckoLibEntityRenderer
  • 新增 RenderUtil#getGeckoLibBlockRenderer
  • 新增 RenderUtil#getGeckoLibArmorRenderer

Bug 修复

  • 添加对双深度 bedrock 关键帧的解析,因为我不清楚为何 Blockbench 会导出这种格式
  • 修复了多人游戏中其他玩家无法看到全新物品堆叠上触发动画的问题
  • 修复了 AnimationController 中一些错误的 Javadoc
  • 确保在传递给 GeoArmorRenderer 提取前已正确提取 EntityRenderState

内部变更

  • 将 GeckoLib 的数据包重新组织到文件夹中
  • 为 Animation.Stage 添加 StreamCodec 实现
  • 为 RawAnimation 添加 StreamCodec 实现
  • 为更多内部方法及所有 Mixin 添加 Javadoc 以提高可读性
  • 改进了 GeoRenderEvent#getRenderData 的 Javadoc
  • 移除了 RenderUtil#getCurrentSystemTick
  • 移除了 RenderUtil#booleanToFloat
  • 移除了 RenderUtil#getGeoModelForEntityType
  • 移除了 RenderUtil#getGeoModelForEntity
  • 移除了 RenderUtil#getGeoModelForItem
  • 移除了 RenderUtil#getGeoModelForBlock
  • 移除了 RenderUtil#getGeoModelForArmor
  • 将 RenderUtil#getCurrentTick 移至 ClientUtil
  • 将 RenderUtil#arrayToVec 移至 JsonUtil
  • 从 GeoRenderProvider#getGeoArmorRenderer 中移除了部分冗余参数
  • 将 ItemArmorGeoLayer#prepHumanoidModelForRender 重命名为 #positionModelPartFromBone

Fabric 1.21.10

on 2025 Nov 05
下载

GeckoLib v5.3-alpha-3

Alpha 3 说明:

  • 修复了加载世界时崩溃的问题 (#776)
  • 对护甲渲染和 ItemArmorGeoLayer 进行了更多内部调整
  • 很抱歉,下一个版本还将带来更多的 API 变动 :(

Alpha 2 说明:

  • 修复了在较新版本的 Forge 上加载时崩溃的问题 (#773)
  • 修复了 GeoArmorRenderer 在未渲染完整套装时崩溃的问题 (#771)
  • 将 BlockAndItemGeoLayer#renderStackForBone 和 #renderBlockForBone 分别重命名为 #submitItemStackRender 和 #submitBlockRender
  • 将 OBJECT_RENDER_POSE 和 MODEL_RENDER_POSE DataTicket 移至基础 GeoRenderer 类中,使子类无需在重写方法中处理它们
  • 修复了每个 GeoBone 仅能处理一个 PerBoneRenderTask 的问题
  • 新增 GeoBone#transformToBone
  • 将 PerBoneRender 任务拆分为 GeoRenderer#submitPerBoneRenderTasks
  • 移除了多个 GeoRenderer 方法调用中的 skipPerBoneTasks 参数,因其已不再需要
  • 创建了 PerBoneRenderTasks 以更清晰地管理复杂度增加的逐骨骼渲染任务
  • 限制 GeoArmorLayer 的泛型类型必须为 AvatarRenderState,因为模型实际使用的就是该类型
  • 新增 RenderStateUtil

变更内容

  • 移植至 1.21.10
    • 注意:这是一个 ALPHA 版本,在 alpha 标签移除前可能会有破坏性变更。
    • 大多数 GeoRenderer 不再填充 PACKED_LIGHT DataTicket,因为基础 RenderState 类现在默认包含 lightCoords
    • 新增 GeoRenderState#getPackedLight
    • GeoRenderer#defaultRender 已重命名为 #submitRenderTasks,以更准确反映其功能(此时并未真正执行渲染)
    • GeoRenderer#actuallyRender 已重命名为 #buildRenderTask,以更准确反映其功能
    • GeoLayer#render 已重命名为 #buildRenderTask,以更准确反映其功能
    • 移除了 GeoRenderer#reRender。取而代之的是,渲染层或渲染器应通过 GeoRenderer#buildRenderTask 提交新的渲染任务。因此,你不再需要在渲染器方法中检查 isReRender
    • preRender、scaleModelForRender 和 adjustPositionForRender 均已移至 preRender 事件检查之后执行
    • 新增 GeoRenderer#createRenderState
    • 移除了 GeoEntityRenderer#createBaseRenderState —— 请改用 #createRenderState
    • 从默认设置中移除了多个 DataTicket,这些原本只是对现有原版属性的重复拷贝,此举可消除多数据源并提升性能
    • 将 GeckoLib 渲染器中的各种 Matrix4f 变量迁移至 DataTicket 管理
    • 移除了 GeoRenderer#doPostRenderCleanup
    • 向 GeoArmorLayer.RenderData 添加了关联的 HumanoidModel
    • 新增 RenderModelPositioner
  • 重写了 GeoArmorRenderer —— 现在使用和理解起来应该简单得多
  • 修改 DefaultedEntityGeoModel,使其接受可自定义的骨骼名称而非简单的布尔值
  • 为各类 GeoRenderer 添加了 #withRenderLayer 方法,支持函数式实例化
  • GeoObjectRenderer 现在对其 GeoRenderState 使用泛型,以支持泛型扩展
  • 直接将 partialTick 传递给 GeoRenderer#addRenderData、GeoRenderLayer#addRenderData、GeoModel#prepareForRenderPass 以及各种 CompileRenderState 事件/钩子 (#762)
  • 将 GeoRenderer#adjustPositionForRender 重命名为 #adjustRenderPose,以更准确反映其用途
  • ItemArmorGeoLayer.RenderData 现在使用 GeoArmorRenderer.ArmorSegment 而非手动插槽和部件获取器
  • 使 GeoRenderEvent 及其各类子事件支持多加载器环境
  • 所有平台特定的 GeckoLib 事件现已拆分为独立类,便于查找和管理。例如:CompileBlockRenderLayersEvent

新增功能

  • 新增“无状态”可动画对象(Stateless Animatables)。这是处理 GeckoLib 动画对象的另一种方式。
    • 参见:https://github.com/bernie-g/geckolib/wiki/Stateless-Animatable-Handling-(Geckolib5)
    • 新增:
      • StatelessGeoBlockEntity
      • StatelessGeoEntity
      • StatelessGeoObject
      • StatelessGeoReplacedEntity
      • StatelessGeoSingletonAnimatable
      • StatelessAnimationController
  • 新增 attack.punch 默认动画常量
  • 新增 misc.idle.flying 默认动画常量
  • 新增 move.dive 默认动画常量
  • 新增 DefaultAnimations#triggerOnlyController,用于创建专用于任意触发动画的控制器
  • 新增 RawAnimation#getStageCount
  • 新增 AnimationController#getStateHandler
  • 新增 DefaultAnimations#genericWalkFlyIdleController
  • 为各类 GeckoLib 渲染器添加了构造函数重载,可直接传入物品并基于其注册 ID 创建默认实例,便于快速使用
    • 示例:new GeoEntityRenderer(ModEntities.MY_ENTITY);
  • 新增 GeoRenderEvent#hasData
  • 新增 RenderUtil#getReplacedEntityRenderer
  • 新增 RenderUtil#getGeckoLibItemRenderer
  • 新增 RenderUtil#getGeckoLibEntityRenderer
  • 新增 RenderUtil#getGeckoLibBlockRenderer
  • 新增 RenderUtil#getGeckoLibArmorRenderer

Bug 修复

  • 添加对双深度 bedrock 关键帧解析的支持,因为不清楚为何 Blockbench 会导出这种格式
  • 修复多人游戏中其他玩家无法看到新物品堆叠上触发动画的问题
  • 修复了 AnimationController 中一些错误的 Javadoc
  • 确保在传递给 GeoArmorRenderer 提取前已正确提取 EntityRenderState

内部变更

  • 将 GeckoLib 的数据包重新组织到文件夹中
  • 为 Animation.Stage 添加 StreamCodec 实现
  • 为 RawAnimation 添加 StreamCodec 实现
  • 为更多内部方法及所有 Mixin 添加 Javadoc 以提高可读性
  • 改进了 GeoRenderEvent#getRenderData 的 Javadoc
  • 移除了 RenderUtil#getCurrentSystemTick
  • 移除了 RenderUtil#booleanToFloat
  • 移除了 RenderUtil#getGeoModelForEntityType
  • 移除了 RenderUtil#getGeoModelForEntity
  • 移除了 RenderUtil#getGeoModelForItem
  • 移除了 RenderUtil#getGeoModelForBlock
  • 移除了 RenderUtil#getGeoModelForArmor
  • 将 RenderUtil#getCurrentTick 移至 ClientUtil
  • 将 RenderUtil#arrayToVec 移至 JsonUtil
  • 从 GeoRenderProvider#getGeoArmorRenderer 中移除了部分冗余参数
  • 将 ItemArmorGeoLayer#prepHumanoidModelForRender 重命名为 #positionModelPartFromBone

Forge 1.21.10

on 2025 Nov 05
下载

GeckoLib v5.3-alpha-2

Alpha 2 更新说明:

  • 修复在较新版本的 Forge 上加载时崩溃的问题 (#773)
  • 修复未渲染完整护甲套装时 GeoArmorRenderer 崩溃的问题 (#771)
  • 将 BlockAndItemGeoLayer#renderStackForBone 和 #renderBlockForBone 分别重命名为 #submitItemStackRender 和 #submitBlockRender
  • 将 OBJECT_RENDER_POSE 和 MODEL_RENDER_POSE DataTicket 移至基础 GeoRenderer 类中,使子类无需在重写方法中手动处理
  • 修复每个 GeoBone 仅能处理一个 PerBoneRenderTask 的问题
  • 新增 GeoBone#transformToBone
  • 将 PerBoneRender 任务拆分为 GeoRenderer#submitPerBoneRenderTasks
  • 移除多个 GeoRenderer 方法调用中的 skipPerBoneTasks 参数,因其已不再需要
  • 新增 PerBoneRenderTasks 以更清晰地管理复杂化的逐骨骼渲染任务
  • 限制 GeoArmorLayer 的泛型类型必须为 AvatarRenderState,因为模型实际所需类型即为此
  • 新增 RenderStateUtil

变更内容

  • 移植至 1.21.10
    • 注意:此为 ALPHA 版本,在 alpha 标签移除前可能包含破坏性变更。
    • 大多数 GeoRenderers 不再填充 PACKED_LIGHT DataTicket,因为基础 RenderState 类现在默认包含 lightCoords
    • 新增 GeoRenderState#getPackedLight
    • GeoRenderer#defaultRender 已重命名为 #submitRenderTasks,以更准确反映其当前功能(此时并未真正执行渲染)
    • GeoRenderer#actuallyRender 已重命名为 #buildRenderTask,以更好体现其作用
    • GeoLayer#render 已重命名为 #buildRenderTask,以更好体现其作用
    • 移除了 GeoRenderer#reRender。取而代之的是,渲染层或渲染器应通过 GeoRenderer#buildRenderTask 提交新的渲染任务。因此,你不再需要在渲染器方法中检查 isReRender
    • preRender、scaleModelForRender 和 adjustPositionForRender 现在均在 preRender 事件检查之后执行
    • 新增 GeoRenderer#createRenderState
    • 移除 GeoEntityRenderer#createBaseRenderState —— 改用 #createRenderState
    • 从默认设置中移除多个 DataTicket,这些原本只是对现有原版属性的重复拷贝,此举可消除多数据源并提升性能
    • 将 GeckoLib 渲染器中的各种 Matrix4f 变量迁移至 DataTickets
    • 移除 GeoRenderer#doPostRenderCleanup
    • 在 GeoArmorLayer.RenderData 中添加关联的 HumanoidModel
  • 重写了 GeoArmorRenderer —— 现在使用和理解起来应显著更简单
  • 修改 DefaultedEntityGeoModel 以接受可自定义的骨骼名称,而非简单的布尔值
  • 为各类 GeoRenderer 添加 #withRenderLayer 方法,支持函数式实例化
  • GeoObjectRenderer 现在对其 GeoRenderState 使用泛型,以支持泛型扩展
  • 直接将 partialTick 传递给 GeoRenderer#addRenderData、GeoRenderLayer#addRenderData、GeoModel#prepareForRenderPass 以及各类 CompileRenderState 事件/钩子 (#762)
  • 将 GeoRenderer#adjustPositionForRender 重命名为 #adjustRenderPose,以更准确反映其用途
  • ItemArmorGeoLayer.RenderData 现在使用 GeoArmorRenderer.ArmorSegment 而非手动槽位和部件获取器
  • 使 GeoRenderEvent 及其各类子事件支持多加载器环境
  • 所有平台特定的 GeckoLib 事件现已拆分为独立类,便于查找与管理。例如:CompileBlockRenderLayersEvent

新增功能

  • 新增“无状态”可动画对象(Stateless Animatables)。这是处理 GeckoLib 动画对象的另一种方式。
    • 参见:https://github.com/bernie-g/geckolib/wiki/Stateless-Animatable-Handling-(Geckolib5)
    • 新增:
      • StatelessGeoBlockEntity
      • StatelessGeoEntity
      • StatelessGeoObject
      • StatelessGeoReplacedEntity
      • StatelessGeoSingletonAnimatable
      • StatelessAnimationController
  • 新增 attack.punch 默认动画常量
  • 新增 misc.idle.flying 默认动画常量
  • 新增 move.dive 默认动画常量
  • 新增 DefaultAnimations#triggerOnlyController,用于创建专用于任意触发动画的控制器
  • 新增 RawAnimation#getStageCount
  • 新增 AnimationController#getStateHandler
  • 新增 DefaultAnimations#genericWalkFlyIdleController
  • 为各类 GeckoLib 渲染器添加构造函数重载,可直接传入物品并使用对象注册 ID 创建默认实例,便于快速使用
    • 示例:new GeoEntityRenderer(ModEntities.MY_ENTITY);
  • 新增 GeoRenderEvent#hasData
  • 新增 RenderUtil#getReplacedEntityRenderer
  • 新增 RenderUtil#getGeckoLibItemRenderer
  • 新增 RenderUtil#getGeckoLibEntityRenderer
  • 新增 RenderUtil#getGeckoLibBlockRenderer
  • 新增 RenderUtil#getGeckoLibArmorRenderer

Bug 修复

  • 添加对双深度 bedrock 关键帧解析的支持,因不明原因 Blockbench 会导出此类数据
  • 修复多人游戏中其他玩家无法看到新物品堆叠上触发动画的视觉效果问题
  • 修复 AnimationController 中部分错误的 Javadoc
  • 确保在传递给 GeoArmorRenderer 提取前,EntityRenderState 已被正确提取

内部变更

  • 将 GeckoLib 的数据包重新组织到文件夹中
  • 为 Animation.Stage 添加 StreamCodec 实现
  • 为 RawAnimation 添加 StreamCodec 实现
  • 为更多内部方法及所有 Mixin 添加 Javadoc 以提高可读性
  • 改进 GeoRenderEvent#getRenderData 的 Javadoc
  • 移除 RenderUtil#getCurrentSystemTick
  • 移除 RenderUtil#booleanToFloat
  • 移除 RenderUtil#getGeoModelForEntityType
  • 移除 RenderUtil#getGeoModelForEntity
  • 移除 RenderUtil#getGeoModelForItem
  • 移除 RenderUtil#getGeoModelForBlock
  • 移除 RenderUtil#getGeoModelForArmor
  • 将 RenderUtil#getCurrentTick 移至 ClientUtil
  • 将 RenderUtil#arrayToVec 移至 JsonUtil
  • 从 GeoRenderProvider#getGeoArmorRenderer 中移除一些冗余参数
  • 将 ItemArmorGeoLayer#prepHumanoidModelForRender 重命名为 #positionModelPartFromBone

NeoForge 1.21.10

on 2025 Nov 05
下载

GeckoLib v5.3-alpha-2

Alpha 2 更新说明:

  • 修复在较新版本的 Forge 上加载时崩溃的问题 (#773)
  • 修复未渲染完整护甲套装时 GeoArmorRenderer 崩溃的问题 (#771)
  • 将 BlockAndItemGeoLayer#renderStackForBone 和 #renderBlockForBone 分别重命名为 #submitItemStackRender 和 #submitBlockRender
  • 将 OBJECT_RENDER_POSE 和 MODEL_RENDER_POSE DataTicket 移至基础 GeoRenderer 类中,使子类无需在重写方法中处理它们
  • 修复每个 GeoBone 仅处理一个 PerBoneRenderTask 的问题
  • 新增 GeoBone#transformToBone
  • 将 PerBoneRender 任务拆分为 GeoRenderer#submitPerBoneRenderTasks
  • 移除多个 GeoRenderer 方法调用中的 skipPerBoneTasks 参数,因其已不再需要
  • 新增 PerBoneRenderTasks 以更清晰地管理复杂度增加的逐骨骼渲染任务
  • 限制 GeoArmorLayer 的泛型类型必须为 AvatarRenderState,因为模型实际使用的就是该类型
  • 新增 RenderStateUtil

变更内容

  • 移植至 1.21.10
    • 注意:这是一个 ALPHA 版本,在 alpha 标签移除前可能会有破坏性变更。
    • 大多数 GeoRenderer 不再填充 PACKED_LIGHT DataTicket,因为基础 RenderState 类现在默认包含 lightCoords
    • 新增 GeoRenderState#getPackedLight
    • GeoRenderer#defaultRender 已重命名为 #submitRenderTasks,以更准确反映其功能(此时并未真正执行渲染)
    • GeoRenderer#actuallyRender 已重命名为 #buildRenderTask,以更准确反映其功能
    • GeoLayer#render 已重命名为 #buildRenderTask,以更准确反映其功能
    • 移除了 GeoRenderer#reRender。取而代之的是,渲染层或渲染器应通过 GeoRenderer#buildRenderTask 提交新的渲染任务。因此,你不再需要在渲染器方法中检查 isReRender
    • preRender、scaleModelForRender 和 adjustPositionForRender 现在都移动到了 preRender 事件检查之后
    • 新增 GeoRenderer#createRenderState
    • 移除 GeoEntityRenderer#createBaseRenderState —— 改用 #createRenderState
    • 从默认设置中移除了一些 DataTicket,这些原本只是对现有原版属性的重复拷贝,此举可消除多数据源并提升性能
    • 将 GeckoLib 渲染器中的各种 Matrix4f 变量移至 DataTicket 中管理
    • 移除 GeoRenderer#doPostRenderCleanup
    • 在 GeoArmorLayer.RenderData 中添加了关联的 HumanoidModel
  • 重写了 GeoArmorRenderer —— 现在使用和理解起来应该简单得多
  • 修改 DefaultedEntityGeoModel 以接受可自定义的骨骼名称,而非简单的布尔值
  • 为各种 GeoRenderer 添加了 #withRenderLayer 方法,支持函数式实例化
  • GeoObjectRenderer 现在对其 GeoRenderState 使用泛型,支持泛型扩展
  • 直接将 partialTick 传递给 GeoRenderer#addRenderData、GeoRenderLayer#addRenderData、GeoModel#prepareForRenderPass 以及各种 CompileRenderState 事件/钩子 (#762)
  • 将 GeoRenderer#adjustPositionForRender 重命名为 #adjustRenderPose,以更好体现其用途
  • ItemArmorGeoLayer.RenderData 现在使用 GeoArmorRenderer.ArmorSegment 而非手动插槽和部件获取器
  • 使 GeoRenderEvent 及其各类子事件支持多加载器环境
  • 所有平台特定的 GeckoLib 事件现已拆分为独立类,便于查找和管理。例如:CompileBlockRenderLayersEvent

新增功能

  • 新增“无状态”可动画对象(Stateless Animatables)。这是处理 GeckoLib 动画对象的一种替代方式。
    • 参见:https://github.com/bernie-g/geckolib/wiki/Stateless-Animatable-Handling-(Geckolib5)
    • 新增:
      • StatelessGeoBlockEntity
      • StatelessGeoEntity
      • StatelessGeoObject
      • StatelessGeoReplacedEntity
      • StatelessGeoSingletonAnimatable
      • StatelessAnimationController
  • 新增 attack.punch 默认动画常量
  • 新增 misc.idle.flying 默认动画常量
  • 新增 move.dive 默认动画常量
  • 新增 DefaultAnimations#triggerOnlyController,用于创建专用于任意触发动画的控制器
  • 新增 RawAnimation#getStageCount
  • 新增 AnimationController#getStateHandler
  • 新增 DefaultAnimations#genericWalkFlyIdleController
  • 为各类 GeckoLib 渲染器添加构造函数重载,可直接传入物品并基于对象注册 ID 创建默认实例,便于快速使用
    • 例如:new GeoEntityRenderer(ModEntities.MY_ENTITY);
  • 新增 GeoRenderEvent#hasData
  • 新增 RenderUtil#getReplacedEntityRenderer
  • 新增 RenderUtil#getGeckoLibItemRenderer
  • 新增 RenderUtil#getGeckoLibEntityRenderer
  • 新增 RenderUtil#getGeckoLibBlockRenderer
  • 新增 RenderUtil#getGeckoLibArmorRenderer

Bug 修复

  • 添加对双层 bedrock 关键帧解析的支持,因为不清楚为何 Blockbench 会导出这种格式
  • 修复多人游戏中其他玩家看到的新物品堆叠无法正确播放触发动画的问题
  • 修复 AnimationController 中一些错误的 Javadoc
  • 确保在传递给 GeoArmorRenderer 提取前,EntityRenderState 已被正确提取

内部变更

  • 将 GeckoLib 的数据包重新组织到文件夹中
  • 为 Animation.Stage 添加 StreamCodec 实现
  • 为 RawAnimation 添加 StreamCodec 实现
  • 为更多内部方法及所有 Mixin 添加 Javadoc 以提高可读性
  • 改进 GeoRenderEvent#getRenderData 的 Javadoc
  • 移除 RenderUtil#getCurrentSystemTick
  • 移除 RenderUtil#booleanToFloat
  • 移除 RenderUtil#getGeoModelForEntityType
  • 移除 RenderUtil#getGeoModelForEntity
  • 移除 RenderUtil#getGeoModelForItem
  • 移除 RenderUtil#getGeoModelForBlock
  • 移除 RenderUtil#getGeoModelForArmor
  • 将 RenderUtil#getCurrentTick 移动至 ClientUtil
  • 将 RenderUtil#arrayToVec 移动至 JsonUtil
  • 从 GeoRenderProvider#getGeoArmorRenderer 中移除一些冗余参数
  • 将 ItemArmorGeoLayer#prepHumanoidModelForRender 重命名为 #positionModelPartFromBone

Fabric 1.21.10

on 2025 Nov 05
下载

GeckoLib v5.3-alpha-2

Alpha 2 更新说明:

  • 修复在较新版本的 Forge 上加载时崩溃的问题 (#773)
  • 修复未渲染完整护甲套装时 GeoArmorRenderer 崩溃的问题 (#771)
  • 将 BlockAndItemGeoLayer#renderStackForBone 和 #renderBlockForBone 分别重命名为 #submitItemStackRender 和 #submitBlockRender
  • 将 OBJECT_RENDER_POSE 和 MODEL_RENDER_POSE DataTicket 移至基础 GeoRenderer 类中,使子类无需在重写方法中处理它们
  • 修复了每个 GeoBone 仅处理一个 PerBoneRenderTask 的问题
  • 新增 GeoBone#transformToBone
  • 将 PerBoneRender 任务拆分为 GeoRenderer#submitPerBoneRenderTasks
  • 移除了多个 GeoRenderer 方法调用中的 skipPerBoneTasks 参数,因其已不再需要
  • 创建了 PerBoneRenderTasks 以更清晰地管理复杂化的逐骨骼渲染任务
  • 限制 GeoArmorLayer 的泛型类型必须为 AvatarRenderState,因为模型实际使用的就是该类型
  • 新增 RenderStateUtil

变更内容

  • 移植至 1.21.10
    • 注意:此为 ALPHA 版本,在 alpha 标签移除前可能会有破坏性变更。
    • 大多数 GeoRenderer 不再填充 PACKED_LIGHT DataTicket,因为基础 RenderState 类默认已包含 lightCoords
    • 新增 GeoRenderState#getPackedLight
    • GeoRenderer#defaultRender 已重命名为 #submitRenderTasks,以更准确反映其功能(此时并未真正执行渲染)
    • GeoRenderer#actuallyRender 已重命名为 #buildRenderTask,以更准确反映其功能
    • GeoLayer#render 已重命名为 #buildRenderTask,以更准确反映其功能
    • 移除了 GeoRenderer#reRender。取而代之的是,渲染层或渲染器应通过 GeoRenderer#buildRenderTask 提交新的渲染任务。因此,现在无需再检查 isReRender
    • preRender、scaleModelForRender 和 adjustPositionForRender 现在均在 preRender 事件检查之后执行
    • 新增 GeoRenderer#createRenderState
    • 移除了 GeoEntityRenderer#createBaseRenderState —— 请改用 #createRenderState
    • 从默认设置中移除了多个 DataTicket,这些原本只是对现有原版属性的重复拷贝,此举可消除多数据源并提升性能
    • 将 GeckoLib 渲染器中的各种 Matrix4f 变量移至 DataTicket 中管理
    • 移除了 GeoRenderer#doPostRenderCleanup
    • 在 GeoArmorLayer.RenderData 中添加了关联的 HumanoidModel
  • 重写了 GeoArmorRenderer —— 现在使用和理解起来应显著更简单
  • 修改 DefaultedEntityGeoModel 以接受可自定义的骨骼名称,而非简单的布尔值
  • 为各类 GeoRenderer 添加了 #withRenderLayer 方法,支持函数式实例化
  • GeoObjectRenderer 现在对其 GeoRenderState 使用泛型,以支持泛型扩展
  • 直接将 partialTick 传递给 GeoRenderer#addRenderData、GeoRenderLayer#addRenderData、GeoModel#prepareForRenderPass 以及各类 CompileRenderState 事件/钩子 (#762)
  • 将 GeoRenderer#adjustPositionForRender 重命名为 #adjustRenderPose,以更准确反映其用途
  • ItemArmorGeoLayer.RenderData 现在使用 GeoArmorRenderer.ArmorSegment 而非手动插槽和部件获取器
  • 使 GeoRenderEvent 及其各类子事件支持多加载器环境
  • 所有平台特定的 GeckoLib 事件现已拆分为独立类,便于查找和管理。例如:CompileBlockRenderLayersEvent

新增功能

  • 新增“无状态”可动画对象(Stateless Animatables)。这是处理 GeckoLib 动画对象的另一种方式。
    • 参见:https://github.com/bernie-g/geckolib/wiki/Stateless-Animatable-Handling-(Geckolib5)
    • 新增:
      • StatelessGeoBlockEntity
      • StatelessGeoEntity
      • StatelessGeoObject
      • StatelessGeoReplacedEntity
      • StatelessGeoSingletonAnimatable
      • StatelessAnimationController
  • 新增 attack.punch 默认动画常量
  • 新增 misc.idle.flying 默认动画常量
  • 新增 move.dive 默认动画常量
  • 新增 DefaultAnimations#triggerOnlyController,用于创建专用于任意触发动画的控制器
  • 新增 RawAnimation#getStageCount
  • 新增 AnimationController#getStateHandler
  • 新增 DefaultAnimations#genericWalkFlyIdleController
  • 为各类 GeckoLib 渲染器添加了构造函数重载,可直接传入物品并使用对象注册 ID 创建默认实例,便于快速使用
    • 示例:new GeoEntityRenderer(ModEntities.MY_ENTITY);
  • 新增 GeoRenderEvent#hasData
  • 新增 RenderUtil#getReplacedEntityRenderer
  • 新增 RenderUtil#getGeckoLibItemRenderer
  • 新增 RenderUtil#getGeckoLibEntityRenderer
  • 新增 RenderUtil#getGeckoLibBlockRenderer
  • 新增 RenderUtil#getGeckoLibArmorRenderer

Bug 修复

  • 添加对双层 bedrock 关键帧的解析,因为不清楚为何 Blockbench 会导出这种格式
  • 修复多人游戏中其他玩家无法看到新物品堆叠上触发动画的问题
  • 修复 AnimationController 中部分错误的 Javadoc
  • 确保在传递给 GeoArmorRenderer 提取前,EntityRenderState 已被正确提取

内部变更

  • 将 GeckoLib 的数据包重新组织到文件夹中
  • 为 Animation.Stage 添加 StreamCodec 实现
  • 为 RawAnimation 添加 StreamCodec 实现
  • 为更多内部方法及所有 Mixin 添加 Javadoc 以提高可读性
  • 改进 GeoRenderEvent#getRenderData 的 Javadoc
  • 移除 RenderUtil#getCurrentSystemTick
  • 移除 RenderUtil#booleanToFloat
  • 移除 RenderUtil#getGeoModelForEntityType
  • 移除 RenderUtil#getGeoModelForEntity
  • 移除 RenderUtil#getGeoModelForItem
  • 移除 RenderUtil#getGeoModelForBlock
  • 移除 RenderUtil#getGeoModelForArmor
  • 将 RenderUtil#getCurrentTick 移至 ClientUtil
  • 将 RenderUtil#arrayToVec 移至 JsonUtil
  • 从 GeoRenderProvider#getGeoArmorRenderer 中移除了一些冗余参数
  • 将 ItemArmorGeoLayer#prepHumanoidModelForRender 重命名为 #positionModelPartFromBone

NeoForge 1.21.10

on 2025 Oct 13
下载

GeckoLib v5.3-alpha-1

变更内容

  • 移植至 1.21.10
    • 注意:这是一个 ALPHA 版本,在 alpha 标签移除前可能会有破坏性变更。
    • 大多数 GeoRenderers 不再自动填充 PACKED_LIGHT DataTicket,因为基础 RenderState 类现在默认包含 lightCoords
    • 新增 GeoRenderState#getPackedLight
    • GeoRenderer#defaultRender 已重命名为 #submitRenderTasks,以更准确反映其当前功能(此时并未实际渲染)
    • GeoRenderer#actuallyRender 已重命名为 #buildRenderTask,以更准确反映其功能
    • GeoLayer#render 已重命名为 #buildRenderTask,以更准确反映其功能
    • 移除了 GeoRenderer#reRender。取而代之的是,渲染层或渲染器应通过 GeoRenderer#buildRenderTask 提交新的渲染任务。因此,你不再需要在渲染器方法中检查 isReRender
    • preRender、scaleModelForRender 和 adjustPositionForRender 现在都已移至 preRender 事件检查之后
    • 新增 GeoRenderer#createRenderState
    • 移除了 GeoEntityRenderer#createBaseRenderState — 改用 #createRenderState
    • 从默认设置中移除了多个 DataTickets,这些原本只是对现有原版属性的重复克隆,此举旨在消除多数据源并提升性能
    • 将 GeckoLib 渲染器中的各种 Matrix4f 变量迁移至 DataTickets
    • 移除了 GeoRenderer#doPostRenderCleanup
    • 在 GeoArmorLayer.RenderData 中添加了关联的 HumanoidModel
  • 重写了 GeoArmorRenderer — 现在使用和理解起来应该简单得多
  • 修改 DefaultedEntityGeoModel 以接受可自定义的骨骼名称,而非简单的布尔值
  • 为各种 GeoRenderer 添加了 #withRenderLayer 方法,支持函数式实例化
  • GeoObjectRenderer 现在对其 GeoRenderState 使用泛型,以支持泛型扩展
  • 直接将 partialTick 传递给 GeoRenderer#addRenderData、GeoRenderLayer#addRenderData、GeoModel#prepareForRenderPass 以及各种 CompileRenderState 事件/钩子 (#762)
  • 将 GeoRenderer#adjustPositionForRender 重命名为 #adjustRenderPose,以更准确反映其预期用途
  • ItemArmorGeoLayer.RenderData 现在使用 GeoArmorRenderer.ArmorSegment 而非手动插槽和部件获取器
  • 使 GeoRenderEvent 及其各类子事件支持多加载器环境
  • 所有平台特定的 GeckoLib 事件现已拆分为独立类,便于查找和管理。例如:CompileBlockRenderLayersEvent

新增功能

  • 新增“无状态”可动画对象(Stateless Animatables)。这是处理 GeckoLib 动画对象动画的另一种方式。
    • 参见:https://github.com/bernie-g/geckolib/wiki/Stateless-Animatable-Handling-(Geckolib5)
    • 新增:
      • StatelessGeoBlockEntity
      • StatelessGeoEntity
      • StatelessGeoObject
      • StatelessGeoReplacedEntity
      • StatelessGeoSingletonAnimatable
      • StatelessAnimationController
  • 新增 attack.punch 默认动画常量
  • 新增 misc.idle.flying 默认动画常量
  • 新增 move.dive 默认动画常量
  • 新增 DefaultAnimations#triggerOnlyController,用于创建专用于任意触发动画的控制器
  • 新增 RawAnimation#getStageCount
  • 新增 AnimationController#getStateHandler
  • 新增 DefaultAnimations#genericWalkFlyIdleController
  • 为各类 GeckoLib 渲染器添加了构造函数重载,可直接传入物品并基于对象注册的 ID 创建默认实例,便于快速使用
    • 例如:new GeoEntityRenderer(ModEntities.MY_ENTITY);
  • 新增 GeoRenderEvent#hasData
  • 新增 RenderUtil#getReplacedEntityRenderer
  • 新增 RenderUtil#getGeckoLibItemRenderer
  • 新增 RenderUtil#getGeckoLibEntityRenderer
  • 新增 RenderUtil#getGeckoLibBlockRenderer
  • 新增 RenderUtil#getGeckoLibArmorRenderer

Bug 修复

  • 添加对双深度 bedrock 关键帧解析的支持,因为不清楚为何 Blockbench 会导出这种格式
  • 修复在多人游戏中,新堆叠实体上的触发动画对其他玩家不可见的问题
  • 修复 AnimationController 中部分不正确的 Javadoc
  • 确保在传递给 GeoArmorRenderer 提取前,EntityRenderState 已被正确提取

内部变更

  • 将 GeckoLib 的数据包重新组织到文件夹中
  • 为 Animation.Stage 添加 StreamCodec 实现
  • 为 RawAnimation 添加 StreamCodec 实现
  • 为更多内部方法及所有 Mixin 添加 Javadoc,以提高代码清晰度
  • 改进 GeoRenderEvent#getRenderData 的 Javadoc
  • 移除 RenderUtil#getCurrentSystemTick
  • 移除 RenderUtil#booleanToFloat
  • 移除 RenderUtil#getGeoModelForEntityType
  • 移除 RenderUtil#getGeoModelForEntity
  • 移除 RenderUtil#getGeoModelForItem
  • 移除 RenderUtil#getGeoModelForBlock
  • 移除 RenderUtil#getGeoModelForArmor
  • 将 RenderUtil#getCurrentTick 移至 ClientUtil
  • 将 RenderUtil#arrayToVec 移至 JsonUtil
  • 从 GeoRenderProvider#getGeoArmorRenderer 中移除了一些冗余参数
  • 将 ItemArmorGeoLayer#prepHumanoidModelForRender 重命名为 #positionModelPartFromBone

Forge 1.21.10

on 2025 Oct 13
下载

GeckoLib v5.3-alpha-1

变更内容

  • 移植至 1.21.10
    • 注意:这是一个 ALPHA 版本,直到移除 alpha 标签前都可能包含破坏性变更。
    • 大多数 GeoRenderers 不再填充 PACKED_LIGHT DataTicket,因为基础 RenderState 类现在默认包含 lightCoords
    • 新增 GeoRenderState#getPackedLight
    • GeoRenderer#defaultRender 已重命名为 #submitRenderTasks,以更准确地反映其功能(现在该调用时机并非实际渲染)
    • GeoRenderer#actuallyRender 已重命名为 #buildRenderTask,以更准确地反映其功能
    • GeoLayer#render 已重命名为 #buildRenderTask,以更准确地反映其功能
    • 移除了 GeoRenderer#reRender。取而代之的是,渲染层或渲染器应通过 GeoRenderer#buildRenderTask 提交新的渲染任务。因此,你不再需要在渲染器方法中检查 isReRender
    • preRender、scaleModelForRender 和 adjustPositionForRender 现在都被移动到 预渲染事件检查之后 执行
    • 新增 GeoRenderer#createRenderState
    • 移除了 GeoEntityRenderer#createBaseRenderState —— 请改用 #createRenderState
    • 从默认设置中移除了多个 DataTickets,这些原本只是对现有原版属性的重复拷贝,此举旨在消除多数据源并提升性能
    • 将 GeckoLib 渲染器中的各种 Matrix4f 变量迁移至 DataTickets
    • 移除了 GeoRenderer#doPostRenderCleanup
    • 在 GeoArmorLayer.RenderData 中添加了关联的 HumanoidModel
  • 重写了 GeoArmorRenderer —— 现在使用和理解起来应该更加简单直观
  • 修改 DefaultedEntityGeoModel 以接受可自定义的骨骼名称,而非简单的布尔值
  • 在各类 GeoRenderer 中新增 #withRenderLayer 方法,支持函数式实例化
  • GeoObjectRenderer 现在对其 GeoRenderState 使用泛型,从而实现泛型扩展性
  • 直接将 partialTick 传递给 GeoRenderer#addRenderData、GeoRenderLayer#addRenderData、GeoModel#prepareForRenderPass 以及各个 CompileRenderState 事件/钩子 (#762)
  • 将 GeoRenderer#adjustPositionForRender 重命名为 #adjustRenderPose,以更准确地反映其预期用途
  • ItemArmorGeoLayer.RenderData 现在使用 GeoArmorRenderer.ArmorSegment 而非手动槽位和部件获取器
  • 使 GeoRenderEvent 及其各类子事件支持多加载器环境
  • 所有平台特定的 GeckoLib 事件现在被拆分为独立的类,便于查找和管理。例如:CompileBlockRenderLayersEvent

新增功能

  • 新增“无状态”可动画对象(Stateless Animatables)。这是处理 GeckoLib 动画对象动画的另一种方式。
    • 参见:https://github.com/bernie-g/geckolib/wiki/Stateless-Animatable-Handling-(Geckolib5)
    • 新增:
      • StatelessGeoBlockEntity
      • StatelessGeoEntity
      • StatelessGeoObject
      • StatelessGeoReplacedEntity
      • StatelessGeoSingletonAnimatable
      • StatelessAnimationController
  • 新增 attack.punch 默认动画常量
  • 新增 misc.idle.flying 默认动画常量
  • 新增 move.dive 默认动画常量
  • 新增 DefaultAnimations#triggerOnlyController,用于创建专用于任意触发动画的控制器
  • 新增 RawAnimation#getStageCount
  • 新增 AnimationController#getStateHandler
  • 新增 DefaultAnimations#genericWalkFlyIdleController
  • 为各类 GeckoLib 渲染器添加构造函数重载,可直接传入物品并使用对象注册的 ID 创建默认实例,便于快速简便地处理
    • 示例:new GeoEntityRenderer(ModEntities.MY_ENTITY);
  • 新增 GeoRenderEvent#hasData
  • 新增 RenderUtil#getReplacedEntityRenderer
  • 新增 RenderUtil#getGeckoLibItemRenderer
  • 新增 RenderUtil#getGeckoLibEntityRenderer
  • 新增 RenderUtil#getGeckoLibBlockRenderer
  • 新增 RenderUtil#getGeckoLibArmorRenderer

Bug 修复

  • 添加对双深度 bedrock 关键帧解析的支持,因为不清楚为何 Blockbench 会导出这种格式
  • 修复在多人游戏中,新堆叠实体上的触发动画对其他玩家不可见的问题
  • 修复 AnimationController 中一些不正确的 Javadoc
  • 确保在传递给 GeoArmorRenderer 提取前,EntityRenderState 能被正确提取

内部变更

  • 将 GeckoLib 的数据包重新组织到文件夹中
  • 为 Animation.Stage 添加 StreamCodec 实现
  • 为 RawAnimation 添加 StreamCodec 实现
  • 为更多内部方法及所有 Mixin 添加 Javadoc 以提高清晰度
  • 改进 GeoRenderEvent#getRenderData 的 Javadoc
  • 移除 RenderUtil#getCurrentSystemTick
  • 移除 RenderUtil#booleanToFloat
  • 移除 RenderUtil#getGeoModelForEntityType
  • 移除 RenderUtil#getGeoModelForEntity
  • 移除 RenderUtil#getGeoModelForItem
  • 移除 RenderUtil#getGeoModelForBlock
  • 移除 RenderUtil#getGeoModelForArmor
  • 将 RenderUtil#getCurrentTick 移动至 ClientUtil
  • 将 RenderUtil#arrayToVec 移动至 JsonUtil
  • 从 GeoRenderProvider#getGeoArmorRenderer 中移除了一些冗余参数
  • 将 ItemArmorGeoLayer#prepHumanoidModelForRender 重命名为 #positionModelPartFromBone

Fabric 1.21.10

on 2025 Oct 13
下载

GeckoLib v5.3-alpha-1

变更内容

  • 移植至 1.21.10
    • 注意:这是一个 ALPHA 版本,直到移除 alpha 标签前都可能存在破坏性变更。
    • 大多数 GeoRenderers 不再填充 PACKED_LIGHT DataTicket,因为基础 RenderState 类现在默认包含 lightCoords
    • 新增 GeoRenderState#getPackedLight
    • GeoRenderer#defaultRender 已重命名为 #submitRenderTasks,以更准确地反映其功能(现在调用时并不实际进行渲染)
    • GeoRenderer#actuallyRender 已重命名为 #buildRenderTask,以更准确地反映其功能
    • GeoLayer#render 已重命名为 #buildRenderTask,以更准确地反映其功能
    • 移除了 GeoRenderer#reRender。取而代之的是,渲染层或渲染器应通过 GeoRenderer#buildRenderTask 提交新的渲染任务。因此,你不再需要在渲染器方法中检查 isReRender
    • preRender、scaleModelForRender 和 adjustPositionForRender 现在都被移动到 预渲染事件检查之后 执行
    • 新增 GeoRenderer#createRenderState
    • 移除了 GeoEntityRenderer#createBaseRenderState —— 请改用 #createRenderState
    • 从默认设置中移除了多个 DataTickets,这些原本只是对现有原版属性的明显复制,此举旨在消除多数据源并提升性能
    • 将 GeckoLib 渲染器中的各种 Matrix4f 变量迁移至 DataTickets
    • 移除了 GeoRenderer#doPostRenderCleanup
    • 在 GeoArmorLayer.RenderData 中添加了关联的 HumanoidModel
  • 重写了 GeoArmorRenderer —— 现在使用和理解起来应该显著更简单
  • 将 DefaultedEntityGeoModel 改为接受可自定义的骨骼名称,而非简单的布尔值
  • 在各种 GeoRenderer 中新增了 #withRenderLayer 方法,支持函数式实例化
  • GeoObjectRenderer 现在对其 GeoRenderState 使用泛型,以实现泛型扩展性
  • 直接将 partialTick 传递给 GeoRenderer#addRenderData、GeoRenderLayer#addRenderData、GeoModel#prepareForRenderPass 以及各种 CompileRenderState 事件/钩子 (#762)
  • 将 GeoRenderer#adjustPositionForRender 重命名为 #adjustRenderPose,以更好地反映其预期用途
  • ItemArmorGeoLayer.RenderData 现在使用 GeoArmorRenderer.ArmorSegment 而非手动槽位和部件获取器
  • 使 GeoRenderEvent 及其各种子事件支持多加载器
  • 所有平台特定的 GeckoLib 事件现在被拆分为各自的独立类,以便更容易查找和管理。例如:CompileBlockRenderLayersEvent

新增功能

  • 新增“无状态”可动画对象(Stateless Animatables)。这是处理 GeckoLib 动画对象动画的另一种方式。
    • 参见:https://github.com/bernie-g/geckolib/wiki/Stateless-Animatable-Handling-(Geckolib5)
    • 新增:
      • StatelessGeoBlockEntity
      • StatelessGeoEntity
      • StatelessGeoObject
      • StatelessGeoReplacedEntity
      • StatelessGeoSingletonAnimatable
      • StatelessAnimationController
  • 新增 attack.punch 默认动画常量
  • 新增 misc.idle.flying 默认动画常量
  • 新增 move.dive 默认动画常量
  • 新增 DefaultAnimations#triggerOnlyController,用于创建专门处理任意触发动画的控制器
  • 新增 RawAnimation#getStageCount
  • 新增 AnimationController#getStateHandler
  • 新增 DefaultAnimations#genericWalkFlyIdleController
  • 为各种 GeckoLib 渲染器添加了构造函数重载,可直接传入物品并使用对象注册的 ID 创建默认实例,便于快速简便地处理
    • 示例:new GeoEntityRenderer(ModEntities.MY_ENTITY);
  • 新增 GeoRenderEvent#hasData
  • 新增 RenderUtil#getReplacedEntityRenderer
  • 新增 RenderUtil#getGeckoLibItemRenderer
  • 新增 RenderUtil#getGeckoLibEntityRenderer
  • 新增 RenderUtil#getGeckoLibBlockRenderer
  • 新增 RenderUtil#getGeckoLibArmorRenderer

Bug 修复

  • 添加对双深度 bedrock 关键帧解析的支持,因为不清楚为何 Blockbench 会导出这种格式
  • 修复在多人游戏中,新堆叠实体上的触发动画对其他玩家不可见的问题
  • 修复 AnimationController 中一些不正确的 Javadoc
  • 确保在传递给 GeoArmorRenderer 提取前,EntityRenderState 被正确提取

内部变更

  • 将 GeckoLib 的数据包重新组织到文件夹中
  • 为 Animation.Stage 添加 StreamCodec 实现
  • 为 RawAnimation 添加 StreamCodec 实现
  • 为更多内部方法及所有 Mixin 添加 Javadoc 以提高清晰度
  • 改进 GeoRenderEvent#getRenderData 的 Javadoc
  • 移除 RenderUtil#getCurrentSystemTick
  • 移除 RenderUtil#booleanToFloat
  • 移除 RenderUtil#getGeoModelForEntityType
  • 移除 RenderUtil#getGeoModelForEntity
  • 移除 RenderUtil#getGeoModelForItem
  • 移除 RenderUtil#getGeoModelForBlock
  • 移除 RenderUtil#getGeoModelForArmor
  • 将 RenderUtil#getCurrentTick 移动至 ClientUtil
  • 将 RenderUtil#arrayToVec 移动至 JsonUtil
  • 从 GeoRenderProvider#getGeoArmorRenderer 中移除了一些多余的参数
  • 将 ItemArmorGeoLayer#prepHumanoidModelForRender 重命名为 #positionModelPartFromBone

Forge 1.21.1

on 2025 Oct 08
下载

NeoForge 1.21.1

on 2025 Oct 08
下载

Fabric 1.21.1

on 2025 Oct 08
下载

v4.8.1

  • 使 NeoForge 的网络注册变为可选,允许仅在客户端使用 GeckoLib

NeoForge 1.21.1

on 2025 Aug 24
下载

v4.7.7

  • 在尝试为动画纹理添加辉光蒙版时正确处理异常(拉取请求 #758)
  • 将 DefaultedEntityGeoModel 更改为使用可空的骨骼名称输入来进行头部转动,而不是使用简单的布尔值(#753)
  • 修复了某些特定的基岩格式动画在 Blockbench 较新版本中导出时无法解析的问题

Forge 1.21.1

on 2025 Aug 24
下载

v4.7.7

  • 在尝试为动画纹理添加辉光遮罩时正确处理异常(拉取请求 #758)
  • 将 DefaultedEntityGeoModel 更改为使用可空的骨骼名称输入来进行头部转动,而不是使用简单的布尔值(#753)
  • 修复了某些特定的基岩格式动画在 Blockbench 新版本中导出时无法解析的问题

Fabric 1.21.1

on 2025 Aug 24
下载

v4.7.7

  • 在尝试为动画纹理添加辉光遮罩时正确处理异常(拉取请求 #758)
  • 将 DefaultedEntityGeoModel 更改为使用可空的骨骼名称输入来进行头部转动,而不是使用扁平的布尔值(#753)
  • 修复了一些特定的基岩格式动画在 Blockbench 的较新版本中导出时无法解析的问题

NeoForge 1.21.8

on 2025 Aug 08
下载

GeckoLib v5.2.2

错误修复

  • 修复了 AnimationProcessor 中错误消息中的拼写错误
  • 修复了 GeoModel 中回退位置的错误处理

内部

  • 调整了 GeoArmorRenderer 的虚拟 ID 查找,以提高微性能

Forge 1.21.8

on 2025 Aug 08
下载

Fabric 1.21.8

on 2025 Aug 08
下载

GeckoLib v5.2.2

Bug 修复

  • 修复了 AnimationProcessor 中错误消息中的拼写错误
  • 修复了 GeoModel 中回退位置的错误处理

内部

  • 调整了 GeoArmorRenderer 的虚拟 ID 查找,以提高微性能
1
2
21
设置
"Minecraft"以及"我的世界"为美国微软公司的商标 本站与微软公司没有从属关系

本站与Modrinth无从属关系,网站遵循Modrinth网站程序的LGPL协议开源 开源地址

版权所有 © 2019-2024 青岛柒兮网络科技有限公司 | ICP经营许可证: 鲁B2-20210590 | ICP备案: 鲁ICP备2021009459号-12