Fabric - 1.20.1
on 2024 Dec 01- 修复了以前缀为
./
和~/
的模型纹理在最近的更改中出现的问题 - 扩展了 EMF API:
- 添加了
int getCurrentEMFVariantOfModel(EntityModel<?>)
,返回模型的当前变体,如果模型不是自定义 EMF 模型,则返回 -1。 - 添加了
boolean isModelAnimatedByEMF(EntityModel<?>)
,如果模型具有自定义 EMF 动画,则返回 true。 - 添加了
boolean isModelCustomizedByEMF(EntityModel<?>)
,如果模型是自定义 EMF 模型,则返回 true。 - 添加了
boolean isModelPartCustomToEMF(ModelPart)
,如果此模型部分是 EMF 添加的多余部分,并且不表示任何实际的普通 vanilla 部分,则返回 true。 - 添加了
boolean isModelPartAnimatedByEMF(ModelPart)
,如果此模型部分本身由 EMF 动画,则返回 true,例如"modePart.rx":"sin(age)"
。
- 添加了
- 修复了一些实体模型覆盖设置在游戏中未正确应用的问题,例如按实体类型修改渲染模式。
- 将盒子面 UV 高度/宽度为零的警告移动到仅在启用模型创建日志记录时出现,因为对于许多不关心此问题的数据包来说,它变得过于嘈杂。
NeoForge - 1.20.2
on 2024 Dec 01- 修复了当箭头渲染时卡在具有替换其所有原版部件的自定义模型的玩家内部时的崩溃问题
- 修复了箭头卡在玩家内部且不遵循自定义玩家模型的自定义动画的问题
- EMF 现在在 1.21 及更高版本中删除了
floor UVs
OptiFine 等效设置,因为 OptiFine 现在与 EMF 的默认行为匹配。 - 对于具有 0 UV 宽度和高度的立方体的警告已变得更详细,并且在早期版本中也将取决于
floor UVs
设置。
Forge - 1.20.2
on 2024 Dec 01- 修复了在玩家使用替换了所有原生部件的自定义模型时,箭头渲染卡在玩家内部的崩溃问题
- 修复了箭头卡在玩家内部且不跟随自定义玩家模型的自定义动画的问题
- EMF 现在在 1.21 及更高版本中删除了
floor UVs
OptiFine 奇偶性设置,因为 OptiFine 现在与 EMF 的默认行为匹配。 - 对于具有 0 UV 宽度和高度的立方体的警告已变得更加详细,并且在早期版本中也将取决于
floor UVs
设置。
Fabric - 1.20.1
on 2024 Dec 01- 修复了当箭头渲染时卡在一个带有替换其所有原生部分的自定义模型的玩家内部时的崩溃问题
- 修复了箭头卡在玩家内部且不跟随自定义玩家模型的自定义动画的问题
- EMF 现在在 1.21 及更高版本中删除了
floor UVs
OptiFine 等效设置,因为 OptiFine 现在与 EMF 的默认行为匹配。 - 对于具有 0 UV 宽度和高度的立方体的警告已变得更加详细,并且在早期版本中也将取决于
floor UVs
设置。
NeoForge - 1.20.2
on 2024 Dec 01- 修复了
rot_y
在特定客户端玩家模型中给出错误值的问题 - 修复了动画中的
part
关键字在 OptiFine 部分名称与原版不同时无法正常工作的问题 - 修复了大多数模型在.jem 级别上纹理覆盖被破坏的问题,这是由于冗余优化损坏导致的
Forge - 1.20.2
on 2024 Dec 01- 修复了
rot_y
在特定客户端玩家模型中给出不正确值的问题 - 修复了动画中的
part
关键字在 OptiFine 部分名称与原生名称不同时无法正确工作的问题 - 修复了大多数模型在.jem 级别上纹理覆盖被破坏的问题,这是由于冗余优化被破坏导致的
Fabric - 1.20.1
on 2024 Dec 01- 修复了
rot_y
为特定客户端玩家模型提供不正确值的问题 - 修复了动画中的
part
关键字对于与原版不同的 OptiFine 部分名称不能正确工作的问题 - 修复了大多数模型的纹理覆盖在.jem 级别被破坏的问题,这是由于冗余优化错误导致的
NeoForge - 1.20.2
on 2024 Dec 01- 添加了 OptiFine CEM 语法限制奇偶性设置
- 添加了一个奇偶性设置,以像 OptiFine 那样强制在盒子中使用自定义 UV 值下限
- 添加了对直接在动画中引用
part
的支持,就像this
已经做的那样 - 为盒子 UV 坐标添加了更详细的验证警告,并充实了验证错误消息,以告知用户确切的问题来源
- 添加了来自最新 OptiFine 的
frame_counter
变量 - 将
wolf_collar
添加到模型列表中 - 使
frame_time
与 OptiFine 的暂停和滴答冻结行为匹配 - 修复了修改后的块实体模型在不应包含命名空间时错误地在模型文件名中包含命名空间的问题,例如寻找
optifine/cem/mod:model.jem
而不是mod:optifine/cem/model.jem
- 修复了具有变体的模型在首次加载时未正确重置其初始状态的问题,直到至少自然发生 1 次变化
Forge - 1.20.2
on 2024 Dec 01- 添加了 Optifine cem 语法限制奇偶性设置
- 添加了一个奇偶性设置,以强制在像 OptiFine 那样的盒子中自定义 UV 值取整
- 添加了对直接在动画中引用
part
的支持,就像this
已经做的那样 - 为盒子 UV 坐标添加了更详细的验证警告,并充实了验证错误消息,以告知用户确切的问题来源
- 添加了最新 OptiFine 中的
frame_counter
变量 - 将
wolf_collar
添加到模型列表中 - 使
frame_time
与 OptiFine 的暂停和滴答冻结行为匹配 - 修复了模组化块实体模型在不应包含命名空间时在模型文件名中错误地包含命名空间的问题,例如查找
optifine/cem/mod:model.jem
而不是mod:optifine/cem/model.jem
- 修复了具有变体的模型在首次加载时未正确重置其初始状态的问题,直到至少自然发生 1 次变化
Fabric - 1.20.1
on 2024 Dec 01- 添加了一个 OptiFine CEM 语法限制奇偶性设置
- 添加了一个奇偶性设置,以强制在像 OptiFine 那样的盒子中自定义 UV 值取整
- 添加了对直接在动画中引用
part
的支持,就像this
已经做的那样 - 为盒子 UV 坐标添加了更详细的验证警告,并充实了验证错误消息,以告知用户确切的问题来源
- 添加了来自最新 OptiFine 的
frame_counter
变量 - 将
wolf_collar
添加到模型列表中 - 使
frame_time
与 OptiFine 的暂停和滴答冻结行为匹配 - 修复了模组方块实体模型在不应包含命名空间时错误地在模型文件名中包含命名空间的问题,例如查找
optifine/cem/mod:model.jem
而不是mod:optifine/cem/model.jem
- 修复了具有变体的模型在首次加载时未正确重置其初始状态的问题,直到至少发生 1 次变体
NeoForge - 1.20.2
on 2024 Dec 01- 现在需要 ETF 6.2.1 或更新版本
- 修复了一个模型设置错误,该错误会破坏村民和守卫、带有自定义模型声明纹理的服装和发光纹理
- is_hover 现在尊重玩家当前对块实体的块交互范围
- id 变量现在与 OptiFine 的值完全匹配
- 重新设计了 player_cape.jem 实现,使其更兼容模组,例如
wavey capes
模组现在可以正确覆盖它,并且 essentials 现在可以与之配合使用 - 交换了模型的子文件夹加载优先级。
optifine/cem/skeleton/skeleton.jem
现在在optifine/cem/skeleton/skeleton.jem
之前加载,以匹配 OptiFine 行为 - 添加了一个 OptiFine 兼容设置,要求子模型文件夹具有变体,例如
optifine/cem/skeleton/skeleton.jem
如果没有optifine/cem/skeleton/skeleton2.jem
或有效的.properties 文件将不会加载。 - 模型导出不再将旋转浮点值打印为双精度数
- 模型导出现在还会记录所有导出和未导出部分的所有框值
- 修复了纹理覆盖不适用于
attach=true
或原生部分的问题 - 修复了在所有动画条目中多次声明/更新相同部分变换或变量时动画中断的问题
- 向死亡时间变量添加了 tickdelta(修复了像骷髅死亡物理这样的包中的抖动问题)
- 修复了动画数学中并非所有
this
实例都能正确解析的问题 - 为经常拼写错误的变量(如
is_aggressive
)添加了拼写纠正警告 - 找不到变量现在记录为错误而不是警告,并且对于未知的布尔值现在将正确默认为 false
Forge - 1.20.2
on 2024 Dec 01- 现在需要 ETF 6.2.1 或更高版本
- 修复了一个模型设置错误,该错误会破坏村民和狱卒、带有自定义模型声明纹理的服装和发光纹理
- is_hover 现在尊重玩家当前的块交互范围以用于块实体
- id 变量现在与 OptiFine 的值完全匹配
- 重新设计了 player_cape.jem 实现,以更具兼容性,例如
wavey capes
模组现在可以正确覆盖它,并且 essentials 现在可以与之配合使用 - 交换了模型的子文件夹加载优先级。
optifine/cem/skeleton/skeleton.jem
现在在optifine/cem/skeleton/skeleton.jem
之前加载,以匹配 OptiFine 行为 - 添加了一个 OptiFine 兼容设置,要求子模型文件夹具有变体,例如
optifine/cem/skeleton/skeleton.jem
如果没有optifine/cem/skeleton/skeleton2.jem
或有效的.properties 文件将不会加载。 - 模型导出不再将旋转浮点值打印为双精度数
- 模型导出现在还记录所有导出和未导出部分的所有框值
- 修复了纹理覆盖不适用于
attach=true
或原生部分的问题 - 修复了在所有动画条目中多次声明/更新相同部分变换或变量时动画中断的问题
- 向死亡时间变量添加了 tickdelta(修复了诸如骨架死亡物理等包中的抖动问题)
- 修复了动画数学中并非所有
this
实例都能正确解析的问题 - 为经常拼写错误的变量(如
is_aggressive
)添加了拼写纠正警告 - 未找到的变量现在记录为错误而不是警告,并且对于未知的布尔值现在将正确默认为 false
Fabric - 1.20.1
on 2024 Dec 01- 现在需要 ETF 6.2.1 或更新版本
- 修复了一个模型设置错误,该错误会破坏村民和守卫、带有自定义模型的服装和发光纹理,这些模型声明了纹理
- is_hover 现在尊重玩家当前对块实体的块交互范围
- id 变量现在与 OptiFine 的值完全匹配
- 重新设计了 player_cape.jem 实现,使其更具兼容性,例如
wavey capes
模组现在可以正确覆盖它,并且 essentials 现在可以与之配合使用 - 交换了模型的子文件夹加载优先级。
optifine/cem/skeleton/skeleton.jem
现在在optifine/cem/skeleton/skeleton.jem
之前加载,匹配 OptiFine 行为 - 添加了一个 OptiFine 兼容设置,要求子模型文件夹具有变体,例如
optifine/cem/skeleton/skeleton.jem
如果没有optifine/cem/skeleton/skeleton2.jem
或有效的.properties 文件将不会加载。 - 模型导出不再将旋转浮点值打印为双精度数
- 模型导出现在还会记录所有导出和未导出部分的框值
- 修复了纹理覆盖不适用于
attach=true
或原生部分的问题 - 修复了在所有动画条目中多次声明/更新相同部分变换或变量时动画中断的问题
- 向死亡时间变量添加了 tickdelta(修复了像骨架死亡物理这样的包中的抖动问题)
- 修复了在动画数学中并非所有
this
实例都被正确解析的问题 - 为经常拼写错误的变量(如
is_aggressive
)添加了拼写纠正警告 - 找不到变量现在记录为错误而不是警告,并且对于未知的布尔值现在将正确默认为 false
[EMF] Entity Model Features 2.2
on 2024 Dec 01[2.2]
- 修复了与 forge 1.21 和 1.20.6 的兼容性
- 修复了与 Sodium 0.6 beta 版本一起使用时的问题
- 添加了一个设置,使 EMF 在每次渲染之前完全重置玩家模型的所有原生部分转换。
- 仅在玩家存在自定义模型时适用。
- 然而,由于许多模组会改变玩家动画,这不是典型的行为。
- 此设置大大降低了模组和动画包之间的玩家动画兼容性难度。
- 例如,玩家表情模组。
- 此兼容性仍需要在包制作人员端进行工作。
- 添加了
nbt(key,test)
布尔动画函数,其工作方式与 nbt 随机属性完全相同,例如models.1.SaddleItem=exits:false
将变为nbt(SaddleItem,exists:false)
。 - 添加了布尔动画变量
is_paused
,当游戏暂停时为 true。 - 添加了布尔动画变量
is_hovered
,当客户端正在查看实体或块实体位置时为 true。 - 在模型调试设置中添加了一个选项,仅在实体悬停时在调试模式下渲染模型。
- 添加了一个设置来控制 EMF 是否需要“基础”模型进行模型变体,如 OptiFine(例如
pig2.jem
需要pig.jem
才能工作)。此设置现在默认启用,以促进向后兼容性并防止混淆。 - 调整了
keyframe()
和keyframeloop()
动画函数,使用 catmulrom 样条插值在关键帧之间进行平滑过渡,考虑到之前和即将到来的帧。 - 修复了村民服装和职业纹理在模型中设置纹理覆盖时无法渲染的问题。
- 修复了
chest_large.jem
的一个问题,因为在游戏中它必须分为 2 个半模型,此修复消除了关于缺少左/右半部分的日志垃圾,并且还在一定程度上修复了引用胸部另一侧的动画,强烈建议您将左右半动画分开。已启用一个配置选项,以在模组化胸部模型冲突的情况下切换此修复。 - 修复了
slime_outer
模型在使用纹理覆盖时删除半透明的问题。 - 修复了
is_swinging_right_arm
和is_swinging_left_arm
。 - 添加了
is_using_item
,当正在使用任何物品时为 true,通常您可以通过is_swinging_right_arm
和is_swinging_left_arm
检测哪个手臂,但这对于所有物品使用情况并不可靠。 - 添加了
is_holding_item_right
和is_holding_item_left
,以检测实体是否在右手或左手持有物品,可能不适用于所有持有物品的实体,仅在玩家上进行了测试。 - 将 vex 充电添加到
is_aggressive
变量中,并使其与模组化的怪物更一致。 - 修复了特殊的次要或备用模型的变体,如
outer_armor.jem
。或旧目录模组化模型。 - 修复了打印动画方法在预验证期间意外打印的问题。
- 标志和船只现在有可选的覆盖模型,基于香草如何将每个标志和船只变体分离为自己的模型,这些仅通过启用模型创建日志记录并在那里查看它们的名称来识别,如果不存在,将回退到 OptiFine 默认值。
- 改进了所有模型的配置列表中的文件名和位置显示。
- 在配置 GUI 中添加了 emf 16x 徽标以替换完整徽标。
- 改进了纹理覆盖,EMF 现在删除冗余的纹理声明以提高运行时效率(例如,忽略在
pig.jem
中声明的pig.png
,因为它是冗余的)。 - 修复了一些实体动画值在实体特征层渲染期间被重置且未正确恢复的问题。
[EMF] Entity Model Features 2.2
on 2024 Dec 01[2.2]
- 修复了 forge 1.21 和 1.20.6 的兼容性
- 修复了与 Sodium 0.6 测试版一起使用时的问题
- 添加了一个设置,使 EMF 在每次渲染之前重置玩家模型的所有原版部分转换。
- 仅在玩家存在自定义模型时适用。
- 然而,由于许多模组会更改玩家动画,这不是典型的行为。
- 此设置大大降低了模组和动画包之间的玩家动画兼容性难度。
- 例如,玩家表情模组。
- 此兼容性仍需要包制作者端的工作。
- 添加了
nbt(key,test)
布尔动画函数,它的工作方式与 nbt 随机属性完全相同,例如models.1.SaddleItem=exits:false
将变为nbt(SaddleItem,exists:false)
。 - 添加了布尔动画变量
is_paused
,当游戏暂停时为真。 - 添加了布尔动画变量
is_hovered
,当客户端正在查看实体或块实体位置时为真。 - 在模型调试设置中添加了一个选项,仅在实体被悬停时在调试模式下渲染模型。
- 添加了一个设置来控制 EMF 是否需要一个“基础”模型来进行模型变体,如 OptiFine (例如
pig2.jem
需要一个pig.jem
才能工作)。此设置现在默认启用,以促进向后兼容性并防止混淆。 - 调整了
keyframe()
和keyframeloop()
动画函数,使用 catmulrom 样条插值来实现关键帧之间的平滑过渡,并考虑前一帧和下一帧。 - 修复了村民服装和职业纹理在模型中设置纹理覆盖时无法渲染的问题。
- 修复了
chest_large.jem
的一个问题,因为在游戏中它必须分为 2 个半模型,这消除了关于缺少左右半部分的日志垃圾,并且还在一定程度上修复了引用 chest 另一侧的动画,仍然强烈建议将左右半动画分开。已启用一个配置选项来切换此修复,以防模组化 chest 模型冲突。 - 修复了
slime_outer
模型在使用纹理覆盖时删除半透明的问题。 - 修复了
is_swinging_right_arm
和is_swinging_left_arm
。 - 添加了
is_using_item
,当正在使用任何物品时为真,通常可以通过is_swinging_right_arm
和is_swinging_left_arm
检测到哪个手臂,但这对于所有物品使用情况都不可靠。 - 添加了
is_holding_item_right
和is_holding_item_left
来检测实体是否在右手或左手持有物品,可能并非对所有持有物品的实体都有效,仅在玩家上进行了测试。 - 将 vex 充电添加到
is_aggressive
变量中,并使其与模组化生物更一致。 - 修复了特殊的次要或备用模型的变体,如
outer_armor.jem
。或旧目录模组化模型。 - 修复了打印动画方法在预验证期间意外打印的问题。
- 标志和船现在有可选的覆盖模型,基于原版如何将每个标志和船变体分离为自己的模型,这些仅通过启用模型创建日志记录并在那里查看它们的名称来识别,如果不存在,将回退到 OptiFine 默认值。
- 改进了所有模型的配置列表中的文件名和位置显示。
- 在配置 GUI 中添加了 emf 16x 徽标以替换完整徽标。
- 改进了纹理覆盖,EMF 现在会删除冗余的纹理声明以提高运行时效率 (例如,忽略在
pig.jem
中声明的pig.png
,因为它是冗余的)。 - 修复了一些实体动画值在实体特征层渲染期间被重置且未正确恢复的问题。
[EMF] Entity Model Features 2.1.3
on 2024 Dec 01修复了在持有带有自定义模型的某些实体渲染器时的崩溃问题。
[EMF] Entity Model Features 2.1.3
on 2024 Dec 01修复了在手持某些带有自定义模型的实体渲染器时的崩溃问题。
[EMF] Entity Model Features 2.1.3
on 2024 Dec 01修复了在持有带有自定义模型的某些实体渲染器时的崩溃问题。
[EMF] Entity Model Features 2.1.2
on 2024 Dec 01[2.1.2]
- 修复了在使用 iris 且带有自定义玩家模型时,第一人称玩家阴影不动画的问题
- 修复了在手持三叉戟、箱子和其他带有纹理覆盖的自定义实体模型时的崩溃问题。
[EMF] Entity Model Features 2.1.2
on 2024 Dec 01[2.1.2]
- 修复了在使用虹膜并带有自定义玩家模型时,第一人称玩家阴影不动画的问题
- 修复了在持有三叉戟、箱子和其他带有纹理覆盖的自定义实体模型时的崩溃问题