Pivot Painter の使い方とUE5での実装方法について解説しました。
また、Naughty DogはUncharted 4やThe Last of Us Part IIで、
ピボット中心のベイク済みシェーダーアニメーションを多数使用しています。
ACM SIGGRAPH 2016 Talks「Technical Art of Uncharted 4」にも軽く触れました。
管理人がYouTubeで解説!
HoudiniのPivot Painterとは?
Pivot Painter は、Houdiniに含まれる SideFX Labsツール のひとつで、
オブジェクトやその部品ごとの ピボット位置(回転・スケールの基準点)や方向ベクトル を計算し、
それらを テクスチャや頂点データに焼き込む ための仕組みです。
ゲームエンジン(Unreal Engine / Unity など)に持ち込んだとき、
マテリアル(シェーダー)側でピボットを参照して回転やスケールを制御できるようになります。
主な用途
- 木や草などの風アニメーション
各ブランチやリーフのピボットを持たせて、風による揺れを自然に再現。 - 群衆・破片の制御
RBDシミュレーションのピースごとにピボットを設定し、インスタンスとして動かす。 - インスタンス制御
大量のオブジェクトを個別のピボットを基準にスケーリング・回転できる。
技術的な仕組み
- Houdiniでメッシュを分解(例:葉・枝・破片など)。
- 各部品ごとの ピボット座標(位置)と方向ベクトル を計算。
- それらを 頂点カラーやテクスチャにエンコード。
- ゲームエンジンにインポートし、マテリアルで Pivot情報を参照 → 回転・揺れ・スケールを表現。
メリット
- ボーンやスケルトンを使わずに、複雑な動きを軽量に表現できる。
- GPUベースで処理されるため、大量のインスタンスを効率的に制御可能。
- VAT(Vertex Animation Texture)と組み合わせることで、よりリッチなアニメーション表現が可能。
👉 要するに「各部品の回転基準をHoudiniで計算 → ゲームエンジンで再利用できるようにする」ためのワークフロー支援ツールです。
Pivot Painter と VAT の違い
項目 | Pivot Painter | VAT (Vertex Animation Texture) |
---|---|---|
目的 | オブジェクトやパーツごとの「回転・スケールの基準点(Pivot)」と「方向ベクトル」を記録し、シェーダーで制御できるようにする | 頂点アニメーションそのものをテクスチャにベイクして、シェーダーで再生する |
典型的な用途 | 樹木の枝や葉の揺れ、破片や群衆インスタンスの回転制御 | 破壊シミュレーション、流体、布、煙などの複雑な動きの再生 |
データ内容 | Pivot位置、方向ベクトル、スケール値などを頂点カラーやテクスチャに格納 | 頂点ごとの位置(Position)、法線、回転、スケールをフレームごとに格納 |
柔軟性 | シェーダー内でパラメータ制御(風の強さ、回転速度など)をリアルタイムに変更できる | 基本的に事前にベイクしたアニメーションを再生(再生速度やフレーム制御は可能) |
軽量さ | 非常に軽量(動きはシェーダーの数式で再現) | 頂点数 × フレーム数ぶんのテクスチャメモリを消費 |
特徴 | スケルトンを使わずに「回転中心」を自在にコントロールできる | DCCツールで作成したアニメーションを「そのまま」忠実に再現できる |
まとめ
- Pivot Painter は「ゲームエンジン内で動きを作るためのピボット情報」を渡す仕組み。
→ 木や草、群衆のように「ランダム性」や「リアルタイム制御」が必要なケースに最適。 - VAT は「DCCツールのシミュレーション結果をそのまま再生する仕組み」。
→ 流体や破壊、布など「複雑で再現困難な動き」をゲーム内で表現したいときに有効。
Naughty Dog Uncharted 4の例
詳細は、SIGGRAPH2016 Production Session 「Technical Art of Uncharted 4」
https://advances.realtimerendering.com/other/2016/naughty_dog/index.html
コメント