C# OpenNI sensing Unity3D 未分類

OpenNIのUnityWrapper

[`evernote` not found]
LINEで送る
Pocket

このエントリはOpenNI Advent Calendar 2011 : ATNDの12月24日分です!!


さてクリスマスイブですが、
少し前からOpenNIにはUnityWrapper版が存在していますのでそれについて紹介します。

unity_screenshot

最近話題になっている、ゲームの開発環境のUnity3Dというものがあり、OpenNIのサイトからUnity3Dで使うためのUnityWrapperをダウンロードできます。

追記:
2013/06/12時点では(もう少し前からだったと思います)OpenNI公式のUnityWrapperは配布していません。
有料ではありますがこちらのZigfuを使えば同じ事+それ以上の事が出来ます。

opennidownload


Unity3Dについて:

Unity3D ( http://unity3d.com/unity/ ) とはゲーム開発ツールであり、WindowsとMacのどちらでも開発する事が可能です。
IDEがあるのでステージの画面を見ながら次々とオブジェクトを配置するだけでゲームの世界を簡単に作る事ができます。
プログラムはJavascriptとC#(mono)で書く事ができるのでweb開発者や.NETの開発者にも取っ付きやすいのではないでしょうか。
MacでもC#で記述する事ができます。

また、一人でグラフィックやサウンドやモデリング、プログラムを行うのは大変ですが、Unity3DではAsset Storeというものが用意されており、これを利用する事で必要な素材を入手する事ができるので気軽にゲーム開発を進める事ができます。

Unity3Dの無料版、有料版、ライセンスについて

無料版と有料版があり、無料版では制限はいくつかありますが、WindowsとMacで実行できますし、有料版にアップグレードする事でAndroidやiOSに対応させる事も可能です。
詳しいライセンスなどはUnity3Dのサイト( http://unity3d.com/unity/licenses )か、「強火で進め」さまのサイトが詳しいです。( http://d.hatena.ne.jp/nakamura001/20110710/1310292561


Unityのダウンロードからインストール

それでは、Unityをダウンロードしましょう。

http://unity3d.com/unity/download/より、Unityをダウンロードし、流れに沿ってインストールしてください。
インストール後、先ほどOpenNIのサイトからダウンロードしたファイル(Unity OpenNI toolkit 0.9.7.1.unitypackage )をダブルクリックしImport Packageより一式をunityにインポートします。
importが完了すると、Projectタブにこのようなファイル群が表示されます。
unity_project

OpenNI/Sample Scenes以下にすぐに試せるようなサンプルシーンが入っていますのでダブルクリックしてシーンを開き、三角の再生ボタンを押して次々と試してみるとUnity3D+OpenNIの可能性を試せると思います。
Unity_IDE

私はライブなどで使ったりしていますが、骨格をちゃんと映していれば問題なく現場でも使えます。今のUnityWrapperだと全身映す前提のコードになっているので、上半身だけ認識などに変更する事でより柔軟なアプリケーションが開発できます。

ではそれぞれのサンプルのキャプチャやサンプル動画をのせておきます。


サンプルのシーンについて

MultipleSkeletons:
僕は一人なので試せませんでしたが、複数人のスケルトンを認識できるサンプルだと思います。
MutipleSkeletons
NIGUIControl:
NIGUIControl
NIInputControl:
すごく地味なのですが、手を動かすと黒い四角が追従します。XBoxでもあるような、手で操作するゲームはこれを使うと作れそうですね。

SimpleGame:
上からふってくるボールにタッチするゲームです。実際に動いたりジャンプするとそれにあわせて画面も動きます。一番運動している感じになりそうですね。

SingleSkeleton:
スケルトンの情報をもとに画面のキャラクターが動きます。

せっかくなのでスケルトンをサンタにかえてみましたよ。サンタ気分で小さく踊ってみました。
あ、サンタのデータはAsset Storeで購入可能ですよ!

※この記事は、下記の環境で確認しました。

OpenNI 1.5.2.7
NITE 1.5.2.7
Unity3D 3.4.2f3

5 Comments

  1. 初めまして、去年のエントリーにすみません。
    openni等のインストールを終えて
    ターミナルからサンプルを走らせるところまではできましたが
    unityのサンプルはエラーになります。
    どうすればいいでしょうか、ド素人なのでなにがなにやら…
    コンソールには
    Assets/OpenNI/Scripts/Main OpenNI/Input/NIInput.cs(303,22): error CS0619: `UnityEngine.Input.GetPosition(int)’ is obsolete: `Use ps3 move API instead’
    と表示されます。
    OpenNI : 1.5.4.0
    NITE : 1.5.2.21
    KinectSensor : 5.1.2.1
    Unity3D : 3.5.6f4
    で行っています。
    返信よろしくお願いします。

  2. Takumiさん

    遅くなってしまい大変申し訳ございません。
    もう解決されましたでしょうか。

    古い投稿ですが、下記の内容が検索でみつかりました。
    https://groups.google.com/forum/?fromgroups=#!topic/openni-dev/1mDkVDuKMQk

    ようはエラーになっている関数は重要じゃないから削除しなさい、ということのようです。

    また、OpenNI2になって公式なUnityWrapperはなくなったようですが、今後を考えるとZDK for Unity3Dを使うのが良いと思います。
    ただし、ロゴを取り払うにはお金が必要だそうですが。。
    現在私はXtion Pro Live + OpenNI2 + Mac OSX 10.8でZDKを使っています。

    http://www.openni.org/files/zdk-for-unity3d/

  3. はじめまして。
    いきなりで申し訳ないんですが、
    上記のWrapperをopenniのサイトからダウンロードできなくなったそうです。
    何かほかの方法はありませんかね…?

  4. はじめまして。

    有料ではありますが、こちらのプラグインを使うとUnity3DでもKinectを使う事ができます。
    http://zigfu.com/

    このプラグインはKinect SDK(Windows)とOpenNIを切り替えて使う事も可能です。

コメントを残す

メールアドレスが公開されることはありません。