まとめ

PostshotからBlender側にエクスポートして使用する場合、Postshot側でノイズ除去やワールド原点を合わせてからエクスポートする事を推奨する。 また、Blenderで使用する場合は自分のPCスペックと相談し、ほどよい頂点数を考えて間引く事。

Postshot側での下処理

ワールド原点について

今回の制作では、ゲームのリプレイ動画を元にトレーニングしモデルを生成している為 初期状態がステージ部分が傾いた状態になっていました。

そのため、最初にステージの中心とワールド原点の中心をPostshot側で予め合わせておく事で エクスポートした後の工程でスムーズに作業が行えるようになります。 多分ですが、Ae側に取り込む場合もこれはやっておいた方がいいと思うので、とりあえず原点は合わせておくと良いと思います。

ステージの中心とワールド原点を合わせる処理をしたpshtデータ

ステージの中心とワールド原点を合わせる処理をしたpshtデータ

ノイズ除去関連について

Blenderで扱う場合、予めPostshot側で必要のない点群を消さないと頂点数が多すぎてプレビュー出来ないレベルに重くなります。 そのため、Postshot側でplyデータを書き出す前にノイズ部分などのいらない点群を消してからBlender側で読み込む事で、かなりモデルの軽量化が出来ます。

13mil Edges……

13mil Edges……

特に、今回のケースだとカメラワークの関係で背景に映る建物の部分はかなりカット出来たので 正面から見て形が崩れない程度に間引いています。

正面から見た背景モデル

正面から見た背景モデル

サイドから見た背景モデル 白い円の部分が間引いている部分(他にも全体的に間引いています)

サイドから見た背景モデル 白い円の部分が間引いている部分(他にも全体的に間引いています)

また、Blenderの3DGSアドオンで読み込んだ後にチェックボックスを外してモデルを使用する場合、不透明度のしきい値を設定して表示する点群を制限する事が出来るので、この機能を活用して不透明度が薄い部分はまとめてカットすることが出来ます。

(3DGSアドオンの開発者さん、ありがとう…)

image.png

しきい値かける前
Edges 13,389,210

しきい値かける前 Edges 13,389,210

しきい値かけた後
Edges 4,935,300

しきい値かけた後 Edges 4,935,300

最後に、今回のケースでは使用しなかったが気付いた点があるので共有。 plyデータの仕様上、全てのモデルが一つのオブジェクトにまとまっているので、キャラクター部分のみ複雑な処理をしたい時などの場合は、手動でモデルデータを分割しそれぞれ用意しないといけない。

最後に

3DGSを初めて触ったのもあってかなり手こずったが、かなり良いクオリティの物が作れて満足しています。 今までのSSBU内のリプレイ機能でしかカメラワークを作れないといった制限が、3DGSで自由度の高いカメラワークを実現出来るようになると思います。 実際、今回私が制作したパートはゲーム内リプレイでは作れないような 滑らかで大胆なカメラワークを意識して制作しました。 今後も色々と3DGSについて研究しようと思っているので、また進展あったらこの記事に追記していこうと思います。

最後まで読んで頂きありがとうございます。