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