Home Technical Talk

3DS Max save/load animation problem

Hi. I created an animation from my rigged model and saved it as .xaf, but when I load it to the model I created it form, it seems the pelvis position is not affected at all. Everything else works fine, but the pelvis won't move. I don't even know if the bones position and rotation date are stored in the .xaf file or only rotation data. Any help is appreciated. Thanks

Replies

  • monster
    Offline / Send Message
    monster polycounter
    What type of controller is being used on the Pelvis position? The Save Animation feature fails pretty easy if multiple objects have the same name, or they are not selected when saved.

    You may just need to do a custom Mapping if the controller is not found.
  • Morbius
    It's the default Position XYZ controller, all bones are selected and they have different names
  • monster
    Offline / Send Message
    monster polycounter
    Try loading the XAF file back on the same model after you've deleted all the keyframes.

    If that works, it's just a mapping problem. You'll need to click "Edit Mapping" when loading the XAF on your target model. Then follow Step 8 on from this page:
    http://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-A6EB9AE5-66ED-4400-8252-5E012AFBBEA0-htm.html

    If it didn't work, make sure your target model also has a Position XYZ. The load animation tool won't load animation if the controller doesn't match. That includes if you Froze Transforms on one controller, but not the other.
  • monster
    Offline / Send Message
    monster polycounter
    If all that fails, select the Pelvis in the first file and run the first script. Then select the pelvis in the second file and run the second script. This is pretty much guaranteed to work. If it doesn't work you have a separate hierarchy or pivot problem.
    --SCRIPT THAT COPIES THE ANIMATION CONTROLLERS OF THE SELECTED OBJECT
    global monsterCopyAnimPos,monsterCopyAnimRot,monsterCopyAnimScale
    
    if selection.count == 1 then
    (
    	monsterCopyAnimPos = copy $.pos.controller
    	monsterCopyAnimRot = copy $.rotation.controller
    	monsterCopyAnimScale = copy $.scale.controller
    )
    else
    (
    	messageBox "Please select one object to copy." title:"Copy Failed"
    )
    
    --SCRIPT THAT PASTES THE ANIMATIONS CONTROLLERS FROM ANIMATION_ANIMCOPY
    (
    	if monsterCopyAnimPos != undefined or
    		monsterCopyAnimRot != undefined or
    		monsterCopyAnimScale != undefined then
    	(
    		undo "Paste Anim" on
    		(
    			for obj in selection do
    			(
    				obj.pos.controller = monsterCopyAnimPos
    				obj.rotation.controller = monsterCopyAnimRot
    				obj.scale.controller = monsterCopyAnimScale
    				
    				if (InstanceMgr.CanMakeControllersUnique obj (obj.pos.controller)) do
    				(
    					InstanceMgr.MakeControllersUnique obj (obj.pos.controller) #individual
    				)
    			)
    		)
    	)
    	else
    	(
    		messageBox "No animation to paste." title:"Pasted Failed"
    	)
    )
    
Sign In or Register to comment.