zh_cn:tutorial:datagen_model
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
zh_cn:tutorial:datagen_model [2025/04/01 15:47] – [模型生成] solidblock | zh_cn:tutorial:datagen_model [2025/04/18 14:55] (current) – solidblock | ||
---|---|---|---|
Line 1: | Line 1: | ||
======模型生成====== | ======模型生成====== | ||
- | 我们知道,几乎每个物品都需要对应的**物品烘焙模型**(item baked model,以下简称物品模型),从 1.21.4 开始还需要**物品模型映射**(item models definition)。每个方块都需要**方块烘焙模型**(block baked model,以下简称方块模型)和**方块状态映射**(block states definition),还需要对应的物品烘焙模型或者物品模型映射。一个方块就有这么多大大小小复杂的 JSON 要文件。显然,一个个去制作太费神了。因此,我们使用数据生成器为方块和物品生成模型。 | + | 我们知道,几乎每个物品都需要对应的**物品烘焙模型**(item baked model,以下简称物品模型),从 1.21.4 开始还需要**物品模型映射**(item models definition)。每个方块都需要**方块烘焙模型**(block baked model,以下简称方块模型)和**方块状态映射**(block states definition),还需要对应的物品烘焙模型或者物品模型映射。一个方块就有这么多大大小小复杂的 JSON 文件。显然,一个个去制作太费神了。因此,我们使用数据生成器为方块和物品生成模型。 |
- | 在数据生成器中,模型和映射通常是一起生成的,通常来说,生成模型时返回一个模型 id,然后利用这个模型 id 去生成方块状态映射或物品模型映射。我们将从简单到复杂逐个开始。 | + | 在数据生成器中,模型和映射通常是一起生成的,通常来说,生成模型时返回一个模型 id,然后利用这个模型 id 会被方块状态映射或物品模型映射使用。我们将从简单到复杂逐个开始。 |
> :!: **注意:**我们在之前的教程中,在 '' | > :!: **注意:**我们在之前的教程中,在 '' | ||
Line 134: | Line 134: | ||
</ | </ | ||
- | > 在 1.21.4 及之前的版本中,不需要调用 '' | + | > 在 1.21.4 及之前的版本中,不需要调用 '' |
大功告成!我们就仅仅通过这么几行代码,成功地添加了楼梯和台阶所需要的一切模型、方块状态映射和物品模型映射! | 大功告成!我们就仅仅通过这么几行代码,成功地添加了楼梯和台阶所需要的一切模型、方块状态映射和物品模型映射! | ||
Line 140: | Line 140: | ||
===== 带有朝向的方块(以竖直台阶为例) ===== | ===== 带有朝向的方块(以竖直台阶为例) ===== | ||
- | 带有朝向的方块通常仅使用一个方块模型,但是在方块模型映射中,会映射到不同的模型变种,例如不同的 x 旋转、y 旋转以及 uvlock。(这些词是不是在之前手动写方块状态映射的 JSON 时有些熟悉?) | + | 带有朝向的方块通常仅使用一个方块模型,但是在方块状态映射中,会映射到不同的模型变种,例如不同的 x 旋转、y 旋转以及 uvlock。(这些词是不是在之前手动写方块状态映射的 JSON 时有些熟悉?) |
我们以 [[directionalblock]] 中创建的竖直台阶为例,通过数据生成器为其生成模型和方块状态映射。 | 我们以 [[directionalblock]] 中创建的竖直台阶为例,通过数据生成器为其生成模型和方块状态映射。 | ||
Line 146: | Line 146: | ||
==== 自定义模型 ==== | ==== 自定义模型 ==== | ||
- | 我们之前创建过一个 '' | + | 我们之前创建过一个 '' |
为了在数据生成器中继承此模板模型,我们需要为此模板模型创建 '' | 为了在数据生成器中继承此模板模型,我们需要为此模板模型创建 '' | ||
Line 174: | Line 174: | ||
重头戏来了——现在我们要为竖直台阶方块创建方块状态映射。其实没那么复杂,因为我们知道模型都是一样的,只需要有不同的旋转而已。 | 重头戏来了——现在我们要为竖直台阶方块创建方块状态映射。其实没那么复杂,因为我们知道模型都是一样的,只需要有不同的旋转而已。 | ||
- | 在 1.21.5 中,方块状态的对象是 '' | + | 在 1.21.5 中,方块状态映射是 '' |
* '' | * '' | ||
* '' | * '' | ||
对于 '' | 对于 '' | ||
- | * **方法一**:先指定一个模型变种,然后再根据方块状态修改其变种,如 x 旋转、y 旋转和 uvlock,各方块状态都使用同一模型 id,只是变种可能不同。 | + | * **方法一**:先指定一个模型变种,然后再根据方块状态修改其变种,如修改 |
* **方法二**:直接为不同的方块状态分配模型变种,然后仍可继续根据方块状态修改变种。这种情况下,各方块状态可以使用不同的模型 id。 | * **方法二**:直接为不同的方块状态分配模型变种,然后仍可继续根据方块状态修改变种。这种情况下,各方块状态可以使用不同的模型 id。 | ||
Line 220: | Line 220: | ||
在上面的方法一和方法二中,除了通过 '' | 在上面的方法一和方法二中,除了通过 '' | ||
- | 如果方块状态有多个属性,多个属性都会影响到模型变种,那么可以直接在 '' | + | 如果方块状态有多个可能会影响到模型变种的属性,那么可以直接在 '' |
zh_cn/tutorial/datagen_model.1743522446.txt.gz · Last modified: 2025/04/01 15:47 by solidblock