That’s great! There are probably more advanced classes you can take on computation fluid dynamics. There are also some good resources to learn the computer graphics side of it more directly. I’d recommend Fluid Simulation for Computer Graphics by Robert Bridson as a good starting point.
Destruction currently support only pre-fractured asset which effectively does not play well with transparent assets since you can see the inner part of it. You can combine geometry collection and regular static mesh and swap them at the right time when you detect a break event ( or any specific event )
Another idea would be to leverage the fact that the fracture internal faces can have a separate material assigned to them, so you could control the level of transparency driven by external gameplay condition
Niagara can be used on top of it for effects and finer details
You might be best off doing that type of thing with Chaos, but it is doable in Niagara too. We have some examples of chain constraints (Niagara Advanced Particles map in Content Examples), and also position based dynamics (look for the SandSystem in the NiagaraFluids plugin). You’d need to write other kinds of constraints, but it is possible to do in Niagara.
Complex collision in Unreal means triangle mesh based collision
This is currently supported by Chaos ( you have to change the collision settings in the static mesh )
If you are looking for complex collision has a combination of multiple shapes, this is also supported where you can set multiple collisions shapes on a single static mesh
Yes, this is possible, but requires a bit of work to setup. The basic idea is that we have the ability to write to various 2D and 3D buffers inside of Niagara Systems. For a longer explanation, I recommend making a UDN since this is a complex workflow. The brief version is:
- Create a Texture RT DI that is the resolution you want.
- Write a stage that iterates on this DI, and for every cell, uses a mesh DI to convert that UV to the world space position on the mesh.
- Now that you have the world space position on the mesh, you can sample the fluid properties you desire and map them to wetness values, etc.
- You now can wire up this RT to the material, and when you render your mesh you should be able to see the effects of the liquid properties.
Speaking for the core rigid body solver: we use UE5 with Chaos on Fortnite and all other internal projects, and have been working closely with some larger developers who are using Chaos, so we know it is possible to ship a quality product with it. We are aware there are issues that we need to address though, and if your project is impacted by any of them it can be frustrating. Fwiw, I was on the other side of the Epic/Developer relationship when UE4.0 was released so I really have been there.
On the plus side, Chaos works very will in many circumstances and we’re continuously improving it in terms of behaviour and performance (5.1 will see significant gains in both). So in general I would say we’re happy with the direction we’re going and the progress we’re making. Chaos is our only physics system going forward and we’re working extremely hard to make the best solution for everyone.
There’s still a lot to do, but if there are specific issues we need to address please let us know via a UDN post.
There is the water system you can look at, but we have future plans for buoyancy and complex interations with dynamic 3d simulations in Niagara Fluids.
The physics asset editor already supports the ability to orient a joint constraint the way you want
if you are looking at runtime ways to do that, Chaos supports it too
If you find ever find an issue with it, please make sure to use UDN to report it
It is possible to author a system where fluids can affect game mechanics with some latency, but it’d be tricky to setup. You’d have to export the particles to a BP, which takes them from the GPU to the CPU, then you can use whatever logic you want for gameplay. We are considering more built in systems to support things like this in the future.
Hi, are GPU physics going to be a feature i.e. running the physics simulation on the GPU for purely visual effects?
Yes I agree we should have more of these kinds of samples. We have a number of tests in QAGame, but they’re more for functionality testing and not necessarily useful as samples. I’ll pass this request on.
Good point - I also could not find any docs on this. If you think it doesn’t work though, please file a UDN since it should be functioning.
The other day I happened to needed to create a hole in a landscape though and this is documented. It’s somewhat related, but not sure how useful it really is. Just in case:
How is the work on networked physics going ? The Async Fixed tick allowed me personally to implement some nice physics over network (more or less working), but wonder if there is going to be some engine level solution to make implementation of it easier, or working out of box, for more basic cases.
The Physics Field Data Interface is the correct one to use for sampling Chaos Fields. This is a great flexible way to have global forces defined in your map affect Niagara simulations. We have used it internally to do this for fluids and other Niagara sims, and have some plans to eventually release a tutorial video about how to use it. We’ll try to give a more detailed answer on UDN.
I believe this is possible, but difficult. I did this 7 or 8 years ago on UE4, so it should in principle be possible in UE5. I don’t remember the details, but essentially you need a new UWorld to hold and simulate your second scene.
If I recall, the editor actually does something similar for the various editor windows. E.g., the Physics Asset Editor runs its own world to hold the editing scene. Likewise any editor window with a preview scene (Anim Blueprint or Blueprint for example) does the same, so this may be a good place to look for inspiration (perhaps PreviewScene.h which is the base class for all of these previews).
For Chaos Destruction, the ContentExamples project contains a map dedicated to it ( named “ChaosDestruction”
You’ll find in it many ways to use destruction and interact with it, including fields and blueprint gameplay events
If you look at the Collision module in your Niagara emitter, you’ll be able to get the index of the physical material that was it (from the list defined in your project settings).
Yeah that’s not great. It exposes a couple issues we have at the moment (and maybe some we don’t know about) that we will address. I don’t have a timeline except to say that stability is very important to us and we’re continuously working on it. I just created a sample like this in our sandbox so at least we have a test case now.
The issues I know about are
- We shortcut collision detection when things don’t move much and it looks like it doesn’t work well in this case. I need to investigate this to figure out why (we need this for performance) but in the meantime there’s a console variable to disable this system
- We reduce the number of contacts between two shapes to 4 points and it looks like we are constantly switching contact points for large discs like this. This prevents the system from ever settling down. Needs further investigation.
- We have a shock propagation system to stabilize stacks but it doesn’t work well when all objects are lying sideways and overlapping domino-style.
p.Chaos.Solver.Collision.AllowManifoldUpdate 0
Hi,
Physics related assets made with UE4 that are not SDK specific should load in UE5 as part of the Unreal standard backward compatibility support (If not, please submit a bug report through UDN)
SDK specific asset like Apex ones do not have a backward compatibility path in UE5 and destructible assets will have to be re-done using geometry collection assets
No, at the moment, Chaos Cloth does not support low res to high res mapping
Sorry, Chaos Cloth do not support tearing at the moment