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 投掷物体
- Ray-casting pointer with controller click on Close icon 带有控制器的射线投射指针,单击“关闭”图标
灵感: (Inspiration:)
- Iron Man 2 钢铁侠2
- Toddler Throwing Things 蹒跚学步的东西
可能的相互作用 (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. 分配的操作,例如单击和抓住实体。
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的指针设计可通过将伸出的手向后拉到折叠姿势时执行的向后拉动手势来将被抓住的实体伸到手臂上。 实体移动的速度取决于手的折叠或展开速度。
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的不当行为看起来不自然。
第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.
就像将手靠近肩膀折叠是使实体靠近的手势,展开手以使其远离肩膀的手势是赋予或返回任何实体的手势。 这是伸长手以返回,放回或伸出手的心理模型。
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.
受哈利·波特神奇效果的启发,我决定实现上述手势和动画,以将实体放回原始位置。 因此,当手从连接的肩点向外伸展超过指定的阈值时,并且在释放实体时,手会返回其原始位置。
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.
由于手可能会伸出也可能不会伸出,因此此返回手势确实会干扰“投掷删除”手势。 因此,为了进行分类,将物体的速度再次加权为阈值。 最终,通过将抓住的实体保持在手臂的跨度上,将出现描述返回轨迹的视觉反馈。 释放实体,如果路径可见,它将返回到原始位置。
原型 (Prototype)
翻译自: https://uxdesign.cc/hand-based-vr-interaction-for-deleting-entities-cdc7ee25c237
unity vr 交互
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/274768.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!