`
schi
  • 浏览: 205263 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
我们都知道Maya的主窗口保存在mel的全局变量$gMainWindow里。 We all know that wen can get the main Maya window with $gMainWindow. print $gMainWindow; //MayaWindow 因为Maya2011 和 Maya2012是使用Qt编写的界面,所以我们可十分轻松的获取Maya的主窗口。 Because the UI of Maya2011 and Maya2012 was based on Qt, os we can super easy to get the main window. #f ...

新博客

我开通了新的博客,地址是http://cgcoding.appspot.com,但被墙了所以你可能无法访问,我正在申请二级域名,好了就可以通过二级域名访问了。 也许你会问,为什么不继续使用这个博客,其实我挺喜欢iteye的博客的,无广告也很整洁,也有代码高亮之类的功能,完全符合我的需求,但很遗憾的是我无法自定义代码高亮,我很希望我的博客能支持我使用的语言或者更多,所以我只能使用其它博客了。虽然使用新博客了,但不意味着不再使用这个博客了,只是不再更新了,也许某一天我又用它了。 二级域名http://cgcoding.b3log.org/申请好了,被墙了的可以通过它来访问。
很久没用过PyQt了,以前也没怎么学,现在我打算从新学习Qt。 PyQt有不少模块,使用比较频繁的就是QtCore和QtGui了 QtCore: 是包含了非GUI的核心类,包括qt的信号和槽事件循环,共享内存,用户设置等等。 QtGui: 包含了绝大部分的GUI类。 让我们来看看如何来编写一个GUI程序吧 # 导入QtGui模块 import PyQt4.QtGui as QtGui if __name__ == "__main__": # 导入sys模块,你也可以在一开始就导入 import sys # 创建一个QApp ...
lukeiamyourfather在http://resources.realflow.com上面共享了他的Multithreaded Mesh Proces脚本,这个脚本是用来实现realflow的多线程输出mesh,虽然realflow的nogui模式有"-threads"这个参数,但你会发现即使你指定了"n"个线程,也是没什么不同的,不管是版4还是版本5,lukeiamyourfather的这个脚本很好的解决了这个问题,他把真正的多线程引入到了realflow的mesh输出。 但是他这个脚本是基于python 3.x来写的,你必须使用python 3 ...
在realflow里有个Open Project Folder ...命令用来打开工程项目的目录窗口,我在使用maya的时候我也经常打开maya的工程项目,为什么不把这个简单的功能移植过来呢? so let's do it. 我google了一下,发现在python中有几种方法来打开指定路径的文件夹 1.使用os.system方法 import os os.system('explorer "c:\myMayaProject"') 这时会弹出一个cmd.exe窗口来执行我们的命令,然后我们的窗口在所有的窗口的最前面 2.使用os.startfile方法 import os ...
  在maya中有个normalize命令用来normalize一个大小为3的浮点数组,而没有python版的normalize命令,python本身也没有处理Vector的内建函数,所以只有自己去实现。   在maya中可以有以下方法来实现normalize。   为了对比mel版本的normalize命令,我先给出mel版本的样例。   在maya中创建一个locator(其它也行),随便移动一下然后执行下面的代码 float $locPos[] = `getAttr locator1.translate`; // Result: -6.743036 3.618447 2.797823 / ...
  createDynamicCache是我的第二个maya standalone script,就是cache from command line的API版本。这个script是使用maya python API来写的,除了cache的命令是mel命令。我粗略看了一下maya中的cache命令,发现很复杂,需要很多时间来分析,而且就算我重新使用python来编写也可能达不到我想要的结果,就是我前面所说的在cache时输出进度信息,所以要重写cache命令的话可能会用API写,maya倒是提供了一个XmlGeometryCache.cpp例子,但这个例子太长了还是C++的,有时间再研究研究。   ...
    使用命令行来计算cache,这个脚本我已经不记得是什么时候写好的了,太忙了,很多事都不记得了。可惜我还是没足够的时间来进行更多的测试,这个脚本有pymel、mrv、API等版本,功能还不健全(仅40行左右的代码),因为没足够的时间来进行时间测试,所以这里就单展示mrv的版本,现在在进行计算时是完全不知道进度的,如果有时间我会不断的完善它们,让它们类似realflow的nogui模式类似输出进度很时间等等,很可能需要自己编写整个cache过程。 使用命令行来计算cache比maya在gui模式快不少,具体快多少我还不清楚,时间总是我最需要的东西。 (youku看不清楚的话)视频可以 ...

电子书下载

我已经将博客里的文章做成了电子书,大家可以到这里下载 http://schi.iteye.com/blog/pdf 以后可能也没什么时间来写博客了,实在是太忙了。 如果有时间,我会做个速度测试,测试Maya在standalone下用pymel、mrv(刚开始学)、API来给nCloth、nParticle计算cache的速度,我很好奇哪个会快点。
  在maya中使用nDynamic模块时,场景中的nDynamics节点越多就越难分辨哪个是哪个,而且默认都是清一色的碰撞颜色,给它们分别赋予一个随机颜色是一个不错的想法。   要实现这个,方法很简单 获取场景中所有的nRigid, nCloth, nParticle节点 对它们进行迭代,并设置一个随机碰撞颜色 下面展示了各个不同模块的实现方法 #------------ maya python ----------------- from random import uniform import maya.cmds as mc # 获取场景中所有的nRigid, n ...

geomShader

geomShader.py是使用API编写maya材质的简单的例子,是的API也可以用来写自定义材质。 为了方便我就直接复制帮助文档里的geomShader.py内容过来,加入适当的注释,要试用的话可以直接加载devkit\plug-ins\scripted中的geomShader.py,你会在Hypershade的utility栏下的color中找到"spGeomShader" import sys import maya.OpenMaya as OpenMaya import maya.OpenMayaMPx as OpenMayaMPx # 材质的名称 ...
纯粹记录刚开始学习mel和python的时间。 真正开始学习mel是2009年2月,就在过年的时候决定学习mel的,在这之前只用过网上的脚本,只能看懂最简单的 ls -sl;  学习python是2009年4月入手python核心编程一书开始的。 到现在,回想起来能学到这个地步也不容易,因为学习mel和python的大部分时间都是上班的时间,很少用自己的空余时间来学习。   嗯。不想再多说,只是纯粹记录刚开始学习mel和python的时间,因为我会忘记。 如果我想说明什么,那就是,我能做得到,你们也能。就想我相信,别人能做得到,我也能。
大概一个月前我就写好了,但一直没时间整理,这个节点和我以前写的real time dynamic setup tool 工具功能类似,因为是写来玩的,所以没什么新功能,也不打算发布源代码。
scanDag命令以depth first(深度优先)或breadth first(广度优先)来迭代整个DAG,输出每个节点的名称和深度等信息,这个命令插件例子中只对相机、灯光、NURBS surfaces进行支持。 在maya的Plug-in Manager中加载scanDagCmd.py,然后你可以随便创建一些相机、灯光、NURBS surfaces,并对它们进行位移等属性调整,然后分别执行 // -d 为深度优先,-b 为广度优先 // 相机 scanDag -d 1 -c 1; // 灯光 scanDag -d 1 -l 1; // NURBS surfaces scan ...
不知道大家还记不记得之前的helixCmd,这个helix2Cmd是从C++转成python的版本,与helixCmd不同的是它不是创建曲线,而是更改曲线,使给定的曲线变成helix曲线,并且支持返回和重做。   #!/usr/bin/env python # -*- coding: UTF-8 -*- """ This example takes a curve and changes it into a helix. """ import sys import math import maya.OpenM ...
Global site tag (gtag.js) - Google Analytics