『VRChat Gaussian Splatting』がMichaelMoroz氏により公開されました!
ついにVRChatへも3DGS (3D Gaussian Splatting ガウシアンスプラッティング) のデータが持っていけるように。
VRChat Gaussian Splattingが公開に!
3DGSをVRChatへ持ち込めるぞ!
その使い方をまとめましたー。https://t.co/wDfW3eMifg早速これ使った鳥取『米子城跡』ワールドを公開してみた。
満開の桜を3DGSで表現出来るのいいな。#VRChat_world紹介 #GaussianSplatting pic.twitter.com/CRcrFouEXD— 龍 lilea (@lileaLab) July 15, 2025
早速これを使ったVRChatワールドも作成してみました。
鳥取『米子城跡VR』
プロジェクト作成手順
通常通りVCCで新規プロジェクトを作成。
VRChatGaussianSplattingのリポジトリにアクセス。
https://github.com/MichaelMoroz/VRChatGaussianSplatting
.unitypackageファイルをダウンロード。
Unityへ読み込む。
ここで以下のエラーが出る場合がある。
Assets\VRChatGaussianSplatting\Scripts\Importer\GaussianFileReader.cs(46,35): error CS0227: Unsafe code may only appear if compiling with /unsafe. Enable “Allow ‘unsafe’ code” in Player Settings to fix this error.
これはエラーメッセージにあるように、Project Settings > Player > Allow ‘unsafe’ Code を有効にする。
プロジェクトにサンプルシーンがあるのでこれを開いて確認する。
開くと描画が発光したような破綻した見た目になっているが-
シーンを実行すると正しく描画される。
ReadmeやWarningの書かれているように、MSAAはオフが推奨との事。
VRChatでこれを使用する場合、MSAAをオフにすることをお勧めします。パフォーマンスが大幅に低下し、スプラットの視覚的な違いがなくなるためです。
独自のplyを変換する手順
メニューに「Gaussians Splatting」が出来ているので、ここからply変換用のダイアログを表示する。
変換したいplyファイルと変換後のデータを保存するフォルダを指定する。
Importボタンを押して読み込む。
しかしここで失敗する場合がある。
Outputフォルダの指定をUnityプロジェクト外からの絶対パスで指定するとこのエラーになる。
任意のフォルダに書き出したい場合はAssets以下のパスで指定する。
すると変換に成功する。
postshotで作成したplyでも問題なく変換できた。
Splat数はどの程度まで変換できるのかも試してみました。
(2025/07/15時点の検証結果)
16M Splat:❌️Unityがクラッシュ
12M Splat:❌️Unityがクラッシュ
10M Splat:❌️Unityがクラッシュ
8M Splat:⭕️変換成功
現状では8M Splatが上限か?
独自plyデータのシーンへの適応
このデータをシーンに適応させるには、すでに設定が完了しているVRChat Gaussian Splattingのサンプルシーンを編集してしまうのが簡単。
Assets > VRChatGaussianSplatting にある Example Scnene を開き、
Hierarchy の GaussianSplatting > GaussiansSplats に新規のGameObjectを作成し、
Mesh FilterとMesh Rendererのコンポーネントを追加する。
Mesh Filter には VRChat Gaussain Splatting > Resources > Meshes にあるメッシュを指定する。
Mesh Renderer には前の手順でplyを変換したフォルダ内にあるGaussianSplatMaterialマテリアルを指定する。
すると画面上に表示されるので向きなどを調整する。
続いてGaussian Splat Renderer を編集する。
1. Gaussian Splat Rendererを選択
2. SplatObjects を + で追加
3. 前手順で作成したSplatのGameObjectを追加
4. 初期表示させたいオブジェクトの番号に変更
最後にシーンを実行する。
以上!
その他の設定
遠景を表現したい場合
Max Sort Distance の値を上げると遠景まで表現出来た。
サンプルシーンではデフォルトが200になっていたが、これを上げていった比較が以下。