jam*_*son 5 multi-touch kinect nui
在过去的几个月里,我一直在研究为各种软件音乐合成器开发基于Kinect的多点触控界面.
我提出的总体策略是以编程方式或(如果可能的话)以算法方式创建对象以表示软合成器的各种控件.这些应该有;
我考虑用于创建算法的2个策略是XML描述,并以某种方式在屏幕上拉出东西(即给定一个正在运行的程序,找到所有控件的xycoords).我不知道如何去做第二个,这就是为什么我用这种特定的技术语言来表达它;).我可以做一些中间解决方案,比如在控件的角上点击鼠标来生成一个xml文件.我在Flash应用程序中经常看到的另一件事是将屏幕大小放入变量并使用数学来根据屏幕大小构建所有界面对象.请注意,并非必须使对象与屏幕控件的大小相同,或者表示所有屏幕上的对象(有些只是指示符,而不是交互式控件)
其他考虑;
给(现在)两组X/Y坐标作为输入(左手和右手),使用它们的最佳选择是什么?我的第一直觉是创建某种焦点测试,其中如果x/y坐标落入接口对象的边界内,则该对象变为活动状态,然后如果它们在一段时间内落在其他较小边界之外则变为非活动状态.我找到的廉价解决方案是使用左手作为指针/选择器,右边作为控制器,但似乎我可以做更多.我有几个手势解决方案(隐藏马尔科夫链)我可以搞砸.并不是说他们很容易上班,确切地说,但这是我可以看到自己在给予充分激励的情况下做的事情.
总而言之,问题是
任何评论,特别是那些已经工作/正在使用多点触控io/NUI的人,都非常感谢.与现有项目和/或一些好的阅读材料(书籍,网站等)的链接将是一个很大的帮助.
哇这里有很多东西。我在 Microsoft 期间从事了很多 NUI 工作,所以让我们看看我们能做什么......
但首先,我需要消除这个烦恼:你说“基于 Kinect 的多点触控”。那是错误的。Kinect 本质上与触摸无关(这就是为什么您面临“选择控件”挑战的原因)。触摸、身体跟踪和鼠标所需的 UI 考虑类型完全不同。例如,在触摸 UI 中,您必须非常小心地根据屏幕尺寸/分辨率/DPI 调整内容大小……无论屏幕如何,手指始终具有相同的物理尺寸,并且人们具有相同的物理精度,因此您希望您的按钮和类似控件的物理尺寸始终大致相同。研究发现 3/4 英寸是触摸屏按钮的最佳位置。不过,对于 Kinect 来说,这并不是什么大问题,因为您没有直接触摸任何东西 - 准确性不是由手指大小决定的,而是由传感器准确性以及用户精确控制挑剔和滞后虚拟光标的能力决定的。
如果您花时间玩 Kinect 游戏,很快就会发现有 4 种交互范例。1)基于姿势的命令。用户敲击并保持一个姿势来调用某些应用程序范围或命令(通常会显示一个菜单)2)悬停按钮。用户将虚拟光标移动到按钮上并保持静止一段时间以选择该按钮 3) 基于滑动的导航和选择。用户向一个方向挥动双手以滚动和列表,向另一方向挥动以从列表中进行选择 4) 语音命令。用户只需说出命令。
业余爱好者也尝试过其他类似鼠标的想法(在实际游戏中还没有见过这些),但坦率地说,它们很糟糕:1)使用一只手作为光标,另一只手“单击”光标所在的位置或 2)使用 z - 手的坐标来确定是否“点击”
我不清楚您是否在询问如何使某些现有的鼠标小部件与 Kinect 一起使用。如果是这样,网络上有一些项目将向您展示如何使用 Kinect 输入控制鼠标,但这很蹩脚。这听起来可能超级酷,但你实际上根本没有利用该设备最擅长的功能。
如果我正在构建一个音乐合成器,我会专注于方法#3 - 滑动。像舞蹈中心之类的东西。屏幕左侧显示 MIDI 控制器列表,并通过一些小的视觉指示来指示其状态。让用户滑动左手滚动并从此列表中选择一个控制器。屏幕右侧显示您如何在用户身体前方的某个平面内跟踪用户的右手。现在,您可以让他们同时使用双手,立即给出每只手的解释方式的视觉反馈,并且不需要他们非常精确。
PS...我还想对 Josh Blake 即将出版的 NUI 书表示赞赏。这是好东西。如果您真的想掌握这个领域,请订购一本:) http://www.manning.com/blake/
归档时间: |
|
查看次数: |
439 次 |
最近记录: |