Unity AssetStoreまとめ

Unityアセットストアで注目すべきイチオシ情報を毎日お届けします!

【最適化】エディタ中 / リアルタイム(動的)にメッシュを結合して最適化する「Mesh Combine Studio」を試してみた

スポンサーリンク

今日のパブリッシャーセール

 

  • Mesh Combine Studio
    • セルベースで自動的にメッシュを結合する最新の最適化エディタ。
      • $48.60 => $24.30    50%OFF    【開催期間】2017年10月25日〜不明(期間限定)

 

お知らせ

記事作成に時間がかかってしまったので午前は1つのみです。

重たいゲームシーンを「自動的に最適化」してくれる新種のエディタ。

昨日に引き続き、今回は触ってみた編です。

 

・午後に追加でパブリッシャーセールの記事を投稿できたらなぁと思ってます。

 


 

f:id:assetsale:20171103154338j:plain

f:id:assetsale:20171102091620j:plain

Mesh Combine Studio

スクリプト / モデリング

Nathaniel Doldersum

$48.60 => $24.30    50%OFF    【開催期間】2017年10月25日〜不明(期間限定)

  

自動セルベースのメッシュ結合型エディタで、負荷の掛かるゲームのパフォーマンスを大幅に向上させることができる最適化ツールです。

 

※どのプラットフォームにも使用できます。

 

今回は買ってみて使った編をお送りします。

前回記事はこちら

 

アセットをインポート

f:id:assetsale:20171103110212j:plain

階層構造はとってもシンプル

コアとなる「MeshCombineStudio」Prefab以外は触る必要ありません。

 

TestSceneデモ

 開いた時の画面構成

f:id:assetsale:20171103113913j:plain

  • Main Camera
  • DIrectional Light
  • 「MeshCombineStudio」
  • ObjectSpawner(子にCubeオブジェクト大量)

最適化をかけるには親子関係が必須

テストシーンではObjectSpawnerの空のオブジェクトに子をぶら下げて準備を整えています。

 

 


 

 

最適化ツールを知る(動的生成編)

「MeshCombineStudio」コントロール画面

f:id:assetsale:20171103115213j:plain

Runtimeの「Combine In Runtime」にチェックが入っています。

つまり実行中に最適化をかけてメッシュの結合を作るという設定です。

 

Mesh Combine Studioの特徴として

・エディタ中にメッシュ結合を生成する

・ランタイム(実行中)にリアルタイムでメッシュ結合を生成する

 

エディタ中、実行中どちらでも生成できるのが特徴的。

 

ランタイム中にメッシュの結合を行う活用シーンは?

一番有効なのは、アセット説明にも書かれているダンジョン作りの

Dungeon Architect」との合わせ技です。

 

1.「Dungeon Architect」で実行中にランダムでダンジョンを生成する。

2.組み立て終わった後、間髪入れずに「Mesh Combine Studio」でメッシュの結合を行い最適化用のメッシュデータを作る

3.ゲーム開始(めっちゃ軽い)

 

これが理想的な使い方でしょう!

 

Dungeon Architectについてはこちら(更新お待たせして申し訳ないです)

手続き型でランダムダンジョンを構築するエディタで作られたシーンならほぼ確実に軽くなる。

f:id:assetsale:20170731223245j:plain

 

 


 

 

エディタ中にメッシュの結合データを作る方法(静的)

f:id:assetsale:20171103114908j:plain

「Search Options」のParentに親オブジェクトをセット

f:id:assetsale:20171103121421j:plain

デモシーンは既にセットされてますが、一応解説。

※ObjectSpawnerの空のオブジェクトに、大量のCube(最適化をかけたいオブジェクト)を子にセットする。

「前回の記事でstaticのチェックを外しておく必要がある」と書きましたが、別に必要なさそうです。すみません。

 

f:id:assetsale:20171103121424j:plain

Output SettingsのCell Sizeにセルの規模をセットします。(デフォ:32)

大きければ巨大なメッシュが。小さければカリングに有効な小規模のメッシュが作られる。ここの値は色々試してベストな値を探すのがポイント。

 

Runtimeのチェックボックスを外す

f:id:assetsale:20171103114704j:plain

チェックを外すと、2つのボタンが現れます。

Searchをクリックし、Combineをクリックして完成。

 

結果

シーンビューにはセルベースで切り取られる範囲が記されています。

f:id:assetsale:20171103114715j:plain

Hierarchyを確認

f:id:assetsale:20171103114719j:plain

「MeshCombineStudio」の子に「Combined」が出来上がり、

結合された後のオブジェクトがズラッと並んでいます。

f:id:assetsale:20171103114729j:plain

部分的(セル)で結合されていることがわかる↓

 

 


 

動作比較検証

 

動的に生成されるモードで、TABキーでチェンジする方式を試してみました。

 

実行中

f:id:assetsale:20171103123557j:plain

↓ 

TABキーを押す

実行しない状態

f:id:assetsale:20171103123538j:plain

Combineの子が非表示になる仕組み。

 

最適化OFFは明らかにカクカクしていて、ONにするとヌルヌル動きます。

FPS、Statisticsの値に注目です。

 

 

最適化ON:60FPS前後 Batches 960 / Saved by baching 108 / SetPass calls 7

最適化OFF:20FPS前後 Batches 51 / Saved by baching 39000 / SetPass calls 130

 

Enable時:Batchesの値は増えるものの、劇的に高速化します。

SetPass calls:かなり減っている。

Saved by baching:あり得ないほど小さくなっています。

 

 


 

適当な3Dモデルシーンで試行

次回詳しくお伝えしたいので、軽く次回予告だけしておきます。

 

元々軽いシーンなのでわかりにくいかもですが、参考にどうぞ。

 

最適化前

最適化後

  

補足

ポストエフェクト類が昔のものを使っていたため、全て削除しております。

カリングも正常に動作している事を確認しました。

最適化したあとの見た目に変化はないことと、最適化をかけるとFPS値があがってヌルヌル動きます。

 

次回(明日辺り?)はもっとわかりやすいシーンでチャレンジしたいと思います。

※設定ミスもあるかもしれないので見直しも

 

ここを見て欲しいなど要望があればコメントください。

キャプチャしてお知らせします。