c. ARとkinect(2/2)

2017年度資料

今回は、台風接近につき時間短縮バージョン。早く帰宅できる構成にする:

期末課題制作の準備を始める:

Max7 をDLして、自分のパソコンで試してみよう。試用期間は30日。機能制限なし、全機能利用可能。https://cycling74.com/downloads/

mac版、windows版があります。

受講生各自で、↓の3つの実験のどれかに取り組む。

実験結果が分かるように、どれか1つでOKなので、スクリーンショットを撮って 第C回課題 としてWebclassに提出。

実験1 モーションキャプチャー

概要:

モーションキャプチャーカメラ kinect v2 と iMacの Max をネットワークで接続する。通信方式は OSC。

Winddows PC で Kinect v2を動かしモーションキャプチャーしたデータを OSC通信でネットワーク経由でMax/MSPに送り処理する手法で行う。

Max/MSPのOSC処理オブジェクト(ipネットワーク通信用のudpreceiveオブジェクトを高機能化したもの)を利用して、モーションキャプチャーデータを利用する。

実習:

準備:

C108情報実習室の室内サブネトワーク 192.168.112.0 に、Kinectを接続したWindows3台を用意する。

予定) x番の iMac に ZEMI-JM-33 ポート 12345 に配信

予定) y番の iMac に ZEMI-JM-19 ポート 54321 に配信

予定) z番の iMac に ZEMI-JM-10 ポート 65432 に配信

各WindowsPCで、KinectV2-OSC.exe(Kinectでモーションキャプチャーしたデータをネットワークに送信するアプリ) を起動する。

3台のWindowsから、室内サブネットワークにブロードキャストでモーションデータを配信する。

※ブロードキャスト配信 → 全PCに対して送信すること

受信実験:

・レポートフォルダから KinectTest と KinectTest2 フォルダを デスクトップにコピーする。

・KinectTestフォルダ内の KinectTest.maxpat を開く

KinectTest.maxpat

↑パッチの解説:

Kinect の取得する関節の部位25箇所の 名称 と 場所 については、こちらを参照 http://www.buildinsider.net/small/kinectv2cpp/05

モーションキャプチャした25関節から、

5関節の XYZ座標とトラッキング状況(有り 1 か 無し 0。 推定によるトラッキングを1に含む)

頭 右足 左足 右手 右手 左手

右手の 開(パー) 閉(グー) 検出なし 不明(チョキ。指1、2、3。不正確)

右手の 開(パー) 閉(グー) 検出なし 不明(チョキ。指1、2、3。不正確)

を検出している。

修正箇所

OSC-route オブジェクトの引数、 /Head などを、コメント欄にある /Neck などの関節名称と差し替えたり、関節を追加(6個目〜)できる。

p sphere サブパッチをダブルクリックして開き、中のパッチを編集する。オブジェクトのサイズや、色(RGBA 0. - 1.)が変更可能。

オブジェクトのタイプを sphere から、cube などに変更可能。

問題点

Kinect v2 は、6人まで別々にモーションキャプチャが可能であるが、このパッチでは、プレイヤーの識別番号(id)を区別していない。

複数のプレイヤーを認識した場合、一人のプレイヤーが分身したような扱い(超高速移動)で処理される。

(※そのうち対応できたらいいな)

kinectTest2の方に、3DCGの利用例を組み込んだデモを入れておくので起動して動作を確認しておく。

実験2 iPadとアプリ経由で接続

iPadアプリ Fantastick と Max/MSP の接続

アプリ Fantastickの設定

アプリをインストール後、 iPadの設定メニューから Fantastick の設定を開き、通信先のPCの IP アドレスを入力する。

ポート番号は変更無しで良い。

IPアドレスの調べ方: 各PC番号が、IPアドレスの末尾の番号。 先頭から 192.168.112.1 ~ 40

コマンドによる確認方法: mac の検索メニューから term で ターミナルを起動。 ifconfig コマンドで、設定を表示

1台のPCに、複数のiPadを接続して利用することも可能。

問題点:

おそらく、1教室で多数のiPadをWiFi接続した場合は、通信に不具合が出ることが予想される。

うまくいかない場合、授業後、実習室の利用人数が少ない時間帯で、各自で試しておく。

Fantastick の設定が終わったら、レポートフォルダにDL済みの Fantastickの動作確認パッチをデスクトップにコピーして開き、

内容を確認しながら、機能を確認する。

・画像の出しかた

・タッチイベントの処理

・加速度センサーの値の取得

補足

iOSの設定メニューで Fantastickのメニューが出てこない場合、設定メニューの検索機能で検索すると見つかる場合がある。

fantastick.maxhelp で動作確認する際、OpenGLレンダリングのサブパッチの方を使用する。composerの描画は遅すぎる。

マルチタッチでXY座標を取得するにはパッチの修正が必要。

iPadの解像度とパッチの解像度がずれている不具合がある。

実験3 iMacのカメラで拡張現実(AR)の実験

※以下の演習は、古いバージョンの Max5 で構成されている。Max7で実行するには調整が必要。

ARマーカ作成サイトはFlashで動作している。iMacのsafariにはFlashが設定済み。今回はChromeは使用せず、safariを利用する。

ARマーカ認識オブジェクト紹介:

準備

Max/MSP + Jitter - ARTookit External http://www.aranarproductions.com/artk/

レポートフォルダにDL済み(フォルダ名 ARToolkit for Max)。

各自でフォルダを丸ごとデスクトップにコピーしておく。

※2016年度のC108Mac実習室のMacには↓は設定済みの模様。以下のサンプルパッチ起動時にcamera_para.dat が見つからないエラーが出たら、この設定ができているか確認して、修正する。

・カメラ設定ファイル camera_para.dat を認識するように設定変更

手順

・アプリケーションフォルダの編集は管理者権限でロックされているので一時的に解除する。
(担当教員が操作)
/Applications/Max5/Cycling '74/init/max-fileformats.txt
に次の行を追加。
max fileformat .dat DATA 0 "data file" file;
・Max を起動していたら、再起動する。

動作確認

・サンプルマーカで動作テスト

マーカのパターンファイル(patt.a 〜 patt.g)が multi フォルダに入っているので、パッチと同じ階層に移す。
パターン登録用ファイル、object_data2も同様。

作業例)

※パターンファイル patt.a - patt.g は、マーカとして利用する画像を、別途紹介予定の特徴点抽出アプリで処理した認識用データ。マーカとして利用する画像ファイル自体ではない。

※パターン登録用ファイル object_data2 は、このマーカ認識アプリで使用する複数のマーカのパターンファイルのファイル名を登録するためのファイル。

・パッチの動作確認

付属のマーカ画像(pattMulti.jpg)をタブレットなどで撮影し、準備する。 ファイルの内容は、 A B C D F G の6個のアルファベットが、それぞれマーカ認識用の黒枠の中に描かれているもの。
 pattMulti.pdf は、余白が無いのでマーカ認識がうまくいかない可能性があるので、今回は使わない。
パッチを開き、カメラをON。マーカをmacのカメラに写す。
object_data2 の設定ファイルには、 B G A D の4個のマーカが登録されている。 各マーカーの位置に CGが描画されていたら動作OK

※うまくいかないときは

→・Maxウインドウ(⌘+M)の表示にエラーが出ていないか確認する。↓正常な例。

Webカメラは起動する(openメッセージでLED点灯)が、マーカの読み取り開始(metroオン)でMaxが落ちる場合

→ Maxを 終了する。 メニュー → Max/MSP → 終了(⌘Q)

※ 複数回のパッチ起動、もしくは、同時に複数の jit.artkmulti オブジェクトを起動すると、調子がおかしくなる模様。

その場合は、Maxを再起動する。

※パッチを複数回開いたり、同時に2つ開くと動作不良になります。要Max再起動。

オリジナルマーカの作成とパターンファイル作成

・マーカの作成サイトの利用方法

作成手順の確認:

マーカのパターンファイル作成と登録の手順を覚えるために付属のマーカの適当な文字で以下を試す。

サンプルパッチの動作確認で使用した、パターン画像を、タブレットやスマフォの画面に表示する。

以下のツールでスマフォ画面などを撮影し、パッチで使用するマーカー識別用ファイルを作成する。

サンプルのMax のパッチは止める。(マーカ作成のためWebカメラを使うため)
実習室PCのsafari ではFlashが動かない(2015年実習室環境)ので、Chrome で以下を開く

マーカ製作ツールのサイト: http://flash.tarotaro.org/blog/2009/07/12/mgo2/

↑使用方法は、授業で実演。

マーカをスマフォ画面に3個以上、同時に表示し、

認識できた中から、不要な認識結果は削除して、

3つ選び、保存(save)する。

パターンファイルは、zipファイルでまとめてダウンロードされる

DLファイルを展開し、

1.pat と2.pat と3.pat のファイルを、

pat1.a pat2.b pat3.c

と名前を付け替える。

パターンファイルを、サンプルバッチと同じ階層に置く。

保存したファイルを、control + クリックし、情報を表示。
ファイルの拡張子(拡張子を表示) と
アクセス権限を修正(読み書き可能) にする。
ファイル名と拡張子を変更した↑のファイルを、パッチと同じ場所におく。

※一度に複数のマーカーを撮影せずに、1個ずつマーカを撮影する場合は、ファイル名をつけるときに

↓のように、拡張子と保存先を指定すると、 ctrl+クリック から情報表示 以降の手順を省略できる。

macのアプリ 「テキストエディット」 で object_data2 を開き、編集する。
  ※multi フォルダの中のobject_data2ではなく、先ほどコピーした方
【編集内容】 4個のマーカが登録されているので、どれかと置き換える。ファイル名の部分を、↑で作成したパターンファイルの名前に修正する。
登録可能数は上限4個まで。
例)
動作確認:

ブラウザのマーカ作成ツールは閉じる。(サンプルパッチでWebカメラを使うため)

サンプルバッチを開いている場合、一旦閉じる
念のため、Max/MSP も一旦終了し、再起動する。

サンプルパッチ を起動し、マーカを撮影して動作するか確認。

※うまくいかないときは

・Maxのカメラが動作しない。 → ブラウザのマーカ作成サイトがカメラを使用しているなら、ページを閉じる。

・object_data2 が権限問題で編集できない。 → テキストエディットを検索して起動する。ファイメニューからobject_data2を開く。

・サンプルファイルが起動しない。または、カメラを起動する、マーカを認識するタイミングで落ちる。

→ マーカファイルが読み込め無いことが原因の可能性。Maxウインドウにエラーが出ていないか確認する。

→ ファイル名の指定に問題がある場合がある。 パターンファイルを ctrl + クリックして、ファイル名や権限、特に拡張子について確認する。

・マーカのファイル名の指定が面倒やうまくいかない場合は、 今回作成したマーカーのpatt ファイルと、既存の、patt.a - patt.d を置き換える。object_data2 は修正せずそのまま使う。

自作マーカのデザインと登録:

画像編集ツールでマーカ作成。 作成上の注意(http://sixwish.jp/AR/Marker/section01/)。

イラストレーター、フォトショップ、その他、ツールはなんでもよいので、ARマーカーの太い黒枠線の中にマークや文字をデザインする。

付属のサンプルマーカのpdfファイルをワープロソフトで開き、手軽に済ませてもOK

※ 黒枠の外側の白い余白も必要。黒枠の比率は変更しない(削ったりしない)。マーカは回転対称のものは不可(丸や三角よりも、文字など、多少複雑なものが良い。l(エル)やo(オー)も不適切。マーカーの位置や

例)

※ 前述のマーカ作成サイトで↑のマーカを撮影し、パターンファイルを作成する

※ object_data2 を編集し、パターンファイルのファイル名を登録する

※ パターン登録サイトのカメラウインドウは閉じる

※ サンプルパッチを閉じ、Maxも終了し再起動する

動作確認をすること。マーカを認識できたら成功。

作業済みフォルダを用意してある。利用するとよい。フォルダ名 3114888ARToolkit for Max

また、ARマーカの XYZ座標や、回転角度(W)や、マーカの認識・衝突検知 について、より利用しやすくしたサンプルを

ファイル名 ARMakers4.maxhelp

として、上記のフォルダに入れておく。加工して、作品に利用するとよい。

※検出結果について

find chage は、 マーカを認識していない状態で 0 、 認識すると 1 、 マーカを認識していない状態で、他のマーカを認識すると 0 となる。

マーカを認識できないときに、即座に 0 にはならない。おそらく、ノイズや処理落ちなどで、全マーカをロストした場合は、マーカが一時的に消えているという処理にするためと推測。

衝突検知について -1 で、衝突なし。 他のマーカと衝突した場合、衝突したマーカの番号を出力。

マーカを誤認識(1が4と認識)した場合、お互いに(1と4)衝突したと判定される。

上記のフォルダに収めたパータンンでは、マーカ1のA と マーカ4のK を誤認識しやすい。

ボールや箱だけではおもしろくない:

オブジェクト jit.gl.model のヘルプパッチ参照。 obj 形式のメッシュモデルを読み込み、表示しているサンプルがある。テクスチャーはモデルデータとは別のオブジェクトから指定する。

アニメーション再生などよる高度な機能は、Max5では困難。3rdパーティ製のオブジェクトやより新しいMaxが必要。

C108情報実習室の他の環境で、ARToolkit を利用する場合の注意点:

jit.artkmulti オブジェクトは、mac + Max5 での利用を想定。 Max6 や Max7 など新しいバージョンで動かすには、パッチの修正が必要。

修正ポイント: jit.gl.render から draw_pixels メッセージがMax6以降で、廃止された。該当部分を削除し、代わりに、 jit.gl.videoplane を利用する。

※ 動作確認はしていない。動くと予想。

※※ Cycling 74のサイトから、旧版のMax5 と Max6 はDL可能。

windows + Max5 で試す場合は、 Max の 64bit版ではだめ。32bit版を使用する。

※ 動作確認はしていない。動くと予想。

windows10 + Max7(32bit版) を試したところ、動作しなかった。諦める。諦めない人は、githubに、jit.artkmulti のコード(ライセンスLGPL)があるので、自分で移植してコンパイルする。

その他の回避手段: ARマーカを利用可能なアプリで、OSCなどネットワーク通信対応のアプリを探す。例えば、processing で、ARマーカ認識プログラムを用意し、マーカの座標をMaxにOSCで送る。ここまでやるなら、processing でAR処理全部プログラムしたほうが楽そう。

Unity + ARマーカーの Asset を利用する。おそらく、カメラ画像に、自作モデルをARマーカの位置に出すだけなら一番楽そう。その後のゲーム制作も楽。ただし要プログラミング。

以下はメモ。

Arduinoへの加速度センサーの組み込み例を写真で示す。パッチも用意する。

Fantastick で iPad と Max7 を接続。

資料修正 iOSの設定メニューで Fantastickのメニューが出てこない場合、設定メニューの検索機能で検索すると見つかる場合がある。

fantastick.maxhelp に調整版を用意する。OpenGLレンダリングのサブパッチの方を使用する。composerの描画は遅すぎる。

マルチタッチでXY座標取る部分を追加。iPadの解像度とパッチの解像度がずれている問題への対応。タッチセンサーはずれていないかも。

2016年度資料

授業内容がイマイチな件:

・人工知能を用いたアプローチが不在(画像認識・処理・音声認識・処理、学習、判定、分類 など)

・IoTへのアプローチが不在(無線系の技術、 BLE、センサータグなど。USBやWebカメラなど有線接続主体)

・ドローンやロボティクスなど、キネティックアート系のネタが欲しい。

・3Dプリンターやレーザーカッターなど、デジタルファブリケーショントの接続。

・ゲームエンジンの利用。

・オーディオインターフェース、鍵盤、ギター、照明装置、レーザーなどデバイスの幅が足りない。

・作品サイズ小さめ。プロジェクター前提、ステージパフォーマンス前提、5.1chなどサラウンド環境。ウーファー利用。

・OS標準のソフトMIDIだけ使用。MIDI音源やVSTプラグインを利用してもよい。

・多数のセンサー、多数のデバイスを連動させた作品例の提供

・デザイン思考が不在

・etc

試用期間:

Max5 6 7 をDLして、自分のパソコンで試してみよう。試用期間は30日。機能制限なし、全機能利用可能。https://cycling74.com/downloads/

mac版、windows版があります。

※ windows版では、カメラキャプチャオブジェクトが、 git.qt.grab から、git.dx.grab になるので要変更。

実習室のMaxは 5 です。6 も 7 も それぞれUIが異なります。7のUIは、 .4に近い。原点回帰で使いやすくなった印象(慣れたユーザに)。

落穂拾い:

デザイン思考の概要を15分で学ぶページ http://interactiondesign.jp/designthinking/

照明を MAX/MSPで制御:

MIDIで照明コントロール https://www.youtube.com/watch?v=jNHxXj7v27c

ステージ用ライトLEDムービングヘッド https://www.youtube.com/watch?v=CzUgtV7mc5Y

ステージ照明制御にも活用されるMIDI http://www.dtmstation.com/archives/51959244.html

MAX/MSP で DMX制御 http://akihikomatsumoto.com/maxmsp/dmx.html

Max/MSP (MIDI) - CYBER PAK test https://www.youtube.com/watch?v=uFQAOtyvw4s

ARToolkit リベンジ:

先回の資料に、加筆修正。ハマりやすいポイントを示した。

※コツ。パッチが2重起動(ウィンドウが重なっていることもあり、気が付かない)、2回目の起動、などの場合、マーカを認識した瞬間に落ちる症状発生。

※※ 対処としては、Max/MSP を終了し、再起動する。マーカを認識しない場合も、再起動を試す。

先回の内容で、マーカ1、2、3を、サンプルに添付の A B C に差し替え、 マーカ4を、 K (イラストレーラで作成) に入れ替えた作業済みフォルダをレポートフォルダに置いておく。前回うまくいかなかった人は、参考にするとよい。

フォルダ名 3114888ARToolkit for Max

また、ARマーカの XYZ座標や、回転角度(W)や、マーカの認識・衝突検知 について、より利用しやすくしたサンプルを

ファイル名 ARMakers4.maxhelp

として、上記のフォルダに入れておく。加工して、作品に利用するとよい。

※検出結果について

find chage は、 マーカを認識していない状態で 0 、 認識すると 1 、 マーカを認識していない状態で、他のマーカを認識すると 0 となる。

マーカを認識できないときに、即座に 0 にはならない。おそらく、ノイズや処理落ちなどで、全マーカをロストした場合は、マーカが一時的に消えているという処理にするためと推測。

衝突検知について -1 で、衝突なし。 他のマーカと衝突した場合、衝突したマーカの番号を出力。

マーカを誤認識(1が4と認識)した場合、お互いに(1と4)衝突したと判定される。

上記のフォルダに収めたパータンンでは、マーカ1のA と マーカ4のK を誤認識しやすい。

ボールや箱だけではおもしろくない:

オブジェクト jit.gl.model のヘルプパッチ参照。 obj 形式のメッシュモデルを読み込み、表示しているサンプルがある。テクスチャーはモデルデータとは別のオブジェクトから指定する。

アニメーション再生などよる高度な機能は、Max5では困難。3rdパーティ製のオブジェクトやより新しいMaxが必要。

C108情報実習室の他の環境で、ARToolkit を利用する場合の注意点:

jit.artkmulti オブジェクトは、mac + Max5 での利用を想定。 Max6 や Max7 など新しいバージョンで動かすには、パッチの修正が必要。

修正ポイント: jit.gl.render から draw_pixels メッセージがMax6以降で、廃止された。該当部分を削除し、代わりに、 jit.gl.videoplane を利用する。

※ 動作確認はしていない。動くと予想。

※※ Cycling 74のサイトから、旧版のMax5 と Max6 はDL可能。

windows + Max5 で試す場合は、 Max の 64bit版ではだめ。32bit版を使用する。

※ 動作確認はしていない。動くと予想。

windows10 + Max7(32bit版) を試したところ、動作しなかった。諦める。諦めない人は、githubに、jit.artkmulti のコード(ライセンスLGPL)があるので、自分で移植してコンパイルする。

その他の回避手段: ARマーカを利用可能なアプリで、OSCなどネットワーク通信対応のアプリを探す。例えば、processing で、ARマーカ認識プログラムを用意し、マーカの座標をMaxにOSCで送る。ここまでやるなら、processing でAR処理全部プログラムしたほうが楽そう。

Unity + ARマーカーの Asset を利用する。おそらく、カメラ画像に、自作モデルをARマーカの位置に出すだけなら一番楽そう。その後のゲーム制作も楽。ただし要プログラミング。

kinectの利用

かつて、モーションキャプチャーカメラ Kinect を使用した、Max/MSP + Kinect (xbox 360用やfor windows)の組み合わせの作品や、Max用オブジェクトはいくつかあった。

【Max】Kinect を使ってダブステップを演奏してみた

http://motokiohkubo.hatenablog.com/entry/2013/06/23/210031 初代kinect for windows をOpenNI と OpenKinectで利用。

http://jpbellona.com/kinect/

http://synapsekinect.tumblr.com/

↑上記の3つ、MacとMaxで頑張ってKinectを使っている例。

しかし、MacにKinectをセットアップするのはとても大変。また、新バージョンの、Kinect v2をmac で使うのはさらに大変そう。

そこで、Winddows Kinect を動かし、モーションキャプチャーしたデータを、 OSC通信でネットワーク経由で、Max/MSPに送り、処理する手法を利用する。

http://yoppa.org/ma2_10/2279.html processing と OSC通信について

http://qiita.com/ya7gisa0/items/0bcad395f9e8e8935f71 Unity と OSC通信について

利用するアプリのDL元

https://github.com/microcosm/ofxKinectV2-OSC

↑ KinectV2-OSC.exe を Kinect v2 のドライバとSDKをセットアップしたWindows8.1以降のパソコンで実行する。

このサイトでは、Mac側の動作確認用アプリのコードが掲載されているが、利用しない。

Max/MSPのOSC処理オブジェクト(udpreceive)を利用して、モーションキャプチャーデータを利用する。

実習:

準備:

C108情報実習室の室内サブネトワークに、Kinectを接続したWindows2台を用意する。

予定) 13番の iMac に ZEMI-JM-19 ポート 54321 に配信

予定) 19番の iMac に ZEMI-JM-33 ポート 12345 に配信

それぞれで、KinectV2-OSC.exe を起動する。

2台のWindowsから、室内サブネットワークにブロードキャストでモーションデータを配信する。

※ブロードキャスト配信 → 全PCに対して送信すること

受信実験:

・レポートフォルダから KinectTest フォルダを デスクトップにコピーする。

・KinectTestフォルダ内の KinectTest.maxpat を開く

※このパッチでは、http://cnmat.berkeley.edu/patch/4029 で提供されている外部オブジェクト OSC-route を利用して、OSCメッセージを解析している。

KinectTest.maxpat

↑パッチの解説:

Kinect の取得する関節の部位25箇所の 名称 と 場所 については、こちらを参照 http://www.buildinsider.net/small/kinectv2cpp/05

モーションキャプチャした25関節から、

5関節の XYZ座標とトラッキング状況(有り 1 か 無し 0。 推定によるトラッキングを1に含む)

頭 右足 左足 右手 右手 左手

右手の 開(パー) 閉(グー) 検出なし 不明(チョキ。指1、2、3。不正確)

右手の 開(パー) 閉(グー) 検出なし 不明(チョキ。指1、2、3。不正確)

を検出している。

修正箇所

OSC-route オブジェクトの引数、 /Head などを、コメント欄にある /Neck などの関節名称と差し替えたり、関節を追加(6個目〜)できる。

p sphere サブパッチをダブルクリックして開き、中のパッチを編集する。オブジェクトのサイズや、色(RGBA 0. - 1.)が変更可能。

オブジェクトのタイプを sphere から、cube などに変更可能。

問題点

Kinect v2 は、6人まで別々にモーションキャプチャが可能であるが、このパッチでは、プレイヤーの識別番号(id)を区別していない。

複数のプレイヤーを認識した場合、一人のプレイヤーが分身したような扱い(超高速移動)で処理される。

(※次回対応できたらいいな)

作品制作のネタ補足:

Max/MSP で複数のカメラを使う。

レポートフォルダのサンプルパッチ 20160628demoCam.maxpat を参照

USBカメラを複数接続し、↑を利用するだけ。ライブ映像のミキシング、カメラのA/Bロール、フェードイン・アウト、合成、などに利用。

特殊なカメラを使う。

赤外線カメラの利用。Webカメラを改造して、赤外線カメラを自作できる。(デモします)

赤外線カメラには、プロジェクターや液晶モニタの 可視光 は映らない(黒い画面として映る)。

暗闇の名でも、赤外線ライトを当てれば、被写体を撮影可能。

この2つの特性を組み合わせて、被写体にプロジェクターで当社した映像に邪魔されることなく(映像は映らないので)、

被写体の動きだけを捉えてエフェクトを掛けることができる。

Kinect v2 の深度センサー(距離センサー)も、赤外線カメラのように、被写体の服の色や照明に邪魔されることなく、被写体の動きを捉えることができる。

しかし、上記のOSC通信では、kinectからはモーションキャプチャ データのみ送信しており、カメラでとらえた映像は送信していない。

そのため、kinect v2 を直接使用した場合に可能な深度情報を用いた、

被写体と背景の分離 → 被写体のみ または 背景のみにエフェクトを掛ける

はできない。

Reactable for Max の紹介:

テーブル上に配置したマーカをてで操作することにより演奏する楽器

タッチスクリーンではない。

タンジブルインターフェース(触れることのできるインターフェース)

例) http://japanese.engadget.com/2009/04/09/ui-slap/

ビョークの楽曲で使用され、有名になった。紹介記事 http://ascii.jp/elem/000/000/196/196619/

演奏の例 https://www.youtube.com/watch?v=Mgy1S8qymx0

Reactabel http://reactable.com/ タブレット用のアプリもある

Max/MSP と Reactable を連動するには、ReacTIVsion http://reactivision.sourceforge.net/ を使用し、マーカ認識用PCと音源PCをネットーワクでつなぐ。

ループバックip を指定して自分から自分へ通信し、1台のPCで、マーカ認識と音響生成を行うこともできる。

Mac版 Windows版 がある。

講義では、Demoするだけ。 興味がある人は、各自で試してほしい。

映像処理と音楽作品:

【Max】赤い色に反応してドローンを生成するおもちゃを作ってみた http://motokiohkubo.hatenablog.com/entry/2013/06/21/215206

色の識別と領域判定

サンプルパッチを、 DetectColrRect.maxpat として、レポートフォルダに置いておく。

指定した色の存在範囲(四角形で)をカメラ画像から取得する。

応用例) ScanColorRect.maxpat

カメラからラインスキャン(線状に切り取る)画像を取得する。

スキャン画像に対して、↑のパッチを適用する。

電子工作、見本集:

半完成品の回路を作っておく。

ブレッドボードに、Gainerから、 +5V 電源 と GND をつないで、利用してみよう。

Max に外部のMIDI機器、鍵盤などをつないでソフトシンセを鳴らしたり、 MaxのMIDI信号で、外部のMIDI音源を鳴らす例を示す。

サンプルパッチ:

MIDIKeyboardSample_w_Out.maxpat