基于Unity3D的骨骼动画的设计与实现.docx

上传人:b****1 文档编号:1832019 上传时间:2022-10-24 格式:DOCX 页数:20 大小:2.48MB
下载 相关 举报
基于Unity3D的骨骼动画的设计与实现.docx_第1页
第1页 / 共20页
基于Unity3D的骨骼动画的设计与实现.docx_第2页
第2页 / 共20页
基于Unity3D的骨骼动画的设计与实现.docx_第3页
第3页 / 共20页
基于Unity3D的骨骼动画的设计与实现.docx_第4页
第4页 / 共20页
基于Unity3D的骨骼动画的设计与实现.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

基于Unity3D的骨骼动画的设计与实现.docx

《基于Unity3D的骨骼动画的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Unity3D的骨骼动画的设计与实现.docx(20页珍藏版)》请在冰豆网上搜索。

基于Unity3D的骨骼动画的设计与实现.docx

基于Unity3D的骨骼动画的设计与实现

基于Unity3D的骨骼动画的设计与实现

 

摘要:

本论文设计并开发了可与用户交互的、参数可调整的骨骼动画系统。

该系统可在三维虚拟场景中模拟不同鸟类的飞翔效果。

主要工作有三维建模、动画调试、交互实现等。

其中,用3DSMax来实现模型建立、贴图展开、骨骼绑定。

用Unity3D实现场景中骨骼动画的属性控制、交互功能实现等。

通过该系统的设计与开发,给用户更好的交互性的游戏体验。

关键词:

三维建模;Unity3D;骨骼动画

Abstract:

Thispaperdesignsanddevelopsaskeletalanimationsystemwithadjustableparameterswhichcaninteractwithusers.Thesystemcansimulatetheflighteffectsofdifferentbirdsin3Dvirtualscene.Themainworkincludesconstructing3Dmodels,debugginganimation,designinginteraction,etc.Amongthem,3DSmaxsoftwareisusedtomakemodels,unwrapUV,andbindbones.Unity3Disusedtorealizetheattributecontrolandinteractivefunctioninthisskeletalanimationsystem.Throughthedesignanddevelopmentofthissystemtobringusersabetterinteractivegamingexperience.

Keywords:

3Dmodeling;Unity3D;Skeletalanimation

 

1绪论

1.1研究背景

虚拟现实技术创造了一个资源逼真的虚拟世界,其中包括三维模型、三维声音和三维人物,用来满足人们的各种需求,让人们实现许多以前都不曾想过的觉得虚无缥缈的想法,也让人们体验到现实和常规情况下不能完成的事情。

时至今日,虚拟现实技术在游戏领域的应用越来越多。

从最初的文字MUD游戏,到二维游戏,再到网络的三维游戏,逼真度和沉浸感在一步一步地提高。

随着显卡性能的优化、CPU预算速率的提高和计算机内存的扩展,三维游戏动画已经成为虚拟现实技术应用的重要方向之一。

而这次我们设计的这个系统,它的主要目的就是使用虚拟现实技术的研究成果,通过一款软件——Unity3D,这个平台来展现出人物在宽阔的场景中由我们的鼠标还有键盘一起控制下自由飞翔的一个动画。

我们首先搭建了虚拟场景,然后制作绑定了骨骼动画,并且用户能够通过交互面板来调整动画的效果。

1.2研究意义

自上世纪90年代开始出现了全球第一家专门为虚拟现实提供软件的公司以来,研究并且应用虚拟现实到社会的每个学科已经成为了当今世界最流行的几种技术之一。

国家对于虚拟现实技术的科研投入也在逐年上升,国内外对于这方面的人才更加是求贤若渴。

骨骼动画技术的实时渲染得到了迅速的发展,并广泛应用各个领域。

而我们这次的研究就是依托于虚拟现实技术的软件Unity3D平台从而在虚拟的环境下创造出我们人类不曾拥有而又渴望的能力--飞翔。

2开发平台及工具简介

2.13DSMax

3DStudioMax简称为3DSMax,是一款由国际著名的Autodesk公司的子公司Discreet公司制作开发的集造型、渲染和制作动画于一身的三维制作软件。

主要具有高性价比、上手容易、使用者众多和便于交流等优势。

在应用范围方面广泛应用于广告、影视、游戏和工程可视化等领域[10]。

最新的版本是3DSMax2018。

2.2Unity3D

Unity3D是由UnityTechnologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画和三维虚拟场景漫游等类型互动内容的多平台的综合性游戏开发工具,是一个全面整合的专业游戏引擎,Unity3D类似于Director和Virtools等利用交互的图形化开发环境为首要方式的软件其编辑器运行在Windows和MacOSX平台下,可发布游戏至PC、Mac、Android、iOS、XBOX360、PS3和Wii平台[6],也可以利用UnityWebPlayer和FlashPlayer插件发布网页游戏,支持Mac和Windows的网页浏览[7];它的网页播放器也被Macwidgets所支持。

2005年3月在Mac平台上发布了一款叫做Gooball(粘粘球)的电脑休闲游戏,所运用的是Unity3D的预发售版本开发的,同年6月,Unity3D1.0.1发布,直到2009年3月Unity3D2.5加入了对Windows平台的支持,并于10月Unity3D2.6独立版才开始免费,2012年11月15日,UnityTechnologies公司正式推出了Unity3D4.0版本[12]。

目前的最新版本是Unity3D2017.3.1。

Unity3D在国内外的流行与其引擎自身的特性是紧密相关的:

2.3脚本语言

虚拟现实制作引擎中的人机互动大部分都需要脚本语言的编写来实现。

Unity3D目前主要支持三种计算机脚本语言:

JavaScript、C#和Boo。

其中,程序员们使用的更多的是JavaScript和C#。

2.3.1JavaScript

JavaScript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言比如Perl遗留的速度问题,为客户提供更为流畅的浏览效果。

同时也是一种基于对象和事件驱动并且具有相对安全性的客户端脚本语言,常用来给HTML网页添加动态功能;一个完整的JavaScript实现是由以下3个不同部分组成的:

核心(ECMAScript)、文档对象模型(DocumentObjectModel,简称DOM)、浏览器对象模型(BrowserObjectModel,简称BOM)[9]。

目前JavaScript的最新版本为1.9版。

然而Unity3D中的JavaScript并不是标准的浏览器的JavaScript,两者之间还是有一定的区别。

Unity3D中的JavaScript是经过编译的,变量必须事先声明才能使用,而且执行速度比较快,一个JS文件就是一个类。

2.3.2C#

C#是微软公司发布的一种面向对象的运行于.NETFramework之上的高级程序设计语言,也是一种简单的可视化操作、高效率运行、强大的操作能力、优雅的语法风格、创新的语言特性的,由C和C++衍生出来的面向对象的编程语言[8];它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承),还综合了VB简单的可视化操作和C++的高运行效率,是兼顾系统开发和应用开发的“全能”型计算机编程语言,因为C#几乎集中了所有关于软件开发和软件工程研究的最新成果,如面向对象、类型安全、组建技术、自动内存管理、跨平台异常处理、版本控制和代码安全管理等[8]。

目前的最新版本是C#8.0。

 

3总体设计

3.1总体目标

人物在一个广阔的天空场景中进行飞行模拟,我们运用一定的虚拟现实技术使人机产生互动的效果,通过屏幕来反馈给操作者,三维场景中的所有物体都是模拟现实中事物进行运动的,让人们能够拥有更加直观的感受,能够看见或者听见场景中人物的飞翔,翅膀拍动的改变。

以达到对场景中的事物清晰了解快捷操作的目的。

控制的角色所拥有的具体的功能模块结构如图3-1角色功能模块结构所示。

 

图3-1角色功能模块结构

3.2功能设计

3.2.1飞行控制

在三维的虚拟空间中,操作的人物能够按照我们指定的方向进行移动,并用W键和鼠标进行控制,行走控制如图3-2飞行控制所示。

 

 

图3-2飞行控制

3.2.2视角拖动

人物的视角就是一个主摄像机,通过鼠标的滑动来拖动视角进行人物角色对飞行前方的判断,视角拖动模块如图3-3视角移动所示。

图3-3视角移动

3.2.3物体碰撞

在三维场景中的物体都需要添加Collider物理属性来完成碰撞检测的实现,系统具有固定的碰撞检测以用来判定人物和物体间是否进行了接触并且具有Collider属性后会阻止人物的继续前进,反之人物则直接从物体中穿越过去,物体碰撞模块如图3-4物体碰撞所示。

 

图3-4物体碰撞

4详细设计

场景系统的框架如图4-1系统框架所示。

我们通过3D软件3DSMax建模和纹理完成将导出为链接到模型。

形成一个场景的基本数据库,并通过键盘鼠标器在环境中进行消息捕捉,然后将两个链接的收集数据集成到Unity3D进行处理,虚拟现实环境实现摄像头的控制和COL最终的渲染输出给用户可以体验人机交互动画和虚拟现实场景。

 

图4-1系统框架

4.1素材的制作

素材包括三维模型的建模和贴图等,其中对于场景建模有两种方式,一种是直接使用Unity3D其本身的自带的功能进行场景建模,它自身的模型编辑功能简单实用,而另一种就是从外部导入三维模型,我们把在3DSMax软件中建立好的模型导入到Unity3D的Assets文件夹中,导出时必须将模型文件格式设置为.fbx格式,还需要将3DSMax中的单位设计为米(m)并且Y轴方向向上,所有材质贴图的名称和路径都必须是英文,被导入到Unity3D中的信息包括物体的空间位置、名称材质、动画等,其中导入的三维模型都会丢失材质,但是Unity3D会根据模型的贴图自动生成相对应的材质球,只需要根据对应材质球的名字将相应的贴图附在上面即可。

一些贴图有问题的三维模型还需要单独把贴图放入到Photoshop进行修改上色等处理。

4.1.13DSMax人物模型的建立

我们在3DSMax中创建一个新的场景,将系统单位设置为厘米,然后我们就可以建立我们需要的模型。

人物模型的建立思路如图4-2人物设计思路所示。

 

图4-2人物设计思路

人物模型我们使用的是多边形人物建模,我们首先创建人物的骨骼,然后给每个部分蒙皮,分别是身体,头发,然后是装饰用的挎包。

多边形骨骼的建立如图4-3创建骨骼所示。

图4-3创建骨骼

然后是给骨骼分别蒙皮,如图4-4身体蒙皮所示。

图4-4身体蒙皮

接着我们给人物创建头发,如图4-5头发蒙皮所示。

图4-5头发蒙皮

然后我们给人物添加挎包,如图4-5添加挎包所示。

图4-6添加挎包

人物的UVW图如图4-7人物展UV图所示。

图4-7人物展uv图

人物模型展示三视图如图4-8人物展示(正视图)、图4-9人物展示(左视图)、图4-10人物展示(俯视图)所示。

图4-8人物展示(正视图)

图4-9人物展示(左视图)

图4-10人物展示(俯视图)

4.1.23DSMax翅膀模型的建立

首先我们在场景中设立坐标如图4-11创建基础翅膀所示。

图4-11创建基础翅膀

然后给它贴图如图4-12翅膀贴图所示。

图4-12翅膀贴图

4.2场景的搭建

按照场景的搭建,创建多个不同形状的Cube作为蓝天、大地、城池,并进行贴图。

将三维模型拖入到场景中,依次调整物体的Positon、Rotation和Scale三项属性中在X轴、Y轴和Z轴三个方向的大小长短的数值。

调整好之后进行场景的美化

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1