用MEL脚本自动化螺旋形粒子设置过程
来源:互联网 发布:数码宝贝网络侦探推荐 编辑:程序博客网 时间:2024/04/29 12:38
1、创建一条曲线
2、确定曲线选中
3、点击shelf
脚本如下:
string $selection_list[] = `ls -sl`;
string $curveSelected = $selection_list[0];
float $startOffset = 0.1;
float $speed = (1.0/24.0);
offsetCurve -d $startOffset -n ($curveSelected + "guide");
float $startPoint[] = `pointOnCurve -pr 0 -p $curveSelected`;
float $startTangent[] = `pointOnCurve -pr 0 -nt $curveSelected`;
float $startGuide[] = `pointOnCurve -pr 0 -p ($curveSelected + "guide")`;
float $startNormal[];
$startNormal[0] = $startGuide[0] =$startPoint[0];
$startNormal[1] = $startGuide[1] =$startPoint[1];
$startNormal[2] = $startGuide[2] =$startPoint[2];
emitter -pos $startGuide[0] $startGuide[1] $startGuide[2] -dx $startTangent[0] -dy $startTangent[1]
-dz $startTangent[2] -n ($curveSelected + "emitter") -spd 0.0 -type dir;
particle -n ($curveSelected + "particles");
setAttr ($curveSelected + "particlesShape.expressionsAfterDynamics") true;
select -r ($curveSelected + "particlesShape");
addAttr -ln "speed" -at "float";
setAttr ($curveSelected +"particlesShape.speed") $speed;
addAttr -ln "scaleOffset" -at "float";
setAttr ($curveSelected + "particlesShape.scaleOffset") $startOffset;
connectDynamic -em ($curveSelected + "emitter") ($curveSelected + "particles");
parent ($curveSelected + "emitter") $curveSelected;
string $mainCurveInfoNode = `pointOnCurve -ch on -pr 0 $curveSelected`;
string $guideCurveInfoNode = `pointOnCurve -ch on -pr 0 ($curveSelected + "guide")`;
string $exprString = "float $curve_param = " + $curveSelected + "particlesShape.age*" +
$curveSelected + "particlesShape.speed;/n" +
"setAttr " + $mainCurveInfoNode + ".parameter $curve_param;/n" +
"setAttr " + $guideCurveInfoNode + ".parameter $curve_param;/n" +
"float $pos[] = `getAttr " + $mainCurveInfoNode + ".position`;/n" +
"float $tan[] = `getAttr " + $mainCurveInfoNode + ".normalizedTangent`;/n" +
"float $normEnd[] = `getAttr " + $guideCurveInfoNode + ".position`;/n" +
"float $norm[];/n" +
"$norm[0] = $normEnd[0] - $pos[0];/n" +
"$norm[1] = $normEnd[1] - $pos[1];/n" +
"$norm[2] = $normEnd[2] - $pos[2];/n" +
"vector $posvec = <<$pos[0],$pos[1],$pos[2]>>;/n" +
"vector $tanvec = <<$tan[0],$tan[1],$tan[2]>>;/n" +
"vector $normvec = unit(<<$norm[0],$norm[1],$norm[2]>>);/n" +
"vector $norm2vec = cross($tanvec,$normvec);/n" +
$curveSelected + "particlesShape.position = $posvec + /n" +
"(" + $curveSelected + "particlesShape.scaleOffset * $normvec *cos(" +
$curveSelected + "particlesShape.age*20)) + /n" +
"(" + $curveSelected + "particlesShape.scaleOffset*sin(" +
$curveSelected + "particlesShape.age * 20));/n";
dynExpression -rbd -s $exprString ($curveSelected + "particles");
dynExpression -c -s $exprString ($curveSelected + "particles");
- 用MEL脚本自动化螺旋形粒子设置过程
- Ogre: Ogre粒子系统脚本加载过程及脚本属性设置
- dpdk自动化编译设置脚本
- 螺旋形数组
- 用MEL写MAYA界面
- [suDLS.mel]3Delight渲染shave自动化工具
- Linux系统LVM逻辑卷创建过程以及自动化脚本
- Ogre 粒子系统及粒子脚本
- Ogre 粒子系统及粒子脚本
- Ogre 粒子系统及粒子脚本
- Ogre 粒子系统及粒子脚本
- Ogre粒子系统 以及 粒子脚本
- Ogre 粒子系统及粒子脚本
- Ogre 粒子系统及粒子脚本
- 粒子滤波计算过程
- 生成螺旋形数字列、螺旋形质数点阵
- 巧用脚本自动化烧写文件系统
- 用Python开发自动化测试脚本
- proc的游标操作
- 初到菜鸟
- 第一篇技术日志
- compile condor
- 数据类型,数据格式,物理字节长度
- 用MEL脚本自动化螺旋形粒子设置过程
- proc调用存储过程
- Linux开机启动过程分析
- BerkeleyDB环境API
- 客户端与服务器会话跟踪的三种方法
- mysql乱码解决方案
- proc动态插入操作
- 飞信聊天记录备份到Gmail的软件
- proc的动态游标操作