




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Fungus的校园欺凌的认知与处理系统的研究与实现内容摘要近年来,计算机技术燎原之势地蓬勃发展影响了人们生活的方方面面,游戏的形式也变得丰富多彩,更多开发者试图把知识融合在游戏中,用来构建游戏化的学习环境。因为游戏本身带有的多样性和娱乐性能极大化提高玩家兴趣,潜移默化的让玩家接受认识,轻而易举地实现“寓教于乐”。不仅可以缩短教育时间,还能结合游戏有更深的印象和体会。因此,将教育与电子游戏相结合具有极高的应用价值。本次课题研究基于Unity3D游戏引擎和其辅助插件Fungus,所实现的游戏与“反对校园欺凌,拒绝校园暴力”的主题相一致。通过本课题,能够在仿真情境和第三人称视角中真切地体验欺凌事件中选择走向导致的结果,在精心设计的剧情和一系列的游戏交互中对欺凌进行探讨。本文主要阐述了使用的开发工具和辅助插件、游戏场景搭建、人物角色的创建以及动画系统、剧情和游戏逻辑的实现、游戏中的交互设计等技术,以及游戏测试和性能分析等。关键词:Unity3DFungus游戏虚拟仿真教育AbstractInrecentyears,therapiddevelopmentofInternethasaffectedallaspectsofpeople'slife,theformsofthegamehavealsobecomediverse.Moredeveloperstrytointegrateknowledgeintothegametobuildagamebasedlearningenvironment.Becauseofthediversityandentertainmentofthegame,itcanwellattracttheattention,maximizetheinterestandsubtlylettheplayersaccepttheknowledge.Itcannotonlyshortenthetimeofeducation,butalsocombinethegametohaveadeeperimpressionandexperience.Therefore,theintegrationofeducationalknowledgeinthegamehasahighapplicationvalue.Thisresearchisbasedonunity3dgameengineandfungusplug-in.Theimplementedgameisconsistentwiththethemeof"againstCampusbullyingandprotectingteenagers".Campusbullyingisaseriouscampusproblem,andthroughthistopic,wecanexperiencetheresultsofmultiplechoicesinbullyingeventsinthesimulationsituationandthethirdpersonperspective.Withreferencetothesimulationcases,wecandiscussthespecificprocessofeventsinthewell-designedplotandaseriesofgameinteraction.Inaword,havetheaidofeducationalsimulationgames,itnotonlyhelpstoenrichtheteachingforms,butalsoincreasestheinteresttoacertainextentwhileimprovingthecognitionofteenagers,andeasilyrealizestheeffectof"teachingforfun".Thispapermainlydescribesthedevelopmenttoolsandauxiliaryplug-insused,gamesceneconstruction,personacreation,animationsystem,scenarioandgamelogicimplementation,interactivedesigninthegameandothertechnologies,aswellasgametestingandperformanceanalysis.Keywords:Unity3DFungusgamesvirtualsimulationeducation目录TOC\o"1-4"\h\z\u第一章绪论 [11]。(3)交互性:让玩家觉得友好的界面必然是有交互性并且有交互反馈的开始界面,在开始界面上要满足玩家的基本需求,比如开始游戏、退出游戏、游戏设置这类游戏元素对可交互的开始界面而言不可或缺。从这三个特性出发,游戏开始界面采用了偏黄色主题的背景界面,按钮颜色也是以黄色系为主,让玩家觉得元气、活泼、正能量。同时背景界面的内容是被欺凌的女孩,让一进入游戏界面的玩家就已经从视觉上感受到游戏的主题,开门见山。此外为了增加开始界面的层次感,在背景界面中间加入了一段长方形的半透明灰色图片,增加画面的美感。在背景音乐方面选用了一首轻快有节奏感的钢琴曲,引起玩家对接下来游戏中剧情的兴趣。为了做到游戏界面的简约性,开始界面仅介绍了本游戏的名字以及设置了开始游戏、结束游戏以及游戏设置的按钮。将这些组件配置好后摆放至Canvas画布中放在合理美观的位置,设置好组件的锚点和Anchorprestes后,组件将会根据屏幕的分辨率来自适应屏幕。为了让游戏标题更加美观以及契合背景,文字采用了复古字体,整体以白色为主色调来显示。而在后续游戏的剧情显示中,剧情文字的显示则采用了逐字显示,有推动剧情,引发玩家思考的效果。Text逐字显示的代码如下:publicfloatletterPause=0.1f;//显示文字的速度privatestringword;privateTextAptext;voidStart(){word=GetComponent<Text>().text;Aptext=GetComponent<Text>();Aptext.text="";StartCoroutine(TypeText());}privateIEnumeratorTypeText(){foreach(charletterinword.ToCharArray()){Aptext.text+=letter;yieldreturnnewWaitForSeconds(letterPause);}为了做到游戏界面的交互性,按钮必须能够接收玩家的鼠标点击或键盘输入以达到相应的交互反馈。我选择了在Button组件的属性中新增OnClick方法来达到实现按钮交互的效果,这样玩家点击按钮时就会得到相应的反馈,例如场景跳转、剧情变化、某些面板的出现和消失,完成玩家和游戏交互的效果。综上对游戏界面特性和交互上的探讨,最后完成的游戏开始界面如下图4-11所示。图4-11开始界面4.4.2游戏交互本游戏的游戏交互形式与其他第三人称角色扮演游戏交互方式无很大区别,同样是通过键盘输入以及鼠标点击的方式与游戏进行交互。使用WASD以及方向键进行人物角色的移动,鼠标旋转进行视角的变换。表4-2游戏交互操作按键事件键盘按键W/上主角向前移动键盘按键S/下主角向后移动键盘按键A/左主角向左移动,摄像机向左微旋转键盘按键D/右主角向右移动,摄像机向右微旋转鼠标旋转控制第三人称摄像机视角空格键进行人物对话鼠标左键点击按钮或是剧情根据表中所体现的按键方式出发,本课题的游戏交互开发可简要分为以下几类:主角的移动在Unit3D游戏引擎中,已经有内置组件可以帮助实现角色的移动,这个强悍的组件就是人物的角色控制器组件。角色控制器其运用过程非常之简单,采取很少的代码工作量就可以完成本课题的第三人称视角移动的游戏开发。不受摩擦力、阻力等影响,只需要挂载组件在角色面板上,定义相对移动的对象,角色移动的速度,再结合Time.deltaTime让主角有缓动的效果,通过获取角色控制器的对象就可以通过键盘输入控制角色了,在表现游戏中的主角运动上再适合不过。Vector3movement=Vector3.zero;floathorInput=Input.GetAxis("Horizontal")*Movespeed;//角色的水平移动速度floatvertInput=Input.GetAxis("Vertical")*Movespeed;//角色的垂直移动速度floathvInput=horInput+vertInput;//速度的总和movement=Vector3.ClampMagnitude(movement,Movespeed);if(horInput!=0||vertInput!=0)//当键盘没有输入{movement.x=horInput;movement.z=vertInput;Quaterniontmp=target.rotation;//对于相对物体的旋转角度target.eulerAngles=newVector3(0,target.eulerAngles.y,0);ovement=target.TransformDirection(movement);target.rotation=tmp;transform.rotation=Quaternion.LookRotation(movement);}movement*=Time.deltaTime;_charController.Move(movement);摄像机跟随和旋转由于本游戏的视角定义为第三人称视角,所以主摄像机需要对主角进行跟随和面向目标。在游戏中可以使用方向键旋转摄像机,当方向键没有输入的时候就使用鼠标来旋转摄像机,这样就能实现能看到整个角色和环视场景的效果。当摄像机进行自由视角移动的时候,我们需要用两个角度来控制摄像机的转动,还需要一个变量来存储摄像机和目标对象之间的位置偏移,但是在整个过程中摄像机始终锁定(LookAt)角色。_rotY=transform.eulerAngles.y;_offset=target.position-transform.position;//存储摄像机和对象的位置偏移floathorInput=Input.GetAxis("Horizontal");//用方向键旋转摄像机if(horInput!=0)//如果方向键没有输入就用鼠标旋转摄像机{_rotY+=horInput*rotspeed;}else{_rotY+=Input.GetAxis("MouseX")*rotspeed*3;}Quaternionrotation=Quaternion.Euler(0,_rotY,0);transform.position=target.position-(rotation*_offset);//维持开始的偏移,根据摄像机的旋转进行偏移transform.LookAt(target);//摄像机面向目标碰撞交互当游戏主角在游戏和人物角色或是物体发生碰撞事件时,需要进行碰撞交互的处理。例如,在本作中当玩家操纵人物点击头上显示感叹号的人物时,会通过射线检测是否是对应tag有碰撞现象产生,如果检测到了就会触发人物之间的对话;在游戏主角移动到其他游戏人物身边时按下空格键,检测是否有碰撞产生,如有产生就会触发剧情对话;以及在主角进入某些任务点时,如若发生碰撞就会触发后续剧情。目前,检测物理碰撞的方式有两个类型,一种是在GameObject上挂载Collision碰撞器组件,另一种是利用Collision属性中的Trigger触发器。Trigger触发器属于Collison组件的选项,只要勾选就能运作。而Collision的使用方式是将某一类碰撞器挂载到游戏对象上调整好碰撞范围,并且主动进行碰撞行为的GameObject必须挂载Rigidbody组件,方可进行碰撞。本游戏中大多采用这种方式以及射线进行碰撞检测以达到玩家与游戏的交互。Rayray=Camera.main.ScreenPointToRay(Input.mousePosition);//使用摄像机的标签一定是maincamera定义一条射线RaycastHithitInfo;//如果有碰到碰撞物boolisCollider=Physics.Raycast(ray,outhitInfo);//发射一条射线射线的信息(定义的射线碰撞的对象)射程voidOnCollisionEnter(Collisioncollision)//碰撞检测4.4.3剧情交互本课题所实现的游戏意在利用剧情和交互构建游戏化的学习环境,领会游戏中所想要传达的思考,所以搭建一个人物对话系统对于本课题的剧情发展而言极其重要。在我看来,在Timeline中加Playables的方式也能实现人物对话,但过于繁琐,大大增加游戏实现的工作量,在游戏逻辑的实现上也不够清晰。于是我选择了第三方插件Fungus辅助的形式来进行。将第三方辅助插件Fungus用于Unity3D游戏引擎中做主要的剧情系统,减少代码的使用量和制作过程的工作量,也让游戏逻辑清晰一些。接下来介绍如何在Fungus中完成本课题游戏中剧情交互。首先Fungus作为一个免费插件可以直接在AssetStore里下载使用,导入完成后在Tools里选择Fungus再选择新建一个Flowchart,接着调出Fungus的编辑界面可以发现左边的树里已经多了一项NewBlock。接下来将NewBlock重命名为“talk01”,将触发条件ExecuteOnEvent设置为GameStart,即游戏开始就呼叫它进入对话,也可以设置为“None”,接收到讯息或是碰撞的时候才执行。接下来需要新建一个Bool变量名称为Finished用来记录对话是否完成。点击Block在对话一开始时我们需要在属性窗口的Commands处添加SetVariable将Finished的值设为false,再在对话结束的时候将Finished的值设为True。在这两个SetVariable命令中间添加narrative中的Say指令,为即将开始的剧情添加一行叙述文案。在编辑对话Say的时候可以为对话设置说话的角色即新建一个Character,在属性窗口可以为这个Character配置名字和字体颜色。图4-12Menu选择界面本课题应用了Menu指令来完成剧情分支,剧情发展的不同分支展现时,不同的选项和结局会让玩家感到期待和紧张。因为即使玩家选择了一种走向也会在完成一种结局后想知道另一种选择会触发什么剧情。本游戏也有选项不同导致的多种结局。在Menu指令的属性窗口中选择TargetBlock,选择Flowchart流程中的某个Block,完成选择后即可完成剧情跳转。还可以使用MenuTimer指令来为玩家在Menu的选择上设定一个秒数时间,设定完成后在Menu界面进行选择时,选项下方将会出现进度条,同时可以设定如若没有在规定时间内进行选择将会跳转到的Block。此时,如若玩家未完成Menu的选择就会被强制进入某一段Block或是剧情继续进行游戏。综合以上对Fungus辅助插件的研讨,本游戏研发出的某一场景的游戏对话系统逻辑如下图4-13所示。至此,游戏的剧情交互即对话系统设计完成。图4-13Flowchart编辑界面4.4.4其他交互(1)Timeline动画Timeline是一套非常好的基于时间轴的多轨道序列管理工具,也是一个很不错的策划工具。它同样支持可视化编辑,能在不进入游戏播放窗口时就按下播放键实时预览。Timeline动画播放的过程中能让玩家产生极强的剧情代入感。我们能使用它在便利稳定的情况下做出非常好的线性或非线性的动画处理。并且它可以很好地与游戏玩法无缝整合,能提高本课题工作效率,表现出游戏所需要的效果,从实际项目出发,优化游戏的流程设计,承载动画以及对话,让故事务必不断推进,保持玩家的新鲜感。本课题中的Timeline动画可以通过在C#脚本中调用PlayableDirector中的API来控制时间轴的播放、暂停和终止,也能通过上述4.3节对PlayMaker的探讨内容来进行实时监控。publicPlayableDirectordirector;publicGameObjectimage;voidOnPlayableDirectorStopped(PlayableDirectoraDirector){if(director==aDirector)image.SetActive(true);}director.Play();最好把Timeline组件挂载到一个新建的空物体上,把需要在动画里表现的角色拖进Timeline编辑器内新建两个AnimationTrack,一个轨道用于角色的动作变化,一个规定用于人物的位置变化。在调整位置的时候发现Unity3D引擎给人物自动添加的动作是缓入缓出的,人物移动时前后慢,中间快。此时可以打开时间轴的曲线,选中要修改的关键帧把左切向改为Linear线性,在前一个关键帧选择右切向做同样修改。Timeline同时也可将多个VirtualCamera拖入Cinemachine轨道进行镜头的平滑切换,营造电影般的精美镜头。图4-14Timeline编辑界面(2)AudioSource音源是场景中的发声装置,可以为游戏播放对应的音乐和音效,音乐可以帮助渲染游戏气氛,例如恐怖游戏中紧张飘渺的音乐会让玩家更沉浸游戏剧情世界。Unity3D游戏引擎常用的音源组件是AudioSource,将任意类型需要播放的音源片段拖入AudioClip里就可以完成场景的音乐了。通过勾选音源组件的PlayOnAwake以及Loop选项来选择音乐是否要一进入游戏就播放或是一直循环播放,同时也可以在Volume处直接输入数值来调节音乐、音效的音量大小。另外,AudioSource还可以通过C#脚本来控制播放,代码如下:publicAudioSourceAudio;//定义一个AudioSource音源组件Audio.Play();//AudioSource播放音频第五章游戏测试游戏测试的环节不仅要测试游戏的脚本编译是否能够通过,同时还要测试游戏过程中的流畅程度,本次的测试将会从编译情况、功能是否可行、系统资源占用以及实际游戏操作进行测试。5.1设备环境用于测试的设备环境如下表所示5-1所示。表5-1设备环境硬件与软件环境参数系统Windows1064位CPU英特尔Corei5-6300HQ/2.3Ghz内存8GB分辨率1920*1080游戏开发引擎Unity3D2019.1.8f15.2功能测试与执行情况经过在编译情况、功能是否可行、系统资源占用以及实际游戏操作这几个部分的测试后得到的各项执行情况结果如下表5-2,5-3所示。表5-2设备测试项目结果测试项目操作执行情况可行性画面显示进入游戏查看画面是否清晰,场景是否完整游戏画面清晰,场景完整可行UI交互进入游戏,点击各种UI组件UI组件交互正常可行主角移动使用键盘WASD操作角色移动主角可以进行移动并且移动正常可行摄像机视角使用鼠标旋转视角查看相机视角是否正确,是否跟随主角相机视角正确并且跟随主角可行事件交互跟随游戏流程,查看任务以及对话是否触发,流程是否完整任务及对话都可以触发,流程完整可行场景跳转跟随游戏流程,查看事件结束后是否会跳转场景会在正确时间段进行场景跳转至下一场景可行Timeline跟随游戏流程查看游戏内的Timeline动画是否正确播放,人物位置和摄像机位置是否正确Timeline动画正确播放,人物位置和摄像机位置正确可行Fungus对话系统跟随游戏流程查看剧情分支和结局导向是否正确剧情分支和结局导向正确可行C#脚本是否产生编译错误无编译错误可行表5-3系统资源占用硬件环境温度占用率英特尔Corei5-6300HQ/2.3Ghz68°C53%NvidiaGeForceGTX960M显卡52°C60%希捷ST1000LM024HN-M101MBB1TB硬盘35°C2%以上结果各方面数值均属于正常情况,测试通过。5.3小结本次的测试在编译情况、功能是否可行、系统资源占用率是否超标以及实际游戏操作中的情况多个方面进行测试。根据实际的游戏运行情况,我对游戏进行了多多少少的调试和数值的配置,以达到让整个游戏的运行效果更加顺畅平滑。为了提供较好的游戏体验,经过测试,游戏的剧情内容、游戏操作以及交互等一系列内容也达到了玩家的基本需求。第六章总结与展望6.1总结本课题所研究的基于Fungus的校园欺凌的认知与处理系统的研究与实现至此已经顺利完成。在完成本课题的过程中,进行的研究工作主要有以下几点:(1)通过搜索和研究各种资料例如社会上校园欺凌的案例、网络上的校园舞台剧本、题材相似的电影以及立意相似的游戏来对本课题的剧情做出合理安排。最后完成的游戏剧情结合生活实际,达到整个游戏剧情连贯,逻辑清晰的同时能够起到相应的教育效果;(2)学习PlayMaker和Fungus插件来完成游戏逻辑和剧情交互,这两款插件能够较好的和unity3D引擎内的其他组件相融合,往往在完成功能时可以选择运用插件和C#脚本同时监听事件,达到插件和C#脚本相辅相成的效果。在可视化窗口中游戏逻辑和剧情走向清晰明了,大大提高了游戏的精细程度和制作效率;(3)在本课题的交互设计上下了很大功夫,也在玩家的基本需求和友好度上进行考虑,玩家进行鼠标和键盘事件的输入都能得到有效的反馈,Timeline制作精良,背景音乐也贴和游戏背景精心选择。保证了游戏界面美观、简约、交互流畅平滑,能带来较好的感官体验。(4)精心调整虚拟仿真的游戏场景和人物模型,达到给玩家真实的视觉体验。在其中使用Mixamo来配置人物动作数据,Lightmapping来烘培灯光,增强场景氛围,应用Cinemachine摄像机进行平滑的视角切换,实现大片级别分镜;在完成课题的过程中,我对Unity3D游戏引擎的看法有了改变,理解也逐步加深了。在本课题中经常使用的Unity3D引擎的第三方辅助插件PlayMaker、Fungus、Timeline以及Cinemachine的学习上都有了很大的进步。使用这些辅助插件的过程中固然遇到了较多技术上和C#脚本编写上的困难,尤其是Playmaker的使用以及TimelinePlayables的API和Clip部分,导致常常在涉及到调用时无从下手。最终我通过查阅大量资料以及观看教学实例视频学习到了相关内容,再通过锲而不舍的尝试终于完成了本课题。在本课题的研究和实现过程中我逐渐明白,虽然在游戏开发的过程中多多借助辅助插件可以大大减少代码的使用率和开发的工作量,但是学习插件也需要大量的时间,像Playmaker它本身就带有丰富的Actions,在理解和操作上并不简单。我坚信,C#脚本的熟练编写和应用才是游戏开发的硬实力,只有锻炼了自身的逻辑思维能力和脚本编写能力才能做到在实现所设想功能时不那么费力。6.2展望由于个人能力限制以及时间有限,校园欺凌的认知与处理系统有它存在的合理性,虽然在游戏内能带给玩家流畅的交互体验,高清精美的游戏画面,但目前游戏内的理论知识仍不够完善,游戏剧情不够多种多样,互动性也有待加强。不过这是一个为青少年创建和谐校园生活的有益开端,能为青少年对校园欺凌的认识进行普及,也能为从小培养青少年正确的情感认知奠定基础,所以以下研究工作将在后续进一步展开:(1)游戏剧情触发:本课题中已有大量碰撞检测以及射线检测触发剧情,不过在考虑到玩家友好度的方面上还可以在人
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度新能源项目退场环保验收合同
- 二零二五年度绿色能源行业劳动合同年签效益评估合同
- 二零二五年度特种作业人员培训合同及劳动合同规范文本
- 二零二五年度房屋租赁合同租赁房屋装修及变更规定
- 2025年度股份解除与公司重组实施合同
- 2025年茶叶新品研发与技术支持合同
- 技术总监聘用合同
- 门面房租房合同范本3
- 保险代理及销售服务合同
- 绿色能源技术开发投资合同
- NB-T 33015-2014 电化学储能系统接入配电网技术规定
- 统编版语文四年级上册第七单元 讲述人物事迹 弘扬家国情怀单元任务群整体公开课一等奖创新教学设计
- 2024年山东教育厅事业单位笔试真题
- CJT264-2007 水处理用橡胶膜微孔曝气器
- 母婴保健技术服务工作总结报告
- (高清版)WST 227-2024 临床检验项目标准操作程序编写要求
- 配位化学 本科生版 知到智慧树网课答案
- 《配电线路旁路作业工具装备 第1部分 柔性电缆及连接器》
- 第3章-水文统计原理
- 斑马导丝热缩工艺
- 《工伤预防知识教育》课件
评论
0/150
提交评论