Question Moving person nodes along alternative axis

fishcakes

Active member
Messages
94
Reactions
152
Points
33
Hi All. I sometimes run into issues where I want to move a node along a non-local axis. For example, a hand moving along a pole. The hand might be perfectly posed, but its axis is not aligned to the pole - so moving it along the pole can prove tricky. I know I can create a parent empty atom which is aligned to the pole and move that instead. but I'm using AcidBubbles excellent timeline plugin, which means the empty parent wont be in the same animation group as the person, making things a bit difficult.

So, long and short, is it possible to move a node along an alternative axis? eg Use the parent axis instead of its own? Or re-align the nodes axis without moving the underlying mesh?

Hope this makes sense?

thanks
 
@fishcakes in Timeline 3 (coming soon) you'll be able to parent the hand to another atom, so all animations you make on the hand will always be in relation to the atom. The only thing is that (at least right now) the "Move" tab is not detected by timeline, so you'd need to move and manually keyframe. But it should work! Let me know if that doesn't make sense, I'm doing my best to release but it's not going to be for at least a few days more.
 
Upvote 0
Hey @AcidBubbles
thanks for the response. So, I would be able to animate a hand by moving its parent atom, and this will get captured by your plugin? Thats essentially what im after, as I can orientate the parent the way I want it - before linking - and use that to animate the hand.
 
Last edited:
Upvote 0
Hello again @Acid Bubbles
I've been playing around with the new timeline. So many improvements! Good work.

However, regards the question in this thread - I'm still not sure its working as I had hoped. Maybe I'm misunderstanding. What I was hoping for was the ability to parent a node to an empty atom - and then use that empty atom to move the node and for timeline to capture the position/rotation of the node.

So, in my hand along a pole example, I wanted to align an empty atom to the pole. Then make that empty atom parent to a hand - so moving the empty atom would move the hand. Then - I was hoping - I would be able to take a keyframe of the hand at the top of the pole, and then 2s later move the empty atom to the bottom of the pole - and capture another hand keyframe. But this doesn't seem to work. Is my expectation wrong?

In a perfect world, it would be awesome if we could include other atoms in a persons animation. So I would take keyframes of the parent directly.
 
Upvote 0
To make this work, parent link the hand to the empty atom that is aligned the way you want. Then move the empty atom along the axis you want. It will move the hand control which in turn pulls the hand physics node. This should be able to recorded by Timeline or the built-in motion animation capture system without issue. The empty atom movement does not have to be captured because the hand control is also moving in this parent link setup.
 
Upvote 0
You expectation sounds right, however Timeline will only allow animating nodes owned by the atom. So if you want to animate an empty atom, you need to have Timeline on that empty atom and animate it (so you can animate the hand relative to the empty, and animate the empty however you want). Can you clarify what you are doing, what's the result and what you are expecting more precisely?
 
Upvote 0
But the hand control is parent linked to the empty atom, so wouldn't timeline be able to track the movement? Then once done animating, the hand could be set to "On" instead of "Parent Link".
 
Upvote 0
The way Timeline works for parenting is by storing a series of local transforms (position vector and rotation quaternion), which are applied at runtime. So pretty much the same as normal parenting, except that it supports weighting and blending, so it's lerping between the current world transform and the desired world position converted to local space. Also the only tracking that Timeline does is when a keyframe is created, and this is also the local transform in relation to it's parent, regardless of the controller mode. There's no "mocap", I rely on Virt-A-Mate's mocap to do the recording and it's then "imported" and simplified.

So both the hand and the empty could have animations, and the hand will always be animated relative to the empty.
 
Upvote 0
"Parent Link" is a bit of a misnomer. The control actually just follows a transform, but actual transform parenting is not changed. So it should still be able to capture the correct local space position/rotation.
 
Upvote 0
You expectation sounds right, however Timeline will only allow animating nodes owned by the atom. So if you want to animate an empty atom, you need to have Timeline on that empty atom and animate it (so you can animate the hand relative to the empty, and animate the empty however you want). Can you clarify what you are doing, what's the result and what you are expecting more precisely?

To go back to the original thread title - what is ultimately required is the ability to be ability to re-orientate a nodes axis without moving the geometry. This is currently not possible - so the next closest thing is to create an empty atom with the required axis and make it the parent of the node. But of course, timeline wont pick up the animation.

I feel like this is something that could be very helpful, especially when animating hands. Often, I can get a hand into a perfect pose, but if I want to move/animate in a straight line ( along a pole for example ) this can prove very difficult as the axis along the poles length will almost certainly not be aligned to any of the hands 3 axis. Hence parenting it to another atom that is aligned with the pole is the only way.

Feet are another good example. Sometimes the foot might be on tip-toes, and angled - but we might want to move/animate it along the floor. Again, if none of the foots 3 axis are aligned with the floor, this becomes really difficult.

Interestingly, the grab point force works perfectly when attached to a persons node, but the node has to be off for it to work properly. eg the node moves with the grab point. But timeline requires a node to be on, and grab point only moves the geometry on an on node, but not the node itself which stays in its original position.

Hope the above makes sense?
 
Upvote 0
Since 3.0.4, it's possible to reorient (realign or change pivot) a controller (https://github.com/acidbubbles/vam-timeline/wiki/Bulk-screen#offset-controllers, https://www.patreon.com/posts/39351929, early access for now). But when you say "realign" I guess you mean change the "red-green-blue translation arrows" alignement? That would be more of a VaM feature really, but I'm not sure I see the problem you're trying to solve.

If I wanted to move a hand from one end to the other of a pole, I would do two keyframes, one at one end, and one at the other end, and that would be it. Every point in between will be interpolated. I'm not sure either with the "won't pickup the animation", are you talking about the ability to record?

Do you have a way to make a video maybe showing what the problem is? I feel this may help us a lot understand exactly what you want.
 
Upvote 0
Ok - so lets look at the example you outlined. In theory, it sounds pretty simple - I can position the hand at one end of the pole and then move it to the other end and capture another keyframe. But in practice, it's not that simple. The hand may be grasping the pole, and its axis won't be aligned to the pole. So moving it to the other end becomes a long-winded process of moving it towards the destination and having to make adjustments to get it in the right position again so its in line - not to mention getting the grasp morph to be around the pole again, as the process of moving it will have taken it off the pole.

Now consider the above if it was possible to move the hand along the poles axis. This can be done by creating an empty atom which is aligned with the pole - for example, if the empty atoms X axis was perfectly perpendicular to the pole. And then parenting the hand to this empty atom. Now it becomes a very simple case of moving the empty atom along its X axis and it will move the hand perfectly along the pole with no need for tweaking positions and morphs.

In my 3D animation days - using 3DSMAX - this was a very commonly used feature. The ability to move an object along another objects axis was a huge time saver.

Now, having said all of this, I appreciate that it simply might not be possible. For timeline to be able to do it, we would need to be able to include an external nodes controller - eg a node thats not part of the person. Otherwise, we need to animate that node separately from the person which gets messy, trying to juggle multiple separate animation patterns.

So, to wrap this up, the ultimate question - as far as Timeline - goes: Would it be possible to add new nodes to a person, which can be animated along with the others in a single animation pattern? Or is this a constraint of VaM and out of your hands?
 
Upvote 0
Got it, so I imagine that for this use case with the pole, you would have the pole straight, add the empty gameobject, then parent that gameobject to the pole, rotate the pole (so the empty is now aligned), place the hand where you want it, parent the hand to the empty, and then animate the empty. Does that sound right?

So then it's not really about Timeline, but really VaM. Like you said I cannot add controllers to an atom, and while it's possible in theory to include external atoms in an animation, the "sandbox" in which Timeline runs makes it hard to interact with other atoms without making it way too complicated.

I think (if I got this right) that the feature you would like would be to "align transform handles with", and specify a target atom (or use world space). I understand what you mean, but I don't think I could do that in a plugin (well everything is possible but it's very complex versus doing a built-in implementation)

Note that if you parent just for the purpose of moving something, Timeline will record the position relative to the parent. In VaM 1.20 I should be able to automatically offset the animations so you can parent/unparent without affecting the animation.
 
Upvote 0
Yes. At the highest level, the perfect scenario would be - as you suggested - the ability to ' align transform handles with...'. But I assumed that would be difficult.

Interesting that 1.2 works somewhat differently regards being able to parent link a node and then un-parent it again. That might help.

As I mentioned earlier, its a shame the GrabPoint force doesn't move an 'on' node. If it did, that would be the perfect solution, as the node can remain 'on' - meaning timeline could record the keyframes. If @meshedvr is reading this, maybe he can elaborate as to why this isn't the case?

Thanks
 
Upvote 0
Back
Top Bottom