Skip to content

实体纹理动画

本页面镜像自
BedrockWiki

根据原始项目协议授权。本文经过AI翻译处理,如有内容遗漏,可以提交PR进行补充。

本页内容

通过本教程你将学会如何为实体制作动态纹理。这种动画效果类似于方块的翻书动画纹理(Flipbook)。

来源说明

本教程内容基于 AgentMindStorm 的原创作品。

纹理制作

首先我们需要为实体绘制若干关键帧纹理。本教程将以四处张望的牛作为示例。

牛的动画帧示例

与方块的翻书动画类似,我们需要将纹理帧进行纵向排列。本示例共使用4帧动画。

材质配置

在本指南中我们需要修改材质文件。但由于Render Dragon渲染引擎的更新,传统材质系统已过时,请自行评估使用风险

要实现动态纹理,需要将实体材质更改为具有USE_UV_ANIM属性的类型。我们可以通过添加新材质实现:

json
{
    "materials":{
        "version":"1.0.0",
        "custom_animated:entity":{
            "+defines":[
                "USE_UV_ANIM"
            ]
        }
    }
}

或者可以将该属性添加到现有材质中(参考默认材质文件):

json
"+defines":[
    "USE_UV_ANIM"
]
下载默认entity.material文件

WARNING

注意:并非所有实体都适用简单修改! 部分实体包含多种材质类型,若需要实现全身纹理动画,必须为实体使用的所有材质添加此属性。

客户端实体配置

在继续之前,我们需要在客户端实体文件中指定新材质:

json
"materials": {
	"default": "custom_animated"
}

渲染控制器设置

完成上述步骤后,需要编辑渲染控制器:

在此我们将添加带有偏移量和缩放属性的uv_anim组件:

json
"uv_anim": {
    "offset": [ 0.0, "math.mod(math.floor(q.life_time * frames_per_second),frame_count) / frame_count" ],
    "scale": [ 1.0, "1 / frame_count" ]
}

其中:

  • frames_per_second表示每秒播放的帧数
  • frame_count表示总帧数

该公式会根据实体的存活时间自动计算纹理偏移量和缩放比例。

效果测试

现在可以测试你的动画效果了!

示例下载

下载示例包