国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Unity3D的手機版FPS射擊游戲設計與開發(fā)

2016-03-29 04:11:50廖金巧
赤峰學院學報·自然科學版 2016年15期
關鍵詞:粒子系統(tǒng)碰撞檢測游戲

張 俊,廖金巧

(北方工業(yè)大學 計算機學院,北京 100144)

基于Unity3D的手機版FPS射擊游戲設計與開發(fā)

張俊,廖金巧

(北方工業(yè)大學計算機學院,北京100144)

此文旨在介紹基于Unity3D游戲引擎的手機版第一人稱的3D射擊類游戲.主要研究的是游戲三維場景的設計與制作,游戲人物、游戲道具、NPC的設計與制作,以及游戲模式的設計和游戲功能的實現(xiàn)與完善.所涉及的關鍵技術有碰撞檢測技術,觸控技術,人工智能交互技術以及粒子系統(tǒng)的實現(xiàn)方法.這個系統(tǒng)搭建了一個真實的三維場景,讓玩家能更容易的沉浸在游戲環(huán)境中;觸控式操作讓玩家的操作更加靈活多變,增加了游戲的樂趣與多變性.

Unity3D;JavaScript;FPS;碰撞檢測;粒子系統(tǒng)

Unity3D是一款跨平臺性突出,兼容性強的游戲引擎,開發(fā)人員的起點要求不高,基本的資料文檔都很豐富.在射擊游戲這種3D類游戲方面,Unity的應用更加廣泛,市場上60%的射擊游戲都是以Unity3D為平臺開發(fā)的.該引擎基于特定的技術架構,實現(xiàn)了實時生成查看的功能,易用性高,簡化了開發(fā)的流程,更便于射擊類游戲的設計與開發(fā).這篇文章針對第一人稱射擊游戲的設計與開發(fā)展開論述,詳細地闡述了游戲中運用的關鍵技術.這對Unity3D游戲引擎的研究與開發(fā)有著十分重要的意義.

1 相關工作

這篇文章是以Unity為開發(fā)平臺,對碰撞檢測技術、觸控技術、人工智能技術以及粒子系統(tǒng)進行研究.

碰撞檢測技術的主要目的有三個:檢測模型之間是否發(fā)生了碰撞,反饋出發(fā)生或即將發(fā)生碰撞的部位,動態(tài)的查詢模型之間的距離.進而針對碰撞后的反饋進行針對性的動作.碰撞檢測技術廣泛應用于各種系統(tǒng)中,比如時下比較流行的游戲英雄聯(lián)盟和守望先鋒,都離不開碰撞檢測算法.

觸控技術是最近幾年興起的一項技術,伴隨著出現(xiàn)的是觸屏類電子產(chǎn)品.是一項脫離鍵盤輸入,直接接收用戶手指觸摸的信息進行實時反饋的技術.是當下信息接收的一項潮流技術,更便于用戶與電子產(chǎn)品進行交互.2004年,進入21世紀,觸屏手機伴隨著觸控技術的出現(xiàn)而普遍流行,諾基亞Symbian系統(tǒng)手機、微軟Windows Mobile以及索尼愛立信UIQ平臺手機在此浪潮中推波助瀾,使得觸控技術日趨成熟與完善.

2 游戲的開發(fā)流程

任何一個游戲的設計與開發(fā)都需要進行策劃和需求分析,為游戲的制作理清一條清晰的主線,這樣才能在接下來的工作中有條不紊地進行開發(fā).

游戲開發(fā)一般分為創(chuàng)意管理,撰寫草案,市場分析,需求分析這四步.在這里著重介紹下需求分析.它主要分為三個部分:美工需求,程序需求和策劃需求.顧名思義,美工需求就是游戲UI的一切組件,比如人物角色,NPC,人物動畫,游戲場景,游戲的各種界面,粒子特效等;程序需求也就是游戲的功能需求,包括地圖編輯器和粒子編輯器的各種功能需求,實現(xiàn)游戲各種功能的函數(shù)、算法、數(shù)據(jù)、碰撞檢測、AI等方面的需求;策劃需求作為游戲制作的總指導,是一個游戲正常運行開發(fā)流程的關鍵部分,包括劇本的設計和游戲開發(fā)每個階段進行的時間安排和具體流程.

2.1游戲策劃

從游戲性來說,射擊游戲是非常適合手機玩家的高粘度產(chǎn)品,近幾年已有不少類似產(chǎn)品出現(xiàn)在市場上,其中很多都非常成功.我們的游戲是模仿市場上已有的F PS類射機游戲進行設計,在一些細節(jié)上進行了調(diào)整和優(yōu)化.首先,運用3D建模技術和次世代貼圖技術搭建一個真實的游戲場景,讓玩家更容易沉浸到游戲中去,增強了用戶的虛擬性體驗;其次,玩家可以自主選擇攻擊模式而且游戲中彈藥沒有限制,全靠玩家的操作能力擊殺NPC進行過關,增加了玩家對游戲的粘度;最后,游戲的盈利模式是通過與廣告商合作,在玩家失敗或者死亡時可以通過觀看一段廣告視頻來繼續(xù)游戲.

2.2游戲美術

一個好的游戲離不開精良的美術內(nèi)容.所謂游戲美術就是游戲中出現(xiàn)的可視化內(nèi)容,包括游戲UI界面,游戲場景及角色等,美術決定游戲的畫面風格走向,是游戲設計與開發(fā)過程中不可或缺的重要組成部分.具體來說本款作品的游戲美術需要完成UI界面的設計、游戲場景和道具的設計與制作、人物角色和NPC形象的設計和建模以及動畫的制作等.

2.3關鍵技術

上文介紹了美術制作的部分內(nèi)容,現(xiàn)在介紹一下程序設計部分.程序需求是一個游戲的核心,是實現(xiàn)預期效果的必要保證.即用一些腳本和代碼將美工設計的好的各種素材聯(lián)系起來并進行交互.程序需求在游戲設計開發(fā)過程中十分重要,決定著一個游戲現(xiàn)在運行過程中是否能完美還原策劃的預期效果和運行時是否流暢.

這款手機版的F PS射擊游戲中涉及到多種人工智能技術,NPC,主角,場景中障礙物,道具等一些列對象,需要通過腳本來控制個對象之間的關系以及互動.當前介紹碰撞檢測技術,粒子系統(tǒng),觸控技術,交互技術.

2.3.1碰撞檢測技術

碰撞檢測技術幾乎是所有游戲中必須要用到的技術,玩家與地面、障礙物、NPC的交互都是在碰撞檢測技術的基礎上來實現(xiàn)的.但是碰撞檢測技術有各種不同的算法,好的算法可以大大增強碰撞的真實性并減少計算機的計算時間.此系統(tǒng)在Unity3D中用如下Java Script腳本進行碰撞檢測:

functionOnCollision Enter(obj:Collision){

Debug.Log("Collider:"+obj.collider.name+"game Object: "+o b j.game Object.name);

Action;

將如上的碰撞檢測的OnCollision Enter函數(shù)綁定到對象obj上,當這個物體被其他物體碰撞時函數(shù)被調(diào)用.

碰撞檢測的算法有很多種,時間預測算法、距離預測算法、靜態(tài)檢測算法、距離計算算法等,其中,距離計算算法計算量比較大但是精確度高,更具有真實性.此游戲采用的就是距離計算的算法.當物體之間發(fā)生碰撞以后,會出現(xiàn)什么樣的效果和做出什么反應都是調(diào)用這個函數(shù).此游戲中用到這個函數(shù)的主要是NPC碰撞到主角以后會觸發(fā)NPC的動畫效果進行攻擊;主角的武器道具碰撞到NPC以后,NPC的血量降低;主角和NPC碰撞到墻面等障礙物不讓其穿過;手榴彈扔出以后碰到地面或者NPC會觸發(fā)粒子系統(tǒng)的爆炸的粒子效果并對范圍內(nèi)的NPC造成傷害降低血量等.

2.3.2粒子系統(tǒng)

粒子系統(tǒng)是為了模擬一些范圍性的難以用傳統(tǒng)渲染技術達到的一些特殊的效果,是游戲中常用的基本功能.

為了增加游戲場景的真實感,增強用戶體驗,需要用到粒子系統(tǒng).粒子系統(tǒng)可以達到其他傳統(tǒng)的渲染技術達不到的真實效果.常用粒子系統(tǒng)模擬火,煙霧.流星尾跡等.這里,我們使用粒子系統(tǒng)來模擬場景中的硝煙和玩家使用的炸彈的爆炸效果.

此游戲中的粒子系統(tǒng)使用主要是戰(zhàn)場的硝煙和扔出的手榴彈爆炸的效果,在產(chǎn)生硝煙的地方創(chuàng)立一個游戲對象并隱藏,然后給該對象添加一個粒子系統(tǒng),調(diào)節(jié)出硝煙的粒子系統(tǒng)參數(shù)和粒子產(chǎn)生的速度和頻率即可模擬出戰(zhàn)場的硝煙的粒子效果;主角扔出的手榴彈的爆炸效果就相對于小硝煙復雜一點,需要制作一個手榴彈的prefab,然后在該prefab上添加一個粒子系統(tǒng)組件,然后調(diào)節(jié)好爆炸的粒子效果參數(shù).但是,手榴彈需要在一定條件下才會觸發(fā)爆炸特效所以需要添加下面的碰撞檢測代碼來控制粒子系統(tǒng)

functionOnCollision Enter(obj:Collision){

Start(ParticleSystem);

2.3.3觸控技術

此游戲是手機版的F PS射擊游戲,現(xiàn)階段的手機市場主要以觸屏手機為主.所以為了迎合市場的需求,在系統(tǒng)中加入觸控技術以實現(xiàn)玩家觸屏控制角色進行游戲.利用射線檢測技術,將玩家手指觸碰點轉化為游戲虛擬的三維場景中的具體坐標點,讓玩家與虛擬場景中的對象進行交互.手機屏幕左下角(0,0),右上角為(Screen.width,Screen.height);通過Unity 中的函數(shù)Input.GetTouch (0).positon獲取點擊的位置,將玩家手指觸碰的點的屏幕坐標轉化為虛擬三維場景中的三維坐標,即從屏幕坐標點發(fā)射一條射線,朝向屏幕內(nèi)部的游戲世界,在unity中實現(xiàn)方法是:

if (Physics.Raycast (transform.position,Vector3.right,outhit,100, mask.value)){

Debug.DrawLine(transform.position,hit.point,Color.red,1);

2.3.4交互技術

一款游戲若是缺少交互就無法生存,所以交互技術是任何游戲的核心技術.這款游戲的交互主要包括玩家和游戲中的主角,主角與NPC,主角與三維場景,NPC與三維場景.

玩家與游戲中的主角的交互式通過觸控技術,玩家在手機屏幕上的信息實時反饋到虛擬的三維場景中,使場景中的虛擬的角色進行反應:行走、跑動、射擊等;主角與NPC的交互是通過碰撞檢測技術來實現(xiàn)的,給NPC的prefab添加一個比他本身略大的一個碰撞盒,當碰撞盒和主角發(fā)生碰撞反應時就觸發(fā)NPC的攻擊動作,并降低主角的血量.主角可以是用槍、刀和手榴彈三種武器,當槍發(fā)射的子彈或者刀的碰撞盒與NPC發(fā)生碰撞的時候會觸發(fā)NPC的掉血機制來消滅NPC;手榴彈則先檢測是否與場景中的地面或者NPC發(fā)生碰撞,若碰撞則觸發(fā)其上的粒子特效并且在手榴彈的爆炸范圍內(nèi)對NPC造成傷害降低其血量;主角與三維場景和NPC與三維場景的交互都是通過碰撞檢測技術來實現(xiàn)的,給場景中的地面和障礙物綁定碰撞盒,當主角或者NPC與之發(fā)生碰撞不讓其穿透障礙物.

3 結束語

隨著計算機技術的日益發(fā)展,Unity3D游戲引擎越來越平民化.此篇文章在對Unity3D游戲引擎精心研究的基礎上結合FPS射擊類游戲的特點,通過3D建模技術和次世代貼圖技術,運用碰撞檢測、觸控、粒子系統(tǒng)等算法和人工智能交互技術進行設計與開發(fā).總結出了游戲場景構建和基本功能實現(xiàn)的一些方法.游戲的故事情節(jié)性不明顯,游戲模式稍微單一,還需要在游戲的多元化方向進行進一步的深化研究.

〔1〕吳業(yè)紅.基于3DSMax材質(zhì)與貼圖技術的教學探討[J].電腦知識與技術,2009,5(36):103,112.

〔2〕伍傳敏,張帥,邱錦明.基于Unity3D的FPS游戲設計與開發(fā)[J].三明學院學報,2012,29(2):35-40.

〔3〕SchachSR.軟件工程面向對象和傳統(tǒng)的方法[M].北京:機械工業(yè)出版社,2009.

〔4〕宜雨松.Unity3D開發(fā)[M].北京:人民郵電出版社,2012.6.

〔5〕華澤璽,王迎春,孫建順.基于粒子系統(tǒng)的爆炸仿真研究[J].計算機科學,2012,39(4):278-281.

T P311.52

A

1673-260X(2016)08-0038-02

2016-05-12

北方工業(yè)大學2016實培計劃大學生科研訓練計劃深化項目(XN 003-17)

猜你喜歡
粒子系統(tǒng)碰撞檢測游戲
全新預測碰撞檢測系統(tǒng)
利用GPU加速的粒子系統(tǒng)全球流場可視化系統(tǒng)設計與實現(xiàn)
基于BIM的鐵路信號室外設備布置與碰撞檢測方法
Unity3D中碰撞檢測問題的研究
電子測試(2018年1期)2018-04-18 11:53:00
UE 4粒子系統(tǒng)與外部數(shù)據(jù)通信研究
數(shù)獨游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
BIM技術下的某辦公樓項目管線碰撞檢測
第八章直接逃出游戲
小學科學(2015年7期)2015-07-29 22:29:00
浮梁县| 洪泽县| 鞍山市| 全椒县| 新蔡县| 洞头县| 淮北市| 隆尧县| 冷水江市| 武平县| 丹寨县| 正宁县| 荥阳市| 绥棱县| 海口市| 阿坝县| 锦屏县| 台中县| 满城县| 基隆市| 册亨县| 宿州市| 磴口县| 长顺县| 洛宁县| 黎城县| 广元市| 金乡县| 焉耆| 湘潭县| 黄骅市| 西林县| 库伦旗| 安陆市| 山丹县| 垦利县| 临夏县| 伊宁县| 威信县| 浪卡子县| 北京市|