さいたまiPhone開発勉強会 vol.2 に参加してきました。

さいたまiPhone開発勉強会 vol.2


http://atnd.org/events/18837
http://togetter.com/li/189205


9/17 13:00-17:00

・@nakamura001さん :UnityでAR
・@kaorun55さん   :はじめてのKINECTプログラミング
・@Seasonsさん      :cocos2dユーザーのためのKobold2D入門
・@yoichinejiさん  :なつやすみのしゅくだい


1回目も参加した、さいたまiPhone開発勉強会の第2回です。
もはやiPhoneあんまり関係ない内容も多く含まれている、
とても自由な勉強会です。 次回から『iPhone』の名称が消えるとか、消えないとか。


前回の記事は以下になります。結局それぞれの方について個別にエントリは
上げられなかったですが、あんまり細かく書くのもアレだなと最近思いまして
少しセミナー/勉強会の感想記事の書き方についてはいろいろと試行錯誤する予定。
http://d.hatena.ne.jp/corrupt/20110802/1312210830


しかし、本当に手広く色んな技術に触れることができるいい勉強会です。
今回も楽しく参加させて頂きました。 レポート凄い遅くなりました。。。


UnityでAR

@nakamura001さん
http://www.slideshare.net/nakamura001/unityar


AR実装用のツールとして「String」と「QCAR」の解説でした。
詳細についてはスライドを確認して頂くのが一番かと思います。


◆ String
「String」については、マーカーとしたい画像に対して黒い枠線を付けることで
基本的にはどんな画像もマーカーとして利用できるというかなり優れたもので、
UnityだけでなくXcode用のチュートリアルもパッケージに含まれるとのこと。


Unityを利用すると、3Dオブジェクトを地面に対してどのあたりに配置するかなどを
GUIで操作することも可能で、かなり自由なカスタマイズが出来そうです。


ただし、料金がかなり高いのであまり個人開発者向きとは言えないかも。
無料では1マーカーしか利用できず、Developerライセンスを取るといくらでも
マーカーを配置することは出来るが「販売できない」。


販売可能なライセンスは、1マーカーで$499、無限の場合は$999もかかる。
しかもそれでは照準器(カメラのフォーカス部)に「String」のロゴが出るため
これを消そうと思ったら$7000も支払わないといけないあたり、無茶というもの。


◆ QCAR
Qualcommが提供している無料のAR用SDK


去年たしか発表されたあたりでセミナーに参加したんですが
AR ToolKit使って自分でやらないとダメだなと言う結論を出した気がします。
その頃とはかなり改善されている印象。


ダメだ、という結論に至った経緯については会社のメールボックス
漁らないと資料が出てこないので思い出せませんが、
かなり凝った利用方法にも使えそうでした。
(まだ未実装、が多かったのかな? 去年の10月くらいだった気がするし)


一度マーカーとしたい画像をQualcommのサーバーにアップロードして、
最適化したデータを作成し、それを利用して実装する必要がある。


マーカーを作成する場合に、平面マーカーや立体モデルなどを選択できる。
立体の場合はその各平面を登録することで角度を跨いだモデルの認識など。
サーバーにアップロードすると特徴点を自動的に検出してくれて、
検出できた個所を★で表示してくれるが、数が少ないとNGとなり利用出来ない。
なるべく複雑で、ぼやけていない画像が良い。
コントラストがはっきりしていて、諧調がある)



はじめてのKINECTプログラミング

@kaorun55さん(中村薫さん)
http://d.hatena.ne.jp/kaorun55/20110917/1316275057


既にiPhone勉強会とは関係なくなって来ていますが、楽しい発表でした。
本人いわく、いまはiOSよりWindowsPhoneに興味があるとのこと。
KINECTセンタープログラミング 本の作者。


KINECTの概要
KINECTは、実売価格12,000円程度と比較的安価なのに
以下のような多くのセンサーを持っている。いわく、センサーのかたまり。

・3D距離センサー、RGBカメラ
  VGA画像の中で、1ピクセルごとの距離を取ることができる。
・マイクアレイ
  音と、その音の方向が撮れるマイク。(110度の角度で、10度ずつ)
  これを利用することで、その音の方向から「誰が話しているかを判定もできる」
・チルトモータ
  これがあることで、KINECT自身が首を動かしてユーザーを見つけることが出来る

◇ 何ができるか?

カメラ画像の利用
距離画像の利用
 → 3cm程度の誤差で身長を測ったりもできる
ユーザーの認識と追跡
 → 人の判別
骨格の認識と追跡
 → 認識した人の各部位がどこにあるかが座標として取れる
音声の認識と方向の取得
 → Microsoftの音声認識ライブラリと組み合わせたプログラムも出来る
 → どの方向から音声が聞こえたか、もとれる
ジェスチャーの認識


注意!!
元々はXboxのコントローラなのでXbox同梱版と単体版がある。
コネクタは実はUSBっぽいがUSBではないのでPC接続に変換ケーブルが必要。
 → 同梱版だと付いていない。遊びたい場合は、単体版を購入するべき。
 → 変換コードは日本では売っていないのでサポート取り寄せが必要。


情報源の書籍としては、以下のような書籍がある。

キネクト ハッカーズマニュアル
西林 孝 + 小野 憲史 共著
ラトルズ
売り上げランキング: 7388


KINECTセンサープログラミング
中村 薫
秀和システム
売り上げランキング: 65134



内容としては、上から 入門 → 応用。
なんと洋書は出ていないらしい。


コミュニティとしてはShibuya Natural Interaction Hackersがある。
https://sites.google.com/site/shibuyani/
勉強会の合間に、ハッカソンをしている。今年は通算5回程度開催。
関西にも勉強会がある。


◆ 開発用のライブラリ
KINECT for Windows SDK

センサーの機能が全て利用出来る
betaなので、商用利用はできない。
 研究、教育、個人的な研究
 開発者、研究者、ホビースト、学生
 ランタイムなどの配布はできない
可能なのは、
 デモの共有や、無償配布
 プロトタイプに使用ならばギリギリOK


◇ OpenNI

3つのライブラリから成り立っている。
OpenNI(狭義のOpenNI) / NITE / Sensor

ユーザーの認識や、骨格のトラッキング : NITE
ドライバ部分 : Sensor

ライセンス
OpenNI
 オープンソース、GPL/LGPL
NITE
 バイナリ配布のみ(オープンソースではない)
 ライセンスの入力は必要だが、現在はフリーライセンス
Sensor
 オープンソース

Sensorについて
・SensorはKINECT用のドライバではない
・KINECT用のドライバはSensorを改造したOSSのものを利用する(Sensor-KINECT)
・MicrosorftとしてはKINECTとOpenNIの組み合わせはノーコメント
・OpenNIの公式でバイスとしてXtionがある


ライブラリの比較(抜粋のため、詳細はスライドを)
 KINECT for Windows SDKでは、Windows7しか対応していない。VMでも動かない。
 (OpenNIではWindows,Ubuntu, Mac, Androidまで対応している)


開発言語は
  C++ / C#
 (OpenNIではC/C++/C#/Java)


対応デバイス
  KINECT
  (OpenNIはXtion Pro / Xtion Pro LIVE / KINECT(非公式ドライバ)


できること
 距離カメラの解像度、距離カメラの範囲、追跡解像度ではOpenNIの方が優れている。
 ユーザー追跡人数(7人)や、骨格追跡人数(2人)はKINECT for Windows SDKのみ
 (OpenNIのライブラリ内部的には15人
 骨格追跡ポーズをOpenNIでは取る必要がある。(キャリブレーションポーズ)
 だいたいどちらも関節ごとに骨格が取れる



みんなでKINECT認識中。骨格は2人分しか取れていないが(右)、ユーザーとしては
3人認識されている(左)。


従来ならOpenCVで顔検出などをする必要があったが、
骨格を検出出来るので、その顔の位置にぽん、と画像をおいたりすることも出来る。
1万円ちょっとでカメラ、距離、音の方向まで取れる高性能センサーが買える、ということ。


VisualStudioExpressEditionでも開発することは可能
KINECTは、今までのコンピュータを使うレンジから
上下に広がっていくのではないかと考えている。
 
 
クラウドスマートフォンとの連携
 クラウドプラットフォームを通じて、モバイルでバイスにデータや通知を送信する
 (Windows Azure Platform)

WindowsPhoneなら全て通してC#で開発出来る。
 (Microsoftで固めれば、開発コストが下がる)

 
イノベーションとは、「未来にある普通のものを作ること」
つぎのイノベーションは何か。
KINECTでやっていることはこれから10年経った時、普通になるんじゃないか。


◆ 質疑応答
ぱちもんはどこで手に入るのか?
 Asusの製品なので、Amazonで検索すれば見つかるかも。


用途に寄るけど、単純に遊ぶならKINECT。仕事に使うならXtionかも。
KINECTは色々出来るけど、Xtionは距離カメラだけで高い。(ユーザー認識や骨格などだけ)
遊ぶのなら、KINECTの方がいい。


SDKから取れるデータに違いがあるのか?
 → デバイスは同じなので、返ってくるデータはだいたい同じ
 → OpenNIでは音声機能の利用は出来ない。
 → 通知を受け取りたい場合は、KINECT for Windows SDKではダメ。OpenNIならコールバック


KINECTアプリは、負荷が結構高いので高スペックなマシンが必要。



cocos2dユーザーのためのKobold2d入門

@Seasonsさん
http://d.hatena.ne.jp/Seasons/20110917/1316269959


内容については上記のスライドを参照して頂ければすべて書いてあるので
詳細については割愛していきます。


Kobold2dというのは、別にcocos2dに代わる新しいフレームワークなどではなく
cocos2dを使いやすくするためのツールセットのような位置づけです。


ゲーム開発を行っていく時に必要な拡張などがすべて含まれており、
自分でひとつひとつ更新を確認して導入したり、などと言った手間も省けますし
サンプルゲームなども豊富になっているとのこと。


実行環境としてはiOS4.3を推奨するが、3.1.3でも動作しないわけではない。
ただし、開発環境としてはXcode4以降でなければいけない。
なぜならばXcodeの「workspace」の仕組みを利用しており、
これはXcode4以降からの対応となっているため。


移行手順なども用意されているが、すべてのプロジェクトが
移行可能ではない、ということとマスターが近いプロジェクトの移行は避けること。
移行作業にはそれなりの時間や手間がかかるため、出来れば「新規開発を行う際に
Kobold2dを利用する」と言うのが望ましい。


Kobold2D.com 日本語マニュアル(Japanese side) の担当になりました!
http://www.kobold2d.com/pages/viewpage.action?pageId=919370



なつやすみのしゅくだい

@yoichinejiさん
スライドは公開されておりません。

AdMobを入れてみた、とかcocos2dxでつくったらバックキーが
反応しなかったとか。
原因はcocos2dxでプロジェクトを作ると、GLSurfaceViewでOnKeyDowの
戻り値がデフォルトでYESにされてしまっていたこと。
FALSEにすると取得することが出来る。


FUKUSHIMA GAME JAMに参加してきたよ。
 ENCHANT.JSを利用。(ENCHANTにはPRO版もある。(ARなんかもできるよ!))
  → JavaScriptゲームエンジン
  → cocos2dのようにスプライトの概念もある。
  → 複数人でコードを書くには向いていないっぽい。
 周りが学生かゲーム開発会社の人ばかりで、ひどいアウェイ感だった。


cocos2d for iPhoneレッスンノート
加藤寛人 佐藤伸吾
ラトルズ
売り上げランキング: 998
Cocos2d for iPhone レッスンノートの宣伝。
パーティクルの各パラメータに関して解説が載っているらしい。
ParticleDesignerを使ってたので適当にやってたが、一度見てみたい。


Windows8を導入してみた。

開発言語は、C++/VB/JS/C#
Visual Studio 11 Express や Blendも標準で付いてくる


JS... IMPACTが使える!?
ということでIMPACTのソースを実行してみたらそのまま動いた。
でも裏ではIEが動いていそう。Enchant.jsとかも動くかも?


要するに何が言いたいかというと、
シュタゲ -> Xbox(Wパック) -> アカウント登録 -> WP7 -> METRO UI -> Win8!!

シュタインズゲートが売れるとWパックで販売してるのでXboxが売れて、
Xboxが売れるとXbox Liveのアカウント登録をすることになり、このアカウントは
WindowsPhone7でゲームの成績を管理することなどに利用できる。
WindowsPhone7はメトロUIを採用していて、これはWindows8でも利用されている、
つまり「シュタゲが売れるとWindows8が売れる!」