一笔画出奔跑的小火车Blender 几何节点教学

2023-07-06 19:21薛山
电脑报 2023年25期
关键词:节车厢法向顶点

薛山

“一笔画”系列其实我们已经推出了好几个章节,简单来说就是通过几何节点的设计,让复杂的模型可以跟随曲线绘制,使其位置、旋转甚至缩放都自动匹配,从而实现一次设计多次复用的高效目标。本期的“一笔画”系列我们准备制作一组可以跟随曲线开动的小火车,还是老规矩,先从思路解析开始做起吧!

火车要跑起来自然需要轨道系统,其实咱们本期的内容也不限于火车,类似过山车的效果也同样可以制作出来。首先新建一条曲线,可以是贝塞尔曲线,也可以是曲线圆环,然后进入它的几何节点编辑器。

我们这一步最重要的就是让轨道跟随这条曲线来自动调整,难点在于大多数轨道都有两条,而我们的曲线只有一条,所以在设计时需要动一些小心思。第一步是使用“曲线转网格”节点,并使用“曲线圆环”作为“轮廓曲线”,这样就能直接把咱们的原始曲线变成一条在渲染模式下可以看见的“轨道”了,轨道的直径则是通过控制曲线圆环的直径来实现的,那么这时候要如何让它变成两条轨道呢?

方法其实也很简单,我们只需要额外生成一条相同的曲线,并让它沿着原始曲线的法向方向进行位移补偿,不就可以获得咱们想要的效果了吗?所以我们需要回到几何节点的最左侧,在“曲线转网格”之前加入一个“设置位置”,并以“法向”作为基础来连接它的“偏移量”,为了控制这个偏移量,可以在它们两者之间加入一个“矢量算法”的“缩放”来进行控制,因为轨道需要朝着法向的两个方向进行偏移,所以建议大家分别引入两个“缩放”,从正负方向分别控制两条轨道的偏移量,再通过“合并几何”后重新连接到“曲线转网格”,就能得到一组完整的轨道了。

因为它会直接放在原始曲线的水平面,而轨道一般在火车下方,所以我们要再接一个“变换几何体”,将其沿Z 轴向下位移一点位置,具体数值可以在火车设计完成后再进行调整,最后记得加入一个“设置材质”,再在着色器编辑器中将对应的材质设置为金属材质即可。这时候我们进入原始曲线的编辑模式,删除所有顶点并新建另外的曲线,你会发现火车轨道可以实现自行铺设啦。

火车运动在几何节点里的逻辑,就是顶点跟随曲线路径进行运动,并且火车模型会根据曲线切向进行自动旋转,匹配正确的运动方向,那么如何才能实现这个设计目的呢?

这一设计的难点在于如何让顶点沿着曲线进行运动,最基本的方法就是通过采样曲线来实现顶点融合,我们首先需要通过“曲线-> 点”节点,将曲线切换成一个个的点,然后连接“设置位置”。这里开始就需要注意了,我们再将原始曲线连接“采样曲线”,将“位置”值输出到“设置位置”的“位置”上,此时会根据你“曲线-> 点”的设置,获得不同的顶点数量,比如“曲线-> 点”设置为“数量”10,就会在几何节点默认视图左上侧的“电子表格”里看到有10 个点云,这时候我们调整“采样曲线”的系数,就可以在实体视图下看到顶点跟随曲线在进行运动了,但因为这时候有足足10 个顶点重叠在一起,在它的后面我们需要使用“实例化于点上”来导入火车模型,这会导致穿模和不必要的渲染压力,所以我们需要再接一个“按距离合并”来让这些顶点融合为一体。

這时候的问题有两个,其一是如何让它自动跑起来,其二是怎样让它正确地旋转。第一个问题其实解决起来不难,只需要给“采样曲线”的系数连接一个“场景时间”的“秒”即可,但因为咱们这个是单节车厢的设计,而火车往往是多节车厢,所以我们需要一个位移值来为不同车厢赋予不同的位置,同时还需要一个参数来控制车速,并且让它可以循环运行而不是沿着曲线跑一趟就消失了。

因此,我们首先是通过“相加”来控制它的起始位置,然后接一个“相除”来调整它的运行速度,最后接一个“分数”来让它可以循环运行不受曲线长度限制,建议将“输出属性”的帧率改成60fps,这样即便是预览时看上去也会流畅许多,完成这一步后播放视频应该就能看到火车跑起来了。

接下来调整它的旋转值,我们将“采样曲线”的“切向”输出连接一个“对齐欧拉至矢量”,再连接到“实例化于点上”的旋转值,这时候我们只需要按照自己的设计场景,尝试选择“对齐欧拉至矢量”的X、Y、Z 直到获得正确的旋转方向,就能获得一个跑动时车头朝向正确的火车效果啦。

搞定这一步之后,我们接下来就可以设计多节车厢了,此时需要全选咱们火车部分的全部节点,注意不要选中第一步的车轨节点,然后按Ctrl+G,将其进行编组,然后把“场景时间”后的“相加”值连接到编组内“组输入”的空白值上,这时候选择几何节点编辑器右上角的箭头按钮,也就是回到父级节点树,这时候就能看到所有火车车厢的节点都被打包成了一个节点集合,我们可以把它重命名为“火车”或其他自己想要的名称,同时刚刚连接的“相加”值在这个节点集合上就能直接调整了,此时改变这个数值就能看到火车的位置发生了变化,所以我们只需要按照设计需求复制多个“火车”节点集合,通过调整“相加”值,将它们和之前制作的车轨再进行“合并几何”输出,就能得到一个由多节车厢组成的火车列组沿曲线开动的效果啦。

从本期的几何节点设计来看,通过相对复杂的设计,获得了更全面的自由空间,比如车头和车身其实可以设计成不一样的物体,我们只需要将火车车头的节点集合独立出来,再调整它的模型样式就能获得我们想要的效果。而如果单纯只是想获得一个火车沿曲线运动的效果,不使用几何节点也有传统的方法可以实现,可以说是“条条大路通罗马”。但我们一直强调几何节点是Blender近年来最重要也是最核心的功能,如果想要时刻保持最新的设计思路,几何节点就是不能绕开的关键,当然,我们的教学节点或许并不是最优解,理论上还有一些优化的空间,所以我们也一直鼓励大家开动脑筋积极探索,早日将Blender 几何节点融会贯通。

猜你喜欢
节车厢法向顶点
长长的火车
落石法向恢复系数的多因素联合影响研究
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
SOB订购更多Flirts列车
关于顶点染色的一个猜想
低温状态下的材料法向发射率测量
落石碰撞法向恢复系数的模型试验研究
学数学真有趣
不透明材料波段法向发射率在线测量方法
数学问答