The asset in question is for a mod (Oblivion fyi). It works in editor, and in old versions of the game. I have already reimported relevant skeletons and meshes and resaved the asset.
Crash happens as long as the asset is in the package, regardless of whether it is actually loaded in game / referenced by anything.
Rebuilding the thing from scratch should work, but I would much prefer to avoid that. Anything I can try?
Update: I tried recreating a physics asset and testing in game each step, it appears that having multiple bodies on the same bone causes the crash. It is also irreversible: removing the extras, regenerating bodies for those bones, or even deleting those bones completely will not fix it. Have to start over from a fresh physics asset if it happens.
I made a physics asset with multiple bodies on the same bone, then deleted them and regenerated those bones. File size is 101.436 kb. I then remade the exact same physics asset without ever adding multiple bodies to the same bone, and file size is 98.854 kb.
Obviously some data is misaligned and isn’t properly deleted on edit. Is there a way to view data directly and not through the phat editor?
Update 2: In addition to the multiple body thing, for whatever reason if linear damping, mass scale or stabilization threshold of any body is not the default value, the game will crash. Didn’t happen in old versions. Idk what they did in 1.2.
Thank you for the updates, just to round up where we are:
No crash log is available
The main cause is the physics asset
Re-importing or re-saving it changes nothing
Re-creating it results in a size disparity
Removing the asset stops the crash
Checking with my peers for this peculiar scenario, the proper path would be to attempt removal of the asset’s corrupted data.
A simple approach to this could be to export the asset outside the engine, open it with a notepad, and look for any duplicated entries related to would be to SkeletalBodySetup on the same bone. Once you make all the edits, re-import the asset and test it again.
A more difficult option, would be to open the faulty asset’s raw data using a hex editor, compare to a clean asset, and isolate/delete the corrupted blocks. This is a quite daunting task, make backups of everything before trying it out.
Unfortunately, importing T3D files was deprecated from UE4 onwards. Unless you are currently working on UE3, we will need a workaround.
Checking around the community, it seems the best approach is to directly replace the contents of your fixed file, into one already inside the project, like this:
Open the fixed .t3d in notepad, and copy its entire content
Create a new PhysicsAsset
Edit it on viewport, and paste the text from your clipboard
Save the asset, and then use it to replace the corrupted one