Copy link to clipboard
Copied
Hey All!
I've spent the better part of a day trying to figure this out and am now reaching out for help.
I'm trying to parent my puppet tools to a null following a tutorial. I followed everything to a T (so I think!), and it's just not working. I've used the code:
n=thisComp.layer("null_layer_name")
nullpos=n.toComp(n.anchorPoint);
fromComp(nullpos);
I've attached a screen shot of my timeline -
Any ideas on how to go about correcting it so it works?
+1 to everything Rick said, but a quicker way to parent a Puppet Pin to a null, especially if you'll be doing this a lot, is to install DUIK tools, which is an amazing and free script for character animation. The Bones button will do exactly what you're looking for—you click on a layer, hit the Bones button, and little red nulls are automatically generated which control your puppet pins. Alternatively, you can click on a single Puppet Pin and hit the Bones button for just one null. This is using
...Copy link to clipboard
Copied
Cropped screenshots are not much good when diagnosing problems. What is the error message? What are you trying to do? What is going on with the L_Thigh layer?
I notice some parenting going on and assume that the "L_Thigh" layer is a null but don't know for sure. Because you have parenting going on you do need a to world or to comp method but that's how you set one up. It's also a little odd to have puppet pin set up on 3D layers or to drive puppet pins from 3D layers because Puppet Pin is strictly a 2D effect. You will also run into trouble if you animate a move on one of the parents because puppet pin's mesh is based on the first frame of the layer and you can't be moving layers around and expect the mesh to follow. You can move puppet pins by linking them to other layers or positions but you probably want to use a value+ statement in the expression to take the original position of the puppet pin and add the movement of the parented layer to it. Again, if I had any idea what you were trying to do it would help. Your layout looks a little odd.
A link to your tutorial would help. Did you vet the person giving the training? There are more ineffective and inefficient tutorials on YouTube now than there are ones from people that know what they are doing.
If all you want to do is copy the position of the L_Thigh layer to the Thigh deformer all you have to do is write:
toComp(thisComp.layer("L_Thigh").position)
A better way to do that may be to write:
toWorld(thisComp.layer("L_Thigh").anchorPoint)
This would prevent position changes if the source was not parented to another layer.
But then again I don't know what you are trying to accomplish so neither of these suggestions are probably not going to be of much help.
Copy link to clipboard
Copied
+1 to everything Rick said, but a quicker way to parent a Puppet Pin to a null, especially if you'll be doing this a lot, is to install DUIK tools, which is an amazing and free script for character animation. The Bones button will do exactly what you're looking for—you click on a layer, hit the Bones button, and little red nulls are automatically generated which control your puppet pins. Alternatively, you can click on a single Puppet Pin and hit the Bones button for just one null. This is using the same expressions you mentioned in your original post.
DUIK is an amazing and complex set of tools (and you should consider donating if you think it's been good to you), and it takes time to learn properly, but the Bones functionality is a simple, one-click solution.
Copy link to clipboard
Copied
Hey David,
I'm trying to solve this problem without Durik, it's a long story; but thank you for that suggestion! I'm only doing the legs and toe bend, a total of four points.
If I can't find a solution, I might end up moving forward with this.
Many thanks,
Emily
Copy link to clipboard
Copied
Sorry, here's a link to the tutorial I referred to above--
https://www.youtube.com/watch?v=bExXG3TODIk&t=437s
It kept auto changing it to th
Copy link to clipboard
Copied
Alright! I figured out a way to get Durik. Turned out it was simpler than I thought.
Thank you both again for your help!
Copy link to clipboard
Copied
No problem, glad you got it solved!
Copy link to clipboard
Copied
Thank you both, Rick and David, for responding!
I'm attempting to tell the puppet mesh to follow the null point to keep the leg from deforming in a strange way.
The example I followed was:
The tutorial was: AE puppet pins and null objects - YouTube
At about 6:00 you can see the issue I'm trying to avoid by adding expressions.
At about 7:17 you can see the order of operations that I followed. (Let me know if you see a step I'm missing! Maybe that's all it is.)
I looked at another, to see if there was something I was missing: Lesson 1/4 | How To Rig a 2D Character Puppet in Adobe After Effects | Animation Tutorial - YouTube
I also looked up some other help forums for this question, and the solutions that worked for others didn't work for me.
I'm assuming I'm missing some step along the way, but I keep going back and trying it again step by step with the same results.
To answer the question about my clicking the 3D boxes, for some reason I couldn't see the null boxes last night, unless individually selected, until I clicked on the 3D boxes. I wanted to be able to see them so I could place the pins on their anchor points. I was just clicking to see what worked - however, I must have just been tired and thought I saw something that wasn't there, because I can see them now with the 3D boxes clicked off.-- Thank you for bringing that up!
David, I'm trying to solve this problem without Durik, it's a long story; but thank you for that suggestion! I'm only doing the legs and toe bend, a total of four points.
At this point, I'm moving along with Robin Fuller's tutorial to see if there's another way for me to move forward.
Please let me know if you see a solution that I'm not seeing, or have any suggestions/critiques of anything you see in my image. It would be much appreciated!
Thank you,
Emily
Copy link to clipboard
Copied
Hi again Rick,
I left out a nugget of information in my previous response. I used both the codes you provided, and neither worked. Perhaps this is a key bit of info to the solution?