Web用のコンパイル

必要条件

Webのエクスポートテンプレートをコンパイルするには、次のことが必要です:

参考

Godotにおける基本的なSconsの使い方については、ビルドシステムの説明を参照してください。

エクスポートテンプレートの構築

開始する前に、Emscripten構成ファイルが存在することを確認し、すべての設定を正しく指定します。このファイルは、UNIX ライクなシステムでは``~/.emscripten`` 、Windows では %USERPROFILE%\.emscripten として使用できます。通常はEmscripten SDKで書かれていて、例えば emsdk activate latest を起動した時や、またはパッケージマネージャによって呼び出す場合、また、ファイルが存在しない場合、Emscriptenの emcc プログラムを開始するときに作成されます。

注意

Windowsでは、Emscripten構成ファイル内のパスのバックスラッシュを二重のバックスラッシュ \\ としてエスケープするか、単一のスラッシュ / でUnixスタイルのパスを使用してください。

ターミナルを開き、エンジンソース コードのルートディレクトリに移動します。次に、SConsにJavaScriptプラットフォームの構築を指示します。 target をリリース ビルドの release またはデバッグ ビルドの release_debug として指定します:

scons platform=javascript tools=no target=release
scons platform=javascript tools=no target=release_debug

By default, the JavaScript singleton will be built into the engine. Official export templates also have the JavaScript singleton enabled. Since eval() calls can be a security concern, the javascript_eval option can be used to build without the singleton:

scons platform=javascript tools=no target=release javascript_eval=no
scons platform=javascript tools=no target=release_debug javascript_eval=no

これで、エンジンはEmscriptenによってWebAssemblyにコンパイルされます。完了すると、結果のファイルは bin サブディレクトリに配置されます。名前は godot.javascript.opt.zip (リリース用)か、``godot.javascript.opt.debug.zip``(デバッグ用)です。

最後に、リリース テンプレートのzipアーカイブの名前を webassembly_release.zip に変更します:

mv bin/godot.javascript.opt.zip bin/webassembly_release.zip

デバッグテンプレートの webassembly_debug.zip :

mv bin/godot.javascript.opt.debug.zip bin/webassembly_debug.zip

asm.js変換または LLVMバックエンドごとのビルド

WebAssemblyは2つの方法でコンパイルできます。デフォルトでは、EmscriptenのLLVMのfastcompフォークを使用して、JavaScriptの高度に最適化可能なサブセットであるasm.jsに最初にコンパイルします。 このコードは、 asm2wasm というツールを使用してWebAssemblyに変換されます。 Emscriptenは両方のプロセスを自動的に処理します。SConsを実行するだけです。

もう1つの方法は、LLVMのWebAssemblyバックエンドを使用します。このバックエンドは、LLVM 8以降または開発ビルドで利用可能です。 Emscriptenはこのプロセスも管理するため、SConsを呼び出します。

2つの方法のいずれかを選択するために、Emscripten構成ファイルの LLVM_ROOT 変数が使用されます。Emscriptenのclangの fastcomp フォークのバイナリを含むディレクトリを指している場合、asm2wasm が使用されます。これは、通常のEmscriptenインストールのデフォルトです。それ以外の場合、WebAssemblyバックエンドで構築されたLLVMバイナリが期待され、LLVMのWebAssemblyバックエンドが使用されます。