Я вообще-то программирую материал, связанный с Unity3D, я все еще довольно новичок в API-интерфейсе Maya Python.Как получить нормальные показатели лица в майе?
То, что я пытаюсь сделать, чтобы получить выбранный в данный момент лицо нормалей среднее:
То, что я не достиг до сих пор является экземпляром куба, расположенного в соответствии с Move манипулятором.
import maya.cmds as cmds
import re #regular expression
# get current position of the move manipulator
pos = cmds.manipMoveContext('Move', q=True, p=True)
# get the current selection
selection = cmds.ls(sl=True)
# trying to get the face normal angles of the current selection
polyInfo = cmds.polyInfo(selection, fn=True)
polyInfoArray = re.findall(r"[\w.-]+", polyInfo[0]) # convert the string to array with regular expression
polyInfoX = float(polyInfoArray[2])
polyInfoY = float(polyInfoArray[3])
polyInfoZ = float(polyInfoArray[4])
print str(polyInfoX) + ', ' + str(polyInfoY) + ', ' + str(polyInfoZ)
target = cmds.polyCube()
cmds.move(pos[0], pos[1], pos[2], target)
Теперь то, что мне нужно только вращать куб к лицу средних нормалей выбора
Пожалуйста, любые мысли по этому поводу?
У майя есть какой-либо метод, чтобы дать мне эти углы? Я пытался повернуть с помощью polyInfo с лица нормалей, но я думаю, что я что-то не хватает ...
EDIT:
Окончательное решение (благодаря @theodox)
import maya.cmds as cmds
# get current position of the move manipulator
pos = cmds.manipMoveContext('Move', query=True, position=True)
# get the current selection
selection = cmds.ls(selection=True)
target = cmds.polyCube()
cmds.move(pos[0], pos[1], pos[2], target)
constr = cmds.normalConstraint(selection, target, aimVector = (0,0,1), worldUpType= 0)
cmds.delete(constr)
Большое спасибо @theodox !! Нормальное ограничение решило мою проблему как шарм, спасибо за альтернативу! –