2.1K Views
June 01, 26
スライド概要
3DGS Meetup vol.2 メインセッションプレゼン資料(ダックビル)
3DGS活用事例紹介 と 地面解析&歩行ソルバーの設計
3DGSは「見える」のに、「すぐ歩ける」ようにするのが重い。
コリジョンのメッシュ生成・編集も要らずに — ブラウザ内に読み込んだ3DGSを、その場で歩けないか?
スタジオダックビルは、フォトグラメトリ(三次元復元)と3Dガウシアンスプラッティング技術を駆使し、多数の視点から撮影した写真をコンピュータで解析して高精度な3Dデータを作成するエキスパート集団です。
3DGSに『歩ける』という意味を与える 3DGS活用事例紹介 と 地面解析&歩行ソルバーの設計 スタジオダックビル合同会社 代表社員 嘉本 聡(ダックビル) 2026年5月31日 3DGS Meetup vol.2
自己紹介 Self-introduction 名前 スタジオダックビル合同会社 代表社員 嘉本聡(かもとさとる)/ ダックビル バックグラウンド 大手電機機器メーカー2社にて宇宙開発システムと、ロボット制御、放送映像システムの 企画/エンジニア/マネージャー経験 →2021年にスタジオダックビル合同会社を起業 関わってきた領域 画像/映像処理/組込みシステム/ネットワーク/Webサービス/3Dスキャン/CG 制作 →このような技術をベースとした3DCG空間制作(フォトグラメトリと3DGS) SplatStroll / 地面解析と歩行ソルバー 1 / 20
事例ギャラリー — 6 カテゴリで見る制作実績 『難しそう』も『ここは強い』も、作ってみて分かる 01 自然・景観 02 街並み 03 交通・乗り物 04 都市景観 05 文化財 06 その他・技術デモ Nature & Landscape Urban Landscape Streetscape Cultural Heritage Transportation Tech Demos & More X / YouTube / Arrival.Space / SuperSplat でも公開中 SplatStroll / 地面解析と歩行ソルバー 2 / 20
撮影機材は『使い分け』ではなく『組み合わせ』 プロジェクトごとに必要な機材を併用 / 各ソースを統合してひとつの 3DGS を生成する 地上型レーザースキャナー Terrestrial Laser Scanner 01 ミラーレス 360度カメラ ドローン XGRIDS TLS 高品質撮影 全周 / 効率 上空 / 俯瞰 SLAM 精度の土台 正確なスケール 他機材撮影に絶対スケールを与える 02 ドリフト防止 SfM の累積誤差を抑える基準 ▼ 3DGS 統合・生成パイプライン 各機材ソースを位置合わせ・統合してひとつの 3DGS を生成 03 初期点群として利用 3DGS 学習の初期化に高精度点群を使う ▼ 統合 3DGS シーン 異種ソースを混在・統合すること自体 に課題があるが、また別の機会に… ※ プロジェクトごとに必要な機材セットを選び、撮影 → 統合 → 3DGS生成 までを一気通貫で実施 SplatStroll / 地面解析と歩行ソルバー 3 / 20
活用事例 ① 福井県立恐竜博物館 スキャン:106箇所 FARO Focus + Leica BLK360 3面ダイノシアター「夜の展示室編」 — 大型シアター向け CG・映像コンテンツ 展示室全体3Dスキャン点群(TLS+SfM) 高さ 9m 横幅 16 m 解像度 4K スクリーン 3面 写真:9,200枚 スプラット数:1,500万 コンテンツ概要 夜の展示室をテーマにした没入型の大型映像。(注:2026年11月まで映像休止中) 3面同期再生・大画面で展示空間の世界観を体感させる構成。 CG映像制作:NHKアート 3DGS制作:スタジオダックビル ©福井県立恐竜博物館 大型シアターでは、リアルタイム表示よりもプリレンダリング品質が重要。 3DGSは展示空間全体の質感・照明感を短期間で映像化する手段として有効。 3DGSトレーニング(Postshot) SplatStroll / 地面解析と歩行ソルバー 4 / 20
活用事例 ② 根室市和田屯田兵村 被服庫 デジタルアーカイブ — 解体修理前の記録保存 3Dスキャン点群(TLS) 背景と目的 解体修理が予定されている歴史的建造物について、修理前の状態を高精度に記 録保存することを目的としたデジタルアーカイブ案件。動画制作に3DGS活用。 ©根室市歴史と自然の資料館 文化財アーカイブでは、3DGS単体ではなく、TLS点群・3Dモデル・公開データとの 併用が重要。「見るための3DGS」と「測る・保存するための3Dデータ」は役割が違う。 3Dモデル 根室市歴史と自然の資料館Sketchfabで公開中 CCライセンスでDL可能 SplatStroll / 地面解析と歩行ソルバー 5 / 20
活用事例 ③ 由布市湯平温泉 石畳の道 災害復興・観光活用「ゆのひらんプロジェクト」 XGRIDS PortalCam、ミラー レスカメラ、360度カメラ、ドロー ンにて500メートル以上の温泉 街を3Dキャプチャ 背景と目的 令和2年7月および令和4年9月の豪雨災害により被災した湯平温泉街を 復興し、未来に引き継ぐために行政に依存しない取組(石畳オーナー制度)を 設計・構築支援することを目的として、湯平温泉街の風景をデジタル保存し、か つ石畳オーナー制度の満足度を高める。 広域3DGSでは、撮影ソースの統合、Web配信、体験設計が課題になる。ここ から「見るだけではなく、歩く・案内する・物語化する」方向に発展する。 Web 3Dスクロールテリングコンテンツの作成 (株)地域科学研究所様 協業プロジェクト SplatStroll / 地面解析と歩行ソルバー 6 / 20
自社開発ビューワー — SplatStrollファミリー 用途別に 4 プロダクト構成 / 共通のレンダリング・地面解析基盤を共有 SplatStroll Studio SplatStroll Avatar SplatStroll SplatStroll Story Map 編集 / オーサリング アバター歩行 ナラティブ体験 3DGSの配置・調整・コンテン ツ制作環境 3DGS空間をアバターで歩き 回るビューワー シナリオ進行付きのストーリー 型体験 広域マップ表示 3DTiles対応GIS連携 3DGSビューワー SplatStroll / 地面解析と歩行ソルバー 7 / 20
自社開発ビューワー — SplatStroll デモ アプリ紹介と3DGS利用シーン https://studioduckbill.jp/3DGSLabo/SplatStrollAvatar/ 見るだけの3DGS → 歩ける3DGS → 滞在時間UP / 没入体験 / 自律案内 / ストーリー体験 SplatStroll / 地面解析と歩行ソルバー 8 / 20
ここから後半 — 技術編 地面解析と歩行ソルバー 課題 3DGSは「見える」のに、「すぐ歩ける」ようにするのが重い。 コライダーの事前作成も、別データのメッシュ生成・編集も要らずに — 読み込んだ3DGSを、その場で歩けないか? 9 / 20
3DGSは『見える』が、そのままでは『歩けない』 見た目に床があっても、アバターが必要とする情報はそこにない 写真からリアルな3D空間を再現できる 3DGS。 しかし 3DGS は『見た目』の表現であり、ゲームエンジンの ような 床 / 壁 / 段差 / 穴 の意味を持たない。 見た目には『床』がある …が、アバターには『立てる場所』の情報が無い 3DGSに無い情報 ✕ どこに立てるのか 歩行可能な上面の判定 ✕ どこが壁なのか 縦方向占有 / 進行阻害 ✕ どの段差なら上れるか 高さ差の許容判定 ✕ どこから落下すべきか 支持の途切れ判定 ✕ 重なった床 (橋上/橋下) 多層地形の選択 ⚑ 本プロジェクトの課題: 『見るだけの3DGS』を『歩ける空間』に変える SplatStroll / 地面解析と歩行ソルバー 10 / 20
3DGSを歩けるようにする 3つのアーキテクチャ 何を『中間表現』として作るかで、できること・できないことが大きく変わる Mesh-based Occupancy-based Walk-semantic (SplatStroll) メッシュコライダー ボクセル / オクツリー 地面セル + 歩行ソルバー 3DGSを物理形状に変換する 空間を『埋/空』で扱う 歩行に必要な意味だけを抽出 ◯ 向いている • 既存物理エンジン統合 ◯ 向いている • 近傍探索・障害物判定 • 3DGSの粒状性と好相性 ◯ 向いている • 段差・落下・多層対応 • 巨大3DGS / オンデマンド向き △ 課題 • 反射/樹冠/欠損に弱い • 薄い面・多層が崩れやすい △ 課題 • 『歩ける床』は別途意味付け要 • 解像度 メモリのトレードオフ △ 課題 • 汎用衝突には使わない • 歩行特化の専用設計 本プロジェクトは右の『地面セル + 歩行ソルバー』方式を採用 — 次のスライドで『なぜ』を見る SplatStroll / 地面解析と歩行ソルバー 11 / 20
なぜ『中間表現』が要るのか — 局所解析の限界 毎フレーム足元のsplatを直接見る案: 限定条件なら動くが、汎用3DGSでは破綻する 限定条件なら、リアルタイム局所解析だけでも歩ける。 単層・床が密・反射や樹冠が少ない・移動範囲が狭い 等。 しかし広域・屋外・橋・高架・欠損・反射のある汎用3DGSでは、次が起きる: 01 02 03 結局、空間インデックスが要る 判定がフレームごとに揺れる 多層 / 壁 / 自律歩行に弱い 足元周辺のsplatだけ高速に取るにはBVH/グリッ ド/チャンク索引が必要。実質『中間構造を作る』 話になる。 密度ムラ・LOD・欠損・反射で、地面高さが小刻 みに上下したり、床が見え隠れする。 橋の上下、前方の壁、先の経路探索 — フレーム 単位の局所判定だけでは『この先進めるか』が分か らない。 『歩行用に整理された中間表現を持つこと』自体が、設計上の選択である。 SplatStroll / 地面解析と歩行ソルバー 12 / 20
全体アーキテクチャ オンデマンド地面解析 + リアルタイム歩行時探索 — 『地図』と『探索』を分離する 3DGS / RAD splat分布解析 GroundField 歩行ソルバー アバター歩行 数100MB〜数GBソース Webブラウザで逐次読込 セル + 高さビン統計 歩行用 中間表現 (地図) 毎フレーム周辺探索 段差・壁・落下 任意のVRMアバター ▸ オンデマンド地面解析 (前処理 / 段階的) ▸ リアルタイム歩行時探索 (毎フレーム) 設計の核心: GroundField(地図)と歩行ソルバー(探索)を分けることで、壁・多層・落下判定が安定する。 3DGSを完全な物理メッシュへ変換せず、歩行に必要な情報だけを抽出して使う。 SplatStroll / 地面解析と歩行ソルバー 13 / 20
一般的な『点群地面検出』との違い 地表を分類するのではなく、アバターが立てる『歩ける上面』を復元する 一般的な点群地面検出 SplatStroll 測量・地図・自動運転向け。地面点 / 非地面点を分ける。 目的が違う: 歩けるかどうか。橋や床は『歩けるなら地面』。 地面の定義 測量的な地表 → 歩行可能な上面 • RANSAC 平面抽出 • Cloth Simulation Filter • 形態学的フィルタ • LiDARセマンティック分類 VS 橋 / 重なり床 非地面扱い → 歩けるなら地面として保持 出力 ground/non-ground, DTM → GroundField, 壁占有帯 評価軸 分類精度・IoU → 引っかからず自然に歩けるか • AIセグメンテーション (road/sidewalk…) 地面検出の汎用SOTAを置き換えるのではなく、地面検出を『歩行制御問題』として再設計している。 SplatStroll / 地面解析と歩行ソルバー 14 / 20
地面解析の核 — 横はセル、縦は高さビン 「セル」=床を格子で区切った1マス。その中の splat を高さ方向に集計して、地面・橋・壁を見分ける 1 3DGSを真上から見る 2 床を格子で区切る 3 1セルを高さで集計 取り出した1セル セル内の splat を 高さごとに数える 取り出した1セルの中の『高さ分布』 高 splat が床に散らばっている (点の集まり) 1セル 床を正方形の格子に分割/1マス=1セル (色が濃いほど splat が密) 低 樹冠・空ノイズ(薄) 除去 壁 / 構造物 → 壁判定 橋の床候補(疎) → 副候補 地面候補(密) → 主候補 平均高さや最低点だけでは橋上/下・階段・反射・樹冠を区別できない。 高さビンなら『同じ平面に複数の高さ候補』を分離できる。 後半 / 地面解析の核 SplatStroll / 地面解析と歩行ソルバー 15 / 20
多層地面と壁検出 — 歩行に必要な意味を取り出す 1セルに複数候補を保持 / 壁は『前方の縦方向占有』を見る 多層地面 (橋の上下) ● アバター 橋の上 (副候補) 壁検出 (前方の縦方向占有) 胸プローブ 壁 腰プローブ 地面 (主候補) 同じ平面位置に複数高さの上面候補を保持し、近傍整合性で『どの層 にいるべきか』を選ぶ。 足元プローブ プローブ = 前方のその高さにsplatがあるかを問う検査点。足元・腰・胸が前 方セルの高さビンを串刺しで参照し、複数高さで連続占有 → 壁判定(足 元だけなら段差・地面)。 SplatStroll / 地面解析と歩行ソルバー 16 / 20
従来コライダー: 足元にコライダーが無ければ即落下(実 装依存)。3DGSは欠損・反射・薄い床で『地面メッシュ なし』が頻発する。 SplatStroll / 地面解析と歩行ソルバー 16 / 20
巨大データ解析をブラウザで扱う工夫 ① 全部を細かく見ない / 解析戦略 — 必要な場所を、必要な解像度で、段階的に絞り込む 解析戦略 ( WHAT / WHERE を絞る ) RAD 可変セル チャンク単位の段階解析 読み込めた所から粗く解析 → 収束したら本解析。RAD の LOD 構造を利用し、データが届い た分から地面を見始める。 1x / 2x / 4x の疎構造 密な領域は細かく、疎な領域は粗く解析。空セルを持たない疎データ構造で省メモリを実現する 。 段階的に『解く』イメージ 重要領域の優先解析 ROI GPU 密度プリパスで解析範囲を動的算出。分位点でシーン範囲を外れ値から保護し、セル総 量予算からセルサイズ・解析 splat 数を逆算する(広いから粗くするのではなく、疎で破綻しな い所だけ粗く)。 『全部読んでから解析』ではなく 『必要な所だけ、読みながら地面を見つける』 ROI = 密で重要な所だけ細かく 疎な所・外周は粗いまま — 省メモリ SplatStroll / 地面解析と歩行ソルバー 16 / 20
巨大データ解析をブラウザで扱う工夫 ② Intel Core Ultra 9 275HX (2.70 GHz) + RTX5090 Laptopで解析 実行基盤と入力形式の正規化 / 本スライドの用語解説 実行基盤 WebGPU で大量並列実行 splat 投影 / セル集計 / 高さビン更新を GPU で大量並列実行する。これが解析戦略 (①)を支える計算層。WebGPU 非対応の環境では CPU フォールバックで動作する。 100万Splats→3.7秒(DL込み) 600万Splats→18.5秒(DL込み) 用語解説 RAD Three.js向け3DGSレンダラーSpark 2.0の 3DGS 用の配信向け 形式。チャンク(断片)と LOD を持ち、届いた所から段階的に読める。 入力の正規化 形式が違っても同じパイプラインへ RAD はチャンクを逐次読み、届いた分から地面を見始める。PLY・SPZ・SOG 等の一括 読込形式は、解析に要る center / scale / opacity だけを stride 間引きで抽出する。 LOD Level of Detail。距離や状況に応じて粗⇔細を切り替える多段の精 度表現。 ROI Region of Interest。シーン全体ではなく、優先して細かく解析すべき 重要領域のこと。 WebGPU ブラウザから GPU を直接使う新しい仕組み。並列計算を高速 化する(非対応時は CPU 処理)。 → 全形式を共通の軽量表現に正規化し、同一パイプラインで解析する。 stride 間引き 全 splat を使わず一定間隔で抜き出すこと。データ量を減ら し解析を軽くする。 戦略(どこを・どの粗さで)を GPU 実行基盤が支え、入力形式の違いは正規化で吸収する。 SplatStroll / 地面解析と歩行ソルバー 16 / 20
Engineering Insights — 設計判断とトレードオフ ここまでの設計を『何を得て、何を切ったか』で総括する 高さを連続値でなく『ビン』に集約 誤差耐性 ↑ / 表現力 ↓ 可変セル (1x / 2x / 4x) 疎領域への適応 ↑ / 一様性 ↓ 密度ムラ・ノイズに引きずられないよう統計的に圧縮 屋外3DGSは密度差が大きい。一様格子は密領域が重く疎領域は粗すぎる opacity・厚みで重み付け GroundField と 歩行ソルバーの分離 ノイズ頑健性 ↑ / 計算量 ↑ 反射・樹冠・偽地面に引きずられないよう、splatの確からしさを反映 安定性 ↑ / 完全リアルタイム性 ↓ 中間表現を保持する方が、壁・多層・落下判定が安定する 歩行特化に振り切ったことで得たもの / 切ったもの — 形を復元せず、歩行に必要な高さ分布だけを読む。 SplatStroll / 地面解析と歩行ソルバー 19 / 20
まとめ SplatStroll は、3DGSに『歩ける』という意味を与える技術 1 2 3 歩行意味の直接抽出 オンデマンド + 探索 賢い歩行ソルバー splat分布から、占有ではなく『歩ける上面・壁 ・多層』を直接取り出す 事前解析の中間表現(GroundField)と、歩行 時の周辺探索を組み合わせて安定化 欠損や反射に強い、ストレスのない地形フォロ ーを設計思想に SplatStroll は、3DGSに『歩ける』という意味を与える技術である。 Q & A / Thank you 20 / 20
Appendix SplatStroll Avatar — その他の特徴的な機能 地面解析・歩行ソルバー以外にも、ブラウザだけで完結する多彩な機能を実装 自律歩行AI (Auto-Stroll) シネマティックカメラ VRMアバター対応 アバターが自分で考えて歩く。A*経路探索(壁・崖・低信頼 地形へのペナルティ+旋回コスト)で自然なルートを生成し、 スタック時は自動リルート。セマンティクスマップで道路・緑地 ・建物などを認識し、歩き先を選ぶ。 ドリー / オービット / フライバイ等の撮影技法を重み付きで自 動切替。歩行に合わせ映画的なアングルへ。 自分のVRMをアップロードして探索。表情・まばたき・視線 追従もリアルタイム (VRM 0.x / 1.0両対応)。 撮影位置オーバーレイ ポストエフェクトフィルター 流体シミュレーション & 動的3DGS生 成 撮影に使った写真の位置を3D表示。COLMAPはフラスタ ム、360°ERP(transforms.json)は球体で可視化。 画面全体をリアルタイム再描画する汎用フィルター基盤。ア ニメ風(Kuwahara+エッジ+ポスタリ)・墨絵(FDoG輪郭+ 墨の濃淡)・パステル(構造テンソル+LABパレット)を切替。 被写界深度(DoF)も。 GPU上のNavier-Stokes(Stable Fluids)が風の流れを計 算。風はシーンのsplatから色・サイズをサンプリングした動的 Gaussian Splatを実行時生成して舞わせる(点スプライトで なく3DGSとして馴染む)。 すべてWebブラウザだけで完結 — インストール不要 / ローカル処理でプライバシー安心 / WebGPU対応(非対応時はCPU fallback) / .ply・.spz・.sog・.rad・.lcc2 3DTiles 対応 SplatStroll / 地面解析と歩行ソルバー Appendix