跳转至

原来你是这样的Blender

本文是一个持续更新的文章,用于介绍我在实现Ballance制图完全Blender化中遇到的各种奇奇怪怪的问题。
一开始主要是从3ds Max迁移过来之后的一些功能没有的困惑。这些内容因为是迁移文档嘛,所以很多词汇都是3ds Max里的,什么附加焊接之类的。建议读之前看下3ds Max的制图文档。
到后来就开始关注快捷键以及Blender独有的内容了。也会记录在这里。

附加物体

版本:2.83

从BMMaker或者Map Editor搞东西搞出来之后,肯定需要附加,不然物体太多。先选择一个物体,然后框选其他待附加物体,然后右键选合并,或者直接Ctrl+J就搞定了。
有时候没有合并选项,不知道为啥,重新选一下应该就好,可能是活动物体没有选择上的缘故?

焊接

版本:2.83

依旧是BMMaker或者Map Editor导入之后的问题,重合顶点太多,要缩减。一般是先附加物体然后再解决顶点问题。
所以首先确定透视模式打开了(不然框选的时候顶点选不全),然后选择附加完的那个物体,进入编辑模式,选择所有顶点(顶点选择模式下),右键合并-按距离,选项里的距离设置我一般测试后觉得0.1m比较nice

改物体原点

版本:2.83

有时候一通操作之后物体原点偏了,物体模式下右键-设置原点-原点->几何中心就好了。
有些路面不好对齐,可能希望把它们的原点改在某个特定的顶点上,可以移动游标吸附到某个顶点,然后右键-设置原点-原点->游标。

PS:千万不要对机关改原点,就是那些会被游戏在加载期间进行替换的机关。改了就会发生机关偏移的大问题(因为机关是按World Matrix进行放置的)。如果是模板中那种机关附带底座的(活木栅栏,风扇+底座等),并且底座原点偏移太厉害的,可以调原点,因为底座属于路面

对BMMaker导出进行坡度变形

版本:2.83

有时候BMMaker或者Map Editor导出后有些地方需要做高度差之类的,3ds Max里用的是FFD 2x2x2,Blender里有相应替代方案

首先,需要被晶格处理的物品似乎需要单独被独立出来,不然会有大问题。然后新建一个晶格,属性里面分辨率UVW全部选2,插值UVW全选线性。然后用缩放模式(一定是缩放,别去编辑模式调顶点)让晶格完美包络待变形道路,然后在待变形物体里面添加晶格修改器,选择刚刚添加的晶格。然后切回晶格,进入编辑模式,用顶点选择模式选顶点然后随便移动移动就行,然后退出,在待编辑物体上应用修改器就行。晶格用完就可以删掉了。

这个是我第一次尝试的时候看的教程视频:https://www.bilibili.com/video/BV1v7411z72A。里面还介绍了个便捷插件,可以用,非常简便。点一下物体,加个晶格,直接进编辑模式调顶点,然后退回来右键点Apply就搞定了

我没试过修改器里的顶点组功能,事后回想是不是可以不分离物体就直接变形?有待验证。

钢轨

版本:2.83

直双轨

新建一个网格-圆环,顶点8,半径0.375。然后复制一个,单轴(X / Y)移动3.75(让两者在一个平面)。然后合并,然后复制一个,向钢轨延伸方向移动你需要的距离(或者随便长度,待会还能改)。然后合并。
然后进编辑模式,选择一条轨的两个端点,然后右键Looptools-Bridge(到插件列表开Looptools插件),完成,另一轨也如法炮制。

一旦有了一个双轨,就可以全场到处复制了,也不用重复上述操作了。

直单轨

和直双轨一样。不过圆环要旋转一定角度(22.5度),让八边形平头朝球。如果双轨也要让其每条轨可以方便走单轨,也要旋转。

螺旋轨

先用直双轨方法做出来一个钢轨截面,然后新建一个空物体-纯轴,这个纯轴与你的截面的距离就是螺旋半径,纯轴就是你这个螺旋的旋转轴,所以请务必保证你的截面的角度和位置,刚好处于旋转轴的平面束内。
即先移动到合适半径,然后再调整钢轨截面的旋转,让假象延伸方向冲着螺旋轨的切线方向。

如果要有倾角的钢轨,还可以调整下角度,向内倾斜或者向外倾斜,侧轨和普通螺旋轨都是倾角螺旋的特例,一个是倾角0度,一个是倾角90度。

然后给钢轨截面加一个螺旋修改器,轴向一般是Z,轴物体选择刚刚的纯轴。螺旋选项负责每旋一层高度加多少,请确保你设置的高度球不会卡在里面(参数我这不讲,看3ds max制图教程就能知道)。步数是调整轨道平滑度的,越高顶点越多越平滑。迭代表述你想要多少层。层数只能整数似乎,不过多的部分搞完之后可以删掉也无所谓。然后勾上平滑着色。继续调整调整,满意了就应用。新建的圆柱也可以不要了

如果要共边螺旋轨,需要用单轨的截面,并且你需要计算好高度,让球能贴着边滚动。

圆弧接头轨

有时候转弯要用圆弧接一下会好看一点,具体做法和螺旋轨非常相似,操作步骤一直到添加螺旋修改器都是一样的。你距离纯轴的距离就是你接头轨的圆弧半径。
然后螺旋修改器里,螺旋设置成0,迭代为1,角度是根据你需要设定,就是接头轨的圆弧大小,一般是90或者180多一点。其他选项微调一下,勾上平滑着色应用就行。

钢轨翻面

版本:2.83

螺旋修改器出来的东西有概率所有面是反的,观察方法是在编辑模式-视图叠加层-法向-显示拆分法线,然后给个数值,方便看

如果法线朝内了,就选择那些面,然后网格-法向-翻转修复

钢轨加头

版本:2.83

上述方法弄出来的钢轨两端都没有顶盖。进编辑模式,选中一端的8个顶点,然后选择面-填充即可,快捷键Alt + F

当然还有一种顶点-从顶点创建边/面的功能,快捷键F。这俩的区别是后者就是单纯地建面,是多边形。前者能保证建出来的是三角面。
另外二者有概率其中一个不能用,而另外一个能用这种蛋疼情况,随机应变即可。

钢轨头法向

版本:3.3

钢轨头的法线有时候会在平滑着色之后爆炸,具体表现是与钢轨圆柱面的法线取了平滑,这不是我们想要的。

一种方法是把钢轨头的六边形的六个边标记为锐边,然后再平滑着色。
另一种粗暴的解决方案是右键,自动平滑着色,选择50度。50度其实原本应该是45度,因为钢轨是八面体,它八个面之间的法线夹角是45度,而顶端与八面之间夹角是90度。但选取45度会有浮点误差,以及对于螺旋轨,每段之间的法线合并也不一定是45度。所以这里选50度合适。

路面发黑

版本:3.3

有时候路面一通乱操作之后导出来发黑,这是法线坏掉了,对所有路面应用平直着色即可(这会让路面看起来棱角分明,不过大部分路面本身就是棱角分明)。
或者也可以像钢轨那样用50度自动平滑着色。但是对于盘点来说,这样做仍然不是其默认状态。这是无解的。唯一的解决方案就是不要去动它。

布尔切割

版本:2.83

布尔切割的探针最好直接贯穿,不然可能会存在残留面。
布尔切割前记得先把路面合并顶点,不然会出现没法连接的问题。
布尔切割后有的地方需要补面,且大多是只要把上面的点向下移动5方便创建底面就行。具体的方法是选中点,shift+d(创建副本),然后gz-5即可。然后选择合适的顶点,从顶点创建边/面即可。

切割面

版本:3.3

有时候会有需要对一个面有切割需求,包括但不仅限于对半切开,按顶点连线切开等。可以用编辑模式里左侧的切割工具,快捷键K
选择切割工具后,下面有各种操作提示,记得看,尤其是不知道怎么确认和取消的时候。操作主体就是选择一系列点,连线部分将把面切割开。
左键点确认点,如果按着Shift是可以吸附到线段中点的,很有用。空格确认切割,Esc退出切割。

物体导航与移动快捷键

版本:3.3

  • 点菜单(就是波浪线 ~ 那个按钮):点开最主要的就是“查看所选”功能。
  • 编辑模式物体模式切换:Tab
  • 快速开关吸附:Shift + Tab
  • Shift + S菜单:游标,活动物体之间相互各种移动,对齐物体非常有用

快速移动旋转缩放

版本:3.3

一般来说,比较蠢的移动旋转缩放是在左侧工具栏分别点三个,然后拖blender里的提示条,然后去左下角改数字。非常麻烦,移动鼠标次数过多,手很累。
比较聪明的方法是用快捷键,g移动,r旋转,s缩放。
然后后面可以紧跟一个坐标轴字母xyz里面任意一个,可以限制在这个轴运作(好像没法限制在两个轴上?)。
然后还可以跟一个数字,表示精确运动。支持正负数。

编辑模式下的快捷键

版本:3.3

编辑模式下按123可以在不同的选择模式下选择了,再也不用鼠标挪上去去点什么顶点模式,线模式,面模式什么了。
编辑模式下按a好像可以全选,但是不知道为什么有时候按了没反应或者不切换,就多按几次确定选中就行了。

贝塞尔曲线放样

版本:3.3

新建一个贝塞尔曲线,立即进入编辑模式(此时所有节点都是默认选中的)然后按下Delete删除所有节点。
然后左侧有个自由线工具,绘制出你想要的曲线。建议用坐标轴球锁定在某个面视图上画,比如顶视图,侧视图,这样画出来的曲线会在一个平面上,要是后期有垂直弯曲就之后再调整。

然后准备一个截面,钢轨用圆环。路面用平面,平面选5m大小,然后进编辑模式把面(用仅面模式删)和-Y方向那条边(用仅边和面模式删)删了。
然后退出编辑模式,右键-转换到-曲线。把它转成曲线,不然没法放样,也正因为如此,不要搞太复杂的截面。

选中贝塞尔曲线,在右侧曲线面板中,展开几何数据面板,展开倒角,选择物体,然后选择刚刚的截面。
然后看看贝塞尔曲线放样的对不对,对了就右键贝塞尔曲线-转换到-网格。
后期处理和路面钢轨类似,比如按50度自动平滑着色之类的。用贝塞尔曲线创建的路面默认的平滑和屎一样。

贝塞尔放样与螺旋修改器的截面区别

版本:3.3

贝塞尔曲线的截面需要躺在XY平面上,也就是默认创建的状态。螺旋修改器则基本需要立起来。
似乎是螺旋修改器会依据物体实际的形态作为截面。而贝塞尔曲线的倒角只会从+Z向-Z看你的截面并把它看到的形状当作截面。

木板UV

版本:3.3

需要在偏好设置里开启:UV- Magic UV

给木板上贴图的时候,最好使用Magic UV。做法是先选择木板的顶面,也就是需要上UV的部分。
然后N菜单打开边栏,转到Magic UV部分。展开UV映射面板,在勾选UVM,选择Best Planner。
然后弹出的窗口把缩放改成5,因为ballance里UV和路面是5倍的关系。

贝塞尔放样设置材质

版本:3.3

贝塞尔曲线放样出来的路面,左侧面和右侧面的边的循环是相反的,因此不能统一贴UV。我们只能尝试先选中一侧面,贴完再选中另一侧。
选择一侧面可能有点困难,但现在有2种方法可以做。两种方法都要在面选择下做。

先选择路径开头一侧的第一个面,然后找到路径结尾的同侧最后一个面,按住Ctrl左键选择。这是拾取最短路径功能,可以直接选择一个侧边。

或者,转到路径开头一侧的第一个面,按住Alt同时左键点击它。这是选中循环面功能。注意,鼠标点击的位置有讲究,需要点在第一个面和第二个面交线附近(仍在第一个面里),不要点偏了,不然Blender会按照最贴近的那条边找循环边。例如朝和顶面相接的那条边点则会选中非常短的一个循环面(顶面到另一面),这不是我们想要的。

不规则平台的创建

不规则平台的创建一直以来都是一个很困难的事情,比如在这个帖子中,开头不规则大路面消耗了一个星期的制作时间,实在是过于长。为此,此处给出经过研究后的可以大幅简化制作时间的制作方法,可以在1小时内制作出和原先相似的路面。

不规则平台的创建问题主要集中于贴图问题,主要的解决思路就是将平台顶面的边框贴图和无边框贴图分开处理。有了核心解决思路,我们就可以设计解决方案了。

首先是需要构建平台的边缘形状。用添加-平面,新建一个平面,进入编辑模式,按1切换顶点模式,A选中所有顶点,右键全部删除。这样我们就得到了一个空物体。然后按住Ctrl键,右键鼠标可以添加一个顶点,换一个地方再点击,可以发现又添加了一个顶点且与之前的顶点连接起来(实际上是与上一个选中的顶点连接,如果不选择任何顶点,则会重新开始一条线段),这是我们创建平台边缘的主要方法。使用此种方法创建一个(不规则平台)或多个(不规则平台+不规则孔洞)闭合的折线段。
需要注意的是,打点操作需要在顶视图进行(点按坐标轴的Z可以快速进入顶视图)。不然打出的点z坐标会不在一个高度,导致后续操作出问题。
此外,闭合线段的最后一个点需要打在其起始点尽可能靠近的地方,因为Ctrl+RMB创建线段的功能不会自动闭合折线段。这时我们需要手动选择折线段的起始点和终点,然后右键合并顶点-到中心,将二者合并。这样得到一个闭合折线段。可能会有人说,我不这么做,我不把它们打在一起,我只要闭合它们就行了,会随意选择两个点,使用顶点-连接顶点路径,或顶点-从顶点创建边/面。固然可以,但会有一个法向上的缺点,我们待会再讲。
如果你对平台边缘的一部分有数值上的需求,例如对齐,或者是指定数值间隔,可以在此时使用吸附模式,移动顶点去对齐。对齐好之后进行下一步。

接下来我们需要让这个平面上的图形具有高度,在编辑模式下,选择左侧面板的挤出选区,选择XYZ模式,在Z上挤出-5的距离,或直接使用ez-5快捷键。这样不规则平台的侧面就拉出来了。此时你就会理解我们之前对线段闭合操作的必要性了,按照我所述的方法闭合的线段拉出来的侧面,其法线要么全部正常,要么全部是反的(Alt+LMB选择循环面一次性选择所有侧面,然后网格-法向-翻转,一次性翻转过来),而使用其它方法,则有概率出现一部分面是正确的,一部分面是反的,需要费时费力手工去调整。

现在有了高度,接下来就是最重要的部分,用Alt+LMB选中循环面的功能,选择所有侧面,然后使用左侧工具里的沿法线挤出(长按挤出选区,然后移动过去切换),然后按住鼠标拖一下,它会挤出,然后在左下角那里调整参数。
偏移量是要挤出的距离。在保证能容纳下花边的情况下,越小越好。因为过大可能会导致离得近的两边融合。我个人用的是2,请视情况选择。偏移量通常是 负数 ,意思是向法线反方向挤出,即向图形内部挤出,这样不会破坏平台边缘原本的形状。
均等偏移请勾选,这是让每个边都偏移出去这么多的选项,我也搞不懂为啥Blender要这样搞。
如果开启法线显示后发现顶面的法线反了,请勾选翻转法线。
然后就确认即可。此时会发现Blender将整个面挤出成了一个闭合的物体,这不是我们想要的,使用Alt+LMB循环面功能,选择被挤出到内部的侧边,Delete按面删除。然后再用Alt+LMB循环面功能选择底面被挤出的部分,Delete按面删除。这样就只保留了顶面被挤出的功能。
有人会问,能不能只挤出顶面的那部分,这样就不用做删除了。遗憾的是如果只选择侧面顶部的循环线,然后按法向挤出,它会按点的法向挤出,读取不到面的数据,于是挤出的方向有的是对的,有的是错的。目前我还没找到解决方案,找到了我会讲的。
平台边缘和每个孔洞我是分开挤出,因为他们可能法向不同。当然一起挤出如果没问题也可以。
挤出之后可能原来侧面的法向会反过来,记得看一下,如果反了就再翻转一遍就行了。

接下来的事情就简单了,把顶面无边框部分建立起来。如果只是不规则平台,只需要用Alt+LMB循环边功能,在边模式下选择挤出来的,靠内侧的边,然后使用顶点-从顶点创建边/面,快捷键F,创建一个面,然后贴图就行了。
如果不仅是不规则平台,还有不规则孔洞,那么就需要按住Shift(多选)然后使用Alt+LMB循环边功能,在边模式下选择每一个被挤出的边框,然后使用面-填充,快捷键Alt + F。此时不要取消选择,立即贴图,不然之后再想选回来顶面比较困难,因为都是三角面。
在顶面贴图中,无论是F还是Alt + F创建的顶面,均需使用Magic UV-UVW-方框模式,展开顶面无边框材质,缩放选择5。不能使用Flatten UV。因为F创建的面可能不是凸面,Alt + F创建的面不是一整个,都不能用Flatten UV贴图。但其它的部分,例如边框或侧面,则应当使用Flatten UV。

最后剩下的边框和侧面贴图就很简单了,就是普通的Flatten UV操作。此时你也会理解我们之前对线段闭合操作的必要性,因为这样操作后挤出的边框,其贴图方向的参考边也是一致的,不需要额外的处理。

构造面的两种方法区别

在钢轨加头章节里面讲了有2中方法从顶点列表创建面,一种是面-填充,快捷键Alt + F;一种是顶点-从顶点创建边/面,快捷键F
这两种操作有时候一个不行另一个却可以。但两种操作有更深层次上的区别。
F会创建N边多边形面,无论顶点有多少个。这个比较适合大平台中间无边框材质的贴图。但F不支持面里面有孔洞的创建,一旦有孔洞,就会生成各种奇奇怪怪的面堆叠在一起。
Alt + F只会创建三角面,这使得后期不能用Flatten UV贴图,只能借助Magic UV的UVM平展贴图。但是它支持面内孔洞,可以正确处理孔洞,解决了F的问题。

面-填充的文档:https://docs.blender.org/manual/en/latest/modeling/meshes/editing/face/fill.html

快速移动游标

之前移动游标一直是Space + Space换游标,Space + B换回选择。非常不方便。现在发现,只需要按住Shift,然后按住RMB(鼠标右键)移动,就可以快速移动游标

应用变换

Ballance里的许多需要物理化的物体,不能有scale,即物体的缩放为1 1 1。但是通过scale或者一些Blender的按轴镜像操作可以很方便地将物体放在需要的位置上,然这种操作会改变物体的缩放数值。会导致物体在接下来的物理化过程中失败,致其实际的bounding box和渲染的不一致。因此需要把scale消除变回1 1 1。

操作的方法是选择菜单 物体 - 应用 - xxx。xxx根据需要选择,一般是缩放,因为只要缩放是单位值就能正常加载了,ballance的物理化可以处理旋转。或者是旋转+缩放,也就是只保留位移,比较适合我这种有洁癖的。这个菜单的快捷键是Ctrl + A,可以直接选择物体然后按这个快捷键调出来。