Part 01

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 など)
FieldInvertField の内外を反転
FieldShapeToDensity境界にフェザー(ぼかし)を追加
FieldShapeModify形状の丸めなどを調整

Preview 機能でマスク領域を可視化

FieldShape は Display タブの Preview 機能でボリュームとして可視化できます。不透明度も調整可能で、どこまで囲えているかを直感的に把握しながら作業できます。計算のオーバーヘッドを増やさないよう、まずチェーンに繋がず配置だけを先に行うのがポイントです。

3. 実際のワークフロー例:ピクニックテーブルの複製

チュートリアルでは「splat シーン内のピクニックテーブルを切り出して別の場所へ移動し、背景に馴染ませる」というタスクを通じて Fields システムを解説しています。

FieldShape でテーブルを囲む

FieldShape を Box 形状にして配置します。今回はテーブルの下側上側を別々の FieldShape で囲みます。1 つで全部囲うこともできますが、分けることで別のワークフローが見えてきます。

GeoDeletePoints でテーブル周辺の splat を削除

GeoDeletePoints をチェーンに挿し、FieldShape1 を mask 入力に繋ぎます。これでテーブルの下側の splat が削除されます。

次に 2 つ目の FieldShape も活用するため、FieldMerge を作って 2 つの shape をまとめます。このとき operation が Add のままでは意図した結果にならないため、Shape Union(ブーリアンの「和」)に変更します。これで 2 つの shape が結合され、まとめて mask として使えます。

FieldInvert でマスクを反転

この状態では「テーブルが消える」方向のマスクになっています。今回やりたいのは削除ではなく複製なので、マスクを反転する必要があります。GeoDeletePoints の Invert mask を使う方法もありますが、ここでは FieldInvert ノードを使います。FieldInvert を挟むことで、以降の field が反転され、テーブルだけを残す方向になります。

さらにクリーンにする

もう 1 つ FieldShape をコピーしてテーブル下の不要部分を囲み、FieldMergeShape Difference)で差し引きます。これでテーブルがより綺麗に分離されます。

GeoTransform で移動、GeoMerge で統合

分離したテーブルを GeoTransform に繋ぎます。まず pivot を調整します(Mac では Command を押しながら pivot を移動)。これでテーブルを扱いやすくなります。

元の splats と分離したテーブルを統合するために GeoMerge を作り、B に元の splats、A にテーブルを繋ぎます。このとき、scene graph のパスが同一だとテーブルしか表示されなくなるため、GeoMerge の merge mode を Duplicate Prims に変更します。これで scene graph 上でユニークなパスとして扱われ、両方が viewport に表示されます。名前(例:table)をつけておくと管理が楽になります。

4. 影の作成:GeoGrade × FieldShapeToDensity

複製したテーブルを背景に馴染ませるには落ち影が欠かせません。

  1. 影を落としたい位置に新しい FieldShape(Box)を配置し、範囲を整えます
  2. 元の splat(背景側)に GeoGrade を挿入します。分離したテーブルには影響させません
  3. 先ほどの FieldShapeGeoGrade の mask に接続し、gain を下げます(例:0.6 あたりから調整)
  4. このままではボックスの境界が硬く見えるため、FieldShapeToDensity を作って feather を上げます。自然なフォールオフになります
  5. 最終的な影の強さを整えます(チュートリアルでは 0.55 程度)

5. SplatRender:2D コンポジットへのレンダリング

3D 空間での作業が終わったら、SplatRender で 2D にレンダリングします。インターフェースは ScanlineRender と同様で、camera / bg / scene 入力があります。GeoImport(または GeoReference)を scene に繋ぎ、camera も入れればレンダーできます。

カラースペースの調整

レンダー結果の色が 3D ビューと合わない場合は、SplatRendercolorspace 設定を確認します。入力側を適切にタグ付け・補正することで、3D で見ていた印象に近い見た目を揃えられます。

GeoExport でプリコンプ的な軽量化

レンダー前に GeoExport を使って USD や Alembic に書き出しておくことで、2D のプリコンプに近い運用が可能です。ポイント数の多い splat は処理が重くなりがちなので、この手順を挟むことで後工程がスムーズになります。書き出し後は USD をドラッグ&ドロップで再読み込みし、変更が反映されていることを確認できます。処理時間は splat の規模(ポイント数)によって変わります。

6. 霧(Fog)と被写界深度の合成

Depth AOV を使った Fog 合成

SplatRenderDepth AOV を出力できます。Shuffle で depth を取り出して可視化し、Grade でレンジを整えます(必要に応じて反転)。これを使って霧っぽい距離感になるよう調整します。

Fog 素材は GeoCard に貼り付けて 3D 空間で扱います。一時的にシーンへ入れてカードの位置・向き・サイズを調整し、fog を material に設定します。これによりカメラが動いても破綻しにくくなります。Fog card は ScanlineRender で 2D に戻し、screen などのオペレーションで重ねて合成します。

ZDefocus で被写界深度を追加

最後に ZDefocus でフォーカスポイントと量を調整すれば、よりリアリティのある仕上がりになります。

7. Deep コンポジティングによる 3D ジオメトリとの統合

SplatRenderDeep 出力にも対応しています。ここでは FieldShape で城を消して別の 3D ジオメトリに置き換える例が紹介されています。

  • メッシュを用意して基本的なシェーディングとライトを当てます
  • ScanlineRender 側で deep を含むパスを用意しておきます
  • Splat 側も deep を出力し、DeepSample で確認します
  • deep を使わないならサンプル量を下げて軽く、deep を使うなら精度が出る設定にします
  • DeepMerge(holdout)で splat による正しい抜きを作ります。サンプルが少ないと抜きが粗くなるため、必要に応じて上げます
  • これで枝葉まで含めた自然なホールドアウトが実現できます

また、deep を points に変換して、FieldShape で領域指定しながら GeoGrade することもできます。

8. Field システムの発展的な活用(Labs)

Labs(実験的)ノードとして提供されている発展的な機能も紹介されています。

🔀
GeoFieldWarp
Field による warp をシーンへ適用します。
🌊
FieldNoise × GeoFieldWarp
FieldNoise をドライバとして GeoFieldWarp に渡すことで、Field の形状をノイズで動的に歪ませることができます。amount を上げると warp がはっきり見えます。
☁️
FieldVolume
VDB ファイルを Field として扱います。
🔬
将来の可能性
Field が Field を駆動し、さらにシーン操作へ繋がるという拡張性の高い設計になっており、将来的なワークフローへの可能性は大きいです。Field システムはまだ「入口に触れた段階」とのことで、今後のさらなる発展が期待されます。
Part 02

第2部:新 3D システム・USD・投影・MaterialX

9. USD シーンの読み込みと GeoReference

GeoImport で USD シーンを読み込むと scene graph が開き、prim を選んで import できます。prim の型やパスで検索でき(例:「geo」)、lights / cameras / materials / meshes などでフィルタリングも可能です。import 後も scene graph タブで選択を調整できます。

このリリースでは Alembic import もサポートされます。

GeoReference(ベータ):Nuke 17.0 時点ではベータ扱いですが、共有 USD から必要な prim を参照できます。これにより、コンポ側が 3D チームに「必要データの切り出し依頼」をしなくても、必要なものを必要なときに取り出せるようになります。

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 システムの変更はまだ一部であり、詳細はドキュメントとリリースノートを参照することが推奨されています。

Part 03

第3部:Nuke Studio 17 — 注釈(Annotations)とレビュー

13. 注釈機能の強化

Nuke Studio 17 では注釈機能が大幅に強化されました。注釈パネルが見やすい専用ワークスペースが用意されています。

🗂️
バージョン管理との連携
V キーでバージョンを一覧表示でき、注釈は特定バージョンに紐づきます。複数の注釈があっても、キーフレームを辿って順番に確認できます。
🖊️
描画ツールの充実
テキストだけでなく、Clone などの描画ツールを使って修正指示を視覚的に伝えられます。描画ツールはタブレットでも扱いやすくなっており、Dodge / Burn も使えます。
📝
Nuke スクリプトへの引き継ぎ
Create Comp を実行すると、注釈は Nuke スクリプトにノードとして引き継がれます。修正指示をそのままコンプ作業に活かせる設計になっています。
🔗
パイプライン連携
レビュー結果を DB へ送るなど、パイプライン連携にも繋げられます。
Part 04

第4部:機能ハイライト

14. その他の注目アップデート

Nuke 17 にはほかにも多くのアップデートが含まれています。

機能概要
BigCatCopyCat を大規模データセット向けに拡張した考え方の新ノード
アップスケールML ノード、配布ツール、TVIScale など複数の方法が用意されています
Deep の高速化ワークフローを変えずにパフォーマンスが向上
Graph Scope VariablesPython コールバックが追加され、変数の追加・削除・改名・変更に反応できるようになりました
MOV 対応強化YCbCr 変換・NCLC メタデータのサポート
NotchLCMOV codec が Windows / Linux でサポート
ACES 2.0OCIO 経由で対応
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 の注釈機能改善など、コンポジット全体のワークフローを底上げするアップデートが揃っています。