(转载)虚幻引擎3--基础知识

 这是虚幻引擎3UDN的技术文档,共有六个章节。以下将分别把中文译本贴出来,方便懒人学习[偷笑] 
一、虚幻引擎 3 基础知识

 

 

一、虚幻引擎 3 基础知识
概述 
———————————————————————————————————————————————————————————————————— 
有几个游戏性元素实际上是所有使用虚幻引擎3或虚幻开发工具包创建的项目所共有的。自定义这些元素可以创建出完全独特的、外观和行为符合期望的游戏。没有任何两个项目是相同的,尽管虚幻引擎提供了这些元素的默认实现,但是肯定需要对它们进行很大的修改才能符合游戏设计的需要。我们提供了基本游戏游戏快速入门指南 ,以便您帮助您熟悉创建您自己的游戏性类、构建项目并使其运行的过程。它详细介绍了如何创建一个空的游戏架构(尽管它实现的是第三人称视角游戏),然后无论您是正在设计针对移动设备平台还是PC平台的游戏,您都可以根据您的需要针对该架构进行自定义处理。游戏类型概述 



游戏类型负责处理游戏规则。它构成了游戏的架构,并且从本质上讲它是任何使用虚幻引擎3制作的游戏的基础。在类似于虚幻竞技场3这样的游戏中,游戏类型的概念是非常显著的。可以从菜单中直接选择很多游戏类型,比如Deathmatch(死亡竞技), Capture the Flag(夺取旗帜)等。在其他游戏中,游戏类型的概念可能不是那么的明显。比如单玩家平台游戏, 玩家没有看到明确的游戏类型;然而,却又明确的游戏规则和条件用于来判断什么情况才算完成了当前关卡。可能会对玩家有个时间限制,然后当玩家到达某个特定点或打败一个“boss”角色时便完成了这关。这些是游戏类型将要指定并跟踪的元素类型。更加复杂的情况是dungeon crawler(地城探险者)类型游戏。在主要的世界中,有一个主要的跟踪游戏进展和条件的游戏类型。在每个地下城中将有一个针对那个地下城的游戏类型,从而使得每个地下城是完全唯一的,并且具有它自己的一组规则集和目标。GameInfo(游戏信息)游戏的游戏类型是由GameInfo类控制的。游戏中包含的每种游戏类型都要创建一个这个类的子类。一个游戏可以有很多种游戏类型,但是给定时间仅能使用一种。当初始化关卡来获得游戏性 UGameEngine::LoadMap() 时便会实例化GameInfo actor。除非另行指定游戏类型,否则这种游戏类型将在关卡生命周期内使用。这个类一般负责以下处理: 
  • 决定在哪里产生玩家。
  • 赋予玩家适当的武器项。
  • 设置时间限制。
  • 记录玩家的 分数/技能 。
  • 如果需要重置关卡。
  • 判断游戏结束的条件。
游戏类型也指出了使用哪个类来构造玩家,使用哪个HUD类,及使得游戏类型是完全唯一的几个其他类。关于游戏类型、GameInfo类、及创建自定义游戏类型的更多信息,请参照游戏类型技术指南页面。玩家概述

虚幻引擎游戏中的每个玩家都由几个相互协作的系统组成。这些系统控制玩家的外观及行为,同时也控制它们看世界的角度、以及控制玩游戏的人的输入怎样解释为游戏中的动作。PlayerController(玩家控制器)虚幻引擎中的玩家及其他实体一般是由 Controllers(控制器) 控制的。 Controller 是实体的大脑,决定了实体的行为。玩家有他们自己特殊的的 Controller(控制器) ,既 PlayerController(玩家控制器) ,它具有从玩游戏的人那里获得输入并将其转换为动作的功能。Pawn尽管PlayerController 构成了玩家的大脑,而 Pawn 是游戏中玩家或其他实体的物理展现或躯体。 Pawn  Controller 获取命令,并执行它们。这是处理玩家的动画、毁坏及其他物理相关方面问题的地方。关于玩家系统、 Controllers  Pawns 及创建自定义玩家及角色的更多信息,请参照角色技术指南页面。Camera(相机)玩家进入世界的视角是由相机系统和 Camera 类处理的。这个类指出了从哪个位置及旋转值处把世界渲染到视口中。从本质上讲,是指玩家的眼睛。通过使用自定义的Camera 类,或者甚至是一个完全自定义的相机系统,可以创建出一个全新的唯一的视角类型。比如,默认的视角是第一人称视角,既玩家本身是不可见的。就像玩游戏的玩家正在直接地从游戏中玩家的眼睛里看世界一样。通过使用自定义的Camera 类,可以很容易地改变这个视角使它和游戏中的玩家视角偏移开来,从而使得玩游戏的人看到它们在游戏中的角色和世界。通过使用这个系统可以很容易地创建其他视角,比如自顶向下、侧面滚动及等轴视角。输入PlayerController 具有获得的玩家输入并把它转换为游戏中的动作的功能。这个输入来自 Input 类,尤其是 PlayerInput 类。这个类负责从控制器、键盘或鼠标获得按钮或按键按下的动作,并把它们转换为可用数据。然后当这个数据准备好后, PlayerController获得这个数据进行处理。输入和相机系统及玩家查看游戏的方式紧密关联,因为不同的视角通常需要特定的控制玩家的方法。它们是单独的系统,但是以任何主要方法修改相机视角都将必须修改控制玩家所使用的玩家输入的方式。关于相机系统、Camera 类及创建自定义相机视角、以及玩家控制的更多信息,请参照相机技术指南页面。HUD和UI概述

Heads Up Display (HUD)(平视显示器仪)是指在游戏过程中覆盖在屏幕上的状态及信息。HUD的作用是通知玩家当前的游戏状态,比如分数、生命值、剩余时间等。HUD是非交互性的,这意味着玩家不需要点击HUD上的元素,但在某些HUD和用户界面难以区分的游戏类型中这个会变成灰色区域。用户界面(UI)是指菜单和其他的交互性元素。这些元素一般描画覆盖在屏幕上,和HUD很像,但是在某些情况下,它们可以是游戏世界本身的一部分,这时会渲染到世界的一个表面上。UI的最显著的示例是当游戏启动时显示的主菜单或者当玩家暂停游戏时显示的暂停菜单。但是,其它的UI可以在游戏过程中显示。这些UI可以用于在游戏中或者更复杂的情况中显示角色之间的对话,比如在RTS或RPG中,它们可以作为组成游戏性本身的一部分,从而使得玩家选择武器、装备及构建单元等。HUDHUD 类是在屏幕上显示元素的基类。游戏中的每个玩家有他们自己的HUD实例,将会描画到它们各自的视口中。要使用的HUD的类型或类是通过正在使用的游戏类型指定的。关于HUD 类及创建自定义HUD的更多信息,请访问HUD技术指南页面。HUD 类可以使用两种主要的方法来在屏幕上显示元素: 画布描画或Scaleform GFx视频。Canvas(画布)Canvas 类包含了向屏幕(或者通过使用脚本贴图的其他表面)上描画文本和图像的所需的所有功能。每经过一次描画循环,就会把一个新的 Canvas(画布) 分配给 HUD ,并且可以使用那个画布向屏幕上描画必要的元素。关于 Canvas 类及使用它向屏幕上描画元素的更多信息,请参照画布技术指南页面。Scaleform虚幻引擎3中集成的Scaleform GFx使得可以使用内置在Adobe Flash Professional中的运动图像作为游戏中的HUD和UI。它由一组代表视频、视频播放器及视频中包含的单独对象的类组成。可以在 HUD 中创建视频播放器,从而使得可以完全地控制在游戏中显示的视频。关于Scaleform及它到虚幻引擎3的集成的更多信息,请参照Scaleform页面。Scaleform系统的技术方面的信息在 Scaleform技术指南页面进行了详细描述。 

 

UE3最低及推荐配置规格 
-------------------------------------------------------------------------------- 
• 具有DirectX 9.0c的Windows XP SP3 (仅32位) 
• 2GHz 或者更好的 CPU 
• 2+ GB 内存 
• 支持Shader Model 3.0的显卡,例如 nVidia GeForce 7800 
注意: 目前Windows 7 64位是主流的开发环境。 

针对开发人员的推荐PC硬件规格 
-------------------------------------------------------------------------------- 
• Windows 7 64-位 
• 2.0+ GHz 多核处理器 
• 8 GB 系统内存 
• NVIDIA 8000 系列或更高系列的显卡 
• 大量的硬盘空间 

Epic Games使用的PC硬件规格 
-------------------------------------------------------------------------------- 
Epic的开发人员使用的硬件规格 

• Lenovo ThinkStation D20 (Model 4158-C95) 
• Windows 7 64-位 
• Dual Quad-Core Xeon Nehalem 处理器(3.17GHz) 
• 24 GB DDR3 内存 
• nVidia GeForce GTX 285 (1 GB DDR3) 
• 3x500 GB 硬盘 (1x OS Drive, 2x Data Drives in a RAID 0 configuration) 

Epic的关卡设计人员使用的硬件规格 

• Dell Precision Workstation T7400 
• Windows 7 64-位 
• Dual Quad-Core Xeon Nehalem 处理器(3.0GHz) 
• 16 GB DDR2 内存 
• nVidia GeForce GTX 285 (1 GB DDR3) 
• 3x500 GB 硬盘 (1x OS Drive, 2x Data Drives in a RAID 0 configuration) 

Epic的美工人员使用的硬件规格(和关卡设计人员一样) 

• Dell Precision Workstation T7400 
• Windows 7 64-位 
• Dual Quad-Core Xeon Nehalem 处理器(3.0GHz) 
• 16 GB DDR2 内存 
• nVidia GeForce GTX 285 (1 GB DDR3) 
• 3x500 GB 硬盘 (1x OS Drive, 2x Data Drives in a RAID 0 configuration) 

Epic的测试人员使用的硬件规格 

• 自组装的PC 
• Windows 7 64-位 
• Intel Core2Extreme Quad Core Processor - Q6800 - 2.93 GHz 
• 4 GB DDR2 内存 
• nVidia GeForce 8800 (768 MB GDDR3) 
• 1x320 GB 硬盘 (OS Drive), 1x500 GB Hard Drive (Data Drive) 

Swarm Farm 服务器的硬件规格 

• IBM BladeCenter HS22 [7870AC1] (14 个节点) 
• 一个节点的规格说明: ◦ Dual Quad Core Xeon 处理器(2.53 GHz) 
◦ 24 GB DDR3 内存 
◦ 73GB SAS Drive 

显卡驱动器 
-------------------------------------------------------------------------------- 
对于 NVIDIA 显卡,我们目前推荐使用官方发布的 ForceWare 191.07 驱动器。在这里下载。 

对于 ATI,我们目前推荐使用官方发布的 Catalyst 9.8 驱动器。在这里下载。 

性能注意事项 
-------------------------------------------------------------------------------- 
• VTune 是一款极其有效的工具,它可以发现性能方面的问题,但是只适用于 Intel CPU。 
• 为了帮助正确表现次时代游戏资源墙壁,我们可以进行以下操作 1. 所有机器都是16 GB或更多的内存。 
2. 所有机器都在游戏所在位置有一个 RAID 0(条形)驱动器。 
3. 我们具有夜间可以在全公司每个人机器上运行清理磁盘的流程。由 RaxCo 出品的 Perfect Disk 8.0。 ■ 在远程机器上安装简单的集中式管理,按规定运行、升级等等。 
■ 支持的XP, Vista64. 

通常情况下,I/O 会发生瓶颈现象,获取一个 RAID 0 和大量 RAM 可以帮助解决这个问题。 

编译时间 
-------------------------------------------------------------------------------- 
以下是当我们使用典型的Epic开发人员规格配置及其(8 HT核@2.8GHz,具有24GB内存)以发布模式完全地编译Win32版本的UDKGame所花费的时间。 

单一系统  2分50秒 

使用很多XGE (IncrediBuild)代理的分布式系统  1分37秒 

64 位性能 
-------------------------------------------------------------------------------- 
Epic的开发人员使用Windows 7 64-位系统作为他们的主要开发系统。最大的优点是:它具有大于4GB的内存,大大地加速了迭代时间,您不必在不断地将数据交换到磁盘上。 

对于程序员而言,最明显的优势是: 
• 编译 C++;链接 C++ 
• 编译UnrealScript 
• 运行编辑器,运行游戏的 1-2 副本 

 

推荐和需要的虚幻开发硬件 
-------------------------------------------------------------------------------- 
对于用户计算机的最小需求 
• Windows XP 附带 DirectX 9.0c 
• 支持shader model 3.0的显卡。 

开发者对计算机的最小硬件要求 
• Windows XP 附带 DirectX 9.0c 
• 2GHz 或者更好的 CPU 
• 2+ GB 内存 
• 支持Shader Model 3.0的显卡,例如 nVidia GeForce 7800 

推荐供开发者使用的计算机硬件标准 
• 具有DirectX 11的Windows 7 64位 
• 2.4 GHz 或者更好的双核(或者四核)计算机 
• 2+ GB RAM 
• 支持着色器模型 3.0 的 PCI 增强型显卡,例如 nVidia GeForce 7800 
• 2 个显示器 @ 1600x1200 或者更好 

注意:如果您使用的是网络代码,双核处理器配置将非常有效,这样您可以在同一台计算机上运行服务器和客户端,速度也相当令人满意。 

显卡驱动器 

目前我们推荐使用每个显卡制造商最新出厂的可靠发行版本: 
• 在这里下载 NVIDIA 驱动器。 
• 在这里下载 ATI 驱动器。 

64 位性能 
-------------------------------------------------------------------------------- 
Epic的开发人员使用Windows 7 64-位系统作为他们的主要开发系统。最大的优点是:它具有大于4GB的内存,大大地加速了迭代时间,您不必在不断地将数据交换到磁盘上。 

对于程序员而言,最明显的优势是: 
• 编译 UnrealScript 
• 运行编辑器;运行游戏的 1-2 副本 

 

Epic Games设计流程 
-------------------------------------------------------------------------------- 
• Epic Games设计流程 ◦ 从概念到完成 
◦ 从美术概念开始 
◦ 游戏性概念 
◦ 网格物体创建 
◦ 材质创建 
◦ 构建关卡原型 
◦ 脚本 
◦ 网格物体化关卡 
◦ 照亮关卡 
◦ 动态载入 
◦ 性能优化 
◦ 附录 

从概念到完成 
-------------------------------------------------------------------------------- 
本文档的目的是让大家对Epic Games公司内部的关卡创建流程有一个深入的了解。 

从美术概念开始 
-------------------------------------------------------------------------------- 
一旦项目的美术指导和设计指导已经认可了环境的概念观,那么这个环境概念观将会传给关卡设计人员和环境美术工作人员进行设计。 

细分概念 

关卡设计人员将会开始识别地图中的简单构造,比如建筑物将要在哪里放置建筑物以及可以使用哪些大致的图形来构建关卡的原型。 

确定关键构造 

美工人员及其指导将会确定主要的设置块,它们做为游戏中特定区域的标志性物体。 这些工作一般都先放在一边直到项目的后期才完成,因为大部分的网络都是模块化集合,可以在90%的世界中使用它。 

获得模块化的网格物体集合 

关卡设计人员和环境美工人员共同定义一组模块化网格物体块,这些网格物体由美工人员构建。 它们包括类似于装饰块、门、窗、墙、角落及这些网格物体的变种等的物体。 

游戏性概念 
-------------------------------------------------------------------------------- 
在“概念”方面,我们认为美术概念和游戏性概念上有很大的不同,然而它们都有很重要的作用。 游戏性概念在初期阶段涉及到了关卡设计人员和程序员的很多交互。 美术概念涉及到了关卡设计人员和美工人员的很多交互,并且通常在游戏性原型没有完成之前美术概念甚至都不会开始。 

设计人员/程序员间的交互 

通过结合使用Unreal Kismet和引擎中现有的行为,关卡设计人员和程序员一同来勾画出游戏性观念的原型。 一般这个工作的完成是概念层次上的验证,它仅包含几何体和精确测试相关系统所需要的资源。 在项目过程中,关卡设计人员将会需要当前不存在的行为,这些行为将会根据时间的允许程度和游戏项目的需要情况来进行优先次序排列。 

Kismet中制作游戏性原型 

这个行为或者添加到Kismet中或者通过游戏代码提供。 在很多情况下,关卡设计人员将会在Kismet中创建需要的行为,然后程序员可以评估这些行为并尽可能地提高效率。 

网格物体创建 
-------------------------------------------------------------------------------- 
我们的美工人员可以使用各种工具来创建人物和环境。 

高多边形网格物体使用的工具 

早期,网格物体的创建是在3D Studio Max中完成的,然后很多工作将会转换到Z-Brush中进行建模和细节设计。 

低多边形网格物体 

低多边形网格物体建模大多数都是完全地在3D Studio Max中进行的。美工人员创建一个中等级别分辨率的网格物体,然后把它移动到Z-Brush中进行细节处理,同时它也用于提炼低多边形网格物体。 

展开UV贴图 

当完成低多边形网格物体后,使用3D Studio Max的UVMap 和 UnwrapUVW修改器来创建网格物体的UV贴图。 3D Studio Max 8具有比3D Studio Max 7更多的高级功能。 

从网格物体创建法线贴图 

美工人员可以使用很多种不同的方法来从网格物体上创建法线贴图。 较老的方法是使用SHTools一同处理高多边形和低多边形网格物体。 在这种方法中,网格物体通常会被分解,从而可以避免那些分离的但又离得非常近的物体产生随机误差,比如手指、肩垫、以及嘴部的部分比如牙齿和舌头。 当然,较新版本的3D Studio Max (8及以上版本) 和 Maya也有处理网格物体的能力,并且很多美工人员已经转换使用它们了。 

法线贴图通常总是会和一个次要的凸凹贴图相结合,比如纺织物图案。 SHTools和较新版本的3D Studio Max都支持这个功能。当然,类似于铆钉、螺栓、划痕及花边等的较小细节通常会从美术人员制作的预处理的法线贴图库中被合成到法线贴图中。 这将会使得建模的过程变得更加快,因为只有非常少的细节需要在多边形上建模。 

材质创建 
-------------------------------------------------------------------------------- 

漫反射和高光创建 

一旦创建了UV贴图,并处理了法线贴图,贴图美工人员开始着手创建物体或人物的贴图。 这通过UV贴图的布局来完成。在很多情况下,高光贴图是全色贴图,允许物体或角色的不同部分呈现出不同的材质,比如肉、铜、钢铁等。 

在UnrealEd中创建材质 

一旦物体或角色的主要贴图接近完成阶段,将会把贴图导入到引擎中,然后为那个物体创建一个材质。 在导入贴图的过程中使用DeferCompression标志可以节约很多时间,因为在包被保存之前,它将延迟把贴图压缩为DXT1 或 DXT5格式,因此可以在实验及调整最终贴图的过程中进行快速地导入。 创建一个新的材质,把贴图放到它上作为贴图样本,并且将其连接到适当的着色器节点(漫反射、高光、法线)上。 

构建关卡原型 
-------------------------------------------------------------------------------- 
根据概念构建粗略的BSP模型 

关卡设计人员使用环境的概念美术来决定关卡所需要的基本图形和布局来测试环境并创建游戏性原型。 在这个阶段,关卡的任何几何体上都只会很少或不应用材质,并只应用很少的光源。 几乎所有的构造都是BSP图元,这些图元稍后在构建通道中将会被静态网格物体或地形所替换。 在最终的关卡中将会有很少的图元,一般最终存在的图元主要是用于地面、顶棚或简单墙壁的图元。 

粗略寻路BSP关卡 

最初的寻路是非常简单的,主要适用于保证所有的玩家和AI角色都可以导航环境。 当设计出初始路径后,则开始游戏性测试。 

在BSP关卡中进行游戏性测试 

这时,已经可以在BSP关卡中进行游戏性测试了。 最初仅有关卡设计人员及关卡设计人员指导运行整个关卡,然后从那里进展到由设计团队的其他成员来从完成的各种状态来测试关卡。 如果关卡设计的是多玩家地图,在我们的测试实验室中有预定的游戏性会话,在游戏播放会话结束后将会给出评论。 

游戏性粗略设计 

这是决定某些游戏性元素是否适合这个关卡,一旦脚本是适当的,便可以调整难度和交战及拾取物的位置。 关卡设计人员在这时将会仔细检查整个关卡来放置游戏性物体比如弹药拾取物,同时也会进一步调整路径放置并开始为关卡设计基本的脚本。 

脚本 
-------------------------------------------------------------------------------- 
Kismet介绍 

Epic公司使用Unreal Kismet来完成几乎所有关卡和过场动画的游戏行为。 关卡设计人员负责所有脚本的适当放置,并负责报告脚本元素相关的问题。 在这时,关卡也会要求使用自定义的Kismet动作来执行关卡或游戏的特定任务。 

使用Matinee书写随着时间变化的事件脚本 

在我们的游戏中使用Matinee主要用于执行两个任务。 第一个是书写随着时间变化的事件脚本。 这可以像打开门那么简单,或像随着时间发生的可以改变物体上的材质并且可以导致其他Kismet事件被触发的一系列爆炸那么复杂。 在战争机器中使用的大多数Matinee都是用于执行较简单的动作,比如门。 

向关卡中添加特效 

关卡设计人员完成大多数的放置环境粒子特效(比如烟雾和火)以及稍后要通过Kismet触发的特效(比如飘落的灰尘)的工作。 大多数的特效都是通过Kismet来驱动的,这允许当不再需要它们时可以关闭它们,从而提升了性能。 

网格物体化关卡 
-------------------------------------------------------------------------------- 
预留位置 

关卡设计人员在关卡原型创建阶段通常都会使用预留位置。 设计人员经常使用有美术工作人员提供的大小和形状和最终网格物体近似的物体。 这个物体命名为和最终网格物体相同的名称,并且放在相同的包中。 这允许美术工作人员导入最终的网格物体及材质,并使得它们自动地传递给任何使用其相应预留位置的地方。 

重新使用现有的网格物体 

虚幻引擎3允许对放置在关卡中的物体进行非统一缩放。 我们广泛地使用这个功能来装配这个关卡,通过以多种方式使用一个网格物体,从而降低贴图和网格物体数据的内存消耗量。 这个应用的一个实例是使用一各建筑物上的门框来构建窗框,或者使用一个碎石堆构建一个远处的山堆。 

网格物体应用的优化 

其中一个对网格物体和内存消耗进行优化的比较简单的方法是使用通用浏览器的Primitive Stats(图元统计)部分来辨别那些不经常使用并且可以被其它已经一个用的网格物体替换的网格物体。 这个应用的一个实例是替换一个和其它圆柱体有很少不同但仅在环境中使用几次的柱子。 尽管基于每个物体来说它不会节约很多内存或性能,但是那个和其它网格物体结合一同删除时,产生的性能提高则很大。 

照亮关卡 
-------------------------------------------------------------------------------- 
静态光源 

静态光源用于照亮独立于动态场景元素(比如角色、物理物体或移动物体)的场景。 将会使用很多静态光源来照亮环境。 按住L键并点击表面,将会在这里添加一个光源。 从这些光源产生的引擎是静态的,这些阴影或者被烘焙到光照贴图或网格物体的顶点光照中。 这使光源的默认风格。 

动态光源 

有两种类型的光源可以影响动态物体。 一个是动态光源,它可以通过右击一个光源并从"Set what this light affects(设置这个光源影响的物体)"的列表下选择" affecting only dynamic objects (仅影响动态物体)"来实现。 这些动态光源将会仅影响设置了动态光照通道的物体,它默认情况下将包括人物、movers(类似于门的插值actors)和物理物体。 这些光源默认情况下在场景中投射昂贵的动态阴影,并且应该节约地使用它,因为每个影响一个物体的动态光源都在额外地渲染一遍那个物体。 设置光源为`affecting both dynamic and static objects(同时影响动态和静态物体)'将会导致光源影响世界中的任何东西。 这是我们场景中主要的阴影透射光源,应该非常小心地使用它,因为这是最昂贵的一种光源类型。 默认情况下设置为这种类型的唯一光源是定向光源类型,我们使用它来模拟太阳光。 

Skylights(天空光源) 

Skylights用于模仿半球体到整个世界的漫反射光照。 这用于为世界提供环境光照。 使用这些光源是非常便宜的。 

反射光照 

同时按下Shift和L键并左击,这将将会添加一个颜色为您点击的像素的颜色的光源,具有较低的密度和半径,用于模仿反射光照。 可以广泛地应用这个光照来提供更加真实的光照效果。 

调制阴影 

默认情况下,所有的投射阴影的光源都会计算它们是否被遮挡,以便在场景中产生精确的阴影。 设置这个光源使用调制阴影有利于使用阴影投射物轮廓的投射贴图来调制场景。 这是在世界中产生阴影时具有较高性能的方法,尽管它不像使用深度缓存阴影方法那样精确。 这种方法也允许我们控制阴影的颜色和密度。 

动态载入 
-------------------------------------------------------------------------------- 
尚未完成。 

切割关卡为动态载入部分 

尚未完成。 

使用体积进行动态载入 

尚未完成。 

内存统计 

尚未完成。 

性能优化 
-------------------------------------------------------------------------------- 
光照优化 

在虚幻引擎3中,光照是一个最昂贵的东西,所以小心地使用它们是非常地重要的。 有很多工具可以优化光源,并且打算多数工具已经在UDN中进行了详细的介绍。LevelOptimization(关卡优化)中也有几个主题是关于光照优化的。 

内存优化 

在UnrealEd的通用浏览器中,有一个标签图元统计数据。 这个工具显示了当前关卡使用的所有网格物体所占用内存量。 我们监视和那个网格物体类似或一样的可以替换它的网格物体,来节约内存消耗。 

这里是一些游戏中用于分析当前场景的命令: 

Stat memory -显示每种类型的资源所使用的内存量的列表。 

Stat d3dscene -显示了Direct3D的统计数据,说明了渲染了多少个三角形、以及渲染那一帧中各个部分所花费的时间(以毫秒为单位)。 

附录 
-------------------------------------------------------------------------------- 
附录1: 导入资源到引擎中 

大多数情况下,负责创建内容的美术工作人员也负责把这些资源导入到引擎中。 所有的静态网格物体都是通过使用3D Studio Max的Ascii Scene Export (ASE)格式导入的。 通过使用一个命名机制把它们导入到内容包中,以便稍后我们可以定位它。 贴图可以按照.TGA 或.BMP格式进行导入。 Targa格式支持24或32位贴图,然而我们仅支持.BMP文件的24-位贴图(没有alpha通道)。 我们也会在我们Perforce仓库的`artsource'仓库(depot)下也存储了所有的源资源。 

附录2: 分配材质给资源 

在导入一个.ase文件时,导入器将会检查应用到物体上的材质是否和当前加载到编辑器中的材质的名称相匹配。 如果发现它们匹配,它将会自动地分配那个材质。 

在3D Studio Max中,这个过程通过命名那个材质来简单地设置。 

如果您想为一个物体的所有实例都重新分配材质(比如改变门上的材质),那么请在通用浏览器中双击那个静态网格物体,打开LODInfo文本域,打开[0],然后出现材质列表。 改变材质是很简单的,只要选择您想改变的材质元素,在通用浏览器中找到新的材质,选择他,然后点击材质列表上的绿色箭头即可。 

改变放置在关卡中的网格物体的材质将不会将该改变传递给那个网格物体的其它副本,所以这可以用于在不需要加载额外网格物体到内存中的情况下来创建那个网格物体的变种。 

选择您想改变的放置在关卡中的网格物体。 比如,有两个并排放置的门,但是其中一个需要具有不同的材质。 您可以选择其中一个门,按下F4键来打开StaticMeshActor的属性窗口, 打开StaticMeshActor 项,然后打开StaticMeshComponent。 向下滚动到Rendering,然后点击Materials项。 它或许是空的,所以点击绿色的+图标。 这将会添加一个和应用到那个网格物体上的第一个材质相对应的元素。 如果您有两个材质要应用到门上,比如一个材质用于门的基础部分,一个用于窗子部分,并且您仅想改变‘第二个’材质,那么您可以像Material数组中添加两个元素,改变第二个,而不改变第一个。 

现在要想改变应用到网格物体上的材质,请使用向前面介绍的一样的步骤来进行。 在浏览器中找到新的材质,然后在属性窗口中选择那个材质元素,并点击绿色的箭头来输入它。 现在其中一个门的颜色应该和另一个是不同的了,尽管它们都使用相同的网格物体。 

附录3: 物理资源 

关于导入具有简化碰撞的静态网格物体的参照信息页面是: 碰撞参考指南。 任何具有简化碰撞的静态网格物体都可以作为Rigid Body[刚体](物理物体)添加到世界中。 

已经具有了使用PhAT创建的物理设置的骨架网格物体, 可以作为Physics Assets(物理资源)放置到世界中,并且它们可以和世界进行物理化地交互。 

附录4: 物理材质 

物理材质是指PhysX系统决定的当两个物体发生碰撞时它们的行为。 关于物理材质的参考信息以及它们是如何工作的信息,请参照页面: PhysicalMaterialSystem 。 

附录5: 烘焙控制台游戏平台上播放的游戏 

尚未完成。 

附录6: Source Control集成 

我们已经把source control (SCC)集成到了通用浏览器中。 这允许我们在编辑器中迁入和迁出内容包(但不是关卡)。 需要注意的是: 如果包不是最新的版本,它是不能被迁出的。 那时,必须关闭编辑器并把内容包同步到最新的版本才能进行迁出操作。 

关卡必须在编辑器的外面进行迁入迁出。 

Epic使用[[]作为内部的源码控制系统。 

附录7: 内容管理 

再次说明,Epic使用[[]来管理游戏内容。美工人员通常会迁出源包,把它们有的内容添加到那个包中,然后保存包。所有的美工人员几乎每天都可以访问和更新内容,所以他们总是可以拥有最新的内容。如果一个包被迁出了,那么您可以请求迁入它们 。 

我们的包通常是150mb,然后我们将会继续,为给定的环境集合制作新的包。 

比如,我们将建立一个像这样的环境包结构: 

对于 COG_City: 
• COG_City_Doors 
• COG_City_Doors02 
• COG_City_Doors03 
• COG_City_Floors 
• COG_City_Floors02 
• COG_City_Floors03 

请参照资源通道页面获得关于命名惯例和包组织结构的更多信息。 

附录8: 编译 

目前,每天都会通过编译脚本来搜索到最新版本的内容和代码,编译引擎和所有的游戏工程,为其添加唯一的标签,把所有的内容并把编译好的二进制文件迁入,然后在书写一个内部的通知邮件,告诉项目团队已经有一个新的版本。 所有的美工人员和设计人员在他们的系统上都有批处理文件,这允许它们同步到最近的完全编译版本。 这个有助于避免工作人员对正在使用哪个版本进行工作产生疑惑。。 

 

通用开发主题
目录布局概述 

虚幻引擎 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) 文件中摘录的片段 
点这里:配置文件实例 

 

配置文件 ◦ 概述 
-------------------------------------------------------------------------------- 
虚幻引擎 3 依赖于配置文件来指示它将如何运作及初始化。配置是由成对的键值来决定的,他们咱找部分排列。一个键可以和一个或多个值相关联。 

一些变量可以直接地通过 native 代码进行访问,而其它的变量可以很容地追溯到 UnrealScript 代码中。无论何时当在一个对象上调用 SaveConfig() 或 StaticSaveConfig() 函数时,引擎把所有的变量保存到指定的配置文件中(除非已经定义类可以把它的设置保存到可替换的配置文件中)。 

Native 代码所使用的配置文件中的变量一般有一个简单的部分标题。比如,出现在 DefaultEngnine.ini 配置文件的第一部分简单地命名为 [URL] 。然而,UnrealScript 代码使用的任何变量通常都有完全的符合要求的类名称,它遵循命名格式 [(package).(classname)] 。例如,DefaultEngine.ini 中的 [Engine.Engine] 项指向存储在 Engine 软件包内部的 Engine 类。对于这个规则而言有一些例外情况,例如 [WinDrv.WindowsClient] 项。 

同时,请记住 UnrealScript 代码编辑器 (UCC) 使用配置文件来决定哪个包存在。和游戏引擎不一样的是,UCC 仅使用设置信息的一个较小的子集(主要是 DefaultEngine.ini 配置文件中的 [Editor.EditorEngine] 项)来加载包。 

第一次运行引擎,可能会缺少某些配置文件。它将会加载默认的配置文件,然后把它们转化为使用当前项目名称的配置文件。比如,对于 UDKGame 项目来说,DefaultEditor.ini 会转换为 UDKEditor.ini。当生成真正的配置文件后,将不再使用默认的文件。然而,您将会发现默认文件作为参考或者允许终端用户将他们的配置文件重新设置为默认设置是非常有用的。 

这些默认文件构成了引擎项目中的 Base 文件中的核心配置。这可以在默认配置文件的 [Configuration] 部分看到。 

引擎配置文件用来作为项目和变量的默认值。用户输入配置可以用作为函数的按键绑定,比如可执行命令。 

使用配置文件 
-------------------------------------------------------------------------------- 
文件格式 

部分和键-值对 
一般的配置文件由成块的键-值对组成,如下所示: 

[Section] 
Key=Value 

特殊字符 
• + - 如果该属性还不存在则添加一行(从前一个 .ini 文件或者同一个 .ini 文件的前面的部分)。 
• - - 删除一行(但是它必须是精确匹配)。 
• . - 添加一个新属性。 
• ! - 删除一个属性;但是不必是精确匹配,仅需要匹配属性的名称即可。 

注意 : . 和 + 类似的,只是 . 可以添加一个重复的行。这对绑定是有用的(正如在 DefaultInput.ini 中所看到的),比如,其中最底部的绑定生效,所以如果您添加了类似于以下的东西: 

[Engine.PlayerInput] 
Bindings=(Name="Q",Command="Foo") 
.Bindings=(Name="Q",Command="Bar") 
.Bindings=(Name="Q",Command="Foo") 

它将可以正确地工作。但是如果使用 + 则不能添加最后一行,且您的绑定将是错误的。由于配置文件绑定,将会发生上面的应用形式。 

注释 
大多数人似乎都会觉得配置文件中的分号表示注释,但它们不是。这种行为是故意设计的。从技术上讲,任何字符都可以代表任何一种不同的键值对。通常,会在新的一行的行首放置一个分号。它的功能像是注释,但事实上它不是。 

; This is a Comment 
; So is this! 

创建配置文件 
当创建一个基于另一个配置的新配置文件时,您需要包含 [Configuration] 项和 BasedOn 项的键值对。 
比如,如果您的配置文件将要基于基础配置文件 Engine.ini ,您需要在您文件的顶部放置以下信息: 

[Configuration] 
BasedOn=..\Engine\Config\BaseEngine.ini 

要想向从基础配置文件继承而来的特定部分的现有键值对添加添加附加信息,请使用 + 专用字符,如下所示: 

[Core.System] 
+Extensions=mymap 

要想从基础配置文件继承而来的特定部分中删除一个的现有键值对,请使用 - 专用字符,如下所示: 

[Core.System] 
-Extensions=umap 

如果您的配置文件没有基于任何东西,那么您将不需要指定 + 或 - 。 

保存对象配置 
虚幻引擎 3 可以把一个对象的配置文件保存到任何所需的配置文件中。虚幻脚本/引擎配置文件的语法对于创建那个入口的对象来说是非常简单的也是很容易追踪的。 

声明配置文件名称 
类声明包含了新的配置文件的文件名。比如,以下实例类声明的变量将会保存到 'User' 配置文件中: 

TestConfig.uc 

class TestConfig extends Actor 
   config(User); 

var config int X; 

function postbeginplay() 
{ 
   X=5; 
   SaveConfig(); 
} 

在运行时生成 TestConfig 时,它将会设置 X 的值并保存它的配置信息。UDKUser.ini 文件(假设您的游戏是 UDKGame)将会更新以下信息: 

[UDKGame.TestConfig] 
X=5 

下次在运行时生成 TestConfig 时,X 的默认值将会是 5。即使您要从 TestConfig 中删除 PostBeginPlay() 函数,X 的值将会设置为等于 5,前提是在配置文件中存在 5 这个值。 

如果您声明了一个新的配置文件名称,那么创建这个文件,以您的项目名称为前缀(UDK 代表 UDKGame,Example 代表 ExampleGame)。下面的示例会显示一个可以声明新的配置文件并被保存在 UDKUDN.ini 中(对于 UDKGame)的对象: 

class TestConfig extends Actor 
   config(UDN); 

变量配置和继承 

-------------------------------------------------------------------------------- 
配置变量会被其子类继承。但是,如果在 SaveConfig() 的子类上调用 TestConfig ,X 将会保存子类的值。以下的实例扩展了上面的 TestConfig 类: 

TestConfigChild.uc 

class TestConfigChild extends TestConfig; 

function postbeginplay() 
{ 
   X=15; 
   SaveConfig(); 
} 

在运行时生成 TestConfigChild 的时候,将这个对象的配置保存为: 

[UDN.TestConfigChild] 
X=15 

动态 vs 静态配置 
程序员可以使用两种不同的方法来把对象的配置信息保存到配置文件中: 动态和静态。基本上,这意味着如果您在对象实例上调用 SaveConfig() ,那么将会保存运行时变量。如果在一个类变量上调用 StaticSaveConfig() ,它会将对象的 默认 值写到配置文件中。上面的所有实例都是保存了运行时对象的配置信息。它将会允许您恢复最终用户配置,或者覆盖在配置文件的 Unrealscript 中定义的这个类的默认属性。 
以下片段保存了 X 的默认值: 

class'TestConfigChild'.default.X = 30; 
class'TestConfigChild'.static.StaticSaveConfig(); 

X 的默认值被写入到了配置文件。 

[UDN.TestConfigChild] 
X=30 

可用的配置文件 
-------------------------------------------------------------------------------- 
配置文件位于任何给定项目的 Config 目录中(例如,%UDK_ROOT%\UDKGame\Config)。 
这里是使用虚幻引擎的特定游戏可用的配置文件列表: 

• DefaultCharInfo - 虚幻竞技场 3 使用的默认角色。 
• DefaultCompat - 在表格中的默认功能。 
• DefaultEditor - 虚幻编辑器的默认配置。 
• DefaultEditorKeybindings - 在虚幻编辑器中使用的默认按键绑定。 
• DefaultEditorUDK - 在虚幻编辑器中使用的默认 UDK 特定设置。 
• DefaultEditorUserSettings - 虚幻编辑器的默认用户设置。 
• DefaultEngine - 虚幻引擎 3 的默认配置。 
• DefaultEngineUDK - 在虚幻引擎 3 中使用的默认 UDK 特定设置。 
• DefaultGame - 在虚幻引擎 3 中用于游戏运行的默认游戏配置。 
• DefaultGameUDK - 在虚幻引擎 3 中用于游戏运行的默认 UDK 特定游戏设置。 
• DefaultInput - 在虚幻引擎 3 中可以用于游戏运行的默认按键绑定。 
• DefaultInputDefaults - 在使用 Coalesced.ini 的时候需要它才能重新设置默认值。 
• DefaultLightmass - 供 Lightmass 使用的默认 Lightmass 设置。 
• DefaultUI - 在虚幻引擎 3 中用于游戏运行的默认用户界面配置。 
• DefaultWeapon - 供虚幻竞技场 3 使用的默认武器设置。 
• DefaultWeaponDefaults - 在使用 Coalesced.ini 的时候需要它才能重新设置默认值。 

 

虚幻引擎3命令行参数 ◦ 概述 
-------------------------------------------------------------------------------- 
命令行参数是一连串的关键字字符串,当运行可执行文件时可以通过命令行或者可执行文件的快捷方式将其传入。它们的目的是自定义引擎运行的方式,以便符合开发人员或用户的需要。这可以像使得运行编辑器而不运行游戏那么简单;或它也可以更加复杂,比如使用某个特定的地图在指定的分辨率和帧频率下启动游戏,同时把每帧转存到一个单独的图像文件中。 

模式 
-------------------------------------------------------------------------------- 
这些参数强制使得主要的可执行命令以某种模式而不是正常的游戏模式运行,或者强制执行众多命令行开关中的一个,它们是一些执行和开发人员的相关的常见任务的较小的专用的应用程序。它们紧跟在可执行文件名称的后面比那可以立即地被传入到可执行命令中,不需要额外的语法。这些命令是大小写不敏感的。 

示例: 

UDK.exe editor 

• Editor: 启动编辑器 
• Server: 将游戏作为服务器运行 

地图/服务器/编辑器的URL 参数 
-------------------------------------------------------------------------------- 
URLs可以传入到可执行命令中来强制游戏在启动时加载特定的地图。这些参数也可以和 SERVER或EDITOR模式结合使用来使用特定的地图运行编辑器或服务器。传入URL参数是可选的,但是该参数必须紧跟在可执行命令名称的后面或者如果存在任何模式开关则紧跟在该模式开关的后面。 

URL由两部分组成: 地图名称或服务器IP地址以及一系列的可选的附加参数。地图名称可以是使放在Maps目录中的任何地图的名称。这里是否包含文件扩展名(也就是.udk 或.ut3)是可选的。要想加载在Maps目录中不能找到的地图,那么可以使用来自于Maps目录的绝对路径或相对路径。在这种情况下,则强制包含文件扩展名。服务器IP地址是一个标准的4-部分IP地址,即由0到255之间的4个值组成,这些数值之间用句号分隔。其它的选项通过把它们附加到地图名称或服务器IP地址的后面来指定。每个选项使用‘?’作为前缀。 

示例: 

UDK.exe MyMap.udk?game=MyPackage.MyGame?class=MyPackage.MyPawn 
UDK.exe server MyMap.udk?listen=true?bIsLanMatch=true 
UDK.exe 127.0.0.1 

一般选项 

• CHARACTER: 要使用的玩家角色。 
• CLASS: 告诉引擎要使用的玩家类(覆盖默认值)。 
• GAME: 告诉引擎要使用的GameInfo 类(覆盖默认值)。 
• NAME: 要使用的玩家名称。 
• PASSWORD: 进入一个服务器所需要的密码。 
• TEAM: 玩家所在的团队 (或比较喜欢的团队)。 

服务器选项 

• bHasVoice: 指出可以使用语音支持。 
• bIsLanMatch: 设置多玩家游戏是否在本地网络上(比如 bIsLanMatch=0 )。 
• bRequiresPassword: 设置在线游戏是否需要密码(比如 bRequiresPassword=0 )。 
• DEDICATED: 指定服务器作为专用服务器。 
• GAMEPASSWORD: 传入的服务器密码。 
• LISTEN: 指定服务器作为监听服务器 (比如 Listen=...). 
• SERVERDESCRIPTION: 为服务器显示的描述信息。 

针对UTGame的特定选项 

• DIFFICULTY: 设置游戏中机器人的技能级别。 
• MUTATOR: 指定要使用的mutator (设置器)。 
• NUMPLAY: 要使用的玩家的数量。(玩家的数量是机器人的数量加1的值)。 
• RESTART: 重新启动地图。 
• SPECTATORONLY: 以观看模式启动游戏。 

Switches(开关) 
-------------------------------------------------------------------------------- 
根据特定关键字的及它的应用目的的不同,这些参数可以传入到游戏或编辑器中。有些参数是一般的开关(也就是-UNATTENDED),而其它的参数是设置开关,它们是“键=值”对(也就是-LOG=MyLog.txt)。这些命令是大小写不敏感的。传入普通的开关的语法是在每个参数前面加上一个减号(‘-’),然后后面紧跟上那个参数。设置开关除了服务器开关外,其它的不需要以 ‘-‘开头。 

示例: 

UDK.exe –silent LOG=MyLog.txt 

开发人员 

• ABSLOG: 和LOG=类似,但是没有文件名长度检查。 
• ALLUSERS: 当指定了INSATLLGE时,为所有用户添加游戏。 
• AUTO: 假设对所有问题的回答都为”是“(比如在编译过程中)。 
• AUTOCHECKOUTPACKAGES: 自动检查需要保存的包。 
• AUTODEBUG: 执行自动调试。附加UnrealScript调试器并在遇到的第一个字节代码出现则中断。 
• AutomatedMapBuild: 执行针对特定地图的自动构建。自动地图构建。 
• BIASCOMPRESSIONFORSIZE: 覆盖关于大小的压缩设置。 
• BUILDMACHINE: 设置为编译机器。用于决定是否启用调试输出。 
• BULKIMPORTINGSOUNDS: 当批量地调出声音时使用它(针对通用浏览器)。 
• CHECK_NATIVE_CLASS_SIZES: 启用native类的大小检查。注意: 游戏机平台上的Native类会导致native类的大小检查失败,尽管假设它们是正确的。 
• CODERMODE: 启用Coder(编码)模式。 
• COMPATSCALE: 手动地设置兼容性设置来覆盖PCCompat工具设置。 
• CONFORMDIR: 当统一包时要使用的目录。 
• COOKFORDEMO: 指定其为演示作品的烘焙包。 
• COOKPACKAGES: 指定烘焙包的标签。 
• CRASHREPORTS: 总是报告引擎的崩溃情况。 
• D3DDEBUG: 使用 d3d调试设备。 
• DEBUG: 告诉引擎发送调试信息到调试器,或者在脚本编译过程中编译调试包。 
• DEBUGFACEFX: 跟踪FaceFX动画。 
• DEVCON: 禁用开发人员的可靠连接(使用未加密的插槽) 
• DUMPFILEIOSTATS: 跟踪并记录文件IO的统计数据。 
• DUMPUDKSURVEY: 简单地转存UDK硬件调查。不上传。 
• FATALSCRIPTWARNINGS: 把调试过程中的脚本警告当成致命错误。 
• FINAL_RELEASE: 为脚本编译设置FINAL_RELEASE宏。 
• FIXEDSEED: 使用固定的值0初始化随机数生成器。 
• FIXUPTANGENTS: 自动修复在分布中遗留的切线。 
• FORCELOGFLUSH: 强制在每行后进行日志刷新。 
• FORCEPVRTC: 强制对移动平台进行pvrtc贴图压缩。 
• FORCESOUNDRECOOK: 强制完全地重新烘焙所有声效。 
• GENERICBROWSER: 使用通用浏览器。 
• INCLUDEUTGAMECONTENT: 设置要加载的UTGameContent包。 
• INSTALLED: 用于开发,就像安装了游戏那样运行游戏。 
• INSTALLFW / UNINSTALLFW: 设置是否要执行防火墙集成的处理。 
• INSTALLGE: 把游戏添加到游戏浏览器中。 
• LANGUAGEFORCOOKING: 设置烘焙所使用的语言。 
• LIGHTMASSDEBUG: 使用–debug手动地启动lightmass,并允许lightmass执行多次。 
• LIGHTMASSSTATS: 强制所有的lightmass代理向日志中报告详细的统计数据。 
• LOG: 当用作为开关(-log)时,将打开一个独立的窗口实时地显示日志的内容。当用作为设置(LOG=filename.log)时,将告诉引擎使用紧跟在后面的字符串作为日志文件名。 
• LOGTIMES: 在日志输出中打印时间。(默认情况下,这和设置*Engine.ini文件的[LogFiles]部分中的LogTimes=True的效果一致。) 
• NOCONFORM: 告诉引擎不要统一包,因为它们已经编译了。 
• NOCONTENTBROWSER: 禁用内容浏览器。 
• NOINNEREXCEPTION: 禁用native C++中的异常处理程序。 
• NOLOADSTARTUPPACKAGES: 强制不加载启动包。如果启动包中的对象必须从编辑器中删除,那么您可以使用这项。 
• NOLOGTIMES: 在日志输出中不打印时间。 (默认情况下,这和设置*Engine.ini文件的[LogFiles]部分中的LogTimes=False的效果一致。) 
• NOMODAUTOLOAD: 不要自动地加载mod类。 
• NOPAUSE: 在退出时自动地关闭日志窗口。 
• NOPAUSEONSUCCESS: 只要没有错误存在,那么便在退出时自动地关闭日志窗口。 
• NOREMOTECONTROL: 禁用远程控制。用于专用服务器。 
• NORC: 禁用远程控制。用于专用服务器。 
• NOVERIFYGC: 不验证垃圾编译器的假定条件。 
• NOWRITE: 禁止把结果输出到日志中。 
• OUTPUTHEADERS: 强制批量导出脚本中头文件的输出。 
• RC: 强制使远程控制可见。 
• REMOTECONTROL: 强制使远程控制可见。 
• REPAIR: 自动修复游戏资源数据库的任何问题。 
• SCRIPTSTACKONWARNINGS: 在调试过程中显示警告的脚本栈。 
• SEEKFREELOADING: 仅使用烘焙的数据。 
• SEEKFREEPACKAGEMAP: 使用免搜索(烘焙)版本覆盖包地图。 
• SEEKFREELOADINGPCCONSOLE: 仅为PC控制台模式使用烘焙的数据。 
• SEEKFREELOADINGSERVER: 仅为服务器使用烘焙的数据。 
• SETTHREADNAMES: (仅Xbox) 强制设置线程名称。这可能会搞糟XDK COM API,这也是为什么在需要的情况下必须现实地设置执行它的原因。 
• SHOWMISSINGLOC: 如果丢失了本地化文本则返回错误的字符串,而不是英文文本。 
• SILENT: 禁用输出和反馈。 
• SKIPDOWNLOADER: 对于针对Android系统的开发目的,跳过Google Play扩展下载器并使用手动同步的数据。 
• TRACEANIMUSAGE: 跟踪动画的应用。 
• TREATLOADWARNINGSASERRORS: 强制加载警告作为错误处理。 
• UNATTENDED: 设置为无人管理的状态。禁用需要从用户获得反馈的任何东西。 
• UNINSTALLGE: 从游戏浏览器中删除游戏。 
• USEUNPUBLISHED: 强制使用在Unpublished文件夹中的包(废弃?)。 
• UTRACE: 启用脚本跟踪功能。 
• VADEBUG: 使用Visual Studio调试器界面。 
• VERBOSE: 设置脚本编译器使用详细的输出。 
• VERIFYGC: 强制验证垃圾编译器的假设条件。 
• WAITFORDEBUGSERVER: 强制游戏等到UnrealConsole连接为止。 
• WARNINGSASERRORS: 把警告当做错误处理。 
• WXWINDOWS: 必须传入这个参数来启用属性窗口和远程控制。 

渲染 

• ConsolePosX: 控制台输出窗口的水平位置。 
• ConsolePosY: 控制台输出窗口的垂直位置。 
• PosX: 设置游戏窗口在屏幕上的水平位置。 
• PosY: 设置游戏窗口在屏幕上的垂直位置。 
• WindowPosX: 设置游戏窗口在屏幕上的水平位置。 
• WindowPosY: 设置游戏窗口在屏幕上的垂直位置。 
• ResX: 设置游戏窗口的水平分辨率。 
• ResY: 设置游戏窗口的垂直分辨率。 
• VSync: 通过命令行激活VSYNC(这会防止产生图像撕裂,但会造成fps消耗并导致输入延迟)。 
• NoVSync: 通过命令行禁用VSYNC。 
• BENCHMARK: 为了不跳任何帧来处理每一帧,则以固定步长来运行游戏。当把这个参数和DUMPMOVIE选项结合使用时是非常有用的。 
• DUMPMOVIE: 把渲染的帧使用当前的分辨率转存到文件中。 
• DUMPMOVIE_TILEDSHOT: 使用指定的分辨率乘数把渲染的帧转存到文件中。使用为高分辨率帧使用平铺截图(比如 DUMPMOVIE_TILEDSHOT=4)。 
• EXEC: 执行指定的exec文件。 
• FORCESHADERMODEL2: 即使在shader model 3硬件上也强制使用shader model 2来渲染路径。 
• FORCESHADERMODEL3: 强制使用shader model 3。 
• FPS: 设置性能基准测试中每秒钟的帧数。 
• FULLSCREEN: 设置游戏以全屏模式运行。 
• PIXO: 使用pixomatic软件渲染。 
• SECONDS: 设置最大的tick(更新)时间。 
• SM3: 强制使用shader model 3。 
• SM4 / D3D10: 如果DirectX 10存在,则强制使用它。 
• WINDOWED: 设置游戏以窗口模式运行。 

网络 

• LANPLAY: 告诉引擎在连接到服务器时不要超过客户端的带宽。因为服务器更新量是双倍的,这可能会占用充满整个客户端带宽。 
• Limitclientticks: 强制对网络更新进行节流。 
• LIVEMACADDRESS: 指定Panorama连接所使用的MAC地址。 
• LIVEPORT: 指定Panorama连接所使用的端口。 
• LIVEREGKEY: 指定一个注册码。 
• MPGAMETYPE: 指定烘焙使用的一种单独的游戏类型。 
• MULTIHOME: 告诉引擎为网络使用多寻址地址。 
• NETWORKPROFILER: 启用网络分析跟踪。 
• NOLIVE: 禁用Panorama。 
• NOSTEAM: 设置不使用steamworks。 
• PORT: 告诉引擎使用特定的端口号。 
• PRIMARYNET: 影响引擎如何处理网络绑定。 

用户 

• NOHOMEDIR: 覆盖使用My Documents(我的文档)文件夹作为主目录。 
• NOFORCEFEEDBACK: 在引擎中禁用强制反馈功能。 
• NOSOUND: 禁用引擎中的任何声效输出。 
• NOSPLASH: 当加载游戏时禁止使用程序启动图像。 
• NOTEXTURESTREAMING: 禁用贴图动态载入。总加载最高质量的贴图。 
• ONETHREAD: 使用单线程运行引擎而不使用多线程。 
• PATHS: 设置测试冲突的内容所使用的路径。这个参数对发行版本无效。 
• PREFERREDPROCESSOR: 设置特定处理器的线程关联性。 
• USEALLAVAILABLECORES: 强制在目标平台上使用所有可用核心。 

服务器开关 

• LOGIN: 设置登录时使用的用户名。 
• PASSWORD: 设置登录时使用的密码。 

游戏 统计数据/数据库 

• CSVSTATS: 把统计数据写入到文件中,使用分号分隔。 
• GAMESTATS: 使用游戏统计数据可视化效果。 
• NODATABASE: 请不要使用数据库。忽略数据库连接错误。 
• NOGADWARNING: 在编辑器启动时禁用游戏资源数据库警告。 
• NOLIVETAGS: 跳过加载SQL数据库中没有验证的标签改变。仅为当前用户加载。 
• STARTSTATSFILE: 开始写入到统计数据文件中。 
• STATFILE: 设置输出统计数据所到的文件的名称。 
• XMLSTATS: 使用XML格式把统计数据写入到文件中。 

INI/Config 文件 

• ENGLISHCOALESCED: 如果不能找到语言的本地化版本则恢复到默认的(英语)coalesced .ini。 
• NOAUTOINIUPDATE: 禁止向更新的.ini文件中输入提示信息。 
• NOINI: 不更新.ini文件。 
• REGENERATEINIS: 强制重新生成.ini文件。 

可以使用另一个命令行参数来临时地覆盖游戏或编辑器加载的INI文件。比如,如果使用了一个自定义的'MyGame.ini' 文件而不是'UDKGame.ini',那么该参数将为(也就是-GAMEINI=MyGame.ini )。这个表格列出了UE3中用于覆盖不同的INI文件的参数。 

命令行参数 

INI覆盖 

DEFEDITORINI= 

Default Editor 

EDITORINI= 

Editor 

DEFEDITORUSERSETTINGSINI= 

Default EditorUserSettings 

EDITORUSERSETTINGSINI= 

EditorUserSettings 

DEFCOMPATINI= 

Default Compat 

COMPATINI= 

Compat 

DEFLIGHTMASSINI= 

Default Lightmass 

LIGHTMASSINI= 

Lightmass 

DEFENGINEINI= 

Default Engine 

ENGINEINI= 

Engine 

DEFGAMEINI= 

Default Game 

GAMEINI= 

Game 

DEFINPUTINI= 

Default Input 

INPUTINI= 

Input 

DEFUIINI= 

Default UI 

UIINI= 

UI 

2012年5月之后编译版本中可供使用的参数 

针对基础数据类型(没有进行处理的数列和结构)的单个 .ini 文件现在也可以在命令行开关上进行重载(在Debug/Release/Test中,而不是在Shipping/FINAL_RELEASE中)。 

这个功能通常用于移动设备(或者家用机),在这里改变命令行开关很容易,但是只是更新 .ini 设置来重新烘焙您的数据是有难度的。它的工作原理是这样的: 

-ini:IniName:Section1.Key1=Value1,Section2.Key2=Value2,... 

比如: 

-ini:PS3-UDKEngine:Engine.Engine.bSmoothFrameRate=False,TextureStreaming.PoolSize=100 
-ini:ExoGame:AwesomeBoss.HitPoints=100000 

重点是使用正确的 .ini 名称!! 这已经通过生成的.ini文件进行测试(UDKEngine,不是DefaultEngine),所以我建议继续使用。 

要点: 在PC上使用这项功能将会使您在本地生成 .ini 文件被更新。在家用机/移动设备上,这些 .ini 文件都是只读文件,这样它就只会影响游戏的运行。 

调试 

• BugLoc (e.g. BugLoc=(X=1798.8569,Y=475.9513,Z=-8.8500)) 
• BugRot (e.g. BugRot=(Pitch=-1978,Yaw=-7197,Roll=0)) 

其它 

• timelimit (e.g. timelimit=[time]) 
• goalscore (e.g. goalscore=[score]) 
• numbots (e.g. numbots=[num]) 

 

内容烘焙概述 
-------------------------------------------------------------------------------- 
内容烘焙是指如何转换内容为 游戏机平台支持 (当前是 Xbox 360 和 PS3)的格式。PC现在也可以使用烘焙数据,这将会产生更快的加载速度。就绝大部分功能而言,它是非常简单的,但是有几个事情至少需要您的团队中的一个人知道。 

烘焙器本身是一个Unrealcommandlet(命令开关)。一般,您将使用Unreal Frontend工具来调用这个命令开关,可以传入任何配置选项。但是,您也可以通过直接使用命令行开关本身来烘焙您的内容。 

请确保您已经正确地设置了您的版本! 

烘焙 
-------------------------------------------------------------------------------- 
烘焙器的最主要的作用是以最佳的格式保存包,以便可以在游戏机平台(以及PC)上进行加载。在包上所进行的处理包含以下几个方面: 
• 剥离任何不必要的数据,比如仅编辑器使用的数据(这将会对文件的大小产生很大的影响)。 
• 字节交换所有数据,以便它可以在没有CPU消耗的情况下被大尾字节架构所加载。 
• 处理资源,以便它们按照它们native(本身)的格式存储,并且为加载做好准备,使得在游戏机平台上不需要任何进一步的处理。 
• 创建免搜索的、独立的包,以便可以从寻道速度时间较慢的媒体(也就是 DVD/BD)上获得最佳的加载速度。 

在游戏机平台上,UE3仅支持加载烘焙的包。在PC上的UE3可以加载烘焙的、位烘焙的、甚至两者混合的包。 

决定要烘焙的东西 

命令开关通过加载包、处理它们然后重新保存它们来进行操作。加载的包列表由命令行开关和.ini设置决定。烘焙的包被保存到一个烘焙目录中,它的格式是XXXGame\CookedYYY,这里的XXX是指您的游戏的名称,YYY是指游戏平台名称。烘焙的包文件在游戏机平台上的扩展名是.xxx,在PC上的扩展名是原来的。如果命令开关选项覆盖了默认值的情况下,仅那些比烘焙过的包的日期更新的日期会被进行重新烘焙。 

专用文件Textures.tfc(.tfc是贴图文件缓存的扩展名)包含了所有的动态载入贴图。这是游戏机平台的默认行为,但是您可以禁用这个功能。如果没有.tfc文件,游戏机平台将仅存储引用的内容包的副本,仅把它们贴图留在内容包中。如果使用了.tfc文件,将不再需要内容包,所以烘焙目录将仅包含seekfree包和.tfc文件。 

详细的流程是这样的: 
• Non-seekfree(非免搜索)包 (当不使用.tfc时): ◦ 烘焙被正在烘焙的免搜索(seekfree )包所引用的任何过期的非-免搜索包(non-seekfree)。 

• Seekfree (免搜索)包 (脚本、启动文件、地图) ◦ 烘焙任何相对于源文件来说已经过期的免搜索(seekfree)包(检查是否有更新的引用的内容包)。 
◦ (当使用.tfc时)当处理seekfree(免寻道)的包、贴图或者过期贴图时,它们将会被添加到.tfc文件中进行动态载入。 

• 独立的seekfree(免搜索)包 ◦ 烘焙任何相对于源文件来说已经过时的seekfree(免搜索)包。 

如果指定了-full,那么将会首先删除所有的烘焙的包,以便所有的文件都会在日期检查时失败,从而可以进行全部地烘焙。如果指定了-recookseekfree,那么不管怎样,地图、启动文件以及独立的免搜索包都将会被烘焙。 

命令行 

一般,您将会使用Unreal Frontend来运行烘焙器,但是如果您想进行自动地烘焙或类似的行为,您可以使用命令行界面。 

gamename.exe CookPackages [map1] [map2] ... [mapn] -platform=<Platform> -[options] 

选项 

• platform= <PLATFORM>: 设置为那个平台进行烘焙。平台可以使以下其中之一: ◦ pc - 烘焙具有编辑器支持的PC版本。 
◦ pcserver - 烘焙针对专用服务器的PC版本 (不支持编辑器、剥离了大量数据) 
◦ pcconsole - 像烘焙游戏机平台版本那样烘焙PC版本 (没有编辑器支持,剔除无关数据)。 
◦ ps3, xbox360, xenon - 游戏机平台。 
◦ tegra, iphone - 移动设备平台。 

• full: 强制重新保存所有现有包。如果指定了这个选项,则首先会删除CookedYYY文件夹的内容。 
• singlethread: 禁用多线程烘焙。 
• processes= <N>: 在一个多线程烘焙中使用N个进程。 
• recookseekfree: 强制重新烘焙所有的免搜索的包(在命令行或.ini上的启动包、独立的免搜索的包、地图)。当默认的依赖性检查不能正常工作时,这个功能是有用的(尤其是对独立的免搜索的包来说,因为当任何非免搜索的包改变时,它将不会重新烘焙所有的独立的免搜索的包,这个地图是不一样的)。 
• -cookallmaps: 烘焙游戏中的所有地图。 
• -mapsonly: 仅烘焙地图,将不会尝试烘焙其它东西。 
• -inisonly: 仅烘焙.ini文件和本地化文件(烘焙到Coalesced.ini 和 Coalesced.int等文件中)。 
• -sha: 为启动文件和接合文件生成SHA hash,并把它们输出到Hashes.sha中。 
• languageforcooking= <LANG>: 设置LANG一种语言,以便进烘焙一种单独的语言。默认值为int(英语)。 
• multilanguagecook= <LANG1<+LANG2<-LANG3...>>>: 同时烘焙多种语言。示例: -multilanguagecook=int+ita-fra 烘焙英语、意大利语和法语。前面有减号的语言(比如French(法语)),仅针对文本本地化文件进行烘焙,所以近启动包和ini文件会被烘焙。 
• saveshadersatend: 告诉烘焙器延迟着色器缓存的保存直到烘焙结束为止,而不是在烘焙每个包后进行保存。 
• nopackagecompression: 不允许对烘焙后的包进行压缩。以包的大小为代价加速烘焙。 
• noloccooking: 仅针对字幕处理的当前语言,仅生成和本地化文件结合的当前语言。 
• verifytfc: 检查.tfc文件的错误。 
• analyzereferecedcontent: 存储烘焙的包所引用的内容的统计数据。请参照FAnalyzeReferencedContentStat。 
• usermode: 烘焙内容,就好像它是DLC或mod一样(这将仅烘焙在命令行中指定的包,它不会烘焙发行的脚本包)。关于DLC的更多信息,请参照DownloadableContent and 针对PS3平台的DLC?页面。 
• skipmaps: 仅烘焙非地图免搜索的包。 
• skipsavingmaps: 烘焙但不保存地图。这对于烘焙地图使用的LOC数据是有用的。 
• skipnotrequiredpackages: 跳过 加载&保存 那些不需要进行烘焙处理的包,从而加速LOC烘焙。 
• skipmaterialcleanup: 跳过清除材质的过程来加速烘焙迭代。 
• skipstaticmeshclean: 跳过把材质压入到关卡中放置的静态网格物体实例中的过程。skipmaterialcleanup将会自动完成这个处理。 
• skippmapobjs: 跳过识别P-maps(永久性关卡)中所包含的对象的步骤,并从它包含的子关卡中删除这些对象。(注意: 多个永久性关卡中包含的子关卡将会自动跳过这个优化。) 
• skippsysmodules: 跳过从粒子系统删除相同的模块的过程。 
• fastcook: 等同于指定NOLOCCOOKING、SKIPMATERIALCLEANUP、SKIPPSYSMODULES、SKIPPAMPOBJS & QUICK。 

输出 

烘焙器的输出是这六种类型文件的其中一种: levels(关卡)、native script packages (native脚本包)、combined startup package(组合的启动包)、texture streaming packages(贴图动态载入包)、standalone seek-free files(独立的免搜索文件)、texture file caches(贴图文件缓存)以及 metadata/helper(元数据/帮助)文件。 

(关卡) 是一个包含了除了针对高级贴图mips的内容之外关卡所需的所有内容的包,从而基本可以使它免搜索地加载关卡(没有高细节贴图)。 

native script packages (native脚本包)是一个UnrealScript包,在它内部有native类,并且通常总是在游戏启动时加载。它将会把脚本代码所引用的内容烘焙到这个包中,所以您需要小心地处理脚本代码直接引用的资源的数量。对于 Gears of War(战争机器) 来说,我们有一个主要的native脚本包WarfareGame.u,它具有native基类;WarfareGameContent.u,它没有native类,但是它有很多引用了很多不需要同时加载的内容(怪物等)的子类。 

combined startup package(组合的启动包) 组合了所有用于启动游戏所需要的但却又没有被烘焙到主菜单关卡中的包。这包括类似于DefaultMaterial的物体。任何在启动包中的物体将总是被加载。 

Texture streaming packages (贴图动态载入包) 包含了真正高级别(大的)mip数据,以便它不会在DVD上被复制太多次,并使得它可以在运行时很容易地进行动态载入。 

Standalone seekfree packages(独立的seekfree包) 它不是地图或脚本包,但是它把到它们的所有引用抽取出来放到一个单独的包中。在 Unreal Tournament(虚幻竞技场) 中,这用于组成自定义人物的网格块的包。当通过很多个网格块构建出一个人物时,我们通过加载独立的seekfree包(异步地)快速加载网格物体和它们所依赖的贴图。因为在游戏机平台上不支持DynamicLoadObject,我们通过完全地加载包来加载物体。当烘焙独立的免搜索包时会有两个输出包 – 一个具有_SF扩展名。而另一个没有。带有 _SF的文件是真正的包含所有物体和它们依赖的免搜索包,而没有带_SF的文件包含了动态加载的贴图(由于压缩差异,引擎不能从免搜索文件中自动地载入包)。 

texture file cache(贴图文件缓存) 是一个独立的文件,它把很多值得动态载入的贴图组合到一个文件中。这个文件可以用于降低磁盘上文件的总数量以及一次同时打开文件的总数量(当平台有任何限制时)。 

Audio streaming packages 没有创建Audio streaming packages(音频动态载入包) ,但是您可以动态载入包含音频的包。这种方法是比实现对任意音频的动态载入支持上更有利的,因为我们想把更多的带宽尽可能地留给贴图动态载入;而且,对于像虚幻竞技场和战争机器这样的如此快动作的游戏来说,发生延迟也是不能接受的,而且在这时同步FaceFX动画也成为了一个额外的麻烦事。作为替换,战争机器创建了一个专用的对话框系统。 

PC和烘焙 

PC可以运行烘焙或未烘焙数据。要想运行具有烘焙数据的游戏,请使用-seekfreeloading命令行选项(或者在Unreal Frontend中的Run with Cooked Data[运行具有烘焙数据的游戏])。要使用编辑器运行未烘焙的数据,请使用-cookededitor命令行选项。 

为PC和游戏机平台进行烘焙的不同: 
• PC包保持它们的扩展名,游戏机平台的包的扩展名改为.xxx。 
• PC的 非-seekfree 包中保留了所有的物体,而不是像游戏机平台那样仅保存贴图。 
• 游戏机平台烘焙支持TextureFileCache包。 
• 游戏机平台烘焙时删除的“源数据”比PC烘焙时删除的更多,因为PC编辑器可以加载使用烘焙的包(参照UT3)来提供mod支持等。 

UT3的PC版本发行了烘焙数据,并且允许mods。我们把它作为"Publishing(发布)"版本呈现给用户的,它和烘焙类似,但是它仅烘焙在它们mod中的包。它基本上是在"-usermode"中来为PC烘焙的(也就是,没有烘焙我们的native 脚本包)。 

烘焙的包 
-------------------------------------------------------------------------------- 
类型 

有4种类型的烘焙的包。以下是它们的描述以及它们是如何加载的介绍。 

Native 脚本包 

描述: 描述:这些包中是native脚本代码。它们将经过烘焙并且使它们成为“seekfree”包(尽管对于类似于Core和Engine的脚本包来说,由于它们在对象之间的相互依赖导致它们不可能真正地100%的seekfree,但bPreloadPackagesFromMemory选项可以读取搜索不是很重要的地方的内存)。通过烘焙,所有直接引用的内容(贴图、网格物体等) 都会被放到这个包中。 

加载 : 它们将会始终并永久地被100%地加载:) 它们是启动时要加载的第一个东西(也就是Core、Engine、GameFramework、UTGame等)。 

启动包 

描述: 这些包是最初启动游戏时所需要的额外的包,它们的内容不会被烘焙到其它包中。它们被列在 [Engine.StartupPackages]部分。一般,我们需要启动包的原因是在这些包中的物体没有被脚本或地图直接地引用,所以需要对它们进行手动地烘焙和加载。 

加载 : 在这些包中的所有物体都将会在启动时加载,并且将永远不会对其进行垃圾回收。这意味着您应该从这些包中删除不必要的物体,从而可以节约运行时内存。 

地图包 

描述: 地图和那个地图引用的所有资源(除了在native脚本包中的类)。和native脚本包一样,它们也是免搜索的。多个烘焙的地图可以包含相同的物体(即如果两个使用了同一个贴图,那么将会把那个贴图分别烘焙到两个包中)。这增加了DVD/BD的使用量,但是不会增加运行时内存,因为如果物体已经通过使用它的地图加载到内存中,那么当再次加载使用这些物体的地图时(当您需要在动态载入关卡时加载多个关卡的情况),这些物体将会被跳过。 

加载 : 当游戏或玩家切换地图时加载。它将会被完全地加载(对动态载入来说通常是异步的),并且在关卡通过调用LoadMap卸载或动态载出之前它将一直存在。 

贴图包 

描述: 这个包含有用于贴图动态载入的高级别的mip数据。在烘焙期间,除了高级mips以外的所有东西都会从包中删除。 

加载 : 这些包将永远不会作为包加载,它们仅用于动态载入贴图(它的低级别mips在烘焙包中)。 

应用 

根据资源的应用来烘焙资源的方法: 

直接引用的资源: 如果有一个物体被其他物体直接地引用,那么需要该物体的免搜索包(native脚本、地图)将会把它抽取到烘焙的免搜索包中,除非它具有动态载入贴图并且您现在没有使用贴图文件缓存,否则在Cooked(烘焙)目录中将不存在资源包。 

解决方案: 不需要做任何事。这正是我们所希望的。 

Loaded dynamically from any level(从任何关卡进行动态加载): 如果没有免搜索包(native脚本、地图)引用那个物体,并且在运行时加载了那个物体,那么我们期望加载物体的方法是 LoadPackage ,因为如果物体没有通过 LoadPackage 进行加载,那么 DynamicLoadObject 将会在游戏机平台上返回 NULL 。 

解决方案: 在您游戏的DefaultEngine.ini中的 [Engine.PackagesToAlwaysCook] 部分,把它标记为独立的免搜索包: 

[Engine.PackagesToAlwaysCook] 
+SeekFreePackage=MyGamePackage 

这将会创建 MyGamePackage_SF.xxx(如果有贴图并且您没有使用TextureFileCache,那么MyGamePackage.xxx可以用于任何动态载入贴图)。这个包在进行游戏机平台加载时将会使用更加适合的格式,而不是像之前那样对外部引用和动态载入贴图不能进行正确地展现。 

Loaded dynamically from one level(从一个关卡中动态地加载): 如果仅一个或两个关卡(也就是,菜单关卡)动态地加载那个物体,您可以把那个包强制地加入到地图文件中,那么以后当加载那个地图时,那个包也将总是会被加载。 

解决方案: 在您游戏的DefaultEngine.ini的 [Engine.PackagesToForceCookPerMap] 部分,设置要强制加入到地图中的包: 

[Engine.PackagesToForceCookPerMap] 
.Map=MyFrontend 
.Package=MyGamePackage 

现在,无论何时,当加载MyFrontend时,在MyGamePackage中的所有物体都将会被加载,并且可以使用 DynamicLoadObject=/=FindObject 去获取物体。 

Used in EVERY level(在每个关卡中使用): 如果一个物体在任何时候都可以使用,您应该把它放到Startup 包中,以便它将只加载一次,但以后将总是在内存中。 

解决方案: 在您的游戏的DefaultEngine.ini的 [Engine.StartupPackages] 部分添加您的包: 

[Engine.StartupPackages] 
+Package=MyGamePackage 

配置 
------------------------------------------------------------------------------- 
配置文件 

当设置您的游戏进行烘焙时,您需要修改一些.ini设置。因为游戏机平台的Engine.ini文件是从主要的Engine.ini文件来生成的,所以您应该在您游戏的DefaultEngine.ini文件中指定这些设置。然而,烘焙器将会在生成的目标平台的Engine.ini文件中查找那些设置,所以如果需要,您可以在您的游戏中的针对特定平台的的Engine.ini指定那些设置。 

[Engine.PackagesToAlwaysCook] 

描述: 这个部分是用于放入您确认所有用户已经烘焙的地图以及独立的免搜索包。自从12月份的版本后,所有的 非- 免搜索包都将会被烘焙,所以不必再指定您想烘焙的随机包了。 

这个部分在以后或许会进行重命名或者被分割为两个部分,因为随着时间的推移它的应用已经发生了改变。同时,独立的免搜索包也不会每次都进行重新烘焙,除非您在命令行中进行了覆盖。 

什么时候使用: 您需要把那些你必须使用的包放在那里,比如主菜单关卡。同时,当您需要一个独立的seekfree包时(请参照上面的 “Operation”部分)。使用"Package="来确保它们已经被烘焙,并且使用 "SeekFreePackage=" 来指定seekfree包。 

格式: 
[Engine.PackagesToAlwaysCook] 
+Package=entry 
+Package=UTFrontend 
+SeekFreePackage=CH_IronGuard_Male 

[Engine.StartupPackages] 

描述: 这里列出的包将会基于每种语言(Startup_int.xxx, Startup_kor.xxx, 等)被组合到一起来合成一个免搜索的启动包。在这些包中的物体(以及它们的依赖)是您在您最初启动游戏时所需要的,并且它们将总是在内存中 。通常在这些包中的物体将不会被烘焙到其它包中。 

什么时候使用: 当您在最初启动过程中需要的物体或者需要物体总是在内存中时使用。在以下的实例中,正确的字体文件将会在UI_Fonts处进行应用。所以,如果有一个UI_Fonts_KOR.upk包,当针对韩语烘焙时,它将会把UI_Fonts_KOR放到Startup_KOR.xxx中。 

格式: 
[Engine.StartupPackages] 
+Package=FX_HitEffects 
+Package=UI_Fonts 
+Package=UI_Scenes_HUD 
+Package=UI_Skins 
+Package=UI_Skin_Derived 
+Package=SpeechRecognition 

bSerializeStartupPackagesFromMemory(是否从内存中序列化启动包) 

描述: 以在最初启动期间大量的临时内存为代价来启用较快的启动速度。在启动时所做的事情是开始读取启动包中的列表到内存中,这个过程在幕后是异步的。所以,当正在从DVD(相对较慢)中读取一些包时,它可以处理其它包。默认情况下,引擎将会预先加载native脚本包、启动包和Startup_*.xxx。 

它的工作原理是这样的: 
• 开始把Core.u从DVD读入到一个已分配的内存块。 
• 等待它完成。 
• 开始读取Engine.u。 
• 从内存块中把Core.u序列化到引擎中。 
• 当从序列化已读取包的过程中,继续读取包。 

什么时候使用: 当您有足够的内存来分配这些额外的大的内存块并且您想加速启动游戏的引导速度时使用它。 

格式: [Engine.StartupPackages] bSerializeStartupPackagesFromMemory=True 

bFullyCompressStartupPackages(是否完全压缩启动包) 

描述: 描述:启用对启动包的所有包进行压缩。这些可以在加载过程中通过一个单一的操作来进行异步压缩。 

什么时候使用: 当和bSerializeStartupPackagesFromMemory 结合使用时,这将可能有利于获得更快的启动包加载速度。当引擎准备好处理已经加载的包时,它就已经解压缩。 

格式: [Engine.StartupPackages] bFullyCompressStartupPackages=True 

[Engine.PackagesToForceCookPerMap] 

描述: 这个部分将会强制把某些包完全地烘焙到一个地图包中。 

什么时候使用: 当您想使用DynamicLoadObject (DLO)来通过字符串名称而不是对象引用来加载物体时使用它。烘焙器将会仅遵循对象引用而不是字符串引用,所以它们不会使物体被烘焙到地图中。比如,UI系统使用DLO来打开UIScenes(UI页面)和贴图。所以,在虚幻竞技场中,我们轻质把包含页面和贴图的包烘焙到主菜单中。这样便可以达到预定目标,以便页面和贴图可以通过加载UTFrontEnd地图来进行简单地加载。只要加载了关卡,物体就不会被垃圾回收。 

格式: 

格式是 Map=后跟随着任何数量多的Package=,从而列出要烘焙到那个地图中的包。 

[Engine.PackagesToForceCookPerMap] 
.Map=UTFrontEnd 
.Package=UI_Scenes_Mutators 
.Package=UI_FrontEnd_Art 
.Package=UI_Portrait 
.Package=UI_Scenes_ChrisBLayout 
.Package=UI_Scenes_FrontEnd 
.Package=UI_Scenes_Common 
.Package=UI_Skin_Derived 
.Package=UI_Skins 
.Package=UI_Scenes_Campaign 
.Package=UI_Weapons 
.Map=UTM-MissionSelection 
.Package=UI_Scenes_Campaign 
.Package=UI_Skin_Derived 
.Package=UI_Skins 

[Core.System] SeekFreePCPaths 

描述: 这部分将会保留CookedPC目录内部的扩展名和相关目录结构(使用 -cookededitor 标志获得编辑器功能)。 

什么时候使用: 针对PC烘焙的版本。 

格式: 
[Core.System] 
SeekFreePCPaths=<PATH> 

 

控制台命令概述 
-------------------------------------------------------------------------------- 
控制台命令是您可以在游戏中或在编辑器中运行的基于字符串的命令。它们也被称作 可执行命令 。 

要想使用控制台命令,通过按下Tab或者Tilde(~)键弹出控制台,在它们内输入命令,然后按下Enter(回车)键便可以执行。控制台命令可以从游戏中和编辑器中执行,或者如果游戏使用-server开关启动,它也可以从服务器的控制台执行。它们可以做从重新设置引擎到设置特定actor的变量等各种事情。 

还可以将命令的列表存储在系统目录的文本文件中,通过在控制台键入 exec _文件名_ 执行。 

命令列表 
-------------------------------------------------------------------------------- 
以下是引擎支持的控制台命令列表。 

常用命令 

• CANCEL (取消) -告诉引擎取消一个正在执行的连接尝试。 
• DISCONNECT(断开连接) -将客户端和当前的游戏/服务器断开。 
• EXIT(退出) -告诉引擎关闭应用程序。 
• MAP - = START= 的别名 
• OPEN [url] -告诉引擎根据命令后面出现的字符串的名称来打开地图,包括任何额外的URL参数(通过 命令行参数指出);请使用TRAVEL_Partial。 
• QUIT - 和EXIT一样。 
• RECONNECT(重新连接) -将客户端和当前的游戏/服务器 重新连接。 
• SERVERTRAVEL -根据命令后面紧跟的字符串 名称/地址 从客户端穿行到服务器端。 
• START [url] -和OPEN类似,不同之处是它不进行TRAVEL_Absolute而进行的是RAVEL_Partial。 
• STREAMMAP [url] – 准备并提交URL中的地图改变。 

调试命令 

• ANALYZEOCTREE [option] – 输出关于八叉树的信息。 ◦ VERBOSE – 输出详细信息 

• CANCELMATINEE [param] – 跳过当前的matinee;参数指出了在命令生效之前播放器在matinee中所处的秒数。 
• CLOSEEDITORVIEWPORT –关闭PIE视口。 
• COLLAPSEOCTREE – 合并八叉树中的子树。 
• CONFIGHASH - 显示配置信息。 
• CONFIGMEM – 显示内存信息。 
• COUNTDISBALEDPARTICLEITEMS – 输出禁用的粒子系统、lod级别及模块的数量。 
• CUSTOMLODDATA [LOD=lod] – 设置为静态网格物体使用的自定义细节层次级别。 
• DEBUG - 用于模仿各种错误,可以使用以下参数来进行区分: ◦ ASSERT – 告诉引擎模拟触发Assert错误的情况。 
◦ BUFFEROVERRUN – 告诉引擎执行栈溢出测试。 
◦ CRASH - 告诉引擎模仿严重的崩溃。 
◦ EATMEM - 告诉引擎模仿耗尽所有的可用系统内存。 
◦ GPF - 告诉引擎模仿一般的保护错误。 
◦ HITCH – 告诉引擎模拟游戏中休眠1秒的故障停顿现象。 
◦ LONGLOG – 输出一个很长的日志来测试日志使用的调整缓冲大小的代码。 
◦ RECURSE - 告诉引擎模仿失去控制的递归或死循环。 
◦ RENDERCRASH - 告诉引擎在渲染线程上模仿严重的崩溃。 
◦ SLEEP - 睡眠几秒钟。 

• DEBUGPREFAB [object] [command] – 输出关于某个特定预制的信息。命令可以是以下情况之一: ◦ GRAPH – 显示预制的子对象图表。 
◦ SHOWMAP - 显示预制的原型映射。 

• DIR - 显示所有使用过的目录和文件。 
• DISABLEALLSCREENMESSAGES – 显示所有的屏幕消息或经过。 
• DISTFACTORSTATS – 输出在游戏运行过程中渲染SkeletalMeshComponents 所使用的DistanceFactor(距离因数)的信息。 
• DN [comment] – 在当前位置创建一个具有指定注释的note actor。仅在PIE游戏中使用。 
• DUMPDYNAMICLIGHTSHADOWINTERACTONS – 将场景的动态光照和阴影交互输出到日志中;仅包括阴影投射交互。 
• DUMPLINECHECKS – 如果定义了 LINE_CHECK_TRACING,则输出自从上一次重置后线性检测的结果。 
• DUMPMATERIALSTATS [platform] – 输出针对特定平台的材质统计数据。 
• DUMPNATIVES - 显示所有native函数。 
• DUMPSHADERSTATS [platform] – 输出针对特定平台的着色器统计数据。 
• EDITACTOR [parameter] – 根据参数编辑找到的第一个actor的属性。 ◦ CLASS= - 要查找的类。 
◦ NAME= - 要查找的名称。 
◦ TRACE – 跟踪玩家视角获得第一个碰到的actor。 

• EDITDEFAULT [CLASS=class] – 打开针对特定类的默认属性的属性编辑器。仅在独立平台上使用。 
• EDITOBJECT [parameter] – 编辑所找到的第一个属于特定类或者具有指定名称的对象的属性。 ◦ CLASS= - 要查找的类。 
◦ NAME= - 要查找的名称。 

• ENABLEALLSCREENMESSAGES – 启用所有屏幕上显示的消息或警告。 
• EXEC [filename] – 执行指定文件的内容(其他控制台命令)。 
• FORCESKELLOD [option] – 强制显示骨架网格物体的特定细节层次。Option(选项)是: ◦ LOD= - 要强制使用的LOD。 

• GAMEVER / GAMEVERSION – 输出引擎版本和变更列表到日志中。 
• GETMAXTICKRATE – 输出最大更新频率到日志中。 
• FLUSH - 告诉引擎冲掉引擎的所有缓存。 
• FLUSHLOG – 告诉引擎冲掉所有日志。 
• FLUSHPERSISTENTDEBUGLINES – 清除所有永久调试行调用。 
• FRAMECOMPUPDATES – 输出一帧中所有的组件更新的列表。 
• HIDELOGDETAILEDTICKSTATS – 关闭详细统计数据的输出。 
• KILLPARTICLES – 使粒子系统停止活动并销毁所有粒子。 
• KISMETLOG – 启用Kismet日志并强制所有序列输出日志。 
• LISTAWAKEBODIES – 输出当前激活的所有刚体的列表。 
• LISTDYNAMICLEVELS – 输出世界中所有动态载入关卡的列表。 
• LISTLOADEDPACKAGES – 输出已加载的包的列表。 
• LISTPAWNCOMPONENTS – 输出世界中所有Pawns的组件的列表。 
• LISTPRECACHEMAPPACKAGES – 输出位于预缓冲列表中但是还没有被“加载”出来的包的列表。 
• LISTSKELMESHES – 输出所有骨架网格物体的骨架网格物体到实例的映射列表。 
• LISTSPAWNEDACTORS - -列出永久性关卡的所有动态actor及它的某些信息;同时隐含地被称为MEMLEAKCHECK 。 
• LISTTHREADS - 给出关于哪个线程正在哪个核心上运行的大量信息。 
• LOGACTORCOUNTS – 输出所有actors、动态actors及更新的actors的数量。 
• LOGOUTSTATLEVELS – 输出关于动态载入关卡的信息。 
• MERGEMESH [meshes] – 使用网格物体融合工具融合指定的骨架网格物体(用空格分隔列表)。 
• MOVEACTORTIMES – 输出一帧中所有actor的移动次数。 
• NAMEHASH – 显示关于名称表格的信息。 
• OBJ - 用于和以下参数结合使用: ◦ BULK - 
◦ CLASSES - 显示所有加载的类别的列表。 
◦ COMPONENTS - 
◦ DEPENDENCIES - 显示依赖于字符串参数所传入的特定包的对象的列表。 ■ PACKAGE= - 要检查的包。 

◦ DUMP - 转存特定对象的所有变量值,支持指定类别来进行隐藏或显示(hide(隐藏)=移动、碰撞)。 ■ [class] - 简单名称 或者是 CLASS= 或者NAME= 。 
■ HIDE= - 要排除的类别的列表,中间以逗号分隔。 
■ SHOW= - 要包含的类别的列表,中间以逗号分隔。 

◦ FLAGS - 
◦ GARBAGE - 强制进行垃圾回收清理。 
◦ GC - 强制进行垃圾回收清理。 
◦ HASH - 显示具有hash(哈希表)的object的数量。 
◦ INSTRINISICCLASSES - 
◦ LINKERS - 迭代GObjLoaders并显示关于它们的连接器的信息。 
◦ LIST - 显示包中的一个类别的所有物体的列表。 ■ CLASS= - 字符串的值是要查找的对象的类别。 
■ INSIDE= - 字符串的值是要在其中查找对象的包的名称。 
■ PACKAGE= - 字符串的值是要列出对象的包的名称,该包有一个外部容器。 ■ COUNT - 实例的数量。 
■ NUMBYTES - 由序列化和类别大小决定的尺寸。 
■ MAXBYTES - 和上面的一样,但是也考虑了TArray闲置情况。 
■ RESBYTES - 资源的最大大小(贴图、声效、动画等)。 

◦ MARK - 告诉引擎迭代所有物体并设置它们的标记标志。 
◦ MARKCHECK - 显示没有标记的物体的列表。 
◦ REFS - 可以带两个参数,用于说明对象的类别和名称,然后显示引用它的所有对象(注意 : OBJ REFS 使用很多栈,所以如果在使用它时发生了奇怪的崩溃,请增加您的栈的大小 – 对于PC来说,这项在Visual Studio工程的 编译器设置?的Linker->System部分)。 ■ CLASS= - 要检查的类。 
■ NAME= - 要检查的对象的名称。 

• PARANOIDDEVICELOSTCHECKING – 切换是否在每个描画调用中检测设备丢失。 
• PARTICLETICKSTATS – 跟踪粒子更新统计数据。 ◦ DUMP – 以CSV格式将粒子更新统计数据输出到日志文件中。 
◦ RESET – 清空跟踪的粒子更新统计数据。 
◦ START – 开始跟踪粒子更新统计数据。 
◦ STOP – 结束跟踪粒子更新统计数据。 

• PHYSASSETBOUNDS – 更新一帧中所有物理资源边界更新的列表。 
• PUSHVIEW [command] – 用于控制从编辑器中繁衍对象的命令。 ◦ START – 开始繁衍。 
◦ STOP – 停止繁衍。 
◦ SYNC – 如果启用了繁衍功能,同步玩家的位置和旋转度。 
◦ [X] [Y] [Z] [PITCH] [YAW] [ROLL] – 直接设置玩家的位置和旋转度。 

• REATTACHCOMPONENTS [CLASS=class] – 强制重新附加指定类别的所有组件。 
• RELOADCFG [class/object] – 重新加载指定类或对象的配置。 
• RELOADCONFIG [class/object] – 重新加载指定类或对象的配置。 
• RELOADLOC [class/object] – 重新加载指定类或对象的本地化数据。 
• RESETLINECHECKS – 如果定义了LINE_CHECK_TRACING则清除线性检测结果。 
• SAVESHADERS – 保存本地着色器缓冲。 
• SHOWEXTENTLINECHECK – 描画非零粗细碰撞检测的调试线,并在检测的结束处描画调试框。 
• SHOWFACEFXBONES – 确认FaceFX骨骼索引和骨架网格物体骨骼索引相匹配。 
• SHOW FACEFXDEBUG – 跟踪FaceFX骨骼列表来查看是否有多个网格物体正在引用或重新连接到主骨骼列表。 
• SHOWISOVERLAPPING – 输出一帧中所有IsOverlapping函数调用列表。 
• SHOWLIGHTENVS – 输出每帧中更新的所有光照环境的列表。 
• SHOWLINECHECK – 描画针对非零粗细检测的调试线。 
• SHOWLOG – 切换控制台日志窗口的显示状态。 
• SHOWOCTREE – 切换八叉树的显示状态。 
• SHOWPOINTCHECK – 在点检测的范围上描画方框。 
• SHOWSKELCOMPLODS – 输出一帧中所有的骨架组件LOD。 
• SHOWSKELCOMPTICKTIME – 输出一帧中更新的所有骨架网格物体组件的列表。 
• SHOWSKELMESHLODS – 输出一帧中的所有骨架网格物体LOD。 
• SHRINKOCTREE – 删除八叉树中任何闲置。 
• STRUCTPERFDATA – 启用跟踪序列化性能功能。需要定义 TRACK_SERIALIZATION_PERFORMANCE 或 LOOKING_FOR_PERF_ISSUES。 ◦ DUMP – 输出序列化性能数据。 
◦ RESET – 清除序列化性能数据。 

• SUPPRESS [tag] - 禁止日志信息。 
• TICKFREQ – 如果需要可以切换应用降低的更新频率。 
• TOGGLEALLSCREENMESSAGES – 切换所有屏幕上的消息或警告的显示状态。 
• TOGGLECROWDS – 切换所有群体的打开或关闭状态。 
• TOGGLEDEBUGGER – 切换脚本调试器的应用。 
• TOGGLEDRAWEVENTS – 切换描画事件的显示。 
• TOGGLEFLUIDS – 切换所有流体表面的打开或关闭状态。 
• TOGGLELINECHECKS – 切换线性检测栈跟踪的打开或关闭状态。 
• TOGGLELINECHECKSPIKES [value] – 设置当线性检测的数量超过多少时转存当前帧的线性检测。 
• TOGGLELOGDETAILEDACTORUPDATESTATS – 切换输出详细的actor更新统计数据的打开或关闭状态。 
• TOGGLELOGDETAILEDCOMPONENTSTATS – 切换输出详细组件统计数据的打开或关闭状态。 
• TOGGLELOGDETAILEDTICKSTATS – 切换输出详细的更新统计数据的打开或关闭状态。 
• TOGGLEMOBILEEMULATION – 切换PC上移动设备仿真的应用 (游戏或编辑器)。 
• TOGGLEONSCREENDEBUGMESSAGESYSTEM - 切换所有屏幕调试信息的显示状态。 
• TOGGLEONSCREENDEBUGMESSAGEDISPLAY -切换屏幕上的调试信息。 
• TOGGLERENDERINGTHREAD – 开始/停止 渲染线程。 
• TOGGLESTREAMINGVOLUMES [ON/OFF] – 根据指定的参数打开或关闭动态载入体积。如果没有指定参数,则执行切换。 
• TRACEFACEFX – 跟踪FaceFX骨骼列表来查看是否有多个网格物体正在引用或重新连接到主骨骼列表。 
• UNSUPPRESS [tag] – 告诉引擎不要禁止日志消息。 
• USENEWMOUSEINPUT – 切换新的DirectInput鼠标输入方法的应用。 
• VIEWNAMES [Number] – 显示添加到名称表格中的上几个名称。 

统计数据命令 

STAT命令负责在游戏运行时在屏幕上启用显示统计数据功能并且可以控制显示哪些数据和显示方式。它可以和以下参数结合使用来切换 打开/关闭 数据的特定组的统计数据的显示(请参照 统计数据描述页面获得更多信息。) 

• ANIM – 切换动画系统统计数据的显示状态。 
• ASYNCIO – 切换异步加载统计数据的显示状态。 
• AUDIO – 切换音频系统统计数据的显示状态。 
• CANVAS – 切换画布描画统计数据的显示状态。 
• CHART [command] [parameters] – 用于控制统计数据表格的命令。命令和参数可以是以下之一: ◦ Command(命令) ■ KEY – 切换表格按键的显示状态。 
■ LOCKSCALE – 锁定表格的缩放比例。 
■ RESCALE – 重新缩放表格来适应所有数据。 
■ RESET – 删除所有表格线。 
■ SHOW – 切换统计数据表格的渲染。 

◦ Parameters(参数) ■ XRANGE= - 在X轴设置表格上的范围。 
■ XSIZE= - 在X轴上设置表格的尺寸。 
■ YSIZE= - 在Y轴上设置表格的尺寸。 
■ XPOS= - 在X轴上设置表格的原点。 
■ YPOS= - 在Y轴上设置表格的原点。 
■ ALPHA= - 设置表格的背景不透明度。 
■ FILTER= - 设置表格的过滤器字符串。 

• COLLISION – 切换碰撞统计数据的显示状态。 
• CROWD – 切换群体统计数据的显示状态。 
• D3D10RHI – 切换DirectX 10统计数据的显示状态。 
• D3D9RHI – 切换DirectX 9统计数据的显示。 
• DECALS – 切换decal(贴花)渲染统计数据的显示。 
• DLE – 切换动态光照环境渲染统计数据的显示。 
• ENGINE – 切换一般引擎统计数据的显示。 
• FACEFX – 切换FaceFX动画统计数据的显示。 
• FLUIDS – 切换流体仿真统计数据的显示 (也就是流体表面)。 
• FPS – 切换帧频率统计数据的显示。 
• FPSCHART – 切换帧频率表格统计数据的显示。 
• GAME – 切换游戏统计数据的显示。(更新时间等) 
• INSTANCING – 切换实例化统计数据的显示。 
• MEMORY – 切换一般内存统计数据的显示。 
• MEMORYCHURN – 切换处理内存分配的统计数据的显示。 
• NAVMESH – 切换导航网格物体统计数据的显示。 
• NET - 切换网络统计数据显示的 打开/关闭 状态。 
• NONE - 关闭所有统计数据的显示。 
• OCTREE – 切换八叉树相关统计数据的显示。 
• PARTICLES – 切换一般粒子统计数据的显示。 ◦ BEAMPARTICLES – 切换关于光束发射器的统计数据的显示状态。 
◦ MESHPARTICLES – 切换关于网格物体发射器的统计数据的显示状态。 
◦ TRAILPARTICLES – 切换关于尾部发射器的统计数据的显示状态。 

• PATHFINDING – 切换一般寻路统计数据的显示。 
• PHYSICS – 切换一般物理统计数据的显示。 ◦ PHYSICSCLOTH – 切换关于布料仿真统计数据的显示。 
◦ PHYSICSFIELDS – 切换关于物理域的统计数据的显示状态。 
◦ PHYSICSFLUIDS – 切换关于PhysX流体仿真统计数据的显示。 

• SCENRENDERING – 切换场景渲染统计数据的显示。 
• SCENEUPDATE – 切换一般场景更新统计数据的显示。 
• SCRIPT – 没有和这个命令相关的统计数据。 
• SHADERCOMPILING – 切换着色器编译统计数据的显示。 
• SHADERCOMPRESSION – 切换着色器压缩统计数据的显示。 
• STREAMING – 切换动态载入关卡统计数据的显示。 
• THREADING – 切换引擎中运行的中线程的统计数据的显示。 
• UI – 切换UIScene统计数据的显示。 

STAT也可以和以下参数结合使用来修改关于显示什么数据和数据显示方式的设置: 

• COLOR – 未实现。 
• COUNTERS – 切换计数器和累加器的渲染。 
• CYCLES - 切换循环计数器的渲染。 
• EXCLUSIVE – 切换所有独占数据的显示。 
• FONTSCALE [scale] - 可以缩放描画这个统计数据的字体大小。 
• GROUPED – 设置统计数据渲染模式为分组渲染。 
• HIER / HIERARCHY – 设置渲染模式为层次结构化渲染。 
• INCLUSIVE – 切换所有包含数据的显示。 
• LIST – 根据以下信息在控制台上显示统计数据组的名称。 ◦ GROUPS – 显示所有可用组的名称。 
◦ SETS – 显示.ini文件的CustomStats部分中所保存的任何设置的名称。 
◦ Group [name] – 显示指定组中包含的统计数据。 

• NAME [name] – 根据指定的名称启用或禁用统计数据。 
• NAV [index] – 当以层次结构方式渲染时,导航统计数据树结构。这个索引是要导航到的统计数据的编号。 
• NONE – 切换当前可见的所有统计数据的显示。 
• SAVE [name] – 使用指定的名称作为组名称将所有当前可见的统计数据输出到*Engine.ini文件的CustomStats 部分。 
• SLOW [threshold] [duration] – 设置渲染模式仅显示慢循环统计数据。Threshold默认为0.01f,duration默认为10.0f。 
• STARTFILE – 开始捕获统计数据文件以便和StatsViewer结合使用。 
• STOPFILE – 完成捕获统计数据文件。 

内存和性能命令 

• BEGINTRACKINGTHREAD – 开始跟踪当前线程。 
• DEFERRED_STOPMEMTRACKING_AND_DUMP - 以延迟的方式执行 SNAPSHOTMEMORY、STOPTRACKING和DUMPALLOCSTOFILE命令。 
• DUMPFPSCHART – 输出FPS表格信息。 
• DUMPMEMCHART – 输出内存表格信息。 
• DUMPPARTICLECOUNTS – 输出关于粒子数量的信息。 
• DUMPSLACKTRACES – 输出数组闲置跟踪的踪迹;仅当启用TRACK_ARRAY_SLACK时有效。 
• ENDTRACKINGTHREAD – 停止跟踪当前线程。 
• MEM - 显示所分配的内存信息。 
• MEMFRAGCHECK – 执行内存碎片检测。直到下一个垃圾回收后延迟真正的执行,已获得精确的读取。 
• MEMLEAKCHECK – 执行内存泄漏检测。直到下一个垃圾回收后延迟真正的执行,已获得精确的读取。 
• MEMORYSPLIT – 输出关于内存在各种资源之间如何分割的信息。 
• MEMREPORT [option] – 执行一组命令来输出各种信息和内存信息。唯一的选项是: ◦ FRAG – 使得同时执行MEMFRAGCHECK(内存碎片检测)。 

• MEMTAG_UPDATE – 强制更新MemTagging系统。 
• MESHESWITHCOLLISION – 输出所有已加载静态网格物体列表及他们是否具有碰撞网格物体的相关信息。 
• PARTICLEMEMORY – 输出粒子所占用的内存情况的信息。 
• PARTICLEMESHUSAGE – 输出和粒子系统结合使用的静态网格物体的数量的信息。 
• PROFILESCRIPT / SCRIPTPROFILER - 用于分析脚本执行; ◦ * START* - 开始脚本分析。 ■ TIME= - 捕获特定时间段(以秒为单位)内的数据。 

◦ STOP - 结束脚本分析。 
◦ RESET – 重置脚本分析。 

• QUERYPERFDB – 输出这台机器上任务的累积时间;按任务分组,按时间间隔排序。 
• RENDERTARGET_MEM_USAGE – 输出将渲染目标到日志中所占用的内存。 
• RESETFPSCHART – 重置FPS表格信息。 
• RESTEMEMCHART – 重置内存表格信息。 
• RESETSLACKTRACKING – 重置数组闲置跟踪;仅当启用TRACK_ARRAY_SLACK时有效。 
• SNAPSHOTMEMORY - 
• TOGGLESLACKTRACKING – 打开或关闭数组闲置跟踪;仅当定义了 TRACK_ARRAY_SLACK时有效。 
• TRIMMEMORY – 尝试将未使用的片段的内存返回给系统。 

显示命令 

• GAMMA [value] – 修改显示gamma级别。 
• SETRES [height]x[width][w|f] -改变分辨率(w = 窗口; f = 全屏),比如 800x600f 

渲染命令 

• AVAILABLETEXMEM – 输出可用的贴图内存的量。 
• CAPTUREMODE - 切换所有屏幕上消息或警告的显示。 
• COLORGRADING – 切换颜色分级的应用。 
• DUMPAVAILABLERESOLUTIONS – 输出所有可用显示分辨率。 
• FREEZEALL – 冻结渲染和动态载入。 
• FREEZERENDERING – 强制冻结渲染或继续渲染。允许渲染出输入命令的那个时刻所在的场景。 
• FREEZESTREAMING – 强制冻结或继续动态载入。 
• FULLMOTIONBLUR [value] – 如果value的值为-1则为FullMotionBlur使用默认的引擎设置。如果value的值为0则强制关闭 Full MotionBlur(完全运动模糊)。如果value的值为1则打开FullmotionBlur(完全运动模糊)。 
• LIGHTMAPSTREAMINGFACTOR [value] – 设置光照贴图动态载入的强度。较小的值(默认0.03f)意味着动态载出时速度更强烈。 
• LISTMISSINGPHYSICALMATRIALS – 输出一系列没有物理材质关联的所有材质实例。 
• LISTTEXTURES – 输出一个贴图列表。 ◦ ALPHASORT – 强制列表按照字母排序而不是按照大小排序。 
◦ NONSTREAMING – 列出非动态载入贴图。 
◦ STREAMING – 列出动态载入贴图。 

• LOWRESTRANSLUCENCY – 切换向下采样半透明缓冲的应用。 
• MOVIE [command] – 控制所有的视频。命令可以是以下之一: ◦ PAUSE – 停止所有视频。 
◦ PLAY – 开始播放所有视频。 
◦ STOP – 停止播放所有视频。 

• MOVIEHIDE – 设置隐藏当前视频。 
• MOVIESHOW – 设置当前视频可见。 
• MOVIETEST [movie] – 处于测试目的播放指定视频,等待播放完成后,停止视频。 
• NEXTVIEWMODE – 切换到下一个视图模式。 
• NUMSTREAMEDMIPS [lodgroup] [mips] – 设置指定贴图组所使用的mips的数量。 
• PREVVIEWMODE – 切换到前一个视图模式。 
• RECOMPILESHADERS – 强制根据以下命令之一重新编译着色器: ◦ ALL – 重新编译所有着色器。 
◦ BPCF – 仅重新编译SRG_GLOBAL_BPCF_SHADOW_LOW着色器。 
◦ CHANGED – 仅重新编译改变的着色器。 
◦ GLOBAL – 重新编译全局着色器。 
◦ GLOBALMISC – 仅重新编译SRG_GLOBAL_MISC着色器。 
◦ MATERIAL [name] – 重新编译指定材质。 
◦ MATERIALSHADERTYPE [type] – 重新编译指定着色器类型的材质。 
◦ SHADOW – 仅重新编译SRG_GLOBAL_MISC_SHADOW着色器。 
◦ VF [name] - 重新编译指定的顶点工厂。 

• RECOMPILEGLOBALSHADERS – 重新编译全局着色器。和RECOMPILESHADERS GLOBAL一样。 
• SETMAXMIPLEVEL [max] – 设置光照贴图所使用的最大mip级别。 
• SHADERCOMPLEXITY [max] – 设置和SHADERCOMPLEXITY视图模式结合使用的最大复杂度值。 
• SHADOWMAPSTREAMINGFACTOR – 设置动态载出贴图的强度。较小的值(默认0.09f)意味着动态载出时速度更强烈。 
• SHOW - 切换各种项目的显示(仅用于客户端)。 ◦ BOUNDS – 切换actor边界的显示。 
◦ BSP – 切换BSP几何体的显示。 
◦ BSPSPLIT – 切换BSP分割的显示。基于模型组件关联性控制BSP。 
◦ CAMFRUSTUMS – 切换相机平头截体的显示。 
◦ COLLISION – 切换碰撞统计数据的显示状态。 
◦ CONSTRAINTS – 切换物理约束的显示。 
◦ COVER – 切换掩体位置的显示。 
◦ DECALINFO – 切换decals(贴花)的调试开发信息的显示(平头截体、切线轴等)。 
◦ DECAL – 切换decal actors的显示。 
◦ DYNAMICSHADOWS – 切换动态阴影的显示。 
◦ FOG – 切换雾actors的显示。 
◦ FOLIAGE – 切换植被的显示。 
◦ HITPROXIES – 切换点击代理的显示。使用不同的颜色描画每个点击代理。 
◦ INSTANCEDSTATICMESHES – 切换实例化静态网格物体的显示。 
◦ LENSFLARES – 切换镜头眩光的显示。 
◦ LEVELCOLORATION – 切换是否使用同一颜色渲染同一场景中的所有对象。 
◦ MESHEDGES – 切换是否已填充视图模式显示网格物体边缘。 
◦ MISSINGCOLLISION – 切换高亮显示启用了碰撞但是没有碰撞网格物体的静态网格物体。 
◦ NAVNODES – 切换和寻路相关的actors的显示。 
◦ NONZEROEXTENT 
◦ PARTICLES – 切换一般粒子几何体的显示。 
◦ PATHS – 切换路径或导航网格物体的显示。 
◦ POSTPROCESS – 切换后期处理特效的显示。 
◦ RIGIDBODY 
◦ SCENCAPTURE – 切换场景捕获探测器的更新。 
◦ SHADOWFRUSTUMS – 切换未被遮挡的阴影平头截体的显示状态。 
◦ SKELETALMESHES - 切换骨架网格物体几何体的显示。 
◦ SKELMESHES – 切换骨架网格物体几何体的显示。 
◦ SPEEDTREES – 切换speedtree几何体的显示。 
◦ SPLINES – 切换样条曲线的显示。 
◦ SPRITES – 切换平面粒子组件的显示。 
◦ STATICMESHES – 切换静态网格物体几何体的显示。 
◦ TERRAIN – 切换地形几何体的显示。 
◦ TERRAINPATCHES – 切换地形块的显示。在每个块的周围描画一个轮廓。 
◦ TRANSLUCENCYDOF – 切换半透明模糊因数的显示。 
◦ UNLITTRANSLUCENCY – 切换不带光照半透明物体的显示。 
◦ VOLUMES – 切换体积的显示。 
◦ ZEROEXTENT 

• SHOWMATERIALDRAWEVENTS – 切换描画事件产生的显示。 
• SHOWMIPLEVELS – 切换使用固体颜色而不是使用光照贴图来可视化mip级别的应用。 
• TEXTUREDEFRAG – 整理贴图池碎片。 
• TEXTUREDENSITY [min] [ideal] [max] – 设置最小、理想和最大贴图密度值,以便和TEXTUREDNEISTY视图模式结合使用。 
• SHOWSELECTEDLIGHTMAP – 切换是否可视化调试相机显示的光照贴图。 
• TOGGLEAO – 切换环境遮挡后期处理。 
• TOGGLECOLLISIONOVERLAY – 切换地形碰撞网格物体覆盖物的渲染。 
• TOGGLEMINDISTORTION – 切换是将扭曲应用到最小屏幕空间范围还是整个屏幕。 
• TOGGLEMINTRNSLUCENCY – 切换半透明是否应用于原是格式。 
• TOGGLEOCCLUSION – 切换遮挡的应用。 
• TOGGLESCENE – 切换场景颜色后期处理。 
• TOGGLEUI – 切换UI的更新和显示。 
• TRACKTEXTURE [name] – 将贴图名称添加到动态载入系统中来跟踪包含那个名称的所有贴图。 
• UNTRACKTEXTURE [name] – 从贴图跟踪中删除贴图名称。 
• VIEWMODE [value] - 设置渲染模式。 ◦ BRUSHWIREFRAME – 以线框视图渲染场景,显示画刷边缘。 
◦ LIGHTCOMPLEXITY – 使用特殊着色器渲染场景,该着色器可以使用特定的颜色显示每个表面上的光照复杂度(影响表面的动态光源的数量)来展示光源的数量。 
◦ LIGHTINGONLY – 仅使用几何体上的光照信息来渲染场景。 
◦ DETAILLIGHTING - 使用受到法线贴图的光照影响的中性色彩材质渲染场景。 
◦ LIGHTMAPDENSITY – 通过使用用于显示每个表面上光照贴图密度的专用着色器渲染场景。 
◦ LITLIGHTMAPDENSITY - 通过使用用于显示每个表面上光照贴图像素密度的专用着色器渲染完全带光照的场景。这从本质上讲是 LIGHTMAPDENSITY和LIGHTINGONLY视图模式的结合。 
◦ SHADERCOMPLEXITY – 通过使用用于显示每个表面上所应用的材质的复杂度的专用着色器渲染场景,使用不同的颜色代表着色器指令的多少。 
◦ TEXTUREDENSITY – 使用用于显示每个表面上漫反射通道上的贴图像素密度的专用着色器渲染场景,使用特定的颜色来代表密度。 
◦ UNLIT – 使用平坦的着色渲染场景,也就是没有光照。 
◦ WIREFRAME – 以线框视图渲染场景。 

贴图mip-map衰减命令 

• TOGGLEMIPFADE -却换 打开/关闭 所有的贴图衰减。 
• PAUSERENDERCLOCK - 暂停/继续 贴图衰减所使用的渲染线程时钟。暂停它将会冻结衰减。然后任何新的动态载入的地图都将是低分辨率(不会淡入)。然后您可以切换mip衰减 和继续时钟来查看前后的不同(并测量性能)。 

物理命令 

• DUMPAWAKE – 输出所有激活的物理刚体的列表。 
• MESHSCALES – 将所有静态网格物体的缩放比例值输出到日志文件中。 
• NXDUMP – 输出所有物理信息到XML文件中。 
• NXDUMPMEM – 输出所有PhysX内存分配到日志中。 
• NXSTATS – 启用输出所有物理统计数据。 
• NXVIS – 启用物理仿真的可视化。 ◦ PHYSX_CLEAR_ALL – 清除当前启用的所有可视化标志。 
◦ ACTOR_AXES – 切换actor坐标轴的可见性。 
◦ BODYAXES – 切换刚体的坐标轴的可见性。 
◦ BODY_ANGULAR_VELOCITY – 切换物理刚体角速度的可见性。 
◦ BODY_JOINT_GROUPS – 切换关节组的可见性。 
◦ BODY_LINEAR_VELOCITY – 切换物理刚体线速度的可见性。 
◦ CCD – 切换CCD骨架的可见性。 
◦ CCDTESTS – 切换CCD测试的可见性。 
◦ CLOTH_ATTACHMENT –切换布料附加物的可见性。 
◦ CLOTH_COLLISIONS – 切换布料碰撞的可见性。 
◦ CLOTH_MESH – 切换网格物体线框的可见性。 
◦ CLOTH_SELFCOLLISIONS – 切换布料自身碰撞的可见性。 
◦ CLOTH_SLEEP – 切换整体布料休眠的可见性。 
◦ CLOTH_SLEEPVERTEX – 切换顶点休眠的可见性。 
◦ CLOTH_TEARABLE_VERTICES – 切换可撕裂顶点的可见性。 
◦ CLOTH_TEARING – 切换布料撕裂的可见性。 
◦ CLOTH_VALIDBOUNDS – 切换布料的有效边界的可见性。 
◦ CLOTH_WORKPACKETS – 切换PPU仿真群集的可见性。 
◦ COLLISION – 切换物理简化碰撞几何体的可见性。 
◦ COLLISION_AABBS – 切换世界空间中沿着坐标轴对齐的边界的可见性。 
◦ COLLISION_AXES – 切换碰撞几何体坐标轴的可见性。 
◦ COLLISION_COMPOUNDS – 切换组合边界的可见性。 
◦ COLLISION_DYNAMIC – 切换动态剪除结构的可见性。 
◦ COLLISION_EDGES – 切花碰撞网格物体激活的边缘的可见性。 
◦ COLLISION_FNORMALS – 切换碰撞网格物体和表面法线的可见性。 
◦ COLLISION_FREE – 切换“自由”剪除结构的可见性。 
◦ COLLISION_SPHERES – 切换边界球体的可见性。 
◦ COLLISION_STATIC – 切换静态剪除结构的可见性。 
◦ COLLISON_VNORMALS – 切换碰撞网格物体和顶点法线的可见性。 
◦ CONTACTERROR – 切换接触错误的可见性。 
◦ CONTACTFORCE – 切换接触力的可见性。 
◦ CONTACTPOINT – 切换接触点的可见性。 
◦ CONTACTS – 切换接触法线的可见性。 
◦ FLUID_BOUNDS – 切换流体发射器AABB边界的可见性。 
◦ FLUID_DRAINS – 切换流体发射器排水通道形状的可见性。 
◦ FLUID_DYN_COLLISION – 切换流体发射器动态碰撞的可见性。 
◦ FLUID_EMITTERS – 切换流体发射器的可见性。 
◦ FLUID_KERNEL_RADIUS – 切换流体发射器内核半径的可见性。 
◦ FLUID_MESH_PACKETS – 切换具有流体发射器的网格物体包的可见性。 
◦ FLUID_MOTION_LIMIT – 切换流体发射器运动限制的可见性。 
◦ FLUID_PACKET_DATA – 切换流体发射器包数据的可见性。 
◦ FLUID_PACKETS – 切换流体发射器包的可见性。 
◦ FLUID_POSITION - - 切换流体发射器粒子位置的可见性。 
◦ FLUID_STC_COLLISION – 切换流体发射器静态碰撞的可见性。 
◦ FLUID_VELOCITY – 切换流体发射器粒子速度的可见性。 
◦ FORCEFIELDS – 切换力域的可见性 
◦ JOINTLIMITS – 切换关节限制的可见性。 
◦ JOINTLOCALAXES – 切换关节局部坐标轴的可见性。 
◦ JOINTWORLDAXES – 切换关节世界坐标轴的可见性。 
◦ MASSAXES – 切换刚体的质量坐标轴的可见性。将休眠的刚体描画为黑色,激活的刚体描画为白色,同时输入某个休眠组中的休眠刚体描画为红色。 
◦ SOFTBODY_ATTACHMENTS – 切换软体附加物的可见性。 
◦ SOFTBODY_COLLISIONS – 切换软体刚体碰撞的可见性。 
◦ SOFTBODY_MESH – 切换软体网格物体的可见性。 
◦ SOFTBODY_SLEEP – 切换完全休眠的软体的可见性。 
◦ SOFTBODY_SLEEP_VERTEX – 切换每个顶点都处于休眠状态的软体的可见性。 
◦ SOFTBODY_TEARABLE_VERTICES – 切换软体可撕裂顶点的可见性。 
◦ SOFTBODY_TEARING – 切换软体撕裂的可见性。 
◦ SOFTBODY_VALIDBOUNDS – 切换软体有效边界的可见性。 
◦ SOFTBODY_WORKPACKETS – 切换PPU仿真软体群集的可见性。 
◦ WORLDAXES – 切换世界坐标轴的可见性。 

• NXVRD – 使用远程调试器。 ◦ CONNECT [ip] – 如果没有提供ip地址或主机,则使用指定的ip地址或主机连接到远程调试器。 
◦ DISCONNECT – 从远程调试器断开。 

音频命令 

• AUDIO FLUSH TRUE - 冲掉所有音频缓冲。 
• DISABLELPF – 禁用所有源上的低通滤波来进行测试。 
• ISOLATEDRYAUDIO – 删除混响来隔离干声。 
• ISOLATEREVERB – 删除干声来隔离混响。 
• LISTAUDIOCOMPONENTS – 输出所有的音频组件列表。 
• LISTSOUNDCLASSES – 按类输出已加载的音频列表。 
• LISTSOUNDCLASSVOLUMES – 输出每个声音类的所有音量和音调的列表。 
• LISTSOUNDDURATIONS – 输出所有声音波形和他们的持续时间。 
• LISTSOUNDMODES – 输出所有音效模式的列表。 
• LISTSOUNDS – 输出所有已记载音频及它们的内存占用量的列表。 
• LISTWAVES – 输出波形实例及它们是否具有源的列表。 
• MODIFYSOUNDCLASS [soundclass] [VOL=volume] – 使用给定音量修改指定的声效类别。 
• PLAYSOUNDCUE – 播放任意一个sound cue。 
• PLAYSOUNDWAVE – 播放任意一个声音波形。 
• RESETSOUNDSTATE – 将所有音量重置为它们的默认值,并删除所有测试过滤器。 
• SETSOUNDMODE [mode] – 将声效模式设置为指定模式。 
• SOUNDTEMPLATEINFO – 输出关于每个唯一声效的信息。 
• TESTFEBLEED – 在所有音频源上设置低频率音效渗入到最大值以进行测试。 
• TESTLPF – 在所有音频源上设置低通过滤器为最大值以进行测试。 
• TESTSTEREOBLEED – 在所有音频上设置立体声渗入到最大值以进行测试。 

网络命令 

• CRACKURL - 分解传入到引擎中的URL和参数?,以便 地图/游戏 显示所有参数。 
• PACKAGEMAP – 将所有打开的网络连接的包地图输出到日志文件中。 
• SOCKETS – 将所有打开的网络连接的列表输出到日志文件中。 

静态图片捕获和演示录制命令 

关于这个的更多信息,可以是在[[DemoRecording] [演示录制]]页面找到。 

• BUGSCREENSHOT – 获得bug的屏幕截图。 
• DEMOPLAY - 播放先前录制的演示视频。 
• DEMOREC - 准对下一个播放录制演示。 
• DEMOSTOP - 停止演示 播放\录制。 
• SHOT / SCREENSHOT – 以当前的屏幕分辨率截取屏幕截图。 
• TILEDSHOT [factor] – 以当前分辨率乘以指定因数为分辨率来获取屏幕截图。 

视频捕获 

关于这个的更多信息,可以是在视频捕获]页面找到。 

• STARTMOVIECAPTURE – 启动游戏中的视频捕获。 
• STOPMOVIECAPTURE - 停止游戏中的视频捕获。 

游戏性命令 

• SAVEGAME - 告诉引擎保存当前的游戏状态。 请参照 保存和加载游戏?页面获得更多信息。 
• SAY -仅用于GUI服务器。 

导航和寻路指令 

• ADDLONGREACHSPECS [option] – 添加较长到达范围的规格说明。Option(选项)是: ◦ NUMPATHS= - 要添加的路径的数量。 

• BUILDCOVER [option] – 添加完到达范围规格说明后生成激活链接和专用移动标志。Option(选项)是: ◦ FROMDEFINEPATHS= - 是否使用已定义的路径。 

• BUILDNETWORKIDS – 构建导航节点的网络IDs。 
• DEFINEPATHS [options] – 清除所有路径然后重新构建它们。Options(选项)是: ◦ REVIEWPATHS= - 如果创建了任何路径将会检查这些路径。 
◦ SHOWMAPCHECK= - 在构建完路径后出现地图检测对话框。 
◦ UNDEFINEPATHS= - 在构建路径之前不会定义路径。 

• FINISHPATHBUILD – 对路径构建过程执行结束和清除处理。 
• GENERATENAVMESH – 重新构建导航网格物体。 
• NAVOCTREE [options] – 可以使用以下选项: ◦ STATS – 输出关于导航八叉树的统计数据。 
◦ FIND – 找到八叉树中的指定节点。 ■ NAME= - 要查好的节点的名称。 

• POSTDEFINEPATHS – 在所有Kismet序列对象上调用PostPathBuild。 
• PREDEFINEPATHS – 在所有Kismet序列对象上调用PrePathbuild。 
• SETPATHCOLLISION [option] – 启用或禁用路径碰撞。Option(选项)是: ◦ ENABLED= -是启用路径碰撞还是禁用路径碰撞。 

用户界面命令 

• DEBUGUIPREFAB [object] – 输出关于某个特定UI预制对象的信息。 
• SHOWINPUTHANDLERS – 输出指定UIScene中的特定按键的输入手柄。 ◦ SCENE= - 指定要在其中进行搜索的UIScene 。 
◦ KEY= - 指定要查找的按键以便进行订阅。 

• SHOWUNRESOLVEDPOSITIONS – 输出指定UIScene中位置过期的任何对象。 ◦ SCENE= - 指定要在其中进行搜索的UIScene 。 

• TOGGLEDEBUGINPUT [true/false] - 显示调试信息(CTRL-ALT-D来切换显示信息;CTRL-F切换显示聚焦控件)。 

其他命令 

• GET [class] [property] - 返回类别属性的默认值。 
• GETALL [class] [property]-返回所有实例化类别的值属性。 
• DISPLAYALL / DISPLAYALLSTATE - 和"getall"一样, 但是会在屏幕上实时地显示输出,和统计数据类似。 
• DISPLAY [object] [property] - 仅显示指定单独对象的指定属性。仅当要求了足够的外部链时才能是对象唯一可识别。 
• DISPLAYCLEAR - 清除所有display* 输出。 
• DLE – 输出所有禁用的动态光照环境列表。 
• VERIFYCOMPONENTS – 迭代所有组件以验证完整性。 
• LISTANIMSETS – 输出动画集列表。 ◦ ALPHASORT – 按字母顺序排序列表。 

• ANIMSEQSTATS – 输出动画序列统计数据。 
• LISTANIMSETS – 输出一个动画集列表。 ◦ ALPHASORT – 按字母顺序排序列表。 

• LISTANIMTREES – 输出动画树列表。 ◦ ALPHASORT – 按字母顺序排序列表。 

• LISTMATINEEANIMSETS – 输出当前关卡中Matinee所使用的动画集的列表。 ◦ ALPHASORT – 按字母顺序排序列表。 

• SET - 这个是所有这些命令中最强大的一个。它的第一个参数字符串是一个类别的名称,第二个字符串是变量的名称,第三个字符串是一个数值。 给定类(包括子类)的所有对象将会把给定的变量设置为给定的值。 比如,"set Pawn CollisionRadius 200"将会使所有的pawns的碰撞半径为200(请参照Pawn技巧与帮助?获得更多信息)。在版本V3323中,当在网络上使用时, set 命令有一些限制,这个限制是为了防止网络欺骗而设置的。 
• SETNOPEC – 和SET命令一样,但是不能激活 Pre/Post Edit Change(提前/滞后 编辑改变)通知。 
• SHOWHOTKISMET – 输出前10个最常用的Kismet序列选项。 

系统设置命令 

系统设置命令允许您修改系统设置文档中描述的设置,这些设置一般通过 应用程序兼容性系统设置。 

• SCALE [scale command] - 这里[scale command] 是以下之一: ◦ ADJUST - 启用/禁用 使用Xbox的“shoulder”按钮绑定到SCALE DECR和SCALE INCR。 
◦ DECR - 减少ScreenPercentage设置。 
◦ DUMP - 转存当前系统设置到日志中。 
◦ DUMPINI - 转存INI系统设置到日志中。 
◦ INCR - 增加ScreenPercentage设置。 
◦ LEVEL [0-5] - 设置其中一个应用程序兼容性级别,范围从0到5。 
◦ LOWEND - 采取个非常低端的设置列表 
◦ HIGHEND - 采取一个非常高端的设置列表。 
◦ RESET - 重新从INI文件中加载系统设置。 
◦ SET [setting] [value] - 将特定设置项(系统设置文档中列出的项) 设置为某个值。 
◦ TOGGLE [setting] - 切换一个布尔设置。 

移动设备命令 

这些命令只适用于移动设备平台(专门针对 iOS) 

• CALIBRATETILT - 根据设备的当前方位再校准设备的倾斜情况。 
• MOBILE/IPHONE [command] - 这里 command 是以下之一: ◦ DISABLEROTATION - 在用户旋转视图的时候禁用视图自动旋转。 
◦ ENABLEROTATION - 在用户旋转视图的时候启用视图自动旋转。 
◦ DISABLESLEEP - 会阻止设备的屏幕进入睡眠状态。 
◦ ENABLESLEEP - 会让设备的屏幕进入睡眠状态。 
◦ ABOUT [url] - 在平台的网页浏览器中加载网页。使用 MobileEngine.ini 中的 AboutURL 配置设置,按后使用在这个命令中指定的 url 替换 `~ 。 
◦ SAVESETTING [key] [value] - 将一个键/值字符串对保存到用户的设置中。 
◦ LOADSETTING [key] - 从用户设置中为指定 key 加载值。 
◦ PLAYSONG [song] - 播放在硬盘中给定的 mp3 song (文件名称不含路径或扩展名)。 
◦ STOPSONG - 停止当前在硬盘中播放的 mp3 歌曲。 
◦ APPEXIT - 在设备上退出这个应用程序。 

针对编辑器的命令 

请参照编辑器控制台命令页面获得关于仅在编辑器中使用的更多命令。 

 

控制台命令概述 
-------------------------------------------------------------------------------- 
控制台命令是您可以在游戏中或在编辑器中运行的基于字符串的命令。它们也被称作 可执行命令 。 

要使用编辑器控制台命令,请将它们键入编辑器命令行输入框或编辑器记录窗口的命令行,然后按下 Enter(回车键)。它们可以执行在编辑器中编辑地图时使用的大多数常见函数。 

还可以将命令的列表存储在系统目录的文本文件中,通过在控制台键入 exec [文件名] 执行。 

命令列表 
-------------------------------------------------------------------------------- 
除了常用的引擎控制台命令,下面是一个编辑器控制台命令可以支持的引擎的列表... 

常用命令 

• BAKEANIMSETS – 迭代关卡中使用的所有动画集,创建它们的副本,删除副本中所有未使用的动画序列,然后指定副本替换原动画集。 
• BUGITGO [location] [rotation] – 使用给定的旋转量将所有视口相机移动到给定的位置。 
• BUILDLIGHTING – 重新编译当前地图的光照。 
• CAMERA – 常用相机命令 ◦ ALIGN – 将所有视口相机聚焦在选中的 actor ■ NAME= - 将所有视口相机聚焦在指定名称的 actor 上。 
■ ACTIVEVIEWPORTONLY – 只聚焦活动的视口。 

◦ SNAP – 将透视图视口相机与第一个选中的 actor 对齐。 

• CHECKSOUNDS – 输出通过使用 TAGSOUNDS 命令标记的所有声波的相关信息。 
• CLASS SPEW [PACKAGE=package] – 将指定包中的所有脚本导出到 ExportedScript 目录。 
• CLEANBSPMATERIALS – 会清除空 BSP 材质。 
• CLEANUPOLDBUILDINGS – 重新编译地图中所有 ProcBuildings。 
• CLEANUPOLDBUILDINGTEXTURES – 修复贴图和与使用错误标志设置的 ProcBuildings 相关的材质。 
• CTRLTAB – 会弹出 Ctrl + Tab 菜单。 
• DELETE – 会删除选中的 actor。 
• DETLIGHT - 会切换 Lightmass 版本的确定性光照模式。 
• DUMPMODELGUIDS – 会输出所有模型的 GUID。 
• DUMPPRIMITIVESTATS – 会输出一个包含有关在关卡中使用的图元的统计数据的 CSV 文件。 
• DUMPSELECTION – 会输出所有选中的 actors 和所有选中的对象的列表。 
• DUMPTHUMBNAILSTATS [option] – 会输出每个包中的缩略图数。选项可以包括: ◦ SHOWIMAGEDATA – 包括有关缩略图图片。 

• DUPLICATE – 会复制选中的 actor。 
• EDCALLBACK – 常用编辑器回调 ◦ FITTEXTURETOSURFACE – 会调整选中的表面的 UV 使应用的材质与表面相符。 
◦ SELECTEDPROPS – 会打开选中的 actor 的 Properties Window(属性窗口)。 
◦ SURFPROPS – 会打开选中的表面的 Surface Properties Window(表面属性窗口)。 

• EDIT – 常用编辑命令 ◦ COPY – 将选项复制到剪切板。 
◦ CUT – 将选项剪切到剪切板。 
◦ PASTE [TO=location] – 将剪切板内容粘贴到地图中。位置可以是: ■ HERE – 会将剪切板内容粘贴到鼠标所在位置。 
■ ORIGIN – 会将剪切板内容粘贴到世界原点。 

• EXEFILE [filename] – 执行一个包含命令列表的文件。 
• EXPORTLOC [package] – 会导出并生成指定包的本地化文件。 
• FARPLANE [DIST=dist] – 将渲染的远处平面设置为指定的距离。 
• FIXBUILDINGLODS [building] – 为指定 ProcBuilding 修复 LODs。 
• FIXUPPROCBUILDINGLODQUADSAFTERSAVE – 保存地图后修复 ProcBuildings 上的材质指针。 
• FORCEREALTIMECOMPRESSION [Package=package] – 强制在指定包的所有声波上使用实时压缩。 
• INSTCOMPOUNT – 会输出所有 InstancedStaticMeshComponents 的列表以及其中每个使用多少实例。 
• JUMPTO [location] – 将所有视口相机移动到指定的位置。 
• LIGHTMASSDEBUG – 切换是自动启动 Lightmass 还是必须手动启动。 
• LIGHTMASSSTATS – 触发参加 Lightmass 代理是否会将详细的统计数据报告到记录中。 
• LMDEBUGMAT – 触发 Lightmass 是否会将每个生成的材质属性样本的 BMP 图片输出到 Screenshots\Materials 目录。 
• LMDEBUGPAD – 通过 Lightmass 触发光照贴图的调试台。 
• LMIMM - 会触发是否导入贴图,但是不会完成导入后立即进行处理。 
• LMIMMEDIATE – 会触发是否导入贴图,但是不会完成导入后立即进行处理。 
• LMIMP – 会启动是否在导入贴图时进行处理。要求启用立即处理模式。 
• LMPADDING – 通过 Lightmass 触发贴图板。 
• LMSORT – 触发是否按照贴图像素消耗对贴图进行分类。 
• OBJ – 常用对象命令 ◦ EXPORT [PACKAGE=package] [TYPE=type] [FILE=file] [NAME=name] – 将具有给定名称的给定类型的对象导出到指定文件。 
◦ RENAME [OLDPACKAGE=oldpackage] [OLDGROUP=oldgroup] [OLDNAME=oldname] [NEWPACKAGE=newpackage] [NEWGROUP=newgroup] [NEWNAME=newname] – 会将对象相应的旧包、旧组和旧名称重新命名为新包、新组和新名称。 
◦ SAVEPACKAGE [FILE=file] [PACKAGE=package] – 将给定的包保存到指定的文件。 

• PARTICLE – 常用粒子命令 ◦ RESET – 会重新启动粒子系统或关卡中的粒子系统。 ■ ALL – 会重置所有粒子系统。 
■ SELECTED – 只会重置选中的粒子系统。 

• PIVOT – 常用支点命令 ◦ CENTERSELECTION – 会将选择的支点移动到所有选中的 actor 的中心点。 
◦ HERE – 会将选择的支点移动到鼠标位置。 
◦ SNAPPED – 会将选择的支点移动到鼠标位置,但是就会与网格对齐。 

• PREFAB SELECTACTORSINPREFAB – 会选择所有组成已选预制实例的 actors。 
• PROCBUILDINGUPDATE [building] – 会更新给定的 ProcBuilding。 
• PRUNEANIMSETS – 会迭代所有使用的动画集并在没有使用的开头或结束处削减动画序列。应该只可以在运行 BAKEANIMSETS 后使用。 
• QUIT_EDITOR – 会退出编辑器。 
• REMOVECOOKEDPS3AUDIO [PACKAGE=package] – 会删除给定包中的声波的所有已经烘焙的 PS3 音频数据。 
• SAVEBRUSHASCOLLISION – 会将构建画刷几何体保存为当前已经选择的静态网格物体的碰撞几何体。 
• SELECT – 常用选择命令 ◦ BUILDERBRUSH – 选择构建画刷。 
◦ NONE – 取消选择所有 actor。 

• SELECTDYNAMIC – 选择所有具有地形、静态网格物体或骨架网格物体组件的 actors,而且不要设置为使用网格物体或预计算光照,在游戏中可见。 
• SELECTNAME [NAME=name] – 选择名称与给定的名称匹配的 actor。 
• SETDETAILMODE [MODE=mode] – 将细节模式设置为供已选的 actor 使用。 
• SETDETAILMODEVIEW [MODE=mode] – 将细节模式设置为供破裂使用。 
• SETREPLACEMENT [COMPONENT=component] [CLASS=class] – 将已选 actors 的组件替换为制定的组件(强制)。如果已经指定一个类,那么只替换与这个类匹配的组件。 
• SETSHADOWPARENT – 强制地将第一个已选的动态 actor 设置为所有剩余的已选动态 actors 的阴影父代。要求至少要选择 2 个动态 actors。 
• SKELETALMESH – 常用骨架网格物体命令 ◦ CHARBITS [OFFSET=offset] [ORIENTATION=orientation] – 在当前已选的包中为所有骨架网格物体设置偏移量和方位。(只使用 Generic Browser(通用浏览器)) 

• SWARMDISTRIBUTION – 触发是否为工作启用 Swarm 分布。 
• TAGSOUNDS – 为了调试的目的标记所有声波/ 
• TOGGLEDETERMINISTICLIGHTING – 为 Lightmass 编译版本触发确定性光照模式。 
• TRANSACTION – 取消和再执行命令 ◦ REDO – 执行上一次取消的操作。 
◦ UNDO – 取消上一次执行的操作。 

• UNMOUNTALLFACEFX – 如果当前不是在 FaceFX 编辑器中打开,那么卸载所有 FaceFX 资源。 

Actor 命令 

• ACTOR – 常用 actor 命令 ◦ ADD [CLASS=class] [SNAP=snap] – 将一个新的给定类的 actor 添加到具有可选对齐方式的地图中。 
◦ ALIGN – 将所有顶点与网格对齐。 ■ MOVETOGRID – 将所有已选的 actors 与最近的网格点对齐。 
■ ORIGIN – 将已选 actor 移动到世界原点。 
■ SNAPTOFLOOR – 将已选 actor 直接与位于它们下面的最近表面对齐。 

◦ BAKEPREPIVOT – 将当前支点位置设置为所有已选 actor 的 PrePivot。 
◦ CREATE_BV_BOUNDINGBOX [SNAPTOGRID=snap] – 从具有可选对齐方式的已选静态网格物体中创建一个阻挡体积。 
◦ CREATE_BV_CONVEXVOLUME [SNAPTOGRID=snap] [NORMALTOLERANCE=tolerance] [NLIMITTX=limitx] [NLIMITY=limity] [NLIMITZ=limitz] – 使用具有可选对齐方式的给定法线容差和限制从一个包含已选静态网格物体的凸面体积中创建阻挡体积。 
◦ DELETE – 删除已选的 actor。 
◦ DESELECT – 取消选择世界中的所有项。 
◦ DUPLICATE – 创建所有已选 actor 的副本。 
◦ FIND KISMET – 在 Kismet 中查找已选 actor。 
◦ HIDE – 在编辑器中隐藏 actor。 ■ SELECTED – 只隐藏已选 actor。 ■ STARTUP – 在启动时隐藏已选 actor。 

■ SELECTED – 只隐藏已选 actor。 

◦ LEVELCURRENT – 制作包含当前关卡中已选 actor 的关卡。 
◦ LEVELGRIDVOLUMECURRENT – 如果所有已选 actor 都属于相同的网格体积,那么将已选 actor 的关卡网格体积设置为当前关卡网格体积。 
◦ LINKSELECTED – 如果已选 actor 可以执行 LinkSelection 界面,那么链接已选 actor。 
◦ MIRROR [scaleVector] – 镜像使用给定比例的已选 actor。 
◦ MOVETOCURRENT - 将已选 actor 移动到当前关卡。 
◦ REPLACE – 替换选项。 ■ BRUSH – 将已选画刷替换为默认画刷。 
■ CLASS= - 将已选 actor 替换为给定类的实例。 

◦ RESET – 重置已选 actor 的特定属性。 ■ ALL - 重置已选 actor 的位置、支点、旋转量和比例。 
■ LOCATION – 重置已选 actor 的位置。 
■ PIVOT – 重置已选 actor 的支点。 
■ ROTATION – 重置已选 actor 的旋转量。 
■ SCALE – 重置已选 actor 的刻度。 

◦ SELECT – Actor 选择命令。 ■ ALL – 选择所有 actor。 ■ FROMOBJ – 选择与当前选项相同的类,或者具有匹配的静态网格物体,再或者具有匹配的 speedtree 的所有 actor。 

■ BASED – 根据当前选项选择所有 actor。 
■ BYPROPERTY – 使用匹配的属性值选择 actor。 
■ DELETED – 在标记为删除的地图中选择所有 actor。 
■ INVERT – 反向选择当前选项。 
■ KISMETREF [referenced] – 根据引用的值选择由 Kismet 引用或不引用的 actor。值 1 表示选择引用的选项。 
■ MATCHINGEMITTER - 选择所有具有相同类和供当前选项使用的粒子系统匹配的 actors。 
■ MATCHINGPROCBUILDINGRULESETS - 选择所有具有相同类和供当前选项使用的 ProcBuilding 规则集匹配的 actors。 
■ MATCHINGSKELETALMESH - 选择所有具有相同类和供当前选项使用的骨架网格物体匹配的 actors。 ■ ALLCLASSES – 删除相同类的限制。 

■ MATCHINGSTATICMESH – 选择所有具有想同类和供当前选项使用的静态网格物体匹配的 actor。 ■ ALLCLASSES – 删除相同类的限制。 

■ NAME= - 选择具有给定名称的 actor。 
■ NONE – 取消选择所有 actor。 
■ OFCLASS [CLASS=class] – 选择所有具有相同类的 actor 作为当前选项。 
■ OFSUBCLASS [Class=class] – 选择所有具有相同类的 actor 作为当前选项或及其子类。 
■ RELEVANTLIGHTS – 为所有当前已选的 actor 选择相关光照。 

◦ SYNCBROWSER – 如果可以在浏览器中查找已选 actor 使用的资源。 
◦ TOGGLE LOCKMOVEMENT – 触发是否可以使用变换控件对已选 actor 进行变换。 
◦ UNBAKEPREPIVOT – 将所有已选 actor 的 PrePivot 重置为 (0,0,0)。 
◦ UNHIDE – 在编辑器中显示 actor。 ■ ALL – 显示所有 actor。 ■ STARTUP – 启动时显示所有 actor。 

■ SELECTED – 只显示已选 actor。 ■ STARTUP - 启动时显示已选 actor。 

◦ UNLINKSELECTED – 如果已选 actor 可以执行 LinkSelection 界面,那么取消已选 actor 的链接。 
◦ UPDATE – 会更新已选 actor。 

编辑器模式命令 

• MODE – 常用模式命令 ◦ ALWAYSSHOWTERRAIN= - 启用或禁用始终渲染头顶上的 2D 视图中的地形。 
◦ CAMERAMOVE – 将编辑器设置为相机模式(默认模式)。 
◦ COVEREDIT – 设置编辑器进入掩体编辑模式。 
◦ GEOMETRY – 设置编辑器进入几何体模式。 
◦ GRID= - 启用或禁用对齐网格。 
◦ MESHPAINT – 设置编辑器进入网格物体描画模式。 
◦ ROTGRID= - 启用或禁用旋转网格。 
◦ SELECTIONLOCK= - 启用或禁用选择或取消选择 actors。 
◦ SHOWBRUSHMARKERPOLYS= - 在构建画刷和体积上启用或禁用标记多边形的显示。 
◦ SNAPDIST= - 设置对齐距离容差。 
◦ SNAPVERTEX= - 启用或禁用顶点对齐。 
◦ SPEED= - 设置相机运动速度。 
◦ STATICMESH – 设置编辑器进入静态网格物体放置模式。 
◦ TERRAINEDIT – 设置编辑器进入地形编辑模式。 
◦ TEXTURE – 设置编辑器进入贴图对齐模式。 
◦ USEACTORROTATIONGIZMO= - 启用或禁用 actor 旋转线框(已作废?) 
◦ USESIZINGBOX= - 在视口的左上角中启用或禁用规格信息的显示。 
◦ WIDGETCOORDSYSTEMCYCLE –通过现有坐标系统循环,例如,Local 和 World(世界)。 
◦ WIDGETMODECYCLE -通过使用现有选项循环变换控件。 

地图命令 

• MAP – 常用地图命令 ◦ BRUSH - 画刷命令 ■ GET – 将构建画刷形状替换为第一个已选画刷形状。 
■ PUT – 将所有已选画刷替换为当前构建画刷形状。 

◦ CHECK – 为错误执行地图检查。 ■ DONTCLEARMESSAGES – 不清除地图检查对话框。 
■ DONTDISPLAYDIALOG – 在检查后不显示地图检查对话框。 

◦ CHECKDEP - 只为已作废引用执行地图检查。 ■ DONTCLEARMESSAGES – 不清除地图检查对话框。 
■ DONTDISPLAYDIALOG – 在检查后不显示地图检查对话框。 

◦ EXPORT 
◦ IMPORT [FILE=file] – 将给定文件导入到一个新的地图中。 
◦ IMPORTADD [FILE=file] – 将给定文件导入到当前添加型地图中。 
◦ LOAD [FILE=file] [STREAMVL=streamvl] – 加载特定地图文件。要加载的动态载入地图使用分号分隔列表。 
◦ REBUILD – 地图重新构建命令 ■ ALLDIRTYFORLIGHTING – 只重新构建过期的 CSG 几何体。 
■ ALLVISIBLE – 重新构建所有可视 CSG 几何体。 

◦ ROTGRID [PITCH=pitch] [YAW=yaw] [ROLL=roll] – 将旋转网格对齐设置设置为制定倾斜值。 
◦ SCALE [FACTOR=factor] [ADJUSTLIGHTS=adjustlights] [SCALESPRITES=scalesprites] [SCALELOCATIONS=scalelocations] [SCALECOLLISION=scalecollision] – 使用给定参数通过给定的因素按比例缩放地图。 
◦ SELECT – 选择命令 ■ ADDS – 选择所有添加型画刷。 
■ NONSOLIDS – 选择所有非固态画刷。 
■ SEMISOLIDS – 选择所有半固态画刷。 
■ SUBTRACTS – 选择所有挖空型画刷。 

◦ SENDTO – 画刷顺序命令 ■ FIRST – 将所有已选画刷发送到层次结构前面。 
■ LAST – 将所有已选画刷发送到层次结构的后面。 
■ SWAP – 在层次结构中交换前面两个已选画刷的位置。 

◦ SETBRUSH 

CSG 画刷命令 

• BRUSH - 常用 CSG 画刷命令 ◦ ADD [FLAGS=flags] – 创建一个具有给定标志的新添加型画刷。 
◦ ADDVOLUME[CLASS=class] – 创建给定类的一个新体积。 
◦ EXPORT [FILE=file] - 将已选画刷导出到给定文件。 
◦ FROM ■ DEINTERSECTION – 从内含画刷的反交集中创建新画刷。 
■ INTERSECTION – 从内含画刷的交集中创建新画刷。 

◦ IMPORT [FILE=file] - 从给定文件中导入画刷。 
◦ LOAD [FILE=file] - 从给定文件中加载一个新画刷。 
◦ MERGEPOLYS – 合并当前画刷的已选面。 
◦ MOVEREL [vector] – 将已选画刷在每一个轴上移动给定量。 
◦ MOVETO [vector] – 将已选画刷移动到给定位置。 
◦ NEW – 创建一个新的空构建画刷。 
◦ RESET – 将构建画刷重置为初始状态。 
◦ SAVE [FILE=file] - 将已选画刷保存到给定文件。 
◦ SCALE [vector] – 使用给定比例系数按比例缩放已选画刷。 
◦ SEPARATEPOLYS – 将已选面从当前画刷中分离出来。 
◦ SUBTRACT – 创建一个新的挖空型画刷。 

静态网格物体命令 

• STATICMESH – 常用静态网格物体命令 ◦ FROM SELECTION [PACKAGE=package] [NAME=name] – 使用给定名称在给定包的已选画刷中创建一个新的静态网格物体 
◦ REBUILD – 强制重新构建已选静态网格物体。 
◦ SMOOTH – 将已选静态网格物体中的所有三角形的平滑蒙板设置为 1。 
◦ TO BRUSH – 使用第一个已选静态网格物体创建新的构建画刷形状。 
◦ UNSMOOTH – 将已选静态网格物体中的所有三角形的平滑蒙板设置为 0。 

CSG 表面命令 

• POLY – CSG 表面命令 ◦ SELECT – 表面选择命令 ■ ADJACENT – 相邻表面选择命令 ■ ALL – 将所有相邻的表面选择为当前已选表面。 
■ CEILINGS – 将所有相邻的天花板表面(法线向下的表面)选择为当前已选的表面。 
■ COPLANAR – 将所有相邻的表面选择为当前已选的共面的表面。 
■ FLOORS - 将所有相邻的地板表面(法线方向向上的表面)选择为当前已选的表面。 
■ SLANTS - 将所有相邻的倾斜表面(根据它们的法线不是墙壁、地板或天花板的表面)选择为当前已选的表面。 
■ WALLS – 选择所有相邻的直立表面,例如,墙壁。 

■ ALL – 选择所有表面。 
■ MATCHING – 选择使用特定匹配标准的表面。 ■ BRUSH – 选择所有属于相同画刷的表面作为当前已选的表面。 
■ GROUPS – 选择所有属于相同组内包含的任意画刷的表面作为包含当前已选表面的画刷。 
■ RESOLUTION – 选择光照贴图分辨率与当前已选的任意表面匹配的表面。 ■ CURRENT – 只选择相同关卡中包含的表面作为当前已选的表面。 

■ TEXTURE – 选择使用相同材质的表面。 

■ MEMORY ■ INTERSECT – 将当前选项只替换为当前已选同时在内存中保存的选项中包含的表面。 
■ RECALL – 将当前选项替换为保存在内存中的选项。 
■ SET – 将当前选项保存到内存。 
■ UNION – 将保存在内存中的表面的选项添加到当前选项。 
■ XOR – 将当前选项只替换为不在当前选项中同时不在保存在内存中的选项中的表面。 

■ NONE – 取消选择所有表面。 
■ REVERSE – 反向选择当前选择的表面。 
■ ZONE – 选择相同区域内包含的表面作为任何当前已选表面。 

◦ SET – 设置表面属性。 ■ CLEARFLAGS= - 复位当前已选表面上的给定标志。 
■ SETFLAGS= - 设置当前已选表面上的给定标志。 
■ TEXTURE= - 将给定材质应用到已选表面上。 

◦ SETMATERIAL – 使用 Content Browser(内容浏览器)中选择的第一个材质设置应用到当前已选表面的材质。 
◦ TEXMULT [UU=uu] [UV=uv] [VU=vu] [VV=vv] – 设置与当前值有关的当前已选表面上的材质的缩放比例。 
◦ TEXPAN [U=u] [V=v] – 按照给定量平移当前已选表面上的材质。 ■ RESET – 在应用新的值之前重置在表面上的平移量。 

◦ TEXSCALE [UU=uu] [UV=uv] [VU=vu] [VV=vv] – 设置当前已选表面上的材质的缩放比例。 ■ RELATIVE – 与当前值相关的缩放比例。

 

可执行函数概述 
-------------------------------------------------------------------------------- 
可执行函数是使用虚幻脚本在类内部定义的特殊函数类型。这些函数可以由处于运行时的用户执行,通过在引擎运行过程中调出游戏内置控制台(通常是通过按下 ~ 按键)并在该函数可能需要的任何参数后面输入函数的名称。这些函数类似于控制台命令,可以在控制台中执行,但是还是有所不同,因为它们是在脚本中进行定义的,而且可以很容易地添加、修改或删除。 
为可执行函数扫描的类(包括所有子类): 

• Input(输入) 
• Controller(控制器) 
• Pawn 
• InventoryManager(武器库管理器) 
• Weapon(武器) 
• HUD 
• GameInfo 
• CheatManager(秘籍管理器) 
• GameViewportClient 
• Interaction - 将会执行放置到PlayerController的交易中交易,但是不会在控制台命令中全部显示出来 

创建新的可执行函数 
-------------------------------------------------------------------------------- 
要添加新的可执行函数,这样就可以将它映射到一个按键上,它与在函数前面添加“可执行函数”一样简单。 
下面的示例会显示图和添加一个参数化的可执行函数。 

ExamplePawn.uc 

exec function MyExecFunction(int ParameterA) 
{ 
  `Log("The user executed my custom function with "$ParameterA); 
} 

更改 *Input.ini 
-------------------------------------------------------------------------------- 
将一个新的可执行函数添加到您自己的类中将会允许控制台执行这些函数,但是通常您需要将它们直接绑定到一个按键上。进行这项操作的方法是将这个按键绑定添加到您的 *Input.ini。这个 * 是前缀,它可以是Default(如果您希望添加一个默认按键绑定)或者UDK(如果您希望添加一个非默认按键绑定,而是UDK指定按键绑定)。这些配置文件通常放置在%UDK_ROOT%\UDKGame\Config\(其中UDKGame将是您的游戏项目文件夹)中。 
要添加一个新的按键绑定,请确保将其插入到[Engine.PlayerInput]配置组下面。下面的示例会显示如何将一个按键绑定到 H 上,通过在上面的示例中定义的参数运行这个自定义可执行函数。 

.Bindings=(Name="H",Command="MyExecFunction 99") 

现有引擎可执行函数 
-------------------------------------------------------------------------------- 

下面列出的可执行函数都可以在基础引擎类中找到。 

游戏管理 
这些函数可以让您管理当前游戏。大多数这些函数要求您以管理员身份登录到服务器,而有些函数只要求您具有某些特定特权即可。 

• Admin [command] –这会在您以管理员身份登录的服务器上执行一个管理员命令。 
• Kick [command] [users] – 从游戏中删除一个用户。用户可以使他们的 ID(如踢除列表命令所示)或一个名称(*可以用作一个通配符)。该命令可选,也可以是以下其中一个命令: ◦ List – 显示所有玩家及其 ID 
◦ Ban – 不允许玩家返回 
◦ Session – 禁止用户(仅限该游戏) 

• KickBan [users] – 删除游戏中的一个用户并不允许他们返回。用户可以使他们的 ID(如踢除列表命令所示)或一个名称(*可以用作一个通配符)。 
• KillBots – 删除游戏中的所有机器人。 
• PlayerList – 显示所有玩家名称以及他们的 ping 时间。 
• RestartMap – 重启当前地图。 
• Switch [map] – 根据地图的值通知服务器更改关卡。将地图解析为地图 URL(请参阅 CommandLineArguments(命令行参数)了解更多有关地图 URL 的详细信息)。 

秘籍 
这些函数在大多数游戏中被看做是秘籍,但是通常都是在开发过程中使用。 

• AffectedByHitEffects – 使玩家不受所有撞击效果影响(例如,冲力、撞击效果等等)。 
• AllAmmo – 将弹药数目设置为所有武器的最大值 
• AllWeapons – 为玩家提供游戏中所有可用的武器。 
• Amphibious - 使玩家可以实际不限定地呆在水下(设置 Paw.UnderwaterTime = 999999.0)。 
• EnableCheats - 在游戏中启用秘籍 
• Fly - 使玩家可以用飞代替走。 
• FreezeFrame [delay] - 由于特定延迟时间,强制游戏暂停。 
• Ghost - 使玩家处于可以飞,穿越几何体且不受伤害影响的‘幽灵般’的状态。 
• GiveWeapon [weaponclass] - 为玩家提供一个特定的武器类的实例。 
• God - 使玩家处于不会再受到伤害影响的状态。 
• KillAll [class] - 销毁或破坏关卡中特定类的所有实例。 
• KillPawns - 销毁关卡中的所有 pawn。 
• KillViewActor - 销毁或破坏当前设置为 ViewTarget(视图目标)的 actor。 
• Loaded - 为玩家提供所有可用的武器以及这些武器上的全部弹药。这相当于调用 AllWeapons,然后再调用 AllAmmo。 
• PlayersOnly - 将世界设置为只更新玩家,忽略所有其他 actors。 
• SetGravity [amount] - 将 Z 轴的重力设置为特定的数量。 
• SetJumpZ [height] - 将玩家可以跳动的垂直距离 a 设置为指定高度。 
• SetSpeed [multiplier] - 使用指定的乘法器乘以玩家的默认地面和水面速度。 
• Slomo [speed] - 将游戏速度设置为指定的速度。 
• Summon [classname] - 召唤或生成一个特定的类名称的实例(这是包类字符串)。 
• Teleport - 将玩家传送到他们正在查看的表面。 
• Walk - 将玩家设置恢复为默认的走动状态。 

调试命令 
这些函数通常在运行时调试的时候使用。 

• Avatar [classname] - 拥有一个特定类名称的 pawn(这是一种名称类型)。 
• BugItGo [X] [Y] [Z] [Pitch] [Yaw] [Roll] - 将玩家移动到该位置 (X, Y, Z) 并为了查看提交的 BugIt bug 而指定进行的旋转(Pitch(倾斜), Yaw(偏离), Roll(翻转))。 
• CauseEvent [EventName] - 使用给定的 EventName 触发 Kismet 事件。 
• CE [EventName] - 使用给定的 EventName 触发控制台事件。 
• ChangeSize multiplier - 将玩家的尺寸设置为是默认玩家尺寸的倍数。 
• ClearProgressMessages - 清除所有进度消息;将它们设置为一个空的字符串。 
• ConsoleKey [key] - 将指定按键的按键按下事件从控制台发送到系统。这适用于远程调试,前提是您不具有输入数据的本地键盘访问权限。 
• CrowdDebug [bEnable] - 触发显示群体代理程序的后期渲染信息。 
• CrowdFocus - 为附近可见的群体代理程序显示后期渲染信息。 
• CrowdToggle - 触发所有群体管理器打开或关闭。 
• DebugCreatPlayer [controllerid] - 使用给定的生成规则创建尝试从控制器输入数据的玩家。 
• DebugPause - 记录当前正在进行的游戏的暂停状态。 
• DebugRemovePlayer [controllerid] - 使用给定的生成规则删除尝试从控制器输入数据的玩家。 
• DestroyFractures [radius] - 使所有特定半径范围内的已破裂静态网格物体彼此分离。半径为可选项,默认值为 256.0 单位。 
• DumpOnlineSessionState - 记录游戏类型和网络层的当前会话状态。 
• DumpVoiceMutingState - 记录服务器的当前噪音抑制状态。 
• EndPath - 停止插值。 
• FractureAllMeshes - 在关卡内部所有破裂的静态网格物体中,至少会使一个破裂要被停止。 
• FractureAllMeshesToMaximizeMemoryusage - 使关卡内部所有破裂的静态网格物体以会最大化内存使用情况的方式破裂。 
• FXPlay [class] [anim] - 查找给定类最近的 pawn,然后播放这个特定的 FaceFX 动画。 
• FXStop [class] - 查找给定类最近的 pawn,然后停止所有当前正在播放的 FaceFX 动画。 
• ListConsoleEvents -显示 HUD 上所有控制台事件的列表。 
• ListCE - 显示 HUD 上所有控制台事件的列表。 
• ListDynamicActors - 将所有动态 actor(在关卡开始后创建的 actor)的列表输出到记录中。 
• LogLoc - 使用 BugIt 格式记录玩家的当前位置,但是没有进行截屏或采取进一步行动。 
• MoreSpeed - 强制玩家进入跑步状态。 
• NormalSpeed - 强制玩家进入走动状态。 
• NavMeshVerification - 启用计时器进行定期的导航网格物体验证。 
• PathChild [count] - 为了进行调试,沿着当前路径向前前进一步。 
• PathClear - 清除所有调试路径信息。 
• PathStep [count] - 为了进行调试,沿着当前路径向前前进一步。 
• RefreshFormatting - 强制为活动的 UIScene 进行格式更新和场景刷新。 
• RememberSpot - 将当前位置指定为需要记住供路径测试使用的地点。 
• RemoteEvent [EventName] - 在 Kismet 中使用控制台提供的 EventName(事件名称)触发 Kismet 中的远程事件。 
• RE [EventName] - 在 Kismet 中使用控制台提供的 EventName(事件名称)触发 Kismet 中的远程事件。 
• SaveActorConfig [actorname] - 使用与指定的 actorname(actor 名称)相符的名称保存 actor 的配置。 
• SaveClassConfig [classname] - 保存给定的类名称的配置。 
• SendToConsole [command] - 执行给定的控制台命令。 
• SetConsoleTarget [playerindex] - 在会执行控制台命令的玩家上下文中设置玩家(在 GamePlayers(游戏玩家)数组中根据玩家索引进行选择)。 
• SetFreezeRendering - 触发 FREEZERENDERING 控制台命令固定渲染状态。 
• SetOnlineDebugLevel [level] - 将特定操作系统登录关卡设置为给定关卡(这是一个整型变量)。 
• SetSplit [mode] - 将分屏配置设置为特定的 ESplitScreenType(分屏类型)模式。 
• ShowDatatStoreField [markup] - 使用给定的标记将数据存储的值输出到记录中。 
• ShowDataStores [bVerbose] - 将所有已注册的数据存储输出到记录中。如果已经指定了 bVerbose(冗余)并将其设置为真,会显示有关每个数据存储的详细信息。 
• ShowDebug [debugtype] - 触发显示玩家的当前 ViewTarget(视图目标)的属性。如果已经指定了 debugtype(调试类型),那么会触发该特定类型,但是启用的属性不会再处于整体显示的状态。如果没有指定,会触发整体显示状态。 
• ShowDebugSelectedInfo - 触发会显示有关调试相机正在查看的 actor 的信息显示。 
• ShowDockingStacks - 显示所有活动的 UIScenes 的停靠栈。 
• ShowGameDebug - 触发显示 GameInfo 调试信息。 
• ShowGameState - 将 GameInfo 当前的状态栈转存到记录中。 
• ShowPlayerState - 将玩家的状态栈转存到记录中。 
• ShowTileSafeArea - 在视口上,绘制平铺显示的安全区。 
• SSSwapControllers - 在玩家之间,旋转控制器 ID。这可以用于在只有一个控制器的情况下测试分屏多人游戏。 
• StreamLevelIn [level] - 动态载入指定的关卡; 
• StreamLevelOut [level] - 动态载出给定的关卡。 
• TestLevel - 检查当前关卡内所有的 actors 是否有错误。 
• TestNavMeshPath [bDrawPath] - 尝试计算从玩家的当前位置到玩家正在查看的位置之间的路径。如果 bDrawPath(绘制路径)为真,那么该路径将会显示在屏幕上(该项为可选项,默认值为真)。 
• ToggleDebugCamera - 没有锁定游戏性而锁定本地玩家的输入的情况下,在玩家相机和调试相机之间切换。 
• ToggleDebutInput - 会触发调试输入数据处理。 
• UTrace - 会触发脚本函数调用的 跟踪/记录。 
• VerbosePathDebug - 显示从玩家当前视口到 10000 个单位以外的距离进行 TraceActors 交互的结果。 
• ViewActor [actorname] - 将具有给定 actorname(actor 名称)的 actor 设置为当前 ViewTarget(视图目标)并更改为第三人称视角。 
• ViewBot - 会将玩家的 ViewTarget(视图目标)设置为目前没有设置为 Viewtarget(视图目标)的第一个机器人。 
• ViewClass [class] - 会将玩家的 ViewTarget(视图目标)设置为目前没有设置为 ViewTarget(视图目标)的给定类的第一个实例。 
• ViewFlag - 会将玩家的 ViewTarget(视图目标)设置为旗手标志(如果有一个旗手标志)。 
• ViewPlayer [playername] - 会将具有指定玩家名称的玩家设置为 ViewTarget(视图目标)。 
• ViewSelf [bQuiet] - 会将玩家的 ViewTarget(视图目标)设置返回到它的 pawn。如果 bQuiet 为假,会向玩家显示一条消息(该项为可选项,默认值为假)。 
• WriteToLog [message] - 会将消息输出到记录中,在后面加上“NOW! “。“. 

玩家命令 
• Jump - 会使玩家跳动。 
• LocalTravel [mapURL] - 会使客户端传导到指定的 mapURL。 
• Mutate [command] - 会将指定命令一直传递到设置方法列表。 
• QuickLoad - 加载由 QuickSave 可执行函数创建的保存游戏。 
• QuickSave - 为正在进行的游戏创建一个保存版本。 
• RestartLevel - 重启当前关卡。 
• ShowMenu - 未实现。 
• SmartJump - 会使玩家跳动。 
• Suicide - 会使玩家自杀。 

游戏性命令 
• Pause - 开启游戏被暂停的状态。 

设置 
• Camera [mode] - 将玩家的相机更改为特定模式(例如,“第一人称视角”或“第三人称视角”)。 
• ChangeTeam [teamname] - 将玩家当前的团队更改为特定的团队名称(这是体现团队的颜色的字符串,例如,“红色”或“蓝色”)。 
• ClearSmoothing - 会清除鼠标平滑处理。 
• FOV [fovangle] - 将玩家相机的视图区域设置为特定的视场角。 
• InvertMouse - 会触发颠倒鼠标输入。 
• InvertTurn - 会触发颠倒的转弯。 
• SetBind [bindname] [command] - 会使用特定绑定名称为指定命令创建一个新的按键绑定。 
• SetName [name] - 将玩家的名称设置为给定的名称。 
• SetSensitivity [sensitivity] - 将鼠标灵敏度设置为指定的敏感度。 
• SetShowSubtitles [bShowSubtitles] - 根据 bShowSubtitles 的值显示或隐藏子标题。 
• SwitchTeam - 将玩家从现有团队中切换到其他团队。 

武器库 
• NextWeapon - 将玩家的武器切换为武器库中的下一个武器。 
• PrevWeapon - 将玩家的武器切换为武器库中的上一个武器。 
• StartFire [firemode] - 射出玩家当前使用可选开火模式选择的武器。 
• StartAltFire [firemode] - 射出玩家当前使用备选开火模式选择的武器。 
• StopFire [firemode] - 停止射出玩家当前使用可选开火模式选择的武器。 
• StopAltFire [firemode] - 停止射出玩家当前使用备选开火模式选择的武器。 
• SwitchToBestWeapon [bForceNewWeapon] - 尝试将玩家的武器更换为玩家武器库中最好的武器。如果 ForceNewWeapon(强制使用新武器)为真,那么这个新武器将会是与当前正在使用的武器不同的武器,假设玩家此时有多个武器(该选项为可选项,默认值为假)。 
• ThrowWeapon - 扔掉玩家的当前武器并切换为一个新武器。 
• Use - 使玩家可以互动,或尝试互动,与玩家接触的任何关卡对象进行互动。 

通信 
• Say [message] - 向所有玩家发送指定消息 
• Speech [type] [index] [callsign] - 向指定玩家发送指定类型的语音消息。 
• Talk - 会打开一个装有可以发送消息的“对话”选项的微小控制台。 
• TeamSay [message] - 向所有团队成员发送指定的消息。 
• TeamTalk - 会打开一个装有可以发送团队消息的“团队对话”选项的微小控制台 

HUD 
• ToggleHUD - 会触发所有 HUD 项的可见性。 
• ShowHUD - 会触发所有 HUD 项的可见性。 
• ShowScores - 会触发积分榜的可见性。 
• SetShowScores [bShowScores} - 将积分榜的可见性状态设置为 bShowScores(显示积分)。 

UTGame 
-------------------------------------------------------------------------------- 
在该部分列出的可执行函数值可以在 UTGame 类中找到,而在基础引擎中不可用。 

游戏管理 
• AdminChangeMap [mapURL] - 使用给定的 mapURL 更改地图。 
• AdminForceTextMute [user] - 阻止用户发送文本消息。 
• AdminForceTextUnMute [user] - 允许用户发送文本消息 
• AdminForceVoiceMute [user] - 阻止用户发送语音消息。 
• AdminForceVoiceUnMute [user] - 允许用户发送语音消息。 
• AdminKick [user] - 从游戏中踢出指定的用户。 
• AdminKickBan [user] - 从游戏中踢出并禁止指定的用户。 
• AdminLogin [password] - 使用提供的密码登录为服务器管理员。有些可执行命令要求以管理员身份运行。 
• AdminLogout - 以服务器管理员身份注销。 
• AdminPlayerList - 如显示客户端消息一样会显示所有玩家的列表。 
• AdminRestartMap - 重启当前地图。 
• Disconnect - 断开连接并返回到主要菜单。 

秘籍 
• EditWeapon [weapon] - 会打开一个属性窗口,可以编辑指定武器的属性。如果没有指定武器,会将所有可用的武器输出到记录中。 
• FreeCamera - 将玩家的相机设置为自由轨道相机模式。 
• Glow [amount] - 将关卡中 UTVehicle 类的所有实例的 AmbientGlow 设置为指定的量(量的线性颜色LinearColor of amount, amount, amount, 1.0). 
• Invisible [bInvisible] - 根据 bInvisible 的值设置可见性或不可见性。 
• KillBadGuys - 销毁所有不在同一个团队作为玩家的 pawns。 
• KillOtherBots - 销毁关卡中所有当前不是玩家的视图目标的机器人。 
• KillOthers - 销毁关卡中除本地玩家以外的所有玩家。 
• KillThis - 销毁本地玩家。 
• LM [messageclass] - 将本地消息类设置为制定的消息类。 
• LMS [switch] - 使玩家可以接收由当前本地消息类和给定的开关指定的本地消息。 
• PhysicsGun - 为玩家提供实际枪支。 
• RBGrav [gravityscaling] - 将关卡的刚体比重标度设置为指定的比重标度值。 
• SetStickBind [value] - 将控制杆绑定设置为指定的值。 
• ShowStickBindings - 将所有当前的控制杆绑定输出到记录中。 
• SpawnABloodDecal - 在玩家当前所在位置生成一个血迹贴花。 
• SuicideBy [damagetype] [healthvalue] - 使玩家可以使用指定的伤害类型和健康值自杀,以此测试死忙特效。 
• SummonV [classname] - 召唤由提供的类名称指定的车辆。 
• TiltIt [bActive] - 根据 bActive 的值,为玩家设置倾斜活动或不活动。 

调试 
• AddBots [number] - 为了进行测试,会向关卡中添加指定机器人数。 
• AddBlueBots [number] - 在团队游戏中为蓝队添加指定的机器人数。 
• AddNamedBot [name] [bUseTeamNum] [teamnum] - 添加一个使用指定名称的机器人。如果 bUseTeamNum 为真而且指定了团队数,那么将该机器人添加到指定的团队。 
• AddRedBots [number] - 在团队游戏中为红队添加指定的机器人数。 
• AdjustCameraScale [bIn] - 根据 bIn 的值会将相机移进火移出。 
• AngDriveDamp [amount] - 将玩家的物理资源的角度阻尼缩放比例设置为指定的量。 
• AngDriveSpring [amount] - 将玩家的物理资源的角度弹性比例设置为指定的量。 
• BackDamp [amount] - 将玩家的物理资源背面的阻尼比例设置为指定的量。 
• BackSpring [amount] - 将玩家的物理资源背面的弹性比例设置为指定的量。 
• DebugViewAcceleration - 会触发显示视图加速信息。 
• DebugTargetAdhesion - 会触发目标粘着信息显示。 
• DebugTargetFriction - 会触发目标摩擦信息显示。 
• FixedView [visiblemeshes] - 在修复视图时开启玩家的视图。如果可视网格物体设置为“是”、“真”或“1”,那么可以看到网格物体。 
• FlushDebug - 会齐平任何固定调试绘制。 
• GetPlayerLoc - 会将玩家的所在位置和旋转输出到记录中。 
• HandDamp [amount] - 将玩家的物理资源手的阻尼比例设置为 amount。 
• HandSpring [amount] - 将玩家的物理资源手的弹性比例设置为 amount。 
• LinDriveDAmp [springamount] [dampamount] - 将玩家的物理资源的线性阻尼比例设置为指定的 dampamount。 
• LinDriveSpring [springamount] [dampamount] - 将玩家的物理资源的线性弹性比例设置为指定的 springamount。 
• StartMusic - 如果没有音乐管理器,那么生成一个新的音乐管理器,并开始播放音乐。 
• TestResetPhys - 重置玩家的物理状态。 
• UnlockChapter [chapter] - 会为了可以进行测试而解开指定的秘籍。 
• ViewObjective - 查看当前的可见实物。 
• ViewPlayerByName [playername] - 将具有指定的 playername 的玩家设置为当前的 ViewTarget(视图目标)。 

游戏性 
• BecomeActive - 从观看比赛到成为比赛中的选手。 
• DropFlag - 如果玩家正扛着旗,这会强制玩家放弃旗。 
• Duck - 使玩家停靠或蹲着。 
• PlayVehicleHorm - 播放玩家正在驾驶的车的喇叭。 
• RetrieveSettingsFromProfile - 会从目前的资料中加载玩家的设置。 
• SetAutoTaunt [bAutoTaunt] - 将玩家的自动辱骂值设置为 bAutoTaunt 的指定值。 
• Taunt [tauntindex] - 播放由 tauntindex 指定的辱骂。 
• UnDuck - 使玩家处于蹲着的状态。 

通信 
• ToggleSpeaking [bOn] - 根据 bOn 的值打开或关闭语音识别功能。 

HUD 
• GrowHUD - 将丢失的元素添加到 HUD。 
• ShrinkHUD - 删除 HUD 中的元素。 
• ReleaseShowScores - 触发显示积分板。 
• SetShowScores [bShowScores] - 根据 bShowScores 的值显示或隐藏积分板。 
• ShowAllAI - 触发在 HUD 中 AI 覆盖层显示。 
• ShowSquadRoutes - 触发会显示小队路线。 
• ToggleMinimap - 会触发显示 HUD 上的迷你地图。 
• ToggleScreenShotMode - 会触发所有 HUD 元素显示进行截屏。 

 

远程控制概述 

Remote Control(远程控制)是一个新的功能,它用于操作渲染选项、查看Actors,以及查看实时统计数据。 

在2007年8月之前的QA验证版本中,在非编辑器播放会话期间将会默认地启用Remote Control(远程控制)功能。 

注意 : 2007年4月版经过QA验证的版本后,当编译游戏时引擎不再使用wxWidgets,因为Epic发行游戏时将不包括wxWidgets。因此不会再有 Remote Control(远程控制) 窗口以及 editactor 支持,但您可以通过在命令行输入 -remotecontrol 或 -wxwindows 来得到原有功能。 

渲染页面 

Rendering Page(渲染页面)包含了一系列可以切换或设置的各种设置及统计数据。 

在工具条上的按钮用于打开一个关卡。 
一、虚幻引擎 3 基础知识  

 共 0 人 评分


设置 

• Game Resolution - 从一组标准或全屏模式的集合中进行选择,或创建一个自定义的分辨率 
• Maximum Texture Size - 选择32x32 到4096x4096之间的值 
• Maximum Texture Size - 选择32x32到512x512之间的值 
• Enable Post Process Effects - 选择True或False 
• View Mode - 从 Wireframe(线框) 、 BrushWireframe(画刷线框) 、 Unlit(不带光照模式) 、 Lit(带光照模式) 、 LightingOnly(纯光照模式) 、 LightComplexity(光照复杂度) 、 ShaderComplexity(着色器复杂度) 中进行选择 
• Slomo - 设置一个值(1.0是正常值) 
• FOV - 设置一个值(一般为90.0) 
• Showflags - 选择以下东西的切换开关: Bones(骨骼) 、 Bounds(边界) 、 BSP 、 Collision(碰撞) 、 Constraints(约束) 、 Decals(贴花) 、 Decal Info(贴花信息) 、 Fog(雾) 、 Foliage(植被) 、 Hit Proxies(点击代理) 、 Level Coloration(关卡着色) 、 Mesh Edges(网格物体边缘) 、 Missing Collision(丢失的碰撞) 、 Particles(粒子) 、 Vertex Colors(顶点颜色) 、 Scene Capture Portals(场景捕获入口) 、 Shadow Frustums(阴影椎体) 、 Skeletal Meshes(骨架网格物体) 、 Skins(皮肤) 、 Sprites(平面粒子) 、 Static Meshes(静态网格物体) 、 Terrain(地形) 、 Terrain Patches(地形粒子) 、 Constraints(约束) 
• Dynamic Shadows - 切换打开关闭状态 
• Show HUD - 切换是否描画HUD的状态(这和UnrealUI的场景是不同的) 
• Players Only - 切换打开关闭状态 

统计数据 

• Frames Per Second - 切换打开或关闭状态 
• D3D Scene - 现在已经不使用 
• Memory - 切换打开或关闭状态 

Actors 页面 

Actors页面包含了当前关卡中的所有actors的树状列表,以及过滤列表的控制功能。 

在工具条上的图标用于切换动态Actors的现实状况;刷新Actor列表;显示选中的Actor的属性;显示具有调试选项的子对象;自动展开Actor树;以及显示十字叉下的Actors的属性。 
一、虚幻引擎 3 基础知识  

 共 0 人 评分

一、虚幻引擎 3 基础知识  

 共 0 人 评分


当显示Actor的属性时,您可以选择锁定选中的Actor;复制属性刀剪切板;完全地复制属性刀剪切板(包括editinline[正在编辑的]物体);以及展开和合并所有类别。 

注意 : 如果您正在运行PIE会话并且添加一个Actor到关卡中,那么即使启用了PIE传递功能,Actor在那个会话过程中将不可见。您必须重新启动PIE会话来查看新的actor。 

统计数据页面 

统计数据页面包含了成组的统计信息的树状列表,您可以单独地切换这些统计信息也可以成组地进行切换。 
一、虚幻引擎 3 基础知识  

 共 0 人 评分


 

• Physics - 动态、事件等。 
• Streaming - 游戏和渲染线程、音频、加载时间等。 
• Engine - 植被、地形、decals (贴花)、输入、引擎等。 
• FaceFX - 顶点变形、材质、骨骼混合等。 
• Game - 组件、脚本、Kismet以及垃圾回收等。 
• UI - 页面、窗体控件等。 
• Audio - 组件、实例等。 
• Anim - 更新、混合等。 
• Particles - 平面粒子、网格物体等。 
• BeamParticles - spawn、渲染等。 
• TrailParticles - spawn、渲染等。 
• SceneUpdate - 图元、光源等。 
• Net - 数据包、批数据、静态对象引用、名称引用等。 
• CharacterLighting - 可见性、环境等。 
• RHI - 三角形、线、图元 
• Octree - 点和半径检测;时间及数量 
• SceneRendering - 阻挡、阴影、光源等。 
• Collision - 关卡、地形、BSP、静态网格物体、Actors;单线及多线检测 
• DefaultStatGroup - 根 
• StatSystem - 每帧的捕获物 
• Object - 属性、配置、本地化、名称表格等。 
• Memory - 虚拟内存、纹理内存等。 
• Threading - 渲染线程和游戏线程 
• AsyncIO - 读取数量和大小(完成的、取消的、未完成的) 

控制台命令 

用于切换Remote Control(远程控制),在控制台侧输入 REMOTECONTROL 或 RC 。 

注意 : 自动2007年8月的QA验证版本之后,这些控制台命令仅当使用 -remotecontrol 或 -wxwindows 来运行游戏时才可用。 当从Play In Editor会话运行时,这些命令将总是可用。 

为了在从命令行中调用游戏可执行函数时禁止远程控制,那么请指定 -norc 或 -noremotecontrol 。 

 

虚幻引擎 3的系统设置 概述 
-------------------------------------------------------------------------------- 
虚幻引擎3允许您通过 FSystemSettings 类来控制性能相关的各种功能,这个类是通过使用 SystemSettings.ini 中的 [SystemSettings] 部分进行初始化的。一般每个平台在 BaseSystemSettings.ini 中都有一个 [SystemSettingsPlatform] 部分以便在PC和编辑器中进行仿真模拟, 并且,在层次化的针对特定平台具有同样名称的ini版本,以供在设备上时使用。不幸的是,仅有这些文件同时存在才能有效地运行。 

这些设置分为不同的部分;通用部分(用于PC和游戏机平台)、移动设备(用于移动设备)、Apex (用于PhysX)、贴图、偏好设置(比如分辨率)、调试(用于测试功能)等。 

运行时系统修改 

在帮助中已经内置了控制台命令‘Scale’,但是该命令可以在游戏运行时操作设置。比如: 

• 'Scale DumpMobile' 将会转存所有的移动设备详细设置、它们的当前状态、关于它们用途的一行注释。 
• 'Scale Bucket Alpha' 将应用定义在 [SystemSettingsAlpha] 部分的系统设置。=[SystemSettingsScreenshot]= 部分包含一些不太切合实际的高级设置,以便获取具有顶级质量的屏幕截图。 
• 当光溢出效果为关闭时,设置'Scale set Bloom True'将会打开光溢出。 
• 'Scale shrink' 缩小离屏缓冲区,扩大副本为全屏分辨率。 

以下部分详细说明了可以通过SystemSettings控制的各种设置。INI是变量的字符串名称,变量的类型决定了它所支持的值。请参照 BaseSystemSettings.ini 获得更多示例。 

代码中仍然存在用于针对各项的设置部分,但是已经不再被察觉,因为代码已经过期了,不再适合现代的机器。 

系统设置有一组有效值传入到 OpenAutomate。 

脚本访问器 

单个系统设置的值可以在运行时从UnrealScript中使用 Engine.uc中的 访问 函数进行访问: 

• GetSystemSettingBool(string SettingName) - 获得指定布尔类型的系统设置的值。 
• GetSystemSettingInt(string SettingName) - 获得指定的整型系统设置的值。 
• GetSystemSettingFloat(string SettingName) - 获得指定的浮点型系统设置的值。 

贴图细节层次的设置 
-------------------------------------------------------------------------------- 
在 贴图支持及设置页面中可以找到关于控制贴图分辨率和细节的相关设置的描述。 

世界细节的设置 
-------------------------------------------------------------------------------- 
DetailMode(细节模式) (INT)(1-3)当前的细节模式;决定是否更新actors的组件。和Scene.uc文件中的EDetailMode枚举值相对应,同时也在PrimitiveComponent(图元组件)中进行设置,并由WorldInfo.GetDetailMode()返回。 SpeedTreeLeaves (UBOOL) 是否允许渲染SpeedTree 的叶子。 SpeedTreeFronds (UBOOL) 是否允许渲染SpeedTree 的蕨类植物的叶子。 StaticDecals(静态的贴花) (UBOOL) 是否允许静态的贴花。 DynamicDecals(动态的贴花) (UBOOL) 是否允许动态的贴花。 UnbatchedDecals(未打包的贴花) (UBOOL) 是否允许没有被放置在静态描画列表中并且具有动态视图关联的decals(贴花)。 DecalCullDistanceScale(贴花的剔除距离比例) (FLOAT) 剔除贴花的距离的比例因数。 DynamicLights(动态光源) (UBOOL) 是否允许动态光源。 CompositeDynamicLights(组合动态光源) (UBOOL) 是否允许把动态光源组合到光照环境中。 DirectionalLightMaps(定向的光照贴图) (UBOOL) 是否允许使用了材质的法线和高光的定向光照贴图。 MotionBlur(运动模糊) (UBOOL)是否允许运动模糊。 MotionBlurPause(运动模糊暂停) (UBOOL) 是否允许暂停运动模糊。 DepthOfField(景深) (UBOOL) 是否允许景深。 AmbientOcclusion(环境遮挡) (UBOOL) 是否允许环境遮挡。 Bloom(光溢出) (UBOOL) 是否允许光溢出。 UseHighQualityBloom(使用高质量光溢出) (UBOOL) 是否使用高质量的光溢出或较快的版本。 Distortion(变形) (UBOOL) 是否允许变形。 FilteredDistortion(过滤变形) (UBOOL) 当在应用变形的过程中对场景颜色进行采样时,是否允许使用使用双线性过滤。 DropParticleDistortion(应用粒子变形)b> (UBOOL) 是否允许基于WorldInfo::bDropDetail的值在粒子上进行变形。 LensFlares(镜头眩光)b> (UBOOL) 是否允许渲染镜头眩光。 FogVolumes(雾体积)b> (UBOOL) 是否允许雾体积。 FloatingPointRenderTargets(浮点型渲染目标)b> (UBOOL) 是否允许使用浮点型渲染目标。 OneFrameThreadLag(一帧的线程滞后)b> (UBOOL) 是否允许渲染线程比游戏线程滞后一帧。 SkeletalMeshLODBias(骨架网格物体细节层次偏移) (INT)骨架网物体的LOD偏移。 ParticleLODBias(粒子的细节层次偏移) (INT) 粒子系统的LOD偏移。 AllowD3D10(允许D3D10) (UBOOL) 当具有D3D10时是否使用它。 AllowRadialBlur(允许径向模糊) (UBOOL) 是否允许渲染径向模糊特效。 

破裂对象的细节设置 
-------------------------------------------------------------------------------- 
bAllowFracturedDamage(允许破裂受到伤害) (UBOOL) 是否允许破裂的网格物体受到伤害。 NumFracturedPartsScale (FLOAT) 缩放针对特定游戏的破裂的物理对象的数量。 FractureDirectSpawnChanceScale (FLOAT) 当破裂的静态网格物体直接地受到伤害后产生刚体的百分比率。[0-1] FractureRadialSpawnChanceScale (FLOAT) 当破裂的静态网格物体受到径向冲击后产生刚体的百分比率。[0-1] FractureCullDistanceScale (FLOAT) 当破裂的静态网格物体受到伤害时是否应该真正地破裂的距离比例。 

阴影细节的设置 
-------------------------------------------------------------------------------- 

DynamicShadows (UBOOL) 是否允许动态阴影。 LightEnvironmentShadows (UBOOL) 是否允许动态光照环境投射阴影。 MinShadowResolution (INT) 渲染阴影物体深度时所允许的最小尺寸(以贴图像素为单位)。 MaxShadowResolution (INT) 渲染阴影物体深度时所允许的最大尺寸(以贴图像素为单位)。 ShadowTexelsPerPixel (FLOAT) 物体像素和阴影的贴图像素的比率。 bEnableBranchingPCFShadows (UBOOL) 切换投射的阴影的Branching PCF实现。 bAllowBetterModulatedShadows (UBOOL) 切换自发光和背面的剔除阴影是否需要额外的几何体渲染遍数。 bEnableForegroundShadowsOnWorld (UBOOL) 是否允许前景DPG对象向世界DPG投射阴影。 bEnableForegroundSelfShadowing (UBOOL) 是否允许前景DPG自投阴影。 ShadowFilterRadius (FLOAT) 过滤盘的半径,以阴影贴图的贴图像素为单位。 ShadowDepthBias (FLOAT) 除了VSM之外的所有类型的投射阴影在深度渲染遍数所应用的深度偏移。 ShadowFadeResolution (INT) 阴影淡出的分辨率,以贴图像素为单位。 ShadowFadeExponent (FLOAT) 控制阴影淡出的速率。 ShadowVolumeLightRadiusThreshold (FLOAT) 当光源的半径低于那个阈值时则不会再投射阴影体积。 ShadowVolumePrimitiveScreenSpacePercentageThreshold (FLOAT) 当图元的屏幕空间百分比低于该阈值时则不再投射阴影体积。 

贴图细节设置 
-------------------------------------------------------------------------------- 
OnlyStreamInTextures (UBOOL) 如果启用,只能载入贴图不能载出贴图。 MaxAnisotropy (INT) 所使用的各向异性的最大级别。 SceneCaptureStreamingMultiplier (FLOAT) 屏幕截图动态载入贴图更新距离标量。 FoliageDrawRadiusMultiplier (FLOAT) 植被描画的距离标量。 

VSync 设置 
-------------------------------------------------------------------------------- 
UseVSync (UBOOL) 是否使用VSync。 

屏幕百分比设置 
-------------------------------------------------------------------------------- 
ScreenPercentage (FLOAT) 主要视图所占的屏幕百分比。 UpscaleScreenPercentage (UBOOL) 是否增大屏幕来占有所有的前置缓冲。 

分辨率设置 
-------------------------------------------------------------------------------- 
ResX (INT) 屏幕X方向的分辨率 ResY (INT) 屏幕Y方向的分辨率 Fullscreen (UBOOL) 全屏 

MSAA 设置 
-------------------------------------------------------------------------------- 
MaxMultiSamples (INT)要使用的MSAA样本的最大数量。 

网格物体设置 
-------------------------------------------------------------------------------- 
bForceCPUAccessToGPUSkinVerts (UBOOL) 是否强制CPU访问GPU植皮的顶点数据。 bDisableSkeletalInstanceWeights (UBOOL) 是否禁用实例化的骨架权重。 

 

如何从游戏中获取屏幕截图 

文档概要:本文档解释了如何从虚幻引擎游戏项目中获取游戏中的屏幕截图。 

文档变更记录:由Niklas Smedberg创建并更新。 

• 如何从游戏中获取屏幕截图 ◦ 概述 
◦ Tiledshot(平铺截图) ■ 参数 
■ 注意 

◦ Shot(截图) 
◦ 切换UI元素 

概述 

有很多方法来从您的虚幻引擎游戏项目中获取屏幕截图。本文档中说明了其中的几种方法及其它们的应用。 

Tiledshot(平铺截图) 

它是跨平台的、高分辨率的平铺屏幕截图功能,可以通过控制台命令开关 tiledshot 来获得。 

它可以生成任何大小的屏幕截图,且分辨率比屏幕分辨(或者窗口分辨率,如果游戏运行在窗口模式下)加倍。Tiledshot(平铺截图)通过多次渲染游戏帧数来实现这个功能的,一次使用全分辨率渲染一个平铺块,然后把所有平铺块连接到一起组成一个单独的图片文件。 

它默认的行为是获取一个分辨率比游戏分辨率大4倍的屏幕截图,并且在Screenshot(屏幕截图)文件夹中创建一个图像文件。当通过PIE或游戏机控制台运行游戏时,可以通过点击 <Tab> 或者 <~> (tilde)来打开命令行控制台然后输入: 

tiledshot 

参数 

Tiledshot控制台命令行开关有两个可选参数。第一个参数是一个整型数值,它是当前游戏分辨率的乘数。正如上面所提到的,默认的值是4。 

输入以下的文字将会获得一个分辨率是屏幕分辨率两倍的屏幕截图: 

tiledshot 2 

类似地,获取一个正常屏幕分辨率的截图可以输入以下文字: 

tiledshot 1 

第二个参数是平铺块的重叠量,以像素为单位。实际上每个平铺块都重叠一点,从而保证全屏的模糊或变形后期处理特效能够相匹配。默认的值是64个像素。比如,如果您使用了后期处理特效使其模糊一点,您或许需要增加这个值。 

以下命令将会生成一个分辨率是屏幕分辨率6倍、每个贴图块重叠区域为128个像素的屏幕截图。 

tiledshot 6 128 

注意 

注意模糊特效以及其它的覆盖几个像素的屏幕空间特效对屏幕截图的影响是较小的,因为和低分辨率的图片相比,由同样数量像素所覆盖的相对区域在高分辨率图片下是较小的。您可以通过修改特效影响较大的区域来补偿这种效果。 同时注意,在保存的屏幕截图中,UI元素可能会反复地出现。请使用下面的togglescreenshotmode来隐藏所有的UI。 

Shot(截图) 

标准的屏幕截图功能通过控制台命令开关 shot (默认的按键绑定是F9)来访问。它可以产生分辨率大小是屏幕分辨率(或窗口分辨率,如果游戏运行在windowed模式下)的屏幕截图。 

切换UI元素 

要想切换控制UI元素的显示状态来获取屏幕截图,请使用以下命令: 

togglescreenshotmode 

 

虚幻引擎3 视频教程 (以下链接均需下载) 
通常,通过观看工具使用过程来学习工具是最好不过的方法。所以,我们的开发人员汇集了一系列关于如何使用不同的UE3工具集及其基本流程的视频。 
访问视频


以下的每个链接都指向一个指南,按主题或者特定的功能分组。视频指南从该页面链接到一个媒体库。通过简单地右击并保存视频可以将其保存到您的本地硬盘中。尽管这些视频已经经过压缩,但是某些文件仍然很大,所以为了降低带宽消耗,如果您让一个人下载所有视频,并将其保存到整个团队都可以访问的目录中进行共享,我们将非常感谢。注意  这些视频指南是使用虚幻开发工具包制作的。关于UDK的更多信息,请访问 这里请右击并保存每个文件到您的本地存储空间中。引擎指南


文件格式是Windows Media Video (.wmv)。不需要其他编解码器。骨架网格物体工作流程 - 使用UDK Epic Games的技术动画师 Jeremy Ernst 将会带领您学习虚幻引擎的骨架网格物体的工作流程。从把您的模型从3D包中导入到编辑器中,到把这个模型为程序员准备好,您将会学到为您的游戏准备资源的步骤。每个压缩的存档包含一个视频:

视频培训模块 通常,观看工具使用过程学习工具是最好不过的方法。对于每个获得虚幻引擎授权的用户,我们提供了针对内容开发人员的现场培训,但是一般让您的整个团队都参加培训是不可行的或者是不可能的。当然,我们总是在不断地向引擎中添加新的功能,并且我们可能在访问您的团队之后添加一个工具。所以,我们已经制作了一系列我们的培训团队如何使用我们工具集的视频文件。我们使用了可以提供很好的分辨率的视频捕获工具,以便您可以看清编辑器窗口上的文字等。访问视频 以下每个链接指向了相关的培训模块页面。比如,VTMCascade页面包含了基本的培训模块及讲述高级功能的模块。视频培训模块(VTMs)附加在了这些页面的底部。通过简单地右击并保存视频可以将其保存到您的本地硬盘中。某些模块可能非常大,所以为了降低带宽消耗,如果您让一个人下载所有视频并将其保存到整个团队都可以访问的目录中进行共享,我们将非常感谢。开发这些视频时,我们使用了一个现成的工具Camtasia Studio。要想查看这些视频,您必须安装他们的TechSmith Screen Capture Code (TSCC). 我们仅在Windows XP Pro系统上使用Windows Media Player (版本9、10和11)进行了这个测试。如果您在查看这些视频中遇到任何困难,请告诉我们。培训主题 这些视频培训模块是于2005年制作的。所展示的技术及概念仍然是一样的,但是工具的操作流程及外观可能略有不同。

  • VtmEditor -虚幻编辑器功能,比如BSP、静态网格物体放置、光照、关卡优化。
  • VtmTerrain - 使用虚幻编辑器的地形创建及修改工具。
  • VtmMatinee - UnrealMatinee过程动画工具的培训教程。
  • VtmCascade- UnrealCascade粒子工具的培训教程。
  • VtmKismet - UnrealKismet可视脚本工具的培训教程。
  • VtmPhAT - 使用物理资源工具(PhAT)来设置碰撞、约束等。
  • VtmConstraints - 使用虚幻引擎中的物理约束。
  • VtmMaterials - UnrealEd材质编辑器的培训教程。

3D Buzz 视频指南 - 使用UDK


3D Buzz以高质量的视频培训模块和 Mastering Unreal Technology(掌握虚幻技术) 书籍而闻名,他们已经把这些视频整理到一起,引导您进行所有的虚幻引擎编辑套件的基本操作,以及设计简单的游戏项目。文件格式是MP4。不需要其他编解码器。每个压缩的存档包含一个或多个视频:

您也可以从这里下载大部分视频中所使用的资源: 
http://download.udk.com/tutorials/using-udk/3dbuzz_assets.zip 
http://download.udk.com/tutorials/using-udk/UIDemoAssets.zip字幕


已经提供了这些视频的英文字幕文件(.srt)。这些文件具有时间信息,可以翻译为其他语言。您应该使用支持.srt字幕格式的视频播放器来查看具有字幕的视频,比如播放器VLC or GOM Player。这里是字幕链接:

社区提交的视频


UDK社区提交了大量的视频。请查看他们: 社区视频。Eat3D


Eat 3D是个专业的视频培训公司,他们专注于创建针对3D美工人员的高质量的视频培训视频。它们执着地将大量的时间和精力投入到了他们的工作中,而且为他们的成就感到自豪。3dmotive


3dmotive提供了由游戏行业的专业人员创建并制作的高质量的数码培训教程,所有的视频都是高清的,并且能及时地载入。 

 

UDK常见问题解答 ◦ 综述 
-------------------------------------------------------------------------------- 
问: UDK是什么? 

答 : 虚幻开发工具包 (UDK)是虚幻引擎3的免费版本。随同UDK发行了用于创建像Epic的屡获嘉奖的“战争机器”和"Infinity Blade" 游戏所使用的工具。 

问: 可以使用UDK制作哪些类型的游戏和应用程序? 

答 : UDK是创建您想创建任何类型的虚拟世界的最佳解决方案,包括从竞技游戏到仿真。 请参照我们的示例来查看我们的用户使用UDK创作的惊人作品。 

问: 使用UDK需要支付多少费用? 

答 : 处于非商业目的和教育目的UDK应用是免费的。商业授权条款可以在这里查看 http://www.udk.com/licensing ,同时请参照授权常见问题解答。 

问: 什么操作系统和UDK兼容? 

答 : UDK的开发环境在Window PC上运行。目前可以创建针对Windows PC和iOS的可执行文件。 

问: 目前UDK支持哪些iOS设备? 

答 : iPhone 4、iPhone 3GS、iPad、第四代iPod touch、第三代iPod touch(8 GB的第三代设备除外)。 

为了运行虚幻引擎3,iOS设备的系统至少是iOS 3.2或其之后的版本。如果您的设备较旧,或者设备安装了不支持虚幻引擎版本的iOS,那么您将不能运行您的应用程序。同时请注意某些功能仅当设备和iOS版本恰当地组合到一起时才能使用。比如,多重采样抗锯齿功能要求设备安装iOS4或其之后的版本。 

问: 开发针对iPhone的程序必须要具有Mac硬件吗? 

答 : 使用UDK开发iOS应用程序不需要Mac硬件。提交iOS应用程序到App Store时需要使用Mac硬件。 

问: 以后会更新UDK吗? 

答 : 是的。Epic致力于对UDK提供定期的免费的更新。一般会每月发行一个新的版本。 

问: UDK的最小需求? 

答 : 这里是UDK的最小需求以及推荐的需求... 

最低要求: 
• Windows XP SP3(仅限 32 位)、Windows Vista 或 Windows 7 
• 2.0+ GHz 处理器 
• 2 GB 系统内存 
• 兼容SM3的显卡 
• 3 GB可用硬盘空间 

满足内容开发需求的推荐配置: 
• Windows 7 64-位 
• 2.0+ GHz 多核处理器 
• 8 GB 系统内存 
• NVIDIA 8000 系列或更高系列的显卡 
• 大量的硬盘空间 

DX11开发的最低需求: 

• Windows Vista 或 Windows 7 
• 2.0+ GHz 处理器 
• 2 GB 系统内存 
• DX11显卡: ◦ Nvidia: 400系列或5000以上系列 
◦ ATI: 5000系列或5000以上系列 

• 3GB空闲的硬盘空间 

问: 一个人具备哪些知识才能使用UDK创建项目? 

答 : 虚幻引擎3初学者可以访问虚幻开发者网络上的UDK入门指南页面。同时也有一些新的“Mastering Unreal Technology(掌握虚幻技术)”的书籍,它们由 Buzz?创作并由Sams出版。 

• 掌握虚幻技术, 第I卷: 使用虚幻引擎3进行关卡设计的简介。 
• 掌握虚幻技术, 第II卷: 虚幻引擎3的高级关卡设计。 

问: 为开发人员提供了哪些支持? 

答 : Epic维护了一些社区资源,比如 UDK论坛,任何人任何时候都可以访问该论坛。同时还有免费的视频指南和成百上千页的UDN在线文档。 

问: 哪些软件和UDK兼容? 

答 : 用户可以导入使用类似于3ds Max、Maya、ZBrush和Photoshop的领先的美工工具制作的资源。UDK针对所有平台都支持最新的主要音频压缩机制,它用于优化 Ogg Vorbis压缩和解压缩。随同UDK发行了:SpeedTree,它是行业内领先的植被编辑器;Bink,成千上万的计算机和视频游戏中所使用的简单易用的视频编码;FaceFX,使得开发人员可以从音频文件创建真实的脸部特效的顶级解决方案。 

问: 可以导入以前的虚幻引擎3项目吗? 

答 : 可以,用户可以在提供了iOS支持的最新UDK Beta版本中打开使用之前的UDK发布包制作的虚幻引擎3包。 

问: 本地化和国际化支持怎样? 

答 : UDK软件有以下几个版本: 中文 (简体)、英文、日文和韩文。UDK网站支持日文、韩文和中文。这些语言在UDN上也支持。 

问: 如何使用UDK和native代码协同工作? 

答 : 在PC上,UnrealScript可以调用通过使用 DLL绑定在Windows DLL中实现的函数。 用户也可以通过创建到外部运行程序的TCP连接来使得UnrealScript和native代码协同工作。 

问: 开发UDK项目和制作mods有什么不同? 

答 : 每次Epic发行一个主要的新PC游戏时,我们会连同游戏一起发行虚幻引擎工具,mod制作人员可以通过他们的创造力和独创性来修改我们的游戏。 

UDK不同的之处是每个人都可以使用它。您不是必须要拥有一个”虚幻竞技场3” 或 “战争机器”版本才能访问引擎工具,而且,我们将会持续地发行免费的UDK升级。 

另外,所有的UDK发行版本都是独立的产品,这意味着任何人都可以免费发行不需要额外软件的游戏。 

问: 我怎么知道正在开发哪些功能或者这些功能什么时候才能发布? 

答 : 每个月发行一次UDK版本。UDK版本升级信息描述了最新的功能及更新信息。 

您可以从UDK下载网站下载最新版本的UDK。 

问: 为什么UDK Remote(UDK远程) 没有注册3个手指的操作? 

答 : 在Settings > General > Accessibility中的iOS设备的Zoom(缩放)功能和UDK远程的3指控制相冲突。 

授权 
-------------------------------------------------------------------------------- 


问: 我们真的可以免费使用UDK吗? 

答 : 当然。您可以下载UDK,创建您的项目并完全免费地发布您创建的内容。 

问: 大学、中学、教员和学生都可以免费地使用UDK吗? 

答 : 教育机构可以在遵循我们的“教育和非商业应用免费”政策下使用UDK,尽管他们正在收取学费,但是我们愿意让您来教授虚幻引擎3技术。全体教员或学生都不需要授权。 

我们非常鼓励您的学生在校内或校外使用UDK来学习游戏开发以及将UDK用于其它非商业目的。 

比如,如果一个学生决定把他制作的游戏作为学校授课或业余爱好项目进行出售,那么我们也欢迎他这样做。他将需要花费$99购买授权,并且当他赚到第一个50,000美元后它需要向我们支付其收入的25%的版税。 

问: 如果我或我的公司制作了不止一个基于UDK的游戏或商业应用程序,我需要为每个产品花费99.00美元来购买商业授权吗? 

答 : 不需要。您或您的公司仅需要一个商业授权来涵盖您开发的所有基于UDK的游戏或商业应用程序。 

问: 我可以把UDK游戏开源发行吗? 

答 : 我们的最终用户授权协议(EULA)中包含了关于免费开发及发行游戏的权利方面的内容。EULA也是控制您游戏发行的授权书,因为它内置在UDK中。 您不可以在那些不同于UDK EULA的条款下发行您的UDK项目(比如PL、LGPL、开源、等)。 您没有权利使用我们没有授予您的条款来阻碍UDK。 

问: 这和虚幻引擎3的授权有什么不同? 

答 : 最主要的不同是UDK不包括虚幻引擎3的C++源码访问功能。UDK的发行版本包含了和虚幻引擎3的商业版本一样的UnrealScript代码和虚幻引擎工具集成,提供了专业开发人员所使用的全部功能。 

尽管工具和技术是相同的,但是“完全”的授权包括了引擎和工具的内部C++源代码,这允许授权用户进行他们想做的任何改变,并且如果他们得到游戏机厂商的授权,他们也可以在游戏机平台上发行他们的游戏。 

UDK用户和传统的虚幻引擎3商业授权用户都可以访问所有的UnrealScript源代码。从功能和性能(字节编译)方面来说,UnrealScript和编程语言Java类似,它的功能设计的目的是简化游戏开发,比如,函数的状态范围、自动序列化、定义属性及远程函数的网络复制的简单系统等。 

我们为UDK用户提供很多资料和支持途径,包括Sams的两本新书"Mastering Unreal Technology(掌握虚幻技术)"、我们虚幻开发者网络的上百个页面支持项、UDK社区论坛以及来自3D Buzz人员的上百个小时的完整的针对特定功能介绍的使您立即可以进行UDK入门学习的免费视频教程。 

完全的UE3授权用户可以直接受到来自Epic的书写UE3代码的工程师的支持。 

问: 可以使用Kickstarter或其他众筹为使用UDK制作的游戏提供资金吗? 需要授权许可码? 

答 : 是的,UDK游戏可以接收众筹;但是需要支付$99的商业UDK授权许可费用,而且在众筹过程中赚取的所有收入盈利都要根据标准UDK版税进行计算。 

关于和授权相关的更多问题,请参照UDK授权页面。 

业务及法律 
-------------------------------------------------------------------------------- 
问: 可以为引擎创建自定义插件或工具吗? 

答 : 当然。不需要任何额外的授权。如果您通过名称来引用Unreal Development Toolkit(虚幻开发工具包) 或 UDK,您需要尊重EpicGames的商标(参照下面*处的内容)" 并且要明确地声明您的作品没有经过Epic Games认可。 

* Unreal Development Kit (UDK) © 2009 Epic Games、 Inc. Epic、Epic Games、Gears of War、Gears of War 2、Unreal、AnimSet Viewer、AnimTree Editor、Unreal Cascade、Unreal Content Browser、Unreal Development Kit、Unreal Editor、Unreal Engine、Unreal Kismet、Unreal Lightmass、Unreal Matinee、Unreal PhAT、UnrealScript和Unreal Tournament 是Epic Games, Inc.在美国及其他地区的的商标或注册商标 。所有其他的商标都归它们各自的拥有者所有。 

问: 我可以建立一个网站并把游戏放到上面,但是不出售游戏,仅是通过广告来挣钱哪? 

答 : 从做为您UDK游戏的访问入口的网站收取广告费用不能说明您的游戏是免费的。它仅是作为一个从您的UDK应用程序获取直接收入的代理而已。如果您使用广告收入代替您从游戏中获取直接收入,那么您将需要一个商业授权并且Epic将会收取版税。 

问: 版税查收的时间间隔?按月?按季?按年? 

答 : 按季,在每个季度后不超过四十五天内。 

问: 如果团队已经制作了完全改变了的mods。那么这些团队现在可以把它们的文件移动到UDK中并导出一个独立运行的游戏吗? 

答 : 这个事情已经发生了 – 请参照The Ball, Prometheus, 以及将要出现的The Haunted。注意,这些mods没有使用Epic的UT3资源。它们完全是使用自定义的资源构建的。 

问: 我们可以在我们的游戏中免费地使用SpeedTreeModeler编译的speedtree模型吗,还是我们必须向SpeedTree付费? 

答 : 您可以在您的UDK应用程序中免费地使用包含在UDK中的Speedtree模型。 

问: "发行UDK代码"的定义是什么? 是指使用包含的UDK代码,比如从UTGame扩展一个类? 还是它仅禁止发行UDK源代码? 

答 : 这意味着您不能在我们未给予您权利的条款下发行您的UDK应用程序(代码和内容)。比如,您不能把您的UDK应用程序发行到开源代码或者给获得GPL、LGPL授权类型的用户,因为我们没有把这个权利赋予您。 

问: ""...在没有从Epic Games获得授权的情况下""这是意味着如果您确实从Epic Games获得授权,(比如,UDK的25%版权费的商业授权),那么您可以免费地使用UDK包中的内容吗? 

答 : 这意味着您不能在我们未给予您权利的条款下发行您的UDK应用程序(代码和内容)。比如,您不能把您的UDK应用程序发行到开源代码或者给获得GPL、LGPL授权类型的用户,因为我们没有把这个权利赋予您。 

问: 游戏机平台? 

答 : 目前,UDK仅支持PC : Windows。我们正在评估各种平台选项。我们渴望提供对所有可以使用UDK的平台的支持,但是这将需要获得游戏机平台的厂商的支持。现在,我们仅向我们的全部代码授权用户提供Xbox 360 和 PS3开发的支持。 

*问: 我想在版税方面再弄清楚一些: 25% 是指开发人员的净收入,对吗? 我希望不是所有入口的总销售收入。 

答 : 25%的版税是基于UDK授权用户通过商业化他们的UDK应用程序后所获得的收益进行计算的。它在EULA的Commercial Amendment(商业修订版本)中进行了定义“包括但不限于从以下方面获得的收入: 销售、广告、赞助式广告、许可费、会员费、微交易、游戏中物品或服务销售、租金、付费玩的费用、您所出售服务或通过和您的应用程序结合使用所获得的酬劳,包括第三方支付给您的开发或使用该应用程序的费用”。 

问: Architectural Visualization Info (建筑可视化信息) 

答 : 去做吧。如果您想通过开建筑可视化信息来获得商业利润,请参照这里( http://udk.com/licensing.html )的授权条款来获得适当的授权。 

问: 如果我购买了支付版税的授权,那么我是否可以访问UDK Documentation Section (UDK文档部分)的红色连接? 

答 : 不能。红色的链接仅提供给源码授权用户。红色连接包含的信息或者是机密信息,或者(大多数情况下)是仅为具有源码访问权的授权用户提供的。由于用户的反馈,我们已经那个把很多UDN文档设置为公开状态。如果您想看到一个特定文档设置为公开状态,请在Documentation(文档)论坛中提出您的请求。 

问: 商业UDK授权协议包含到UDN中需要登录才能访问的页面的访问权吗? 

答 : UDN中需要登录才能访问的部分仅供虚幻引擎3源码授权用户使用。 这个信息不适用于UDK。 

问: 如果一个独立的开发团队制作一个成功的游戏并且发行了很多版本。那么他们是否可以购买一个专业授权从而避免25%的版税 (也就是,如果证明那样比较便宜)。还是UDK把当前的项目和UDK授权条款相绑定。 

答 : 当然,我们很高兴和您讨论全部的源码授权。 

问: Sinsoft 在sinsoft.com(也可能是sinsoft.net) 设置了广告,但是那个广告和UDK没有任何关系。换句话说,它们在我们的主页上发行广告。广告收入均分是指在游戏引擎中显示的广告(也就是和UDK相关)?还是任何广告收入? 网站上的广告和UDK有关吗? 和UDK相关的广告指的是什么? 

答 : 如果您使用广告收入代替您从游戏中获取直接收入,那么您将需要一个商业授权并且Epic将会收取版税。 

问: 计算UDK版税时如何计算我们的盈利? 

答: 您的UDK版税仅基于您获得的收入盈利进行计算。 如果您的UDK应用程序在零售或在线销售上获得了100.00美元,但是由于有30%的发行费用您仅收到了70%的收益,那么在计算UDK版税时是基于你实际获得的收益70 .00美元来进行的。 

问: 如果我制作了一个.udk 关卡文件,它没有包含UT3资源仅包含我自己创建的自定义内容,我也不能和其他人分享我的那个.udk文件吗? 

答 : 在UDK EULA 中没有任何阻止您将您的自定义的、原创的作品与其他人分享的条款。 

问: 我们可以扩展UTGAME 代码并以商业目的出售它吗?还是这些代码也被认为是UDK中不允许我们使用的“资源”的一部分吗? 

答 : UTGame脚本代码不是受限制的资源集合的一部分。您可以自由地在您的UDK应用程序您认为合适的地方使用它。 

问: 如果我把我的UT3完全变换的mod成功地移植到了UDK中,但是我的自定义武器代码在很大程度上和UT3的Translocator的代码是一样的,那么当我们把UDK游戏作为免费的非商业版本下载时是否仍然是合法的或者这会违反EULA吗 ? 

答 : UTGame脚本代码不是受限制的资源集合的一部分。您可以自由地在您的UDK应用程序您认为合适的地方使用它。 

问: 是否允许您基于您没有拥有的或者没有权利使用的知识产权来发行免费的UDK游戏? 比如,很多人基于Star Wars 制作mods是没有问题的,但是否允许他们通过UDK来发行它哪? 

答 : 我们强烈反对UDK应用程序侵犯任何其他人知识产权的人。如果您有关于这个事情的任何问题,我们也强烈推荐您去咨询有资格的知识产权律师的建议。 

问: 我们可以制作针对Unreal Development Kit(虚幻开发工具包)的专业级的视频培训教程然后出售这些视频并获得利润吗 – 仅适用免费版本的UDK? 

答 : 

1. 假设符合以下几种情况,您可以创建“非官方的”UDK文档: a您的内容是新的并且是原创的。 b您不是从授权资源中再次重新发布内容,比如来自Sams 和 3D Buzz的Mastering Unreal Technology(掌握虚幻技术)书籍的内容。 c 您不是重新发布包括UDN在内的Epic Games的网站上的内容。 d您尊重EpicGames的商标(参照下面*处的内容)" 并且要明确地声明您的作品没有经过Epic Games认可。 e 您遵守UDK的最终用户授权协议(EULA)。 
2. 您可以分发或销售没有经过Epic授权的非官方的文档。 
3. Epic不会收取非官方文档的版权费。 

Unreal Development Kit (UDK) © 2009, Epic Games, Inc. Epic, Epic Games, Gears of War, Gears of War 2, Unreal, AnimSet Viewer, AnimTree Editor, Unreal Cascade, Unreal Content Browser, Unreal Development Kit, Unreal Editor, Unreal Engine, Unreal Kismet, Unreal Lightmass, Unreal Matinee, Unreal PhAT, UnrealScript 及 Unreal Tournament " 都是Epic Games, Inc在美国的和其它地区的商标或注册商标。所有其它的商标的所有权都归它们各自的所有者所有。 

问: 我们可以发行包含”虚幻竞技场3”资源的非商业化游戏吗? 

答 : 是的。您可以在非商业游戏中使用UDK中包含的UT3资源,但是不能使用那些UDK中没有包含的UT3资源。 

问: 我们可以发行使用了UDK中包含的”虚幻竞技场3”资源的商业化游戏吗? 

答 : 可以,但是有一个例外。 您不可以发行在商业版本的UDK应用程序的内容浏览器中标记为SkeletalMesh(骨架网格物体)的任何东西。 

问: 我已经开发了一个UDK游戏,我想通过Xbox LIVE®, PLAYSTATION® NETWORK 和/或 在PC上来销售它。那么下一步我该怎么办? 

答 : PC上的商业发行版本在前面已经进行了介绍,并且在UDK 授权 www.udk.com/licensing中我们也为这些向发行使用UDK创建的PC游戏的用户提供了很多条款。 UDK目前不支持Xbox 360 或 the PS3.0平台。 

游戏机平台上发行商业版本的游戏可能有点复杂,因为只有获得了游戏机平台的厂商的授权,您才可以获得开发工具包,这里涉及到了一个概念服从, 但是UDK将会在这个概念服从阶段证明这是值得的。 

如果您可以通过那步,我们将会非常高兴地和您商讨在非常好的商业条款下为您提供所有的源码授权。 

问: 我们可以在我们的UDK应用程序中改变静态的UDK程序启动界面吗? 

答 : 在(位于: http://udn.epicgames.com/Main/TrademarksAndLogos.html)欢迎画面中只可以使用经过审核的UDK版本。 如果需要对静态UDK欢迎画面进行修改,请通过向Epic的市场总监– Kendall Boyd ()发送邮件提交PDF格式资料进行审核。请为Epic预留足够的时间进行审核及回应。Epic没有回应并不表示同意。在继续下面的操作之前,您必须得到Epic游戏的首肯。 

问: 我可以出售使用UDK创作的作品吗? 

答 : 可以的。但是您需要一个商业授权。请参照我们的授权页面获得更多信息。 

问: 我可以创建 和/或 销售基于UDK的文档或出版物吗? 

答 : 假设符合以下几种情况,您可以创建“非官方的”UDK文档: 

• 您的内容是新的并且是原创的。 
• 您不是从授权资源中再次重新发布内容,比如来自Sams 和 3D Buzz的Mastering Unreal Technology(掌握虚幻技术)书籍的内容。 
• 您尊重EpicGames的商标(参照下面*处的内容)" 并且要明确地声明您的作品没有经过Epic Games认可。 
• 您遵守UDK的最终用户授权协议(EULA)。 

您可以在未经Epic授权的情况下发布或销售非官方文档。Epic不会收取非官方文档的版权费。 

*“Unreal Development Kit (UDK) © 2009, Epic Games, Inc. Epic, Epic Games, Gears of War, Gears of War 2, Unreal, AnimSet Viewer, AnimTree Editor, Unreal Cascade, Unreal Content Browser, Unreal Development Kit, Unreal Editor, Unreal Engine, Unreal Kismet, Unreal Lightmass, Unreal Matinee, Unreal PhAT, UnrealScript 及 Unreal Tournament " 都是Epic Games, Inc在美国的和其它地区的商标或注册商标。所有其它的商标的所有权都归它们各自的所有者所有。 

问: 如果想让我的UDK应用程序参加开发竞赛需要商业授权吗? 

答:您可以参加类似于Make Something Unreal Contest或Independent Games Festival的开发竞赛,加入赢得的奖励低于100,000.00美元,那么不需要商业授权。如果您赢得的收入超过了100,000.00美元(太棒了!),那么您需要商业授权用并且需要支付版税。 

问: 我可以在商业应用程序中使用集成到UDK中的Steamworks吗? 

答 : 不行,在商业UDK应用程序中使用Steamworks之前,您必须从Valve获得Steamworks授权。请联系Valve获得更多信息:  

问: 我可以从哪里获得高质量的UDK商标图像? 

答 : 请参照[UDKTrademarksAndLogos][UDK商标和标识]]页面获来获得商标图像及应用指南。 

支持和社区 

-------------------------------------------------------------------------------- 
问: 如果我有问题我可以联系谁? 

答 : 您最好的办法是访问UDK 论坛。 

内容创建 
-------------------------------------------------------------------------------- 
问: Unreal Editor(虚幻编辑器)工作时的单位是什么? 

答 : 关于Unreal Editor(虚幻编辑器)的工作单位和一般的比例,请参照UDN文档虚幻单位。 

错误 
-------------------------------------------------------------------------------- 
问: 当UDK在启动时发生崩溃并弹出日志: BulkDataOffsetInFile and something about Tex2D, a specific texture is declared,这是什么意思? 

答 : 您的UDK应用程序可能丢失了一个某些其它正在加载的资源所引用的贴图。请检查日志文件。 
-------------------------------------------------------------------------------- 
您还有其它问题吗? 
-------------------------------------------------------------------------------- 
如果您还有其它任何这里没有解答的问题,请尝试搜索文档或UDK论坛来获得答案。因为其他人也可能遇到了同样的问题。如果您仍然不能找到答案,那么请把您的问题张贴在那里。 

EULA 
-------------------------------------------------------------------------------- 
虚幻引擎3 UDK授权条款 

无论您是代表个人还是团体(以下简称“您”),此最终用户授权协议(以下简称“协议”)都是您和Epic Games, Inc. (以下简称“Epic”)之间的一个合法协议。在遵守以下条款的情况下,该授权允许您使用Epic提供的虚幻引擎3 UDK(以下简称“UDK”)及其任意更新。 如果您不同意协议中的条款,则不可以使用此UDK。 

1. 第三方软件。 该UDK包含第三方软件。 关于这些软件的一些附加约束条款和条件在协议的末尾有叙述。 这些附加的第三方条款和条件作为协议的一部分并且通过引用和协议合成一体。 当适用于第三方软件的条款和协议发生冲突时,以第三方软件的条款为准。 接受协议意味着接受了所有已经宣布的任何附加条款和条件。第三方软件只授权用于和UDK联合使用-任何其它应用都是禁止的。 

2. 授权给予。 授权给予。如果您遵守协议中的所有条款以及在下面第3节中的授权限制,Epic 给予您一个有限的、个人的、非独家的、全球性的、不可二次授权的、不可转让的授权,该授权允许:(a)安装并使用UDK来开发没有数量限制的应用程序;(b)开发UDK衍生作品 ;(c)使用应用UDK衍生作品来开发没有数量限制的应用程序;(d)发布您使用UDK和UDK衍生作品开发的应用程序。在整个受UDK知识产权法合法保护期间,仍遵照适用的法律(第7段的内容)。 该授权是免费提供的。 

3. 授权限制。 在协议中没有明确地给予您的权利,都将归Epic及其供应商所有。 除非协议中适用法律给予了您更多的权利用以忽略该限制,否则您只能按照协议中明确的许可来使用UDK。 因此您可以按照在第2部分所说的来使用UDK,但是您不能做以下事情: 
• 无论是以个人或者其它的任何形式,以任何方式使用以下内容,给自己或者其他任何团体带来直接或间接的赔偿或者商业利润。这些内容包括:(a)UDK及其中的任何一部分;(b)UDK的衍生作品以及其任何一部分;(c)包含任何UDK代码和(或)内容的应用程序;(d)包含由任何UDK代码和(或)内容的制作的衍生作品的应用程序; 尽管如上文所述,使用您的UDK应用程序参赛(比如Make Something Unreal或Independent Games Festival)并获取奖金(总额不超过100,000美元)是允许的; 
• 使用UDK开发与(或会与)Epic制作的UDK、任何其它中间件或游戏开发软件相竞争的应用程序; 
• 逆向工程或者解码(若有适用法律的明确准许,则可忽略该限制); 
• 在不是从Epic获得授权的情况下,发布任何UDK代码或者内容; 
• 除第2部分明确声明的内容以外,以任何目的使用、再生产、复制、再发布、阻碍、出售、租借、租出、转让、再授权、转移授权或展示UDK; 
• 将协议转让给第三方; 
• 使用UDK开发具有欺骗性的程序、黑客程序或者类似应用程序; 
• 删除或者修改来自UDK的任何产品标识、商标、版权、所有权公告、说明、标志、标签或者协议。除非您有权修改启动屏幕,包括有权删除UDK商标和产品标识,但是您没有权利删除或修改启动屏幕之后的Powered by Unreal Technology和Bink Video商标视频; 
• 以任何方式使用任何Epic的商标、商标图片、商标名或者服务标记。(除了保持上一点所提到的UDK上的商标公告); 
• 破坏或违反Epic或者任何第三方的任何知识产权或者所有权,或者保密权及公开权; 
• 使用UDK通过图片、音频、视频、或文字开发非法应用程序(比如儿童色情文学);在违反居住地所在国家法律情况下安装或使用UDK。 
• 以任何侵犯您的应用程序的目标平台(也就是 Apple、Microsoft、Google、Sony等)的规则或授权协议的方式来使用UDK。 
• 修改协议,或采用协议(或其修改版本)作为己用。 
• 以任何形式来替换您的协议版本或UDK版本。 

4. UDK插件。 没有针对UDK插件的官方验证中心。 插件软件应用程序没有得到 Epic的认可,使用它们的风险有您自己承担。 Epic不提供关于安装插件的指导说明 。您可以将您的插件软件集成到UDK中,并且要声明您的插件软件在和“UDK”或“Unreal® Development Kit”进行工作时遵循以下条款: 
• 插件应用程序是您自己做的。 
• 您没有违反这些UDK授权条款。 
• 插件没有以任何方法、形态或形式使用UDK商标。 
• 您必须使得用户可以看到所要求的“没有得到认可或支持”声明,并且在您推广该插件的网站上可以看到该声明: “这个产品不是由Epic Games, Inc.开发的,不会得到Epic Games的支持,也没有得到Epic Games的认可。关于Epic Games的虚幻开发工具包(UDK)的更多信息,请访问 www.udk.com 。“您可以认为您自己是插件的作者,不要在插件的名称中使用 “Unreal Development Kit”或“UDK”。 同时,您必须不能暗示Epic Games, Inc.认可了您、您的插件或您的UDK应用。 
您不能使用UDK来编译插件来制作单独的发行产品。 您仅可以独立于UDK提供您的插件产品。 

5. 所有权。 在各个团体之间,Epic及其供应商(如第1部分所述)拥有UDK中的名称、版权以及其他的知识产权,其中包括UDK的所有衍生作品。 您拥有使用UDK及其衍生作品所开发的应用程序的名称、版权和其他知识产权,但是UDK的所有权和UDK衍生作品的所有权及UDK中的任何一部分和UDK衍生作品的任何一部分的所有权仍然归Epic所有。 您同意Epic除了任何其它可获得的救济外,Epic可以寻求并且有权以禁令的,衡平法的或者其他类似的救济形式来保护、维持、防卫、执行及持有这些权利。 如果您所在法律管辖地的法律规定您是UDK衍生作品的所有者,那么在没有Epic预先书面的明确批准情况下,您不能使用任何这样衍生作品(除协议中已经另行提出允许使用外)。 

6. UDK 网络。在Epic允许范围中,您可以选择参加Epic UDK网络。 在Epic允许范围中,您可以选择参加Epic UDK网络。您因此给予了Epic一个非独家的、无须支付其他费用的、版权免费的、全球性的、永久的、不能取消的,可再许可的,不可终止的、可转移的、可转让的授权。该授权允许Epic通过所有已知的使用方式,从而基于、或者使用、或者利用: (a) 您公开在Epic UDK网络上或者提供给Epic的任何信息、代码、以及其它有形的或者无形的资源;(b)通过UDK网络或者提供给Epic的关于UDK的任何修改或者增加的内容,这些内容包括但不限于用于修复错误或者处理其他非故意的情况导致UDK不能正常工作、出现故障、或者按照一种方式操作但不能获得预期效果的问题的内容,进行再生产、发布、公开展出、公开展示、制作、销售、出口、修改以及制作衍生作品。 尽管如上文所述,但根据您所在的法律管辖地的法律,作为作者的法定权利是仍然不受影响的。 若在您的法律管辖地中,达到永久的和(或)不可终止的授权是不允许的,那么本第5条款前所描述的您给Epic的授权的有效持续时间应该遵照您的法律管辖地的法律所规定的对于知识产权的合法保护的完整时间周期。 

7. 出口。 UDK遵守美国国内及国际出口法律和规则。 您必须遵守应用于UDK的所有适用的出口法律和规则 。 这些法律包括对目的地、最终用户、最终用途的限制。 

8. 协议终止。 在不损害其它权利情况下,(a)在任一方违反协议条款的情况下,无需任何通知协议即可终止。(b) 一旦Epic给予通知,则可在任何时候终止协议。 一旦协议终止,您必须停止使用并且销毁UDK及其副本、它所有的组件及相关文件。 如果您违反协议,Epic将采取法律行动,您将需要为Epic支付合理的法律代理人费用。 

9. 其它的知识产权问题。 

(a) 作为对于Epic提供的以下考虑事项的回应,您同意对于任何与UDK版本相关联的可能属于您的专利、专利权、或者任何知识产权,您不会针对Epic提出伸张上述权利、或者采取任何行动来申诉上述权利受到侵犯。 

(b) 当您以任何方式使用UDK或者UDK的任何一部分,或者在协议授权下您做任何行使时,出现了任何专利品侵犯或者版权侵犯,错误地将其据为己有,或者错误地使用商业秘密或者其它所有权的问题,那么您要同意赔偿Epic由这些问题导致的或者相关的全部成本和费用(包括合理的法律代理人费用)并承担其它责任。 

10. 完整协议; 继续有效性。 协议以及您用作补充和更新的条款是您和Epic关于UDK的完整协议。协议以及您用作补充和更新的条款将代替所有以前或者同时期的口头或者书面的关于UDK的交流、建议以及陈述,或者其它的任何被协议所覆盖的主题。协议的第3,4,6部分以及第9到第19部分(包括)于协议终止或失效后仍然有效。 

11. 可分割性。 如果协议中的任何规定被有具有合法管辖权的法院裁定为是没用的、无效的、不可实施的或者违法的,其他的规定将继续具有完全的效力和法律效果。 

12. 适用法律和法律管辖地。 不管法律法则有任何冲突,North Carolina的法律将支配该合约解释权并且应用于对违反协议的索赔。所有其他的索赔,包括关于消费者保护法,不正当竞争法以及民事侵权的索赔,如居住在美国,将遵从您居住地所在州的法律,或者如果您不生活在美国,则遵从您居住地的法律。对起于协议或者与协议相关的任何争端,双方都同意专属管辖权和审判地点或者联邦法庭是在 Wake County, North Carolina, USA。您并且同意允许Epic在任何法律管辖地申请禁令救济(或者任何同等的法律救济)。 为了避免质疑,协议将在不考虑联合国国际商品销售合同公约的情况下被解释和执行,即联合国国际商品销售合同公约不适用于协议。 

13. 放弃担保。 UDK是以“as is(以现在的样子,不做任何改进)”的方式授权的。 您要承担使用它的风险。 Epic和它的供应商都不会给予任何明确的或者法定的陈述、担保、保证和条款。 Epic和它的供应商也拒绝接受所有的默示担保,它包括以下任何保证:适销性担保、权利担保、耐用性担保,特殊目的适用性担保以及无侵害性担保。 协议将不影响作为消费者的您已经获得的法定权利并且您不能以契约的形式来改变或者放弃这些法定权利。 如果达到了以下程度(a)由于Epic的大量的疏忽或者故意的不正当行为导致您遭受损失,(b)Epic侵害了您的生活,身体,或者健康,那么责任的限制和排除将不再适用。 

14. 意外、间接以及某些其他损害的排除 。 您仅能从Epic索取最高25美元的直接损害赔偿金。 您不能从Epic及它的供应商中索取其他损害的赔偿金,这些损害包括损失利润或数据、或者间接的、特别的、直接的、非直接的或者意外的损害。 这个限制包括以下内容(但不限制于这些内容): (a)与UDK和服务相关的任何事情(如果有的话);(b)对违反协议、违反保证、保证侵权、协议条款侵权、严格责任、过失侵权或者其它侵权行为要求索赔。 尽管Epic知道或者应该知道损害的可能性,该限制仍然是适用的。 前面所说的责任限制事项将应用于上面的拒绝担保声明以及协议的其他的方面。 如果达到了以下程度(a)由于Epic的大量的疏忽或者故意的不正当行为导致您遭受损失,(b)Epic侵害了您的生活,身体,或者健康,那么责任的限制和排除将不再适用。 

15. 美国最终用户。 UDK及相关文档是“商品”,正如在48 C.F.R. §2.101中所定义的术语,它们由“商业计算机软件”和“商业计算机软件文档”组成,这两个术语在48 C.F.R. §12.212 or 48 C.F.R. §227.7202 中有应用。与48 C.F.R. §12.212或者从48 C.F.R. §227.7202-1到227.7202-4一致的是,商业计算机软件和商业计算机软件文档被授权给美国最终用户。它们(a)只是作为商品(b)仅获得在协议条款给予其他最终用户的同样的权利。根据美国版权法,非公开发行的权利仍然保留。 

16. 不弃权。 Epic依据法律或衡平法对协议中的权利进行行使、或未能行使、或拖延行驶的任何行为都不能被看作是对于该权利或者依据协议、法律或公理的其他权利或救济的自动放弃。 

17. 不提供支持。 无论是Epic或者它的供应商都没有任何责任为您提供关于UDK或者其中任何一部分的支持服务。 

18. 不转让。在预先没有得到Epic书面允许的情况下,您不能转让、转移、抵押、转包协议或者使用协议中的权利和责任来以任何其它的方式进行交易。Epic在任何时候都可以转让、转移、抵押、转包协议或者使用协议中的权利和责任来以任何其它的方式进行交易。 

19. 法律效力。 本协议描述一定的法定权利。 在您所在的法律管辖地的法律下,您可能拥有其它的权利。如果您所在的法律管辖地不允许协议中的某些条款,那么协议不会改变在您的管辖区域的法律下的权利。协议中的一些担保条款及法律救济条款的限制项和排他项可能不适合您,因为在您的特定的环境中,您们的管辖区域内不允许他们存在。 当协议中的某些规定在您的管辖区域内不能实施时,这些条款应该在准据法下尽可能的做最大程度的实施。

 

虚幻引擎内容创建博客概述 

这是个类似于博客的试验性页面,允许用户以简单方便的方式共享精华信息,不必担心一旦它更新后就过期的情况发生。和一般的文档不同,博客不会过期 - 唯一的危险是被丢弃。我们的希望是通过把博客替换为我们内部分享帮助和技巧的主要方式来达到期望的目的,从而把邮件替换为该页面中内容创建相关的内容。从长远角度来讲,如果每个人包括授权用户在内都可以向该博客提供内容、帮助我们改进我们的文档、通过这种方式共享知识,那么这将会是很好的。为什么使用博客? 主要目标是降低共享有用的信息的难度,使得可以很容易地和很多人共享更新。目前这种形式的更新非常容易,鼓励快速分享新加的功能、新发现的知识或者仅是分享通用的 帮助&技巧。发表什么信息内容? 几乎可以张贴任何信息,只要对其他人有用即可。尝试了一次优化,但是没有奏效? 那么请稍微详细地告诉我们为什么没有奏效。显然,如果优化奏效也可以告诉我们。;-) 找到了个有用的插件或工具? 请张贴个条目。想知道加速导入过程的好方法吗? 请发表相关主题!为什么不是真正的博客? 大部分原因是由于技术限制,如果该形式实行的很好,我们可能会尝试克服这些限制。我们的计划是定时查看该页面,并确保这里所有的 帮助&技巧 在实际文档中反映出来。博客文章 

最近的文章 
———————————————————————————————————————————————————————————————————— 
2012年3月 在移动设备平台上通过使用蒙板贴图后改进了贴图混合效果 Gerke Max Preussner于2012/03/21发布从2012年4月的经过QA审核的版本开始,在将蒙板贴图作为混合源使用之后移动设备平台上的贴图混合效果发生了微妙的变化。内容开发人员可能不得不更新现有的材质,因为这是一次重大更改。以前,只有第一个MobileDetailTexture可以在这种模式中使用,而蒙板贴图的alpha通道提供了确定细节贴图将会有多少与基础贴图进行混合的混合系数。现在可以为贴图混合使用所有三个细节贴图。在蒙板贴图的alpha通道不再使用后,它的RGB值现在可以确定混合系数。将红色通道映射到MobileDetailTexture,绿色通道映射到MobileDetailTexture2,同时将蓝色通道映射到MobileDetailTexture3。2011年12月 移动设备平台上的颜色分级 Gerke Max Preussner于2011/12/22发布现在有一种简单基于公式的颜色分级实现方法可以用于移动设备平台。同时还在虚幻编辑器中提供了一种针对移动设备仿真功能的匹配材质函数。请查看颜色分级页面了解更多详细信息。2011年8月 修复在使用X和Y非对称性的贴图镜像时的高光 发布于2011/8/15可以通过贴图镜像重复使用贴图内存,但是可能会导致高光的问题出现。这里一个网格物体由四个部分组成,每个部分使用的是同一个UV坐标。正像您所看到的那样,出现一个白色的点。只需移动其他网格物体UV坐标,使它们使用的UV坐标范围是1.f到2.f...现在这个问题解决啦!Cropped Emissive Assistant(剪裁自发光贴图辅助工具) 发布于2011/8/12Cropped Emissive Asssistant(剪裁自发光辅助工具)是Photoshop中的一个工具,用于辅助制作可以在虚幻引擎3中使用的剪裁自发光材质。这个工具的设计目的是降低将浪费的自发光贴图转换为较小的自发光贴图所需的时间及操作流程,它提供了一种能够以适当的分辨率自动保存出一个贴图块的方法,它可以保存您的选项,提供了特殊的Material Function(材质函数)所需的浮点值来将将剪裁后的贴图放置到适当的位置处。视频捕获 发布于2011/8/9您想要将您的matinees截取为avi视频或者您想要截取游戏中的视频吗? 在这里阅读更多有关它的内容。2011年7月 在Quick Time中查看FBX文件 发布于2011/7/27您知道可以在PC上通过Quick Time快速查看FBX文件吗? 在这里阅读更多相关内容。后期处理抗锯齿  Martin Mittring 于 2011/7/12 发表 了这个文档: PostProcessAA2011年5月 指数型高度雾优化 *由Martin Mittring于2011/5/13在这里(页面底部)发布了这个文档: 高度雾通过剔除比一些起点距离更近的像素优化指数高度雾。起点值可以由关卡设计师设定。2011年4月 创建清洁的光照贴图 * 张贴于2011/4/15*展开光照贴图的UVs页面已经更新了一些关于创建清洁的光照贴图的信息。(点击获得完整尺寸)贴图优化技术 * 张贴于2011/4/15*有一个新的UDN页面贴图优化技术。针对分屏优化关卡Daniel Wright张贴于2011/4/14有一个关于分屏分析工具的新UDN页面。2011年3月 使用PIX分析特效 Daniel Wright张贴于2011/3/21有一个关于美工人员可以 使用PIX在Xbox 360上分析特效的新UDN页面。编辑器预览玩家模式Pete Bennett于2011/3/17张贴我们最近新加了个编辑器功能:在世界中预览玩家高度。这个功能允许用户在世界中可视化查看预定义的网格物体,不必把该网格物体添加到世界中。目前,这个功能仅允许预览静态网格物体。您可以指定任何数量的预览网格物体。在Epic,美工人员使用这个功能比较某个对象和玩家网格物体的高度,比如Marcus。但是,该功能可以使用您选择的任何网格物体。应用: 
要想激活预览网格物体,需要在编辑器视口聚焦状态下按下退格(\)键。当完成预览后释放退格键。要想循环到下一个预览网格物体,那么可以按下shift键并按退格键。指定预览网格物体 
您可以在(YourGameName)UserSettings.ini文件中添加或删除预览网格物体。网格物体必须列在 [EditorPreviewMesh] 类别下。引擎的默认网格物体设置为TexPropCubes网格物体,比如: 
PreviewMeshNames=" EditorMeshes.TexPropCubes "UDKGame覆盖了DefaultEditorUserSettings.ini中的TexPropCubes网格物体,使它指向了战士雕像,如下所示: 
PreviewMeshNames=" ASC_Deco_Statue.SM.Mesh.S_ASC_Deco_SM_Statue_Warrior_BASEPOSE "新的DirectX 11文档! Daniel Wright张贴于2011/3/11现在提供了关于如何在DirectX11中运行UE3及如何使用这个新功能的文档。存档资料 
———————————————————————————————————————————————————————————————————— 
请参阅内容博客存档资料了解从去年开始的所有相关文章。2010年11月 
———————————————————————————————————————————————————————————————————— 
顶点颜色匹配工具 MattKuhlenschmidt张贴于2010/11/29Archived(存档): 顶点着色匹配工具 
———————————————————————————————————————————————————————————————————— 
2010年10月 
———————————————————————————————————————————————————————————————————— 
光溢出改进 Martin Mittring于2010/10/29张贴 了这个文档: 光溢出Archived(存档): 亮度溢出改进 
———————————————————————————————————————————————————————————————————— 
多个运动模糊方面的改进 Martin Mittring于2010/10/28张贴 了这个文档: 运动模糊 运动模糊柔和边缘 运动模糊植皮。Archived(存档): 多处运动模糊改进 
———————————————————————————————————————————————————————————————————— 
色调映射器改进 Martin Mittring于2010/10/28发布 了这个文档: 颜色分级。Archived(存档): 色调映射器改进 
———————————————————————————————————————————————————————————————————— 
2010年9月 
———————————————————————————————————————————————————————————————————— 
批量修改贴图属性 Jason Bestimt于2010/09/01发布Archived(存档): 批量修改贴图属性 
———————————————————————————————————————————————————————————————————— 
2010年8月 
———————————————————————————————————————————————————————————————————— 
毛发的一遍光照渲染 *由Daniel Wright于2010/08/04发布 *Archived(存档): 毛发的一遍光照渲染 
———————————————————————————————————————————————————————————————————— 
点光源的全景阴影 *由Daniel Wright于2010/08/04发布 *Archived(存档): 点光源的全景阴影 
———————————————————————————————————————————————————————————————————— 
2010年7月 
———————————————————————————————————————————————————————————————————— 
新的角色间接光照设置 Daniel Wright于2010/07/20发布Archived(存档): 新的角色间接光照设置 
———————————————————————————————————————————————————————————————————— 
细节光照编辑器视图模式 Daniel Wright于2010/07/20发布Archived(存档): 细节光照编辑器视图模式 
———————————————————————————————————————————————————————————————————— 
预计算可见性 Daniel Wright于2011/07/07发布Archived(存档): 预计算可见性 
———————————————————————————————————————————————————————————————————— 
Source Control(源码控制)恢复对话框 Billy Bramer于2010/07/06发表的内容Archived(存档): 源码控制恢复对话框 
———————————————————————————————————————————————————————————————————— 
2010年6月 
———————————————————————————————————————————————————————————————————— 
骨架网格物体上的顶点颜色 MattKuhlenschmidt发表于2010/06/23Archived(存档): 骨架网格物体上的顶点颜色 
———————————————————————————————————————————————————————————————————— 
支持明确法线 MattKuhlenschmidt发表于2010/06/23Archived(存档): 支持明确法线 
———————————————————————————————————————————————————————————————————— 
光溢出改进 Daniel Wright发布于2010/06/02Archived(存档): 亮度溢出改进 
———————————————————————————————————————————————————————————————————— 
2010年5月 
———————————————————————————————————————————————————————————————————— 
半影缩放  Ryan Brucks于2010/05/28发表的内容。Archived(存档): 半影缩放 
———————————————————————————————————————————————————————————————————— 
自动重新导入贴图 Jason Bestimt张贴于 2010/05/26Archived(存档): 自动重新导入贴图 
———————————————————————————————————————————————————————————————————— 
基于每个地图的后期处理链 MattKuhlenschmidt发表于2010/05/24Archived(存档): 基于每个地图的后期处理链。 
———————————————————————————————————————————————————————————————————— 
指数型高度雾 Daniel Wright发布于2010/05/20Archived(存档): 指数型高度雾 
———————————————————————————————————————————————————————————————————— 
2010年4月 
———————————————————————————————————————————————————————————————————— 
FBX导入器更新  Mike Fricker于2010/04/29 发表的内容。Archived(存档): FBX导入器更新 
———————————————————————————————————————————————————————————————————— 
光束 Daniel Wright发布于2010/04/14Archived(存档): 光束 
———————————————————————————————————————————————————————————————————— 
依赖于深度的光晕 Jason Bestimt发布于2010/04/14 (相关主题: UnrealEd)Archived(存档): 依赖于深度的光晕 
———————————————————————————————————————————————————————————————————— 
ProcBuilding文档 James Golding发布于2010/04/2Archived(存档): ProcBuilding文档 
———————————————————————————————————————————————————————————————————— 
2010年3月 
———————————————————————————————————————————————————————————————————— 
处理优化法线  Kevin Johnstone于2010/03/26发表的内容Archived(存档): 处理优化法线 
———————————————————————————————————————————————————————————————————— 
资源合并 Jason Bestimt发布于2010/03/23Archived(存档): 资源合并 
———————————————————————————————————————————————————————————————————— 
编码视频 Nick Atamas于 2010/03/23 发表的内容。Archived(存档): 编码视频 
———————————————————————————————————————————————————————————————————— 
动态阴影半透明 Daniel Wright发布于2010/03/22Archived(存档): 动态阴影半透明 
———————————————————————————————————————————————————————————————————— 
对预览未构建的光照的修改 Daniel Wright张贴于2010/03/18Archived(存档): 对预览未构建的光照的修改 
———————————————————————————————————————————————————————————————————— 
Cascaded Shadow Maps(层叠阴影贴图)和DominantDirectionalLightMovable Daniel Wright发布于2010/03/18Archived(存档): Cascaded Shadow Maps(层叠阴影贴图)和DominantDirectionalLightMovable 
———————————————————————————————————————————————————————————————————— 
包列表过滤器 Nick Atamas于2010/03/18发表的内容Archived(存档): 包列表过滤器 
———————————————————————————————————————————————————————————————————— 
拖放修改 Nick Atamas于2010/03/17发表的内容。Archived(存档): 拖放修改 
———————————————————————————————————————————————————————————————————— 
材质编辑器节点预览 Matt Kuhlenschmidt发表于2010/03/12 (相关主题: UnrealEd)Archived(存档): 材质编辑器节点预览 
———————————————————————————————————————————————————————————————————— 
属性窗口脚本定义的顺序 *由Jason Bestimt发布于2010/03/12 * (相关主题: UnrealEd)Archived(存档): 属性窗口脚本定义的顺序 
———————————————————————————————————————————————————————————————————— 
复制/粘帖 资源引用 Nick Atamas于2010/03/03发表的内容Archived(存档): 复制/粘帖 资源引用 
———————————————————————————————————————————————————————————————————— 
MipGenSettings Martin Mittring于2010/03/0贴了这个文档Archived(存档): MipGenSettings 
———————————————————————————————————————————————————————————————————— 
SkeletalMeshCinematicActor Daniel Wright发布于2010/03/01Archived(存档): SkeletalMeshCinematicActor 
———————————————————————————————————————————————————————————————————— 
2010年2月 
———————————————————————————————————————————————————————————————————— 
附加物编辑器 James Golding发布于2010/02/16Archived(存档): 附加物编辑器 
———————————————————————————————————————————————————————————————————— 
"Set VectorParam" 和"Get Location and Rotation"动作的新的Kismet功能 Matt Kuhlenschmidt发表于2010/02/09 (相关主题: UnrealEd)Archived(存档): "Set VectorParam" 和"Get Location and Rotation"动作的新的Kismet功能 
———————————————————————————————————————————————————————————————————— 
属性窗口收藏夹 Jason Bestimt张贴于 2010/02/04 (相关主题: UnrealEd)Archived(存档): 属性窗口收藏夹 
———————————————————————————————————————————————————————————————————— 
2010年1月 
———————————————————————————————————————————————————————————————————— 
状态栏通知 Jason Bestimt张贴于 2010/01/28 (相关主题: UnrealEd)Archived(存档): 状态栏通知 
———————————————————————————————————————————————————————————————————— 
新的颜色选择器 *由Jason Bestimt张贴于2010/01/19 * (相关主题: UnrealEd)Archived(存档): 新的颜色选择器 
———————————————————————————————————————————————————————————————————— 
2009年12月 
———————————————————————————————————————————————————————————————————— 
拖放Matinee连接器(2009年12月17日)  Mike Fricker于2009/12/17 发表的内容 (相关主题: UnrealEd)Archived(存档): 拖放Matinee连接器(2009年12月17日) 
———————————————————————————————————————————————————————————————————— 
最新的动画文档! (12/8/2009) Matt Kuhlenschmidt发表于2009/12/7 (相关主题: UnrealEd)Archived(存档): 最新的动画文档! (12/8/2009) 
———————————————————————————————————————————————————————————————————— 
AnimSet查看器 - 顶点变形目标关键信息! (12/7/2009) *由Lina Halper张贴于 2009/12/7 * (相关主题: UnrealEd)Archived(存档): AnimSet查看器 - 顶点变形目标关键信息! (12/7/2009) 
———————————————————————————————————————————————————————————————————— 
2009年11月 
———————————————————————————————————————————————————————————————————— 
新的视频指南! (11/30/2009) 由Richard Nalezynski?于 2009/11/30发表的该内容 UnrealEd)Archived(存档): 新的视频指南! (11/30/2009) 
———————————————————————————————————————————————————————————————————— 
新的几何体模式贴图 (2009/11/30) *由 Warren Marshall张贴于2009/11/30 * (相关主题: UnrealEd)Archived(存档): 新的几何体模式贴图 (2009/11/30) 
———————————————————————————————————————————————————————————————————— 
新的编辑器功能(2009/11)  Mike Fricker于2009/11/24发表的内容 (相关主题: UnrealEd)Archived(存档): 新的编辑器功能(2009/11) 
———————————————————————————————————————————————————————————————————— 
拍摄较好的贴图照片 *由Jordan Walker发布于2009/11/21 * (相关主题: UnrealEd)Archived(存档): 拍摄较好的贴图照片 
———————————————————————————————————————————————————————————————————— 
世界位置偏移(也称为顶点变形) *由Daniel Wright发布于2009/10/29 * (相关主题: UnrealEd)Archived(存档): 世界位置偏移(也称为顶点变形) 
———————————————————————————————————————————————————————————————————— 
2009年10月 
———————————————————————————————————————————————————————————————————— 
光照构建信息对话框 Scott Sherman张贴于2009/10/20 (相关主题: UnrealEd)Archived(存档): 光照构建信息对话框 
———————————————————————————————————————————————————————————————————— 
新的视图模式 Scott Sherman发布于2009/10/20 (相关主题: UnrealEd)Archived(存档): 新的视图模式 
———————————————————————————————————————————————————————————————————— 
视口平移改变 *由Jason Bestimt发布于2009/10/12 * (相关主题: UnrealEd)Archived(存档): 视口平移改变 
———————————————————————————————————————————————————————————————————— 
网格物体描画工具  Mike Fricker于2009/10/12发表的内容 (相关主题: UnrealEd)Archived(存档): 网格物体描画工具 
———————————————————————————————————————————————————————————————————— 
着色器复杂度改进 Daniel Wright发布于2009/10/01 (相关主题: UnrealEd)Archived(存档): 着色器复杂度改进 
———————————————————————————————————————————————————————————————————— 
自定义缩略图 Jason Bestimt发布于2009/10/01 (相关主题: UnrealEd)Archived(存档): 自定义缩略图 
———————————————————————————————————————————————————————————————————— 
新的"支点"控制  Warren Marshall张贴于2009/10/01 (相关主题: UnrealEd、[StaticMeshTopics][静态网格物体]])Archived(存档): 新的"支点"控制 
———————————————————————————————————————————————————————————————————— 
2009年9月 
———————————————————————————————————————————————————————————————————— 
默认设置中的改变 Daniel Wright张贴于 2009/09/25 (相关主题: 内容创建)Archived(存档): 默认设置中的改变 
———————————————————————————————————————————————————————————————————— 
高级的网格物体放置  Warren Marshall发布于2009/09/22 (相关主题: UnrealEd、[StaticMeshTopics][静态网格物体]])Archived(存档): 高级的网格物体放置 
———————————————————————————————————————————————————————————————————— 
内容浏览器中的光源Actor Jordan Walker发布于2009/09/22 (相关主题: 关卡编辑)Archived(存档): 内容浏览器中的光源Actor 
———————————————————————————————————————————————————————————————————— 
基本的半透明图元原型  Ryan Brucks于2009/09/21 发表的内容 (相关主题: 关卡编辑)Archived(存档): 基本的半透明图元原型 
———————————————————————————————————————————————————————————————————— 
实例化光源流程 Jordan Walker发布于2009/09/18 (相关主题: 关卡编辑)Archived(存档): 实例化光源流程 
———————————————————————————————————————————————————————————————————— 
编辑器性能 Daniel Wright Phil Cole发布于2009/09/18 (相关主题: UnrealEd)Archived(存档): 编辑器性能 
———————————————————————————————————————————————————————————————————— 
光照贴图UVs中的留白 Daniel Wright发布于2009/09/10 (相关主题: 渲染)Archived(存档): 光照贴图UVs中的留白 

虚幻引擎 3 基础知识 完 

 

 

 

 

 

原文地址:http://www.bfmil.cn/post-1157018-1.fhtml

 

posted @ 2016-11-29 16:25  星月相随  阅读(2459)  评论(0编辑  收藏  举报