matte -> puppet?
by Ian Tomey
on
Jan 31, 2008 at 4:36:35 pm
Hi all,
I want to replace the logo on somebody's jumper with a different one (luckily its in a different coloured square).
so I used the color matte tools and got a nice matte of the block. how do i then place the new logo on top? just using the matt to fall through to the previous layer doesn't look right. the shape itself bends a bit from a rectangle as it is being moved, so I can't just track the corners.
I made an auto trace of the alpha channel and now have a nice mask that matches the shape of where i want to put things. is it possible to drop that into the puppet tool so it follows the shape? if it is I don't know how to do it yet!
Re: matte -> puppet? by Darby Edelen on Jan 31, 2008 at 7:05:05 pm
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