Kinect TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

※当サイトにはプロモーションリンクが含まれます。

Kinect TOP の深度・カラー画像取得機能を示すサムネイル

記事更新の通知はXでアナウンス٩(๑❛ᴗ❛๑)
→ @maru6o6をフォロー

概要 📖 – 深度と色映像を取り込む

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 テクスチャ (モードに応じたチャンネル数・ビット深度)
CHECK

初心者の方は、以下日本語書籍も手元にあると安心です😊

まる。
まる。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!


パラメータ解説 ⚙️

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 合成で重ねると、グリーンバック無しのリアルタイム人物切り抜き合成が実現できます。

  1. Kinect TOP を配置し、Hardware Version を使用するセンサー世代に、Image を Depth に設定
  2. Mirror Image をオンにして鏡像表示にする (体験者が画面の同じ側に映る)
  3. Threshold TOP を接続し、人物が立つ距離 (例: 1.0m 以下 ≒ 0.12 以下) でしきい値を切ってマスクを作成
  4. 背景映像 (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 点群としてリアルタイム可視化できます。

  1. Kinect TOP を配置し、Hardware Version を Version 2、Image を Color Point Cloud に設定
  2. Unknown Point Value を (0.0, 0.0, 100.0) にして無効ピクセルを遠方に張り付け、シーン外に逃がす
  3. TOP to CHOP で点群テクスチャを XYZ チャンネルとして取り出す
  4. 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: アスペクト比 X
  • aspecty: アスペクト比 Y
  • depth: 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 レンジによるクランプ / 除外処理を追加

参考資料 📚

その他 🔗

公式リソース 📖


関連まとめ 🔗

ファミリー別一覧 📑

厳選オペレータ ⭐

逆引き 🔎


この記事はLLMと共に内容を執筆、更新しています。
なるべく正確な情報を心掛けていますが、最新バージョンとの項目差異など情報の不一致を見つけたらXもしくはInsta、メールなどから管理者までご連絡いただけると嬉しいです🫠


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガ(8年前にRYT200取得)やサウナ、美容EMSや電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした、生体情報の解析とインタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

日常を垂れ流すだけのアカウント
Instagram:@malmal0v0

発信を今後がんばる予定のアカウント
Youtube:https://www.youtube.com/@malmal0v0

まる。をフォローする
その他の記事はこちら
今流行りのクリエイティブツール、Touchdesignerとは?業界の現役ちいかわエンジニアができることを解説ッ
トカゲのポーズ(ウッターナ・プリシュターサナ)のやり方|効果・コツ・注意点【ヨガ】
針の糸通しのポーズ(パールシュヴァ・バーラーサナ)のやり方|効果・コツ・注意点【ヨガ】
ウサギのポーズ(ササンガーサナ)のやり方|効果・コツ・注意点【ヨガ】
スフィンクスのポーズ(サーランバ・ブジャンガーサナ)のやり方|効果・コツ・注意点【ヨガ】

タイトルとURLをコピーしました