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

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

Actor COMP の機能を示す図

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

概要 📖 – Bullet / Flex 物理アクター

Actor COMPは、Bullet / Flex 物理ソルバの配下でコライダー形状・質量・速度を定義する剛体 / 粒子アクター COMPです。Bullet Solver COMP または Flex Solver COMP の子として配置し、Collision SOPs と Collision Shape を指定することで剛体物理 / 流体シミュレーションの対象になります。

主な用途 🎯

  • Bullet Solver 配下に剛体・コライダーを登録するための物理アクター
  • Collision Shape (Concave / Convex Hull / OBB / AABB / Ellipsoid / Sphere / Compound) の生成と表示
  • Kinematic State による Static (固定) / Dynamic (動体) の切替と質量・摩擦・反発係数の指定
  • Linear / Angular Velocity や Bullet Feedback CHOP による速度・力のフィードバック制御
  • Flex Solver 配下での流体・粒子エミッタとして粒子発生を扱う

データフロー 🔄

入力: SOP (コライダー形状) + 物理プロパティ (Mass / Friction / Restitution)

Bullet Solver COMP / Flex Solver COMP の配下で 1 frame シミュレーション

出力: Translate / Rotate が物理結果で書換わる

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

General Page 📁

Initialize / Update ⚙️

コリジョン形状の初期化・自動更新パラメータ:

  • Initialize Actor: initialize — Actor COMP 内の全 body のコリジョン形状を再生成し、速度・位置をデフォルトにリセット。Collision SOPs / Collision Shape / 内部 SOP が変わったらパルス必須
  • Update Collision Shape: updatecs — オンの場合、Collision SOPs / Collision Shape の変更や内部 SOP の cook count 増加に追従してコリジョン形状を自動更新
  • Update Collision Shape Pulse: updatecspulse — クリックで即時にコリジョン形状を更新するパルス

Active .active 🔌

アクターのシミュレーション参加切替:

  • Active: active — オンの場合、シミュレーションに参加し他アクターと衝突する。オフの場合はシミュレーションから除外され transform 更新も停止

Kinematic State .kinstate 🎛️

アクターが外力で動けるか (Dynamic) / 動かないか (Static) を決定するメニューパラメータ

項目 内部名 説明
Static (Infinite Mass) .static シミュレーション内で動かないアクター (床・壁・固定オブジェクト等)
Dynamic (Finite Mass) .dynamic シミュレーション内で動けるアクター (落下する剛体・衝突する物体等)

Collision Shape .shape 🎛️

Collision SOPs から生成するコリジョン形状の種類を選択するメニューパラメータ

項目 内部名 説明
Concave (Static only) .concave 全 SOP から凹形状を生成。Static アクター専用 (Dynamic では Compound にフォールバック)。3-4 頂点ポリゴンのみ対応
Convex Hull .convex SOP の頂点群を内包する凸包を生成。Dynamic に最適
Oriented Bounding Box .obb 体積最小化方向に整列した方向付きバウンディングボックス
Axis-Aligned Bounding Box .aabb XYZ 軸に整列した非回転バウンディングボックス
Bounding Ellipsoid .bellipsoid 体積最小化された楕円体
Bounding Sphere .bsphere 体積最小化された球 (XYZ 半径が同一)
Compound .compound 複数 SOP を各々 Convex Hull にし、それらを 1 つの複合形状に統合 (Dynamic で凹形状を扱うときの代替)

General 値 📏

コライダー入力・楕円体精度・質量パラメータ:

  • Collision SOPs: sops — コリジョン形状の元となる SOP / COMP のパス。COMP 指定時はその内部の全 SOP を再帰的に使用、空欄時は Actor COMP 内部の Display / Render フラグが立った SOP を全て使用
  • Ellipsoid Tolerance: elltol — Bounding Ellipsoid 選択時の最適解への接近度許容値
  • Infinite Mass: infinitemass — オンの場合、Dynamic でも質量無限大として動かなくなる。Kinematic State 変更と違いコリジョン形状の再生成は不要
  • Mass: mass — アクターの質量 (kg)

Velocity / Cue 🚀

初期速度・Cue 機能パラメータ:

  • Cue Velocity: cuevel — Linear Velocity / Angular Velocity の値をオン中常にアクターへ書込む (他オブジェクトとの衝突は継続)
  • Cue Pulse: cuevelpulse — 次フレーム冒頭で 1 回だけ Linear / Angular Velocity の値をアクターに書込むパルス
  • Linear Velocity: linvel (linvelx, linvely, linvelz) — 初期の並進速度 (m/s)。シミュレーション中も Cue Velocity / Pulse と併用して速度を上書き可能
  • Angular Velocity: angvel (angvelx, angvely, angvelz) — 初期の角速度 (度/秒)。Cue Velocity / Pulse との併用で角速度を上書き可能

Bullet Page 📁

Forces / Gravity 🌍

ローカル外力・個別重力パラメータ:

  • Forces: forces — このアクター専用のローカル外力 (Force COMP) のリスト
  • Use Global Gravity: globalgrav — オンの場合、Bullet Solver COMP のグローバル重力を使用。オフの場合は下記 Gravitational Acceleration を使用
  • Gravitational Acceleration: gravity (gravityx, gravityy, gravityz) — アクターのローカル重力 (m/s²)。Use Global Gravity がオフの時のみ適用

Friction / Restitution 🪨

摩擦・反発・連続衝突判定パラメータ:

  • Friction: friction — 動摩擦係数。衝突中の 2 body の係数の積が総合摩擦になる (片方 0 なら結果も 0)
  • Rolling Friction: rollfric — 転がり摩擦。球・円錐が他面を転がるときの抵抗
  • Restitution: rest — 反発係数 (0-1)。1 なら衝突後も同じ速度で跳ね返る完全弾性衝突
  • Continuous Collision Detection: ccd — 連続衝突判定の有効化。高速移動物体のすり抜けを防ぐ。閾値超の速度時のみ作動するためパフォーマンス影響は限定的
  • Display Guide: dispguide — COMP ビューアにコリジョン形状ガイドを表示

Center of Mass / Feedback 🎯

重心位置・外部フィードバックパラメータ:

  • Center of Mass: com (comx, comy, comz) — 重心位置 (回転の中心)。COMP ビューアでは赤軸として表示
  • Bullet Feedback CHOP: bulletfb — 参照 CHOP から transform / velocity を読み取り次フレーム冒頭で現在値を上書き。Bullet Solver CHOP と組み合わせてフィードバックループを構築可能 (スケールは feedback 不可、force[xyz] / torque[xyz] で力を加算可能)

Flex Page 📁

Triangle Collision Direction .tricolldir 🎛️

三角形コリジョンの法線方向の有効面を選択するメニューパラメータ

項目 内部名 説明
Outward .outward 三角形の法線方向 (外側) からの衝突のみ有効
Inward .inward 法線とは逆方向 (内側) からの衝突のみ有効
Both .both 両面とも衝突有効 (薄い壁等)

Flex Type .flextype 🎛️

Flex アクターのタイプを選択するメニューパラメータ

項目 内部名 説明
Fluid .fluid 流体アクター。粒子数は入力インスタンス数で決定
Fluid Emitter .fluidemit 流体エミッタ。Emission Size / Speed に比例して粒子を発生、最大数到達後は既存粒子を再利用

Emission / Feedback 💨

Flex 粒子発生・TOP フィードバックパラメータ:

  • Enable Emission: emit — 粒子の発生を有効化
  • Emission Size: emitsize (emitsizex, emitsizey) — 2D エミッショングリッドの粒子数 (横 × 縦)
  • Emission Speed: emitspeed — エミッタから粒子が放出される速度
  • Max Emission Particles: emitmax — Actor COMP 内の最大粒子数。到達後は既存粒子を再利用
  • Position Feedback TOP: flexposfb — 位置データを書込み済みの TOP。Flex TOP の位置テクスチャ形式で位置を上書き
  • Velocity Feedback TOP: flexvelfb — 速度データを書込み済みの TOP。Flex TOP の速度テクスチャ形式で速度を上書き

Xform Page 📁

Transform Order .xord 🎛️

コンポーネントに対する Scale / Rotate / Translate の適用順序を指定するメニューパラメータ

項目 内部名 説明
Scale Rotate Translate .srt T * R * S * Position (デフォルト)
Scale Translate Rotate .str R * T * S * Position
Rotate Scale Translate .rst T * S * R * Position
Rotate Translate Scale .rts S * T * R * Position
Translate Scale Rotate .tsr R * S * T * Position
Translate Rotate Scale .trs S * R * T * Position

Rotate Order .rord 🎛️

X / Y / Z 軸の回転を合成する順序を指定するメニューパラメータ

項目 内部名 説明
Rx Ry Rz .xyz R = Rz * Ry * Rx
Rx Rz Ry .xzy R = Ry * Rz * Rx
Ry Rx Rz .yxz R = Rz * Rx * Ry
Ry Rz Rx .yzx R = Rx * Rz * Ry
Rz Rx Ry .zxy R = Ry * Rx * Rz
Rz Ry Rx .zyx R = Rx * Ry * Rz

Transform 値 📏

位置・回転・スケールを XYZ 軸で指定する基本パラメータ:

  • Translate: t (tx, ty, tz) — X / Y / Z 軸の移動量。物理アクターでは初期位置となり、シミュレーション中は Bullet が書換える
  • Rotate: r (rx, ry, rz) — X / Y / Z 軸まわりの初期回転角度 (度)
  • Scale: s (sx, sy, sz) — X / Y / Z 軸の非一様スケール (Bullet Feedback CHOP では feedback 不可)
  • Pivot: p (px, py, pz) — Scale / Rotate の基準点
  • Uniform Scale: scale — 3 軸を一括スケーリング

Parent Transform Source .parentxformsrc 🎛️

アクターの初期位置の参照元を選択するメニューパラメータ (旧 Constrain To)

項目 内部名 説明
Parent (Hierarchy) .parent 親階層の transform を使用 (デフォルト)
Specify Parent Object .specifyparent Parent Object で指定した任意 OP の transform を使用
World Origin .worldorigin ワールド原点を基準にする (親階層の transform を無視)

Forward Direction .forwarddir 🎛️

前方として扱う軸を選択するメニューパラメータ

項目 内部名 説明
+X .posx X 軸正方向を前方とする
-X .negx X 軸負方向を前方とする
+Y .posy Y 軸正方向を前方とする
-Y .negy Y 軸負方向を前方とする
+Z .posz Z 軸正方向を前方とする
-Z .negz Z 軸負方向を前方とする (デフォルト)

Look At Up Vector .lookup 🎛️

Look At 制約での上方向ベクトルの扱いを選択するメニューパラメータ

項目 内部名 説明
Don’t Use Up Vector .off 上方向ベクトルを使用しない (Look At ターゲットが Y 軸を跨がない場合に有効)
Use Up Vector .on Orient Up Vector で指定した軸を上方向として精密に回転を定義
Use Quaternions .quat クォータニオンで球面上の最短経路として回転を計算
Use Roll .roll Roll パラメータでパス上の回転を指定

Look At / Path 🎯

Look At 制約 / SOP パス追従パラメータ:

  • Parent Object: parentobject — Parent Transform Source が specifyparent のとき、親として使う任意 OP のパス
  • Look At: lookat — 常に向き続けるターゲット 3D COMP のパス
  • Path SOP: pathsop — このコンポーネントが追従するパスを定義する SOP
  • Roll: roll — パス上を移動するときの回転角度
  • Position: pos — パス上の位置 (0 = 開始点, 1 = 終端点, 最大 10 で複数周回)
  • Orient along Path: pathorient — オンの場合、コンポーネントの +Z 軸がパスの進行方向を向く
  • Orient Up Vector: up (upx, upy, upz) — Look At 制約の上方向ベクトル
  • Auto-Bank Factor: bank — パスの曲率に応じた自動バンク (0 で無効)

Pre-Xform Page 📁

Pre-Xform レイヤ 📁

Pre-Xform レイヤ (メイン Xform の前に適用される追加 transform):

  • Apply Pre-Transform: pxform — Pre-Xform レイヤの有効化
  • Transform Order (Pre): pxord — Xform Page と同じ 6 種の順序選択
  • Rotate Order (Pre): prord — Xform Page と同じ 6 種の回転順序選択
  • Translate / Rotate / Scale / Pivot (Pre): pt / pr / ps / pp — Pre レイヤの位置・回転・スケール・ピボット
  • Uniform Scale (Pre): pscale — Pre レイヤの一括スケーリング
  • Reset Transform / Commit to Main: preset / pcommit — Pre レイヤをリセット、または Main へコミット
  • Xform Matrix/CHOP/DAT: xformmatrixop — 4×4 行列を直接指定して transform を適用 (XformMatrix * PreXForm * Position)

Render Page 📁

Render 設定 🖌️

レンダリング動作パラメータ:

  • Material: material — 内部ジオメトリに適用する MAT
  • Render: render — Render TOP でこのコンポーネントのジオメトリを可視化するか (Render Flag との論理 AND)
  • Draw Priority: drawpriority — 描画順 (値が小さいほど後に描画)。Transparency 制御で頻用
  • Pick Priority: pickpriority — Render Pick CHOP / DAT の Search Area 内で複数 OP が見つかったときの優先度 (値が大きいほど優先)
  • Wireframe Color: wcolor (wcolorr, wcolorg, wcolorb) — ワイヤーフレーム表示時の色
  • Light Mask: lightmask — このジオメトリに影響する Light COMP の制限リスト

Common Page 🔧

Parent Shortcut .parentshortcut 🔗

コンポーネント内部からこの COMP へのパスとして使えるショートカット名:

  • Parent Shortcut: コンポーネント内部の任意の場所からこの COMP を参照する際のショートカット名 (parent.<name> 形式で利用可能)

Global OP Shortcut .opshortcut 🌐

プロジェクト全体からこの COMP を参照するグローバル名:

  • Global OP Shortcut: プロジェクト内のあらゆる場所からこの COMP へのパスとして使えるグローバル名 (op.<name> 形式で利用可能)

Internal OP .iop 📎

Internal OP シーケンス (コンポーネント内部 OP への名前付き参照):

  • Shortcut: iop0shortcut — コンポーネント内部の OP に対するショートカット名
  • OP: iop0op — このコンポーネント内部の対象 OP へのパス

Node View .nodeview 👁️

ノードビューア (Network エディタ上のサムネイル) に表示する内容を決定

項目 内部名 説明
Default Viewer .default コンポーネントタイプ標準のビューアを表示
Operator Viewer .opviewer 指定した任意 OP のノードビューアを表示

Operator Viewer .opviewer 🖼️

Operator Viewer モード時に表示する対象 OP:

  • Operator Viewer パス: Node View が opviewer モードのとき、そのビューア内容として表示する OP のパス

Cloning .cloning 🧬

マスター COMP の内容を複製する Cloning 設定:

  • Enable Cloning: enablecloning — Clone Master の内容を継続的に複製するかを切替
  • Enable Cloning Pulse: enablecloningpulse — その瞬間だけ Clone Master の内容を瞬時に複製
  • Clone Master: clone — 複製元となるマスターコンポーネントへのパス

Load on Demand .loadondemand

必要時のみメモリにロードする遅延ロード設定:

  • Load on Demand: オンの場合、このコンポーネントは実際に必要となるまでメモリにロードされない (起動時間・メモリ消費の最適化)

External .tox .externaltox 💾

外部 .tox ファイルとの連携設定:

  • Enable External .tox: enableexternaltox — 起動時に外部 .tox ファイルからロード
  • Enable External .tox Pulse: enableexternaltoxpulse — 外部 .tox ファイルから即時リロード
  • External .tox Path: externaltox — ディスク上の .tox ファイルへのパス
  • Reload Custom Parameters: reloadcustom — コンポーネントのカスタムパラメータ値を再読み込み
  • Reload Built-In Parameters: reloadbuiltin — コンポーネントの組み込みパラメータ値を再読み込み
  • Save Backup of External: savebackup — .toe ファイル内に外部 .tox のバックアップコピーを保存
  • Sub-Component to Load: subcompname — .tox 内部の特定 COMP のみを取り出してロード

Relative File Path Behavior .relpath 📁

このコンポーネント内部での相対ファイルパスの解決基準

項目 内部名 説明
Use Parent’s Behavior .inherit 親コンポーネントの設定を継承
Relative to Project File (.toe) .project .toe プロジェクトファイルからの相対パスとして解決
Relative to External COMP File (.tox) .externaltox 外部 .tox ファイルからの相対パスとして解決

Parameter Color Space .parmcolorspace 🎨

このコンポーネント内の色パラメータをどの色空間として解釈するか

項目 内部名 説明
sRGB .srgb 標準的な sRGB ガンマ空間
sRGB – Linear .srgblinear sRGB プライマリでガンマ線形 (1.0)
Rec.601 (NTSC) .rec601ntsc Rec.601 NTSC 規格の色空間
Rec.709 .rec709 HDTV 用 Rec.709 色空間
Rec.2020 .rec2020 UHDTV / HDR 向け Rec.2020 広色域
DCI-P3 .dcip3 デジタルシネマ DCI-P3 色空間
DCI-P3 (D60) .dcip3d60 D60 白点 DCI-P3
Display-P3 (D65) .displayp3d65 D65 白点 Display-P3 (Apple ディスプレイ等)
ACES2065-1 .aces2065-1 ACES アーカイブ用色空間 (AP0 プライマリ)
ACEScg .acescg ACES CG 作業用色空間 (AP1 プライマリ)
Passthrough .passthrough 色変換を行わず値をそのまま扱う

Parameter Reference White .parmreferencewhite

色パラメータの基準白色の扱い

項目 内部名 説明
Default For Color Space .default 選択した色空間のデフォルト基準白を使用
Standard (SDR) .sdr 標準ダイナミックレンジ (SDR) 基準白
High (HDR) .hdr ハイダイナミックレンジ (HDR) 基準白
UI .ui UI 表示用の基準白

実践アイデア 💡

Example 1: Bullet 剛体: 落下する箱を床に衝突させる 📦

Box SOP → Actor COMP (Dynamic + Convex Hull + Mass=1.0) → Bullet Solver COMP → 描画用 Render TOP

Dynamic な Actor COMP を Bullet Solver COMP の子として配置し、Mass と Linear Velocity を与えて落下させる。床用には別の Static な Actor COMP を Convex Hull / AABB で配置することで衝突が発生する。

  1. Bullet Solver COMP を作成 (Gravity = (0, -9.8, 0))
  2. Box SOP を含む Actor COMP を Solver の子として作成し Kinematic State を Dynamic
  3. Collision Shape を Convex Hull、Mass を 1.0、Translate Y を 5 に設定
  4. 床用に別 Actor COMP を作成し Kinematic State を Static、Collision Shape を Concave
  5. Initialize Actor をパルスして物理シミュレーションを開始

Example 2: Bullet Feedback CHOP で速度を制御 🎮

Constant CHOP (velocity 値) → Bullet Solver CHOP → Actor COMP (Bullet Feedback CHOP)

Bullet Feedback CHOP に Bullet Solver CHOP 経由の速度データを与えることで、シミュレーション中のアクター速度を外部から上書きできる。インタラクティブにジャンプさせるなどの操作に有効。Scale は feedback 不可、力を加えたい場合は force[xyz] / torque[xyz] チャンネルを使用する。

  1. Bullet Solver CHOP を作成し対象 Actor COMP を参照
  2. Constant CHOP で linvelx / linvely / linvelz を定義
  3. Bullet Solver CHOP の出力を Actor COMP の Bullet Feedback CHOP に接続
  4. 次フレーム冒頭で書込まれた速度が反映されることを確認

Example 3: Flex 流体エミッタ: 粒子の連続発生 💦

Sphere SOP → Actor COMP (Flex Type=Fluid Emitter + Emit ON) → Flex Solver COMP → Flex TOP

Flex Solver COMP の子として Actor COMP を配置し、Flex Type を Fluid Emitter に設定。Emission Size と Emission Speed で粒子の発生量と初速を制御し、Max Emission Particles を超えると既存粒子が再利用される。

  1. Flex Solver COMP を作成
  2. Actor COMP を子として作成し Flex Type を Fluid Emitter
  3. Enable Emission をオン、Emission Size を (8, 8)、Emission Speed を 2.0
  4. Max Emission Particles を 10000 に設定して上限を制御
  5. Flex TOP で粒子の位置テクスチャを取得して可視化

関連オペレータ 🔗

類似機能OP 🔍

  • Force COMP — アクターに力場 (重力・風・引力など) を加える COMP
  • Constraint COMP — 2 つのアクター間に関節 / バネ / ヒンジ拘束を設定する COMP

組み合わせ推奨OP 🔄

  • Bullet Solver COMP — Actor COMP の親として剛体シミュレーションを駆動するソルバ
  • Geometry COMP — コライダーとなる SOP コンテナを Actor COMP に供給
  • Bullet Solver CHOP — シミュレーション中の transform / velocity を読み書きする CHOP インタフェース

前処理・後処理COMP 🎯


Info COMP情報 📊

この COMP は Info CHOP / Info DAT による詳細情報取得に対応しています。

COMP 固有情報 📦

  • num_children: コンポーネント内部の子 OP の総数
  • num_dats: 内部 DAT の数
  • num_chops: 内部 CHOP の数
  • num_tops: 内部 TOP の数
  • num_sops: 内部 SOP の数

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • warnings: 警告数
  • errors: エラー数

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: Dynamic アクターが床をすり抜けて落下する
✅ Solution:

  • 高速で動く場合は Continuous Collision Detection (ccd) をオンにして連続衝突判定を有効化
  • 床側 Actor COMP の Collision Shape が Concave の場合、ポリゴンが 3-4 頂点のみで構成されているか確認
  • Initialize Actor をパルスしてコリジョン形状を再生成、Update Collision Shape をオンにして自動更新を有効化

❌ Problem: Collision Shape の表示と実際の衝突境界がずれている
✅ Solution:

  • Display Guide (dispguide) をオンにして COMP ビューアでコリジョン形状を実体視
  • Center of Mass (com) が形状の中心と一致しているか確認 (赤軸として表示)
  • Compound 形状の場合、内部 SOP それぞれが Convex Hull 化された後に合成されることを念頭に SOP 構成を見直す

❌ Problem: Flex Emitter から粒子が発生しない
✅ Solution:

  • Enable Emission (emit) がオンか確認、Flex Type が Fluid Emitter になっているかも確認
  • Emission Size と Emission Speed が 0 になっていないかチェック (両者が 0 だと粒子は発生しない)
  • Max Emission Particles に達して新規発生が止まっている可能性 — 既存粒子が再利用される仕様のため、上限値を引き上げて検証

参考資料 📚

その他 🔗

公式リソース 📖

この記事はLLMと共に内容を執筆、更新しています。
最新バージョンとの項目差異など、情報の不一致を見つけた心優しい方はXもしくはInsta、メールなどよりサイト管理者までご連絡ください😎


まる。

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

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

↓日常垢
Instagram:@malmal0v0

まる。をフォローする
その他の記事はこちら
Math Combine POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED Select TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Window COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Widget COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

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