関節の空間上のx,y,z座標を取得する
KinectV2OSC
Microsoftの昔の製品、ゲームコントローラ KinectV2 を使う。専用カメラをWindowsPCに接続してOSCでネット経由でiMacのMax8に情報を渡す。
複数人の同時認識可能。
OSC通信の準備:
左サイドメニューのパッケージマネージャのアイコンから、CNMAT外部パッケージをダウンロードしてMax8に追加する。
C108のiMac全台に対してKinectを接続したノートPCからデータを送信している。(ブロードキャスト 192.168.112.255)
※NBUWiFiに接続する必要はない
レポートフォルダ MA10素材 KinectV2OSC2022.maxpat
ESCボタンで全画面表示のON・OFF
Kinectを接続したノートPCからモーションキャプチャの情報を受け取る。
ノートPCは3台まで用意できる。適当に選んで利用する。
udpreceive のどれか1つと p ids を接続する。
1台のKinectで最大6人までのモーションキャプチャを行える。
Kinectが対象(人)を見失ってトラッキングが外れて再認識すると、新しい別の対象として認識する。
以下の例では、対象 1 2 3 を1人目のモーションキャプチャとしてボール5つで 頭 両手 両足 を3DCGで描画する。
対象 4 5 6 を同様に2人目のキャプチャとして描画する。
対象の番号の割り当ては変更可能。異なるキャプチャ対象を同一の人物としてトラッキングすると高速移動による【分身】をしたような感じになる。
このパッチャーには2人目の描画サブパッチャー(p render_kinect)まで用意してある。
※描画サブパッチャーを複製して3人目以降を描画することができる。
モーションキャプチャの利用例
黄のパッチコード: 手を開いたとき(閉じたときは無反応)に球体(Sphere)の色を変更。右手で黄色、左手で赤。
青のパッチコード: 頭の位置と立方体(Cube)が近づくと音を出す。
p shereや p cube を複製するとCGも複製される。
キャプチャ情報の調整
p render_kinectサブパッチャーをダブルクリックで開いて編集する。
手の形は パー グー チョキ を識別できる。
頭 両手 両足 以外の部位をモーションキャプチャするには、関節名(/Neckなど)を OSC-route に追加するか、既存の部位と入れ替える。
キャプチャした部位の座標を外部(メインのパッチャー)に出力するために、アウトレットを追加するか接続を入れ替える。
CGの調整
p shapeサブパッチャーを開いて編集する
改造ネタ
pipe オブジェクトでキャプチャした部位のXYZ座標を遅延させてたの3DCGオブジェクトに伝搬させる。
----------begin_max5_patcher----------
693.3oc2W11aaBCD.9yDo9e.4Omg7K.F1ekopJC305Nvf.SWpp1+8A1ARTRf
31AUqQJAKe9k6d3Ne93s613.RJ2wa.te28GtNNu0IwQKqWhyf.GPAaWZNqQO
Qfj+6xjmAa2OlhuSokqdptcTprsPHy4J8RPGIsrUcl3JlJ8Ig7wGp4oJiwf7
i8facI9z9FrtCF6AcueXQhLsV6LkuQvi50r8pWq3l8A.buWOzetaSeaWyVqI
MoUoJkfClYMqfq30OvkrjbsFfKFvwHMiHCv9COuLvnoANgIe7qBzXZn8Piiu
MflD9N7zX55A8TGjqXo+xE5Y9c4SzjO7IZbHouAEM+QZbv5bjNsrnfKUmCcF
Om8pqRTveW4vfyPrOAqQknczzHMvvo.1G7wcjsEI75kK5EOWzK8XnBfy6EmK
w71+8H3LAK+S5PKZeza+Se3vyKRMJbZp+YdIS80.YLw2djo2DHOlixFjitIP
dHv1baz0XN3lJx1Nl8uoBssiYzJx7zkcrdUcPoVUzw5Tywj.Kp3iD6hfP3kw
1+xXStN1HZrMbil+VZ8+y32rSfbg7rOfTaP8Cbxaklx15zgcdnJO2iroLdiR
HYJQWs3GlU+m2c7rRKyKqMiC8hgAQQXR.N1GgngcSzCN1ymBChunHT+qho8n
VS.xJBzbhWFE5asBQKiBQVqvE5UpUwDmLqx5LtNl.tPV.5pDGuxV.9pV.cEs
.L1F2PucRNLoBQVUoPp1mPfDg7B5yBoutkfiF6sHAJVag+ul6vJ6ep.czmUf
9oYbVbK3pA5mljcYsfPqxusbIvo1puEJ+cjs5CN0c7rppW30M6WgQUck37r4
jTzVSegzz2TWBnl+hXXIlJz.r5t5TTcEozVqsPvtv8EWCJJ6boxVwfWsG1dU
qqhR1UVbSEyfktZq61zMg+xUZm+G
-----------end_max5_patcher-----------