Maya六种方法将物体吸附在模型上

(本文摘自网络!)

今天和大家分享下这段时间积累的一些关于将物体吸附在模型表面上的方法。

 

    一、rivet rivet 脚本可以说是实现面吸附的最经典做法,并且在此基础上发展出了其 它更成熟的插件。

主要由 curveFromMeshEdge、loft、pointOnSurfaceInfo 几个 节点来实现。

用法: polygon 上任意两边, 选 执行 rivet, 在两边之间会创建一个 locator, 用此 locator 去约束任意你想吸附的物体。

缺点:

1、只能用在 polygon 上。

2、经常出现模型变形时会翻转的情况,解决起来需要用到复杂的方法。

3、模型 smooth 后会飞掉,因为 smooth 后模型上原有边的 ID 号变了, curveFromMeshEdge 节点里记录的值就失效了。

 

    二、rivetEX rivet 的增强版, 可实现单边创建吸附, 还可以在 nurbs 面上选 Isoparm 线、 在 nurbs 线上选点来吸附。

用法:选模型一条或两条边,或者 nurbs 线上的点,执行 rivet 即可。

创建 出来的 locator 还有属性可调节位置,原理是通过改变 UV 值的方式。

缺点:1、除了可以用在 polygon 之外的物体上以外,其它缺点和 rivet 一样。

 

    三、hyperRealMeshParent 来自当年 Alias 超写实绑定系列里的插件,含金量相当高,核心上还是 rivet,它利用 closestPointOnMesh 节点(现已经改为 nearestPointOnMesh) 来计算被吸附物离模型的最近距离位置,实现同时对多个物体做吸附。此外还有 算法来查找最佳对边来杜绝模型变形时发生翻转的情况。真不愧是大师写的插 件。

用法:先在插件管理器里开启 decomposeMatrix 和 nearestPointOnMesh 两 个插件, 选择吸附物, 往后选择的全部是被吸附物, 执行 hyperRealMeshParent;

缺点:

1、依然不能 smooth 模型。

2、会在模型上产生太多节点,影响性能。

P.S: 我修改过的 hyperRealMeshParent 下载, 原先版本仅适用与 Maya7 或更早版本,hyperRealMeshParent.zip。

 

    四、djRivet 应该说是 hyperRealMeshParent 的改良版,但核心技术上用的是 hair 里的 毛囊节点,此法彻底解决了模型 smooth 后飞掉和变形翻转的问题,此外还可同 时对多个物体做吸附。

用法:选择一个或多个被吸附物体,最后选吸附体,执行 djRivet 即可。

操 作和 hyperRealMeshParent 相反。

缺点:1、毛囊法和 UV 有关,UV 变了毛囊也发生位移了,在模型未分好 UV 前 别用!

 

    五、粒子发射器 此法跟毛囊法类似,就是选面在面上创建粒子发射器,发生率打零即可。

此 法缺点也是相当明显的,首先还是 smooth 的问题,然后就是创建出的发射器不 会随着面的形变有角度上的改变,若用发射器对被吸附体做父子约束,模型发生 形变时对被吸附的影响仅是位移上的,旋转始终为零。

当然可以在模型中心或什 么地方放一个 locator 对发射器做目标约束修正这个问题,但显然太麻烦了,我 从来没有在项目中使用此法。

    六、SurfaceAttach 来自肌肉系统里的 SurfaceAttach 可以说是最成熟的技术,算是提取了 hyperRealMeshParent 和 rivetEX 的精华改良而来,针对模型 smooth 和变形翻 转它都了解决方案,被整合进 Maya 当之无愧!这是我目前在项目中稳定使 用的技术,还利用它写了一个批量将骨骼钉在选定模型面上的插件。

用法: 选择 polygon 的两边或面,或者选择 nurbs 进入 surfacepoint 模式, 在面上选一个位置,执行 Muscle–>BonusRigging–>SurfaceAttach。

创建出来 的 cMuscleSurfAttach 吸附物有一个 FixPolyFlip 属性,默认为 off,若在模型 变形时出现翻转的情况,打为 on 即可。

模型 smooth 后飞掉,选择所有 cMuscleSurfAttach 物 体 , 执 行 BonusRigging 菜 单 里 的 FixSurfaceAttachtoallowforPolySmooth 即可还原正确位置。

 

以上是我目前所知道的所有方法,此外我还看到一些商业插件可实现吸附 (没搞到手) ,但原理上应该离不开以上这些,尤其是经典的 rivet。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值