How do I have an entire animation be controlled by another animation?

Hello! first time chatting here on the devforum.

I’ve been trying to create a reload animation for my Thompson gun Viewmodel. I want it to be able to reload using the same animation both while aiming down the sights and not aiming down the sights.

(sample of my reload animation and what I roughly want it to be able to do

Since I want it to use the same animation I figured I could just have a separate animation play for the entire Viewmodel itself when aiming down the sights which keeps the movement of Viewmodel stable.

I’m not sure if I just have a poor understanding of how the Explorer works but as far as I’m concerned I can’t just put two animationcontrollers to achieve this effect.

I tried putting my viewmodel inside of another model and having that model have its own animationcontroller but whenever I select the model it seems to just combine both rigs of both models.

The only thing I’ve tried that has yielded a result was playing my aim animation at the same time as my reload animation. But this doesn’t quite produce the result I want. I want the ironsights to be fairly stable in the center of the screen


(As far as I’m concerned weighted animations wouldn’t work for what I want to achieve either)

I’d appreciate if someone can help me find another way at looking to solve this problem.

Try changing the priorites of the animation to movement or something

From what I know, changing priorities just completely eliminates combining animations
(This is the result I got from your suggestion)

Hmmm well try just changing one priority like the aiming one

You can’t do that in roblox. You have to create two separate animations for that.

You could… fiddle with the weight property a bit but that may or may not work.

im not sure how your viewport script works, but if you have a function that updates position every frame, you can just add a cframe variable that could work as a offset for the viewport when aiming

Yeah fiddling with the weight can get pretty close to keeping the ironsights in the center.


However at some point the weight of the aiming animation just makes the reload animation have little to no movement
(This is due to the fact that I chose to make the aim animation… well an animation. Rather than creating an offset for the viewmodel.)

This is my entire line of code regarding how the viewmodel connects to the camera. The important part is just the red box highlighted. Rest of the code shown is basically filler.

Otherwise I just use a tool, clone my viewmodel onto it from replicated storage which then connects to the camera’s Cframe

I could add a cframe offset. But since my reload animation has a lot of movement, it also wouldn’t keep stable with the center of the screen.

I’m not sure I understand why you want to combine the animations. Why not just make a second version of the animation that plays while aiming? Combining animations like that doesn’t usually work well. I’d suggest making the animation for aiming and hip reloading separate. You could use AnimationTrack.TimePosition and fadeTime to make a smooth transition while aiming.

This honestly would work for the example I provided.

But I want to emphasize the title:
“How do I have an entire animation be controlled by another animation?”

Take this simple metronome model I created for example:

I can loop this endlessly and seamlessly in blender

Now for showcase purposes I created 5 metronomes play the swing animation but at different intervals(This is to simulate if I perhaps started playing them out of sync)


Now, I’ll make the metronomes just move in a simple straight line

As you can see all the metronomes stayed consistent with being out of sync and kept their animation pattern DESPITE using the same movement animation for all five of them.

If I wanted to achieve this effect in ROBLOX I would have to export ALL FIVE of those animations, heck maybe more than that if I wanted it to look more seamless.

This idea gets especially more complicated if I for some reason wanted the metronomes to go through lets say: Parabolic Motion

AKA throwing it in the air, which makes it go through an arc path, while also possibly rotating.

That said though, I think I will implement your solution so thanks!

I just know this wont be the end of me animating stuff like this so having a solution to the exact title would’ve been extremely helpful.

I’ll just mark this as the solution if there truly is no way to achieve this effect.

You could try another dumb way which is to see how the camera is offsetted in the aim animation and then use motor 6d transformation to offset accordingly. This of course just sounds easy. Believe me I tried and it’s a bit complicated but doable.

Also a random question, why do you want to reload while aiming? That just seems a bit unrealistic don’t you think?

Yeah I think I’ll try and mess around with motor6d’s a bit more and see if I get any results

oh it’s just a parallel to a feature which is used in Call of Duty lol. I’ve personally always loved when people put such small details in animation and I also wanted to do it myself.

Yeah, go for it. But I recommend just doing it in blender. It will save you time and a lot of headaches.

Oh, I see. Totally understandable.

Instead of having animations for aiming / hip-firing, you can also just keep the hip-firing animation and instead move the entire first person model so the camera looks through the sights.

Roblox doesn’t really have an efficient way of combining animations, you have to make separate animations for everything.

But I’d personally just calculate the offset between the camera and weapon sight and then just move the entire FPS model towards the camera for an quick and easy way to make aim-down-sights.

Is this what you mean? I simulated moving the entire viewmodel relative to the sights and then played the animation (since I didn’t feel like programming it in studio). As you can see here the sights once again get offset as soon as the reload starts (the animation itself moves the entire viewmodel).