which sometimes results in the failed ensure for the skeleton in ConditionalPostLoad if it still has RF_NeedLoad.
I’m not super familiar with either UE’s load patterns nor with this virtual bone init issue so I wanted to ask if you have any recommendations for how to proceed? I see that Jamie Hayes and Danny Couture made some changes in skeletal mesh serialization relating to async loading and the parallel loading thread. Should we trying pulling those changes early?
That code is definitely invalid. The serialize function can only be used for the object currently being deserialized to apply transformation on. You can’t poke other objects, and you can’t postload them since they could still be in an unserialized state.
Having said that, the code on our side is also invalid, I’ll contact the owner to see why this hasn’t been made in the postload step instead
I recently published an article that describes the different constraints of the loader.
I have been unable to repro the Multiprocess Cook issue nor the virtual bone issue with these changes. Please let me know if you think this is the right course of action.
(I believe the call to RebuildRefSkeletonNameToIndexMap within Serialize is also incorrect but is irrelevant to us due to its condition)