kelorin joのブロマガ-楽しいもの作らないと死ぬ病気

ケロリン町進捗:軽くしたい

2017/08/09 04:02 投稿

  • タグ:
  • Unity
  • 3DCG
  • ケロリン町
  • MikuMikuDance
先日、覚悟を決めてアセットストアに提出しました。


ロゴまで作った
英語を抜きにしても、ストアやreadmeの文章を書くのが一番進まなくてつらい工程です。
(動画で告知とか余力残ってないよ)

スクショに先日作ったSketchFabのビューアも貼れるのにまんまと提出し忘れた。

今までentyでウォークスルーを出したり反応をもらって手応えを感じたりしましたが。
広く使われるためには、軽くするのも大事ですね。
Unityでは、setpasscallが判断基準のようです。
以前のバージョンではドローコールとかバッチが目安でしたが、この値が小さいほど軽いデータということになります。
GameウィンドゥのStatsボタンから見れます


どうやったら軽くなるかというと、
マテリアルとオブジェクト数を減らす、です。
ポリ数やテクスチャ解像度やライトやエフェクトもそりゃ影響しますが、
Unityはプレハブやパーティクルなどの同一内容のオブジェクトを大量に表示してもコール数は大して増えない=軽いみたいな仕様だそうで、一番影響大きいのはマテリアルとユニークオブジェクトの数だそうです。

(MMDケロリン町のころのマテリアル統合しまくりの作り方は妥当だったんですね)

というわけで今回提出した町モデルセットは、マテリアルを統合して減らす努力をしています。小さいパーツのテクスチャをまとめたり流用したりで、家一軒につき1-3つほど減ってる。ポリ数は数倍に増えてますが。

Setpasscallは遮蔽物の有無で大きく変動します。
今回のサンプルシーンのウォークスルーは、上の画像だとsetpasscallは210で
見晴らしのいいとこにいくと瞬間800とかになりました。
小さいパーツばかりだと遮蔽効果が薄い。



PCアプリ作る用なら許容範囲はどれぐらいなんでしょうかね?
モバイル用なら300下回りたいとききましたがそれはちょっとおいといて(実機確認できない)

なお以前のケロリン町のコール数は平均1600。最大3000…いや4000かも
キャラ抜きでこれはさすがにやばいのはわかります


ただ、
マテリアルとオブジェクトは、ユーザー側で統合して軽くすることができますね。
MeshBaker
http://u3d.as/c77
フリー版はカラーマップのみ統合可能、統合できるポリ数の制限

どう統合したらいいのか?
MeshBakerはUVをいじらず単にメッシュ統合もできますが
外周のビルとか電線とか草とか単一マテリアルのオブジェクトを統合してみても、大してコール数は減りませんでした。数百個もオブジェクトが減ったのに、です

劇的に減ったのは、商店街とか複数の細かいマテリアルから成る一区画まるごと統合とかで、
タイリング使いまくってるメッシュでもものともせず
テクスチャは一枚にまとめられ、コール数は一気に数百ドカンと減りました。
LODやコライダーなどもしっかり引き継がれます。
変換すると元オブジェクト群はメッシュレンダラーだけオフになってそのまま使われます。



統合するとテクスチャの解像度は荒くなり、見ての通り変換しきれずUV崩れた部分も出たし、統合にはポリ数制限があったので、人力で統合のさじ加減が必要ですが、
ケロリン町の区画ごとに統合してったら800までは絞れそうな手応えでした。

スキンメッシュ用やポリゴン数削減≒LODの自動生成など、
メッシュやマテリアルの統合アセットはいろいろあるので、お使いのUnityのバージョンにあわせて探してみる価値は大ですね

…開発者が用途に応じて柔軟に統合してけばいいんなら、背景モデラーとしてはあまりポリ数やマテリアルやテクスチャの数を気にせず、重たいモデルやシーンを作っちゃっていいのでは?
でもレビューには重すぎると書かれちゃうんじゃないですか…?

まあそれでも
MMDのステージづくりぐらいに使うなら、モデリングツール上で必死こいて人力でテクスチャ統合せずとも、1パーツ1マテリアルで楽にパーツ作ってUnityでならべてMeshBakerフリー版で統合、objExporterで書き出し(全て無料)、てやり方はマジいけそう。




コメント

コメントはまだありません
コメントを書き込むにはログインしてください。

いまブロマガで人気の記事