HoudiniEngineForUnreal-v2 icon indicating copy to clipboard operation
HoudiniEngineForUnreal-v2 copied to clipboard

crash opening map with asset that used Parameter Ramp

Open CBhoudini opened this issue 5 years ago • 5 comments

Excited to get this new plugin going.

Just trying out the Beta 1 plugin today opened our project, saw the houdini engine menu, verified plugin was already checked our title screen level was fine (no assets in it)

I then opened our world map which has lots of assets from the v1 plugin.

it crashes on load

Fatal error: [File:D:/Build/++UE4+Licensee/Sync/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp] [Line: 3899] HoudiniAssetParameterRamp ....snip..... HoudiniAssetComponent.HoudiniAssetParameterRamp_0: Serial size mismatch: Got 111, Expected 115

I tried again, same issue. I also tried manually reimporting the assets before I loaded that level but no luck.

CBhoudini avatar Oct 14 '20 16:10 CBhoudini

I was able to finally get loaded after killing that one asset in a couple levels.

but a map with a different asset using a ramp had the same crash, just different expected size HoudiniAssetParameterRamp_0: Serial size mismatch: Got 108, Expected 112

looking for where the data conversion happens in the new code.....

CBhoudini avatar Oct 15 '20 01:10 CBhoudini

ah, that makes sense

if (bIsFloatRamp) { UHoudiniParameterRampFloat* Parm = UHoudiniParameterRampFloat::Create(Outer, ParameterName);

	// TODO: 
	// Convert HoudiniAssetParameterRampCurveFloat

	return Parm;
}
else
{
	UHoudiniParameterRampColor* Parm = UHoudiniParameterRampColor::Create(Outer, ParameterName);

	// TODO: 
	// Convert HoudiniAssetParameterRampCurveColor

	return Parm;
}	

CBhoudini avatar Oct 15 '20 01:10 CBhoudini

update: I was able to get it to load to continue testing by reading in the dummy multiparm value like this:

void UHoudiniAssetParameterRamp::Serialize(FArchive & Ar) { // Call base implementation. Super::Serialize(Ar);

int32 multiparmvalue = 0;
Ar << multiparmvalue;

Ar.UsingCustomVersion(FHoudiniCustomSerializationVersion::GUID);

Ar << HoudiniAssetParameterRampCurveFloat;
Ar << HoudiniAssetParameterRampCurveColor;


Ar << bIsFloatRamp;

}

CBhoudini avatar Oct 15 '20 12:10 CBhoudini

Good find. Having the same issue. Where should I update the code?

kelvincai522 avatar Oct 22 '20 17:10 kelvincai522

I ended up reverting back to version 1 of the plugin until things stabilize more, so don't have the code still but
for me it was the thing in the previous message.

in void UHoudiniAssetParameterRamp::Serialize(FArchive & Ar) {

reading in that dummy multiparmvalue

last houdini engine version had an extra bit of data that was persisted with ramps. there used to be another base class that serialized it. I assume that is why it was complaining.

CBhoudini avatar Oct 22 '20 19:10 CBhoudini