前言
前段时间研究使用Maya重定向动画,但一个一个手动操作还是有点心烦,所以我花了2天时间学习了Pyhton并写了这个插件(本人有c++、qt、JavaScript经验所以学的快),在这个过程也积累了一些心得在此分享给大家。另外祝大家劳动节快乐。
以下是我写的插件,一个通过HumanIK批量重定向动画的工具:https://github.com/blueroseslol/DccToolgithub.com
可以帮助动画公司将biped骨骼动画批量重定向到Ue4或者其他骨骼上。里面有很多HumanIK控制代码以及文件导入与导出代码可以参考。如果有什么问题欢迎交流。
这个插件的重定向原理可以参考之前写的文章:bluerose:外包过程中的动画重定向以及蒙皮调整经验zhuanlan.zhihu.com
2020.5.6本人更新了ue4 HumanIK Skeleton definition,只需要指定root骨骼后再加载模板文件就可以指定完所有骨骼,以方便大家进行接下来的操作,你也可以在这个模板基础上进行修改。
前期准备
开发环境搭建推荐看这篇文章怎么用VS Code编写Maya脚本(VS Code 下的 Maya Python(MEL) 环境搭建)www.jianshu.com
本人是通过《Maya Python游戏与影视编程指南》一书来学习实用Python开发Maya插件,书中也介绍了Python的语法。使得没有Python基础的人也可以很好的学习。同时他也介绍了Maya插件开发的命令模式与API模式。通俗的说就是用Maya的内置命令与实用Maya的API。Maya API更加适合专业插件开发者使用。举个书中例子,API中的基础对象MObject是一个指针对象。所以使用c#或者c++会更加适合API模式的开发吧。
不过这本书的很多翻译都感觉怪怪,这是它位移的缺点。
我使用Vscode进行开发,除了必须的Python(打开一个Py文件就会提示安装)插件外,我还使用MayaPy与MayaCode。为了能让MayaPy将代码发送到Maya中执行,还需要再Maya中执行一段开启端口的命令:
Mel
commandPort -name "localhost:7001" -sourceType "mel" -echoOutput;
Python
import maya.cmds as cmds
cmds.commandPort(name=":7001", sourceType="mel",ec