Question about linking drawing substitutions

Hi, I’m putting together a peg-puppeted character in Harmony, and I was wondering if there was a way to make changing the drawing substitution of one drawing change the drawing substitution for the other, but still allow them to be separate drawings from each other.

The specific thing I’m working with currently is making it so when you change the mouth drawing, the chin drawing changes along with it.

We were hoping to keep them separate for a few reasons–namely so we could scale, morph and move each one on separate pegs if needed.

I also thought about sticking mouth and chin in a symbol, but I was hoping to set up a head turn with a morph on the chin, but not the mouth. Also, for the sake of ease of animation, I was hoping to keep all of the face in the same view so we don’t have to keep clicking inside and outside the symbol.

Thanks a ton for your help!

Not that I know of.

This is a feature found in celaction2D that can be set up in a hierarchical fashion and obviously simplifies and speeds up the animation process. I have requested this on a couple of occasions.

Please add this as a feature to harmony

On a slightly different issue I found some tricks that was a LOT easier than what’s in the manual. It might give you a good starting point. I was wanting to substitute drawings under a deform rig. The prescribed method is to name all the drawings as (filename) (+) (number in sequence). It’s a little tricky and if I renamed any drawing after I had already made a few, they vanished from the Xsheet.

I found that if I opened the deform module, then opened the sub-modules, there are a lot of different setting to choose from. I’m not in front of Harmony right now, but I made a single menu selection and NEVER had to bother with renaming any drawings.

Sometimes the network ports can also get a little funky. That can also be fixed by diving into the sub-module folders. I just had re-establish port order priority with a single menu selection.

So, it seems there is a lot that can be easily tweeked in the network modules that we just have to go out and discover. Maybe your answer is there.

Any follow-up to this question? This feature would make rigging in Harmony much easier.

Currently this isn’t possible, (v10.3.1)

you can only link drawing substitutions to the same element

What would be the best way to implement this feature?

a special linking port on modules?
a layer properties option?


I was glad to find the option that johnE_44697 describes in the “Deformation-Composite” layer properties:

“Output Kinematic Chain” = Select

Allows the same deform to be applied to all substitute drawings in a drawing layer

Whatever method, we would have to be able to toggle the connection on and off, in case we wanted to not have the drawing substitutions linked at certain times.

It seems like a module would work, even the color override, except that it would override the drawing substitution number based on the input from another drawing layer. Unfortunately, this also assumes a 1 to 1 between the drawing layers you’re linking.

That’s my two cents. I’m not exactly a Harmony guru.

You would probably want a hierarchy structure so substituting the parent, say a head shape from front to 3q would substitute it’s children, mouth, nose, eyes etc from front to 3q.
Also the children of the eyes and mouth, (iris, teeth etc) would take their substitution cue from their parent and so on…

But the child would not influence the parent, substituting a mouth would not change the head in this particular example.

Initially this could be implemented by adding a new property. In addition to layer properties you would have drawing properties. Here you could set a particular drawing (or group of drawings e.g. mouths views grouping mouth phonemes) to be a CHILD of another drawing (and as another property SIBLING of the first child, in the example of grouped 3q view mouth shapes to their default older brother), so one parent could have many children, and those children could have siblings, and also children leading back ultimately to one parent. The drawing substitution link would occur independently of layers.
Later on scripting and/or modules could be added to make visualisation and control of these properties easier

I think this would be easier than linking layers as a specific drawing subsitution would trigger another specific substitution or group of substitutions. In my example of the front to 3q head turn subsitution, the mouth would change to a default 3q view mouth, from which you could select your filtered 3q view sibling phonemes (over-rideable by toggle to allow access to ALL drawing substitutions on that layer)

Hope this family ramble makes some sense :slight_smile:

You can use the automatic lip assignments on chin drawings just as you can with lip drawings. So the concept here would be that for every mouth position there is a corresponding chin drawing. The association for the lips once the timing is done can be reassigned to the chin element. Either that or simply copy the timing (it helps if the cel labels for the chin element match those used by the lip element).

I was wondering is it possible in Toon Boom 8.1 to scale the entire timing pace of a scene of all the layers and cells and keyframes together in scale, and I mean in scale without having to reposition the keyframes individually which are tedious and hard to synchronize to the other layers in spaces.

you guys are slightly over-thinking this i feel to achieve the desired effect of a chin drawing matching a corresponding lip drawing. the only thing you have to have in place first before any animation is done is the mouth and chin drawings MUST have the same number/name (which should be done anyway). example: mouth layer “1” and chin layer “1” match and so forth.

its a simple as doing a first pass on your mouth layer and get your sync down with drawing substitutions. then its as easy as selecting those exposures in the timeline, copying, and then pasting them to the chin layer. the chin layer will now have all the matching movement in place, because what you are copying and pasting is the exposure information from layer to layer.

hope that helps.

I have used layers to solve this problem myself. So in “mouth_+chin” element, you draw the mouth pieces on the Line Art layer and draw the chin pieces on the Colour Art layer. You can then copy and paste the “mouth+_chin” element making sure that one copy has only the Line Art (mouth) layer exposed and the other copy only has the Colour Art (chin) layer exposed. This way you can attach separate pegs to each copy of the element so that it has unique location and transformation properties, yet, they will each change their drawing substitution whenever the other’s is changed.

But I am still curious if anyone does have a solution for linking drawing substitutions.

I am using high res bitmaps as textures for my characters and so I need to use a ‘proxy’ simplified vector version of the texture as a drawing substitution so that the scene does not slow down when it is being animated (deformers are also being applied to these textures).

Currently, for “Texture_1” there will be drawing substitutions “1_vector, 1_bitmap”. The animator uses “1_vector” to animate, but when they export, they need to switch all the textures (between 8 and 20 per character per scene) to “1_bitmap”. Is there a way to globally switch all element’s drawing substitutions to “1_bitmap”?

A pointer towards how to go about scripting a solution to this would also be helpful.