In a couple weeks we will release an update to production that will significantly improve behavior and stability of body movers and vehicle seats when using the PGS solver option.
BodyPosition, BodyGryo, BodyVelocity, BodyAngularVelocity now use a more robust solving technique that will expand the range of stability when varying the P and/or D parameters. Additionally the PGS version of the VehicleSeat has changed to make wheel torque transitions much smoother.
Note however, these changes will potentially alter the behavior of existing models. For this reason we have the updated version available for experimentation and model tuning on gametest1.robloxlabs.com. If you have models that possibly need adjustments please give them a try on the test site. And, as always, let us know if you experience any difficulty achieving desired behavior.
Great job! This is certainly going to make me more inclined to use the solver.
You should store the studio version in the place file. That way when you make a change such as this you can calculate what the new value should be based on their current value so that no change is actually seen by the user and they do not have to update it every time you update yours.
[quote] On a side note, could you guys possibly deprecate the BodyGyro.D/BodyGyro.P and replace them with BodyGyro.[strike]Dampening[/strike]Damping and BodyGyro.Power?
The current properties arent very descriptive, and the only reason I know what they do is because I read about it on the wiki. [/quote]
BodyMovers in general need a set of tutorials by someone who knows what they’re doing. Or at least get chefdeletat in here to tell us the exact formulas. Formulas would help.
[quote] On a side note, could you guys possibly deprecate the BodyGyro.D/BodyGyro.P and replace them with BodyGyro.[strike]Dampening[/strike]Damping and BodyGyro.Power?
The current properties arent very descriptive, and the only reason I know what they do is because I read about it on the wiki. [/quote]
BodyMovers in general need a set of tutorials by someone who knows what they’re doing. Or at least get chefdeletat in here to tell us the exact formulas. Formulas would help.[/quote]
I usually direct people to the wikipedia article on PID systems, because that’s really all they are. The only thing I don’t know specifically are the units used in angular bodyobjects, but everything that needs to be known about then is talked about on the wikipedia article.
[quote] On a side note, could you guys possibly deprecate the BodyGyro.D/BodyGyro.P and replace them with BodyGyro.[strike]Dampening[/strike]Damping and BodyGyro.Power?
The current properties arent very descriptive, and the only reason I know what they do is because I read about it on the wiki. [/quote]
BodyMovers in general need a set of tutorials by someone who knows what they’re doing. Or at least get chefdeletat in here to tell us the exact formulas. Formulas would help.[/quote]
Yeah I would give you formulas for BodyMovers, if it wasn’t all hacky to support legacy content and work like their spring solver versions.
We will be releasing new API for body movers in the near future. It will be clean, contain no more confusing PID systems, and I’ll provide formulas. For now please be patient, we’re in transition and things are in flux.
For now the body movers try to imitate the old P/D systems.
@Echo I’m just asking what they did to bodyangularvelocity so I can fix it myself. Also please spoiler/cut the quoted gif so it doesn’t double up uneccessarily
[quote] Oh god what did you do to BodyAngularVelocity? ):
Old (pgs on production):
@Echo I’m just asking what they did to bodyangularvelocity so I can fix it myself. Also please spoiler/cut the quoted gif so it doesn’t double up uneccessarily [/quote]
Please provide your repro case. I will be able to tell you if you can fix it yourself, or if it’s our bug.
[quote] Oh god what did you do to BodyAngularVelocity? ):
Old (pgs on production):
@Echo I’m just asking what they did to bodyangularvelocity so I can fix it myself. Also please spoiler/cut the quoted gif so it doesn’t double up uneccessarily [/quote]
Please provide your repro case. I will be able to tell you if you can fix it yourself, or if it’s our bug.[/quote]
This is the new behaviour of gametest1 bodyangularvelocity
(gifv link because it’s 2.6MB)
The first teapot is a regular ball, size 7,7,7
The second teapot has a default bodyangularvelocity inserted into it. Notice how it’s way harder to push.
The third teapot has higher MaxTorque which simulates the need for my marbles to make it up a slope with enough oomph - but this one is almost impossible to move.
Meanwhile on production, all three get pushed fine, with the second and third teapots equally only a little less pushable than the first.
It’s like the gametest1 solver’s BodyAngularVelocity’s AngularVelocity is too strong to allow any natural rotation when set to 0,0,0; like it needs Damping on it
[The gametest1 version and production version I’m comparing are both using PGS physics]
I suppose I’ll be switching back to pre-PGS physics marbles for now
Only had a few minutes to play with it but the vehicle seat feels much improved. A lot of odd twitching is gone and it reacts a lot more like the non-PGS seat reacts to changes.
[quote] This is the new behaviour of gametest1 bodyangularvelocity
(gifv link because it’s 2.6MB)
The first teapot is a regular ball, size 7,7,7
The second teapot has a default bodyangularvelocity inserted into it. Notice how it’s way harder to push.
The third teapot has higher MaxTorque which simulates the need for my marbles to make it up a slope with enough oomph - but this one is almost impossible to move.
Meanwhile on production, all three get pushed fine, with the second and third teapots equally only a little less pushable than the first.
It’s like the gametest1 solver’s BodyAngularVelocity’s AngularVelocity is too strong to allow any natural rotation when set to 0,0,0; like it needs Damping on it
[The gametest1 version and production version I’m comparing are both using PGS physics]
I suppose I’ll be switching back to pre-PGS physics marbles for now [/quote]
Yes I looked at this, the behavior is different between solvers, but these differences can be resolved by tuning the maxForce. Unfortunately you did not provide an example of how you want the balls to move up the slope, so can’t really help you there, but I’d guess that if you need to more force to go up a slope, use your script to increase the maxForce when needed.
It did happen today. We just enabled the new PGS body movers that should in theory work like in the old solver.
In practice though they are way more sensitive to high D parameter. This is because they update at much lower frequency. Therefore if you encounter a jittery behavior, please try reducing the D param first.
This update ruined my game Turbo Havoc, I’ve tried tuning it to the new settings but I can’t get it even remotely close. I do however like what’s been done with BodyAngularVelocity. Hopefully this is an easy fix, but I’ve noticed strange differences in BodyGyro. I wish in the future the Roblox team post everything they’re changing that way developers can keep up and know exactly what to change, instead of poking around in the dark.
Like we mentioned earlier, you’ll have to re-tune the BodyMovers. They behave quite differently from what they were before but more alike in the old spring solver.
PGS is still being stabilized, therefore things are in flux. But we expect this version of BodyMovers to be final.
Could you provide us with a simplified version of your place, with only the model that causes issues, and description of expected behavior. Please PM me directly. Thank you!