Learn
未读
minq是一个在maya场景中快速物体对象查询的库
仓库地址:https://github.com/theodox/minq
minq简单介绍这个项目是为了减少Maya中每次对物体查询时,用到命令比如ls(),listRelatives()和listHistory()的频次。意在直接了当的获取所需的物体对象。
举个例子,比如我们想找到场景中角色的IK手柄,你需要:
1234567iks = cmds.ls(type = 'ikHandle') or []for ik in iks: parents = cmds.listRelatives(ik, p=True) for p in parents: if p.split("|")[-1] == 1: return preturn None
对于一个简单的需求,这显然会产生很多的代码。而且不同的命令返回的结果格式不一样,比如ls()返回一个列表,你需要在后面加上[]。如果你想要返回完整的物体路径,使用ls()还需要添加long参数,使用listR ...
动画相关获取物体有多少个关键帧cmds.keyframe(name, q=True, keyframeCount=True)
获取物体第一个动画帧帧数cmds.findKeyframe(name, which='first')
获取物体最后一个动画帧帧数cmds.findKeyframe(name, which='last')
修复乱轴曲线cmds.filterCurve(name_list)
复制粘贴单个指定属性动画123# 这里是复制摄像机焦距动画cmds.copyKey(cam, at='fl')cmds.pasteKey(dup_cam, at='fl')
显示层设置显示层的颜色123cmds.setAttr(layerName+'.color', index)cmds.setAttr(dag+'.overrideEnabled', True)cmds.setAttr(dag+'.overrideColor', index)
列出跟物体连接的显 ...
收集一些常用的Maya环境变量,方便用的时候查。有关PATH的变量,Mac OS X中使用:分隔,Windows和Linux中使用;分隔。
Variable
Description
MAYA_IGNORE_DIALOGS
打开maya场景禁止弹出警告框
MAYA_DISABLE_CLIC_IPM
禁用Cloud登陆
MAYA_DISABLE_CIP
禁用CIP(客户参与计划)
MAYA_DISABLE_CER
禁用CER(客户错误报告)
MAYA_NO_CONSOLE_WINDOW
隐藏启动时的控制台窗口
MAYA_CMD_FILE_OUTPUT
在启动时启用cmdFileOutput命令,使脚本辑器中的内容自动输出到指定文件
MAYA_MODULE_PATH
定义maya模块的搜索路径(*.mod )
MAYA_PLUG_IN_PATH
定义maya插件搜索路径(*.py *.mll *.so *.bundle )
MAYA_SCRIPT_PATH
定义mel脚本搜索路径(*.mel )
MAYA_PRESET_PATH
定义预设路径 ...
Learn
未读节点动画操作1234567891011121314151617181920212223242526272829303132333435363738# 设置为可key帧状态node = nuke.toNode("Blur1")knob = node["size"]knob.setAnimated()# 给指定帧数key帧,第一个参数是数值,第二个参数是帧数knob.setValueAt(55, 10)# 比如size属性,有x和y两个值的时候,使用第三个参数来控制knob.setValueAt(77, 100, 0)knob.setValueAt(88, 100, 1)# 判断一个属性是否有关键帧print knob.isAnimated()# 获取key帧动画print knob.animations()# 只获取size属性中,h的动画print knob.animations(1)# 获取size属性中,h的每一个关键帧和对应的数值animation = knob.animation(1)for key in animation.keys() ...
Article
未读关于将py文件编译为pyd当你想把一个python脚本分享出去,又不想暴露源码的时候,可以将py文件编译成pyd或pyc文件。
pyd格式是D语言(C/C++综合进化版本)生成的二进制文件,实际也会是dll文件。该文件不可以被反编译,只能被反汇编。
而pyc文件,虽然也是py编译后的格式,但是pyc非常容易被反编译,基本上可以说编译了个寂寞。
我之前用过angelic47大佬写的pyprotect,这是个第三方python加密混淆工具,编译后的pyc代码也具有很高的反编译难度。(其实我自身更偏向于pyc文件,不用像pyd一样太考虑解释器版本和系统平台)
不过后来pyprotect工具无法使用了,这也是我开始使用pyd格式进行编译的原因。废话到这里,下面开始说下整个编译过程。(这里以Maya2018为例)
1.找到MSC版本和对应VS版本msc是微软的C编译器,安装对应的VS版本会带有。
如何查看MSC版本,这里有两种方式:
使用cmd命令行工具,打开C:\Program Files\Autodesk\Maya2018\bin\mayapy.exe
或者在Maya的scr ...
Article
未读
关于“你的文件贼健康”算是一个过时的话题了,不过发现身边的朋友很多还是不知道怎么处理,或还在使用一些比较繁琐的处理方式:
1.比如每次打开文件之前用文本编辑器搜索关键字2.打开文件时取消勾选Execute script nodes3.将userSetup文件改为只读等等…
这里推荐一个最简单的处理方式,也就是安装一个Maya插件: sceneCallback使用插件后,当打开带有“贼健康”的文件时,Maya会弹出提示,并选择直接删除它。(如下图所示)
有了这个插件后,我们不需要关心文件是否被感染,不需要在打开文件前做预先检查和其他操作,正常打开文件即可。插件会帮助我们拦截“贼健康”,并删除它。
这个插件是甜菜大大写的,插件的github开源地址:https://github.com/cundesi/maya_utils(如果好用可以给它点一个Star)
也可以关注一下他的这篇文章:https://mp.weixin.qq.com/s/TW_YqDBvrlGuafHqyGEnhw
下面是插件整个安装过程1.下载插件去github地址下载它https://github.com/cu ...
Article
未读废话在前从外包收回来文件,maya里reference路径都是他们本机的路径,要打开文件每次要手动重新指认,资产一旦多起来就很麻烦。
后来找朋友要了一个批量替换reference的工具,但是有一些问题,比如:
一次只能替换一个路径
无法预先知道文件里使用的ref路径是什么
当时有40多个文件,4个不同的rig资产路径。于是我就用那个工具把40多个文件替换了4次。替换完发现,都没有替换成功。(因为我是手动复制粘贴的路径到工具中,\斜杠的方向不对)
基于上述的惨痛经历,决定自己写一个好了。工具长这样:
工具使用1.扫描文件输入路径,工具会对文件夹下每个ma文件进行扫描,然后得知这些文件使用了哪些reference。
扫描结果:
2.路径预替换注意:预替换操作是将需要替换的路径信息给到工具,并不是实际执行路径替换。双击需要替换的路径,在对话框里输入新的路径即可。(可以看到新路径前会用*号来标识)
在替换路径的时候,有一个Match Naming的勾选项。
作用是匹配文件名,一次替换多条reference路径。
3.执行替换操作点击Replace执行操作,看到Scan d ...
Article
未读前言一个从事vfx行业的打工人,要积累非常多零碎的技能知识。(无论是来自工作中的经验技巧,还是教程学习)
而每次真正遇到问题的时候,会发现这个问题好像是在某个教程里讲过,又或是经过不停的试错,曾经找出过解决方案。但时隔已久,具体如何实现已经不记得了。
除了那些核心和常用的,大多零碎知识很容易被遗忘。要拯救你的记忆,要么进行阶段性的复习,要么把学习历程记录成笔记。
记笔记有什么好处?打个比方,我自己的职业是需要给不同的DCC软件写一些工具扩展。而每个DCC软件都有大量的命令,参数和用法,不可能把它们全记在脑海里。
假设要写一个Nuke脚本,它涉及到节点动画操作,有想起之前有看过教程学习过,也记录到了notion中,这样就可以很快定位到需要的结果。
其实写这篇文章就是想向大家推荐一款笔记应用:Notion官网:https://www.notion.so/
笔者大概是从去年开始使用的Notion,它给我的感觉是易用,灵活,设计美观。并且是一款让人很乐意打开使用的笔记软件。
用它来搭建个人知识wiki再合适不过。
下面是对Notion的一些介绍。
页面一款笔记应用,最 ...
Article
未读简述Matchmoving是后期视效制作中使用的一种技术,主要是对镜头画面进行摄像机反求和运动追踪。
摄像机反求,通俗来说就是通过追踪的二维点解算,还原镜头拍摄时真实的三维像机路径。
在实际工作中,matchmoving人员还会涉及到一点layout的工作。
layout翻译过来是布局,在求得三维相机后,需根据空间比例,透视关系,进行拍摄场景的还原。即是将前期拍摄时的摄像机,被摄的人物与场景,在三维软件中进行虚拟重建。下游组在得到“布局”好的文件后,才能往里放入三维动画,模型,特效等元素。
所以matchmoving在整个制作中是比较上游的部分,是完成一个特效镜头的“地基”。
历史最早的VFX跟踪使用可能是在1985年,其来源于导弹制导系统中使用跟踪的概念。
在没有数字跟踪前,对于大多数特效镜头,相机都是静止不动的。
ILM拥有一个称为MM2的早期2D跟踪软件系统,该系统首先在《Hook and Death Becomes Her》中进行了测试。MM2不是自动化工具,而是手动2D微调工具,艺术家可以通过该工具手动更改位置关键帧。
而后,ILM的TD基于Fourier-domain算法 ...
Article
未读8.快速选择集Maya的Create Quick Set可以创建快速选择集。比如一个动画师在制作手部动画,需要每次对手上的十多个控制器一起key帧。这里就可以创建快速选择集。
首先选择好手指上需要的控制器。
菜单栏 Create - Sets - Quick Select Set
给这个Set命名,点击Add to Shelf(将会创建一个按钮在当前的shelf上)。
点击这个按钮就可以快速选择集里面的控制器。
9.快捷键G 重复上一个操作这是一个很实用的快捷键,假设这样一个场景:需要将多个物体一起约束到同一个locator上,这里不借助脚本的话,只能一个一个选择,每次去点击parent界面按钮。
在这样的情况下,就可以使用快捷键g来重复进行上一个操作,如下图所示,选择好约束的目标,按下g。
10.撤销“一段”操作crtl+z 可以撤销上一步操作。而在一些特殊情况下,我们可能会需要撤销””一段”操作。如下图所示:
通过上面的演示可以看到:先是给了box细分,再进行了两次挤出。执行undo后,撤销了刚刚的所有操作。
这里借助了两个命令来实现这个功能。我将它 ...