
概要 📖 – 顔の立体形状を生成
Face Track SOPは、Face Track CHOP の顔ランドマークから、表情に追従する立体的な顔メッシュを生成する SOPです。Face Track CHOP が出力する顔特徴点を参照し、それらを頂点としたメッシュ形状を構築することで、顔追従のテクスチャ表現や顔形状を起点とした演出を実現します。
主な用途 🎯
- リアルタイム顔メッシュ生成 — Face Track CHOP が抽出した顔特徴点から、表情に追従する立体的な顔メッシュをフレーム単位で生成
- フェイスフィルターやメイクアップ表現 — 生成された顔メッシュにテクスチャや素材を貼り付け、顔の上に動くオーバーレイを重ねる用途
- 顔形状に合わせた光や粒子の演出 — 顔メッシュをレンダリング対象として、ライト追従や粒子放出の起点に活用
- Direct to GPU での軽量化 — GPU 直接転送モードで CPU 処理を省き、高解像度や多人数同時表示でも軽快に描画
- Pre-Transform Mesh による画像との整合 — 入力映像のカメラ座標系に位置揃え、または原点での独立変形のどちらかを選択可能
データフロー 🔄
入力: Face Track CHOP (映像から抽出された顔ランドマーク)
↓
顔メッシュの構築・補正 (Pre-Transform Mesh / Compute Normals 設定に応じて整合・法線生成)
↓
(任意) Direct to GPU で GPU バッファに直接転送
↓
出力: 表情に追従する立体的な顔メッシュ SOP
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Face Track Page 📁
入力ソース指定 🔗
Face Track CHOP .chop 📡
– Face Track CHOP (顔追跡 CHOP のパス) — メッシュ生成元となる Face Track CHOP の OP パスを指定します
– 指定された CHOP の顔ランドマーク情報を参照し、それらを頂点としたメッシュを構築
– パスが空または無効な場合はメッシュは生成されません
GPU 直接転送 🚀
Direct to GPU .directtogpu ⚡
– Direct to GPU (GPU へ直接転送) — オンにすると、メッシュデータが CPU を経由せず直接 GPU バッファに転送されます
– 高速で軽量、多人数の顔同時表示や高解像度時のパフォーマンスに有利
– オフ時は通常の SOP データとして CPU 側に展開され、後段の SOP で変形・属性追加が可能
メッシュ位置整合 🎯
Pre-Transform Mesh .pretransform 🧭
– Pre-Transform Mesh (メッシュを事前変形して画像と整合) — オンにすると、生成された顔メッシュが元の入力映像に重なる位置・スケールに自動配置されます
– 映像上に顔メッシュを重ねて表示するフェイスフィルター用途では基本オン
– オフ時はメッシュが原点 (0, 0, 0) に元のスケールで配置され、独立した 3D シーンで再利用可能
法線の自動生成 ✨
Compute Normals .normals 💡
– Compute Normals (頂点法線を自動生成) — オンにすると、顔メッシュの各頂点に対してスムーズな法線が自動計算されます
– 顔メッシュに Phong MAT や PBR MAT で陰影をつけたい場合は基本オン
– 後段の SOP で法線を独自に計算する場合や、シェーダー側で計算する場合はオフにして処理コストを削減
実践アイデア 💡
Example 1: リアルタイム顔メッシュ表示 🎥
Video Device In TOP → Face Track CHOP → Face Track SOP → Geometry COMP → Render TOP
Web カメラの映像を Face Track CHOP に通して顔ランドマークを抽出し、その出力を Face Track SOP に参照させて立体的な顔メッシュを生成、Geometry COMP に流して Render TOP でレンダリングする基本フロー。Pre-Transform Mesh をオンにすると映像内の顔位置にメッシュが整合します。
- Video Device In TOP で Web カメラの映像を取り込む
- Face Track CHOP を配置し、Video Device In TOP を参照させて顔ランドマークを抽出
- Face Track SOP の
Face Track CHOPパラメータに 2 の OP パスを指定 Pre-Transform Meshをオンにして映像と位置を揃える- Geometry COMP に Face Track SOP を流し、Camera COMP / Render TOP で描画して確認
Example 2: 顔メッシュにテクスチャを貼る 🎨
Face Track SOP → Texture SOP (UV 設定) → Material SOP (Phong MAT + texture) → Geometry COMP
Face Track SOP で生成した顔メッシュに対し、Texture SOP で UV 座標を整理し、Material SOP 経由で Phong MAT にテクスチャ画像を割り当てることで、フェイスペイントやメイクアップ風のテクスチャを顔に追従させて表示できます。Direct to GPU はオフにして後段 SOP で UV を操作できる状態にしておくのがポイント。
- Face Track SOP の
Direct to GPUをオフにして後段 SOP で加工可能にする - Texture SOP で顔メッシュに UV 座標を割り当てる
- Phong MAT (または PBR MAT) を作成し、Color Map にテクスチャ画像 TOP を割当
- Material SOP で前段の SOP に MAT を割当
- Geometry COMP 配下に配置し、Render TOP でテクスチャ付き顔メッシュを描画して確認
Example 3: GPU 直接転送で高速描画 ⚡
Face Track CHOP → Face Track SOP (Direct to GPU オン + Compute Normals オン) → Geometry COMP → Render TOP
Face Track SOP の Direct to GPU をオンにすると、メッシュデータが CPU を経由せずに直接 GPU バッファへ転送され、CPU 負荷が大きく軽減されます。高解像度ライブ配信や複数人同時検出時のフレームレート確保に有効です。後段の SOP 編集ができなくなるため、レンダリングするだけのワークフローに適しています。
- Face Track SOP の
Direct to GPUをオンに切り替える Compute Normalsをオンにして陰影が正しく出るようにする- 後段に SOP 加工を挟まず、直接 Geometry COMP に接続
- Geometry COMP に Phong MAT / PBR MAT を割り当て、Render TOP で描画
- パフォーマンスモニターで CPU フレーム時間が短縮されたことを確認
関連オペレータ 🔗
類似機能OP 🔍
- TODO
組み合わせ推奨OP 🔄
- Face Track CHOP — Face Track SOP の前段に必須の顔ランドマーク抽出 CHOP
- Video Device In TOP — Web カメラ等のライブ映像入力源として Face Track CHOP に流す
- Movie File In TOP — 録画済の映像ファイルを顔追跡ソースに流す用途
- Geometry COMP — 生成された顔メッシュをレンダリングパイプラインに流す描画コンテナ
- Camera COMP — 顔メッシュを撮影する仮想カメラ。Pre-Transform Mesh と組合せて画面合成
前処理・後処理SOP 🎯
Info CHOP情報 📊
Face Track SOP は Info CHOP による詳細情報取得に対応しています。
ジオメトリ統計 📐
num_points: この SOP に含まれるポイント数num_prims: この SOP に含まれるプリミティブ数num_particles: この SOP に含まれるパーティクル数
GPU 転送タイミング 🎮
last_vbo_update_time: 別スレッドで SOP の CPU データを GPU 上のジオメトリデータに更新するのにかかった時間 (フレーム時間外)last_meta_vbo_update_time: 別スレッドで metaball や NURBS のようなメタサーフェスジオメトリデータを GPU に更新するのにかかった時間 (フレーム時間外)
汎用オペレータ情報 🔄
total_cooks: プロセス開始以降にこのオペレータがクックされた合計回数cook_time: 直近のクック所要時間 (ミリ秒)cook_frame: このオペレータが最後にクックされたフレーム番号warnings: このオペレータの警告数errors: このオペレータのエラー数
クック統計 ⏱️
total_cooks:total_cooks— プロセス開始以降にこのオペレータがクックされた合計回数cook_time:cook_time— 直近のクック所要時間 (ミリ秒、メッシュ生成の負荷指標)cook_frame:cook_frame— このオペレータが最後にクックされたフレーム番号cooked_this_frame:cooked_this_frame— 当該フレームでクックされた場合は1
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 顔メッシュが表示されない
✅ Solution:
Face Track CHOPパラメータに有効な OP パスが設定されているか確認- 参照先 Face Track CHOP が顔を検出できているか確認 (Face Track CHOP の出力チャンネルに値が流れているか)
- 前段の Video Device In TOP / Movie File In TOP の映像に顔が映っているか、解像度・照明条件が適切か確認
❌ Problem: メッシュの位置が映像とズレる
✅ Solution:
Pre-Transform Meshをオンにして映像座標系にメッシュを整合させる- オンでもズレる場合は Camera COMP の Field of View / 投影設定を映像取り込み時のカメラに合わせる
- Web カメラのアスペクト比と Video Device In TOP の出力解像度が一致しているか確認
❌ Problem: 顔メッシュの陰影がフラット・シェーディングが正しく出ない
✅ Solution:
Compute Normalsをオンにしてスムーズな頂点法線を自動生成- Phong MAT / PBR MAT 側の Ambient / Diffuse / Specular の設定値を確認
- Render TOP にライト COMP が含まれているか、ライトの位置・強度が適切か確認
❌ Problem: 後段の SOP でメッシュを加工できない
✅ Solution:
Direct to GPUをオフにして、後段の SOP で読めるよう CPU データとして出力する- Direct to GPU をオンのままにしたい場合は、後段の加工をシェーダー (GLSL MAT / GLSL TOP) 側で行う
- 頂点属性 (UV / 色など) を追加したい場合は Texture SOP や Attribute Create SOP を後段に接続
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Face Track SOP
- TouchDesigner公式ドキュメント – Face Track CHOP
- TouchDesigner公式ドキュメント – Geometry COMP

