更新 Docs/DefineType/DrawingOrderDef.md
This commit is contained in:
@ -1,75 +1,57 @@
|
|||||||
XML 渲染层级定义文档
|
# XML 渲染层级定义文档
|
||||||
|
|
||||||
概述
|
## 概述
|
||||||
|
|
||||||
本文档介绍如何使用 XML 定义游戏对象的渲染层级结构。通过 DrawingOrder 可以创建树形结构的渲染顺序定义,defName 用于唯一标识定义,DrawNode 则定义了各个渲染节点及其层级关系。
|
本文档介绍如何使用 XML 定义游戏对象的渲染层级结构。通过 `DrawingOrder` 可以创建树形结构的渲染顺序定义,`defName` 用于唯一标识定义,`DrawNode` 则定义了各个渲染节点及其层级关系。
|
||||||
|
|
||||||
基本结构
|
## 基本结构
|
||||||
|
|
||||||
|
```xml
|
||||||
<DrawingOrderDef>
|
<DrawingOrderDef>
|
||||||
<defName>唯一标识名称</defName>
|
<defName>唯一标识名称</defName>
|
||||||
<DrawNodeDef name="根节点名称" [属性]>
|
<DrawNodeDef name="根节点名称" [属性]>
|
||||||
<!-- 子节点定义 -->
|
<!-- 子节点定义 -->
|
||||||
</DrawNodeDef>
|
</DrawNodeDef>
|
||||||
</DrawingOrderDef>
|
</DrawingOrderDef>
|
||||||
|
```
|
||||||
|
|
||||||
|
## 元素说明
|
||||||
|
|
||||||
元素说明
|
### DrawingOrderDef
|
||||||
|
- 根元素,表示一个完整的渲染层级定义
|
||||||
|
- 必须包含一个 `defName` 子元素和至少一个 `DrawNodeDef` 子元素
|
||||||
|
|
||||||
DrawingOrderDef
|
### defName
|
||||||
|
- 定义该渲染层级的唯一标识名称
|
||||||
|
- 在其他系统中可以通过此名称引用该定义
|
||||||
|
|
||||||
• 根元素,表示一个完整的渲染层级定义
|
### DrawNodeDef
|
||||||
|
- 定义一个渲染节点
|
||||||
|
- 可以包含其他 `DrawNodeDef` 作为子节点,形成树形结构
|
||||||
|
- 属性:
|
||||||
|
- `name`:节点名称(必需)
|
||||||
|
- `type`:节点类型(可选,默认为"image")
|
||||||
|
- `image`:静态图片
|
||||||
|
- `animation`:动画序列
|
||||||
|
- `position`:节点位置偏移(可选,格式为"x,y")
|
||||||
|
- `FPS`:动画播放速度(仅对动画类型有效,可选)
|
||||||
|
|
||||||
• 必须包含一个 defName 子元素和至少一个 DrawNodeDef 子元素
|
## 节点类型详解
|
||||||
|
|
||||||
defName
|
### 1. 静态图片节点 (type="image")
|
||||||
|
- 表示一个静态的图片元素
|
||||||
|
- 不需要额外属性(除基本属性外)
|
||||||
|
|
||||||
• 定义该渲染层级的唯一标识名称
|
### 2. 动画节点 (type="animation")
|
||||||
|
- 表示一个动画序列
|
||||||
|
- 可选属性:
|
||||||
|
- `FPS`:定义动画播放速度(帧/秒)
|
||||||
|
|
||||||
• 在其他系统中可以通过此名称引用该定义
|
## 材质资源组织
|
||||||
|
|
||||||
DrawNodeDef
|
|
||||||
|
|
||||||
• 定义一个渲染节点
|
|
||||||
|
|
||||||
• 可以包含其他 DrawNodeDef 作为子节点,形成树形结构
|
|
||||||
|
|
||||||
• 属性:
|
|
||||||
|
|
||||||
• name:节点名称(必需)
|
|
||||||
|
|
||||||
• type:节点类型(可选,默认为"image")
|
|
||||||
|
|
||||||
◦ image:静态图片
|
|
||||||
|
|
||||||
◦ animation:动画序列
|
|
||||||
|
|
||||||
• position:节点位置偏移(可选,格式为"x,y")
|
|
||||||
|
|
||||||
• FPS:动画播放速度(仅对动画类型有效,可选)
|
|
||||||
|
|
||||||
节点类型详解
|
|
||||||
|
|
||||||
1. 静态图片节点 (type="image")
|
|
||||||
|
|
||||||
• 表示一个静态的图片元素
|
|
||||||
|
|
||||||
• 不需要额外属性(除基本属性外)
|
|
||||||
|
|
||||||
2. 动画节点 (type="animation")
|
|
||||||
|
|
||||||
• 表示一个动画序列
|
|
||||||
|
|
||||||
• 可选属性:
|
|
||||||
|
|
||||||
• FPS:定义动画播放速度(帧/秒)
|
|
||||||
|
|
||||||
材质资源组织
|
|
||||||
|
|
||||||
自动路径匹配
|
|
||||||
|
|
||||||
|
### 自动路径匹配
|
||||||
1. 在定义包下创建资源文件夹结构:
|
1. 在定义包下创建资源文件夹结构:
|
||||||
|
```
|
||||||
包目录/
|
包目录/
|
||||||
└── Resource/
|
└── Resource/
|
||||||
└── 类型名/
|
└── 类型名/
|
||||||
@ -82,10 +64,10 @@ DrawNodeDef
|
|||||||
│ ├── down.png
|
│ ├── down.png
|
||||||
│ └── ...
|
│ └── ...
|
||||||
└── ...
|
└── ...
|
||||||
|
```
|
||||||
|
|
||||||
2. 对于动画节点:
|
2. 对于动画节点:
|
||||||
|
```
|
||||||
节点名称/
|
节点名称/
|
||||||
├── down_1.png
|
├── down_1.png
|
||||||
├── down_2.png
|
├── down_2.png
|
||||||
@ -93,14 +75,14 @@ DrawNodeDef
|
|||||||
├── left_1.png
|
├── left_1.png
|
||||||
├── left_2.png
|
├── left_2.png
|
||||||
└── ...
|
└── ...
|
||||||
|
```
|
||||||
|
|
||||||
手动路径指定
|
### 手动路径指定
|
||||||
|
- 可以通过 `CharacterDef` 手动指定资源路径(本文档不详细介绍)
|
||||||
|
|
||||||
• 可以通过 CharacterDef 手动指定资源路径(本文档不详细介绍)
|
## 示例解析
|
||||||
|
|
||||||
示例解析
|
|
||||||
|
|
||||||
|
```xml
|
||||||
<DrawingOrderDef>
|
<DrawingOrderDef>
|
||||||
<defName>CatGirl_down</defName>
|
<defName>CatGirl_down</defName>
|
||||||
<DrawNodeDef name="body">
|
<DrawNodeDef name="body">
|
||||||
@ -114,30 +96,22 @@ DrawNodeDef
|
|||||||
<DrawNodeDef name="clothes"/>
|
<DrawNodeDef name="clothes"/>
|
||||||
</DrawNodeDef>
|
</DrawNodeDef>
|
||||||
</DrawingOrderDef>
|
</DrawingOrderDef>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 结构说明
|
||||||
结构说明
|
|
||||||
|
|
||||||
1. 定义了一个名为 "CatGirl_down" 的渲染层级
|
1. 定义了一个名为 "CatGirl_down" 的渲染层级
|
||||||
2. 根节点为 "body"
|
2. 根节点为 "body"
|
||||||
3. "body" 包含两个子节点:
|
3. "body" 包含两个子节点:
|
||||||
• "head":头部节点,包含多个子部件
|
- "head":头部节点,包含多个子部件
|
||||||
|
- "backHair":后发
|
||||||
◦ "backHair":后发
|
- "ear":耳朵(动画类型,1 FPS)
|
||||||
|
- "face":脸部
|
||||||
◦ "ear":耳朵(动画类型,1 FPS)
|
- "frontHair":前发
|
||||||
|
- "hat":帽子
|
||||||
◦ "face":脸部
|
- "clothes":服装
|
||||||
|
|
||||||
◦ "frontHair":前发
|
|
||||||
|
|
||||||
◦ "hat":帽子
|
|
||||||
|
|
||||||
• "clothes":服装
|
|
||||||
|
|
||||||
对应的资源文件夹结构
|
|
||||||
|
|
||||||
|
|
||||||
|
### 对应的资源文件夹结构
|
||||||
|
```
|
||||||
Resource/
|
Resource/
|
||||||
└── Character/
|
└── Character/
|
||||||
└── CatGirl/
|
└── CatGirl/
|
||||||
@ -159,29 +133,31 @@ Resource/
|
|||||||
│ └── down.png
|
│ └── down.png
|
||||||
└── clothes/
|
└── clothes/
|
||||||
└── down.png
|
└── down.png
|
||||||
|
```
|
||||||
|
|
||||||
|
## 高级用法
|
||||||
|
|
||||||
高级用法
|
### 位置偏移
|
||||||
|
可以为节点添加 `position` 属性来定义相对偏移:
|
||||||
|
|
||||||
位置偏移
|
```xml
|
||||||
|
|
||||||
可以为节点添加 position 属性来定义相对偏移:
|
|
||||||
<DrawNodeDef name="weapon" position="10,-5">
|
<DrawNodeDef name="weapon" position="10,-5">
|
||||||
<DrawNodeDef name="effect" position="5,0" type="animation" FPS="12"/>
|
<DrawNodeDef name="effect" position="5,0" type="animation" FPS="12"/>
|
||||||
</DrawNodeDef>
|
</DrawNodeDef>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 混合类型
|
||||||
混合类型
|
|
||||||
|
|
||||||
可以在同一个层级中混合使用静态和动画节点:
|
可以在同一个层级中混合使用静态和动画节点:
|
||||||
|
|
||||||
|
```xml
|
||||||
<DrawNodeDef name="character">
|
<DrawNodeDef name="character">
|
||||||
<DrawNodeDef name="body"/>
|
<DrawNodeDef name="body"/>
|
||||||
<DrawNodeDef name="weapon" type="animation" FPS="8"/>
|
<DrawNodeDef name="weapon" type="animation" FPS="8"/>
|
||||||
<DrawNodeDef name="aura" type="animation" FPS="24"/>
|
<DrawNodeDef name="aura" type="animation" FPS="24"/>
|
||||||
</DrawNodeDef>
|
</DrawNodeDef>
|
||||||
|
```
|
||||||
|
|
||||||
|
## 注意事项
|
||||||
注意事项
|
|
||||||
|
|
||||||
1. 节点名称在同一层级中必须唯一
|
1. 节点名称在同一层级中必须唯一
|
||||||
2. 动画节点的 FPS 值应大于 0
|
2. 动画节点的 FPS 值应大于 0
|
||||||
|
Reference in New Issue
Block a user