--This is used to create two left and right morphs from one symmetrical morph. --Useful in some cases where it is easier and simpler to make a symmetrical --morph as in zbrush for example. rollout myroll "Split Morph" width:200 height:230; ( fn pick_morph obj = ( if obj.modifiers[#Morpher] != undefined then return false else return true ) group "Split Morph" ( pickbutton pickbase "pick base mesh" filter:pick_morph pickbutton picksymorph "pick symmetrical morph" spinner offset "Blend Offset " range:[0,100.0,5.0] width:65 type:#float --default of around 5 seems to work well button spltmorph "Create Split Morphs" enabled:off spinner falloff "FallOff" range:[0,50.0,2.0] width: 65 type:#float --dedfault of around 2 works well. button resetw "Reset" enabled:off ) group "Test Morph" ( button testmorph "TestMorphs" enabled:off button collapsepolys "Bake Split Morphs to L and R Polys" enabled:off ) on pickbase picked obj do ( global basemesh = obj --spltmorph.enabled = on pickbase.text = obj.name ) on picksymorph picked obj do ( global symorph = obj spltmorph.enabled = on picksymorph.text = obj.name ) on spltmorph pressed do ( vol = VolumeSelect() posbase = basemesh.pos basecopy = copy basemesh basecopy.pos = posbase + [0,0,10] global bcopyname = execute("$"+basecopy.name) basename = execute("$"+basemesh.name) addModifier bcopyname vol vsm = bcopyname.modifiers[1] gizmo = vsm[1] select bcopyname p = gizmo.pos poffset = p + [offset.value, 0 ,0] gizmo.pos = poffset vsm.level = 1 vsm.UseAffectRegion =true vsm.falloff = Falloff.value mor = morpher() addmodifier basecopy mor symname = execute("$"+ symorph.name) WM3_MC_BuildFromNode bcopyname.morpher 1 symname WM3_MC_SetValue bcopyname.morpher 1 100.00 --create two copies global basecopy2 = copy basecopy global bcopy2name = execute("$"+basecopy2.name) vol2 = basecopy2 .modifiers[2] vol2.invert = true --move this to one side and collapse to editable poly pos = basecopy2.pos pos2 = pos + [0,0,10] basecopy2.pos = pos2 -- convertToPoly(basecopy) --convertToPoly(basecopy2) select basename resetw.enabled = on testmorph.enabled = on collapsepolys.enabled = on ) on resetw pressed do ( pickbase.text = "pick base mesh" picksymorph.text = "pick symmetrical morph" spltmorph.enabled = off testmorph.enabled = off collapsepolys.enabled = off ) on testmorph pressed do( mor2 = morpher() basename = execute("$"+basemesh.name) addmodifier basename mor2 WM3_MC_BuildFromNode basename.morpher 1 bcopyname WM3_MC_BuildFromNode basename.morpher 2 bcopy2name ) on collapsepolys pressed do( p1 = convertToPoly(bcopyname) p2 = convertToPoly(bcopy2name) p1.name = "L"+symorph.name p2.name = "R"+symorph.name ) ) createDialog myroll 220 250-- set as a dialogue instead of a rollout