New Humanoid Physics Controller - Beta

Very nice and very cool feature :+1:

sounds and looks really good
looking towards using this as soon as it’s finished

I’ve removed one of the underlying controller instances that gave me an immediate crash in which I thought it would resort to default in return. Perhaps, define default values and have them be modified once it finds a controller that is overwriting it.

I think it should be an impulse in the first place, not a constant force.

4 Likes

Would be interesting if a function was added to the Humanoid: “Humanoid:Ragdoll()”.

6 Likes

This is a really amazing update i just noticed some things that feels off but thats because i’m used to the old system but this is a huge step into making roblox more realistic and this just helps a lot with making moving parts you want the player to move with.

I am loving this! Will give us so many new possibilities!

I feel you. I got way too excited.

1 Like

This is wonderful, however there are currently major issues preventing me from adopting this.

For one, humanoids being moved at high velocities (body movers, constraints, etc) behave exteremly poorly. Often times it ends up flinging me into oblivion. These flings can be as bad as flinging me into somewhere so far away from the world’s origin that it causes a strobe effect with the skybox.

(Note: the “FallingDown” state is disabled here, but the flinging can occur regardless of it being disabled or not.)
Current Behavior: !! RAPID FLASHING LIGHTS WARNING !!

Expected Behavior (while FallingDown is disabled):

Secondly, the FallingDown state triggers way too much. Landing while having a large velocity will pretty much always trigger it. The expected behavior is for the humanoid to only enter FallingDown when flung into a wall at high velocity.

Current behavior (I have custom logic for the FallingDown state):

Expected behavior:

These were the most severe problems I noticed, however there were some that could be adjusted with the controller properties, such as the humanoid moving faster in the air than it did before, and the turning speed being a bit too much by default.

7 Likes

Are there any plans of making auto jumping an user-facing setting, maybe in a similar fashion to how Camera modes are handled? (e.g. DevAutoJumpMode)

I think auto jumping shouldn’t be a property of the Humanoid or it’s controller as it’s related to user input and depends on what kind of device they are playing on.

3 Likes

This all seems really good. I am sorta interested though, is it possible or is there plans to give us control over the Humanoid’s gyro? Aka allowing us to do wall-walking and such without the complexity of current solutions.

4 Likes

Glad the Humanoid is being introduced with updates like these, this is going to allow for flexibility and numerous ways of creating custom character controllers with ease whilst being performance-safe

I played around with it and I absolutely love it. As an extra bonus, it goes really well with the new strafing animations

5 Likes

Please tell me this makes climbing more consistent! As the owner of a game where you’re climbing a significant amount of time, I’ve noticed some extreme inconsistencies depending on character size and hitbox settings a lot lately. It’s been possible to, after jumping from a far height onto a ladder, basically “slide down” the ladder for miles before roblox grabs it on. I sure hope this is more, not less, consistent in that regard…

See the following:

https://i.gyazo.com/a8748caa66a7529d2db8e0b022f9b2bc.mp4

I don’t have time to test it at the moment, and it was so inconsistent before that I’m not even sure if I am capable of testing it, but if this new humanoid controller doesn’t make climbing 100% consistent, what’s even the point? …So I can only hope.

3 Likes

This is such a fantastic update! With the ability to properly collide with the ground while in motion and/or idle, this makes some use for many new projects and features, especially in some of my experiences! Air control improvements will also be huge and I am very glad that parkour can improve with better and more consistent humanoid physics! I am really excited to see what kind of improvements that are going to release to the new Humanoid Physics Controller! :smile:

1 Like

Amazing update! I’m looking forward to play around with this feature in my games.

1 Like

Oh, yes! Ever since I noticed the new classes in one of the release notes, I’ve wanted to see Roblox’s official take on physics-based character movement, with actual momentum and more natural jumping! (The automatic momentum transferrring and climbing on moving ladders are also great additions.)

Before this announcement, I added PhysicsCharacterController to my game, to see just how good physics character movement would feel. Everything flows smoothly and naturally there; Deceleration makes sense, and only happens when I’m moving fast enough, as shown in this video:


When I disabled PhysicsCharacterController and tried out the new physics controller by Roblox, I noticed that my character always slides as if they were running at full running speed when I release a key.

In this video, I do the same thing I did in the video above, running forward, releasing the W key, then briefly tapping WASD. You’ll notice that each time, my character always slides a couple studs, even though that never happened with PhysicsCharacterController:

If any Roblox staff are reading this, please fix this; I think the new physics controller is pretty awesome already, but this is the main seemingly bug I’ve found in it.

9 Likes

This is peak ROBLOX development from the physics team, props to y’all, amazing work. Really excited to see this out of beta and put to great use by a lot of devs! :+1:

1 Like

Oh wow.
More accurate humanoids that interact with physics better?
Mind blown.

I’ve considered writing my own humanoid from scratch to achieve things like this but this is going to save soooo much work and it’s probs better optimized too.

Only question I have is, will this humanoid work in different orientations?
(Example: game where gravity can change and where a character is attracted to a round planet, kinda Mario galaxy style.)

Does the animation state machine also still work mostly the same or is it different then what regular humanoids have?

1 Like

Very cool!
I noticed a quirk where the character would have a force applied to it randomly, but I can’t seem to reproduce it. (that might’ve been actual accurate physics lol)

If anyone’s looking to test the new momentum-preserved physics, here’s an uncopylocked test place I put together.

Also, incase you’re curious but lazy, this doesn’t work with CFrame. It seems to be using actual realistic physics math, and CFramed objects don’t have tracked velocity.

This is great, only suggestion would be to change the acceleration property to be something that runs at all times as opposed to a linear walk speed increase when starting and stopping. Hard to explain, but strafing in a circle in first person feeling very rigid as a consequence to this. I have a video of my own lerped walk speed system that feels much smoother in first person here.

Having acceleration be a smooth lerp with a target at all times as opposed to a linear tween helps greatly for the smooth fps-like movement. Unsure if this is how it works, but it does feel extremely jagged and tween-like, I’ve linked an example with 0.2 acceleration and 0.2 deacceleration on the ground controller here.

Amazing new feature however, great work as always. I’m so glad you’ve committed to reworking the Humanoid movement, long overdue. My ramblings may be nitpicky, but I’m a sucker for Source movement. (Don’t make acceleration and de-acceleration direction based!)

6 Likes