@velocireed Hey, thanks a lot for getting interested in such feature.
I think it’s a great Idea, but this would probably be considered a “plug-in” rather than “core” functionality since Pencil2D was meant for traditional hand-drawn animation. What does this mean practically? It would mean that The Pencil2D team would review the code, would help you understand the code if you need, would discuss it with you and help you achieve your goal, but would probably not merge it directly to the master branch, but rather work with you so that functionality can be kept as a pluggable add-on of sorts.
That said however having actual interpolation features for transformation changes like position, rotation, scale would be great to be honest as independent additions and I personally would at least consider it as important core functionality simply because it can help increase the workflow tremendously for hand-drawn animation which is also a Pencil2D objective.
Incidentally we do have “tweens” in Pencil2D, just look at the camera layer. When you animate it, it interpolates the combined motion for position, rotation and scale changes. So having that concept, even if similar, doesn’t really violate the tool rules by any means.
Regarding Lip-sync, that feels like a separate topic. Because if we consider speeding up cut-out workflows we would need a system like Toonboom Harmony’s “substitution drawing” where each “drawing” container can be re-linked through a relative address to a different “image” in a “library” folder.
If this was to happen, at the top of my head, we’d need a new, special drawing container. We could call it stack drawing or multi-drawing container, something like that, and it would help differentiate the normal drawing container which works like a single sheet of paper for normal drawings. Its main purpose would be to hold different drawings together, sequentially.
I personally would think about having “clips”, “symbols”, etc like flash, toonboom, moho in the sense of having a separate tangible timeline where you can prepare the multiple drawings.
In the past we have discussed having template files in pencil2D, so the multi-drawing import could even be another pencil2D file, like what toonboom does with their template files, which would be simpler.
So imagine, you draw your mouths on a single pclx called charName_mouth_template.pclx, on a bitmap layer named “mouths”. Then on a different Pencil2D file, you import that first PCLX as a read-only file and it would import a “multi-drawing keyframe container” with the label name “mouths” linking from the file.
With that container class type-thing we would also need a panel and probably a widget to switch between the internal frames on the local file (this would be an array / list that would have previously read the frames of the xml file and converted that to the list index, and you would be changing the index in the new PCLX file, not altering the xml).
The template idea could be considered a core feature, but I’m not sure about the multi-drawing component.
The “media” library is another, very different feature which has been proposed as well. This perhaps would be great to allow you to handle project folders for more professional artists. We have debated recently a potential consideration for project folder structures, and so far we’ve agreed that there needs to be a way for pro artists to share project files as well as a “collect assets” type of operator for more robust productions.
The media library only helps if A) your’re working on a big project B) you’re working with collaborators. I feel it would be good to have one, but it’s not essential, even though it could be considered a core feature.
The last part about the PNG thing I didn’t understood very well so I won’t comment on that. Sorry.
Lastly, I agree, everything is ambitious, that’s why you’d have to break it down a lot more. At first just implementing the template idea, or the “tweening” idea, would already be a challenging undertaking for a new developer coming to Pencil2D. But you have my blessing, we should dream big either way
If you need help please visit the DISCORD channel, or tag the other developers when discussing specific issues. Hopefully the other devs will gives us feedback as well.
- Transformation Motion Interpolation (tweens) [core]
- Multi-Drawing Container [discussion needed]
- Pencil2D File Template System [core]
- Media Library [discussion needed]