Mailing List
Home
Forum Home
Softimage
Carrara
trueSpace
Dir3d-l
Maya - a powerful 3D animation and visual effects software
Macromedia Flash Development
Subjects
Cameras
scaleDown command
black out solved
Aircraft Tutorial
Mathematical XYZ ?
Its done This vs That
Its done first week
recommendations for screen video captures?
3DExplorer "Oddity "
New Director
ProTeam renewals
Fuel 's new websites (X post)
Blue peter create a make toy
targeting groups question
XPost: Shockwave 3D game ( sort of )
RES: RES: RES: Fish Modeling
Emitting particles from object intersection
Fuel 's new websites (X post)
Texturing
Big Break Contest Videos
New Plugins
Models and Texture on my updated site
Error Installing Patch tS6 6
Plasma?
Looking for Inspiration
Weird EMail Q
It 's done first week ?
Cherry not cranberry
New game
Camera Animation Problem
Particle plugins?
 
Shape Correction Limitation / Bug?

Shape Correction Limitation / Bug?

2005-04-06       - By Adam Sale

 Back
Reply:     1     2     3     4  

heres what you need to do..
In SHape modeling mode
   Store shape Key on mesh or on cluster (default shape)
       this saves your cluster shape combiner in the shape model stack
In Animation mode
   Set Envelope on Deformers
In Secondary Shape modeling mode
   you already have a cluster shape combiner at the lower shape modeling mode..
all you do here is author move points in the stack, and store the shape while
in this mode..
All of the shapes are still managed by the cluster shape combiner in the shape
modeling stack...

after the shape is stored, you can drop the shape clip (the 2nd one) onto a
track and drive it with expressions,scripts links or scripted operators.

The envelope op needs to be above the cluster shape combiner and they need to
be in different construction mode stacks..

Adam
 -- -- Original Message -- --
 From: Jabbar Raisani
 To: XSI@(protected)
 Sent: Wednesday, April 06, 2005 6:37 PM
 Subject: Shape Correction Limitation / Bug?


 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>heres what you need to do..</FONT></DIV>
<DIV><FONT face=Arial size=2>In SHape modeling mode</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; Store shape Key on mesh or on
cluster (default shape)</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this saves
your cluster shape combiner in the shape model stack</FONT></DIV>
<DIV><FONT face=Arial size=2>In Animation mode</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; Set Envelope on
Deformers</FONT></DIV>
<DIV><FONT face=Arial size=2>In Secondary Shape modeling mode</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; you already have a cluster
shape
combiner at the lower shape modeling mode..</FONT></DIV>
<DIV><FONT face=Arial size=2>all you do here is author move points in the stack
,
and store the shape while in this mode..</FONT></DIV>
<DIV><FONT face=Arial size=2>All of the shapes are still managed by the cluster
shape combiner in the shape modeling stack...</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>after the shape is stored, you can drop the shape
clip (the 2nd&nbsp;one) onto a track and drive it with expressions,scripts
links
or scripted operators. </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>The envelope op needs to be above the cluster
shape
combiner and they need to be in different construction mode stacks..
</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Adam</FONT></DIV>
<BLOCKQUOTE dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT:
#000000 2px solid; MARGIN-RIGHT: 0px">
 <DIV style="FONT: 10pt arial">-- -- Original Message -- -- </DIV>
 <DIV
 style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
 <A title=jabbar@(protected) href="mailto:jabbar@(protected)">Jabbar
 Raisani</A> </DIV>
 <DIV style="FONT: 10pt arial"><B>To:</B> <A title=XSI@(protected)
 href="mailto:XSI@(protected)">XSI@(protected)</A> </DIV>
 <DIV style="FONT: 10pt arial"><B>Sent:</B> Wednesday, April 06, 2005 6:37
 PM</DIV>
 <DIV style="FONT: 10pt arial"><B>Subject:</B> Shape Correction Limitation /
 Bug?</DIV>
 <DIV><BR></DIV>
 <DIV><FONT face=Arial size=2>Hello,</FONT></DIV>
 <DIV><FONT face=Arial size=2></FONT>&nbsp;</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.&nbsp; 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.&nbsp; I can't seem to
find
 a way to get this type of functionality.&nbsp; If I use</FONT></DIV>
 <DIV><FONT face=Arial size=2>Save Shape Key, the mesh looks&nbsp;the
 same&nbsp;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.&nbsp; 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>&nbsp;</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>&nbsp;</DIV>
 <DIV><FONT face=Arial size=2>Any Suggestions.&nbsp; Thanks in
 advance,</FONT></DIV>
 <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
 <DIV><FONT face=Arial size=2>-Jabbar</FONT></DIV>
 <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
 <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
 <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
 <DIV><FONT face=Arial size=2></FONT>&nbsp;</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></BLOCKQUOTE></BODY></HTML>