C++ ときどき ごはん、わりとてぃーぶれいく☆

USAGI.NETWORKのなかのひとのブログ。主にC++。

UE4: 4.18 で VSCode に UE4Editor が対応したのでロストテクノロジーをメモしておく

Note: この記事は UE4Editor の公式対応で VSCode では不要になるロストテクノロジーについてメモするものです。 UE4Editor の VSCode 対応については参考1、参考2をどうぞ。

私はこれまでもVSCodeに幾つかのコマンドラインをカスタム定義して与えてUE4のプロジェクトをVSCodeで書いていましたが、全自動で .vscode に必要な定義を作ってくれるようになって楽で良いですね。

参考としてVSCodeでもVimでもUE4Editorが対応しないエディター環境やシェル直でコマンドラインしたい場合は次のように仕込みor叩きます。とりあえず .bat 風に紹介。

environment.bat // 共通の変数

set UNREALVERSIONSELECTOR="C:\Program Files (x86)\Epic Games\Launcher\Engine\Binaries\Win64\UnrealVersionSelector.exe"
set UPROJECT="<path-to-uproject>.uproject"
set BUILD="C:\Program Files\Epic Games\UE_4.18\Engine\Build\BatchFiles\Build.bat"
set PROJECTNAME="<your-project-name>"
set PROJECTNAMEEDITOR="<your-project-name>Editor"

genrate.bat: // 新しいソースを手追加したりした時に使う

call environment.bat
%UNREALVERSIONSELECTOR% /projectfiles %UPROJECT%

build.debug.editor:

call environment.bat
%BUILD% %PROJECTNAME% Win64 DebugGame %UPROJECT% -waitmutex

build.development.editor: // ほか editor なしや shipping も同様

call environment.bat
%BUILD% %PROJECTNAMEEDITOR% Win64 Development %UPROJECT% -waitmutex

launch.json:

// Attach; 主に UE4Editor へアタッチして使う
{ "name": "Attach"
, "type": "cppvsdbg"
, "request": "attach"
, "processId": "${command:pickProcess}"
}
// Debug; VSCodeからデバッグ用に擬似的なスタンドアローン起動風にデバッグ実行したい場合はこんな感じ
"name":"Debug"
, "type": "cppvsdbg"
, "request": "launch"
, "program": "C:/Program Files/Epic Games/UE_4.18/Engine/Binaries/Win64/UE4Editor.exe"
, "args": [ "<path-to-uproject>.uproject", "-debug", "-game" ]
, "cwd": "${workspaceRoot}"
}

こういうのに相当するゴニョゴニョを VSCode でも UE4Editor 側で設定すれば手書きしなくても快適かつ必要に応じて更新してくれるようになった、という話。

手書きする必要が無くなるとロストテクノロジー化するので必要になった時に掘り出すのが面倒になりそうなので備忘録として、あるいはVimZshを使ってUE4したい人とかの参考にどうぞ。

参考

  1. https://www.unrealengine.com/en-US/blog/unreal-engine-4-18-released
  2. UE4 Visual StudioなしでVisual Studio CodeからC++プロジェクトを実行する - Let's Enjoy Unreal Engine