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后,撤销了刚刚的所有操作。
这里借助了两个命令来实现这个功能。我将它 ...
Article
未读前言数字时代我们常会和文字,图片,视频打交道。而作为一个cg工作者,你可能时常会有下面的需求:
批量将一堆4k的材质贴图转成2k
将exr序列帧转换成更轻便的jpg进行预览
批量给序列帧更名
把mov视频转换成序列帧
将写好的doc文档转换为pdf格式
合并一堆mov视频
面对这样的需要,我们或许会打开Nuke等DCC软件进行转换输出,或是@公司TD写一个批量工具,但其实对于以上需求,使用命令行工具,输入一行命令即可达到上述的目的。
下面为大家安利和介绍三款命令行工具,它们包含了对文字,图片,音频和视频的处理,有着命令行界的瑞士军刀称号。分别是:
ffmpeg
imagemagick
pandoc
FFmpeg一款处理音频和视频的命令行工具。官网:https://ffmpeg.org/
Windows用户可以直接从官网下载安装包,双击安装即可。Mac用户可以使用brew install ffmpeg进行安装。Linux用户…应该有自己动手安装的能力。
下面说几个常用的命令:
转码这里是将mov格式转码为mp4格式。
1ffmpeg -i input.mov outp ...
Article
未读前言收集了一些Maya使用效率的技巧。大致来源于一些博客,视频教程和平时使用的经验。
1.清理优化场景文件有时候我们拿到一个文件,明明场景里只有一个人物rig动画。但是当我们对它进行调整,或是打开保存文件的时候,会异常的慢。这有可能是场景中存在了很多未被使用的材质或动画曲线等一系列垃圾节点。
这个时候需要用到Maya自带的优化功能进行清理。
可以根据需要进行清理,不过在清理前最好先另存一下文件。
2.让Maya启动快一些关闭不使用的插件。比如对于一个动画师来说,我们不需要用到Maya的特效解算模块。所以可以在Plug-in Manager中把它们给off掉。
流体解算:
毛发解算:
特效模拟:
把它们取消勾选后,基本可以节省10s的开启时间。
还有就是Maya在2016后的版本,会多出一个登录功能。每次启动也会占用时间进行网络验证。(下图可见)
可以通过添加一个环境变量禁止这个功能。设置完后记得注销重新登陆,再次打开Maya就会看到这个登陆框已经消失了。
3.开启远处物体低质渲染比如在进行场景动画制作的时候,一些离摄像机远处的物体,不需要很高的预览质量,开启这个功 ...
Article
未读前言前段时间朋友接了个外包,实拍的原始素材在nuke里进行了变速,而一些cg动画在原素材中已经制作完成,需要一个工具对maya文件中动画进行相同的变速来匹配变速后的素材。
其实变速的原理和实现并不是特别复杂,不过繁复的数值计算需要借助脚本来实现。
然后借着节假日的最后一天,写了这个变速工具。这篇文章简单的记录下过程,并把它分享给需要的朋友。
变速的方式变速实际上是对原始素材的抽帧和补帧,而对于我们来说,最需要知道的是:变速后的每一帧,对应的是原始素材中哪一帧画面。
比如,知道变速后的1001帧,是原本的1005帧,这样把1005帧的动画复制到变速后的1001帧,就可以完成了这一帧的匹配。
为了得知变速后的对应原始帧,我们可以用这样一个验证方式。首先用软件输出一个这样的(纯数字)序列帧。
然后套上变速节点进行观察。在Nuke中常用的变速节点有Retime,OFlow,Kronos等。
首先使用retime节点做最简单的倍速变速。这里为范围1001-1100的序列帧做一个1.9倍的变速,filter就默认使用box。
点击变速后的每一帧,可以看到对应的图像。比如变速后的1 ...