萬(wàn)政 李娟 羅宇飛 張海旭 李一帆
摘要:根據(jù)《中華人民共和國(guó)道路交通安全法》規(guī)定,摩托車駕駛過程中,駕駛者需佩戴好安全頭盔以保護(hù)自己的生命安全。然而實(shí)際生活中,駕駛者對(duì)于摩托車駕駛的交通安全意識(shí)不足,不了解頭盔的重要性,經(jīng)常駕駛摩托車時(shí)不佩戴頭盔。為預(yù)防此類摩托車交通事故的發(fā)生,筆者開發(fā)了一款基于Unity 3D的摩托車安全駕駛游戲。該游戲利用Unity 3D的強(qiáng)大性能,模擬摩托車駕駛,讓駕駛?cè)送ㄟ^游戲強(qiáng)化安全意識(shí),學(xué)習(xí)安全法規(guī),自主佩戴安全頭盔,最終保護(hù)生命安全。
關(guān)鍵詞:游戲開發(fā);佩戴頭盔;模擬現(xiàn)實(shí);安全意識(shí)
中圖分類號(hào):TP311.1? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)04-0074-03
Abstract: According to the Law of Peoples Republic of China on Road Traffic Safety, motorcyclists must wear helmets. But in reality, motorcyclists often fail to do that, which is caused by their poor awareness of traffic safety and insufficient recognition of helmets. In order to prevent the motorbike accidents caused by the above reasons, our team invents a motor driving game based on Unity 3D, helping to raise peoples awareness of traffic safety. This game absorbs the knowledge of traffic rules and reflects that in its virtual motor driving scenes supported by Unity 3D. In this way, the users can strengthen their awareness of traffic safety, developing the habit of wearing helmets, and eventually, saving lives of their own
Key words: game development; wearing helmets; virtual reality; awareness of safety
1 背景
安全頭盔即安全帽作為一種新型防具,可以緩沖對(duì)頭顱的傷害,能夠有效地將安全賦予駕駛員,是騎行者在交通事故中的最后的生命安全防線。然而,經(jīng)過對(duì)交通安全事故的深度考察,發(fā)現(xiàn)大多數(shù)人對(duì)于摩托車駕駛的安全意識(shí)不足,在日常出行中都輕裝上陣,以至于當(dāng)交通變故產(chǎn)生時(shí),造成不可彌補(bǔ)的結(jié)果。事實(shí)上,交通法規(guī)是用一場(chǎng)場(chǎng)血與淚的教訓(xùn)總結(jié)出的行車規(guī)范,是用來(lái)保護(hù)摩托車駕駛員以及正常行走路人的生命健康,而不是一群人根據(jù)自己的喜好而制定出來(lái)的,它的目的是保護(hù)大家的生命安全。
隨著信息技術(shù)的不斷發(fā)展,游戲產(chǎn)業(yè)也成為互聯(lián)網(wǎng)產(chǎn)業(yè)市場(chǎng)中增長(zhǎng)速度最快的熱點(diǎn),并已在計(jì)算機(jī)、移動(dòng)設(shè)備等多個(gè)平臺(tái)得到普及[1]。而Unity 3D因其自帶的功能包含游戲制作、美術(shù)繪畫、3D建模、影視特效等功能,成為一款最流行的開發(fā)引擎。本游戲也是基于其強(qiáng)大的特性,采用Unity 3D技術(shù),開發(fā)出的一款模擬摩托車安全駕駛的游戲,呼吁人們?cè)隍T摩托車時(shí)應(yīng)當(dāng)依照規(guī)定佩戴頭盔,恪守交通法規(guī),保護(hù)自己的生命安全。
2 國(guó)內(nèi)安全現(xiàn)狀
當(dāng)代社會(huì),代步工具種類繁多,摩托車以其體積較小、極具靈活性的特點(diǎn)風(fēng)靡全國(guó)。然而,許多的安全隱患也伴隨而來(lái)。從交通部門獲悉,在最近一年的交通安全事故報(bào)告中,關(guān)于摩托車的死亡的人數(shù)就多達(dá)上萬(wàn)人,他們當(dāng)中極大一部分人都是由于頭部受到重傷而亡。因人體頭部結(jié)構(gòu)比較特殊,輕微的撞擊就易造成腦震蕩,而對(duì)于交通事故,劇烈的撞擊必不可少,頭部的保護(hù)也就成為安全駕駛的必修課,安全頭盔成為必選的工具。對(duì)于相當(dāng)一部分人來(lái)說,他們?nèi)狈?duì)安全帽功能的了解,當(dāng)交通警察在對(duì)佩戴頭盔的駕駛員進(jìn)行檢查時(shí),都淺顯的認(rèn)為該行為只是為了開罰單,而沒有意識(shí)到安全的重要性。
一名按照規(guī)范佩戴安全帽的摩托車司機(jī),因意外而發(fā)生交通事故時(shí),安全帽能很好保護(hù)好配戴者的頭部,頭盔內(nèi)的緩沖層和內(nèi)襯層有效緩解在碰撞瞬間產(chǎn)生力,從而抵消一部分外力對(duì)頭顱的沖擊。我們也發(fā)現(xiàn),倘若我們?nèi)ゴ罅Φ匦麄靼踩庾R(shí),在各個(gè)路口掛上有關(guān)安全提示的標(biāo)語(yǔ),每時(shí)每刻告訴市民安全行車的必要性,牢記把我們的生命安全放在第一的原則,將有效地提升市民學(xué)會(huì)預(yù)防事故,不讓悲劇在自己的家庭上演。
綜上所述,一款能夠宣傳安全意識(shí)的模擬駕駛游戲能夠有效地幫助人們提升自我安全意識(shí)。
3 關(guān)鍵技術(shù)——Unity 3D引擎技術(shù)
Unity是由丹麥Unity公司開發(fā)的游戲開發(fā)工具,因包含整合的編輯器、跨平臺(tái)發(fā)布、地形編輯、著色器、腳本、網(wǎng)絡(luò)、物理、版本控制等一些特性[2],一舉成為當(dāng)前國(guó)際開發(fā)引擎界的掌舵者,同時(shí)可視化編輯器作為其新的特性,深受開發(fā)者喜愛,倘若開發(fā)者有什么新穎的想法,可以立刻在引擎上實(shí)現(xiàn),而這種實(shí)時(shí)的編輯,測(cè)試,運(yùn)行功能,能有效地提升制作者與游戲項(xiàng)目的交流。它讓開發(fā)者能夠在一定學(xué)習(xí)的基礎(chǔ)上通過簡(jiǎn)單的操作制作出簡(jiǎn)易的小游戲,再加上其“免費(fèi)+收費(fèi)”相結(jié)合的運(yùn)營(yíng)模式,使之逐漸成為國(guó)內(nèi)的主流游戲引擎。
在具體功能方面,Unity 3D不僅提供了2D與3D游戲制作所需要的功能,還包括地形系統(tǒng)、物理系統(tǒng)、剛體、碰撞器、光照、粒子系統(tǒng)在內(nèi)的強(qiáng)大功能,這也是為什么它可以作為VR、AR游戲開發(fā)的首選引擎。Unity 3D集各功能于一體,讓開發(fā)人員僅通過一款程序內(nèi)完成游戲開發(fā)的大部分工作,有效地降低程序的開發(fā)時(shí)長(zhǎng)。
基于Unity 3D的跨平臺(tái)性和極其完善的深層技術(shù)結(jié)構(gòu),摩托車安全駕駛游戲便逐漸建立起來(lái)。
4 游戲總體設(shè)計(jì)
4.1 總體思路
《Go Home》作為一款3D摩托車跑酷類游戲,游戲的主體為下午五點(diǎn),迎來(lái)了下班的高峰期,艾克斯也到了回家的時(shí)間,由于回家路途較遠(yuǎn),他需要駕駛自己的摩托車回家,為了自身的生命不受到威脅,他需佩戴好安全頭盔,恪守交通法規(guī),最后平安的回到家中,而期間會(huì)出現(xiàn)各種突發(fā)情況,倘若在途中發(fā)生了交通事故,那么這個(gè)時(shí)候頭盔將取到關(guān)鍵性作用,它能夠有效地保護(hù)角色降低傷害,甚至在關(guān)鍵時(shí)刻起到保護(hù)生命的作用。
4.2 游戲流程
一款游戲的可玩性是該游戲可以長(zhǎng)期運(yùn)行的基礎(chǔ)。游戲的可玩性指的是玩家與游戲世界或者游戲世界對(duì)玩家所做出反應(yīng)的方式[3]。該游戲以當(dāng)前安全教育主題為大背景,游戲環(huán)境是我們所熟悉的城市,高樓林立,交通四通八達(dá),路上車輛來(lái)來(lái)往往,過往的行人來(lái)來(lái)往往。玩家扮演一名下班后需要安全回家的角色,摩托車作為其代步工具,他得駕駛著自己的摩托車在不違反道路交通安全法的前提下,穿過一條條車水馬龍的街道,安全回家。在回家途中,他可能經(jīng)過紅綠燈,可能碰見行人過斑馬線,或者道路上的路障,如此種種,他需要安全的規(guī)避,以達(dá)到安全回家的目的。除此之外,游戲當(dāng)中還增設(shè)了大量的游戲道具,比如金幣、血包等,而金幣的收益可以在商城為角色購(gòu)買道具,像更好的摩托車,更高級(jí)的頭盔等等。
5 游戲設(shè)計(jì)
5.1 游戲場(chǎng)景搭建
場(chǎng)景是Unity 3D程序的基本組成單位,任何一個(gè)Unity 3D程序都是由若干場(chǎng)景組合而成,程序通過腳本在這些場(chǎng)景之間轉(zhuǎn)換[4]。作為一款教育類游戲,其場(chǎng)景的搭建是整個(gè)游戲環(huán)節(jié)首要部分,Unity 3D以其完美的開發(fā)性能,極好的實(shí)現(xiàn)了游戲場(chǎng)景搭建。隨著該軟件的更新,從Unity 3D 5.0開始,項(xiàng)目開發(fā)所需要的資源便不再是軟件自帶,而需要國(guó)內(nèi)的開發(fā)者到其官網(wǎng)或者軟件自帶的商店下載StandardAssets,下載完成后,找到Project面板下的Assets組件的面板位置,然后找到ImportPackage面板下的CustomPackage組件所在后點(diǎn)擊該組件即可將下載好后的資源包導(dǎo)入到unity中。導(dǎo)入時(shí)需要注意的是,資源包所含有的2D、Cameras、Characters等12個(gè)文件需全部導(dǎo)入,如果只導(dǎo)入項(xiàng)目所需文件可能會(huì)導(dǎo)一系列報(bào)錯(cuò),帶來(lái)不必要的麻煩。
創(chuàng)建一個(gè)Unity 3D項(xiàng)目,將其命名為Firstscence,場(chǎng)景會(huì)自動(dòng)創(chuàng)建一個(gè)主相機(jī)(MainCamera)和方向燈(DirectionalLight)。前者用來(lái)記錄Game界面,對(duì)于后者,我們可以通過對(duì)其位置、角度、范圍大小的調(diào)整,來(lái)調(diào)整對(duì)游戲場(chǎng)景的渲染程度,從而使場(chǎng)景更加自然,虛擬現(xiàn)實(shí)的效果更加高效化。點(diǎn)擊菜單Game Object中的3D Object中的Plane,多次操作后,繼續(xù)通過調(diào)整所需Inspector面板當(dāng)中的各類相關(guān)參數(shù)以達(dá)到所需效果,該游戲的場(chǎng)景便簡(jiǎn)單搭建實(shí)現(xiàn)。如圖1場(chǎng)景搭建。
5.2 游戲設(shè)計(jì)
1)游戲障礙物的設(shè)計(jì)
由于該游戲是作為一個(gè)摩托車安全駕駛游戲軟件的示例,因此游戲中涉及一小部分的學(xué)習(xí)內(nèi)容,學(xué)習(xí)內(nèi)容包括法律知識(shí)和基本的道德準(zhǔn)則,為實(shí)現(xiàn)以上內(nèi)容,需建構(gòu)相關(guān)的模型。Unity 3D以其能集各性能于一體的優(yōu)秀性,3D建模是其基本功能,開發(fā)者可以通過該引擎進(jìn)行建模,為了方便操作,可在網(wǎng)上下載相關(guān)的模型,但通過導(dǎo)入的模型通常情況下都是不適配的。為此,對(duì)于導(dǎo)入的模型,需對(duì)其Inspector面板中的Model、Rig、Animation、Materials中的相關(guān)參數(shù)進(jìn)行調(diào)配,同時(shí)為了適配場(chǎng)景,模型的形狀和大小需要進(jìn)行一定的調(diào)整,獲得最佳效果。汽車模型如圖2所示,為了給模型增設(shè)重力系統(tǒng)以獲得更好的逼真成果,需對(duì)其添加剛體組件,若多個(gè)對(duì)象添加,還可因?yàn)閮蓪?duì)象發(fā)生碰撞而產(chǎn)生位移,然后再給物體添加物理材質(zhì),從而達(dá)到兩個(gè)對(duì)象發(fā)生碰撞后所需的摩擦力和反彈效果。
2)碰撞檢驗(yàn)
虛擬現(xiàn)實(shí)最重要的是為了體現(xiàn)真實(shí)物體的物理特性還需要在觸覺上進(jìn)行設(shè)計(jì),而觸覺上的設(shè)計(jì)需要虛擬世界中的物體對(duì)象可以相互接觸并存在著碰撞反應(yīng)[5]。碰撞檢測(cè)是實(shí)現(xiàn)該效果的主要方法,從概念上來(lái)講,當(dāng)一個(gè)實(shí)體與另一個(gè)實(shí)體接觸時(shí),二者所產(chǎn)生的形狀、位移等的變化都可以稱作碰撞。在Unity 3D所含有的函數(shù)種類繁多,碰撞檢測(cè)在其中就有相對(duì)應(yīng)的函數(shù),其主要功能為實(shí)現(xiàn)游戲中碰撞的偵測(cè),實(shí)現(xiàn)過程如下,對(duì)于兩個(gè)或多個(gè)將在某時(shí)刻需實(shí)現(xiàn)碰撞的實(shí)體,在其中一方添加Rigidbody,而碰撞產(chǎn)生時(shí)的雙方添加Colider,碰撞檢測(cè)函數(shù)如圖3所示,當(dāng)發(fā)生碰撞時(shí),便會(huì)瞬間實(shí)現(xiàn)碰撞檢測(cè)函數(shù)內(nèi)的代碼,如銷毀物體,播放音樂,實(shí)現(xiàn)粒子效果等。
對(duì)于摩托車駕駛游戲,通過調(diào)取OnCollisionEnter()的方法來(lái)解決相關(guān)的碰撞檢測(cè),當(dāng)摩托車碰撞到汽車模型時(shí)便會(huì)被摧毀,游戲結(jié)束,資源中的相關(guān)動(dòng)畫特效也在這一刻實(shí)現(xiàn),游戲當(dāng)中的道具拾取等功能也需通過觸發(fā)器實(shí)現(xiàn)。
5.3 摩托車玩家設(shè)計(jì)
摩托車在行駛過程中,為給玩家?guī)?lái)駕駛摩托車的虛擬真實(shí)效果,開發(fā)者給玩家設(shè)置了兩個(gè)視角——兩個(gè)攝像機(jī)。在一個(gè)場(chǎng)景中,相機(jī)雖然能夠有多個(gè)共存,但玩家在游戲界面的視角僅能由一個(gè)攝像機(jī)提供。由于在游戲搭建部分已經(jīng)創(chuàng)建了一個(gè)視角,但需將其位置調(diào)至摩托車后方,鏡頭視角為摩托車方向,同時(shí)還需在摩托車的駕駛位放置一個(gè)攝像機(jī),兩個(gè)攝像機(jī)的鏡頭的切換可以用C#語(yǔ)言達(dá)到效果。在駕駛方面,通過鍵盤上的四個(gè)按鍵WASD來(lái)實(shí)現(xiàn)摩托車的前后左右的行駛,摩托車的加速功能通過按鍵e來(lái)實(shí)現(xiàn),但其速度設(shè)置了一個(gè)上限,當(dāng)達(dá)到該上限時(shí)速度便不再變化。摩托車駕駛展示如圖4所示。
5.4 調(diào)試與完善
一款優(yōu)秀的游戲,需對(duì)其不斷地進(jìn)行測(cè)試,發(fā)現(xiàn)其中漏洞和不足。游戲測(cè)試有多種方式,有第一階段的單元測(cè)試、第二階段的集成測(cè)試、采用黑盒法的系統(tǒng)測(cè)試、以及最后的驗(yàn)收測(cè)試,每一階段都會(huì)產(chǎn)生相對(duì)應(yīng)的測(cè)試報(bào)告,開發(fā)者再依據(jù)其相干數(shù)據(jù)對(duì)游戲進(jìn)行改善,不斷地測(cè)試,不斷地修改,以達(dá)到最佳游戲效果。
6 結(jié)束語(yǔ)
本項(xiàng)目基于Unity 3D所具備的完善性能,以及C#語(yǔ)言的腳本的完美配合,成功地設(shè)計(jì)出一款教育玩家在摩托車駕駛時(shí),需安全佩戴頭盔并且守法的游戲。本游戲在給玩家?guī)?lái)娛樂的同時(shí),也能夠幫助玩家提高安全意識(shí),規(guī)避在實(shí)際操作中的低級(jí)錯(cuò)誤,將佩戴頭盔作為摩托駕駛的前提要求,為了自己也為了家人,安全上路,最終起到寓教于樂的作用。雖然本項(xiàng)目通過Unity 3D實(shí)現(xiàn)了摩托車虛擬駕駛的基礎(chǔ)性功能,但由于筆者在Unity 3D引擎的研究時(shí)間和目前自身的研究水平有限,在虛擬駕駛的實(shí)現(xiàn)方面還有很多的不足,隨著對(duì)其研究的深入和特性的挖掘和自身的學(xué)習(xí),相信這都將會(huì)得到改善,游戲中的虛擬化場(chǎng)景將更加豐富和更具趣味性,人機(jī)交互系統(tǒng)也會(huì)大幅度的提升。
參考文獻(xiàn):
[1] 李莉,曾曉燕,李鍇,等.基于unity3d的模擬駕駛游戲[J].計(jì)算機(jī)產(chǎn)品與流通,2020(9):117-118.
[2] 徐敏,童強(qiáng).一種基于Unity3D+Vuforia的增強(qiáng)現(xiàn)實(shí)交互App的開發(fā)[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2016(12):71-75.
[3] 吳志達(dá).一個(gè)基于Unity3d游戲引擎的體感游戲研究與實(shí)現(xiàn)[D].廣州:中山大學(xué),2012.
[4] 朱柱.基于Unity3D的虛擬實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)與應(yīng)用研究[D].武漢:華中師范大學(xué),2012.
[5] 曾林森.基于Unity3D的跨平臺(tái)虛擬駕駛視景仿真研究[D].長(zhǎng)沙:中南大學(xué),2013
【通聯(lián)編輯:謝媛媛】