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

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

ReRange POP の属性値リマップ機能を示す図

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

概要 📖 – 属性値の範囲を変換

ReRange POPは、点群の属性値を指定した入力範囲から別の出力範囲へ線形変換して出力する POPです。位置・色・法線などの属性を対象に、変換前後の最小値・最大値を指定するだけで値域を合わせ込めます。

主な用途 🎯

  • 点群の位置属性 (P) のスケール変換(モデルサイズの正規化や拡大縮小)
  • 色属性 (Color) の値域マッピング(0〜1 範囲への正規化やトーン調整)
  • 法線・テクスチャ座標など任意属性のリマップ
  • 外部入力値を表示用の範囲へ合わせ込む正規化処理
  • カスタム属性を新しいデータ型・成分数で出力する変換

データフロー 🔄

入力: 点群の属性データ(変換前の範囲)

リマップ処理(Map from の範囲を Map to の範囲へ線形変換)

出力: 変換後の属性を持つ点群

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

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: attrdefaultval0attrdefaultval3 — 出力属性の各成分の既定値。成分数に応じて 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 の範囲へ変換することで、サイズの異なるモデルを一定の表示スケールに揃える基本フローです。

  1. File In POP で点群モデルを読み込む
  2. ReRange POP の Output Attribute Scope を P に設定
  3. Map from Low / High に元モデルの最小・最大座標を指定
  4. 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 🔍

  • Math POP — 属性値の加減乗除によるスケーリング・オフセット
  • Limit POP — 属性値を指定範囲に制限(クランプ)

組み合わせ推奨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 の大小関係が逆になっていないか確認

参考資料 📚

その他 🔗

公式リソース 📖

関連オペレータ 🔗

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