• UE4命令行参数


    UE4命令行参数是大小写不敏感

    FCommandLine::Get()可获取命令行

    FParse::Param用来解析形如-xx的参数

    FParse::Value用来解析形如key=value-key=value的参数

    UE4Editor.exe "%GameDir%MyGame.uproject"  // 启动MyGame项目编辑器

    UE4Editor.exe "%GameDir%MyGame.uproject" -nothreading  // 以单线程的方式启动MyGame项目编辑器  注:缺省带-threading参数,以多线程的方式启动

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game  // 单机运行TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -norhithread  // 禁用rhi线程模式来单机运行TestMap_Main地图(在LaunchEngineLoop.cpp的PreInit方法)   注:缺省带-rhithread参数

    各个平台是否开启RHI线程,情况如下:

    DX11默认不支持,可以通过#define EXPERIMENTAL_D3D11_RHITHREAD 1来开启

    DX12在非Editor模式下默认支持

    OpenGL根据FeatureLevel和r.OpenGL.AllowRHIThread的值来决定是否开启
    r.OpenGL.AllowRHIThread 0 // 不使用RHI线程
    r.OpenGL.AllowRHIThread 1 // 使用RHI线程(缺省)

    Vulklan默认开启1个RHI线程
    r.Vulkan.RHIThread 0 // 不使用RHI线程
    r.Vulkan.RHIThread 1 // 使用1个RHI线程(缺省)
    r.Vulkan.RHIThread 2 // 使用多个RHI线程

    Metal会根据显卡芯片版本和r.Metal.IOSRHIThread的值来决定是否开启
    r.Metal.IOSRHIThread 0 // 不使用RHI线程(缺省)
    r.Metal.IOSRHIThread 1 // 使用1个RHI线程

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -server  // 后台运行TestMap_Main地图ds进程  注:没有命令行窗口

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main?multihome=10.32.212.47?port=7778 -game -server  // 后台运行TestMap_Main地图ds进程,监听本机IP为10.32.212.47网卡的7778端口

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -server -log  // 前台运行TestMap_Main地图ds进程  注:有命令行窗口,log会实时地刷到命令行窗口中

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -server MULTIHOME=10.32.212.47 Port=8888 // 绑定到10.32.212.47:8888,后台运行TestMap_Main地图ds进程

    UE4Editor.exe "%GameDir%MyGame.uproject" 127.0.0.1 -game  // 启动游戏并联网加入本地ds对局中

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main?MaxPlayers=10?MaxSpectators=2 -game -server -log  // 运行TestMap_Main地图ds进程,并设置最大玩家数为10,最大观战玩家数为2

    UE4Editor.exe "%GameDir%MyGame.uproject" 127.0.0.1?SpectatorOnly=1 -game  // 启动游戏并以观战者的身份联网加入本地ds对局中

    注1:解析形如?MaxPlayers=10?MaxSpectators=2的Options字符串相关功能函数UGameplayStatics::ParseOptionUGameplayStatics::HasOptionUGameplayStatics::GetIntOption

    注2:FURL可用来存储和解析Options字符串,并提供相关功能函数FURL::HasOptionFURL::GetOptionFURL::GetHostPortString

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -CmdLineFile=d: est.txt // 读取d: est.txt中的内容并加到命令行参数中   注:test.txt为-log -nosound

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game exec=cmd.txt  // 启动游戏后,执行引擎EngineBinaries目录下cmd.txt中的命令序列

    ----------------------------------------------------------------------------------------------------

    如cmd.txt的内容如下(每行一个命令):

    god
    viewmode wireframe

    ----------------------------------------------------------------------------------------------------

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game ExecCmds=god,pause  // 启动游戏后,依次执行god和pause命令    注:ExecCmds中不支持带空格的命令 如 viewmode wireframe

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -LogCmds="foo verbose, bar off"  // 对foo类型日志开启verbose模式,关闭bar类型日志,单机启动TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game LOG=test.log  // 单机运行TestMap_Main地图,日志输出到游戏log目录下test.log文件中

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game ABSLOG=d: est2.log  // 单机运行TestMap_Main地图,日志输出到d: est2.log文件中

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -log  // 单机启动TestMap_Main地图,并打开命令行日志窗口

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -log  -ConsoleX=100 -ConsoleY=200 // 单机启动TestMap_Main地图,打开命令行日志窗口并将其左上角放在(100,200)屏幕坐标处

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -forcelogflush  // 单机启动TestMap_Main地图,打印每句log都立即flush到文件中

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game logflushinterval=5  // 单机启动TestMap_Main地图,每5秒定时flush日志到文件中

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -WARNINGSASERRORS  // 将warning日志视为error

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -NOSCREENMESSAGES  // 关闭ScreenMessages屏幕输出

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -WaitForDebugger  // 单机启动TestMap_Main地图并等待调试

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -pvd  // 单机启动TestMap_Main地图,并自动连接本机正在运行的PhysX Visual Debugger

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -verifygc  // 打印出gc相关的调试信息

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -noverifygc  // 不打印出gc相关的调试信息

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -norenderthread  // 渲染放在主进程中,单机启动TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -onethread  // 同上

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -messaging -SessionName=fps1 // 开启与Session FrondEnd性能分析工具的通讯,并设置Session的名字为fps1

    UE4Editor.exe "%GameDir%MyGame.uproject" -noshaderworker  // 启动MyGame项目编辑器,当需要编译shader时,编辑器自己编译,而不使用ShaderCompileWorker进行编译

    UE4Editor.exe "%GameDir%MyGame.uproject" -xgeshadercompile // 启动MyGame项目编辑器,当需要编译shader时,会使用ShaderCompileWorker进行编译,并连接IB进行分布式加速

    UE4Editor.exe "%GameDir%MyGame.uproject" -noxgeshadercompile // 启动MyGame项目编辑器,当需要编译shader时,会使用ShaderCompileWorker进行编译,并禁止连接IB进行分布式加速

    UE4Editor.exe "%GameDir%MyGame.uproject" -BUILDMACHINE  // 以构建机模式启动MyGame项目编辑器,用于决定是否启用调试输出  注:会最大化地减少弹框确认等人工交互过程

    UE4Editor.exe "%GameDir%MyGame.uproject" -RUNNINGUNATTENDEDSCRIPT // 不打断执行过程,任何的弹框都会用缺省值回应

    UE4Editor.exe "%GameDir%MyGame.uproject" -SILENT // 不打断执行过程,减少弹框确认

    UE4Editor.exe "%GameDir%MyGame.uproject" -UNATTENDED // 不打断执行过程,减少弹框确认  设置为无人管理的状态。禁用需要从用户获得反馈的任何东西

    UE4Editor.exe "%GameDir%MyGame.uproject" -VERBOSE  // 设置编译器使用详细的输出

    UE4Editor.exe "%GameDir%MyGame.uproject" httpproxy=web-proxy.oa.com  // 设置http代理服务器为web-proxy.oa.com

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -SKIPCOMPILE  // 单机运行TestMap_Main地图,启动时不检查模块代码是否再需要编译

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -server -log -Limitclientticks  // 前台运行TestMap_Main地图ds进程,并强制对网络更新进行节流

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -FixedSeed // 使用固定的值0初始化随机数生成器

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -VSync // 开启垂直同步

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -NoVSync // 开启垂直同步

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -nosound  // 以无声音单机运行TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -nosplash  // 以无闪屏单机运行TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -NOTEXTURESTREAMING  // 禁用贴图动态载入。总加载最高质量的贴图。

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -NoLoadingScreen  // 不加载Loading视频,单机运行TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -emulatestereo  // 以左右分屏立体模式单机运行TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -Windowed  // 单机以窗口模式运行TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -FullScreen  // 单机以全屏模式运行TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -Windowed  ResX=800 ResY=600 // 单机以窗口模式运行TestMap_Main地图  设置并移动窗体,使得渲染画面宽800高600

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -Windowed  WinX=80 WinY=150 ResX=800 ResY=600 // 单机以窗口模式运行TestMap_Main地图  设置并移动窗体,使得渲染画面宽800高600,左上角屏幕坐标为(80, 150)

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -ansimalloc // 使用Ansi内存分配器单机运行TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -tbbmalloc // 使用TBB内存分配器单机运行TestMap_Main地图(windows下缺省为该方式)

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -mimalloc // 使用mimalloc内存分配器单机运行TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -stompmalloc // 使用stompmalloc内存分配器单机运行TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -binnedmalloc // 使用Binned内存分配器单机运行TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -binnedmalloc2 // 使用Binned2内存分配器单机运行TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -binnedmalloc3 // 使用Binned3内存分配器单机运行TestMap_Main地图(需为64位游戏)

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -opengl  // 以opengl单机运行TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -opengl3  // 强制以opengl3单机运行TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -opengl4  // 强制以opengl4单机运行TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -metal  // 以metal单机运行TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -vulkan  // 强制以vulkan单机运行TestMap_Main地图

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -d3d10  // 以d3d10单机运行TestMap_Main地图(需win7及以上)

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -dx10  // 同上

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -sm4  // 同上

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -d3d11  // 以d3d11单机运行TestMap_Main地图(需win7及以上)

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -dx11  // 同上

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -sm5  // 同上

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -d3d12  // 以d3d12单机运行TestMap_Main地图(需win10及以上)

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -dx12  // 同上

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -d3ddebug  // 使用d3d调试device

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -openglDebug  // 使用opengl调试模式

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -FeatureLevelES2  // 使用es2

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -FeatureLevelES31  // 使用es3.1

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game SECONDS=20 // 启动游戏后20s关闭

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -BENCHMARK // 以固定时间间隔(1/30s)运行每一帧,若游戏帧率为60帧,则游戏将以60*(1/30)=2倍的速度运行

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -BENCHMARK BENCHMARKSECONDS=50 // 以BenchMark模式启动游戏后50s关闭

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -BENCHMARK FPS=50 // 以固定时间间隔(1/50s)运行每一帧,若游戏帧率为60帧,则游戏将以60*(1/50)=1.2倍的速度运行

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -BENCHMARK -DUMPMOVIE  // 以固定时间间隔(1/30s)运行每一帧,并用当前分辨率隐藏hud输出每帧图片MovieFrame00xx.png到游戏的SavedScreenshotsWindows目录中

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -NOLOGTIMES // 日志中不打印时间

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -LOGTIMES // 日志中时间使用utc格式

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -UTCLOGTIMES // 同上

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -LOGTIMESINCESTART // 日志中时间使用SinceStart格式

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -LOCALLOGTIMES // 日志中时间使用Local格式

    UE4Editor.exe "%GameDir%MyGame.uproject" TestMap_Main -game -LOGTIMECODE // 日志中时间使用Timecode格式

    日志中时间格式也可以在DefaultEngine.ini中配置

    [LogFiles]
    ;LogTimes=None ;日志中不打印时间
    ;LogTimes=UTC ;日志中时间使用utc格式
    ;LogTimes=SinceStart ;日志中时间使用SinceStart格式
    LogTimes=Local ;日志中时间使用Local格式
    ;LogTimes=Timecode ;时间使用Timecode格式

    日志实例

    UE_LOG(LogAnimation, Warning, TEXT("FBoneReference::Initialize BoneIndex for Bone '%s' does not exist in Skeleton '%s'"), *BoneName.ToString(), *GetNameSafe(SkeletonAsset));
    
    // 日志的类别有:NoLogging、Fatal、Error、Warning、Display、Log、Verbose、VeryVerbose
    // LogTimes为Local时打印出的log如下
    // [989]为GFrameCounter % 1000
    [2019.09.21-11.56.42:537][989]LogAnimation: Warning: FBoneReference::Initialize BoneIndex for Bone 'GunRef' does not exist in Skeleton 'F01_body_rig_Skeleton'

    参考

    Command-Line Arguments

    渲染影片的命令行参数

  • 相关阅读:
    linux下守护进程的创建
    【转】ps命令详解
    【转】适配器模式
    【转】设计模式六大原则(6):开闭原则
    【转】设计模式六大原则(5):迪米特法则
    【转】设计模式六大原则(4):接口隔离原则
    【转】设计模式六大原则(3):依赖倒置原则
    【转】设计模式六大原则(2):里氏替换原则
    网站会不会因为同IP网站被K而受到惩罚
    网页加载速度是否影响网站排名
  • 原文地址:https://www.cnblogs.com/kekec/p/14952261.html
Copyright © 2020-2023  润新知