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

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

Twist POP の変形機能を示す図

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

概要 📖 – 点群をねじり・曲げ変形

Twist POPは、入力ジオメトリに、ねじり・曲げ・せん断・先細り・つぶしなどの非線形な変形を適用する POPです。変形の種類は Operation で選び、主軸・基点・強度・減衰を指定して形状を彫るように加工できます。

主な用途 🎯

  • 点群ジオメトリをらせん状にねじる変形(ツイスト表現)
  • 軸に沿って曲げる・せん断するなどの非線形な変形
  • 中心から先端へ細くする先細り(テーパー)形状の作成
  • つぶし・引き伸ばしによる弾性的なアニメーション表現
  • 重み属性を使った点ごとの変形強度のコントロール

データフロー 🔄

入力: 点群ジオメトリ(位置・属性を持つ POP データ)

変形処理(Operation で選んだ変形を主軸まわりに Strength と Rolloff で適用)

出力: 変形後のジオメトリ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Twist Page 📁

変形対象の設定 🎯

Attribute Class .attrclass 🏷️
Attribute Class (属性の種類) — POP が点属性・頂点属性・プリミティブ属性のどれを対象に動作するかを指定します。

Input Attribute Scope .inputattrscope 🔍
Input Attribute Scope (入力属性の範囲) — 選んだ属性の種類の中で、変形対象とする入力属性や属性成分を指定します。

Weight Attribute .weightattr ⚖️
Weight Attribute (重み属性) — 変形の重み値を格納する属性の範囲を指定します。点ごとに変形の強さを変えたいときに使います。

Operation .op 🎛️

Operation (変形の種類) — 適用する変形の種類を選びます。

項目 内部名 説明
Twist .twist 主軸まわりにらせん状にねじる
Bend .bend 主軸に沿って曲げる
Shear .shear 軸に沿ってずらすせん断変形
Taper .taper 軸に沿って徐々に細くする先細り
Linear Taper .ltaper 直線的に細くする先細り
Squash & Stretch .squash つぶし・引き伸ばしによる弾性変形

Primary Axis .paxis 🧭

Primary Axis (主軸) — 変形の主となる軸です。

項目 内部名 説明
X Axis .x 主軸を X 軸に設定
Y Axis .y 主軸を Y 軸に設定
Z Axis .z 主軸を Z 軸に設定

Secondary Axis .saxis 🧭

Secondary Axis (副軸) — 変形の副となる軸です。

項目 内部名 説明
X Axis .x 副軸を X 軸に設定
Y Axis .y 副軸を Y 軸に設定
Z Axis .z 副軸を Z 軸に設定

Pivot .p 📍

Pivot (基点) — 変形の回転と拡縮の中心となる基準点です:

  • Pivot (px): 変形の回転・拡縮の中心となる基点の X 座標
  • Pivot (py): 変形の回転・拡縮の中心となる基点の Y 座標
  • Pivot (pz): 変形の回転・拡縮の中心となる基点の Z 座標

変形の強さと減衰 💪

Strength .strength 💪
Strength (強度) — 変形操作の強さを設定します。値を大きくするほど変形が強くかかります。

Rolloff .rolloff 📉
Rolloff (減衰係数) — 変形操作にかかる減衰の度合いです。軸に沿って変形量が変化するカーブを調整します。

Output Attribute Scope .outputattrscope 📤

Output Attribute Scope (出力属性) — 出力する属性名をメニューから選びます(属性の成分も選択可能)。

項目 内部名 説明
P .P 位置属性を出力対象にする
N .N 法線属性を出力対象にする
Color .Color 色属性を出力対象にする
Color.rgb .Color.rgb 色属性の RGB 成分を出力対象にする
Tex .Tex テクスチャ座標属性を出力対象にする
PointScale .PointScale 点スケール属性を出力対象にする
LineWidth .LineWidth 線幅属性を出力対象にする

カスタム属性の上書き 🛠️

Override Automatic Attribute .overrideautoattr 🛠️
Override Automatic Attribute (自動属性の上書き) — POP の入力とパラメータから自動生成される属性の種類を上書きします。新しい属性の型と成分数を手動で指定できます。

Attribute Type .attrtype 🔠

Attribute Type (属性の型) — 出力属性のデータ型です(既定は浮動小数点)。

項目 内部名 説明
float .float 単精度浮動小数点
double .double 倍精度浮動小数点
int .int 符号付き整数
uint .uint 符号なし整数
Color .color 色(単精度)
Color (double) .dcolor 色(倍精度)
Direction .dir 方向ベクトル(単精度)
Direction (double) .ddir 方向ベクトル(倍精度)

Components .attrnumcomps 🔢

Components (成分数) — 新しいカスタム属性の成分数です。

項目 内部名 説明
1 .1 成分数 1(スカラー)
2 .2 成分数 2
3 .3 成分数 3(ベクトル)
4 .4 成分数 4

Default Value .attrdefaultval 🔧

Default Value (既定値) — 出力属性の成分が計算できないときに使われる既定値です:

  • Default Value (attrdefaultval0): 出力属性の既定値(第1成分)。計算できない場合に使用
  • Default Value (attrdefaultval1): 出力属性の既定値(第2成分)
  • Default Value (attrdefaultval2): 出力属性の既定値(第3成分)
  • Default Value (attrdefaultval3): 出力属性の既定値(第4成分)

Common Page 🔧

共通設定 🔧

Bypass .bypass ⏭️
Bypass (バイパス) — 最初の入力を変形せずそのまま出力へ通します。

Free Extra GPU Memory .freeextragpumem 🧹
Free Extra GPU Memory (余剰 GPU メモリの解放) — 出力メモリが増減した際に蓄積したメモリを解放します。

Delete Input Attributes .delinputattrs 🗑️
Delete Input Attributes (入力属性の削除) — 指定した属性のみを出力します。属性を別ブランチに分離するのに役立ちます。


実践アイデア 💡

Example 1: 柱を螺旋状にねじる 🌀

Line POP → Twist POP (Twist) → Geometry COMP

Line POP で生成した縦長の点群を Twist POP の Twist 操作で主軸まわりにねじり、らせん状の柱や捻れた構造物を作る基本フロー。Strength でねじれ量を調整します。

  1. Line POP などで縦方向に伸びた点群を生成
  2. Twist POP の Operation を Twist に設定し Primary Axis を主軸に指定
  3. Strength を上げてねじれの強さを調整
  4. 出力を Geometry COMP に渡してシーンに表示

Example 2: 弾むような変形アニメ 🫧

Sphere POP → Twist POP (Squash & Stretch) → Render

Sphere POP の球体を Twist POP の Squash & Stretch 操作でつぶし・引き伸ばし、Strength をアニメーションさせて弾性的に動く表現を作る例。キャラクターの跳ねる動きなどに応用できます。

  • Sphere POP で球状の点群を生成
  • Twist POP の Operation を Squash & Stretch に設定
  • Strength を時間でアニメーションさせて伸縮を演出

Example 3: 重みで部分的に曲げる 🪢

Noise POP → Twist POP (Bend + Weight Attribute) → 出力

Noise POP で各点に与えた重み属性を Twist POP の Weight Attribute に指定し、点ごとに曲げの効き具合を変えて部分的に湾曲させる例。自然なばらつきのある変形表現に向きます。

  • Noise POP で各点に重み用の属性を付与
  • Twist POP の Operation を Bend に設定
  • Weight Attribute にノイズ属性を指定して変形強度を点ごとに変化

Example 4: 先細りのオブジェ作成 🔺

Grid POP → Twist POP (Taper) → 出力

Grid POP の平面点群を Twist POP の Taper 操作で軸に沿って徐々に細くし、円錐状やくさび状の先細り形状を作る例。Rolloff で細くなり方のカーブを調整します。

  • Grid POP で点群を生成
  • Twist POP の Operation を Taper に設定し Primary Axis を指定
  • Strength と Rolloff で先細りの度合いとカーブを調整

関連オペレータ 🔗

類似機能OP 🔍

  • Transform POP — 移動・回転・拡縮を行う線形変換 POP

組み合わせ推奨OP 🔄

  • Noise POP — Weight Attribute 用の属性をノイズで生成
  • Math POP — 変形前後で属性値を演算・正規化
  • Attribute POP — 変形対象の属性を生成・編集
  • CHOP to POP — CHOP の値を点属性に変換して重みとして利用

前処理・後処理POP 🎯


Info情報 📊

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

POP固有情報 ✨

  • num_verts: POP に含まれる頂点 (vertex) 数
  • num_points: POP に含まれるポイント数
  • num_prims: POP に含まれるプリミティブ数

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • cook_abs_frame: 最後にクックされた絶対フレーム番号 (アプリケーション起動からの累積)
  • cook_start_time: 最後のクック開始時刻 (ミリ秒)
  • cook_end_time: 最後のクック終了時刻 (ミリ秒)
  • cooked_this_frame: 現フレームでクックされたか (0 / 1)
  • warnings: 警告数
  • errors: エラー数

ジオメトリ統計 📊

  • num_points: 出力ジオメトリの総点数
  • num_vertices: 出力ジオメトリの総頂点数
  • num_primitives: 出力ジオメトリの総プリミティブ数

属性情報 🏷️

  • num_point_attribs: 点属性の数
  • num_vertex_attribs: 頂点属性の数

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

よくある問題と解決策 🔧

❌ Problem: 変形がまったくかからない
✅ Solution:

  • Strength (強度) が 0 になっていないか確認し、値を上げる
  • Primary Axis (主軸) が点群の伸びている方向と合っているか確認
  • Attribute Class (属性の種類) が変形対象の属性と一致しているか確認

❌ Problem: 変形の中心がずれる
✅ Solution:

  • Pivot (基点) を調整し、変形の中心が意図した位置にあるか確認
  • 前段に Transform POP を入れて基準位置に整列させる
  • Secondary Axis (副軸) が主軸と異なる軸を指しているか確認

❌ Problem: 重み属性による変形が反映されない
✅ Solution:

  • Weight Attribute (重み属性) に正しい属性名を指定しているか確認
  • 前段の Noise POP 等で重み用の属性が生成されているか確認
  • 後段で Math POP を使い属性値の範囲を検証

参考資料 📚

その他 🔗

公式リソース 📖

関連オペレータ 🔗

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