2009年11月18日星期三

2009年5月23日星期六

autorig的maya前端

highend3d上的链接
http://highend3d.com/maya/downloads/mel_scripts/character/5753.html

这里是论文,MIT的phd啊
http://www.mit.edu/~ibaran/autorig/

linux和macosx:
highend3d上只提供了win版的,前端是python写的,不过需要autorig的执行文件。autorig的程序叫Pinocchio,源码可以从http://github.com/elrond79/Pinocchio/tree/master下载。makefile有点小问题,需要自己加tab。

2008年12月14日星期日

定制右键标记菜单

在dagMenuProc.mel的dagMenuProc过程定义了各种不同物体的右键标记菜单。
比如,在
if (($object == "CubeCompass"))
{
createViewCubeMenuItems($parent);
return;
}
的下面加入:
if(`attributeExists "extNode" $object`){
print ($object+" RMB menu proc calls!\n");
return;

}

重新加载dagMenuProc.mel,新建一个物体,增加一个属性:extNode,类别任意。
再这个物体上使用右键菜单时,就会输出OBJECT NAME RMB menu proc calls!
如果在$parent上加入菜单,就可以显示菜单了。

技术细节:
dagMenuProc并没有出现在文档中,更详细的信息也没法得到,从网上搜索到的信息表明rmb标记菜单是附加在dag属性上的。
Maya's dagMenuProc script controls Right-Mouse-Button clicking on objects in the model viewports.

2008年12月12日星期五

boost::regex匹配序列文件名2

regex默认是perl的语法,但是一些细微的地方和perl的不尽相同。今天就在这上面吃大亏了。

std::string regstr2="("+name+")([0-9]+{"+ia+"})([.]"+ext+")";
boost::regex expression2(regstr2);
就这两句,编译的时候没有问题,一运行就出错,总是说表达式不合法。折腾了半晚上才发现[0-9]+外面要加()才行。
用reggy工具的时候就没有这个问题([0-9]+){3}和[0-9]+{3}是同样的效果,在boost里后者就是不合法的表达式。

boost::regex匹配序列文件名

#include
#include
int main() {
std::string regstr = "(^.*/)([^/]+?)([0-9]+)([.])([^./]+$)";
boost::regex expression(regstr);
std::string testString = "/Users/cobranail/Documents/helghast_sub_ver2.4_mesh006.jpg";
boost::smatch what;
std::string::const_iterator start = testString.begin();
std::string::const_iterator end = testString.end();
while( boost::regex_search(start, end, what, expression) )
{

std::string path(what[1].first, what[1].second);
std::string name(what[2].first, what[2].second);
std::string index(what[3].first, what[3].second);
std::string ext(what[5].first, what[5].second);
std::cout<< "path:" << path.c_str() << std::endl;
std::cout<< "name:" << name.c_str() << std::endl;
std::cout<< "index:" << index.c_str() << std::endl;
std::cout<< "ext:" < start = what[0].second;
}

return 0;
}

可以匹配的文件名:
filename.001.ext
filename001.ext
filename1.ext
file.name.001.ext
file.name001.ext

(^.*/) ---->path
([^/]+?) ---->file
([0-9]+) ---->index
([.]) ------->dot
([^./]+$) ---->ext


参考

2008年8月6日星期三

umf converter

e-motek的umfconv的mac版里destination format那个下拉列表看起来无法选中,其实只是没有显示而已,按下去,拖动鼠标再放开,可以看到格式可以变化。当然不能输入文字的问题估计是无法解决了。

2008年7月4日星期五

ginac另一个符号代数库

http://www.ginac.de/
c++的,大概看了一下演示,效果还不错,使用起来也方便。