
Maya Python API
文章平均质量分 57
iteye_9364
这个作者很懒,什么都没留下…
展开
-
什么是Maya API
Maya是一个具有开放性的产品,这意味着任何用户都能更改以存在的maya的功能特点或是增加全新的功能特点。你可以通过一下几种方法来更改maya:[list][*]MEL™—(Maya Embedded Language) 一个强大而易学的脚本语言。很多常用的操作都能使用mel来完成。[*]Python™— 一个强大而易学的脚本语言,它提供了一个maya命令的接口。[*]C++ A...2009-10-23 22:22:22 · 551 阅读 · 0 评论 -
使用API获取当前所选物体
获取当前所选物体,是在编写工具时经常用到的,我们来看看API和Mel及Python命令的代码API[code="python"]import maya.OpenMaya as om# 创建一个MSelectionList实例selList = om.MSelectionList()# 将当前所选物体加入到 selListom.MGlobal.getActiveS...2010-03-03 20:28:38 · 424 阅读 · 0 评论 -
API中的选择操作
我们已经知道如何使用API获取当前所选物体,但单是获取当前所选物体有时并不能满足我们的操作需求,可能我们还要对其进行替换选择、添加、删除等等的操作,下面我们就来看看如何在API中执行这些选择操作。 在场景中创建两个Cube,使用默认名称"pCube1","pCube2"就行,默认是选择"pCube2"的,我们要将其替换为"pCube1",执行下面的代码[code="python"...2010-04-25 18:06:20 · 381 阅读 · 0 评论 -
迭代所选的组件(component)
我们已经知道如何对物体进行选择,但如果对象是component呢,我们怎么去使用api来选择点、边、面等等的component呢? 在场景中创建一个多边形物体,然后选择它的点、边、面或UV,分开或一起选都行,在执行下面的代码[code="python"]#!/usr/bin/env python# -*- coding: UTF-8 -*-import maya.Open...2010-04-26 21:36:40 · 316 阅读 · 0 评论 -
createDynamicCache v0.1
createDynamicCache是我的第二个maya standalone script,就是cache from command line的API版本。这个script是使用maya python API来写的,除了cache的命令是mel命令。我粗略看了一下maya中的cache命令,发现很复杂,需要很多时间来分析,而且就算我重新使用python来编写也可能达不到我想要的结果,就是我前...2011-01-09 13:57:33 · 310 阅读 · 0 评论 -
Maya Python API 2.0 - MSelectionList
从Maya2012开始我们迎来了新的Python API,对API不熟悉的朋友也许会问为什么要出个2.0的新API.其实1.0是通过SWIG来对大部分(基本是全部)C++ API来自动转换的,好处是我们能使用绝大部分的C++ API,而且制作速度快,但也有很多问题,首先API是为C++设计的,C++和Python的最大区别之一就是指针,API中使用指针的地方非常多,为了解决这个问题,Pytho...原创 2012-07-09 14:03:16 · 999 阅读 · 0 评论 -
Maya Python API 2.0 - MGlobal
MGlobal是一个静态类,提供通用的API涵数.包括获取maya的版本,API版本,执行mel,python命令等等.但2.0的MGlobal只实现了很少的涵数.getActiveSelectionList获取当前的的选取列表,返回MSelectionList[code="python"]import maya.OpenMaya as om # API 1.0 i...2012-08-31 18:07:16 · 1332 阅读 · 0 评论 -
GPU, Python and Maya
Here an example how to use pyopencl in Maya.yTwistNodeGPU.py[code="python"]# --------------------------------------------------------------------------------# Copyright (c) 2013 Mack Stone. Al...原创 2013-06-27 17:32:23 · 415 阅读 · 0 评论 -
mel,cmds,python API哪个更快?
昨天偶然的跟同事谈论到这个问题,相信也有不少朋友对这个话题感兴趣.其实在pymel出来的时候就已经有很多人去对它们的运行效率进行比较了,我以前也做过很简单的对比,但没做更多和更深入的对比,所以没有详细的数据来证明哪个更快.这里我只能给你们讲述一些比较理论上的东西.首先是mel,它是maya的内置脚本语言,它的命令都都是内置的,而你只能通过C++ API(未支持Python前)来创建新的...2012-09-13 14:37:27 · 606 阅读 · 0 评论 -
sierpinski triangle 2d in maya(with python API 2.0)
[img]http://dl.iteye.com/upload/attachment/0075/4903/62159d48-3d38-3279-8a00-b557aa1d90e7.jpg[/img][img]http://dl.iteye.com/upload/attachment/0075/4905/4bf8beb1-819e-310f-942e-62122a1e1c24.jpg[/im...原创 2012-10-22 20:41:30 · 305 阅读 · 0 评论 -
sierpinski triangle 2d maya plug-in(with python API 2.0)
因为python API 2.0可用的类很少,OpenMayaMpx模块里的类被整合到OpenMaya里面了,这个模块不再存在,里面的一些方法也被丢弃了,所以使用python API 2.0来写插件和1.0是有区别的,我这里就以sierpinski triangle 2d为例来看看怎么使用python API 2.0来写插件.首先,我们的插件是一个命令插件,就是创建一mel命令,命令只有一...原创 2012-11-07 16:55:12 · 218 阅读 · 0 评论 -
geomShader
geomShader.py是使用API编写maya材质的简单的例子,是的API也可以用来写自定义材质。为了方便我就直接复制帮助文档里的geomShader.py内容过来,加入适当的注释,要试用的话可以直接加载devkit\plug-ins\scripted中的geomShader.py,你会在Hypershade的utility栏下的color中找到"spGeomShader"[code=...原创 2010-09-29 14:26:45 · 174 阅读 · 0 评论 -
run time dynamic node
大概一个月前我就写好了,但一直没时间整理,这个节点和我以前写的real time dynamic setup tool工具功能类似,因为是写来玩的,所以没什么新功能,也不打算发布源代码。...原创 2010-09-14 23:51:36 · 124 阅读 · 0 评论 -
helloWorld.py
[code="python"]#!/usr/bin/env python# -*- coding: UTF-8 -*-## 描述: # 运行这个程序将会启动一个Maya独立的python程序## 使用方法:## 设置MAYA_LOCATION环境变量到你的Maya安装路径并在Linux(Mac)的shell中执行:## $...2009-10-23 23:02:51 · 211 阅读 · 0 评论 -
helloWorldCmd.py
这个helloWorldCmd.py和helloWorld.py不同,后者是通过maya.standalone来运行的,而前者是以插件的形式来使用的。使用方法:将helloWorldCmd.py放到winC:\Documents and Settings\你的用户名\My Documents\maya\plug-insmac/Users/你的用户名/Library/Pr...2009-10-25 12:55:47 · 130 阅读 · 0 评论 -
helixCmd.py
之前的helloWorldCmd.py只是一个单独的命令,没有任何命令参数。而helixCmd.py则是一个带参数的命令。可能有不少人都会用到helix的曲线,但maya里的创建曲线菜单里是没有helix的。其实maya一直都有提供这个插件来创建helix的曲线,至于为什么不把它加入到创建菜单里我就不清楚了。helix的数学算法[url]http://en.wikipedia.org/...2009-10-25 22:13:03 · 121 阅读 · 0 评论 -
sineNode.py
前面的helloWorldCmd.py和helixCmd.py展示了自定义命令及带参数命令的写法,我们接下来看看自定义节点的写法。这个节点和表达式中的sin方法是同样的功能。[img]http://download.autodesk.com/us/maya/2010help/images/MED/Stargate/English/MEL/cm.tySintx.png[/img]si...2009-10-29 21:03:13 · 174 阅读 · 0 评论 -
zoomCameraCmd
helixCmd是一个带命令参数的命令,但执行之后是无法撤销的,也无法重做。Maya是提供了撤销和重做机制的,但需要你去实现它们,不过有些类是自动提供这个功能的。使用MPxCommand来自定义命令就需要重载redoIt来实现redo,重载undoIt来实现undo,并重载isUndoable来确定命令是可撤销,没有实现这些方法就无法撤销,也无法重做。所以有些插件的部分功能是无法撤销,也无法重...2009-11-08 14:57:03 · 191 阅读 · 0 评论 -
animCubeNode.py
一个节点例子。该节点有一个time输入属性用来连接时间或设置关键帧动画,有一个outputMesh属性来根据time属性而得出的Cube(多边形方块),这个Cube的大小是由time来控制的。animCubeNode.py[code="python"]#!/usr/bin/env python# -*- coding: UTF-8 -*-## import maya.cmd...2009-11-13 22:54:01 · 156 阅读 · 0 评论 -
basicObjectSet.py
这是一个自定义节点和命令都同时存在的一个例子。[img]http://dl.iteye.com/upload/attachment/169975/c0336957-552e-3eda-8b5b-d3388e5bf00c.jpg[/img]basicObjectSet.py[code="python"]#!/usr/bin/env python# -*- coding: UT...2009-11-18 20:14:04 · 129 阅读 · 0 评论 -
circleNode.py
自定义节点使用方法在脚本编辑器中的python面板执行circleNodeTest.py[code="python"]#!/usr/bin/env python# -*- coding: UTF-8 -*-# Description:# This script creates a new top level Maya menu that contains ...2009-11-23 21:12:02 · 237 阅读 · 0 评论 -
Helix2Cmd
不知道大家还记不记得之前的helixCmd,这个helix2Cmd是从C++转成python的版本,与helixCmd不同的是它不是创建曲线,而是更改曲线,使给定的曲线变成helix曲线,并且支持返回和重做。 #!/usr/bin/env python# -*- coding: UTF-8 -*-""" This example takes a curve and chan...2010-08-28 16:39:03 · 192 阅读 · 0 评论 -
scanDagCmd
scanDag命令以depth first(深度优先)或breadth first(广度优先)来迭代整个DAG,输出每个节点的名称和深度等信息,这个命令插件例子中只对相机、灯光、NURBS surfaces进行支持。在maya的Plug-in Manager中加载scanDagCmd.py,然后你可以随便创建一些相机、灯光、NURBS surfaces,并对它们进行位移等属性调整,然后分别执行...原创 2010-09-14 21:09:12 · 196 阅读 · 0 评论 -
uv重叠(uv overlap)
[img]http://dl2.iteye.com/upload/attachment/0098/5772/40fcc1c2-5254-3db3-82b8-46aeb375648d.jpg[/img] 两年多前我需要解决uv重叠的问题,当时觉得是一个挺有挑战的问题,很兴奋。 为什么兴奋?因为对于当时的我来说还是很难实现的,第一眼看到这个问题,就不停的问自己这么解决。 当然第一...2014-06-28 22:28:37 · 4493 阅读 · 0 评论