
概要 📖 – 点群をねじり・曲げ変形
Twist POPは、入力ジオメトリに、ねじり・曲げ・せん断・先細り・つぶしなどの非線形な変形を適用する POPです。変形の種類は Operation で選び、主軸・基点・強度・減衰を指定して形状を彫るように加工できます。
主な用途 🎯
- 点群ジオメトリをらせん状にねじる変形(ツイスト表現)
- 軸に沿って曲げる・せん断するなどの非線形な変形
- 中心から先端へ細くする先細り(テーパー)形状の作成
- つぶし・引き伸ばしによる弾性的なアニメーション表現
- 重み属性を使った点ごとの変形強度のコントロール
データフロー 🔄
入力: 点群ジオメトリ(位置・属性を持つ POP データ)
↓
変形処理(Operation で選んだ変形を主軸まわりに Strength と Rolloff で適用)
↓
出力: 変形後のジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
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 でねじれ量を調整します。
- Line POP などで縦方向に伸びた点群を生成
- Twist POP の Operation を Twist に設定し Primary Axis を主軸に指定
- Strength を上げてねじれの強さを調整
- 出力を 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 🎯
- 前処理: Group POP、Noise POP、Attribute POP
- 後処理: Math POP、Convert POP、Delete 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 を使い属性値の範囲を検証
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

