強火で進め

このブログではプログラム関連の記事を中心に書いてます。

Unity の WebGL ビルドを試してみた

モバイルでの動作

iOS で実行すると

Please note that Unity WebGL is not currently supported on mobiles. Press Ok if you wish to continue anyway.
( Unity の WebGL は現在モバイルをサポートしていません。とにかく実行したいという場合は OK を押して下さい)

というエラーが表示されました。

以下のページにも「モバイルデバイスは Unity WebGL にサポートされていません」との記載が有ります。 Unity の WebGL はまだモバイル環境はサポートしていない様です。

Unity - マニュアル: WebGL での開発を始めるにあたって
https://docs.unity3d.com/ja/current/Manual/webgl-gettingstarted.html

アンチエイリアス

メニューから Editor > Project Settings > Quality と選択し、 WebGL のデフォルト設定がどうなっているか確認したところ、 Anti Aliasing の設定は Disabled (無効) 。

Anti Aliasing 有りでも試してみたいので「Add Quality Level」ボタンを押して、クオリティ設定を追加。名前は「WebGLCustom」。設定は Fantastic の設定がコピーされるみたいなので Anti Aliasing の設定は作成時に「2x Multi Sampling」に設定済みです。

しかし、この状態ではまだ選択されていないので注意が必要です。
WebGL設定(HTML5のアイコンで有る、盾に5と書かれている列)の▼をクリックし、「WebGLCustom」を選択します。


デフォルトでビルドしたものがこちら


Anti Aliasing 有り(2x Multi Sampling)でビルドしたものがこちらです。


最近の高解像度な画像ではパッと見、違いがわかりづらいですが端の部分などを比較するとちゃんとアンチエイリアスがかかっているのが確認できます。


アンチエイリアス無し】


アンチエイリアス有り】


なお、ブラウザや PC の GPU 次第で Anti Aliasing を有効にしても実際には有効にならない場合も有るみたいなので注意して下さい。

javascript - Can I programmatically enable WebGL antialiasing on Firefox? - Stack Overflow
http://stackoverflow.com/questions/23501703/can-i-programmatically-enable-webgl-antialiasing-on-firefox

そもそも古い GPU の場合にはブラウザがサポート対象外として弾いてしまう為、 Anti Aliasing 無しでも起動しない場合が有ります。

Unity - マニュアル: WebGL のブラウザ間での互換性
https://docs.unity3d.com/jp/current/Manual/webgl-browsercompatibility.html

メモリ不足

上記の2つのサンプルを同時に起動したところ、2つ目のタブでは起動に失敗し、以下のエラーが表示されました。内容は「ブラウザが WebGL のコンテンツに十分なメモリを割り当てられませんでした。このコンテンツの開発者は WebGL プレイヤーの設定で割り当てメモリを少なくしてみて下さい」との事です。

The browser could not allocate enough memory for the WebGL content. If you are the developer of this content, try allocating less memory to your WebGL build in the WebGL player settings.

ビルドしたアプリを1つだけ起動した時に問題無い様であれば大丈夫ですが1つだけの時にもこのエラーが出る様であればエラーの指示通り、 Player Settings のメモリ割り当て(WebGL Memory Size)の設定値を調整してみて下さい。

ローカルでの実行

ローカル環境で直接実行(ブラウザのURLが file://〜 となっている状態で実行)した場合には MacChrome の場合には以下のエラーが表示されました。エラー文の内容は「あなたのブラウザは、file:// でのUnity WebGLコンテンツの実行をサポートしていないようです。 httpサーバにアップロードするか、別のブラウザを試してください」。

It seems your browser does not support running Unity WebGL content from file:// urls. Please upload it to an http server, or try a different browser.

このエラーが出る場合には他のブラウザを試すか(※ MacFirefox は大丈夫でした)。サーバにアップロードするか、以前紹介した以下の方法などでローカルサーバを立てて実行する様にしましょう。

Pythonで簡易Webサーバを立てる - 強火で進め
http://d.hatena.ne.jp/nakamura001/20110925/1316966331