constraints won't transfer to Maya


#1

i’m new to motion builder and i’m wondering why is it that the constraints i set on my character seem to work fine inside MB but when i export the character to Maya, the constraints aren’t working anymore. It’s like they just get ignored.

help please


#2

I don’t know for sure, but it’s unlikely that constraints will transfer between programs since they’re complex relationships that are often built on quite different code bases. If you want to keep the effects of your MB constraints for when you transfer the file across to Maya, select all the bones in your character skeleton, do Animation > Plot Selected (All Properties), and that will bake the animation, including any effects that constraints are adding, into the character skeleton. You can then turn off all your constraints, then delete them, and then save your file for importing into Maya.

If you were aiming to set up a ton of constraints in MB, transfer your character into Maya and then do more animation on it afterwards (with your constraints still in place), then that’s probably not going to happen.


#3

yeah, i’ve tried that a few times now and it hasn’t worked.

Basically what i want to do is keep the effects of the MB constraints for when i transfer the file to Maya. The constraints work fine in MB and i can see the bones doing what i want, but when i bring it to maya they move like they did before i used the constraints.

maybe some settings that i’m missing? or anything to do with the effector pinning?

it’s really frustrating… please help me! :slight_smile:


#4

Like I already said, you’re not going to be able to do that. You’re not missing anything, it’s just not possible.

It’s kind of difficult to explain why so just bear with me on this…

The elements that make up a scene in any 3D app are created using the code that’s avaliable to that app. If you import a cube from 3D Studio Max to Maya it’s not placing the actual cube from Max into the Maya app, it’s creating a Maya cube that matches the same vertex coordinates as the Max cube. Things like model geometry and bones are fairly easy to transfer between applications because they work on very basic systems; like I say, geometry is just vertex coordinates and normals so it’s fairly easy to recreate that in any app. However, more complex things like lights, cameras, render settings, and in your case constraints, will often work different in different applications, so you can’t transfer them across.

For example, XSI has a type of light called a point light and 3D Studio Max has a type of light called an omni light. They both do almost exactly the same thing, but they have different names, their options work in different ways, and all the underlying programming that makes them work, works differently in each seperate app. If you try to transfer an omni light from Max into XSI, XSI won’t be able to recreate it because the programming running behind the scenes doesn’t understand what an omni light is, it’s just used to dealing with point lights. Even if XSI did understand that an omni light is the same as a point light and recreates that light as a point light, the light still wouldn’t look the same because all the options are different: In Max there’s a value called Multiplier, which dictates how much light the omni light is giving out, yet in XSI the value is called Intensity and the values may not even correlate; a value of 3.0 in one app might mean really bright, but in another app it might mean really dim.

It’s exactly the same with Motionbuilder constraints; they’re not going to transfer across because Maya won’t understand them. On the surface they may even be called the same thing and they may work the same way, but the stuff going on behind the scenes is different so Maya won’t be able to understand it.


#5

thanks for the explanation Headless, I think i understand what you’re telling me. what i do is I plot the character to the skeleton which i think “bakes” the animation i key framed and constrained to the bones right? so all i want is to see that 'baked" animation transfer to maya.

Here’s what i’d like to do: My character is standing and his feet twitch all the time. I want to have his feet sit firmly on the ground when i bring the animation back to Maya. That’s why i’m using constraints, and they do work in MB, but when i bring that animation back to Maya the feet twitch again as if the animation didn’t bake or something…

I’m sorry if i’m not too clear explaning my problem.

i hope i can get some help


#6

Ok, I think the issue you’re having is just the way that you’re plotting to the skeleton and the order you’re doing stuff in.

When you create a constraint that involves an IK or FK controller from the control rig, when you plot to skeleton using the button in the character settings window, the control rig dissapears which essentially removes those controller entries in your constraints and stops them from having an effect. Then when you plot back to the control rig, those controllers will reappear and the constraints will work again. Put simply i’m pretty sure that plotting to skeleton that way doesn’t bake constraint effects.

Try this export process instead (just make sure you do it in the right order)…

  1. Open the schematic view (ctrl-w), and select all the bones in your skeleton.
  2. In the key controls window there’s a button that says ‘Animation…’, click that and then select ‘Plot Selected (All Properties)’.
  3. In the Navigator open up your constraints and turn them all off.
  4. Delete the constraints (this probably isn’t absolutely necessary, but it just makes for a cleaner scene).
  5. Open up your Character Settings tab and turn off the check box that says ‘Active’.
  6. In the Navigator, select and delete your character control rig.

Ok from there you should be good to save the file out for Maya. If you still have the same problems then i’m not sure what to suggest, at least not without more info.


#7

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.