フェイスの法線を便利に取得する!!

Mayaコマンドを使って、ポリゴンフェイスの法線を取得すると、、、

[u’FACE_NORMAL 256: 0.604932 0.517799 0.604932\n’]

っと、なんとも言えない感じで返ってきちゃいます、、、

(‘A`)ヴァー

そこでもう少し便利に取得できないか!?っと関数を用意してみました!

from maya import cmds
def getFaceNormals(face):
	temp   = cmds.polyInfo(face, fn=True)[0]
	temp   = temp.split(' ')
	return [float(temp[-3]), float(temp[-2]), float(temp[-1])]

まず、「cmds.polyInfo(face, fn=True)[0]」で通常通り、法線を取得します。1つのフェイスしか処理しないことを前提にしているので「[0]」をつけて最初のデータのみ取り出します。

取り出した文字列のデータを「 (スペース)」で分割し、後ろから3つのデータをそれぞれfloatにキャストしたリストを返す流れです。