- Изменено
Smooth loop transition for mesh animation
Hello there!
I'm trying to do the following:
I have a looped mesh animation.
I want one bone image mesh animation to have a smooth 'blend in-blend' out transition between the beginning and end of the loop.
It is a liquid falling down.
So instead of the liquid suddenly appearing back at the top at the beginning of the loop on frame 1, I would like the liquid at the loop's end slowly to fade out while falling, while the liquid on the top slowly blends in while also falling (and being transformed by mesh).
I did not find a way to do it, because
A) when I copy the image with the mesh, the associated bones move the two images at once, so i cannot have one image animating the start fall while the other animates the end fall animation.
B) recreating the entire image with every mesh and bone and animation is extremely time consuming and I won't be able to recreate the exact mesh animation for both images, unless I enter every single transform/rotate/scaling value of 30 bones manually one by one (for 2 to 6 keyframes per bone), while hoping I do not mix two bones accidentally and make sure the start position of each bone is exactly the same. And this is way too difficult, given the fact that I only want a transition between the end and beginning of the loop.
Is there a wy to achieve this with Spine, that will not take me hours and hours of painful work?
It sounds like you can animate the water falling, then duplicate the bones and click Yes
to also duplicate the keys. Now you have two sets of bones, each with all the images and both sets are animating the same. Now you need to offset all the keys for one of the bones.
Normally offsetting is done for a looping animation, but the water falling fades out at the end, it doesn't loop. The offset tool requires the same keys at the start and end. You could copy keys from frame 0 to the frame after the water fades out, then you can use the offset tool and delete the extra keys afterward.
Otherwise you can offset manually. To do that, the keys for one set of bones: Изображение удалено из-за отсутствия поддержки HTTPS. | Показать
Go to the last frame and ctrl+shift+L to key everything that is visible: Изображение удалено из-за отсутствия поддержки HTTPS. | Показать
Copy the new keys you just created and paste them on frame 0: Изображение удалено из-за отсутствия поддержки HTTPS. | Показать
Now move all your keys after the original last frame of the animation to the beginning, so the last keys are just before the original start keys: Изображение удалено из-за отсутствия поддержки HTTPS. | Показать
You can set those last keys to stepped, so there's no transition between the last key and the first key. You can also hold shift
and move them very close to the original start keys.
Note I didn't have keys between the cut point and the last frame, but you'd move all keys after the original last frame to the beginning.
All that is roughly the same as what the offset tool is doing for you. You move your keys past the end of the animation, then you cut the animation and move the keys that are past the end back to the beginning.
Here's the ugly animation I made when making the above screenshots: Изображение удалено из-за отсутствия поддержки HTTPS. | Показать
It shows a bone and mesh whose keys were offset.
Hi Nate.
Thank you for the detailed description.
The automatic offset seems to me to work much faster, the trick with copying the first frame keyframes behind the last one works well.
So when I copy all 30 of my bones, they are not matched to any mesh/image. How do I recreate the same mesh image of the fluid with exactly the same weights for each of the respective bones?
Yeah, offset is easier, but needs the first/last keys to be the same. It's useful to understand what offset is doing for you, at any rate.
Duplicating a bone also duplicates all bones, slots, and attachments under it. Where are your meshes in the hierarchy? If they aren't under the bone you duplicate, it won't do what you want. Also, don't duplicate many bones, choose the highest bone in the hierarchy you want to duplicate and just duplicate that one.
Yes, I had kept the meshes outside the bone hierarchy. Placing them within the bone hierarchy did exactly what I wanted! So thank you!
I had attached some of the mesh vertices to the root bone, because I wanted those vertices to not move. In hindsight I should have attached them to the parent bone that contains all the bones of the liquid I was animating.
Is there a fast way to swap all the vertice attachments of the entire mesh from only one bone to another (especially from the root bone to another bone?) while transmitting the same attachment percentages for each vertice?
Glad that worked for you!
In 4.1 you can select 2 bones and swap weights. You can also click the colored box for bones in the weights view to lock their weights, then when you edit weights it will only change the weights for the unlocked bones.
I installed the new 4.1 beta, I tried the swapping button and it's exactly what I'm looking for!
The weight locking is a very epic and useful function! That's good to know.
Thank you