I’ve been testing the MassAI crowd system. I have set up a simple crowd that walks along a two lane zonegraph, using Mannequinns as actor representations for the entities.
This works more or less without issue, but as soon as I added another LOD actor (Low Res Template Actor) to the Crowd Visualization trait in the EntityConfig, whenever the actor gets swapped out, the new actor appears to get placed above the original, causing them to “jump” whenever the actor swaps.
The “Low Res” Actor is a child blueprint of the original, with no difference in component transforms. For now the only difference is it uses the simplified mesh for the mannequin and a modified material to show the logo as red for easier identification of the LowRes Actor in the scene.
My EntityConfig also has a bunch of other traits of course.
As seen in the screenshot, I set Agent Capsule Collision sync to sync the transform of the capsule to the entity. This is so that collisions with the actor get replicated to the entity.
This appears to have something to do with the issue. If I turn off the sync, the new actor gets replaced “correctly”, without a jump, though since the actors get desynced from the entities due to collisions, the actor swap is noticeable as the new actor gets spawned in the entity location, not the old actor’s location.
Any idea what is causing my issue?
I’m not sure how these facts could fit together to cause an issue, but I will say it does sort of look like the characters jump up about as much as there is a transform offset for the mesh in the actor. The mesh has its origin at the character’s feet, and the capsule has its origin in the middle. The Actor origin == the capsule origin.
Because of this, I have offset the mesh down by 90 units, which is equal to the half-height of the capsule. This shouldn’t cause issues, since the entity transform should sync to the capsule transform, which is == to the Actor transform. So when the new actor gets spawned at the entity location, it should match.