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

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

Text POP の文字列ジオメトリ生成機能を示す図

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

概要 📖 – 文字を立体形状に変換する

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

フォント・サイズ・接続タイプ・整列・トランスフォーム適用

出力: 文字列の各グリフをポイント・プリミティブで構成したジオメトリ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

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 でマテリアル付きにシェーディングする基本フロー。

  1. Text POP を配置し Text パラメータに表示したい文字列を入力
  2. Connectivity を triangles に設定
  3. Extrude をオンにして Extrude Depth で奥行きを調整
  4. Render TOP でマテリアル付きにレンダリング
  5. Transform POP でシーン内の位置・回転を調整
  6. Render TOP に流して立体テキストが描画されることを確認

Example 2: ワイヤーフレーム文字列をライン描画する ✏️

Text POP (Connectivity=linestrips, bridgeholes=on) → Render TOP (ラインマテリアル付き)

Connectivity を Line Strips に設定し Bridge Holes をオンにすることで、O や B などの穴のあるグリフでも内外を橋渡ししたワイヤーフレーム輪郭としてレンダリングするフロー。

  1. Text POP の Connectivity を linestrips に変更
  2. Bridge Holes をオンにして穴のあるグリフの内外輪郭を接続
  3. Line Spacing と Tracking で行間・文字間を調整
  4. ライン描画用のマテリアルを Render TOP で割当
  5. 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 サイネージ・字幕レイアウト・空間注釈などに活用できます。

  1. Table DAT を用意し最初の行に tx / ty / tz / text 列名を記述
  2. 各行に各文字列の座標と文字列を入力
  3. Text POP の Mode を specdat (Specification DAT/CHOP) に変更
  4. Specification DAT パラメータに Table DAT のパスを指定
  5. 必要に応じ Specification CHOP で座標を時間アニメーション化
  6. 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 🎯


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 で不要属性を破棄してメモリ・帯域を節約

参考資料 📚

その他 🔗

公式リソース 📖

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