Jump to content

CHOP suey Soup!


tallkien

Recommended Posts

Hey Guys,

I seem to have bitten off more than I can chew as far as characters and Chops go, Could really use some help here.

I have a pretty straightforward simple character setup, reverse foot, Ik arms etc. I've done some animation about 200 frames and I want to sequence this with another clip i'm animating in another file.

The problem is the transform spaces of the control nulls are all out of whack, meaning if I fetch the translate channels in chops and apply a trasform chop and move say 5 units in x, One foot(mirrored) goes -ve x while the other goes +ve, the hand goals go in the +ve z direction and the ik twist effectors go in opposite directions too....aaargh!

Is there ANY way I can fix this without destroying the animation,( pre-transform, clean transform, any-transform)

I thought of trying to extract the rotations of the bones and applying this to a fresh rig that doesn't have ik but wanted to check first if this is possible and how i should go about doing it if at all its the last resort

Any and All help appreciated

Thanks

tallkien

Link to comment
Share on other sites

First of all, make sure you have backups of all your hip files. :)

For simple solutions, can you put them together in comp? Camera cuts are your friend. :)

I'm a bit confused as to why things are different though. Is your second hip file not done with the same rig? The thing to find out is how your rigs are different. Then there may be simpler solutions like inserting nulls in the right place so that the animation corresponds again.

If you really want to do it in chops, you could first extract out all the animation of each bone in world space by using an Object CHOP (use a default dummy null object as the reference). You will require an Object CHOP for each bone. Save this as a .clip (or .bclip) file. Load this up in a new file with a fresh rig that only has bones (make sure the names are the same). Disconnect *all* the bones with Keep Position When Parenting set to Never so that their parent space is the world. Now turn on your chop override.

Once you get this working, then do the same with your other hip file and bring it into this one as well.

Link to comment
Share on other sites

Its the same character, the rig is the same, i'm just animating different clips in seperate files just to keep things light and experiment with comping different clips. All the controls are in world space. I would think that if i applied a global transform in CHOPs (to control nulls on the same character in the same clip) everything would move in world space together...not happening, one null goes along x the other along z etc.

Does mirroring bones/nulls mirror their transform axes also? I remember having similar problems in Maya.

Do any of you guys actually use NLA in production with houdini? Any tips would be helpful

If I use the object Chop method you described, I'll only get position data of the bones, and if I disconnect them, i'll need rotations too, won't I? or do I simply parent them back without Keep Position. Guess what I'm asking in other words is how do you build a mocap rig?

I thought it would be easier with rotation channels of bones since I could grab the KinChops channels too and override the solver, what do you think?

Apart from all that, Is there any way to clean/reset these control transforms so they'll behave predictably the way they're supposed to, I don't mind shuffling channels around if need be, I think this whole problem might have something to do with parenting and unparenting, don't remember since I rigged it quite a while ago?

Thanks a lot for responding Edward

Link to comment
Share on other sites

Ok I did some checking and It looks like mirror is the culprit here. Anything you mirror has its transforms mirrored too. so as you increase values in the field your object goes in the opposite direction.

I find it very strange that no tutorial or video ever bothers to mention this, Ordinarily this is not much of a problem but... I WANT my CHOPS! ;):huh::lol:

Link to comment
Share on other sites

Ok, things I forgot to mention about the chops method:

- you need a set of object chops for the rotates as well. make sure you set the rotation order to XYZ

- after disconnecting your bones, you will also need to do an "reset pretransform" on each one. Basically all we want is a set of the same bones but without any transforms at all

- you also need to unlock all the translates on the bones so that chops can override it

- this method will allow the chops to move the bones all independent of each other

Secondly, I don't see how the mirroring (and its behaviour) have anything to do with trying to sequence in some different animation on the same rig. If you did your other animation using the same rig and that the left & right sides match, it makes no difference.

Others have also been able to use the chwrite/chread commands to transfer keyframe animation. See the usage of the .chn files.

Link to comment
Share on other sites

I've animated the character skippng down a path(+ve z direction), turning a corner and then climbing up a ramp in -ve x, the second clip is a walk cycle (also in +ve z) in another file, Which i should be able to move into position and rotate 90 deg. This would be no problem at all if the mirrored objects all follwed the three finger right hand rule( or is it left :) ), I checked his with a new rig on which I extracted and reset pre-transforms of the mirrored objects. The other way would be to parent all the control nulls to a master null which I could reposition, keeping all the effectors in object space

Anyway I will have a go at what you said, seems like a lot of work, hope I don't go crazy trying to sort this out :o

Thanks

Link to comment
Share on other sites

Ok, so the problem is that you want to take a walk cycle which was going in +Z direction and make the character use the animation in the -X direction instead. However, you can' just use a Transform CHOP to rotate them in -90 degrees in Y because the mirrored half responds to -90 degrees in the opposite direction.

Try this then. Make two chops, one that reads in the left controllers and the other that reads in the right controllers. Now apply opposite rotations in Y to them both using the Transform CHOP.

Link to comment
Share on other sites

It never occured to me that the mirrored half behaves in the opposite way, Its normally so easy to setup bones and start animating that I took that for granted.

I sort of got around the problem by parenting all the effectors and nulls to a master null and applying the transform to just that null, All the child nulls behave as long as i don't touch them. It only works if I overlap the sequences a bit for blending with the sequence chop. Your idea does sound good too. Thanks a lot Edward, You've been a big help

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...