Issues with animating a rigged weapon

I’m having an issue with rigged weapons, I’m a beginner level animator, and I’m trying to learn how to rig and animate objects and then have them play in-game, but I seem to be having some issues.

I’m making a bow animation for the character to be firing an arrow, but the bow seems to change positions when I put a motor6d on it.

This is what the animation is supposed to look like
https://gyazo.com/98386724f073603e27f31066c20e0df8

This is what it looks like when tested in studio
https://gyazo.com/f4c81b1061b18e318b7780789206c431

The model of the bow moves into the UpperTorso.

When the player joins, a motor6d is created, and it is put into the bow. It’s part0 is the UpperTorso and it’s part1 is the bow. This could be the problem, but I’m not too sure.

In the animation, did you by any chance move the bow manually without using animation? Like aligned the bow to your hand before beginning animation?

Not at all, everything was moved during the animation to keep motor6ds in tact.

Is the bow and bow used for the rig all the same? Nothing changed?

This is similar to issues many people I know have been having.
Basically you can use the plugin:
Moon Animator 2 - Roblox

Select easy weld:
image
There are instruction there for further explanantions.
[robloxapp-20200812-1116480.wmv|attachment]
robloxapp-20200812-1118185.wmv (708.5 KB) (upload://sImmtxB27lY2CmY6RlxeUmuwa2O.wmv) (419.5 KB)

In your case, the bow should be a tool, and you can re adjust it with a tool plugin. But if it isn’t as a tool you should weld it to the players hand, you may find it in accurate when welding, so turn the bow into a model and create a part to be its primary part and before hand set it to have the same CFrame as the hand the bow is in uses the plugin I mentioned previously to weld the middle and the bow together. image

Hope this can help you out, if you need me to re-explain step by step I wouldn’t mind.

1 Like

This is exactly what I’ve done, step by step. I even went on to move the joints so I can animate easier, my problem isn’t welding, it’s putting the animation into the game

Try animating with the custom character rig.

This is because you aren’t setting the .
C0 of the Motor6D that is created in the game to the C0 of the Motor6D you animated with in Studio. A C0 is a basically the CFrame of a Motor6D/Weld’s Part1 relative its Part0, and it probably isn’t set right which is why the animation plays fine and the bow still moves, but the bow isn’t positioned correctly. So, always be sure to print the .C0 of the Motor6D you used to animate with in the command bar, and then copy the numbers and paste them in a CFrame.new() and then set the C0 of the Motor6D to that value in the script whenever it is created. If you don’t have the motor anymore (if you deleted it), you can also calculate the C0 by doing this (just run it in the command bar):

local part0 = The part0
local part1 = the part1

print(part0.CFrame:ToObjectSpace(part1.CFrame))

To set it in the script, you’d just add this line of code after getting the C0 (the variable motor is your Motor6D):

motor.C0 = CFrame.new([[paste the numbers here]])
2 Likes

Thanks so much for the help! I’ve already fixed the issue with this solution beforehand, but if anyone comes around to this thread, they’ll see your post as the solution.

2 Likes