首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NUI/触摸接口的一般注意事项

NUI/触摸接口的一般注意事项
EN

Stack Overflow用户
提问于 2011-09-18 17:05:26
回答 1查看 489关注 0票数 5

在过去的几个月里,我一直在研究为各种软件音乐合成器开发一个基于Kinect的多点触摸接口。

我提出的总体策略是创建对象,或者通过编程或者(如果可能的话)算法来表示软合成器的各种控件。这些应该是;

position

  • Height

  • Width

  • MIDI输出通道

  • midi数据定标器(将x-y坐标转换为midi值)

我考虑过的2种算法创建策略是XML描述,并以某种方式将内容从屏幕上删除(即给定一个正在运行的程序,查找所有控件的木弦)。我不知道如何处理第二个问题,这就是为什么我用如此具体的技术语言来表达它;)我可以做一些中间解决方案,比如使用鼠标单击控件的角来生成xml文件。我能做的另一件事,也是我在flash应用中经常看到的,就是将屏幕大小放入一个变量中,并使用数学来构建屏幕大小的所有接口对象。请注意,严格来说,没有必要使对象与屏幕上控件的大小相同,也不需要表示所有屏幕上的对象(有些只是指示符,而不是交互式控件)。

其他考虑;

给定(目前)两组X/Y和弦作为输入(左和右),我使用它们的最佳选择是什么?我的第一反应是:创建某种焦点测试,如果x/y弦落在接口对象的边界内,那么该对象就会活动,如果它们在一段时间内超出了其他较小的界限,则会变得不活跃。我找到的廉价解决方案是使用左手作为指针/选择器,使用右边作为控制器,但似乎我可以做得更多。我有一些手势解决方案(隐藏的马尔可夫链),我可以乱搞。这并不是说他们会很容易地工作,但这是我可以看到我自己做的事情,给予足够的激励。

所以,总而言之,问题是

input)

  • select

  • 表示接口(因为默认接口总是期望鼠标切换一个control

  • manipulate ),它使用两组x/y弦(旋转/连续控制器),或者,在切换的情况下,最好使用手势来切换它,而不给予/获取焦点。

任何评论,特别是那些在多点触摸io/NUI工作过/工作的人,都会非常感谢。链接到现有的项目和/或一些好的阅读材料(书籍,网站等)将是一个很大的帮助。

EN

回答 1

Stack Overflow用户

发布于 2011-10-14 18:24:44

这里有很多东西。我在微软工作期间做了很多NUI工作,所以让我们看看我们能做些什么.

但首先,我需要让这个宠物恼怒:你说“基于Kinect的多点触控”。那是不对的。Kinect本质上与触摸无关(这就是为什么您有“选择一个控件”的挑战)。触摸、身体跟踪和鼠标需要考虑的UI类型是完全不同的。例如,在touch UI中,您必须非常小心地根据屏幕大小/分辨率/DPI调整大小。不管屏幕是什么,手指总是相同的物理尺寸和人有相同程度的物理精度,所以你希望你的按钮和类似的控件总是大致相同的物理大小。研究发现,3/4英寸是触摸屏按钮的最佳选择。这与Kinect无关,因为你没有直接接触到任何东西--精确性不是由手指大小决定的,而是由传感器精度和用户精确控制挑剔和滞后虚拟游标的能力决定的。

如果你花时间玩Kinect游戏,很快就会发现有4种交互模式。1)基于姿态的命令。用户敲击并保持一个姿势来调用某个应用程序或命令(通常是打开菜单),2) Hover按钮。用户将虚拟光标移动到按钮上,并保持一定的时间来选择按钮,3)基于滑动的导航和选择。用户向一个方向挥动他们的手滚动和列表,另一个方向选择从列表4)语音命令。用户只会说一条命令。

还有其他类似鼠标的想法已经被爱好者尝试过(在实际的游戏中没有见过这些),但坦率地说,它们很糟糕: 1)用一只手做光标,另一只手用另一只手“点击”光标所在的位置,或者2)使用手的z坐标来决定是否“点击”。

我不清楚您是否在询问如何使一些现有的鼠标部件与Kinect一起工作。如果是这样的话,在网络上有一些项目将向你展示如何用Kinect输入来控制鼠标,但这是很糟糕的。这可能听起来超级酷,但你真的没有充分利用设备的优势。

如果我要建立一个音乐合成器,我会专注于方法#3 -滑动。有点像舞蹈中心。在屏幕的左侧,显示MIDI控制器的列表,并对其状态进行一些小的视觉指示。让用户滑动他们的左手滚动,并从这个列表中选择一个控制器。在屏幕的右侧,显示你是如何在用户身体前面的某个平面内跟踪用户的右手。现在你让他们同时使用两只手,给出每一只手如何被解释的即时视觉反馈,而不是要求他们非常精确。

ps..。我也想大声呼喊乔希布莱克的上升的NUI的书。这是好东西。如果你真的想掌握这个领域,去订购一个副本:) http://www.manning.com/blake/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7463002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档