- 浏览: 205263 次
- 性别:
- 来自: 上海
最新评论
-
悲梦天下:
楼主,有些视频到一半就没声音了,怎么破!!!
python视频教程 更新22(完) -
schi:
啊,我太傻了,都想到使用uv了,可以有更简单的方法,只要把uv ...
Get Reversed Normal Faces(获取反法线面) [原理] -
schi:
相对Pillow和PySide而言,显示图片opengl就显得 ...
display an image with pyopengl and Pillow -
schi:
我也是今天才偶然想到的,我以后可能用不着了,所有分享给有需要的 ...
Get Reversed Normal Faces(获取反法线面) [原理] -
baiyanbin:
支持楼主原创,关注楼主博客有一阵子了,国内认真认真搞技术的太少 ...
python视频教程 更新22(完)
文章列表
从3月份制定的2010年目标与计划,到现在已经过了5个多月,现在总结一下现状。
Maya方面
Fluid、Hair、Muscle都只看过少许的教程,没进展;
nDynamic由于工作上也使用到,虽算不上运用自如,但也能应付应付;
Python API有突破性的进展,之前是比较模糊,现在已经基本能看懂,最近我也在不断的将C++的插件转成python的,这也是学习的一种方法;
Render,我尝试去学renderman,这也是我学C++的目的之一,先不说C++难学,看了一些renderman方面的资料后发现材质的编写不只是编写代码那么简单,加上本身资料就少,而且连帮助文档都没,真是举步艰难 ...
Houdini 有多种contexts,有些是独立的,有些是互相关联的。数据可以简单跨越这些contexts来进行引用。
Objects (Objects scene) 是场景的描述
SOPs (Surface OPerations) 是建模和模型操作
POPs (Particle OPerations) 是设计(创建)粒子系统的地方
CHOPs (Channel OPerations) 处理原始数据,如,
motion(动画数据) 和 audio(音频)
COPs (Composite OPerations) 提供工具来处理和合成图片
SHOPs (Shader OPer ...
有时候我希望不需要运行maya也能完成我在maya里面的工作,maya standalone正是我所需要的。使用起来很简单,就是一个无界面的maya。这次演示的脚本很简单,它会查询所给的maya场景里的贴图是否存在于该场景目录下的textures文件夹里,如果不存在会检查该贴图是否存在,如果存在将其复制到textures文件夹里,并更正现在的路径,最后保存一个名为“*_new.ma”的场景。
如何识别Maya的坐标系统是右手还是左手坐标系
- 博客分类:
- maya
识别坐标系统是右手还是左手坐标系的方法可以参考笛卡儿坐标系
,中的“三维空间
”,有详细的说明。
在maya中除了上述的通用方法外,还有没有更简单的方法呢?
答案当然是有,maya很明确的告诉了你,你只需要创建一个多边形,例如"pSphere1";然后打开Attribute Editor,选中"pSphereShape1"的标签,展开TangentSpace属性,答案就揭晓了
今天偶然发现的,简单到让我吃惊,没使用脚本,也没插件,都是它们本身的功能,我只是简单的设置了一下。
http://vimeo.com/12913347
快速控制多边形的Smooth(pymel)
- 博客分类:
- maya
再绑定好一个角色/物体/场景后除了整理节点的层级结构和清理场景,还需要对需要smooth的多边形进行smooth并控制其smooth的大小。
几个月前我为公司(用mel)写了一个工具,来处理对所选的多边形进行smooth,并控制其smooth。为了使这个工具更强大、更智能,我先对所选的物体区分类别,再把筛选出来的多边形进行检查,看其是否已经被smooth,如果是直接进行控制,如果没就进行smooth并控制。
我自认这个工具已经够强大了,但使用了一段时间后却反觉得十分痛苦,为什么会这样,都是因为该死的重命名。虽然在maya里理论上是不能重命名的,但实际上却是能存在重命名的,面对复杂的场景 ...
看到这样的标题或许你会很迷惑,什么叫“不是问题的问题”?因为这些问题在许多人的眼中都不算是问题,甚至是根本就不知道这些问题的存在,更不用说如何去解释这些问题。
在开始叙述这些问题前我先声明,这篇blog不是 ...
相信不管你用什么编辑器,能直接把代码发送到Maya里并执行是十分方便的功能。
要在vim里实现这个功能,你只要安装一个插件就行,但必须的准备工作还是要的。
首先,你需要一个支持python的vim,官方的vim只支持python2.4,如果你想要支持更新的python版本,就需要自己去编译vim,编译过程很简单,可以参考视频教程http://showmedo.com/videotutorials/series?name=GuFMFkjNL
下载Vimya插件http://www.vim.org/scripts/script.php?script_id=2626
...
很久以前考虑过vim来做编辑器的,但烦于其一大堆的设置和命令,而且还设置不成功,所以也就放弃了,最近想学点新东西,但又苦于支持其颜色高光的编辑器十分少,自己做又麻烦兼不会,再加上除了编写还需要使用命令行。找了一下其它的编辑器后,想起了vim,打开来看看,才发现我想要的它都有,真是踏破铁鞋无觅处,得来全不费功夫;其实还是挺费功夫的,用了一个晚上来配置和熟悉简单的操作。
我们已经知道如何对物体进行选择,但如果对象是component呢,我们怎么去使用api来选择点、边、面等等的component呢?
在场景中创建一个多边形物体,然后选择它的点、边、面或UV,分开或一起选都行,在执行下面的代码
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import maya.OpenMaya as om
# 创建选择列表
selList = om.MSelectionList()
# 获取当前所选物体
om.MGlobal.getActiveSelectionList(selList)
# 创 ...
我们已经知道如何使用API获取当前所选物体,但单是获取当前所选物体有时并不能满足我们的操作需求,可能我们还要对其进行替换选择、添加、删除等等的操作,下面我们就来看看如何在API中执行这些选择操作。
在场景中创建两个Cube,使用默认名称"pCube1","pCube2"就行,默认是选择"pCube2"的,我们要将其替换为"pCube1",执行下面的代码
import maya.OpenMaya as om
# 将选择替换成"pCube1"
om.MGlobal.selectByN ...
maya2011使用了Qt框架,10年来几乎一成不变的maya界面,现今变成了黑糊糊的界面,虽然只是随便的玩弄了一下,感觉比以前的界面好多了。
Ok,感叹到此为止,进入我们今天的话题"Working with Qt",主要介绍如何使用Qt的Designer来给maya制作UI,有了Designer不管你是程序员还是非程序员,都能轻松给maya制作UI。
先给出Qt的下载地址,Maya 2011 使用的是 Qt 4.5,版本4.5.X的X是无关紧要的,如果你只是用来制作UI我认为版本应该不重要,但如果你是想要写基于Qt的maya插件,那版本就十分重要了。
Win
...
什么是PyMel?它是python还是mel?一个新的语言?...
也许你会这样不停的追问,Ok,现在就给你们介绍一下PyMel。
PyMel已经存在挺久的了,已经是1.00版本了,支持maya2008, 2009和2010,是一个开源项目。
其实我也一直都在关注PyMel,为什么到现在才给大家介绍呢?因为我到目前为止都没使用PyMel,但为什么现在又要介绍它呢?因为maya2011已经集成了PyMel,你根本就不需要单独安装,所以我觉得是时候使用PyMel了,也是时候给大家介绍一下了。
PyMel是Luma Pictures内部开发的,自从它问世以来的一年内就参与了很多令人映像深刻的电影和游 ...
Maya
nDynamic:之前有接触过一下,计划年内能熟练,运用自如;
Fluid:基本不懂,计划年内能熟练,运用自如;
Hair:只懂皮毛,计划年内能熟练,运用自如;
Muscle:没用过,目标能出Demo Real;
Python API:能曾加API的认识就行,因为实在是太难了;
Render:学习Mental ray及renderman
Houdini
了解houdini的运作方式,学会基本操作,学习HScript和Python API(HOM)
Nuke
学会基本操作,能做基本的合成,学习并熟练常用Python命令
PyQt
加强认知度,并深入学习
获取当前所选物体,是在编写工具时经常用到的,我们来看看API和Mel及Python命令的代码
API
import maya.OpenMaya as om
# 创建一个MSelectionList实例
selList = om.MSelectionList()
# 将当前所选物体加入到 selList
om.MGlobal.getActiveSelectionList(selList)
# 创建一个空列表来存储结果
selObjs = []
# 将所选物体以字符串列表填充给 selObjs
selList.getSelectionStrings(sel)
...