unity vr 交互_基于手動的VR / MR交互,用于刪除實體

unity vr 交互

Deleting an entity or closing an application is one of the most ubiquitous operations performed in any application. It is necessary for the organization of the data. On the computer, there are multiple ways to delete a file like `cmd + delete`, delete key, or dragging the icon to the trash-bin. While on mobile phones, pressing delete icon, side-swipe gesture, or long-press to enable the delete option. All these interactions are specially designed and defined for respective form-factor of the devices.

刪除實體或關閉應用程序是在任何應用程序中執行的最普遍的操作之一。 數據的組織是必要的。 在計算機上,有多種刪除文件的方法,如“ cmd + delete”,刪除鍵或將圖標拖到垃圾箱。 在手機上時,按刪除圖標,側向滑動手勢或長按以啟用刪除選項。 所有這些交互都是針對設備各自的外形尺寸專門設計和定義的。

It is noticeable that those interactions mentioned above are unable to provide a viable interaction model in mixed reality. Unavailability of such gestures opens up the opportunity to explore new interactions for deleting entities in the mixed reality. This prototype tends to explore one of the many possible ways to delete an object in the space

值得注意的是,上述那些交互無法在混合現實中提供可行的交互模型。 此類手勢的不可用為探索在混合現實中刪除實體的新交互提供了機會。 該原型傾向于探索刪除空間中物體的多種可能方法之一

當前可用的方法: (Currently available methods:)

  • Deletion operation mapped to the controller button event

    刪除操作映射到控制器按鈕事件
  • Throwing object

    投擲物體
Object throwing interaction in Microsoft Maquette Program
Microsoft MaquetteMicrosoft Maquette
  • Ray-casting pointer with controller click on Close icon

    帶有控制器的射線投射指針,單擊“關閉”圖標
Ray-caster click on closing icon on Oculus Home
Src: Oculus Home
Src:Oculus主頁

靈感: (Inspiration:)

  • Iron Man 2

    鋼鐵俠2
Ironman 2 scene where Tony Stark crushes an hologram and shoots out to delete.
  • Toddler Throwing Things

    蹣跚學步的東西
A toddler throwing away plush toy.

可能的相互作用 (Possible Interactions)

  • Delete button on the contextual menu: Controller Mapping

    上下文菜單上的“刪除”按鈕:控制器映射
  • Throw away

    丟棄
  • Finger gun

    手指槍
  • Abstract stretch till it deforms and breaks

    抽象拉伸直至變形和斷裂

原型細分: (Prototype Breakdown:)

For throw-to-delete interaction, I prototyped a behavior of selecting far away object, bringing it closer to arm’s reach for any operation, returning the entity, or throw-gesture to delete the entity. Summoning an entity from the list of elements like emails, immersive project reports, or just a widget, ability to inspect or operate with it, and then can either dismiss it by deleting or sending it back to its original location can be some of the use cases. For example, archiving an email directly from the list or closing off a widget isn’t required anymore.

對于拋出到刪除的交互,我對以下行為進行了原型設計:選擇遠處的對象,使其更接近手臂進行任何操作,返回實體或拋出手勢以刪除實體。 從諸如電子郵件,沉浸式項目報告或僅是小部件的元素列表中召喚一個實體,使其具有檢查或操作的能力,然后可以通過刪除該實體或將其發送回其原始位置來將其關閉,這可能是一些用途案件。 例如,不再需要直接從列表中存檔電子郵件或關閉小部件。

Following three stages make up the full prototype:

以下三個階段構成了完整的原型:

  • Selecting/ Picking

    選擇/領料
  • Throw -To- Delete

    扔掉
  • Returning

    歸來

第1部分:選擇/領料 (Part 1: Selection/ Picking)

MRTK- an open-source toolkit for spatial computing is equipped with modular and performant code blocks to speed up the prototyping process. For this prototype, I used MRTK framework.

MRTK-一種用于空間計算的開源工具包 ,配有模塊化和高性能的代碼塊,以加快原型制作過程。 對于此原型,我使用了MRTK框架。

Adding ObjectManipulator to the GameObject, one can easily interact with the object for various operations like selecting, clicking, far/near grabbing, scale, or rotate. Based on the requirement for the application one can assign appropriate settings. For the current prototype:

將ObjectManipulator添加到GameObject中,可以輕松地與對象進行交互,以進行各種操作,例如選擇,單擊,遠近抓取,縮放或旋轉。 根據應用程序的要求,可以分配適當的設置。 對于當前的原型:

  • Physics Behavior on the release is disabled for better control on the entity to classify if the entity is selected or is being thrown.

    禁用發行版上的“物理行為”,以便更好地控制實體以對實體是被選中還是被拋出進行分類。
  • Added TransformContraint to limit scale operation.

    添加了TransformContraint以限制縮放比例操作。
  • Assigned operations like clicking and grabbing to the entity.

    分配的操作,例如單擊和抓住實體。
Peter Parker using web shooter to grab soda can.
Src: Spiderman
Src:蜘蛛俠

MRTK’s pointer design enables bringing a grabbed entity to arm’s reach by pulling-back-gesture performed when an outstretched hand is pulled back to folded pose. The speed of the entity movement is dependent on how fast a hand is folding or unfolding.

MRTK的指針設計可通過將伸出的手向后拉到折疊姿勢時執行的向后拉動手勢來將被抓住的實體伸到手臂上。 實體移動的速度取決于手的折疊或展開速度。

Hand interaction showcasing hand movement to bring selected entity into arm’s reach
Prototype on bringing objects closer to arm’s length using hand movement.
通過手移動使物體靠近手臂的原型。

Upon picking, this prototype shows visual feedback of hover light on the object and provides audio feedback confirming the selection or manipulation start event. It also renders audio feedback upon releasing the object, acknowledging the conclusion of interaction.

拾取后,此原型將顯示物體上懸停燈的視覺反饋,并提供確認選擇或操縱開始事件的音頻反饋。 它還在釋放對象時提供音頻反饋,從而確認了交互作用的結束。

第2部分:投擲刪除 (Part 2: Throw -To- Delete)

Once having direct access to the entity, let it be a far selection, or in the arm’s length, we want to carry out the deletion operation. A typical everyday gesture is to toss things away.

一旦可以直接訪問該實體,就可以選擇一個遙遠的選擇,或者在合理的距離內,我們要執行刪除操作。 一個典型的日常手勢是把東西扔掉。

Upon grabbing the entity, it is easy to compute linear and angular velocity by taking position samples from the previous frames. On release, depending on the entity’s velocity, I classify the operation as deletion or summoning to the user’s arms reach.

抓住實體后,通過從以前的幀中獲取位置樣本,很容易計算線速度和角速度。 發布時,根據實體的速度,我將操作分類為刪除或傳喚到用戶的手臂范圍。

In other words:

換一種說法:

  • Check the magnitude of the velocity (Above threshold or below)

    檢查速度的大小(高于或低于閾值)
  • Check the direction of the velocity(towards the user of in any other direction)

    檢查速度的方向(朝其他方向的用戶)

The above checkpoints help to classify the deletion operation or summoning operation.

以上檢查點有助于對刪除操作或召喚操作進行分類。

The PhysicsReleaseBehavior in the MRTK is flawed for far-manipulation. By Inspecting the MRTK scripts, the velocity passed to the grabbed entity upon release is the controller’s or Hand’s velocity, which can vary from the grabbed object’s velocity considering the distance between the entity and the controller. One can look the gif below where the MRTK’s relese behavior looks unnatural.

MRTK中的PhysicsRelease行為存在無法進行遠距離操縱的缺陷。 通過檢查MRTK腳本,釋放時傳遞到抓取實體的速度就是控制器或手的速度,考慮到實體與控制器之間的距離,該速度可能不同于抓取對象的速度。 可以看到下面的gif,其中MRTK的不當行為看起來不自然。

An example showcasing controller and object velocity transfer to the entity upon throwing.
Left cube (Green) showcasing accurate release behavior by considering its linear and angular velocity. While the right cube (Purple) is adopting the controller’s linear and angular velocity showcasing unnatural throw behavior
左立方體(綠色)通過考慮其線速度和角速度展示了準確的釋放行為。 當正確的立方體(紫色)采用控制器的線性和角速度時,表現出不自然的投擲行為
An illustration showcasing the difference between controller’s and distant grabbed entity’s velocity.
The difference in velocity of the controller and the distance object selected by the pointer.
控制器和指針選擇的距離對象的速度差。

第3部分:返回 (Part 3: Returning)

Upon deciding how selecting, summoning, and deletion operations work, we needed to explore an ability to return the entity to its place.

在決定選擇,召喚和刪除操作的工作方式之后,我們需要探索一種將實體返回其位置的能力。

Like folding hands closer to shoulder is a gesture to bring an entity closer, the gesture of unfolding hand extending it away from the shoulder is a gesture to give or return any entity. It’s a mental model to elongating hand to return, place it back, or give.

就像將手靠近肩膀折疊是使實體靠近的手勢,展開手以使其遠離肩膀的手勢是賦予或返回任何實體的手勢。 這是伸長手以返回,放回或伸出手的心理模型。

Harry Potter Scene where Hermione is returning books in library.
(Src: Harry Potter and Half-Blood Prince)(來源:哈利·波特與混血王子)

Inspired by Harry Potter’s magical effect, I decided to implement the gesture mentioned above and animation to place the entity back to its original place. Thus when the hand is stretched outward beyond a specified threshold from the connecting shoulder point, and upon release of the entity, it travels back to its original location.

受哈利·波特神奇效果的啟發,我決定實現上述手勢和動畫,以將實體放回原始位置。 因此,當手從連接的肩點向外伸展超過指定的閾值時,并且在釋放實體時,手會返回其原始位置。

Interaction showcasing hand outstretching for triggering returning animation
Prototype interaction for returning an entity to its place.
用于將實體返回其位置的原型交互。

This returning gesture does interfere with the throwing-to-delete gesture, as the hand may or may not be extended. Thus to classify that, the velocity of the object is weighed again as a threshold. Eventually, by holding the grabbed entity at arm’s span, visual feedback appears describing the return track. Releasing the entity, if the path is visible, it returns to the original position.

由于手可能會伸出也可能不會伸出,因此此返回手勢確實會干擾“投擲刪除”手勢。 因此,為了進行分類,將物體的速度再次加權為閾值。 最終,通過將抓住的實體保持在手臂的跨度上,將出現描述返回軌跡的視覺反饋。 釋放實體,如果路徑可見,它將返回到原始位置。

Interaction showcasing the returning of the object to it’s original place.
Animation for returning an entity
返回實體的動畫

原型 (Prototype)

Prototype created For Object Manipulation Interaction
創建用于對象操縱交互的原型

翻譯自: https://uxdesign.cc/hand-based-vr-interaction-for-deleting-entities-cdc7ee25c237

unity vr 交互

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/274768.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/274768.shtml
英文地址,請注明出處:http://en.pswp.cn/news/274768.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

手把手帶你走進Babel的編譯世界

大家好,我是若川。持續組織了8個月源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列前言談…

iPhone/Mac Objective-C內存管理教程和原理剖析(二)口訣與范式轉

版權聲明 此文版權歸作者Vince Yuan (vince.yuan#gmail.com)所有。歡迎非營利性轉載,轉載時必須包含原始鏈接http://vinceyuan.cnblogs.com,且必須包含此版權聲明的完整內容。 版本 1.1 發表于2010-03-08 二 口訣與范式 1 口訣。 1.1 …

同態加密應用_重新設計具有同態性的銀行應用

同態加密應用Catering user preference is undoubtedly a never-ending task. End of the day, it takes all sorts to make a world. For that reason, it is deemed important to design with the accent of communicating core business value, and resolving user needs wi…

(字節/華為/美團)前端面經記錄冷冷清清的金三銀四

大家好,我是若川。持續組織了8個月源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列從畢業…

PHP連接PGSQL

function conn($hostName,$Login,$Password,$dbName,$Port) //建立目標數據庫連接 {$conn &ADONewConnection(postgres8);$conn->debug false; //true時adodb將在頁面顯示debug信息$conn->LogSQL(false); //true時adodb將建立adodb_sqllog表記錄每次sql操作$conn-&…

netflix_Netflix播放按鈕剖析

netflixWe will develop a play pause button similar to the one the Netflix video player has.我們將開發一個類似于Netflix視頻播放器的播放暫停按鈕。 Since Swift has replaced Objective-C as the default development language for iOS, the same will apply to Swift…

TypeScript 終極初學者指南

大家好,我是若川。持續組織了8個月源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列在過去…

繼承與多態(六)

繼承 1.繼承 a。.直接在類的后面加上冒號“:”后面跟基類,就該類就繼承了基類的一切特性了。 b。private類不能被繼承,只有public、protected類能被繼承。 c。private類不里面所有的屬性和方法都不能被外界訪問,只有他自己可以。 …

標記偏見_如何(巧妙地)扭曲視覺效果以支持您的偏見敘事

標記偏見Data is important — it is the logical justification for world-changing decisions. Unfortunately, arrays of numbers don’t tell as interpretable a story as a picture does, providing an insatiable need for data visualizations.數據很重要-這是改變世界…

高瓴投資,頂配創業團隊,dora 誠招前端 / Flutter

dora 是一個可以跨越設計稿,直接生成應用的新一代設計工具。讓任何 Creator 都能輕松構建個性化的網站和應用,無需編寫一行代碼。通過自主研發的全新技術,我們為用戶打造了完全自由度的設計與開發體驗,足以滿足任何復雜場景的個性…

獵鷹spacex_SpaceX:簡單,美觀的界面是未來

獵鷹spacex重點 (Top highlight)A photo has been floating around the internet showing how the interior of the new Dragon spacecraft differs from the Space Shuttle. The difference is staggering, but not entirely suprprising. After all the Shuttle started oper…

object的classid收集

比如&#xff1a; wbbrowser控件 <OBJECT idWB classidCLSID:8856F961-340A-11D0-A96B-00C04FD705A2 VIEWASTEXT></OBJECT> 畫圖控件 <OBJECT idSGrfxCtl1 classidclsid:369303C2-D7AC-11D0-89D5-00A0C90833E6 ></OBJECT> 上下滾動條控件 <OB…

如何高效學習前端新知識,拓展視野,我推薦

技術日新月異&#xff0c;發展迅速&#xff0c;作為一個與時俱進的互聯網人&#xff0c;需要不斷地學習擴寬視野。今天為大家推薦幾個技術領域中出類拔萃的公眾號&#xff0c;它們的每一篇推文都值得你點開&#xff01;1前端開發愛好者學習路線 數據結構算法 前端進階「前端開發…

開發交接文檔_為開發人員創造更好的設計交接體驗

開發交接文檔It’s 2020. We’re supposed to have flying cars and space travel. We should at least have our process for design handoff nailed down at this point.現在是2020年。我們應該有飛行汽車和太空旅行。 在這一點上&#xff0c;我們至少應該確定我們的設計移交…

同步器之Exchanger

類java.util.concurrent.Exchanger提供了一個同步點&#xff0c;在這個同步點&#xff0c;一對線程可以交換數據。每個線程通過exchange()方法的入口提供數據給他的伙伴線程&#xff0c;并接收他的伙伴線程提供的數據&#xff0c;并返回。 當在運行不對稱的活動時很有用&#x…

?Cookie 從入門到進階:一文徹底弄懂其原理以及應用

大家好&#xff0c;我是若川。持續組織了8個月源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列Cooki…

ui設計師常用的設計工具_2020年應該使用哪個UI設計工具?

ui設計師常用的設計工具重點 (Top highlight)It’s 2020, the market today is saturated with UI design tools. Ever since Sketch app came out with its sleek, simple, and efficient tool to craft user interface design, many companies have followed suit to take a …

Ajax拖放頁面元素(圖片)

最近了解了一點YUI的控件知識.先做個Ajax拖放頁面元素(圖片)以便學習參考. 現在有一些網站如QQ空間,都允許用戶自定義模塊,可以任意拖動模塊到各個地方去.YUI在這一方面做得比較好.下面以一組圖片的方式來說明如何運用Ajax拖放頁面元素: 第一步:在<head></head>標簽…

你不知道的vscode之空間控制

大家好&#xff0c;我是若川。持續組織了8個月源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列王志遠…

正則表達式說明

參考地址&#xff1a; 正則表達式說明 正則表達式全部符號解釋轉載于:https://www.cnblogs.com/s-bridge/archive/2012/06/26/2564396.html