How to prevent welds from interfering with animation?

I’ll be a little bit more specific. I’m trying to animate a steering wheel. Obviously, a steering wheel needs to stay on the vehicle, and I’m thinking, why not weld it? so I welded it to my kart, only to find out that welding it prevents the steering wheel from being animated separately. Here’s where the problem kicks in. How exactly do you work around this? If I don’t weld it, sure its animatable, but won’t stay on the kart. If I do weld it, the steering wheel won’t be animated separately, and moves the kart with it. (And yes, before anyone asks, I am using moon animator.)


I would appreciate a response!
If you have any questions, let me know.

TQ5890

1 Like

You could make the cart a humanoid and use Motor6D parts to join the steering wheel together, motor6D doesn’t interfer with animations, otherwise roblox characters would look weird.

I you don’t want to make the cart a humanoid then okay.
There are probably other ways of doing something like that anyway.

2 Likes

Sorry for the tardy reply.

So how would I go about doing this without screwing anything up? Should I use RigEditLite in order to accomplish this?

2 Likes

Okay man, so I used RigEditLite to create joints, which are indeed Motor6 parts. They act exactly like welds, and the issue still occurs. Am I doing something wrong?

(I’d also appreciate a response yk?)

1 Like

aaaalllllright!

So step 1.
Create a model,
for a humanoid to work the model requires two parts:
-A part called Head
-A,part called HumanoidRootPart which has to be set as a primarypart.
-Then you can use any plugin to rig it.

I made a quick model (ignore ui and stuff, i opened the first place i had.)


then i rigged it very simple, (steeringwheel rigged to head, head to rootpart)

Schermafbeelding 2024-01-21 171143
here is my hierarchy:
Schermafbeelding 2024-01-21 171104

alright so about step 2.
in the hierarchy you might see an animation!
Well you open up the build in roblox animator


and then start animating your steeringwheel (if the joints move silly when animating , there might be something wrong with the way you connected them.)

then you get your animation link by uploading it to roblox, when it says success press the blue link and go to the url, copy and paste the id inside of the animation object’s id.
Schermafbeelding 2024-01-21 172006
then enter scripting, load and play your animation!
Schermafbeelding 2024-01-21 171125
after the animation is loaded, it will be played by your humanoid!

here is my example in action:

hope this helps!

a bit more info about anims, there is a little thing called priority i believe?
Which are these:

idle
move
action1
action2
etc

so if say a walking animation is playing with a priority of movement,
and at the same time an animation is playing, say a sword slash, with a higher priority.
Then say the sword slash animates the arms, but the walk also animates the arms,
the the arms will follow the anim with the highest priority, this is useful when you want some parts animated separatly in a different animation.

2 Likes

A way to get around this is to disable the weld when animating, then reenable it when you’re done. You can set the weld’s Part0/Part1 to nil while animating then reset it after. I suggest you disable the weld from the server when the player takes ownership of the vehicle, then reenable it when the player disowns (exits) the vehicle – and for instant feedback, do the same with the client (it’s okay to do this since the server is doing the same, despite the latency)

1 Like

but when animating, if you disable the weld, the part would just fall off during the animation, and teleport back when it is over, that would look weird.

I haven’t tested this but i’m sure the part would just fall off.

1 Like

Not specific to your use case, but one way that I have found to stop animations from going weird when welding objects to players is to turn off collisions for the welded objects.

2 Likes

Real quick question. Have you actually tried this? I put the weld constraint back onto the handle of the steering wheel. Obviously, when I disable it, it lets me animate the wheel freely. However, when I enable it when I am finished animating, it gives me the same result as I showed you before.

1 Like

Yes, I’ve done this before (can’t find it anymore, but this was how I did it). Hmm. I’m not sure what the structure of your welds are, but in my case it goes like this:

  1. Player enters vehicle
  2. Server disables the SteeringWheel weld (by setting Part1 to nil on a Weld, not a WeldConstraint), and creates the Motor6D “SteeringWheel” joint at the character’s Torso (this was R6) – this is how the Steering animations were created, with the steering wheel joined to the player’s torso with a Motor6D
  3. Client does the same
  4. Client exits vehicle
  5. Server reenables the weld and destroys the character’s SteeringWheel joint

If it’s still unclear, I could maybe try and make a demo place with this kind of system when I have time later

1 Like

The steering wheel and the steering wheel handle already had cancolide turned off. I don’t think this works. Please double check on your end that this works.

1 Like

Uhh… sure, you could do that. There’s definitely a more simpler way of doing this though.

Up to you, the reason it’s done this way is to make sure everyone’s seeing the same thing. Welds/Joints are disabled/created from the server, and from there you can play the animation locally and it’d replicate since it’s the player’s Character. The only other ways I’d know to do this would be using a HingeConstraint to physically rotate the steering wheel based on the vehicle’s actual steering, but then you won’t be “animating” it – or using IKControl stuff, both of which already sound more complicated than what I do.

Alright… In the first picture you sent of the model, which part is the “steering wheel”, and which one is the head and humanoidrootpart?

1 Like

Alr, how about you make a demo place so that I can see how this system works in real time.

Don’t really have the time to setup a demo atm, but maybe you could just do this: https://www.youtube.com/watch?v=8fV-XOOj6O4

2 Likes

The steering wheel would be the part that rotates in the video,
That’s the only important thing because it’s not like you are using my model;
your model just needs a humanoidrootpart and a head, they can be anywhere really.

What plugin did you use to rig it? I’m guessing not RigEditLite.
And are those are Motor6Ds?

Also, what animator did you use to animate it?

Okay, I just tried this structure again, and what I found was the only reason that your structure works, and mine doesn’t is because your bottom part isn’t welded to anything. In this case, my “bottom part” would be my steering wheel handle.


You see, that’s the weld keeping handle onto the kart.
I disabled the weld, and I used RigEdit Lite to create a joint, which is a Motor6D. As I was expecting, this did not work.

I would appreciate a response. @scavengingbot