formation_stroke_type(阵法笔画类型)
formation_stroke_type
阵法图形的 strokes 里每一项的 type 从这一族里选一个 ID:type 决定这一笔怎么画,几何是它自己的字段。只有两种——渲染器按角度走一个圆、按弧长走一条折线,没有第三种走法——所以这一族数据包不能新增。
type | 画法 | 自己的字段 |
|---|---|---|
mxt:circle | 从 start_angle 起绕一圈 | radius、center、start_angle |
mxt:polyline | 从第一个点走到最后一个点 | points |
两种笔画都另有五个共有字段:
| 字段 | 类型 | 默认 | 说明 |
|---|---|---|---|
color | 颜色,或 2~16 个 {"at": …, "color": …} | 必填 | 整笔一个颜色,或沿这一笔自己长度的渐变,见阵法图形的「每笔自己的颜色」。 |
spacing | 数值 0.01..64 | 0.33 | 相邻两个尘埃之间多少格,见「笔画的疏密与尘埃大小」。 |
size | 数值 0.01..4 | 2 | 一个尘埃画多大。 |
start | 数值 0..1 | 0 | 这一笔从图形进度的哪个位置开始画。 |
end | 数值 0..1 | 1 | 画到哪个位置结束。必须大于 start。 |
color 必须写,而且一个字段只有一种写法:纯色与渐变不会同时出现;start / end 是生长那一节说的窗口。坐标与单位见那一页的「坐标与起点」。
mxt:circle
从 start_angle 起、按角度增加的方向绕一整圈。一圈的长度是 2π × radius,生长按这个长度截断。
| 字段 | 类型 | 默认 | 说明 |
|---|---|---|---|
radius | 数值 | 必填 | 半径,单位是阵列半径,必须大于 0。写 1 就是阵列自己的那个环。 |
center | [x, z] | [0, 0] | 圆心,单位同上。省略就是阵心;写到别处时这一笔可以不在阵心上。 |
start_angle | 数值 -360..360 | 0 | 起笔处的角度,度数,相对正东(+X)朝 +Z(南)为正。写 90 就是从南边起笔。 |
json
{"type": "mxt:circle", "radius": 1, "color": "#80c0ff"}
{"type": "mxt:circle", "radius": 0.5, "center": [0.3, -0.2], "start_angle": 90, "color": "#80c0ff"}mxt:polyline
从第一个点依次走到最后一个点,长度按各段相加。两点起,写多少点都行(上限 4096);最后一点与第一个点相同就是闭合图形。
| 字段 | 类型 | 默认 | 说明 |
|---|---|---|---|
points | [x, z] 数组 | 必填 | 2~4096 个点,坐标是阵列半径的倍数。 |
json
{"type": "mxt:polyline", "points": [[1, 0], [0.309, 0.951], [-0.809, 0.588], [-0.809, -0.588], [0.309, -0.951], [1, 0]], "color": "#80c0ff"}点的顺序就是生长方向:这一笔从 points 的第一个点开始长,所以想让它换个方向长,把数组倒过来写。