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

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

Alembic SOP の Alembic ファイル読込機能を示す図

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

概要 📖 – Alembic ファイル ジオメトリ シーケンス読込

Alembic SOPは、Alembic ファイル (.abc) のジオメトリシーケンスを読み込み、時間軸に沿って再生する SOPです。外部 DCC ツールでベイクされた頂点キャッシュやトランスフォームアニメーションを TouchDesigner 上で再生でき、Straight to GPU モードによる高速描画にも対応します。

主な用途 🎯

  • 外部 DCC ツール (Houdini / Maya / Blender / Cinema 4D) で作成したジオメトリを TouchDesigner に取り込み
  • ベイク済みアニメーション (頂点キャッシュ / トランスフォームアニメ) のリアルタイム再生
  • GPU 直接ロード によるハイポリゴンメッシュの高速描画 (Straight to GPU モード)
  • VFX パイプライン連携 での点群・パーティクル・サーフェスデータの統一フォーマット受け渡し
  • インスタンシング用テンプレート としての複雑な静的メッシュの再利用

データフロー 🔄

入力: Alembic ファイル (.abc)

処理: Object Path 指定で対象ジオメトリ抽出 + Time / Transform / Interpolation 適用

出力: ジオメトリ SOP (CPU データ) または GPU 直接バッファ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Page 📁

ファイル指定 📂

Alembic File .file 📄
– 読み込む Alembic ファイル (.abc) のパス
– 外部 DCC ツール (Houdini / Maya / Blender / Cinema 4D) でエクスポートしたファイルを指定

Object Path .objectpath 🎯
– 読み込む対象のジオメトリオブジェクトを指定
– 各ジオメトリオブジェクトは複数のジオメトリを含む階層構造を表現可能
All Objects を選択すると利用可能な全オブジェクトを一括読込 (デフォルト)

時間制御 ⏱️

Time .time 🕒
– Alembic サンプルシーケンスのどの位置を読み込むかを指定
– 通常は absTime.frame 等の参照式で TouchDesigner の時間軸と同期

Time Unit .timeunit 📐

Time パラメータで指定する値の時間単位を選択するメニューパラメータ

項目 内部名 説明
Frames .frames Time の値をフレーム番号として解釈
Seconds .seconds Time の値を秒数として解釈
Fraction .fraction Time の値を 0.0–1.0 のシーケンス内位置 (割合) として解釈

Transform .xform 🔄

Alembic ファイル内のトランスフォームデータを適用する方法を選択

項目 内部名 説明
None .none トランスフォームを適用せず、ローカル座標のままジオメトリを出力
Static Local Transformation .staticlocal ファイル内に格納された静的なローカルトランスフォームを適用
Static World Transformation .staticworld ファイル内に格納された静的なワールドトランスフォームを適用
Dynamic Transformation .dynamic 時間軸に沿って変化するアニメーション付きトランスフォームを適用

Interpolation .interp 🎞️

Alembic ファイル内のサンプル間 (キーフレーム間) の補間方法を選択するメニューパラメータ

項目 内部名 説明
None .none 補間せず最も近いサンプルをそのまま使用 (ステップ補間)
Smooth Interpolation .smooth サンプル間を線形補間して滑らかなアニメーションを生成

※ 注意: Interpolation は対象ジオメトリが Dynamic として定義され、かつ入力 Alembic ファイル側にトランスフォーム情報が含まれている場合のみ機能します。

引用元: 公式 docs

ロード設定関連パラメータ ⚙️

Straight to GPU .straightgpu 🚀
– ジオメトリを GPU に直接ロードし CPU データ展開をスキップ
– デフォルト (CPU ロード) より高速だが、後段の SOP 接続や SOP to CHOP / SOP to DAT でのジオメトリデータ参照が不可になる
– 法線・UV は Alembic ファイル側にあらかじめベイクしておく必要があります (TouchDesigner の SOP では追加できない)

Compute Normal .compnml 🧭
– 入力ジオメトリに法線を生成
– Alembic ファイル側に法線がベイクされていない場合に有効

Unload .loadfile 💾
– オンでファイルをアンロードしクローズ (他アプリからの上書き・削除が可能になる)
– オフに戻すと再度ロード


実践アイデア 💡

Example 1: Houdini からのジオメトリ取込 🎬

Houdini ROP Alembic Output → .abc ファイル → Alembic SOP → Geometry COMP → Render TOP

Houdini の ROP Alembic Output ノードで書き出した .abc を TouchDesigner で読み込み、Geometry COMP + Render TOP の標準パイプラインに乗せる基本フロー。Object Path で対象オブジェクトを切り替えることで複数ジオメトリを 1 ファイルから選択再生できます。

  1. Houdini 側で ROP Alembic Output ノードからシーケンスをエクスポート
  2. Alembic SOP の Alembic File にファイルパスを指定
  3. Object Path で対象オブジェクトを選択 (All Objects 一括も可)
  4. Geometry COMP の SOP として参照し Render TOP でレンダリング

Example 2: ベイク済みアニメーションの再生 💃

DCC ベイク .abc → Alembic SOP (Time + Smooth Interpolation) → Geometry COMP → Render TOP

外部ツールでベイクしたキャラクター/オブジェクトアニメーションを Time パラメータでスクラブ再生し、Interpolation を Smooth に設定することでサンプル間の補間を滑らかにする運用。Time に absTime.frame 系の参照式を入れることで TouchDesigner のタイムラインと同期できます。

  1. Alembic SOP の Time に absTime.frame または Timeline 参照式を設定
  2. Time Unit を Frames に切り替え (シーケンスのフレーム数で操作)
  3. Transform を Dynamic Transformation に設定してアニメーション付きトランスフォームを有効化
  4. Interpolation を Smooth Interpolation に切り替えてサンプル間補間を滑らかに
  5. Geometry COMP 経由でレンダリング

Example 3: 高ポリゴン静止メッシュの GPU 直接描画 ⚡

高ポリ .abc (法線・UV ベイク済み) → Alembic SOP (Straight to GPU) → Geometry COMP → Render TOP

ハイポリゴンの静止メッシュを Straight to GPU モードで読み込み、CPU データ展開と SOP チェーンを介さず GPU に直接送ることで描画コストを削減する運用。法線と UV はあらかじめ Alembic ファイル側にベイクしておく必要があります。

  1. DCC ツール側で法線と UV をベイクして Alembic にエクスポート
  2. Alembic SOP の Straight to GPU をオンに設定
  3. 下流で SOP を介さず直接 Geometry COMP に接続
  4. Render TOP でレンダリング (SOP to CHOP / SOP to DAT は使えないことを確認)

関連オペレータ 🔗

類似機能OP 🔍

  • File In SOP — OBJ / BGEO 等 Alembic 以外のジオメトリファイル形式のロード
  • FBX (FBX COMP) — FBX 形式 (リグ・スキン含む) のキャラクター/シーン読込

組み合わせ推奨OP 🔄

  • Geometry COMP — Alembic SOP の出力をレンダリングパイプラインに投入するコンテナ
  • Render TOP — Geometry COMP を 3D レンダリングして TOP に出力
  • Transform SOP — Alembic 出力のローカル変換を後段で追加調整

前処理・後処理SOP 🎯


Info CHOP情報 📊

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

ジオメトリ統計 📐

  • num_points: この SOP に含まれるポイント数
  • num_prims: この SOP に含まれるプリミティブ数
  • num_particles: この SOP に含まれるパーティクル数

GPU 転送タイミング 🎮

  • last_vbo_update_time: 別スレッドで SOP の CPU データを GPU 上のジオメトリデータに更新するのにかかった時間 (フレーム時間外)
  • last_meta_vbo_update_time: 別スレッドで metaball や NURBS のようなメタサーフェスジオメトリデータを GPU に更新するのにかかった時間 (フレーム時間外)

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始以降にこのオペレータがクックされた合計回数
  • cook_time: 直近のクック所要時間 (ミリ秒)
  • cook_frame: このオペレータが最後にクックされたフレーム番号
  • warnings: このオペレータの警告数
  • errors: このオペレータのエラー数

クック統計 ⏱️

  • total_cooks: total_cooks — プロセス開始以降にこのオペレータがクックされた合計回数
  • cook_time: cook_time — 直近のクック所要時間 (ミリ秒)
  • cook_frame: cook_frame — このオペレータが最後にクックされたフレーム番号

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

よくある問題と解決策 🔧

❌ Problem: Alembic ファイルが読み込まれない / ジオメトリが表示されない
✅ Solution:

  • Alembic File のパスが正しいか確認 (絶対パスまたはプロジェクトからの相対パス)
  • Object Path で対象オブジェクトが選択されているか確認 (All Objects も検討)
  • Unload がオフ (= ロード状態) になっているか確認
  • ファイル形式が .abc で外部 DCC ツールからの書き出しが完了しているか確認

❌ Problem: アニメーションが再生されない / 静止状態のまま
✅ Solution:

  • Time パラメータが時間変化する式 (absTime.frame 等) で駆動されているか確認
  • Time Unit が書き出し時の単位と一致しているか確認 (Frames / Seconds / Fraction)
  • Transform を Dynamic Transformation に設定 (静的トランスフォームでは動かない)
  • Alembic ファイル側にアニメーションシーケンスが含まれているか DCC ツールでエクスポート設定を再確認

❌ Problem: ジオメトリの法線・UV がレンダリングに反映されない
✅ Solution:

  • Straight to GPU 使用時は Alembic ファイル側で法線と UV を事前ベイクする必要あり
  • Straight to GPU をオフにして Compute Normal をオンにすると TouchDesigner 側で法線を生成可能
  • 後段で Transform SOP や Convert SOP を挿入する場合は Straight to GPU を必ずオフにする

❌ Problem: ハイポリゴンメッシュで描画が重い
✅ Solution:

  • Straight to GPU をオンにして CPU データ展開をスキップ
  • Compute Normal をオフにして法線生成コストを削減 (Alembic 側にベイク済みであれば不要)
  • Object Path で必要なオブジェクトのみに絞り込み All Objects 一括読込を回避

参考資料 📚

その他 🔗

公式リソース 📖

外部リソース 🌐

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