追記
この記事の内容は、誤った改造を行ったことによって、プロジェクトコンテンツとエンジンコンテンツのオブジェクトバージョンが uasset の構造が異なるにもかかわらず、同じ値となりロード処理が失敗するようになってしまった。
正しくは以下の記事を参照
https://qiita.com/Takezoh/items/0b95633e251c965b4f71
元記事
パッケージに格納するデータを拡張する場合、パッケージバージョンを追加する必要がある。
エンジンコードをアップデートの際にエンジン側でパッケージバージョンが追加されていた場合、自動マージではコンフリクトも起きず不整合な状態でマージされてしまう可能性が高い。
正しくマージするには、以下のようにすると良い。(エンジンアップデートの際には要注意)
パッケージバージョンは次のファイルに定義されている。
Engine/Source/Runtime/Core/Public/UObject/ObjectVersion.h
enum EUnrealEngineObjectUE4Version
過去にパッケージを拡張するため以下の修正を行った。
// LocalizationId has been added to the package summary (editor-only)
VER_UE4_ADDED_PACKAGE_SUMMARY_LOCALIZATION_ID,
// Fixed case insensitive hashes of wide strings containing character values from 128-255
VER_UE4_FIX_WIDE_STRING_CRC,
// -----<new versions can be added before this line>-------------------------------------------------
// - this needs to be the last line (see note below)
+ VER_UE4_YOMUNECO_CUSTOM,
VER_UE4_AUTOMATIC_VERSION_PLUS_ONE,
VER_UE4_AUTOMATIC_VERSION = VER_UE4_AUTOMATIC_VERSION_PLUS_ONE - 1
VER_UE4_YOMUNECO_CUSTOM
と VER_UE4_AUTOMATIC_VERSION
は同じ値となり、パッケージには VER_UE4_AUTOMATIC_VERSION
が格納される。
4.24 へのアップデートを行い、自動マージにより VER_UE4_ADDED_PACKAGE_OWNER
が追加された。
// LocalizationId has been added to the package summary (editor-only)
VER_UE4_ADDED_PACKAGE_SUMMARY_LOCALIZATION_ID,
// Fixed case insensitive hashes of wide strings containing character values from 128-255
VER_UE4_FIX_WIDE_STRING_CRC,
+ // Added package owner to allow private references
+ VER_UE4_ADDED_PACKAGE_OWNER,
// -----<new versions can be added before this line>-------------------------------------------------
// - this needs to be the last line (see note below)
VER_UE4_YOMUNECO_CUSTOM,
VER_UE4_AUTOMATIC_VERSION_PLUS_ONE,
VER_UE4_AUTOMATIC_VERSION = VER_UE4_AUTOMATIC_VERSION_PLUS_ONE - 1
この場合、以前のバージョンで作成・更新したパッケージのバージョン番号と、マージ後エンジンの VER_UE4_ADDED_PACKAGE_OWNER
が同じ値となり、パッケージのロード処理に不整合が起きる。
正しくマージするには次のようにする。
// LocalizationId has been added to the package summary (editor-only)
VER_UE4_ADDED_PACKAGE_SUMMARY_LOCALIZATION_ID,
// Fixed case insensitive hashes of wide strings containing character values from 128-255
VER_UE4_FIX_WIDE_STRING_CRC,
+ // Yomuneco custom version
+ VER_UE4_YOMUNECO_CUSTOM,
+ // Added package owner to allow private references
+ VER_UE4_ADDED_PACKAGE_OWNER,
// -----<new versions can be added before this line>-------------------------------------------------
// - this needs to be the last line (see note below)
- VER_UE4_YOMUNECO_CUSTOM,
VER_UE4_AUTOMATIC_VERSION_PLUS_ONE,
VER_UE4_AUTOMATIC_VERSION = VER_UE4_AUTOMATIC_VERSION_PLUS_ONE - 1
これによりロード処理に不整合が起きず、新エンジンで作成・更新したパッケージのバージョン番号はインクリメントされ VER_UE4_ADDED_PACKAGE_OWNER
となる。