見出し画像

3DGS実用化への道④ Apple SHARP × 4DGS|GitHub公開の動画生成ツールを試してみた実践レポート

こんにちは、STUDIO55技術統括の入江です。

「4D Gaussian Splatting(4DGS)」は、3Dスキャンに時間軸を組み合わせた技術 で、3D化したGSデータを空間上で動画再生可能なモデルとして生成します。


📹▶️ 2D動画素材

Pixabay: Crazy_Sports

🎬🧊4DGS再生画面

4DGS-Video-Generator
4DGS-Video-Generator

上記の 4DGS は、パラパラ漫画のようにフレームを順に再生することで、動きを表現しています。

動画の仕組み(AI によるイメージ)

3Dスキャンの世界でこれを実現するには、次のような課題がありました。

  • 360°取り囲む無数のカメラでの被写体撮影

  • GS(ガウシアン・スプラット)モデルのリアルタイム生成速度

  • 3DGS データの連続再生

そのため、これまでの取り組みでは、スタジオやCG空間上に半円球状の多視点カメラを配置するなど、工夫が見られました。

4DGS Multi-View Dome Capture

ところが最近、Apple が公開した「SHARP」をベースに、標準的な2D動画を ボリューメトリックな 4DGS動画に変換する新しい無料ツール が開発され、従来のハードルを大幅に下げる可能性が出てきました。

"1秒未満で写実的な 3D空間を生成できる" Apple SHARP については、前回の記事で詳細に解説しています。

本記事では、その Apple の 「ml-sharp」 を使った 『4DGS-Video-Generator』 の導入から生成までの流れを、ステップごとに解説します。
さらに、4DGSを再生できるプレイヤーの制約や注意点についても整理し、最後に技術理解につながる所感をまとめます。


『4DGS-Video-Generator』について

『4DGS-Video-Generator』を開発した Andrii Shramko(アンドリー・シュラムコ)氏は、LinkedIn 上の自己紹介によると、モバイルエンジニア/AI エンジニア/データサイエンティスト として活動しています。
AI 映像生成や動画生成モデル、ボリューメトリックビデオ(4DGS/3DGS)に関する投稿を複数行っており、実験的かつ開発コミュニティ向けのツール共有に積極的な人物です。

画像参考: linkedin.com

『4DGS‑Video‑Generator』は、Apple の ml‑sharp モデルをベースにしたオープンソースツール として公開されており、このツールは、“as is(現状の状態のまま)” の R&D プロジェクト として、誰でもフォークして改善・応用できる形になっています。

画像参考: linkedin.com

公開版は Windows 用の実行可能ファイル(.exe)ソースコード(GitHub リポジトリ)が用意され、Linux や macOS でもソースから利用可能です。

一方で注意点として、現状では 4DGS 動画データの出力サイズが非常に大きく(例:1分あたり約90GB)、ノイズが含まれるなど、プロトタイプ段階ならではの課題 もあります。ただし、これは実用化に向けた初期フェーズであることを示すものでもあり、今後の改良や最適化が期待されます。


😺GIthub: Andrii Shramko 4DGS Generator - Apple Sharp

画像参考: github.com

📋 Requirements(要件)

Pythonバージョン用

  • Python: 3.11以上

  • GPU: CUDA対応のNVIDIA GPU(推奨)またはApple Silicon(MPS)

  • RAM: 8GB+(推奨16GB+、最大音質は256GB)

  • VRAM: GPUアクセラレーション用6GB+(推奨24GB RTX 4090)

EXE版

  • OS: Windows 10以降

  • RAM: 8GB+(推奨16GB+)

  • GPU: CUDA搭載のNVIDIA GPU(オプションですが推奨)

  • ディスク容量: アプリケーション用~5GB + 結果用スペース

本ツールは、Windows 向けの実行ファイル(EXE版)に加え、Python によるソースコードも公開されています。
Python 版は、自身のマシン上で環境を構築し、コマンドラインから実行する形式となっており、研究・検証用途を前提とした構成 です。

git clone https://github.com/AndriiShramko/4DGS-Video-Generator
cd 4DGS-Video-Generator
pip install -r requirements.txt
python main.py ...

自身でフォークして改良を行う場合は、R&D(研究・実験)用途のプロトタイプとして、この Python 版が本体 となります。

Python 版の利用には、以下の環境や依存関係が必要です。

  • Python(特定バージョン)

  • PyTorch

  • 依存ライブラリ(requirements.txt など)

  • ml-sharp 関連コード

本記事では動作確認を目的として、実行可能ファイル(.exe)としてビルド済みの「お試し・検証用バイナリ」 を用いたテストを共有します。

📊 パフォーマンス

ベンチマーク(RTX 4090、24GB VRAM)

  • フレーム処理時間:1フレームあたり~2〜3秒

  • 出力サイズ:PLYファイルあたり~63 MB

  • ガウス要素:1フレームあたり~1,179,648

  • 映像:450フレーム、30FPS、1950x1064解像度

  • 総処理時間:450フレームで~15〜20分

(最低限)
GPU: 6GB VRAM
RAM: 8GB
保管: 5GB

(おすすめ)
GPU: 12GB VRAM
RAM: 16GB
保管: 10GB

(最適)
GPU: 24GB VRAM
RAM: 256GB
保管: 50GB+


🚀4DGS Generator 実践:EXE版起動からPLY出力まで

1. EXE版ダウンロード

Andrii Shramko(アンドリー・シュラムコ)氏提供の EXE版 をダウンロードします。
ファイルは以下の Google Drive フォルダから入手可能です。
ダウンロードはこちら

2. EXE版の起動

EXE版を実行した画面です。
※コマンドライン形式で起動するため、処理開始まで少し時間がかかる場合があります。

Andrii Shramko 4DGS Generator - Apple Sharp

3. 出力フォルダの確認

起動時に、一時フォルダとして output_video が自動的に作成されます。
Windows では通常、以下の場所に生成されます。

C:\Users\<ユーザー名>\AppData\Local\Temp\output_video

こちらの動画素材で 4DGSを作成します。

画像参考: pixabay: Carlos Bohorquez

(Step 1
動画素材を読み込むと、Frame Range(フレーム範囲)など動画素材の内容が表示され、最下部の Log で状況が確認できます。

Step 2
出力先が自動生成された一時フォルダの output_video に設定されています。変更してもかまいませんが、とりあえずデフォルトで行います。

Step 3)
「Generate PLY Sequence」
ボタンをクリックします。

「4DGS-Video-Generator」UI

4. テスト用のフレーム範囲・動画素材の設定

マシン要件に不安がある場合は、まず Frame Range を 20 や 40 に短く設定してテストすると良いでしょう。
問題なく処理できれば、フルレンジでの生成に進めます。
また、動画素材は大きすぎないものを使用しましょう。特に 4K などの高解像度動画は避けるのが無難です。

Frame Range 40

5. 進捗確認

プログレスバーが最後まで進まなくても、処理が完了したかどうかは ログ(Log) を確認することで判断できます。

Log 表示

6. データ確認

作業が完了(SUCCESS)したら、output_video フォルダを開いて確認します。指定したフレーム範囲分の .ply ファイルが生成されているはずです。

output_video

▶️ 7. プレイヤーについて

4DGS を再生できるプレイヤーは限られています。
その状況を整理し、3つの主要なプレイヤーを紹介します。

① SperSplat
② 4dgs.jp
③ Postshot


① SuperSplat

「SperSplat」は、2025年1月7日にリリースされた「SuperSplat 1.13.0」で、シーケンス化されたガウス(4DGS)の読み込みと再生に対応しました。

現在は v2.17.4 までバージョンが進んでおり、高度な動画レンダリング対応など、さらに多くの機能が搭載されています。

生成された .ply をそのまま SuperSplat に読み込むと、シーンマネージャーにすべてのデータが表示されます。

SuperSplat

この状態は正しくアニメーションとして読み込まれていないことを表します。

『4DGS-Video-Generator』が生成する .ply ファイル名 は、ファイル構成に従って付けられていることが README から確認できます。
(公式ドキュメント準拠)

{Output Folder}/
  └── {Video Name}/
      └── {YYYYMMDD_HHMMSS}/
          ├── frame_000000_Shramko_4DGS_apple-Sharp_Generator__standard.ply
          ├── frame_000001_Shramko_4DGS_apple-Sharp_Generator__standard.ply
          ├── frame_000002_Shramko_4DGS_apple-Sharp_Generator__standard.ply
          └── ...

ファイル名

・フレーム番号:frame_XXXXXX
・著作権:_Shramko_4DGS_apple-Sharp_Generator_
・フォーマット: _standard.ply(すべての 3DGS ビューアと互換性あり)

ファイル名

SuparSplat に読み込む 4DGS(アニメーション Gaussian Splat)ファイルにも、基本的な命名規則が必要 です。

SuparSplat では「一貫したプレフィックス+連番数字」の形式で初めて一連のフレームとして認識し、タイムライン再生が可能になります。

つまり、以下のようなフォーマットです。

animation_0001.ply
animation_0002.ply
animation_0003.ply

出典. developer.playcanvas.com

生成されたファイルの命名規則が SuperSplat の想定する形式と合っていないため、SuperSplat 側ではフレームとして正しく認識されず、アニメーション再生ができない状態になっています。

📝自作スクリプトでPLY命名規則を統一

ファイル名を編集して SuperSplat で正しく読み込めるかどうかをテストしてみますが、フルレンジでは 142 個ものデータがあり、手動でファイル名を修正するのは気が遠くなります💦

そこで、SuperSplat が認識できるシンプルな命名規則にリネームする Pythonスクリプト を作ってしまいます。

自作の「rename_ply_files.py」は共有しますので、必要に応じてご利用ください。

使い方を以下に記します。

  1. スクリプトをダウンロード

  2. Pythonで実行:

「rename_ply_files.py」

このような画面が起動するので、指示内容を入力して実行します。

  1. 入力フォルダのパスを入力

例C:\Users\victa\AppData\Local\Temp\output_video\238550_medium\20260118_163637

2. 出力フォルダのパスを入力


C:\Users\victa\Desktop\renamed_4dgs

3.リネームを実行

y と入力して実行

これで、ファイルが自動で一括リネームされます。
手作業の手間を大幅に省くことができました(笑)

リネームされたデータ

SuperSplat の命名規則に合わせたことで、アニメーションとして正しく読み込まれるようになりました。

SuperSplat 4DGS再生(30 fps)

ただ、SuperSplat で再生すると どうしてもコマ送りのように見えてしまいます
デフォルトでは 30 fps ですが、6 fps などに落とすこともできます。それでも、コマ送り感を完全になくすのは難しいようです。

fps 設定
SuperSplat 4DGS再生(6 fps)

② 4dgs.jp

「4dgs.jp」は、PCD(点群データ)、3D Gaussian Splatting(3DGS)、4D Gaussian Splatting(4DGS)ファイルをブラウザ上で可視化できる専用ビューワーサービスとして、「日本で唯一の完全無料4D Gaussian Splatting専用ビューワー」として紹介されているものです。

画像参考: 4dgs.jp

4dgs.jp 「4DGS Viewer」は、データ拡張子 が .splatv でないと反映できません。

.splatv 形式 は、4DGS(時系列化された Gaussian Splatting)を再生するための専用フォーマットで、単一の 3DGS データから直接変換できるものではありません。

変換には、フレームごとに生成された Gaussian Splat データ(4DGS)を用意したうえで、4dgs.jp が提供する変換・再生パイプラインを利用する方法が最も簡単です。

現状では、.splatv は主に Viewer 側での再生を前提とした形式であり、研究・検証用途以外での独自生成はハードルが高い点に注意が必要です。

とくに、今回の使用には向きません。

画像参考: 4dgs.jp

③ PostShot

「Postshot」は、動画や写真から 3D Gaussian Splatting(3DGS) データを生成できるデスクトップ向けツールです。
複雑な研究用パイプラインを使わずに、比較的シンプルな操作で高品質なガウススプラット表現を生成できる点が特徴で、スキャン結果はリアルタイム表示や Web/ビューワー用途に適した形式として活用できます。

また、「Postshot」では『4DGS-Video-Generator』が生成するファイル名(命名規則)のままでも正しく読み込むことができます。

Postshot 画面

4DGSのビューワーとして利用する場合は、特に「Postshot」がおすすめです。


🎥 8. 4DGSテスト&デモ

いくつかテストしたものを掲載します。

Pixabay:Carlos Bohorquez
Pixabay: DivineSnapshots
Pixabay: Ghasoub Alaeddin
Pixabay: Salvador La Parra Rios
Pixabay: winzerep

📖『フリップブック スタイル 4DGS』の潮流

Apple SHARP をベースにした 4DGS-Video-Generator は、いわゆるパラパラ漫画のようにフレームを切り替えて再生する方式で、「Flipbook-Style(フリップブック スタイル)」 と呼ばれます。現在、多くの 4DGS 実装がこのアプローチを採用しています。

先日(米国時間の 1月21日)、このフリップブック スタイルを用いた新しい 4D ガウス スプラッティングの例が PlayCanvas Web Components に追加されました。

画像参考: playcanvas.github.io

これは、バスケットボール選手の 3Dスキャンデータ(GeniusXR によって撮影)をもとに作られたもので、シーケンスは約150フレーム、合計約750MB に及びます。。アニメーションをより滑らかに見せるため、バウンス効果も活用されています。

ちなみに、「PlayCanvas Web Components」とは、PlayCanvas の 3D / XR シーンを Web Components として提供する仕組みで、HTMLタグ感覚で 3D空間やインタラクティブ表現をページに組み込めるものです。

これは、ブラウザが持つ標準的な構造モデル(DOM)上で 3D を表現できることを意味しており、3D を「特別なアプリ」から「Webの言語」へと引き下ろす取り組みとも言えます。

一言で言えば、「3Dを “アプリ” から “DOM要素” に引きずり下ろした仕組み」です。

Reddit でも、4DGS を PlayCanvas Web Components に組み込んだ事例 は話題となり、フリップブック スタイルの 4DGS について活発な議論が交わされています。

画像参考: reddit.com

現在、多くの 4DGS 実装はこの 仮のアプローチ で進められていますが、見る人によっては、
「これが本当の 4DGS?」
と疑問に思うかもしれません。

🔑4DGS 本来のポテンシャル『コンティニュアス 4DGS』について

「フリップブック スタイル」は、4DGS の実装上の最適解さいてきかいとして、“動く3Dを見せる”最短ルートとして発案された手法です。現在の多くの実装はこのアプローチを採用していますが、あくまで 過渡期の4D表現 と捉えることができます。

本来の 4D Gaussian Splatting は、各フレームごとに独立した 3DGS を並べる方式ではありません。1つのガウスが時間を内包し、連続的に変形・出現・消失することで、シーン全体を時間軸に沿って表現する技術です。
位置・大きさ・向き・色は f(x, y, z, t) のように時間関数で変化し、ガウスには寿命や出現・消失の概念が含まれます。

つまり、“時間を内包した 3D 表現” で、連続的な変化としてシーンを表現・レンダリングする技術 です。

このように、時間を内包した連続的な3D表現 としての4DGSを、論文レベルでは 『Continuous 4D Gaussian Splatting(Continuous 4DGS)=連続型 4DGS』 と呼びます。


  • フリップブック スタイル 4DGS → 従来動画の発想を3D空間に拡張したもの(Flipbook-Style 4DGS)

  • コンティニュアス 4DGS → 動画的フレーム概念を超えて、3Dオブジェクト自体に時間を組み込む表現(Continuous 4DGS)

従来の動画の概念とな異なる手法

関連する研究では、「Dynamic Gaussian Splatting」「Deformable 3DGS」「4D Gaussian Splatting (continuous time)」といった名称も登場します。


ただし、リアルタイムでの実務レベルでの実装は、まだほとんど到達していないのが現状です。

このため、手軽に動く3DをWeb上で体験できるフリップブック スタイルへの関心が急速に高まっています。Flipbook 型はあくまで過渡的な手法ですが、現時点での最短ルートとして注目されているのです。

✨4DGSが “選ばれる表現” になる未来へ

Apple SHARP の「ml-sharp」をベースに、気軽に 4DGS を試すことができる『4DGS-Video-Generator』の開発は、単なるツール公開という枠を超え、確実に “次のステージ” に足を踏み入れたことを感じさせる試作 となっています。
これまで 4DGS は、研究用途や限定的な検証環境の中で語られることが多く、「触れるには少し距離のある技術」でした。しかし、動画を用意して実行するだけで結果を確認できるこの仕組みは、4DGS を一気に “試せる技術” へと引き寄せています。

「Apple SHARP」の1枚の画像から1秒未満にガウススプラッティングを生成する発想が、思いがけない形で、4DGS の未来まで引き寄せた感があります。

ここで重要なのは、完成度の高さよりも、「動画という身近な素材から、時間を持った3D表現が立ち上がる」という体験そのものです。この体験は、従来の3DスキャンやCG制作の延長線上にはなく、まったく別の思考回路を促します。

その意味で本ツールは、4DGS を「研究の話題」から「現場で検討すべき選択肢」へと押し出す、重要な一歩 だと言えるでしょう。