森罗万象
教程
OptiFine文档
Blockbench文档
论坛版 (opens new window)
下载示例 (opens new window)
教程
OptiFine文档
Blockbench文档
论坛版 (opens new window)
下载示例 (opens new window)
  • 属性文件说明
  • 连接纹理
  • 自然纹理
  • 更好的草地
  • 自定义方块渲染
  • 自定义物品纹理
  • 随机实体纹理
  • 自定义实体模型
  • 自定义动画
    • 概述丨Overview
    • 动态纹理丨Animated textures
    • 帧序和时长丨Frame order and timing
    • 参考文献丨References
  • 自定义颜色
  • 自定义天空
  • 自发光纹理
  • 动态光源
  • 自定义载入画面
  • 自定义GUI
  • 自定义全景图
  • 高清字体
  • 系统属性
  • 纹理属性
  • 光影

  • 调试快捷键
  • 尚未完成的事

自定义动画

Custom Animations

# 概述丨Overview

在 Minecraft 1.5 中,Mojang 添加了给任何方块或物品纹理添加动画的功能(此功能最初由 MCPatcher 提供)。 然而,无法为其他纹理添加动画,如生物皮肤和 GUI。 OptiFine 填补了这一空白,使任何任何矩形区域的纹理都可添加动画。 甚至包含 OptiFine 的其它功能所用到的特殊纹理,例如随机生物皮肤(random mob skins)和天空盒(skyboxes)。

方块和物品的纹理,包括 CTM 和 CIT,可以继续使用 Mojang 的 mcmeta 方法。

# 动态纹理丨Animated textures

要添加一个动画,首先要指定纹理,然后明确你想要添加动画的区域的 x 和 y 坐标以及宽度与高度。 并创建由帧组成的垂直带状图片(类似于胶卷,下面就用胶卷表述这个东西吧)作为动画的内容。 胶卷的宽度应该与选中区域的宽度相同,高度应该是选中区域的高度的整数倍。

新建一个属性文件,文件名随意。把它放到 assets/minecraft/optifine/anim 文件夹 或其任何子文件夹中。并将这些属性添加到文件中。

# 自定义动画
from=<动画的路径>
to=<想要动态化的纹理的路径>
x=<动态化区域的x坐标>
y=<动态化区域的y坐标>
w=<动态化区域的宽度>
h=<动态化区域的高度>
# 下面三项可选
duration=<按照刻计算的默认帧时长>
interpolate=<true|false>
skip=<要跳过的插入刻>

参阅属性文件说明,了解如何指定纹理的文件路径。

每个属性文件定义了一个简单的动画,每游戏刻(1/20秒)从上到下依次播放一帧,重复循环。

相同纹理的多个非重叠部分可以通过使用相同的 to 值和不同的 from、x、y、w、h 的值进行动画处理。 其时长以及帧序互相独立。

为获得最大的兼容性,最好令 x、y、w 和 h 为 16 的倍数。

# 帧序和时长丨Frame order and timing

每个自定义动画还可以指定其动画速度和帧序。在属性文件中,添加一系列条目

# 定义帧的时序(Frame timing)
# 第X帧使用胶卷中的第Y张图片
tile.X=Y
# 第X帧时长为Z游戏刻
duration.X=Z

X 从 0 开始,表示帧的顺序。Y 表示胶卷中的图片序号。第一张图片为 0,第二张为 1,以此类推。 Z 表示这一帧播放的持续时间,按照游戏刻计算(1游戏刻 = 1/20秒)。 如果省略 Z,持续时间为默认的帧时长,如未设置默认的帧时长,则为 1。

例如,胶卷的尺寸为 16x48(3帧)。让它进行一个 5 帧的循环,并在中间插入一个停顿, 属性文件看起来可能像这样:

# 播放5帧的动画
tile.0=0
tile.1=1
tile.2=2
duration.2=5
tile.3=1
tile.4=0

这个动画将会以如下顺序播放:

第 0 帧: 播放 0 号图片,持续 1 刻(默认时长)

第 1 帧: 播放 1 号图片,持续 1 刻(默认时长)

第 2 帧: 播放 2 号图片,持续 5 刻(duration=5)

第 3 帧: 播放 1 号图片,持续 1 刻(默认时长)

第 4 帧: 播放 0 号图片,持续 1 刻(默认时长)

返回第 0 帧

合计 5 帧,时长 9 游戏刻

# 参考文献丨References

https://bitbucket.org/prupe/mcpatcher/wiki/Custom_Animations (opens new window)

← 自定义实体模型 颜色设置 →