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コンテンツが正しく動作しないことがありますので、十分な注意が必要です。
ディスカッション
コメント一覧
まだ、コメントがありません