
概要 📖 – 属性値の範囲を変換
ReRange POPは、点群の属性値を指定した入力範囲から別の出力範囲へ線形変換して出力する POPです。位置・色・法線などの属性を対象に、変換前後の最小値・最大値を指定するだけで値域を合わせ込めます。
主な用途 🎯
- 点群の位置属性 (P) のスケール変換(モデルサイズの正規化や拡大縮小)
- 色属性 (Color) の値域マッピング(0〜1 範囲への正規化やトーン調整)
- 法線・テクスチャ座標など任意属性のリマップ
- 外部入力値を表示用の範囲へ合わせ込む正規化処理
- カスタム属性を新しいデータ型・成分数で出力する変換
データフロー 🔄
入力: 点群の属性データ(変換前の範囲)
↓
リマップ処理(Map from の範囲を Map to の範囲へ線形変換)
↓
出力: 変換後の属性を持つ点群
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
ReRange Page 📋
対象属性の指定 🎯
リマップ対象とする属性とその範囲を絞り込むパラメータ群です。
Group .group 🎯Group (グループ) — 入力にグループがある場合、ここでグループ名を指定するとそのグループに属する要素のみを対象に処理します。
Input Attribute Scope .inputattrscope 🎯Input Attribute Scope (入力属性の範囲) — 選んだ属性クラスの中で、影響を与えたい入力属性や属性成分を指定します。
属性クラスの選択 .attrclass 📁
Attribute Class (属性クラス) — 点属性・頂点属性・プリミティブ属性のいずれを対象に処理するかを選びます。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Point | .point |
点属性を対象に処理 |
| Vertex | .vertex |
頂点属性を対象に処理 |
| Primitive | .primitive |
プリミティブ属性を対象に処理 |
範囲のリマップ 📏
変換前の範囲(Map from)と変換後の範囲(Map to)を指定して属性値を線形変換します。
Parameter Size .parsize 📏Parameter Size (パラメータ成分数) — 独立して設定できる範囲値の数を指定します。
以下の値から選択します:
- 1
- 2
- 3
- 4
Map from Low .fromlow 📏Map from Low (変換前の下限) — 変換前の入力範囲の最小値を指定します。
Map from High .fromhigh 📏Map from High (変換前の上限) — 変換前の入力範囲の最大値を指定します。
Map to Low .tolow 📏Map to Low (変換後の下限) — 変換後の出力範囲の最小値を指定します。
Map to High .tohigh 📏Map to High (変換後の上限) — 変換後の出力範囲の最大値を指定します。
出力先の選択 .castto 📤
Cast to (出力型へキャスト) — 出力属性を別のデータ型へ変換したい場合に指定します。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Automatic | .auto |
入力に応じて自動で型を決定 |
| Float | .float |
浮動小数点型へキャスト |
| Int | .int |
整数型へキャスト |
出力属性の選択 .outputattrscope 📤
Output Attribute Scope (出力属性の範囲) — 出力する属性名(成分も選択可)をメニューから選びます。
| 項目 | 内部名 | 説明 |
|---|---|---|
| P | .P |
位置 (Position) 属性へ出力 |
| N | .N |
法線 (Normal) 属性へ出力 |
| Color | .Color |
色属性へ出力 |
| Color.rgb | .Color.rgb |
色の RGB 成分へ出力 |
| Tex | .Tex |
テクスチャ座標属性へ出力 |
| PointScale | .PointScale |
点スケール属性へ出力 |
| LineWidth | .LineWidth |
線幅属性へ出力 |
属性の上書き設定 📁
自動生成される出力属性の型・成分数を手動で上書きしたいときに使うパラメータ群です。
Override Automatic Attribute .overrideautoattr 📁Override Automatic Attribute (属性の自動生成を上書き) — 入力とパラメータから自動で決まる属性の種類を上書きするかどうかを指定します。オンにすると、新しい属性の型と成分数を手動で指定できます。
出力型の指定 .attrtype 📁
Attribute Type (属性のデータ型) — 出力属性のデータ型を指定します(デフォルトは float)。
| 項目 | 内部名 | 説明 |
|---|---|---|
| float | .float |
単精度浮動小数点 |
| double | .double |
倍精度浮動小数点 |
| int | .int |
符号あり整数 |
| uint | .uint |
符号なし整数 |
| Color | .color |
色(単精度) |
| Color (double) | .dcolor |
色(倍精度) |
| Direction | .dir |
方向(単精度) |
| Direction (double) | .ddir |
方向(倍精度) |
成分数と既定値 .attrnumcomps 📏
Components (成分数) — 新しいカスタム属性の成分数を指定します。以下の値から選択します。
| 項目 | 内部名 | 説明 |
|---|---|---|
| 1 | .1 |
成分数 1 |
| 2 | .2 |
成分数 2 |
| 3 | .3 |
成分数 3 |
| 4 | .4 |
成分数 4 |
既定値の指定 .attrdefaultval 📁
Default Value (既定値) — 出力属性の成分が計算できなかったときに使う値です:
- Default Value:
attrdefaultval0〜attrdefaultval3— 出力属性の各成分の既定値。成分数に応じて 1〜4 個まで指定します。
実践アイデア 💡
Example 1: 点群サイズの正規化 📐
File In POP → ReRange POP (P, Map from 入力範囲 → Map to -1〜1) → Null POP
File In POP で読み込んだモデルの位置属性 P を ReRange POP に通し、入力範囲を -1〜1 の範囲へ変換することで、サイズの異なるモデルを一定の表示スケールに揃える基本フローです。
- File In POP で点群モデルを読み込む
- ReRange POP の Output Attribute Scope を P に設定
- Map from Low / High に元モデルの最小・最大座標を指定
- Map to Low / High を -1 と 1 に設定して正規化された点群を得る
Example 2: 色属性のトーン調整 🎨
Noise POP → ReRange POP (Color, Map from 0〜1 → Map to 0.2〜0.8) → GLSL POP
Noise POP で生成した 0〜1 の色値を ReRange POP の Color 出力に通し、出力範囲を 0.2〜0.8 に狭めることで、白飛び・黒つぶれを抑えた落ち着いたトーンの点群カラーを作る用途です。
- Noise POP で各点に 0〜1 のノイズ値を割り当てる
- ReRange POP の Output Attribute Scope を Color に設定
- Map from を 0〜1、Map to を 0.2〜0.8 に指定してコントラストを調整
関連オペレータ 🔗
類似機能OP 🔍
組み合わせ推奨OP 🔄
- Noise POP — ノイズ値を生成し ReRange で表示用範囲に変換
- Attribute Convert POP — リマップ前後で属性のデータ型を変換
- Lookup Attribute POP — 正規化した属性値をルックアップのインデックスに利用
前処理・後処理POP 🎯
Info情報 📊
ReRange POP は POP ファミリー共通の Info 情報取得に対応しています。
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 共通情報 📡
num_points: 出力点群の点数num_prims: 出力のプリミティブ数num_vertices: 出力の頂点数num_attributes: 出力が持つ属性数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 値が期待した範囲に変換されない
✅ Solution:
Map from Low/Map from Highに実際の入力値の最小・最大が設定されているか確認- 前段に Math POP を入れて入力値の分布を整える
Parameter Sizeが対象属性の成分数と合っているか確認
❌ Problem: 出力属性が反映されない
✅ Solution:
Output Attribute Scopeで出力先の属性が正しく選択されているか確認Override Automatic Attributeをオンにして型・成分数を手動指定- 後段の Null POP で属性が出力されているか確認
❌ Problem: 値がクリップされる・はみ出す
✅ Solution:
- ReRange は範囲外の値も線形に延長するため、上限・下限で制限したい場合は後段で Limit POP を使用
Cast toが Int になっていると小数が丸められるため Float を確認Map to Low/Map to Highの大小関係が逆になっていないか確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

