UDN
Search public documentation:

DirectoryLayoutJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

Unreal Engine 3 のディレクトリレイアウト

ドキュメントの概要:Unreal Engine 3 でコード、コンテンツ、およびローカライゼーション データを検索するのに理想的なディレクトリ構造体について概説

ドキュメントの変更ログ:新規作成; 維持予定。

概要

同一コードを共有する、複数のゲームの共存を可能にするために、新しいディレクトリ構造が設計されました。これは、ライセンス保持者が、当社のコードを基に機能を拡張し、ベースのエンジン コンテンツの変更を最小限に抑えてマージ(統合)やテストの実施を容易にすることへの要求に基づいたものです。

私達は1つのコード ツリー構造により 2 つのゲームを開発中で、ここでご紹介する手法は、内部でテストを重ねて、さらに洗練されたものになる予定です。

以前の Conflict (矛盾する) の主な領域は次のものでした。:

  • ローカライゼーション ファイル
  • コンフィギュレーションファイル
  • スクリプトファイル
  • ログファイル
  • コンテンツ(マップ、パッケージ)- 共有およびゲーム固有
  • バイナリファイル - 共有およびゲーム固有
  • ゲーム固有の拡張子ファイル(例えば、マップ用など)、およびプロトコル
  • UE2 でハードコードされた名称および前提条件の数々

フォルダ構造内の重要なフォルダを以下に示します。

基礎構造体

バイナリ

全てのバイナリファイルは現在、Binaries (バイナリ) フォルダの中で共有されています。複数のビルドコンフィギュレーションは共存できるため実行(.exe) ファイルは"DEBUG-" と接頭辞がついたDebug ビルドにより作成され、Release ビルドは"LTCG-".の接頭辞がつきます。Libサブフォルダには、リリース版ビルドの、スタックの確認やエラー報告に利用する Program Debug Database (.pdbファイルがあります。

ビット独立型の ('Any CPU' としてコンパイルされた管理コード) バイナリが、それぞれの関連 pdb ファイルと共にすべて格納されています。出荷用のゲーム実行ファイルも格納されているので、このフォルダでコマンドレットを実行して、デフォルトの Native (ネイティブ) バージョン (現在 Win32 フォルダ内にあるファイル) を実行することができます。

ActorX

ActorX が 3d パッケージ (Max または Maya など) からエクスポートするのに使われる DLL。

Editor

Win32\Editor および Win64\Editor にコピーされる管理 DLL。

FaceFXPlugins

Logs

SpeedTreeModeler

Win32

すべての x86 バイナリが、関連 pdb ファイルと共にここに格納されます。デバッグバージョンには "DEBUG-"、出荷バージョンには "ShippingPC-" の接頭辞が付いています。

Win64

すべての x64 バイナリが、関連 pdb ファイルと共にここに格納されます。デバッグバージョンには "DEBUG-"、出荷バージョンには "ShippingPC-" の接頭辞が付いています。

Windows

Windows と ConsoleInterface (および UnrealFrontend と UnrealConsole) の連動を可能にするためのツールの dll が、UE3Redist の最新バージョンと共にここに格納されています。

PS3

PS3 と ConsoleInterface の連動を可能にするためのツールの dll が、PS3 の最新実行ファイルと共にここに格納されています。さらに、あらゆる PS3 固有のバイナリ (Bink SPU プログラムなど) もここにあります。

Xenon

Xbox360 と ConsoleInterface の連動を可能にするためのツールの dll がここに格納されています。Xbox360 固有のツールもここにあります。将来は Xbox360 バイナリもここに移動する予定です。

InstallData

UnSetup を用いてインストール可能パッケージを作成するのに使われる各種ファイルがここにあります。

Development

非コンテンツ関連開発はDevelopment ディレクトリに集中します。

Builder

すべてのビルド スクリプトがここにあります。

Documentation

Unreal Engine 3 ドキュメンテーションはDocumentation ディレクトリにあります。

External

外部の関係者およびExternal ディレクトリに配置されているパートナーで開発された、あらゆるツールやユーティリティが対象となります。

Fonts

フォントに関連するあらゆるコマンドはFonts ディレクトリに格納されます。

Intermediate

実行ファイルのコンパイルに使われるすべての一時ファイル (例えばオブジェクトファイルなど) がここに格納されます。

Src

すべてのソースコードはSrc ディレクトリに配置されています。Unreal Engine 3を作るモジュールを表すディレクトリ内に含まれています。また同様に、ゲーム固有モジュールの作成のサンプルも含まれています。

Tool

内部で開発されたあらゆるツールやユーティリティは、Tools ディレクトリに配置されています。

ゲーム固有のディレクトリ (UTGame など)

baseEngineを含め、各ゲームプロジェクトにつき一つのディレクトリとなります。

各ゲームプロジェクト (ベース Engine を含む) に対して、そのプロジェクト固有の要素を含むディレクトリが 1 つまたは複数あります。

__Trashcan

Build

ビルド システムでコンパイルまたは使用する必要がある、あらゆるゲーム固有ファイル (DVD レイアウトなど)。

Config

Engine\Config ディレクトリ内に一連のルート 構成ファイル を置くことで、基本的な設定セット (レンダリングとウィンドウ化に関する設定、ベース "WASD" インプットなど)、およびゲーム固有の調整をほとんど必要としない他のエンジン設定を共有できるようにしています。.ini 拡張子を持つこれらのファイルは、BaseEngine.ini、BaseEditor.ini、BaseGame.ini および BaseInput.ini で、それぞれの役割に従って設定オプションが適切に分配されています。

これらの基本構成ファイルは、ゲームおよび修正ごとにデフォルトの初期化ファイルである DefaultEngine.ini、DefaultEditor.ini、DefaultGame.ini、および DefaultInput.ini などから参照されます。これらの INI ファイルは、ゲームの構成ファイルディレクトリである "GameName"Game\Config にあります。

初期化の際エンジンは、エンジン、エディタ、ゲームおよび入力の初期化ファイルである "GameName"Game\Config\"GameName"*.ini というファイルを検索し、ルートの INI ファイルを発見するまで再帰的検索を行って、Default*.ini ファイル内の Configuration.BasedOn フィールドで設定されているデフォルト値に基づいて、それぞれのファイルの新バージョンを作成します。INI ファイルを発見すると、エンジンはボトムアップ方式で設定をマージ (統合) します。

このような INI ファイルのマージをスムーズにするため、エンジンには行頭が 「+」 や 「-」 の場合に区別して扱う機能がサポートされています。デフォルト処理は既存キーの置換ですが、「+」 の行は、TArrays の拡張に便利ですが、付加するようエンジンに通知し、「-」 の行は基本 INI ファイルで定義されているキーと値の組を削除します。

コンテンツ

エンジンには、リソースの従属関係を明らかにするため、周知のファイル拡張子(Core.System.Extensions (中核となるシステムの拡張ファイル)、デフォルトでは 「u」 および 「upk」)が用意されています。これは設定されたパス (Core.System.Paths) を Engine\Content フォルダをデフォルトに設定して再帰検索するものです。

ローカライゼーション

エンジンは、構成可能なパス名指定されたパス (Core.System.LocalizationPaths、デフォルトでは "Engine\Localization") 内で、 ローカライズされたテキストファイル を探します。 リソースをローカライズする場合、エンジンはまず現在設定されている言語のローカライゼーションファイルを検索します。このリソースのローカライズ版が見つからなかった場合は、全世界共通ローカライゼーション ファイルを検索します。

ログ

ログファイルは現在の実行可能な基底名(つまり DEBUG- から開始しない実行体名)を調べて作成し、名称のはじめに "GameName"Game\Logsを付加します。

Movies

エンコードされたムービー (Bink など) がここにあります。サイズが大きい場合があるので、コンテンツとは別に格納されています。

データ保存

スクリーンショット

スクリプト

レギュラーパッケージと同様に、スクリプトファイルも、Core.System.Paths 配列で設定された、ディレクトリのサブディレクトリのうちの、どこにでも配置することができます。編集の簡略化のため、スクリプト コンパイラは一枚のパスでビルドされた全てのファイルを EditPackagesOutPath で設定されたディレクトリに配置し、EditPackages のパッケージ用配列を調べて、 EditPackagesInPath フォルダにあるソース(いずれも Editor.EditorEngine のセクションにある)とコンパイルします。

ログファイル

ログファイルは現在の実行可能な基底名(つまり DEBUG- から開始しない実行体名)を調べて作成し、名称のはじめに "GameName"Game\Logsを付加します。

ScriptFinalRelease

-final_release オプションを指定してコンパイルされたスクリプトパッケージ。

Splash

Stats

さらなる考察

ゲーム固有の拡張子ファイル

エンジンのほとんどでは、使用した拡張子、プロトコル、そしてマップの名称と拡張子の構成を実現しています。マップファイルの拡張子が原因で関連ファイルが衝突しないよう、ライセンス保持者がそれぞれに独特の名前をつけることを推奨します。既知の利用中ファイル拡張子は、ライセンス保持所ののファイル拡張子?にリストアップされています。

ハードコードされたディレクトリ名、プロトコルなど

エンジンのモジュール化と拡張性を広げるため、ハードコードされたパス参照や設定のうち Configure (構成) が可能と思われるものに遭遇した場合は、ご連絡下さいます様願います。こうした趣旨の問題を扱う場として、Unprog3 のメーリングリストがありますのでご利用下さい。

役立つ情報

ゲーム名

デフォルトのゲーム名は 「Example」 ですので、デフォルト設定によりエンジンは =ExampleGame\Config のフォルダの中の構成ファイルを探すことになります。自分で、Core.cpp にあるグローバル変数 =GGameName を変更したり、コマンドラインからの新しいオプション -game=MyGame によりゲーム名をつかって、エンジンが拡張子 .ini のファイルを検索するために利用するパス (path) を明示的に指定することも可能です。

  D:\Development\UnrealEngine3\Binaries> unreal -game=MyGame
  

上記の操作によって、GGameName を MyGame に設定し、MyGameGame\Config を構成フォルダとして利用するよう、エンジンに通知されます。このオプションは UnrealEd と ucc にも適用が可能で、MyGame のスクリプトファイルをコンパイルするには、 ucc make -game=MyGame のコマンドによる ucc の起動が必要であるということも覚えておいてください。

当社のコンテンツに依存しない程度にまで開発が進んだ場合は、Core.cpp の GGameName を自分のゲーム名やコード名で更新して、-game=demo のオプションを使ってサンプルコンテンツを呼出して下さい。

コンフィギュレーション ファイルサンプル

BaseEngine.ini (Engine)からの抜粋

  [URL]
  Protocol=unreal
  Name=Player
  Map=Index.ue3
  LocalMap=Entry.upk
  MapExt=ue3
  
  [Core.System]
  Paths=..\Engine\Content
  LocalizationPaths=..\Engine\Localization
  Extensions=upk
  Extensions=ue3
  Extensions=u
  
  [Editor.EditorEngine]
  AutoSaveDir=..\Engine\Content\Maps\Autosaves
  EditPackagesInPath=..\Development\Src
  EditPackages=Core
  EditPackages=Engine
  EditPackages=Editor
  EditPackages=UnrealEd
  EditPackages=SequenceObjects
  EditPackages=GamePlay
  EditPackages=WarfareGame
  EditPackages=SampleNativePackage
  
  [D3DDrv.D3DRenderDevice]
  ShaderPath=..\Engine\Shaders
  

DefaultEngine.ini (ExampleGame)からの抜粋

  [Configuration]
  BasedOn=..\Engine\Config\BaseEngine.ini
  
  [Core.System]
  +Paths=..\ExampleGame\Content
  +Paths=..\ExampleGame\Script
  +LocalizationPaths=..\ExampleGame\Localization
  
  [Editor.EditorEngine]
  EditPackagesOutPath=..\ExampleGame\Script
  AutoSaveDir=..\ExampleGame\Content\Maps\Autosaves
  

更なる情報については、 コンフィギュレーションファイル をご覧ください。

アーキテクチャ概要

Unreal Engine 3のプロジェクト構造やサブシステム階層の概要については、 Unreal Engine 3 のアーキテクチャ概要 をページをご覧ください。