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

GeckoLib

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

前置实用工具装饰
1,8221a year ago
GeckoLib

GeckoLib

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

1,822
1
前置
实用工具
装饰

基本信息

我的世界Java版本

1.21.10–1.21.11
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
发布于 2024-11-28
更新于 2026-01-11
简介渲染图更新日志版本百科反馈讨论

全部版本

1
2
10

NeoForge 1.21.11-5.4.2

on 2026 Jan 11
下载

GeckoLib v5.4.2

新增内容

  • 添加了基于骨骼名称的 RenderPassInfo#addBonePositionListener 等效功能
  • 为 Common、NeoForge 和 Fabric 添加了传递性接口注入
  • 为 DataTickets 添加了类的 TypeToken 替代方案,以支持泛型类型的 DataTickets

错误修复

  • 修复了导致动画的第一个关键帧被完全跳过的问题 (#807, #805)
  • 修复了“保持在最后一帧”循环类型无法正常工作的问题 (#806)

Forge 1.21.11-5.4.2

on 2026 Jan 11
下载

GeckoLib v5.4.2

新增内容

  • 添加了基于骨骼名称的 RenderPassInfo#addBonePositionListener 等效功能
  • 为 Common、NeoForge 和 Fabric 添加了传递性接口注入
  • 为 DataTickets 添加了 TypeToken 替代类,以支持泛型类型的 DataTickets

错误修复

  • 修复了导致动画的第一个关键帧被完全跳过的错误 (#807, #805)
  • 修复了“保持在最后一帧”的循环类型无法正常工作的问题 (#806)

Fabric 1.21.11-5.4.2

on 2026 Jan 11
下载

GeckoLib v5.4.2

新增

  • 添加了基于骨骼名称的 RenderPassInfo#addBonePositionListener 等效功能
  • 为 Common、[Neo] 和 Fabric 添加了传递性接口注入
  • 为 DataTickets 添加了类的 TypeToken 替代方案,以支持泛型类型的 DataTickets

Bug 修复

  • 修复了导致动画的第一个关键帧被完全跳过的问题 (#807, #805)
  • 修复了“保持在最后一帧”循环类型不生效的问题 (#806)

NeoForge 1.21.11

on 2026 Jan 01
下载

GeckoLib v5.4.1

更新内容:

  • 清理了一些过时的提示信息
  • 为 RenderPassInfo#addBoneUpdater 中的 DeferredCache 错误添加了更多上下文信息

错误修复:

  • 修复了 AnimationController 有时认为时间倒流的问题(感谢 Mojang?)
  • 修复了 AnimationController 在处理触发动画时使用了游戏刻而非秒数的问题
  • 修复了关键帧标记未被正确触发(或有时完全不触发)的问题
  • 修复了代码中循环类型设置未被遵守的问题

Forge 1.21.11

on 2026 Jan 01
下载

GeckoLib v5.4.1

更新内容:

  • 清理了一些过时的提示信息
  • 为 RenderPassInfo#addBoneUpdater 中的 DeferredCache 错误添加了更多上下文信息

修复内容:

  • 修复了 AnimationController 有时认为时间倒流的问题(感谢 Mojang?)
  • 修复了 AnimationController 在处理触发动画时以游戏刻而非秒为单位的问题
  • 修复了关键帧标记未被正确触发(或有时根本不触发)的问题
  • 修复了代码中设置的循环类型未被遵守的问题

Fabric 1.21.11

on 2026 Jan 01
下载

GeckoLib v5.4.1

更新内容:

  • 清理了一些过时的提示信息
  • 为来自 RenderPassInfo#addBoneUpdater 的 DeferredCache 错误添加了更多上下文信息

问题修复:

  • 修复了 AnimationController 有时认为时间倒流的问题(感谢 Mojang?)
  • 修复了 AnimationController 在处理触发动画时使用的是游戏刻而非秒数的问题
  • 修复了关键帧标记未被正确触发(或有时根本不触发)的问题
  • 修复了代码中设置的循环类型未被遵守的问题

NeoForge 1.21.11

on 2025 Dec 29
下载

GeckoLib v5.4

变更:

修复:

  • 修复 GeoArmorRenderer 渲染异常的问题
  • 修复在使用渲染层时 GeoArmorRenderer 崩溃的问题
  • 修复动画在已完成的前一个动画基础上继续插值的问题
  • 修复当过渡时间存在时,动画结束未能正确返回基础姿态的问题
  • 修复骨骼默认旋转时动画旋转不正确的问题
  • 修复骨骼缩放未生效的问题

API:

  • GeoRenderState#addGeckolibData 不再接受 null 值
  • 重新添加 #setTransitionTicks 到 AnimationController
  • 添加 JsonUtil#jsonToVec3 直接辅助方法
  • 开始构建基于 SPI 的 .json 反序列化管道,以实现更安全、更可扩展的模型与动画加载
    • 默认情况下,GeckoLib 将继续使用 GSON 反序列化为中间的未烘焙对象
      • 我正考虑开发一个 GeckoLib 附加组件,使用更快的库(可能是 FastJson?)来加速资源加载,可能大幅提升性能
    • 此系统尚未完全实现,但大部分代码已编写并审查完毕,确保其符合当前 Bedrock 几何体与动画规范(分别为 1.21.0 和 1.8.0)
    • 理论上这将允许模组作者创建自己的适配器,用于自定义加载或处理,同时不牺牲安全性
  • 移除 GeckoLibClient#getGeoModelForItem,因其未被使用且多余,请改用 RenderUtil#getGeckoLibItemRenderer 并按需获取模型
  • 将 GeckoLibServices.Client 提取为 GeckoLibClientServices,因为 Java 编译时常无故失败
  • 创建 GeoBone#positionAndRender,用于实现指定骨骼的完整渲染操作
  • 为 GeoRenderState#getOrDefaultGeckolibData 添加基于 supplier 的备用重载,支持延迟计算
  • 添加 SerializableDataTicket#enforceValidTicket

内部:

  • 将 GeckoLib 的空值注解迁移至 JSpecify 规范
    • 您会发现库中空值标注和空值处理显著增加,有助于消除对代码状态的困惑
  • 进一步清理 Javadoc
  • 新增大量文档,特别是 package-info 文件和参数类型描述
  • 将 RawAnimation#additionalTicks 重命名为 RawAnimation#waitTicks
  • 从骨骼格式中移除 bind_pose_rotation 旧版支持
  • 移除未使用的 AnimationVariables 类
  • 将 GeoObjectRenderer 的关联对象泛型类型从 E 更改为 O,以与其他部分保持一致
  • 将 BoneSnapshots、PerBoneRender 和 RenderPassInfo 移至渲染器基础包
  • 将各种内置的 GeoRenderLayer 类移至 builtin 子包
  • 将 GeckoLib 的 GSON 实例从 KeyFramesAdapter 移至 GeckoLibResources
  • 将 KeyFramesAdapter 重命名为 KeyFrameMarkersAdapter
  • 在整个库中清理并标准化空值处理
  • 更新部分更新前遗留的过时 Javadoc

Forge 1.21.11

on 2025 Dec 29
下载

GeckoLib v5.4

变更:

修复:

  • 修复了 GeoArmorRenderer 无法正确渲染的问题
  • 修复了在使用 renderlayers 时 GeoArmorRenderer 崩溃的问题
  • 修复了动画在已完成的前一个动画基础上继续插值的问题
  • 修复了当动画结束且存在过渡时间时,未能正确返回基础姿态的问题
  • 修复了默认旋转的骨骼在动画过程中旋转不正确的问题
  • 修复了骨骼缩放未生效的问题

API:

  • GeoRenderState#addGeckolibData 不再接受 null 值
  • 重新添加了 AnimationController 中的 #setTransitionTicks 方法
  • 添加了 JsonUtil#jsonToVec3 直接辅助方法
  • 开始构建基于 SPI 的 .json 反序列化管道,以实现更安全、更可扩展的模型和动画加载
    • 默认情况下,GeckoLib 将继续使用 GSON 反序列化为中间的未烘焙对象
      • 我正在考虑开发一个 GeckoLib 附加组件,使用更快的库(可能是 FastJson?)来加速资源加载,可能大幅提升性能
    • 该系统尚未完全实现,但大部分代码已经编写并审查完毕,确保其符合当前 Bedrock 几何与动画规范(分别为 1.21.0 和 1.8.0)
    • 理论上这将允许模组作者创建自己的适配器,用于自定义加载或处理,同时不牺牲安全性
  • 移除了未使用且不必要的 GeckoLibClient#getGeoModelForItem,请改用 RenderUtil#getGeckoLibItemRenderer 并按需获取模型
  • 将 GeckoLibServices.Client 提取为 GeckoLibClientServices,因为 Java 在编译时无故失败
  • 创建了 GeoBone#positionAndRender,实现了对指定骨骼的完整渲染操作
  • 为 GeoRenderState#getOrDefaultGeckolibData 添加了基于 Supplier 的备用重载,支持延迟计算
  • 添加了 SerializableDataTicket#enforceValidTicket

内部:

  • 将 GeckoLib 的空值注解迁移至 JSpecify 规范
    • 您会发现库中显著增加了空值注解和空值处理,有助于消除对代码状态的困惑
  • 进一步清理了 Javadoc
  • 添加了大量额外文档——特别是 package-info 文件和参数类型描述
  • 将 RawAnimation#additionalTicks 重命名为 RawAnimation#waitTicks
  • 从 Bone 格式中移除了 bind_pose_rotation 的旧版支持
  • 移除了未使用的 AnimationVariables 类
  • 将 GeoObjectRenderer 中相关对象的泛型类型从 E 更改为 O,以与其他部分保持一致
  • 将 BoneSnapshots、PerBoneRender 和 RenderPassInfo 移至渲染器基础包
  • 将各种内置的 GeoRenderLayer 类移至 builtin 子包
  • 将 GeckoLib 的 GSON 实例从 KeyFramesAdapter 移至 GeckoLibResources
  • 将 KeyFramesAdapter 重命名为 KeyFrameMarkersAdapter
  • 在整个库中清理并标准化了空值处理
  • 更新了一些更新前遗留的过时 Javadoc

Fabric 1.21.11

on 2025 Dec 27
下载

GeckoLib v5.4

变更:

修复:

  • 修复了 GeoArmorRenderer 渲染异常的问题
  • 修复了在使用 renderlayers 时 GeoArmorRenderer 崩溃的问题
  • 修复了动画在已完成的前一个动画基础上继续插值的问题
  • 修复了当存在过渡时间时,动画结束无法返回基础姿态的问题
  • 修复了默认旋转的骨骼在动画过程中旋转不正确的问题
  • 修复了骨骼缩放未生效的问题

API:

  • GeoRenderState#addGeckolibData 不再接受 null 值
  • 重新添加了 AnimationController 中的 #setTransitionTicks 方法
  • 添加了 JsonUtil#jsonToVec3 直接辅助方法
  • 开始构建基于 SPI 的 .json 反序列化管道,以实现更安全、更可扩展的模型与动画加载
    • 默认情况下,GeckoLib 将继续使用 GSON 反序列化为中间的未烘焙对象
      • 我正考虑开发一个 GeckoLib 附加组件,使用更快的库(可能是 FastJson?)来加速资源加载,可能带来显著性能提升
    • 该系统尚未完全实现,但大部分代码已经编写并审查完毕,确保其符合当前 Bedrock 几何体与动画规范(分别为 1.21.0 和 1.8.0)
    • 理论上这将允许模组作者创建自己的适配器,用于自定义加载或处理,同时不牺牲安全性
  • 移除了未使用且不必要的 GeckoLibClient#getGeoModelForItem,请改用 RenderUtil#getGeckoLibItemRenderer 并按需获取模型
  • 将 GeckoLibServices.Client 提取为 GeckoLibClientServices,因为 Java 无故编译失败
  • 创建了 GeoBone#positionAndRender,用于实现指定骨骼的完整渲染操作
  • 为 GeoRenderState#getOrDefaultGeckolibData 添加了基于 supplier 的回退重载,支持延迟计算
  • 添加了 SerializableDataTicket#enforceValidTicket

内部:

  • 将 GeckoLib 的空值注解迁移至 JSpecify 规范
    • 你会在库中发现大量增加的空值标注和空值处理,有助于消除对代码状态的困惑
  • 进一步清理了 Javadoc
  • 添加了大量额外文档——特别是 package-info 文件和参数类型描述
  • 将 RawAnimation#additionalTicks 重命名为 RawAnimation#waitTicks
  • 从骨骼格式中移除了 bind_pose_rotation 的旧版支持
  • 移除了未使用的 AnimationVariables 类
  • 将 GeoObjectRenderer 的关联对象泛型类型从 E 改为 O,以与其他部分保持一致
  • 将 BoneSnapshots、PerBoneRender 和 RenderPassInfo 移至渲染器基础包
  • 将各种内置的 GeoRenderLayer 类移至 builtin 子包
  • 将 GeckoLib 的 GSON 实例从 KeyFramesAdapter 移至 GeckoLibResources
  • 将 KeyFramesAdapter 重命名为 KeyFrameMarkersAdapter
  • 在整个库中清理并标准化了空值处理
  • 更新了一些更新前遗留的过时 Javadoc

NeoForge 1.21.11

on 2025 Dec 10
下载

GeckoLib v5.4-alpha-1

变更:

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

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

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

Fabric 1.21.1

on 2025 Oct 08
下载

v4.8.1

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

Fabric 1.21.1

on 2025 Aug 24
下载

v4.7.7

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

Fabric 1.21.8

on 2025 Aug 08
下载

GeckoLib v5.2.2

Bug 修复

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

内部

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

Fabric 1.21.7

on 2025 Jul 04
下载

GeckoLib v5.2.1

移植到 1.21.7

错误修复

  • 临时修复物品实体渲染不可见的问题。可能需要进行一次破坏性更改才能正确修复,很快就会找到答案

Fabric 1.21.6

on 2025 Jun 27
下载

GeckoLib v5.2.0

重大变更 - 抱歉!

添加内容

  • GeoItemRenderer 的渲染对象已从 ItemStack 切换为 GeoItemRenderer$RenderData。
    • 这意味着 GeoItemRenderer 现在可以访问一些额外的上下文对象,包括持有该物品的玩家。

错误修复

  • 修复了在 AnimationTest 阶段 GeoItems 没有 ItemRenderContext 可用的问题(#735)

Fabric 1.21.1

on 2025 Jun 16
下载

v4.7.6

  • 清理GeckoLibUtil#getSyncedAnimatable的Java文档及参数命名
  • 允许手动更改的GeckoLib堆叠ID(???)像正常情况那样进行同步
  • 修复GeoArmorRenderer在未注册为同步可动画化对象时共享其动画的问题(#730)

Fabric 1.21.5

on 2025 Jun 16
下载

壁虎库v5.1.0

新增内容

  • 新增了AutoGlowingGeoLayer#shouldAddZOffset——一个用于为特定渲染类型或特殊情况添加更好兼容性的切换开关
  • 新增了AutoGlowingGeoLayer#getBrightness——一个可配置的值,用于调整发光层的亮度

更改内容

  • 在AutoGlowingGeoLayer#shouldRespectWorldLighting的方法参数中添加了渲染状态
  • 进行了少量代码清理

漏洞修复

  • 修复了GeoArmorRenderer不支持发光遮罩的问题。需要进行小幅重写。稍有变动。抱歉。
  • 修复了GeoArmorRenderer在未注册为可同步的GeoAnimatable时,已穿戴实例之间共享动画的问题(#730)
1
2
10
BBSMC Logo

中国最活跃的 Minecraft 中文资源社区

QQ 群:1078515449

资源

模组整合包光影资源包

社区

论坛汉化软件插件

帮助

服务条款隐私政策社区规则开源代码
设置

"Minecraft"以及"我的世界"为美国微软公司的商标,本站与微软公司没有从属关系。 本站与 Modrinth 无从属关系,网站遵循 LGPL 协议开源。

© 2019-2026 青岛柒兮网络科技有限公司 | 鲁B2-20210590 | 鲁ICP备2021009459号-12 | 公安备案 鲁公网安备37021002001586号