CRYENGINE Forge: 5.6 Preview - Physics

#1
CRYENGINE 5.6 is coming! Find out what you can expect in our latest interview.
It’s not long now until we release CRYENGINE 5.6. This major update features over 1,000 changes and will mark a big step forward for the engine, putting more power in the hands of developers and making it easier and quicker to realize your vision. With so many changes, as you’d expect, there are advancements across almost all areas of the engine, and today we’re focusing on new physics features and improvements in our interview with physics programmer Anton Knyazyev.

Hey Anton! Which areas did the team want to focus on when it came to pushing physics forward in CRYENGINE?

Anton: Ideas for many of the features that will ship in CRYENGINE 5.6 came from a range of sources, internally from both the CRYENGINE team and the Hunt: Showdown team and, of course, from the community. One major goal was to make a big step forward in terms of character physics, for instance, with fully physicalized procedural animation. But we have a wide range of enhancements and features that we think will add up to make a big difference.

Image
Let’s look at a few specific features. Can you tell us about the Inter-Entity Contraint Points Storage feature?

Anton: This feature is designed to create gears, but also has other functions. Implementation-wise, it is quite simple at its core. It allows users to manually specify which entity will ‘own’ the constraint point. Normally when two entities are constrained, one of them will be used as the frame of reference for the constraint point. By getting a third entity to become the frame of reference, it’s possible to create a gear-like constraint, where the constrained point remains fixed in place while the gears rotate. This is just one example of how this feature can be used. Since each constrained entity can have its own constraint point in place, it’s possible to make things like belts. While working on this feature, I was able to improve and extend constraint components too. This included exposing this ‘constraint frame’ entity which enables a pretty old but unused feature where a physical area acts as a ‘constraint frame.’ It allows straight line constraints to follow a Bezier curve, and plane constraints can become constraints that follow arbitrary geometry.

Image
You’ve done some work in the area of cloth physics too. What’s new?

Anton: Pressurized Closed Buoyant Cloth,despite a rather long name, is an extension to the existing environmental cloth entity. Basically, this allows closed cloth shapes to have internal pressure, based on the current shape volume. Since the idea for that feature was born in the context of floating balloons, some extra work was done to support the shape-based buoyancy of cloth. As a bonus, we have also added a cloth component.

Image
Rope tech has advanced in CRYENGINE 5.6. What improvements can users expect here?

Anton: We now enable ropes to use bones and skinning. Previously, the engine had to rebuild a rope mesh each frame, which is obviously not very efficient, although still surprisingly affordable in many cases. Now skinned ropes build the mesh only once, and then only update its bones. Ropes with dynamic segment subdivision, however, will have to use the old method, since they essentially have a varying amount of bones. We also allow ropes to be built from custom .cgf meshes, repeated several times. An obvious use for this feature is making a chain ‘rope’ created from a single link .cgf. However, our artists have already used this feature to create vines or complex cables that fit naturally with the environment.
Image
Can you tell us about the push forward in character physics?

Anton: Ragdoll IK is the first step in our planned character physics advancements. It’s a special physics-aware, energy-based, full-body IK, which tries to satisfy constraints imposed on the physics skeleton with minimum effort energy-wise. In practice, this looks similar to applying physics impulses to characters, except the results are computed instantly and without the physics thread running. It also has a mode that looks less ‘dramatically physical’ and more like a smoothly weighted full-body IK. A good application for this is posing characters on levels, so you can precisely place dead bodies, for instance, but also less morbid things like sculptures, mannequins, and so on. This feature is also available from code, so people can find custom uses for it as a general IK. Working on this feature also facilitated polishing the existing Featherstone simulation mode for ragdolls, which is a precise and efficient method for simulating articulated structures, and the addition of a ragdoll component.

What’s the new mass decay feature?

Anton: Now, this one is a bit cheeky! It’s known that physics solvers like stacks of objects, where lighter objects are placed on top of heavier ones. In fact, there are physics demos that do this. So I thought why not cheat a bit and do it on the fly? The solver is still allowed to try and solve the original configuration ‘honestly,’ but after that ‘mass decay’ is applied, making objects lighter the further they are from the ground or static contacts. Combining ‘honest’ solver passes with the temporary effects of mass decay means this feature can be used quite aggressively, making stable and relatively cheap simulations of tall stacks that can easily go over 100 objects. Still, this particular element of the feature is turned off by default.

You’ve mentioned quite a few component improvements in passing. Are there any others for users to look out for when CRYENGINE 5.6 arrives?

Anton: We have a new physics particle component which is useful for projectiles, for instance, and I also worked on tweaks and improvements to the sample actor component, which is intended to be a replacement and upgrade to character controllers based on PE_LIVING physical entities. We will also introduce a small water volume component which can attach itself to an existing water volume shape and change some of its physical properties at runtime, such as water density, resistance, flow direction, and ‘fixed volume’ for dynamically distributed water volumes.

Thanks, Anton!

Stay tuned for more interviews with the team ahead of the launch of CRYENGINE 5.6. ICYMI, check out our preview of the changes coming to the launcher and sandbox in our interview with Falk Sonnabend, Senior UX/UI Designer, Eduardo Cabrera, Junior UX/UI Designer, and José De Gouveia, Senior Full Stack Developer.

What features are you looking forward to most? Let us know here, or via Facebook and Twitter, or join the community and our CRYENGINE development team over on our official CRYENGINE Discord channel. If you find a bug in the engine, please report it directly on GitHub which helps us to process the issue quickly and efficiently.

Are you looking for your next career move? At Crytek, we value diversity and actively encourage people from all kinds of backgrounds and experience levels to apply to our open positions, so join us over at LinkedIn and check out our careers page.

- Your CRYENGINE Team

Who is online

Users browsing this forum: No registered users and 1 guest

cron