Context:
I'm converting Dark Souls 2 map objects into Elden Ring Nightreign assets (AEG) with an automated pipeline that i'm developing (targeted at all souls games in the future). Each converted cloth asset is a geombnd containing: the FLVER, an anibnd (skeleton only), the cloth _c.hkx, and a .clm2. The cloth HKX is donor-patched from a native NR cloth asset — I keep its Havok 2018 type section and runtime graph, and swap in the DS2-derived simulation data.
The problem:
I have several converted cloth assets that are siblings from the same DS2 map (majula), built by the exact same pipeline. Some simulate near perfectly in-game. Others render fine but the cloth mesh is completely static — it shows the FLVER bind pose and never moves.
The cloth _c.hkx is loaded and executed by the engine: corrupting it crashes the game on load. But on the broken assets the simulation output never reaches the mesh.
Tested with an ablation — I forced all constraints (standard/stretch/bend/local-range) to count=0 in every asset's cloth HKX:
- Working assets: cloth visibly free-falls to infinity (gravity wins) → the sim runs and its output is applied to the mesh.
- Broken assets: no movement at all → the sim output is not applied to the mesh.
My main question:
For NR/ER object cloth — what does the engine actually use to bind a cloth simulation's output buffer to a rendered FLVER mesh? Is there a registration step, naming convention, flag, or asset-config (in the geombnd, FLVER, MSB AssetPart, or elsewhere) that decides whether an asset's cloth output gets applied to its mesh? Anything that explains the engine running the sim but not feeding it to the mesh would be a huge help. Happy to share files.
