Page 1 of 1

Select ALL keys on a frame, including bones, layers, virtruvian bones)?

Posted: Wed May 01, 2024 6:17 am
by tt1020
Hi,
So as the title says, I'm looking for a way to select all keys at once.

I've already noticed that the keys placed on layers don't show up on the timeline when I'm just on the bone's hierarchy. However even if I select all the bones and copy&paste / drag them around with a consolidated layer channels, something always seem to be left behind.

I'm creating a cycled animation by copying the first frame to the last, but I'm struggling to achieve it. Also, I want to adjust timing by moving keyframes around, but it feels impossible right now.

If there's a solution I'm overlooking or a step I'm missing, please share. Being able to manipulate every keyed element is crucial for my workflow. Without it, the software is barely usable for me.

Thanks in advance.

Re: Select ALL keys on a frame, including bones, layers, virtruvian bones)?

Posted: Wed May 01, 2024 9:11 am
by hayasidist
take a look at this: viewtopic.php?p=217465

Any use to you?

Re: Select ALL keys on a frame, including bones, layers, virtruvian bones)?

Posted: Wed May 01, 2024 10:52 am
by Daxel
This is in my opinion one of the weakest points in Moho, the timeline management. But you can definitely achieve what you want to do.


tt1020 wrote: Wed May 01, 2024 6:17 am So as the title says, I'm looking for a way to select all keys at once.
I think we don't have an automatic option/shortcut for that. Selecting all the keyframes of multiple layers for the current frame has to be done manually, clicking and draging with the mouse to make a thin vertical rectangular selection that goes over multiple layers. Of course you have to make all those layers visible in the timeline first.


tt1020 wrote: Wed May 01, 2024 6:17 am I've already noticed that the keys placed on layers don't show up on the timeline when I'm just on the bone's hierarchy.
Exactly. Moho automatically shows the selected layers timelines on the timelines panel. To show more timelines, we manually tick the timeline visibility box of the layers we want to see. There are a few script tools that can be used to tick/untick the timeline visibility of multiple layers at once, for example to show the timelines of all the layers that have animation.

https://mohoscripts.com/script/ae_keytools

In that script by A.Evseeva, you can use the buttons witht the V, v, x to activate the timeline visibility of every layer with keyframes, every layer with keyframes after the frame 1, or no layer respectively. In my opinion this should totally be built in. That script tool is a little bit old and I have noticed some problems, but not with these timeline visibility features in particular (It has many other features).


tt1020 wrote: Wed May 01, 2024 6:17 am However even if I select all the bones and copy&paste / drag them around with a consolidated layer channels, something always seem to be left behind. I'm creating a cycled animation by copying the first frame to the last, but I'm struggling to achieve it.
This is probably because you are not freezing your bones and points correctly before copying the keyframes of a frame, so those keyframes don't contain all the needed information for that frame's pose to be achieved. Freezing bones or points makes keyframes for all the bones or points on all their channels, so you can be sure that copying those keyframes will actually copy the state of the layer's frame accurately and nothing is left behind.


tt1020 wrote: Wed May 01, 2024 6:17 am Also, I want to adjust timing by moving keyframes around, but it feels impossible right now.
To scale an animation (make it longer/slower or shorter/faster), you can select the keyframes of those frames and alt-drag them to the right or to the left. Now that you know how to enable the timeline visibility of multiple layers, you can do this with the keyframes of multiple layers at once.

There is a built in feature to nudge or push keyframes to the right or to the left, which buttons are on the top of the timelines panel. This feature acts on the visible keyframes, which means you have to make sure the timelines panel is showing the specific timelines you want to push. I would love if that feature could be used with a "apply to all child layers" option intead of the currect "apply to all visible keyframes" behaviour, but no.

You can also use A. Evseeva script to move keyframes arround, but it has failed me sometimes. There is also a popular nudge keyframes script with many features mantained by Lukas that I haven't tried yet: https://mohoscripts.com/script/LK_NudgeKeys


There is also a "copy deep frame" built in feature you can use. It looks like it can solve all your problems, because it's supposed to copy the frame of a layer and its children (so you don't need to use timeline visibility to also copy the children keyframes, and it copies the state of the frame even when there are no keyframes in it (so you don't need to freeze the bones and the points).

However it is a little bit treacherous because it copies the state of the frame for all the variables that have been keyframed at least once in the timeline. If these variables (the rotation of a specific bone, the position of a specific point...) have no keyframes in the timeline, then this feature won't copy their state and therefore you can see the "something is left behind" problem using it with frames that don't have all their variables keyframed with a "freeze bones/points".

I understand it works like that to avoid creating more keyframes than necessary for performance reasons, however I've been bitten by these "something is left behind" problems too many times so I value safety (to call it some way) over performance any time, and I would like to have a "copy full deep frame" feature that copies every variable. The easiest way to solve this, is to freeze bones and points at frame 1 for every layer you want to animate. Then, using copy deep frame will always copy the full state of the frame leaving no variables behind.

Re: Select ALL keys on a frame, including bones, layers, virtruvian bones)?

Posted: Wed May 01, 2024 12:23 pm
by Hoptoad
Daxel wrote: Wed May 01, 2024 10:52 am...The easiest way to solve this, is to freeze bones and points at frame 1 for every layer you want to animate. Then, using copy deep frame will always copy the full state of the frame leaving no variables behind.
Thanks for this excellent tip.