Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

ファイルシステム

はじめに

ファイルシステムは、アセットの保存方法とアクセス方法を管理します。また、適切に設計されたファイルシステムにより、複数の開発者が共同作業中に同じソースファイルとアセットを編集できます。 Godotは、すべてのアセットをファイルシステムのファイルとして保存します。

実装

ファイルシステムはディスク上にリソースを格納します。スクリプトからシーンPNGイメージに至るまであらゆるものがエンジンのリソースとなります。ディスク上のほかのリソースを参照するプロパティーがリソースに含まれている場合は、それらのリソースへのパスも含まれます。リソースに組み込みのサブリソースがある場合、そのリソースはバンドルされたすべてのサブリソースとともに1つのファイルに保存されます。たとえば、フォントリソースは多くの場合、フォントテクスチャと一緒にバンドルされています。

The Godot file system avoids using metadata files. Existing asset managers and VCSs are better than anything we can implement, so Godot tries its best to play along with Subversion, Git, Mercurial, etc.

ファイルシステムの内容例:

/project.godot
/enemy/enemy.tscn
/enemy/enemy.gd
/enemy/enemysprite.png
/player/player.gd

project.godotファイル

project.godot ファイルはプロジェクト記述ファイルであり、常にプロジェクトのルートにあります。というより、これが置かれた場所にルートが設定されます。これは、プロジェクトを開くときにGodotが検索する最初のファイルです。

このファイルには、win.ini形式を使用したプロジェクト構成がプレーンテキストで含まれています。空の project.godot であっても、空白のプロジェクトの基本的な定義として機能します。

パス区切り文字

Godotでは、パスの区切り文字として / だけを使用できます。これは移植性のためです。Windowsを含め、すべてのオペレーティングシステムがこれをサポートしているため、パスは C:\project\project.godot ではなく C:/project/project.godot と入力する必要があります。

リソースパス

リソースにアクセスするときに、ホストOSファイルシステムのレイアウトを使用すると、面倒で移植性に欠けることがあります。この問題を解決するために、特別なパス res:// が作成されました。

パス res:// は常にプロジェクトルートを指します (project.godot がある場所なので、 res://project.godot は常に有効です)。

このファイルシステムは、エディタからプロジェクトをローカルで実行する場合にのみ、読み取り/書き込み可能になります。エクスポートする場合、または異なるデバイス(スマートフォンやコンソール、DVDなど)で実行する場合、ファイルシステムは読み取り専用になり、書き込みは許可されなくなります。

ユーザー・パス

ゲームの状態の保存やコンテンツパックのダウンロードなどのタスクには、ディスクへの書き込みが引き続き必要です。このため、エンジンには特別なパス user:// があり、いつでも書き込みが出来ることを確保しています。このパスの解決方法は、プロジェクトが実行されているOSによって異なります。ローカルパスの解決については、File paths in Godot projectsで詳しく説明しています。

ホストファイルシステム

また、ホストファイルシステムパスも使用できますが、これらのパスがすべてのプラットフォームで動作するとは限らないため、リリースする製品にはお勧めできません。ただし、Godotで開発ツールを作成する場合は、ホストファイルシステムパスを使用すると便利です。

デメリット

There are some drawbacks to this file system design. The first issue is that moving assets around (renaming them or moving them from one path to another inside the project) will break existing references to these assets. These references will have to be re-defined to point at the new asset location.

これを避けるには、ファイルシステムドックで、Godot内からすべての移動、削除、および名前変更操作を行います。 Godotの外部からアセットの移動操作をしないでください。そうでないと、依存関係を手動で修正する必要が出てきます(Godotはこの操作を検出し、それを修正する為に役立ちますが、なぜわざわざ面倒な道を行くのですか?)。

2つ目は、WindowsおよびmacOSでは、ファイル名とパス名は大文字と小文字が区別されないことです。大文字と小文字を区別しないホストファイルシステムで作業している開発者がアセットを「myfile.PNG」として保存してから「myfile.png」として参照する場合、プラットフォームでは正常に動作しますが、LinuxやAndroidなどの他のプラットフォームでは動作しません。 これはおそらく、すべてのファイルが圧縮されたパッケージを使用する、エクスポートされたバイナリにも現れるでしょう。

It is recommended that your team clearly define a naming convention for files when working with Godot. One fool-proof convention is to only allow lowercase file and path names.