diff --git a/src/docs/core-concepts/blueprints/zh-cn.md b/src/docs/core-concepts/blueprints/zh-cn.md new file mode 100644 index 00000000..d10f1215 --- /dev/null +++ b/src/docs/core-concepts/blueprints/zh-cn.md @@ -0,0 +1,211 @@ +--- +title: 蓝图 +description: 学习蓝图与其配置 +--- + +# 蓝图 + +## 蓝图是什么? + +**蓝图**(`.ajblueprint`)是 Animated Java 的 BlockBench 项目文件。它包含 Animated Java 构建绑定体所需的一切:模型、材质、动画、[变种](/docs/core-concepts/variants)、[材质槽位](/docs/core-concepts/texture-slots)与导出配置。 + +当蓝图[导出](/docs/core-concepts/exporting)时,Animated Java 将其转变为 **资源包** (模型与材质)与 **数据包** (在游戏内生成绑定体、播放动画并控制绑定体的命令)。 + +打开旧版本的蓝图时 Animated Java 将自动更新其版本。 `0.x` 版本的项目(`.ajmodel` 类型文件)也可以转换,见 [历史发布版本](/docs/resources/legacy-releases)。 + +--- + +## 蓝图设置 + +在菜单栏中点击 **Animated Java Blueprint Settings** 打开蓝图设置。设置界面被分为多个页面,有些界面仅在特定 [目标环境](#目标环境) 中出现。切换界面或关闭都会保存修改。 + +### 常规 + +- #### 目标环境 + + 你的模型在游戏中将如何运行: + + - **Datapack** :导出一个资源包与数据包。这是默认选项,也是这些文档大部分描述的情形。 + - **Plugin** :导出单独的 JSON 文件供服务器插件读取。数据包、资源包、绑定体与函数的界面都由 [插件](#插件) 页面替换。见 [插件导出](/docs/core-concepts/exporting#plugin-exports)。 + +- #### 蓝图名 + + 蓝图的名字。同时也作为文件名。 + +- #### 蓝图 ID + + 一个命名空间的 ID (例如 `my_pack:my_rig`) 标识了该蓝图。所有生成的函数、标签、存储与模型都将存于此 ID 下。 + + :::info[例子] + `my_pack:my_rig` 会将函数放置于 `data/my_pack/function/my_rig/`,所以你需要使用 `function my_pack:my_rig/summon` 生成它。 + ::: + + :::tip[提示] + 给每个蓝图设置单独的 ID。两个同 ID 的蓝图导出时会互相覆盖。 + ::: + + :::danger[限制] + + - 必须包含命名空间与路径,例如 `namespace:path`。 + - 命名空间只允许使用小写字母、数字与下划线。路径还可以使用 `/`。 + - 不能使用 `minecraft` 命名空间。 + - 不能使用 `animated_java:global`。 + + ::: + +- #### 目标 Minecraft 版本 + + 需导出的 Minecraft 版本,例如 `26.2` (默认) 或 `1.20.4`。Animated Java 支持 **1.20.4** 及以上。 + + 这将决定包如何生成与你可以使用哪些特性。例如: + + - [方块旋转](/docs/nodes/cubes#rotation-limitations) 在 1.21.11 版本前受限制。 + - [材质槽位](/docs/core-concepts/texture-slots) 命令、材质槽位帧与 [物品模型属性](/docs/configs/item-model-properties) 需要 1.21.4 及以上版本。 + - [使用实体堆叠](#使用实体堆叠) 只允许在 1.21.4 或更高版本关闭。 + + 修改后需重导出。 + +- #### 材质尺寸 + + UV 编辑器的分辨率。它需要与你使用的最大的材质尺寸相同且是 2 的整数次幂,否则 Animated Java 将会发出警告。 + +### 资源包 + +仅在目标环境选为 **Datapack** 时出现。 + +- #### 资源包导出格式 + + - **Folder**:将生成的文件放入已有的资源包文件夹。当项目正在制作时使用最佳。 + - **Zip**:将生成的文件打包为单独的 `.zip` 资源包。 + - **None**:不生成资源包。只在蓝图不包含方块时可用,例如仅使用 [物品展示](/docs/nodes/item-displays)、[方块展示](/docs/nodes/block-displays) 与 [文本展示](/docs/nodes/text-displays) 的模型。 + +- #### 资源包文件夹 / 压缩包 + + 写入资源包的位置。文件夹必须包含 `pack.mcmeta` 文件。压缩包路径必须指向 `.zip` 类型文件。 + +- #### 展示物品 + + 为了展示绑定体骨骼而被覆盖模型的物品。只在 1.21.2 版本以下可见。新版本使用 `minecraft:item_model` 物品组件代替,所以不需要覆盖物品。 + + 需选择一个模型的父级为 `minecraft:item/generated` 的物品,例如 `minecraft:white_dye` (默认)。不同的蓝图可以共用一个展示物品。 + +### 数据包 + +仅在目标环境选为 **Datapack** 时出现。 + +- #### 数据包导出格式 + + **Folder**、**Zip** 或 **None**,与 [资源包导出格式](#资源包导出格式) 相同。 + +- #### 数据包文件夹 / 压缩包 + + 写入数据包的位置。文件夹必须包含 `pack.mcmeta` 文件。压缩包路径必须指向 `.zip` 类型文件。 + +- #### 动画系统 + + 决定动画如何存储: + + - **Functions** (默认):为每一帧写一个函数。游戏内运行很快,但是会生成很多文件。 + - **Storage** :在 storage 中存储帧数据。生成的文件很少,但是运行稍慢。 + +### 绑定体 + +仅在目标环境选为 **Datapack** 且数据包已经导出过之后才出现。 + +- #### 自定义绑定体实体标签 + + 额外的标签,使用逗号分隔。生成绑定体时,它会被添加到该绑定体中的 **每一个** 实体。 + + :::note[例子] + `my_pack.boss, my_pack.hostile` + ::: + +- #### 插值时长 + + Minecraft 在动画帧之间平滑移动展示实体所需的刻数(即 NBT 标签 `interpolation_duration`)。更高的值看起来更平滑,但是反应更慢。默认为 `1`。 + +- #### 传送时长 + + Minecraft 传送绑定体的实体时,平滑移动它们所需的刻数(即 NBT 标签 `teleport_duration`)。 Minecraft 最高允许值为 `59`,默认为 `1`。 + +- #### 阴影半径 + + 根实体的阴影的半径。设为 `0`(默认)以禁用。 + +- #### 阴影强度 + + 根实体的阴影的黑暗程度。只在阴影半径大于 `0` 时有效。默认为 `1`。 + +- #### 自动更新绑定体方位 + + 当 **开启**(默认)时,绑定体每刻都会跟随其根实体:骨骼朝向跟随根实体,悬浮实体(定位器实体,摄像机与交互实体)移动到它们在绑定体中的位置。你可以通过传送根实体移动整个绑定体。开启会消耗较高性能。 + + 当 **关闭** 时,绑定体只会在你使用 [`move`](/docs/function-api/utilities#move) 命令时移动。对于不需要每刻移动的绑定体建议关闭。 + +- #### 使用实体堆叠 + + 当 **开启**(默认)时,每个骨骼实体都会骑乘根实体。你可以使用 `execute on passengers` 选中它们,但是它们的旋转角度会不太精确。 + + 当 **关闭** 时,骨骼实体会是相互独立的实体,需要每刻传送到对应位置。骨骼的旋转角度会非常精确,所以绑定体移动时会很平滑。使用 [`as_node`](/docs/function-api/utilities#as_node) 来将其作为骨骼移动。 + + 关闭该选项需要 Minecraft 1.21.4 及以上版本,旧版本始终使用堆叠。 + +### 事件函数 + +仅在目标环境选为 **Datapack** 才出现。 + +在绑定体生命周期内特定情况下运行的函数。其运行时的位置与执行实体为根实体。支持 [MC-Build](https://mcbuild.dev) 语法。 编写时格式与 `.mcfunction` 文件相同。 + +- #### 生成函数 + + 在 [`summon`](/docs/function-api/summon) 函数执行的结尾,所有节点都准备好之后调用。 + +- #### 移除函数 + + 在 [`remove/this`](/docs/function-api/remove#removethis) 函数执行的开头,绑定体的实体还未移除前调用。 + +- #### 刻前函数 + + 每刻都会调用。在 Animated Java 自己的逻辑运行 **之前** 调用。 + +- #### 刻后函数 + + 每刻都会调用。在 Animated Java 自己的逻辑运行 **之后** 调用。 + +### 插件 + +仅在目标环境选为 **Plugin** 才出现。 + +- #### JSON 文件 + + 导出 JSON 文件的位置。 + +- #### 烘焙动画 + + 开启时,每一帧动画都会提前计算并存储在 JSON 文件。关闭时,只有关键帧会存储在 JSON 文件,插件需要自己插值。 有些插件要求使用烘焙动画。 + +### 预览 + +添加外部的资源包到编辑器,可以在蓝图预览时显示其自定义字体、物品、方块模型与材质。预览包只影响编辑器:不会被导出,也不会替换蓝图自身的资源包。 + +- #### 预览资源包 + + 一个资源包列表,每个资源包需要为 `.zip` 或者含 `pack.mcmeta` 文件。在上方的资源包会覆盖下方的资源包,可以使用箭头调整位置。 + + 在修改包文件后需点击 **重加载预览** 以更新。 + +### 其它 + +渲染盒是 Minecraft 用来决定你的绑定体是否需要在屏幕内渲染的包围盒。如果它太小,根实体离开视线时,绑定体的某些部分可能会消失。 + +- #### 预览渲染盒 + + 在预览界面显示渲染盒。 + +- #### 自动匹配渲染盒 + + 为你的模型自动选择合适的渲染盒,推荐开启。 + +- #### 渲染盒尺寸 + + 渲染盒的尺寸大小,仅在关闭自动匹配渲染盒时可用。 diff --git a/src/docs/getting-started/installing/zh-cn.md b/src/docs/getting-started/installing/zh-cn.md new file mode 100644 index 00000000..f8f8173c --- /dev/null +++ b/src/docs/getting-started/installing/zh-cn.md @@ -0,0 +1,47 @@ +--- +title: 安装 Animated Java +description: 学习如何在 Blockbench 安装 Animated Java 插件。 +--- + +# 安装 Animated Java + +## 你需要的软件 + +- [Blockbench](https://blockbench.net/) 5.1.4 或更高版本。 +- [Minecraft: Java Edition](https://www.minecraft.net/en-us/download) 1.20.4 或更高版本。 + +## 从插件管理器中获取 + +1. 启动 Blockbench 并找到 **文件 插件…** 打开插件管理器。 + +  + +2. 搜索 "Animated Java"。 + +  + +3. 点击 **安装**。 + +## 从 URL 中获取 + +直接从 GitHub 安装最新发布版本: + +1. 打开插件管理器(**文件 插件…**)。 +2. 点击 **从 URL 加载插件**。 +3. 粘贴这个 URL: + + ``` + https://github.com/Animated-Java/animated-java/releases/latest/download/animated_java.js + ``` + +## 从文件获取 + +如果你下载了 `animated_java.js`: + +1. 打开插件管理器(**文件 插件…**)。 +2. 点击 **从文件加载插件**。 +3. 选择下载的 `animated_java.js` 文件。 + +:::warning[不兼容的插件] +有些 BlockBench 插件与 Animated Java 不兼容。如果你加载了这类插件,Animated Java 将弹出窗口列出它们,并提供禁用它们的按钮。 +::: diff --git a/src/docs/getting-started/your-first-blueprint/zh-cn.md b/src/docs/getting-started/your-first-blueprint/zh-cn.md new file mode 100644 index 00000000..dae85db4 --- /dev/null +++ b/src/docs/getting-started/your-first-blueprint/zh-cn.md @@ -0,0 +1,123 @@ +--- +title: 你的第一个蓝图 +description: 学习如何创建你的第一个蓝图并将它导出到 Minecraft。 +--- + +# 你的第一个蓝图 + +在这篇指南中我们将创建、导出并在 Minecraft 中生成一个旋转方块,这包含完整的 Animated Java 的工作流程。 + +## 前提条件 + +- 已经安装了 Animated Java。若没有安装请前往[安装 Animated Java](/docs/getting-started/installing)。 +- 一个 Minecraft 存档,且其 `datapacks` 文件夹中需要准备一个空的数据包。Minecraft 本体的 `resourcepacks` 文件夹中也需要准备一个空的资源包。它们都需要 `pack.mcmeta` 文件。 + +--- + +## 第一部分:创建蓝图 + +1. **创建新蓝图** + + 前往 **文件 新建 Blueprint**,或在开始界面选择 **Blueprint**。 + +2. **添加一个分组** + + 在大纲面板点击 **添加分组** 并重命名分组为 `cube_bone`。分组是绑定体的骨骼,它们决定哪些部分可以做动画。 + +3. **添加一个方块** + + 点击 **添加块** 并在大纲中将该块拖到 `cube_bone` 上。你可以随意调整其位置与大小。 + +4. **添加纹理** + + 在 **纹理** 面板创建或导入纹理,并将其应用到方块的每个面。 + +--- + +## 第二部分:配置蓝图 + +Animated Java 需要知道在什么地方导出包。 + +1. **打开 Blueprint 设置** + + 在菜单栏中点击 **Animated Java Blueprint Settings**。 + +2. **设定 Blueprint ID** + + 在 **General** 界面设定一个独一无二的 **Blueprint ID**,比如`my_pack:spinning_cube`。Animated Java 生成的所有实体与函数都将依赖此ID。 + +3. **设定 Minecraft 版本** + + 将 **Minecraft 版本**设为需要的版本,比如 `26.2`。 + +4. **选择资源包位置** + + 在 **Resource Pack** 页面,选择 format 为 **Folder** ,并将目录位置设为你的资源包文件夹(包含 `pack.mcmeta` 的文件夹)。 + +5. **选择数据包位置** + + 在 **Data Pack** 页面,选择 format 为 **Folder** ,并将目录位置设为你的存档中 `datapacks` 文件夹下的数据包文件夹。 + +6. **关闭界面** + + 切换或关闭设置界面时设置将自动保存。 + +--- + +## 第三部分:让它动起来 + +1. **切换到动画模式** + + 点击 Blockbench 右上角的**动画模式**。 + +2. **创建一个动画** + + 在**动画**面板点击 **+** 创建动画,将其命名为 `spin` 并将 **Loop Mode** 设为 **Loop**。 + +3. **添加旋转关键帧** + + 选中 `cube_bone`。在第 `0` 秒添加一个旋转关键帧,并将 Y 设为 `0`。将时间线移至后方任意时间点,添加旋转关键帧并将 Y 设为 `360`。 + +--- + +## 第四部分:导出与测试 + +1. **导出** + + 点击 **Animated Java Export (Debug)**,或按下 `Ctrl + E`, Animated Java 会将模型与材质导出到资源包;将函数导出到数据包。 + +2. **加载包** + + 在 Minecraft 中加载资源包(可以按下 `F3 + T` 重加载),然后运行命令 `/reload`。 + +3. **生成绑定体** + + 运行这个函数可以在玩家当前的位置生成朝向南方的方块: + + ```mcfunction + execute positioned ~ ~ ~ rotated 0 0 run function my_pack:spinning_cube/summon {args: {}} + ``` + + :::note[说明] + 将 `my_pack:spinning_cube` 替换为你自己的 Blueprint ID。 + ::: + +4. **播放动画** + + ```mcfunction + execute as @e[tag=my_pack.spinning_cube.root] run function my_pack:spinning_cube/animations/spin/play + ``` + +5. **移除绑定体** + + ```mcfunction + execute as @e[tag=my_pack.spinning_cube.root] run function my_pack:spinning_cube/remove/this + ``` + +--- + +## 后续步骤 + +- [蓝图](/docs/core-concepts/blueprints) 包含所有蓝图设置。 +- [变种](/docs/core-concepts/variants) 与 [材质槽位](/docs/core-concepts/texture-slots) 让一个绑定体显示不同外观。 +- [函数 API](/docs/function-api/summon) 列出了你可以在自己的数据包中调用的所有函数。 diff --git a/src/docs/welcome/zh-cn.md b/src/docs/welcome/zh-cn.md new file mode 100644 index 00000000..c34cd1de --- /dev/null +++ b/src/docs/welcome/zh-cn.md @@ -0,0 +1,54 @@ +
+