3DGS Render by KIRI Engine 5.0 インストール・利用ガイド
【概要】
3DGS Render by KIRI Engineは,Blender上で3DGS(3D Gaussian Splatting)形式のPLYファイルをインポート,編集,レンダリングするためのアドオンである。3D Gaussian Splattingは,3次元空間に配置した楕円体(スプラット)の集合により情景を表現する手法である。本ガイドはバージョン5.0を対象とし,インストール手順,Edit モードとRender モードの使い分け,および制限事項を解説する。アドオンはオープンソースであり,KIRI Engineがリポジトリを保有したうえで,コミュニティ主体の保守に移行している。対応するBlenderのバージョンや既知の問題は,GitHubのリリースページの記載が基準となる。
【目次】
【関連する外部ページ】
- 公式GitHub: https://github.com/Kiri-Innovation/3dgs-render-blender-addon
- リリース一覧: https://github.com/Kiri-Innovation/3dgs-render-blender-addon/releases
- 公式ドキュメント: https://www.kiriengine.app/3d-tools/3dgs-render
【サイト内の関連情報】
前準備
Blenderは,3次元コンピュータグラフィックス・アニメーションソフトウェアである.3次元モデルの編集,レンダリング,光源やカメラ等の設定による3次元コンピュータグラフィックス・アニメーション作成機能がある.
メニューの日本語化を行っておくと使いやすい.「編集(Edit)→プリファレンス(Preferences)→インターフェイス(Interface)→翻訳(Translation)」で設定できる.
1. 対応環境と前提条件
- Blenderのバージョン:アドオンのバージョンごとに対応するBlenderのバージョンが異なる。5.0ではBlender 5.2向けの修正が同梱されている。導入するリリースの記載を確認する
- ファイル形式:3DGSのPLYファイルのみに対応する。3DGSではないPLYファイル(一般的な点群ファイル等)をインポートすると,必要な属性(
f_dc_0等)が無いため「no field of name f_dc_0」等のエラーとなる - Mesh 2 3DGS機能:メッシュデータを3DGS形式に変換する機能である。変換対象のOBJファイルは三角形分割されている必要があり,対応するテクスチャ画像ファイルとMTLファイルを同一フォルダに置く
- 実験的機能:リギングによるプロキシアニメーションのベイク,ライトのベイクは実験的機能である。データ量の多い情景全体のスキャンでは処理時間が長くなるかBlenderが停止するため,小規模な単一オブジェクトのスキャンで用いる
2. インストール手順
アドオンの入手
- 公式GitHubのリリースページから,使用するBlenderのバージョンに合うリリースのAssetsにある「3dgs_render_by_kiri_engine_バージョン番号.zip」をダウンロードする。ZIPは展開しない
- Superhiveからも無料でダウンロードできる
Blenderへのインストール
次のいずれかの方法でインストールする。
- ダウンロードしたZIPファイルを,ファイルブラウザからBlenderの3Dビューポートへドラッグ&ドロップし,表示される確認ウィンドウで「OK」をクリックする
- Blenderで「編集(Edit)→プリファレンス(Preferences)→アドオン(Get Extensions)」を開き,右上のメニューから「Install from Disk」を選び,ダウンロードしたZIPファイルを選ぶ
インストール後,3DビューポートでNキーを押してサイドバーを表示し,アドオンのタブを開く。
3. Edit モードとRender モード
アドオンの機能は「Active Mode」で切り替える。
- Edit モード:3DGSデータをメッシュオブジェクトとして扱う。Blenderの通常の編集操作,モディファイア,色編集,アニメーション設定が使える。1つのスプラットが1つの頂点または1つの面に対応するため,データ量が多いと表示が重くなる
- Render モード:メッシュとしての制約を受けずに,3DGSのリアルタイム表示とレンダリングを行う。面の向きを更新する処理が不要である
- Mesh 2 3DGS:メッシュ(OBJ+テクスチャ+MTL)から3DGSのPLYファイルを生成する
Edit モードで3DGSオブジェクトに色を付けて表示する際は,マテリアルとシェーダによる描画となるため,レンダーエンジンをEeveeに設定する。
4. 基本的な使用方法
3DGSファイルのインポート
- 3DビューポートでNキーを押してサイドバーを表示し,アドオンのタブを開く
- 「Active Mode」で「Edit」を選ぶ
- 「Import」メニューを開く
- 「Import as」でVerts(頂点)またはFaces(面)を選ぶ。広い範囲の点をまとめて削除する場合や,主にRender モードで使う場合はVertsが軽い。細部を手作業で編集する場合や頂点ペイントを使う場合はFacesを選ぶ。インポート後もCtrl + Aキーのメニューから相互に変換できる
- Render モードで使うため「Create Proxy Object」を有効のままにする
- 「Import PLY」ボタンをクリックし,3DGS形式のPLYファイルを選ぶ。データ量が多い場合は処理の終了まで待つ
- インポートしたオブジェクトを選択し,「Rotate Active To Blender Axes」を押す。多くの3DGSソフトウェアはBlenderと座標軸の向きが異なるため,この操作で正しい向きになる
回転や拡大縮小を確定させる場合は,Blender標準の適用(Apply)ではなく,Ctrl + Aキーのメニューにあるアドオンの「Apply 3DGS Transforms」を使う。これによりスプラットの回転・スケールと球面調和関数(SH)の属性も併せて更新される。
5. 表示とカメラの設定
インポート直後の3DGSオブジェクトは「Camera Updates」が無効に設定されている。Edit モードでは各スプラットに対応する面をカメラやビューに正対させる更新処理が必要で,この処理は負荷が高い。編集中は更新を無効にするか,「Show as Point Cloud」(スプラットの中心点のみを表示するモード)を使うと表示が軽くなる。点の大きさは「Point Radius」で調整する。
- 「Active 3DGS Object」メニューで「Show as Point Cloud」または「Disable Camera Updates」を選ぶ
- オブジェクトの回転・移動・拡大縮小を行い,配置を決める。カメラのアニメーションもこの状態で設定する
- 配置が決まったら「Enable Camera Updates」を選び,さらに「Use Active Camera」を有効にする。これにより,面の向きがシーンのアクティブカメラに追従して更新される
「Use Active Camera」を有効にすると,Frustum Cull(カメラの視野外のスプラットを除外する)とDistance Cull(カメラからの距離で除外する)の設定が使える。これらの効果はEdit モードの表示に反映される。Render モードにも反映させる場合は,「Modifiers」メニューからCamera Cullモディファイアを追加する。
Camera Cullモディファイア
- シーンにカメラを追加し,スキャンの一部が見える位置に置く
- 3DGSオブジェクトを選択し,「Modifiers」メニューを開いて「Camera Cull」を追加する
- 「Auto Set Up」ボタンを押し,現在のカメラ設定(焦点距離等)とシーンの解像度設定にカリングのパラメータを合わせる
- 「Padding」でカメラの視野境界と削除される面との余裕を設定する。0にするとカメラの移動時にちらつきが生じるため,余裕を持たせる
- カメラからの距離による除外は「Closer Than」「Further Than」で設定する。カメラ近傍に浮遊する不要なスプラット(フローティングスプラット)は「Closer Than」で除去できる
6. レンダリング
Edit モードのマテリアル設定には,最終レンダリング向けのHQモード(高品質モード)と,作業中の表示に適したLQモード(低品質モード)がある。作業中はLQモードまたは「Show as Point Cloud」を使い,レンダリング時にHQモードへ切り替える。HQモードでシェーディングが「Shadeless」(陰影計算を行わないモード)のときは,サンプル数を1にすると処理が速くなる。
Render モードでのレンダリング手順は次のとおりである。
- 「Active Mode」で「Render」を選ぶ
- 「Render」サブメニューを開く。アニメーション全体を出力する場合は「Render Animation」を有効にする。1フレームのみのときは無効のままにする
- まず1フレームをレンダリングし,設定を確認する
- シーンのメッシュオブジェクトと合成する場合は「Combine With Native Render」を有効にする。この場合,一時ファイルが先に出力され,その後に合成画像が出力される
- 「Render」を押す。レンダリングは開始後に中断できない。進行状況は出力先フォルダに生成される画像で確認する
Render モードは画像形式での出力を前提としており,動画形式の出力は選べない。
7. 制限事項と注意点
- Edit モードでは,平行投影(Orthographic)ビューで面の更新ができない。ウィンドウ内に平行投影の3Dビューポートがある状態で更新すると,3DGSオブジェクトが警告用のテキストオブジェクトに置き換わる。透視投影(Perspective)ビューを使う
- 面の更新は負荷が高い。特に連続して更新する場合は,スプラット数を減らすか,Render モードを使う
- プロキシメッシュに紐付けたオブジェクトやリギングデータを持つオブジェクトは,頂点の追加・削除を行わない。キャッシュされたデータが頂点に紐付いているため,頂点数が変わるとデータが壊れる。編集はリギングやライトのベイクより前に済ませる
- プロキシのEmptyやリギング,ライトのデータを持つ3DGSオブジェクトを複製すると,参照が重複して問題が生じる。Render モードで複数の複製を使う場合は,Edit モードでは1つのオブジェクトを保ち,プロキシのEmptyを複製する
- Render モードで奥行きの前後関係が正しくない場合は,Shiftキーとマウス中ボタンでビューを動かす
- 古いバージョンのアドオンでインポートした3DGSオブジェクトは,新しいバージョンで正しく動作しないことがある。1つのプロジェクトでは同じバージョンのアドオンを使う
8. サンプル3DGSファイルの入手
- KIRI Engine公式サイトから,無料の3DGSスキャンをダウンロードできる
- 公式のHigh Fidelity 3DGSショーケースで3DGSのサンプルを確認できる
各機能の詳細は,公式ドキュメントおよびリリースに添付された更新履歴を参照する。