Overview of MegaFlow
Have you ever wanted to simulate a wind tunnel in your game, or have leaves of snow blow through your village flowing naturally around buildings, speeding up down alley ways or settling slowly in the lee of an obstacle, Lava flowing down a volcano side or Waterfalls cascading over rocks, Or a car stirring up leaves as it drives along a road in Autumn, vortices for your plane wings, perhaps an object floating along fast moving water, tornadoes, or even simulate gravity around objects in space, if so then MegaFlow can help.
MegaFlow is a set of systems that allow you to use Vector Fields to control the movement of objects or particle systems in Unity. Vector fields are a 2D or 3D grids of values that describe the direction and magnitude of velocities for that point in space. The Vector Field can be generated by systems such as Maya Fluids, FumeFX, Krakatoa, etc. MegaFlow can import the files generated by those systems in the form of .FXD or .FXA files, it also has an exporter for Maya that will export any Maya fluid simulation to the MegaFlow .FLW format. You can then import a single frame or multiple frames into the MegaFlow system in Unity and then use that to control the movement of particles from either the Shuriken or Legacy particle system, or control movement of Rigid Bodies or just general objects. Don’t worry though if you don’t have access to any Fluid Simulation software as MegaFlow also comes with a system that allows you to author your own Vector Fields inside Unity using multiple splines to define flow directions and forces.
The movement of objects interacting with the Vector Fields is via a simple physics simulation which has parameters that allow you to control the overall force the field applies and the mass of the objects that are interacting with it, this means you can adjust the look and feel of the flow from either a very tight following of the flow to a subtle influencing only of objects that move through the field. You can change the force the field exerts or reverse the flow direction. All the values can be adjusted at runtime via script of the Unity animation system if required.The physics code used is optimized for performance and makes use of multi threading on any system that has multiple cores for super fast performance even with 10′s of thousands of particles being moved.
If a system such as FumeFX or Maya fluids has been used to create the Vector Fields then that would allow you to place obstacles into the flow, if the flow is then used to control a Particle system you can get even more performance back by disabling the collision system in the Particle system, since the Vector Field will now handle moving the particles around objects in the way, this can get you quite a saving in CPU time in complex scenes. You can off course still use the collision system of the particles or rigid bodies alongside the flow system if you wish.
The Vector Field source can have any number of Vector Fields loaded so you can do animation of flows if required, or just easily swap the flow field being used to change the look and flow of your scene. You can ask the system to show you the flow through the system of objects via the visualization options, or display the flow as either vector lines or colored cells.
Included in MegaFlow are various components to help you use the Vector Fields in your projects. There are components to control the Unity particle systems as well as a component you can attach to any rigid body object that will then allow that object to be influenced by the Vector Field. There is also an example Smoke Gun script that will inject large numbers of objects into a scene so you can see how they flow.
- Support for FumeFX FXD file import
- Support for FGA file import
- Custom Maya Fluids Exporter
- Create Vector Fields in Unity
- Multi-Threaded physics
- Highly optimized physics code
- C# Source Code Included
- Multiple frames of flow data per source
- Control Legacy or Shuriken particles
- Control Rigid Bodies
- Control Normal Objects
- Works in Unity Free
- Works on Mobile devices
- Flow visualization
- Create a 3d Texture from the flow
- MegaShapes Lite included
To find out more about the system please check the MegaFlow section on the menu on the left.
Below are some videos showing the MegaFlow system being used in a couple of scenarios, the first uses a Maya Fluid simulation to simulate the airflow around objects in a scene, the second shows the in Unity creation of Vector Fields from splines and that then being used to control a particle system. The third shows a Vector Field being created inside Unity using splines to define flows.
We have added some new features and fixed a couple of bugs since the first release, listed below are the changes, many more coming.
- Added option to add modifiers to the flow creation, so you can add any object with a collider and use that to adjust the flow.
- Fixed an issue with missing preview flows not being saved in the scene.
- Each frame can now have an offset value, useful if using multiple frames of different sizes.
- Added option to the inspector normalize the flow frame data.
- Added a preview option for the Create Flow system, so you can quickly see the current flow without having to send it to the flow source.
- Fixed issue in Texture3D builder with negative values.
- Added API section to MegaFlow docs, GetGridVelWorld, SetFrame, SetMatrix, GetCol methods.
- If the MegaFlow Particle component is attached to a particle system you dont need to select a particle system to use, the system will use the object.
- If the MegaFlow Legacy Particle component is attached to a particle system you dont need to select a particle system to use, the system will use the object.
- Added beta option to inspector to save a Texture3D to the project for the current frame, can be used by GPU shader or particle systems such a TC Particles.
- Fixed an exception if particle system was trying to use a flow source with no frame data.
- Fixed an exception if rigid body controller was trying to use a flow source with no frame data.
- Fixed an exception if effect controller was trying to use a flow source with no frame data.
- Removed some old code.
- Fixed a mismatch between cell and vector colors when showing magnitudes.
- Added flow arrows to the Create From Spline gizmos to show the flow direction and force for that spline.
- Added option to ring display to adjust alpha value.
- Splines remain visible when Create Flow object selected.
- Option to have Create flow gizmo always on.
- Added option to show color of velocity vectors based on either direction or magnitude
- Added editable color gradient for showing velocity magnitude
- Added option to show color of the grid cells based on either direction or magnitude
- Added FLW file format page to website
- Added gradient color option to create flow from splines system.
You must be logged in to post a comment.