※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

コンソールコマンド

※下記のページより原文を転載。(許可済み)
historia Blog コンソールコマンドの使い方&よく使うコマンド一覧

コンソールコマンドとは

UE4にはコンソールコマンドと呼ばれる、テキストでコマンドを打ち込みゲームの挙動を変化させる機能がある。これを使いこなせば、通常のエディターのメニューに無いとてもたくさんの機能を使うことが出来る。


コンソールコマンドの用途

※下記のページより原文を転載。(許可済み)
historia Blog コンソールコマンドの使い方&よく使うコマンド一覧

コンソールコマンドの用途には、主に次のようなものがある。

1.デバッグ用情報を画面上にUIとして表示

デバッグ用の情報を画面上に表示できる。主にstat系がこれに当たる。
↓例: 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);


よく使うコマンド一覧


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

ini:IniName:[Section1]:Key1=Value1,
[Section2]:Key2=Value2
iniファイルの内容を上書き
ParticleSystemAudit Particleの監視?
culture=[CultureID] エディタ(?)の地域/言語設定を即座に変更する。
CultureIDには北米/英語なら”en”、日本/日本語なら”ja”。


参考ページ


Tips

  • stat系はStats2.hを見ると何があるか分かる。
  • コンソールコマンドの処理はソースコードのいくつかの場所に散っている。「”コマンド名”」で検索すると結構出てくる。
  • Console Commandの類似として、「r.~」などのConsole Variablesというものがある。それらは「r.xxx=1」と、スペースでなくイコールで繋いで指定する。(上記のcultureコマンドは正確にはこっちの分類)


補足コメント
コメント:

すべてのコメントを見る