
概要 📖 – 深度と色映像を取り込む
Kinect TOPは、Kinect センサー (v1 / v2) から深度・カラー・赤外線・プレイヤーインデックス・点群を画像として取り込む TOPです。Hardware Version でセンサー世代を切り替え、Image パラメータで取得モードを選択することで、用途に応じた画像 (カラー映像・深度マップ・赤外線・人物領域・3D 点群) を 1 つの TOP から取り出せます。
主な用途 🎯
- Kinect センサーから深度マップ (Depth) を画像として取り込み、距離情報を後段処理に流用
- Kinect RGB カメラのカラー映像を取り込み、合成・モーションキャプチャの参照映像に利用
- 赤外線 (Infrared) 画像を取得し、暗所トラッキング・マーカーレス検出に活用
- プレイヤーインデックス画像を取得して、人物ごとの領域マスクを生成
- Kinect v2 の Color Point Cloud (32-bit float XYZ テクスチャ) を取得し、点群を GPU 上で処理
データフロー 🔄
入力: Kinect センサー (v1 / v2、USB 接続)
↓
Hardware Version でセンサー世代を選択
↓
Image でモード (Color / Depth / Infrared / Player Index / Color Point Cloud) を選択
↓
カメラ解像度・ミラー・リマップ等の整形
↓
出力: TOP テクスチャ (モードに応じたチャンネル数・ビット深度)
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Kinect Page 📋
Active .active ✅
Kinect センサーからのデータ取り込みオン/オフ:
- Active:
Active(有効) をオンにすると Kinect センサーからのデータキャプチャを開始します。オフにすると取り込みを停止し、GPU / USB 帯域を節約できます
Hardware Version .hwversion 🔌
使用する Kinect センサーの世代
| 項目 | 内部名 | 説明 |
|---|---|---|
| Version 1 | .version1 |
Kinect v1 (Xbox 360 / Kinect for Windows v1) を使用 |
| Version 2 | .version2 |
Kinect v2 (Xbox One / Kinect for Windows v2) を使用 |
Sensor .sensor 🎚️
Kinect v1 専用、複数センサー接続時の選択:
- Sensor:
Sensor(センサー選択) — Kinect v1 を複数台接続している場合に、どのセンサーを使うかを指定します。Hardware Version= Version 1 の時のみ有効
Image .image 🖼️
Kinect から取得する画像モードの選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| Color | .color |
RGB カメラの生のカラー映像を取得します |
| Depth | .depth |
深度テクスチャを取得します。値の範囲は 0〜1 で、ピクセル値 1 はカメラから 8.191m 離れた点を意味します |
| Raw Depth | .rawdepth |
生の深度値を加工せずそのまま取得 (整数 mm 単位等、SDK ネイティブ形式) |
| Infrared | .infrared |
赤外線カメラの生の画像を取得します。暗所トラッキング・マーカーレス検出に有用 |
| Player Index | .playerindex |
人物ごとのインデックスを 0.1 刻みのピクセル値で出力します (player 1≈0.1 / player 2≈0.2…)。8-bit 量子化のため 0.1 × 255 = 25.5 が 25 or 26 に丸まる点に注意 |
| Color Point Cloud | .colorpointcloud |
Kinect v2 専用。32-bit float テクスチャで RGB ピクセル値が XYZ 座標 (カラーカメラ基準、単位 m) になる点群テクスチャ |
Camera Resolution .camerares 📐
Kinect v1 専用 — カラーカメラのキャプチャ解像度
| 項目 | 内部名 | 説明 |
|---|---|---|
| 80 x 60 | .80x60 |
最低解像度 (帯域節約・テスト用途) |
| 320 x 240 | .320x240 |
中解像度 |
| 640 x 480 | .640x480 |
Kinect v1 の最高解像度 (デフォルト) |
Skeleton .skeleton 🦴
Kinect v1 専用 — 全身 / 座位スケルトンの切替
| 項目 | 内部名 | 説明 |
|---|---|---|
| Full | .full |
全身 (立ち姿勢) のスケルトンを追跡 |
| Seated | .seated |
上半身のみ (座位) のスケルトンを追跡 |
Near Depth Mode .neardepthmode 🔍
Kinect v1 専用、ニアモードで 40cm 以上を検出可能に:
- Near Depth Mode:
Near Depth Mode(ニアモード) — Kinect v1 でオンにすると、深度カメラの最小検出距離が通常 80cm から 40cm に拡張されます。手元のオブジェクト検出やテーブルトップ用途で有効。Hardware Version= Version 1 の時のみ有効
Mirror Image .mirrorimage 🔄
Y 軸 (左右) で画像を反転:
- Mirror Image:
Mirror Image(ミラー反転) — 出力画像を Y 軸 (左右) 方向に反転します。鏡像表示インスタレーションで「自分が画面の同じ側に映る」体験を作るのに便利
Camera Remap .remap 🗺️
Kinect v2 専用、深度系画像をカラーカメラ空間に再投影:
- Camera Remap:
Camera Remap(カメラリマップ) — Kinect v2 でオンにすると、深度カメラ起源の画像 (Depth / Infrared / Player Index) をカラーカメラの空間・解像度にリマップします。カラー画像と深度マスクを画素ごとに重ねたいときに有効。Hardware Version= Version 2 の時のみ有効
Too Close Value .tooclosevalue 🚫
Kinect v1 専用、近接限界での代替値:
- Too Close Value:
Too Close Value(近接限界値) — Kinect v1 で「カメラに近すぎて深度を測定できなかったピクセル」に出力する値を指定します。後段で「測定不能」を判別するセンチネル値として使えます。Hardware Version= Version 1 の時のみ有効
Too Far Value .toofarvalue 🚷
Kinect v1 専用、遠方限界での代替値:
- Too Far Value:
Too Far Value(遠方限界値) — Kinect v1 で「カメラから遠すぎて深度を測定できなかったピクセル」に出力する値を指定します。Hardware Version= Version 1 の時のみ有効
Unknown Value .unknownvalue ❓
深度を測定できなかったピクセルへの代替値:
- Unknown Value:
Unknown Value(未確定値) — 深度値を決定できなかったピクセル (反射素材・センサー死角等) に出力する値を指定します。後段で「無効ピクセル」をマスクするのに使えます
Unknown Point Value .unknownpointvalue 🛰️
Color Point Cloud モードで位置を決定できないピクセルの値
| 項目 | 内部名 | 説明 |
|---|---|---|
| (0.0, 0.0, 100.0) | .onehundred |
Z=100m の遠方位置に張り付ける (シーン内に紛れず除外しやすい) |
| (-INF, -INF, -INF) | .neginfinite |
負の無限大に張り付ける (シェーダ側で isinf 判定して除外する用途) |
Common Page 🔧
| 項目 | 内部名 | 説明 |
|---|
実践アイデア 💡
Example 1: 深度マスクで人物切り抜き合成 🎭
Kinect TOP (Depth) → Threshold TOP → Composite TOP (背景映像と Over 合成)
Kinect TOP を Depth モードで動かし、近距離の人物だけが残るように Threshold TOP で 2 値マスクを作成、別の背景映像と Composite TOP の Over 合成で重ねると、グリーンバック無しのリアルタイム人物切り抜き合成が実現できます。
- Kinect TOP を配置し、
Hardware Versionを使用するセンサー世代に、ImageをDepthに設定 Mirror Imageをオンにして鏡像表示にする (体験者が画面の同じ側に映る)- Threshold TOP を接続し、人物が立つ距離 (例: 1.0m 以下 ≒ 0.12 以下) でしきい値を切ってマスクを作成
- 背景映像 (Movie File In TOP 等) と Composite TOP の Over モードでマスクを使って合成
Example 2: 3D点群をリアルタイム可視化 🌌
Kinect TOP (Color Point Cloud, v2) → TOP to CHOP (XYZ 取り出し) → Geometry COMP (Instancing で点描画)
Kinect v2 の Color Point Cloud モードを使うと、各ピクセルが XYZ 座標を持つ 32-bit float テクスチャが得られます。これを TOP to CHOP で取り出して Geometry COMP の Instance Translate に渡せば、Kinect が見ている空間を 3D 点群としてリアルタイム可視化できます。
- Kinect TOP を配置し、
Hardware VersionをVersion 2、ImageをColor Point Cloudに設定 Unknown Point Valueを(0.0, 0.0, 100.0)にして無効ピクセルを遠方に張り付け、シーン外に逃がす- TOP to CHOP で点群テクスチャを XYZ チャンネルとして取り出す
- Geometry COMP の Instancing で取り出した XYZ を Instance Translate に接続して点描画する
Example 3: 赤外線画像で暗所トラッキング 🌙
Kinect TOP (Infrared) → Math TOP (露出調整) → Edge TOP → ブロブ検出
Kinect の Infrared モードは可視光に依存しないため、真っ暗な空間でもマーカーやリフレクター入り衣装の追跡に使えます。赤外線画像を取得し、Math TOP で露出補正をかけてから Edge TOP でエッジを抽出すれば、後段のブロブ検出への入力として整います。
- Kinect TOP を配置し、
ImageをInfraredに設定 - Math TOP の Range / Multiply で赤外線画像のコントラストを引き上げる
- Edge TOP で輪郭を抽出し、後段のブロブ検出処理に渡す
関連オペレータ 🔗
類似機能OP 🔍
- Kinect Azure TOP — 後継センサー Azure Kinect 用の TOP。Kinect v2 後のラインアップ
- RealSense TOP — Intel RealSense 深度センサー用の TOP。類似の深度・カラー取得用途
- Video Device In TOP — 一般 USB カメラ・キャプチャデバイスからの映像取得用。Kinect の RGB だけが欲しい時の代替
- OAK Select TOP — Luxonis OAK カメラの画像ストリーム選択用 TOP
組み合わせ推奨OP 🔄
- Threshold TOP — 深度画像をしきい値でマスク化、距離フィルタとして利用
- Composite TOP — Kinect 映像と背景映像のレイヤ合成
- Math TOP — 深度値のレンジ変換・正規化、赤外線画像の露出調整
- Crop TOP — Kinect 視野の特定領域だけを切り出して後段処理コストを下げる
- Channel Mix TOP — プレイヤーインデックス画像から特定 player のチャンネルを抽出
- Cache TOP — Kinect 入力を一定フレーム蓄積してフレーム間差分・残像演出
- Kinect CHOP — Kinect TOP は画像取得、Kinect CHOP は同センサーのスケルトン関節座標取得を担当
前処理・後処理TOP 🎯
Info CHOP情報 📊
Kinect TOPは Info CHOP による詳細情報取得に対応しています。
TOP固有情報 🖼️
resx: TOP の出力解像度 X (ピクセル単位)resy: TOP の出力解像度 Y (ピクセル単位)aspectx: アスペクト比 Xaspecty: アスペクト比 Ydepth: 3D テクスチャ / テクスチャ配列の深度 (2D テクスチャでは 1)gpu_memory_used: TOP が消費している GPU メモリ量 (MB 単位)
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
代表的な取得チャンネル 📡
resolution_x / resolution_y: 出力テクスチャの幅・高さ (ピクセル)aspectx / aspecty: 出力テクスチャのアスペクト比 (横 / 縦)depth: ピクセルフォーマットのビット深度 (8 / 16 / 32)num_components: 出力チャンネル数 (Color=4 / Depth=1 等、Image モードに依存)gpu_mem_used: GPU メモリ使用量 (バイト)、Color Point Cloud 等の重いモードでの負荷確認に有用
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: Kinect から何も取り込めない / テクスチャが真っ黒
✅ Solution:
Activeがオンになっているか確認 (デフォルトはオフ環境もあるため要チェック)Hardware Versionが接続している Kinect 世代 (v1 / v2) と一致しているか確認- Kinect SDK (v1 用 / v2 用) と該当ドライバが OS にインストール済みか確認、USB 3.0 必須のセンサー (v2) が USB 2.0 ポートに挿さっていないか確認
❌ Problem: Kinect v1 用のパラメータがグレーアウトして触れない
✅ Solution:
Hardware VersionがVersion 2になっていないか確認 (v1 専用パラメータは v2 選択時に無効化される)- Sensor / Camera Resolution / Skeleton / Near Depth Mode / Too Close Value / Too Far Value は Kinect v1 専用 — v2 利用時はこれらは設定不可
- v1 を使いたい場合は
Hardware VersionをVersion 1に明示的に切替
❌ Problem: 深度画像とカラー画像が画素ずれする (Kinect v2)
✅ Solution:
Camera Remapをオンにして、深度系画像 (Depth / Infrared / Player Index) をカラーカメラの空間・解像度にリマップ- Camera Remap オン時は出力解像度がカラー側基準になる点に注意 (後段の Crop TOP で必要領域だけ切り出すと処理が軽くなる)
- リマップによりカラーカメラ視野外の領域は黒で埋まる — 後段のマスク処理でその領域を無視する
❌ Problem: Color Point Cloud に「飛び」点が大量に出る
✅ Solution:
Unknown Point Valueを(0.0, 0.0, 100.0)に設定し、無効ピクセルを Z=100m 遠方に張り付けてシーンから視覚的に除外- あるいは
(-INF, -INF, -INF)に設定して、シェーダ / 後段スクリプトでisinf判定により明示的に除外 - 後段の Math TOP や GLSL TOP で Z レンジによるクランプ / 除外処理を追加
参考資料 📚
その他 🔗
- TouchDesigner Wiki — Category:TOPs
- TouchDesigner Wiki — Pixel Formats 解説
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

