交互組件

控制器藍圖

不同控制器的實現通過組件完成,便于在演員中(zhōng)進行擴展或替換。

 

父組件類 BP_ControllerComponent(位于 SnapdragonSpacesSamples Content > SnapdragonSpaces > Common > Core > Components)負責訪問注視控制器和指針控制器。該藍圖為(wèi)管理(lǐ)交互提供了基礎,并包含一些可(kě)以在所有(yǒu)派生控制器中(zhōng)由開發者自定義的選項。

 

● 自動激活(Auto Activate):指示控制器是否默認啓用(yòng)。

 延遲啓動(Delay Start):應用(yòng)程序啓動或加載新(xīn)地圖時,交互啓用(yòng)前的等待時間。

● 标簽組件(Tag Component):父組件(來自 pawn 角色)上的标簽名(míng)稱,以便後續在控制器組件實現中(zhōng)進行引用(yòng)。

 

以下是與控制器組件交互或創建自定義子控制器組件時需要注意的一些函數:

 

● Start:此事件應僅在首次初始化控制器時調用(yòng),不支持重寫。最好從 Begin Play 節點調用(yòng)。

● Start_Implementation:此函數負責每個子組件的具(jù)體(tǐ)初始化。

● Set Default Controller:配置組件在初始化後是否應被激活。因此,這個函數僅在 Start 函數之前調用(yòng)時才有(yǒu)意義。

● Enable:啓用(yòng)組件。

● Disable:禁用(yòng)組件。

● Is Enable:返回組件是否已啓用(yòng)。

● Press/Release Button:使用(yòng) Widget Interaction Component 管理(lǐ)按鈕交互。

● Is Over Interactable Widget:返回 Widget Interaction Component 是否指向一個可(kě)交互的 Widget。




提示!

在 XR 項目的控制器中(zhōng),關鍵組件是 Widget Interaction Component。所有(yǒu)組件或派生組件應該僅根據控制器的類型來建立交互規則。有(yǒu)關該組件的基本信息,請參考 Unreal 文(wén)檔


注視控制器


注視控制器 BP_GazeControllerComponent(位于 SnapdragonSpacesSamples Content > SnapdragonSpaces > Common > Core > Components)負責管理(lǐ)射線(xiàn)投射和與場景中(zhōng) Widget 的交互,以及延遲交互功能(néng)和指針的“點擊”功能(néng)。


注視指針限制

目前,注視指針隻能(néng)與場景中(zhōng)的 Widget 進行交互,無法與 3D 演員進行交互,這與 Pointer Controller 不同,後者可(kě)以與 Widget 和 3D 演員都進行交互。

 

開發者可(kě)以自定義的選項包括:

● Move Reticle to Hit:啓用(yòng)此選項後,當用(yòng)戶注視一個交互對象時,瞄準點會移動到該對象的交互位置。

● Timer Duration:用(yòng)戶需要注視某個對象多(duō)長(cháng)時間才能(néng)選擇它。

● Default Distance:當啓用(yòng) bMoveReticleToHit 時,設置注視控制器的距離。

● Vertical Bias:瞄準點的垂直位置,0 表示屏幕中(zhōng)心,1 表示屏幕頂部,-1 表示屏幕底部。

● Reticle Outer Ring:外環瞄準點的材質(zhì),如果設置為(wèi) NULL,則表示外環被禁用(yòng)。此功能(néng)在 SDK 版本 0.15.0 中(zhōng)已棄用(yòng)。

 

圖片11.png

 

最後,樣本中(zhōng)用(yòng)于指向世界的瞄準點由一個隐藏的 Widget Component 和一個 Stereo Layer 組件組成。所有(yǒu)與注視相關的組件都會使用(yòng)組件标簽(gaze)進行區(qū)分(fēn),控制器組件假設注視的 Widget Interaction Component 始終是其他(tā)必要組件的父組件。

 

● Stereo Layer:為(wèi)了避免指針出現抖動,建議在立體(tǐ)層中(zhōng)渲染紋理(lǐ),要使其正常工(gōng)作(zuò),需要啓用(yòng) Live Texture,并将 Stereo Layer Shape 設置為(wèi) Quad Layer。請注意,與其他(tā)組件不同,Unreal會将此組件的變換值解釋為(wèi)相對于相機,而不是相對于父組件或附加的 Actor。函數 Update Reticle Position(在組件藍圖中(zhōng))将 Widget 移動到交互擊中(zhōng)位置,并計算相對于相機的位置以用(yòng)于立體(tǐ)層。然而,大小(xiǎo)必須使用(yòng) Quad Size 變量來定義,而不是使用(yòng)縮放。此外,由于控制器組件會将 Widget Component 的渲染複制到立體(tǐ)層中(zhōng),因此紋理(lǐ)不需要初始化。

 

圖片12.png


● Widget Component:此組件被隐藏,因為(wèi)立體(tǐ)層負責渲染瞄準點。可(kě)以在 WBP_GazePointer 資産(chǎn)中(zhōng)修改原始紋理(lǐ)(位于 SnapdragonSpacesSamples Content > SnapdragonSpaces > Common > UI)。它使用(yòng)靜态材質(zhì)(MI_Reticle_Inner)來渲染内環,而外環則使用(yòng)動态材質(zhì)(MI_Reticle_Outer),這個動态材質(zhì)定義了一個參數(Percentage),用(yòng)于實現瞄準點交互的視覺效果。

 

指針控制器

指針控制器的主要功能(néng)在 BP_PointerControllerComponent 中(zhōng)實現(位于 SnapdragonSpacesSamples Content > SnapdragonSpaces > Common > Core > Components)。它的工(gōng)作(zuò)原理(lǐ)與其他(tā)控制器類似,但初始化過程會根據設備是否支持 3DoF 或 6DoF 進行調整。使用(yòng)微軟交互配置文(wén)件的控制器會自動作(zuò)為(wèi) 3DoF 控制器啓用(yòng),而使用(yòng) Oculus 交互配置文(wén)件的控制器會自動作(zuò)為(wèi) 6DoF 控制器啓用(yòng),這些設置都在 Motion Controller Component 中(zhōng)完成。

 

圖片13.png


請注意,當使用(yòng) 3DoF 控制器時,必須選擇左手。對于 6DoF 控制器,選擇的手可(kě)以是左手或右手,這取決于控制器設計的手型。此外,開發者還可(kě)以選擇哪個控制器處理(lǐ)交互。

 

Spawn Controller 函數會生成一個 BP_PointerController 類的子 Actor,該子 Actor 是通過 Motion Controller Class 變量設置的。

 

BP_PointerController Actor(位于 SnapdragonSpacesSamples Content > SnapdragonSpaces > Common > Placeable)已準備好管理(lǐ)每個獨立的控制器。

 

Motion Controller Component 作(zuò)為(wèi)根組件的子組件添加,用(yòng)于管理(lǐ)每個控制器。該組件的 Visualization 部分(fēn)允許在虛拟世界中(zhōng)渲染一個 3D 模型,以跟随現實世界中(zhōng)控制器的移動,隻需啓用(yòng) Display Device Model 選項,如果開發者希望根據配置文(wén)件顯示每個設備的默認網格,可(kě)以在 Display Model Source 選項中(zhōng)選擇 OpenXR。否則,開發者可(kě)以選擇 Custom 來進行自定義,并在 Custom Display Mesh 中(zhōng)添加網格。最後,在 Motion Controller 部分(fēn),開發者應設置輸入類型。

 

圖片14.png

 

隻有(yǒu)在啓用(yòng)交互的情況下,Motion Controller Component 必須附加以下組件:Widget Interaction Component,用(yòng)于準确跟蹤控制器在現實世界中(zhōng)的移動,以及一個 Static Mesh Component(在示例中(zhōng)稱為(wèi) Laser Pointer Mesh),用(yòng)于可(kě)視化指針。不論是否啓用(yòng)交互,如果使用(yòng)的是 6DoF 設備,則父組件需要附加一個 Child Actor Component,使用(yòng) BP_XRControllerRepresentation(位于 SnapdragonSpacesSamples Content > SnapdragonSpaces > Common > Placeable),以顯示控制器及其動畫。

 

手部追蹤控制器

手部追蹤控制器 BP_HandTrackingControllerComponent(位于 SnapdragonSpacesSamples Content > SnapdragonSpaces > Common > Core > Components)負責生成和啓用(yòng)使用(yòng)手部追蹤進行遠(yuǎn)程交互所需的 Actor。這些 Actor 将自動處理(lǐ)交互。該控制器僅在項目設置中(zhōng)的手部追蹤功能(néng)(位于 Project Settings > Snapdragon Spaces plugin)被啓用(yòng)時才會激活。此控制器支持與場景中(zhōng)的 Widget Actor 以及可(kě)以通過手部追蹤進行交互的 Actor 進行交互。有(yǒu)關手部追蹤交互的詳細信息,請參考手部追蹤示例


圖片15.png

 

輸入快捷方式

用(yòng)于輸入操作(zuò)的按鈕:


主機控制器

右側 XR 控制器

左側 XR 控制器

選擇

觸摸闆點擊

右側觸發按鈕

左側觸發按鈕

凝視/指針切換

菜單按鈕

左側菜單按鈕

觸摸闆

觸摸闆

左側搖杆

錨點位置确認

觸摸闆點擊

任何觸發按鈕

任何觸發按鈕


圖片16.png


UI用(yòng)戶界面

世界中(zhōng)的 3D 小(xiǎo)部件必須使用(yòng)藍圖 BP_3DWidget 創建(位于 SnapdragonSpacesSamples Content > Snapdragon > Common > UI),并在 WidgetComponent 中(zhōng)定義 UI。為(wèi)了與凝視控制器或指針控制器配合使用(yòng),該藍圖必須是 BP_3DWidget 的子類。

 

觸覺反饋

要使用(yòng)觸覺反饋,Snapdragon Spaces 提供了 SetSpacesHapticsByValue 函數,可(kě)以在藍圖中(zhōng)調用(yòng)。此函數需要以下參數:玩家控制器、頻率(Hz)、幅度(Cm)、持續時間(秒(miǎo))以及控制器的手部。


圖片17.png

图书馆的女友 日韩免费视频 媚欢(出轨高H) 性少妇VIDEOXXX欧美69 和风男做的顺丰快递小哥 三年片在线观看大全国语 CSGO高清视频免费播放 巜趁夫不在给给公侵犯了一天 办公室H荡乳欲伦交换小喜 漂亮人妻洗澡被强公BD 私人家庭影院推荐 青青河边草免费观看字幕 日本19岁上大学上网课可以吗 小柔被六个男人躁到早上电影 丰满的继牳伦理 日韩妆和欧一区二区区别是什么 被双修做到哭H被师尊强迫 四川XXXXXLMEDJYF77777 被黑人伦流澡到高潮HNP动漫 国产CHINESE男男GAYGAY网站 今天马后炮解太湖钓叟字谜 阿娇被实干20分钟无删视频 根管治疗多少钱一颗牙 特种兵初尝禁果H高肉1V1 人妻饥渴偷公乱中文字幕 女人被添荫蒂舒服了A片看AK 女员工的滋味 校草被LJ到喷水沦为宿舍视频 我闺蜜把我双腿扒开自慰 够了够了到高C了好多水视频 汤唯被揉到高潮下不了床视频 丰满老熟妇BBBBB搡BBB 二人世界高清免费版在线观看 性──交───乱乡村 免费大片在线观看WWW 丰满少妇猛烈进入A片99A 免费观看成人毛片A片直播千姿 校花被黑人伦流澡H李芷珊 成全电影大全在线观看国语高清 一边下奶一吃敷面膜视频60分钟 大地资源第二页中文高清版 国产吃瓜黑料一区二区 免费观看又色又爽又黄的崩锅 扒开粉嫩小泬舌头伸进去视频漫画 一面亲一面膜下最新版 飞机上的性服务2 丰满少妇伦精品无码专区 成人交性视频免费看 国产伦精品一区二区三区妓女下载 成全电影播放在线观看 GOGOGO大但人文艺术创作背景 少女哔哩哔哩高清免费播放 成全影视大全在线观看国语 免费看成人A片无码视频尤物 今天高清视频免费播放国语 亚洲精品久久久久AVWWW潮水 少女たちよ观看动漫第四季 巜出轨上司的人妻2中字 GOGOGO高清免费完整版游戏 辣妹子影院电视剧免费播放视频 最好看免费中文 玉漱公主被肉干高H潮文不断 双腿张开被9个黑人调教影片 很黄的吸乳A片三男一女 婚礼当天伴郎玩伴娘 《疯狂农场3》免费观看 深灬深灬深灬深灬一点 悟空影视免费观看视频 性少妇VIDEOSEXFREEXXX片中国 中国东方XXXXXLMEDJYFBD 三年片在线观看免费观看高清动漫 国产永久精品大片WWWAPP 免费AV网站 最好看的中文字幕国语电影 色情大尺度吃奶做爰 给我C1V1军婚零零子 在教室伦流澡到高潮H强圩动漫 把腿张开老子臊烂你女人片 鉴黄师APP安装 免费国外B站刺激战场直播APP