Hello. I have such an error in the Niagara system. Please help me fix it.
Have you solved the problem? I faced to the same one today…
Hi @AccaB and @JTWING1989,
I can help with this! To explain, while positions and vectors are both in a 3-coordinate system, they are actually different things. Positions are a 3D point within a space, while Vectors are an offset and direction from a specific point. Normally, this would lead to the same result, since a vector is pointing from the world 0,0,0 point, but Unreal 5 introduced a new Position type to optimize particle actors.
Positions are normally stored as a series of 3 doubles (or 64 bit floats). This leads to higher accuracy but a larger memory sink. To optimize particles, Unreal has changed the Positions from 3 doubles to 3 floats (32 bit numbers). In order to accommodate for large world coordinates where larger numbers are needed, they are using the Large World Coordinates system. This allows them to break a large world up into chunks and offsets the Position relative to the chunk origin instead of the game origin. Thus, casting directly from Position to Vector would not work because they are entirely different coordinate systems.
You have a few options for dealing with this. The method recommended by Epic is to keep all your math within Positions. However, given your case that’s not really an option.
You can also disable Large World Coordinates in your particle system. This appears to be the recommended method if you are dealing with large world coordinates, as any other conversion method will be problematic at these large values. I would only turn off LWC for this emitter though, as keeping it on for other particle systems will help your performance.
You can disable it here:
If you are not dealing with large world coordinates, you can use a conversion method. Use this to directly convert your position to a vector. There are other conversion methods, but this is the one I would recommend you use for performance reasons:
Hope this helps!
(post deleted by author)
I’ll try it! Thank you!