Chaos Physics in UE5 EA and beyond

if you enable LWC entire chaos is using double precision.

1 Like

Interesting, haven’t begin to check LWC

Chaos was first to be converted to use doubles, Unfortunetly LWC right now is hit or miss. I can’t get it to work because have some Niagara Systems, which fail to compile with LWC enabled.

3 Likes

We need to give Epic help if we want Chaos to get to where our expectations are, the alternative if you need help integrating a newer version of PhysX into UE5 send me a DM and I’ll see what I can do to help.

One of the things to consider is when we talk about feature parity sometimes its necessary to let the old ways go for improved workflows. These arnt always obvious when we come from one physics engine to another, it might not be a question of Epic catching up because IMO Chaos already surpasses PhysX to some degree, the obvious shortfalls seem to be the focus.

Even PhysX isnt perfect which is why having a solution at Epic is better for all of us, we dont have to try to get Nvidias attention or get Epic to communicate back and forward to them. There are alot points of failure when communicating, I personally never had an issue with PhysX to the degree Ive heard some people complain about it (again for a LONG time). If Updating to a newer version would help then Im willing to put some resources in, if implementing another physics engine is a better option then maybe as a community we can do that. Ive learnt not to wait on Epic and to just do it myself if it needs to be done.

Personally Ive seen pretty good results with Havok across alot of titles and Bullet is pretty popular, there are options out there for the willing as not all UE games use PhysX. Infact the best game use of PhysX I can remember isnt even an UE4 title. Anyway I dont want to get too far off the topic of Chaos, so far in my experience it has similar weaknesses to PhysX which makes neither suited to my projects which is why I was working with Vorixo, cool.

1 Like

any chance to reupload the rep ?

My concern right now is this all seems to be going the same way that other major engine overhauls have gone before, which is that Epic pulls the rug out of an existing core feature that is heavily relied on, and leaves gaping holes behind - all in the name of subjective “progress”.

One prime example of this is when Gaussian DOF was removed from the PC renderer, without providing a usable alternative. CircleDOF is not a suitable replacement - but it’s had little to no changes since this change was made, and Epic’s official response to my own massive thread about this, was that if we want it back we should simply “reimplement it ourselves”, providing only a link to an obscure powerpoint presentation about how Render Graph works, and a proverbial “off ya go then” response.

That’s a totally unreasonable expectation for the renderer/physics parts of the engine, both of which are highly complex fields of their own that people dedicate their entire careers too. They shouldn’t just swap these things out and expect the users to fill in the blanks because Epic themselves didn’t need those features for an internal project like Fortnite.

(Note: It’s been ~2 years since the GreatGaussianIncident™ - and still no movement on that topic).

Until such time as Epic can provide a performance-and-feature matching physics engine of their own, PhysX support has to remain. Querying backfaces or multiple per-mesh hits shouldn’t be features we are pointing out as being missing at this stage - and this is just the stuff we know about because we’re using it.

Don’t get me wrong, one of the engines core strengths is that Epic actually make games with it themselves and do genuinelly innovate - but I worry that we as the community/userbase are bringing these things to Epic’s attention, when really they should already know everything we’ve covered in this thread so far.

Maybe they do, in which case it would be nice to be reassured!

9 Likes

That’s exactly the point. Epic is deciding that Chaos should be the default at a time where it is completely unusable and light years away from even competing with PhysX. You have to surpass it before you can consider replacing it.

3 Likes

Dear friends, I can’t find the caching properties section. I have the ChaosCaching and GeometryCache plugins active.

This part is not enabled? How can I use the cache to be able to use the sequencer?

Antoni
Thanks

I noticed this too and did some troubleshooting. It appears that in UE4, impart velocity is based on both implicit and explicit velocity. In other words, changing an objects transform gave it velocity, just like directly setting it’s velocity.

In UE5, it appears to use only explicit velocity currently. Changing an objects transform does not implicitly generate velocity, thus there is no base velocity to impart. If you set up velocity explicitly, it is imparted as expected. I’m not sure if this is a bug or intended.

Hope you guys don’t mind if I tack a UE5 / Chaos physics question on this thread.

Has anyone gotten two physics bodies with a constraint locked except for rotation on an axis to work in UE5? I tried it and the constraint keeps acting like the other rotation axis can break. I’ve tried so many settings…

thx for any ideas / solidarity :wink:

Chaos physics destruction objects seem to tick much less frequently than physics bodies when using async ticking. Anyone else tried this? Makes the destruction extremely choppy - even before the mesh is destroyed.

OR an avalanche of 601 rocks LOL

I hate to be the bearer of bad news but my last hope was that Nvidia might maintain a separate branch of UE5 with PhysX support but Adam Moravanszky from the Nvidia PhysX team as announced the following:

I have no plan to do so. First, we are unfamiliar with the integration code as it was written by Epic’s engineers. Second, our past experience is that to keep any significant simulation integration (e.g. our HairWorks comes to mind) up to date in UE is a rather Sisyphean effort given the frequency with which Epic makes significant changes to the underlying engine. I would rather spend the same time to build new tech. Third, if Epic had desired to support multiple physics engines in UE, they would have created an appropriate abstraction (rather than forcing the removal of the existing integration). I don’t see any indication that there is a desire to give users any choice in this matter, and I feel working against the grain here would just cause upset.

Source: UE5 PhysX fork · Issue #425 · NVIDIAGameWorks/PhysX · GitHub

Still, I think the team at Epic is pretty amazing so, they will figure something out. They could either keep PhysX as an optional choice indefinitely or create a abstraction layer as Adam Moravanszky suggested.

It’s a real shame that Epic is deprecating PhysX right after PhysX 5 was announced which allows Finite Element Model (FEM) soft deformable physics https://www.youtube.com/watch?v=QuKBZlRFpiA

I’m not sure that’s ever been the case in UE4. You can move an object and it doesn’t upset the physics velocity, but it also depends on which ‘TeleportPhysics’ flag you use.

Well this is what I don’t understand, there is an abstraction layer - but why keep it at all and waste performance on conversion/translation between the physics engine and the rest of the engine if nobody is going to use it anyway.

2 Likes

The probably won’t. Quite a bit of new features (like Network Prediction, and new character movement), are written directly for chaos.

appreciate your reply. 4.26 if I had a simple cube rotating fast and jumped, character would rocket from it when jumping. How would I implement this now? Instead of a basic cube, would I have to create a blueprint with a cube in it and set something with a node?

from your suggestion, I did create a basic cube in a blueprint and applied my standard rotation to it, I lined a few of them up, and the rotation now moves my character along the path of cubes where outside of the blueprint, it doesn’t alter movement at all. This is closer in the right direction for me, but it still doesn’t apply the “random” amount of Y velocity I was getting after jumping in the same situation in 4.15-4.26

Make sure you’re setting/creating velocity and not just adjusting the transform. For Example “SetAngularVelocity” instead of “AddActorLocalRotation”. The former creates velocity which can be imparted but the latter typically would not. Also make sure the “Impart Velocity” flags are checked on your character’s controller blueprint.

does anybody know, how to check for overlaps between meshes and fractures in the geometry collector. the hit, collision, break events do work fine, but the overlap event from chaos doesnt, anyone a idea ?

i went over the source code. overlap events dont seam to be implemented ?

Well this is what I don’t understand, there is an abstraction layer - but why keep it at all and waste performance on conversion/translation between the physics engine and the rest of the engine if nobody is going to use it anyway.

At least part of the abstraction layer was added after the fact (I forgot what release it is).

I believe (as an outsider) the purpose of creating the abstraction layer wasn’t to support multiple physics engines. It was to facilitate the migration to a new physics engine (created by Epic). So the timeline looks like:

  1. Integrate PhysX with Unreal Engine
  2. Add robust abstraction layer between PhysX and Unreal
  3. Create new physics engine in house and hook it up to the abstraction layer
  4. Remove PhysX
  5. Remove abstraction layer between Chaos and Unreal

Chaos is owned by Epic. They have full control over it. Once Chaos is fully adopted, there is no reason to use any other physics engine. If there’s no reason to ever move away from Chaos, why would you need an abstraction layer?

I have wondered why the Chaos engine was created. I don’t really see a reason not to use an existing physics library. It’s a great time to be a physics engine user because there are so many high quality options now. ODE is stable, Bullet development is still going strong and entering robotics, PhysX is now open source and implementing lots of new features, etc.

The only reason I can see to create Chaos is it would allow epic to achieve the “Not Invented Here” vision of Unreal Engine if there is one. After all, if there’s any studio that has the resources to pull this off, it’s Epic.