|
I totally understand this is a crazy issue and I’m sorry its so complex. Thanks for hanging in there.
It is entirely possible the functionality is there and just not written into maxscript help file. Which has happened before and been listed under bug fixes. So it is a documentation bug and needs to be flagged and changed.
But I have no way of knowing if its, I’m not autodesk. Either way, missed documentation or missed maxscript update, when they added the availability to load list controllers to the front end (the UI) they should have updated the back end (maxscript) also. Its something they’ve always done and must have missed this time around. I’m sure if they know about it, there will be a forehead slap and it will be included in the next update or release.
It’s something they missed and it breaks a part of max. So it’s a bug.
I just finished filling out a bug report.
Here are the steps to replicate the problem(s).
- Create a new, scene.
- Create a biped, assign a scale list controller to the thigh and animate the scale.
- Just for giggles also create a box and attach it to the biped. This will demonstrate “load max objects” does not work via maxscript.
- Save the scene.
- Save out a .bip file from the biped menu on the motion tab. Name it “scaletest.bip” and save it to the same place your scene is saved (so the maxscript below can find it).
- Delete the biped and create a new one.
- Load the .bip file into motion mixer via maxscript using the appendclip function.
Here is a sample function, paste it into a new maxscript and evaluate it (Ctrl-E):
(
themixer.showmixer()
b = $bip01
c = b.transform.controller
themixer.addMixerToDisplay b.transform.controller
$bip01.transform.controller.mixerMode = true
bodyMix = $bip01.transform.controller.mixer
if getTrackgroup == false do
(
insertTrackgroup bodymix 1
)
(
bodyTrackGroup = getTrackGroup bodyMix 1
bodyTrack = getTrack bodyTrackGroup 1
extentTrack = getTrack bodyTrackGroup 1
fn LoadTestClip =
(
appendClip extentTrack (maxFilePath + "scaletest.bip") false 0
local clip = getclip extentTrack 1
)
LoadTestClip()
)
)
Notice the scale did not load and the box is missing, this is because the appendclip function is missing the parameters to load list controllers (and max objects). Likewise if you had more objects like bones for wings, facial bones, secondary motion bones, these will not load either via max script.
You can however get some data to load into the list controller if you wire the scale list controller to an attribute holder assigned to the biped. However this creates a whole new nightmare that I talked about earlier(ghost curves/missing keys).
Since the attribute holder is not saved with the .bip file (I understand why it doesnt’ save modifiers, but it would be nice if it did, but that’s a feature request for another day). The result is a broken link in the wire parameters and no keys on the scale list controller, just curves that can’t be manipulated in any way. This is what I was talking about earlier about missing keys.
Ghost curves happen when you use a attribute holder to wire the list controller to.
Flat out missing is what happens when you use just a list controller.
Both are unworkable options and need to be fixed.
3dsmax 2011 & 2012
|