Work in progress

The content of this page was not yet updated for Godot 4.5 and may be outdated. If you know how to improve this page or you can confirm that it's up to date, feel free to open a pull request.

プロジェクトのエクスポート

エクスポートする理由は?

当初、Godotにはプロジェクトをエクスポートする手段がありませんでした。 開発者は適切なバイナリをコンパイルし、各プラットフォーム用のパッケージを手動でビルドします。

より多くの開発者(さらには非プログラマ)がそれを使用し始め、当社が同時により多くのプロジェクトを取り始めたとき、これがボトルネックであることが明らかになりました。

PC上

Godotを使用してPC上でゲームプロジェクトを配布することはかなり簡単です。Godotバイナリを project.godot ファイルと同じディレクトリにドロップし、プロジェクトディレクトリを圧縮すれば完了です。

これは簡単に聞こえますが、おそらく開発者がこれをしたくない理由がいくつかあります。 1つ目は、ファイルの読み込みを分散することが望ましくない場合があることです。一部の開発者は、好奇心旺盛なゲームユーザーがゲームの作成方法を覗き見るのを好まない場合があり、また他の開発者はゲームが洗練されていないなどと感じるかもしれません。もう1つの理由は、開発者が特別にコンパイルされたバイナリを好む可能性があることです。バイナリはサイズが小さく、より最適化されており、エディタやデバッガーなどのツールは含まれません。

最後に、Godotには 追加のパッケージファイルとしてDLCを作成する ためのシンプルだが効率的なシステムがあります。

モバイル上

モバイルプラットフォームでの同じシナリオは少し厄介です。これらのデバイスでプロジェクトを配布するには、これらの各プラットフォームのバイナリがビルドされ、ゲームデータと共にネイティブプロジェクトに追加されます。

これは、開発者がエクスポートする前に各プラットフォームのSDKに精通している必要があることを意味するため、面倒な場合があります。各SDKを学ぶことは常に奨励されていますが、望ましくない時間にそれを行うことを余儀なくされることはイライラする可能性があります。

このアプローチには別の問題もあります: 異なるデバイスは、実行するのに異なる形式のデータを好みます。この主な例は、テクスチャ圧縮です。すべてのPCハードウェアはS3TC(BC)圧縮を使用し、10年以上にわたって標準化されていますが、モバイルデバイスはETC1やETC2などのさまざまな形式のテクスチャ圧縮を使用します。

エクスポートメニュー

異なるエクスポートワークフローで多くの試みを行った後、現在のワークフローが最適に機能することが実証されています。この執筆時点では、すべてのプラットフォームがまだサポートされているわけではありませんが、サポートされているプラットフォームは引き続き拡張されています。

エクスポートメニューを開くには、[エクスポート]ボタンをクリックします:

../../_images/export.webp

エクスポートメニューが開きます。ただし、完全に空の状態です。これは、エクスポートプリセットを追加する必要があるためです。

../../_images/export_dialog.webp

エクスポートプリセットを作成するには、エクスポートメニューの上部にある[追加…]ボタンをクリックします。これにより、エクスポートプリセット用に選択できるプラットフォームのドロップダウンリストが開きます。

../../_images/export_preset.webp

多くの場合、エクスポートするにはデフォルトのオプションで十分なので、それらを微調整する必要は通常ありません。ただし、多くのプラットフォームでは、エクスポートできるように追加のツール(SDK)をインストールする必要があります。さらに、Godotはパッケージを作成するためにエクスポートテンプレートをインストールする必要があります。エクスポートメニューは、何かが欠けていると文句を言い、ユーザーが解決するまでそのプラットフォームにエクスポートすることを許可しません。

../../_images/export_error.webp

その時点で、ユーザーはドキュメントに戻り、そのプラットフォームを適切にセットアップする方法の指示に従うことが期待されます。

メニューの下部にあるボタンを使用すると、いくつかの異なる方法でプロジェクトをエクスポートできます:

  • すべてをエクスポート: プロジェクトをプレイ可能なビルド(Godotの実行ファイルとプロジェクトデータ)として、定義されたすべてのプリセットに対してエクスポートします。この機能を使用するには、すべてのプリセットに エクスポート先のパス が定義されている必要があります。

  • プロジェクトのエクスポート: プロジェクトをプレイ可能なビルド(Godotの実行ファイルとプロジェクトデータ)として、選択されたプリセットに対してエクスポートします。

  • PCK/ZIP のエクスポート: プロジェクトのリソースを PCK または ZIP パッケージとしてエクスポートします。これはプレイ可能なビルドではなく、Godot の実行ファイルを含まないプロジェクトデータのみをエクスポートします。

エクスポートテンプレート

プラットフォームの設定とは別に、プロジェクトをエクスポートできるようにエクスポートテンプレートをインストールする必要があります。これらは、ウェブサイトのダウンロードページ<https://www.godotengine.org/download> からTPZファイル(名前が変更されたZIPアーカイブ)として取得できます。

ダウンロードしたら、エディタの エクスポートテンプレートの管理 [ファイルからインストール] オプションを使用してインストールできます。

../../_images/export_templates.webp

リソースオプション

エクスポート時に、Godotはエクスポートするすべてのファイルのリストを作成し、パッケージを作成します。エクスポートには3つの異なるモードがあります:

  • プロジェクト内のリソースをすべてエクスポート

  • 選択したシーン(と依存関係にあるもの)をエクスポート

  • 選択したリソース(と依存関係にあるもの)をエクスポート

../../_images/export_resources.webp

プロジェクト内のリソースをすべてエクスポート は、プロジェクト内のすべてのリソースをエクスポートします。 選択したシーンをエクスポート選択したリソースをエクスポート は、プロジェクト内のシーンまたはリソースのリストを表示し、エクスポートしたいシーンやリソースを個別に選択する必要があります。

../../_images/export_selected.webp

Export all resources in the project except resources checked below does exactly what it says, everything will be exported except for what you select in the list.

Export as dedicated server will remove all visuals from a project and replace them with a placeholder. This includes Cubemap, CubemapArray, Material, Mesh, Texture2D, Texture2DArray, Texture3D. You can also go into the list of files and specify specific visual resources that you do wish to keep.

注釈

名前がピリオド(.)で始まるファイルやフォルダーは、エクスポートされたプロジェクトには決して含まれません。これは、エクスポートされたPCKファイルに .git のようなバージョン管理フォルダーが含まれるのを防ぐためです。

Below the list of resources are two filters that can be setup. The first allows non-resource files such as .txt, .json and .csv to be exported with the project. The second filter can be used to exclude every file of a certain type without manually deselecting every one. For example, .png files.

設定ファイル

エクスポート設定は、プロジェクトディレクトリ内にある以下の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: .exe

  • macOS: .app or .zip (or .dmg when exporting from macOS)

  • Linux: 任意の拡張子 (拡張子なしも含む)。 .x86_64 が64bit x86バイナリで典型的に使われています。

  • HTML5: .zip

  • Android: .apk

  • iOS: .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 コマンドを使い、実行のパーミッションを付与するようにしてください。