摘 要:從古至今,國內(nèi)外對自然的戀慕與期望,始終藏匿在內(nèi)心的深處。而湖居帶來的悠閑與靜謐,穿越時光與空間,成為人居信仰。使用虛擬現(xiàn)實技術設計的湖景別墅,可為用戶帶來沉浸式、交互式的逼真體驗感,推進臨湖而居、聚水為財?shù)奈幕瘋鞒小N恼聡@臨湖景觀和智能家居兩大方面,基于Unreal Engine 4(UE4)引擎,通過材質(zhì)編程設計逼真的湖泊,并在湖景周圍添加山地和樹林等自然景觀。別墅內(nèi)部還添加了電視機、掃地機器人等人機交互,使用戶可以更好地感受湖景別墅的智能化居住體驗。
關鍵詞:Unreal Engine 4引擎;湖景別墅;材質(zhì)編程;人機交互
中圖分類號:TP391.9 文獻標識碼:A 文章編號:2096-4706(2025)02-0064-05
Design and Key Technology Implementation of Lake View Villa Based on UE4
XIA Zheng
(Changzhou Vocational Institute of Industry Technology, Changzhou 213164, China)
Abstract: From ancient times to the present, the admiration and expectation for nature at home and abroad are always hidden deeply in the heart. The leisure and tranquility brought by the lake habitation, crossing time and space, becomes a belief in human habitation. The lake view villa designed by Virtual Reality technology can bring users the immersive and interactive realistic experience, and promote the cultural inheritance of lakeside habitation and gathering water for wealth. This paper revolves around two aspects of lakeside landscape and smart home to design the realistic lake by material programming based on Unreal Engine 4 (UE4) engine, and adds natural landscapes such as mountains and woods around the lake landscape. The human-computer interactions such as televisions and sweeping robots are also added inside the villa, so that users can better feel the intelligent living experience of the lake view villa.
Keywords: Unreal Engine 4 engine; lake view villa; material programming; human-computer interaction
DOI:10.19850/j.cnki.2096-4706.2025.02.011
0 引 言
UE4(Unreal Engine 4)是由Epic開發(fā)的一款游戲引擎。該引擎被廣泛應用于游戲開發(fā)、虛擬現(xiàn)實(VR)、汽車展廳等領域[1-3]。UE4提供了豐富的功能和工具,包括場景編輯器、材質(zhì)編輯器、動畫編輯器、藍圖可視化編程、物理引擎等,使用戶能夠體驗逼真的游戲場景[4-6]。UE4在游戲畫面和沉浸體驗方面要明顯優(yōu)于Unity3D引擎。UE4畫面效果完全達到3A游戲水準,光照和物理渲染效果也明顯優(yōu)于Unity等不少游戲引擎,這為本文設計出逼真的湖景和智能化的室內(nèi)交互打下了堅實的基礎[7-10]。
本文圍繞臨湖景觀和智能家居兩大方面,將自然和智能完美融合,使用戶享受愜意的湖居時光。該湖景別墅的搭建基于Unreal Engine 4軟件平臺,在Maya建模軟件中設計獨棟別墅、門、燈具、掃地機器人等模型,并導入到UE4中。場景中添加了帶有丘陵和小山坡的地形,并生成了一片樹林。植被還添加了被風吹動后搖曳的效果以及風的聲音,使風吹草動的效果更加逼真。通過材質(zhì)編程在別墅前添加了湖景,湖泊具有清澈見底、波光粼粼的逼真效果。用戶可以在別墅落地窗前觀賞湖景和山林景觀,享受大自然的熏陶。別墅內(nèi)部還添加了開關門、開關電視、開關燈、掃地機器人4種人機交互,使用戶體驗智能化居住體驗。
1 總體設計流程
湖景別墅總體設計效果如圖1所示。從圖中可以看出,遠處是連綿不斷的山坡,通過指數(shù)級高度霧技術,營造了云山霧罩、云煙繚繞的效果。圖中央是導入的獨棟別墅模型,別墅前是通過材質(zhì)編程技術設計出的湖泊,湖泊具有多重流動、奔流不息的效果。另外,湖泊旁邊還有風中搖曳的垂柳,是生成的樹林中的一部分。
別墅內(nèi)部交互總體設計效果如圖2所示。別墅內(nèi)部完成了基礎裝修,并添加了門、沙發(fā)、桌子、茶幾等家具,以及電風扇、電視機、掃地機器人等家電。用戶控制的角色可以通過按鍵,開啟這些家電實現(xiàn)人機交互。
1.1 整體地形搭建
通過高度圖導入地形,地形包含丘陵、小山坡。在地形上選取一片區(qū)域,利用程序化植物生成器生成一片樹林,樹林包含楊柳、野花、野草、石頭等植被。通過材質(zhì)編程,給樹林中的植被添加被風吹動后的搖曳效果。
1.2 湖泊的設計
在材質(zhì)函數(shù)中添加湖泊的灰度圖、粗糙貼圖、法線貼圖,這些貼圖在增強渲染效果、提高性能、節(jié)約資源和減少模型復雜性方面都發(fā)揮著重要作用。通過材質(zhì)編程設計出湖泊的多重水流效果,并設置湖泊的基礎顏色、湖泊深度、反射強度等參數(shù),營造出湖泊清澈見底、碧波蕩漾的逼真效果。
1.3 別墅室內(nèi)人機交互
用戶不僅可以享受優(yōu)美的臨湖景觀,還可以體驗智能化居住體驗。在別墅內(nèi)部添加4種人機交互,包括開關門、開關電視、開關燈、啟動掃地機器人。用戶可以按鍵盤開門,進入別墅。用戶可以按鍵盤打開電視,電視會播放多段視頻。用戶靠近燈具后會顯示文字提示,提醒用戶開燈,用戶可以按鍵盤開燈,調(diào)整室內(nèi)燈光效果。用戶還可以按鍵盤啟動掃地機器人,掃地機器人遇到家具、家電、墻體等障礙后會停止前進,然后改變方向繼續(xù)移動。
2 湖景別墅關鍵技術實現(xiàn)
2.1 地形整體設計
2.1.1 地形導入
在UE4中從選擇模式切換到在地形模式,導入地形高度圖。通過設置導入地形的分段大小和組件數(shù)量,確定地形的大小。在地形縮放選項中,地形Z軸方向的數(shù)值從默認的100調(diào)低到20左右,防止地形中的山坡和丘陵過于銳利。最后點擊導入地形,地形中包含了多處丘陵和小山坡。
2.1.2 生成樹林
首先使用程序化植物工具,要在偏好設置中打開(通用—試驗性功能—程序化植物),或者是搜索Procedural打開程序化植物;其次創(chuàng)建靜態(tài)網(wǎng)格體植物,用來識別靜態(tài)網(wǎng)格體,傳給程序化植物生成器;再次創(chuàng)建程序化植物生成器;最后創(chuàng)建程序化植物體積,規(guī)定生成范圍。
如圖3所示,程序化植物生成器添加了4種植被,包括柳樹、野花、野草、巖石,從而確定樹林中植被的種類。
具體實現(xiàn)方法是,首先導入fbx格式的植被模型,包括柳樹、野花、野草、巖石等。隨后對導入的植被模型分別創(chuàng)建靜態(tài)網(wǎng)格體植物,設置植被的大小和碰撞屬性。最后將上述創(chuàng)建的柳樹、野花、野草、巖石對應的靜態(tài)網(wǎng)格體植物添加到程序化植物生成器中,點擊重新模擬按鈕,一鍵生成包含上述植被的樹林。
2.1.3 添加風吹草動的效果
首先添加材質(zhì)參數(shù)集,設置風的強度、風速和風的權重三個參數(shù),其中風的強度設置為0.05,風速設置為0.2,風的權重設置為3。然后添加材質(zhì)函數(shù),如圖4所示,將風的強度、風速和風的權重三個參數(shù)分別連接到SimpleGrassWind節(jié)點的WindIntensity屬性、WindSpeed屬性和WindWeight屬性,完成材質(zhì)的搖曳效果。
最后打開植被不同部位的材質(zhì)球,例如樹葉、花朵、樹干等。如圖5所示,將創(chuàng)建好的材質(zhì)函數(shù)和權重值10相乘,乘積連接到植被材質(zhì)球的世界場景偏移屬性,使植被的樹葉、花朵、草等部位產(chǎn)生風吹草動的效果。
2.2 湖泊的設計
2.2.1 基礎顏色設置
創(chuàng)建材質(zhì)球,首先設置河流的基礎顏色,分別設置R、G、B三個通道的值為0、0.05、0.77,達到深藍色的效果。
2.2.2 水流效果設置
如圖6所示,選擇水波紋的法線貼圖,使用Panner節(jié)點進行制作UV動畫效果。通過Panner節(jié)點,分兩個組來進行分別調(diào)節(jié)不同軸向的移動速度和紋理大小,這樣可以讓水波紋產(chǎn)生一些隨機變化。分別設置灰度貼圖、粗糙貼圖、法線貼圖X和Y方向的偏移速度, 其中X方向速度設置為0.01,Y方向速度位置為0.02,模擬水流在不同方向上的流速。同時,為了營造不同方向的水流匯聚的效果,繼續(xù)新增一個Panner節(jié)點,設置和上一個Panner節(jié)點完全不同的X和Y方向的偏移速度,并通過Add節(jié)點將上述兩個Panner節(jié)點進行疊加,達到多重水流匯集的效果。
把材質(zhì)球的透明模式打開,同時開啟半透明體積,同時激活半透明和法線通道。用DepthFade節(jié)點來制作水面的透明度信息,該節(jié)點可以根據(jù)場景深度信息來控制水的透明度,比如在河岸邊水比較淺的地方,水會比較清澈,在河中心顏色會比較深。
2.2.3 透明度設置
如圖7所示,通過Depth Fade節(jié)點設置湖泊的透明度和深度距離,其中透明度參數(shù)設置為1.5,深度距離參數(shù)設置為10,營造湖泊清澈見底的效果。
2.2.4 折射設置
使用Fresnel節(jié)點設置折射指數(shù),將環(huán)境光遮擋指數(shù)設置為1.5,模擬光照反射。
2.3 別墅基本交互
2.3.1 開關門交互
如圖8所示,導入門的模型,并給門添加盒體碰撞,當用戶控制的角色進入門的盒體觸發(fā)范圍時,會顯示提醒用戶開門的文字提示,并啟用鍵盤輸入,用戶可以按鍵盤E開門。通過時間軸節(jié)點,添加兩個關鍵幀。第一個關鍵幀時間設置為0秒,對應的值也為0;第二個關鍵幀時間設置為3秒,對應的值為90,也就是門在3秒的時間內(nèi)轉(zhuǎn)動的角度為90度,完成開門。通過FlipFlop節(jié)點實現(xiàn)開門關門的交替執(zhí)行,用戶在完成開門后,再按鍵盤E可完成關門操作。最后,將時間軸輸出的軌道連接到設置相對旋轉(zhuǎn)節(jié)點的Z軸,門繞著Z軸旋轉(zhuǎn)90度。
2.3.2 開關電視交互
準備視頻資源:首先,將MP4格式的視頻文件放置在項目的“Content/Movies”文件夾中。
創(chuàng)建媒體播放器:在UE4編輯器中,通過右鍵點擊內(nèi)容瀏覽器并選擇“Media”gt;“Media Player”來創(chuàng)建一個媒體播放器。
配置媒體播放器:打開媒體播放器設置,選擇視頻源。對于本地視頻,可以使用“FileMediaSource”并指定視頻文件在硬盤上的路徑。如果需要播放視頻流,則可以使用“StreamMediaSource”并輸入視頻流的URL。
創(chuàng)建媒體紋理和材質(zhì):在配置媒體播放器的同時創(chuàng)建媒體紋理(MediaTexture),這是視頻幀將被渲染到的紋理。通過媒體紋理創(chuàng)建材質(zhì),并將該材質(zhì)應用于電視機模型的屏幕材質(zhì)上,以顯示視頻幀。
集成到電視機模型中:將之前創(chuàng)建的材質(zhì)應用于電視機模型上,以顯示視頻幀。此外,可以添加控制按鈕(如播放/暫停按鈕)并編寫相應的藍圖邏輯來控制視頻的播放。
如圖9所示,在事件圖表中添加如下節(jié)點,通過打開源節(jié)點,用戶按鍵盤1可以打開電視機,使電視機模型播放導入的電視視頻。
2.3.3 開關燈交互
導入燈具模型,在燈具上方添加光源Spot Light。如圖10所示,給光源添加盒體碰撞,當用戶控制的角色進入門的盒體觸發(fā)范圍時,啟用鍵盤輸入,用戶可以按鍵盤E開燈,同時,門的前方出現(xiàn)提示語,提醒用戶按鍵盤E開門。當用戶離開盒體觸發(fā)范圍時,提示語消失并禁用鍵盤輸入,用戶不能再通過按鍵盤E開門。在盒體觸發(fā)范圍內(nèi),可視性節(jié)點的New Visibility選項上打鉤,將光源Spot Light設置為可見,完成開燈操作。離開盒體觸發(fā)范圍后,可視性節(jié)點的New Visibility選項上不打鉤,將光源Spot Light設置為不可見,完成關燈操作。通過FlipFlop節(jié)點實現(xiàn)開關燈的交替執(zhí)行,用戶在完成開燈后,再按鍵盤E可完成關燈操作。
2.3.4 掃地機器人交互
如圖11所示,創(chuàng)建掃地機器人藍圖類,在設置場景位置節(jié)點的Sweep選項上打勾,如果在位移過程中遭遇家具家電等障礙,掃地機器人會中途停止位移。添加Bool類型變量,命名為是否啟動。如果掃地機器人當前是啟動的狀態(tài),則設置該變量為False,如果掃地機器人當前不是啟動的狀態(tài),則設置該變量為True。
如圖12所示,在掃地機器人藍圖類添加自定義事件,并根據(jù)bool類型變量的值,切換是否啟動變量的狀態(tài)。如果是啟動的狀態(tài),則切換為False,如果不是啟動的狀態(tài),則切換為True,從而實現(xiàn)掃地機器人開關的切換。
如圖13所示,在角色藍圖類添加掃地機器人的對象引用,并調(diào)用掃地機器人藍圖類中定義的啟動事件,完成藍圖通信。當用戶控制的角色按鍵盤1時,觸發(fā)啟動事件,掃地機器人開始位移。
3 結 論
本文使用了地形材質(zhì)編程技術和人機交互藍圖編程技術,實現(xiàn)了優(yōu)美如畫的臨湖景觀和智能化的家居體驗。在搭建樹林的過程中使用了程序化植物生成器,該技術可以快速生成大面積的原始森林,大面積生成其他網(wǎng)格體,就像是地形植被的延伸功能。在設計湖泊的過程中采用了多重Panner節(jié)點疊加的技術,使湖泊更加清澈見底、水光瀲滟。在設計人機交互的過程中重點采用了盒體碰撞技術和時間軸技術,角色進入觸發(fā)范圍后,可以在設置的時間內(nèi)完成相應的交互。
隨著城市化進程和生活節(jié)奏的加快,人們更渴望擁抱自然,領略寧靜與繁華的居住體驗。本文提出的湖景別墅設計方案,將自然與現(xiàn)代完美融合,讓用戶既能享受湖居的愜意時光,又能享受智能家居的交互體驗。未來湖景高品質(zhì)住宅的發(fā)展和應用空間會更加廣闊。臨湖而居,享受夢幻湖景的理念將會成為不少人的人生追求。
參考文獻:
[1] SANDERS A. An Introduction to Unreal Engine 4 [M].New York:A K Peters/CRC Press,2016.
[2] 吳敬兵,范濤.基于UE4的液位過程控制實驗平臺的開發(fā) [J].自動化與儀表,2020,35(9):22-25.
[3] 馮騁凌.基于UE4虛擬現(xiàn)實交互技術應用的室內(nèi)感知覺研究 [D].太原:山西大學,2020.
[4] 陳緒寧,鄭建英,胡勇,等.基于UE4的火星地表環(huán)境視景仿真 [J].空間控制技術與應用,2021,47(6):77-84.
[5] 劉廷言.基于UE4引擎李冰紀念館虛擬展示系統(tǒng)的設計與實現(xiàn) [J].現(xiàn)代信息科技,2023,7(6):38-40.
[6] 李楠,連淦,段林濤.基于UE4藍圖的火災逃生體驗系統(tǒng)關鍵技術研究 [J].廊坊師范學院學報:自然科學版,2020,20(1):15-18.
[7] 田濤,孫忠云,付戰(zhàn)平,等.基于UE4引擎的海洋虛擬可視化分析 [J].電子測試,2020(17):135-136.
[8] 李新,李飛,方世巍,等.基于UE4的井下變電所巡檢機器人數(shù)字孿生系統(tǒng) [J].煤礦安全,2021,52(11):130-133.
[9] 丁浩.基于UE4的道交事故車輛定損VR系統(tǒng)設計與實現(xiàn) [D].南昌:江西財經(jīng)大學,2024.
[10] 渠垚.基于UE4引擎的數(shù)字博物館的交互設計研究 [J].建筑與文化,2024(6):31-33.
[11] 雷一鳴,陳雨人,汪凡.基于UE4的在線駕駛仿真系統(tǒng)設計與實現(xiàn) [J].計算機測量與控制,2022,30(2):179-185.
作者簡介:夏政(1994—),男,漢族,江蘇常州人,助教,碩士,研究方向:虛擬現(xiàn)實技術。
收稿日期:2024-06-15