Hello! So, I'm having an issue with setting up magnets and swap sets. I'm trying to follow the magnet youtube tutorial, and things should be simple enough, but I'm not getting magnets to work as I'd want to...
I'm trying to have a magnetic thing (a hand, a tentacle, a magnet) that would be tagged magnet (and continuosly "on"), and then multiple objects with swap sets for turning their magnet property on / off. The idea to be able to pick up different things at will. So essentially the tutorials' second part, only in reverse.
For some reason, the swap set is working, but the magnet property seems to not be working. Here's a bunch of screens to show the setup:
Main rig structure. With this setup (the "wink on" & "wink off" being non-independent) the magnet works regardless of the state of the swap set, and the wink group obeys physics. With "wink off" set independent it's the same. With "wink on" set independent, the physics work but the magnet doesn't, regardless of the swap set state. With both "wink off" and "wink on" set independent, neither the physics or the magnet work, regardless of the swap set.
Magnet parent properties:
Magnet child properties:
Wink parent properties:
Wink off child properties:
Wink on child properties:
Can someone make out what I'm doing wrong here? Also, still a bit confused on the parent-child / "independent layers" relations on things...
Thanks for any help!
I am not a magnet expert, but here is my general understanding- you mention parent-child and independence at the end, so I will start from basics.
- The layer hierarchy of artwork is used to drop artwork onto a mesh.
- A mesh is a series of triangles that are stretched individually to warp the artwork.
- Looking at layers in rigging, things higher of page appear in front of things lower in page, but by default sit on same mesh.
- Triggers make something visible/not visible, but they are on the same mesh still
- A swap set chooses between triggers (turning one on turns others in swap set off)
- The mesh outline includes non-visible trigger content.
- The mesh outline gives up (turns into bounding box) if contents of a mesh do not overlap somewhere.
- Draggers distort the mesh. All layers in a mesh get distorted consistently.
- Independence crown creates a new child mesh - the new child mesh and parent mesh do not influence each other with distortion.
- Magnets are a parent/child relationship. Children have exactly one parent (shared puppets still confuse me!)
Okay, this is where I get less certain
- Triggers can also turn off parent magnet.
- The parent controls the child with magnets
- Children can only be controlled by one thing (Eg physics OR magnet OR dragger)
- So I am not surprised triggers hiding things in child has no effect but in parent does.
- Magnets only make sense working on and independent mesh child
I am not at a computer, but I think magnets only impact children, and children have one controllling parent. This puts restrictions on combinations of physics and magnets and draggers etc that can work together.
One approach is to have parent swap set with same artwork but where one is for physics, one is for magnets, etc. So they look the same, but behave differently. I think you need to swap the controlling parent, not the controlled child, to change the behavior in effect
That is my educated guess anyway! Hopefully it stimulates some ideas of what to try next!
Thanks for the reply! That's food for thought for sure! I was thinking whether the parent / child control chain can only be driven by one behaviour, but then it doesn't explain why physics & magnet works when the child-winks are "non-crowned", but the swap doesn't impact the magnet behaviour?
I'd def would like to see some deeper documentation on these, this entry
Adobe Character Animator Help | Control puppets using behaviors
is slightly skin deep for troubleshooting
I'll post findings if I can get some reason into this.
So, after starting from scratch and doing a version just like the tutorial video, and a version on how I'd need it to work, here's my conclusion:
The swapset switching of the magnet property works because the "magnetron" and "magnetron_on" layers are independent.
Yields the same behaviour (draggable magnetron, wink controlled by physics) BUT the magnetic property in the swap set ("wink_on") is over-ridden as just being always on. If I turn the "wink" and "wink_on" layers to independent, then neither the physics or the magnet work.
Now that I'm thinking about this behaviour, it seems like (even though the visibility / hiding functionality works regardless layer indpendence), the magnetic property is visible to the whole hierarchy level, unless "walled off" by making the children ("wink" and "wink_on") independent. Which does make sense, I guess. Though even if I ignore the physics behaviour, and make the "wink" and "wink_on" independent, the magnetic property still won't work. But I actually can't, because the parent ("wink_null") needs to be set to dynamic for magnetics to work... It's so close to how I'd need it but it seems that I'm fighting CA's internal logic and it won't work Also, trying to go deeper into a workaround for having 2 independent but identical "entities" with swap sets is currently beyond me
For my use case, it would be great if the magnetic property could just be triggered separately, so it could reside where ever in an independent hierarchy and only influence the given level (and children) of the hierarchy. Because in the above second set the "wink_null" is controlled both by physics and the draggable magnet, the "wink_null" can't just be turned on / off.
Even if not a trigger, don’t forget you can record different property values in a take (and maybe use a replay) so you can adjust things like magnet strength that way instead of with a trigger.