Skip to content

Instantly share code, notes, and snippets.

@kmarcinowski
Created June 11, 2019 13:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kmarcinowski/54d248c77904f51079e734847f1d08f1 to your computer and use it in GitHub Desktop.
Save kmarcinowski/54d248c77904f51079e734847f1d08f1 to your computer and use it in GitHub Desktop.
import pymel.core as pm
from mgear.core import meshNavigation, curve, applyop, primitive, icon
from mgear.core import transform, attribute, skin, vector, pickWalk, utils
from mgear.shifter import guide
import mgear.shifter as shifter
selection = pm.ls(sl=True)
module = pm.PyNode("hairChain_C0_root")
# shifter.log_window()
rig = shifter.Rig()
name_prefix = "Test"
def setName(name, side="C", idx=None):
namesList = [name_prefix, side, name]
if idx is not None:
namesList[1] = side + str(idx)
name = "_".join(namesList)
return name
mainLocs = []
def defineLocators(curves = None):
for curve in curves:
cvs = curve.getCVs(space="world")
locs = []
for i, cv in enumerate(reversed(cvs)): #reversed for houdini export_003
baseLoc = pm.spaceLocator(n=setName(curve.name(), idx=str(i).zfill(3)))
locs.append(baseLoc)
pm.xform(baseLoc, ws=True, t=cv)
pm.delete(pm.aimConstraint(locs[1], locs[0]))
pm.delete(locs[1])
mainLocs.append(locs[0])
for i, loc in enumerate(mainLocs):
newGuide = rig.guide.duplicate(module)
print i
newMod = pm.ls(sl=True)[0]
pos = loc.getMatrix()
newMod.setMatrix(pos)
pm.select(clear=True)
pm.delete(loc)
defineLocators(selection)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment