实体纹理动画
intermediate
通过本页面,您将学习如何为实体制作动态纹理,其运作方式类似于方块的翻页书纹理。
来源
本页面内容基于 AgentMindStorm 的创作。
纹理
首先,我们需要为实体绘制一些新的纹理帧。在本教程中,我们将以一头四处张望的牛为例。

我们需要将纹理垂直排列,就像方块的翻页书纹理一样。本例中我们使用了4帧。
动态材质
创建材质
本指南中我们需要修改材质。但由于渲染引擎Render Dragon的更新,材质系统已过时,因此使用时需自行承担风险。
要使用动态纹理,我们需要将实体材质更改为具有USE_UV_ANIM属性的材质。让我们简单添加一个新材质:
RP/materials/entity.material
json
{
"materials": {
"version": "1.0.0",
"custom_animated:entity": {
"+defines": ["USE_UV_ANIM"]
}
}
}或者您可以将其添加到现有材质中,请检查默认材质文件。
json
下载默认entity.material文件 "+defines": [
"USE_UV_ANIM"
]WARNING
并非所有实体都这么简单! 有些实体拥有多个材质,若要使其实体纹理动态化,您需要为该实体的所有材质添加此属性。
应用材质
继续之前,我们需要在客户端实体文件中定义新材质。
minecraft:client_entity > description
json
"materials": {
"default": "custom_animated"
}渲染控制器
完成上述步骤后,我们需要编辑渲染控制器。
在此我们将添加包含偏移量和缩放属性的uv_anim组件:
RP/render_controllers/cow.render_controllers.json > controller.render.cow
json
"uv_anim": {
"offset": [0, "math.mod(math.floor(q.life_time * frames_per_second), frame_count) / frame_count"],
"scale": [1, "1 / frame_count"]
}其中:
frames_per_second表示每秒要切换的帧数frame_count表示总帧数
这个公式会根据实体的存活时间计算纹理的偏移量和尺寸。
最终效果
现在可以测试您的创作成果了!





