7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

一人UE4 & C++Advent Calendar 2019

Day 9

【UE4】HotReload vs Live++ の調査と Live++ の使い方

Last updated at Posted at 2019-12-08

最初に

本記事は、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++を有効にする

image.png

EditからEditor Preferences > Live Codingを開いてください。

image.png

ここでいくつか設定項目が表示されるので、関連があるものを見ていきます。

image.png

項目 要素 概要
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++コードのリコンパイルが実行される。

image.png

Live Codingがうまくいかない場合

以前にホットリロードを使用していた場合に起こることがあります。

その場合、[Binaries]フォルダ内のdllやpdbファイルを削除してから再起動を行ってください。

参考

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?