Glad I could help =) On Sun, Jul 26, 2015 at 2:38 AM, Pierre Schiller < [email protected]> wrote:
> All right! Eric helped me out some, here´s the result. My mistake was to > parent the face under the general COG controller. > Thank you guys! > > Regards. > > On Fri, Jul 24, 2015 at 10:16 AM, Pierre Schiller < > [email protected]> wrote: > >> Thanks Alan. I checked it (the last 7 minutes summarize it very well) the >> problem seems to be the following : >> 1. I created (modeled the head), there are 2 cluster materials there. >> 2. I weighted to bones >> 3. I sculpted the shapes >> 4. I place the head under a model under a COG under a skeleton hierarchy, >> (head is not child but weighted to bones and is inside >> of the COG hierarchy >> 5. Finally I make the dorito setup. Every null offset is child of a Zero >> transform null, child of the head bone (that way if the head bone rotates, >> all of the nulls will also rotate; I know I should just use the global >> position (once they´re object clustered) for rotation also (so there´s no >> need to set up that extra zero transform null to pass it´s coordinates); >> but I set it up so I can scale and do squash stretch simply by scaling that >> null ///that´s another subject tho´ but I explain that part so that you can >> know what´s going on the rig. >> >> Then I move my model using the COG and weights on the cloned face are >> left behind. >> >> IN ADDITION: >> All dorito approaches (videos) don´t live under a hierarchy, and also >> they are not transformed from bone rotation (face rotation). So, Eric is >> suggesting I´m doing the dorito workflow last, when it should be the first. >> I´ll try that as soon as I can and report progress on this thread... >> >> Long ago, I rigged that dorito approach with bones (scaled and changed >> it´s view options so they look like spheres) it worked just fine, but that >> null approach on doritos has a "je ne sais pa" on the animators side :) >> >> Cheers. >> >> On Thu, Jul 23, 2015 at 10:02 PM, Alan Fregtman <[email protected]> >> wrote: >> >>> Long ago I recorded a 20m tutorial/explanation about doritos for >>> TDSurvival: >>> https://vimeo.com/68359879 >>> >>> I think it might help you. Let me know if anything is not clear. >>> >>> On Thu, Jul 23, 2015, 2:01 AM Eric Turman <[email protected]> wrote: >>> >>>> 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=- >>>> >>> >> >> >> -- >> Portfolio 2013 <http://be.net/3dcinetv> >> Cinema & TV production >> Video Reel <https://vimeo.com/3dcinetv/reel2012> >> > > > > -- > Portfolio 2013 <http://be.net/3dcinetv> > Cinema & TV production > Video Reel <https://vimeo.com/3dcinetv/reel2012> > -- -=T=-

