5

過去数か月間、さまざまなソフトウェア ミュージック シンセサイザー用の Kinect ベースのマルチタッチ インターフェイスの開発を検討してきました。

私が思いついた全体的な戦略は、ソフト シンセのさまざまなコントロールを表すために、プログラムまたは (可能であれば) アルゴリズムでオブジェクトを作成することです。これらには次のものが必要です。

  • X 位置
  • Y 位置
  • 身長
  • MIDI出力チャンネル
  • MIDI データ スケーラー (xy 座標を MIDI 値に変換)

アルゴリズムを作成するために私が検討した 2 つの戦略は、XML 記述と、何らかの方法で画面から何かを引き出すことです (つまり、実行中のプログラムが与えられた場合、すべてのコントロールの xycoords を見つけます)。その 2 番目の問題についてはどうすればよいかわかりません。そのため、このような特定の技術用語で表現しています ;)。コントロールの隅をマウスでクリックして xml ファイルを生成するなど、いくつかの中間的な解決策を実行できます。Flash アプリでよく見られるもう 1 つの方法は、画面サイズを変数に入れ、数学を使用してすべてのインターフェイス オブジェクトを画面サイズで構築することです。オブジェクトを画面上のコントロールと同じサイズにすること、またはすべての画面上のオブジェクトを表すことは必ずしも必要ではないことに注意してください (一部は単なるインジケーターであり、インタラクティブなコントロールではありません)。

その他の考慮事項;

(今のところ) 入力として X/Y 座標の 2 つのセット (左手と右手) が与えられた場合、それらを使用するための最良のオプションは何ですか? 私の最初の直感は、ある種のフォーカス テストを作成することでした。x/y 座標がインターフェイス オブジェクトの境界内にある場合、そのオブジェクトはアクティブになり、一定期間他の小さな境界の外にある場合は非アクティブになります。私が見つけた安価な解決策は、左手をポインター/セレクターとして使用し、右手をコントローラーとして使用することでしたが、もっと多くのことができるようです. いくつかのジェスチャ ソリューション (隠れマルコフ チェーン) があります。正確には、簡単に仕事に就けるわけではありませんが、十分なインセンティブが与えられれば、自分がやっていることがわかります.

さて、問題をまとめると、

  • インターフェースを表す (デフォルトのインターフェースは常にマウス入力を想定しているため必要)
  • コントロールを選択
  • 2 セットの x/y 座標 (回転/連続コントローラー) を使用して操作するか、スイッチの場合は、できればジェスチャを使用して、フォーカスを与えたり取得したりせずに切り替えます。

特にマルチタッチ io/NUI で働いていた/働いている人からのコメントは大歓迎です。既存のプロジェクトや読みやすい資料 (書籍、サイトなど) へのリンクは大きな助けになります。

4

1 に答える 1

2

うわー、ここにはたくさんのものがあります。私はマイクロソフトにいる間、多くの 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/

于 2011-10-14T18:24:44.320 に答える