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

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

Bullet Solver COMP の機能を示す図

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

概要 📖 – Bullet 剛体物理ソルバ

Bullet Solver COMPは、Actor COMP 群を子として剛体物理シミュレーションを駆動し、衝突・重力・外力を 1 frame ごとに解いて transform を更新する物理ソルバ COMPです。Actor COMP を子として配置し、Gravity や Force COMP を設定することで剛体落下・衝突・拘束など Bullet 物理エンジンによるリアルタイムシミュレーションを構築できます。

主な用途 🎯

  • Actor COMP 群を子に持ち、剛体物理シミュレーション全体を駆動するソルバコンポーネント
  • Gravity / Dimension / Linear Multiplier / Angular Multiplier でシミュレーション空間の物理条件を定義 (2D/3D 切替・軸拘束)
  • Sample Rate / Simulation Speed によるタイムステップとシミュレーション速度の制御 (スローモーション・高精度モード)
  • Initialize Sim / Start Sim / Play パルスでシミュレーションのリセット・開始・一時停止を制御
  • Callbacks DAT による衝突発生時 (onCollision) ・フレーム開始/終了 (onFrameStart/End) ・初期化 (onInit/onStart) の Python イベントフック

データフロー 🔄

入力: Actor COMP リスト + Global Force COMP + 物理条件 (Gravity / Dimension / Rate)

Bullet 物理エンジンで 1 frame ステップ (Sample Rate に応じた timestep)

出力: 子 Actor COMP の Translate / Rotate 更新 + Bullet Solver CHOP / Callbacks DAT 経由でデータ取得

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Solver Page 📁

Actors / Forces 🧩

シミュレーション対象 Actor とグローバル外力 Force COMP の指定:

  • Actors: actors — シミュレーションに含める Actor COMP のリスト。既に他の Bullet Solver COMP に登録されている Actor は指定不可
  • Global Forces: forces — シミュレーション全体に作用するグローバル Force COMP のリスト。非 Static (Dynamic) アクター全てに適用される (重力・風・引力など)

Gravity 🌍

全アクター共通のグローバル重力:

  • Gravitational Acceleration: gravity (gravityx, gravityy, gravityz) — シミュレーション全体に適用される重力加速度 (m/s²)。質量に依らず全アクターに適用される (地球重力なら Y 軸 -9.8)

Dimension .dimension 🎛️

シミュレーション空間の次元 (2D / 3D 切替):

  • Dimension: dimension — シミュレーション空間の次元 (2D / 3D など)。このメニューの動作は Linear MultiplierAngular Multiplier の組合せで再現可能。例えば 2D を選ぶと Z 軸の並進と X/Y 軸まわりの回転が拘束される

Linear / Angular Multiplier 📏

軸別の並進・回転拘束マスク:

  • Linear Multiplier: linmult (linmultx, linmulty, linmultz) — 並進速度の軸別係数 (0 で拘束、1 で通常)。例: (0, 1, 1) なら X 軸方向の並進は不可。Dimension パラメータの値と内部で乗算されるため、両方で軸を絞ると AND 拘束になる
  • Angular Multiplier: angmult (angmultx, angmulty, angmultz) — 角速度の軸別係数 (0 で回転拘束)。例: (1, 0, 0) なら X 軸まわりのみ回転可。Dimension と同様に内部乗算される

Initialize / Start / Play ▶️

リセット・開始・一時停止の制御パラメータ:

  • Initialize Sim and Collision Shapes: initall — 全 body を初期状態 (位置・姿勢・速度) に戻し、コリジョン形状も再生成するパルス。各 Actor COMP の Initialize Actor をまとめて打つことに相当。コリジョン形状の再生成は重いので、形状が変わってないなら下の Initialize Sim を使う
  • Initialize Sim: init — 全 body を初期状態 (位置・姿勢・速度) に戻すパルス。コリジョン形状は再生成しない (軽量)。シミュレーションは開始せず初期化のみ
  • Start Sim: start — 初期化してシミュレーションを開始 (ステップ実行) するパルス
  • Play: play — オンの場合、シミュレーションをステップ実行 (再生)。オフで一時停止

Sample Rate / Speed ⏱️

サンプルレート・シミュレーション速度:

  • Sample Rate: rate — シミュレーションのサンプルレート。timestep は 1/rate となり、値を上げると物理計算は精密になるが負荷が増える
  • Simulation Speed: simspeed — timestep サイズに対する速度倍率。1.0 が等倍、0.5 でスローモーション、2.0 で倍速再生 (物理精度には影響せず再生速度のみ変化)

Feedback / Contact 🔄

Feedback CHOP・接触判定・常時シミュレーション設定:

  • Feedback CHOP: feedback — 参照 CHOP から transform / velocity チャンネルを読み取り、次フレーム冒頭で対応する Actor の値を上書きする。Bullet Solver CHOP 出力を Switch CHOP で加工して書き戻すことで、ボタン 1 押下で全アクターの速度を反転するような操作が可能 (必須チャンネルは actor_idbody_id、その他はオプション。force[xyz] / torque[xyz] で力も加算可能、scale は feedback 不可)
  • Perform Contact Test: contacttest — 全 body の接触判定を有効化。Bullet Solver CHOPcolliding / total_collisions チャンネルはこれが ON でないと更新されない (body 数が多いとパフォーマンスに影響)
  • Always Simulate: alwayssim — オンの場合、毎フレーム必ず cook (シミュレーションを実行)

Callbacks 📜

Python コールバック DAT 参照:

  • Callbacks DAT: callbacks — Python コールバック関数を含む DAT への参照。利用可能なコールバックは onCollision(solverComp, collisions) / onFrameStart(solverComp) / onFrameEnd(solverComp) / onInit(solverComp) / onStart(solverComp)onCollisionPerform Contact Test ON が前提で、衝突中の body ペア (bodyA, bodyB) の namedtuple リストを受け取る

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 Solver COMP 自体の配置位置 (シミュレーション空間のオフセット)
  • Rotate: r (rx, ry, rz) — X / Y / Z 軸まわりの回転角度 (度)
  • Scale: s (sx, sy, sz) — X / Y / Z 軸の非一様スケール
  • 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 📁

Transform Order (Pre) .pxord 🎛️

Pre-Xform レイヤの Scale / Rotate / Translate 適用順序を指定するメニューパラメータ (Xform Page と同じ 6 種)

項目 内部名 説明
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 (Pre) .prord 🎛️

Pre-Xform レイヤの回転合成順序を指定するメニューパラメータ (Xform Page と同じ 6 種)

項目 内部名 説明
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

Pre-Xform レイヤ 📁

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

  • Apply Pre-Transform: pxform — Pre-Xform レイヤの有効化
  • 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 Solver COMP (Gravity=(0,-9.8,0)) → 子に Actor COMP (Dynamic, Box SOP) + Actor COMP (Static, 床) → Start Sim パルス

Bullet Solver COMP の最小構成。Gravity を地球重力に設定し、子として Dynamic な箱と Static な床の Actor COMP を 2 つ配置するだけで剛体落下シミュレーションが完成する。Start Sim パルスで初期化 + 開始、Play で再生制御。

  1. Bullet Solver COMP を作成し、Gravitational Acceleration(0, -9.8, 0) に設定
  2. 子として Box SOP を含む Actor COMP を作成、Kinematic State を Dynamic、Translate Y を 5
  3. 床用に別の Actor COMP を Solver の子として作成し、Kinematic State を Static
  4. Solver の Actors リストに 2 つの Actor を登録 (子なら自動登録)
  5. Start Sim をパルスすると箱が落下し床と衝突して跳ねる

Example 2: Feedback CHOP でジャンプボタンを実装 🎮

Bullet Solver CHOP → CHOP Execute (velocity 上書き) → Switch CHOP (ボタン押下で切替) → Bullet Solver COMP (Feedback CHOP)

Feedback CHOP パラメータを使うと、シミュレーション中の任意の瞬間にアクターの transform / velocity を CHOP データで上書きできる。ボタン押下時に Y 方向速度を加算する Switch CHOP を Feedback に接続すれば、押下フレームだけジャンプ速度が注入される仕組みが組める。

  1. Bullet Solver COMP の出力を Bullet Solver CHOP で読み出し (actor_id / body_id / linvelx-z を取得)
  2. Math CHOP で linvely+5 を加算して「ジャンプ後速度」CHOP を作成
  3. Switch CHOP の入力 0 を元 Bullet Solver CHOP、入力 1 をジャンプ後 CHOP に接続
  4. ボタンパルスを Switch CHOP の index にエクスポートし、押下フレームのみ index=1 に切替
  5. Switch CHOP の出力を Bullet Solver COMP の Feedback CHOP パラメータに指定 — 押下フレームのみ速度が上書きされてジャンプする

Example 3: Callbacks DAT で衝突時に SFX を再生 🔊

Bullet Solver COMP (Perform Contact Test ON + Callbacks DAT) → Text DAT (onCollision 内で Audio File In CHOP をトリガ) → Audio Device Out CHOP

Callbacks DAT + Perform Contact Test ON で onCollision(solverComp, collisions) が衝突発生フレームごとに呼ばれる。collisions(bodyA, bodyB) の namedtuple リストで、各 body の Python Body オブジェクトを介して質量・速度等を取得できる。コールバック内で Audio File In CHOP のパルスを叩けば衝突 SFX を発火できる。

  1. Bullet Solver COMP の Perform Contact Test をオンにする (これが OFF だと onCollision が呼ばれない)
  2. Callbacks DAT を作成し (デフォルトで自動生成される) Text DAT として開く
  3. def onCollision(solverComp, collisions): 内で for c in collisions: を回し、衝突相手の body を判別
  4. Audio File In CHOP を SFX 音源にし、コールバックから op('audiofilein1').par.cuepulse.pulse() を呼ぶ
  5. Audio Device Out CHOP に流して衝突時に音が鳴ることを確認

Example 4: 2D 拘束: 平面ピンボール風シミュレーション 🎯

Bullet Solver COMP (Dimension=2D, Linear/Angular Multiplier で軸を絞り込み) → Actor COMP 群 (ピンボール盤面 + ボール) → Render TOP

Dimension を 2D に切替えるか Linear Multiplier / Angular Multiplier で軸を拘束すると、3D 物理エンジンの上で 2D 平面シミュレーションが行える。XY 平面ピンボールでは Z 方向の並進と X/Y 軸まわりの回転を 0 にして、ボールと壁の物理を XY 平面に閉じ込める。

  1. Bullet Solver COMP の Dimension2D に設定 (または Linear Multiplier=(1,1,0), Angular Multiplier=(0,0,1))
  2. ピンボール盤面の壁 / ピン用に複数の Static Actor COMP (Convex Hull) を XY 平面上に配置
  3. ボール用に Dynamic Actor COMP (Bounding Sphere) を作成し、Restitution を 0.7 付近にして弾みを調整
  4. Gravity を (0, -3, 0) 程度の弱めに設定 (盤面が垂直な想定なら Y 軸下方向に重力)
  5. Render TOP で正射影カメラを使うと、純粋な 2D ピンボール風レンダリングになる

関連オペレータ 🔗

類似機能OP 🔍

  • TODO

組み合わせ推奨OP 🔄

  • Actor COMP — Bullet Solver COMP の子として配置する剛体アクター (コライダー形状 + 質量 + 摩擦・反発係数)
  • Force COMP — Global Forces または Actor 個別 Forces として登録する力場 (風・引力・点力など)
  • Constraint COMP — 2 アクター間に関節・バネ・ヒンジ拘束を設定して機構運動を構築
  • Bullet Solver CHOP — シミュレーション中の transform / velocity / collision データを CHOP として読み書きするインタフェース
  • Geometry COMP — Actor COMP のコライダー形状の元となる SOP をホスト

前処理・後処理COMP 🎯


Info COMP情報 📊

Bullet Solver COMP は Info CHOP / Info DAT による詳細情報取得に対応しています。シミュレーション内のアクター数・衝突数・パフォーマンスを取得するには Bullet Solver CHOP の併用も推奨されます。

COMP 固有情報 📦

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

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • warnings: 警告数
  • errors: エラー数
  • cpu_memory / gpu_memory: OP が確保している CPU / GPU メモリ使用量

Object 固有情報 📊

  • tx / ty / tz: Bullet Solver COMP 自体のワールド位置 (Translate)
  • rx / ry / rz: Bullet Solver COMP 自体の回転 (度)
  • sx / sy / sz: Bullet Solver COMP 自体のスケール

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

よくある問題と解決策 🔧

❌ Problem: シミュレーションが動かない / アクターが落下しない
✅ Solution:

  • Play パラメータがオンか確認、Start Sim をパルスして初期化 + 開始
  • 対象 Actor COMP の Kinematic State が Dynamic になっているか確認 (Static は動かない)
  • Actor が他の Bullet Solver COMP に既に登録されていないか確認 (1 Actor は 1 Solver にしか登録できない)
  • Gravitational Acceleration(0, 0, 0) になっていないかチェック

❌ Problem: 高速で動く物体が衝突をすり抜ける
✅ Solution:

  • Sample Rate を上げて timestep を短くする (例: 240 等)
  • 対象 Actor の Continuous Collision Detection (ccd) をオンにして連続衝突判定を有効化
  • Simulation Speed を一時的に下げてスローモーション動作を確認し、衝突形状の妥当性をチェック

❌ Problem: onCollision コールバックが呼ばれない
✅ Solution:

  • Perform Contact Test (contacttest) がオンになっているか確認 — オフだと衝突判定チャンネル / コールバックが更新されない
  • Callbacks DAT パラメータが正しい DAT を指しているか確認 (デフォルトで自動生成される DAT を使う)
  • コールバックの関数シグネチャが onCollision(solverComp, collisions) 形になっているかチェック (引数名は固定)

❌ Problem: シミュレーションが想定通りの方向に動かない (2D 拘束が効かない)
✅ Solution:

  • Dimension パラメータと Linear / Angular Multiplier が AND 拘束で内部乗算されることを意識し、両方が有効軸を許可しているか確認
  • Initialize Sim and Collision Shapes をパルスし、Multiplier 変更後の状態をリセット
  • Gravity の軸方向が拘束軸とぶつかっていないか (例: 2D 平面が XY なのに Gravity が Z 方向だと重力が拘束で消える)

参考資料 📚

その他 🔗

公式リソース 📖

この記事は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をコピーしました