Unity游戲綜合課程設(shè)計(jì)報(bào)告_第1頁
Unity游戲綜合課程設(shè)計(jì)報(bào)告_第2頁
Unity游戲綜合課程設(shè)計(jì)報(bào)告_第3頁
Unity游戲綜合課程設(shè)計(jì)報(bào)告_第4頁
Unity游戲綜合課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、湖北民族學(xué)院綜合課程設(shè)計(jì)項(xiàng)目名稱:Rpg游戲我的奇妙之旅專業(yè):數(shù)字媒體技術(shù)班 級(jí):學(xué) 期:大三成 員:姓名學(xué)號(hào)胡芳惠031341302裴王杰031341315唐青031341326數(shù)字媒體技術(shù)專業(yè)制2016年 7月#/ 19第一章項(xiàng)目概述第二章項(xiàng)目研究內(nèi)容第三章項(xiàng)目關(guān)鍵技術(shù)第四章項(xiàng)目實(shí)驗(yàn)測試第五章項(xiàng)目結(jié)論參考文獻(xiàn)5/ 19第一章 項(xiàng)目概述本項(xiàng)目是基于unity 3D平臺(tái)開發(fā)的三維的RPG(冒險(xiǎn)類)游戲: 英文名稱為 the miraculous journey”,又稱為“我的奇妙之旅”。 這是一個(gè)通過玩家控制主角的行走、攻擊、拾取,打敗怪物、獲取 資源以便通關(guān)進(jìn)入下一個(gè)關(guān)卡繼續(xù)冒險(xiǎn)的游戲,所以

2、本游戲是一個(gè) 偏生存類的游戲,需要玩家通過理性的分析是否去攻擊怪物,而去獲得最終的勝利。和其他unity 游戲相比,我們更注重玩家的體驗(yàn),比如控制主角的動(dòng)作的連貫性,技能釋放的特效華麗及合法性等等,而作為一個(gè)3d 類的游戲,我們采用第三人稱視角去展示主角的的視角,讓玩家不容易出現(xiàn)純3d 視角帶來的不適,可以讓玩家更快的去適應(yīng)整個(gè)游戲的風(fēng)格。總的來說,我們小組所做的這款游戲集合了我們組內(nèi)所有成員對(duì)以前所玩游戲的不足之處都加以改進(jìn),讓游戲更加適應(yīng)更多的玩家。本文中所述的游戲項(xiàng)目開發(fā)工具是Unity 3D自帶的開發(fā)工具,叫做 MonoBehaviour,選擇的開發(fā)語言是 c#。項(xiàng) 目的開發(fā)過程主要分

3、為前期、中期和后期。前期需要與導(dǎo)師、組員之間進(jìn)行協(xié)調(diào)溝通,確定好游戲開發(fā)的類型為RPG冒險(xiǎn)類游戲,然后組員之間對(duì)游戲的開發(fā)進(jìn)行框架設(shè)計(jì)、游戲規(guī)則確定、游戲代碼理論設(shè)計(jì)等前期的設(shè)計(jì)工作。中期為游戲具體的開發(fā)環(huán)節(jié),要根據(jù)前期的設(shè)計(jì)要求,查找好素材資源,包括游戲場景、游戲主角原型、NPC原型、UI素材以及音效等資源等,然后對(duì)游戲進(jìn)行場景搭建、功能實(shí)現(xiàn)、UI 設(shè)計(jì)、添加音效等操作來實(shí)現(xiàn)游戲的開發(fā)。在后期需要對(duì)已經(jīng)制作好的初級(jí)游戲進(jìn)行不斷的測試,找到并完善游戲中存在的BUG,最后將游戲發(fā)布出來。第二章 項(xiàng)目研究內(nèi)容在本次的綜合課程設(shè)計(jì)中,我們小組設(shè)計(jì)的這個(gè)RPG冒險(xiǎn)類游戲的主要游戲規(guī)則是:主角尋找水源,

4、躲避并攻擊怪物來在游戲場景中延長生存時(shí)間,當(dāng)水源和生存時(shí)間達(dá)到規(guī)定后在魔法陣中就可以進(jìn)入下一關(guān)卡的游戲,中途主角可能會(huì)被怪物攻擊死亡也會(huì)因?yàn)槿鄙偎炊劳?。所以在游戲的制作過程中需要小組成員完成的功能和模塊瑣碎而復(fù)雜,總體概括起來包括以下部分:1 .游戲場景的搭建:在游戲的開始,我們需要通過導(dǎo)入素材資源搭建好整個(gè)游戲的兩個(gè)關(guān)卡場景,給場景添加好燈光、天空等。2 .游戲角色的創(chuàng)建:在整個(gè)游戲中,包括兩個(gè)游戲角色,分別是主角和怪物,在創(chuàng)建游戲角色的過程中,首先要對(duì)導(dǎo)入后的游戲角色模型進(jìn)行優(yōu)化,使其適應(yīng)游戲場景的運(yùn)行;其次,要對(duì)游戲角色的動(dòng)畫系統(tǒng)進(jìn)行設(shè)計(jì),主角的動(dòng)畫系統(tǒng)包括了idle、 run、 a

5、ttack、 death四個(gè)狀態(tài)之間的轉(zhuǎn)換,怪物的動(dòng)畫系統(tǒng)相對(duì)簡單,包括了 walk、 die、attack 三個(gè)動(dòng)畫狀態(tài)。3 .角色的控制實(shí)現(xiàn):角色的控制主要是主角控制,怪物的控制會(huì)相對(duì)簡單一點(diǎn),我們給沒給怪物創(chuàng)建了一條路徑,怪物會(huì)沿著不同的路徑不斷地巡邏,發(fā)現(xiàn)主角會(huì)自動(dòng)進(jìn)行追擊。主角的控制需要在游戲運(yùn)行是通過玩家的手動(dòng)控制,對(duì)于主角的移動(dòng)我們采用的是通過鼠標(biāo)點(diǎn)擊屏幕控制角色運(yùn)動(dòng)的方式,然后對(duì)給攝像機(jī)添加一個(gè)跟隨腳本,使得游戲鏡頭會(huì)一直跟著主角移動(dòng),實(shí)現(xiàn)第三人稱游戲視角。4 .任務(wù)系統(tǒng)的實(shí)現(xiàn):根據(jù)游戲的前期設(shè)計(jì),游戲的任務(wù)系統(tǒng)就包括了尋找水源、攻擊怪物、達(dá)到生存時(shí)間進(jìn)入下一關(guān)卡。在這個(gè)階段中

6、要實(shí)現(xiàn)的功能有:( 1)拾取物品的功能:通關(guān)判斷主角與水源的距離來判斷是否拾取,拾取后要修改物品的顯示,拾取受體力值控制,當(dāng)體力值不足時(shí),需要?dú)⑺罃橙双@得體力值繼續(xù)拾取水源;( 2)技能的實(shí)現(xiàn):根據(jù)鼠標(biāo)位置確定技能釋放位置,按鍵后播放特效,以及要UI 中顯示技能的冷卻,技能的釋放會(huì)受到主角魔法值的限制。( 3)敵人的自動(dòng)攻擊:敵人會(huì)根據(jù)與主角之間的距離確定一個(gè)攻擊范圍,超出范圍后會(huì)停止攻擊,就近回到路徑點(diǎn)繼續(xù)巡邏。敵人在攻擊主角時(shí)會(huì)定時(shí)發(fā)功攻擊,直到主角死亡。( 4)主角的初級(jí)攻擊:主角的初級(jí)攻擊是使用自帶的武器對(duì)敵人發(fā)動(dòng)攻擊,可以通過按鍵實(shí)現(xiàn)攻擊,不受魔法值限制,到傷害值會(huì)比較小。5 .設(shè)計(jì)

7、開始界面:在進(jìn)入游戲后給游戲添加了一個(gè)鏡頭拉進(jìn)移動(dòng)的動(dòng)畫,然后顯示游戲標(biāo)題,點(diǎn)擊屏幕繼續(xù)后會(huì)出現(xiàn)兩個(gè)按鈕事件來實(shí)現(xiàn)游戲的加載,加載游戲后,出現(xiàn)一個(gè) NPC對(duì)話框來交代游戲 的背景和主角任務(wù)。9 / 198/ 19第三章項(xiàng)目關(guān)鍵技術(shù)在游戲的制作中,我們是基于 UNTIY引擎制作而成,同時(shí)還使 用了 NGU插件制作UI界面、HUDif件制作血條跟隨、fx maker插 件制作特效、Dialogue System插件制作對(duì)話等。下面將對(duì)游戲中使 用到的關(guān)鍵技術(shù)進(jìn)行詳細(xì)說明:1 .音效的實(shí)現(xiàn)音效主要有背景音樂、敵人死亡音樂,攻擊音樂等,不同功能的音 效放在特定的對(duì)象下面,如實(shí)現(xiàn)背景音樂的添加,選擇豬攝

8、像景, 添加一個(gè)Audio Listener 游戲組件,Component->Audio->Audio Listener ;然后在相應(yīng)的游戲?qū)ο笊厦嫣砑?Audio Source游戲組件,具體步 驟如下: Component->Audio->Audio Source;® q Audie Listener1也 Audio Source用辛tAudioClipW74790OutputNinie (Audia Mixer Group)G>MuteBypass EffectsBypass Listen*!' Effects LBypass Reverb

9、Zone5 一 Play On Awake/LoopQ圖3-12 . NGUI插件的使用NGU插件主要是用來制作UI界面,在本項(xiàng)目中我們使用NUGI制 作了游戲開始界面、主角血條、敵人血條、小地圖、游戲結(jié)束界面 等,使用起來十分方便。在開始界面中,通過給主攝像機(jī)添加運(yùn)動(dòng) 腳本實(shí)現(xiàn)了鏡頭拉近的效果,使用白色圖片的緩慢消失實(shí)現(xiàn)場景漸 顯效果,logo的加載使用了 NGUI的TweenAlpha組件制作動(dòng)畫,如 圖:S 甘同Iph* (Script)前From。0To41Play Style口*AiiimtitiDn Cln vc/Duration1a BerndsStart Dcltir2gsnc

10、bTrtetn Grau pCJgn9r$ Tirr曰V CJm FinishedMot/. NOflffO圖 3.2開始按鈕需要在添加按鈕后添加腳本語言實(shí)現(xiàn)游戲場景的加載, 使用Application.LoadLevel(l)函數(shù)即可。血條的的制作中關(guān)鍵部分是 要給血條添加一個(gè)UI Slider,使用組件里的value值控制血條的移動(dòng)。小地圖的制作需要給UI ROOTS添加一個(gè)攝像機(jī),給主角和怪物腳下 添加不同顏色的標(biāo)識(shí),然后主角和怪物們的移動(dòng)在小地圖中就可以 通過標(biāo)識(shí)觀察。3.敵人巡邏和攻擊我們首先為enem師制體寫了一個(gè)腳本,在腳本中我們首先定 義一個(gè)gameobject類型的數(shù)組,然后

11、讓enemy從數(shù)組的第一個(gè)點(diǎn)出發(fā),依次尋路,當(dāng)?shù)竭_(dá)最后一個(gè)點(diǎn)之后,便會(huì)重新返回,當(dāng)這樣定義完成之后,我們又新建了一個(gè) spawnEnem腳本來管理所有怪物, 這時(shí)在里面定義n個(gè)gameObject類型的數(shù)組,將事先定義好的點(diǎn)的 集合在屬性面板賦值,最后通過instantiate 方法生成instantiate(enemyprefabs).GetComponent<Enemymove>().points= point1; 在生成位置點(diǎn)后通過代碼實(shí)現(xiàn)敵人沿著位置點(diǎn)移動(dòng)Vector3 endPos = pointscurrentPoint + 1.transform.position;t

12、his.gameObject.transform.LookAt(endPos);transform.Translate(Vector3.forward * speed * Time.deltaTime);敵人的追擊通過判斷主角與敵人之間的距離是否符合追擊距離,如果符合追擊距離,敵人就會(huì)追擊主角并發(fā)功攻擊:if(offset>0.5f && offset<=2.5f) transform.Translate(Vector3.forward*2*speed*Time.deltaTime);if (offset <= 0.5f) / 當(dāng)距離小于1 時(shí),怪物每隔三秒攻

13、擊主角一次 / 播放攻擊動(dòng)畫anim.SetBool("isAttack", true);timer += Time.deltaTime; if (timer >= IntervalTime) player.GetComponent<PlayerState>().SubHP(damage1);timer -= IntervalTime; 4.主角的移動(dòng)和攻擊主角的移動(dòng)是通過鼠標(biāo)點(diǎn)擊控制的,通過鼠標(biāo)位置向地面生成一個(gè)射線并記錄射線點(diǎn),然后確定主角的移動(dòng)位置:Ray ray = Camera.main.ScreenPointToRay(Input.mouseP

14、osition);RaycastHit hitInfo;bool isClickGround = Physics.Raycast(ray, out hitInfo);if (isClickGround && hitInfo.collider.tag = "Ground")LookAtTarget(hitInfo.point);主角技能攻擊也是使用射線來計(jì)算攻擊位置的:Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHit hitInfo;bool isGround = Ph

15、ysics.Raycast(ray, out hitInfo);if (isGround && hitInfo.collider.tag = "Ground" && State.MP>=30)GameObject go=Instantiate(skillPrefabs,hitInfo.point,Quaternion.identity) as GameObject;State.MP -= 30;foreach (GameObject enemy in gos)if (Vector3.Distance(hitInfo.point, ene

16、my.transform.position) < 2f)enemy.gameObject.GetComponent<EnemyState>().HP -= 80;if (enemy.gameObject.GetComponent<EnemyState>().HP <= 0)gos=DeleAt(gos, enemy);Destroy(go,3f);21 / 19游戲開始界面:第四章項(xiàng)目實(shí)驗(yàn)測試NPC面游戲運(yùn)行圖撿東西特技攻擊玩家死亡第五章項(xiàng)目結(jié)論一個(gè)基于UNITY的RPG字戲的完成,也標(biāo)志著本次綜合課程設(shè) 計(jì)的工作到達(dá)尾聲。在整個(gè)的設(shè)計(jì)制作過程中,我們收獲了

17、許多,同時(shí)發(fā)現(xiàn)了一些問題,最后我將對(duì)今后的工作有更多的展望。在設(shè)計(jì)開始之前,本人大致了解了簡單的游戲項(xiàng)目開發(fā),但是由于沒有系統(tǒng)地學(xué)習(xí)腳本編寫,所以在動(dòng)手制作游戲過程中,經(jīng)??ㄔ谀_本的編寫上。例如前面設(shè)計(jì)中的路點(diǎn)設(shè)置的腳本就成為開發(fā)中很大的一個(gè)難題。在查閱資料和視頻之后,成功將一些問題解決,但是薄弱點(diǎn)依然存在。同學(xué)和老師在游戲的開發(fā)中給予了本人很大 的幫助,推薦了一些有用的資料和教程,讓游戲制作成功。游戲雖然制作成功,但是存在著以下問題:1. 界面不美觀;2. 游戲在測試中出現(xiàn)較嚴(yán)重的卡頓和延遲現(xiàn)象,說明游戲優(yōu)化不 足;3. 關(guān)卡較為簡單,模型和素材搭配不合理;4. 功能上較為簡單,可玩性不高。Unity3D 是一款非常強(qiáng)大的游戲開發(fā)軟件,它有著強(qiáng)大的跨平臺(tái)能力,在本設(shè)計(jì)的最后測試階段中可以看出,同樣一款游戲,僅僅因?yàn)榉庋b類型不同,在PC平臺(tái)和在手機(jī)平臺(tái)可以無差別運(yùn)行。這樣 一來,免去了游戲在不同平臺(tái)之間移植的復(fù)雜工作,同時(shí)節(jié)約了開發(fā)成本??梢灶A(yù)料,在接下來的一段時(shí)間,Unity3D 將成為游戲開發(fā)行業(yè)的熱門工具。也就是說,學(xué)會(huì)運(yùn)用這門

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論