在3D设计领域,有机体的建模一直是设计师们关注的焦点。今天就以蚂蚁为实例,深入了解3DMAX建模技术,内容有点多,但很实用,希望朋友认真学习!
在3D设计领域,有机体的建模一直是设计师们关注的焦点。一个三维设计软件有机体建模能力的高下向来是评判该软件功能的重要考量之一。愈来愈多的技术被开发于这个领域之中。在3DS MAX r2.X中我们最常用的一些方法包括了Mesh(网格体)、NURBS、Spline(样条)和Patch(面片)。事实上,Mesh是一种最为基本的造型方法,也是使用最为简单的一种。在接下来的一系列课程中我们将通过建立一个蚂蚁的三维模型来学习以Mesh建模为主的MAX r2中的许多编辑器的深入使用(见图1)。
同时我们也将了解到有机体建模过程中的一些工作方法。通常我们使用某个将被建模的有机体的实物照片或是手绘草稿作为参考资料。如果可能的话,最好使用严格的三视图。在我们的课程中我们将使用一个蚂蚁的三视图(见图2,如果大家实在无法得到这三张图的话,其实也无妨,仔细按照下面的指导去做问题不大。我也将尽力考虑到那些没有三视图的读者),分别引入顶视图、前视图和左视图,并以此为依据建立一个细节度较高的蚂蚁模型。
完成之后,整个模型大约有50000个面。当然作为本课程的范例,这是足够了,但如果应用于商业用途的话,还需要进一步地优化。
图1 完成后的模样
第一课 腹部建模
在本课中,我们将载入蚂蚁的三个视图作为背景图像。首先建立一个球体,通过一些造型方法将其塑造成同背景图像中的腹部相一致。我们将使用变形工具的区域影响(Affect Region)工具来修改球体的节段,正如捏泥巴一般。
一、 载入背景图像
我们将要把蚂蚁的顶视图置入Top视图中,侧面视图置入Front视图,以及正面视图置入Left视图。当然在造型过程中大家会发现有时某些部分不管怎样调整总是同图像有差别。没关系,不要太在意,我们只是把图像作为参考而已。学习造型技巧和方法才是最主要的。 本课中我们还要了解到一个关于背景图像锁定的问题。当您移动或缩放物体时,锁定背景图像可以使之始终同三维物体保持一致。
*激活顶视图,在View菜单中选择Background Image(背景图像)。
*在Viewport Background对话框中,单击Files并选择Ant_top.jpg。选择Match Bitmap(匹配位图)和Display Background(显示背景)。单击OK,现在蚂蚁的顶视图出现在Top视图之中。 注意:如果您忘记选择Match Bitmap(匹配位图),而使用默认的Match Viewport(视图匹配)的话,背景图像和最终造型结果将变形。Background lock(背景锁定)也将无法起作用。
*激活Front视图如上所述载入Ant_side.jpg。激活Left视图同样载入Ant_face.jpg。 在正确载入了背景图形之后,我们将为Keyboard References(键盘设定)增加用来快速切换Background Lock Zoom/Pan(背景放缩/移动)功能的热键。这个功能将背景同三维实体相锁定,而不受到放缩或移动的影响。三维物体放大缩小或移动,背景图像一起作相应的变化。当该功能被取消时,背景图像不再随三维物体而改变。
*在Files菜单,选择Preferences,单击Keyboard(键盘)标签,按如下步骤操作:
卷动命令列表,选择Background Lock选项。
在Shortcut(快捷方式)下单击Press Key(按键),并按下F12键。然后单击Assign。
单击Save List to File(保存列表到文件),将刚刚赋予的热键保存为Maxkeys.txt的一部分。
在Sets下,单击Save,使F12热键成为默认热建设定。单击OK。 3DS MAX支持7种参考坐标系统。在本次课程中您将使用视图坐标系统。这个系统根据激活的视图而改变X、Y、Z轴的方向,即无论什么视图都是水平向右为X正轴,垂直向上为Y轴正轴,纵深向外为Z轴正轴。如果您的3DS设置成了不同的坐标系统,那么您根据本课程而得到的最后结果会有所不同。
二、 建立球形实体
蚂蚁的腹部就像一个水滴,所以通过建立一个球并进行适当的造型我们可以较容易地建立模型。
*激活Front视图
*双击Name and Color卷帘下的色块,在Object Color对话框中,清除Assign Random Colors(赋予随机颜色)选项。这使得您的蚂蚁模型线框都是用同一种颜色。
*在Create面板下,单击Sphere,将球体放置在蚂蚁腹部的大于中央位置,不必要求严格的相符,这是我们后面进一步工作的内容。在Parameters卷帘上作如下设置:Radius=42,Segments=24,选择Generate Mapping Coordinates(生成贴图坐标)。我们给球体设置了一个要比默认值高的Segment值,这样球体将会有更为平滑的外观。在以后的建模过程中我们可以进行优化来降低模型的总体面数,以此来减少上色时间而不影响最终图形质量。
三、 将球体转换成Editable Mesh(可编辑网格体)
为了将球体塑造成水珠般的蚂蚁腹部,我们必须将球体转换成Editable Mesh。这将影响物体的编辑历史,也就是编辑堆栈(Modifier Stack),使得球体的顶点能被编辑和变形工具进行操作。
*选择球体
*在Modify面板下,单击Edit Stack按钮,在弹出菜单中选择Editable Mesh。球体闪烁了一下表示已被转换成了可编辑网格体,同时Editable Mesh出现在Modifier Stack的列表中。
四、 修改腹部的后部
*选择球体
*单击工具栏上旋转图标,在顶视图中沿Z轴旋转球体90度(可按“`”键进行三个轴的切换)。
*单击右下角的Pan图标,移动Top视图。如果背景随同球体移动的话,按下F12键,去掉锁定。一起移动球体,视图网格和建模平面线(就是视图中较粗的十字线)直到建模平面线的X轴(就是横的那根啦)同蚂蚁身体的中轴线相吻合,Y轴(就是竖的那根)同位于第二对足同身体相连部分的中心(见图2)。
*在Left视图中重复上面的对准步骤,使得球体基本同腹部的卵圆形轮廓相符和。
*在Modify面板,单击Sub-Object,激活可编辑网格体工具,确认Vertix(顶点)在列表中被选择。
*单击Select and Uniform Scale图标并按住不放,选择Non-uniform Scale(非统一缩放),单击Y轴按钮,将其限定在Y轴。
*在Left视图中在球体四周拖出一个方框,点亮Lock Selection Set按钮(在屏幕下部,快捷键为空格),锁定选择对象。
*对球体进行缩小,鼠标拖动至球体在Y轴上缩小到85%,关闭Lock Selection Set。
*在Vertex编辑卷帘下的Affect Region中选择Affect Region(影响区域)和Edge Distance(边缘距离)。选择Affect Region使变形操作不光影响到所选的顶点,同时对周围的顶点也有作用。这在物体表面创建球形或皱缩隆起时很有用。Edge Distance控制着选区外受到影响的顶点数。 在Front视图,在球体远端最后一排纵向顶点包括最后一个顶点周围拖出一个方框,并锁定选区。
*在Edit Vertex卷帘下的Affect Region中,单击Edit Curve,在对话框中设置Falloff=70, Pinch=1.23(见图3),单击OK。 Falloff设定了受影响顶点的半径范围,Pinch影响曲线相交点的切线,正纸面。在Front视图中移动我们所选定的顶点,向右下方移动。注意选区以外的相邻顶点同时也受到影响,这是由于Affect Region的控制。移动至蚂蚁腹部末端的尖端处,尽量使其同背景图像重合。现在球体看起来有些像水滴了(见图4)。
图2 TopView
图3
图3a
图4 水珠形的尾部
五、 完成最后的腹部造型
*在Top视图激活的情况下,按下F12键锁定背景图像,使视图内的三维物体同背景一起移动。
*使用视图放大工具放大球体的远端区域。注意:您将得到一个警告——放大背景图像将会消耗大量的内存。如果您的系统内存较小的话,您要降低放大倍数,尽量不要关闭背景图像除非系统无响应。
*Modify面板上的Sub-Object应该仍开启着。去除Affect Region和Lock Selection的设定。
*在球体的右部远端您将会看到几排垂直的顶点,代表了几个顶点环(从Left视图的视角来看)。单击移动按钮,并将其限定在XY平面。然后在最右端的一排顶点周围拖出一个方框,选定这一排顶点。注意是右端的最后一排顶点,而不包括右端末尾的那一个顶点。
*锁定选区,向左上移动这一排顶点,直到同背景图像相符和(见图5中的A)。
*去掉选区,再选择左面的一排顶点,重复上述同样的步骤,直到同背景相吻合(见图5中的B)。
*最后移动最右端的那一个顶点,向右下移动,使其符合腹部的尖端(见图5中的C)。
*关闭选区锁定,单击Zoom Extentx All按钮。注意到在Top视图中球体可能同背景图像不很吻合,背景有可能移位,使用F12键进行调整,直到球体的X轴长度同腹部的X轴长度相吻合。使用Shift+Z可以撤销视图调整上的操作。
*仍旧在Top视图中,选定所有顶点,使用限定在Y轴上的Non-uniform Scale来使球体变窄,直到球体同图像吻合。 *将球体更名为“腹部”或“Abdomen”,并以Ant-L1.max为名存盘。
图5 看清楚了ABC点
从昆虫解剖学的角度来讲,蚂蚁的胸部是最为复杂的部分,同时也将是我们建立的其它物体的母物体。我们将会组合使用一系列的方法来进行建模。胸部被分成三部分:前胸、中胸和腰部或蒂部。前胸用来连接和支持前腿和头部。在很多昆虫这个部分是独立的,但在蚂蚁却是同用来支持中腿和后腿的中胸相连。而腰部则是一个突起角状连接腹部的部位(见图1)。好了,在了解一些蚂蚁解剖知识之后让我们开始吧!
图1 本课的任务
一、 样条和样条编辑器
蚂蚁的胸部是整个模型中最难造型的一个部分。但我们把它分解成几个稍后可以组装的部分来进行建模就会容易的多。在造型的一开始我们将会接触到一个十分强大的有机体建模工具——导角编辑器(别以为Bevel Modifier只能用来作立体字)。首先我们使用样条(Spline,一种可以在三维空间能向任意方向弯曲的线条)画出中胸的轮廓,再使用样条编辑器(Edit Spline Modifier)平滑样条。
1. 确定背景同视图锁定,移动放大Top和Front视图,并以中胸为中心。使中胸以合适的大小显示在视图中。
2. 隐藏腹部
3. 激活Front视图,放大到满屏(快捷键“W”)。注意辨认一下三个部位。现在我们将要沿着中胸的轮廓画出一条样条。注意:只包括中胸。
4. 在视图的Front字样上右击鼠标,关闭Show Grid(显示网格)。
5. 在Create面板下,单击ShapesLine。
6. 在Creation Method(创建方式)卷帘下,选择Initial Type=Smooth,Drag Type=Smooth。这两项使您在创建线条时单击和拖动都会产生平滑的曲线。
7. 在中胸的左上角同前胸相连处单击(见图2的A处) ,然后向下移动,在中胸轮廓改变方向的地方再单击,创建顶点。在创建过程中,您可以使用退格键来撤销上一个创立的顶点。我们大约会使用24个左右的顶点来完成轮廓,大家可以参考图2。请大家尽量使这个样条精确地同原图吻合,因为我们将会在Z轴上进行拉伸。
8. 最后使轮廓封闭:围绕轮廓完成后,将最后一个顶点点在第一个顶点上,一个对话框将会出现,询问是否焊接顶点和封闭曲线,单击OK。
9. 如果某些顶点没有如您所愿地依照中胸的轮廓,您可以这样来调整单个顶点:在Modify面板下,Modifier卷帘下,使用Edit Spline。
10. 单击工具条上的移动按钮,限制在XY轴向上。调整节点,使其平滑地围绕着中胸。大家可以关掉背景看一下完成的样条(如图2)。
图2 描绘出样条
二、 使用导角编辑器拉伸样条
我们将使用Bevel Modifier拉伸样条,以建立中胸的基本形状。大家现在知道了吧,导角编辑器是在样条的基础上使用的,而不是实体。
1. 在Front视图选择样条。
2. 在Modify面板,Modifier卷帘下单击More按钮。选择Bevel,单击OK。
3. 在Parameters卷帘下作如下设置: 选择Curved Sided(曲线边缘),Segments=5,选择Smooth Across Levels(跨层平滑)以及Generate Mapping Coordinates(生成贴图坐标)。
4. 在Bevel Values卷帘下做如下设置: Start Outline=-7.2、Level1的Height=4.0和Outline=7.2、选择Level2设置Height=7.5、选择Level3设置Height=4.0和Outline=-7.2。按下回车,物体将会根据设置值自动生成(见图3)
图3 使用了Bevel编辑器
三、 增加扩展实体——胶囊状物体。
我们将使用Extended Primitive(扩展实体)中的Capsule(胶囊)物体来创建四个作为中腿和后腿根部的管状突起物。这次我们将会涉及到taper编辑器。
1. 选择被拉伸的样条物体,更名为“中胸”或“Thorax”。
2. 显示腹部,单击Zoom Extents All。
3. 激活Top视图,单击移动按钮,限定在Y轴。选择中胸,向上移动,直到其中心对准建模平面的X轴(就是视图中那根横的粗线)。如果需要的话,同样调整Left视图,使其对准中心。注意在这之前,一定要使图像按照第一课的要求对准,再重复一遍:建模平面线的X轴(就是横的那根啦)同蚂蚁身体的中轴线相吻合,Y轴(就是竖的那根)对准第二对足同身体相连部分的中心。
4. 在Create面板下,单击Geometry,选择Extended Primitive,选择Capsule。
5. 在Top视图中,在中胸下面一点的位置建立一个胶囊物体。在Parameters卷帘中做如下设置:Radius=9.35、Height=40。
6. 在Display panel下,冻结(Freeze)卷帘中,单击Freeze Unselected(冻结未选择),使中胸和腹部冻结。这样当您在对胶囊物体操作时就不会影响到它们了。在把胶囊物体放入正确的位置之前我们要对其上端进行Taper(如同圆锥形逐渐缩小),使其看上去能很好地融合进中胸。
7. 在Modify面板下,单击Taper。
8. 在Parameters卷帘下,做如下设置: Taper Amount=-5.5、Taper Axis Primay=Z、Taper Axis Effect=Y。(结果见图4)
图4 完成的Mesh
四、 复制胶囊物体
1. 单击旋转按钮,并限定在Z轴。
2. 在Front视图,选择胶囊物体,并向下拖动35度,使其同中腿的根部相平行(参见图5)。如果使用手有精度的问题,右击旋转图标,键入-35度(Absolute:World)。
3. 单击移动按钮,并限定在XY轴。拖动胶囊物体至其下端在视图中正好位于中腿上段的起始处(见图5的A处)。
4. 激活Left视图,单击旋转按钮,限定在Z轴。选择胶囊物体,向下拖动,使胶囊物体的上端向左旋转15度。(参见图6)。
5. 单击移动按钮,限定在X轴。然后在X轴上向左移动胶囊物体,直到其边缘到达中胸的中线(见图6的箭头处)。
6. 选择胶囊物体,单击工具条上的Mirror(镜像)。在Offset value(偏移值)处键入-25.75,选择Copy。这产生了一个向左偏移,在中线另一侧的一个镜像复制物体。
7. 选择两个胶囊物体,打开选择锁定,激活Front视图。复制两个胶囊物体:按下SHIFT键不放,向右拖动两个物体,直到物体的下端同后腿的上端重合,松开后单击OK产生一个复制。现在将轴向设定在XY轴,向上移动两个新的胶囊物体,使其下端处在后腿的上段的起始处(图5的B处),注意上端不要高出中胸。最后结果见图5。
图5
图6
五、 造型前胸
1. 激活Top视图,在前胸的大约位置建立一个Radius=30 Segments=24的Sphere。并将其转化为Editable Mesh。
2. 在Modify面板下,单击Sub-Object按钮,确定Vertex被选择。在Affect Region下选择Affect Region、Edge Distance。单击Edit Curve按钮,设置Falloff=50。
3. 选择球体最下端的一个顶点,按空格锁定选择。单击移动按钮,限定在Y轴上,将该顶点向上移动21个单位。去除锁定。
4. 选择Non-uniform Scale,在弹出的警告对话框中单击OK。确认轴向限定在Y轴。选择前胸,拖动至85%的大小。单击旋转按钮,将其向右旋转40度。
5. 移动前胸,使其下缘同背景中前胸的下缘相吻合(参见图7)。
6. 去除Affect Region中的Affect Region选项。将前胸右下角的几个突出于背景图像的顶点向上移动至同图像吻合,具体情况视您的操作结果而定(见图7的A处)
7. 激活Top视图,单击Select and Non-uniform Scale按钮,选择前胸,向下拖动至78%。
图7
六、 Taper中胸前部
我们要缩窄中胸同圆形前胸相连的前部,以使其同真实蚂蚁更为相像。
1. 在Display面板的Freeze卷帘下,单击Unfreeze All。
2. 在Front视图,选择中胸。在Modify面板下,单击Edit Stack,在弹出的对话框中单击Collapse All(合并所有),在随后的警告对话框中单击OK。这样中胸就转变成了Editable Mesh。
3. 单击Sub-Object按钮,选定左上角的所有顶点(范围见图8的方框A),锁定选择。
4. 激活Top视图,单击Select and Non-uniform Scale按钮,限定在Y轴,向下拖动至55%,使被选区域变窄,去除锁定。
5. 激活Front视图,选定如图8的方框B内组成中胸最左端的顶点。
6. 锁定选择,使用限定在X轴上的Non-uniform Scale将所选范围放大至150%。 7. 关闭背景,使用Region Zoom放大视图,至所选范围清楚地显示在视图的中央。并使用W键使视图放大至满屏。发现由于放大的缘故,所选区域的右侧一些顶点错位,我们将纠正这一情况。首先确定Modify面板下的Affect Region未被选择。
8. 使用限定在X轴上的移动,将选区向右移动大约2.5到3个单位,或是根据您自己的酌量控制,直到中胸的上缘变成一条平滑的线条。
9. 确定前胸和中胸重叠,否则在后面的布尔运算中将会出现错误。去掉选区锁定,将视图缩小至四分之一屏。
图8
七、 布尔运算
我们将要使中胸、前胸和四个胶囊物体组装成一个物体。Collapse Utility(合并工具)可以一次将多个选择的物体做布尔运算变成一个网格体。而Create面板下那个Boolean只能一次对两个物体做运算。
1. 显示Front视图的背景,做一些必要调整。
2. 在进行布尔运算之前我们最好合并物体的编辑堆栈。选择四个胶囊物体,在Modify面板下,单击Edit Stack,Collapse All,OK。
3. 选择我们将要操作的对象:中胸、前胸和四个胶囊物体(没有包括腰部的原因是考虑到为将来动画的层级连接做准备)。在Edit菜单下单击Hold,对目前场景做一个缓存。(因为Collapse是不能被Undo的)
4. 在Utilities面板,单击Collapse。在Collapse卷帘下的Collapse To(合并成)选项中选择Single Object(单个物体),Boolean,Union(交集)。单击Collapse Selected按钮。
5. 系统将会进行一系列布尔运算,完成后被选择的物体将会闪烁一下。单击Close按钮关闭Collapse。检查一下选择物体是否已变成了一个物体。
问题一:运算完成之后,有一个物体没有出现,这表示因为这个物体没有足够的面或是面的法线被逆转从而导致布尔运算失败。
问题二:如果某一个物体没有成为运算结果的一部分,那么不管那么多了,直接使用Modify/Editable Mesh/Attach将该物体连接到其它已合并的物体上去。要知道,谁也不能保证MAX的布尔运算总是正常工作(早在DOS时期就是如此)。
八、 使用Geosphere创建腰部
1. 在Create面板下,单击Geosphere。在Front视图在胸部与腹部之间拖出一个Radius=17的球体,选择Generate Mapping Coordiantes。调整Geosphere,使其同腹部和胸部都有重叠。
2. 激活Top视图,在Modify面板,单击Edit Stack,选择Editable Mesh。
3. 单击Sub-Object(Vertex),单击Select and Non-uniform Scale,限定在Y轴,选定所有的顶点,锁定选区。必要的话,在此时进行背景的调整。
4. 激活Top视图,向下拖动,使 Geosphere在Y轴上大约变窄至50%,同背景图像上的腰部的宽度相同。
5. 激活Front视图,同样在Y轴上缩小至大约50%。将球体移动至图9中的位置。
图9 注意腰的位置
九、 使用FFD空间扭曲建造角状突起
我们将会使用新的FFD Space Warp Modifier来代替Editable Mesh工具来建造腰部山峰般的突起。
1. 隐藏胸部和腹部。
2. 在Create面板,单击Space Warp,单击FFD(Box)。
3. 在Front视图,在球体的上方单击,并向右下拖动,形成一个Length=11、Width=30的栅格。松开鼠标,向上移动使Height=15,使用默认的节点数。可能您的造型有所差异,调整FFD的大小,使之形成如同图10中两者相对位置关系。
4. 在XY轴上移动FFD,使之覆盖球体的上半部。
5. 在Top和Left视图中移动FFD的栅格,使其完全覆盖球体,并对准球体的中心。
6. 选择球体,单击Bind to Space Warp(绑定到空间扭曲)按钮。在Left视图中,从球体拖出一条连接线到FFD上,松开鼠标后可以看到FFD闪烁了一下。在Modify面板的编辑堆栈中我们可以看到FFD Binding出现在列表中。
7. 选择FFD的栅格,单击Modify面板下的Sub-Object,确定Control Points被选择,栅格变成了黄色。
8. 在Left视图中选择中间两排上面的三对控制点,锁定选区。为直观地了解操作结果,右击视图标示,选择Smooth+Highlights。
9. 单击移动按钮,限定在Y轴。向上移动选定的控制点19个单位。
10. 去除选区锁定,选定所有的控制点,单击Select and Non-uniform Scale,限定在X轴,鼠标向下拖动至55%处。同样,激活Front视图在X轴向上拖动至40%。现在您拥有一个带角状突起的腰部了(见图11)。
11. 现在我们建立一个Snapshot Clone(快照克隆)。选择Geosphere,在Tools菜单下,选择Snapshot。在对话框中的Clone Method下确定Mesh被选择,单击OK建立一个Geosphere的复制网格体——Geosphere02。这将会保护您的操作结果。
12. 单击工具条上的Select by Name按钮,选择并删除Geosphere01、FFD01。仅留下Geosphere02。
13. 激活Front视图,放大至满屏,单击Sub-object(Vertex)。在X轴上使用Select and Non-uniform Scale,选定腰部原球体中线上半部的所有顶点。
14. 锁定选区,向下拖动至65%。去除锁定,Sub-Object的选定。单击旋转,限定在Z轴,逆时针旋转腰部5度。做一些必要的移动使其同背景吻合。去掉所有物体的隐藏。胸部的造型完成了,以Ant_L2.max为名存盘。
图10 FFD编辑器
图11 腰部
同大部分昆虫的头部比起来,蚂蚁的头部相对简单。眼球较小,嘴部由两个钳子般的下颚组成。(见图1)
图1
一、 建立头部
头部较简单,基本的造型是由一个使用车削编辑器(Lathe)的样条输出成面片物体构成的。
1. 首先调整视图与背景。激活Front视图,放大至满屏。
2. 在Display面板下,隐藏所有的物体。
3. 在背景锁定的情况下,移动视图至蚂蚁的头部。现在我们要沿着蚂蚁头部的轮廓画出一个样条。在Create面板下,单击Shapes、Line。在Creation Method卷帘下选择Initial Type=Smooth、Drag Type=Smooth。
4. 从头部上部的中点(图2的A处)开始,沿轮廓逆时针移动,图中放置5个顶点,在头部下端的下颚(就是那颗大牙)的中点处结束(见图2的B处)。右击鼠标结束样条。
5. 在Modify面板,单击Edit Spline。确认Sub-Object中Vertex被选择。
6. 确认Front视图的网格打开,在使用车削编辑器之前,我们要旋转样条,使之两个端点在同一条Y轴垂直线上。选择Sub-object中的Spline。单击旋转按钮,限定在Z轴。逆时针旋转样条,直到其两端同视图的Y轴网格线对齐。
7. 在Modifiers卷帘下,单击Lathe。样条马上变成了花瓶状的物体。
8. 纠正车削的结果,在Parameters卷帘下的Align(对齐)内单击MAX,这样样条的车削旋转中心不再是样条的中线,而是以样条的边界端点所在的轴线为车削旋转中线,现在是不是对了?选择Output=Patch(以面片为输出结果)和Generate Mapping Coordiantes。
9. 将物体改名为“头部”或是“Head”。将视图缩小至四分之一屏。
图2