投稿者「ted_kanakubo」のアーカイブ

WrnchAI CHOP

概要

注:TouchDesigner Proでのみ利用可能です。
あらゆるビデオストリーム中の人物の動きを追跡するwrnchAIエンジンを使用したこのCHOPは、ボディ、顔、手の位置のチャンネルを出力します。複数の人物を同時に低遅延で追跡することができ、あらゆるカメラやビデオフィードに対応するシステムです。TouchDesignerはwrnchAI Edge SDKを使用し、すべての計算はNvidia GPUとNVIDIA CUDA® Deep Neural Networkライブラリ(cuDNN)を使用してリアルタイムでローカルに行われます。これにより、60fps以上(90-120fpsなど)で複数人のスケルトントラッキングを提供することができます。

注:Wrnchは他社に買収され、使用許諾を得ることができなくなりました。
TouchDesignerで動作させるには、wrnchAIのライセンスが別途必要です。Windows OSとTouchDesigner ProでNvidia GPUが必要です。
TouchDesignerは必ずFull Installerからインストールしてください。Lite InstallerにはwrnchAIのライブラリは含まれていません。

クイックスタートガイド
wrnchAIライセンス(購入または試用)を取得すると、wrnchAIライセンスページとwrnchAIエッジリリースページにアクセスできるようになります。

  1. wrnchAI ライセンス ページに移動します。キー」アイコンをクリックし、EdgeライセンスキーをCHOPの「wrnchAIライセンス」パラメータにコピーします。
  2. wrnchAI Edge Releasesのページにアクセスし、Win10用のwrnchAI Engineをダウンロードします。wrnchAI-Engine-1.17.0-GPU-Win10.zip のようなファイルになっています。
  3. ダウンロード後、.zipファイルを解凍し、CHOPの「Model Folder」パラメータで使用するwrnchAI trained modelsフォルダを探します。wrnchAI-engine-GPU-1.17.0-Windows-amd64/bin/wrModels のようになります。

wrnchAI CHOP は初期化に数分かかり、その後トラッキングができるようになります。初期化は新しい Model Folder が導入されたときのみ必要で、プロジェクトが開始されるたびに再初期化する必要はありま せん。

パラメータ – Setup ページ
wrnchAI License / license

wrnchAIのアカウントからEdgeライセンスキーを追加します。別途wrnchAIのライセンスが必要です。

Model Folder / modelfolder

学習済みモデルを格納するフォルダのパスを指定します。詳細は上記のクイックスタートガイドを参照してください。

GPU Device / gpu

wrnchAI を実行するために利用可能な GPU のメニューです。Default を選択すると、TouchDesignerが現在動作しているGPUが使用されます。

  • Default / default
    TouchDesignerが現在割り当てられているGPUと同じものを使用します。
TOP / top

トラッキング処理を行うTOPを設定します。

Body 3D / body3d

3D空間のボディトラッキングポイントのチャンネル(tx, ty, tz)を有効にします。

Body 2D / body2d

2Dのボディ追跡ポイントのチャンネル(u, v)を有効化します。

Body 3D IK / body3dik

3D空間のボディトラッキングポイントのIKチャンネル(tx, ty, tz, rx, ry, rzおよび関連するロールチャンネル)を有効にします。

Face Bounds / facebounds

面の位置と境界線チャンネル(u, v, width, height)を有効化します。

Face / face

すべてのフェイス トラッキングポイントに対して位置チャンネル(u, v)を有効にします。

Hands Bounds / handsbounds

手の位置と境界線チャンネル(u、v、width、height)を有効にします。

Hands / hands

すべてのハンドトラッキング点の位置チャンネル(u, v)を有効にします。

Max Players / maxplayers

追跡可能な人数の上限を設定します。各人/プレーヤーに対して、p1, p2, p3, …などの接頭辞が付いた新しいチャンネルセットが作成されます。
注:パラメータスライダは10までですが、Max Playerの値を大きくすることでより多くのプレーヤーを追跡することができます。

Aspect Correct UVs / aspectcorrectuv

TOP のアスペクト比を考慮し、u,v チャンネルの値を調整します。非正方形入力のTOPを使用する場合は、これをONにすると、u,vの位置が画像と一直線になります。

Info CHOP チャンネル

WrnchAI CHOP のExtra Informationは、Info CHOPからアクセスできます。

Specific wrnchAI CHOP Info Channels
  • initializing
  • running
  • processing_fps
  • processing_time
CHOP共通 Info チャンネル

Info CHOPチャンネルの章を参照

Operator共通 Info チャンネル

Info CHOPチャンネルの章を参照

Transform XYZ CHOP

概要

Transform XYZ CHOP は、位置とベクトルの変換に使用します。位置の変換とベクトルの変換の違いは、ベクトルには変換の平行移動が適用されないことです。
Transform XYZ CHOP は、まず最初の入力から、チャンネル名の最後の文字として ‘x’, ‘y’, ‘z’ を探し、チャンネルをグループ化します。そして、作成された各セットは、パラメータの選択によって、Position または Vector として扱われます。2番目の入力は接続可能で、Transform CHOPがサポートするチャンネルと同じフォーマットでトランスフォームを記述する必要があります。2番目の入力はTransformページのパラメータと結合され、結果の変換が入力されたポジションとベクターに適用されます。
複数のサンプルを持つ CHOP を提供することができ、1 つの CHOP でより大量の位置データを変換することができます。
Transform CHOP も参照してください。

パラメータ – Input ページ

このページでは、入力の扱いについて定義しています。

Input 0 Type / input0type

入力された0値を位置として扱うか、ベクトルとして扱うかを選択します。ベクトルには変換の並進部分が適用されず、変換の前と後に正規化することができます。

  • Position / position
    入力0値を位置として扱います。
  • Vector / vector
    入力0値をベクトルとして扱います。
Normalize / innormalize

入力がベクトルである場合、変換を適用する前に正規化することができます。

Custom Input Order / custinputorder

入力1の入力順が指定された場合、それを無視し、次の2つのパラメータで選択されるカスタム順で上書きされれます。

Transform Order / inxord

トランスフォームの順序を変えると、1ブロック進んで東に曲がるのと、東に曲がって1ブロック進むのとでは、行き先が違ってくるのと同じように、物事の進み方が変わります。行列数学の用語では、「右側にベクトルを掛ける」(列ベクトル)慣例を使用する場合、Scale、Rotate、Translateの変換順序は、T * R * S * Positionと記述されます。

  • Scale Rotate Translate / srt
  • Scale Translate Rotate / str
  • Rotate Scale Translate / rst
  • Rotate Translate Scale / rts
  • Translate Scale Rotate / tsr
  • Translate Rotate Scale / trs
Rotate Order / inrord

Transform Order(上記)と同様に、回転の順序を変更すると、最終的な位置と方向が変化します。回転の順序をRx Ry Rzとすると、最終的な回転行列は次のようになります。 R = Rz * Ry * Rx

  • Rx Ry Rz / xyz
  • Rx Rz Ry / xzy
  • Ry Rx Rz / yxz
  • Ry Rz Rx / yzx
  • Rz Rx Ry / zxy
  • Rz Ry Rx / zyx
Input 1 Pre Operation / input1preop

入力 1 のトランスフォームに対して、他のトランスフォームと結合する前に適用する操作を設定します。

  • None / none
    何も操作は適用されません。
  • Invert / invert
    変換を反転します。
  • Transpose / transpose
    変換を転置します。これは行列形式の変換に対してのみ効果があります。
  • Invert Transpose / inverttranspose
    変換を反転および転置します。転置は、入力が行列形式の変換である場合にのみ行われます。
パラメータ – Transform ページ

このページでは、入力位置またはベクトルに適用される変換を定義します。

Transform Order / xord

Transform Orderパラメータの説明を参照。

  • Scale Rotate Translate / srt
  • Scale Translate Rotate / str
  • Rotate Scale Translate / rst
  • Rotate Translate Scale / rts
  • Translate Scale Rotate / tsr
  • Translate Rotate Scale / trs
Rotate Order / rord

Rotate Orderパラメータの説明を参照。

  • Rx Ry Rz / xyz
  • Rx Rz Ry / xzy
  • Ry Rx Rz / yxz
  • Ry Rz Rx / yzx
  • Rz Rx Ry / zxy
  • Rz Ry Rx / zyx
Translate / t

XYZの移動値。

  • X / tx
  • Y / ty
  • Z / tz
Rotate / r

XYZ回転、単位は度。

  • X / rx
  • Y / ry
  • Z / rz
Scale / s

XYZスケールで縮小・拡大します。

  • X / sx
  • Y / sy
  • Z / sz
Pivot / p

上記の操作を適用するためのXYZピボット。

  • X / px
  • Y / py
  • Z / pz
Pre Operation / preop

オンにすると、このページで生成された変換を他の項と結合する前に反転します。

Multiply Order / multiplyorder

入力されたトランスフォームを、このページで指定されたトランスフォームとどのように結合するかを制御します。以下の2つの説明では、「右側のベクトル」を乗算する規約(列ベクトル)を使用しています。

  • Input, then Transform Page / inputxformpage
    トランスフォームは、`Transform Page * Input`として結合されます。
  • Transform Page, then Input / xformpageinput
    変換は、Input * Transform Pageとして結合されます。
パラメータ – Output ページ
Un-matched Channels / unmatchedchans

各種変換フォーマットの命名規則に一致しないチャンネルをどのように扱うかを制御します。

  • Warn / warn
    どの命名法にも一致しないトランスフォームチャンネルが見つかった場合、警告を表示します。
  • Ignore / ignore
    命名規則と一致しないチャンネルが見つかった場合、無視します。(警告を表示しない)
  • Delete / delete
    命名規則に一致しないチャンネルをすべて削除します。
Normalize / normalize

入力データがベクトルとして扱われている場合、これをオンにすることで、変換後に再正規化することができます。

オペレータ 入力
  • Input 0
    チャンネル名の最後の文字が ‘x’, ‘y’, ‘z’ である、変換される1つまたは複数のチャンネルセットを入力します。
  • Input 1
    適用可能なオプションの追加トランスフォームです。有効なフォーマットは、Transform CHOP と同じです。
Info CHOP チャンネル

Transform XYZ CHOPのExtra Informationは、Info CHOPからアクセスできます。

CHOP共通 Info チャンネル

Info CHOPチャンネルの章を参照

Operator共通 Info チャンネル

Info CHOPチャンネルの章を参照

Sprinkle SOP

概要

Sprinkle SOP はSOP のサーフェスまたはボリュームにポイントを追加します。Methodメニューに基づき、サーフェス上に点を作成するか、閉じたボリューム内に点を作成することができます。Surfaceメソッドでは、サーフェスの単位面積あたりの点の分布が一定に保たれます。一方、Per-Primitiveでは、各プリミティブ(通常は三角形)がそのサイズに関係なく、プリミティブごとに一定の数が与えられます。
2番目の入力は、変形するサーフェスで散布するときに使用します。一般に、変形中に点の分布が飛ぶことは避けたいので、2番目の入力として変形サーフェスを、1番目の入力として変形していないサーフェスを与えます。Sprinkle SOPは、変形されていないサーフェス上の点を分配し、次に変形されたサーフェス上の同等の場所に配置します。

パラメータ – Sprinkle ページ
Seed / seed

乱数発生を起動する任意の数(整数、非整数)を設定します。各数値は全く異なるポイント位置を与えます。

Method / method

Describes where points are located.
ポイント位置の分布方法を設定します。

  • Surface / surface
    ポイントはジオメトリの表面全体に均等に分布します。つまり、小さいポリゴンは大きいポリゴンより平均して少ないポイントが分布します。
  • Per Primitive / perprim
    ポイントは各プリミティブに均等に配分されます。つまり、各ポリゴンぶは同じ数のポイントが分布します。
  • Bounding Box / boundingbox
    ジオメトリのバウンディングボックスのボリューム内に点を分布します。これは、ボリューム法より精度が劣るものの、より高速に処理できます。
  • Approximate Volume / approxvol
    ポイントは体積の近似値内に均等に分布します。サーフェスに近い部分はポイントが少ない場合があります。
  • Volume / volume
    ポイントは、ジオメトリのボリューム全体に均等に分布します。
Number of Points / numpoints

作成するポイントの総数を設定します。

Consolidate / consolidate

残りが最小距離になるまで、ポイントを削除します。

Distance to Nearest Point / neardist

Consolidateパラメータで使用する最小距離を設定します。

Info CHOP チャンネル

Sprinkle SOPのExtra Informationは、Info CHOPでアクセスできます。

SOP共通 Info チャンネル

Info CHOPチャンネルの章を参照

オペレータ共通 Info チャンネル

Info CHOPチャンネルの章を参照

Phaser CHOP

概要

Phaser CHOPは、スタッガード(時間オフセット)アニメーション補間を行います。Phaserは1チャンネルをマルチサンプルで出力します。各サンプルは0から1まで1周期でアニメーションしますが、各サンプル値は0から上昇し1に到達するタイミングが異なります。
例えば、開始位置から終了位置までアニメートさせたいN個のオブジェクトのセットがあるとします。Numples を N に設定すると、Phaser CHOP は、0 から 1 までのサンプルをアニメーション化し、イージング機能で補間した N サンプルを 1 チャンネル出力するようになります。Phaser CHOP では、開始と終了のサイクルは CHOP の最初の入力で制御され、0 から 1 の間の値を持つ 1 つのチャンネルになることが予想されます。
0-1 の値は、Lookup CHOP を使用して、チャンネルグループをアニメーション化することができます。
デフォルトでは、タイミングは一様にずらされます。不規則に遷移をずらしたい場合は、2 番目の入力、1 つの CHOP チャンネル(通常 N サンプル)の 0 から 1 までの値のセットを使用します。phase値は、CHOP 内の他のオブジェクトとのタイミング関係を指定します。Phase 値が 1 の場合、「先行」するアニメーション オブジェクトに対応します(つまり、他のオブジェクトより先にアニメーションを開始します)。0 の値は、「遅れている」オブジェクトに対応します(つまり、イージングやアニメーションを開始するのが最後になる)。Phase 入力が提供されない場合、Phase は単純に i/N となり、N はオブジェクト(つまりサンプル)の総数、i は現在のサンプルのインデックスとなります。
また、Phaserには「エッジ」という概念があり、アニメーションするオブジェクトのグループのまとまりや、サンプルの上昇速度を表現します。値が小さいと、オブジェクトは非常に速くアニメーションを通過し、値が大きいと、非常にゆっくりと、他のサンプルと一体となって上昇します。
Phaser CHOPの背景については、David BraunのTouchDesigner Summit Talkを参照してください。その機能は、Davidの量的緩和の研究開発から多大な影響を受けています。
また、OP Snippetsも参照してください。

パラメータ – Phaser ページ
Edge / edge

2つの状態間の位相差の分離エッジを設定します。エッジが小さいほど、位相の違いによる分離が鮮明であることを意味します。Edge Inputがある場合、Edge Parameterは使用されません。

Num Samples / nsamples

出力の大きさを設定します。位相入力がある場合、このパラメータは使用されません。

Output Format / outputformat

出力の形式を設定します。

  • Multi-Samples / samples
    1つのチャンネルに複数のサンプルがあります。
  • Multi-Channel / channels
    複数のチャンネル
Info CHOP チャンネル

Phaser CHOPのExtra Informationは、Info CHOPからアクセスできます。

CHOP共通 Info チャンネル

Info CHOPチャンネルの章を参照

Operator 共通 Info チャンネル

Info CHOPチャンネルの章を参照

Ncam CHOP

概要

注:TouchDesigner Proでのみ利用可能です。
Ncam CHOPは、バーチャルプロダクションで使用するために、外部のNcam Realityシステムからカメラトラッキングデータを受信します。データはTCPプロトコルを使用してネットワーク上で受信され、カメラの位置、向き、光学特性に関する情報が含まれています。このデータはCamera COMPで使用され、物理的なカメラの動きに同期した仮想環境からのコンテンツをレンダリングすることができます。また、Ncam TOPでカメラからの画像データを受信し、レンダリングしたコンテンツと合成することも可能です。
その他のトラッキングソリューションについては、Stype CHOPとFreeD CHOPを参照してください。

パラメータ – Network ページ
Active / active

Ncamシステムからのデータ受信を停止する場合は、このパラメータをオフにします。

Protocol / protocol
  • TCP / tcp
    NcamシステムからTouchDesignerへのデータ送信に使用されるネットワークプロトコルを設定します。現在はTCPのみサポートされています。
Network Address / netaddress

データを送信するNcamサーバーのネットワークアドレスを設定します。

Network Port / port

Ncamサーバーの接続先ネットワークポートを設定します。

パラメータ – Channels ペー

これらのパラメータは、NcamサーバーからのデータがCHOPチャンネルでどのように表示されるかを制御します。

Camera View / cameraview

カメラの向きや位置の出力方法を設定します。

  • Translation & Rotation (TR) / trs
  • Matrix / matrix
  • TR & Matrix / both
  • Off / off
Camera Projection / cameraproj

カメラの投影設定をどのように出力するかを設定します。

  • Field of View (FOV) / fov
  • Matrix / matrix
  • FOV & Matrix / both
  • Off / off
Camera Properties / cameraprops

ズームやフォーカスなど、追加カメラのプロパティの出力を制御します。これらのプロパティは、正規化 (0 から 1) またはネイティブの物理単位のいずれかに設定することができます。

  • Normalized / normalized
  • Physical / physical
  • Both / both
  • Off / off
Timecode / timecode

エンベデッドタイムコードを1つのカウンターとして表示するか、時、分、秒、フレームの各チャンネルに分割して表示するかを設定します。

  • HH:MM::SS::FF / on
  • Timecode / timecode
  • Both / both
  • Off / off
Info CHOP チャンネル

Ncam CHOPのExtra Informationは、Info CHOPからアクセスできます。

Specific Ncam CHOP Info Channels
  • tracking_packets
  • optical_packets
  • distort_packets
  • film_packets
  • depth_packets
  • packets_dropped
  • incomplete_packets
  • packets_skipped
CHOP共通 Info チャンネル

Info CHOPチャンネルの章を参照

Operator共通 Info チャンネル

Info CHOPチャンネルの章を参照

Laser CHOP

概要

Laser CHOPは、レーザープロジェクターを駆動するためのチャンネルを生成します。SOPやCHOPのポイントやラインを使用し、指定したサンプルレート(通常10,000~96,000サンプル/秒)でチャンネルを出力します。Laser CHOPは、レーザープロジェクターのリフレクターの動きを最適に制御し、色彩制御を強化することができます。特に、線の直線性、端点の切り落としや引きすぎの防止、テールの除去などの制御が容易で、これらはすべてパラメータで調整することができます。
ILDAプロトコルでレーザーを制御する場合はEtherDream CHOPやHelios DAC CHOPに、LaserAnimation SollingerのAVB対応機器を使用する場合はAudio Device Out CHOPに送られ、Audio Device Out CHOPからMOTU、RME、LaserAnimation Sollinger、Apple macOSなどの低レイテンシーのAVB対応オーディオデバイスに出力されるようになっています。
LaserAnimation SollingerのAVB2ILDAデバイスは、x/y信号と全カラーチャンネルの24bit解像度など、プロフェッショナル向けの機能を利用することが可能です。さらに、AVB2ILDAデバイスには電子マスキング用のソフトウェアが含まれており、特定のエリアに対してレーザー出力を制限することが可能です(例えば、講堂や光学機器のあるセクターなどのスキャンエリアを保護するため)。また、3色の色遅延を個別に制御できる色補正ツールや、凹凸面などへの投影を可能にするデジタルジオメトリック補正も同梱しています。(レーザーCHOPは、スキャンCHOPに代わるものです。)
このCHOPは、LaserAnimation Sollinger社の協力を得て開発し、特にブランキングタイミングの設定など、必要なパラメータの仕様と実装について指導を受けました。

レーザーは危険です。あなたや観客の視力を損なう危険性があります。注意してください。
  • レーザーの使用を予定している場合
    1. お住まいの地域のレーザー操作に関するすべての法律と規制を理解してください。
    2. レーザー安全管理者の資格を取得する(地域によっては法律で義務付けられています。)。コースはILDAレーザー安全講習会で受講することができます。
  • 緊急停止ボタンが常に身近にあることを確認してください。
  • 出力を制限するためのあらゆる予防措置がとられていない限り、レーザー投影エリアに人を立ち入らせないようにしてください。
  • 投影範囲内にビームが意図せず反射するような反射面がないことを確認してください。
パラメータ – Laser ページ
Active / active

無効の場合、CHOP は全チャンネルをゼロにします。

Source OP / source

レーザー画像のソースオペレーターの種類を設定します。

  • SOP / sop
    レーザー画像のソースとしてSOPを使用します。ポジション アトリビュートとは別に、SOPのポイントカラー アトリビュートを使用してカラー情報を出力します。
  • CHOP / chop
    レーザー画像のソースとしてCHOPを使用します。CHOP は x と y のチャンネルを想定し、すべてのサンプルは描画される点として解釈されます。複数の形状を描画するには、各形状を識別するためのIDをidという名前のチャンネルで指定します。それ以外のチャンネルはカラーチャンネルとして解釈され、ブランキングが適用されます。これにより、単なる RGB ダイオード以上のアクティブなレーザーを駆動することが可能になります。
SOP / sop

使用するSOPのパスを設定します。

CHOP / chop

使用するCHOPのパス。入力 CHOP は点位置のための x, y チャンネルを持たなければなりません。さらに、z、r、g、b、id チャンネルもサポートします。id チャンネルは、ポイントを 1 つの図形としてグループ化するために使用されます。id チャンネルが存在しない場合のデフォルトでは、各点は独立しており、接続されていません。r, g, b 以外を受け付けるレーザープロジェクターには、任意の名前のカラーチャンネルを追加することができます。

Input Sample Rate / inputrate

入力ソースをサンプリングする際のサンプルレートを指定します。出力サンプルレートより低くすることができます。出力サンプルレートより低い場合、出力はリサンプリングされます(Resample CHOP を通すのと同じです)。

Output Sample Rate / outputrate

CHOP のサンプルレート、レーザーに出力するサンプルレートを設定します。デフォルトの48000サンプル/秒、60fpsのフレームレートでは、レーザーCHOPは1フレームあたり800の位置と色の値を出力することができます。

Swap Output / swap

出力のX軸とY軸を入れ替えることができます。

X Scale / xscale

出力の水平スケールを制御します。

Y Scale / yscale

出力の垂直スケールを制御します。

Rotate / rotate

出力の回転を制御します。

Update Method / updatemethod

Laser CHOP がソースからデータを取得する方法を制御します。
ほとんどの場合、デフォルトの “When All Points Drawn “のままにしておくとよいでしょう。
しかし、”Every Frame “の更新方法を必要とする特定の使用例があります。背景には、Laser CHOP が複数のフレームに渡って入力値を描画する必要がある場合があります。例えば、200のサンプリング値を持つソースがあったとします。あるサンプルレートですべてのブランキングとステップサイズを適用した後、レーザーは完全な画像を描くために1フレーム以上必要な場合があります。この効果は、レーザー画像のちらつきで見ることができます。デフォルト設定では、Laser は、以前の値をすべて描画し終わると、入力から新しいサンプルセットを取得します。Every Frame” update methodでは、Laserは各フレームの後、残りのサンプルの更新値を取得します。

  • When All Points Drawn / alldrawn
    Laser CHOPは、前フレームの全点が描画された時点でソースデータを読み込むことになります。
  • Every Frame / everyframe
    レーザーCHOPは、前のフレームの描画が終了したかどうかに関係なく、毎フレーム入力を更新します。
Frame Start Pulse / startpulse

有効にすると、レーザーフレームの最初にすべての色が-1に設定されたサンプルが挿入されます。

Vertex Order / vertexorder

ジオメトリで定義された順序ではなく、各ポリゴンの頂点と同じ順序で点を出力します。

Step Size / stepsize

色を出力する際に、各x,yが変化する距離を設定します。

Blanking Step Size / bstepsize

色を出力しない(ブランキング)状態で、各x,yが変化できる距離を設定します。

Minimum Vertex Hold / minverthold

ある点の頂点保持率の最小値を設定します。点の頂点保持力の値は、その点での角度の急峻さに基づいて、最小から最大の頂点保持力の範囲内で線形に計算されます。この角度は、前の点、その点自身、次の点の3点を用いて計算されます。例:ポイントでの角度が180度の場合、そのポイントの頂点保持率は最小値となります。

Maximum Vertex Hold / maxverthold

ある点の頂点保持率の最大値。詳しくはMaximum Vertex Holdの項を参照してください。点の角度が0度の場合、頂点保持力は最大値になります。最大値が最小値より小さい場合は、最大値が上にクランプされます。

Camera / camera

カメラビューから SOP を描画するために使用する Camera COMP のパスを指定します。

パラメータ – Color ページ

これらのパラメータにより、レーザーのカラーチャンネルをどのように作成するかを制御することができます。特にブランキング設定には注意が必要で、レーザープロジェクターの性能に合わせて調整する必要があります。
ブランキングとは、レーザープロジェクターでアニメーションを表示する際に、レーザーを高速にオン/オフする機能です。例えば、複数の図形を表示する場合、図形と図形の間の空白部分を省略するブランキング機能が必要です。レーザーのミラーはモーターで駆動しているため、レーザーに送られる位置データは実際のミラー位置より先になる可能性が高く、ミラーがデータに追いつく必要があります。しかし、カラーデータは時間軸上にあるため、レーザーがカラーをオフにした時点でテールが見えることがあります。ブランキングパラメータを調整することで、これを防ぐことができます。

Red Scale / redscale

赤チャンネルの明るさを設定します。

Green Scale / greenscale

緑チャンネルの明るさを設定します。

Blue Scale / bluescale

青チャンネルの明るさを設定します。

Pre Blanking On Delay / preblankon

カラー出力をオフにする前に、レーザーがある位置で待機する時間をミリ秒単位で設定します。

Post Blanking On Delay / postblankon

カラー出力をオフにしてから、レーザーがある位置で待機する時間をミリ秒単位で設定します。

Pre Blanking Off Delay / preblankoff

カラー出力をオンにする前に、レーザーがある位置で待機する時間をミリ秒単位で設定します。

Post Blanking Off Delay / postblankoff

カラー出力をオンにしてから、レーザーがある位置で待機する時間をミリ秒単位で設定します。

Start-Point Hold Time / starthold

レーザーが新しいデータフレームの最初のポイントで、次に進む前に待機する時間をミリ秒単位で設定します。

Color Delay / colordelay

出力されるカラーチャンネルの遅延時間を ms 単位で設定します。

Info CHOP チャンネル

Laser CHOPのExtra Informationは、Info CHOPからアクセスできます。

CHOP共通 Info チャンネル

Info CHOPチャンネルの章を参照

Operator共通 Info チャンネル

Info CHOPチャンネルの章を参照

Info CHOP チャンネル

CHOP共通 Info チャンネル
  • start
    CHOPの開始時間(サンプル数)
  • length
    CHOPのサンプル数
  • sample_rate
    チャンネルのサンプレートをフレーム/秒で指定します
  • num_channels
    CHOPのチャンネル数
  • time_slice
    CHOPがタイムスライス有効の場合は1、それ以外の場合は0
  • export_sernum
    エクスポート接続が更新された頻度のカウント
オペレータ共通 Info チャンネル
  • total_cooks
    プロセス開始後、オペレーターがcookした回数。
  • cook_time
    最後のcookを行った時間。(ミリ秒)
  • cook_frame
    このオペレータが最後にcookされたフレーム番号。(コンポーネントのタイムラインに対して)
  • cook_abs_frame
    このオペレータが最後にcookされたときのフレーム番号。(絶対時刻からの相対値)
  • cook_start_time
    オペレータがcookしたフレームでcookを開始した時間。(ミリ秒)
  • cook_end_time
    オペレータがcookしたフレームでcookを終了した時間。(ミリ秒)
  • cooked_this_frame
    このフレームでオペレータがcookされた場合、1を返します。
  • warnings
    もしあれば、このオペレータの警告数。
  • errors
    もしあれば、このオペレータのエラー数。

FreeD CHOP

概要

FreeD CHOP は、FreeD プロトコルを使用してネットワーク経由で送信される受信カメラトラッキングデータを読み取り、仮想 3D カメラを制御するために使用できる CHOP チャンネルを出力します。
FreeD CHOP が出力するチャンネルは以下の通りです。

  • camera_id
    カメラのID番号を格納するために使用される0 – 255の数値。
  • tx、ty、tz
    カメラ COMP Translate パラメータに接続することができます。
  • rx、ry、rz
    カメラ COMP Rotate パラメータに接続可能です。
  • focus
    カメラレンズのフォーカスリングに関連する、任意の単位の24ビット正整数(0~1600万)。
    アプリケーションは、使用するハードウェアに応じて、この値を解釈することができます。
  • zoom
    カメラレンズのズームリングに関連する、任意の単位の 24 ビット正整数(0 ~ 1600 万)。
    アプリケーションは、使用するハードウェアに応じてこの値を解釈することができます。
  • user
    カメラシステムがユーザー定義のカスタムデータを送信するために使用できる16ビットの正の整数(0 – 65k)です。

注:FreeD CHOP は FreeD プロトコルの一部である ‘D1’ カメラの位置・姿勢のメッセージのみを処理します。その他のメッセージタイプはすべて無視されます。
より詳細な情報や接続の問題を診断するために、Info CHOP を接続して、パケットがドロップまたはスキップされたかどうかを確認することができます。

パラメータ – FreeD ページ
Active / active

On のとき、CHOP はネットワークポートに送信された FreeD 情報を受信します。Offの場合は、更新は行われません。

Protocol / protocol

使用するネットワークプロトコルを設定します。詳しくは、Network Protocolsの章を参照してください。

  • Messaging (UDP) / msging
  • Multi-Cast Messaging (UDP) / multicastmsging
Network Address / netaddress

Multicastを使用する場合、FreeDがパケットをリッスンするアドレスを設定します

Network Port / port

FreeDがパケットを受け入れるポートを設定します。

Local Address / localaddress

受信するIPアドレスを指定します。複数のNIC(Network Interface Card)を搭載しているシステムで、どのNICを使用するかを選択する場合に有効です。

  • 192.168.1.10 / 192.168.1.10
Info CHOP チャンネル

FreeD CHOPのExtra Informationは、Info CHOPからアクセスできます。

Specific FreeD CHOP Info Channels
  • valid_packets
  • unrecognized_packets
  • corrupt_packets
CHOP共通 Info チャンネル

Info CHOPチャンネルの章を参照

Operator 共通 Info チャンネル

Info CHOPチャンネルの章を参照

Face Track SOP

概要

Face Track SOPは、Face Track CHOPによって生成されたフィットした顔メッシュへのアクセスを提供します。これはレンダリングのためにGPUに直接アップロードすることも、さらなる修正のために他のSOPに渡すことも可能です。デフォルトでは、メッシュは入力画像のソース面と一致するように事前変換されます(x、y位置は画像のu、v位置と同じです)。しかし、プリトランスフォームを無効にすることもでき、その場合、フィットしたメッシュはオリジナルのスケールで原点に残されます。メッシュはFace Track CHOPのtx、ty、rxなどのチャンネルを使用して画像と位置合わせをすることができます。

注意:この機能を使用するには、Nvidia ‘nvf’ フォーマットの互換性のある 3D モーファブルフェイスメッシュファイルを Face Track CHOP の ‘Mesh File’ パラメータに提供する必要があります。このファイルはTouchDesignerに付属していませんが、作成方法はFace Track CHOPページで説明されています。

パラメータ – Face Track ページ
Face Track CHOP / chop

メッシュを生成するFace Track CHOPのパスを設定します。

Direct to GPU / directtogpu

アクティブにすると、メッシュは直接GPUに転送されます。この方法ははるかに高速ですが、SOPを追加して、さらに変形させることはできません。

Pre-Transform Mesh / pretransform

フィットしたメッシュは、メッシュの作成に使用された入力画像と整列するように変換されます。無効にすると、メッシュは元のスケールで原点に配置されます。

Compute Normals / normals

メッシュの滑らかな頂点法線を自動的に生成します。

Info CHOP チャンネル

Face Track SOPのExtra Informationは、Info CHOPでアクセスできます。

SOP共通 Info チャンネル

Info CHOPチャンネルの章を参照

オペレータ共通 Info チャンネル

Info CHOPチャンネルの章を参照

Face Track CHOP

概要

Face Track CHOPは、画像中の顔や顔のランドマークポイント、カメラに対する顔の向きを検出することができます。また、互換性のある3D Morphable Face Model(3DMM)とFace Track SOPを使用して、検出した顔に3Dメッシュをフィットさせ、アニメーションさせることも可能です。注:このオペレーターは、Nvidia MaxineシステムのAugmented Reality (AR) SDKを使用しており、動作にはWindowsとNvidia RTXカードが必要です。
入力画像は、指定したTOPから取得され、解像度や形式は問わず、静止画でも動画でも構いません。画像中に複数の顔が存在する場合、CHOPは検出された最も大きな顔を追跡しようとします。
検出された特徴の座標は、入力画像の左下隅を基準とした u, v の位置で与えられます。デフォルトでは、値は0から1の範囲ですが、Aspect Correctパラメータを有効にすると、元の画像のアスペクト比を維持したまま3D座標として使用できるように、値をスケーリングすることが可能です。
ポイントの3Dレンダリングを元の入力画像に合わせるには、Camera COMPの Projection をOrthographic、Ortho Origin パラメータを Bottom-Left、Ortho Width を1に設定し、さらにFace Track CHOPの Aspect Correct を有効にする必要があります。
メッシュフィッティング機能を使用するには、Nvidia ‘nvf’ フォーマットの互換性のあるフェイスメッシュファイルが必要です。このファイルはTouchDesignerに含まれていませんが、オンラインで入手可能なファイルを使って生成できます。

ファイルを作成するには:
1.Surrey Face Modelのファイルは以下のサイトからダウンロードしてください。
eos project on GitHub (https://github.com/patrikhuber/eos/tree/master/share)

  • sfm_shape_3448.
  • expression_blendshapes_3448.bin
  • sfm_3448_edge_topology.json
  • sfm_model_contours.json
  • ibug_to_sfm.txt

メッシュ変換ツールConvertSurreyFaceModel.exeは以下のサイトからダウンロードしてください。
Nvidia AR SDK page on GitHub (https://github.com/NVIDIA/BROADCAST-AR-SDK/tree/master/tools)

3.変換ツールを実行し、nvfファイルを生成します。path はモデルファイルが変換ツールとは別のフォルダにある場合のみ必要です。

ConvertSurreyFaceModel.exe –shape=“*path/*“sfm_shape_3448.bin –blend_shape=“*path/*“expression_blendshapes_3448.bin –topology=“*path/*“sfm_3448_edge_topology.json –contours=“*path/*“sfm_model_contours.json –ibug=“*path/*“ibug_to_sfm.txt –out=“*output-path/*“face_model0.nvf

パラメータ – FaceTrack ページ
Active / active

フェイストラッキング機能を有効にします。

Model Folder / modelfolder

顔検出で使用するAIモデルファイルの場所を設定します。デフォルトでは、これらのファイルはConfig/Modelsフォルダに配置されます。

Mesh File / meshfile

メッシュフィッティングに使用する、Nvidia ‘nvf’ フォーマットの3Dモルファブルメッシュファイルです。互換性のあるファイルの作成方法については、上記を参照してください。利用可能な場合、フィットしたメッシュはFace Track SOPでアクセスすることができます。

GPU Device / gpu

顔認識モデルを動作させるためのGPUを設定します。Nvidia RTX以降のカードが必要です。

  • Default / default
    ドライバはシステム内の最適なGPUを選択します。
TOP / top

顔認識を行うための画像を提供するTOPオペレータへのパスを設定します。

Bounding Boxes / bbox

検出された顔の周りのバウンディングボックスを記述するチャンネルを出力します。このチャンネルは、顔の中心の u と v の位置、およびボックスの幅と高さを表します。位置は入力画像の左下隅を基準としています。

Bounding Box Confidence / bboxconfidence

AIモデルが入力画像から顔を検出した正確さを表すチャンネルを出力します。数値が高いほど信頼度が高いことを示します。

Rotations / rotations

画像中の顔の向きを示す rx, ry, rz 値を出力します。(0,0,0)は顔の向きがカメラの真正面を向いていることを示します。被写体がカメラから遠ざかるにつれて、±180°の範囲で値を変更します。

Number of Landmarks / landmarks
  • None / none
    出力する顔のランドマークポイントの数。点数は1から始まり、顎、眉、鼻など、常に顔の固定的な特徴を表します。位置は入力画像の左下隅を基準としたu,v座標で与えられます。
  • 68 (Multi-PIE Mark-ups) / num68
    AI研究で使用される顔のランドマーク特徴の標準セット。参考図参照。
  • 126 / num126
    ランドマーク機能の拡張セット。
Landmark Confidence / landmarkconfidence

各ランドマークフィーチャーの信頼度を追加します。値が高いほど、その特徴が正確である可能性が高いことを示します。

Mesh Transform / meshtransform

フィットした顔メッシュの平行移動、回転、スケールチャンネルを出力できるようにします。この機能には、有効な3Dモーファブルフェイスメッシュファイルが必要です(上記注釈を参照)。これらのチャンネルの値は、添付の Face Track SOP で生成されたメッシュが入力画像と一致するように変換するために使用されます。デフォルトでは、フィットしたメッシュは画像に沿うように事前に変換されますが、SOPでPre-Transform が無効になっている場合は、これらの値を代わりに使用してより多くの制御と速度を得ることができます。

Aspect Correct UVs / aspectcorrectuv

入力画像の正しいアスペクト比になるように u と v の位置を再スケールします。これは、u, v位置を画像位置としてではなく、3次元座標として使用する場合に有効です。

Info CHOP チャンネル

Face Track CHOPのExtra Informationは、Info CHOPからアクセスできます。

CHOP共通 Info チャンネル

Info CHOPチャンネルの章を参照

Operator 共通 Info チャンネル

Info CHOPチャンネルの章を参照