Nuke 17 新機能:Gaussian Splats・Fields・SplatRender・新3Dシステム・Nuke Studio 解説
Nuke 17 では、リアルタイム 3D 表現として注目を集める Gaussian Splats のサポートが大幅に強化されました。新たに導入された Fields システムや SplatRender と組み合わせることで、splat データをコンポジットパイプラインに自然に組み込めるようになっています。本記事では、Foundry のチュートリアル動画に沿って、その主要な機能と実際のワークフローを解説します。
- 00はじめに
- 01第1部:Gaussian Splats・Fields・SplatRender
- 02Gaussian Splats の読み込みと向き補正
- 03Fields システム:非破壊マスクの新しいアプローチ
- 04実際のワークフロー例:ピクニックテーブルの複製
- 05影の作成:GeoGrade × FieldShapeToDensity
- 06SplatRender:2Dコンポジットへのレンダリング
- 07霧(Fog)と被写界深度の合成
- 08Deep コンポジティングによる 3D ジオメトリとの統合
- 09Field システムの発展的な活用(Labs)
- 10第2部:新 3D システム・USD・投影・MaterialX
- 11第3部:Nuke Studio 17 — 注釈とレビュー
- 12第4部:機能ハイライト
- 13まとめ
1. Gaussian Splats の読み込みと向き補正
読み込み方法
Splat データを Nuke に取り込む方法は複数あります。
GeoImportノードで.splat/.plyファイルを読み込むGeoReferenceで参照する- ファイルブラウザからノードグラフへ直接ドラッグ&ドロップ
3D Viewer に表示すれば、すぐに splat の見た目を確認できます。
向きのズレを補正する
外部ツールで作成した splat を Nuke に持ち込むと、向き(orientation)がずれていることがよくあります。この場合は GeoTransform ノードで回転を補正します。チュートリアルの素材では Z 軸に 180 度の回転が必要でした。補正値はプリセットとして保存しておくと繰り返し使えて便利です。
2. Fields システム:非破壊マスクの新しいアプローチ
Nuke 17 の目玉のひとつが Fields システムです。Gaussian Splats を含む 3D データを、ノードベースで非破壊にマスク・操作できる仕組みです。Splats ワークフローの一部として導入されていますが、用途はそれ以上に広く、さまざまな 3D 操作に応用できます。
主なノード
| ノード | 役割 |
|---|---|
FieldShape | ボックス・球体などの形状でマスク領域を定義 |
FieldMerge | 複数の Field を結合(Shape Union / Shape Difference など) |
FieldInvert | Field の内外を反転 |
FieldShapeToDensity | 境界にフェザー(ぼかし)を追加 |
FieldShapeModify | 形状の丸めなどを調整 |
Preview 機能でマスク領域を可視化
FieldShape は Display タブの Preview 機能でボリュームとして可視化できます。不透明度も調整可能で、どこまで囲えているかを直感的に把握しながら作業できます。計算のオーバーヘッドを増やさないよう、まずチェーンに繋がず配置だけを先に行うのがポイントです。
3. 実際のワークフロー例:ピクニックテーブルの複製
チュートリアルでは「splat シーン内のピクニックテーブルを切り出して別の場所へ移動し、背景に馴染ませる」というタスクを通じて Fields システムを解説しています。
FieldShape を Box 形状にして配置します。今回はテーブルの下側と上側を別々の FieldShape で囲みます。1 つで全部囲うこともできますが、分けることで別のワークフローが見えてきます。
GeoDeletePoints をチェーンに挿し、FieldShape1 を mask 入力に繋ぎます。これでテーブルの下側の splat が削除されます。
次に 2 つ目の FieldShape も活用するため、FieldMerge を作って 2 つの shape をまとめます。このとき operation が Add のままでは意図した結果にならないため、Shape Union(ブーリアンの「和」)に変更します。これで 2 つの shape が結合され、まとめて mask として使えます。
この状態では「テーブルが消える」方向のマスクになっています。今回やりたいのは削除ではなく複製なので、マスクを反転する必要があります。GeoDeletePoints の Invert mask を使う方法もありますが、ここでは FieldInvert ノードを使います。FieldInvert を挟むことで、以降の field が反転され、テーブルだけを残す方向になります。
もう 1 つ FieldShape をコピーしてテーブル下の不要部分を囲み、FieldMerge(Shape Difference)で差し引きます。これでテーブルがより綺麗に分離されます。
分離したテーブルを GeoTransform に繋ぎます。まず pivot を調整します(Mac では Command を押しながら pivot を移動)。これでテーブルを扱いやすくなります。
元の splats と分離したテーブルを統合するために GeoMerge を作り、B に元の splats、A にテーブルを繋ぎます。このとき、scene graph のパスが同一だとテーブルしか表示されなくなるため、GeoMerge の merge mode を Duplicate Prims に変更します。これで scene graph 上でユニークなパスとして扱われ、両方が viewport に表示されます。名前(例:table)をつけておくと管理が楽になります。
4. 影の作成:GeoGrade × FieldShapeToDensity
複製したテーブルを背景に馴染ませるには落ち影が欠かせません。
- 影を落としたい位置に新しい
FieldShape(Box)を配置し、範囲を整えます - 元の splat(背景側)に
GeoGradeを挿入します。分離したテーブルには影響させません - 先ほどの
FieldShapeをGeoGradeの mask に接続し、gain を下げます(例:0.6 あたりから調整) - このままではボックスの境界が硬く見えるため、
FieldShapeToDensityを作って feather を上げます。自然なフォールオフになります - 最終的な影の強さを整えます(チュートリアルでは 0.55 程度)
5. SplatRender:2D コンポジットへのレンダリング
3D 空間での作業が終わったら、SplatRender で 2D にレンダリングします。インターフェースは ScanlineRender と同様で、camera / bg / scene 入力があります。GeoImport(または GeoReference)を scene に繋ぎ、camera も入れればレンダーできます。
カラースペースの調整
レンダー結果の色が 3D ビューと合わない場合は、SplatRender の colorspace 設定を確認します。入力側を適切にタグ付け・補正することで、3D で見ていた印象に近い見た目を揃えられます。
GeoExport でプリコンプ的な軽量化
レンダー前に GeoExport を使って USD や Alembic に書き出しておくことで、2D のプリコンプに近い運用が可能です。ポイント数の多い splat は処理が重くなりがちなので、この手順を挟むことで後工程がスムーズになります。書き出し後は USD をドラッグ&ドロップで再読み込みし、変更が反映されていることを確認できます。処理時間は splat の規模(ポイント数)によって変わります。
6. 霧(Fog)と被写界深度の合成
Depth AOV を使った Fog 合成
SplatRender は Depth AOV を出力できます。Shuffle で depth を取り出して可視化し、Grade でレンジを整えます(必要に応じて反転)。これを使って霧っぽい距離感になるよう調整します。
Fog 素材は GeoCard に貼り付けて 3D 空間で扱います。一時的にシーンへ入れてカードの位置・向き・サイズを調整し、fog を material に設定します。これによりカメラが動いても破綻しにくくなります。Fog card は ScanlineRender で 2D に戻し、screen などのオペレーションで重ねて合成します。
ZDefocus で被写界深度を追加
最後に ZDefocus でフォーカスポイントと量を調整すれば、よりリアリティのある仕上がりになります。
7. Deep コンポジティングによる 3D ジオメトリとの統合
SplatRender は Deep 出力にも対応しています。ここでは FieldShape で城を消して別の 3D ジオメトリに置き換える例が紹介されています。
- メッシュを用意して基本的なシェーディングとライトを当てます
ScanlineRender側で deep を含むパスを用意しておきます- Splat 側も deep を出力し、
DeepSampleで確認します - deep を使わないならサンプル量を下げて軽く、deep を使うなら精度が出る設定にします
DeepMerge(holdout)で splat による正しい抜きを作ります。サンプルが少ないと抜きが粗くなるため、必要に応じて上げます- これで枝葉まで含めた自然なホールドアウトが実現できます
また、deep を points に変換して、FieldShape で領域指定しながら GeoGrade することもできます。
8. Field システムの発展的な活用(Labs)
Labs(実験的)ノードとして提供されている発展的な機能も紹介されています。
第2部:新 3D システム・USD・投影・MaterialX
9. USD シーンの読み込みと GeoReference
GeoImport で USD シーンを読み込むと scene graph が開き、prim を選んで import できます。prim の型やパスで検索でき(例:「geo」)、lights / cameras / materials / meshes などでフィルタリングも可能です。import 後も scene graph タブで選択を調整できます。
このリリースでは Alembic import もサポートされます。
USD からカメラを取得・編集する
Camera ノードを作り、scene を繋いで source prim を選ぶことで USD からカメラを取得できます。USD の live read は UI で確認でき、上書きすると変更箇所がハイライトされます。GeoEditCamera を使えば、USD stage のカメラを直接編集することもできます。
10. 投影(Projection)
ショットカメラを複製して FrameHold で projection camera を作り、Project3DShader にカメラとテクスチャを入れます。GeoBindMaterial でメッシュにバインドし、ScanlineRender2 で 2D にレンダーして確認します。
Sticky projection もできます。GeoProjectUV を使って reference frame を指定することで、投影を貼り付けて固定できます。
11. ScanlineRender2 の強化
ScanlineRender2 はレイトレース、AOV、モーションブラー、マスクなどを備えています。反射・屈折も扱えます。HDRI を環境光にして反射を作る例や、窓の反射・炎といった複雑な素材の追加例も紹介されています。
GeoActivationでガラスなどの特定の prim を isolate できますGeoConstraintを使えばカードを対象 prim に親子付けできます- USD のパス名が維持される限り、アセット更新でもやり直しを減らせます
12. MaterialX Standard Surface
Nuke 17.0 では MaterialX Standard Surface シェーダが使えるようになりました。ノーマルマップなどの入力で、Nuke 内の照明・陰影のコントロールが増えます。
変更した内容は GeoExport で USD として書き出して他パートへ共有できます。なお、新 3D システムの変更はまだ一部であり、詳細はドキュメントとリリースノートを参照することが推奨されています。
第3部:Nuke Studio 17 — 注釈(Annotations)とレビュー
13. 注釈機能の強化
Nuke Studio 17 では注釈機能が大幅に強化されました。注釈パネルが見やすい専用ワークスペースが用意されています。
第4部:機能ハイライト
14. その他の注目アップデート
Nuke 17 にはほかにも多くのアップデートが含まれています。
| 機能 | 概要 |
|---|---|
BigCat | CopyCat を大規模データセット向けに拡張した考え方の新ノード |
| アップスケール | ML ノード、配布ツール、TVIScale など複数の方法が用意されています |
| Deep の高速化 | ワークフローを変えずにパフォーマンスが向上 |
| Graph Scope Variables | Python コールバックが追加され、変数の追加・削除・改名・変更に反応できるようになりました |
| MOV 対応強化 | YCbCr 変換・NCLC メタデータのサポート |
| NotchLC | MOV codec が Windows / Linux でサポート |
| ACES 2.0 | OCIO 経由で対応 |
| OFX プラグインの解像度制限を撤廃 | |
| VFX Reference Platform 2025 対応 | |
| USD 25.08 準拠 | 新 3D システム |
| OpenAssetIO など | パイプライン連携の基盤も更新 |
| Sony SDK など | カメラ関連 SDK の更新も取り込まれています |
まとめ
Nuke 17 の Gaussian Splats 対応は、単なるデータ読み込みにとどまらず、Fields システムによる非破壊編集・GeoGrade による質感調整・SplatRender による深度や Deep 合成まで、一貫したパイプラインとして設計されています。
新 3D システムによる USD・MaterialX・ScanlineRender2 の強化、Nuke Studio の注釈機能改善など、コンポジット全体のワークフローを底上げするアップデートが揃っています。
