Moving CC character with asset = drifting in asset

I just found out this:

That forced me to import my CC female character to my master USD scene with the phone in her hand as one orginal USD.

That is just fine, and all works ok - until I make a time stamp transition animation to this character. Her phone drifts off from the hand:

I need to transfer her, since in the second shot of my animation the background is so much better in composition-wise from this slightly different angle…

What can I do here ( else than create a unique cc import of this female for each camera angle ) maybe instancing it?

I’m not sure I’m understanding exactly the issue here, so let me explain how I would handle placing something in the hand of a character.

  1. Create a Xform, position it close to the hand bone, and constrain it to the bone.
  2. Parent the mesh you wish to place to the Xform. This allows you to position it as desired, and even to animate it.

Yes, this is exactly what I have done, Dane has thought me the very same method.

Now imagine you place this soldier character to a house like mine in the video. I call this “master USD”.
You could then try to replicate the error I get in that video…

Let me see if I have your steps correct.

  1. You have a stage with an animated character and a phone parented to a transform, and the transform is then constrained to the hand bone. This works fine alone.
  2. You then add the character/phone stage to your house stage and the transform no longer follows the constraint.

Is this correct?

Also, this issue may involve parenting. If you animate an item that’s parented to another item, it will inherit the parent item’s motion. Try setting up your character/phone stage like this, with both the character and the constraint transform under the same root.

Sorry, I do not understand how you can have the XformConstraint moved like you have it here, if this is the “master USD” scene. Can you make a video for me how you made that structure.

I basically understand now what you mean by inherit the parent item’s motion.

The key is to set up your phone/constraint like this in your character/phone scene. Then it will not move relative to the constraint unless you move it. Having set it up like this I can move my character anywhere and the phone will stay connected to the hand constraint.

Thanks TManVFX!

I did it that way:

To break it down to steps:

  1. make Xform called “PhoneConstraint_Transform”
    position that near to the bone.

  2. Use Animation/Constraits/Transform Constraints
    for the bone and the “PhoneConstraint_Transform”.

  3. In Stage, rearrange the Phone Xform under the “PhoneConstraint_Transform”.

  4. refine the phone position.

Looks good:

But unfortunately in “master USD” scene ( this is just a test, no environment ) the drifting still occurs:

I have checked 3 times that I made it just like you show in your video. Cannot understand what I have done wrong :P

Ah, I finally see what you’re doing!

Remember my comment above about issues encountered when animating something that is parented to something else? Well, when you pull a stage into another stage, everything in the original stage is parented to the “default prim.” The phone is in the parenting hierarchy of the default prim, and yet it’s trying to set its position based on its relationship with the constraint transform, which is matching the bone. What is happening, in effect, is that the phone is adding the transform of “Female_lowboly_MobileStanding_realtime” to the bone transform, and the bone transform already has that transform in it. You are, in effect, doubling the size of the transform.

Do it this way instead: select the transform of your character (which I believe, based on the image above, is called “ManRoot”)and keyframe that in the time sample editor.

In this video I’ve added the stage I made in the video above to a new stage. As you can see I’m animating the character’s root transform, not the stage reference transform, and the phone follows the constraint even with a one-frame move.

Jihaa! Thats it :)
Animating the “ManRoot” with TimeSampleEditor was the solution.
No drifting anymore. Thanks TManVFX.