プロジェクトのエクスポート
エクスポートする理由は?
当初、Godotにはプロジェクトをエクスポートする手段がありませんでした。 開発者は適切なバイナリをコンパイルし、各プラットフォーム用のパッケージを手動でビルドします。
より多くの開発者(さらには非プログラマ)がそれを使用し始め、当社が同時により多くのプロジェクトを取り始めたとき、これがボトルネックであることが明らかになりました。
PC上
Godotを使用してPC上でゲームプロジェクトを配布することはかなり簡単です。Godotバイナリを project.godot ファイルと同じディレクトリにドロップし、プロジェクトディレクトリを圧縮すれば完了です。
これは簡単に聞こえますが、おそらく開発者がこれをしたくない理由がいくつかあります。 1つ目は、ファイルの読み込みを分散することが望ましくない場合があることです。一部の開発者は、好奇心旺盛なゲームユーザーがゲームの作成方法を覗き見るのを好まない場合があり、また他の開発者はゲームが洗練されていないなどと感じるかもしれません。もう1つの理由は、開発者が特別にコンパイルされたバイナリを好む可能性があることです。バイナリはサイズが小さく、より最適化されており、エディタやデバッガーなどのツールは含まれません。
最後に、Godotには 追加のパッケージファイルとしてDLCを作成する ためのシンプルだが効率的なシステムがあります。
モバイル上
モバイルプラットフォームでの同じシナリオは少し厄介です。これらのデバイスでプロジェクトを配布するには、これらの各プラットフォームのバイナリがビルドされ、ゲームデータと共にネイティブプロジェクトに追加されます。
これは、開発者がエクスポートする前に各プラットフォームのSDKに精通している必要があることを意味するため、面倒な場合があります。各SDKを学ぶことは常に奨励されていますが、望ましくない時間にそれを行うことを余儀なくされることはイライラする可能性があります。
このアプローチには別の問題もあります: 異なるデバイスは、実行するのに異なる形式のデータを好みます。この主な例は、テクスチャ圧縮です。すべてのPCハードウェアはS3TC(BC)圧縮を使用し、10年以上にわたって標準化されていますが、モバイルデバイスはETC1やETC2などのさまざまな形式のテクスチャ圧縮を使用します。
設定ファイル
エクスポート設定は、プロジェクトディレクトリ内にある以下の2つのファイルに保存されます:
export_presets.cfg: このファイルにはエクスポート設定の大部分が含まれており、安全にバージョン管理システムにコミットできます。このファイルには通常秘密にする必要のある情報は含まれていません。.godot/export_credentials.cfg: このファイルにはパスワードや暗号化キーなど、機密性の高いエクスポートオプションが含まれています。通常、このファイルはバージョン管理にコミットしたり、他人と共有したりすることは、その意味を十分に理解していない限り すべきではありません 。
認証情報ファイルは通常バージョン管理システムから除外されるため、新しいマシンにプロジェクトをクローンすると一部のエクスポートオプションが欠落することがあります。この問題への最も簡単な対処方法は、古い場所から新しい場所へ手動でファイルをコピーすることです。
コマンドラインからエクスポート
制作においては自動ビルドが便利ですが、Godotではコマンドラインのパラメーター--export-releaseおよび--export-debugを使うことで可能になります。コマンドラインからのエクスポートでも、設定のためにエクスポート用プリセットを指定する必要があります。コマンドラインでの基本的な呼び出し方はこうです:
godot --export-release "Windows Desktop" some_name.exe
"Windows Desktop" というプリセットと、テンプレートが見つかれば、これでsome_name.exeへとエクスポートします。(エクスポートのプリセット名に空白や特殊文字が含まれている場合は、引用符(")で囲む必要があります)出力先のパスは、 プロジェクトからの相対パス か、* 絶対パス* を指定します。 コマンド実行時のディレクトリは関係ありません 。
出力ファイルの拡張子はGodotのエクスポートプロセスで使われているものと同じ必要があります:
Windows:
.exemacOS:
.appor.zip(or.dmgwhen exporting from macOS)Linux: 任意の拡張子 (拡張子なしも含む)。
.x86_64が64bit x86バイナリで典型的に使われています。HTML5:
.zipAndroid:
.apkiOS:
.zip
また、PCK または ZIP ファイル のみ をエクスポートするように設定することもできます。これにより、1 つのエクスポートされたメインのパックファイルを複数の Godot 実行ファイルと併用することができます。その際、エクスポートプリセット名をコマンドラインで指定する必要があります:
godot --export-pack "Windows Desktop" some_name.pck
--export-releaseフラグに--pathフラグを組み合わせると、コマンドを実行する前にプロジェクトフォルダに cd する必要がなくなり、しばしば便利です。
godot --path /path/to/project --export-release "Windows Desktop" some_name.exe
参考
Godotのコマンドラインからの使用については、 コマンドラインチュートリアル で詳細を参照してください。
PCK と ZIP、 packファイル形式の比較
それぞれのフォーマットには長所と短所があります。PCKはデフォルトで、ほとんどの用途で推奨されますが、場面によってはZIPアーカイブを代わりに使いたいこともあるでしょう。
PCK フォーマット:
非圧縮のフォーマットです。ファイルサイズが大きいですが、読み/書きが早いです。
通常、ユーザーのオペレーティングシステムに備わっているツールでは読み書きできませんが、PCKファイルを抽出および作成するための サードパーティーツール が存在します。
ZIPフォーマット:
圧縮されたフォーマットです。ファイルサイズが小さく、読み/書きが遅いです。
ユーザーのオペレーティングシステムに通常備わっているツールで読み書き可能です。この性質はMOD作成を容易にするのに役立ちます( Pack、パッチ、そしてModをエクスポートする も参照してください)。
警告
Due to a known bug, when using a ZIP file as a pack file, the exported binary will not try to use it automatically. Therefore, you have to create a launcher script that the player can double-click or run from a terminal to launch the project:
:: launch.bat (Windows)
@echo off
my_project.exe --main-pack my_project.zip
# launch.sh (Linux)
./my_project.x86_64 --main-pack my_project.zip
launcherスクリプトを保存し、エクスポートされるバイナリと同じフォルダに置いてください。Linuxでは、launcherスクリプトに chmod +x launch.sh コマンドを使い、実行のパーミッションを付与するようにしてください。