
概要 📖 – 文字を立体形状に変換する
Text POPは、文字列を 3D テキストジオメトリ (Triangles / Line Strips) として生成する POPです。Font / Typeface / Font Size / 整列 / Word Wrap / Extrude / Transform を 1 ノードで制御でき、Specification DAT/CHOP モードでは複数文字列を 3D 空間に個別配置することも可能です。
主な用途 🎯
- 任意の文字列を 3D テキストジオメトリ (Triangles または Line Strips) として生成しレンダー可能化
- Font / Typeface / Font Size を切替えて多言語・多書体のタイトル・ラベルを動的生成
- Specification DAT / CHOP を使って複数文字列を 3D 空間の任意位置に個別配置 (3D サイネージ・字幕レイアウト)
- Extrude + Triangles で立体文字を生成し物理シーンや 3D ロゴ表現に流用
- Transform Page で文字列ジオメトリを移動・回転・スケール・ピボット指定して 3D シーンに配置
データフロー 🔄
入力: 文字列 (Text パラメータ) または Specification DAT/CHOP
↓
フォント・サイズ・接続タイプ・整列・トランスフォーム適用
↓
出力: 文字列の各グリフをポイント・プリミティブで構成したジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Text Page 🔤
Connectivity .connectivity 🔗
テキストグリフを構成するプリミティブの種類を決定するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Triangles | .triangles |
各グリフを塗りつぶし可能な三角形プリミティブで構成 (Extrude 有効化の前提) |
| Line Strips | .linestrips |
各グリフの輪郭をラインストリップで構成 (ワイヤーフレーム文字・アウトライン表現) |
Bridge Holes .bridgeholes 🕳️
Bridge Holes .bridgeholes 🕳️
– 穴のあるグリフ (O / B / D 等) の内側と外側のラインストリップを橋渡しして接続
– Line Strips モード時のみ有効、Triangles モードでは無視される
Mode .mode 🎛️
文字列の供給源を Text パラメータと Specification DAT/CHOP で切替
| 項目 | 内部名 | 説明 |
|---|---|---|
| Text | .text |
下の Text パラメータの文字列を直接読み取り 1 つのテキストブロックとして生成 |
| Specification DAT/CHOP | .specdat |
Specification DAT (tx, ty, text 列) と Specification CHOP (tx, ty, tz チャンネル) から複数文字列を個別位置・個別整列で生成 |
Text 入力ソース ✍️
Text .text ✍️
– ジオメトリ化したい文字列を直接記述
– 改行 (\n) / タブ (\t) を入れる場合はパラメータを式モードにして Python 文字列で指定 (例: 'First Line\nSecond Line')
Specification DAT .specdat 📄
– Specification モード時に使用する Table DAT のパスを指定
– 表は最初の行に tx / ty / tz / text 列を持ち、各行が POP 空間座標と文字列を表す
Specification CHOP .specchop 📊
– Specification モード時に DAT の各行に対応する数値データを供給する CHOP のパス
– tx / ty / tz チャンネルで各テキストブロックの位置を動的に制御
Scale Font to BBox Height .scalefonttobboxheight 📏
Scale Font to BBox Height .scalefonttobboxheight 📏
– フォントの縦サイズをグリフの垂直バウンディングボックス基準にスケール
– フォント間で見た目の高さを揃えたいときに使用
Break Language .breaklang 🌐
Break Language .breaklang 🌐
– グリフの整形ヒントとなる言語タイプの略号を指定
– 略号は公式 Text TOP / SOP の Unicode Language Abbreviations 表に準拠
Reading Direction .readingdirection ↔️
文字列の読み方向 (左→右 / 右→左) を切替
| 項目 | 内部名 | 説明 |
|---|---|---|
| Left To Right | .lefttoright |
欧文・日本語など左から右に読む言語向け (既定) |
| Right To Left | .righttoleft |
アラビア語・ヘブライ語など右から左に読む言語向け |
Word Wrap .wordwrap ↩️
Word Wrap .wordwrap ↩️
– オンにすると Word Wrap Size を超える行が自動的に折り返される
– 段落テキストや長文ラベルを枠内に収めたい場合に使用
Word Wrap Size .wordwrapsize 📐
– 折り返しが発生する 3D 空間上の幅 (POP 空間単位)
– Word Wrap がオンのときのみ有効
Smart Punctuation .smartpunct ❝
Smart Punctuation .smartpunct ❝
– 引用符ペアを角度付き引用符に、3 連ピリオドを省略記号 (…) に、2 連ハイフンを em-dash (—) に自動置換
– 欧文タイポグラフィを整える際に使用
Level of Detail .levelofdetail 🔬
Level of Detail .levelofdetail 🔬
– グリフ形状の細分化レベルを上下させて品質とポリゴン数を調整
– 高い値で滑らかな輪郭、低い値で頂点数を抑えて軽量化
Font Page 🅰️
Font / Font File / Typeface 🔤
Font .font 🔤
– ドロップダウンから OS にインストール済みの TrueType フォントを選択
– フォント一覧は OS から提供される (Windows: フォントフォルダ、macOS: Font Book)
Font File .fontfile 📁
– 任意の TrueType (.ttf) / OpenType (.otf) ファイルをパス指定で使用
– Font File を指定すると上の Font ドロップダウンは無効化される
Typeface .typeface ✒️
– 選択中フォントの具体的なウェイト・スタイル (Bold / Regular / Italic 等) を指定
– フォントが対応するタイプフェイスのみメニューに表示される
Font Size .fontsize 📐
フォントサイズをベースラインからレイアウトボックス上端までの距離で指定
| 項目 | 内部名 | 説明 |
|---|---|---|
| Font Size X | .fontsizex |
水平方向のフォントサイズ。既定値 1 は標準フォントの大文字の縦サイズ相当 |
| Font Size Y | .fontsizey |
垂直方向のフォントサイズ。Keep Font Ratio オン時は無視される |
Keep Font Ratio .keepfontratio 🔒
Keep Font Ratio .keepfontratio 🔒
– オンにすると Font Size Y を無視し、X と Y のサイズを Font Size X に揃える
– アスペクト比固定の文字を生成したいときに使用
Tracking .tracking ↔️
文字間の追加スペースを X / Y 方向で指定 (フォント既定オフセットへの加算)
| 項目 | 内部名 | 説明 |
|---|---|---|
| Tracking X | .trackingx |
水平方向の文字間スペース追加量 |
| Tracking Y | .trackingy |
垂直方向の文字間スペース追加量 |
Line Spacing .linespacing 📏
Line Spacing .linespacing 📏
– 改行 (\n) または Word Wrap で生成される行と行の間隔を指定
– 値を大きくすると行間が広がる
Horizontal Align .alignx ↔️
テキストの水平方向の整列位置を選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| Left | .left |
テキストを左端基準で整列 |
| Center | .center |
テキストを水平中央で整列 |
| Right | .right |
テキストを右端基準で整列 |
Vertical Align .aligny ↕️
テキストの垂直方向の整列位置を選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| Bottom | .bottom |
テキスト下端を基準に整列 |
| Center | .center |
テキストを垂直中央で整列 |
| Top | .top |
テキスト上端を基準に整列 |
| Baseline | .baseline |
ベースライン (大文字の下端) を基準に整列、欧文タイポグラフィで一般的 |
Font Color .fontcolor 🎨
テキストのデフォルトカラーを RGB で指定
| 項目 | 内部名 | 説明 |
|---|---|---|
| Font Color R | .fontcolorr |
赤成分 (0.0 – 1.0) |
| Font Color G | .fontcolorg |
緑成分 (0.0 – 1.0) |
| Font Color B | .fontcolorb |
青成分 (0.0 – 1.0) |
Font Alpha .fontalpha 💧
Font Alpha .fontalpha 💧
– テキストの不透明度を 0.0 (完全透明) ~ 1.0 (完全不透明) で指定
– フェードイン・フェードアウト演出のアニメーション値として使用可能
Extrude .extrude 📦
Extrude .extrude 📦
– 各グリフを Z 方向に押し出して立体文字を生成
– Connectivity が triangles のときのみ有効
Extrude Depth .extrudedepth 📏
– 押し出しの奥行き (Z 方向の長さ) を指定
– Extrude オン + Triangles モードでのみ反映
Transform Page 🔄
Transform Order .xord 🔢
Scale / Rotate / Translate を適用する順序を 6 通りから選択 (順序によって最終位置が変わる)
| 項目 | 内部名 | 説明 |
|---|---|---|
| Scale Rotate Translate | .srt |
S → R → T の順 (既定。最も一般的な変換順) |
| Scale Translate Rotate | .str |
S → T → R の順 |
| Rotate Scale Translate | .rst |
R → S → T の順 |
| Rotate Translate Scale | .rts |
R → T → S の順 |
| Translate Scale Rotate | .tsr |
T → S → R の順 |
| Translate Rotate Scale | .trs |
T → R → S の順 |
Rotate Order .rord 🔄
X / Y / Z 軸まわりの回転を適用する順序を 6 通りから選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| Rx Ry Rz | .xyz |
X → Y → Z の順に回転 |
| Rx Rz Ry | .xzy |
X → Z → Y の順に回転 |
| Ry Rx Rz | .yxz |
Y → X → Z の順に回転 |
| Ry Rz Rx | .yzx |
Y → Z → X の順に回転 |
| Rz Rx Ry | .zxy |
Z → X → Y の順に回転 |
| Rz Ry Rx | .zyx |
Z → Y → X の順に回転 |
Translate .t ↗️
テキストジオメトリを X / Y / Z 軸方向に平行移動
| 項目 | 内部名 | 説明 |
|---|---|---|
| Translate X | .tx |
X 軸方向の平行移動量 |
| Translate Y | .ty |
Y 軸方向の平行移動量 |
| Translate Z | .tz |
Z 軸方向の平行移動量 |
Rotate .r 🔁
テキストジオメトリを X / Y / Z 軸まわりに回転 (度)
| 項目 | 内部名 | 説明 |
|---|---|---|
| Rotate X | .rx |
X 軸まわりの回転角 (度) |
| Rotate Y | .ry |
Y 軸まわりの回転角 (度) |
| Rotate Z | .rz |
Z 軸まわりの回転角 (度) |
Scale .s 📏
テキストジオメトリを X / Y / Z 軸方向に拡大縮小
| 項目 | 内部名 | 説明 |
|---|---|---|
| Scale X | .sx |
X 軸方向の拡大縮小率 (1.0 が等倍) |
| Scale Y | .sy |
Y 軸方向の拡大縮小率 (1.0 が等倍) |
| Scale Z | .sz |
Z 軸方向の拡大縮小率 (1.0 が等倍) |
Pivot .p 🎯
Scale / Rotate の基準となるピボット (回転・拡縮中心) 位置を指定
| 項目 | 内部名 | 説明 |
|---|---|---|
| Pivot X | .px |
ピボットの X 座標 |
| Pivot Y | .py |
ピボットの Y 座標 |
| Pivot Z | .pz |
ピボットの Z 座標 |
Common Page 🔧
Bypass .bypass 🚫
POP の処理をスキップして入力をパススルーする設定:
- オン: 最初の入力 (input1) をそのまま出力にパススルー、POP 内部の処理を無効化
- 用途: デバッグ時に特定 POP の効果を一時的に外して比較する際に使用
Free Extra GPU Memory .freeextragpumem 🧠
蓄積した GPU メモリの解放:
- Free Extra GPU Memory パルス: 出力ポイント数が増減を繰り返した際に確保されたままの GPU メモリを明示的に解放するパルスパラメータ
- 用途: テキスト文字数が大きく変動した後、未使用 GPU メモリを返却して VRAM を節約
Delete Input Attributes .delinputattrs 🗑️
出力属性の絞り込みパターン:
- Delete Input Attributes パターン: 出力に残したい属性名のパターン (例:
P N Cd) を指定。指定外の属性は破棄される - 用途: 下流で不要な属性を切り落として分岐ブランチを軽量化、メモリ・帯域を節約
実践アイデア 💡
Example 1: 3D ロゴテキストを Extrude で立体化する 🎯
Text POP (Connectivity=triangles, Extrude=on) → Render TOP (マテリアル付き)
Text パラメータに任意の文字列を入れ、Connectivity を Triangles + Extrude オンに設定して立体ロゴ文字を生成し、Transform POP でシーンに配置して Render TOP でマテリアル付きにシェーディングする基本フロー。
- Text POP を配置し Text パラメータに表示したい文字列を入力
- Connectivity を
trianglesに設定 - Extrude をオンにして Extrude Depth で奥行きを調整
- Render TOP でマテリアル付きにレンダリング
- Transform POP でシーン内の位置・回転を調整
- Render TOP に流して立体テキストが描画されることを確認
Example 2: ワイヤーフレーム文字列をライン描画する ✏️
Text POP (Connectivity=linestrips, bridgeholes=on) → Render TOP (ラインマテリアル付き)
Connectivity を Line Strips に設定し Bridge Holes をオンにすることで、O や B などの穴のあるグリフでも内外を橋渡ししたワイヤーフレーム輪郭としてレンダリングするフロー。
- Text POP の Connectivity を
linestripsに変更 - Bridge Holes をオンにして穴のあるグリフの内外輪郭を接続
- Line Spacing と Tracking で行間・文字間を調整
- ライン描画用のマテリアルを Render TOP で割当
- Render TOP でアウトライン文字が描画されることを確認
Example 3: Specification DAT で複数文字列を 3D 配置する 🗺️
Table DAT (tx, ty, tz, text) → Text POP (Mode=specdat, specdat=path) → Render TOP (マテリアル付き)
Specification DAT を使い、1 つの Text POP で複数文字列をそれぞれ異なる 3D 座標・整列で生成する応用フロー。3D サイネージ・字幕レイアウト・空間注釈などに活用できます。
- Table DAT を用意し最初の行に
tx/ty/tz/text列名を記述 - 各行に各文字列の座標と文字列を入力
- Text POP の Mode を
specdat(Specification DAT/CHOP) に変更 - Specification DAT パラメータに Table DAT のパスを指定
- 必要に応じ Specification CHOP で座標を時間アニメーション化
- Render TOP で各文字列が指定座標に配置されることを確認
関連オペレータ 🔗
類似機能OP 🔍
- Text SOP — SOP 系の文字列ジオメトリ生成。Text POP の POP 系等価機能で、SOP ワークフローを使う場合の代替
- Text TOP — 2D テクスチャとしての文字列描画。ジオメトリ不要で UI ラベル・字幕表示に向く
組み合わせ推奨OP 🔄
- Transform POP — テキスト全体を 3D シーン内で移動・回転・スケール調整
- POP to SOP — Text POP のジオメトリを SOP ワークフローに渡してさらなる加工を行う
- Render TOP — Text POP のジオメトリを 2D 画像としてレンダリングして合成・後処理
- Table DAT — Specification モードで複数文字列の座標と内容を供給するソース
前処理・後処理POP 🎯
- 前処理: DAT to POP
- 後処理: Transform POP、Convert POP、POP to SOP
Info POP情報 📊
Text POP は 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: エラー数
POP 汎用情報 (Info CHOP 経由) 📊
num_points: 出力テキストジオメトリのポイント数 (文字数 + 細分化レベルに依存)num_prims: 生成されたプリミティブ数 (Triangles or Line Strips の合計)num_point_attribs: 出力ジオメトリのポイント属性数num_vertex_attribs: 出力ジオメトリの頂点属性数num_prim_attribs: 出力ジオメトリのプリミティブ属性数gpu_memory_used: この POP が使用している GPU メモリ量
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: Extrude をオンにしても立体にならない
✅ Solution:
- Connectivity が
trianglesになっているか確認 (Line Strips モードでは Extrude は無視される) - Extrude Depth が
0のままになっていないか確認 (0 だと厚みなし) - 下流の Render TOP の描画設定が両面描画になっているか確認
❌ Problem: 日本語・記号などの一部文字が表示されない / 豆腐 (□) になる
✅ Solution:
- 選択中の Font / Font File がその文字のグリフを含んでいるか確認、含まないフォントは表示されない
- Font File パラメータで日本語フォント (.ttf / .otf) を直接指定する
- Break Language を該当言語の略号 (例:
ja) に設定してグリフ整形ヒントを与える
❌ Problem: テキストの位置・整列が思った場所にならない
✅ Solution:
- Horizontal Align (
alignx) と Vertical Align (aligny) を確認、Baseline と Bottom は基準が異なる - Transform Order (
xord) を変更すると Scale / Rotate / Translate の適用順が変わり最終位置がずれることに注意 - Pivot (
px/py/pz) が原点 (0, 0, 0) から離れていないか確認、Scale / Rotate の中心がここになる
❌ Problem: ワイヤーフレーム (Line Strips) でグリフの穴が塗りつぶされる / 内側が消える
✅ Solution:
- Bridge Holes をオンにして穴のあるグリフの内外輪郭を橋渡し接続
- Connectivity を
linestripsに保ったまま、Line Spacing や Tracking で重なりを回避 - シェーダ側で線の太さ・透過設定を確認し、線が重なって塗りつぶしに見えていないか検証
❌ Problem: ポリゴン数が多すぎて重い
✅ Solution:
- Level of Detail を下げてグリフ細分化を粗くする
- Extrude が不要なら Connectivity を
linestripsに切替えて頂点数を削減 - Common Page の Delete Input Attributes で不要属性を破棄してメモリ・帯域を節約
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Text POP
- POP 概要 (Points, Vertices and Primitives in POPs)
- Text SOP (SOP 系のテキストジオメトリ生成)
- Text TOP (2D テクスチャ系のテキスト描画)

