...一个支持实体、方块、物品、护甲等内容的 3D 动画库!
Geckolib
(Geckolib)服务端/客户端前置实用
更新日志
正在加载选项…
Geckolib - 5.42026-03-13 17:31:36
版本支持
1.21.11
核心/平台支持
NeoForge
NeoForge运行环境/下载方式
客户端站外下载
GeckoLib v5.4
变更内容:
修复:
- 修复了
GeoArmorRenderer渲染不正确的问题 - 修复了使用渲染层(renderlayers)时
GeoArmorRenderer崩溃的问题 - 修复了动画从已结束的先前动画进行插值的问题
- 修复了当存在过渡时间时,动画结束后未能正确过渡回基础姿态的问题
- 修复了默认带有旋转的骨骼在进行动画时旋转不正确的问题
- 修复了骨骼缩放未生效的问题
API:
GeoRenderState#addGeckolibData不再接受null值- 重新向
AnimationController添加了#setTransitionTicks方法 - 新增了
JsonUtil#jsonToVec3直接辅助方法 - 开始构建基于 SPI 的新版
.json反序列化管道,以实现更安全、更具扩展性的模型与动画加载- 默认情况下,GeckoLib 将继续使用 GSON 将数据反序列化为中间的未烘焙(unbaked)对象
- 我正在考虑开发一个 GeckoLib 插件,使用更快的库(可能是 FastJson?)来显著加快资源加载速度
- 该系统尚未完全实现,但大部分代码已完成编写并经过审查,确保符合当前的 Bedrock 几何体与动画规范(分别为 1.21.0 和 1.8.0 版本)
- 理论上,这将允许模组作者在不牺牲安全性的前提下,创建自己的适配器以实现自定义加载或处理逻辑
- 默认情况下,GeckoLib 将继续使用 GSON 将数据反序列化为中间的未烘焙(unbaked)对象
- 移除了
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 文档(源自更新前的版本)
Geckolib - 5.4.22026-03-13 17:31:36
版本支持
1.21.11
核心/平台支持
Fabric
Fabric运行环境/下载方式
客户端站外下载
GeckoLib v5.4.2
新增功能
- 新增了基于骨骼名称的
RenderPassInfo#addBonePositionListener等效方法。 - 为 Common、NeoForge 和 Fabric 添加了传递性接口注入(transitive interface injections)。
- 为
DataTickets添加了类的TypeToken替代方案,以支持泛型类型的 DataTickets。
错误修复
- 修复了一个导致动画的第一帧被完全跳过的缺陷(#807, #805)。
- 修复了“在最后一帧保持”(hold on last frame)循环类型无法正常工作的问题(#806)。
Geckolib - 4.8.32026-03-13 17:31:36
版本支持
1.21.1
核心/平台支持
NeoForge
NeoForge运行环境/下载方式
客户端站外下载
v4.8.3
- 为尝试在不使用 GeoRenderProvider 的情况下渲染 GeckoLib 盔甲的模组添加了安全检查。(#755、#804 等)
- 将 GeckoAnimFix 标记为不兼容模组,因其拒绝停止通过“刷下载量”类模组破坏 GeckoLib 的行为。
Geckolib - 4.8.32026-03-13 17:31:36
版本支持
1.21.1
核心/平台支持
Forge
Forge运行环境/下载方式
客户端站外下载
v4.8.3
- 增加了一项安全检查,用于拦截那些未使用 GeoRenderProvider 却尝试渲染 GeckoLib 盔甲的模组。(相关问题 #755、#804 等)
- 将 GeckoAnimFix 标记为不兼容模组,因其拒绝停止通过“刷下载量”类模组破坏 GeckoLib 的行为。
Geckolib - 4.8.32026-03-13 17:31:36
版本支持
1.21.1
核心/平台支持
Fabric
Fabric运行环境/下载方式
客户端站外下载
v4.8.3
- 增加了一项安全检查,用于检测那些尝试渲染 GeckoLib 盔甲却未使用 GeoRenderProvider 的模组。(相关议题:#755、#804 等)
- 将 GeckoAnimFix 标记为不兼容模组,因其拒绝停止通过“下载刷量”类模组破坏 GeckoLib 的行为。
Geckolib - 5.4.12026-03-13 17:31:36
版本支持
1.21.11
核心/平台支持
NeoForge
NeoForge运行环境/下载方式
客户端站外下载
GeckoLib v5.4.1
变更内容:
- 清理了一些过时的工具提示(tooltips)
- 为
RenderPassInfo#addBoneUpdater产生的 DeferredCache 错误添加了更多上下文信息
问题修复:
- 修复了
AnimationController偶尔误判时间倒流的问题(感谢 Mojang?) - 修复了
AnimationController在处理触发式动画时错误地使用刻(ticks)而非秒(seconds)作为单位的问题 - 修复了关键帧标记(keyframe markers)无法正确触发(甚至有时完全未触发)的问题
- 修复了代码中指定的循环类型未被正确遵循的问题
Geckolib - 5.4.12026-03-13 17:31:36
版本支持
1.21.11
核心/平台支持
Forge
Forge运行环境/下载方式
客户端站外下载
GeckoLib v5.4.1
变更内容:
- 清理了一些过时的工具提示(tooltips)
- 为
RenderPassInfo#addBoneUpdater产生的 DeferredCache 错误添加了更多上下文信息
问题修复:
- 修复了
AnimationController偶尔误判时间倒流的问题(感谢 Mojang?) - 修复了
AnimationController处理触发动画时错误地使用刻(ticks)而非秒(seconds)的问题 - 修复了关键帧标记无法正确触发(甚至有时完全未触发)的问题
- 修复了代码中指定的循环类型未被尊重执行的问题
Geckolib - 5.4.12026-03-13 17:31:36
版本支持
1.21.11
核心/平台支持
Fabric
Fabric运行环境/下载方式
客户端站外下载
GeckoLib v5.4.1
变更内容:
- 清理了一些过时的工具提示(tooltips)
- 为
RenderPassInfo#addBoneUpdater产生的 DeferredCache 错误添加了更多上下文信息
问题修复:
- 修复了
AnimationController偶尔误判时间倒流的问题(感谢 Mojang?) - 修复了
AnimationController处理触发动画时错误地使用刻(ticks)而非秒(seconds)作为单位的问题 - 修复了关键帧标记(keyframe markers)未能正确触发(甚至有时完全未触发)的问题
- 修复了代码中指定的循环类型未被尊重执行的问题
Geckolib - 5.3-alpha-32026-03-13 17:31:36
版本支持
1.21.10
核心/平台支持
NeoForge
NeoForge运行环境/下载方式
客户端站外下载
GeckoLib v5.3-alpha-3
Alpha 3 更新说明:
- 修复了世界加载时的崩溃问题(#776)
- 围绕盔甲渲染和
ItemArmorGeoLayer进行了更多内部改动 - 很抱歉地通知大家,下一个版本还将会有更多的 API 变更 :(
Alpha 2 更新说明:
- 修复了在较新版本的 Forge 上加载时导致 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工具类
主要变更
- 移植到 Minecraft 1.21.10 版本
- 注意:这是一个 ALPHA 构建版本,在移除 alpha 标签之前,可能会经历破坏性变更。
PACKED_LIGHTDataTicket 不再为大多数 GeoRenderer 填充,因为基础的 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)可动画对象。这是一种处理 GeckoLib 可动画对象的替代方式。
- 详见:https://github.com/bernie-g/geckolib/wiki/Stateless-Animatable-Handling-(Geckolib5)
- 新增类:
StatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationController
- 新增了
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 修复
- 添加了对双倍深度基岩关键帧的解析支持(实在不明白为什么 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
Geckolib - 5.4-alpha-12026-03-13 17:31:36
版本支持
1.21.11
核心/平台支持
NeoForge
NeoForge运行环境/下载方式
客户端站外下载
GeckoLib v5.4-alpha-1
更新内容:
资源信息
资源版本
1.21.11.21.111.20.11.21.10
核心/平台
NeoForge
Forge
Fabric
NeoForge
Forge
Fabric打赏
加载中...
搬运者
...
XyeBBS-官方-搬运小组这个人很懒,没有留下任何介绍...
原作者站外
...
Gecko原作者
其他信息
