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

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

Alembic Out POP による .abc ファイル書き出しの図

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

概要 📖 – Alembicを書き出す

Alembic Out POPは、入力 POP のジオメトリ・アニメーションを Alembic (.abc) ファイルとしてディスクに書き出す POPです。Record パルスで録画を開始・停止し、Limit Length / Length で長さを制限、Unique Suffix で連番命名を行うことで、TouchDesigner 上のリアルタイム生成結果を再現可能なキャッシュとしてディスクに保存できます。書き出した .abc は Alembic In POP や Houdini / Maya / Blender 等の外部 DCC ツールで読込めるため、TD パイプラインと外部レンダラ・コンポジット工程を繋ぐ橋渡し OP として機能します。

主な用途 🎯

  • TouchDesigner で生成した POP ジオメトリ・パーティクル・点群を .abc ファイルとして外部書き出し
  • シミュレーション結果のキャッシュ化 (再クック不要で同じ結果を再生・配布)
  • Houdini / Maya / Blender 等の外部 DCC ツールへのジオメトリ受け渡し
  • 連番ユニーク命名 (Unique Suffix + N + Leading Zeros) によるバリエーション複数録画
  • Record / Pause / Add Frame の組合せによるシングルフレーム / 部分シーケンスのスナップショット取得

データフロー 🔄

入力 POP(ポイント・頂点・プリミティブ属性)

Alembic Out POP(録画制御 + Alembic 書き出し)

出力: .abc ファイル(ディスク)

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Inputs Page 📥

シーケンシャル入力ブロック 🔁

Input .input 🔢
– 書き出し対象とする入力 POP の本数 (Sequential Parameter Blocks の繰返し数)
– この値に応じて以下 7 パラメータ (In POP / Object Name / 各属性名) が複製される

In POP .input0pop 🎯
– 各シーケンスブロックで書き出す入力 POP のパス指定
– 複数 POP を同一 .abc 内の別オブジェクトとして同時録画する場合に Input を増やしてそれぞれ指定

Object Name .input0objname 🏷️
– .abc ファイル内で割当てるオブジェクト名 (Houdini / Maya 側で見える階層名)
– 後段で外部 DCC で開いた際の識別用ラベルとして機能

Ids Attribute .input0idname 🆔
– ポイント ID 情報を持つ point attribute 名
– パーティクル系のように生死で本数が変動するデータで ID 追跡を可能にする
– Point primitives 出力時のみ有効

Velocity Attribute .input0velname 💨
– 速度情報を持つ point attribute 名 (例: v)
– 外部レンダラのモーションブラー用に書き出す際に指定
– Point primitives 出力時のみ有効

Point Attribute Name .input0ptattrname 📍
– 書き出したいカスタム point attribute をパターンマッチングで選択
– 例: P N Cd uv のようにスペース区切り、* ワイルドカードも使用可

Vertex Attribute Name .input0vertattrname 🔺
– 書き出したいカスタム vertex attribute をパターンマッチングで選択
– UV 等の頂点単位属性を絞り込みたい場合に使用

Prim Attribute Name .input0primattrname 🔷
– 書き出したいカスタム primitive attribute をパターンマッチングで選択
– プリミティブ単位の material 名・group ID 等を含めたいときに指定


Alembic Out Page 📤

ファイルパスとユニーク命名 📂

Unique Suffix .uniquesuff 🔢
– オンにすると me.fileSuffix が連番ユニーク値となり、File パラメータに展開して使える
– 同じファイルパスを誤って上書きせず、自動でバリエーション保存できる

N .n 1️⃣
me.fileSuffix で使用される連番開始インデックス
– Unique Suffix がオンのとき、N から始まる空き番号を計算してサフィックスとする

Leading Zeros Digits .leadingzerosdigits 0️⃣
– サフィックスの最小桁数 (例: 4 にすると 0001, 0002 … と先頭ゼロ詰め)
– インデックスがこの桁数より少なければ先頭にゼロを補って桁を揃える

File .file 📄
– 書き出す Alembic ファイルのパス + ファイル名
– 拡張子 (.abc) は必須。me.fileSuffix を組込めば連番ユニーク命名と組合せ可能
– 例: caches/sim_$F4.abc または caches/sim_`me.fileSuffix`.abc

録画制御 ⏺️

Record .record 🔴
– 1 にすると録画開始、0 で停止 (トグル動作)
– CHOP からエクスポートしてプログラム的に開始・停止する用途に最適

Record Pulse .recordpulse 💥
– パルスを発火するとその瞬間にファイル書込みを実行
– シングルショット書き出しや明示的トリガとして使用

Pause .pause ⏸️
– 録画を一時停止 (Record はオンのまま、フレーム書込みだけ止める)
– Add Frame と組合せてフレーム単位で手動キャプチャするときに使用

Add Frame .addframe
– クリックするたびに 1 フレームを出力に追加
– Pause がオンの状態でのみ有効になる

フレームレートと録画長制限 ⏱️

FPS .fps 🎞️
– 作成される Alembic ファイルのフレームレート (1 秒あたりのフレーム数)
– 60 にすれば 60fps、24 で映画系、30 で TV 系として書き出される

Limit Length .limitlength 🚧
– オンにすると指定長で自動的に録画停止
– 暴走させずに一定長のシーケンスだけキャプチャしたい用途で使用

Length .length 📏
– 録画を停止するまでの長さ
– 単位は右側の Length Unit で Index / Frames / Seconds / Fraction から選択

Samples per Second .abcfps 📈
– Alembic ライブラリに渡す時間サンプリングレート
– FPS と独立して指定可能、サブフレームサンプリングや高精度モーションブラー用途で調整

エクスポートオプション 🧰

Include Primitives .includeprim 🔷
– オンにするとプリミティブデータ (メッシュ・カーブ等のトポロジー) もファイルに書込む
– オフにするとポイントクラウドのみの書き出しとなり、ファイルサイズを抑えられる

Tex Coord Attribute .texcoordattrib 🗺️
– テクスチャ座標を含むジオメトリを書き出すとき、使用するテクスチャ属性名 (Tex 以外でも可)
– 例: uv, uv1 等カスタム命名の UV を扱う場合に指定

Topology Unchanged .unchangedtopology 🔒
– オンにするとトポロジー (頂点接続関係) は録画開始時の状態で固定とみなされ、1 回だけ書込まれる
– 同じメッシュの変形アニメーションだけを録画する場合にファイルサイズを大幅に削減できる

Export 3D Texture Coord .abc3dtex 🧊
– オンにするとテクスチャ座標を 3D 形式 (u, v, w) のカスタム attribute として書込む
– Alembic はデフォルトで 2D テクスチャしかサポートしないため、3D テクスチャを保持したい場合にオン

Max Active Saves .maxactive 🧮
– 同時に実行可能なファイル書込みタスクの最大数
– 大量バリエーションを連続録画する際の並列度を制限してディスク I/O 負荷をコントロール


Common Page 🔧

Bypass .bypass 🚫

POP の処理をスキップして入力をパススルーする設定:

  • オン: 最初の入力 (input1) をそのまま出力にパススルー、POP 内部の処理を無効化
  • 用途: デバッグ時に書き出し処理を一時的に外して入力を確認する際に使用

Free Extra GPU Memory .freeextragpumem 🧠

蓄積した GPU メモリの解放:

  • Free Extra GPU Memory パルス: 出力ポイント数が増減を繰り返した際に確保されたままの GPU メモリを明示的に解放するパルスパラメータ
  • 用途: 大規模パーティクル系で出力サイズが大きく変動した後、未使用メモリを返却して VRAM を節約

Delete Input Attributes .delinputattrs 🗑️

出力属性の絞り込みパターン:

  • Delete Input Attributes パターン: 出力に残したい属性名のパターン (例: P N Cd) を指定。指定外の属性は破棄される
  • 用途: 下流に渡す属性を最小限に絞り、ファイルサイズ・メモリ・帯域を節約

実践アイデア 💡

Example 1: POPを.abcに保存しHoudiniで合成 🎆

Particle POP → Transform POP → Alembic Out POP (Record=1, File=caches/sim_$F4.abc) → ディスク → Houdini

TouchDesigner 上でリアルタイム駆動した Particle POP の結果を Alembic Out POP で .abc に書き出し、Houdini 側で再生・コンポジット・レンダリングする典型例。Topology Unchanged をオフにしてパーティクルの生死を正確にキャプチャし、Velocity Attribute を v に設定すれば Houdini 側でモーションブラーも再現できる。

  1. Particle POP で動的パーティクルを生成し、必要なら Transform POP で位置調整
  2. Alembic Out POP の Filecaches/sim_$F4.abc 等のパスを指定
  3. Include Primitives をオフ (ポイントクラウドのみ) または用途に応じてオン
  4. Velocity Attribute = v に設定して速度属性を書出し、外部レンダラのモーションブラーに対応
  5. Record = 1 にして録画開始、Limit Length で長さ制限を設けて自動停止

Example 2: Pause+Add Frameで静止1枚を取得 📸

Box POP → Render TOP / Alembic Out POP (Pause=On, Record Pulse / Add Frame) → ディスク

TouchDesigner 上で組んだ静的ジオメトリの 1 フレームだけを .abc に固めて配布したいときの手順。Pause をオンにしておくと Record をオンにしても自動でフレームが進まないため、Add Frame ボタンを 1 回押して手動で 1 フレームだけ書込む。サムネ用・SNS 投稿用の単発スナップに便利。

  1. 出力したい POP ジオメトリを Alembic Out POP の入力に接続
  2. File に出力パス + ファイル名を設定 (例: snapshots/scene_001.abc)
  3. Pause をオンにしてから Record をオン (この時点ではまだフレームは書込まれない)
  4. Add Frame パルスを 1 回発火 → 現在のジオメトリ状態が 1 フレーム分書込まれる
  5. Record をオフにして停止、ファイルが閉じられる

Example 3: Unique Suffixで連番を複数録画 🔁

入力 POP (parameter sweep) → Alembic Out POP (Unique Suffix=On, N=1, Leading Zeros=4) → caches/variant_0001.abc, _0002.abc, ...

プロシージャル POP のパラメータを順次変えながら何種類ものバリエーションを録画したいときの定石。Unique Suffix をオンにしておくと me.fileSuffix が連番値を返し、上書き事故を防ぎながら整然と複数 .abc を吐ける。Leading Zeros Digits = 4 にすると _0001, _0002, … 形式でファイルマネージャ上のソート順も自然になる。

  1. Filecaches/variant_`me.fileSuffix`.abc のように me.fileSuffix を組込んだパスを設定
  2. Unique Suffix をオン、N = 1 から開始、Leading Zeros Digits = 4 で 4 桁ゼロ詰め
  3. Record Pulse で 1 セット書き出し → variant_0001.abc が保存される
  4. 上流の POP パラメータを次の値に変更してから再度 Record Pulsevariant_0002.abc が自動採番で保存
  5. DAT で sweep を駆動する場合は Record Pulse をプログラム的にトリガしてバッチ録画を自動化

関連オペレータ 🔗

類似機能OP 🔍

  • Alembic In POP — 書き出した .abc を逆方向に取込む対の OP。Out で書いた結果を In で再生確認できる

組み合わせ推奨OP 🔄

  • Transform POP — 書き出し前のジオメトリ位置・回転・スケール調整
  • Math POP — 頂点属性の正規化・スケーリングを書き出し前に適用
  • Attribute POP — 書き出したい属性のリネーム・整理・絞り込み

前処理・後処理POP 🎯


Info POP情報 📊

Alembic Out POPは Info CHOP / Info DAT による詳細情報取得に対応しています。

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_point_attribs: 書き出される point 属性数 (位置 P / 法線 N / カラー Cd / 速度 v 等)
  • num_vertex_attribs: 書き出される vertex 属性数 (UV 等の頂点単位属性数)
  • num_prim_attribs: 書き出される primitive 属性数 (material 名・group ID 等)
  • num_prims: 書き出されるプリミティブ数 (メッシュ・カーブ数)

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: ファイルが書き出されない / 出力ディレクトリに何も生成されない
✅ Solution:

  • File パラメータに拡張子 .abc が含まれているか確認 (拡張子なしでは書き出し失敗)
  • Record が 1 になっているか、または Record Pulse が発火されたか確認
  • Pause がオンになっていないか確認 (オン時は Record オンでもフレームは書込まれない)
  • 出力ディレクトリの書込み権限と空き容量を OS 側で確認

❌ Problem: ファイルが毎回上書きされて連番にならない
✅ Solution:

  • Unique Suffix をオンにして me.fileSuffix をファイル名に組込む
  • File 例: caches/sim_`me.fileSuffix`.abc
  • N で開始インデックス、Leading Zeros Digits で桁数を調整
  • ファイル名に $F (現在フレーム番号) を使う方法もあるが、複数回の Record をまとめると衝突する

❌ Problem: クック時間が極端に長くフレーム落ちが発生する
✅ Solution:

  • Max Active Saves を下げて並列書込みタスク数を制限
  • Common Page の Delete Input Attributes で書き出す属性を P N Cd 等に絞り込みファイルサイズと I/O を削減
  • Topology Unchanged をオン (トポロジーが静的な場合) にして 1 回だけ書込ませる
  • 上流でMath POP等を使ってポイント数を間引いてから書き出す

❌ Problem: Houdini / Maya で開くとトポロジーエラーになる
✅ Solution:

  • パーティクル等トポロジーが変化するデータで Topology Unchanged をオンにしていないか確認 (動的トポロジーでは必ずオフ)
  • Include Primitives がオフだとポイントクラウドのみが書込まれる。メッシュとして読みたい場合はオン
  • Tex Coord Attribute が外部 DCC の想定属性名 (uv 等) と一致しているか確認
  • Ids Attribute を設定しないとパーティクル ID 追跡ができず、外部 DCC で点が乱れて見える場合がある

参考資料 📚

その他 🔗

公式リソース 📖

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