Thanks Driven Life

日々是感謝

肉体言語 Tython 過去現在未来

Q&A っていうか、自問自答として、「なぜそうしたか」「そもそもなんなのこれ」ってのを書いておいて
日常忘れそうになったら初心に帰れるように残しておこうと思います。
あと、同じような質問とかよく見受けられるので(エゴサーチした結果集めた疑問集)、それも含め。

「Tython」って名前の由来は?

正解は「マイク・タイソン」なんですが、順序良く説明していきます。

  1. 去年10月、社内勉強会(通称はごー勉強会)にて、id:nefo_mi による「暴風言語 Typhon」の紹介
  2. 説明の途中、「Typhon(タイフォン)」を「タイソン」と間違って読んでしまう。
  3. その結果
    1. タイソンといえばマイク・タイソン
    2. マイク・タイソンといえばボクシング
    3. つまり肉体
    4. 肉体言語 タイソン!!*1

ということで、名前だけ決まってどうやって実現するかはこの時決まっていませんでした。
一ヶ月後、Kinect が発売されたということと、発売前からすでに Hack の話題で盛り上がってたので

 Kinect でボクシングの動きを認識して、それでプログラミングすれば肉体言語じゃないか!

ということでした。

なんで C++ なんだよ。そこは Python だろ


俺だってそうさ!
OpenNI が公開された当時は、Mac OS X で開発できるものは C++ ぐらいだったので(Java もあったかもだけど)。
今であれば Python の bind があったような気がしないでもない。

IronPython で実装することにより誕生する「IronTython」っていうのも夢見てるんですがなかなか。

なんでジェスチャ自分で実装してるの


NITE には HandGenerator による SwipeDetector とか PushDetector がデフォルトで用意されているので
手を動かすようなアプリであればそれを使えば早いと思います。

でも Tython では自前で Detector クラスを実装しています。その理由は

  • 手だけでなく腕全体や足、体を使ったポーズまで検出したかった
  • 検出アルゴリズムをやってみたかった(車輪の再発明にあえて挑戦)

といったところです。

まあ実は、体全体の検出ライブラリ FAAST があるんですけどね・・
書き始めた頃に見つけて、だけどもういっかなーってことで結局自前にしました。

今後の「肉体言語 Tython」 ってどうなるの


何回か Tython について発表してて、「ペアプロできるようにしました!」と言っていますが
実際にペアプロの場合の命令をどうするかとかはまだ考えてないです。

ぼっち!なので!テストしづらい!!!!!

ということともう一つ。今の Tython のディレクトリ構造を見ていただくとわかると思いますが

実際にプログラミングする「肉体言語 Tython」が samples 以下に置かれており、
ルートには、ポーズや動きを検出するクラス中心にしました。
つまり、「肉体言語 Tython」としてではなく「ユーザの動き検出ライブラリ Tython」にシフトしています。
正直、二度と Tython で Hello, World とか書かないのでそれでいいかな。

肉体言語じゃなくても検出でいろいろできそうだよね


上記理由もあるので、検出の方に力入れてます。
会社の先輩からは「ゴルフのスイングチェックとかしたい」という意見をいただいたり、
あとは手話認識とかいいよねーとか。
現在は仮面ライダーのポーズ検出を目指してます。

ここまでかければ Tython はひとまず close する勢い。

最近は OpenNI 近辺のコードかくよりも、OpenGL とかの View 側書くのが億劫でたまりません。
見た目がよくないとモチベーションも上がりづらいので、できればもっとかっこよくしたいですね。

今後の展望

  • OpenNI Arenaに出したりしたいですね。
  • Windows の方でつかえる SDK も触ってみたいって前々から言っててまだ触ってない
  • 開発者募集してます

まとめ


なんか他に書くことあった気がするけど途中で飽きた