UDN
Search public documentation:

DirectoryLayoutCH
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

UE3 主页 > 虚幻引擎 3 基础知识 > 目录布局
UE3 主页 > 输入 / 输出 > 目录布局

目录布局


概述


虚幻引擎 3 目录结构的设计目的是使得多个游戏可以共享它们之间一样的游戏代码,且各有游戏之间可以共存。

我们的观念是设计一个集中的代码基础,其它的针对游戏的模块可以附加到这个中心代码上。除了代码基础外,其它的类似于工具和文档的东西通常会在多个项目之间共享。对于内容来说,基础游戏引擎的内容可以和任何针对特定游戏的内容共存。

过去,主要的矛盾部分是:

  • Localization(本地化)文件
  • Configuration(配置)文件
  • Script(脚本)文件
  • Log(日志)文件
  • Content(地图、包) - 共享的内容和针对特定游戏的内容
  • Binaries - 共享的数据和针对特定游戏的数据
  • 针对特定游戏的扩展名(比如,地图)和协议
  • 虚幻引擎 3 中的很多硬编码名称和假设。

Binaries


所有位独立的(像‘任何CPU’那样管理编译的代码)二进制文件及它们相应的 pdb 文件都存储在这里。这里也有一些针对游戏的可执行文件,所以可以从这个文件夹中运行命令行开关;它将运行默认的 native 版本。

ActorX

ActorX 所使用的动态链接库,它用于从类似于 Max 或 Maya 的 3D 内容创建包中导出资源。

FaceFXPlugins

3D 内容创建包的 FaceFX 的插件,例如,Max 或 Maya。

GFx

由 ScaleForm 提供的工具可以协助虚幻引擎 3 创建 Flash。

InstallData

各种用于创建可安装带有 UnSetup 的可安装包的文件都保存在这里,例如,EULA、图标等等。

IPhone

各种用于虚幻引擎 3 中的 iOS 开发的文件。

Redist

重新发布安装程序可以确保将所有需要的软件包安装在本地机器上。

SpeedTreeModeler

速度树内容创建软件包允许您为 UDK 创建 SpeedTree。

SwarmCache

编译地图时供 Swarm 使用的缓存。

Win32

所有的 x86 二进制文件及它们相应的 pdb 文件都存储在这里。调试版本带有 Debug- 前缀,发行版本带有 ShippingPC- 前缀。

编辑器

虚幻编辑器的管理的动态链接库。

UserCode

由 UDK 开发者们创建的动态链接库,它可以通过虚幻脚本进行调用。

Win64

所有的 x64 二进制文件及它们相应的 pdb 文件都存储在这里。调试版本带有 Debug- 前缀,发行版本带有 ShippingPC- 前缀。

编辑器

虚幻编辑器的管理的动态链接库。

Windows

这个文件夹包含了允许 Windows 和 ConsoleInterface(控制台接口,UnrealFrontend 和 UnrealConsole)一同使用的工具动态链接库和最新的 UE3Redist 版本。

开发


所有非内容相关的开发都放置在 Development 目录中。

Intermediate(中间文件)

有用于编译可执行文件(比如,目标文件)的临时文件都保存在这里。

Src

所有的源码文件放置在 Src 目录中。它包含的所有目录都是组成虚幻引擎 3 的模块,以及创建针对特定游戏模块的实例。

针对特定游戏的目录(比如,UTGame)


针对每个游戏项目会有一个目录,包括基础引擎。对于每个游戏项目,包括基础引擎,都有一个或多个包含针对那个项目的元素的目录。

Autosaves(自动保存)

虚幻编辑器自动保存的地图、软件包备份和 PIE 地图都保存在这个文件夹中。

Build(编译)

编译所需要的或者编译系统所使用的任何针对游戏的文件(比如 DVD 布局)。

Config(配置)

在 Engine\Config 目录中提供了一组根配置文件,这些文件共享了一组基本设置(渲染和窗口设置,基于“WASD”输入,...)和一些其它的不需要针对特定游戏进行调整的引擎设置。这些文件是BaseEngine.ini、BaseEditor.ini、BaseGame.ini和BaseInput.ini,根据配置选项对它们进行了分离,它们的扩展名是 .ini。

这些配置文件将会分别被每个 游戏/mod的默认INIs所引用,比如 DefaultEngine.ini、DefaultEditor.ini、DefaultGame.ini 和 DefaultInput.ini。这些 INI 文件的任何一个都存在于特定游戏的配置目录中 - "GameName"Game\Config。

只要初始化完成,引擎就会开始尝试定位 Engine、Editor、Game 和 Input 的 "GameName"Game\Config\"GameName"*.ini,并将基于 Default*.ini 文件中的 Configuration.BasedOn 文本域中默认包含的信息分别创建文件的新版本,它将会进行递归地搜索,直到找到根 ini 文件为止。只要找到了 INI 文件,然后它将会自底向上的融合设置。

引擎对融合 ini 文件提供了专门的支持,它会对以‘+’或‘-’开头的文本行进行不同的处理。默认的动作时替换现有的按键,`+' 告诉引擎附加对扩展 TArrays 有用的 key(键),而 `-` 将会删除一对在基础 ini 文件中定义的 key/value(键/值)。

Content(内容)

引擎有一组已知的文件扩展名(Core.System.Extensions,默认情况下是“u”和“upk”)来满足资源依赖。它会递归地搜索默认配置路径 (Core.System.Paths),默认为 "Engine\Content" 文件夹。

Flash

Flash 开发文件放置在这里,方便导入。

本地化

引擎将会在路径的可配置选项(Core.System.LocalizationPaths,默认为 "Engine\Localization")中查找本地化文本文件。当本地化资源时,它首先会在当前的配置语言本地化文件中查找。如果查找那个资源的本地化本本失败,然后它将会在国际化的本地化文件中查找。

Logs(日志)

日志文件的创建是通过查看当前可执行文件的基本名称(是指可执行文件的名称,不带 "DEBUG-" 前缀)并在它的前面加上前缀 "GameName"Game\Logs 来完成。

视频

编码的电影(比如,Bink)保存在这里。因为它们太大,所以把它们和内容分离开来。

ScreenShots(屏幕截图)

所有在虚幻编辑器或虚幻引擎中截取的屏幕截图都存储在这里。

Script(脚本)

和正常的包一样,脚本文件可以存放在 Core.System.Paths 数组中配置的目录的任何子目录中。为了简化编辑,脚本编译器将一次编译所有需要的文件,并把它们存放到 EditPackagesOutPath 所指定的目录中,并且它将查看 EditPackages 数组来获得要和在 EditPackagesInPath 文件夹(所有的都在 Editor.EditorEngine 部分)中的源文件进行一同编译的包。

ScriptFinalRelease

使用 -final_release 选项编译的脚本包。

Splash

所有程序启动屏幕图片都存储在这里。

其他注意事项


有用的信息

配置文件实例

从 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

请参阅配置文件页面了解更多信息。