森罗万象
教程
OptiFine文档
Blockbench文档
论坛版 (opens new window)
下载示例 (opens new window)
教程
OptiFine文档
Blockbench文档
论坛版 (opens new window)
下载示例 (opens new window)
  • 准备
  • 基础
  • 动态纹理(前篇)
    • 相关视频
  • 模型和渲染
  • 额外的资源文件
  • 音效
  • 语言和文字

  • OptiFine与MCPatcher
  • CTM
  • CIT
  • CEM
  • 动态纹理(后篇)
  • 光与色

  • 环境
  • GUI
  • PBR纹理
  • 着色器/光影
  • 附录

# 动态纹理(前篇)

自己动手做一台老式放映机,放一场默片老电影_胶片

动态纹理就像老式电影的胶卷一样,实际上是逐帧绘制,竖向连接成长条的单张图案。在游戏中,自上而下逐帧播放,反复循环。一共有多少帧,每一帧播放多长时间,都是可以自定义的。

image-20200709190728020

提示

因为最后一帧之后紧接着就是第一帧,所以开头和结尾最好要能接上。

我们要用上图展示的蓝色呼吸灯替换原版的淡蓝色混凝土。

首先,将纹理命名为light_blue_concrete.png,替换掉原先的混凝土纹理。然后在旁边新建文件,命名为light_blue_concrete.png.mcmeta,并向文件中写入如下代码:

{
    "animation": {
        
    }
}
展开查看效果(闪烁图案警告)

img

闪烁过快,我们需要调慢闪烁速度。

将代码更改如下:

{
    "animation": {
        "frametime": 3
    }
}

在这段代码中我们添加了frametime,frametime表示纹理的每一帧持续的时间(单位为0.05秒),默认值为1,也就是说一秒可以播放20帧,我们把它放慢三倍。

我们看到纹理的变化柔和了许多。

展开查看效果(辣眼GIF警告)

img

接下来我们注意到这张纹理是上下对称的,下面的四张纹理显得有些浪费,可以把这四张纹理给去掉。

image-20200712092435178

然后我们要修改一下mcmeta文件:

light_blue_concrete.png.mcmeta

{
    "animation": {
        "frametime": 3,
        "frames": [0,1,2,3,4,5,4,3,2,1]
    }
}

"frames"里填写帧播放的次序,最上面的一帧是第0帧,我让它先从0帧播放到5帧,再倒着从5帧返回0帧了。

提示

动态纹理的更多写法请看wiki (opens new window)

# 巧用动态纹理制作四季效果

参考3D Seasons (opens new window)资源包。

// TODO

# 相关视频

← 资源包的文件夹结构 建模相关教程 →