シェア
Unity2021.3LTSに変更したらWebGLのビルドサイズが激減したか気になって調べたらWebGLコンパイラツールのemscriptenがUnity2021.2でバージョンアップしてversion2.0.19になった事の影響が大きく、サイズ、時間、メモリ効率に改善が見られる
おそらく2021.2で追加されたWebGLの新機能で圧縮オーディオや圧縮テクスチャフォーマットサポートが追加された事も軽くなった要因なのかも知れない。まだ確実に調べきれていないけど、公式のドキュメントだからとりあえず2021.3LTSに上げてビルドすると軽くなってハッピーになれる
ビルド画面でCode Optimizationのパラメーターの初期値はSpeedとなっているが、Sizeに変更すると、サイズの縮小を目的としたビルドを行うことが出来るので、モバイル用で読み込みを拒否した場合の大規模ビルドに適しているらしいので、デフォルトのまま出力が重たい人試して
2019から2021.3LTSに変更したらWebGLのビルドサイズが激減したのか気になって調べたら、WebGLコンパイラツールのemscriptenがUnity2021.2でバージョンアップしversion2.0.19になった事の影響が大きいみたい。サイズ、時間、メモリ効率改善。
UnityのWebGLビルドというウェブブラウザで遊べるようにゲームを出力できる設定があるのだけれど、そのパラメーター指定ではテクスチャ圧縮タイプは3種類あって、DXTとETC2とASTCがあり、ビルド設定画面で指定する形になります。ETC2よりもASTCの方が新しい形式の様子。
WebGLのTexture圧縮タイプを変更すれば、大きなサイズ変化が起こるのだろうと想像していたけれど、DXTもASTCもETC2もあまり変化が無かった。事前にテクスチャのサイズ自体を小さくしてしまっていると、もしかすると影響が少ないのだろうか?ビルド時間は断トツでDXTが早い
スマホでも1分かからないくらいで読み込めるようになったみたいなので、今度はモバイル操作が出来るように修正を加えていく。壁張り付きやダッシュはモバイルとの相性が悪そうなので廃止を検討したい。
webGLについて調べていたら、webGL1.0と2.0の違いも分かっていなかった事が分かったのだけれど、どのブラウザバージョンがWebGL2.0に対応しているのか超絶分かりやすい記事を見つけたので全力でお知らせ。大抵は既にwebGL2.0 caniuse.com/webgl2
webGL2.0が使えると何が良いかというと、ドローコール回数を押さえて、同じメッシュオブジェクトの座標計算や拡大縮小などの指示をマルチタスクで処理できるので複数の処理が早いようだ。ジオメトリなんだっけ…使える機能が増えた事によって表現技術もwebGL1.0の頃よりも充実している
unityのwebGL publisherというパッケージを使用すると、Unity上から作ったゲームを一般公開が簡単に出来そう。 この方法での公開は実践はしていないので今度色々試してみたい。