2007년 11월 27일 화요일

mk_env PreView for RAT

마야에서 RAT을 사용하다보면 Environment light의 방향을 돌려야할때가 쪼~금 불편하다.
해서 env light를 프리뷰하기위해서 만들어봤다.
넙스 스피어에 env texture를 맵으로 넣어서 프리뷰를 하고 그 방향을 mtor coordsys로 콘트롤하는 방식....

import maya.cmds as cmds
import maya.mel as mm

def mk_env():
#create Sphere for preview
preview_sphere = cmds.sphere(ch=True, o=True, po=0, ax=[0,1,0], nsp=4)
attr_ctrl = ['castsShadows', 'receiveShadows', 'motionBlur', 'primaryVisibility', 'smoothShading', 'visibleInReflections', 'visibleInRefractions']
for i in attr_ctrl:
cmds.setAttr(preview_sphere[0] + '.' + i, 0)

cmds.setAttr(preview_sphere[0] + '.scaleX', -1)
cmds.reverseSurface(preview_sphere[0], ch=True, rpo=True, d=3)

cmds.delete(preview_sphere[0], ch=True)
preview_name = cmds.rename(preview_sphere[0], 'mtor_env_preview')

shader_name = cmds.shadingNode('lambert', asShader=True)
tex_node = cmds.shadingNode('file', asTexture=True)
SG_name = cmds.sets(n=shader_name + 'SG', r=True, nss=True, em=True)
cmds.connectAttr(shader_name + '.outColor', SG_name + '.surfaceShader', f=True)
cmds.connectAttr(tex_node + '.outColor', shader_name + '.color', f=True)

cmds.sets(preview_name, fe=SG_name)

#create MTOR CoordSys
mk_mtor_coordsys = mm.eval("MtorCreateCoordSys")
coordSysName = cmds.ls(dag=True, sl=True)
cmds.setAttr(coordSysName[1] + '.displayMode', 1)
cmds.setAttr(coordSysName[0] + '.rotateX', -90)
cmds.setAttr(coordSysName[0] + '.scale', 2.5, 2.5, 2.5)
cmds.rename(coordSysName[0], 'mtor_env')
mtor_envName = cmds.ls(dag=True, sl=True)

cmds.parent(preview_name, mtor_envName[0])

cmds.addAttr(mtor_envName[0], ln='pre_view', at='bool', dv=1)
cmds.setAttr(mtor_envName[0] + '.pre_view', keyable=True)
cmds.connectAttr(mtor_envName[0] + '.pre_view', mtor_envName[0] + '|' + preview_name + '.visibility')
cmds.select(mtor_envName[0])

댓글 없음: