Unityでゲームを作ってビルドするとき、ブラウザから手軽にプレイできるWebGL形式でビルドしたくなる場合は多いと思います。ところがUnityのWebGLビルドは落とし穴が多く、初心者の方は「なんじゃこりゃー!」となることも少なくないでしょう…。
そこでこの記事では、そのような落とし穴にハマらないためにもWebGL形式でビルドするときの注意点を5つご紹介します。内訳は次の通り。
- WebGL形式のビルドはエラーが出やすい
- WebGL形式のビルドは物凄く時間がかかる
- 3Dゲームはロード時間が長くなりがち
- 「ビルドして実行」しないとローカルではテストプレイできない
- フォントによっては日本語が表示されない場合がある
では、それぞれについて詳しく見ていきましょう。
WebGL形式のビルドはエラーが出やすい
まず、WebGL形式のビルドは他のビルド形式に比べて不安定で失敗しやすいようです。後述するようにWebGL形式だとビルドに時間がかかるのですが、さんざん待たされた挙句エラーを吐かれて失敗…なんてことも割とよくあるので、ビルドするときは覚悟しましょう…。
ちなみによく聞くエラーの原因としては、
- プロジェクトのファイルパスに日本語が含まれている
- OSのユーザー名に日本語が含まれている
などが挙げられます(なんでOSのユーザー名が関係あるんでしょうね??)。この辺はあらかじめ知っていないとハマってしまいがちなので注意しましょう。
WebGL形式のビルドは物凄く時間がかかる
次にWebGL形式のビルドはめちゃくちゃ時間がかかります。まあ2Dゲームの場合はまだマシですが、特に3Dゲームのビルド時間は長いです。平気で30分とか待たされます。
時間がかかる原因についてですが、主に3Dモデル(とTerrain)やスクリプトを高速な形式に変換するのに時間がかかるっぽいです。スクリプトはどうしようもないと思いますが、3Dモデルは色々なものを使いすぎないように心がけたほうが良いかもしれません。
3Dゲームはロード時間が長くなりがち
さてこれは当然といえば当然の話ですが、3Dゲームはファイルサイズが大きくなりがちなので、WebGLでもロードにかかる時間が長くなる傾向にあります。
そしてWebGL版はダウンロード版のゲームよりも手軽にアクセスできる反面、閉じられるときは速攻閉じられてしまうという性質があります。ロードが長くても気長に待ってくれるプレイヤーなら問題ないですが、気の短いプレイヤーはイライラして速攻ブラウザを閉じてしまうでしょう。
ゲームを遊べるまでにかかる時間の長さはとても重要なので、3Dゲームを作る場合は「本当にWebGLでビルドすべきか?」を一度考えたほうが良いと思います。
「ビルドして実行」しないとローカルではテストプレイできない
あと細かい部分ですが、WebGL形式でビルドしたゲームをローカルで実行して確認したい場合はビルドしたファイルをブラウザで開くのではなく、ビルドのときに「ビルドして実行」を選択する必要があります。
これは実際にビルドしたファイルをローカル環境で開いてみると分かりますが、ブラウザに「セキュリティ上の理由で実行できません」と言われてしまいます。したがってビルドしたゲームを確認したい場合はUnity経由で「ビルドして実行」するか、実際にサーバーにアップロードして確認するしかありません。
フォントによっては日本語が表示されない場合がある
さて最後の注意点は、WebGL形式でビルドしたゲームを実行してみると日本語が表示されないことがあるということです。
実はこれはフォントの問題で
- Unityの標準フォントは英字フォント「Arial」(つまり日本語は含まれていない)
- 通常、Unityには含まれていない文字を補完する機能があるが、WebGL形式ではそれが動作しない
- つまり標準のフォントのままWebGL形式でビルドすると日本語が表示されない
というようなことが原因だそうです。なので解決策としては日本語のフォントを使うようにすればOK。これ、知らないと「なんじゃこりゃー!」ってなるのは間違いないです(私がそうなったので…)。
おわりに
というわけで、UnityのWebGLビルドでハマりやすいポイントについて書いてきました。上記のようにWebGL形式でのビルドは注意すべき点が多いのですが、あらかじめ知識を持っておけば怖くないので、ポイントを押さえて変なところで悩まないようにしておきましょう。