改訂バージョン: Unreal Engine 4.19 |
コンソールコマンドとは
UE4にはコンソールコマンドと呼ばれる、テキストでコマンドを打ち込みゲームの挙動を変化させる機能があります。これを使いこなせば、通常のエディターのメニューに無いとてもたくさんの機能を使うことが出来ます。特にデバッグに便利な機能ですが、あまりまとまったドキュメントにはなっていないので、今回はヒストリア社内Wiki(Confluence)にあるコマンド集を大公開しちゃいます!
※一部古い情報があるかもしれません。
コンソールコマンドの用途
コンソールコマンドの用途には、主に次のようなものがあります。
1. デバッグ用情報を画面上にUIとして表示
↓例: stat fps / stat unit / stat unitgraph。いまどのくらい処理時間がかかっているかを表示する。

↓例: stat particles。パーティクルの統計情報。いまどのくらい出ていて、どのくらい処理がかかっているのかを表示。

2. デバッグ用に描画を変更する
↓例: show bounds。各Actorのバウンディングボックスの表示。

3. デバッグ用に動きを切り替える
↓例: ToggleDebugCamera。デバッグ用のカメラを自由に動かせる。また、画面中央にあるActorやマテリアルの情報も表示。

4. ゲーム中の処理を行う(例: RestartLevel)
5. エディターの挙動を変更する(例: culture=ja)
コマンドを打ち込む方法
コマンドを入力する方法にはいくつか方法が存在します。主な方法は次の4つです。1番と2番はよく使うので覚えておきましょう。
1. OutputLog(出力ログ)ウィンドウから打ち込む
↓手順1: Output Log(出力ログ)ウィンドウを表示する。

↓手順2: 出てきたウィンドウの一番下に入力する。

2. ゲーム実行中にConsole Keyを押すと出現する入力欄に打ち込む
↓手順1: プロジェクト設定->入力->Console->Console Keysでキーを追加。
デフォルトで「`」が割り当たっているが、日本語キーボードだと打つことが出来ないため、「@」キーを追加しておく。
他のキーでも良いが、UE3時代からの風習を踏襲するのであれば「@」がオススメ。

↓手順2: ゲーム実行中に「@」キーを押すとこのようにコマンドを打ち込む欄が表示される。

3. BlueprintのExecute Console Commandノードから入力する

4. C++から入力する
次の方法でC++からもコマンドを送れる。PCはPlayerController。
PC->ConsoleCommand(<Command>, true); |
よく使うコマンド一覧
特に使うものは赤字にしてあります。
一部ブラウザ上で改行されているコマンドがありますが、スペース区切り、1行で打ち込んでください。
Basic
DumpConsoleCommands |
コンソールコマンド一覧をOutput Logに出力する。すべてのコマンドが出力されるわけではないので注意。 |
操作
Open <LevelName(MapURL)> |
以前の設定を維持したまま、指定したレベルを開く。 (Persistent Levelの読み替え)
以前の設定とは何のこと? 要検証。 |
Travel <LevelName(MapURL)> |
すべての設定をリセットし、指定したレベルを開く。(Persistent Levelの読み替え) |
RestartLevel |
現在のレベルを再読み込み。 |
slomo <PlayRate> |
スローモーション/早送りにする ex. slomo 0.5 |
quit もしくは exit |
ゲームを終了する |
一般的なDebug系コマンド
getall <Class name> <Property name> |
対象クラスのプロパティをOutputLogウィンドウに一欄で出力する。 |
obj list |
OutputLogウィンドウに各オブジェクトの数と使用メモリ量を出力する。
周回プレイのメモリリーク(オブジェクト数の増加)チェックに使える。 |
DisableAllScreenMessages |
2Dスクリーン上のデバッグ表示を無効化 |
stat levels |
現在読み込まれているLevelの表示。読み込みにかかった時間も表示される。
緑:Unload状態
赤:Load状態 |
ViewMode <ViewModeName> |
描画の仕方を切り替える。実行中にしか効かない?
ViewModeNameには以下のものがある。
Lit / Unlit / Wireframe / LightingOnly / ShaderComplexityなど |
ToggleDebugCamera |
ゲーム中のカメラを離れ、デバッグ用の別カメラに切り替える。
同時に注視点のアセットの情報を画面に表示する。 |
log list |
ログ出力のカテゴリー一欄を表示する |
log <category> <level> |
categoryのログ出力レベルを変更する。
<ログレベル一欄>
NoLogging
Fatal
Error
Warning
Display
Log
Verbose
VeryVerbose
All<便利コマンド>
log LogStreaming Verbose <-アセットのロード関連のログをすべて出力 |
ce <EventName> |
表示されている全レベルの、<EventName>のカスタムイベントを呼び出す。 |
KismetEvent <Object名 or *> <EventName> |
Blueprintのイベントを直接呼ぶことが出来る。<Object名>を指定する場所には「*」を指定すると、全BPに飛ばせる。
省略形:ke <Object名 or *> <EventName> |
Memory
stat MemoryPlatform |
総合的な現在のメモリ使用量と残り量の表示 |
stat MemoryAllocator |
|
stat Memory |
|
stat MemoryStaticMesh |
|
stat ParticleMem |
|
stat SceneMemory |
|
mem Detailed |
ログにメモリの使用状況をまとめて出力する |
memreport (-full) |
メモリ状況をSaved/Profiling/MemReportsフォルダ以下にファイルとして出力する。拡張子はmemreportだが、ただのテキスト。 |
rhi.DumpMemory |
RHIリソースメモリのダンプ。すべての項目がmem Detailedに含まれている?
rhi: Render Hardware Interface |
Performance(共通)
|
stat fps |
画面上にFPSを表示 |
|
stat unit |
画面上にGameスレッド、Drawスレッド、GPUスレッドの1フレームあたりの所要時間を表示 |
|
stat unitgraph |
stat unitの内容をグラフで表示 |
|
stat Raw |
stat unitgraphの内容をフィルタリングせずに、生データを使用するようにする |
|
stat hitches |
ヒッチを検知してログに出力する |
|
stat dumphitches |
ヒッチ時にログに対してダンプする。デフォルトでは75ms以上だが、「t.HitchThreshold 0.075」とすることで値を変更できる |
|
stat game |
全体的なTick時間をいくつかの項目に分類して表示。Navi Tick Time / Net Tick Time / Post Tick Component Update / World Tick Time etc… |
|
StartFPSChart / StopFPSChart |
Saved/Profiling/FPSChartStats以下にFPS情報のログを出力する。出力されるCSVを使うことでグラフ化も出来る。 |
Performance(CPU Time)
stat startfile / stat stopfile |
※Session Frontendが使える状況では、Session Frontendから同様の操作が可能。
startからstopまでの間のプロファイル結果をファイルにue4stats形式で出力する。
Output Logに出力パスが表示される。
出力されたファイルは、Session Frontend(EditorからWindow→Developer Tools→Session Frontend)のProfilerタブで見ることができる。
おそらくUFUNCTIONになっている関数がプロファイル対象だが、C++のコード中にQUICK_SCOPE_CYCLE_COUNTERマクロを仕込むと、ピンポイントでプロファイル出来る。 |
ここもあわせて読みたい。公式ドキュメント:CPU Profiling
Performance(GPU Time)
ProfileGPU |
GPUのstats情報をグラフで表示。また、Output Logウィンドウにもプロファイル結果がテキストで表示される。
Ctrl+Shift+,(カンマ)にショートカットが割り当てられている。 |
stat SceneRendering |
Draw call etc… |
stat Cnvas |
|
stat LightRendering |
|
stat ShadowRendering |
|
stat Particles |
|
ViewMode ShaderComplexity |
Viewport上でShader負荷がかかっているところを赤く表示する |
show <ElementName> |
↓ElementNameには 以下の項目が使える。
AmbientOcclusion
AntiAliasing
Bloom
Decals
DeferredLighting
DirectionalLights
PointLights
SpotLights
DynamicShadows
GlobalIllumination
LightFunctions
Particles
PostProcessing
ReflectionEnvironment
Refraction
Rendering
ScreenSpaceReflections
Landscape
Brushes
StaticMeshes
SkeletalMeshes
ShadowFrustums
(↑動的な影を生成しているフラスタムを表示。EditorViewportのShow->Advanced->Shadow Frustumsでも表示できる)
Landscape
Translucency
Tessellation
※他にもある。「show」だけ入力したときにログウィンドウに一覧が表示される
※Pauseをかけて、いろいろShowコマンドで表示/非表示を行うと、何が原因で重くなっているかわかりやすい。 |
ここもあわせて読みたい。公式ドキュメント:GPU Profiling
Maniac
ParticleSystemAudit |
Particleの監視? |
culture=[CultureID] |
エディタ(?)の地域/言語設定を即座に変更する。
CultureIDには北米/英語なら”en”、日本/日本語なら”ja”。 |
Tips