Unfortunately, there’s no direct way to access the positions of mask vertices for use in the puppet tool. I would imagine that it’s something that could be scripted, but I’m not sure if it’s been done.
The way I would recommend trying to do it is by tracking points along the border of the original logo. Track position only for each track and apply each tracker’s result to a new null. The more Nulls you track in the more accurate your end result should be. Next you’ll need to create the puppet pins on your new logo layer. Create as many puppet pins as you have nulls, each pin will be relocated to the location of one of the nulls so I think you’ll benefit from placing the pins in a rectangle as close to the nulls as possible. Now you need to go through each pin on the layer (press ‘u’ to reveal them, they each get a keyframe by default) and apply this expression to the position of the pin:
l = thisComp.layer("Upper Right");
fromCompToSurface(l.toComp(l.anchorPoint));
In this case “Upper Right” was the name of my null in the upper right corner of the original logo, and I applied this expression to the upper right pin in my rectangle of pins. The upper left expression (applied to the upper left pin’s position) might look like this:
l = thisComp.layer("Upper Left");
fromCompToSurface(l.toComp(l.anchorPoint));
It helps to name your Nulls appropriately =)
If there is a script out there to transform your auto-traced mask into tracker points, that would be even better!
Darby Edelen
Designer
Left Coast Digital
Santa Cruz, CA