Files
netease-modsdk-wiki/docs/wiki/visuals/animated-entity-texture.md
2025-03-20 11:52:46 +08:00

3.0 KiB
Raw Permalink Blame History

title, mentions, tags, category
title mentions tags category
实体纹理动画
MedicalJewel105
IlkinQafarov
TheItsNameless
SmokeyStack
中级
巧思案例

实体纹理动画

本页内容

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

来源说明

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

纹理制作

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

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

材质配置

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

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

::: code-group

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

:::

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

::: code-group

"+defines":[
    "USE_UV_ANIM"
]

:::

<BButton link="/assets/packs/visuals/animated-entity-texture/entity.material" download color=default

下载默认entity.material文件

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

客户端实体配置

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

::: code-group

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

:::

渲染控制器设置

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

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

::: code-group

"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表示总帧数

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

效果测试

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

示例下载

<BButton link="https://github.com/Bedrock-OSS/wiki-addon/releases/download/download/animated_entity_texture.mcpack" color=blue

下载示例包