UDK命令行参数与控制台命令都是大小写不敏感的
全词大小写匹配,正则表达式,在c++代码中搜索减号开头的命令行参数(如:-BENCHMARK、-onethread等):ParseParam[ \t]*\(
全词大小写匹配,正则表达式,在c++代码中搜索KEY=的命令行参数(注:会搜索到解析ini中的key-value字符串,需挑选一下):Parse[ \t]*\(
全词大小写匹配,正则表达式,在c++代码中搜索KEY=的命令行参数(注:子集 -- 没有在Parse第1个参数里面使用appCmdLine则不会搜索到):Parse[ \t]*\([ \t]*appCmdLine[ \t]*\(
简单命令
UDK.exe editor // 启动编辑器
UDK.exe server TestMap_Main.udk // 以Server模式启动TestMap_Main地图
UDK.exe 127.0.0.1 // 若IP为127.0.0.1的机器上已经启动了Server,则当前客户端将加入到Server中
UDK.exe 127.0.0.1?Name=Lee?Team=1 // 若IP为127.0.0.1的机器上已经启动了Server,则当前客户端以名称为Lee,小队ID为1将加入到Server中
注:Name和Team会被保存到生成出来的XXXGame.ini的[DefaultPlayer]下,也可以直接在DefaultGame.ini的[DefaultPlayer]下配置Name和Team的值
UDK.exe server TestMap_Main.udk?GameSpeed=5 // 以Server模式启动TestMap_Main地图,并设置游戏速度设置为5倍速
UDK.exe TestMap_Main.udk?Name=John?Team=0 // 以单机模式启动TestMap_Main地图,并名称为John,小队ID为0的玩家加入游戏中
注1:Name和Team会被保存到生成出来的XXXGame.ini的[DefaultPlayer]下,也可以直接在DefaultGame.ini的[DefaultPlayer]下配置Name和Team的值
注2:全词大小写匹配,正则表达式,在c++代码中搜索ParseOption[ \t]*\([ \t]*Options,即可搜索到所有参数(如上文中的Name、Team、GameSpeed等)相关的逻辑
UDK.exe TestMap_Main.udk ResX=800 ResY=600 // 以分辨率为宽:800 高:600启动游戏 注:设置不会被序列化ini配置文件中
UDK.exe TestMap_Main.udk ResX=800 ResY=600 -WINDOWED // 以分辨率为宽:800 高:600窗口模式启动游戏 注:设置不会被序列化ini配置文件中
UDK.exe TestMap_Main.udk ResX=800 ResY=600 -FULLSCREEN // 以分辨率为宽:800 高:600全屏模式启动游戏 注:设置不会被序列化ini配置文件中
UDK.exe TestMap_Main.udk -log // 单机启动TestMap_Main地图,并打开命令行日志窗口
UDK.exe TestMap_Main.udk -SM3 // 使用DX9 加载Content\RefShaderCache-PC-D3D-SM3.upk
UDK.exe TestMap_Main.udk -FORCESHADERMODEL3 // 使用DX9 加载Content\RefShaderCache-PC-D3D-SM3.upk
UDK.exe TestMap_Main.udk -SM4 // 使用DX10 加载Content\RefShaderCache-PC-D3D-SM4.upk
UDK.exe TestMap_Main.udk -D3D10 // 使用DX10 加载Content\RefShaderCache-PC-D3D-SM4.upk
UDK.exe TestMap_Main.udk -VSync // 开启垂直同步 帧率将被限制到显示器刷新频率以下
UDK.exe TestMap_Main.udk -NoVSync // 关闭垂直同步
UDK.exe TestMap_Main.udk -NOTEXTURESTREAMING // 禁用TextureStreaming,最高精度的贴图始终被加载
UDK.exe TestMap_Main.udk -BENCHMARK // 以固定时间间隔(1/30s)运行每一帧,若游戏帧率为60帧,则游戏将以60*(1/30)=2倍的速度运行
UDK.exe TestMap_Main.udk -BENCHMARK FPS=50 // 以固定时间间隔(1/50s)运行每一帧,若游戏帧率为60帧,则游戏将以60*(1/50)=1.2倍的速度运行
UDK.exe TestMap_Main.udk -BENCHMARK -DUMPMOVIE // 以固定时间间隔(1/30s)运行每一帧,并用当前分辨率输出每帧图片到游戏的ScreenShots目录中
UDK.exe TestMap_Main.udk SECONDS=20 // 启动游戏后20s关闭
UDK.exe TestMap_Main.udk -onethread // 渲染放在主线程中,不单独创建线程
UDK.exe TestMap_Main.udk -exec cmd.txt // 启动游戏后,执行游戏Binaries目录下cmd.txt中的命令序列
----------------------------------------------------------------------------------------------------
如cmd.txt的内容如下(每行一个命令):
god
viewmode wireframe
----------------------------------------------------------------------------------------------------
UDK.exe TestMap_Main.udk -forcelogflush // 单机启动TestMap_Main地图,打印每句log都立即flush到文件中
UDK.exe TestMap_Main.udk LOG=test.log // 单机启动TestMap_Main地图,日志输出到游戏log目录下test.log文件中
UDK.exe TestMap_Main.udk ABSLOG=d:\test2.log // 单机启动TestMap_Main地图,日志输出d:\test2.log文件中
UDK.exe TestMap_Main.udk -nologtimes // 每行log开头不打印距离游戏启动逝去的秒数。等同DefaultEngine.ini的[LogFiles]标签下设置LogTimes=False
UDK.exe TestMap_Main.udk -SCRIPTSTACKONWARNINGS // 在执行脚本时,若出现ScriptWarning时(如:空对象访问成员函数或成员变量)则打印出脚本调用堆栈到log中
全词大写小匹配,在c++代码中搜索:Commandlet::Main
// 编辑器内置commandlet 如:UMakeCommandlet BEGIN_COMMANDLET(Make,UnrealEd) // ... ... END_COMMANDLET /** UMakeCommandlet.cpp */ IMPLEMENT_CLASS(UMakeCommandlet) INT UMakeCommandlet::Main( const FString& Params ) { // ... ... return 0; } ////////////////////////////////////////////////////////////////////// // 自定义commandlet /** XXXCommandlet.uc */ class XXXCommandlet extends Commandlet native; native event int Main(string Params); /** xxx.cpp */ IMPLEMENT_CLASS(UXXXCommandlet) INT UXXXCommandlet::Main( const FString& Params ) { // ... ... return 0; }
UDK.exe CookPackages -platform=pc entry TestMap_Main -LANGUAGEFORCOOKING=cht // 烘焙客户端:以中文配置增量烘焙entry和TestMap_Main两张地图及相关引用资源
UDK.exe CookPackages -platform=pcserver entry TestMap_Main -full -LANGUAGEFORCOOKING=int // 烘焙服务端:以英文配置重新烘焙entry和TestMap_Main两张地图及相关引用资源
输出到游戏屏幕命令
UDK输入框快捷键为Tab,TGame为F7,均通过按tab进行命令补全
APlayerController::ConsoleCommand ULocalPlayer::Exec ParseCommand UGameViewportClient::Exec ParseCommand UGFxInteraction::Exec ParseCommand ParseCommand UUIInteraction::Exec ParseCommand UUIInteraction::ScriptConsoleExec UGameUISceneClient::Exec UUISceneClient::Exec UUISceneClient::ScriptConsoleExec ParseCommand UGameViewportClient::ScriptConsoleExec +UGameEngine::Exec : UEngine::Exec | ParseCommand | UWorld* GWorld->Exec | AGameInfo::ScriptConsoleExec | UEngine::Exec +UEditorEngine::Exec : UEngine::Exec | ParseCommand | UWorld* GWorld->Exec | UEngine::Exec | ParseCommand UPlayer::Exec UWorld* GWorld->Exec APlayerInput::ScriptConsoleExec UPlayer::ScriptConsoleExec APawn::ScriptConsoleExec AInventoryManager::ScriptConsoleExec AWeapon::ScriptConsoleExec AHUD::ScriptConsoleExec AGameInfo::ScriptConsoleExec UCheatManager::ScriptConsoleExec UInteraction::ScriptConsoleExec // UWorld::Exec UWorld* GWorld->Exec UNetDriver::Exec UDemoRecDriver::Exec ParseCommand UNetDriver::Exec ParseCommand FPrimitiveOctree::Exec FPrimitiveGrid::Exec FNavigationOctree::Exec ExecRBCommands FIApexCommands *GApexCommands->ProcessCommand ParseCommand // UEngine::Exec UEngine::Exec USystem* GSys->Exec UObject::StaticExec UWindowsClient* Client->Exec UClient::Exec ParseCommand UXAudio2Device::Exec UAudioDevice::Exec ParseCommand ParseCommand FDebugToolExec* GDebugToolExec->Exec FStatChart* GStatChart->Exec FMalloc* GMalloc->Exec FObjectPropagator* GObjectPropagator->Exec FVideoSettingByLevelMap GVideoSettingByLevelMap.Exec FRemoteControlExec* RemoteControlExec->Exec
setres 800x600 // 设置当前分辨率为宽:800 高:600(不改变窗口全屏模式)注:设置会被序列化ini配置文件中
setres 800x600 w // 设置当前分辨率为宽:800 高:600,并将设置成窗口模式。注:设置会被序列化ini配置文件中
setres 800x600 f // 设置当前分辨率为宽:800 高:600,并将设置成真全屏模式。注:设置会被序列化ini配置文件中
restartlevel // 重新启动关卡 注:对于在某些初始化期间的脚本函数(如:InitGame、PreBeginPlay、PostBeginPlay、Login等)无法触发断点,可使用restartlevel重启关卡来命中断点
// 无法触发断点的原因是:由于时机太早,在执行这些脚本函数时,调试器还没有在断点处插入中断指令,使得这些断点没有生效
showlog // 显示/隐藏日志命令行窗口(c++的debugf和脚本`log函数等打印的日志会及时显示到命令行窗口上) 注:若日志窗口显示隐藏,请删除所有生成出来的ini配置文件
flushlog // flush日志到文件
pause // 暂停当前游戏进程 UDK也可以按Pause按键来暂停
exit // 退出当前游戏进程
quit // 退出当前游戏进程
god // 无敌
suicide // 自杀
PlayersOnly // 暂停除了自己外的任何东西
fly // 飞天
walk // 开启重力,正常行走
ghost // 关闭自身碰撞,可飞天穿墙
addbots 1 // 增加1个机器人 ①不是组队模式时:机器人无阵营②组队模式时:机器人有阵营(阵营根据人数平衡性来确定)
addbots 2 // 增加2个机器人(阵营根据人数平衡性来确定)注:UTTeamGame类型的组队模式才有效
AddNamedBot john true 0 // 增加1个名为john的机器人 ①不是组队模式时:机器人无阵营②组队模式时:机器人为红队(TeamIndex=0)
addredbots 1 // 为红队(TeamIndex=0)增加1个机器人 注:UTTeamGame类型的组队模式才有效
addbluebots 1 // 为蓝队(TeamIndex=1)增加1个机器人 注:UTTeamGame类型的组队模式才有效
SwitchTeam // 切换阵营 注:UTTeamGame类型的组队模式才有效
ChangeTeam // 切换阵营 注:UTTeamGame类型的组队模式才有效
ChangeTeam red // 切换红队阵营(TeamIndex=0) 注:UTTeamGame类型的组队模式才有效
ChangeTeam blue // 切换蓝队阵营(TeamIndex=1) 注:UTTeamGame类型的组队模式才有效
killbots // 杀死所有机器人
killpawns // 杀死关卡中除玩家外所有pawn对象,若这些pawn对象存在controller,也顺带销毁其controller
KillAllPawns UTPawn // 杀死关卡中除玩家外所有UTPawn对象,若这些UTPawn对象存在controller,也顺带销毁其controller
killall UTBot // 杀死所有UTBot机器人
killall Weapon // 销毁所有Weapon(Weapon从Actor派生)实例
KillBadGuys // 杀死非本队的玩家
slomo 0.1 // 将当前游戏速度降为正常速度的0.1倍
slomo 5 // 将当前游戏速度提高为正常速度的5倍
camera 1st // 第一人称相机
camera 3rd // 第三人称相机
freecamera // 在第一人称与第三人称相机之间切换
fov 90 // fov设置为90度
camera freecam // 第三人称自由相机(镜头方向与角色行走方向不相关)
exec cmd.txt // 执行游戏Binaries目录下cmd.txt中的命令序列
open TM-Ship_4_Main // 打开TM-Ship_4关卡地图
open e:\DM-Sanctuary.udk // 打开e:\DM-Sanctuary.udk关卡地图
open DM-Deck.udk?GameSpeed=5 // 打开DM-Deck关卡地图,并以5倍的速度进行游戏
start TM-Ship_4_Main // 与open功能一样
giveweapon UTGameContent.UTWeap_ShockRifle // 给当前角色一把ShockRifle武器
allammo // 装满所有弹夹
shot // 以当前分辨率截图,并保存在游戏的Screenshots目录中
screenshot // 功能与shot一样
tiledshot // 以2倍当前分辨率截图(只会对场景生效,因此截图前请隐藏第一人称的玩家和hud),并保存在游戏的Screenshots目录中
tiledshot 8 // 以8倍当前分辨率截图(只会对场景生效,因此截图前请隐藏第一人称的玩家和hud),并保存在游戏的Screenshots目录中
show bsp // 隐藏/显示bsp
show skelmeshes // 隐藏/显示骨骼模型
show staticmeshes // 隐藏/显示镜头模型
show collision // 隐藏/显示碰撞
show volumes // 隐藏/显示volume
show decals // 隐藏/显示贴花
show decalinfo // 隐藏/显示贴花包围盒
show bounds // 显示/隐藏Actor对象的包围盒和包围球
show volumes // 隐藏/显示Volume
show particles // 隐藏/显示特效
show terrain // 隐藏/显示地形
show terrainpatches // 隐藏/显示地形块包围盒
show postprocess // 关闭/打开后处理
show fog // 关闭/打开雾
show paths // 显示/隐藏导航网格
ViewMode显示模式,UDK中可以按F7来切换
viewmode lit // 开启光照(默认模式)
viewmode unlit // 关闭光照
viewmode lightingonly // 带光照的灰色图
viewmode wireframe // 线框显示
viewmode brushwireframe // brush只显示边缘(不细分到三角形)线框显示
viewmode lightcomplexity // 光照贴图密度模式
viewmode shadercomplexity // 材质复杂度模式
viewmode texturedensity // 贴图密度模式
viewmode lightmapdensity // 光图密度模式
viewmode litlightmapdensity // 与lightingonly相比,会考虑BSP蓝白格颜色将其灰化
displayclear // 清理游戏窗口左上角显示内容
displayall PlayStart TeamIndex // 打印场景中所有出生点的TeamIndex
displayall PlayerReplicationInfo PlayerName // 打印场景中所有PRI对象的PlayerName
displayall PlayerReplicationInfo Team // 打印场景中所有PRI对象的Team
displayall TeamInfo TeamIndex // 打印场景中所有TeamInfo对象的TeamIndex
displayall TeamInfo TeamName // 打印场景中所有TeamInfo对象的TeamName
displayall gameinfo bTeamGame // 查看当前模式是否支持分队
displayall swfmovie name // 查看所有的swfmovie对象的name
displayall UTPawn location // 打印场景中所有UTPawn对象的位置信息
displayall Pawn name // 打印场景中所有Pawn对象的name
diaplay TPawn_6 location // 显示name为TPawn_6对象的位置信息
displayall AIController Pawn // 打印场景中所有AIController对象的所控制的Pawn
displayallstate UTPawn // 打印场景中所有UTPawn对象的状态(如:Dying)
displayallstate UTPlayerController // 打印场景中所有UTPlayerController对象的状态(如:PlayerWalking、Dead)
set TPawn Health 15 // 设置场景中所有TPawn类型的对象的血量为15
set UTGame.TPawn Health 12 // 设置场景中所有UTGame.TPawn类型的对象的血量为12
set TPawn_15 Health 10 // 设置场景中name为TPawn_15对象的血量为10
set GameInfo MaxPlayers 16 // 将当前游戏模式最大玩家数修改为16
set TPawn_15 nTestArray (1,2,3) // 设置场景中name为TPawn_15对象的nTestArray动态数组为1,2,3
set TPawn_15 location (x=0) // 设置场景中name为TPawn_15对象的位置的x坐标为0
set TPawn_15 location (x=0,y=-100,z=200) // 设置场景中name为TPawn_15对象的位置的x坐标为0,y坐标为-100,z坐标为200
showhud // 显示/隐藏hud
showscores // 显示/隐藏得分hud
openmovie gfxmovie_skill // 打开gfxmovie_skill的Scaleform面板
closemovie gfxmovie_skill // 关闭gfxmovie_skill的Scaleform面板
DumpsfTextures // 输出Gfx Texture Usage到log文件中
------------------------------------------------------------------------------------------
GFx Texture Usage
-----------------------
zuotj5 - 6 Mips - 1 Kb
zuotj4 - 6 Mips - 1 Kb
... ...
BoxAward_I71 - 10 Mips - 170 Kb
BoxAward_I76 - 9 Mips - 10 Kb
1320 textures, total of 15552 Kb used
------------------------------------------------------------------------------------------
输出到控制台窗口命令
UDK带控制台输入框快捷键为~(按tab进行命令补全),TGame为F8(按F7进行命令补全)
控制台中滚动鼠标进行内容查看
cls // 清理控制台中的内容
namehash // 显示Name表中的个数,占用大小等信息
listloadedpackages // 列出加载的包
obj list class=pawn
obj list class=swfmovie
camera align // 将所有视口相机聚焦在选中的 actor
mode geometry // 进入几何体编辑模式
select none // 取消选择