maya藤蔓插件_Maya特效制作之植物生长动画制作教程(二)之多条藤蔓动画制作...

四、制作多条蔓藤植物

下面我们要让很多植物在这个“崖壁”上生长出来,也就是要重复很多次前面的工作,当然可以这样一步一步地做,在“崖壁”面片上手动画很多的线,但下面尝试一种新的方法来制作,让粒子在“崖壁”面片Plane _Wall上产生很多条曲线。

(1) 用上一节中相同的方法在Plane. Wal上再画一条曲线,用于发射粒子,这条曲线的位置就是植物生长的最初位置,如图所示。

87fa717a996fb7312566351e062928d3.png

(2)从曲线发射粒子。选择这条曲线,然后执行主菜单命令Particle> Emit from Object (粒子>从对象发射),建立一个粒子发射器,设置Emitter type (发射器类型)为Curve (曲线), 在新创建的发射器Rate (速率)属性上Key帧,设置60帧时的参数值为50,65帧时的参数值为0,并将发射速度调为0,如图所示。

0b83bd6a50886c9656930b20285f8800.png

(3)选择新产生的粒子particlel,然后加选“崖壁”面片Plane_ Wall,执行菜单命令Particle>Goal (粒子>目标),在属性编辑器中设置Goal weight (目标权重)值为1,然后为粒子添加属性(goalU, goalV) 。

(4) 现在我们在Script Editor (脚本编辑器)中输入命令“createNode closestPointOnSurface",这样会产生一个closestPointOnSurface节点,这个节点可以求出粒子到NURBS平面上最近距离点的位置和UV值。重命名这个节点为“cPOS1”,如图所示。

d9c1772b0b6a0063017ade560d410ecc.png

(5)在Outiner (大纲视图)窗口中的Display (展示)菜单下,不勾选DAG Objects Only (仅DAG对象),便可以找到这个节点,如图所示。

1f97be369cf6d82b819fdb9afba45817.png

(6)打开Connection Editor (连接编辑器)窗口,把plane. WallShape的World Space连接到cPOS1的Input Surface上,如图所示。

8906cbca1da2c2f6ec57e888f44fe1b4.png

(7)在粒子上写表达式,如图所示。

47b643f57d474621e0d9ec2e454cd49b.png

在粒子creation表达式里写下如下命令

vector $pos=particleShape1. position;

setAttr "cPOS1.inPositionX" ($pos.x);

setAttr "cPOS1.inPositionY" ($pos.y);

setAttr "cPOS1.inPositionZ" ($pos.z);

particleShape1.goalU=' getAttr cPOS1.parameterU';

particleShape1.goalV=' getAttr cPOS1,parameterV;

vector $pos=particleShapel. position;

curve -d 1 -p ($pos.x) ($pos.y) ($pos.z) -n ("Ij curve" + particleShapel particed);

在粒子Runtime before dynamics里写如下表达式,如图所示。

f62b95a65529ca3802ae5de6979f136c.png

float $stepU=0.01*sin(particleShape1.particled);

float SstepV=0.035*cos(articleShape1 particleld)* abs(oise(articleShape.particleld+rame);

particleShape1.goalU+ = $stepU;

particleShape1.goalV + =$stepV;

vector $pos =particleShape1.position;

curve -a -P ($pos.x) ($pos.y) ($pos.z) ("Ii .curve" + particleShape1.particleld);

下面我们来分析一下表达式中每-句话的作用。

在creation表达式里:

vector $pos= particleShape1.position;

setAttr "CPOS1.inPositionX" ($pos.x);

setAttrt“cPOS1.inPositionY" ($pos.y);

setAttr "cPOS1.inPositionZ" ($pos.z);

以上几句,会把粒子的空间位置连接到cPOS1节点上,这样cPOS1这个节点就能计算出粒子到平面plane. WallShape上最近点的UV值,cPOS1 parameterU和cPOS1.parameterV,然后就让粒子的初始(goalU goalV)等于这个值,也就是接下来的两句:

particleShape1.goalU= getAttr cPOS1.parameterU';

particleShape1.goalV= getAttr cPOS1.parameterV;

下面两句的作用是根据粒子的空间位置和粒子的ID号,为每一个粒子-出生就创建一条曲线,并且要根据粒子的ID号为曲线取一个新的名称,这个是必须的,因为在接下来的Runtime before dynamics表达式中,我们要用到这个曲线名称。

vector $pos = particleShapel. position;

curve -d 1 -p ($pos.x) ($pos.y) ($pos.z) -n ("Ij curve"+ particleShape1 particleld);

在Runtime before dynamics表达式里:

float $stepU=0.01 *sin(particleShape1.particleld);

float $stepV=0.035*cos(particleShape1 particleld)*abs(noise(particleShape1. particleld+frame));

particleShape1.goalU+ = $stepU;

particleShape1.goalV+ =sstepV;

以上几句的作用,就是让粒子在平面上运动起来,我们知道(sin ,cos)是一个- 1到1的范围,如果我们的取值足够多,粒子就会呈一个圆形向四周运动,从而使产生的曲线分布均匀。

下面两句的作用是根据粒子的位置和曲线的名称,不断加长曲线的长度,从而实现曲线跟着粒子的运动而生长。

vector $pos = particleShape1.position;

curve -a -p ($pos.x) ($pos.y) ($pos.z) ("IjL curve" + particleShape1,particleld);

(8)播放动画至150帧位置,此时在画面中就会产生很多的曲线,如图所示 。

c49291db715fafd9ea3f3d4bc492f498.png

下面就用这些线曲线来生长植物,然后删除镜头外的曲线,或者删除不喜欢的曲线,节省资源。

Tips :如果读者习惯用粒子创建曲线,只要想像力丰富,可以做出多种特效,这是用Maya粒子做特效的一个基本技能,一定要掌握。

(9)删除粒子,选中所有新生成的曲线,单击菜单命令Edit Curves> Rebuild Curve (编辑曲线>重建曲线)后面的口按钮,在打开的Rebuild Curve Options (重建曲线选项)窗口中设置Number of span (跨度数)值为8,单击Rebuild (重建)按钮优化曲线,然后删除历史,如图所示。

3406f5e28785e6b50e936a27f0439d89.png

Tips:现在的破法,粒子产生完曲线后已经没有用了,所以要将其删除。读者可以尝试一下,粒子一边产生曲线。同时一边产生植物的做法.

(10)选中所有曲线,执行菜单PaintEffects > Curve Utilites> Attach Brush To Curve (PaintEfects>曲线工具>将笔刷附加到曲线)命令;选择最初产生的那个笔触(在上面第4步中产生的) ,执行菜单Painteffects > Get Setting from Selected Stroke (PaintEffects> 从选定笔画获取设置)命令,选择所有新产生的笔触,再执行菜单Paint Effects > Apply Setting to Selected Stroke (PaintEffects> 将设置应用于选定笔画)命令,这样原先产生的植物的所有属性就一模一样地赋给了我们新产生的植物。

(11)选择所有新产生的笔触,在Max Clip (最大片段)属性上key帧,在第60帧时设置参数值为0.2,在第150帧时设置参数值为1,如果想让动画有一些变化, 也可以分开单独调节,如图所示。

fab2af48351d74c4a69e67efb2f86657.png

下面我们开始打灯光,准备渲染输出。

(12)新建一盏聚光灯,模拟场景中的太阳光,打开灯光阴影,同时打开笔触的投射阴影。

Tips:测试灯光时,为了加快效率,可以先把大部分植物隐藏,最终渲染时再显示出来;修改多个笔触的属性时,可以用菜单命令Paint Effects>Share One Brush (Paint Effects>共享一个笔刷) 。

(13)渲染输出的效果如图所示。

5526592cb8793439aedf4848bd816b35.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245073.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql数据库导入导出_MySQL数据库导入导出详解

MySQL数据库的导入,有两种方法:1) 先导出数据库SQL脚本,再导入;2) 直接拷贝数据库目录和文件。在不同操作系统或MySQL版本情况1. 概述MySQL数据库的导入,有两种方法:1) 先导出数据库SQL脚本,再导…

代码统计工具有哪几种_跟我学“Linux”小程序Web版开发(四):引入统计及Crash收集...

在完成了产品的基础开发以后,接下来需要进行一些周边的工作,这些周边工具将会帮助下一步优化产品。在完成了产品的基础开发以后,接下来需要进行一些周边的工作,这些周边工具将会帮助下一步优化产品。为什么要加应用统计和 Crash 收…

错误:不能继续进行下一步操作 openfire 设置._如何为MacBook或Mac电脑恢复出厂设置...

mac电脑经过长时间的使用后会变得卡顿,或者因为部分操作方式改变以至于给我们在使用过程中造成障碍,此时我们可以进行恢复出厂设置,以此来解决部分问题。那么该如何为MacBook或Mac电脑恢复出厂设置呢?下面跟随小编来一起学习一下吧…

mac显示网速_Mac网络流量监控工具——NetWorker pro

NetWorker pro for Mac是Mac系统上一款轻量级的网速实时监测软件,可以让用户在菜单栏上显示当前的网络上传下载速度,可以在速度和流量两种模式之间切换,也可以选择不同的网络模式来进行监测。此外,networker mac还提供有关当前活动…

matlab gui学习手记_MATLAB论坛不可错过的30例GUI源代码

​过去的两年中,我经常会在微信公众号和知乎上分享,平时如何通过MATLAB制作GUI,来让自己的工作和生活更加便捷与高效。在分享的同时,有不少朋友会给我留言提问关于MATLAB GUI的问题。而其中的许多问题,其实都是能够在M…

线性回归csv数据集_用mxnet的gluon线性回归训练只有两个特征的数据集

前言自从上次试着用最基础的线性回归训练一个有80个特征的数据集,梯度爆炸之后,今天拿一个简单到不能再简单的数据集试试能不能成功收敛。途中我们又会遇到什么问题?数据集来自吴恩达机器学习课程第二周的课后练习。原本是txt文件&#xff0c…

java中include标签的用法_原 ng-include用法分析以及多标签页面的简单实现方式

在平时的项目开发中,应该会经常遇到上图所示的需求,就是在一个页面中有多个标签,被选中的标签颜色会高亮显示,切换不同标签显示相应的不同内容。如果内容代码过多则写在同一个html文件就会显得特别乱,所以这里我们最好…

禅道项目管理_禅道 11.6.1 版本发布,完善细节,修复 Bug

禅道项目管理软件集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体,是一款功能完备的项目管理软件,完美地覆盖了项目管理的核心流程。禅道官网:www.zentao.net。大家好,禅道项目管理软件11.6.1发布&#xff0…

mendeley引用参考文献不显示_免费文献管理器Mendeley

June 2020有机合成化学文献检索今天小编给大家分享一款免费又好用的文献管理器——Mendeley,另外晶体cif文件下载—Materialsproject和COD数据库可在菜单栏的文献检索[文献管理/资源]中查看Mendeley是什么Mendeley是一款免费的跨平台文献管理软件,同时也…

停车场管理系统代码_jsp19109商场商铺停车场服务系统-SSM-Mysql

jsp19109商场商铺停车场服务系统-SSM-Mysql该设计有演示视频    100%能运行买重包换  保密发送  一校一份编号:jsp19109语言数据库:jspMysql论文字数:12032字摘 要随着社会的发展,社会的方方面面都在利用信息化时代的优势。计…

qregexp限制数字范围_数字系统实现电压电流控制的必经之路数模转换器

《芯势力》系列接上一篇文章,我们了解到了模数转换器,本文将带你了解数模转换器。看名字就能知道,如果模数转换器实现了模拟信号到数字信号的转换,那么,数模转换器就是模数转换器的逆过程,即把数字信号转换…

js方式调用php_js如何调用php函数

js调用php函数的方法:jQuery.ajax({type: "POST",url: your_functions_address.php,dataType: json,data: {functionname: add, arguments: [1, 2]},success: function (obj, textstatus) {if( !(error in obj) ) {yourVariable obj.result;}else {conso…

最大子序列求和_算法——求最大子段和

一、问题描述给定由n个整数组成的序列(a_1,a_2,…,a_n),最大子段和问题要求该序列形如 的最大值(1≤i≤j≤n),当序列中所有整数均为负整数时,其最大子段和为0。例如,序列(-20, 11, -4, 13, -5, -2)的最大子段和为: 注意…

seo黑帽劫持用的php,黑帽seo 论坛:黑帽seo防止网站被k的js劫持跳转代码

由于目前百度搜索百度搜索引擎对于js代码还没有办法完全辨别,因此也就出现了运用js代码跳转的黑帽优化提升手法。现如今在网络上有关js跳转代码不计其数,但是作为黑帽优化提升的seo手法之一,如何确保有效降低跳转的网址被k危害性,…

oracle 同义词_【干货7】Oracle知识关键代码摘要

(如果我分享的干货内容对你有帮助,可以通过赞或者评论的方式告诉我,我会持续分享;或者留言你想要的IT方面的支持,我将分享大家感兴趣的IT类技术干货;如果没有收到大家的反馈,10天后我将停止技术…

qt做的接收串口数据并显示曲线_QT无人机地面站设计与制作

近年来,无人机可谓是大火。无论是军事,还是民用,它的地位更是不用说。但,如何利用利用现有技术对无人机的信息进行操作,实现人、机合一呢?“无人机地面站”应运而生,结合仿真系统为地面工作人员…

php直接读取csv文件,php实现的读取CSV文件函数示例

本文实例讲述了php实现的读取CSV文件函数。分享给大家供大家参考,具体如下:function read_csv($cvs) {$shuang false;$str file_get_contents($cvs);for ($i0;$iif($str{$i}") {if($shuang) {if($str{$i1}") {$str{$i} *;$str{$i1} *;} el…

系统背景描述_【计算机论文】管件加工管理系统和数据库的结构探析

摘 要:结合"中国制造2025"及德国"工业4.0"的发展趋势,概述目前国内管件生产加工流程的现状和不足,基于对管件加工过程中管件之间的差别、管件加工批次的混合等特点导致的管理难点分析,介绍管件生产加工管理系统的设计思路和工作流程,并对该系统未来可进一步…

shell tr 替换 空格_Shell 字符串分隔符!!!(全网最详细总结)

前言:在shell脚本编程中,我们经常会用到切割字符串,类似于python中的split。但shell中的命令比较五花八门,小编也是苦扰了很久,终于下定决心对它做一个总结。方法一:字符串替换法#/bin/bashstring"Hel…

本机用域名不能访问_域名注册申请网站域名注意事项

互联网用户越来越多,也有越来越多人搭建网站,做个人博客也好、搭建企业官网也好,数量都在逐步上升。做网站的数量在上升,域名注册量肯定也在上升。有的朋友头一次注册域名,对域名不了解也不知道申请网站域名该注意哪些…