• 微课视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
微课江湖
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 微课视频
  • photoshop
  • Fireworks
  • CorelDraw
  • Illustrator
  • Painter
  • Freehand
  • Indesign
  • flash
  • maya
  • autocad
  • 3dmax
您的位置:首页 > 平面设计 >maya > Maya粒子替换实现射箭效果图文教程

Maya粒子替换实现射箭效果图文教程

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-05-24

佚名 向大家分享了Maya粒子替换实现射箭效果图文教程,其中包含maya粒子融合,maya粒子,maya粒子特效,maya粒子替代,maya粒子教程等知识点,遇到此问题的同学们可以参考下

由于最近想做一个用粒子替换实现射箭的特效,一时摸不着头脑。粒子替换实现射箭的效果的最大问题在于,如果用粒子的速度velocity作为instancer的Aim Direction,那么一旦粒子与地面产生碰撞(这里我们碰撞属性中的摩擦力Friciton设置为1,弹力Resilience设置为0),势必导致速度瞬时变为0,使得箭无法插在地面上,而是一碰到地面就倒下。

于是网上找了一下相关教程特别是G_no_mon的在线教程给了我很多提示。国内大部分相关教程也是翻译的那个版本,该教程提供的解决方案是使用了一个JMS的脚本,先是通过记录粒子的运动轨迹生成若干条曲线,然后将曲线上的的末端的一些点给删除了(也就是粒子碰撞地面后生成的轨迹点),最后让剑沿着这些曲线做"路径动画"。从而实现乱箭射在地面上(或是其他物体)的效果。研究过程中觉得用JMS脚本来一遍一遍的计算生成曲线有些浪费时间,而且对于我们这些MEL初学者来说,还的另外花些时间研究下JSM(当然了,学习是必须的)。

只是我从原来的教程中得到些启发觉得可以用更为简单的方法去实现这一射箭的效果。现讲一下我的大概想法,既然我们不能直接用velocity作为instancer的Aim Direction,那么我们可以自定义一个变量用来存储粒子在碰撞前一帧,速度还没变为0的那个速度值,用该矢量速度值作为箭插在物体上的方向。为了完整起见,我把整个制作过程详细介绍一下:1.先制作一只简单的箭

Maya粒子替换实现射箭效果  MAYA角色动画教程

 2.制作一个地面,和一个用来发射箭的面

Maya粒子替换实现射箭效果  MAYA角色动画教程

3.选择用来发射箭的那个面,通过Particles Emit form object,从该面上发射粒子

Maya粒子替换实现射箭效果  MAYA角色动画教程

4.打开粒子发射器属性:emitter type :surfacerate(particles/sec): 5speed : 20speed random: 4

Maya粒子替换实现射箭效果  MAYA角色动画教程

5.给粒子加个重力场

Maya粒子替换实现射箭效果  MAYA角色动画教程

6.选中粒子和地面,打开菜单命令particles make collide 后面的属性对话框,将弹力resilience设置为0,摩擦力friction设置为1,点击create生成碰撞事件

Maya粒子替换实现射箭效果  MAYA角色动画教程

7.执行play场景,看到粒子与地面产生正确的碰撞,并停止在地面上(如果地面凹凸不平,会有滑动,不妨,这个我们稍后解决)

Maya粒子替换实现射箭效果  MAYA角色动画教程

8.先选弓箭再选粒子,打开菜单命令particles instancer

Maya粒子替换实现射箭效果  MAYA角色动画教程

9.打开粒子属性中的instancer一栏,勾启allow all data types,aimdirection设置velocity,此时播放我们就会发现剑一射中就立马"爬"下了

Maya粒子替换实现射箭效果  MAYA角色动画教程

10.解决这一问题需要添加一个自定义属性,在粒子属性窗口中add dynamic attributes一栏中,点击general,添加一个名为dirpp的每粒子属性,类型为vector矢量(此处一点要注意)

Maya粒子替换实现射箭效果  MAYA角色动画教程

 11.右击dirpp属性,添加runtime before dynamics表达式:float $speed = mag(arrow_particleshape.velocity);if($speed != 0){arrow_particleshape.dirpp = arrow_particleshape.velocity;}这里详细解释一下,我用$speed来存储粒子的速率(速度是个矢量,是三维的,速率是个标量,是一维的,函数mag()正是将三维的矢量计算得到一个相应的一维标量),只要粒子在运动,速率不为零,那么我自定义的dirpp将不停的更新为粒子的速率,而一旦碰撞产生,速度为零,那么我的dirpp就不会更新,所存储的是粒子停止之前一帧的那个速率,并且之后也将一直存储这个值,这样我们就可以用这个dirpp作为instancer的aimdirection了

Maya粒子替换实现射箭效果  MAYA角色动画教程

12. 修改粒子属性面板中instancer一栏中aim direction 为 dirpp,在播放一下看看,箭就不会射中倒下了

Maya粒子替换实现射箭效果  MAYA角色动画教程

13. 接下来要解决的问题就是,即便摩擦力为1,弹力为0了,箭还是会在地面上滑动这里我们为粒子添加个runtime after aynamics的表达式:float $speed = mag(arrow_particleshape.velocity);if($speed < 4){arrow_particleshape.velocity = <<0,0,0;}这样,当粒子在碰撞时速度小于一定值后我们将其速率强行限制为<<0,0,0,注意,你也可以试试其他的数值不一定用4,但数值不宜过小,否则箭在射出的一瞬间会有个抖动。

Maya粒子替换实现射箭效果  MAYA角色动画教程

14. 这是我们发现即使箭的速率为零了,但还是会在地面上滑动,我想到的解决方法还是和上面的差不多,用一个自定义的pospp来存储碰撞产生前一帧的position,以此来作为箭插入地面后的永久坐标选中粒子,添加自定义的每粒子属性pospp,类型还是vector(矢量)

Maya粒子替换实现射箭效果  MAYA角色动画教程

15. 右击pospp添加runtime before daynamics的表达式,这里我直接在原先的表达式的做些添加就可以了,修改后如下float $speed = mag(arrow_particleshape.velocity);if($speed != 0){arrow_particleshape.dirpp = arrow_particleshape.velocity;arrow_particleshape.pospp = arrow_particleshape.position;}else{arrow_particleshape.position = arrow_particleshape.pospp;}后果有朋友看不懂,我再解释一下其意思:

每过一帧,只要粒子速度不为零,我就将粒子的坐标值position赋给pospp,一旦产生碰撞,速度为零了,那么也就停止了position赋值给pospp这一操作,我的pospp存储的值是粒子停止前一帧所处的位置,接下来,我们反过来将这一固定了的值赋给position,以防止例子因为重力场的作用会出现position不停地在一个范围内抖动的结果。

Maya粒子替换实现射箭效果  MAYA角色动画教程

16.至此,整个过程也就差不多完成了,你也可以再为粒子添加一些扰乱场,不用担心箭射到地面出现抖动情况了

Maya粒子替换实现射箭效果  MAYA角色动画教程

ok!教程结束,希望本教程对大家有所帮助!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Maya 由软体发射粒子效果制作过程
  • Maya 7.0 粒子系统-力场全解
  • MAYA粒子碎片合成漂亮的苹果商标标志
  • Maya粒子替换实现射箭效果图文教程
  • MAYA制作粒子跟踪gif动画效果
  • maya粒子制作炫酷的烟火动画效果教程
  • maya粒子动力学——在泥地表面创建脚印实例教程

相关文章

  • 2017-05-24maya 7.0 场景物体之几何物体的组成元素
  • 2017-05-24maya简单制作汽车材质教程
  • 2017-05-24maya打造一个拥有特殊头盔的科幻女性肖像教程
  • 2017-05-24maya怎么对多部件进行结合和分离?
  • 2017-05-24maya7.0制作漂亮的红玫瑰花建模
  • 2017-05-24maya怎么制作一个万箭齐发的效果?
  • 2017-05-24maya怎么拆分物体UV?
  • 2017-05-24MAYA制作粒子跟踪gif动画效果
  • 2017-05-24Maya7.0 粒子系统创建粒子的方法介绍
  • 2017-05-24Maya怎么使用nurbs曲线快速建模?

文章分类

  • photoshop
  • Fireworks
  • CorelDraw
  • Illustrator
  • Painter
  • Freehand
  • Indesign
  • flash
  • maya
  • autocad
  • 3dmax

最近更新的内容

    • Maya7.0 骨骼动力学之骨骼动画制作教程
    • maya粒子制作草地生长的gif动画效果图
    • MAYA制作神话封神榜角色雷震子
    • Maya7.0 粒子系统- 模拟水滴相撞的效果
    • MAYA打造ganesha智慧的象头神角色教程
    • MAYA战斗机激战场景的完美贴图教程
    • MAYA 7.0恐龙建模的方法和制作步骤介绍
    • MAYA中VR参数的设置介绍
    • Maya2016怎么实现低模加法线烘焙AO贴图?
    • Maya多边形建模技巧经验分享

关于我们 - 联系我们 - 免责声明 - 网站地图

©2015-2018 All Rights Reserved. 微课江湖 版权所有