Maya 第八周 作业

lesson21_Maya API 的全局操作方法 - MGlobal


image.png
image.png
image.png

可以用截图软件看到maya视图的大小,比如我测出来是大约:723 X 556
那么用maya的openMayaUI 模块下的M3dView中的 portWidth 和 portHeight 也可以精确的测量出视图的大小:

import maya.OpenMayaUI as omUI
view = omUI.M3dView.active3dView()
view.portWidth() # 707
view.portHeight() # 549

然后用MGlobal下的selectFromScreen 来选择视窗范围内的物体:
比如选择正中央的一块区域:


image.png

image.png
import maya.OpenMaya as om
om.MGlobal.selectFromScreen(310, 220, 380, 320, om.MGlobal.kReplaceList)

2.lesson22_Maya API 的文件操作 - MFileIO


image.png

image.png
image.png
import maya.OpenMaya as om
import maya.cmds as cmds
sg_node = cmds.ls(type='shadingEngine')
cmds.select(sg_node, ne=True)
om.MFileIO.exportSelected("C:\Users\KangTa\Desktop\sg_tes.ma", 'mayaAscii')

扩展下导出场景中使用过的材质球

import maya.OpenMaya as om
import maya.cmds as cmds

# 列出场景中使用的材质球
def get_used_materials_in_scene():
    """list the material used in scene
    """
    
    for shading_engine in cmds.ls(type='shadingEngine'):
        if cmds.sets(shading_engine, q=True):
            for material in cmds.ls(cmds.listConnections(shading_engine), mat=True):
                yield material

all_material = list(get_used_materials_in_scene())
cmds.select(all_material, r=True)

om.MFileIO.exportSelected("C:/Users/KangTa/Desktop/sg_test.ma", 'mayaAscii')

3.lesson23_Maya API 中的节点迭代器和函数类


image.png
m_sel = om.MSelectionList()
mat_iter = om.MItDependencyNodes(om.MFn.kShadingEngine)
while not mat_iter.isDone():
    m_sel.add(mat_iter.item())
    # m_sel.add(om.MFnDependencyNode(mat_iter.item()).name())
    mat_iter.next()

om.MGlobal.setActiveSelectionList(m_sel)
om.MFileIO.exportSelected("C:/Users/KangTa/Desktop/sg_test.ma", 'mayaAscii')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 上次介绍了一部3D动画的制作周期和流程,它需要导演与各部门工作人员的共同努力与配合才能够最终完成并且呈现在观众们的...
    yxssiszx阅读 8,338评论 2 16
  • 1、revolve建模概念 Revolve就是旋转。这种建模方式是利用一条曲线,在软件的三维空间中沿着某个轴线进行...
    yxssiszx阅读 9,564评论 3 7
  • Hotbox操作 上次我们简单介绍了Maya软件的主要操作界面,如何保留必要的界面以及如何打开相关界面,今天我将介...
    yxssiszx阅读 8,829评论 0 14
  • 选择题部分 1.(),只有在发生短路事故时或者在负荷电流较大时,变流器中才会有足够的二次电流作为继电保护跳闸之用。...
    skystarwuwei阅读 14,670评论 0 7
  • 上一次介绍的是基本算图的设定,这次将介绍如何对Maya的资料夹进行管理,并进一步认识算图的设定,进行实际的算图输出...
    yxssiszx阅读 5,189评论 0 3