版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
摘要□□隨著生產力的高速發(fā)展,人們的經濟能力和消費水平日益增長,伴隨的是人對自我情感和自我滿足的需要增大,在工作學習之余通過游戲來滿足自己變得習以為常。游戲產業(yè)在一個擁有著以前從未有過的黃金時期,借助高度功能集成的游戲引擎便捷的進行游戲開發(fā),使得游戲開發(fā)也變得不再神秘。其中,Unity引擎的可擴展性以及社區(qū)資源數(shù)量上有著很大的優(yōu)勢,在本課題中也將使用Unity引擎并且借助于高度擴展性插件fungus進行3D的迷宮解謎類的劇情游戲開發(fā)。如今市面上的劇情類游戲大多是將玩家往一個劇情做引導,本課題將劇情以迷宮為載體進行開展,本游戲是讓玩家通過自己去發(fā)現(xiàn)疑點。在主線上埋伏另外的劇情,以隱晦的方式將第二劇情的線索藏在迷宮的角落,以此刺激對劇情敏感度高的玩家。并嘗試把游戲做成一個劇情的閉環(huán),引發(fā)玩家思考,通過探索游戲最終提煉出——關愛抑郁癥患者的主題?!酢蹶P鍵詞:Unity3D迷宮解謎劇情游戲fungus插件抑郁癥第二劇情Abstract□Withtherapiddevelopmentofproductivity,people'seconomicabilityandconsumptionlevelareincreasing.Alongwiththeincreaseofpeople'sneedsforselfemotionandselfsatisfaction,itbecomescommonforpeopletosatisfythemselvesthroughgamesafterworkandstudy.Thegameindustryinagoldenagehasneverbeenbefore,withthehelpofhighlyfunctionalintegratedgameengineforconvenientgamedevelopment,makinggamedevelopmentnolongermysterious.Amongthem,unityenginehasgreatadvantagesinscalabilityandcommunityresources.Inthisproject,unityenginewillalsobeusedand3Dmazepuzzlegamedevelopmentwillbecarriedoutwiththehelpofthehighlyextensibleplug-infengus.Nowadays,mostoftheplotgamesonthemarketaretoguidetheplayerstoaplot.Thistopicwillcarryouttheplotwithmazeasthecarrier.Thisgameistolettheplayersfinddoubtsbythemselves.Ambushanotherplotonthemainline,hidetheclueofthesecondplotinthecornerofthemazeinanobscureway,soastostimulatetheplayerswithhighsensitivitytotheplot.Andtrytomakethegameintoaclosed-loopplot,arousetheplayers'thinking,andfinallyextractthethemeofcaringforpatientswithdepressionthroughexploringthegame.Keywords:Unity3DLabyrinthpuzzleFungusplugin depressionHidetheplot廣東東軟學院本科畢業(yè)設計(論文)緒論1.1課題背景隨著時代的發(fā)展計算機技術的發(fā)展和互聯(lián)網的普及,游戲的趨勢從單機逐漸衍生出多人在線游戲,游戲的互動越來越顯得真實,游戲的藝術性對玩家而言越發(fā)重要。游戲的發(fā)展很好的填補了現(xiàn)代人空余出來的時間,互聯(lián)網和游戲載體即游戲硬件高速發(fā)展為游戲產業(yè)營造了一個良好的需求市場。12月17日,在2019年度中國游戲產業(yè)年會上,中宣部出版局副局長馮士新在致辭中透露,今年以來,國家新聞出版署已批準出版運營游戲1468款,基本滿足了企業(yè)正常發(fā)展需求[11]。根據(jù)會議發(fā)布的2019年度中國游戲產業(yè)報告,中國游戲產業(yè)實際銷售收入達到230.8十億人民幣,同比增長7.7%。7.7%的增速相比去年的5.3%有所作為提升,在總量調控等多重政策環(huán)境影響下,中國傳統(tǒng)游戲文化產業(yè)結構正在經歷這樣一個大浪淘沙的階段[12]。市場對游戲的深度和思想力量要求也越來越高,游戲市場對優(yōu)秀的劇情游戲如久旱逢甘霖一般饑渴。益智游戲既屬于商業(yè)策略游戲,又屬于休閑益智游戲,是一種以游戲中設置的線索為主題,以解決游戲中最終的益智游戲為主題的游戲,情節(jié)一般比較華麗,劇情引人入勝,在現(xiàn)代人對游戲的高要求下,解謎游戲的市場需求也空前旺盛。由此,基于Unity3d的迷宮解謎游戲本身有著巨大的優(yōu)勢,在當前游戲市場的要求下一款主打劇情解謎的3D迷宮游戲也將在在游戲市場大放異彩,同樣的,未來一段時間內游戲市場對解謎游戲的需求依舊強烈。1.2選題目的及意義隨著游戲行業(yè)的高速發(fā)展,近些年的游戲也從以前單一的開發(fā)模式逐漸多樣化,開發(fā)的游戲類型還是以mobo為主流,但其他類型的游戲同樣的也得到了很好的發(fā)展機會。游戲的深度和玩法更能捕獲玩家的游玩性,一些淺顯的游戲生存力也難以持久,而劇情類游戲很好的彌補了對游戲深度的補充。一個好的劇情游戲應該是開發(fā)者與玩家的一場對話,是開發(fā)者引領玩家思想的路程。一個好的劇情電影像是講故事一樣的告訴觀看者,從而使觀看者跟隨劇情發(fā)展去思考,觀看者只能去猜測劇情,進行思考,最后通過觀測決定答案的正確與否,這對觀看的人的體驗來說是不夠充分的,甚至很難代入其中去設身處地地思考。而劇情游戲則很好的解決了劇情電影的絕對性和片面性,電影是絕對線性的劇情游戲,游戲是可以選擇的立體電影。這是劇情類作品的進化,可以使玩家更加切身處地地體會劇情的變化,游戲提供了一個劇情的世界,玩家可以進入當中作為主角去感受每一處變化。從這看,劇情游戲已經不是一種劇情類作品所需要的技術了,它是劇情類作品呈現(xiàn)在現(xiàn)實生活的一種藝術。本課題論文將開發(fā)構建一個萬象叢生的3D迷宮場景,其中玩家將以第一人稱視角體驗劇情游戲的魅力,為訓練空間思維能力,提出進行迷宮游戲通過沉浸式的視角,且迷宮模型本身是可旋轉的,可以最高的效率和效果來鍛煉空間思維能力[13]。并根據(jù)故事殘留的線索去找尋真相,找到每一個故事中的重要片段并同時根據(jù)各種線索的結合進行解密。讓玩家切身處地地感受解謎游戲的樂趣,在最后結合每一個片段串聯(lián)起故事的真相,理解游戲人物的心路變化和感情起伏,引發(fā)玩家共感人物,并引發(fā)玩家對游戲所引申出來的意義思考。1.3研究方向為了使玩家更加代入地進入游戲的世界并獲得深層次的游戲體驗,搭建一個能引發(fā)玩家思考的迷宮。本次游戲進行開發(fā)的研究發(fā)展方向主要為以下幾點::1.加強角色背景設計,使玩家心理貼近角色內心活動,創(chuàng)作符合邏輯卻又在玩家意料之外的劇情走向。通過迷宮這一題材讓玩家在做探索場景的同時探索自身推動劇情發(fā)展,將迷宮探索和劇情推動更自然地結合。2.利用Unity引擎的開發(fā)功能結合故事劇情發(fā)展制作支持劇情發(fā)展的迷宮,并從中探索如何提升游戲開發(fā)的簡潔性。3.對游戲模式在劇情方面進行創(chuàng)新的研究,在主線劇情下面隱藏暗線劇情,根據(jù)玩家獲取線索的不同決定劇情發(fā)展的走向,隱藏暗線劇情的關鍵線索但又在主線劇情中埋下相關的伏筆,刺激玩家的劇情敏感,引導玩家走向暗線劇情做更深層次的劇情展開,以此獲得更加深刻的游玩體驗。1.4章節(jié)簡介第一章主要介紹了本課題背景以及研究的目的、意義,并且對研究的方向做了簡要闡述。針對目前該類型的游戲做了調查和分析,確定了游戲的核心是與玩家的交流,借游戲這個形式輸出內容引發(fā)玩家思考。第二章主要介紹了unity3d是什么,以及為什么選擇使用Unity3d來開發(fā)本游戲。在項目當中還使用了一些其他軟件進行輔助開發(fā),本章也針對這些軟件進行了介紹,第三章是對游戲的玩法和操作進行了說明,并詳細的介紹了故事發(fā)生的背景,各個人物的信息,從玩家游玩的角度闡述劇情發(fā)展。在解謎游戲的基礎上結合劇情對游戲的結尾方式進行了創(chuàng)新,根據(jù)玩家的游玩方式推動故事往不同方向發(fā)展,開展出兩條世界線,一條浮在明面上的世界線,另一條藏在明線下的暗線。第四章將具體講解我們進行本次游戲的開發(fā)的過程,其中包括迷宮的設計、場景的搭建、人物的導入、UI系統(tǒng)的運用、對話框功能的實現(xiàn)、迷宮與劇情的結合和其他具體功能的實現(xiàn)。第五章則將測試整個游戲在開發(fā)完成之后的功能實現(xiàn)正常與否、BUG檢驗、資源占用情況。第六章會對整個課題研究進行總結,對此次課題研究所遇到難點的解決方案進行分析,制作過程中發(fā)現(xiàn)的問題以及本人對未來游戲開發(fā)行業(yè)的期望。
第二章Unity游戲引擎與使用軟件介紹2.1Unity游戲引擎在本章節(jié)中將會簡單的介紹Unity引擎,描述Unity的操作界面,并簡略地介紹本次游戲開發(fā)過程中常用到的函數(shù),以及介紹Unity引擎開發(fā)游戲的優(yōu)勢。2.1.1Unity引擎簡介Unity(也稱Unity3D)是一套包括圖形、聲音、物理等功能的游戲引擎,由丹麥的UnityTechnologies公司開發(fā)的一個讓玩家便攜創(chuàng)建諸如實時三維動畫、建筑可視化、三維視頻游戲等類型互動內容的多平臺的游戲開發(fā)工具[10]。提供了一個強大的關卡編輯器,支持大部分主流3D軟件格式,使用C#JavaScript等高級語言實現(xiàn)腳本功能,使開發(fā)者無需了解底層復雜的技術,快速地開發(fā)出具有高性能、高品質的游戲產品[14]。Unity是目前主流的游戲開發(fā)引擎,是一個全面整合的專業(yè)游戲引擎。Unity類似于TorqueGameBuilder,Virtools或Director,Blendergameengine等利用交互的圖型化開發(fā)環(huán)境為首要方式的軟件。Unity是跨平臺3D游戲引擎,支持的平臺包括PCMacLinuxWebiOS、Adroid、Xbox360、PlayStation3等大部分主流游戲平臺,還可以將游戲直接導出為Flash格式放到網頁上[15]。2.1.2Unity的使用界面Scene(場景)視圖:該面板是統(tǒng)一編輯器面板,顯示所有在模型場景中使用的東西,照相機,材料等,在這里可以進行觀察和調整,搭建和構造游戲所需呈現(xiàn)的畫面。Game(游戲)視圖:該面板數(shù)據(jù)顯示的是游戲運行時的畫面,是游戲公司發(fā)布后玩家所能看到的內容,可以通過根據(jù)網絡游戲面板的效果在場景面板模型進行分析相應的調整。Hierarchy(層次)視圖:該面板用于研究顯示我國當前發(fā)展放在場景面板中的所有的物體對象,以及對象之間的關系。該視圖可用來管理當前場景對象的層級,設置父子關系和分立關系。Project(項目)視圖:此面板用于顯示游戲項目中游戲資源的管理,如材料、模型、字體等。Inspector(檢視)視圖檢測視圖:用于顯示在場景中當前對象的各種組件參數(shù),該面板數(shù)據(jù)用于呈現(xiàn)各個研究對象的固有屬性,而游戲的整體性能,如對象,標簽,位置坐標的名稱。2.1.2Unity引擎的優(yōu)勢跨平臺:Unity是跨平臺3D游戲引擎,包括目前主流的PCMacLinuxWebiOS、Adroid、Xbox360、PlayStation3等大部分游戲平臺都支持在Unity上進行開發(fā)。開發(fā)一次,可導出到多個平臺,大量節(jié)省了游戲開發(fā)的成本和投向市場的時間。易于上手:視圖功能對開發(fā)者友好,擁有可視化的界面,能在運行過程中時實編輯,編輯過程中也可運行游戲調試,實時查看游戲效果。運行過程中也可對編輯對象進行調整,運行時的調整會在運行停止后失效。對新手Unity也有相應的學習資料提供,自帶的例子簡單易懂。在官方有詳細的文檔說明,更在2018年之后更新了帶有中文語言的版本,大大的降低了部分學習者的上手難度。開發(fā)模式清晰:Unity的開發(fā)模式是一個基于Component(組件)的GameObject(對象)系統(tǒng)。在Unity中,幾乎所有功能的實現(xiàn)都是依靠Component(組件)完成的,但又不脫離GameObject(對象),GameObject(對象)成為一個空殼,通過Component(組件)的附著使其變得豐富。這種開發(fā)模式對開發(fā)者進行游戲開發(fā)過程來說思路非常清晰。社區(qū)資源豐富:AssetStore的出現(xiàn),這是之前其它引擎不具備的,Unity的社區(qū)商店帶有豐富的資源,并且在網絡上也能夠輕易的獲取到Unity支持的資源格式,這為制作游戲帶來了極大的便利。功能齊全:Unity可實現(xiàn)動畫、精靈、音效,簡單的模型搭建和模型調整,腳本實現(xiàn)等,功能及其齊全,縮短開發(fā)時間,Unity引擎簡單易用,幾乎集成了游戲開發(fā)的所有功能。2.2使用的軟件介紹2.2.1Maya軟件AutodeskMaya是美國Autodesk公司推出的世界頂級的三維動畫制作軟件,應用方向包括專業(yè)的角色動畫,電影特技,影視廣告等。Maya工作靈活,功能完善,制作效率極高,渲染真實感極強,是電影級別的高端制作軟件[16]。Maya最多見于動畫公司,還有影視企業(yè)。Maya在windows系統(tǒng),linux系統(tǒng)和oxs系統(tǒng)都高度適用。各項目之間的配合和運作銜接有度,Maya非常受用于動漫、影視企業(yè)的工作輔助。Maya集成了Alias、Wavefront最先進的動畫及數(shù)字效果技術。它不僅包括一般三維和視覺效果制作的功能,而且還與最先進的建模、數(shù)字化布料模擬、毛發(fā)渲染、運動匹配技術相結合[17]。Maya也是Unity游戲開發(fā)中必要的輔助軟件。在一些大型游戲的制作上,Maya強大的圖像渲染能力和動畫制作都很好的彌補了Unity開發(fā)游戲中精美度的不足。在我們的項目中,Maya也充當著必不可少的重要作用。2.2.23dMax軟件3DStudioMax,也被叫做3dsMAX或3dMax,是Discreet公司開發(fā)的(之后Autodesk公司將其合并)基于PC系統(tǒng)的三維動畫渲染和制作軟件[18]。作為資深的CG軟件,3dMax擁有完整的商業(yè)產業(yè)鏈,在影視后期、CG廣告、環(huán)境藝術、汽車展示、工業(yè)效果、城市規(guī)劃、游戲制作、VR游戲、影視動畫等方面有廣泛應用3dMax也是Unity游戲開發(fā)中必要的輔助軟件。在一些大型游戲的制作上,3dMax強大的建模精細能力很適合用來搭建游戲中的場景。在我們的項目中,3dMax也充當著必不可少的重要作用。3dMax和Maya為我們游戲開發(fā)中的起到了極大地輔助作用,在模式搭建,動畫制作以及格式轉換上有不可或缺的作用。由于場景的模型制作仍然需要耗費大量的時間,所以在本次的游戲開發(fā)過程中將會使用部分Unity資源商店的內容以及其他來源的模型。2.2.3VisualStudio軟件簡稱VS,全稱MicrosoftVisualStudio。是美國微軟公司的開發(fā)工具包系列產品。VS是一個基本完整的開發(fā)工具集,它包括了整個軟件生命周期中所需要的大部分工具,如集成開發(fā)環(huán)境(IDE)、UML工具、代碼管控工具等等[9]。VS為我們的游戲開發(fā)中的腳本編寫提供了莫大的幫助,VS的預編寫功能使我們游戲開發(fā)便攜了許多,以及VS的代碼報錯功能也減輕了我們游戲開發(fā)中找尋BUG所消費的精力,是Unity游戲開發(fā)中不可或缺的一個工具。2.3游戲平臺選擇本次開發(fā)的游戲平臺為Windows,考慮到性能的限制以及平臺的使用量,本次的游戲開發(fā)將會在Windows上進行,并且游戲支持的平臺也為Windows。并且由于Unity的高兼容性,可以在后期針對不同的平臺進行優(yōu)化之后,再單獨上線其他的版本。
第三章游戲設計介紹在開始使用Unity3D方面的構思。在本章節(jié)中將會介紹游戲設計背景、游戲基本規(guī)則、游戲世界的介紹,玩家的劇情視角、游戲的設計意義等。3.1游戲設計背景傳統(tǒng)解謎游戲在往往更多的是偏向于以文字游戲的方法去展開劇情,這樣的解謎游戲會使玩家在游玩時的樂趣和探索性的趣味減少,從而中間勸退很多玩家。以此為啟發(fā),我將劇情的開展放在了每一個謎題當中,并不是以一個講故事的方式去向玩家介紹劇情,而是讓玩家以第一視角親身經歷其中解開每一個謎題的同時對劇情的了解也更加清晰。減少旁白的介紹方式,而是去引導玩家走主線劇情,這樣既增加了這款游戲的趣味性,也使玩家更加的聲臨其中。3.2游戲基本規(guī)則3.2.1游戲規(guī)則玩家通過搜尋迷宮中的線索來找到走出迷宮的路徑,在搜尋路徑的過程中找尋每一道門的鑰匙,其中玩家的進度將推動劇情的發(fā)展,劇情也能給到玩家走出迷宮的提示。3.2.2操作說明在本次開發(fā)的游戲中,玩家可以通過鍵盤進行操控角色。鍵盤可進行的操作為:W往前移動,A向左移動,D向右移動,S向后移動鼠標可用來觸發(fā)事件及移動視角。鼠標可進行的操作為:鼠標右鍵可對游戲內的道具進行點擊及拖拽到物品欄,鼠標右鍵也能對NPC點擊觸發(fā)事件,繼續(xù)對話,可對GUI進行點擊實現(xiàn)各個功能的設置。3.3游戲世界介紹3.3.1人物介紹486:玩家在本次中的名字,486突然降臨到這個世界,降臨的過程中讓他失去了對自己的記憶,同樣的對這個迷宮世界一樣感到迷茫,在尋找迷宮的出口的路上486找到了自己來到這個迷宮的意義和真相??煽桑好允г诿詫m的小女孩,寫了一封求救信在等待一個人的來臨,是486要進行拯救的對象,也是486來到迷宮世界的原因,是游戲的第一個劇情的核心人物。老頭:可可的父親,一個面向對象的程序員,年輕時的夢想是開發(fā)出一款夢幻游戲,在游戲領域取得不扉成績。但也因此放在家庭的時間減少,對可可的狀況并不知情。之后可可不在之后,一直在找尋可可,從家里找不到之后就跑進了迷宮,同樣迷失在迷宮里。486問你在這里找多久了,老頭抬手發(fā)現(xiàn)了自己的表不見了,說了句,不知道啊,身上什么都沒有,可能是掉落在迷宮的某處。到這里老頭突然對486說:你一定不能在迷宮迷失自己,你要記得你存在的意義。486想起了小女孩的信,跟老頭道了別就繼續(xù)去找了。486不知道的是,老頭本身的秘密是486第二個結局的故事線解密的答案。Papa: 在可可很小的時候,那時可可的爸爸媽媽都還在一起,在游樂園玩了一天之后爸爸為可可贏取的玩具。之后可可的爸爸媽媽經常吵架直到離異,爸爸又經常不在家,apa成為了可可的心理支柱。papa是一只可愛的恐龍,在可可因病離世之前一直陪伴著可可。3.3.2場景介紹游戲以一個迷宮為背景,迷宮的主色調是低沉的灰色,凸顯出現(xiàn)代的設計風格。在迷宮中放置一個房子、許多大樹、門及各種小道具。設計的模式是為了體現(xiàn)出向往外面的美好世界中卻被現(xiàn)代建筑包圍的一個氛圍,當中的一個房子搭建成的“家”也同樣被放置在迷宮中間。3.3.3道具介紹一封泛黃的信:看到這封信的時候486開始想起了他是個偵探,是來拯救信中的女孩子的,這位小女孩子名叫可可,而他的名字叫做486。從此開始了拯救小女孩的劇情。小樹:在這道長長的圍墻盡頭的一顆小樹相框:小女孩跟一個一個年輕人的合影照片:小女孩躲在樹的后面的照片3.4玩家劇情視角3.4.1可可主線劇情:486突然降臨到了這個迷宮世界,他對自己的出現(xiàn)感到迷茫,甚至他不知道自己是誰,不明所以的486開始向前邁開腳步,來面對這個世界。486順著這條路走著,在一個拐角486發(fā)現(xiàn)了一張泛黃的紙,好奇的486撿起了這張紙。在撿起這張紙的時候,486想起來了他的身份,知道了他的名字叫做486,他是來拯救這個小女孩的,而這也是一張小女孩的求救信。紙上的內容也映入眼簾,小女孩透露出的無助更加讓486堅定了他的任務。486繼續(xù)往前走著,他在路上遇到了一只叫Papa的熊貓,Papa告訴他,“可可走之前,一個人在家里等著啊、等著啊”。486繼續(xù)往迷宮深處走,接著486遇到了一個老頭,他說他一直在找可可,可是一直找不到,并且老頭堅信可可一直在這里,請求486幫他一起找,486答應了老頭的要求。486在迷宮的一個角落發(fā)現(xiàn)了一顆小樹,圍墻上看到了外面的樹和天空,他對此感到疑惑,是誰在這個地方搭建的迷宮,486結束了猜想繼續(xù)踏上尋找小女孩的道路。486從圍墻上面看到了這座迷宮的某個地方有座房子,486開始猜想那會不會就是Papa所提到的可可之前一直待著的地方,那會不會可可還在里面呢。486找到了通往房子的門,但卻打不開,486想應該是老頭出門前鎖上了。486回去找老頭要鑰匙,但老頭的東西都不見了。486在迷宮的其他地方繼續(xù)走著,在某個角落里發(fā)現(xiàn)了一把銀色的鑰匙。486拿到鑰匙開了門進去了院子,在房子里發(fā)現(xiàn)了一個相框,一張是小女孩和一個男人的合照,小女孩笑的很開心照片卻是裂開的。另外一翻過來時卻還有另一張照片,486小女孩躲在樹的后面的照片。486想起了路上的那顆孤獨的小樹,小樹明明在路的盡頭,可這里的位置似乎不對。486在樹的后面發(fā)現(xiàn)了另外的一段路,小女孩在路的盡頭寫著什么。486過去安慰可可并把她帶回了家說可可的爸爸在找可可,讓可可回家等待??煽蓪?86戀戀不舍,486把可可安置好了之后也完成了任務從而結束了游戲。至此第一劇情結束,486和可可都獲得了一個美滿的結局。3.4.1486身份劇情:486在院子里發(fā)現(xiàn)了老頭的表,從而知道了現(xiàn)在的時間是2020年4月18日下午3點,486覺得有些不對勁,突然486一陣驚醒,想起來了可可信是在50年前的時候寫的。發(fā)現(xiàn)了可可的求救信息距離現(xiàn)在50年的時間了。486感到一陣揪心的疼。冷靜下來之后486回憶起來了之前的種種不對勁的感覺,想起來了老人說的話,小女孩之前的在寫的東西,486不愿相信這一切,但486想起來了可可之前寫的東西沒有帶走。486去小女孩在的大樹那里,他要知道真相??煽稍诩埳蠈懼翰灰^去草叢那邊。486不聽勸告,來到了草叢那邊的世界。在這里486發(fā)現(xiàn)了那張相框照片的另一半,知道了可可的雙親離異的情況,可可在那時爸媽的爭吵中變得不再哭泣。486發(fā)現(xiàn)了Papa也在這里,這里的Papa告訴486,可可之前患上了抑郁癥,只對Papa說話,后來的某一天,可可寫了一封信之后便離開了人世。Papa告訴486,Papa這個名字是可可把它當成了可可的爸爸,而可可的爸爸卻時常不在家,對可可也少了很多的關心。486繼續(xù)往前走著,盡頭是一封信,是可可的爸爸寫的,老頭在信里對自己忽略可可的感受做著懺悔。486開始對老頭感到氣憤。一陣指責之后,老頭對486說,486就是可可的爸爸也就是老頭,486不愿相信。老頭讓486去迷宮的盡頭看一看,486發(fā)現(xiàn)了盡頭就是486剛開始背后的那道不一樣的墻的背面。上面寫滿了的是485劃正,486說我還要繼續(xù)去里面找可可,可可還在房子等我。老頭跟486說,你再進去會迷失自己的,486沒有聽老頭的話,拿筆寫上了第486道筆畫,486回頭重新進入了迷宮。至此第二劇情結束。本次游戲將致力于在不影響第一劇情的情況下開發(fā)第二劇情的世界線,通過玩家獲取的線索不同劇情展開也不同,走向的結局也會不同。
第四章游戲設計與實現(xiàn)在本章節(jié)中將會介紹整個游戲的設計與實現(xiàn)。從基本的角色移動、第一視角的實現(xiàn)、迷宮世界的搭建、游戲交互的實現(xiàn)都有進行一個較為詳細的講解。本章也將從我開發(fā)游戲的視角進行介紹,其中包括我對一些游戲開發(fā)遇到的困難的處理,也代表了我開發(fā)本次游戲的心路歷程。在我思考畢設做什么的時候,我出乎意料的很快就下了決心——做一個迷宮解謎劇情游戲。在所有游戲中,我認為解謎游戲是最能讓我一想起可以獨立開發(fā)便熱血澎湃的。我相信做游戲開發(fā)的人都有一個自己可以獨立開發(fā)自己一個游戲的夢想,可以將自己的想法全部付諸其中,我始終相信游戲是開發(fā)者與游戲交流自己思想的一種語言,而這次機會也讓我有了全面學習Unity的想法和熱情。我個人偏愛劇情類的電影,這也讓我對游戲開發(fā)中的劇情設計抱有熱情。本次游戲開發(fā)更多的是對本游戲劇情的設計,劇情設計上也始終貫徹著“意料之外,情理之中”的劇情設計理念,力求給玩家留下一個印象深刻的作品,并在游戲的過程中引發(fā)玩家的思考。4.1迷宮路線的設計迷宮的搭建最開始我找了一些相關的資料說明,我發(fā)現(xiàn)可以用算法進行隨機迷宮的搭建,我找了一些隨機迷宮的算法進行學習,比如:遞歸分割算法、深度優(yōu)先算法和隨機Prim算法,但最終實現(xiàn)的模式跟我預想的不是特別合適。于是我回歸了最原始的方法,先照著我大概的劇情需求去繪制迷宮,初步繪制的迷宮及路線如圖4-1所示。圖4-1,迷宮路線初稿根據(jù)我設想劇情設置,還需要再迷宮里面添加房子,其中還有第二劇情的路線需要設置,這幅迷宮就很好的滿足了我對劇情的初期設想。之后我再從里面延伸出了新的地圖路線,具體思路圖如圖4-2所示。因為在做畢業(yè)設計的制作時我已經在實習期,新版的地圖也是午休時突發(fā)靈感繪制而成的草圖,所以為了體現(xiàn)設計最開始的樣子,我在這里直接放置了我的設計草圖。圖4-2,迷宮路線終稿4.2迷宮環(huán)境的搭建4.2.1迷宮Floor和Walls的搭建至此我們開始使用Unity進行我們的迷宮游戲的開發(fā),首先我們新建項目,并將其命名為route,新建一個平面命名為Floor,調整Transform數(shù)據(jù)如圖4-3。圖4-3,F(xiàn)loor的Transform組件為其添加材質,使平面看起來有草地的效果,呈現(xiàn)效果如圖4-4所示。圖4-4,floor的效果圖創(chuàng)建一個墻取名為Wall,調整Transform數(shù)據(jù)與Floor相匹配,并為其添加材質使其看起來有磚墻的感覺,效果下圖所示:圖4-5,Wall的效果圖到這里我們開始搭建迷宮的墻壁,我以這塊Wall為模板,將磚墻通過復制,移動,調整大小的方式搭建出了迷宮的墻壁,并將這些Wall整合為一個父類,命名為Walls。創(chuàng)建過程中為了使磚墻的位置和我們的迷宮保持一致,我將迷宮的初稿也就是圖4-1作為貼圖附加到Floor上,F(xiàn)loor的長寬比例也是照著初稿的迷宮格式進行設置好的。這樣照著Floor的貼圖進行搭建的迷宮可以在搭建的過程中實習糾錯,能保證Wall的位置不會出現(xiàn)偏差。搭建出來的過程如下圖所示。圖4-6,迷宮搭建過程圖4.2.2院子的搭建院子在我的劇情設計中需要有一個房子和一個室內的家居環(huán)境,在這里我將資源文件從Maya中導入到Unity中進行搭建,卻發(fā)現(xiàn)資源文件在這里顯示不出來。之后我了解到Unity支持的文件格式與Maya的文件格式不一致,Unity支持的文件格式主要為fbx,而Maya的文件默認為mb的格式。將資源文件用Maya進行格式轉換,導出為fbx,導出界面如下圖,重新導入Unity進行搭建。圖4-7,F(xiàn)BX格式轉換樹和草叢的資源模型也同樣按上面的方法導入我們的項目文件,不過需要將max的格式文件另外導入3dsMax中進行格式轉換。以四顆,不同的樹為模板,搭建起在院子內的樹,使其圍繞在房子周圍稍微高于迷宮的墻,也讓房子稍微高于迷宮的墻,讓玩家在接近院子的時候就能看到院子的房子和樹,給到玩家一定的視覺線索。在迷宮的圍墻外我們也放置一圈的樹,給玩家營造出身處自然的感覺,經過調試使玩家在迷宮中的很多位置都看得到圍墻外的樹。草叢將其先放置在第二劇情的路線開始的入口,具體設計在后面第二劇情的地方重點介紹。迷宮世界的基本環(huán)境搭建完成,如下圖所示。圖4-8,迷宮環(huán)境其中,房子的內部構造如圖4-9所示。圖4-9,室內家居圖4.2.3天空盒子的制作選擇“MainCamera”,添加“Skybox”,添加路徑為“Component”-“Rendering”-“Skybox”。將6張?zhí)崆皩氲膱D片按方向添加到Skybox,效果如下圖。圖4-10,天空盒子效果4.3角色的第一人稱視角實現(xiàn)和基本移動的實現(xiàn)4.3.1角色的第一人稱視角實現(xiàn)創(chuàng)建一個Capsule以代替玩家,命名為Player,將其Transform調整到如圖4-11所示,使其模擬角色高度并放置在游戲開始位置。將其調整到游戲開始位置。圖4-11,Player的Transform組件信息創(chuàng)建一個Camera將其綁定在玩家Capsule上,高度調節(jié)大概在玩家頭部的位置,后期可進行微調。這時候運行游戲就已經能看到玩家的視角了,注意玩家Camera的層級要比項目中其他的Camera層級高才能在游戲運行的時候顯示出來。然后我們新建一個腳本,命名為MouseLook,在其中我們創(chuàng)建一個根據(jù)鼠標方向移動來進行旋轉的動作,主要功能代碼如下:定義枚舉數(shù)據(jù)類型,有利于在組件處選擇設置publicenumRotationAxes{MouseXANDY=0,MouseX=1,MouseY=2}聲明公有變量:publicRotationAxesaxes=RotationAxes.MouseXANDY;publicfloatsensitivityHor=9.0f;publicfloatsensitivityVert=9.0f;//垂直方向的鏡頭轉向(這里給個限度最大仰角為45°)publicfloatminimumVert=-45f;publicfloatmaximumVert=45f;//垂直角度的私有變量privatefloat_rotationX=0;響應鼠標的旋轉命令,使用GetAxis()獲取鼠標的輸入信息,使用if函數(shù)判斷Axes下拉菜單選擇了哪個選項,并根據(jù)不同選項情況實行不同的代碼voidUpdate(){ if(axes==RotationAxes.MouseX){//鼠標水平旋轉transform.Rotate(0,Input.GetAxis("MouseX")*sensitivityHor,0);}elseif(axes==RotationAxes.MouseY){//鼠標垂直旋轉//基于鼠標增加垂直角度_rotationX-=Input.GetAxis("MouseY")*sensitivityVert;//限制垂直角度的最大最小值_rotationX=Mathf.Clamp(_rotationX,minimumVert,maximumVert);//Y的角度一致floatrotationY=transform.localEulerAngles.y;//使用存的旋轉值創(chuàng)建新的Vectortransform.localEulerAngles=newVector3(_rotationX,rotationY,0);}else{//鼠標水平垂直旋轉_rotationX-=Input.GetAxis("MouseY")*sensitivityVert;_rotationX=Mathf.Clamp(_rotationX,minimumVert,maximumVert);floatdelta=Input.GetAxis("MouseX")*sensitivityHor;floatrotationY=transform.localEulerAngles.y+delta;transform.localEulerAngles=newVector3(_rotationX,rotationY,0);} }其中加入禁止對玩家進行物理選擇的代碼:voidStart(){Rigidbodybody=GetComponent<Rigidbody>();if(body!=null)body.freezeRotation=true;}將腳本MouseLook掛靠在Player上并設置Axes為MouseX,并將腳本MouseLook掛靠在綁定Player的Camera的上并設置Axes為MouseY,這樣就可以實現(xiàn)玩家的第一人稱視角。注意不能將MouseLook直接綁定在Player設置Axes為MouseXANDY,這樣會在加上移動腳本之后,導致作為Player的Capsule在進行上下視角移動時Player的重心發(fā)生偏移導致玩家移動的bug。并且bug是在之后進行玩家移動腳本實現(xiàn)后才出現(xiàn)的bug,導致我前期找不到bug出現(xiàn)的原因并進行多次的調試才找到了解決的方案,影響了游戲開發(fā)的整體進度。這個bug也警示了我游戲開發(fā)任何一個模塊都要認真對待不能以人的角度使用對我們而言最簡單的實現(xiàn)方式,而是要作為一個機器去思考功能的實現(xiàn),不能存在“想當然”的想法。4.3.2角色的基本移動的實現(xiàn)將系統(tǒng)默認賦予玩家Capsule的CapsuleCollider碰撞器移除,用更符合角色的CharacterCollider代替,它可以允許玩家對象表現(xiàn)的更像一名玩家角色。創(chuàng)建腳本FPSInput,將其附加到Player聲明公有變量,定義速度和重力 publicfloatspeed=6.0f;publicfloatgravity=-9.8f;響應按鍵的位移并將重力添加給移動代碼 voidUpdate(){floatdeltaX=Input.GetAxis("Horizontal")*speed;floatdeltaZ=Input.GetAxis("Vertical")*speed;Vector3movement=newVector3(deltaX,0,deltaZ);movement=Vector3.ClampMagnitude(movement,speed);movement.y=gravity;movement*=Time.deltaTime;movement=transform.TransformDirection(movement);_charController.Move(movement);}至此角色已經搭建好了第一人稱視角和基本的移動,在3dsMax中完成主角模型的格式轉化并將該模型附加到Player上,該模型后面也將作為可可父親的形象出現(xiàn)在游戲中,玩家角色正式配置完成??稍诿詫m中進行移動和初步探索,玩家對象也可跟隨視角的移動改變方向,使玩家對象及模型始終面朝運行Player的Camera方向,運行時Scene視圖和Game視圖的截圖如下。圖4-12,Scene視圖圖4-13,Game視圖4.4游戲UI系統(tǒng)4.4.1玩家主界面UI的設計 在追求極致簡約的理念下,為了讓玩家把更多精力放在游戲本身的內容上,我把主界面的UI系統(tǒng)簡化成一個放在主界面右邊的物品欄,如下圖所示。通過錨點將物品欄相對屏幕放置在右邊,不會因為屏幕的分辨率改變而導致物品欄脫離主界面右邊界。具體功能實現(xiàn)將在章節(jié)4.5進行介紹。圖4-14,主界面UI4.5門、鑰匙和物品欄系統(tǒng)的實現(xiàn) 將準備好的門的模型導入游戲項目中,并在院子門口放置好門的模型,為門添加材質使其看起來達到門的視覺效果。將門的主板和門把命名為door,整體模型命名為men。效果如下圖所示。圖4-15,門的效果圖創(chuàng)建兩個動畫OpenDoorAnim、CloseDoorAnim,分別為開門、關門的動畫,在Animator窗口中設置動畫的狀態(tài),其中圖4-16下半部分為OpenDoorAnim、CloseDoorAnim的關鍵幀位置,上半部分為動畫的狀態(tài)的切換關系。圖4-16,Animator窗口完成上邊所有設置之后,就可以通過編寫代碼進行控制OpenDoorAnim、CloseDoorAnim動畫狀態(tài)的切換。 現(xiàn)在我們開始制作鑰匙,將準備好的鑰匙資源導入游戲項目中,調整大小適宜,將其命名為ys。創(chuàng)建一個腳本ysCtr附加到y(tǒng)s,編寫腳本ysCtr使ys真的實現(xiàn)鑰匙的功能。ysCtr代碼如下:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassysCtr:MonoBehaviour{ //定義一個私有變量,判斷是否可以獲取鑰匙privateboolIsCanGet;//聲明一個公有變量,區(qū)別是哪把鑰匙publicintIndex;//聲明一個公有變量,為了鏈接到我們獲取鑰匙時可收到的提示信息publicGameObjectDescripeUI; //Usethisforinitialization voidStart(){IsCanGet=false;DescripeUI.SetActive(false);DescripeUI.GetComponent<ShuoMingJieMian>().SetYS(this); } //Updateiscalledonceperframe voidUpdate(){ if(IsCanGet&&Input.GetButtonDown("Fire1")){Rayray=Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHithit;if(Physics.Raycast(ray,outhit)){Debug.Log("hit"+);if(hit.collider.isTrigger==false&&hit.collider.gameObject.tag=="WuPing")DescripeUI.SetActive(true);}} }publicvoidOnTriggerEnter(Colliderc){Debug.Log("enter:"+gameO);if(c.gameObject.tag=="Player"){Debug.Log("Coll-2");IsCanGet=true;}}publicvoidOnTriggerExit(Colliderc){Debug.Log("Coll-exit-1");if(c.gameObject.tag=="Player"){IsCanGet=false;}}} 為鑰匙添加兩個碰撞器,一個是玩家是否進入允許對鑰匙進行的點擊范圍的碰撞器,一個是獲取鑰匙點擊的碰撞器。第一個碰撞器調整到直徑剛好是走廊寬的范圍,第二個碰撞器調整到鑰匙實體大小。點擊鑰匙之后需要出現(xiàn)一個提示窗口,于是我打算創(chuàng)建一個可以在點擊鑰匙之后彈出的說明窗口,我在Canvas上創(chuàng)建一個Image命名為DescriptUI,以Image為父級創(chuàng)建一個Bottom和Text,Bottom做點擊關閉說明界面的效果,而Text做說明界面的說明文本支持。還可以在DescriptUI上選擇我們想要的說明界面的背景圖片。新建說明界面的腳本命名為ShuoMingJieMian。在ys的ysCtr組件上將DescriptUI拖進來,ys的所需的功能組件界面如下圖。圖4-17,鑰匙碰撞器點擊之后跳出的說明界面的對象DescriptUI,需要顯示提示信息并在接受點擊之后關閉界面,所支持的代碼如下:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.UI;//說明界面//publicclassShuoMingJieMian:MonoBehaviour{privateButtonbtn;publicysCtrys; //Usethisforinitialization voidStart(){btn=GetComponentInChildren<Button>();btn.onClick.AddListener(()=>{GameObject.FindWithTag("WuPingLang").GetComponent<wupinglang>().SetImageActive(ys,true);ys.gameObject.SetActive(false);GameObject.Destroy(gameObject);}); } //Updateiscalledonceperframe voidUpdate(){ }publicvoidSetYS(ysCtrysCtr){ys=ysCtr;}}院子的鑰匙附帶著兩條線索,一條是主線的線索提醒玩家前往院子探索,另一條是引導玩家去了解可可父親的第二劇情的線索。說明界面的樣式調整如圖4-18,其中我們利用錨點將每一個UI對象都固定在了相對鏡頭屏幕大小的位置,在變換不同的顯示設備時不會因為分辨率的不同而導致UI對象位置發(fā)生改變設置錨點可以使UI對象自適應屏幕分辨率從而保持相對位置不變。圖4-18,獲取物品提示界面在鑰匙物體被點擊之后會彈出說明界面,同時3D鑰匙物品會銷毀,而玩家需要感知到以及獲取了鑰匙則需要物品欄的2D鑰匙圖片顯示出來,這里編寫wupinglang以獲取物品欄的鑰匙顯示與否的信息,代碼如下。usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.UI;publicclasswupinglang:MonoBehaviour{publicList<Image>images;privateList<ysCtr>yss;//Usethisforinitialization//初始化鑰匙列表,隱藏鑰匙圖片voidStart(){yss=newList<ysCtr>();if(null!=images){foreach(variteminimages){item.gameObject.SetActive(false);}} } //Updateiscalledonceperframe voidUpdate(){ }//設置哪吧鑰匙圖片是否可見publicvoidSetImageActive(ysCtrys,boolactive){images[ys.Index].gameObject.SetActive(active);yss.Add(ys);}//檢查是否有鑰匙publicboolCheckYS(intindex){foreach(variteminyss){if(item.Index==index){returntrue;}}returnfalse;}}需要注意的是,游戲的設計中涉及到了幾個門與鑰匙的系統(tǒng),即我們需要獲取幾把“鑰匙”,我們需要在附加在物品欄的wupinglang腳本組件上Size的位置設置好“鑰匙”的數(shù)量,并將對應的“鑰匙”圖片放置到物品欄的位置上。目前只做一個門與鑰匙的系統(tǒng),所以我們將Size設置為1,并為其附加上相應的鑰匙圖片。效果如下圖,之后其他的“門與鑰匙”的系統(tǒng)都可將這個作為模板直接引用。圖4-19,wupinglang腳本組件鑰匙物品與說明界面的鏈接做好了,與物品欄的鏈接也做好了,接下來需要確保門能在識別到物品欄有鑰匙的時候打開,而在識別到物品欄沒有鑰匙的情況選擇不打開門。創(chuàng)建一個腳本DoorCtl附加到men上,需要聲明哪個門對應哪個鑰匙,為了方便在游戲開發(fā)時選擇鑰匙,這里選擇聲明一個共有變量來鏈接到對應鑰匙的位置。調用Animator中的函數(shù),通過設置bool值,即可改變游戲對象的動畫狀態(tài)。主要代碼如下。usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassDoorCtl:MonoBehaviour{publicysCtrys;privatewupinglangwpl;privateAnimatoranim; //Usethisforinitialization voidStart(){wpl=GameObject.FindWithTag("WuPingLang").GetComponent<wupinglang>();anim=GetComponent<Animator>(); } //Updateiscalledonceperframe voidUpdate(){ }publicvoidOnTriggerEnter(Colliderc){if(c.gameObject.tag=="Player"){if(wpl.CheckYS(ys.Index)){anim.SetBool("open",true);}}}publicvoidOnTriggerExit(Colliderc){if(c.gameObject.tag=="Player"){anim.SetBool("open",false);}}}需要注意的是需要給門創(chuàng)建碰撞器,不然的話只要玩家角色經過門就會自動打開,這顯然不是這游戲想要的效果。創(chuàng)建SphereCollider組件并勾選上IsTrigger。將對應鑰匙物品拖進Ys中,door的Inspector界面如下圖所示。圖4-20,門的Inspector至此一個簡單的“門與鑰匙”系統(tǒng)建造完成,其中還完成了一個由物品欄構成的簡介UI主界面的實現(xiàn)。實現(xiàn)了在撿到鑰匙之時提示界面(說明界面)的成功彈出,玩家將在迷宮中探索,并能通過進入鑰匙的獲取范圍的時候去對鑰匙進行獲取,物品欄識別對應該鑰匙的拾取信息之后顯示出本來就放在物品欄界面的該物品的UI,最后能依靠對應“鑰匙”進入對應的“房間”,后面也將以這個“門與鑰匙”的系統(tǒng)進行我們游戲不同劇情的開展。4.6游戲角色對話 在做游戲的角色對話這一塊,本游戲的開發(fā)采用fungus對話系統(tǒng)插件實現(xiàn)。使用fungus對話系統(tǒng)的時候以為只能做一些簡單的玩家與NPC對話,卻發(fā)現(xiàn)fungus插件能實現(xiàn)的功能還有游戲對話的順序,通過加入條件判斷使得對話與游戲的進度相匹配,還能做選擇性對話,這里為了不做劇情的透露本游戲將不采取這個功能。除此之后,fungus插件甚至還能用提前準備好的聲音、動畫、UI等進行游戲的交互,fungus功能強大,為游戲開發(fā)者提供了不一樣的方法實現(xiàn)游戲運行的眾多功能。4.6.1建立玩家與NPC的簡單對話功能 Fungus插件在Unity的AssetStore中就可以直接下載進行導入,在Tools列表找到Flowchart并創(chuàng)建。打開Flowchart的編輯窗口,新建一個對話框模塊命名為NPCPapa,為其編寫對話,并將NPC和玩家的名字區(qū)別開。對話框內容如下圖所示。圖4-21,NPCPapa對話編寫 這里添加了一個條件是為了NPC適應不同劇情發(fā)展而出現(xiàn)不一樣的對話內容。之后需要為每個NPC附加上BoxCollider和SphereCollider,并將SphereCollider調整到走廊大小,將SphereCollider的IsTrigger勾上為了不阻礙玩家的移動。接下來為NPC編寫代碼,主要代碼如下。usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingFungus;publicclassNPC1:MonoBehaviour{publicstringChatName;//當前是否可以對話privateboolCanChat=false; //Usethisforinitialization voidStart(){ } privatevoidOnTriggerEnter(Colliderother){CanChat=true;}privatevoidOnTriggerExit(Colliderother){CanChat=false;}//UpdateiscalledonceperframevoidUpdate(){ }privatevoidOnMouseDown(){Say();}voidSay(){if(CanChat){//開始對話FlowchartflowChart=GameObject.Find("Flowchart").GetComponent<Flowchart>();//對話是否存在if(flowChart.HasBlock(ChatName))//執(zhí)行對話flowChart.ExecuteBlock(ChatName);}}}將該腳本NPC1附加到各個NPC的組件中,并將屬于每個NPC的對話內容綁定在該腳本組件上,為玩家角色及各個NPC設置名字及名字顏色以區(qū)別發(fā)言對象,其中也暗示了老頭的名字顏色與486的名字顏色一致,這里作為一個后面劇情小提示藏在對話框中。圖4-22,F(xiàn)lowchart的編輯窗口 為了使NPC對話內容與劇情發(fā)展保持一致,這里加入了一個bool變量Cantalk,初始值為false,當一個NPC對話結束后,另一個NPC的特定對話內容才為true。這支持了我們各個NPC同時在場又不影響游戲劇情進度,使得我們劇情發(fā)展合理,玩家獲取的線索不出現(xiàn)無用線索。圖6-23,條件對話的設計對話框效果如下圖所示。圖6-24,對話框效果4.7迷宮劇情的開展 在本游戲中,最大的創(chuàng)新就是在劇情的開展方式上做了創(chuàng)新,與傳統(tǒng)解謎游戲不同的是,一般解謎劇情類游戲都是將玩家往一個劇情方向去帶,而本游戲也將玩家往一個劇情去帶,這里主要考慮了不同玩家對劇情的敏感度不同。針對劇情敏感度較高的玩家,本游戲設置了在主線劇情下的主劇情衍生,是與第一劇情不同的劇情但又不是獨立存在的一個劇情,可以理解為第一劇情的衍生劇情,但在這里更像是對第一劇情的解謎劇情。 具體實現(xiàn)提供前面提到的“門與鑰匙”的系統(tǒng)實現(xiàn)。4.6.1第一劇情 關鍵人物:可可 主要任務:離開迷宮、找到可可 主要事件:事件集事件與可可的聯(lián)系獎勵事件A1撿到可可的求救信可可的求救信想起了自己的名字事件A2遇見老頭可可的父親確認了可可就在迷宮,接到把可可接回家的任務事件A3與Papa對話可可心愛的玩具提示最后見到可可的地方在家里事件A4發(fā)現(xiàn)長廊盡頭的小樹可可的所在(可可的位置在樹的后面,但被玩家視野里并不可見)事件A5找到鑰匙可可家的鑰匙可進入可可的家事件A6進入院子可可的家發(fā)現(xiàn)了可可位置的線索事件A7發(fā)現(xiàn)房子里的相框可可長廊盡頭與樹的合照發(fā)現(xiàn)了照片長廊的比看到的長廊還要長,得出了長廊盡頭還有空間的設想事件A8找到可可可可本人第一劇情結束,玩家可結束游戲離開迷宮事件A9發(fā)現(xiàn)房子后面的表無開啟第二劇情的“鑰匙” 功能實現(xiàn): 事件A1、A2、A3、A4、A6、A7通過NPC對話模塊的功能實現(xiàn),事件A5、A6、A9通過“門與鑰匙”模塊的功能進行實現(xiàn)。4.6.1第二劇情 關鍵人物:老頭/可可的父親/486(玩家角色),可可 主要任務:找尋486存在的意義,迷宮的真相主要事件:事件集事件道具發(fā)現(xiàn)事件0發(fā)現(xiàn)房子后面的表表(老頭遺落的時間)可可的求救信距今50年事件B1進入迷宮的新路線探索迷宮真相新路線是老頭人生介紹事件B2發(fā)現(xiàn)老頭的日記老頭的日記老頭年輕時在虛擬現(xiàn)實行業(yè)的大放異彩事件B3看到現(xiàn)實裂開的照片裂開的家庭照片老頭家庭不和,離異事件B4再次遇見PapaPapa得知了可可離世原因是抑郁癥(引申第二劇情主題——關愛抑郁癥患者)事件B5進入可可內心世界Papa感受可可的無助和等待事件B6發(fā)現(xiàn)抑郁癥報道關于抑郁癥的報紙科普抑郁癥,并以現(xiàn)實看到抑郁癥的危害事件B7看到一個畫滿圖案的黑板黑板發(fā)現(xiàn)了黑板上的圖案是487筆“正”字事件B8遇見找回時間的老頭表告訴了486真相,迷宮是老頭建的,目的是為了拯救之前沒能見到最后一面的可可事件B9與老頭爭執(zhí)發(fā)現(xiàn)了自己的真實身份就是老頭(可可父親)。老頭勸告486不要進去,否則會迷失自我事件B10486不聽勸告回頭進入迷宮;老頭寫下第486筆“正”字虛擬門486新的目的是去尋找在家等著486的可可穿過虛擬的門,回到起點,老頭獲得了新的名字489,完成循環(huán)。 功能實現(xiàn): 事件0、事件B4利用了前面提到的“門和鑰匙”功能實現(xiàn),把Papa作為“鑰匙”獲取,并成為進入可可內心世界的鑰匙。其余事件以對話的形式呈現(xiàn)愛你,但限定了對話進行的順序以保證劇情的發(fā)展貼合玩家的心理變化和現(xiàn)實邏輯。其中事件B3作為當中的抑郁癥報道也將作為事件B7之后的“鑰匙”,玩家之有在獲取了“鑰匙”,才能進入對應的“門”里。 劇情設計意義: 本篇章中對第一劇情的解謎,通過劇情發(fā)展引發(fā)玩家思考,通過玩家角色的與老頭一體的情感使玩家共感對可可的感情。而通過劇情的發(fā)展一步步的回到原點,也解釋了玩家進入游戲的意思以及迷宮存在的意思,最終形成一個劇情閉環(huán),使迷宮成為一個連通的閉環(huán)迷宮。也通過劇情的一步步進行逐級提煉出本游戲的主題是——拯救抑郁癥,最后升華成486(老頭)的自我拯救。
第五章游戲測試一個游戲策劃到發(fā)布,游戲測試環(huán)節(jié)必不可少。如果游戲沒有經過測試便給玩家游玩,可能出現(xiàn)的bug將極大地影響玩家的游戲體驗。游戲測試可以將游戲開發(fā)中未發(fā)現(xiàn)的bug或可能出錯的bug進行檢驗,也可以通過游戲實質游玩效果來檢驗游戲開發(fā)的完成度。游戲測試環(huán)節(jié)也是游戲正常運作及玩家游戲體驗的保障。5.1功能測試本次測試主要以人工試玩測試為主。由于開發(fā)過程中有可能出現(xiàn)未預測出現(xiàn)的BUG,所以以下數(shù)據(jù)都是人工直接測試的結果。功能測試項目是否通過測試角色第一人稱視角移動正常角色基礎移動正常點擊道具時提示界面彈出正常提示窗口的關閉正常點擊道具,道具消失正常點擊道具,物品欄出現(xiàn)道具UI正常點擊NPC進行對話正常NPC對話內容隨劇情變化正常物品欄沒有“鑰匙”無法進入“門”正常界面跳轉正常動畫的播放正常5.2資源占用測試測試環(huán)境:處理器:Intel(R)Core(M)15-6300hqCPU@2.30GHZ內存:12.0GB(11.9GB可用)顯卡:NVIDIAGeForceGTX960M系統(tǒng):Windows10家庭中文版測試的情況如下:處理器占用率:最高48%,平均30%內存占用:400.1MB顯卡使用率:最高33%,平均25%以上結果來自軟件測試,各方面數(shù)值屬于正常情況,測試通過。
第六章總結與期望本課題研究的基于Unity3d的迷宮解謎游戲設計與實現(xiàn)至此已經完成,回想起最初選擇畢業(yè)設計項目的時候,我對于畢設做什么比較迷茫,然后開始思考著做什么可以體現(xiàn)出我大學所學的知識,但最后我出于對解謎類游戲和對劇情類電影的興趣,選擇了本身并不是特別擅長基于Unity3d游戲開發(fā)類型。在完成項目的過程中,我給自己制定了對應的學習計劃和對項目定下了分段的目標。學習Unity開發(fā)的路上,我利用實習之余的時間在互聯(lián)網上觀看教程、查閱相關學科的教材和回顧教授Unity課程的老師之前的PPT、學習資料進行學習,學習的過程是枯燥且長期的,但是中間每次功能的實現(xiàn)都能讓我感到充實且欣悅。即便枯燥也要堅持去學習,這樣才能在干渴的土地上汲取到所缺失的水分。在項目制作期間,對于每個Bug的出現(xiàn)從恐懼到習以為常到可以從Bug中找到解決方案,大概這就是以Bug治Bug吧。而對于這個項目由于時間的限制和個人能力有限,其實并沒有像我最開始抱著滿腔熱情所期待那么的好,不過對于劇情的設計卻是我在上、下班,洗澡睡覺時都會思考的一個環(huán)節(jié),閉環(huán)劇情結合游戲的創(chuàng)新是我比較滿意的點。我始終認為游戲是開發(fā)者的思想與玩家思維的一種交匯的方式,游戲也必將成為一種新的藝術呈現(xiàn)在世界面前。在之后我也將不斷學習,不斷思考,我相信今后我將掌握更多的技能支持我去開發(fā)更加好的游戲。
參考文獻褚治廣,李萬杰,張興,等.基于Unity的“平行空間”冒險解謎游戲的開發(fā)設計[J].遼寧工業(yè)大學學報:自然科學版,2018,38(06):27-30.盧文靜.分鏡解謎游戲《致命框架2》[J].計算機與網絡,2017(14).黃志輝.基于心流理論的游戲交互研究[D].佚名.解密佳作《未上鎖的房間3》[J].電腦迷,2015,000(024):91-91.余夢君.飛往“彼岸世界”的擬態(tài)蝴蝶[D].胡睿鑫.劇情動畫短片劇本中的戲劇沖突設計研究[D].2019.張雁捷.游戲劇情與操作的時長配比和難度界定[D].耿英華,朱姝.劇情動畫在電子游戲中的作用[J].廣東技術師范學院學報(自然科學版),2010,031(004):38-41.MicrosoftVisualC6.0_搜索_互動百科.薄星晨,林佳奇,莊鴻昌.基于unity3d的紀念碑谷手機游戲中出現(xiàn)的視覺欺騙[J].通訊世界,2017(2):265-266.2018中國游戲業(yè):挺過“煎熬時刻”迎來版號重開-博客科技的專欄-博客中國游戲市場今年銷售收入832億元4G將帶來新動力.吳浩煒,黃昊,朱嘉侖,陳圓,謝修娟.基于Unity3D的訓練空間思維的迷宮手游的設計與實現(xiàn).
《電子技術與軟件工程》2019.11.Unity簡介-AiCoding-博客園.Unity3D介紹、安裝、展示-qq_31971935的博客-CSDN博客.Maya基礎與應用實用教程txt免費下載_讀后感_在線閱讀_讀書人圖書資料庫.《立體構成及應用》第七章:立體構成的造型組合訓練.游戲特效設計用哪些軟件?-土地公文庫.
致謝本論文在撰寫與本項目在開發(fā)中,我得到了我的導師陳偉淦老師熱心幫助,感謝我就讀專業(yè)的吳志達老師的教授的Unity相關知識。令我可以獨立的開發(fā)自己想像出來的游戲并實現(xiàn)它。大學四年即將結束,說到致謝,我想借助這里感謝自己,在大學遇到的諸多困難當中感謝自己并沒有放棄自己,感謝自己讓我成為一個更好的人。感謝廣東東軟學院這個平臺給我學習和展現(xiàn)自己的機會,也感謝大學期間所遇到的形形色色的人或事,在這個充滿個性的平臺并沒有迷失自己,能保持住自己的個性也能做到包容理解。 在論文完成過程中,當我遇到難點時,感謝我的朋友為我提供學習材料并解疑答惑。也謝謝一直關心著、支持著我的人,在此向你們表示深深的感謝。
電腦故障檢測卡代碼表
1、特殊代碼"00"和"ff"及其它起始碼有三種情況出現(xiàn):
①已由一系列其它代碼之后再出現(xiàn):"00"或"ff",則主板ok。
②如果將cmos中設置無錯誤,則不嚴重的故障不會影響bios自檢的繼續(xù),而最終出現(xiàn)"00"或"ff"。
③一開機就出現(xiàn)"00"或"ff"或其它起始代碼并且不變化則為主板沒有運行起來。
2、本表是按代碼值從小到大排序,卡中出碼順序不定。
3、未定義的代碼表中未列出。
4、對于不同bios(常用ami、award、phoenix)用同一代碼代表的意義不同,因此應弄清您所檢測的電腦是屬于哪一種類型的bios,您可查閱您的電腦使用手冊,或從主板上的bios芯片上直接查看,也可以在啟動屏幕時直接看到。
5、有少數(shù)主板的pci槽只有一部分代碼出現(xiàn),但isa槽有完整自檢代碼輸出。且目前已發(fā)現(xiàn)有極個別原裝機主板的isa槽無代碼輸出,而pci槽則有完整代碼輸出,故建議您在查看代碼不成功時,將本雙槽卡換到另一種插槽試一下。另外,同一塊主板的不同pci槽,有的槽有完整代碼送出,如dell810主板只有靠近cpu的一個pci槽有完整代碼顯示,一直變化到"00"或"ff",而其它pci槽走到"38"后則不繼續(xù)變化。
6、復位信號所需時間isa與pci不一定同步,故有可能isa開始出代碼,但pci的復位燈還不熄,故pci代碼停要起始代碼上。
代碼對照表
00.已顯示系統(tǒng)的配置;即將控制INI19引導裝入。
01處理器測試1,處理器狀態(tài)核實,如果測試失敗,循環(huán)是無限的。處理器寄存器的測試即將開始,不可屏蔽中斷即將停用。CPU寄存器測試正在進行或者失敗。
02確定診斷的類型(正?;蛘咧圃欤?。如果鍵盤緩沖器含有數(shù)據(jù)就會失效。停用不可屏蔽中斷;通過延遲開始。CMOS寫入/讀出正在進行或者失靈。
03清除8042鍵盤控制器,發(fā)出TESTKBRD命令(AAH)通電延遲已完成。ROMBIOS檢查部件正在進行或失靈。
04使8042鍵盤控制器復位,核實TESTKBRD。鍵盤控制器軟復位/通電測試??删幊涕g隔計時器的測試正在進行或失靈。
05如果不斷重復制造測試1至5,可獲得8042控制狀態(tài)。已確定軟復位/通電;即將啟動ROM。DMA初如準備正在進行或者失靈。
06使電路片
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 娛樂行業(yè)宣傳活動總結
- 通訊設備行業(yè)安全管理工作總結
- 二零二五年度航空發(fā)動機機油專業(yè)供應及維修合同3篇
- 個人車輛抵債協(xié)議書(二零二五版)債權債務解除條款4篇
- 2025版老舊小區(qū)水電改造工程承包協(xié)議書2篇
- 二零二五年度電商小商品購銷合作合同規(guī)范文本3篇
- 二零二五年度進口建筑材料質量檢驗合同范本6篇
- 二零二五年度個人住宅裝修工程環(huán)保驗收合同2篇
- 生活服務保安工作總結
- 裝修設計行業(yè)銷售工作總結
- GB/T 12173-2008礦用一般型電氣設備
- 2023年1月浙江高考英語聽力試題及答案(含MP3+錄音原文)
- HI-IPDV10芯片產品開發(fā)流程V10宣課件
- 房產抵押注銷申請表
- 【課件】第三課 蒙娜麗莎 課件高中美術湘美版美術鑒賞
- 新媒體研究方法教學ppt課件(完整版)
- 東芝空調維修故障代碼匯總
- 建筑物成新率評定標準
- 工藝管道儀表流程圖(共68頁).ppt
- 五項管理行動日志excel表格
- 梯形練字格A4紙打印版
評論
0/150
提交評論