ActionScript 3.0 , AIR , FLEXからCocoa, OpenGL
1 Jan
少し前の話になりますが、2011/12/22にageHaにて行われた
「m-flo presents BONENKAI」でBoxステージでのPanty & Stocking OrchestraのライブにてKinect+OpenNIを使った演出を行いました。
ちょっとわかりにくいですが、右下にいるアーティストの動き(この画像はTeddyLoidさん)にあわせてスクリーン上のロボットが動く、というものです。OpenNI Unity Wrapperを使いました。
より効果的に見せるための課題など反省点は色々ありますが、まずは問題なく本番で使う事ができて一安心です。
今年2012年はよりパワーアップしたものをお届けするべく頑張りますのでよろしくお願いします。
21 Nov
OpenNIの新しいバージョンがunstableながら出たようです。(バージョンは1.4.0.2)
http://75.98.78.94/
※ググった結果の一番上なんですけどなんでIPアドレスなんだろう。。。
今回からなんとOpenNIでスケルトン認識する時の例のポーズがいらなくなった、という大きすぎるアップグレードがあります。
「かおるんダイアリー」様が早速デモ動画をアップされています。
http://d.hatena.ne.jp/kaorun55/20111121
MSのSDKでは画面から外れた時の暴れっぷりや全身が映っていないときの反応がちょっと荒かった印象がありましたが、OpenNIの方は比較的ましな感じがしています。
今はSensorKinectの人にも問い合わせしているので進展があれば追記します。
早速試したかったのですが、僕の環境では実行しようとしても
Segmentation fault: 11
が出てしまい実行できませんでした。
あまりにもわからなかったのでOpenNIのGoogleGroupで質問してみたところ、
Kinectの時に使っているドライバ、SensorKinectが新しいバージョンに対応していないからだそうです。
これはOpenNI使う時はKinectじゃなくてXtion使えよ、っていうことなんでしょうかね。。。
追記:
動作することを確認しました。
すみません。僕が使っていたSensorKinectが古かったようです。
ここにあるバージョン(5.0.5.1で確認しました)を使うと無事動作しました。
OpenNI, SensorKinect、NITE、入れていればOpenNIのサイトにあるSensorをアンインストールし、KinectをUSBから抜いて再度インストールすると問題なく動作するようになりました。
(NITEは先ほどリリースされた1.5.0.2をインストールしました。)
https://github.com/avin2/SensorKinect
さあ、これで試せるよ!
備考:
動作確認バージョン:
OpenNI: 1.4.0.2
NITE: 1.5.0.2
SensorKinect 5.0.5.1
Mac OS X 10.7 Lion
デバイス: Kinect
撮影するための環境が無くて僕とKinectの距離が近かったのでスケルトンが暴れていますが、実際はもう少しましだと思います。
これになったことでスケルトンを使ったアプリを作りやすくなりましたが、暴れることが以前より多くなった(当然)ので、こういったノイズデータをハンドリングする必要がありそうですね。
16 Nov
新しく(2011/10月発売?)MacBook Proを買ったものの時間が無くてOpenNIのインストールをしばらくできてなかったのですが、必要に駆られてOpenNIのインストールをしてみたところはまったところがあったので残しておきます。
おこった問題:
Sample-NiUserTracker の実行ができなかった。(ただし、Sample-NiSimpleViewerは実行できた)
エラーメッセージ:
Could not find data file /usr/etc/primesense/Features_1_4_2/s.dat
current working directory = /Users/xxxxx/Documents/OpenNI/OpenNI-Bin-Dev-MacOSX-v1.3.4.6/Samples/Bin/x86-Release
→実際該当するパスにファイルが存在しなかった。
解決方法:
うまく動いていた状態の古いマシンには /usr/etc/primesense/ 以下に Features_1_3_1と Hands_1_3_1というフォルダがあったので、そのファイルを使い、フォルダ名を Features_1_4_2、Hands_1_4_2と変更した。
OpenNI、NITE、SensorKinectともにバラバラにインストールしてしまっていたのが原因だとは思うが、これで動作するようになりました。
15 Jul
KinectをOpenNIを使えばunstable版ではありますが、Macでも使う事ができます。
で、普段のWebやPC、Mobileのアプリとは異なりハードウェア的な観点で注意しないと行けない事があり、ちょっとハマってしまった事があったので書いておきます。
今までまったくもって普通に動いていたアプリが突然すごくカクカクと動いてしまっていたのですが、ソースコード上の無駄をどれだけそぎ落としても、Kinectのデータ更新を別スレッドで行うようにしてもカクつきがまったく改善されなく、原因がわからなくて途方に暮れていたところ、試しにUSBの差し口を変更した所今までどおり高速に動作するようになりました。
どうやら状態によって通信速度が変わる事が考えられます。
MacBook ProのUSBポートは内部的には同じもののはずだからどちらに差したからと言って通信速度が変わることはないと思っていたのですが、そんな事も無かったです。
Kinect自身はUSBでPCと繋いでデータを受信します。KinectはXtion Proなどのデバイスとは違い、USBだけでは正しく動作しないのでコンセントにさす必要もあるのですが、電気の供給が不足しているときにも動きがカクカクしてしまう事がありました。
USBを差し替える前後の違いが分かるように動画をアップしましたので気になる方はご覧下さい。
はまりどころを抜けて、こんな感じのサンプルを作りました。
24 Apr
こんにちは。
ここしばらくKinectで何かをする事が多かったので、忘れないうちに記事を残しておこうと思います。

Kinectとは、MicrosoftがXbox360向けに発売したゲームデバイスです。
従来と違い、距離センサーなどを搭載した事で、全く何のコントローラーを持つ事無く人のジェスチャーでゲームを楽しむ事ができます。
どんな事ができるのかは、この動画をみると分かりやすいと思います。
これがもし、Xboxだけでしか使えないものであればここまで流行る事も無かったと思うのですが、あまりにも安価なセンサーデバイスだったため、世界中のハッカーが勝手にハックしてKinectの情報をプログラムで扱えるようになりました。
センサー部分を開発している、イスラエルのPrime Sensor社がOpenNIというライブラリを公開したことは、Kinectのパーツを実際に作っているところからの公開であり、準公式とも言えそうなライブラリの登場に非常に興奮したものです。
C++, C#で利用する事ができます。
http://www.openni.org/
また、Microsoft自身もSDKを公開するとの事ですが、僕はMac使いなため、OpenNIを使う事に変わりないと思います。
http://japanese.engadget.com/2011/02/21/kinect-sdk/
他にもOpenFrameworksで使われるためのofxkinectというアドオンもあります。
https://github.com/ofTheo/ofxKinect
MicrosoftのKinectに関するページ:
http://www.xbox.com/ja-JP/kinect
先ほども書いたように、Mac使いである僕はC++(OpenFrameworks)+OpenNIという方法でKinectをいじり始めるのでした。
続く。