查雁南
摘? 要: 在物聯(lián)網(wǎng)智能家居設(shè)備裝配過程中容易因誤操作而造成設(shè)備損壞,甚至引起電網(wǎng)事故、人身傷亡事故、財(cái)產(chǎn)損失慘重等問題。為了解決這個(gè)問題,設(shè)計(jì)了物聯(lián)網(wǎng)智能家居虛擬裝配交互系統(tǒng)。該系統(tǒng)使用Unity3D實(shí)時(shí)渲染引擎進(jìn)行三維場景展示,交互端則使用Unity3D的物理引擎模擬事件觸發(fā),選用具有行業(yè)標(biāo)準(zhǔn)的物聯(lián)網(wǎng)數(shù)據(jù)庫來控制智能家居的實(shí)時(shí)場景交互。通過多角度鏡頭和實(shí)時(shí)參數(shù)調(diào)節(jié),用戶在三維引擎操作端可實(shí)時(shí)查看智能家居安裝的進(jìn)度和交互效果。
關(guān)鍵詞: Unity3D; 物聯(lián)網(wǎng); 智能家居; 虛擬現(xiàn)實(shí)
中圖分類號(hào):TP31? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? 文章編號(hào):1006-8228(2021)12-45-03
Abstract: In the assembly process of IoT smart home equipment, it is easy to cause damage to the equipment due to misoperation, causing grid accidents, personal injuries and deaths, and heavy property losses. In order to solve this problem, this paper designs a virtual assembly interactive system for IoT smart home. The system uses Unity3D's real-time rendering engine to display three-dimensional scenes, and the interactive end uses Unity3D's physics engine to simulate event triggers, and selects industry-standard Internet of Things database to control the real-time scene interaction of smart homes. Through multi-angle lens and real-time parameter adjustment, users can view the progress and interactive effects of smart home installation in real time on the 3D engine operating terminal.
Key words: Unity3D; IoT; smart home; VR
0 引言
2005年在世界峰會(huì)上正式提出的“物聯(lián)網(wǎng)”(IoT,The Internet of Things)[1]這一概念宣告著“物聯(lián)網(wǎng)”時(shí)代的正式來臨。然而當(dāng)前的物聯(lián)網(wǎng)行業(yè)諸侯割據(jù)并沒有形成統(tǒng)一的標(biāo)準(zhǔn),物聯(lián)網(wǎng)環(huán)境的極度不穩(wěn)定,導(dǎo)致了上層應(yīng)用服務(wù)和硬件系統(tǒng)的設(shè)計(jì)分割,物聯(lián)網(wǎng)應(yīng)用方案不能在硬件系統(tǒng)上進(jìn)行驗(yàn)證,從而使現(xiàn)有的物聯(lián)網(wǎng)解決方案在設(shè)計(jì)后很少落地實(shí)施。隨著以Unity3D為代表的三維游戲引擎日漸成熟,使得以游戲引擎來構(gòu)建可視化仿真提供了可能[2],利用游戲引擎構(gòu)建虛擬現(xiàn)實(shí)場景來對(duì)物聯(lián)網(wǎng)解決方案進(jìn)行測試,一方面對(duì)物聯(lián)網(wǎng)解決方案進(jìn)行了全方面的展示,另一方面舍棄了物理環(huán)境的需求,解決了物聯(lián)網(wǎng)中硬件部署與軟件應(yīng)用的斷層問題。
Unity3D是一款支持建筑可視化、三維動(dòng)畫、視頻游戲等多平臺(tái)綜合游戲開發(fā)的軟件,廣泛的應(yīng)用于教育、游戲、機(jī)械、旅游、軍事上。主要應(yīng)用模式是與虛擬現(xiàn)實(shí)技術(shù)相結(jié)合。由于人類對(duì)家居智能化、個(gè)性化、舒適化等的要求日益增多,二維設(shè)計(jì)作品已遠(yuǎn)遠(yuǎn)無法滿足。針對(duì)上述問題,本文將智能家居與虛擬現(xiàn)實(shí)技術(shù)相結(jié)合,設(shè)計(jì)了物聯(lián)網(wǎng)智能家居虛擬裝配交互系統(tǒng),該系統(tǒng)不僅可以滿足客戶的個(gè)性化要求,同時(shí)也縮短了智能家居的開發(fā)周期、降低了建造成本,還可以減少智能家居產(chǎn)品在安裝調(diào)試過程中產(chǎn)生的損耗,為用戶的家居個(gè)性化安裝提供便利。
1 設(shè)計(jì)思路
系統(tǒng)采用了Unity3D中的實(shí)時(shí)渲染、實(shí)時(shí)交互等關(guān)鍵技術(shù),結(jié)合C#語言程序的編寫實(shí)現(xiàn)了智能家居多個(gè)模塊的物聯(lián)網(wǎng)設(shè)備安裝虛擬仿真。為了提升整個(gè)場景的視覺交互效果,運(yùn)用了智能接線、無極參數(shù)調(diào)節(jié)、多層次細(xì)節(jié)技術(shù)、基于物理的渲染技術(shù)(PBR)等。在開發(fā)過程一共分為四個(gè)過程:場景設(shè)計(jì)、素材采集、模型創(chuàng)建、仿真程序交互[3]。
2 場景設(shè)計(jì)
信息工程學(xué)院與海爾集團(tuán)是長期的校企合作伙伴,學(xué)院物聯(lián)網(wǎng)教師和海爾物聯(lián)網(wǎng)工程師以及仿真開發(fā)人員多次交流探討制定了最初的場景設(shè)計(jì)方案,即將最常用的智能家居系統(tǒng)的安裝虛擬化。該場景包括:智能家居系統(tǒng)網(wǎng)關(guān)安裝設(shè)置、智能門鎖的基本安裝、智能窗簾的基本安裝、智能家居智能控制面板的基本安裝、智能家居的安裝和配置實(shí)訓(xùn)模塊。
其中,智能家居系統(tǒng)網(wǎng)關(guān)安裝設(shè)置包括:認(rèn)識(shí)智能家居系統(tǒng)網(wǎng)關(guān);智能家居網(wǎng)關(guān)安裝配置;智能家居網(wǎng)關(guān)測試。智能門鎖的基本安裝包括:智能門鎖的相關(guān)基礎(chǔ)知識(shí);完成智能門鎖的安裝;對(duì)安裝好的智能門鎖進(jìn)行測試。智能窗簾的基本安裝包括:智能窗簾的相關(guān)基礎(chǔ)知識(shí);完成智能窗簾的安裝;對(duì)安裝好的智能窗簾進(jìn)行測試。智能家居智能控制面板的基本安裝包括:智能家居智能控制面板的相關(guān)基礎(chǔ)知識(shí);完成智能家居智能控制面板的安裝;對(duì)安裝好的智能家居智能控制面板進(jìn)行測試。智能家居的安裝和配置實(shí)訓(xùn)模塊包含:能進(jìn)行多種智能家居環(huán)境的安裝,包括智能門鎖、智能窗簾、智能燈光等等的安裝;安裝完成各個(gè)模塊的線路連接;根據(jù)智能家居環(huán)境的要求進(jìn)行智能面板的配置;對(duì)智能家居系統(tǒng)的測試和調(diào)制。
3 素材采集
根據(jù)以上的場景設(shè)計(jì),建模人員去到海爾集團(tuán)的物理網(wǎng)生產(chǎn)基地,對(duì)需要模擬的智能家居進(jìn)行素材的采集,其中,我們使用攝像設(shè)備拍攝了所有設(shè)備的標(biāo)準(zhǔn)安裝流程。使用單反拍攝了所有智能家居實(shí)物的外觀,并通過卡尺、卷尺等測量工具測得被拍攝物體的具體尺寸,誤差精確到1mm,力求在虛擬化過程中,保證安裝尺寸和流程的準(zhǔn)確性。
4 模型的創(chuàng)建
物聯(lián)網(wǎng)智能家居安裝項(xiàng)目包括:客廳、臥室、廚房、洗手間等。物聯(lián)網(wǎng)配置流程包括:亮度可調(diào)節(jié)燈具、不可調(diào)節(jié)燈具、網(wǎng)關(guān)、插板、三口插頭、作業(yè)臺(tái)、Q6智能面板、P4智能面板、窗簾滑動(dòng)裝置、窗簾信號(hào)接收與控制設(shè)備、電腦顯示器、路由器(包含電源)、剝線鉗、螺絲刀、網(wǎng)線以及水晶頭、正常的紅藍(lán)線路、膠布等。因?yàn)榘P洼^多,所以前期工作以客廳為主,家居體驗(yàn)應(yīng)該包含一整套完整家具,并與物聯(lián)網(wǎng)緊密融合。其中,客廳的模型包括:燈具大屏電視(包含遙控器)、沙發(fā)、桌子、窗簾、Q6與P4面板、智能手機(jī)(移動(dòng)終端)、墻壁裝飾(時(shí)鐘、畫框等)、空調(diào)、垃圾桶、煙灰缸、茶具或者飲水道具、掃地機(jī)器人、冰箱、電話、音響等。
在獲得原始的采集素材之后,就需要建模人員根據(jù)這些素材進(jìn)行模型的創(chuàng)建。依照采集素材的尺寸和外觀,使用多邊形建模技術(shù)制作出初始的模型即低模[4],然后使用硬表面建模技術(shù)制作出初始模型的加線模型即高模,將制作好的低模和高模導(dǎo)入到PBR材質(zhì)貼圖制作工具中生成相應(yīng)的凹凸、ao、曲率、位置、厚度等貼圖,然后根據(jù)素材的外觀制作出高仿真度的智能家居模型(圖1),在制作的過程中需要仔細(xì)辨別模型的材質(zhì)類型,添加相應(yīng)的基礎(chǔ)PBR材質(zhì)。在三維場景中相近的視覺效果的材質(zhì),比如某些金屬和塑料材質(zhì)在特定的角度有著不同的反射和折射效果,如果混淆使用就會(huì)大大降低最終制作出來的效果。由于安裝的設(shè)備都是比較新的,不需要特別的進(jìn)行做舊處理。材質(zhì)制作完成后導(dǎo)出Albedo、Metallic、Normal這三張適用于Unity3D的PBR材質(zhì)系統(tǒng)的貼圖。
5 仿真程序交互
將創(chuàng)建好的模型場景和貼圖導(dǎo)入到Unity3D引擎之后,就可以開始仿真程序的交互設(shè)計(jì)。為了更加高效的完成交互,在引擎的編寫代碼過程中,使用了Itween、ShaderGraph、Obi、TextMesh Pro、New UI Widgets等功能插件[5]。
5.1 Itween功能插件的使用
Itween能高效管理各種動(dòng)畫,大大加快一些常用的位移和旋轉(zhuǎn)動(dòng)畫的制作效率。比如A物體要從B位置移動(dòng)到C位置,常用的方法是手動(dòng)制作關(guān)鍵幀,在B位置刻一個(gè)關(guān)鍵幀,然后將物體移動(dòng)到C位置再刻一個(gè)關(guān)鍵幀,并在動(dòng)畫窗口調(diào)節(jié)該動(dòng)畫的持續(xù)時(shí)間。而使用Itween插件則省去了在動(dòng)畫窗口手動(dòng)刻幀的步驟,直接設(shè)置需要移動(dòng)的Souce物體,再設(shè)置目標(biāo)的位置PreparePosition,最后設(shè)置動(dòng)畫的時(shí)間2f秒就完成了一個(gè)位移動(dòng)畫。這種直接設(shè)置參數(shù)的方法比在動(dòng)畫窗口手動(dòng)刻幀要方便快捷得多。實(shí)現(xiàn)代碼:
IEnumerator StartMove()
{? iTween.MoveTo(Souce, PreparePosition, 2f);
iTween.RotateTo(Souce, Target.eulerAngles, 2f);
yield return new WaitForSeconds(2f);
iTween.MoveTo(Souce, Target.position, 1f);
}
5.2 ShaderGraph功能插件的使用
制作交互的特殊效果上使用了用了官方推薦的圖形化Shader插件ShaderGraph,與傳統(tǒng)的材質(zhì)設(shè)計(jì)通過代碼編輯器編寫glsl/hlsl[6]相比有兩點(diǎn)優(yōu)勢:不需要學(xué)習(xí)特殊的材質(zhì)編寫語言;可實(shí)時(shí)查看材質(zhì)效果(圖2所示)。通過使用ShaderGraph特效材質(zhì)制作插件完成了設(shè)備部件連接和交互觸發(fā)等需要操作提示或效果提示的材質(zhì)效果,這也是使用基礎(chǔ)材質(zhì)球所無法完成的。
5.3 Obi功能插件的使用
在制作交互的過程中遇到的最大問題就是如何制作實(shí)時(shí)的線路連接模擬,傳統(tǒng)的線路連接模擬使用的是三維動(dòng)畫點(diǎn)緩存來模擬。但其存在制作過程復(fù)雜、緩存文件大、無法自由切換等缺點(diǎn)[7],而使用Obi繩索線纜制作插件可以完美解決這些問題,不需要任何緩存,能實(shí)時(shí)模擬電線的各種連接變形動(dòng)畫,直觀而且便捷(圖3所示)。缺點(diǎn)就是占用更多的CPU算力,而在本項(xiàng)目開發(fā)中,線路運(yùn)算并不是特別復(fù)雜,最大負(fù)載時(shí)CPU占用率在30%左右,完全不影響正常使用。
有了以上這些功能插件的幫助,大大縮減了整個(gè)項(xiàng)目的制作周期,最后完成的效果也符合前期的設(shè)計(jì)要求,操作體驗(yàn)流程流暢不卡頓,制作的特效材質(zhì)的提示效果也恰到好處,最終完成的操作界面如圖4所示。
6 結(jié)束語
采用unity3D引擎制作的該虛擬仿真系統(tǒng)具有“虛擬性”、“安全性”、“低成本”、“復(fù)用性”、“智能性”等優(yōu)點(diǎn)。而實(shí)時(shí)的電線連接反饋以及各種燈光和開關(guān)的特殊效果展現(xiàn),更能幫助技術(shù)人員隨時(shí)身臨其境體驗(yàn)真實(shí)的物聯(lián)網(wǎng)設(shè)備的安裝。
參考文獻(xiàn)(References):
[1] 鐘書華.物聯(lián)網(wǎng)演義(二)——《ITU互聯(lián)網(wǎng)報(bào)告2005:物聯(lián)網(wǎng)》[J].物聯(lián)網(wǎng)技術(shù),2012.2(6):87-89
[2] 潘舒潔.基于Unity3D的虛擬現(xiàn)實(shí)交互系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].數(shù)碼世界,2020.12:250-251
[3] 王斌.物聯(lián)網(wǎng)專業(yè)數(shù)字電子技術(shù)虛擬仿真教學(xué)[J].福建電腦,2021.37(2):131-133
[4] 陳小飛,陳曉君.基于地鐵軌道交通環(huán)控系統(tǒng)的虛擬現(xiàn)實(shí)與仿真關(guān)鍵技術(shù)研究[J].數(shù)字技術(shù)與應(yīng)用,2020.38(3):170-172,174
[5] 張娟.基于虛擬現(xiàn)實(shí)和物聯(lián)網(wǎng)技術(shù)的實(shí)驗(yàn)室漫游系統(tǒng)[J].數(shù)字技術(shù)與應(yīng)用,2018.36(12):45,47
[6] 張福峰,王敏,金會(huì)賞.基于Unity3DUGUI動(dòng)態(tài)材質(zhì)修改的實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2020.16(25):218-219
[7] 關(guān)媛元.基于緩存系統(tǒng)的影視級(jí)別群組動(dòng)畫制作方法的研究及實(shí)現(xiàn)[D].東北師范大學(xué),2015.