Top > エンジン改造-アセットのエンジンバージョン管理

#contents

----
* 概要 [#a5229dd3]
オリジナルバージョンのエンジンで保存されたアセットと、カスタマイズしたエンジンとで保存データに差分が有る場合。
保存バイト数が合わなくてロード時にエラーが発生する

* 実装 [#q7881e6e]
とりあえずこの方法でオリジナルのアセットの読み込み、カスタマイズしたエンジンのアセット保存は出来ることを確認
正しいかは不明

+ バージョンNoを追加する
-- COLOR(#3030c0){Runtime\Core\Public\UObject\ObjectVersion.h}
#code(c,nomenu){{
enum EUnrealEngineObjectLicenseeUE4Version
{
	VER_LIC_NONE = 0,

// start -------
	VER_LIC_COM04_VER01,
// end ---------

	// - this needs to be the last line (see note below)
	VER_LIC_AUTOMATIC_VERSION_PLUS_ONE,
	VER_LIC_AUTOMATIC_VERSION = VER_LIC_AUTOMATIC_VERSION_PLUS_ONE - 1
};
}}
+ アセットのSeriarize処理に追加
-- 例)COLOR(#3030c0){Runtime\Engine\Private\Materials\MaterialInstance.cpp}
--- void UMaterialInstance::Serialize(FArchive& Ar)
#code(c,nomenu){{
					// unrelated but closest change to bug
					if( Ar.UE4Ver() < VER_UE4_STATIC_SHADOW_DEPTH_MAPS )
					{
						// switched enum order
						switch( BasePropertyOverrides.ShadingModel )
						{
							case MSM_Unlit:			BasePropertyOverrides.ShadingModel = MSM_DefaultLit; break;
							case MSM_DefaultLit:	BasePropertyOverrides.ShadingModel = MSM_Unlit; break;
						}
					}
// start -------
					if( Ar.LicenseeUE4Ver() >= VER_LIC_COM04_VER01) {
	// エンジンの改造で追加した保存したいデータ
						Ar << BasePropertyOverrides.bOverride_TranslucencyLightingMode << BasePropertyOverrides.TranslucencyLightingMode;
					}
// end ---------
}}

    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS