跳转到内容
logo
我的世界XyeBBS论坛3群 进群吹水聊天!众多整合包作者、插件作者、玩家在内哦!不定时发福利,公布重要通知!
...

Geckolib

(Geckolib)
一个支持实体、方块、物品、护甲等内容的 3D 动画库!
服务端/客户端前置实用
更新日志
正在加载选项…
Geckolib - 5.42026-03-13 17:31:36
版本支持
1.21.11
核心/平台支持
logoNeoForge
运行环境/下载方式
客户端站外下载

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 版本)
    • 理论上,这将允许模组作者在不牺牲安全性的前提下,创建自己的适配器以实现自定义加载或处理逻辑
  • 移除了 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
核心/平台支持
logoFabric
运行环境/下载方式
客户端站外下载

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
核心/平台支持
logoNeoForge
运行环境/下载方式
客户端站外下载

v4.8.3

  • 为尝试在不使用 GeoRenderProvider 的情况下渲染 GeckoLib 盔甲的模组添加了安全检查。(#755、#804 等)
  • 将 GeckoAnimFix 标记为不兼容模组,因其拒绝停止通过“刷下载量”类模组破坏 GeckoLib 的行为。
Geckolib - 4.8.32026-03-13 17:31:36
版本支持
1.21.1
核心/平台支持
logoForge
运行环境/下载方式
客户端站外下载

v4.8.3

  • 增加了一项安全检查,用于拦截那些未使用 GeoRenderProvider 却尝试渲染 GeckoLib 盔甲的模组。(相关问题 #755、#804 等)
  • 将 GeckoAnimFix 标记为不兼容模组,因其拒绝停止通过“刷下载量”类模组破坏 GeckoLib 的行为。
Geckolib - 4.8.32026-03-13 17:31:36
版本支持
1.21.1
核心/平台支持
logoFabric
运行环境/下载方式
客户端站外下载

v4.8.3

  • 增加了一项安全检查,用于检测那些尝试渲染 GeckoLib 盔甲却未使用 GeoRenderProvider 的模组。(相关议题:#755、#804 等)
  • 将 GeckoAnimFix 标记为不兼容模组,因其拒绝停止通过“下载刷量”类模组破坏 GeckoLib 的行为。
Geckolib - 5.4.12026-03-13 17:31:36
版本支持
1.21.11
核心/平台支持
logoNeoForge
运行环境/下载方式
客户端站外下载

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
核心/平台支持
logoForge
运行环境/下载方式
客户端站外下载

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
核心/平台支持
logoFabric
运行环境/下载方式
客户端站外下载

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
核心/平台支持
logoNeoForge
运行环境/下载方式
客户端站外下载

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_LIGHT DataTicket 不再为大多数 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 可动画对象的替代方式。
  • 新增了 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
核心/平台支持
logoNeoForge
运行环境/下载方式
客户端站外下载

GeckoLib v5.4-alpha-1

更新内容:

资源信息
资源版本
1.21.11.21.111.20.11.21.10
核心/平台
logoNeoForgelogoForgelogoFabric
打赏
加载中...
搬运者
...
XyeBBS-官方-搬运小组这个人很懒,没有留下任何介绍...
原作者
...
Gecko原作者
站外
其他信息
语言信息无
更新于从未更新
发布时间224 天前
资源来源
资源许可证/License