Particle Motion by Spline/Curve


As part of our project, we are trying to leverage UE4’s impressive particle system to rebuild our Maya particle system in-engine. However, I have run into a problem with the particle motion. What I want to be able to do, is control the position and orientation of instanced geometry along a curve. Is there anything in Cascade I’m missing that’ll allow us to do this?

We have tried to replicate the motion using a generated vector field from Maya, however this isn’t proving very controllable, nor provides the motion we require.

Alternatively, is there any way to get an animated FBX out of Maya without having to build a rig for it? Unity for example supports animated FBXs, and works very well for what we’re wanting to achieve.


When you say moving instanced geometry, are you meaning you want to move emitted meshes along a specific path, or you’d just like to be able to keyframe motion for a particular object along a spline? If it’s the latter, you will want to look into the Matinee system, and InterpActors/Movers, as a means of achieving this.

It would need to be emitted geometry moving along predetermined splines (similar to curve flow/motion paths in Maya) We’re dealing with potentially thousands of objects moving at once.

Right, you should be able to use a mesh emitter (ie a particle system with a Mesh Data element added), get it to emit your meshes, and be able to keyframe its’ movement with the Matinee system. In UE3 there was a flag you could enable on a particle system that would translate the particles when you moved their emitter (that is, keeping the motion of the particles relative to the emitter rather than in world space).

Currently there is no system to emit meshes and have them follow a predetermined spline path. Currently there is also no support for animated FBX meshes you can emit from Cascade.

Emitting Morph Targets (Blend Shapes) and path/spline emission/alignment are both requested features.

If you need your meshes to follow a distinct pattern, in a flow/direction I would suggest setting warmup time on the emitter to a value which matches/is greater than your lifespan, and then seed your velocity and use an accelertion over life module, with a constant curve.

You can seed a module by rClicking it and choosing seed, if you want to change the seed value you can enter your own value on the module, or rClick it and choose the option to change the seed value.

This should give you readable/instant playback which is consistent.