最初に
本記事は、Unreal EngineでC++プロジェクトを作るにあたって、この「HotReload」と「Live++」という機能について調べ、まとめたものとなります。Unreal EngineでC++プロジェクトを作るにあたって、Live++は役に立つ場面が多いかと思います。間違いや更に良い方法があった場合にはそっとTwitter( @ろっさむ )やコメント、修正リクエストなどでお知らせ頂けるととても有難いです。
作業環境
記事内で使用する作業環境は以下の通りとなります。
- Unreal Engine:4.23
- Visual Studio:Community 2017 or Community 2017 for Mac or Enterprise 2019
Live++ VS HotReload
Live++
- Windowsのみでサポートされている。
- Live++ではC++のイテレーション時間が最大3倍高速化される。
- コードの変更部分のみバックグラウンドでコンパイルし、DLLをリロードする。
- メソッド内の処理を変更するようなマイナーコードであれば使用できる。
- クラス構造の変更(メソッドやプロパティの追加/削除)は失敗する。
- Live++の場合は実行中でも変更が可能。
- Live++を使用する場合、Engine側のモジュールやPluginを含めると動作不安定に。
HotReload
- enumやstructを除くほぼ全てのコードをリロードできる。
- DLL全体を構築し直すためLive++よりも大幅に時間がかかる。
- 公開変数を.hにて変更や追加した後にホットリロードを行うとBP上で値がリセットされるか見えなくなる。
- その場合、再起動。
使い分け
メソッド内の処理を変更するだけならLive++.
プロパティやメソッドの追加も行うならHotReload、又は再起動.
Live++を有効にする
Edit
からEditor Preferences > Live Coding
を開いてください。
ここでいくつか設定項目が表示されるので、関連があるものを見ていきます。
項目 | 要素 | 概要 |
---|---|---|
Enable Live Coding | true | Live++を有効にする. |
false | Live++を無効にする. | |
Startup | Start automatically and show console | 起動時にLive++も立ち上げ、コンソールも表示する. |
Start automatically but hide console until summoned | 起動時にLive++は立ち上げるが、コンソールは呼び出すまで非表示. |
Live++を実行する
Enable Live Coding
を有効にした状態で、ファイルを変更し保存、Ctrl + Alt + F11
を押下でC++コードのリコンパイルが実行される。
Live Codingがうまくいかない場合
以前にホットリロードを使用していた場合に起こることがあります。
その場合、[Binaries]フォルダ内のdllやpdbファイルを削除してから再起動を行ってください。