Copy link to clipboard
Copied
I'm trying to animate a character which mostly works perfectly using puppet pins, except: I have a seperate layer for the character's face, which I'd like to parent to the character at a particular arbitrary point so that its position moves around with the body as it's deformed by the puppet pins. I can use an expression to stick it to a pin, which works fine as long as there's a pin at that location, but the problem is that the specific position I want to put the face isn't near an existing pin, and adding a pin in that position adds a new joint, and so totally ruins the existing animation.
Is there any way I can set a layer's position to stick to a particular point on a puppet pinned layer and follow it as it deforms? Or maybe create an "ambient" pin it can inherit its position from, but which doesn't interfere with the rest of the animation?
I've no idea if this is possible, but it'd really help me out if it is.
Copy link to clipboard
Copied
Puppet pins have position properties that are visible in the Timeline if you just press the U key. All you have to do to make another layer or a null follow the puppet pin is to link that layer's position property to the position property of the pin you want to follow. This is easy to do by simply enabling expressions by Alt/Option-clicking on the layer or nulls position property and then using the pickwhip to point to the puppet pin's position property.
For example, this expression applied to a Null layer's position property attaches Null 1 to puppet pin 2 on Shape Layer 1.
thisComp.layer("Shape Layer 1").effect("Puppet").arap.mesh("Mesh 1").deform("Puppet Pin 2").position
Copy link to clipboard
Copied
Hi! Thanks for replying.
This is great for when the point I'm tracking matches up perfectly with a pin, but my specific issue is that I'm trying to track an arbitrary point that isn't near an existing pin.
I can add a new pin to that point, but then it messes up the existing rig and gives me a new point I have to hand animate, which sort of defeats the purpose.
So I'm looking for a way to track a layer to a specific arbitrary point on the mesh as it distorts, if that's possible.
Thanks!
Copy link to clipboard
Copied
Pre-compose then motion track using Mocha or Motion tracking to track a specific spot on the surface. This will only work if the surface has sufficient detail.
The other option is to attach a null to one of the pins and then parent a second null to the first one and just drag it into position. You could even attach nulls to more than one pin and then average the distance between them.
If you want an efficient solution you need to post a screenshot of the comp with the modified properties of the layer with Puppet Pin applied, the mesh and the pins visible and a detailed description of exactly what you want to do.
Copy link to clipboard
Copied
Find more inspiration, events, and resources on the new Adobe Community
Explore Now