
毕业设计-基于Unity3D平台的篮球游戏三维动漫设计与实现.doc
14页各专业完整优秀毕业论文设计图纸基于Unity3D平台的篮球游戏三维动漫设计与实现班级:软件092 姓名: 指导老师: 摘要:本系统的目标是基于Unity3D平台的篮球游戏,实现在3D篮球馆中模拟人物的投篮运动,并通过计分、计时系统记录玩家当时的得分和游戏时长,使用户从视觉、听觉上感受投篮运动主要工作内容分为三维建模、调试动画和游戏的交互实现等首先,在3DSMAX中按真实比例建立了包括地板、座椅、吊灯、液压篮球架等在内的篮球场馆的模型,按真实人体比例建立了人物模型,并在PhotoShop中为人物绘制了贴图接着,在3DSMAX中为人物绑定了骨骼并调试了走路、跑步、运球、投篮、扣篮等篮球运动动作然后运用Adobe Soundbooth cs4剪辑编辑出拍球、篮球弹跳、篮球入网等声音最后,将建立好的模型、调试好的动画、剪辑好的声音导入到Unity3D中,在Unity3D中建立菜单、游戏场景,通过编程实现对人物投篮的环境、动作、声音的模拟为了给用户更好的听觉和视觉体验,本系统添加了背景音乐,并且在菜单中添加了粒子特效关键词:虚拟现实 三维建模 骨骼动画 Unity3D 1 引言虚拟现实技术创造了一个包括三维模型、三维声音和三维人物等资源逼真的虚拟世界,满足了人们的需求,让人们实现了梦想,体验了现实和常规情况下不能完成的事情。
时至今日,虚拟现实技术在游戏领域的应用越来越多从最初的文字MUD游戏,到二维游戏,再到网络三维游戏,逼真度和沉浸感正在一步步地提高并且,随着显卡性能的优化、CPU运算速率的提高和计算机内存的扩展,三维游戏已经成为虚拟现实技术应用的重要方向之一本系统的目的就是应用虚拟现实技术的研究成果,通过基于Unity3D平台来展现篮球运发动的投篮练习并且方案发布到 平台,方便用户在休闲娱乐时使用2 游戏总体架构2.1游戏架构系统通过游戏场景来展现球馆和人物,包括模拟真实的碰撞和碰撞发出的声音场景中的主要物体有篮球馆、人物、篮球、地面、篮球架及相机系统架构如图1所示通过分析系统功能,可将系统分为:特效、声音、数据、碰撞、控制和运动逻辑等6个模块其中各个模块功能如下:特效:为了给用户强烈的视觉冲击,在菜单中为篮球参加粒子特效而在场景中,为模拟真实的运动,因此不添加特效声音:系统的背景音乐,物体之间碰撞的音效和音量的大小数据:用来存储用户设定的有关游戏中声音和人物属性的数据控制:对人物运动的控制,比方人物的走路、跑步、投篮、捡球等;对相机的控制,使相机能够始终以人物为中心点运动碰撞检测:主要是篮球与地面、篮球架、篮球框之间的碰撞。
对于不同材质的物体碰撞之后产生的效果应该是不同的运动逻辑:人物的运动状态转换,比方从运球走到急停跳投、从跑到走、从运动状态到停下来弯腰捡球运动状态之间应该有过渡动画图1 系统架构2.2开发平台开发平台选用的是MonoDevelop+ 3DSMAX + Unity3D+NGUI+ Soundbooth主要工作流程是在3DS MAX中创立场景模型和人物模型,调试骨骼动画,绑定骨骼,并将模型和动画导入Unity3D中;在Unity3D中应用了粒子系统、物理系统、碰撞检测、声音控制等技术,用户通过键盘控制,实现人物投篮运动的模拟为便于游戏控制交互,用户界面使用了NGUI技术,运用Soundbooth对声效进行了处理整体实现了模拟了人物投篮的环境、动作,以及对投篮的时间结果的统计3 游戏模型及动画的设计 系统首先需要创立3D篮球场馆和人物的建模本系统在3DSMAX中建立人物场景及调整骨骼动画,在Unity3D中实现游戏的控制、碰撞处理和物体的渲染具体关系如图2所示图2模型及动画架构3.1模型的创立3DSMAX创立模型的种类有网格模型、多边形模型和面片模型此外3DSMAX自带网格修改器、多边形修改器等,可完善创立模型的效果。
网格建模是3DSMAX中较为常用的建模方式之一,这种建模方法更容易掌握,也更易于控制通过对网格模型的5中层次对象Vertex〔节点〕、Edge〔边〕、Face〔面〕和Element〔元素〕的编辑而到达预想的效果多边形建模是以网格建模为根底,并进行改良后的一种建模方法与网格建模的不同之处是网格建模中的面次对象定义为三角面,而多边形建模将面定义为Polygon〔多边形〕模型创立之后,赋予不同的材质贴图,得到最终效果篮球馆模型效果如图3所示,人物模型效果如图4所示图3 篮球馆效果图4 人物模型效果3.2骨骼动画的添加和调整3.3.1骨骼绑定人物模型在绑定的时候要摆成“大〞字型模型应该尽量位于场景中心位置,腿向两侧分开,与肩部宽度近似两个手臂伸向两侧,高度不应该超过肩部,手部应与腕关节平行,手掌掌心面向下,手指分开选择骨骼,通过缩放骨骼大小和骨骼角度的调整,使得骨骼的各个局部与人物网格模型的各个部位对齐人物的骨骼绑定是通过为人物模型添加骨骼绑定相关的修改器来完成的绑定方法有两种:一种是physique绑定,另一种是skin绑定physique绑定只能添加biped骨骼,绑定骨骼之后可以进行变肌、加腱等修改,能非常逼真的模拟出人物的肌肉线条。
skin可以添加任意的bone,绑定之后通过调整bone对点的权重值、添加角度变形器来使得人物的肌肉表现的更真实人物运动模型需要添加篮球的bone,因此选用skin方式对骨骼进行绑定3.3.2骨骼动画3DSMAX中的biped骨骼系统可以模拟两足或多足动物的骨骼系统,并且可以使用相关修改工具做局部形态调整,比方手指个数,骨节,尾巴等biped骨骼系统设定好的动画数据可以单独保存为*.bip或*.STP等动作格式创立动画和调试动画的过程中,使用WorkBench可以方便的调整某帧动作的x、y、z位置和旋转角度WorkBench还可以对位置曲线、旋转角度曲线进行平滑等操作,方便动画的编辑3DSMAX提供Motion Flow Mode 和 Mixer Mode两种方式来编辑多个动作文件Motion Flow Mode可以对多个动作文件进行顺序编辑、循环编辑、共享编辑、随机编辑Mixer Mode可以将多个动作文件的不同动作单元,在同一时段内分别指定给同一骨骼的不同骨节上本系统在调节动画是,首先将闲置动作、走路动作、跑步动作、走路运球动作、跑步运球动作、弯腰捡球动作、投篮动作、扣篮动作、背后运球动作、换手动作等一一调好,之后,编辑到一起。
然后使用Motion Flow Mode将所有动画编辑为一个文件4 游戏在引擎中的实现4.1游戏引擎的简单介绍Untiy3D 4.0编辑器界面可以分为Scene、Game、Hierarchy、Project、Inspector、Console等几个局部,Scene〔场景〕可以在Unity3D的3D世界中摆放物体,Game是相机真正渲染得到的效果显示,Hierarchy中包含了在Scene中所有物体的名称显示和层级管理,Project显示Unity3D工程的文件层级结构,Inspector中显示物体的详细信息,Console中显示调试信息4.1.1声音Unity3D中播放声音的组件有AudioListener、AudioSource被播放的声音文件叫做AudioClip声音文件被导入到Unity3D中的时候会自动进行压缩、解压缩处理导入时还可以对声音进行设置,例如压缩方式、压缩率、是否为3D音效如果Audioclip是3D音效,那么它播放时候的声音大小与监听器的位置有关系AudioListener是播放声音的监听器,如果没有AudioListener,即时播放了audio,也没有声音AudioSource是音源,可以指定一个要播放的audioClip。
用AudioSource来控制audio的播放、暂停、停止、音量、播放速度等4.1.2粒子特效Unity3D中将2D的贴图在3D世界中渲染出来来,可以实现例如烟雾、火焰、水流、爆炸等特效粒子特效系统由三局部组件共同完成:Particle Emitter、Particle Animator、Particle RenderParticle Emitter组件实现了在球体内生成粒子,可以修改产生的缩放比例、速率等Particle Animator组件可以控制粒子播放时的颜色变化、旋转速度的变化、喷射速度的变化、力的变化和粒子消失的延迟时间等Particle Render组件实现了粒子在被渲染时的材质、大小、路径的渲染4.2游戏资源处理4.2.1模型导入将3DSMAX导出的.FBX模型导入到Unity3D的时候,可以设置模型导入的参数如设置模型的比例、压缩、模型的UV展开图和材质的命名等Unity3D中的游戏物体叫做GameObject,导入模型的每个物体都是一个GameObjectGameObject都有Transform,可以对它的Position、Rotation、Scale进行调整4.2.2切割动画带动画的物体可以通过Unity3D自带的动画切割器将一个Animation分割成多个AnimationClip。
根据动画所在的帧数,将各个单一的动画从整体中分割出来4.2.3添加物体碰撞人物假设想在球馆内走动而不掉到世界中去,必须对球馆地面添加碰撞初始导入的模型是不带碰撞的在球馆中,需要添加碰撞的有地面、墙壁、篮球架、篮板、篮筐等Unity3D中提供了多种多样的碰撞器,如box collider,sphere collider,capsule collider,wheel collider,mesh collider等对于规那么形状的物体,可添加相应的collider,通过调整collider的大小来匹配物体对于形状不规那么的物体,可以添加mesh collider,随物体的外表添加碰撞4.2.4添加物理材质篮球在与地面碰撞、篮板碰撞的时候,由于其不同的物理材质而产生的碰撞效果是不同的在Unity3D中可以创立物理材质,让物体拥有不同的物理特性Unity3D中物理材质的属性主要有动摩擦因素、静摩擦因素、弹性、摩擦力方式、弹力方式、力在方向上的设定等根据实际情况,创立不同材质4.3游戏菜单的设计及实现4.3.1菜单整体流程进入游戏之后,首先展示Splash(屏闪)界面,之后进入菜单项选择项菜单结构如图5所示。
图5菜单结构图4.3.2 Splash屏闪通常用来展示公司logo,或者制作团队的logo,通常只有几秒一方面来给系统加载资源做准备,另一方面可以使得用户快速了解系统的特征另外,Splash界面还可以为用户提供一个瞬间接收大量信息的缓冲Splash在用户无意识的情况下提供应用户系统的整体信息,使获取对系统的第一印象而用户对系统的第一印象的好坏直接影响到了用户对系统的兴趣、依赖程度本系统特色之一就是用3D世界来展示篮球运发动的投篮练习Splash一开始以2D图像出现,再渐渐变成3D图像,使得用户眼前一亮,并且在最后将本系统的最大特色——篮球弹跳显示出来,展示系统的整体特色4.3.3菜单菜单的设计应当尽量简洁,少用文字,多用图片,让用户能够清楚的明白、找到每一个功能为了防止菜单静态单一的出现,系统菜单项选择用了2D加3D的方式显示2D菜单的制作运用了NGUI插件NGUI插件用三维的方式渲染出二维平面的效果NGUI提供了创立label、button、sprite等多种控件,方便的菜单的实现菜单中3D局部展示了player的各种动作4.3.4设置功能在系统设置中可以改变背景音乐的音。












