UE4 C++ Tips

  • #includeでUE4のヘッダを読む場合は、ue4ソースの各Classesフォルダからの相対パスで指定できる。
    • runtime/Engine/Classes/Engine/Blueprint.h は #include "Engine/Blueprint.h"
  • Sourceフォルダのコピーだけでは使えない uprojectにmodulesを追加する必要がある 。
  • コンパイルエラーのままプロジェクトを終了するとそのプロジェクトを起動できなくなる
    • .uprojectのmodule項目からエラーのあるものを削除すれば一応起動できるようになる
    • modules項目自体を消すと起動できないので空になっても残しておく
  • 右クリックのVSプロジェクト作成時にでたエラーの記録場所は Saved/Logs/unrealversionselector-*.log
  • pluginのC++のビルドは 
    • UE4.17ではプロジェクトにC++クラスが存在するときだけプラグインのビルドが可能。空のC++クラスでもいい。
    • UE4.21ではプロジェクトにC++クラスがなくてもプラグインのビルドが可能。
  • コンテンツ内に日本語フォルダがあるとビルドツールがエラーを出すことがある 日本語/newmap.umapなどはだめ
  • ModuleManager.hは エンジンのSource/Runtime/Core/Publicにある
  • IMPLEMENT_GAME_MODULE()マクロの引数は2つ。IMPLEMENT_PRIMARY_GAME_MODULEは3つなので書き換え時は要注意。3つめを削除するだけでいい
  • ソースのひとまとまりをモジュールと呼んでいる。uprojectやuplugin内のModules項目にモジュール名を登録すると利用できる。DLLやdylibファイルがモジュールの実体。ソースフォルダのモジュール毎のディレクトリからビルドされる
  • コンパイルのときにunresolved external symbolエラーがでるときは???.Build.csのDependency定義に必要なモジュール名を追加する。
  • Mipmap作成処理はEngine\Source\Developer\TextureCompressor\Private\TextureCompressorModule.cpp