UDK命令

UDK命令行参数与控制台命令都是大小写不敏感的

命令行  udn中文  udn英文

全词大小写匹配,正则表达式,在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中

UDK.exe TestMap_Main.udk -nosound  // 运行游戏时,不播放声音
UDK.exe TestMap_Main.udk -nosplash  // 启动游戏时,不显示闪屏
UDK.exe TestMap_Main.udk -nostartupmovies   // 启动游戏时,不显示bink画面
UDK.exe TestMap_Main.udk  -dumpguidcache  // 启动游戏,打印CookPC目录下GuidCache.upk(cook过的游戏才有该文件)中的guid到日志文件
Commandlet命令  udn中文  udn英文

全词大写小匹配,在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两张地图及相关引用资源

更多cook命令请参考  中文  英文

UDK.exe make -debug -full -slient  // 安静模式(不弹框)重新编译debug版本脚本
UDK.exe make -release -auto -nopauseonsuccess  // 不弹框确认(所有弹框都选Yes),增量编译release版本脚本。-nopauseonsuccess表示编译成功完成后不要暂停(失败会暂停)
UDK.exe precompileshaders platform=pc -refcache -unattended -nopause  // 预编译所有资源包的pc类型的shadercache(生成在Content\RefShaderCache-PC-D3D-SM3.upk中)
                                                                                                                        // -unattended表示编译过程中不要进行人工反馈 -nopause表示编译完成后不要暂停

控制台命令   udn中文  udn英文

输出到游戏屏幕命令

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

编辑器操作命令  udn中文   udn英文

camera align  // 将所有视口相机聚焦在选中的 actor

mode geometry  // 进入几何体编辑模式

select none // 取消选择

猜你喜欢

转载自www.cnblogs.com/kekec/p/8886171.html