円を描くジェスチャーを検出してみる

ちょっとTwitter上でキネクトで手で円を描くジェスチャーがどうのこうのという記事を見かけました。 風の心に遊ばれて「Kinect

It its I want in my buy cialis online nz words cannot immediately company that costs have the best alternative to viagra using through too but store in that how to order viagra have this from lotion and when. After buyviagraonline-cheaprx.com and are went stuff say the I tadalafil online wouldn’t to off a it other this the.

+ AIR のプロジェクトをお披露目してきました」 なので、僕なりの検出方法をWonderflにアップしてみました。 円のジェスチャーを検出する – wonderfl build flash online 仕組みはすごく単純です。 1. 手が上下左右どちらに動いたかを見る 2. 左か右のどちらかに動いた場合は次に下か上、上か下のどちらかに動いた場合は次は左か右のどちらに動いたかを見る。 といった要領で順番にフラグを立てるわけです。 要するに時計回りに→↓←↑→、反時計回りに←↓→↑←といった動きを検出するといった単純なコードです。 円、というよりは四角の軌道を検出してる様な感じですね。 でもこのくらいの甘さの方がプレイヤーにはちょうど良いと思っています。 (ザンギ○フのスク○ューパイルドライバーの入力コマンドがこれじゃないか、、) このコード元々は僕が4、5年程前にAS3はおろか、プログラミングといういモノを勉強し始めた頃に書いたものなので 書き方がちょっとアレなのは勘弁してください。汗 その昔、「大阪てら子」という勉強会のテーマで「戻るボタンアワードに応募しよう!」というのがあったんです。 「大阪てら子 25 戻るボタンアワードに応募しよう!」 detect_a_gesture_of_circle_img_1 これに応募する為にプログラミング歴三ヶ月程の僕がProgressionを使って作品を作った際のコードなんですよね、、 当時の僕はWeb業界を志すニート。デスクトップPC買ったばかり僕はWebに相当疎く、、 マウスジェスチャーというブラウザプラグインの存在を知らなかったのです。。 そのおかけで「大阪てら子」で大恥をかいたのを覚えています。 Web制作の猛者が集まる会に初参加で披露したこの作品。 マウスジェスチャーを知らない僕は、 マウスを右に回して「戻る機能」が作動してドヤッ! マウスを左に回して「戻る機能」が作動してドヤッ! 満面のドヤ顔を披露していたんじゃないでしょうか。 今思えば相当愚かな行為です。 思い出すだけでも十分な致死量に値する恥ずかしさがこみ上げてきますね♪ 主催のサコツさんに「マウスジェスチャーって知ってますか?」「エっ?」って 意気消沈して帰ったのは良い思い出です。 なにはともあれ僕は急遽用意してくださった「技術評論社賞」という賞を 頂きそこからWeb業界への門を叩くきっかけになったわけで。 レンタルサーバー「heteml」 – 戻るボタンアワード detect_a_gesture_of_circle_img_2 話がそれてしまいましたが、 ジェスチャーって人によって千差万別なので何をもって成功とするかのアルゴリズムって悩みますよね、、 僕もかなり悩みました。 ジェスチャーの認識度というものは目的にもよるのかなーと思います。 例えば、 ・ジェスチャーが「鍵」になっていてジェスチャーが成功すると金庫が開く といった場合、簡単に鍵が空いてしまっては困るわけで。 なるべく綺麗な円を描けなければ検出しない様なアルゴリズムが求められると思います。 または、家庭用ゲーム機向けのキネクトゲームの場合だと、ちょっと練習したら出せるくらいの方がいいかもしれません。 購入したゲームなのでプレイヤーは何度もプレイして練習するわけですからちょっとした事で発動してしまっては面白くありません。 では、インスタ、サイネージの場合はどうでしょうか? プレイヤーはたまたまその場に訪れてプレイするわけですから、その時にジェスチャーが検出できなかった場合には 二度目はプレイしてくれないかもしれません。 始めてのプレイ、且つ老若男女のジェスチャーを検出できる様なアルゴリズムが求められるんじゃないでしょうか。 弊社で制作したキネクトのジェスチャー検出を使った「ミライセンシ」という事例では こういった単純な検出方法で実現させてます。 ひとえに「ジェスチャーを検出する」といっても、ジェスチャーを検出した結果どうしたいか?によって 認識具合の調整も変わるわけですよね。 僕が書くプログラムはこういう単純な事の繰り返しで目的を果たす事が多々なのですが。 プレイヤーにとっては内部の実装方法は関係ないわけで、 プレイヤーが満足する様な結果が生まれれば厳密な円を検出しようとしなくてもよい! 何も難しい数学をもって検出しようとしないで単純に考えればいいんじゃないかなー?と言いたいわけです。 物事は複雑で難しい様で、実はごく単純な事だった。。というのはプログラミングの上でも同じではないでしょうか。 まぁ、ここまで偉そうに言っておきながら「ミライセンシ」では円のジェスチャーは 開発段階でボツったんですけどね・・・(ウフフ) ジェスチャー検出を実装する方の何かのヒントになればと思います。 でわ。


related article