![]() Registered Member ![]()
|
Hey. I'm currently doing assets for a game, and I'm trying to get a short, looping animation that's 4 or 5 frames long. Until now, I've been manually animating each asset (like, say, blinking) by more or less assuming I'm doing it right. But now, I'd like to try animating to see if the animation actually looks right live.
However, I spent some hours trying to figure out how to make, like in Photoshop or Unity, a short animation where each frame is a different Layer, to no avail. Tops, I kind-of added all the layers to the animation, but I couldn't find an option to add new keyframes. Most "Krita Animation" tutorials I've found work on the assumption that it's all in a single layer, and that's very destructive for my workflow. Other online tutorials don't cover this. Is there any way to make a short animation where each Frame is a different layer (and thus, that every layer but one is hidden per keyframe)? Thanks a lot in advance! |
![]() KDE Developer ![]()
|
Krita has its own animation system that is more flexible than animating with layers and as far as I know, we don't have plans to make animation with layers the way Photoshop does possible. Before the animation system was implemented, there were animators consulted and the current system is what was decided on. There is however a Python plugin that allows for animation with layers: https://github.com/thomaslynge/krita-plugins . Note that if you're using this system, you can't use Krita's own animation features like onion skin, render animation etc.
I would personally advise against using it, however, and learn the system implemented in Krita itself. it's far more superior, separation between frames and layers makes it more flexible (you can animate three characters' walking cycle at once, for example) etc. You said that working on a single layer is destructive to your workflow. Can you please tell us more about it? What is your workflow? Did we miss something when deciding on the animation system, or maybe there is something we can do to make your workflow easier integrated with Krita? |
![]() Registered Member ![]()
|
Thanks for the reply!
Let's see... I currently create sprite sheets. Say, an object is 50x50 pixels, in a 4-column grid. That's a 200x50 pixels file. My workflow is like this: - I create the main object. - I lower its opacity, then create an edit in a different layer. Then do the same to try to animate the object. - When they're all done, I move each, that are on a different layer, 50 pixels to the right from the latest layer, until they all occupy the place. I need to have them each on their layer to move them around in case we change something in Unity. I can usually merge pixel art into one layer per piece (they can be easily separated and recolored if necessary later on), but when working with drawings on non-pixel games, rather than "one layer per frame", I have "one group per frame", to recolor and tweak as necessary. In the current animation system, I couldn't find a way to either merge the different layers into the same timeline or "animate" them separately. The only real reason I want the animation is to preview the frames, see if the animation is fluid, and then put them on the grid, each on their own cell. |
![]() Registered Member ![]()
|
Is the 200 x 50 pixel ( 4 cells wide) layer a requirement to meet the Unity (of which I know nothing) animation resource input requirement?
If you're having to produce this layer/grid/cell based output then it's not too difficult to do it in krita for a few frames of animation, certainly not for only four or five frames. First, you'd create a 50 x 50 new document and then make a single layer animation of 4 frames (or however many) using the standard animation tools, which are very good. When that was finished to your satisfaction, you'd need to convert all the frames to individual image layers. To do that, you'd make three copies of the original animated layer, giving a total of four identical aminated 4-frame layers. Then you'd select each frame in turn in the timeline and Flatten one of the layers to pump that frame out to a non animated layer. After that you'd have four individual 50 x 50 layers containing four individual frames. Then you'd create a new 200 x 50 pixel document and copy/paste and move each frame-image layer to the 200 x 50 document layer at the appropriate offset in the layer. |
![]() Registered Member ![]()
|
Thanks for the insight, ahabgreybeard! I kinda got what I wanted to try now.
The pixel-size of the grid is not a big requirement, but it helps to standarize certain objects, and to have the program split them up nicely instead of having to upload a bunch of separate files. I already had the sheet done, so I went with the idea of having everything in a single layer, and then I somehow managed to add a copied keyframe. Long story short, I got to animate it to see more or less how I want it to go. In the future, working from scratch, this method should work. I'm still very confused at some aspects of it since programs like Unity can have multiple grouped objects in the same timeline, but for the purposes of hand drawn/pixelated animation, it'll do wonders. Thanks a lot, and thanks to tymond too! |
![]() Registered Member ![]()
|
In krita, you can have multiple layers in the timeline and layers can be grouped in the layers docker and turned on/off as needed. I think krita can do everything you need and more so it's just a question of PLAYING with it to see what it can do
![]() |
![]() KDE Developer ![]()
|
Thanks Moski for explaining your workflow. I worked with Unity a bit - this is what I've made with both Krita and Unity: https://www.deviantart.com/tiarevlyn/ar ... -786787983
I have a different workflow. I can understand that you want to stick to what you know, but I hope you'll see some significant improvements that the workflow I use would bring you. First I use Krita's animation system for animating. I can have one layer for sketch, one for lineart, one for colors, one for, I don't know, highlights (in reality, I only used several sketching layers for now - didn't color anything, but you get the point). Layers I am working on right I add to Timeline using right-click "Show in Timeline" (I think it will be on by default in future releases). Of course groups etc. works too, just like usual. You can add as many layers to the Timeline as you wish. Instead of lowering an opacity of one layer to work on another using the previous one as a guide, I use onion skins. In Onion Skin docker you can see what my options are. (Turn on onion skin on mostly-transparent animated layer using the light bulb). Instead of making my spritesheets by hand, I use nolanfa's script: https://github.com/Falano/kritaSpritesheetManager - there is a huge amount of options so I hope it will fulfill your needs. When I want to change something on my animation, first of all I still have my layers so I can change coloring without ruining my lineart etc., but second of all I don't touch spritesheet, I just change it in .kra file and then export the spritesheet again. If I want to make the animation for example longer, I can just move stuff around on the Timeline, no need to manually manage the spritesheet. If I have spritesheet and want to make it into an animation in Krita (I lost my .kra file or there was no .kra file yet, for example the first version was with Photoshop etc.), there is an option "Image Split" which exports all frames as images into a folder, then I just need to use "Import animation frames" and I have an animation again. I hope it helps you. |
![]() Registered Member ![]()
|
Tymond, that actually was a massive help. Like, because I already had the things, it was difficult to adapt to it, but now that I installed the plugin and I'm finally getting the hang on how to animate, doing things from scratch is actually going to go a lot more smooth now. Thanks!
|
Registered users: Bing [Bot], Google [Bot]