I am way too tired to make a clean scene let alone a clean script, but this
python script builds a very simple scene that has a "dorito" deforming a
cloned mesh and being influenced by the driver mesh. The "move" null
functions like a COG and everything plays nice:
Application.CreatePrim("Sphere", "MeshSurface", "", "")
Application.GetPrim("Null", "", "", "")
Application.SetValue("null.Name", "bottom", "")
Application.Translate("", 0, -4, 0, "siRelative", "siParent", "siObj",
"siXYZ", "", "", "", "", "", "", "", "", "", 0, "")
Application.SetValue("bottom.null.shadow_icon", 2, "")
Application.SetValue("bottom.null.shadow_scaleY", 0, "")
Application.SetValue("bottom.null.primary_icon", 0, "")
Application.SetValue("bottom.null.size", 3, "")
Application.Duplicate("bottom", "", 2, 1, 1, 0, 0, 1, 0, 1, "", "", "", "",
"", "", "", "", "", "", 0)
Application.Translate("", 0, 8, 0, "siRelative", "siParent", "siObj",
"siXYZ", "", "", "", "", "", "", "", "", "", 0, "")
Application.SetValue("bottom1.Name", "top", "")
Application.SelectObj("sphere", "", True)
Application.Clone("", "", 1, 1, 0, 0, 1, 0, 1, "", "", "", "", "", "", "",
"", "", "")
Application.SelectObj("sphere", "", "")
Application.SetValue("sphere.Name", "driver", "")
Application.SelectObj("sphere1", "", "")
Application.SetValue("sphere1.Name", "clone", "")
Application.SelectObj("driver", "", "")
Application.ApplyFlexEnv("driver;bottom,top", "", 2)
Application.GetPrim("Null", "", "", "")
Application.SetValue("null.Name", "clusterConstrainedNull", "")
Application.GetPrim("Null", "", "", "")
Application.SetValue("null.Name", "dorito", "")
Application.SetValue("dorito.null.primary_icon", 0, "")
Application.SetValue("dorito.null.shadow_icon", 8, "")
Application.SetValue("dorito.null.shadow_scaleX", 0, "")
Application.SelectObj("clusterConstrainedNull", "", "")
Application.SelectObj("clone", "", "")
Application.ToggleVisibility("", "", "")
Application.SelectObj("clusterConstrainedNull", "", "")
Application.ApplyCns("ObjectToCluster", "clusterConstrainedNull",
"driver.pnt[19]", "")
Application.SetValue("clusterConstrainedNull.kine.objclscns.tangent", True,
"")
Application.SetValue("clusterConstrainedNull.kine.objclscns.upvct_active",
True, "")
Application.SelectObj("dorito", "", "")
Application.ParentObj("B:clusterConstrainedNull", "dorito")
Application.SelectObj("B:clusterConstrainedNull", "", "")
Application.SelectObj("dorito", "", "")
Application.ResetTransform("", "siObj", "siSRT", "siXYZ")
Application.GetPrim("Null", "", "", "")
Application.SetValue("null.Name", "move", "")
Application.SetValue("move.null.primary_icon", 0, "")
Application.SetValue("move.null.shadow_icon", 2, "")
Application.SetValue("move.null.shadow_scaleY", 0, "")
Application.SetValue("move.null.size", 5, "")
Application.SelectObj("bottom", "", "")
Application.ToggleSelection("top", "", "")
Application.ParentObj("B:move", "bottom,top")
Application.SelectObj("B:move", "", "")
Application.DeselectAll()
Application.SelectObj("bottom", "", "")
Application.SelectObj("bottom,top", "", "")
Application.SetNeutralPose("", "siSRT", "")
Application.SelectObj("move", "", "")
Application.AddProp("Display Property", "", "", "", "")
Application.SetValue("move.display.wirecolorr", 0.381, "")
Application.SetValue("move.display.wirecolorg", 0.381, "")
Application.SetValue("move.display.wirecolorb", 0.381, "")
Application.SetValue("move.display.wirecolorr", 0.76, "")
Application.SetValue("move.display.wirecolorg", 0, "")
Application.SetValue("move.display.wirecolorb", 0, "")
Application.SetValue("move.display.wirecolorr", 0.110376, "")
Application.SetValue("move.display.wirecolorg", 0.756, "")
Application.SetValue("move.display.wirecolorb", 0, "")
Application.GetPrim("Null", "", "", "")
Application.SetValue("null.Name", "noDeform", "")
Application.ApplyCns("Pose", "noDeform", "move", "")
Application.SelectObj("clusterConstrainedNull", "", "")
Application.SelectObj("dorito", "", "")
Application.SelectObj("move", "", True)
Application.SelectObj("driver", "", True)
Application.ToggleVisibility("", "", "")
Application.SelectObj("clone", "", "")
Application.ToggleVisibility("", "", "")
Application.ApplyFlexEnv("clone;noDeform,dorito", "", 2)
Application.SetValue("clone.polymsh.cls.EnvelopWeightCls.Envelope_Weights.autoenvassign.defnbskelobj",
1, "")
Application.SetValue("clone.polymsh.cls.EnvelopWeightCls.Envelope_Weights.autoenvassign.defnbskelobj",
2, "")
Application.SelectObj("noDeform", "", "")
Application.CopyPaste("move.kine.global.posz", "",
"noDeform.Static_KineState.posz", 1)
Application.CopyPaste("move.kine.global.posy", "",
"noDeform.Static_KineState.posy", 1)
Application.CopyPaste("move.kine.global.posx", "",
"noDeform.Static_KineState.posx", 1)
Application.CopyPaste("move.kine.global.rotz", "",
"noDeform.Static_KineState.oriz", 1)
Application.CopyPaste("move.kine.global.roty", "",
"noDeform.Static_KineState.oriy", 1)
Application.CopyPaste("move.kine.global.rotx", "",
"noDeform.Static_KineState.orix", 1)
Application.CopyPaste("move.kine.global.sclz", "",
"noDeform.Static_KineState.sclz", 1)
Application.CopyPaste("move.kine.global.scly", "",
"noDeform.Static_KineState.scly", 1)
Application.CopyPaste("move.kine.global.sclx", "",
"noDeform.Static_KineState.sclx", 1)
Application.SelectObj("dorito", "", True)
Application.CopyPaste("clusterConstrainedNull.kine.global.posz", "",
"dorito.Static_KineState.posz", 1)
Application.CopyPaste("clusterConstrainedNull.kine.global.posy", "",
"dorito.Static_KineState.posy", 1)
Application.CopyPaste("clusterConstrainedNull.kine.global.posx", "",
"dorito.Static_KineState.posx", 1)
Application.CopyPaste("clusterConstrainedNull.kine.global.rotz", "",
"dorito.Static_KineState.oriz", 1)
Application.CopyPaste("clusterConstrainedNull.kine.global.roty", "",
"dorito.Static_KineState.oriy", 1)
Application.CopyPaste("clusterConstrainedNull.kine.global.rotx", "",
"dorito.Static_KineState.orix", 1)
Application.CopyPaste("clusterConstrainedNull.kine.global.sclz", "",
"dorito.Static_KineState.sclz", 1)
Application.CopyPaste("clusterConstrainedNull.kine.global.scly", "",
"dorito.Static_KineState.scly", 1)
Application.CopyPaste("clusterConstrainedNull.kine.global.sclx", "",
"dorito.Static_KineState.sclx", 1)
Cheers,
-=Eric
--
-=T=-