プロジェクトの構成

はじめに

Godotにはプロジェクト構造やファイルシステムの使用方法に制限がないため、エンジンを学習する際にファイルを整理することが難しいようです。このチュートリアルでは、出発点として適切なワークフローを提案します。また、Godotでのバージョン管理の使用についても説明します。

構成

Godotは本質的にシーンベースであり、メタデータやアセットデータベースなしで、ファイルシステムをそのまま使用します。

他のエンジンとは異なり、多くのリソースはシーン自体に含まれているため、ファイルシステム内のファイルの量はかなり少なくなります。

それを考慮すると、最も一般的なアプローチは、可能な限りシーンに近いアセットをグループ化することです。そうしておけば、プロジェクトが大きくなった時の保守性が高まります。

例として、通常は、スプライト画像、3Dモデルメッシュ、マテリアル、音楽などの基本的なアセットを単一のフォルダに配置できます。その後、別のフォルダを使用して、それらを使用してビルドされたレベルを格納することもできます。

/project.godot
/docs/.gdignore  # See "Ignoring specific folders" below
/docs/learning.html
/models/town/house/house.dae
/models/town/house/window.png
/models/town/house/door.png
/characters/player/cubio.dae
/characters/player/cubio.png
/characters/enemies/goblin/goblin.dae
/characters/enemies/goblin/goblin.png
/characters/npcs/suzanne/suzanne.dae
/characters/npcs/suzanne/suzanne.png
/levels/riverdale/riverdale.scn

スタイルガイド

プロジェクト間の一貫性を保つために、次のガイドラインに従うことをお勧めします:

  • フォルダー名とファイル名には snake_case を使用します (C# スクリプトを除く)。これにより Windows でプロジェクトをエクスポートした後に発生する可能性のある大文字と小文字の区別の問題を回避できます。C# スクリプトはこのルールの例外であり、慣例により PascalCase で記述する必要があるクラス名と同じ名前を付けます。

  • 組み込みノードの大文字/小文字と一致させるため、ノード名には PascalCase を使用します。

  • 一般的にサードパーティのリソースは、エディタプラグインでなくても、ルートにある addons/ フォルダに配置します。これにより、どのファイルがサードパーティ製であるかを簡単に追跡できます。このルールにはいくつかの例外があります。たとえばキャラクターにサードパーティのゲームアセットを使用する場合は、それらをキャラクターシーンやスクリプトと同じフォルダー内に含める方が合理的です。

インポート

バージョン3.0以前のGodotは、プロジェクト外部のファイルからインポートプロセスを実行しました。これは大規模なプロジェクトでは便利ですが、ほとんどの開発者にとって構成に手間がかかります。

このため、アセットはプロジェクトフォルダ内から透過的にインポートされるようになりました。

特定のフォルダを無視する

Godot が特定のフォルダに含まれるファイルをインポートしないようにするには、フォルダ内に .gdignore という空のファイルを作成します (先頭に . が必要です)。これは、(既存の構成などからの)初期プロジェクトのインポートを高速化するのに役立ちます。

注釈

Windows で名前がドットから始まるファイルを作成するには、ファイル名の先頭と末尾の両方にドットを配置します「 .gdignore. 」。Windows はファイル名を確認して末尾のドットを自動的に削除します。

あるいは Notepad++ などのテキスト エディターを使用するか、コマンド プロンプトで次のコマンドを使用します: type nul > .gdignore

フォルダが無視されると、そのフォルダ内のリソースを load() および preload() メソッドを使用して読み込むことができなくなります。また、そのフォルダは ファイルシステムドック上で自動的に非表示になり、煩雑さを軽減するのに役立ちます。

.gdignore ファイルの内容は無視されるので、このファイルは空にする必要があります。 .gitignore ファイルのようなパターン指定はサポートされません。

大文字と小文字の区別

Windows および最近の macOS では、デフォルトで大文字と小文字を区別しないファイルシステムが使用されますが、Linux ディストリビューションでは、デフォルトで大文字と小文字を区別するファイルシステムが使用されます。Godot の PCK 仮想ファイルシステムは大文字と小文字を区別するため、プロジェクトをエクスポートした後に問題が発生する可能性があります。この問題を回避するには、プロジェクト内のすべてのファイルに snake_case 命名規則 (および一般に小文字) を使用することをお勧めします。

注釈

スタイル ガイドで別の指示がある場合 (C# スタイル ガイドなど)、このルールに従わなくてもかまいません。ただし、間違いを避けるために一貫性は保ってください。

On Windows 10, to further avoid mistakes related to case sensitivity, you can also make the project folder case-sensitive. After enabling the Windows Subsystem for Linux feature, run the following command in a PowerShell window:

# To enable case-sensitivity:
fsutil file setcasesensitiveinfo <path to project folder> enable

# To disable case-sensitivity:
fsutil file setcasesensitiveinfo <path to project folder> disable

If you haven't enabled the Windows Subsystem for Linux, you can enter the following line in a PowerShell window running as Administrator then reboot when asked:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux