10.5, FBX and Retarget ---Sigh


#3

Retarget definatley is a huge step backwards from the great .fbx merging tools 9.6 had.
I get the feeling that MAXON employees don’t really use, or understand Motion Builder.

I don’t think the retarget tag can handle a single parent type hierarchy.
The kind of parent->child heirarchy a typical IK rig with controllers uses.
You have to use separate joint chains for it to work:

LeftArmRootNull->LeftUpArmJoint ->LeftArmJoint->LeftHandJoint
RightArmRootNull->RightUpArmJoint ->RightArmJoint->RightHandJoint
SpineRootNull->hips->SpineJoint->Spine1Joint->Spine2Joint->NeckJoint->HeadJoint
LeftLegRootNull->LeftUpLegJoint->LeftLegJoint->LeftFootJoint->LeftToeBaseJoint
RightLegRootNull->RightUpLegJoint->RightLegJoint->RightFootJoint->RightToeBaseJoint

Export from C4D as .fbx and characterize in MB.
Then plot and export an .fbx animation with from MB. And merge it into the above rig.
C4D puts the animated bones from MB inside each joint chain.

Then place a retarget tag on each of the C4D joint chain root nulls.
The source will be the top most bone merged into each joint chain from MB.
The target will be the root null in that particular joint chain.

It works. But it’s not pretty.
It definately needs to be updated.


#4

After taking a few days off I found a workable solution-- Actually after reading the above post “Maxon guys don`t know how MB works”-- well-- why not let MB handle the motion transfer?

So easy, I wonder why I did not see it–

1- export your multipart C4D joint model as FBX for animation— “Character_JointsAnimateInMB” this one will open in MB , characterize with all parts and can be used to animate in MB,looking and deforming like your c4d model

2-create a stripped down Motion-conversion version from the joints-model (in my case, a version with only the basic body mesh, unimportant how it looks) where you make the joints direkt child of the single mesh-- convert joints to bones, delete skin tag and skin deformer-- export this as “Character_C4DBones”-- import in Mb and characterize.Sole purpose is the motion transfer.

3- when satisfied with your animation of “Character_JointsAnimateInMB” in MB, bake the motion and simply transfer it to the “Character_C4DBones” (Since it is identical in bones, one can do it in MB as ClipMotion in MB timeline (“insert animation file” in character animation track, or one can do an Actor setup in MB advanced, if wanted), then bake the motion to “Character_C4DBones”

4- import “Character_C4DBones” in c4d and Retarget in C4D to apply motion to your original Joint character with all its advanced jiggle and whatever setup. All is well.

It adds one more step to the pipeline, but that is not remotely as annoying as to create a new weighting in bones for animation in MB–

Still wonder why it took me so long to come up with this…
:scream:


#5

What purpose does it serve to animate a version made with joints and then convert to a Bones version?
If you’re going to convert a version to Bones in C4D. Why not just skip the Joints version entirely. And animate the Bones version in MB. Then export that to C4D?

The method I posted doesn’t need Joint to be converted to Bones.


#6

Hey guys,

I recall following the MB issue some time back. Are you all using the latest version, 7.5?

Thanks.

Richard


#7

Here’s a method using bones where you don’t have to retarget, but can still import MB animation and merge it into a c4d file for those of you who don’t know it yet…

Rig one half of character with bone tool following MB naming convention, while leaving out right or left shoulders and legs. Then mirror the apendages with bone mirror. Weight with claude bonet.

Apply all shaders/materials. Go into import/export settings for .fbx and uncheck “export materials”. Export character into MB.

Apply animation and plot to skeleton. Remove all characters and control rigs, leaving only the original skeleton. Save as different file.

Back in c4d open the orinal c4d file and set .fbx import for “smart merge”. I usually leave out create rest pose for broken…blah…blah…blah.

“Merge” plotted MB file into original c4d file and the older c4d file will merge the bone animation and weighting of the .fbx file.

No need to retarget.

Oh almost forgot the most important thing. Remember to leave the “Reference” null out of any hiearchies. This means any hypernurbs also, until AFTER merging files. Then “Reference” can be put into a Hypernurbs. Keep “Reference” the same name in both MB and c4d. When merging because both files are named reference and all child objects are the same name, c4d merges everything into one Reference null.

I discovered this by accident. :slight_smile: Hope this is helpful.

I’m using this method in the Strange Behaviour contest and its working excellent. We have some Maya guys so needed a way they could help out with animation and i can import back into c4d.

Next secret…Using 3d tracking from pfhoe to drive facial animation. Stay tuned… :slight_smile:


#8

Nice tricks guys.
But I’m not resorting to using bones just to use MB. That’s not a solution for me.

When using the .FBX exporter in C4D with Joints. It spins the rotation axis of the top bone which is usually the hip bone. And it also re-arranges the Joint tree into separate branches.
That’s what breaks the connection when going back and forth between MB and C4D.
The .FBX exporter doesn’t do this with the bones.
It needs to be fixed.

The work around for using Joints is to create the type of Joint tree I posted earlier.
But this is something that MAXON should be able to fix fairly easily.
I’m hoping somday they’ll spend some time on it.


#9

I agree that it is a shame it is not fixed.

On the other hand I can contnue work with MB that way.

The reason why not to continue to use bones?
Because they suck.
(Because joints are faster and offer a lot of advanced possibilities and are much better to skin)


#10

The trick is to not retarget from the screwed up bone hierarchy that is sent back to Cinema rather the null hierarchy that is still the same as your origianlly exported joints.

If you look above the split bone hierachy you’ll see a null ‘Skeleton+name of your root’ this is really your original joints and it has all of the animaition on it just like the screwed up bones. So if you retarget from this it will work without a hitch.

My biggest problem with retarageting was buying into the manual where it is slightly misleading when it says somethign to the effect of “you can retarget animation from one character to a completely different character” which isn’t true. I didn’t realize when first retargeting that the retarget tag retargets position as well as rotation data… which means if your retargeting to a different skeleton it’s going to wad up becasse it retargets the joints position in the hierarchy too, which is going to be different in a different character (unless it’s simply scaled)

Have fun.

Sam


#11

^ Are you converting the Joints to to bones first before exporting to MB using this method?


#12

Nope, no converting of any kind Scott.


#13

-Are you using MB 7.0 or MB 7.5?
-In C4D Are you using the .FBX exporter or the .FBX5.0 exporter?

-Are your Joint chains in C4D branching off of the “Hips” Joint? Or are your Joint chains broken up into their own sections and placed under a Null like I posted earlier?

Sorry for all of the questions.
But I need it to figure out what’s going on.


#14

I am using MB 7 and I cannot find this Null hierarchy-- there is a Null-group that is of the control-objects (obviously not suitet for motion-transfer), but no other one.

Is it something to be activated in MB on export, or maybe a MB 7.5 feature?

Anyway, for the time being I can live with my 2 skeleton solution.

Olli


#15

hey there

make sure you have unchecked ’ remove dummy skeleton nodes ’ this brings in a useable heirachy that you can retarget from. found above your useless split bones mess

it should be pointed out that it is a fluke that this exists and maxon really should have fixed it by now i reckon - they have had more than enough time as its been like this since the 10.0 upgrade ( or 9.6 ? ) also i have noticed that on occasion the nulls are not a 100 % acurate match to the bones import from MB.

but it does work most of the time.

p


#16

Ah-- yes, got it now -thats the option I had checked–
thanks.
Will give it a try-- one step less is one step less.

Olli


#17

Thanks. That’s the missing (and a very important) element.:thumbsup:

I also noticed that the hips get twisted in MB because the .FBX exporter in C4D rotates the the top Joint’s axis.
So to get around that problem. Temporarily Setting the top Joint to a Null Joint while exporting it fixes that problem.


#18

Wow…

been following this MotionBuilder and Cinema threads but I get lost some times…
Those are too many workarounds steps…
(I have a very basic character animation knowledge)

I have MotionBuilder 7 and Cinema 9.6 and use bones.
This I guess was the last upgrade in which they both worked seamlesly together…

They added the joints to 10 (was wondering to upgrade then) and now we have 10.5 but the workflow keeps getting messier with each version… :frowning:

Don’t see any incentive to upgrade if I lose functionalities that I do use and gain others that I don’t really need that much…

I also hope they fix this…

One question, though… what are the advantages of joints over bones…? Do I loose the claudebonnet weight mapping step with this or do I still have to do some painting…? How does it work in real life…?

thanks all

fjv


#19

You should check out the videos at Cineverity or the excellent R10.5 review mentioned in some other thread around her (lost link, sorry).

You will most likely still need to paint weights, but only where autoweight does not deliver the desired result.
Weightpainting in 10.5 is far superior to Claude Bonnet (which still exists)-- especially symmetriepainting and normalize-weight is great.

Also a joints-system is one deformer,where a single bone is a single deformer-- this makes more advanced setups possible that perform much faster.

Also any object can now be aadded to a skin deformer (act as a joint)

Generally said joints are more precise, more flexible and faster.


#20

Sorry to bring up this thread again, but it seems that Sammers solution doesen’t seem to work for me. I get the good skeleton hierarchy from MotionBuilder, but the retarget tag somehow doesen’t transfer the keys from these null objects to my joint hierarcy. I’m using 10.5, can anyone help? Thx.


#21

Nevermind. It was a naming convention problem and it seems to work now. I can’t believe it, but it works:)


#22

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.