PDA

View Full Version : merging custom attribute animation


kiko
05-21-2002, 02:21 PM
Hi,
I'm working on a skeleton rig that will be shared across a range of diferent characters.
Some custom attributes located at the hand null controller will control the IK swivel angle, shoulder movement, etc.
But when I try to merge animations into another character, I get this error message:
MAXScript Scripted Custom Attribute definition loading exception:
--Unknown system expection

After I click OK, the merge animation dialog opens, and all animation merges succesfully (translations and rotations) except for the animated custom attributes.
Can anybody suggest a solution or workaround for this?
Is this a limitation of the custom attributes, since you are able to merge animation data for viewport sliders...
Thanks in advance

Kiko

Iain McFadzen
05-21-2002, 03:06 PM
There is a limitation with wire parameters (which are required when using custom attributes) which sets the ranges of the wiring to the range of the scene when the wires are created. Consequently if you merge an object with CAs into a scene with a different range they won't work. There is a script which fixes this at www.scriptspot.com.

That might be the problem.

kiko
05-21-2002, 03:50 PM
Thanks Iain,

I suspect it's not related to the wire parameters range.
I had taken that limitation into account when I wired the attributes (I set the the range temporarily to 1000 frames, then ran the script that fixes the ranges, got that tip from this very useful forum...).

Besides, the viewport sliders that control the foot roll can merge parameter animations succesfully, so what's different about the custom parameters that keeps them from merging animations from other scenes?

I was planning to chage all wired parameters from viewport sliders to custom attributes, since the latter reduce the clutter in the viewports and track view, so I don't wanna give up on them just yet.

But being able to transfer animation from one character to other is critical in the project I'm working on.
Has anybody encountered this same problem?
Cheers

Kiko

toonman
05-22-2002, 12:05 AM
Hey Kiko! This indeed is not controller related. I need some info to help you better...

1. What is NOT working? The merge animation dialogue?

2. Can you please copy/paste here whatever the listener prints out when this happens?

It sounds to me as if your megre animation script is broken... which max version are you running? Cheers!

kiko
05-22-2002, 01:43 PM
Hola Sergio

First thing thanks for your great rigging tut! Learned a lot from it, and that's where I got the idea of using custom atts. from in the first place. I'm looking forward to the forthcoming shoulder tut...

Well, this custom att. thing is getting funnier by the day. This morning I re-opened the scenes I'm working on and I found some custom atts missing in one of the hands, but this only happens in some of the files, others are OK.

Getting to the point, you may be right about the Merge Animation dialog not working. When I select the hand null (that hosts the shoulder custom atts.) and select Merge animation, the first thing that happens in the MaxScript listener is this (please check out the whole contents in the next post, the message is otherwise too long):

select $rightHAND
actionMan.executeAction 0 "40340"
$shoulder04.material.materialList[11].shaderType = 1
$shoulder04.material.materialList[15].shaderType = 1
$shoulder04.material.materialList[21].shaderType = 1
$shoulder04.material._24.shaderType = 1
$shoulder04.material._25.shaderType = 1
$shoulder04.material._43.shaderType = 1
$leftArm_Bone01.transform.controller.PosXLLimited = off
$leftArm_Bone01.transform.controller.PosXULimited = off
$leftArm_Bone01.transform.controller.PosYLLimited = off
$leftArm_Bone01.transform.controller.PosYULimited = off
$leftArm_Bone01.transform.controller.PosZLLimited = off
$leftArm_Bone01.transform.controller.PosZULimited = off
$leftArm_Bone01.transform.controller.RotXLLimited = off
$leftArm_Bone01.transform.controller.RotXULimited = off
$leftArm_Bone01.transform.controller.RotYLLimited = off
$leftArm_Bone01.transform.controller.RotYULimited = off
$leftArm_Bone01.transform.controller.RotZLLimited = off
$leftArm_Bone01.transform.controller.RotZULimited = off
$leftForearm_Bone01.transform.controller.PosXLLimited = off
$leftForearm_Bone01.transform.controller.PosXULimited = off
$leftForearm_Bone01.transform.controller.PosYLLimited = off
$leftForearm_Bone01.transform.controller.PosYULimited = off
$leftForearm_Bone01.transform.controller.PosZLLimited = off
$leftForearm_Bone01.transform.controller.PosZULimited = off
$leftForearm_Bone01.transform.controller.RotXLLimited = off
$leftForearm_Bone01.transform.controller.RotXULimited = off
$leftForearm_Bone01.transform.controller.RotYLLimited = off
$leftForearm_Bone01.transform.controller.RotYULimited = off
$leftForearm_Bone01.transform.controller.RotZLLimited = on
$leftForearm_Bone01.transform.controller.RotZULimited = on
$leftHand_Bone.transform.controller.PosXLLimited = off
$leftHand_Bone.transform.controller.PosXULimited = off
$leftHand_Bone.transform.controller.PosYLLimited = off
$leftHand_Bone.transform.controller.PosYULimited = off
$leftHand_Bone.transform.controller.PosZLLimited = off
$leftHand_Bone.transform.controller.PosZULimited = off
$leftHand_Bone.transform.controller.RotXLLimited = off
$leftHand_Bone.transform.controller.RotXULimited = off
$leftHand_Bone.transform.controller.RotYLLimited = off
$leftHand_Bone.transform.controller.RotYULimited = off
$leftHand_Bone.transform.controller.RotZLLimited = off
$leftHand_Bone.transform.controller.RotZULimited = off
$rightArm_Bone.transform.controller.PosXLLimited = off
$rightArm_Bone.transform.controller.PosXULimited = off
$rightArm_Bone.transform.controller.PosYLLimited = off
$rightArm_Bone.transform.controller.PosYULimited = off
$rightArm_Bone.transform.controller.PosZLLimited = off
$rightArm_Bone.transform.controller.PosZULimited = off

and goes on....(check the next post)

Then the dialog opens...
Now, I'm no expert, but a lot of that stuff seems not related at all with the arm chain bones...by the way "shoulder04" is just the name of the body mesh object physiqued to the bones.

I have also noticed that it's taking longer and longer for the dialogue to open, and when it finally does, no matter what options I juggle with (replace controllers, paste animation, etc.)
the result is the same:
The hand translations and rotations load, but nothing happens with the custom attributes that control the shoulder.

The setup of the arm is as follows:
A 2 bone HI IK parented (not connected) to a shoulder bone whose Y and Z rotations are controlled by the custom attributes hosted by the hand null controller.
The version of Max I'm running is 4.2

If all this means that my merge animation script is broken, what can I do to fix it? Have you been succesful in merging custom atts. animation easily?

Looking forward to your reply
Saludos


Kiko

kiko
05-22-2002, 01:46 PM
....
$rightArm_Bone.transform.controller.RotXLLimited = off
$rightArm_Bone.transform.controller.RotXULimited = off
$rightArm_Bone.transform.controller.RotYLLimited = off
$rightArm_Bone.transform.controller.RotYULimited = off
$rightArm_Bone.transform.controller.RotZLLimited = off
$rightArm_Bone.transform.controller.RotZULimited = off
$rightForearm_Bone.transform.controller.PosXLLimited = off
$rightForearm_Bone.transform.controller.PosXULimited = off
$rightForearm_Bone.transform.controller.PosYLLimited = off
$rightForearm_Bone.transform.controller.PosYULimited = off
$rightForearm_Bone.transform.controller.PosZLLimited = off
$rightForearm_Bone.transform.controller.PosZULimited = off
$rightForearm_Bone.transform.controller.RotXLLimited = off
$rightForearm_Bone.transform.controller.RotXULimited = off
$rightForearm_Bone.transform.controller.RotYLLimited = off
$rightForearm_Bone.transform.controller.RotYULimited = off
$rightForearm_Bone.transform.controller.RotZLLimited = off
$rightForearm_Bone.transform.controller.RotZULimited = off
$rightHand_Bone.transform.controller.PosXLLimited = off
$rightHand_Bone.transform.controller.PosXULimited = off
$rightHand_Bone.transform.controller.PosYLLimited = off
$rightHand_Bone.transform.controller.PosYULimited = off
$rightHand_Bone.transform.controller.PosZLLimited = off
$rightHand_Bone.transform.controller.PosZULimited = off
$rightHand_Bone.transform.controller.RotXLLimited = off
$rightHand_Bone.transform.controller.RotXULimited = off
$rightHand_Bone.transform.controller.RotYLLimited = off
$rightHand_Bone.transform.controller.RotYULimited = off
$rightHand_Bone.transform.controller.RotZLLimited = off
$rightHand_Bone.transform.controller.RotZULimited = off
$right_hip.transform.controller.PosXLLimited = off
$right_hip.transform.controller.PosXULimited = off
$right_hip.transform.controller.PosYLLimited = off
$right_hip.transform.controller.PosYULimited = off
$right_hip.transform.controller.PosZLLimited = off
$right_hip.transform.controller.PosZULimited = off
$right_hip.transform.controller.RotXLLimited = off
$right_hip.transform.controller.RotXULimited = off
$right_hip.transform.controller.RotYLLimited = off
$right_hip.transform.controller.RotYULimited = off
$right_hip.transform.controller.RotZLLimited = off
$right_hip.transform.controller.RotZULimited = off
$right_knee.transform.controller.PosXLLimited = off
$right_knee.transform.controller.PosXULimited = off
$right_knee.transform.controller.PosYLLimited = off
$right_knee.transform.controller.PosYULimited = off
$right_knee.transform.controller.PosZLLimited = off
$right_knee.transform.controller.PosZULimited = off
$right_knee.transform.controller.RotXLLimited = off
$right_knee.transform.controller.RotXULimited = off
$right_knee.transform.controller.RotYLLimited = off
$right_knee.transform.controller.RotYULimited = off
$right_knee.transform.controller.RotZLLimited = off
$right_knee.transform.controller.RotZULimited = off
$right_ankle.transform.controller.PosXLLimited = off
$right_ankle.transform.controller.PosXULimited = off
$right_ankle.transform.controller.PosYLLimited = off
$right_ankle.transform.controller.PosYULimited = off
$right_ankle.transform.controller.PosZLLimited = off
$right_ankle.transform.controller.PosZULimited = off
$right_ankle.transform.controller.RotXLLimited = off
$right_ankle.transform.controller.RotXULimited = off
$right_ankle.transform.controller.RotYLLimited = off
$right_ankle.transform.controller.RotYULimited = off
$right_ankle.transform.controller.RotZLLimited = off
$right_ankle.transform.controller.RotZULimited = off
$right_toe.transform.controller.PosXLLimited = off
$right_toe.transform.controller.PosXULimited = off
$right_toe.transform.controller.PosYLLimited = off
$right_toe.transform.controller.PosYULimited = off
$right_toe.transform.controller.PosZLLimited = off
$right_toe.transform.controller.PosZULimited = off
$right_toe.transform.controller.RotXLLimited = off
$right_toe.transform.controller.RotXULimited = off
$right_toe.transform.controller.RotYLLimited = off
$right_toe.transform.controller.RotYULimited = off
$right_toe.transform.controller.RotZLLimited = off
$right_toe.transform.controller.RotZULimited = off
$right_toeTip.transform.controller.PosXLLimited = off
$right_toeTip.transform.controller.PosXULimited = off
$right_toeTip.transform.controller.PosYLLimited = off
$right_toeTip.transform.controller.PosYULimited = off
$right_toeTip.transform.controller.PosZLLimited = off
$right_toeTip.transform.controller.PosZULimited = off
$right_toeTip.transform.controller.RotXLLimited = off
$right_toeTip.transform.controller.RotXULimited = off
$right_toeTip.transform.controller.RotYLLimited = off
$right_toeTip.transform.controller.RotYULimited = off
$right_toeTip.transform.controller.RotZLLimited = off
$right_toeTip.transform.controller.RotZULimited = off
$right_hip01.transform.controller.PosXLLimited = off
$right_hip01.transform.controller.PosXULimited = off
$right_hip01.transform.controller.PosYLLimited = off
$right_hip01.transform.controller.PosYULimited = off
$right_hip01.transform.controller.PosZLLimited = off
$right_hip01.transform.controller.PosZULimited = off
$right_hip01.transform.controller.RotXLLimited = off
$right_hip01.transform.controller.RotXULimited = off
$right_hip01.transform.controller.RotYLLimited = off
$right_hip01.transform.controller.RotYULimited = off
$right_hip01.transform.controller.RotZLLimited = off
$right_hip01.transform.controller.RotZULimited = off
$left_knee.transform.controller.PosXLLimited = off
$left_knee.transform.controller.PosXULimited = off
$left_knee.transform.controller.PosYLLimited = off
$left_knee.transform.controller.PosYULimited = off
$left_knee.transform.controller.PosZLLimited = off
$left_knee.transform.controller.PosZULimited = off
$left_knee.transform.controller.RotXLLimited = off
$left_knee.transform.controller.RotXULimited = off
$left_knee.transform.controller.RotYLLimited = off
$left_knee.transform.controller.RotYULimited = off
$left_knee.transform.controller.RotZLLimited = off
$left_knee.transform.controller.RotZULimited = off
$left_ankle.transform.controller.PosXLLimited = off
$left_ankle.transform.controller.PosXULimited = off
$left_ankle.transform.controller.PosYLLimited = off
$left_ankle.transform.controller.PosYULimited = off
$left_ankle.transform.controller.PosZLLimited = off
$left_ankle.transform.controller.PosZULimited = off
$left_ankle.transform.controller.RotXLLimited = off
$left_ankle.transform.controller.RotXULimited = off
$left_ankle.transform.controller.RotYLLimited = off
$left_ankle.transform.controller.RotYULimited = off
$left_ankle.transform.controller.RotZLLimited = off
$left_ankle.transform.controller.RotZULimited = off
$left_toe.transform.controller.PosXLLimited = off
$left_toe.transform.controller.PosXULimited = off
$left_toe.transform.controller.PosYLLimited = off
$left_toe.transform.controller.PosYULimited = off
$left_toe.transform.controller.PosZLLimited = off
$left_toe.transform.controller.PosZULimited = off
$left_toe.transform.controller.RotXLLimited = off
$left_toe.transform.controller.RotXULimited = off
$left_toe.transform.controller.RotYLLimited = off
$left_toe.transform.controller.RotYULimited = off
$left_toe.transform.controller.RotZLLimited = off
$left_toe.transform.controller.RotZULimited = off
$left_toeTip.transform.controller.PosXLLimited = off
$left_toeTip.transform.controller.PosXULimited = off
$left_toeTip.transform.controller.PosYLLimited = off
$left_toeTip.transform.controller.PosYULimited = off
$left_toeTip.transform.controller.PosZLLimited = off
$left_toeTip.transform.controller.PosZULimited = off
$left_toeTip.transform.controller.RotXLLimited = off
$left_toeTip.transform.controller.RotXULimited = off
$left_toeTip.transform.controller.RotYLLimited = off
$left_toeTip.transform.controller.RotYULimited = off
$left_toeTip.transform.controller.RotZLLimited = off
$left_toeTip.transform.controller.RotZULimited = off

toonman
05-22-2002, 06:09 PM
That list of nodes looks more like what the macrorecorder printed to me... the macrorecorder is the pink part of the listener window... I'd need to see what was printed in the white part of the window (the listener). There should be some messages there, some of those in red. As for the merge animation script, there were some issues with it that were fixed with v4.2, if I recall correctly. If you haven't, you might want to consider upgrading to v4.2x. I'll still keep an eye on your problem. Let me know what happens. Cheers!!

(Tambien tengo hambre...) :argh:

kiko
05-23-2002, 09:01 AM
mmh...
I get nothing in the white window of the listener apart from 'Welcome to MAXScript'. Do those messages come up only when something goes wrong?
Anyway, let's see if upgrading changes my luck.
I'll let you know of my progress (or lack of it)
Gracias

Kiko

kiko
05-28-2002, 12:43 PM
According to a reply from the discreet support forums, custom atts. presently have this limitation and therefore you cannot merge animations into them.

So I guess it's back to the drawing board to sort out my character rigs and hope they'll fix it in the next upgrade.
Cheers

Kiko

Boa
05-29-2002, 04:47 AM
there is an unsupported patch (4.2.9) that fixes some problems with custom attributes. May be you want to try it before giving up or asking in the support forum whether this patch could help.

Greetings,
Andrea

CGTalk Moderation
01-13-2006, 06:00 AM
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.