Adding a Cutout tool


(Morgan Reed) #1

I havent started development ‘quite’ yet, but I wanted to see if this feature would go against the original intentions of Pencil2D or if anyone thinks its a good ida.

The Cutout Tool
This tool would be similar to the ability to create graphics on Adobe Flash and Animate CC. HOWEVER, since I realize that this software is NOT meant to be the cheap version of Flash, there are a couple caveats to this feature. Firstly, this feature is not going to create “tweens” of any kind, it is simply to help animators create visual consistency when animating as well as making lip-syncing much easier. Maybe an additional “media” panel could help users organize their project’s music and cutouts. Next, the cutout tool would only be able to store graphics (until Pencil2D is updated for video editing maybe?) by ‘cutting’ out a selection from the PNG stored in the pclx file and can be accessed at any time and can be re-sized, rotated, and edited.

Just wanted to see if this would be a good addition to pencil before possibly developing sometime. These are pretty ambitious desires, and I have no idea if I’ll ever get around to putting something like this together, but I may try someday if it isn’t already implemented.


(Jose Moreno) #2

@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 :stuck_out_tongue:

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.

Summary

  1. Transformation Motion Interpolation (tweens) :ok::white_check_mark: [core]
  2. Multi-Drawing Container :speaking_head::thought_balloon::warning: [discussion needed]
  3. Pencil2D File Template System :ok::white_check_mark: [core]
  4. Media Library :speaking_head: :thought_balloon::warning: [discussion needed]

(Morgan Reed) #3

@JoseMoreno
Thanks for the feedback! I totally agreed with everything, and the whole PNG thing was just me noting on how I remembered that Pencil (I think used to, not sure if it does anymore) stored each frame as a PNG somewhere, and I would basically tell the software to copy a portion from that PNG and save it somewhere else, although there are probably more efficient methods out there.

Also, I really like how you mentioned a template file of sorts; that sounds like a really neat feature! But should we keep it in a separate PCLX file? That may result in users switching back and forth between the files in different windows, which can get annoying. Maybe if Pencil had a “tabbed” layout where you can have two documents open at the same time inside of the same window, but the active tab is the one you are currently working on? (Think: how tabs in a web browser work). Either way, I need to upgrade my hardware before I start to develop, but when that happens, I’ll be sure to ask LOTS of questions for other devs :smile:
In the meantime, my focus is more on getting a clear idea before working