基于Fungus的校園欺凌的認知與處理系統(tǒng)的研究與實現(xiàn)_第1頁
基于Fungus的校園欺凌的認知與處理系統(tǒng)的研究與實現(xiàn)_第2頁
基于Fungus的校園欺凌的認知與處理系統(tǒng)的研究與實現(xiàn)_第3頁
基于Fungus的校園欺凌的認知與處理系統(tǒng)的研究與實現(xiàn)_第4頁
基于Fungus的校園欺凌的認知與處理系統(tǒng)的研究與實現(xiàn)_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于Fungus的校園欺凌的認知與處理系統(tǒng)的研究與實現(xiàn)內容摘要近年來,計算機技術燎原之勢地蓬勃發(fā)展影響了人們生活的方方面面,游戲的形式也變得豐富多彩,更多開發(fā)者試圖把知識融合在游戲中,用來構建游戲化的學習環(huán)境。因為游戲本身帶有的多樣性和娛樂性能極大化提高玩家興趣,潛移默化的讓玩家接受認識,輕而易舉地實現(xiàn)“寓教于樂”。不僅可以縮短教育時間,還能結合游戲有更深的印象和體會。因此,將教育與電子游戲相結合具有極高的應用價值。本次課題研究基于Unity3D游戲引擎和其輔助插件Fungus,所實現(xiàn)的游戲與“反對校園欺凌,拒絕校園暴力”的主題相一致。通過本課題,能夠在仿真情境和第三人稱視角中真切地體驗欺凌事件中選擇走向導致的結果,在精心設計的劇情和一系列的游戲交互中對欺凌進行探討。本文主要闡述了使用的開發(fā)工具和輔助插件、游戲場景搭建、人物角色的創(chuàng)建以及動畫系統(tǒng)、劇情和游戲邏輯的實現(xiàn)、游戲中的交互設計等技術,以及游戲測試和性能分析等。關鍵詞: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)交互性:讓玩家覺得友好的界面必然是有交互性并且有交互反饋的開始界面,在開始界面上要滿足玩家的基本需求,比如開始游戲、退出游戲、游戲設置這類游戲元素對可交互的開始界面而言不可或缺。從這三個特性出發(fā),游戲開始界面采用了偏黃色主題的背景界面,按鈕顏色也是以黃色系為主,讓玩家覺得元氣、活潑、正能量。同時背景界面的內容是被欺凌的女孩,讓一進入游戲界面的玩家就已經(jīng)從視覺上感受到游戲的主題,開門見山。此外為了增加開始界面的層次感,在背景界面中間加入了一段長方形的半透明灰色圖片,增加畫面的美感。在背景音樂方面選用了一首輕快有節(jié)奏感的鋼琴曲,引起玩家對接下來游戲中劇情的興趣。為了做到游戲界面的簡約性,開始界面僅介紹了本游戲的名字以及設置了開始游戲、結束游戲以及游戲設置的按鈕。將這些組件配置好后擺放至Canvas畫布中放在合理美觀的位置,設置好組件的錨點和Anchorprestes后,組件將會根據(jù)屏幕的分辨率來自適應屏幕。為了讓游戲標題更加美觀以及契合背景,文字采用了復古字體,整體以白色為主色調來顯示。而在后續(xù)游戲的劇情顯示中,劇情文字的顯示則采用了逐字顯示,有推動劇情,引發(fā)玩家思考的效果。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方法來達到實現(xiàn)按鈕交互的效果,這樣玩家點擊按鈕時就會得到相應的反饋,例如場景跳轉、劇情變化、某些面板的出現(xiàn)和消失,完成玩家和游戲交互的效果。綜上對游戲界面特性和交互上的探討,最后完成的游戲開始界面如下圖4-11所示。圖4-11開始界面4.4.2游戲交互本游戲的游戲交互形式與其他第三人稱角色扮演游戲交互方式無很大區(qū)別,同樣是通過鍵盤輸入以及鼠標點擊的方式與游戲進行交互。使用WASD以及方向鍵進行人物角色的移動,鼠標旋轉進行視角的變換。表4-2游戲交互操作按鍵事件鍵盤按鍵W/上主角向前移動鍵盤按鍵S/下主角向后移動鍵盤按鍵A/左主角向左移動,攝像機向左微旋轉鍵盤按鍵D/右主角向右移動,攝像機向右微旋轉鼠標旋轉控制第三人稱攝像機視角空格鍵進行人物對話鼠標左鍵點擊按鈕或是劇情根據(jù)表中所體現(xiàn)的按鍵方式出發(fā),本課題的游戲交互開發(fā)可簡要分為以下幾類:主角的移動在Unit3D游戲引擎中,已經(jīng)有內置組件可以幫助實現(xiàn)角色的移動,這個強悍的組件就是人物的角色控制器組件。角色控制器其運用過程非常之簡單,采取很少的代碼工作量就可以完成本課題的第三人稱視角移動的游戲開發(fā)。不受摩擦力、阻力等影響,只需要掛載組件在角色面板上,定義相對移動的對象,角色移動的速度,再結合Time.deltaTime讓主角有緩動的效果,通過獲取角色控制器的對象就可以通過鍵盤輸入控制角色了,在表現(xiàn)游戲中的主角運動上再適合不過。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);攝像機跟隨和旋轉由于本游戲的視角定義為第三人稱視角,所以主攝像機需要對主角進行跟隨和面向目標。在游戲中可以使用方向鍵旋轉攝像機,當方向鍵沒有輸入的時候就使用鼠標來旋轉攝像機,這樣就能實現(xiàn)能看到整個角色和環(huán)視場景的效果。當攝像機進行自由視角移動的時候,我們需要用兩個角度來控制攝像機的轉動,還需要一個變量來存儲攝像機和目標對象之間的位置偏移,但是在整個過程中攝像機始終鎖定(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);//維持開始的偏移,根據(jù)攝像機的旋轉進行偏移transform.LookAt(target);//攝像機面向目標碰撞交互當游戲主角在游戲和人物角色或是物體發(fā)生碰撞事件時,需要進行碰撞交互的處理。例如,在本作中當玩家操縱人物點擊頭上顯示感嘆號的人物時,會通過射線檢測是否是對應tag有碰撞現(xiàn)象產(chǎn)生,如果檢測到了就會觸發(fā)人物之間的對話;在游戲主角移動到其他游戲人物身邊時按下空格鍵,檢測是否有碰撞產(chǎn)生,如有產(chǎn)生就會觸發(fā)劇情對話;以及在主角進入某些任務點時,如若發(fā)生碰撞就會觸發(fā)后續(xù)劇情。目前,檢測物理碰撞的方式有兩個類型,一種是在GameObject上掛載Collision碰撞器組件,另一種是利用Collision屬性中的Trigger觸發(fā)器。Trigger觸發(fā)器屬于Collison組件的選項,只要勾選就能運作。而Collision的使用方式是將某一類碰撞器掛載到游戲對象上調整好碰撞范圍,并且主動進行碰撞行為的GameObject必須掛載Rigidbody組件,方可進行碰撞。本游戲中大多采用這種方式以及射線進行碰撞檢測以達到玩家與游戲的交互。Rayray=Camera.main.ScreenPointToRay(Input.mousePosition);//使用攝像機的標簽一定是maincamera定義一條射線RaycastHithitInfo;//如果有碰到碰撞物boolisCollider=Physics.Raycast(ray,outhitInfo);//發(fā)射一條射線射線的信息(定義的射線碰撞的對象)射程voidOnCollisionEnter(Collisioncollision)//碰撞檢測4.4.3劇情交互本課題所實現(xiàn)的游戲意在利用劇情和交互構建游戲化的學習環(huán)境,領會游戲中所想要傳達的思考,所以搭建一個人物對話系統(tǒng)對于本課題的劇情發(fā)展而言極其重要。在我看來,在Timeline中加Playables的方式也能實現(xiàn)人物對話,但過于繁瑣,大大增加游戲實現(xiàn)的工作量,在游戲邏輯的實現(xiàn)上也不夠清晰。于是我選擇了第三方插件Fungus輔助的形式來進行。將第三方輔助插件Fungus用于Unity3D游戲引擎中做主要的劇情系統(tǒng),減少代碼的使用量和制作過程的工作量,也讓游戲邏輯清晰一些。接下來介紹如何在Fungus中完成本課題游戲中劇情交互。首先Fungus作為一個免費插件可以直接在AssetStore里下載使用,導入完成后在Tools里選擇Fungus再選擇新建一個Flowchart,接著調出Fungus的編輯界面可以發(fā)現(xiàn)左邊的樹里已經(jīng)多了一項NewBlock。接下來將NewBlock重命名為“talk01”,將觸發(fā)條件ExecuteOnEvent設置為GameStart,即游戲開始就呼叫它進入對話,也可以設置為“None”,接收到訊息或是碰撞的時候才執(zhí)行。接下來需要新建一個Bool變量名稱為Finished用來記錄對話是否完成。點擊Block在對話一開始時我們需要在屬性窗口的Commands處添加SetVariable將Finished的值設為false,再在對話結束的時候將Finished的值設為True。在這兩個SetVariable命令中間添加narrative中的Say指令,為即將開始的劇情添加一行敘述文案。在編輯對話Say的時候可以為對話設置說話的角色即新建一個Character,在屬性窗口可以為這個Character配置名字和字體顏色。圖4-12Menu選擇界面本課題應用了Menu指令來完成劇情分支,劇情發(fā)展的不同分支展現(xiàn)時,不同的選項和結局會讓玩家感到期待和緊張。因為即使玩家選擇了一種走向也會在完成一種結局后想知道另一種選擇會觸發(fā)什么劇情。本游戲也有選項不同導致的多種結局。在Menu指令的屬性窗口中選擇TargetBlock,選擇Flowchart流程中的某個Block,完成選擇后即可完成劇情跳轉。還可以使用MenuTimer指令來為玩家在Menu的選擇上設定一個秒數(shù)時間,設定完成后在Menu界面進行選擇時,選項下方將會出現(xiàn)進度條,同時可以設定如若沒有在規(guī)定時間內進行選擇將會跳轉到的Block。此時,如若玩家未完成Menu的選擇就會被強制進入某一段Block或是劇情繼續(xù)進行游戲。綜合以上對Fungus輔助插件的研討,本游戲研發(fā)出的某一場景的游戲對話系統(tǒng)邏輯如下圖4-13所示。至此,游戲的劇情交互即對話系統(tǒng)設計完成。圖4-13Flowchart編輯界面4.4.4其他交互(1)Timeline動畫Timeline是一套非常好的基于時間軸的多軌道序列管理工具,也是一個很不錯的策劃工具。它同樣支持可視化編輯,能在不進入游戲播放窗口時就按下播放鍵實時預覽。Timeline動畫播放的過程中能讓玩家產(chǎn)生極強的劇情代入感。我們能使用它在便利穩(wěn)定的情況下做出非常好的線性或非線性的動畫處理。并且它可以很好地與游戲玩法無縫整合,能提高本課題工作效率,表現(xiàn)出游戲所需要的效果,從實際項目出發(fā),優(yōu)化游戲的流程設計,承載動畫以及對話,讓故事務必不斷推進,保持玩家的新鮮感。本課題中的Timeline動畫可以通過在C#腳本中調用PlayableDirector中的API來控制時間軸的播放、暫停和終止,也能通過上述4.3節(jié)對PlayMaker的探討內容來進行實時監(jiān)控。publicPlayableDirectordirector;publicGameObjectimage;voidOnPlayableDirectorStopped(PlayableDirectoraDirector){if(director==aDirector)image.SetActive(true);}director.Play();最好把Timeline組件掛載到一個新建的空物體上,把需要在動畫里表現(xiàn)的角色拖進Timeline編輯器內新建兩個AnimationTrack,一個軌道用于角色的動作變化,一個規(guī)定用于人物的位置變化。在調整位置的時候發(fā)現(xiàn)Unity3D引擎給人物自動添加的動作是緩入緩出的,人物移動時前后慢,中間快。此時可以打開時間軸的曲線,選中要修改的關鍵幀把左切向改為Linear線性,在前一個關鍵幀選擇右切向做同樣修改。Timeline同時也可將多個VirtualCamera拖入Cinemachine軌道進行鏡頭的平滑切換,營造電影般的精美鏡頭。圖4-14Timeline編輯界面(2)AudioSource音源是場景中的發(fā)聲裝置,可以為游戲播放對應的音樂和音效,音樂可以幫助渲染游戲氣氛,例如恐怖游戲中緊張飄渺的音樂會讓玩家更沉浸游戲劇情世界。Unity3D游戲引擎常用的音源組件是AudioSource,將任意類型需要播放的音源片段拖入AudioClip里就可以完成場景的音樂了。通過勾選音源組件的PlayOnAwake以及Loop選項來選擇音樂是否要一進入游戲就播放或是一直循環(huán)播放,同時也可以在Volume處直接輸入數(shù)值來調節(jié)音樂、音效的音量大小。另外,AudioSource還可以通過C#腳本來控制播放,代碼如下:publicAudioSourceAudio;//定義一個AudioSource音源組件Audio.Play();//AudioSource播放音頻第五章游戲測試游戲測試的環(huán)節(jié)不僅要測試游戲的腳本編譯是否能夠通過,同時還要測試游戲過程中的流暢程度,本次的測試將會從編譯情況、功能是否可行、系統(tǒng)資源占用以及實際游戲操作進行測試。5.1設備環(huán)境用于測試的設備環(huán)境如下表所示5-1所示。表5-1設備環(huán)境硬件與軟件環(huán)境參數(shù)系統(tǒng)Windows1064位CPU英特爾Corei5-6300HQ/2.3Ghz內存8GB分辨率1920*1080游戲開發(fā)引擎Unity3D2019.1.8f15.2功能測試與執(zhí)行情況經(jīng)過在編譯情況、功能是否可行、系統(tǒng)資源占用以及實際游戲操作這幾個部分的測試后得到的各項執(zhí)行情況結果如下表5-2,5-3所示。表5-2設備測試項目結果測試項目操作執(zhí)行情況可行性畫面顯示進入游戲查看畫面是否清晰,場景是否完整游戲畫面清晰,場景完整可行UI交互進入游戲,點擊各種UI組件UI組件交互正??尚兄鹘且苿邮褂面I盤WASD操作角色移動主角可以進行移動并且移動正??尚袛z像機視角使用鼠標旋轉視角查看相機視角是否正確,是否跟隨主角相機視角正確并且跟隨主角可行事件交互跟隨游戲流程,查看任務以及對話是否觸發(fā),流程是否完整任務及對話都可以觸發(fā),流程完整可行場景跳轉跟隨游戲流程,查看事件結束后是否會跳轉場景會在正確時間段進行場景跳轉至下一場景可行Timeline跟隨游戲流程查看游戲內的Timeline動畫是否正確播放,人物位置和攝像機位置是否正確Timeline動畫正確播放,人物位置和攝像機位置正確可行Fungus對話系統(tǒng)跟隨游戲流程查看劇情分支和結局導向是否正確劇情分支和結局導向正確可行C#腳本是否產(chǎn)生編譯錯誤無編譯錯誤可行表5-3系統(tǒng)資源占用硬件環(huán)境溫度占用率英特爾Corei5-6300HQ/2.3Ghz68°C53%NvidiaGeForceGTX960M顯卡52°C60%希捷ST1000LM024HN-M101MBB1TB硬盤35°C2%以上結果各方面數(shù)值均屬于正常情況,測試通過。5.3小結本次的測試在編譯情況、功能是否可行、系統(tǒng)資源占用率是否超標以及實際游戲操作中的情況多個方面進行測試。根據(jù)實際的游戲運行情況,我對游戲進行了多多少少的調試和數(shù)值的配置,以達到讓整個游戲的運行效果更加順暢平滑。為了提供較好的游戲體驗,經(jīng)過測試,游戲的劇情內容、游戲操作以及交互等一系列內容也達到了玩家的基本需求。第六章總結與展望6.1總結本課題所研究的基于Fungus的校園欺凌的認知與處理系統(tǒng)的研究與實現(xiàn)至此已經(jīng)順利完成。在完成本課題的過程中,進行的研究工作主要有以下幾點:(1)通過搜索和研究各種資料例如社會上校園欺凌的案例、網(wǎng)絡上的校園舞臺劇本、題材相似的電影以及立意相似的游戲來對本課題的劇情做出合理安排。最后完成的游戲劇情結合生活實際,達到整個游戲劇情連貫,邏輯清晰的同時能夠起到相應的教育效果;(2)學習PlayMaker和Fungus插件來完成游戲邏輯和劇情交互,這兩款插件能夠較好的和unity3D引擎內的其他組件相融合,往往在完成功能時可以選擇運用插件和C#腳本同時監(jiān)聽事件,達到插件和C#腳本相輔相成的效果。在可視化窗口中游戲邏輯和劇情走向清晰明了,大大提高了游戲的精細程度和制作效率;(3)在本課題的交互設計上下了很大功夫,也在玩家的基本需求和友好度上進行考慮,玩家進行鼠標和鍵盤事件的輸入都能得到有效的反饋,Timeline制作精良,背景音樂也貼和游戲背景精心選擇。保證了游戲界面美觀、簡約、交互流暢平滑,能帶來較好的感官體驗。(4)精心調整虛擬仿真的游戲場景和人物模型,達到給玩家真實的視覺體驗。在其中使用Mixamo來配置人物動作數(shù)據(jù),Lightmapping來烘培燈光,增強場景氛圍,應用Cinemachine攝像機進行平滑的視角切換,實現(xiàn)大片級別分鏡;在完成課題的過程中,我對Unity3D游戲引擎的看法有了改變,理解也逐步加深了。在本課題中經(jīng)常使用的Unity3D引擎的第三方輔助插件PlayMaker、Fungus、Timeline以及Cinemachine的學習上都有了很大的進步。使用這些輔助插件的過程中固然遇到了較多技術上和C#腳本編寫上的困難,尤其是Playmaker的使用以及TimelinePlayables的API和Clip部分,導致常常在涉及到調用時無從下手。最終我通過查閱大量資料以及觀看教學實例視頻學習到了相關內容,再通過鍥而不舍的嘗試終于完成了本課題。在本課題的研究和實現(xiàn)過程中我逐漸明白,雖然在游戲開發(fā)的過程中多多借助輔助插件可以大大減少代碼的使用率和開發(fā)的工作量,但是學習插件也需要大量的時間,像Playmaker它本身就帶有豐富的Actions,在理解和操作上并不簡單。我堅信,C#腳本的熟練編寫和應用才是游戲開發(fā)的硬實力,只有鍛煉了自身的邏輯思維能力和腳本編寫能力才能做到在實現(xiàn)所設想功能時不那么費力。6.2展望由于個人能力限制以及時間有限,校園欺凌的認知與處理系統(tǒng)有它存在的合理性,雖然在游戲內能帶給玩家流暢的交互體驗,高清精美的游戲畫面,但目前游戲內的理論知識仍不夠完善,游戲劇情不夠多種多樣,互動性也有待加強。不過這是一個為青少年創(chuàng)建和諧校園生活的有益開端,能為青少年對校園欺凌的認識進行普及,也能為從小培養(yǎng)青少年正確的情感認知奠定基礎,所以以下研究工作將在后續(xù)進一步展開:(1)游戲劇情觸發(fā):本課題中已有大量碰撞檢測以及射線檢測觸發(fā)劇情,不過在考慮到玩家友好度的方面上還可以在人

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論