




免费预览已结束,剩余48页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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系统单位的对应比例 第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网格 Mesh 8 2 1网格过滤器 MeshFilter 网格过滤器中有一个重要的属性 Mesh 用于储存物体的网格数据 它可以从资源中拿出网格并将网格传递给网格渲染器 MeshRenderer 并在屏幕上渲染 在导入模型资源时 Unity会自动创建一个网格过滤器 如图8 6所示 图8 6网格过滤器组件 第9页 8 2网格 Mesh 8 2 2Mesh属性和方法介绍 1 Mesh中有一些用于储存物体的网格数据的属性 这些属性主要用于储存网格中各种数据 并且均以数组的形式出现 详细说明如表8 2所示 第10页 8 2网格 Mesh 8 2 2Mesh属性和方法介绍 2 Mesh中有生成或修改物体网格的方法 这些方法主要用于设置储存网格各种数据 并且均以数组的形式出现 详细说明如表8 3所示 第11页 8 2网格 Mesh 8 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网格 Mesh 8 2 3Mesh的使用 图8 7导入标准水资源包图8 8地形与水面的位置 第13页 8 2网格 Mesh 8 2 3Mesh的使用 3 创建两个空对象 分别命名为 Expansion 和 Triangle 具体步骤为 GameObject CreateEmpty 如图8 11所示 然后两个空对象添加网格过滤器 先选中对象然后单击菜单 Component Mesh MeshFilter 为对象添加网格过滤器 如图8 12所示 图8 11创建空对象图8 12添加网格过滤器 第14页 8 2网格 Mesh 8 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网格 Mesh 8 2 3Mesh的使用 5 创建一个空对象 并且命名为 Obj1 调整该对象的位置和大小 具体参数如图8 15所示 然后为 Obj1 对象添加网格过滤器和网格渲染器 具体步骤为选中对象然后单击菜单 Component Mesh MeshRenderer 为对象添加网格渲染器 如图8 16所示 图8 15 Obj1 对象的位置和大小图8 16添加网格渲染器 第16页 8 2网格 Mesh 8 2 3Mesh的使用 6 然后 Obj1 对象添加纹理 将 Assets Textures 文件夹下的 wenli tga 纹理文件拖拽到 Obj1 对象上 然后按照相同的方法再创建4个对象 并分别命名为 Obj2 Obj3 Obj4 Obj5 拖拽后的五个对象的网格渲染器的 material 属性就均被设置为 wenli 材质 如图8 17所示 图8 17 Obj1 对象的网格渲染器组件 第17页 8 2网格 Mesh 8 2 3Mesh的使用 7 单击鼠标右键 在弹出的菜单中选择 Create C Script 创建脚本 命名为 BNUMesh cs 然后双击打开脚本 开始 BNUMesh cs 脚本的编写 本脚本主要用于通过控制网格属性来实现物体变形的效果4publicclassBNUMesh MonoBehaviour 5Meshmesh 物体的网格对象6inttime 用于记录时间7publicGameObject g 包含网格的对象数组8Mesh m 网格对象数组9publicListvertice 网格的顶点数组10publicListtriangle 包含所有三角形顶点索引的数组11publicListuv 网格的基础纹理坐标12publicListnormal 网格的法线数组13publicListtangent 网格的切线数组14boolbian true 物体一次变形是否完成15ints 0 物体变形形状标志位 第18页 8 2网格 Mesh 8 2 3Mesh的使用 8 在 BNUMesh cs 脚本中Start方法的主要功能是系统通过在场景加载时调用此方法来实现物体网格的细化 Start方法的具体代码如下 详见课本 9 在 BNUMesh cs 脚本中Update方法的主要功能是系统通过调用此方法来不断改变网格数据使物体不断变形 第19页 8 2网格 Mesh 8 2 3Mesh的使用 10 将脚本 BNUMesh cs 分别拖拽到上面创建的六个游戏对象上 然后单击游戏对象 在属性查看器中可看到脚本组件的内容 然后设置参数 如图8 18所示 图8 18脚本参数设置 第20页 8 2网格 Mesh 8 2 3Mesh的使用 11 单击游戏运行按钮 观察效果 在Game窗口中可以看到地形和不断变形的六个物体 如图8 19和图8 20所示 图8 19案例运行效果图1图8 20案例运行效果图2 第21页 8 3骨骼结构映射 Avatar Avatar是Mecanim动画系统中自带的人形骨骼结构与模型文件中的骨骼结构之间的映射 将带有动画的模型文件资源导入Unity3D后 系统会自动为模型文件生成一个Avatar文件作为其子对象 如图8 21所示 图8 21Avatar文件图 第22页 8 3骨骼结构映射 Avatar 8 3 1Avatar的创建单击刚刚的人形角色模型文件 在Inspector视口中选择Rig选项 如图8 22所示 单击AimationType下拉按钮 选择Humanoid选项 然后点击Apply按钮 视口变成如图8 23所示 完成后该模型文件已经被设置为人形角色模型 并且系统会为其创建Avatar文件 8 22Rig选项图8 23Humanoid模式 第23页 8 3骨骼结构映射 Avatar 8 3 2Avatar的配置 1 在Assets面板中单击模型文件下子对象Avatar文件 然后单击Inspector面板中的 ConfigureAvatar 按钮 如图8 24所示 此时系统会关闭原场景窗口 进入Avatar的配置窗口 配置窗口是系统开启的一个临时Scene视口 并且配置结束后该临时窗口会自动关闭 图8 24 图8 25 第24页 8 3骨骼结构映射 Avatar 8 3 2Avatar的配置 2 配置窗口的Scene窗口中会出现导入人物模型的骨骼 如图8 26所示 右侧为Avatar的Inspector面板 配置窗口与平时开发用的Scene窗口相同 更改Inspector中的参数后也会改变显示在Scene视口中的模型 图8 26Scene视口 第25页 8 3骨骼结构映射 Avatar 8 3 2Avatar的配置 3 在配置窗口右侧的Avatar配置面板中可以按部位对人形角色模型进行配置 此面板中共分为 Body Head LeftHand 和 RightHand 四个方面 分别对应四个按钮 如图8 25所示 点击不同的按钮会出现不同部位的骨骼配置窗口 并且各个部位的配置互不影响 如图8 27和图8 28所示 图8 27头部骨骼配置窗口图8 28手部骨骼配置窗口 第26页 8 3骨骼结构映射 Avatar 8 3 2Avatar的配置 4 一般情况下开发者创建了Avatar后Uniy3D都会对其正确的初始化 但有时候如果出于模型文件本身的问题 Unity3D无法识别到每个部位相应的骨骼 此时错误部位就会呈现红色 如图8 29所示 图8 29错误部位呈红色 第27页 8 3骨骼结构映射 Avatar 8 3 2Avatar的配置 5 开发者此时需要手动更改错误部位的骨骼 首先在Hierarchy窗口的骨骼列表中找到正确的骨骼 如图8 30所示 然后将正确的骨骼拖拽到Inspector视口中该骨骼相对应的位置上 若拖拽到正确位置后 错误的部位会变回绿色 Avatar的也就配置完成了 图8 30Hierarchy窗口中的骨骼列表 第28页 8 3骨骼结构映射 Avatar 8 3 3Muscle的配置 1 点击Avatar视口中的Muscles按钮进入Muscle的配置窗口 该窗口和刚刚的骨骼配置窗口类似 由预览窗口 设置窗口及附加配置窗口三部分组成 2 下面以左胳膊的骨骼为例对参数调节进行讲解 首先选中设置窗口中LeftArm参数 其附带的子参数也会随之展开 包括肩部的上下和前后移动 胳膊的上下 前后移动和转动等等 如图8 31所示 图8 31Muscle配置窗口 第29页 8 3骨骼结构映射 Avatar 8 3 3Muscle的配置 3 读者可以通过拖动参数对应的拖拉条 调节相对应部位骨骼的运动范围 同时在Scene窗口中对应的骨骼上会出现一个扇形区域 表示骨骼旋转过的范围 如图8 32所示 能够帮助开发者调节骨骼的动作范围 图8 32Scene视图 第30页 8 3骨骼结构映射 Avatar 8 3 3Muscle的配置 4 在下方AdditionalSetting窗口中还可以进行其它的设置 比如UpperArmTwist参数 如图8 33所示 读者可通过拖动其拖拉条该骨骼的运动范围进行调整 设置完毕之后点击配置窗口右下角的 Done 按钮结束Muscle的配置 图8 33其它设置窗口 第31页 8 3骨骼结构映射 Avatar 8 3 3Muscle的配置 5 返回播放任务模型的动画 在Assets面板中找到导入的模型资源 点击其中的动画文件 如图8 34所示 在动画的Inspetor面板下方会播放该动画 点击上方的进度条可以按时间查看动画每帧的动作 如图8 35所示 8 34模型文件下的动画文件 第32页 8 3骨骼结构映射 Avatar 8 3 3Muscle的配置 8 35播放动画文件 第33页 8 4动画控制器 8 4 1创建动画控制器在Assets面板中单击鼠标右键 Create AnimatorController 创建一个动画控制器 如图8 36所示 动画控制器的显示和修改在独立的动画编辑界面 双击该动画控制器 进入动画控制器编辑窗口 如图8 37所示 图8 36创建动画控制器图8 37动画控制器编辑窗口 第34页 8 4动画控制器 8 4 2动画控制器的配置1 动画状态机和过渡条件动画状态机 一个角色在游戏中的不同状态下可以作出不同的动作 状态机来更为方便地控制角色动画 每一个动画控制器中的状态机会有不同的颜色 每一个动画状态机都对应一个动作 动画状态机的参数含义如表8 4所示 第35页 8 4动画控制器 8 4 2动画控制器的配置动画状态机之间的箭头表示两个动画之间的连接 将鼠标箭头放在动画状态单元上 右键点击 MakeTransition 创建动画过渡条件 并再次点击另一个动画状态单元上 完成动画过渡条件的连接 第36页 8 4动画控制器 8 4 2动画控制器的配置2 过渡条件的参数设置创建过渡条件的参数的方法 在动画状态机窗口左侧中的Parameters视口 点击右上角的 号可选择想要添加的参数类型 如图8 39所示 然后可以为参数命名 并为其设置初始值 如图8 40所示 图8 39新建参数图8 40参数设置 第37页 8 4动画控制器 8 4 2动画控制器的配置单击想要添加参数的过渡条件 然后在Inspector视口中的Conditions列表中单击 号创建参数 选择所需的参数 如图8 41 然后为参数添加对比条件 不同类型的参数对比条件也不同 比如Float类型参数的对比条件有 Greater 和 Less 如图8 42所示 图8 41为过渡条件创建参数图8 42为参数添加对比条件 第38页 8 4动画控制器 8 4 2动画控制器的配置3 通过代码对动画控制器进行操控 1 首先创建一个工程项目 并命名为 BNUAnimator 然后将随书光盘的资源目录下第8章的 BNUAnimator 工程文件下的 Animations Models Textures 等文件夹依次拷备进项目中的 Assets 资源文件夹下 然后创建一个名为 AniControllers 的空文件夹 用于存放项目所需的动画控制器文件 2 在AniControllers文件夹下单击鼠标右键 Create AnimatorController 创建一个动画控制器 并命名为 AnimatorController 双击该动画控制器 进入动画控制器编辑窗口 3 向编辑窗口拖拽进 Boy ForwardKick Boy KickBack 和 Boy Idle 三个动画文件 第39页 8 4动画控制器 8 4 2动画控制器的配置3 通过代码对动画控制器进行操控 4 将Idle动画状态单元设置为默认动画单元 右键点击Idle动画状态单元 在菜单中选择 SetasLayerDefultState 如图8 43所示 修改完成后Idle动画状态单元会变为黄色 然后为各个动画状态单元添加过渡条件 如图8 44所示 图8 43添加动画单元8 44为动画单元添加过渡 第40页 8 4动画控制器 8 4 2动画控制器的配置3 通过代码对动画控制器进行操控 5 动画单元和过渡添加完毕后 下面向游戏控制器中添加实现过渡条件所需的参数 单击Parameters视口上的 号 添加一个Float类型的参数 并命名为 AniFlag 设置其初始值为 1 0 如图8 45所示 图8 45创建参数 第41页 8 4动画控制器 8 4 2动画控制器的配置3 通过代码对动画控制器进行操控 6 然后选中任意一个过渡条件 在Inspector视口中的Conditions列表中点击 号创建参数并进行参数的设置 7 在Assets面板下新建一个场景 双击打开场景 在场景中创建一个地形 给地形添加绿色草地纹理 然后为其添加天空盒 并调整光照方向至合适角度 如图8 46所示 第42页 8 4动画控制器 8 4 2动画控制器的配置3 通过代码对动画控制器进行操控 8 向场景中添加人物模型 将Models文件夹下的fighter模型文件拖拽到场景中 然后为其添加贴图 如图8 47所示 图8 47添加人物模型 第43页 8 4动画控制器 8 4 2动画控制器的配置3 通过代码对动画控制器进行操控 9 接下来需要创建UI界面 点击 GameObject UI Button 创建两个按钮 并分别命名为 Button1 和 Button2 按钮 这两个按钮分别用于对两个动画的控制 当按下任意一个按钮时 系统将启动对应的动画过渡 10 下面为人物模型添加动画组件 选中 fighter 游戏对象 将之前创建的 AnimatorController 动画控制器拖拽到Animator组件下的 Controller 框中 如图8 48所示 代码见课本 第44页 8 4动画控制器 8 4 2动画控制器的配置3 通过代码对动画控制器进行操控 10 代码编写完成后将其挂载到fighter游戏对象上 然后点击Button1和Button2两个按钮对象 将fighter对象拖拽到Inspector面板下方的OnClick方法的目标对象上 然后选择相应的方法 如图8 49所示 图8 49挂载脚本和方法 第45页 8 4动画控制器 8 4 2动画控制器的配置3 通过代码对动画控制器进行操控 11 点击运行按钮之后 案例的运行效果会显示在Game窗口中 点击屏幕上的两个按钮 可以使场景中的小男孩做出不同的动作 如图8 50和8 51所示 图8 50案例运行效果一图8 51案例运行效果二 第46页 8 5角色动画的重定向 Unity3D提供了一套用于人形角色动画的重定向机制 游戏美工开发人员可以独立地制作好所有角色模型 游戏动画开发人员也可独立地进行动画的制作 两者不互干涉 8 5 1重定向的原理Mecanim动画系统提供了一套简化过的人形角色骨骼架构 简单来说 Avatar文件就是模型骨骼架构与系统自带骨骼架构间的桥梁 重定向的模型骨骼架构都要通过Avatar与自带骨骼架构搭建映射 映射后的模型骨骼可能通过Avatar驱动系统自带骨骼运动 这样就会产生一套通用的骨骼动画 其他角色模型只需借助这套通用的骨骼动画 就可以做出与原模型相同的动作 即实现角色动画的重定向 第47页 8 5角色动画的重定向 8 5 2重定向的应用 1 首先创建一个工程项目 并命名为 BNUAiControl 然后将随书光盘的资源目录下第8章的 BNUAnimator 工程文件下的 Animations Models Textures 等文件夹依次拷备进项目中的 Assets 资源文件夹下 然后创建一个名为 AniControllers 的空文件夹 用于存放项目所需的动画控制器文件 2 在AniControllers文件夹下单击鼠标右键 Create AnimatorController 创建一个动画控制器 并命名为 AnimatorController 双击该动画控制器 然后将 Boy JumpTurnKick 和 Boy RaceSideKick 两个动画文件拖拽进窗口 创建两个动画状态单元 如图8 52所示 图8 52创建动画控制器 第48页 8 5角色动画的重定向 8 5 2重定向的应用 3 动画单元和过渡添加完毕后 下面向游戏控制器中添加实现过渡条件所需的参数 单击Parameters视口上的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025房地产项目环境保护与绿化咨询中介服务合同范本
- 2025年新能源产业担保合同要素与风险控制
- 2025年度高端别墅庭院搭棚设计与施工合同
- 2025年出国定居养老与退休规划服务合同
- 2025版能源项目委托担保合同模板
- 2025版电动汽车充电站配电柜销售合同
- 2025年物流代签合同委托书全新范本
- 2025房地产营销合作合同:海外地产项目营销推广服务
- 2025年度办公场地租赁与专业安保服务合同
- 2025年度高端网约车司机入职服务协议范本
- 奥维互动地图使用介绍课件
- 小学语文新课程标准最新版2022
- 室外雨污水、消防管网施工方案
- 传染病学总论-人卫最新版课件
- (中职)计算机组装与维修电子课件(完整版)
- (高职)旅游景区服务与管理电子课件完整版PPT全书电子教案
- 部编版七年级语文上册教案(全册)
- 高处作业吊篮安装验收表(范本模板)
- 《汉服》PPT课件(完整版)
- 某国有企业精细管理降本增效经验交流汇报材料企业降本增效.doc
- 主要负责人任职证明
评论
0/150
提交评论