記事執筆時Unreal Engineバージョン:5.2
はじめに
はじめまして、OX ENGINEER STUDIOでクライアントエンジニアをしている林です。
UnrealEngine5(以下UE5)にてC++で開発する場合、処理を変更する度にIDEでビルドする必要がないように標準でLive Codingが有効になっています。
初めてUE5でC++開発する際はLive Codingの仕様によるエラーに遭遇しやすいと思います。
本記事ではLive Codingの注意点について記載します。
Live Codingとは
Live Codingとは、UEエディタを開いた状態でC++クラスの変更をビルドし、変更を反映させる機能を指します。
参考:ライブ コーディング
https://docs.unrealengine.com/5.0/ja/using-live-coding-to-recompile-unreal-engine-applications-at-runtime/[IC1]
Live Codingの使い方
Live Codingを実行するには、UEエディタの右下にあるアイコンをクリックします。
[CTRL] + [ALT] + [F11]でも実行できます。
Live Codingを使う上での注意点
①:UEエディタの起動中はIDEでビルドできない
①-原因
Live Codingが有効になっている場合、UEエディタの起動中はIDEでのビルドは出来ません。
①-解決方法
一度UEエディタを閉じた状態でビルドします。
② C++クラスの追加後にLive Codingした場合、UEエディタを再起動すると追加したC++クラスが消える
②-実例
例として、UE5のC++プロジェクトでActorを継承したC++クラスを追加し、Live Codingでビルドした後に追加したC++クラスをレベル上に配置します。
一度UEエディタを閉じてEpicのランチャーからプロジェクトを起動します。
すると、アウトライナーでエラーが発生し、追加したC++クラスが消えています。
エラーメッセージに表示されている「エラーを修復」を押してもメッセージが消えるだけでレベル上に配置したC++クラスは戻りません。
さらに、プロジェクトのコンテンツからも追加したC++クラスが消えています。
②-原因
Live Codingはセッション中でのみ有効なパッチを作成して適用しているだけなので、UEエディタを閉じてセッションが終了すればLive Codingの結果は消えてしまいます。
実際にBinaryフォルダを見てみると、Live Codingでビルドしてもパッチファイルが更新されるだけで、dllやオブジェクトファイルは一切更新されません。
②-解決方法
UEエディタを閉じたあと、IDEからプロジェクトをビルドして起動して下さい。
②-問題を起こさないようにするためには
Live Codingを使用するなら、最初にプロジェクトを起動する場合はIDEでビルドするようにしましょう。
特にGit等を使用して複数人でプロジェクトを共有する場合は、プルした後はIDEでビルドするように心掛けましょう。