Shape Correction Limitation / Bug? 2005-04-06 - By Jabbar Raisani
Back Hello,
I am trying to do some shape correction on an object after is has been animated. Essentially I want the shape correction to happen after the Envelope Operator. If I switch to Secondary Shape Modeling mode and move points to make my correction everything works great. Now I want to save that correction out as a shape that is applied after the envelope op. I can't seem to find a way to get this type of functionality. If I use Save Shape Key, the mesh looks the same on the frame that the save shape key was applied, but not on all of the other frames. I have also tried moving the Envelope Operator underneath the Cluster Shape Combiner, but this gives me a different shape that isn't the one that I want.
At the bottom of this email is a script that will recreate the situation I am referring to.
Any Suggestions. Thanks in advance,
-Jabbar
NewScene(null, null);
CreatePrim("Sphere", "MeshSurface", null, null);
Create2DSkeleton(0, -4.0240106737179, 2.11615939152983, 0, 4.66715683959918, -1 .45631506687308, 0, 90, 0, 4, null, null);
ActivateObjectSelTool(null);
ActivateObjectSelTool(null);
DeselectAll();
SelectObj("sphere", null, true);
SetValue("Context.constructionmode", 2, null);
ApplyFlexEnv("sphere;bone,eff", false, 2);
ActivateVertexSelTool(null);
ActivateVertexSelTool(null);
SelectGeometryComponents("sphere.pnt[14,15,21,22,28,29]");
Translate(null, 1.77524985665421, 0, 0, siRelative, siGlobal, siObj, siXYZ, null, null, null, null, null, null, null, null, null, 2);
Undo();
Translate(null, -1.35337857256848E-16, 3.75417294953933, 2.21030793829245, siRelative, siView, siObj, siXYZ, null, null, null, null, null, null, null, null, null, 2);
ActivateObjectSelTool(null);
ActivateObjectSelTool(null);
SelectObj("bone", null, true);
Undo();
Undo();
Undo();
SetValue("Context.constructionmode", 3, null);
Translate(null, -1.33764161242234E-16, 3.98559456971641, 2.18460668319603, siRelative, siView, siObj, siXYZ, null, null, null, null, null, null, null, null, null, 3);
ActivateObjectSelTool(null);
ActivateObjectSelTool(null);
SelectObj("sphere", null, true);
SelectObj("bone", null, true);
Rotate(null, 0, 0, 66.6621366768366, siRelative, siLocal, siObj, siXYZ, null, true, null, null, null, null, null, 3);
Undo();
SaveKey("bone.kine.local.rotx,bone.kine.local.roty,bone.kine.local.rotz", 1, null, null);
SetValue("PlayControl.Current", 100, null);
Rotate(null, 0, 0, -41.982738824779, siRelative, siLocal, siObj, siXYZ, null, true, null, null, null, null, null, 3);
SaveKey("bone.kine.local.rotx,bone.kine.local.roty,bone.kine.local.rotz", 100, null, null);
SelectObj("sphere", null, null);
SetValue("PlayControl.Key", 100, null);
SetValue("PlayControl.Current", 100, null);
Duplicate("sphere", null, 2, 1, 1, 0, 0, 1, 0, 0, null, null, null, null, null, null, null, null, null, null, 0);
Duplicate("sphere1", null, 2, 1, 1, 0, 0, 1, 0, 0, null, null, null, null, null , null, null, null, null, null, 0);
SelectObj("sphere1", null, null);
SelectObj("sphere.polymsh", null, null);
//ERROR : Object doesn't support this property or method - [line 59]
SelectObj("sphere", null, null);
SetValue("sphere.Name", "No_Shapes", null);
SetValue("No_Shapes.Name", "No_Shape_Correction", null);
SelectObj("sphere1", null, null);
SetValue("sphere1.Name", "Shape_Correction", null);
SaveShapeKey("Shape_Correction", null, null, 100, null, null, null, null, siShapeLocalReferenceMode);
SetValue("PlayControl.Key", 8, null);
SetValue("PlayControl.Current", 8, null);
SelectObj("sphere2", null, null);
SelectObj("Shape_Correction", null, null);
SetValue("Shape_Correction.Name", "Shape_Correction_EnvOp_After_ClsShapComb", null);
SelectObj("sphere2", null, null);
SaveShapeKey("sphere2", null, null, 8, null, null, null, null, siShapeLocalReferenceMode);
SelectObj("sphere2.polymsh.envelopop", null, null);
CopyPaste("sphere2.polymsh.envelopop", null, "sphere2.polymsh.modelingmarker", 1);
SelectObj("sphere2", null, null);
SelectObj("Shape_Correction_EnvOp_After_ClsShapComb", null, null);
SetValue("Shape_Correction_EnvOp_After_ClsShapComb.Name", "Shape_Correction _EnvOp_After_ClsShapComb", null);
SelectObj("sphere2", null, null);
SetValue("sphere2.Name", "Shape_Correction_EnvOp_Before_ClsShapComb", null);
ActivateObjectSelTool(null);
ActivateObjectSelTool(null);
DeselectAll();
MakeLocal("Shape_Correction_EnvOp_Before_ClsShapComb.display", siNodePropagation);
SetValue("Shape_Correction_EnvOp_Before_ClsShapComb.display.wirecol", 15, null);
MakeLocal("No_Shape_Correction.display", siNodePropagation);
SetValue("No_Shape_Correction.display.wirecol", 242, null);
MakeLocal("Shape_Correction_EnvOp_After_ClsShapComb.display", siNodePropagation );
SetValue("Shape_Correction_EnvOp_After_ClsShapComb.display.wirecol", 656, null);
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=iso-8859 (See http://iso-8859.ora-code.com)-1"> <META content="MSHTML 6.00.2800.1491" name=GENERATOR> <STYLE></STYLE> </HEAD> <BODY bgColor=#ffffff> <DIV><FONT face=Arial size=2>Hello,</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>I am trying to do some shape correction on an object after is has been animated.</FONT></DIV> <DIV><FONT face=Arial size=2>Essentially I want the shape correction to happen after the Envelope Operator.</FONT></DIV> <DIV><FONT face=Arial size=2>If I switch to Secondary Shape Modeling mode and move points to make my correction</FONT></DIV> <DIV><FONT face=Arial size=2>everything works great. Now I want to save that correction out as a shape that is applied</FONT></DIV> <DIV><FONT face=Arial size=2>after the envelope op. I can't seem to find a way to get this type of functionality. If I use</FONT></DIV> <DIV><FONT face=Arial size=2>Save Shape Key, the mesh looks the same on the frame that the save shape key was</FONT></DIV> <DIV><FONT face=Arial size=2>applied, but not on all of the </FONT><FONT face=Arial size=2>other frames. I have also tried moving the Envelope Operator </FONT></DIV> <DIV><FONT face=Arial size=2>underneath the </FONT><FONT face=Arial size=2>Cluster Shape Combiner, but this gives me a different shape that isn't the</FONT></DIV> <DIV><FONT face=Arial size=2>one that I want.</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>At the bottom of this email is a script that will recreate the situation I am referring to.</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>Any Suggestions. Thanks in advance,</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>-Jabbar</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT size=2> <P>NewScene(null, null);</P> <P>CreatePrim("Sphere", "MeshSurface", null, null);</P> <P>Create2DSkeleton(0, -4.0240106737179, 2.11615939152983, 0, 4.66715683959918, -1.45631506687308, 0, 90, 0, 4, null, null);</P> <P>ActivateObjectSelTool(null);</P> <P>ActivateObjectSelTool(null);</P> <P>DeselectAll();</P> <P>SelectObj("sphere", null, true);</P> <P>SetValue("Context.constructionmode", 2, null);</P> <P>ApplyFlexEnv("sphere;bone,eff", false, 2);</P> <P>ActivateVertexSelTool(null);</P> <P>ActivateVertexSelTool(null);</P> <P>SelectGeometryComponents("sphere.pnt[14,15,21,22,28,29]");</P> <P>Translate(null, 1.77524985665421, 0, 0, siRelative, siGlobal, siObj, siXYZ, null, null, null, null, null, null, null, null, null, 2);</P> <P>Undo();</P> <P>Translate(null, -1.35337857256848E-16, 3.75417294953933, 2.21030793829245, siRelative, siView, siObj, siXYZ, null, null, null, null, null, null, null, null, null, 2);</P> <P>ActivateObjectSelTool(null);</P> <P>ActivateObjectSelTool(null);</P> <P>SelectObj("bone", null, true);</P> <P>Undo();</P> <P>Undo();</P> <P>Undo();</P> <P>SetValue("Context.constructionmode", 3, null);</P> <P>Translate(null, -1.33764161242234E-16, 3.98559456971641, 2.18460668319603, siRelative, siView, siObj, siXYZ, null, null, null, null, null, null, null, null, null, 3);</P> <P>ActivateObjectSelTool(null);</P> <P>ActivateObjectSelTool(null);</P> <P>SelectObj("sphere", null, true);</P> <P>SelectObj("bone", null, true);</P> <P>Rotate(null, 0, 0, 66.6621366768366, siRelative, siLocal, siObj, siXYZ, null , true, null, null, null, null, null, 3);</P> <P>Undo();</P> <P>SaveKey("bone.kine.local.rotx,bone.kine.local.roty,bone.kine.local.rotz", 1, null, null);</P> <P>SetValue("PlayControl.Current", 100, null);</P> <P>Rotate(null, 0, 0, -41.982738824779, siRelative, siLocal, siObj, siXYZ, null , true, null, null, null, null, null, 3);</P> <P>SaveKey("bone.kine.local.rotx,bone.kine.local.roty,bone.kine.local.rotz", 100, null, null);</P> <P>SelectObj("sphere", null, null);</P> <P>SetValue("PlayControl.Key", 100, null);</P> <P>SetValue("PlayControl.Current", 100, null);</P> <P>Duplicate("sphere", null, 2, 1, 1, 0, 0, 1, 0, 0, null, null, null, null, null, null, null, null, null, null, 0);</P> <P>Duplicate("sphere1", null, 2, 1, 1, 0, 0, 1, 0, 0, null, null, null, null, null, null, null, null, null, null, 0);</P> <P>SelectObj("sphere1", null, null);</P> <P>SelectObj("sphere.polymsh", null, null);</P> <P>//ERROR : Object doesn't support this property or method - [line 59]</P> <P>SelectObj("sphere", null, null);</P> <P>SetValue("sphere.Name", "No_Shapes", null);</P> <P>SetValue("No_Shapes.Name", "No_Shape_Correction", null);</P> <P>SelectObj("sphere1", null, null);</P> <P>SetValue("sphere1.Name", "Shape_Correction", null);</P> <P>SaveShapeKey("Shape_Correction", null, null, 100, null, null, null, null, siShapeLocalReferenceMode);</P> <P>SetValue("PlayControl.Key", 8, null);</P> <P>SetValue("PlayControl.Current", 8, null);</P> <P>SelectObj("sphere2", null, null);</P> <P>SelectObj("Shape_Correction", null, null);</P> <P>SetValue("Shape_Correction.Name", "Shape_Correction_EnvOp_After_ClsShapComb" , null);</P> <P>SelectObj("sphere2", null, null);</P> <P>SaveShapeKey("sphere2", null, null, 8, null, null, null, null, siShapeLocalReferenceMode);</P> <P>SelectObj("sphere2.polymsh.envelopop", null, null);</P> <P>CopyPaste("sphere2.polymsh.envelopop", null, "sphere2.polymsh.modelingmarker", 1);</P> <P>SelectObj("sphere2", null, null);</P> <P>SelectObj("Shape_Correction_EnvOp_After_ClsShapComb", null, null);</P> <P>SetValue("Shape_Correction_EnvOp_After_ClsShapComb.Name", "Shape_Correction_EnvOp_After_ClsShapComb", null);</P> <P>SelectObj("sphere2", null, null);</P> <P>SetValue("sphere2.Name", "Shape_Correction_EnvOp_Before_ClsShapComb", null);</P> <P>ActivateObjectSelTool(null);</P> <P>ActivateObjectSelTool(null);</P> <P>DeselectAll();</P> <P>MakeLocal("Shape_Correction_EnvOp_Before_ClsShapComb.display", siNodePropagation);</P> <P>SetValue("Shape_Correction_EnvOp_Before_ClsShapComb.display.wirecol", 15, null);</P> <P>MakeLocal("No_Shape_Correction.display", siNodePropagation);</P> <P>SetValue("No_Shape_Correction.display.wirecol", 242, null);</P> <P>MakeLocal("Shape_Correction_EnvOp_After_ClsShapComb.display", siNodePropagation);</P> <P>SetValue("Shape_Correction_EnvOp_After_ClsShapComb.display.wirecol", 656, null);</P></FONT></DIV></BODY></HTML>
|
|