Ability to limit Constraints such as AlignPosition to specific axes

Thank the lord i am very greatful of this

2 Likes

This is great thank you for adding this.
What about some of the angular constraints?

Take this example: I have an object in mid air, I want to apply angular velocities to the X and Z rotation of the object, and I want to align the Y rotation to a specific angle. So I would want to use an AngularVelocity and AlignOrientation.

From what I understand AlignOrientation will only allow you to apply torque to a minimum of 2 axes by enabling the property ‘PrimaryAxisOnly’. Seeing as AlignPosition will now be able to apply force to either 1, 2 or 3 axes, it would make sense that AlignOrientation can do the same by turning MaxTorque into a Vector3, this would be a lot more cohesive.

And again, AngularVelocity’s MaxForce is a number not a Vector3, so AngularVelocity and AlignOrientation are gonna be fighting each other because I’m unable to separate their torques into the axes I want. AngularVelocity’s counterpart, LinearVelocity, does allow you to only apply force in specific axes. The current constraints system really just doesn’t feel ‘complete’ in a way and it’s been out for a long time now.

So once again BodyMovers (BodyAngularVelocity, BodyGyro) are the better option here despite being deprecated and I am forced to use them to get the functionality I want.

3 Likes

This still does not fix any issue on the topic of AlignOrientation having the minimum 2 axes.

I had a draft in this topic for a few months at one point saying that this would make sense to do but what would the new property be called? They can’t just change a property type and expect all those games to still work.

image

This is what they’re gonna do for AlignPosition I believe. They could do a similar thing for AlignOrientation.

1 Like

Very excited for the ForceLimitMode, ForceRelativeTo, and MaxAxesForce features to be added soon. I am currently developing an experience that uses these features. It would also be nice to see these in AlignOrientation, not just AlignPosition.

2 Likes

Good good good. Is the change live yet?

2 Likes

after extensive testing, no; should be soon though

it has been roughly 2 months since this post, do we have any possible ETA?

3 Likes

Sorry for the delay. This feature is now live. Let me know what you think.

11 Likes

Working a treat! Any chance this will appear on AlignOrientation as well?

1 Like

AlignOrientation is quite a bit more difficult due to the nonlinear nature of the constraint. Do you have any use cases that wouldn’t be covered by one or more AlignOrientation constraints covering different Axes? If the goal is to simply disable particular dimensions (by setting some components of a vector torque to zero), we can accomplish that easier with different AlignType’s or even OrientationAlignmentMode’s.

1 Like

I basically need AlignOrientation to only work on one axis, to prevent my trains tipping over. See my quote earlier in this post:

I need to stop my trains tipping over, but still allow them to go round curves and up hills, thus, only limiting the Z axis. If what was added to AlignPosition (or something similar) was added to AlignOrientation this would fix my problem, especially as BodyGyro, which I am still haviung to use, also allows limiting on one axis.

2 Likes

the way youre thinking about this is wrong however, unless youre planning your train to be perfectly flat 100% of the time

How? As shown in this GIF I want to limit the train (or in this case, part) from tilting left and right, effectively the red axis (which is the Z axis on the part’s orientation). The other two I need to freely move for hills and corners.

GIF

I believe this is currently possible with AlignOrientation using the PrimaryAxisOnly option and the Perpendicular AlignType. You would create an Attachment with the PrimaryAxis oriented with the Y-Axis of the part and set the PrimaryAxis of the AlignOrientation constraint to be the X-Axis. This should replicate what you had with the BodyGyro when using a non-zero torque only on the Z-axis. As the train turns, you may need to adjust the PrimaryAxis on the AlignOrientation to ensure it can go up and down hills oriented in different directions but I assume you were already doing that when using the BodyGyro. Would this setup work for your case here?

I have attempted to do as you describe, but its proven challenging, and as you say, requires adjusting the PrimaryAxis. It would be a lot simpler to have a way to limit what Axis the AlignOrientation effects, similar to the feature recently added to AlignPosition and what BodyGyro had, for simplicity more than anything.

6 Likes

I’ve been having issues with a similar thing to @TheModsterRB as well.
I need to make a character stand upright but be able to turn freely from physics, and bodygyro works perfectly for this but it’s buggy sometimes.

I tried using primary axis on AlignOrientation but it didn’t work (the reasoning is complicated) and I agree that it would be much better if the force could be limited per axis.

Currently I have to use a bodygyro which is definitely not ideal as it’s deprecated but it’s the only thing that does the job correctly.

The basic reason of why the primary axis didn’t work is it allowed the character to be rotated upside-up AND upside-down, as it was on parallel mode.
Parallel mode was the closest to it working I could get.

4 Likes

Still looking for AlignOrientation limits.

2 Likes

Started working on a game that needed this about a week ago, so this is great timing, one issue I have though, is that using RigidityEnabled seems to not be compatible with the PerAxis setting, as enabling it hides all the options pertaining to the axes, and forces it to apply to all 3 axes again. Is it possible that this feature could work with rigidity? If not, I guess it’s close enough.

1 Like

The feature we implemented only relates to how the constraint force is limited. If you want rigid behavior on a per-axis basis, you are much better off using a planar constraint or cylindrical constraint. Is there anything about these constraints that make them unappealing for your scenario?

1 Like