BallanceBlenderTutorial/main.md
2022-04-24 13:28:36 +08:00

263 lines
27 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 适用于Blender的Ballance制图手册
<small>yyc12345入吧9周年&退吧版本</small>
## <span id="jump-1">写在前面</span>
### 作者想说的
目前的Ballance制图教程基本都是基于3ds Max的并且没有英文版本。这阻碍了更多人创作Ballance UGC内容。
因此我想在这里介绍一个全新的制图流程使用Blender进行Ballance制图并给出相应的英文教程以惠及所有的Ballance玩家。
### 此教程面向的人
* 有一定制图技术的人例如已经尝试过Virtools制图和3ds Max制图的人
* 会玩一点点Virtools的人但是还不知道怎么制图
* 具有**自主学习能力**的制图新手
### 此教程不适合的人
* 我要学制图,那你能帮帮我嘛
* 怎么没有隔壁Ballex那样的制图器
* 这东西怎么那么复杂
* 这好难啊
* 我看不懂英语,没有汉化版本么
* 怎么连3ds Max里的xx功能都没有太垃圾了
## <span id="jump-2">目录</span>
1. [写在前面](#jump-1)
1. [目录](#jump-2)
1. [在开始制图前](#jump-3)
1. [安装插件](#jump-4)
1. [关卡基本构造](#jump-5)
1. [Blender - 添加路面](#jump-6)
1. [Blender - 添加钢轨](#jump-7)
1. [Blender - 添加机关](#jump-8)
1. [Blender - 杂项](#jump-9)
1. [Virtools - 基本操作](#jump-10)
1. [Virtools - 脚本](#jump-11)
1. [Blender经验公式](#jump-12)
1. [Virtools经验公式](#jump-13)
1. [过时软件与不适用软件介绍](#jump-14)
1. [最新勘误](#jump-15)
1. [结语](#jump-16)
## <span id="jump-3">在开始制图前</span>
### 基本概念
在进行制图前我们需要对一些基本概念进行了解。首先Ballance是以Virtools 2.1为基础进行制作的而Virtools是一个引擎不是一个模型制作器这意味
* 如果想要制作Ballance可以读取的关卡最后的步骤一定是用Virtools处理成Ballance可接受的格式。
* 没法用Virtools制作新的模型。如果不使用任何其他的软件那么只能利用原版关卡的一些结构来制作新的关卡。
因此我们需要一个3D建模软件来为我们的关卡创造全新的模型。然后再将我们创建好的模型导入到Virtools中来制作关卡。然而Virtools 2.1是一个非常古老的版本现在根本没有它的可用版本我们已经咨询过Virtools的公司Dassault这意味着
* 我们只用利用更新的Virtools版本来进行地图制作Virtools 2.5, 3.0, 3.5。Virtools 4.0及以后的版本不可以用于地图制作。
* 可以导入到Virtools中的模型格式十分有限且体验也不是十分好经常会出现缺失东西的情况。
* 进一步限制了可用的3D建模软件因为我们需要将模型导入Virtools如果不能导入则此建模软件就不能使用。
目前大家都在使用一个Max2Virtools的3ds Max插件来进行制作这个插件可以将3D物体直接导出为Virtools原生的格式。Max2Virtools是发行Virtools的公司Dassault所制作的用于辅助Virtools使用的3ds Max插件因为可以直接安装在3ds Max上而且可以直接导出Virtools的默认文档格式因而在制图初期受到广大制作者青睐并在如今仍然在使用。以上就是你经常会在Ballance制图中听到的一些概念。
### 为什么选择Blender
3ds Max的价格令一般人望而却步最新版价格为1500美元/年Autodesk也采用了“软件即服务”的销售方式。但是Blender是一款不需要用户付费就可以合法使用、而且和3ds Max一样强大的建模软件但一直被忽略了。通过将Blender变成可以用于制图的软件可以彻底甩掉任何可能的法律责任。虽然我们已经非法使用了Virtools3ds Max可以用于制图的版本也有破解器可以用但是与其背负一个沉重的法律包袱不如去选择一个没有法律包袱的东西。相信它Blender并不比3ds Max差在某些方面来说它甚至更直观尤其是对于Ballance这种非常规则的模型的建立。如果你曾被Ballance的3ds Max制图视频中如同咒语和叠罗汉一般的修改器指令感到恐惧并希望寻求一个替代产品的话Blender将是你不二的选择。通过简单认识到计算机对于三维图形的表达形式可以简单理解为三角面理论上你就可以在Blender里捏出你想要的任何物体。
此外Blender的插件系统也非常地亲近用户选择了Python作为插件语言而不是像3ds Max那样还需要用C++配上专用的库才能编写插件这使得插件的迭代可以很快并且高级用户还可以自己定义方便自己操作的插件。来自开放世界的力量将会通过网络来指导你攻破操作软件时的每一个困惑之处。但需要注意这个教程并不会教授你如何对Blender进行基本操作只会在这里列出一些常用操作的方法和制作Ballance关卡所需要的技术其他技术还需要你自行参悟。
### Blender制图的工作流
正如基本概念中所述我们使用Blender作为3D建模软件在最后处理的部分使用Virtools进行期间两者的文件交换由BMX文件于下文进行叙述和2个插件来承担它们分别是
* BallanceBlenderHelper也称BallanceBlenderPlugin
* BallanceVirtoolsHelper也称BallanceVirtoolsPlugin
#### BallanceBlenderHelper
BallanceBlenderHelper正如其名它是一个Blender插件它主要的功能是
* 导入导出BMX文件
* 快速插入一些Ballance中的常见机关路面和钢轨
* 提供一些Blender不提供隐藏比较深或更加贴合Ballance制图的操作
我们在Blender中主要的操作当然是建模建立属于我们自己的关卡模型而不是被动利用原有关卡的结构。当然制图技术发展至今我们也采取了更加方便的模式也就是3ds Max制图经常采用的模式在3D制图软件中一次性做好导出到Virtools然后做一些小处理仅针对普通地图对于需要依靠大量脚本操作的地图导出后还需要在Virtools里做很多工作。就可以完成地图的制作。
#### BallanceVirtoolsHelper
BallanceVirtoolsHelper是一个可以用于Virtools 3.5的插件,当然,也可以重新编译让它可以用于其他版本。它具有以下功能:
* 导入导出BMX文件
* 归组,材质和常见错误的修复
* 一些便捷小工具(例如切换编码等)
在Virtools中需要的操作并不多尤其是在地图测试的时候只有在地图最终发布时才需要借由chirs241097发明的地图内置脚本技术插入脚本执行。其余大多数情况只需要导入然后让插件自动处理一些事情即可。这些部分的操作将会在后文介绍此处仅仅是介绍一下。
### BMX文件
通常来说3D建模软件所拥有的功能以及其存档文件中存储的数据其内容远超Ballance所需过分的解读这些文件费时费力也不容易进行适配。相反一些通用文件交换格式支持的特性太少一些重要的Ballance地图数据无法被准确储存。因此一个为了Ballance地图制作的通用的特化的文件格式就此产生也就是BMX文件。它几乎包括了所有你会在Ballance地图编辑中会用到内容而不包含任何多余的内容。
此外BMX文件使用一个标准描述文档来描述自身的格式其独立于所有格式之外是Ballance团体自主可控的我们可以根据这个独立的标准为各个3D建模软件编写导入导出插件便可以让Ballance地图可以被任何3D软件所接受。达到了以一个文件格式适配所有3D软件的目标。举例如果有人写出了可以在3ds Max中导入导出BMX文件的插件那么Ballance地图可以在3ds MaxVirtools和Blender之间畅通无阻地进行转化。
然而就目前而言BMX只能被Virtools和Blender所接受其对应的导入导出插件在上文已叙述。如果你对编程很感兴趣并且愿意将BMX文件带到其它的平台上可以尝试自己编写对应的插件来让BMX可以做到更多。
## <span id="jump-4">安装插件</span>
## <span id="jump-5">关卡基本构造</span>
在最初的设计上Ballance本身并不支持用户自定义关卡我们能够玩上我们的自定义关卡是因为我们摸索出了游戏关卡的结构然后通过遵守和仿制这个结构然后替换游戏原本的关卡文件让游戏误以为它在读取原作者的关卡。正因为如此我们在制作一个关卡的时候有一些必须要遵守的东西例如设计规则等如果我们不遵守那么游戏很大概率会拒绝加载。
### 出生点,盘点,重生点与终点
出生点四个火焰和终点飞船是一个关卡必须的两个元素。作用于第一小节的重生点也是必须的通常情况下和出生点放在一起。此外根据之前制图教程的建议盘点两个火焰也至少需要有1个即至少需要两个小节尽管单小节的地图文件可以被游戏接受并加载运行但是一些人说这样做会有一些问题。
需要注意的是终点就是飞船本身。而出生点盘点仅仅是那几团火和通过一小节的判定点重生点也仅仅是球重生的位置其与下方可以与球进行碰撞的不动物体例如路面等没有任何关系这点与Ballex不同也是很多新制图人会搞混的东西。此外出生点盘点重生点彼此分离也就意味着小节的通过判定点和重生点可以不一样尽管它们基本上都在一起事实上也理应在一起这在一些地图主要是早期地图也有比较近代的地图中被用于远距离传送比如2010年代的开头。
### 不动物体
[路面](https://ballance.jxpxxzj.cn/wiki/%E8%B7%AF%E9%9D%A2)[木板](https://ballance.jxpxxzj.cn/wiki/%E6%9C%A8%E6%9D%BF)和[钢轨](https://ballance.jxpxxzj.cn/wiki/%E9%92%A2%E8%BD%A8),在游戏中被设定为不可动物体。这些不可动物体并不是必须的,你也可以创建一个没有任何不可动物体的关卡。
### 机关
[机关](https://ballance.jxpxxzj.cn/wiki/%E6%9C%BA%E5%85%B3)是指Ballance中出现的各类道具它们可以和玩家球产生互动在影响玩家球的同时玩家球也可以影响机关。同样机关也不是必须的。
### 装饰
[装饰](https://ballance.jxpxxzj.cn/wiki/%E8%A3%85%E9%A5%B0)不会与玩家球进行任何物理运算,如果使用一些作弊模式,那么球将会表现为直接穿过。通常来说,灯柱等都是如此,当然也有一些地图将灯柱布置在道路上并将其设定为不动物体。装饰也不是必须的,但通常而言,装饰可以让地图更美观,以及不会显得空荡,一般是制图最后修缮时才会涉及到装饰的添加。
### Stopper
[Stopper](https://ballance.jxpxxzj.cn/wiki/Stopper/zh)通常指T板推板附近与道路连接的小垫片。这些垫片只能与机关计算物理碰撞而不会与玩家计算物理碰撞如果玩家球触碰其效果和装饰一样。
### 互相转换
出生点盘点重生点终点以及机关这些都是游戏内置的东西不建议进行替换。而不动物体Stopper机关这三者可以被视为一个物体是否具有物理碰撞的3种状态可以根据需要通过归组的手法后文会介绍在这三者之间来回转换。举例钢轨可以被设定为Stopper然后只有道具球才可以行走灯柱可以被设定为不动物体让它阻碍玩家的通行。这三者需要结合起来进行记忆。
## <span id="jump-6">Blender - 添加路面</span>
路面是Ballance中最为重要的一种物体您可以在大多数关卡中见到它。本章节中的路面仅指代普通的路面对于类似于[Modul_15](https://ballance.jxpxxzj.cn/wiki/Modul_15)以及出生点盘点这种特殊路面,请参考添加机关章节。
路面的制作方法自自制地图创始以来就一直在被所有制图者进行研究目前主要有3种流派
1. 用原版路面或原版1x1路面做微分法的拼接法
1. 使用外部工具BMMaker或MapEditor进行预先绘制后导出为脚本批量生成
1. 直接建模
三种方法中拼接法最简单但限制最多限制制图者的创造力。而外部工具由于其实现特性会出现生成时卡机制作后冗余顶点过多只能制作直来直去的路面的缺陷。只有直接建模法是Ballance路面制作的最终出路是最自由的最能发挥制图者创造天赋的方法也是我们需要关注和介绍的方法。
直接建模法最重要的两点根据我的经验是生成对应形状以及贴图匹配。目前在Blender中对于路面建模的操作还是比较丰富的在BallanceBlenderHelper的加持下我们可以通过BallanceBlenderHelper内的BMERevenge模块批量生成较为规整的路块这些路块具有自定义程度高以及几乎没有冗余顶点的特点。同时BallanceBlenderHelper也支持直接建模方法并提供了进行快速材质贴图的功能。
### 使用BMERevenge添加路面
BMERevenge是内置于BallanceBlenderHelper的一个全新的路面生成模块正如其名字BMERevenge是Ballance Map Editor的上位替代在实现Ballance Map Editor原有功能的情况下具有更多更好的特性。您可以在`添加 - Floors`中立即添加BMERevenge所提供的任意一种路面。其中Basic floors是指构成路面的最基本模块包括三种变球器平凹转换路面以及平路面和凹路面的最小单元。而Derived floor则是一系列基于Basic floor组合而成的组合路面包括路面转角路面以及平台等多种非常便捷的路面类型。通常来说只需要根据自身需要来选择合适的路面点击设定参数点击确定即可生成。
下图展示了添加路面的参数设置页面,以及不同参数的生成对比。
Basic param部分是基础参数类型Type表明了生成路面的类型如果您在添加菜单中点错了按钮也可以在这里切换成正确的路面。高度指定了生成的路面的高度小于1的数值可以生成类似于[魔虬](https://ballance.jxpxxzj.cn/wiki/%E9%AD%94%E8%99%AC)中的薄路面。而大于1的数值则可以生成类似[魔脓空间站](https://ballance.jxpxxzj.cn/wiki/%E9%AD%94%E8%84%93%E7%A9%BA%E9%97%B4%E7%AB%99)中,具有非常高的侧面的路面。
扩展Expand部分是指定了这个路面的延展方向。Expand mode指明了这个路面的延展模式。Freedom表示这个路面可以向2个方向自由延展因此会具有两个延展数值D1和D2Column则表示只能向单一方向延展只有一个延展数值D1而Static则表示这个物体只有这样一种大小不能做任何更改因此也不会有任何延展长度字段。Unit size指定的D1和D2的数值基于的单位是哪一种Small表示一个单位长度是2.5而Large则表示单位长度是5Ballance中1x1路块的大小是5x5。Expand mode下面的图形则指示了D1和D2分别是哪一个方向。
Face部分是指示上下顶面的使用情况而Side部分指示的是路面的四个表面的使用情况下方的图片表明了4个方向的真实位置。在取消勾选后对应面将不会生成。通常来说对于任意一种路面类型这部分的默认值适合大多数路面的生成除非您确实需要或不需要某个面否则一般不需要修改这个部分。
![](./imgs/zh-cn/bmerevenge_example.png)
!!! info "Ballance Map Editor"
Ballance Map Editor是一款老旧的基于Tilemap的Ballance路面创造软件我们已经不建议您使用这个软件因为其创建了大量无用顶点。相比较而言BMERevenge完美地解决了这个问题。如果您仍然需要使用这个软件或想了解这个软件请参见过时软件介绍章节。
### 直接建模添加路面
在本节中我们将通过逐步介绍一个六边形平台的建造方法来引导您熟悉直接建模添加路面的方法并熟悉BallanceBlenderHelper中提供的快速材质贴图功能。
![](./imgs/zh-cn/custom_floor_1.png)
我们可以先通过一些基本图元的创建,来帮助我们更快地搭建起整个物体的框架。为了获得六边形,我们可以首先利用`添加 - 网格 - 圆环`然后将其顶点设置为6.然后我们假设我们的六边形平台的半径大约为20因此需要将其半径设置为20。除此之外我们还需要构造一个相同的半径为22.520 + 2.5的圆环与半径20的圆环同平面共心放置。这么做是为了在平台边缘分割出一个2.5单位路面大小5x5的一半的边缘。虽然平台的上表面看起来是一个整体但实际上其边缘的花纹和中心的图案分别来自不同的贴图因此我们需要将它们分割到不同的面上来赋予不同的材质。这样一来我们就有了两个6边形我们暂且将半径20m的六边形称为内六边形将半径为22.5的六边形称为外六边形。
然后我们需要选中这两个物体,右键选择合并(快捷键`Ctrl + J`),现在这两个物体被合并了,我们可以在此基础上构建一些面。进入编辑模式(快捷键`Tab`退出编辑模式再按一下即可选择顶点模式选择内六边形的6个顶点然后使用`面 - 填充`(快捷键`Alt + F`。这样内部的78910号面就填充完毕了。然后我们需要够造外围的1到6号面。首先选中外六边形的两个顶点再选择内六边形的两个顶点使用`顶点 - 从顶点创建边/面`(快捷键`F`)创建一个四边形面,以此类推创建所有的面。需要注意的是,务必使用`顶点 - 从顶点创建边/面`而不是`面 - 填充`来创建内六边形与外六边形之间的1到6号面。因为这样创建的面将不会是三角面为我们后面进行贴图创造了便利。
我们拥有了平台的顶面现在我们需要创建它的边缘6个面。我们仍然需要使用`添加 - 网格 - 圆环`添加一个22.5半径的六边形然后将其下移5个单位我们将其称为底六边形。选中我们的顶面和这个底六边形右键选择合并。然后我们进入编辑模式选择顶点模式仍然使用`顶点 - 从顶点创建边/面`在外六边形和底六边形中分别选择2个点构建侧面的6个面。现在我们已经构造完整个平台的几何结构了。
现在我们需要为其创建贴图。首先我们需要设定材质插槽。请先转到Shading选项卡然后选中平台并进入编辑模式。在下方的着色器编辑器的中上部选择左侧的下拉列表并使用添加按钮添加3个插槽。然后分别选中每个插槽并在下拉列表右侧的材质选择按钮中选择相应的材质。我们的平台需要3个材质`FloorSide``FloorTopBorderless``FloorTopFlat`。选择好后,我们需要为每个面指定材质,需要进入编辑模式的面选择模式。然后选择内六边形内的面,然后选中`FloorTopBorderless`然后点击下方的指定即可设定其材质。同理为内外六边形之间的6个面设置为`FloorTopFlat`为底六边形和外六边形之间的6个面设置为`FloorSide`。现在每个面都有正确的材质了但是它们仍然看起来非常奇怪这是因为它们的UV还没有正确设置。
`Ballance - Flatten UV`提供了一个特殊功能它可以按照Ballance中物体与贴图的比例关系3D中的5对应UV贴图中的1按照指定面的某条边将材质展开到这个面上这在这一步中是非常重要的。首先选择内六边形内部的所有面然后使用`Ballance - Flatten UV`您可以观察到这些面的材质正确了。现在您可以尝试选中内外六边形之间的6个面然后继续使用`Ballance - Flatten UV`,您可能会发现,原本应当位于边缘的条纹现在可能被贴到了其他边上,这是因为参考边选择错误,我们可以在`Ballance - Flatten UV`的弹出框中调整`Reference edge`的大小其数值的含义是使用多边形中的第x个边作为参考边。通过调整参考边您可以将边缘条纹贴到正确的位置。对于底六边形和外六边形之间的6个面也是如此操作。现在我们的平台完成了。
!!! info "为什么我没找到你说的材质"
这大多发生在从空白Blender文件进行创建的过程中。一个最简单的解决方法是使用BMERevenge添加一个路面这个路面最好包含了您要使用的所有贴图然后将添加的路面删除这样只会导致物体被删除但是和物体一同被添加的相关路面材质则会被留在Blender文档中直到您清除无效数据块后才会被删除如果它仍然未被引用
当然通过手工方式创建材质也是可以的这取决于您的Blender技术上述的方法是适用于Blender新手的便捷操作。
!!! info "Flatten UV小贴士"
在Flatten UV中调整`Reference edge`时,如果您熟悉了相关操作,则可以很快地判断该如何修改`Reference edge`来得到正确的结果,例如本例中,条纹被贴到了对面的边上时,我们可以直接将`Reference edge`+2或者-2取决于哪个数值是合法的因为`Reference edge`最大为3最小为0就可以将其贴到正确的位置。
Flatten UV不止可以用于不规则路面的贴图够造它还可以用在很多地方例如当您通过拉伸顶点导致材质显示错误的时候您可以选择对应的面并使用Flatten UV将材质重新贴到正确的位置。但是Flatten UV不能解决物体本身的拉伸导致的材质变化因为Flatten UV是根据物体的网格进行操作的而物体的拉伸是物体的属性不是网格的属性Flatten UV无法识别到来自物体的属性。
现在,我们将对上面所述路面的生成方式进行改进,我们将使用螺旋修改器来重新制作和上述路面一摸一样的路面,并且会做的更快更好。
![](./imgs/zh-cn/custom_floor_2.png)
!!! info "为什么我想不出来使用这种方式构建模型"
直接建模添加路面往往并不是对Ballance制图工具的考验而是考验制图者对于该3D软件的熟悉程度。您对Blender越熟悉对于构建自定义路面则会越得心应手。甚至在完全熟悉Blender后超越我以上提供的构建方法以更快的速度构建出模型并且不依赖BallanceBlenderHelper提供的贴图功能贴上正确的贴图。
对于刚开始使用Blender的新手而言这很难做到一个快速提升建模水准的方法是多看多练。我们在本制图文档中提供了许多不规整的模型的构建方法您需要仔细学习其理念并举一反三。并对于别人地图中的一些奇异构型需要时刻想着如何在Blender中更快地构建出相似的结构。相信通过如此学习您会在Blender建模上取得更快的进步。
还有,每章节的练习也不要忘了做哦,对于提升您的水准也有帮助。
## <span id="jump-7">Blender - 添加钢轨</span>
### 钢轨的本质
讲一下单双轨区别
### 添加单轨和双轨
### 添加螺旋钢轨
### 添加钢轨材质
在完成钢轨的构建后我们需要给钢轨添加对应的材质以及UV才能让钢轨具有正确的颜色。我们可以先选定钢轨然后通过`Ballance - Create Rail UV`来为钢轨添加材质和UV。对话框中的材质Material选择钢轨材质即可。而对于类型Type则有3种类型分别是点Point均衡Uniform和缩放Scale。这三种模式对应了程序对UV的不同处理方式。由于Ballance对于游戏中的钢轨的视觉效果具有特殊的处理所以选择何种类型可能并不会对最后钢轨的呈现有什么影响。但是我们仍然建议您选择视觉上观看最好的模式您可以反复选择参数来观察结果以决定选择何种类型。通常来说一个好的钢轨在视觉上看来它的花纹要分布均匀但这也并非唯一标准。下面将会对这3中不同类型的具体处理方法进行讲解。
下图展示了三种类型的工作方式。首先讲解均衡类型。均衡类型会试图按照一个轴向Projection axis将物体套在整张钢轨贴图中并进行贴图视觉上来说就像是将3D的钢轨按一个轴向拍扁到钢轨贴图的平面上而钢轨中的网格在这个平面上的映射就成为了它对应的UV。而点类型和缩放类型则是均衡类型的扩展。缩放类型允许用户提供一个缩放值Scale这个缩放值控制了这张钢轨贴图的缩放因此可以被看作原先的钢轨贴图变成了钢轨贴图的一部分缩放大于1又或者变成了多张钢轨贴图首尾相接缩放小于1。点类型则是将整个三维的钢轨映射到了一个点因此也可看作特殊的缩放类型其缩放值为0。
![](./imgs/zh-cn/rail_uv_type.png)
!!! info "钢轨材质的来源"
如果您选择使用地图模板创建您的地图那么材质可以直接从文档中选中因为文档中已经具有钢轨的材质了。而如果您选择从一个空白文件开始创建地图那么您可能要先创建一个材质然后再回到此处为钢轨添加材质和UV。
!!! info "类型的实际情况"
缩放设置的轴向实际上并不能如此简单的解释它实际上是相对于物体的局部坐标系的XYZ但此处这么理解也并没有什么问题因为大部分钢轨不涉及较为复杂的旋转等操作因此其局部坐标系与全局坐标系是统一的。
点类型实际上与缩放设置为0的缩放类型在表现上其实并不相同。具体的实现可以通过阅读代码了解。但对于初学者来说这么理解就已经足够了。
### 更多类型钢轨的参数
放bug那张图
## <span id="jump-8">Blender - 添加机关</span>
## <span id="jump-9">Blender - 杂项</span>
## <span id="jump-10">Virtools - 基本操作</span>
## <span id="jump-11">Virtools - 脚本</span>
## <span id="jump-12">Blender经验公式</span>
## <span id="jump-13">Virtools经验公式</span>
## <span id="jump-14">过时软件与不适用软件介绍</span>
## <span id="jump-15">最新勘误</span>
历代制图过程都是一个循序渐进的过程,在这个过程中,难免会有因为技术限制或错误理解而导致的制图规则上的错误,历代制图手册都有对上一版本的勘误,这里也仿照着之前的版本,根据最新的发现,来对之前的一些制图上的理解进行勘误。
### 影子坐标
## <span id="jump-16">结语</span>
现在踏入制图之人教程已告终但你仍未越过最后的门扉。若你理解制图的意义就上前来来做图做出一张真正的地图向大家证明你是最好的制图人。然后就去开创属于自己的制图旅程吧。我的记忆已经磨损了太多但我总还记得我也玩过Ballance。