本發(fā)明涉及計算機(jī)仿真、虛擬現(xiàn)實技術(shù),特別是一種基于Unity3D的三維虛擬消防演練的實現(xiàn)方法及其系統(tǒng)。
背景技術(shù):
虛擬現(xiàn)實是一種綜合計算機(jī)圖形技術(shù)、多媒體技術(shù)、傳感器技術(shù)、并行實時計算技術(shù)、人工智能、仿真技術(shù)等多種學(xué)科而發(fā)展起來的計算機(jī)領(lǐng)域的最新技術(shù)。它以模擬方式為使用者創(chuàng)造一個實時反映實體對象變化與相互作用的三維圖像世界,參與者可以直接參與所處環(huán)境中,仿佛置身于一個虛擬的世界中。
隨著虛擬現(xiàn)實技術(shù)的發(fā)展與第三代網(wǎng)絡(luò)技術(shù)的逐漸成熟,越來越多的難以在現(xiàn)實中實現(xiàn)推廣的事情,都借以虛擬現(xiàn)實技術(shù)實現(xiàn)。
消防演練是我國的一項重要和必須要做的事情,受到黨和國家的高度重視。每年國家都會投入大量的人力物力來做消防演練工作。
但是每年因為消防知識匱乏而引起的生命財產(chǎn)巨大損失時有發(fā)生。因為現(xiàn)在人們的消防知識的獲得,基本是通過網(wǎng)絡(luò)、消防人員演練和消防民警的講解獲得的。
通過內(nèi)網(wǎng)絡(luò)獲得時,基本上是看一些視頻、文字等方法得到,雖然很便利,但是缺乏交互性,效果不佳。而消防人員演練和消防民警的講解的次數(shù)是有限的,參加演練的人員數(shù)量也是有限的。演練時的條件也是有限的,不可能給每個人一個機(jī)會去操作對應(yīng)的消防設(shè)備,另外,像一些極端情況,如整個大樓處于大火狀態(tài)是不可能模擬演練的。所以,這就要借助虛擬現(xiàn)實技術(shù)來實現(xiàn)。
現(xiàn)存的消防演練軟件很少,而且目前都是針對大型的商場、文物場所等重點大型的機(jī)構(gòu)場所,讓民眾感覺消防演練離自己很遠(yuǎn)。而針對人民群眾的普通場所如個人家庭、小超市、集體宿舍等的還沒有。而這方面的人群占了社會人群的很大一部分。所以開發(fā)一個針對個人、家庭、小超市、集體宿舍等的消防演練系統(tǒng)很有必要。
三維虛擬消防演練系統(tǒng)的實現(xiàn)有諸多難點,第一要有逼真的虛擬環(huán)境和真實的物理碰撞,讓使用者有身臨其境的感覺。目前,廣泛采取的方法是增加虛擬環(huán)境的細(xì)節(jié),如在3Ds Max或者M(jìn)aya中增加細(xì)節(jié),以達(dá)到逼真的效果。但是,增加細(xì)節(jié)會增加場景的存儲量。系統(tǒng)是一個實時系統(tǒng),場景存儲量的較大會嚴(yán)重影響系統(tǒng)性能和使用效果。在場景的逼真性和系統(tǒng)流暢之間要達(dá)到一個平衡點,以達(dá)到一個很好的效果,但是這個平衡點很難把握。
火災(zāi)現(xiàn)場的火勢的模擬是另一個難點,現(xiàn)實中的火災(zāi)是在時間和空間上失去人力控制并形成一定災(zāi)害的燃燒過程。它是可燃物、助燃物(空氣中的氧氣)、點火源三者之間相互作用的結(jié)果。火勢的增長與這三者有直接的關(guān)系。不同的可燃物與另外兩種條件作用會導(dǎo)致火勢增長不同。同時,產(chǎn)生的煙霧也不同??扇嘉镆惨紤]它的數(shù)量和形態(tài),通常會以固態(tài)、氣態(tài)和液態(tài)三種形態(tài)存在。不同的滅火材料對這幾種因素的影響都要考慮。這就要求在實現(xiàn)虛擬火勢模擬,設(shè)計制作火勢增長算法的時候,充分考慮這些因素以保證火勢的逼真實現(xiàn)。
技術(shù)實現(xiàn)要素:
針對上述情況,為克服現(xiàn)有技術(shù)之缺陷,本發(fā)明之目的就是提供一種基于Unity3D的三維虛擬消防演練方法及其系統(tǒng),有效的解決背景技術(shù)中的逼真環(huán)境模擬、火勢動態(tài)變化模擬、逃生者傷害程度模擬的技術(shù)問題。
其解決方案是,步驟如下:
步驟1:采集現(xiàn)實的場景數(shù)據(jù)并以場景數(shù)據(jù)為依據(jù),利用三維建模工具建立三維場景模型并添加相應(yīng)材質(zhì),將三維場景模型導(dǎo)入到Unity3D中,并在Unity3D中為三維場景模型添加真實的燈光系統(tǒng)和物理碰撞屬性;
步驟2:根據(jù)功能和交互需求設(shè)計UI,在UI提供各種增加消防演練技能的提示,使用戶能在不同的虛擬場景中順利實現(xiàn)演練;
步驟3:使用PS的紋理繪制、Unity3D的粒子替換工具以及C#編程,設(shè)計實現(xiàn)基本的火和煙霧的虛擬模擬;
步驟4:以現(xiàn)實人物為依據(jù),利用三維建模工具建立人物角色模型和添加相應(yīng)材質(zhì),并對人物角色模型進(jìn)行各種肢體動作的動畫設(shè)計,將包含有動畫數(shù)據(jù)的人物角色模型導(dǎo)入Unity3D中,使用C#程序控制實現(xiàn)不同虛擬角色在不同情況下的逼真運(yùn)動;
步驟5:使用PS的紋理繪制、Unity3D的粒子替換工具以及C#編程,設(shè)計實現(xiàn)基本的火和煙霧的虛擬模擬;
步驟6:設(shè)計控制火勢、煙霧動態(tài)變化的火勢算法,并利用此算法實現(xiàn)對火勢煙霧的控制
步驟7:設(shè)計能夠體現(xiàn)人物角色受火和煙霧傷害程度的血條,通過血條的動態(tài)變化來反應(yīng)人物角色受到的傷害程度,設(shè)計人物角色受火和煙霧傷害程度的人物傷害算法,根據(jù)人物傷害算法利用C#編程控制血條的動態(tài)變化;
步驟8:將上述步驟1至7設(shè)計形成系統(tǒng)。
優(yōu)選地,場景數(shù)據(jù)包括普通家庭三居室的場景數(shù)據(jù)、小型超市的場景數(shù)據(jù)、集體宿舍的場景數(shù)據(jù),根據(jù)不同的場景數(shù)據(jù)設(shè)計形成家庭演練子系統(tǒng)、小超市演練子系統(tǒng)、集體宿舍演練子系統(tǒng)。
優(yōu)選地,三維場景模型是依據(jù)現(xiàn)實的場景數(shù)據(jù)按照1:1的比例在三維建模工具中構(gòu)建的,在建模過程中以用最少的點制作最完美的細(xì)節(jié)為指導(dǎo)思想。
優(yōu)選地,人物角色包括老年、中年、青少年、兒童,人物角色是以現(xiàn)實中的真人為參考依據(jù)按照1:1的比例構(gòu)建的。
優(yōu)選地,家庭演練子系統(tǒng)、小超市演練子系統(tǒng)、集體宿舍演練子系統(tǒng)均包括界面顯示、系統(tǒng)設(shè)置、消防演練,在進(jìn)行消防演練的同時界面顯示上會展示各種增加消防技能的提示。
本發(fā)明能夠使用戶在虛擬的環(huán)境中,較為真實地去感受消防模擬,增加用戶的消防技能。
附圖說明
圖1為本發(fā)明消防演練系統(tǒng)圖。
圖2為本發(fā)明火勢算法的流程框圖。
圖3為本發(fā)明人物傷害算法的流程框圖。
具體實施方式
以下結(jié)合附圖對本發(fā)明的具體實施方式作進(jìn)一步詳細(xì)說明。
由圖1至圖3給出,一種基于Unity3D的三維虛擬消防演練的方法,其特征在于,步驟如下:
步驟1:采集現(xiàn)實的場景數(shù)據(jù)并以場景數(shù)據(jù)為依據(jù),利用三維建模工具建立三維場景模型并添加相應(yīng)材質(zhì),將三維場景模型導(dǎo)入到Unity3D中,并在Unity3D中為三維場景模型添加真實的燈光系統(tǒng)和物理碰撞屬性。采用三維建模工具M(jìn)aya或3DsMax構(gòu)建三維場景模型,然后使用PS精簡過的真實圖片作為三維場景模型的材質(zhì)貼圖,并將制作的三維場景模型導(dǎo)出FBX格式文件,然后將其導(dǎo)入Unity3D中。并在Unity3D中為三維場景模型添加真實的燈光系統(tǒng)和物理碰撞屬性。對導(dǎo)入Unity3D的場景進(jìn)行真實感和流暢性測試,如果測試效果不好,則重新設(shè)計三維場景模型,在真實感和流暢性之前達(dá)到一個平衡點,經(jīng)過大量的測試后確定最終的場景。
步驟2:根據(jù)功能和交互需求設(shè)計UI,在UI提供各種增加消防演練技能的提示,使用戶能在不同的虛擬場景中順利實現(xiàn)演練;采用多窗口技術(shù)結(jié)合C#進(jìn)行UI設(shè)計,使其豐富靈活。
步驟3:使用PS的紋理繪制、Unity3D的粒子替換工具以及C#編程,設(shè)計實現(xiàn)基本的火和煙霧的虛擬模擬;首先,在PS中設(shè)計制作火焰和煙霧序列貼圖。其次,在Unity3D中使用粒子替換來制作火焰和煙霧模擬。最后,使用C#程序來實現(xiàn)不同物質(zhì)的初始起火效果模擬。
步驟4:以現(xiàn)實人物為依據(jù),利用三維建模工具建立人物角色模型和添加相應(yīng)材質(zhì),并對人物角色模型進(jìn)行各種肢體動作的動畫設(shè)計,將包含動畫數(shù)據(jù)的人物角色模型導(dǎo)入Unity3D中,使用C#程序控制實現(xiàn)不同虛擬角色在不同情況下的逼真運(yùn)動;所采用的三維建模工具是Maya或者3DsMax。
步驟5:使用PS的紋理繪制、Unity3D的粒子替換工具以及C#編程,設(shè)計實現(xiàn)基本的火和煙霧的虛擬模擬;
步驟6:參照圖2,設(shè)計控制火勢、煙霧動態(tài)變化的火勢算法,并利用此算法實現(xiàn)對火勢煙霧的控制;在unity3D引擎中使用C#設(shè)計實現(xiàn)控制火勢、煙霧動態(tài)變化的算法,在設(shè)計算法時充分考慮不同物質(zhì)的特性,各種滅火材料的特性因素。設(shè)計了火燃燒開關(guān)fireSwitch、滅火器啟動開關(guān)mhqSwitch、火勢增加開關(guān)huoshizengjiaswitch、火勢減少模擬控制盒huoshisubswitchCube來實現(xiàn)在各種因素影響下的火勢的動態(tài)控制。
步驟7:參照圖3,設(shè)計能夠體現(xiàn)人物角色受火和煙霧傷害程度的血條,通過血條的動態(tài)變化來反應(yīng)人物角色受到的傷害程度,設(shè)計人物角色受火和煙霧傷害程度的人物傷害算法,根據(jù)人物傷害算法利用C#編程控制血條的動態(tài)變化;在PS中繪制紅色血條貼圖,和黑色底部血條貼圖,導(dǎo)入Unity3D中。選擇火源設(shè)置火勢球和煙霧盒,并設(shè)置添加煙霧傷害開關(guān)SDswitch、火傷害開關(guān)FDswitch、碰撞擴(kuò)散半徑ZLcollider、煙霧擴(kuò)散變化參數(shù)SmokeR、火增長變化參數(shù)FireR、血條受火傷害減少比例參數(shù)XTFSub、血條受煙傷害減少比例參數(shù)XTSSub并初始化,以逼真實現(xiàn)火勢對人影響和煙霧擴(kuò)散。設(shè)計人物角色受火和煙霧傷害程度的人物傷害算法,在Unity3D引擎中使用C#編程實現(xiàn)人物角色逃生時受火和煙霧的模擬并通過血條的動態(tài)變化體現(xiàn)出來,在設(shè)計人物傷害算法時充分考慮逃生的虛擬角色的類型、火勢的大小、室內(nèi)溫度、火源距離、煙霧的濃度因素,逼真實現(xiàn)在不同情況下的逃生模擬;
步驟8:將上述步驟1至7設(shè)計形成系統(tǒng)。
所述場景數(shù)據(jù)包括普通家庭三居室的場景數(shù)據(jù)、小型超市的場景數(shù)據(jù)、集體宿舍的場景數(shù)據(jù),根據(jù)不同的場景數(shù)據(jù)設(shè)計形成家庭演練子系統(tǒng)、小超市演練子系統(tǒng)、集體宿舍演練子系統(tǒng)。
所述三維場景模型是依據(jù)現(xiàn)實的場景數(shù)據(jù)按照1:1的比例在三維建模工具中構(gòu)建的,在建模過程中以用最少的點制作最完美的細(xì)節(jié)為指導(dǎo)思想。
所述人物角色包括老年、中年、青少年、兒童,人物角色是以現(xiàn)實中的真人為參考依據(jù)按照1:1的比例構(gòu)建的。
所述家庭演練子系統(tǒng)、小超市演練子系統(tǒng)、集體宿舍演練子系統(tǒng)均包括界面顯示、系統(tǒng)設(shè)置、消防演練,在進(jìn)行消防演練的同時界面顯示上會展示各種增加消防技能的提示。用戶進(jìn)入系統(tǒng)界面后,根據(jù)界面UI提示選擇不同的子系統(tǒng)進(jìn)入消防演練子系統(tǒng),進(jìn)入子系統(tǒng)后根據(jù)UI的操作提示,對子系統(tǒng)中的火源的類型、位置等進(jìn)行設(shè)置,對人物角色類型、滅火器材進(jìn)行設(shè)置選擇,可以通過鍵盤、鼠標(biāo)或者游戲手柄來操作虛擬角色在系統(tǒng)中的運(yùn)動,并會產(chǎn)生逼真的物理碰撞效果。同時,可以控制虛擬角色操作虛擬場景中的事物與滅火器材。用戶在虛擬消防演練過程中,UI界面會彈出能增加消防技能的提示信息,例如如何操作滅火器、如何進(jìn)行逃生引導(dǎo)提示。使用戶在虛擬演練的同時強(qiáng)化消防技能。
不同的材料火勢增長參數(shù)不同,參數(shù)是經(jīng)過大量的測試模擬得到,越易燃的材料增長參數(shù)大,在單位時間內(nèi)火勢增長快。虛擬角色離火勢范圍越近、時間越長血條遞減越快,反之越慢。虛擬角色處于煙霧的范圍內(nèi)血條遞減,時間越長遞減越快。通過設(shè)置碰撞擴(kuò)散半徑ZLcollider、煙霧擴(kuò)散變化參數(shù)SmokeR來實現(xiàn)判斷虛擬角色是否位于火和煙霧的傷害范圍,當(dāng)虛擬角色現(xiàn)事先設(shè)置好的火勢和煙霧碰撞后,血條會根據(jù)事先設(shè)置的參數(shù)動態(tài)變化。
當(dāng)打開系統(tǒng)后,在不點擊開始演練的情況下,點擊任何火源菜單都不會起火,同時,滅火器的各個部件也不能交互。只有點擊了開始演練或者重新演練后,火燃燒開關(guān)fireSwitch、滅火器啟動開關(guān)mhqSwitch才被激活,根據(jù)事先設(shè)置的不同的材料、不同空間、不同形態(tài)的火勢增長參數(shù)不同,易燃物增長參數(shù)大、空間大氧氣足增長參數(shù)大反之就小?;饎蓍_始動態(tài)增長變化后,當(dāng)和滅火材料碰撞后,火勢根據(jù)滅火材料的多少、噴射位置而動態(tài)的變化。如果噴到火心,火勢減少的快,反之減少慢。
以上所述的實施例并非對本發(fā)明的范圍進(jìn)行限定,在不脫離本發(fā)明設(shè)計構(gòu)思的前提下,本領(lǐng)域所述技術(shù)人員對本發(fā)明的技術(shù)方案作出的各種變形和改進(jìn),均應(yīng)納入本發(fā)明的權(quán)利要求書確定的保護(hù)范圍內(nèi)。