Unity WebGL サーバー要件技術資料

この資料は、Unityで開発したWebGLビルドを正しくホスティングするために必要なサーバー要件を記載しています。WebGLはWeb向けのゲームやインタラクティブなアプリケーションの実行環境として、適切なサーバー設定が重要です。

1. HTTPサーバー

WebGLコンテンツを配信するには、HTTP(またはHTTPS)プロトコルをサポートするサーバーが必要です。ほとんどのWebホスティングサービスやクラウドプロバイダー(AWS、Azure、Google Cloudなど)はHTTPサーバーをサポートしています。

要件:

  • HTTP/HTTPSプロトコルのサポート: すべてのWebリソースはHTTP経由でアクセス可能である必要があります。
  • HTTPS推奨: セキュリティの観点から、HTTPSでの配信が推奨されます。特に、ブラウザのセキュリティポリシーによりWebGLの一部の機能はHTTPSが必須です。

2. CORS(Cross-Origin Resource Sharing)対応

WebGLの実行中に外部リソースを安全にロードするため、CORS設定が必要です。CORSは、他のドメインからのリソースアクセスを許可するサーバーの設定です。

設定例:

  • Webサーバーの設定ファイル(例:Apacheの.htaccessやNginxの設定ファイル)で、以下を追加することでCORSを有効化できます:
  <IfModule mod_headers.c>
      Header set Access-Control-Allow-Origin "*"
  </IfModule>

※必要に応じて「*」の代わりに特定のドメインを設定してください。


3. MIMEタイプの設定

Unity WebGLビルドには特定のファイルタイプ(.data, .wasm, .js, .json)があり、これらのファイルを正しく配信するためには、適切なMIMEタイプをサーバーで設定する必要があります。

必要なMIMEタイプ:

  • .dataファイル: application/octet-stream
  • .wasmファイル: application/wasm
  • .jsファイル: application/javascript
  • .jsonファイル: application/json

設定例(Apache):

AddType application/octet-stream .data
AddType application/wasm .wasm
AddType application/javascript .js
AddType application/json .json

4. HTTPS対応

WebGLコンテンツは、セキュリティ強化のためにHTTPSでの配信が強く推奨されます。多くのブラウザでは、HTTPSでない場合にWebGLが正しく動作しないことがあります。

設定方法:

  • SSL証明書の導入: Let’s Encryptや他の認証機関から無料または有料のSSL証明書を取得し、サーバーにインストールします。
  • HTTPSリダイレクト: HTTPからHTTPSへのリダイレクトを設定し、すべてのトラフィックをHTTPSに強制します。

5. サーバーのパフォーマンス

WebGLコンテンツは大容量のデータを含むことが多いため、サーバーのパフォーマンスを考慮することが重要です。

推奨事項:

  • CPUとメモリ: 高トラフィック時に負荷を処理できる十分なCPUとメモリを持つサーバーを使用します。
  • 帯域幅: 十分な帯域幅を確保し、ユーザーがスムーズにコンテンツを読み込めるようにします。
  • 負荷分散(オプション): 高トラフィックのWebGLアプリケーションでは、複数のサーバー間で負荷分散を行うことが効果的です。

6. ファイル圧縮

WebGLのロード時間を短縮するために、サーバーでgzipまたはBrotli圧縮を有効にすることが推奨されます。

設定例(Apache):

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/json
    AddOutputFilterByType DEFLATE application/wasm
    AddOutputFilterByType DEFLATE application/octet-stream
</IfModule>

7. キャッシュの設定

クライアント側のパフォーマンスを向上させるために、適切なキャッシュポリシーを設定します。

設定例(Apache):

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType application/javascript "access plus 1 week"
    ExpiresByType application/json "access plus 1 week"
    ExpiresByType application/wasm "access plus 1 week"
    ExpiresByType application/octet-stream "access plus 1 week"
</IfModule>

結論

これらのサーバー要件を満たすことで、UnityのWebGLビルドが安全かつ効率的に動作する環境を整えることができます。サーバーの設定が不十分な場合、WebGLコンテンツが正しく動作しないことがありますので、十分な注意が必要です。

Unity,WebGL

Posted by hidepon