
概要 📖 – 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 直接バッファ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
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 ファイル側にトランスフォーム情報が含まれている場合のみ機能します。
ロード設定関連パラメータ ⚙️
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 ファイルから選択再生できます。
- Houdini 側で ROP Alembic Output ノードからシーケンスをエクスポート
- Alembic SOP の Alembic File にファイルパスを指定
- Object Path で対象オブジェクトを選択 (
All Objects一括も可) - 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 のタイムラインと同期できます。
- Alembic SOP の Time に
absTime.frameまたは Timeline 参照式を設定 - Time Unit を Frames に切り替え (シーケンスのフレーム数で操作)
- Transform を Dynamic Transformation に設定してアニメーション付きトランスフォームを有効化
- Interpolation を Smooth Interpolation に切り替えてサンプル間補間を滑らかに
- Geometry COMP 経由でレンダリング
Example 3: 高ポリゴン静止メッシュの GPU 直接描画 ⚡
高ポリ .abc (法線・UV ベイク済み) → Alembic SOP (Straight to GPU) → Geometry COMP → Render TOP
ハイポリゴンの静止メッシュを Straight to GPU モードで読み込み、CPU データ展開と SOP チェーンを介さず GPU に直接送ることで描画コストを削減する運用。法線と UV はあらかじめ Alembic ファイル側にベイクしておく必要があります。
- DCC ツール側で法線と UV をベイクして Alembic にエクスポート
- Alembic SOP の Straight to GPU をオンに設定
- 下流で SOP を介さず直接 Geometry COMP に接続
- 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一括読込を回避
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

