Unable to copy and paste keyframes for identical assemblies in animation editor

Issue: When using identical assemblies for animation, I cannot copy keyframes between them. I have two shells, called “Shell1” and “Shell2”. I fully animated the first one, and wish to copy the animations to the second one, however the copy and paste function doesn’t work as it should.
When I paste nothing appears in the “Shell2” keyframes section.

System Information:

  • AMD Ryzen 5 3600 6-Core Processor
  • 16.0 GB
  • AMD Radeon RX 7800 XT

Beta Features:

  • Assistant Preview
  • Avatar Joint Upgrade
  • Dragging QoL Improvements
  • Live Animation Creator
  • Texture Generator

Expected behavior

Expected Behaviour: I should be able to paste animations between identical assemblies.

Hi there, thanks for your report.

However, this is not a bug. The Copy/Paste option copies the values within their original channels - one of the reasons being that if you selected all the values of a keyframe (across all the channels) and copied those values to a different channel, the ACE wouldn’t be able to guess the mapping (which original channel should go to which channel).

We will discuss internally and see if we implement what you expect when only one channel is copied, but at this point I cannot tell you if (or when) this will be supported.

In the meantime, you can achieve what you want by completing the following steps, although I’m very well aware that it will be quite tedious. If you know how to script, writing a tool to do that would definitely be a good idea!

So, here goes: after saving the clip in the ACE, you will find a copy of it in ServerStorage.RBX_ANIMSAVES.<rigName>.<clipName>. Each Keyframe instance contains a hierarchy of Poses. For each Keyframe, you will have to duplicate the Pose you want to copy and rename it to the target channel (So for your particular case, you should duplicate all the Shell1 Poses and rename them Shell2).
Once this is done, in the ACE, load the animation again.

Hope this helps!

2 Likes

This does sound like a cool feature though. If it’s offset based and things are similar, it would be useful.

ServerStorage thing does work though. But I feel like since ACE ever added the ability to re-name animations within the editor, it felt like they wanted to avoid having users go into ServerStorage to where the Animations are stored, to modify things. But ACE never added the ability to actually delete the Animation Tracks through the Plugin itself. :thinking:

the DPI issue is a bit unfortunate though for Luau plugins, for now until it’s fixed

1 Like

Thanks for the feedback!

We don’t really want to prevent users from changing the data directly in the RBX_ANIMSAVES folder. If we did, we would find a way to completely hide it :slight_smile: That being said, we do consider it to be a “trusted” source, in the sense that we don’t do a lot of validation when reading from it. That means that if you do something unexpected, there’s a high probability that the ACE will simply crash.

We considered that renaming an animation during editing was a basic feature that should not require users to go manipulate instances in an obscure part of the DataModel - even though the ACE has always supported “Saving as”. Everything the ACE does could be done manually or by your own scripts - it’s just that having a UI makes it much easier. And that’s what other animation editors do, too!

OP’s use case is a bit more special than renaming a clip. It’s actually pretty rare for two different parts of a rig to be animated exactly the same way. More often than not, there will be some symmetry involved (for instance, if you want to move the left hand the same way you move the right hand, you’ll probably want to mirror the keys horizontally). That’s one reason why we have never implemented it.

Regarding deleting animations… Well that’s a very good point. We do have a toggle in the publish dialog box that allows you to delete the local instances when you publish, but you are right, we should add an easier way directly in the ACE. In the meantime, you probably guessed that you can just delete the corresponding instances in RBX_ANIMSAVES :slight_smile:

Cheers!

3 Likes

You’re a hero!

This solution worked perfectly!

Instead of having to animate every single one of these shells I was able to basically copy and paste using your instructions.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.