glmCharacterMaker

The glmCharacterMaker command allows to open a Character File (.gcha) in the Character Maker and also edit its Geometry Nodes.

glmCharacterMaker [-file string] [-konami] [-script] [-addSkeleton string int int] [-addGeometry string string string] [-listGeoNodes] [-addGeoNode string string] [-removeGeoNode string string] [-listRenderingTypes] [-queryRenderingType string] [-editRenderingType string string] [-addRenderingType string] [-removeRenderingType string] [-queryProperties string] [-editProperties string string string] [-outputFile string]

Flags

Long name (short name) Argument types Properties Description
-file (-f) string multi-use File paths to the Character Files to open/edit. When editing geometry nodes, only the first file will be taken into account.
-konami (-knm)     Toggle the Character Maker "konami" mode, mostly useful for using old formats assets
-script (-scr)     Activate the Character Maker script mode. This flag needs to be set in order to modify a Character File.
-addSkeleton (-ask) string int int int float float needs -script flag Create an automatic Golaem Character File skeleton by reproducing the behavior of the Load Selected Skeleton / Auto Compute Skeleton Mapping buttons. The first argument corresponds to the name of the Maya joint to load as Skeleton root. The second to forth argument are relative to the Load Selected Skeleton procedure: the Detection Mode (0 for Joint orient, 1 for Bind Pose, 2 for Current Value), the Up Axis (0 for X, 1 for Y, 2 for Z) and Front Axis. The fifth and sixth attributes are relative to the Auto Compute Skeleton Mapping procedure: the Auxiliary Detection factor (0.05 per default) and the Roll Max Angle (in °) (3° per default)
-addGeometry (-age) string string string needs -script flag Create an Automatic Golaem Character File geometry by reproducing the behavior of the Import Geometry button. The first and second arguments are the name and the type of the parent node to which the new nodes will be connected. The third argument corresponds to the name of the Maya mesh or group to load the geometry from.
-listGeoNodes (-lst)   needs -script flag List all the Geometry Nodes in the Character File
-addGeoNode (-agn) string string needs -script flag, multi-use Add a new Geometry Node with the given name and type. The command returns the names of the added nodes.
-removeGeoNode (-rgn) string string needs -script flag, multi-use Remove the Geometry Node with the given name and type. The command returns the names of the removed nodes.
-listRenderingTypes (-lrt)   needs -script flag List all the Rendering Types.
-queryRenderingType (-qrt) string needs -script flag, multi-use List all the properties of the given Rendering Type. Properties are listed as: "property1=value1;property2=value2" etc.
-editRenderingType (-ert) string string needs -script flag, multi-use Edit the properties of a Rendering Type. The first argument is the name of the Rendering Type. The second argument is the properties to change, listed as "property1=value1;property2=value2" etc. 
-addRenderingType (-art) string needs -script flag, multi-use Add a new Rendering Type with the given name. The command returns the names of the added Rendering Types.
-removeRenderingType (-rrt) string needs -script flag, multi-use Remove the Rendering Type with the given name. The command returns the names of the removed Rendering Types.
-queryProperties (-qpr) string needs -script flag, multi-use List all the properties of the given Geometry Node. Properties are listed as: "property1=value1;property2=value2" etc.
-editProperties (-epr) string string string needs -script flag, multi-use Edit the properties of a Geometry Node. The first argument is the name of the node. The second argument is its type (as given by the -queryProperties flag). The third argument is the node properties to change, listed as "property1=value1;property2=value2" etc. The type is needed to avoid any ambiguity when editing the node.
-outputFile (-of) string needs -script flag Save the edited Character File to the given filename.

MEL Examples

// Creates a Character automatically from the Maya Character
glmCharacterMaker -scr -file "" -addSkeleton "MAN_Root" 1 0 -addGeometry "CharacterNode" "Character" "MAN_Geometry" -outputFile "C:/crowdMan_light.gcha";
// Result: Hair Undercoat Pants Shoes Body_Head Body_Arms Body_Feet MAN_MD_top_hair_std MAN_MD_torso_tshirt_std MAN_MD_torso_sweatshirt_standard [...] MAN_MD_body_legs_foots //

// Link Geometry File
glmCharacterMaker -scr -file "C:/crowdMan_light.gcha" -editProperties "CharacterNode" "Character" "geometry=C:/CMO-man_golaem.fbx,3,5" -outputFile "C:/crowdMan_light.gcha";
// Result: Hair Undercoat Pants Shoes Body_Head Body_Arms Body_Feet MAN_MD_top_hair_std MAN_MD_torso_tshirt_std MAN_MD_torso_sweatshirt_standard [...] MAN_MD_body_legs_foots //

glmCharacterMaker -scr -file "C:/crowdMan_light.gcha" -listGeoNodes;
// Result: CMO-man_golaemMR_nobindpose Hair Undercoat Pants Shoes Body_Head Body_Arms Body_Feet MAN_MD_top_hair_std MAN_MD_torso_tshirt_std MAN_MD_torso_sweatshirt_standard [...] MAN_MD_body_legs_foots // 

glmCharacterMaker -scr -file "C:/crowdMan.gcha" -queryProperties "MAN_MD_body_blinnSG" -queryProperties "CMO-man_golaemMR_nobindpose";
// Result: name=CMO-man_golaemMR_nobindpose; type=CharacterNode; child=Hair; child=Undercoat; child=Pants; child=Shoes; child=Body_Head; child=Body_Arms; child=Body_Feet; geometry=C:/CMO-man_golaem.fbx,3,5; name=MAN_MD_body_blinnSG; type=ShadingGroupNode; parent=MAN_MD_body_arms_biceps; parent=MAN_MD_body_legs_full; parent=MAN_MD_body_head; parent=MAN_MD_body_arms_hands; parent=MAN_MD_body_legs_foots; child=MAN_MD_body_blinn; child=MAN_MD_body_blinn_textureIdx_value; // 

glmCharacterMaker -scr -file "C:/crowdMan.gcha" -editProperties "CMO-man_golaemMR_nobindpose" "CharacterNode" "name=CMO-man_golaemMR_light" -editProperties "MAN_MD_legs_pants_short" "AssetGroupNode" "name=Underwear;parent=Undercoat" -outputFile "C:/crowdMan2.gcha";
// Result: name=CMO-man_golaemMR_light; type=CharacterNode; child=Hair; child=Undercoat; child=Pants; child=Shoes; child=Body_Head; child=Body_Arms; child=Body_Feet; geometry=C:/CMO-man_golaem.fbx,3,5; name=Undercoat; type=AssetGroupNode; parent=CMO-man_golaemMR_light; child=MAN_MD_torso_tshirt_std; child=MAN_MD_torso_sweatshirt_standard; child=Underwear; weighted=1; weights=50,50,50 // 

glmCharacterMaker -scr -file "C:/crowdMan.gcha" -addGeoNode "[Empty]" "AssetGroupNode" -addGeoNode "[Empty]" "AssetGroupNode" -editProperties "[Empty]" "AssetGroupNode" "parent=Undercoat;child=[Empty]1" -outputFile "C:/crowdMan2.gcha"
// Result: [Empty] [Empty]1 // 

glmCharacterMaker -scr -file "C:/crowdMan2.gcha" -removeGeoNode "[Empty]" "AssetGroupNode" -removeGeoNode "[Empty]1" "AssetGroupNode" -outputFile "C:/crowdMan3.gcha";
// Result: [Empty] [Empty]1 // 

glmCharacterMaker -scr -file "C:/crowdMan.gcha" -listRenderingTypes;
// Result: CrowdManLight // 

glmCharacterMaker -scr -file "C:/crowdMan.gcha" -queryRenderingType "CrowdManLight";
// Result: name=CrowdManLight;groupWeights=Undercoat,50,11 // 

glmCharacterMaker -scr -file "C:/crowdMan.gcha" -editRenderingType "CrowdManLight" "name=CrowdManL;groupWeights=Undercoat,15,30;blabla=cuicui" -outputFile "C:/crowdMan2.gcha";

glmCharacterMaker -scr -file "C:/crowdMan.gcha" -queryRenderingType "CrowdManL";
// Result: name=CrowdManL;groupWeights=Undercoat,15,30 // 

glmCharacterMaker -scr -file "C:/crowdMan.gcha" -addRenderingType "CrowdMan" -addRenderingType "CrowdMan" -editRenderingType "CrowdMan1" "name=CrowdMan_01;groupWeights=Undercoat,33,66;" -outputFile "C:/crowdMan2.gcha";
// Result: CrowdMan CrowdMan1 // 

glmCharacterMaker -scr -file "C:/crowdMan2.gcha" -listRenderingTypes;
// Result: CrowdManLight CrowdMan CrowdMan_01 // 

glmCharacterMaker -scr -file "C:/crowdMan2.gcha" -queryRenderingType "CrowdMan_01";
// Result: name=CrowdMan_01;groupWeights=Undercoat,33,66 // 

glmCharacterMaker -scr -file "C:/crowdMan2.gcha" -removeRenderingType "CrowdMan" -removeRenderingType "CrowdMan_01" -outputFile "C:/crowdMan3.gcha";
// Result: CrowdMan CrowdMan_01 // 

glmCharacterMaker -scr -file "C:/crowdMan3.gcha" -listRenderingTypes;
// Result: CrowdManLight //