(轉載)虛幻引擎3--基礎知識

 這是虛幻引擎3UDN的技術文檔,共有六個章節。如下將分別把中文譯本貼出來,方便懶人學習[偷笑] 
1、虛幻引擎 3 基礎知識 html

 

 

1、虛幻引擎 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中,它們能夠做爲組成遊戲性自己的一部分,從而使得玩家選擇武器、裝備及構建單元等。 HUD HUD  類是在屏幕上顯示元素的基類。遊戲中的每一個玩家有他們本身的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 副本 web

 

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: 編譯 

目前,天天都會經過編譯腳原本搜索到最新版本的內容和代碼,編譯引擎和全部的遊戲工程,爲其添加惟一的標籤,把全部的內容並把編譯好的二進制文件遷入,而後在書寫一個內部的通知郵件,告訴項目團隊已經有一個新的版本。 全部的美工人員和設計人員在他們的系統上都有批處理文件,這容許它們同步到最近的徹底編譯版本。 這個有助於避免工做人員對正在使用哪一個版本進行工做產生疑惑。。 spring

 

通用開發主題
目錄佈局概述 

虛幻引擎 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> windows

 

控制檯命令概述 
-------------------------------------------------------------------------------- 
控制檯命令是您能夠在遊戲中或在編輯器中運行的基於字符串的命令。它們也被稱做 可執行命令 。 

要想使用控制檯命令,經過按下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] - 因爲特定延遲時間,強制遊戲暫停。

相關文章
相關標籤/搜索