![基于Unity 3D的虛擬地震預(yù)防相關(guān)應(yīng)對措施游戲的設(shè)計與實現(xiàn)_第1頁](http://file4.renrendoc.com/view/5989a8d38906f1be9b975986eb613b35/5989a8d38906f1be9b975986eb613b351.gif)
![基于Unity 3D的虛擬地震預(yù)防相關(guān)應(yīng)對措施游戲的設(shè)計與實現(xiàn)_第2頁](http://file4.renrendoc.com/view/5989a8d38906f1be9b975986eb613b35/5989a8d38906f1be9b975986eb613b352.gif)
![基于Unity 3D的虛擬地震預(yù)防相關(guān)應(yīng)對措施游戲的設(shè)計與實現(xiàn)_第3頁](http://file4.renrendoc.com/view/5989a8d38906f1be9b975986eb613b35/5989a8d38906f1be9b975986eb613b353.gif)
![基于Unity 3D的虛擬地震預(yù)防相關(guān)應(yīng)對措施游戲的設(shè)計與實現(xiàn)_第4頁](http://file4.renrendoc.com/view/5989a8d38906f1be9b975986eb613b35/5989a8d38906f1be9b975986eb613b354.gif)
![基于Unity 3D的虛擬地震預(yù)防相關(guān)應(yīng)對措施游戲的設(shè)計與實現(xiàn)_第5頁](http://file4.renrendoc.com/view/5989a8d38906f1be9b975986eb613b35/5989a8d38906f1be9b975986eb613b355.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于Unity3D的虛擬地震預(yù)防相關(guān)應(yīng)對措施游戲的設(shè)計與實現(xiàn)DesignandimplementationofVirtualEarthquakePreventionRelatedCountermeasuresgamebasedonunity3D
內(nèi)容摘要隨著新時代發(fā)展和人們對天災(zāi)人禍的漸漸重視,人們會在互聯(lián)網(wǎng)上學(xué)習(xí)逃生自救知識。游玩科普類游戲成為了學(xué)習(xí)的主流方式之一,從預(yù)防校園暴力到在火災(zāi)現(xiàn)場自救逃生,對于近年全球各地頻發(fā)的地震,我們更應(yīng)該予以重視進行災(zāi)前預(yù)防災(zāi)時自救的學(xué)習(xí)。在VR設(shè)備并未普及千家萬戶的今日,選擇一款合適的3D游戲能更方便、仿真地感受到災(zāi)前災(zāi)時的現(xiàn)場變化,并根據(jù)現(xiàn)場情況及時作出反應(yīng)。Unity3D是一款游戲開發(fā)引擎,因為其上手快,平臺廣的特點在市場上被許多人認可并廣泛使用。他能使得每個人在學(xué)習(xí)游戲設(shè)計時迅速適應(yīng)并投入設(shè)計。本論文探索基于Unity3D的模仿在地震時的逃生自救游戲的開發(fā),人們可以通過游玩這款游戲,擺脫被文字限制的思維,在游戲中切身體會到地震時緊迫的時間感和不同場景下不同決定帶來的。游戲難度遞進,通過傳統(tǒng)的關(guān)卡設(shè)計將游戲的游玩難度逐漸提升,不同的場景進行不同的玩法設(shè)計,游戲特有的震蕩感能為用戶帶來逼真的體驗。現(xiàn)在的學(xué)生學(xué)習(xí)和上班族工作較為繁重,對業(yè)余時間的使用也會傾向解壓和放松身心,通過游戲進行科普會使得在放松之余也進行了對防災(zāi)自救知識的充實。本文主要描述了該游戲的開發(fā)原理,游戲的設(shè)計與完成、游戲的功能測試等內(nèi)容。為后續(xù)希望開發(fā)同類型科普游戲的開發(fā)者提供一定程度的借鑒與參考。關(guān)鍵詞:Unity3D3D技術(shù)地震逃生
AbstractWiththedevelopmentoftheneweraandpeople'sgradualattentiontonaturalandman-madedisasters,peoplewilltrytolearntheknowledgeaboutself-rescueontheInternet.Playingpopularsciencegameshasbecomeoneofthemainwaysoflearningit.Fromthepreventionofcampusviolencetoself-rescueandescapeatthesceneoffire,weshouldpaymoreattentiontothestudyofdisasterpreventionandself-rescueforthefrequentearthquakesaroundtheworldinrecentyears.Today,whenVRdevicesarenotwidelyusedinthousandsofhouseholds,choosingasuitable3Dgamecanmakeitmoreconvenientandsimulatethescenechangesduringthepre-disaster,andreactintimeaccordingtothescenesituation.Unity3disagamedevelopmentengine.Becauseofitsfaststartandwideplatform,itisrecognizedandwidelyusedbymanypeopleinthemarket.Itenableseveryonetoadaptandputintodesignquicklywhenlearninggamedesign.Thispaperexploresthedevelopmentofthegamebasedonunity3dtoimitatetheescapeandself-rescueintheearthquake.Peoplecanplaythisgame,getridofthethinkinglimitedbywords,andexperiencethesenseofurgencyintheearthquakeandthedifferentdecisionsindifferentscenes.Thedifficultyofthegameisprogressive.Throughthetraditionalleveldesign,thedifficultyofplayingthegameisgraduallyincreased.Differentscenesaredesignedwithdifferentplayingmethods.Theuniquesenseofshockofthegamecanbringrealexperiencetousers.Nowadays,studentsandofficeworkersworkhard,andtheytendtodecompressandrelaxtheirbodyandmindwhentheyusetheirsparetime.Popularsciencethroughgameswillenrichtheirknowledgeofdisasterpreventionandself-rescuewhilerelaxing.Thispapermainlytalksaboutthedevelopmentprincipleofthegame,thedesignandcompletionofthegame,thefunctiontestofthegameandsoon.Itcanprovidesomereferenceforthedeveloperswhowanttodevelopthesametypeofpopularsciencegames.Keywords:Unity3D3DtechnologyEarthquakeescape
目錄TOC\o"1-4"\h\z\u第一章 緒論 緒論選題的目的和意義眾所周知,在許多的自然災(zāi)害中,地震雖然不是唯一一個難以預(yù)測難以預(yù)防的自然災(zāi)害,但是因為地震的多發(fā),使得地震成了目前危害性最大范圍最廣的自然災(zāi)害。地震帶來的財產(chǎn)傷亡以及人員傷亡數(shù)不勝數(shù)也難以計算,而中國恰恰就是世界上爆發(fā)地震最多的幾個國度之一,歷史記錄的大地震帶來的人身傷亡以及后續(xù)花費的修繕費用讓人觸目驚心,如何能在地震中更好的保障自己本身的安全和財產(chǎn)安全變得越來越重要。近年來,地震防護雖然已經(jīng)受到人們的普遍關(guān)注和重視,但大多數(shù)人卻仍然能不知道在地震中如何才能更好保護自身安全,所以地震科普宣傳在防震中就顯得尤為重要了,選擇什么方式作為科普地震防護的渠道顯得尤其緊要。游戲的主流玩家群體多為學(xué)生以及上班族,他們通過游玩游戲進行解壓,當(dāng)我們通過游戲讓玩家在減壓的同時進行科普,便可以達到寓教于樂一舉兩得的目的。Unity3D是一款游戲開發(fā)引擎,因為其開發(fā)成本低、發(fā)展前景寬廣的特點在市場上被許多人認可并廣泛使用。這些特點也使得不少高科技人才都選擇往U3D行業(yè)發(fā)展。高薪的工作和人才的頻頻涌入,也使得U3D游戲開發(fā)的發(fā)展范圍越來越廣。而U3D之所以受廣泛游戲設(shè)計者青睞,我想最大的原因是由于U3D自身強大的API。它可以使得在設(shè)計那些看起來難以實現(xiàn)的行為變得簡單容易操作,使得每個設(shè)計者都能通過U3D去創(chuàng)造自己的世界來實現(xiàn)自己天馬行空的幻想。本論文探究基于U3D的模擬地震逃生自救游戲的設(shè)計與開發(fā),人們可以通過游玩這款游戲,擺脫被文字限制的思維,在游戲中切身體會到地震時緊迫的時間感和不同場景下不同決定帶來的。游戲難度遞進,通過傳統(tǒng)的關(guān)卡設(shè)計將游戲的游玩難度逐漸提升,不同的場景進行不同的玩法設(shè)計,游戲特有的震蕩感能為用戶帶來逼真的體驗。而設(shè)計一款優(yōu)良的游戲作品,設(shè)計者不能僅僅是給予玩家刺激感,更加應(yīng)該要升華到陶冶情操,深化思想的目的,在釋放社會壓力的同時更要有意識傳達一些生活常識。此次對于科普類游戲的研究設(shè)計傾向于探索3D游戲設(shè)計中科普類游戲的局限性和優(yōu)越性。我相信,3D游戲的發(fā)展絕不會僅僅止步于眼前這些功能和內(nèi)容,隨著游戲的發(fā)展會更新更多貼近生活的設(shè)計。如今我們最大的任務(wù)便是要成為這磨礪探索路程上的試劍石,在設(shè)計開發(fā)時提供足夠多的素材,暴露足夠多的問題,從而在未來能在一切都向3D發(fā)展的大趨勢時,設(shè)計者們便可隨心所欲地發(fā)揚其優(yōu)越性并盡可能彌補其中的局限性。選題的背景每年世界各地總共會爆發(fā)大概500萬次地震,因為震級小或者其他的原因,大部分的地震我們并不會感受到,但我們能感受甚至接觸到的地震仍然有5萬多次,這五萬多次的地震中會形成災(zāi)害的地震就多達1000余次,平均下來,大約每天就會有3次可形成災(zāi)害的地震發(fā)生。從這些數(shù)據(jù)上看,地震所導(dǎo)致的死亡人數(shù),僅是上個世紀(jì)全球就已經(jīng)有120余萬人,由此可見地震并不是什么罕見現(xiàn)象,它就藏在我們身邊,每個人隨時都有可能因為地震流離失所甚至是失去性命。近幾年,國內(nèi)外強震得爆發(fā)越來越密集。然而地震是會隨著人類社會的發(fā)展,經(jīng)濟程度上的一直提高,帶來愈加重大的損失,這正說明了在未來社會的不斷發(fā)展中,地震帶來的問題比較于以前肯定會體現(xiàn)出更高的強度,受災(zāi)后的毀壞水平會呈現(xiàn)增長趨勢。雖然近幾年幾次重大的地震都讓千千萬萬的人意識到了地震帶來的變化是愈加劇烈的,卻都未曾有系統(tǒng)的自發(fā)的地震科普宣傳出現(xiàn)在大眾面前??上攵?,我國群眾對于地震仍是抱有一種僥幸心理,因此,我們需得加強地震科普宣傳,提高群眾對于地震災(zāi)害的預(yù)防意識,要有“生于憂患,死于安樂”的自覺,盡可能將我們無法控制的天然災(zāi)害帶來的損失降到最低。我國防震減災(zāi)任務(wù)的方針是“預(yù)防為主,防御與救助相結(jié)合”。這句話我們也可以解讀為另一句話,便是“寧可千日不震,不可一日不防”。這兩句話的重點都在于“防”這個字上。每次地震過后,背后都是一場場家破人亡,妻離子散的悲劇。我們不能總是事后收拾地震帶來的各種“爛攤子”,我們應(yīng)當(dāng)事先為了減少甚至防止“爛攤子”的出現(xiàn)。我們需要把震后我們?yōu)榱司戎蝹?、恢?fù)建筑原貌等做的救災(zāi)活動轉(zhuǎn)變?yōu)榈卣鹗录l(fā)生之前長期自覺積極的防震自救行為。然而這種地震事件發(fā)生之前長期自覺積極的防震自救行為的養(yǎng)成不是一次兩次地震演練,或者是一本兩本地震預(yù)防手冊就可以做到的。它需要依靠群眾的對防震減災(zāi)認識的形成和進步。而要形成這種對地震的防護意識,就代表著我們需要大量的、長期的防震減災(zāi)的宣傳和防震減災(zāi)常識的普及,這種宣傳和普及往往又需要大量的資金支持和人力支持。但是如果我們摒棄傳統(tǒng)的教育宣傳方式,選擇其他方式來去科普,使得人們能自發(fā)積極地去了解,便能達到事半功倍的效果。既是需要我們主動積極地去了解去科普,通過什么方式就顯得格外重要。我們之所以選擇科普類游戲作為科普宣傳渠道,更大的原因是因為它區(qū)別于其他普通游戲,從事教育行業(yè)的人或是家長并不會對此有過多的抵制行為。無論是對游戲抱有多大成見,甚至可能是“防游戲如防虎”,但都不得不承認科普類游戲帶來的教育意義是非常大的。科普類游戲之所以更容易為全社會所接納,是因為它不僅使得游戲和學(xué)習(xí)之間的沖突被弱化,也使得游戲有了一個合理的存在意義,于家長,于學(xué)生更是一種可以達到雙贏的途徑??破疹愑螒螂m然是以游戲為表現(xiàn)模式,然而實質(zhì)和目的還是在于科普,只是通過使用這種形式的科普就能使得玩家在娛樂的過程中潛移默化地了解到我們所要科普的內(nèi)容。這區(qū)別于傳統(tǒng)科普模式中單調(diào)無趣的文字教學(xué)或是圖片教學(xué),增加了人與科普內(nèi)容的互動,以動態(tài)的形式增添了許多趣味,使其更容易為玩家所接受,合乎國家《科普法》中規(guī)定“開展科學(xué)技術(shù)普及,應(yīng)當(dāng)采取公眾易于理解、接受、參與的方式”的要求。基于這些特點與優(yōu)勢,我認為科普游戲有望成為提高全民科學(xué)素質(zhì)的重要方式之一。運用這種形式的合并對科普形式進行變化,強強聯(lián)手使得科普游戲得以發(fā)揮1+1>2的作用。通過科普類游戲普及防震自救知識,能讓學(xué)生與家長充分放心的參與其中,也能讓上班族在減壓之余得到科普。隨著互聯(lián)網(wǎng)的迅速發(fā)展,游戲的誕生使得人們的生活變得更加有趣和多樣,從最初2D游戲引領(lǐng)市場,到如今3D游戲的獨占鰲頭和VR游戲的異軍突起,游戲經(jīng)歷了很大的變化。我們既然是要達到科普效果,那么我們的設(shè)計便要盡可能貼近現(xiàn)實,而我們存在的現(xiàn)實世界是三維空間世界,3D游戲的模型例如游戲中的人物和地形就是用三維立體模型來實現(xiàn)的,所以3D游戲比較于2D游戲就會更顯得貼近現(xiàn)實世界。3D游戲在空間操作上的隨意性也較2D游戲要強,這就更容易吸引人,這也使得3D游戲的設(shè)計成了游戲平臺上主要的游戲設(shè)計。為了達到仿真模擬科普的目的,將這款科普類游戲設(shè)計成3D游戲,就可以讓玩家較為真實地感受到地震發(fā)生時可能發(fā)生的真實情況。雖說相較于VR游戲帶來的仿真感,3D游戲的仿真就顯得較為欠缺,但考慮到VR設(shè)備尚未普及到千家萬戶且成本較高,選用VR游戲便無法達到廣泛科普的效果,所以選擇3D游戲進行科普就顯得更為合適了。論文組織結(jié)構(gòu)?論文從一開始的構(gòu)思到后續(xù)的深化設(shè)計實踐,我結(jié)合了3D游戲相關(guān)的開發(fā)資料和視頻,進行了一個地震逃生自救科普游戲的設(shè)計制作,在以下論文的敘述中會提及游戲的系統(tǒng)功能設(shè)計和一系列代碼的編寫。本篇論文分為六章,每個章節(jié)大致內(nèi)容和重點如下:第一章:緒論,主要闡述了該畢業(yè)設(shè)計選題的目的和意義、選題背景對地震防災(zāi)重要性、科普類游戲的優(yōu)越性和選擇3D游戲的原因的大概介紹;第二章:介紹了本文制作游戲使用的各類開發(fā)工具和使用的開發(fā)語言;第三章:包含了項目的從設(shè)計、制作到完成的總體設(shè)計,對游戲玩法進行了說明詳解并展示了游戲一些具體設(shè)計的結(jié)構(gòu)圖;第四章:詳細介紹了游戲的各個部分的設(shè)計實現(xiàn)內(nèi)容,比如場景設(shè)計、角色的動作設(shè)計、UI交互設(shè)計等這些游戲設(shè)計內(nèi)容;第五章:運行游戲進行測試,打包封裝;第六章:對設(shè)計游戲時的出現(xiàn)的問題和今后的后續(xù)學(xué)習(xí)方向進行總結(jié)。
開發(fā)工具介紹Unity3D游戲引擎Unity3D軟件介紹Unity3D可以說是目前較為流行的游戲開發(fā)工具,是一個對游戲開發(fā)功能有全面整合的綜合游戲開發(fā)平臺。使用者能夠輕松上手進行創(chuàng)建例如三維游戲,實時三維動畫等類型游戲。游戲設(shè)計者可以使用插件發(fā)布網(wǎng)頁游戲或是直接發(fā)布可運行在多個平臺的游戲。Unity3D為游戲設(shè)計者提供了一個交互良好的操作界面。通過U3D的各個功能,每一個游戲設(shè)計者都可以流暢地在Windows或者MacOS下進行操作設(shè)計。U3D為我們提供了多種腳本語言編譯的常用環(huán)境,支持C#、javascript、boo三種腳本語言。U3D自帶五個工程視圖框架,通過這五個試圖便可以很好地協(xié)助設(shè)計者分類游戲中的對象及察看制作游戲的進度。project視圖:用來放游戲中的資源文件,跟庫的概念一樣;hierarchy視圖:列明場景中的游戲?qū)ο笠员阌谠O(shè)計者查看;inspector視圖:顯示游戲資源的信息以及當(dāng)前選中的資源或?qū)ο蟮脑O(shè)置。例如對象的三維坐標(biāo)、旋轉(zhuǎn)量、腳本變量等內(nèi)容,是一些變量和組件的組合;scene視圖:是我們建游戲的地方,通常用來存放游戲中的模型資源,可以直接將模型拖放到場景中;game視圖:雖然不可以用來做編輯修改,但是可以用來監(jiān)察已經(jīng)實現(xiàn)的游戲的運行結(jié)果,能夠讓我們看到完整的動畫效果。這僅在播放模式中演示。API接口API本質(zhì)上其實是一些已經(jīng)被預(yù)先定義的函數(shù),而U3D就有這樣一套完整的API函數(shù)庫,U3D強大的API可以幫助設(shè)計者實現(xiàn)各種天馬行空的設(shè)計。Unity3D中常用的API有關(guān)于物體旋轉(zhuǎn)和位移、U3D射線碰撞、剛體等。在使用U3D的過程中都會有所涉及,慢慢接觸到。物理引擎物理引擎的重要性在游戲中是較為重要的存在的,近年的游戲中,比如人類一敗涂地這種就是以絕佳的物理感受在玩家中大受歡迎。但在較早之前的游戲中,我們能夠發(fā)現(xiàn),物理引擎的使用并不會被游戲設(shè)計者們重視或者研究,當(dāng)時的游戲都是使用一些的運算和比較基礎(chǔ)的體現(xiàn)設(shè)計來完成物理表現(xiàn)的處理。比如人跳起來,又落到地上這樣比較直觀體現(xiàn)重力的物理現(xiàn)象,當(dāng)時的游戲設(shè)計者只會通過這種較為粗糙簡單的形式來體現(xiàn)基礎(chǔ)的物理現(xiàn)象。然而一個游戲的設(shè)計只有具備一定物理特性甚至是在物理特性上有一定的突出點,才會使得玩家在游玩時有真實感。再看看如今3D游戲的火爆,隨著游戲設(shè)計者的重視使得物理表現(xiàn)效果在短時間內(nèi)有了巨大的改變,不僅僅局限于普通的重力體現(xiàn),更是浮力,力的相互作用等這些物理基礎(chǔ)現(xiàn)象,三維演繹的形式大大拓寬了游戲的類型與想象力。游戲設(shè)計的物理引擎主要包括剛體、碰撞、物理材質(zhì)等,我們利用這些組件構(gòu)成的物理引擎來模仿物體在現(xiàn)實生活中,力在物體間的相互作用甚至是力度的體現(xiàn)。比如在羽毛球小游戲中,當(dāng)羽毛球在兩個球拍作用下來回遠近高低地運動,顯示出反彈以及做力的效果。U3D利用組件對開發(fā)對象進行渲染,添加對象的聲音,光線便可帶給我們很逼真的視覺效果;然后根據(jù)物理特性添加剛體,碰撞器等組件,可以模擬實現(xiàn)對象受到重力等物理現(xiàn)象的影響。Unity常用生命周期的函數(shù)Unity3D游戲引擎不像常規(guī)的程序直接在Main函數(shù)入口運行,而是在內(nèi)部實現(xiàn)了自己的生命周期事件。通過對這些生命周期的事件進行寫入,Unity內(nèi)部就會不斷地迭代這些生命周期函數(shù)。Unity3D的腳本基本上都會繼承自于MonoBehavior基類。一般不繼承于MonoBehavior的類會用來寫一些工具類。通常來說,除非你自己手動GC釋放內(nèi)存,否則它都會存在于在整個程序運行過程。下面介紹一下游戲中Unity比較常用的生命周期函數(shù)。Reset()函數(shù):這個函數(shù)經(jīng)常被用來給組件設(shè)置為給定默認值,通常在用戶點擊Reset按鈕時被調(diào)用或者是在初次掛載組件時被調(diào)用。Awake()函數(shù):主要被用于初始化游戲狀態(tài)或變量。無論該對象是否已被激活,Awake()函數(shù)都會在游戲?qū)ο蟊怀跏蓟瘯r調(diào)用。Start()函數(shù):與前面提到的Awake()函數(shù)一樣,它在腳本中只會調(diào)用一次,一般會在第一次調(diào)用Update方法這一幀之前調(diào)用這個函數(shù)。Update()函數(shù):即游戲中的幀事件,因為游戲大部分都是按幀率來執(zhí)行邏輯的。在實際操作時我們會了解到這個函數(shù)是實現(xiàn)任何類型的游戲腳本時最常用的功能,但是這并不意味著每個MonoBehaviour腳本都會需要用到它。OnDisable()函數(shù):當(dāng)游戲?qū)ο鬄榉羌せ顮顟B(tài)或者對象是不可用的時候就會被調(diào)用,對象被銷毀時我們也可以調(diào)用它,它可以用于清理代碼。OnDestroy():這個函數(shù)會在游戲?qū)ο蟊讳N毀的時候執(zhí)行,場景或游戲結(jié)束時也會調(diào)用。除此之外,關(guān)閉場景并加載新場景也會調(diào)用這個函數(shù)。也就是說這個函數(shù)進行調(diào)用的時候,對象往往都是曾經(jīng)處于活動狀態(tài)的。GUI(圖形用戶界面)U3D中的UI分為OnGUI、NGUI、UGUI等,關(guān)于GUI的內(nèi)容,我們可供挖掘和學(xué)習(xí)的內(nèi)容非常多。在游玩游戲時,我們其實就會感受到不同類型的UI控件,比如按鈕、圖片、文本等這些控件,這就是不同類型的UI的體現(xiàn)。由此可見,玩家在游玩游戲的時候,最開始會接觸到的很明顯就是游戲的GUI了。Unity的GUI也就是UnityGUI,具有功能完整、種類繁多的界面元素等特點。只要通過在GUI控件的創(chuàng)建操作,就可以同時包括實例化,定位和功能定義。3DsMax軟件3Dsmax是游戲開發(fā)中最常用建模工具之一,它是discreet公司開發(fā)的一款基于PC操作系統(tǒng)的三維動畫渲染和三維對象制作軟件。一開始使用者會將它來制作于電腦游戲中的動畫,然而在后續(xù)的漸漸發(fā)展中進一步用于參與制造影視片中的一些特效創(chuàng)作。本游戲中的模型不使用3DsMax來建模,因為會花費大量時間和精力,本項目會直接采用Unity商店中已建好的模型。為了在導(dǎo)入外部的模型時避免出錯,還是要下載該軟件,有些模型格式仍需要使用到該軟件內(nèi)部的執(zhí)行代碼。C#語言C#是一種與Java類似的面向?qū)ο蟮母呒壋绦蛟O(shè)計語言,是一種工具,運行于.NETFramework之上。Unity是跨平臺的,但C#并不是一種跨平臺的語言,之所以Unity能夠使用C#來開發(fā)是因為Mono的重新實現(xiàn),因此,我們可以在Unity上使用C#編寫代碼。語法明了,類庫使用方便,是C#的優(yōu)點,也是我們在Unity開發(fā)中首先考慮C#的原因的語言。VisualStudio2017VisualStudio是一套常用于構(gòu)建應(yīng)用程序的軟件開發(fā)工具。因為Unity是使用自帶的C#編譯器編譯腳本,而VisualStudio有自己的C#編譯器,所以我們能夠使用它來檢查C#腳本是不是存在錯誤。這使得我們在游戲設(shè)計中使用VisualStudio編譯器會顯得更加便利,這樣我們就沒有必要一直切回到Unity查看是不是存在問題或者是腳本錯誤了。
總體設(shè)計游戲設(shè)計階段在游戲初步開始的時候需要對游戲大綱進行構(gòu)思,第一步就是游戲本身的設(shè)計,這個游戲的主要內(nèi)容是地震逃生及自救的內(nèi)容,那么我們設(shè)計游戲的時候就要在這個方面,以及有關(guān)這個方面的游戲場景選擇下進行斟酌考量。設(shè)計選擇按照“能跑則跑,跑不了找掩護”的順序進行設(shè)計。地震逃生或自救設(shè)計地震中尋求逃生的主人公用鍵盤的WASD控制前后左右的行走,根據(jù)不同的場景,運用基本常識對場景進行判斷是否能夠短時間逃出,若不能則需要通過與場景進行交互進行自救?;A(chǔ)的判斷和走向如圖3-1所示。在第一關(guān)的設(shè)計中,會主要突出災(zāi)前玩家需要對場地進行判斷和安全逃生方式的選擇。第二關(guān)的設(shè)計會突出玩家在無法逃出情況下,選擇合適的遮蔽物作為自救方式。圖3-1游戲基礎(chǔ)走向流程設(shè)計場景選擇和場景特色場景一:在普通平房,逃出的生存率比尋找遮蔽物躲藏要高,選擇留下尋找遮蔽物有可能會因為找不到遮蔽物被埋在建筑物下。圖3-2場景一流程設(shè)計場景二:模擬學(xué)校場景,區(qū)別于場景一的逃生方式,選擇二樓。二樓逃出生存率不如一樓的高,選擇逃出大幾率會因為樓層結(jié)構(gòu)問題,樓梯的不穩(wěn)定和墻體的不穩(wěn)定受傷出血,在災(zāi)時失血過多死亡。選擇留下,選擇合適的遮蔽物進行躲藏支撐,不恰當(dāng)?shù)恼诒挝飫t會導(dǎo)致受傷甚至死亡。玩家通過選擇合適的遮蔽物進行點擊交互得以自救。圖3-3場景二流程設(shè)計游戲制作階段制作階段最重要的就是地震的模擬帶來的真實感。模擬地震既是模擬地震時的逃生及自救,我們在游戲設(shè)計中就需要有一些體現(xiàn),我們可以通過添加一些對應(yīng)的設(shè)計來體現(xiàn)。比如,在地震時添加游戲人物的表情動作變化;又或者,地震時的晃動的體現(xiàn)形式。參考網(wǎng)上的一些資料,大部分涉及模擬震動游戲的設(shè)計都是通過掛載代碼或者插件來實現(xiàn)。但是這種掛載插件的做法影響后續(xù)的設(shè)計,也不方便我對后續(xù)場景的交互設(shè)計。所以最后決定通過對相機進行旋轉(zhuǎn)來做動畫設(shè)計去進行設(shè)計實現(xiàn)。設(shè)置用來模擬地震的動畫片段,設(shè)計相機的動畫可以用相機的震動動畫來模擬地震的晃動,利用動畫來設(shè)計地震晃動在這里也會更加方便快捷。場景跳轉(zhuǎn)游戲開始前的菜單設(shè)計,進行兩個場景的選擇,選擇后可進行場景跳轉(zhuǎn)。除了菜單選擇可進行場景跳轉(zhuǎn),還有第一關(guān)結(jié)束后可選擇回到重新開始第一關(guān)或繼續(xù)到第二關(guān)。具體的跳轉(zhuǎn)結(jié)構(gòu)設(shè)計如圖3-4所示。圖3-4跳轉(zhuǎn)設(shè)計結(jié)構(gòu)界面除了設(shè)計UI,我們還要需要給重玩按鈕和菜單按鈕添加點擊事件來完成設(shè)計。游戲完成階段游戲完成時,需要檢查除游戲內(nèi)容外最重要的菜單和結(jié)果頁面。菜單菜單設(shè)計是關(guān)卡類型游戲的必要設(shè)計,通常出現(xiàn)在游戲的開始界面,玩家通過菜單選擇這個游戲的關(guān)卡。設(shè)計菜單最重要的就是關(guān)卡選擇,當(dāng)然,這是在出現(xiàn)菜單前已經(jīng)出現(xiàn)游戲名的前提下。設(shè)計菜單的目的是在游戲開始前讓玩家對于總共會出現(xiàn)的關(guān)卡數(shù)量有個心理準(zhǔn)備,所以通常我們在設(shè)計游戲的時候,除了實際已經(jīng)完成的關(guān)卡,也會在比較顯眼的位置加上“后續(xù)關(guān)卡盡請期待”之類的話以謀求后續(xù)發(fā)展。菜單設(shè)計要做到簡潔和清晰。沒有解鎖后才能游玩的要求的關(guān)卡要注意在菜單處就可以選擇,如果有設(shè)定某個關(guān)卡是需要解鎖特定情況才能游玩的,要注意菜單上的設(shè)計,要和設(shè)計相對應(yīng)。本畢業(yè)設(shè)計的菜單的大致跳轉(zhuǎn)設(shè)計如圖3-5所示。圖3-5菜單跳轉(zhuǎn)結(jié)構(gòu)設(shè)計勝利或失敗頁面關(guān)卡的勝利頁面相對比較簡單。失敗頁面的跳轉(zhuǎn)根據(jù)關(guān)卡不同也會有所不同。第一關(guān)相對簡單,是一個新手關(guān)卡,失敗只能選擇重新開始,不能解鎖第二關(guān),是單項選擇。第二關(guān)較第一關(guān)的設(shè)計會更復(fù)雜一點,所以第二關(guān)失敗后,玩家除了可以選擇重新游玩第二關(guān),也可以回到菜單頁面選擇第一關(guān)。圖3-6菜單跳轉(zhuǎn)結(jié)構(gòu)設(shè)計玩法說明介紹和目標(biāo)地震中尋求逃生的主人公用鍵盤的WASD控制前后左右的行走,根據(jù)不同的場景,運用基本常識對場景進行判斷是否能夠短時間逃出。若不能,則需要通過與場景進行交互進行自救。游戲特色首先,不同于枯燥死板的文字敘述,項目旨在讓玩家游玩時感受關(guān)于地震中的不可控和一些逃生細節(jié),在細節(jié)的體驗中發(fā)掘在地震中逃生的關(guān)鍵。其次,在游戲關(guān)卡的設(shè)計上會在難度上呈遞進狀態(tài),但無論是什么場景或者是難度設(shè)計,逃生訣竅只圍繞一個中心,就是在災(zāi)時逃生的關(guān)鍵。這個游戲項目重在災(zāi)時逃生和場景交互的部分,讓玩家體會不同選擇下導(dǎo)致的結(jié)果也會不同,采取時間限制會使得游戲游玩更為刺激,更有迫切感。游戲的實現(xiàn)與結(jié)果在左下角的導(dǎo)出模式中可選PC,Android,ios等不同平臺的模式。選擇好導(dǎo)出模式之后,點擊Build就可以完成打包導(dǎo)出了,最后就會生成一個exe可執(zhí)行文件和一個Data數(shù)據(jù)文件夾就完成了,也就完成游戲的打包導(dǎo)出了。
游戲設(shè)計場景設(shè)計系統(tǒng)包括場景1和場景2。場景1為游戲的新手場景,即玩家對游戲操作和流程進行適應(yīng)的場景。玩家通過區(qū)分三個不同場景的特性決定是否逃離或者自救方式。場景2是基于基礎(chǔ)操作上添加了場景道具交互的體驗和區(qū)別。場景1:普通平房場景,玩家用于適應(yīng)wasd的運動方式和感受游戲的設(shè)計風(fēng)格;場景2:學(xué)校場景,玩家通過與場景道具的交互感受在這個場景下的自救方式。場景的導(dǎo)入Unity中自帶的地形系統(tǒng)其實就能很好地創(chuàng)建自己想要的地形場景,在Hierarchy面板中的Create--3DObject--Terrain便可以創(chuàng)建一個平面進行設(shè)計。但在這次的項目中,我還是選擇了直接導(dǎo)入合適的場景進行游戲設(shè)計。無論是第一關(guān)還是第二關(guān)的場景,都是同一個,但是會通過選擇不同特色的位置來區(qū)別兩個關(guān)卡的特色。大致場景如圖4-1所示。圖4-1人物及場景外部選擇這個場景,是因為他的多元性,一樓內(nèi)部的設(shè)計適合進行第一關(guān)的基礎(chǔ)逃生設(shè)計,讓玩家先行適應(yīng)操作。場景內(nèi)部一開始是比較空曠的狀態(tài),為了游戲場景的合理性,我在里邊添加了一定數(shù)量的桌椅,如圖4-2所示。圖4-2添加了游戲物體的第一關(guān)內(nèi)部場景第二關(guān)的設(shè)計區(qū)別于第一關(guān),難度有所遞進,所以我選擇了二樓作為第二關(guān)的場景。圖4-3場景二外部第二關(guān)的場景設(shè)計背景是校園逃生,主要在于場景物件的交互,所以相較于第一關(guān)的場景,內(nèi)部物體會比較多,如圖4-4所示。圖4-4場景二內(nèi)部角色設(shè)計創(chuàng)建游戲物體人物并導(dǎo)入游戲項目中,實現(xiàn)人物的運動。導(dǎo)入模型首先要將玩家所控制的對象設(shè)計出來,也就是主角對象,對應(yīng)的模型我已經(jīng)在項目的設(shè)計前期下載好,但是因為U3D支持的是.fbx模型,而我所下載的素材不是,所以首先需要將人物素材導(dǎo)入3DsMAX進行轉(zhuǎn)格式導(dǎo)出為.fbx格式,再進行導(dǎo)入到U3D中使用了。最后直接將模型拖入Project面板即完成導(dǎo)入,如圖4-5所示。圖4-5人物模型人物運動的實現(xiàn)導(dǎo)入后首先調(diào)整好人物的大小,給人物添加上屬性剛體Rigidbody和碰撞體Collider。碰撞體是模擬真實物體間的碰撞的,使得人物具有真實物體的物理屬性。圖4-6設(shè)置剛體和碰撞體在Edit中的Preference中將Unity默認的腳本編輯器設(shè)置為VS才能來進行編譯。然后就可以編寫代碼實現(xiàn)游戲的邏輯了,給人物添加移動腳本,使玩家自如地能夠控制人物的運動。設(shè)置WSAD鍵分別對應(yīng)人物的前后左右的移動。同時通過設(shè)置人物的動畫狀態(tài),使人物在移動的同時播放走路動畫。移動使用的方法是transform.Translate(),旋轉(zhuǎn)使用的方法是transform.Rotate()。圖4-7代碼實現(xiàn)人物動畫的切換我們可以利用U3D的Animator狀態(tài)機系統(tǒng)來完成動畫設(shè)計的切換。首先需要做好各個人物動畫的切換連線以及切換觸發(fā)條件。在項目運行時,人物根據(jù)各種觸發(fā)條件(例如時間、碰撞檢測等)在各個動畫之間切換播放。圖4-8人物地震時神態(tài)變化主要的動作如圖4-9所示,可以比較清楚的看到與人物相關(guān)的動畫的狀態(tài)控制。圖4-9人物動畫的狀態(tài)控制器除了人物會進行動畫設(shè)計之外,還有我們在總體設(shè)計中提到過的模擬地震狀態(tài)的形式也是使用了動畫形式來呈現(xiàn)的。具體實現(xiàn)如圖4-10。圖4-10地震晃動的設(shè)計實現(xiàn)UI設(shè)計關(guān)于UI設(shè)計這部分,這大概是玩家不太在乎,但是我們在開發(fā)游戲過程中最為繁瑣卻又不可缺少的一部分了。我們在進行游戲設(shè)計的時候,我們會知道關(guān)于UI設(shè)計涉及的方面幾乎是整個游戲,合理恰當(dāng)對UI進行不同的處理會帶來不同的感受。在UI設(shè)計的方面,在游戲中有多種呈現(xiàn),比如我們在角色扮演類型游戲中劇情向的設(shè)計中比較常見的文字敘述,與其它部分的連接和跳轉(zhuǎn)比較少,如圖4-11。圖4-11文字彈窗但是在這個游戲中,我們還是比較多會接觸到例如圖4-12這種跳轉(zhuǎn)較多,與其他部分連接性也比較強的UI設(shè)計。圖4-12逃出或留下在第二關(guān)的設(shè)計中,就不僅是這種彈窗形式的UI設(shè)計,它會有UI觸發(fā)人物動畫動作的設(shè)計,玩家能感受到關(guān)于UI的另一種呈現(xiàn)方式。第三人稱相機的跟隨在人物設(shè)計中比較重要的點還有一個第三人稱相機的跟隨。這是第三人稱角度看向?qū)ο蟮?,也就是一直看向?qū)ο蟮谋巢?,就像跟在一個人身后行走一樣。攝像機通過初始化和主角人物的距離及角度差值,實時跟隨主角移動及旋轉(zhuǎn)到合適的拍攝角度。這樣子,人物在走動的時候,攝像機就會隨著人物的移動進行移動。具體的代碼實現(xiàn)如圖4-13所示。圖4-13第三人稱相機跟隨劇情設(shè)計在一般的角色扮演游戲中都會有一定的劇情和劇情走向,但是在這個項目中,為了比較順暢的游戲設(shè)計,我將自己代入去體驗開發(fā)這個游戲。第一關(guān):走入平房,環(huán)視周圍,可以看到房子內(nèi)擺件較少,安全出口也比較近,一目了然的狀況。突然發(fā)生地震,在逃出去和留下來當(dāng)中進行選擇。如果選擇逃出去,在地震初期迅速離開還能順利逃生,游戲成功;如果選擇留下來,場景擺件都不足以用來躲藏遮蔽,人物會因此喪生,游戲失敗。圖4-14游戲失敗第二關(guān):走入學(xué)校二樓的教室,可以看到玻璃窗,黑板,還有一排排一列列的桌椅,通往安全出口的路比較多阻礙,樓梯也具有倒塌的可能,選擇逃出去會有時間上的不利;如果選擇留下來可以尋求自救的方式給自己爭取被救出的機會。選擇遮蔽物的時候,選擇離靠窗靠門較近的桌子進行躲藏可以在余震來臨前爭取順利離開的機會,選擇較里面的位置不利于自救,出現(xiàn)被埋的情況也會大大增加。添加背景音樂及游戲音效添加背景音樂可以通過添加AudioSource組件來給游戲添加背景音樂和游戲音效。
游戲測試測試的目的和意義在游戲成型之前,我們需要實現(xiàn)游戲的設(shè)計,但是實現(xiàn)之后,效果的把控和一些設(shè)計的合理性,都需要通過一次又一次的測試來慢慢調(diào)整進行一次又一次的完善和整改。我們通過對游戲細節(jié)的測試來重新修改設(shè)定以及代碼,直到最后幾次的調(diào)試中不會再出現(xiàn)無法運行的或者其他的問題,一個游戲的測試才算是比較完整的完成了,這個游戲才能發(fā)布出去。游戲測試我們通常會分成游戲時的性能測試和游戲的功能測試。性能測試需要我們提前預(yù)想當(dāng)前游戲中可能會出現(xiàn)的性能風(fēng)險和缺陷,從而對項目進行整改,使得游戲本身可適用于不同的設(shè)備上。功能測試一般是我們對游戲中會出現(xiàn)的游戲行為進行重現(xiàn),確保游戲行為可行,不會出現(xiàn)角色控制描述與實際情況不符合的狀況,這是用來發(fā)現(xiàn)游戲本身功能可行性的主要方式。在本設(shè)計的測試中,我會多分出一個小節(jié)對游戲的界面進行測試,因為在本設(shè)計中,游戲的界面相比于其他功能較多,需要進行更為詳細的測試。界面測試我們在前面的關(guān)于UI設(shè)計的部分中曾經(jīng)反復(fù)強調(diào)過UI設(shè)計對于游戲設(shè)計者的不可缺少性和繁瑣程度,在完成一款游戲過后,我們也應(yīng)當(dāng)對游戲最基礎(chǔ)的UI設(shè)計進行測試。通過UI設(shè)計的窗口和按鈕進行界面之間的跳轉(zhuǎn)從而達到流暢地在每個界面之間進行切換是界面設(shè)計中UI設(shè)計最大地意義,本設(shè)計關(guān)于界面測試的具體測試情況如表5-1所示。表5-1界面測試界面具體操作結(jié)果是否可行開始界面點擊第一關(guān)跳轉(zhuǎn)到第一關(guān)的游戲場景可行開始界面點擊第二關(guān)跳轉(zhuǎn)到第二關(guān)的游戲場景可行劇情界面點擊按鈕通過當(dāng)前劇情,繼續(xù)劇情可行選擇界面點擊逃出去(第一關(guān))控制人物限時離開場景,成功逃出可行選擇界面點擊留下來(第一關(guān))控制人物尋找遮蔽物,游戲失敗可行成功界面點擊繼續(xù)下一關(guān)(第一關(guān))跳轉(zhuǎn)到第二關(guān)繼續(xù)游戲可行成功界面點擊回到菜單跳轉(zhuǎn)到開始界面可行失敗界面點擊重新開始跳轉(zhuǎn)到當(dāng)前關(guān)卡重新開始可行失敗界面點擊回到菜單跳轉(zhuǎn)到開始界面可行功能測試雙擊打開游戲,在Graphics窗口選擇游戲的分辨率,在Input窗口中調(diào)整游戲的按鍵。接下來單擊Play按鈕,游戲就開始運行了。經(jīng)過多次測試之后,主要功能的功能測試結(jié)果如表5-2:表5-2主要的功能測試功能具體操作結(jié)果是否可行角色控制使用WASD進行控制通過使用WASD控制人物行走流暢可行人物運動與場景物件進行碰撞人物在場景中走動,與物件碰撞不會出現(xiàn)穿模情況可行任務(wù)運動在場景中行走人物可以在在場景中正常走動,不會出現(xiàn)地形穿模情況可行動畫設(shè)計地震時人物表情變化在指定位置出現(xiàn)人物表情的變化可行動畫設(shè)計地震在指定位置出現(xiàn)模擬地震的動畫可行動畫設(shè)計點擊與場景交互的UI后出現(xiàn)人物動作點擊相應(yīng)UI窗口后,人物播放相應(yīng)動作可行性能測試測試設(shè)備數(shù)據(jù)處理器:Intel(R)Core(TM)i7-6700HQCPU@2.60GHz獨立顯卡:NVIDIAGeForceGTX960M運行內(nèi)存RAM:8.0GB系統(tǒng):Windows10,64位操作系統(tǒng)測試內(nèi)容關(guān)閉其他軟件單獨運行游戲,觀察電腦的變化,得到的性能測試結(jié)果如表5-3:表5-3基礎(chǔ)性能測試表CPU使用最高83%,最低36%,多次平均值為52%運行內(nèi)存使用5.80GB溫度變化未超出正常范圍經(jīng)過測試,鼠標(biāo)可以正常與屏幕進行交互,點擊UI設(shè)計進行選擇很順利,使用鍵盤上的WASD進行走動的時候速度與方向正常運行沒有問題,人物地震時的表情設(shè)計和與場景交互的動作設(shè)計也都實現(xiàn)了,在點擊的時候會順利觸發(fā)動畫動作,游戲失敗和勝利都正常跳出游戲結(jié)束UI界面。在游戲多次的功能測試和性能測試中,電腦未出現(xiàn)閃退,藍屏,卡退等問題,游戲中的功能設(shè)計使用也無異常。
總結(jié)與展望總結(jié)一個基于Unity3D的虛擬地震預(yù)防相關(guān)應(yīng)對措施游戲的設(shè)計與實現(xiàn)的完成,同時也標(biāo)志著我畢業(yè)設(shè)計的工作也就要結(jié)束了。在此次游戲的設(shè)計制作過程中,我學(xué)到了很多,鞏固了之前課程中學(xué)到的知識,同時也發(fā)現(xiàn)了自身在技術(shù)上和設(shè)計上的一些問題,這使我對今后的游戲設(shè)計也會懷有更嚴謹更謙虛的態(tài)度。在畢業(yè)設(shè)計開始之前,我大致重溫了課堂學(xué)習(xí)的內(nèi)容并了解了簡單的游戲項目開發(fā)細節(jié),但是由于在邏輯實現(xiàn)和動畫設(shè)計這兩個方面的學(xué)習(xí)不夠深入,所以在動手制作游戲過程中,經(jīng)常在這兩個方面上僵住了進度,也因此被耽誤了不少時間。例如關(guān)于第一關(guān)的相機跟隨和地震模擬實現(xiàn)上,就因為我本身的學(xué)習(xí)不夠深入,導(dǎo)致在制作過
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國固定進給鉆行業(yè)投資前景及策略咨詢研究報告
- 無人駕駛汽車的感知與決策算法優(yōu)化-第1篇-深度研究
- 公共服務(wù)均等化研究-第2篇-深度研究
- 消費者行為分析-第7篇-深度研究
- 收入分配合同
- 基因組信息共享策略-深度研究
- 互聯(lián)網(wǎng)+與傳統(tǒng)產(chǎn)業(yè)升級-深度研究
- 二零二五年度用人單位改簽創(chuàng)新模式勞務(wù)派遣合同條款
- 二零二五年度汽車修補漆涂料購銷合同及售后服務(wù)
- 二零二五年度生態(tài)居住區(qū)租房押金及可持續(xù)發(fā)展合同
- 河南省鄭州市2023-2024學(xué)年高一下學(xué)期6月期末數(shù)學(xué)試題(無答案)
- 七年級數(shù)學(xué)垂線1
- JTG C10-2007 公路勘測規(guī)范
- 糖尿病酮癥酸中毒護理查房演示課件
- 重大危險源的風(fēng)險評估模型
- 采購支出管理制度
- 湖北十堰燃氣爆炸事故案例
- 混凝土試件臺賬
- 人機料法環(huán)測檢查表
- 中國數(shù)字貨運發(fā)展報告
- 使用AVF血液透析患者的護理查房
評論
0/150
提交評論