第五章:静态网格物体.doc_第1页
第五章:静态网格物体.doc_第2页
第五章:静态网格物体.doc_第3页
第五章:静态网格物体.doc_第4页
第五章:静态网格物体.doc_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章:静态网格物体 文档摘要:由于本书正在完善中,故本节内容可能在全书出版的过程中发生变化。 5.1静态网格物体的重要性 静态网格物体为Unreal Engine获得丰富的可视细节提供基础。简而言之,它们就是在外部程序如3ds Max、Maya和Photoshop中创建并添加贴图的多边形模型。在本章中,您将学习静态网格物体的工作方式,创建方式以及将其放置于关卡中的各种技巧。 静态网格物体是由电脑的图形卡绘制的,使得其绘制速度比BSP画刷快得多。由于它们从不改变位置,它们可以在显存中进行缓冲。这就意味着在关卡中可以随处放置一个静态网格物体的多个副本,而机器性能却无明显下降。 图5.1在本图中,几乎所有可视表面都是静态网格物体。 在Epic(英佩游戏公司)制作的众多游戏关卡中,几乎所有可视表面都是一个静态网格物体。请记住在设计关卡时,如果其中的BSP表面平整而又单调,静态网格物体则能够简单地添加大量视觉深度。 5.2静态网格物体工作流概述 创建静态网格物体的方法不胜枚举。据此,我们将缩小其范围,变为两个主要的工作流。这两个工作流可以用以下流程图进行描述: 图5.2本流程图描述了两种常用的静态网格物体设计方法。 第一个工 作流包括了创建高分辨率或者高多边形网格形式的静态网格物体,稍后将该网格物体制成一个法线贴图。此技术允许建模者能够创建极其丰富的物体表面细节。 一旦完成此高分辨率网格物体,一个较低分辨率的模型也同时创建。此低分辨率的网格物体将是游戏中实际显示的,但还是运用了相应的高分辨率物体生成的法线。 第二个工作流仅需要一个低分辨率的网格物体。与建立一个高分辨率网格物体模型来创建法线相反,法线贴图生成于灰度凹凸贴图,在Photoshop中可使用nVidia的免费插件生成。用于将高度图转换为法线贴图的免费插件在PaintShop Pro与GIMP中也存在,通过Internet可以快速搜索到。如果您的静态网格物体相当简单,则会发现相对于为关卡中的每一网格物体创建高分辨率几何体而言,此方法可以为您节约相当可观的时间。 在这两个工作流中,下一个步骤是相似的。您将为该对象创建一个UV贴图坐标系展开图,然后使用该展开图在Photoshop中绘出一系列贴图。在某些情况下,这些贴图将被返回至3D应用程序中,在此某些形式的光照可以烘焙至贴图本身。这使得贴图在表面上自身产生阴影,就像两片装甲的重叠。此外,如果您使用高分辨率网格物体工作流,这一步就是生成法线贴图的步骤,通常运用3D应用程序的功能对其进行转化,如3ds Max,Maya,或者Zbrush。 自此,此网格物体已导入至UnrealEd中,并且使用已建贴图生成了一个用于该网格物体的材质。此操作一经完成,该对象就建立了一个碰撞外壳,使得其它actor能够与该网格物体进行碰撞。有时,特别是玩家无法触及某一对象时,此网格物体是不需要创建碰撞表面的。 最后,您新建的静态网格物体已经可以放置于关卡中了。在下面几个指南中,将向您展示如何使用3ds Max与Photoshop创建一个简易的静态网格物体。基于简明扼要的目的,且本书也不是一本3ds Max培训教材,我们将使用低分辨率建模方法,在稍后的二维图像编辑器中创建法线贴图。 注意: 为了跟上以下三个指南的进度,您需要在电脑上安装好3ds Max。如果您没有3ds Max,可以在下载一个30天的试用版本!这些指南使用的3ds Max版本号为8。并请记住,这些指南假设读者们已具备3ds用户界面的基础知识。 图5.31)视口 2)指令面板 3)菜单条 4)工具条 5)坐标输入区域。 如果您是3ds Max新手,观看配套DVD中的介绍视频将大有裨益! 指南5.1建立一个简易静态网格物体模型,第一部分:创建一个可编辑多边形 1. 运行3ds Max 2. 从屏幕右边的指令面板中,点击“Box”(盒子)按钮。 图5.4Box按钮位于主指令面板中的Create(创建)面板中。 3. 展开“Keyboard Entry”(键盘输入)框,并输入下列维度值 Height(高度): 256 Width(宽度): 16 Length(长度): 256 图5.5完成时的键盘输入区域应该如图所示。 结束时点击“Create”(创建)按钮。 4. 按F4键显示盒子表面顶部的线框。 图5.6可以从“Perspective”(透视)视口中看到此模型的线框。 5. 选中并右击盒子,在Quad(方形)菜单的右下部分选择“Convert Editable Poly”(转换为可编辑多边形)。 图5.7任何时候只要右击3ds Max 的某一视口,Quad(方形)菜单都可见。 6. 在指令面板中,将Box_01的名称改为ArchedDoorway。 图5.8您将在Create面板的顶部找到名称字段。 7. 将您的场景保存为archedDoorway_1.max 指南5.2建立一个简易静态网格物体模型,第二部分:创建基本外形 继续上一指南。如果没有完成指南5.1,请在继续此节前完成该指南。 1. 打开在前一指南中保存的archedDoorway_1.max场景。 2. 选中此可编辑多边形对象,点击位于指令面板内的“Modify Panel”(修改面板)。展开堆栈中的Editable Poly(可编辑多边形)子对象列表,并选择Polygons。 图5.9“Modify Panel”(修改面板)标签位于“Command Panel”(指令面板)顶部。 小技巧: 您可以在选中该对象的情况下按下数字键4作为快捷键! 3. 同时选取两个大多边形表面。在左侧视口中将其框选是个办法。 4. 在指令面板的“Edit Polygons”(编辑多边形)框中,点击“Inset”(插入)按钮边的“Settings”(设定)按钮。将“Inset Amount”(插入量)设置为32并点击OK。 图5.10使用32的Inset(插入)值同时为两个表面创建一个插入副本。 5. 选取新插入的两个大多边形。然后按住 Ctrl键,并选择三个环绕于盒形物体底部周围的多边形。 图5.11您的最终选择看上去应该与此图类似。注意该选择同时包含前面及背面。 选中所有的五个多边形后,按Delete键将其删除。 6. 在列表栈中,选择“Vertices” (顶点) (或者按数字键1)。在左侧视口中,如图所示框选靠近图形底部的四个顶点。 图5.12您需要选取这些顶点以调整此框架的外形。 7. 按W键选择“Move”(移动)工具。在用户界面底部的“Coordinate Inputs”(坐标输入)中,您将看到目这些顶点的当前Z值为 32。键入值0并回车。这些顶点将会降至地面。 图5.13坐标系字段正好位于视口下方,允许您通过数值修改来更改对象的位置,旋转以及缩放。 小技巧: 不是必须键入一个0,您也可以右击坐标值边的微调控件。微调控件是输入字段边上的一对小箭头。 8. 按下数字键2使得边变为可选。如图所示在左侧视口中,分别框选围绕已删多边形的五条边中的每一条边。用框选可使您同时选取对象前后的边缘。 图5.14为进行下一步骤,您需要选中图中的各条边。 9. 选中这些边时点击位于指令面板中的“Edit Edges”(编辑边)框中Bridge(桥接)工具。使表面闭合,并创建出一个倒转的U字型物体。 图5.15您的最终结果应该如图所示。 10. 将您的场景保存为archDoorway_2.max。 指南5.3建立一个简易静态网格物体模型,第三部分:完成我们的简易模型 继续上一指南。如果没有完成指南5.2,请在继续此节前完成该指南。 1. 打开在前一指南中保存的archedDoorway_2.max 场景。 2. 选中拱门的情况下,按数字键2使得边可选,然后选中拱门内部拐角的两条边。 图5.16如图所示选取内部拐角的两条边。 3. 在“Edit Edges”(编辑边)框中,点击紧邻“Chamfer”(倒角)的Settings(设置)按钮。将Amount(量)设置为48并点击OK。 图5.17使用Chamfer(倒角)设置在拐角处创建倒角。 4. 按数字值1使得顶点变为可选。在左侧视口中沿着拱形最顶部,框选顶点,并在Edit Vertices(编辑顶点)框中,点击紧邻Weld(拼接)的Settings(设置)按钮。将值设置为0.1 (如需要)并点击OK。 图5.18拼接这些顶点以防止将来在Unreal中产生着色问题。 5. 在“Edit Geometry”(编辑几何体)框中,点击“Slice Plane”(切分平面)按钮,这将打开Slice Plane Gizmo。 图5.19Slice Plane gizmo在视口中显示出一个平面轮廓图。 6. 运用以下步骤构造一对切片: a. 点击位于指令面板中的“Reset Plane”(重置平面)按钮。 b. 激活“Move”(移动)工具(W键),并在“Coordinate Entry”(坐标输入)区域中,将Z值设置为96。 c. 点击位于指令面板中的“Slice”(切分)按钮。 d. 返回“Coordinate Entry”(坐标输入)区域,将Z值设置为72。 e. 再次点击“Slice”(切分)按钮。 f. 再次点击“Slice Plane”(切分平面)按钮使其无效 图5.20完成后,拱形门框的腿部应该如图所示有两条新的边。 7. 保持“Move”(移动)工具仍然处于激活状态,将您的“Transform Coordinate Center”(转换坐标系中心)设置为“Use Selection Center”(使用已选项中心)。 8. 如图所示,选取拱形底部前方的两个面。在“Coordinate Entry”(坐标输入)区域,将X值设置为32。对另一边重复此操作,将值设置为-32。 图5.21完成后,您的新图形应该如图所示。 注意: 根据您选择表面的顺序,可能需要取以上值的相反值进行设置。 9. 最后一步是调整表面法线,折叠对象的拐角,并避免之后出现着色问题。按下数字键5使得元素变为可选并点击该模型。这将选取模型的所有表面。 在“Polygon Properties”(多边形属性)框中,将“Auto Smooth”(自动平滑)的值设置为25,然后点击“Auto Smooth”(自动平滑)按钮。结果是使得模型的所有边都变为坚硬,或者尖锐,而不是柔软,这有助于避免在Unreal中产生着色问题。 图5.22“Auto Smooth“(自动平滑)使您能够按照一个特殊的角度来调整模型的平滑组。 10. 将您的场景保存为archedDoorway_3.max。 5.3UV贴图坐标系 一旦您的对象已建模,您就需要为它创建一系列的贴图。这些贴图最终会插入各类网格物体材质的材质通道中。 但是,在您能够创建贴图之前,您还需要为模型的UV贴图坐标创建一个展开图。思考如下问题:用您电脑的打印机为地球仪打印色彩。自然,地球仪不会进入打印机的进纸槽。您需要创建一个地球仪的展平版本,然后将它平铺在球体表面。 模型的UV使您能够精确确定贴图在表面的放置方式。从某种意义上来说,要把模型分解为片,再将这些片置于平整的展开图中,然后再使用此展开图来绘制贴图。幸运的是,由于模型的UV与它们实际的3D顶点不同,您无须为了完成此操作而改变模型的实际几何结构。 在下一指南中,我们将为我们的模型创建一个简易UV展开图,该展开图稍后可以在二维图像编辑器中用作贴图的绘制样式。但是,在此我们不深入讲解游戏贴图,因为这课题本身就要讲好几本书,我们仅仅向您展示一些创建并渲染UV展开图的方法,然后提供一个带有完整贴图的终结模型版本。 指南5.4创建一个简易UV展开图 提示: 尽管本指南确实包含了足够的信息,使初学者能够学会创建一个简易UV展开图的方法,但是具备3ds Max的基础知识仍然是大有裨益的! 1. 运行3ds Max,然后打开在前一指南中保存的ArchedDoorway.max文件。您还可以打开配套DVD中本章内容的文件,但文件名是ArchedDoorway_UVWs.max。 2. 选中ArchDoorway对象。确认您不处于子对象模式中(列表栈(Stack)中没有用黄色高亮显示出来的项目)。在“Command Panel”(指令面板)中选择“Modify Panel”(修改平面),并点击位于对象名称下方的Modifier List(修改器列表)。 按下U键一次以选取UnwrapUVW修改器。 图5.23您将在修改器列表最下方区域找到UnwrapUVW修改器。 注意: 在3ds Max中,UV坐标实际包含一个第三维度,命名为W维。但是鉴于实现目的,我们不需要此第三维度,故我们简单地将贴图坐标系称为UV坐标系。 3. 应用修改器后,点击位于指令面板中的Parameters(参数设置)框中的“Edit”(编辑)按钮。打开“Edit UVWs”(编辑UVWs)窗口。 图5.24您将在“Edit UVWs”(编辑UVWs)窗口中为模型创建UV展开图。 4. 在此我们不逐一向您展示创建展开图的方法,而是让您学会自动创建基本展开图的简单方法。然后将此展开图用作基本图,可根据您的喜好定制每个表面的放置方法。 在靠近 “Edit UVWs”(编辑UVWs)窗口底部的“Selection Mode”(选择模式)区域中,确认按下“Faces”(面)按钮。然后,拖曳选取框以包含窗口中所有的面 (它们将显示为杂乱无规律状)。 图5.25选中后,这些面将显示为大量相互重叠杂乱无章的多边形。 5. 从“Edit UVWs”(编辑UVWs)工具条中,选择 Mapping Flatten Mapping 。打开“Flatten Mapping”(平整映射)对话框。 将“Face Angle Threshold”(面角度阈值)的值设为50并点击OK。展开图设置应该如下图所示。 图5.26Flatten Mapping(平整映射)操作会创建出一个基础展开图,然后再对其进行编辑以满足需求。 6. 在“Selection Mode”(选择模式)区域,选中“Select Element”(选择元素)复选框。这样您就能够一次点击选中整个展开图,而不是仅仅选中一个面。 图5.27完成时,您应该得到了一个与此类似的展开图(为了清晰网格被隐藏了)。 花些时间在“Edit UVWs”(编辑UVWs)窗口中选取各个片,然后在透视视口中观察是如何与你的选项相对应的。您可以使用该操作认清你在选什么。 7. 在“Edit UVWs”(编辑UVWs)窗口的右上角,您将看到一些用于移动,旋转与缩放的图标。可以使用这些工具把这些片按照自己喜好的位置进行放置。要按照创建贴图的方法放置它们,请遵循以下步骤: a. 在“Edit UVWs”(编辑UVWs)窗口中选择两个拱门中位置最高的一个。选择“Move”(移动)工具并将它拖曳至第一个拱门的上方。 图5.28两片拱门已经叠在了一起,从而创建贴图的镜像效果。 注意: 您可以用鼠标滚轮缩放”Edit UVWs”(编辑UVWs)窗口,或者按住Ctrl + Alt并用左键拖曳。不断放大并确认两拱门正好重叠。这表示无论在拱门一侧绘制何种贴图,都会自动置于另一侧拱门之上! b. 调整拱门腿内部表面两个图形的位置,尽可能精确地将两者重叠。然后,框选二者并点击右上“Rotate”(旋转)+90按钮两次将其顶朝上放置。 图5.29拱门腿内侧表面现在已经重叠在一起了。 c. 完成上一步骤后,选中两片的情况下,如图所示将其放置于拱门下方。请注意在两者之间留下一小道空隙! 图5.30如图将内部表面的图片放置于拱门下方。 d. 调整门框外侧两个图形的位置并按相似的方法重叠它们,将其旋转180度,并按图示将它们放置于拱门右侧。 图5.31重叠后的外部表面图片应当放置于拱门外侧的右边。 e. 找到拱门底面的二个平面。尽可能精确地叠放它们,并将其置于拱门内侧。 图5.32拱门底面可以置于拱门下方的任意位置。 f. 调整横梁底面,也将其置于拱门内。 图5.33如图所示将横梁底面置于拱门下方某一位置。 g. 定位横梁顶部,将其旋转90度,置于拱门上方。 图5.34横梁顶部应处于拱门上方。 h. 最后,选取所有的平面并使用缩放工具对其进行缩放,使之尽可能贴合贴图空间(深蓝色正方形)。最终的展开图应该与下图类似。 图5.35务必使最终展开图完全贴合此正方形! 8. 关闭”Edit UVWs”(编辑UVWs)窗口并保存您的场景。 5.4创建UV展开图时的考量 当对一个对象进行UV分布时,要考虑一些因素。尽管本书的目的不是使您成为一位专业的贴图设计美工,但您仍然可以使用一些简单的指导方针来展开图的简洁有效。 1. 确保所有的展开图片都置于正方形内,即位于UV坐标(0,0)与(1,1)之间。千万不可超出正方形的界限! 2. 努力保持展开图的各多边形面在尺寸上彼此对应。 3. 创建展开图时努力保持多边形的原始纵横比; 避免出现贴图拉伸。 4. 如果您想在多个区域内重复使用某贴图部分,可以考虑把这些不同的UV相互重叠。 5. 尽可能将UV展开图的顶点进行拼合,避免缝隙的出现。 6. 在展开图中不要浪费空间!大片的开阔区域只能浪费贴图内存! 7. 别忘记对展开图一一标示,用以了解展开图表面与模型每一部分的对应关系。 8. 如果您创建的展开图是供另一位美工使用的,请务必与那位美工进行交流,这样大家都清楚各自对表面进行贴图的方式。 9. 在创建展开图时没有所谓的“正确”或者“错误”。只要创建出来的展开图对您或进行贴图的任何人而言有意义就行了。只要尽可能多地利用贴图空间且展开图没有过度扭曲,那就行了。 指南5.5渲染用于图像编辑软件的UV展开图 1. 运行3ds Max,然后打开在前一指南中保存的ArchedDoorway.max文件。您还可以打开配套DVD中本章内容的文件,但文件名是ArchedDoorway_UVWs.max。 2. 选择拱形走廊模型,并在“Modify Panel”(修改面板)中,在列表栈(Stack)内找到UnwrapUVW修改器。选中并点击“Edit”(编辑)按钮打开“Edit UVWs”(编辑UVWs) 窗口。 3. 从“Edit UVWs”(编辑UVWs) 窗口的“Tools”(工具)菜单中,选择 Render UVW Template 。 图5.36RenderUVs窗口使您能够为目标渲染的展开图类型进行设置。 4. Render UVs 窗口中最重要的设置是贴图分辨率。对于大多数静态网格物体而言,无需使分辨率设置高于1024 x 1024。但是请记住,由于您的展开图是按正方形方式创建的,所以一定要将其纵横比保持为1:1,并且与Unreal一贯风格保持一致,务必选择一个2次方幂的分辨率! 据此目的,若分辨率不为1024x1024,请将其值设置为1024x1024。 5. 点击Render Template(渲染模板)按钮。 图5.37新建渲染将显示您的UV展开图。 6. 渲染窗口出现,您可以以任何格式于此窗口中保存此模板。保存完成后,您可以选择任何图像编辑软件将其打开并为此模型绘制新的贴图! 注意: 如果您发现UV展开图渲染看上去不完整缺失了一些边,您尽可以放心; 因为这相当正常,是由于显示比例不为1:1的结果。 5.5创建贴图 为静态网格物体添加贴图花费的时间通常比建模过程还要长。请记住单体对象中的大部分丰富细节都是在Unreal中通过材质创建出来的。因此,要丰富这些材质,您需要准备一系列细致的贴图。一旦创建了一个UV展开图,就可以将其导入Photoshop(或者其它任意的二维绘图软件中)并创建贴图,以将展开图用作一个样板。 然而我们必须牢记可用材质数量的庞大性。您希望对象的某些部分发光嘛?是否有些区域比其它区域更为闪亮?贴图是否以某种动画形式表现出来?您需要回答这些问题,甚至更多。之后才能确定应用材质以及贴图的目的。相信大家在开始建模之前就已经对此未来模型的最终效果有了一个十分完整的概念。即使如此,在此我们仍然提供 一些草图与经验以帮助您走上贴图创建的正轨。. 在前几章创建的模型中,我们希望使其最终具有风化的金属外观效果,一些钢铁铆钉将其固定并额外增加一对发光边缘。此拱门在某些区域中应当十分明亮,而在其它区域则不尽如此。 图5.38此最终贴图具有一种风化的迷幻外观效果。 要达到所有效果,我们的材质需要多个贴图。一个赋予总体色彩,另一个控制区域的自发光,一个影响光泽等等。还可能会有其它贴图的存在,它们的作用是对区域进行遮罩效果。最后,您会发现自己已经创建了许多不同的贴图应用于同一网格物体上,所以具备二维贴图软件的良好知识将是大有裨益的。 同时,本书并不是要试图在此举例并与众多优秀的Photoshop资源进行竞争。相反,我们将向您展示贴图制作当中碰到的各种贴图材质,并囊括于配套DVD中,这样您就可以自己进行仔细研究了。 图5.39本图从左到右分别是应用于漫反射、自发光、高光以及法线中的贴图。 配合材质章节导读中学得的技巧使用这些贴图,我们已经为拱门创建了一个材质。该材质可以在配套DVD本章文件中的ImportingStaticMeshes文件包中找到。 5.6导入静态网格物体 模型和贴图完成后,就是将所有东西放入UnrealEd 内的时候了。此步骤要求导入静态网格物体以及所有贴图、材质的创建及应用,以及在需要的情况下添加碰撞模型。在此,我们将重点关注将模型从3ds Max导入UnrealEd的过程。 第一步是将该模型从3ds Max中导出为UnrealEd可读的格式。已经有一些格式可供使用,但是为简化起见,我们将使用ASCII Scene Export(ASE)格式,此格式包含于3ds Max中。 指南5.6使用ASCII Scene Export(ASE)格式将网格物体从3ds Max导出,并导入于UnrealEd 1. 运行3ds Max,然后打开在前一指南中保存的ArchedDoorway.max文件。您还可以打开配套DVD中本章内容的文件,但文件名是ArchedDoorway_UVWs.max。 2. 我们从模型定型这一步骤开始。此步骤就是把栈内数据压缩为一层,以防止之前建立的UV数据丢失。 选取模型,并在Modify Panel(修改面板)中,右击UnwrapUVW修改器并选择 Collapse All 。弹出一个警告框,但是您可以点击Yes将其忽略。 图5.40压缩对象堆栈时,总会进行警告。 3. 选取该网格物体,从“File“(文件)菜单中选择”Export Selected“(导出已选项)。在弹出的对话框中,将文件格式设置为ASCII Scene Export(ASE),并命名为 ArchedDoorway。请务必将文件保存在容易找到的位置! 当您点击OK时,出现“ASCII Export“(ASCII导出)窗口。确保在创建静态网格物体时选中以下内容: *Mesh Definition(网格物体定义) *Materials(材质) *Mesh Normals(网格物体法线) *Mapping Coordinates(映射坐标系) *Geometric(几何体) 据此目的,无需选中其它复选框也无需调整其它设置。 图5.41勾选如图所示的复选框,导出模型。 注意: 记住场景的原点(坐标位置0,0,0),在导入网格物体于Unreal时,此原点将被用作中心点。据此,在这种情况下,中心点处于中心位置。 4. 保存您的场景并关闭3ds Max。 既然网格物体已经从3ds Max中正确导出,我们就可以将其导入UnrealEd并继续我们的工作。由于UnrealEd本身就支持 ASE格式,导入此格式的静态网格物体是非常方便的。 5. 运行UnrealEd,如有需要,打开Generic Browser。 6. 从Generic Browser的“File”(文件)菜单中,选择“Import”(导入)。找到为ArchedDoorway保存的ASE文件并点击OK。在出现的“Import”(导入)对话框中,设置以下值: Package(文件包): ImportStaticMesh Group(组): Meshes Name(名称): sm_archedDoorway 您将收到一条警告信息,指出您的对象没有材质参考,将使用默认材质。此时,这是正确的。 图5.42如图所示您的模型将出现在Generic Browser 的新文件包中。 7. 在Generic Browser中,找到新的ImportStaticMesh文件包并保存。 5.7使用静态网格物体编辑器 静态网格物体编辑器是设置静态网格物体以供关卡使用的主要工具。可以用它来更改静态网格物体的全局材质,设置碰撞并调整其属性。它的界面相当简单,提供静态网格物体的预览,以及一些工具与属性列表。 图5.43静态网格物体编辑器具有非常简单的用户界面,允许快速更改网格物体的设置。 静态网格物体编辑器最重要的作用是在将新建网格物体放置于关卡之前,对其进行最终设置。在下一指南中,我们将探讨如何使用静态网格物体编辑器来调整我们的预览图并应用新建材质。 指南5.7使用静态网格物体编辑器 1. 运行UnrealEd并打开与本章内容相关的 ImportStaticMesh文件包。本指南中,我们将使用到本书中包含的资源。稍后您就可以使用本指南中学得的技巧应用于自己的网格物体。 2. 在Generic Browser中找到sm_archedDoorway 静态网格物体并双击打开静态网格物体浏览器。 3. 第一步就是对材质进行设置。使用静态网格物体编辑器将某一材质应用于静态网格物体上,将会使得关卡中所有该静态网格物体的副本均应用该材质。如果您需要更改某一特定网格物体上的应用材质,您只需更改该网格物体的单体属性,相关内容我们将在本章稍后单独列出一篇指南进行讲解。 在静态网格物体编辑器中,展开LOD 0 Elements 0,并点击材质特性。用Generic Browser找到 mat_archedDoorway_plain 材质,并点击“Use Selection in Browser”(使用浏览器中的已选项)按钮应用之。 图5.44将材质放至 Material属性后,会出现于网格物体之上。 4. 既然已应用了该材质,最后一步就是在Generic Browser中为该静态网格物体建立一个新的截图。在预览窗口中分别使用鼠标左键与右键将拱门定位于一个有趣的角度。 完成后点击“Save Thumbnail Angle”(保存缩略图角度)按钮。 图5.45Generic Browser中的对象上出现了新的缩略图。 5. 保存您的文件包。 5.8碰撞 在当前Generic Browser中,网格物体有一个警告,告知没有碰撞模型存在。这就意味着当前的玩家或其它actors可以穿越它,正如没有物理实物存在一样。对于某些网格物体,特别是放置于远处的装饰物,是可以这样设置的。但是在许多情况下,当actor与网格物体发生接触时,需要产生某种类型的碰撞。 要创建此碰撞,您需要为对象建立一个碰撞模型。碰撞模型就是玩家看不到的简易多边形网格物体,表现为某种“力场”以阻止actor穿过该静态网格物体。在多数情况下,它将环绕于静态网格物体外围,与对象表面非常接近。幸运的是,UnrealEd使得此类碰撞对象的创建过程非常简单。当然,如果您对碰撞模型的创建类型有所了解并能根据模型做出正确的类型选择就更好了。 在静态网格物体编辑器中,您将找到“Collision”(碰撞)菜单,其中包含了UnrealEd能够为网格物体生成的所有的碰撞类型列表。多数的碰撞模型包含了一个DOP值。DOP意为 discrete oriented polytope(离散定向多面体) ,涉及到创建该碰撞对象需要使用的平面数量。例如,一个6-DOP 的碰撞对象是指由6个平面创建得出,创建出一个简易的边界框。10-DOP对象是指沿某一特定轴 (例如Z轴)的所有边缘都为倒角的边界框。18-DOP对象是指所有边缘都为倒角的边界框,26-DOP是指所有的边缘及顶点都为倒角的立方体边界框。 但是,您会注意到所有基于DOP的对象在“Collision”(碰撞)菜单中都是“简化” 碰撞。这就意味着UnrealEd 将使用某种算法消除碰撞模型的多余顶点,尽可能使之保持简单性。请记住,您的碰撞模型越简单,计算速度就越快! UnrealEd还提供对简化球状模型的访问,以及“Auto Convex Collision”(自动凸面碰撞)选项,允许创建拥有多个部分的碰撞模型。我们将在下一指南中讨论对该选项的使用。 指南5.8创建碰撞 1. 继续前一指南,或者打开配套DVD本章文件中的StaticMeshCollision文件包。 2. 双击sm_archedDoorway 静态网格物体打开静态网格物体编辑器。然后点击静态网格物体编辑器工具栏中的“Show Collision”(显示碰撞)按钮。目前没有任何碰撞显示。 3. 在静态网格物体编辑器中,点击“Collision”(碰撞)菜单并选择 6DOP simplified collision 。然后点击位于静态网格物体编辑器中的“Show Collision”(显示碰撞)按钮。 图5.46应用一个6DOP碰撞后,一个边界框出现在模型周围。 您将注意到一个绿色盒子出现在模型周围,这就是模型的碰撞表面。游戏中的玩家或其他的actor 将与之产生碰撞。 4. 此简易边界盒碰撞的问题在于我们的玩家无法从底下走过去。尽管此模型是一个拱门,但其碰撞盒却将其计算为一堵实心的墙。但是,在我们创建一个更合适的碰撞之前,再次点击“Collision”(碰撞)菜单并选择 10DOP-Z simplified collision 。弹出警告菜单后点击Yes。 请注意边界框的模型并没有改变。这是由于简化算法检测到10-DOP 对象的附加平面不是必须的而已经将其简化。 5. 再次点击“Collision”(碰撞)菜单,这次选择“Auto Convex Collision”(自动凸面碰撞)。出现一个小窗口,能够更改三个设置,此设置控制新的碰撞网格物体的精确度。请记住将碰撞网格物体尽可能地保持简单。 现在,保留这些设置为默认值并点击“Apply”(应用)与“Close”(关闭)。请注意新的碰撞模型由几个不同的片组成,这些片使用不同的色彩编码以进行区分。这种类型的碰撞表面对于含有开放区域的对象,如对拱门而言,是非常理想的。 图5.47新的碰撞模型允许玩家走过拱门下方。 6. 关闭静态网格物体编辑器并保存您的文件包。 5.9创建自定义碰撞 随着您的技巧在创建静态网格物体过程中不断提升,最终您将可以自行创建碰撞网格物体,而不是依靠Unreal 来创建。这个过程相当简单,尽管您需要了解一些关于凸面体的知识。 所有的碰撞网格物体都必须是凸起的。简而言之,这意味着在任意角度画出一条穿越图形的直线应该只进入与离开图形一次。参见下图的例子。 图5.48左图为凸面体。右图为凹面体。 碰撞模型也必须按照一个特殊约定来进行命名。通过使用此约定,可以使得UnrealEd自动检测碰撞模型的存在并将其应用于静态网格物体。该规则很简单:只要在名称前添加一个前缀。前缀及其用法列出如下: UBX_: 使用一个未编辑的盒子作为碰撞网格物体时 USX_ : 使用一个未编辑的球体作为碰撞网格物体时 UCX_ : 使用一个自定义凸面体作为碰撞网格物体时 注意: 在命名规则中,前缀中的下划线是必须的。所以,如果您以未编辑盒体创建了一个名为“collideBox” 的碰撞模型,它的名称将是UBX_collideBox。还需清楚,我们用 “未编辑”来表示您没有移动或者更改对象的任何顶点、边缘或者多边形! 创建自定 义碰撞为您的工作提供了强大的灵活性及效率,但是您必须牢记,关键是尽量保持网格物体的简单性。过多的顶点可能导致计算碰撞时需要进行额外的处理。所幸我们之前创建的拱门网格物体非常简单以致于我们可以使用它的实际形状来创建其碰撞表面。但是正如您看到的,拱门本身是一个凹面形。在下一指南中,我们将讨论 将拱门分割成一系列独立网格物体的方法,然后使用这些网格物体进行碰撞计算。 指南5.9根据现有模型创建自定义碰撞表面,第一部分 1. 运行3ds Max,并打开之前创建的archedDoorway.max文件,或者打开配套DVD本章文件中的ArchedDoorway_CustomCollsion.max文件。 注意:如果您在拱门创建的过程中进行了任何自定义的建模操作,请打开DVD中包含的文件! 2. 选择拱门对象,并用W键激活“Move”(移动)工具。然后,按住Shift键,沿X轴拖曳出模型的一个副本。在出现的“Clone”(克隆)对话框中,确认“Option”(选项)组被设置为“Copy”(复制)且数量设置为1,然后点击OK。 图5.49对象已经复制成功。 3. 选择初始模型并右击它。从“Quad”(方形)菜单的右上角中,选择“Freeze Selection”(冻结已选项)。此初始模型现在应该变灰,且为不可选状态。 4. 选择模型副本并从用户界面的底部“Coordinate Entry Fields”(坐标输入字段)中,将X平移值设置为0 (快捷方法是右击微调控件即可),以将该副本与原模型重叠。 图5.50当两个模型相互重叠时,看上去只有一个拱形了。 5. 选中新建副本,按数字键1使得顶点变为可选状态。然后,在“Command Panel”(指令面板)中的“Edit Geometry”(编辑几何体) 框下,点击“Slice Plane”(切分平面)按钮使Slice Plane Gizmo出现。 6. 我们将对对象进行切片,将其分为几个独立的凸面体部分,然后将这些部分切分为不同的网格物体。要进行此操作,请遵循以下简易步骤: a. 紧邻“Command Panel”(指令面板)中“Slice Plane”(切分平面)按钮,勾选“Split”(分割)复选框。这使得“Slice Plane”(切分平面)如同一束切割激光进行工作,真正地划分网格物体。 b. 确保选中“Move Tool”(移动工具),并于“Coordinate Entry Fields”(坐标输入字段)中,将 Z设置为96并点击“Slice”(切分)。 c. 将Z坐标值设置为176并点击“Slice”(切分)。 d. 按E键激活“Rotate Tool”(旋转工具),并将X坐标值设置为90。 e. 按W键返回到“Move Tool”(移动工具)。将Y坐标设置为48并点击“Slice”(切分)。 f. 将Y坐标设置为-48并点击“Slice”(切分)。 g. 再次点击“Slice Plane”(切分平面)按钮使其失效。 图5.51模型外观并没有任何不同,但现在它已切分为几片。 7. 将此工作保存为Archway_collision.max。 指南5.10根据现有模型创建自定义碰撞表面,第二部分 1. 继续上一指南。如果您尚未完成指南4.9,请先完成它。 2. 您的模型现在已经被分为不同的部分,但是我们需要使每个部分变为单个独立的对象。按数字键5使得“Elements”(元素)变为可选,然后点击拱门的左下底座。在“Command Panel”(指令面板)中的“Edit Geometry”(编辑几何体)框下,点击“Detach”(分离)按钮。 在出现的对话框中,将名称设置为UCX_leftFoot并点击OK,然后按数字键6退出“Sub-Object Mode”(子对象模式)。 3. 对每个元素重复此过程,按下图所示对其命名。对最后一个对象,您无须“Detach”(分离),只需更改其名称即可。 图5.52本图显示对拱门各部分的命名规则。 4. 您的下一步骤为在分割过程中产生的任何非闭合端进行封盖。 a. 选择其中一片,按下数字键3使得边界可选。 b. 框选整片部分。至少高亮显示其中的一条边缘(如果您看不到边缘请按F4)。此边缘就是一个边界,在继续下一步前需要被闭合。 c. 在“Command Panel”(指令面板)中的“Edit Borders”框下,点击“Cap”(封盖)。此变没有发生可见变更,但是非闭合端已封闭完毕。在下图中,您可以看到某一部分已经从对象上移开的结果。 图5.53如此图前后所示,“Cap”(封盖)工具将非闭合端闭合了。 d. 对所有剩余部分重复此过程。 5. 在导出模型前,您可能需要测试此凸面体。要进行此操作,点击“Command Panel”(指令面板)中的“Utilities Pane”(工具块)。它位于右侧远端的标签上。在“Utilities Pane”(工具块)底部,您会看到“Reactor”(反应器)按钮。点击后在底部将发现“Utils”(工具)框。 在“Utils”(工具)框内,您会找到“Test Convexity”(测试凸面体)按钮。您可以选中任意对象并点击此按钮,以自动检测该对象为凸面体还是为凹面体。 现在请对所有对象进行测试。 图5.54“Test Convexity”(测试凸面体)按钮提供了快速的方法,告知您此对象是否是一个完好的碰撞网格物体。 注意: 如果您的对象中有一个被测试为凹面体,就还需要将其非闭合端进行闭合! 6. 右击视口中的空白区域并从quad(方形)菜单的右上角中选择“Unfreeze All”(取消冻结所有)。接下去框选场景中的所有对象并如指南4.6中所示将其导出至ASE。您需要将它们同时导出;不要一个一次。 7. 在UnrealEd中打开Generic Browser 并选择“Import”(导入)。找到此ASE文件,并在“Import“(导入) 设置中键入以下值: Package(文件包): StaticMeshImport Group(组): Meshes Name(名称): sm_archwayWithCollision 如果在静态网格物体编辑器中查看该网格物体,您会注意到它已经具备了自己的碰撞网格物体! 图5.55点击“Show Collision”(显示碰撞)按钮,就能够看到您的自定义碰撞网格物体! 8. 保存您的文件包。 5.10放置静态网格物体 至此,您的静态网格物体应该可以放置在关卡中了。要放置一个静态网格物体很简单; 只要从Generic Browser 中选择某一特定网格物体并通过右击将其进行放置。但是在放置静态网格物体的时候,请牢记以下步骤。 1. 在关卡各处放置同一网格物体的多个副本将获益颇多。这是因为显卡在处理关于每个网格物体的信息的方法。例如,在关卡中放置同一网格物体的1000个副本只会耗费相对少量的机器资源,而放置1000个不同的网格物体将会大大消耗机器资源。 2. 请记住应该使用静态网格物体来塑造关卡中的大部分物理细节。千万不要依赖BSP做大于general form和布局功能,因为BSP的计算速度要缓慢得多。 3. 尽量避免在关卡中随机放置静态网格物体。如果您有意识地放置网格物体,则关卡看上去会更为完整。在任何可能的情况下都要将自己摆放在内部设计人员的位置上。 4. 旋转或者重新缩放一个静态网格物体可以为此网格物体赋予全新的效果。例如,简单缩放一下垂直水管就可以将其变为巨型圆柱! 在下一指南中,我们会在一个简易关卡中放置此新建静态网格物体,并研究一下如何更改其属性。 指南5.11在关卡中放置并调整静态网格物体 1. 运行UnrealEd。打开SMPlacement关卡及SMPlacement文件包,它们都包含在配套DVD本章的文件中。 2. 在Generic Browser中,选择sm_archedDoorway 静态网格物体。右击“Perspective”(透视)视口中的开阔空间中央并从关联菜单中选择 Add Actor Add StaticMesh:sm_archedDoorway 。 使用平移,旋转及缩放控件按照您的喜好将网格物体放置在关卡中。 图5.56最后,模型的一个副本出现在关卡中! 3. 按住Alt键,使用平移控件移动该网格物体并创建出一个副本。请随意制作几个不同的副本;看看您能否构思出一个有趣的布局! 提示: 为了精确控制网格物体的比例,尝试在用户界面底部的“Status Bar”(状态栏)中使用不同的“DrawScale”(绘制比例)值! 图5.57即使只有一个网格物体,您也可以做出一些有趣的变化。 4. 选择其中一个副本,并按

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论