您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > unity--3D-课件-第08章-模型与动画
第1页第八章模型与动画第2页8.13D模型背景知识8.1.1主流3D建模软件的介绍Autodesk3DStudioMaxAutodeskMayaCinema4D第3页8.13D模型背景知识8.1.1主流3D建模软件的介绍Autodesk3DStudioMaxAutodeskMayaCinema4D第4页8.13D模型背景知识8.1.2Unity与建模软件单位的比例关系为了让模型在导入Unity后能够保持其本来的尺寸,就需要调整建模软件的系统单位或者尺寸。在3D建模软件中,应尽量使用“米”制单位。表8-1中展示了建模软件的系统单位在设置成“米”制单位后,与Unity系统单位的对应比例。建模软件建模软件内部米制尺寸/m导入Unity中的尺寸/m与Unity单位的比例关系3dsMax10.01100:1Maya11001:100Cinema4D11001:100第5页8.13D模型背景知识8.1.2Unity与建模软件单位的比例关系下面将以3dsMax为例,介绍一下参数设置调整的过程(1)打开3dsMax软件后,打开“自定义”菜单下的“单位设置”选项,如图8-1所示。(2)在弹出的“单位设置”对话框中,将“显示单位比例”下的“公制”选项修改为“厘米”。如图8-2所示。(3)点击对话框顶部的“系统单位设置”按钮,在弹出的“系统单位设置”对话框中将单位修改为“厘米”,如图8-3所示。修改完成后单击确定完成参数设置调整。图8-1自定义菜单图8-2单位设置菜单图8-3系统单位设置菜单第6页8.13D模型背景知识8.1.3将3D模型导入Unity下面以3dsMax为例,为读者演示一遍从建模到将模型导入Unity的过程。具体步骤如下。(1)首先打开3dsMax,点击右侧“AECExtended”(AEC扩展)中“Foliage”(树)按钮,在下方的列表中的模型中任意选择一种,创建一个树模型。如图8-4所示,这时就完成了一个最基本的建模工作。第7页8.13D模型背景知识8.1.3将3D模型导入Unity(2)点击窗口左上角的3dsMax标志,打开下拉菜单。单击导出选项,如图8-5所示。然后会弹出对话框,选择导出的路径并且为导出的文件命名(注意保存类型选择.FBX),点击保存按钮即可导出。(3)将模型导入Unity中,点击Unity中菜单栏单击“Assets”→“ImportNewAssets...”,会弹出导入资源对话框,按照模型的路径找到并选中模型,点击导入按钮,完成导入。导入的模型会保存在Assets文件夹中,开发者可以在Assets面板中查看以及使用。第8页8.2网格—Mesh8.2.1网格过滤器(MeshFilter)网格过滤器中有一个重要的属性——“Mesh”,用于储存物体的网格数据,它可以从资源中拿出网格并将网格传递给网格渲染器(MeshRenderer),并在屏幕上渲染。在导入模型资源时,Unity会自动创建一个网格过滤器,如图8-6所示。图8-6网格过滤器组件第9页8.2网格—Mesh8.2.2Mesh属性和方法介绍(1)Mesh中有一些用于储存物体的网格数据的属性,这些属性主要用于储存网格中各种数据,并且均以数组的形式出现,详细说明如表8-2所示。属性说明属性说明vertices网格的顶点数组normals网格的法线数组tangents网格的切线数组uv网格的基础纹理坐标uv2如果存在,这是为网格设定的第二个纹理坐标subMeshCount子网格的数量。每种材质都有一个独立的网格列表bounds网格的包围体colors网格的顶点颜色数组triangles包含所有三角形顶点索引的数组vertexCount网格中顶点的数量(只读)boneWeights每个顶点的骨骼权重bindposes绑定的姿势。每个索引绑定的姿势使用具有相同索引的骨骼第10页8.2网格—Mesh8.2.2Mesh属性和方法介绍(2)Mesh中有生成或修改物体网格的方法,这些方法主要用于设置储存网格各种数据,并且均以数组的形式出现,详细说明如表8-3所示。方法说明方法说明Clear清空所有顶点数据和所有三角形索引RecalculateBounds重新计算从网格包围体的顶点RecalculateNormals重新计算网格的法线Optimize显示优化的网格GetTriangles返回网格的三角形列表SetTriangles为网格设定三角形列表CombineMeshes组合多个网格到同一个网格第11页8.2网格—Mesh8.2.3Mesh的使用(1)首先创建一个工程项目,并命名为“BNUMeshes”。然后创建地形。(2)创建水。选中“Assets”文件夹,右键选择ImportPackage→Water(ProOnly)导入标准水资源包,如图8-7所示。然后拖拽DaylightWater到场景中,并调整水和地形的位置参数,如图8-9和图8-10所示,最终实现如图8-8的位置效果。图8-9水位置参数图8-10地形位置参数第12页8.2网格—Mesh8.2.3Mesh的使用图8-7导入标准水资源包图8-8地形与水面的位置第13页8.2网格—Mesh8.2.3Mesh的使用(3)创建两个空对象,分别命名为“Expansion”和“Triangle”,具体步骤为“GameObject”→“CreateEmpty”,如图8-11所示。然后两个空对象添加网格过滤器,先选中对象然后单击菜单“Component”→“Mesh”→“MeshFilter”为对象添加网格过滤器,如图8-12所示。图8-11创建空对象图8-12添加网格过滤器第14页8.2网格—Mesh8.2.3Mesh的使用(4)下面向两个空对象的网格过滤器组件中添加网格属性。将“Assets\Meshes”文件夹下的“Triangle.FBX”和“Expansion.FBX”模型文件中的网格“Box01”,如图8-13,分别拖拽到“Expansion”和“Triangle”对象的网格过滤器组件的“Mesh”属性中,如图8-14所示。图8-13模型文件中的网格“Box01”图8-14网格过滤器组件第15页8.2网格—Mesh8.2.3Mesh的使用(5)创建一个空对象,并且命名为“Obj1”,调整该对象的位置和大小,具体参数如图8-15所示。然后为“Obj1”对象添加网格过滤器和网格渲染器,具体步骤为选中对象然后单击菜单“Component”→“Mesh”→“MeshRenderer”为对象添加网格渲染器,如图8-16所示。图8-15“Obj1”对象的位置和大小图8-16添加网格渲染器第16页8.2网格—Mesh8.2.3Mesh的使用(6)然后“Obj1”对象添加纹理。将“Assets\Textures”文件夹下的“wenli.tga”纹理文件拖拽到“Obj1”对象上,然后按照相同的方法再创建4个对象,并分别命名为“Obj2”、“Obj3”、“Obj4”、“Obj5”,拖拽后的五个对象的网格渲染器的“material”属性就均被设置为“wenli”材质,如图8-17所示。图8-17“Obj1”对象的网格渲染器组件第17页8.2网格—Mesh8.2.3Mesh的使用(7)单击鼠标右键,在弹出的菜单中选择“Create”→“C#Script”创建脚本。命名为“BNUMesh.cs”,然后双击打开脚本,开始“BNUMesh.cs”脚本的编写,本脚本主要用于通过控制网格属性来实现物体变形的效果4publicclassBNUMesh:MonoBehaviour{5Meshmesh;//物体的网格对象6inttime;//用于记录时间7publicGameObject[]g;//包含网格的对象数组8Mesh[]m;//网格对象数组9publicListVector3vertice;//网格的顶点数组10publicListinttriangle;//包含所有三角形顶点索引的数组11publicListVector2uv;//网格的基础纹理坐标12publicListVector3normal;//网格的法线数组13publicListVector4tangent;//网格的切线数组14boolbian=true;//物体一次变形是否完成15ints=0;//物体变形形状标志位第18页8.2网格—Mesh8.2.3Mesh的使用(8)在“BNUMesh.cs”脚本中Start方法的主要功能是系统通过在场景加载时调用此方法来实现物体网格的细化,Start方法的具体代码如下。详见课本(9)在“BNUMesh.cs”脚本中Update方法的主要功能是系统通过调用此方法来不断改变网格数据使物体不断变形。第19页8.2网格—Mesh8.2.3Mesh的使用(10)将脚本“BNUMesh.cs”分别拖拽到上面创建的六个游戏对象上。然后单击游戏对象,在属性查看器中可看到脚本组件的内容,然后设置参数,如图8-18所示。图8-18脚本参数设置第20页8.2网格—Mesh8.2.3Mesh的使用(11)单击游戏运行按钮,观察效果。在Game窗口中可以看到地形和不断变形的六个物体。如图8-19和图8-20所示。图8-19案例运行效果图1图8-20案例运行效果图2第21页8.3骨骼结构映射——AvatarAvatar是Mecanim动画系统中自带的人形骨骼结构与模型文件中的骨骼结构之间的映射,将带有动画的模型文件资源导入Unity3D后,系统会自动为模型文件生成一个Avatar文件作为其子对象,如图8-21所示。图8-21Avatar文件图第22页8.3骨骼结构映射——Avatar8.3.1Avatar的创建单击刚刚的人形角色模型文件,在Inspector视口中选择Rig选项,如图8-22所示。单击AimationType下拉按钮,选择Humanoid选项,然后点击Apply按钮,视口变成如图8-23所示。完成后该模型文件已经被设置为人形角色模型,并且系统会为其创建Avatar文件。8-22Rig选项图8-23Humanoid模式第23页8.3骨骼结构映射——Avatar8.3.2Avatar的配置(1)在Assets面板中单击模型文件下子对象Avatar文件,然后单击Inspector面板中的“ConfigureAvatar”按钮,如图8-24所示。此时系统会关闭原场景窗口,进入Avatar的配置窗口。配置窗口是系统开启的一个临时Scene视口,并且配置结束后该临时窗口会自动关闭。图8-24图8-25第24页8.3骨骼结构映射——Avatar8.3.2Avatar的配置(2)配置窗口的Scene窗口中会出现导入人物模型的骨骼,如图8-26所示。右侧为Avatar的Inspector面板,配置窗口与平时开发用的Scene窗口相同,更改Inspector中的参数后也会改变显示在Scene视口中的模型。图8-26Scene视口第25页8.3骨骼结构映射——Avatar8.3.2Avatar的配置(3)在配置窗口右侧的Avatar配置面板中可以按部位对人形角色模型进行配置,此面板中共分为“Body”、“Head”、“LeftHand”和“RightHand”四个方面,分别对应四个按钮,如图8-25所示。点击不同的按钮会出现不同部位的骨骼配置窗口,并且各个部位的配置互不影响,如图8-27和图8-28所示。图8-27头部骨骼配置窗口图8-28手部骨骼配置窗口第26页8.3骨骼结构映射——Avatar8.3.2Avatar的配置(4)一般情况下开发者创建了Avatar后Uniy3D都会对其正确的初始化,但有时候如果出于模型文件本身的问题,Unity3D无法识别到每个部位相应的骨骼,此时错误部位就会呈现红色,如图8-29所示。图8-29错误部位呈红色第27页8.3骨骼结构映射——Avatar8.3.2Avatar的配置(5)开发者此时需要手动更改错误部位的骨骼。首先在Hierarchy窗口的骨骼列表中找到正确的骨骼,如图8-30所示。
本文标题:unity--3D-课件-第08章-模型与动画
链接地址:https://www.777doc.com/doc-5137902 .html