I was running into a very odd crash yesterday every time I tried to load my rig. Maya would just crash with zero feedback. After pulling apart the file piece by piece (like finding a needle in a haystack… literally) I discovered that some of the controlBuffer curves were causing the issue.
When maya saves curves in a maya ascii file, they are saved as at least two commands - createNode transform
and createNode nurbsCurve
.
With these particular curves, the createNode transform command was working correctly, but the createNode nurbsCurve was failing when trying to execute them at the same time (i.e. load the file).
However, if you execute them one at a time in the script editor, they work as expected.
You can try this for yourself… take the following code and execute it in the script editor as a chunk. You should see the controllers_org node and underneath it two controlBuffer nodes - but the second one has no shape.
Then try just executing the second createNode nurbsCurve chunk - the shape will appear.
createNode transform -n "spine_C0_ik2_ctl_0_Shape_controlBuffer" -p "controllers_org";
rename -uid "DA1A6102-4CF2-C9EF-1D07-82A60FA22506";
addAttr -ci true -sn "isCtl" -ln "isCtl" -min 0 -max 1 -at "bool";
addAttr -ci true -sn "uiHost" -ln "uiHost" -dt "string";
addAttr -ci true -sn "invTx" -ln "invTx" -nn "Invert Mirror TX" -min 0 -max 1 -at "bool";
addAttr -ci true -sn "invTy" -ln "invTy" -nn "Invert Mirror TY" -min 0 -max 1 -at "bool";
addAttr -ci true -sn "invTz" -ln "invTz" -nn "Invert Mirror TZ" -min 0 -max 1 -at "bool";
addAttr -ci true -sn "invRx" -ln "invRx" -nn "Invert Mirror RX" -min 0 -max 1 -at "bool";
addAttr -ci true -sn "invRy" -ln "invRy" -nn "Invert Mirror RY" -min 0 -max 1 -at "bool";
addAttr -ci true -sn "invRz" -ln "invRz" -nn "Invert Mirror RZ" -min 0 -max 1 -at "bool";
addAttr -ci true -sn "invSx" -ln "invSx" -nn "Invert Mirror SX" -min 0 -max 1 -at "bool";
addAttr -ci true -sn "invSy" -ln "invSy" -nn "Invert Mirror SY" -min 0 -max 1 -at "bool";
addAttr -ci true -sn "invSz" -ln "invSz" -nn "Invert Mirror SZ" -min 0 -max 1 -at "bool";
setAttr -l on -k off ".v";
setAttr ".t" -type "double3" 0 128.65876136592337 -2.2202918430419962 ;
setAttr -k on ".ro";
setAttr -l on -k off ".sx";
setAttr -l on -k off ".sy";
setAttr -l on -k off ".sz";
setAttr ".uiHost" -type "string" "world_ctl";
createNode nurbsCurve -n "spine_C0_ik2_ctl_0_Shape_controlBuffer_0_Shape" -p "spine_C0_ik2_ctl_0_Shape_controlBuffer";
rename -uid "DEE001B1-4D97-96AF-70D9-3DA2296AFA34";
setAttr ".ihi" 0;
setAttr -k off ".v";
setAttr ".ove" yes;
setAttr ".ovc" 13;
setAttr ".cc" -type "nurbsCurve"
1 27 0 no 3
28 0 1 1.4796672040000001 2 2.482906571 3 3.5148800850000002 4 4.55714197 5
6 7 7.5608636779999996 8 8.4246197469999995 9 9.6107606949999997 10 10.45726114 11
11.532407020000001 12 12.49113097 13 13.498487730000001 14 14.525624280000001 15
28
0.8512218634224199 0.47487410174431327 0.51156102318129426
1.0982145506052423 0.63077452574549275 -0.64900975537508698
0.074137971036387432 0.72726967657061792 -0.74353620980201629
-1.0982145506052423 0.63077452574549275 -0.64900975537508698
-0.84541506549061729 -0.40785683500823422 -0.70195387218641492
-0.76374991484678045 -1.6233434228292081 -0.21266260403019063
-0.98306332123968365 -1.6233434228292007 0.26541195224097242
-0.86564368503981892 -1.4918452474060029 1.0352576258591666
-1.0384482175070433 -0.72818241625432312 1.120678735594635
-0.8512218634224199 0.47487410174431327 0.51156102318129426
-1.0982145506052423 0.63077452574549275 -0.64900975537508698
-0.8512218634224199 0.47487410174431327 0.51156102318129426
0.074138560610792131 0.41716208015011552 0.72813805885233018
0.8512218634224199 0.47487410174431327 0.51156102318129426
1.0350172791209131 -0.6891122937933869 1.1190989506343765
0.86564368503981892 -1.4918452474060029 1.0352576258591666
0 -1.3133822916894535 1.4068889532539639
-0.86564368503981892 -1.4918452474060029 1.0352576258591666
0 -1.3133816844014075 1.4068889017719814
0.86564368503981892 -1.4918452474060029 1.0352576258591666
0.98306332123968365 -1.6233434228292014 0.19037117968852013
0.76374991484678045 -1.6233434228292081 -0.21266260403019063
0.84388651827198946 -0.46888453122626422 -0.70195379478341335
1.0982145506052423 0.63077452574549275 -0.64900975537508698
0.84388648726997117 -0.4688842977879415 -0.70195374626490814
0.76374991484678045 -1.6233434228292081 -0.21266260403019063
0 -1.6233434228292225 -0.45931295002027545
-0.76374991484678045 -1.6233434228292081 -0.21266260403019063
;
createNode transform -n "leg_R0_mid_ctl_controlBuffer" -p "controllers_org";
rename -uid "0D3E9320-4D06-B253-A36B-A2A1A2C8C6D8";
addAttr -ci true -sn "isCtl" -ln "isCtl" -min 0 -max 1 -at "bool";
addAttr -ci true -sn "uiHost" -ln "uiHost" -dt "string";
addAttr -ci true -sn "invTx" -ln "invTx" -nn "Invert Mirror TX" -min 0 -max 1 -at "bool";
addAttr -ci true -sn "invTy" -ln "invTy" -nn "Invert Mirror TY" -min 0 -max 1 -at "bool";
addAttr -ci true -sn "invTz" -ln "invTz" -nn "Invert Mirror TZ" -min 0 -max 1 -at "bool";
addAttr -ci true -sn "invRx" -ln "invRx" -nn "Invert Mirror RX" -min 0 -max 1 -at "bool";
addAttr -ci true -sn "invRy" -ln "invRy" -nn "Invert Mirror RY" -min 0 -max 1 -at "bool";
addAttr -ci true -sn "invRz" -ln "invRz" -nn "Invert Mirror RZ" -min 0 -max 1 -at "bool";
addAttr -ci true -sn "invSx" -ln "invSx" -nn "Invert Mirror SX" -min 0 -max 1 -at "bool";
addAttr -ci true -sn "invSy" -ln "invSy" -nn "Invert Mirror SY" -min 0 -max 1 -at "bool";
addAttr -ci true -sn "invSz" -ln "invSz" -nn "Invert Mirror SZ" -min 0 -max 1 -at "bool";
addAttr -uap -ci true -k true -sn "leg_blend" -ln "leg_blend" -nn "Fk/Ik Blend"
-dv 1 -min 0 -max 1 -at "double";
addAttr -uap -ci true -k true -sn "leg_roundness" -ln "leg_roundness" -nn "Roundness"
-min 0 -max 82.077957046126031 -at "double";
addAttr -uap -ci true -k true -sn "leg_Tweak_vis" -ln "leg_Tweak_vis" -nn "Tweak Vis"
-min 0 -max 1 -at "bool";
setAttr -l on -k off ".v";
setAttr ".t" -type "double3" -12.462397550992963 49.2131460474302 -0.10332239347712577 ;
setAttr ".r" -type "double3" -103.06857809955946 -4.9252581643034352 81.931661690953916 ;
setAttr -k on ".ro";
setAttr ".s" -type "double3" 0.99999999999999989 1 1 ;
setAttr -l on -k off ".sy";
setAttr -l on -k off ".sz";
setAttr ".uiHost" -type "string" "world_ctl";
setAttr ".invTx" yes;
setAttr ".invTy" yes;
setAttr ".invTz" yes;
setAttr -k on ".leg_blend" 0;
setAttr -k on ".leg_roundness" 0;
setAttr -k on ".leg_Tweak_vis" no;
createNode nurbsCurve -n "leg_R0_mid_ctlShape" -p "leg_R0_mid_ctl_controlBuffer";
rename -uid "1CF8DADB-4E8C-6740-4920-59A86003A29A";
setAttr ".ihi" 0;
setAttr -k off ".v";
setAttr ".ove" yes;
setAttr ".ovc" 14;
setAttr ".cc" -type "nurbsCurve"
1 8 2 no 3
9 0 1 2 3 4 5 6 7 8
9
0.45246708509652245 -4.5046436829128975 3.0859956556717956
-2.1074454008480612 -4.5046436829128975 2.0095196359412526
-3.1839214205786028 -4.5046436829128975 -0.55039285000333127
-2.1074454008480612 -4.5046436829128975 -3.1103053359479147
0.45246708509652245 -4.5046436829128975 -4.1867813556784581
3.0123795710411034 -4.5046436829128975 -3.1103053359479147
4.0888555907716464 -4.5046436829128984 -0.55039285000333127
3.0123795710411034 -4.5046436829128975 2.0095196359412526
0.45246708509652245 -4.5046436829128975 3.0859956556717956
;
Anyone have any suggestions as to how to get around this, or why these particular curves might be freaking out?
This is in Maya 2020.1 on windows, btw.
cheers,
Jason