c4d打开没反应_(图文+视频)C4D野教程:总结四种制作漩涡样条的方法

8db3c1b85d0a14fbb6f0d23b640ffeb6.png

e53aeae9b7ecf2aa4bb710ad90e75448.png

是这样的,这几天我在瞎弄OC的贴图的时候,突然弄出一个这种贴图来:

78266c0cae4efe883a3c6eb860cbb3a8.png

还记得我们之前分享过一篇使用TP粒子做的线条流淌效果么:

野鹿志:(图文+视频)C4D野教程:来自没有XP4.0用户最后的挣扎​zhuanlan.zhihu.com
da86dab044cedc8aef5163c464f2a6d5.png

我们当时是在着色效果器里添加噪波贴图,噪波贴图去影响矩阵对象的旋转,然后矩阵对象发射出TP粒子,再通过xpresso去获取TP粒子的旋转数据制作出来的。

不过效果始终也不是漩涡状,当我通过OC得到这张贴图的时候,第一反应就是如果把噪波换成这个贴图,会不会就可以直接得到漩涡样条了呢?

看来心里还是对这个漩涡效果有种蜜汁执着啊,加上最近上面提到的文章,已经写过三篇相关的内容了,但是都没有做好:

野鹿志:(图文+视频)AE野教程:Particular4.1详细概述及螺旋线条小案例​zhuanlan.zhihu.com
4cf1f2384b54912902d536bac961f8da.png
野鹿志:AE野教程:Particular上手小案例 制作雨中场景​zhuanlan.zhihu.com
47c767e3148da51f012ac27388287b2d.png

于是兴致勃勃的把之前TP粒子那篇的工程文件拿来替换贴图进行尝试,结果失败了:

d9b2acc55099607b6dc2cbea466a6cf2.png

其实自己仔细想想失败也很正常,因为之前我们使用着色器添加噪波使用的是程序纹理,而现在我们加载的其实只是普通的一张2D贴图,贴图里并不包含方向等信息。

那是不是2D的贴图就没办法包含方向信息了呢?其实不是的,之前我在学习RS的时候,由于RS对于贴图方面的操作要比OC麻烦,所以我专门去学习过关于贴图的相关知识。

贴图里面的法线贴图就是用RGB三个通道来存储着方向信息的:

df5f391d3be0d7a362fb8213a5c1aa34.png

既然我通过OC得到了这个一张灰度图,然后大家知道PS里是可以制作出法线贴图的,那如果有办法能够获取到法线贴图里的颜色信息,是不是就可以实现这个漩涡效果了呢?

但是是否可行,具体怎么操作,我却不得而知,然后我想到了之前在写TP粒子文章的时候有鹿友留言推荐一位叫做@飞舞的团子的大神:

0180d3158a2b3344989754b1ac7a41b9.png

这是一位会C4D python的硬核大神,和一般的教程不一样,他的内容大多都是程序化的使用C4D,感觉好神奇,对于xpresso或者C4D python感兴趣的鹿友强烈推荐去看看。

看了团子大神的Tip_13_twirl这篇视频终于证实了我的想法是可行的,不过由于我个人不会编程,对于其中很多原理还是不太明白:

d5499fb7c4f2259d7cb74d0bd8a26588.png

所以把这个视频反复的看了好多遍,又查了很多资料,最后终于弄明白了。

感觉也是时候给这个漩涡效果打个总结了,因此我今天想总结一下网上一共四种制作这种漩涡样条线的方法。

前三种方法因为网上都很普遍了,我们就粗略过一下,然后最后团子大神的方法我们着重分享一下。

这里再次感谢@飞舞的团子大神的视频,终于让我能在R19不用插件预设,也不用编程的方式下做出了这个漩涡效果。

88ee1daeb03eefb08bdf97238c251e8c.gif

1、使用R21域力场

第一种方法是使用R21的新增功能域力场,如图所示新建一个平面:

e1f598fd5c3adb80b977d7f835b86c46.png

我们都知道要让对象运动起来就需要速度,而速度是一个矢量,既有大小也有方向。

R21的体积生成里新增了可以生成矢量这个功能,所以新建体积生成,让它成为平面的父级,体素类型改为矢量,尺寸可以稍微小一点:

b17e0463aaac11e476cdc2e809c100f5.png

在新建一个随机域让它成为体积生成的子集,这样随机域也能生成矢量:

310db2492fa586148f7b37bc879ffce5.png

但是默认情况下随机域的创建空间就是中间立方体那么大。

我们回到体积生成,在对象栏位选中随机域以后,可以将创建空间改为对象以下,这样随机域就会根据平面的大小生成矢量:

16af8756df27c675abffd264451607c1.png

这个时候我们再在模拟-力场里找到新增的域力场:

70eb4f56cb673cf7b80baa831a02f4da.png

再把体积生成拖给域力场,选择体积对象,域力场就会将体积对象生成的这些矢量转为力场:

a3bca26ea3b2c4420199bd8b50f0f2e1.png

接下来就是要这些力场来影响TP粒子了,新建矩阵对象,以平面最为对象生成矩阵,改为TP粒子再将TP粒子群组拖进来,这些就不多说了哈:

4dfa19d46bb7bfe715256379c1c2146d.png

默认情况下域力场不能直接影响TP粒子,所以新建一个xpresso标签,池里拖入粒子传递节点以及PForce对象节点。

然后把粒子群组拖给粒子传递节点,把域力场拖给PForce对象节点,再将两个节点相连:

e781d4feae6fbe9c5901ca0cfcda1a3e.png

为了方便观察,新建追踪对象追踪TP粒子群组,可以看到目前的运动轨迹不是我们想要的:

92dd6aa5bfcb27337d1b7df48f9cca3e.png

没关系,回到体积生成里面,把随机域的混合模式改为穿过,让矢量紧贴在平面上:

6e96349e80d984ffe042debb5c1cc510.png

域力场里我们将速率类型改为设置绝对速率,让速度直接受域力场影响,速度的数值可以大一点,这样雏形就有了:

dd3c2b366041265b94f98886777cbdfb.png

接下来就是在随机域里改改尺寸:

100e54d101fc121fb015c1e5dc2b886d.png

最后再在追踪对象里改改样条类型和点差值方式等,基本就搞定了。

因为有很多鹿友都没有用过R21的域力场,所以第一种方法我就稍微多写了一些:

8048eae66e35c0cc3b7467afcd7d174c.png

总结:使用R21域力场这种方法制作的漩涡效果可控性很高,也可以制作出粒子在不同模型表面攀爬的效果,只可惜目前R21不支持和谐版的OC以及RS渲染。

2、使用XP4.0

这个方法就不用太多说了吧,新建一个方形的粒子发射器,速度改为0,就发射一帧粒子,然后添加拖尾:

d3008f66f5b961320a343db58d09d649.png

新建一个湍流场,湍流类型改为卷曲,将对Y轴的影响取消勾选,这里最好把频率的数值改为0,这个漩涡的效果就出来了:

fa00ef68d09286ca0a9e5a1022df3329.png

总结:使用XP4.0制作漩涡效果,简单快速,可控性高,C4D各个版本你都可以用,所以就不用在意渲染器的问题。

要说缺点嘛,当然就是得无论是正版还是离线版都得付费,要么就只有使用试用版。

3、使用python预设

第三种方法就是使用之前我们分享过的python预设来制作:

0d048c2d762c934c61c6211d4c614672.png

总结:预设文件,简单无脑,基本没有什么可控性。

4、使用贴图制作

终于到了团子大神分享的方法了,要理解贴图制作这种方法我们首先需要理解两个重要的原理。

首先法线的数值范围是-1到1,颜色的数值范围是0到1,法线通过RGB三个通道记录了方向的信息,红通道记录的是左右方向,绿通道记录的是上下方向,蓝通道记录的是前后方向。

直接百度法线贴图的颜色就能够查看到相关资料:

ed1d2bf96d9c66c3692429761a0ba70b.png

其次第二个原理团子大神讲解的比较晦涩,我来回看了几遍想了半天还是没理解:

986c72cac30b218b5a669d4477e34819.png
截图源自B站:飞舞的团子视频Tip_13_twirl

刚好最近为了防止老年痴呆买了一个魔方:

f8bc349a8afd5af363eb5ccee7a81f34.png

在把玩的过程中突然明白了团子大神讲的含义,我这里以C4D的矩阵对象为例。

当我手指按在左右方向如图所示的方块面上,想要整个魔方逆时针旋转,那么需要从下往上给一个力去改变方向:

2ff2e75fcadecadd516b2d8271fd73c6.png

而当我手指按在上下方向如图所示的方块面上,想要整个魔方逆时针旋转,则需要从左往右的一个力去改变方向,两者方向相反则是顺时针:

0ce7001d718613236c72ffe6679aff3e.png

而我们前面也提到了,法线贴图的红通道是左右方向,绿通道是上下方向。

因此我们只需要法线贴图的红通道从左往右、绿通道从下往上就可以让魔方形成一个逆时针的旋转:

c9b1afcbf0ba71ea93e68d78ac0766fa.png

切换到C4D透视面板,将对象换做一个平面,那就相当于是需要绿通道从下往上影响X轴,红通道从左往右影响Z轴,则平面进行逆时针旋转:

aaf6ad22ebb04fa4b75a5e33e05b4848.png

好了原理基本就是这样,后面我们边做的时候就能更加理解了。

先做贴图吧,新建平面,新建环境光,新建一个材质拖给平面:

53bbece4a131ceae748b43d03db07d2f.png

打开材质节点编辑器,先新建一个正弦波节点给漫射通道:

e95ba668b3b9ce4055f760eecb18a397.png

再新建一个湍流节点连接到正弦波节点:

5164b2e795af411d7a7b6816fb88ad61.png

通过提高湍流节点里的power数值,就可以大概看到这种漩涡的图案了:

cf8d2cfdfa559b07619c943ac0bb4b37.png

总之通过调整参数得到自己想要的状态,参数细节就不多说了,这个不是重点,调整完毕以后渲染一个方形的尺寸贴图出来就行:

4986f12af953171edb220fe1eda1df9a.png

做完以后再在PS里弄成法线贴图,这个也不用说吧:

c6ca07e843c2e98e66c040d8fbaf9eaa.png

回到C4D同样还是新建一个平面:

a06d608be8176075a8ba55d9906759a8.png

新建材质球,颜色通道加载我们制作的法线贴图把它丢给平面:

8f427ae68969ab8f8256fec984600a21.png

注意我们之前不是提到了需要绿通道从下往上影响X轴,红通道从左往右影响Z轴么?

现在的贴图方式是不对的,我们需要将投射方式改为平直,切换到纹理模式,可以看到纹理的XYZ三个轴向,我们这里可以简单的理解为对应着颜色的RGB三个通道:

5ced23d67b942ddd91ef7967808ab5dc.png

因此我们将贴图的P轴旋转-90度,这样就是用贴图的绿通道从下往上影响X轴,红通道从左往右影响Z轴:

eac729c23633e9a002fbb6241851a0dd.png

然后选中纹理鼠标右键适合对象:

905fa566c4d51326e3e075785358c703.png

接下来这招也是跟团子大神学的,我们新建一个着色效果器,变换里任何参数都不要给,我们仅仅是用它来采样贴图的颜色信息。

颜色模式记得开启,不要勾选Alpha通道,着色通道改为颜色通道,然后把材质球拖进来:

014f51d60fa14aaaee55ee40a0232e75.png

接下来新建矩阵对象,以平面发射TP粒子,把TP粒子组拖进来这一步不用说吧:

5fb6022bc449d24523c16e6e9cc39eaf.png

接下来新建xpresso标签,池里面新建粒子传递节点把TP粒子组拖进来,然后新建粒子数据获取节点,把它们连接上:

d99b42ee0e388bf9a278abec4c7c2ea8.png

这里我们需要获取粒子的位置,所以输出端口添加一个位置端口:

d83207589d43e84617190f703e8d99a4.png

这个粒子的位置我们需要通过贴图的颜色来定义,所以把着色效果器拖进池里,同时在运动图形里添加一个采样节点来采样着色器的颜色信息:

99b2cc71cce21cae27f51925ad0067f8.png

着色器的输出端口先添加一个对象端口,把它和采样节点连接上:

82729041f7dbdd432a257e568222bbb2.png

同时我们还需要把粒子的位置信息和纹理的颜色关联起来,但是位置是一个矢量数据,而采样的输入端口是一个矩阵数据,鼠标悬停到输出端口可以看到他们的数据类型:

04b93725bb86b78b51d7a72582adfeb4.png

所以我们需要一个矢量到矩阵的节点来进行转换,链接到偏移端口就行,其他三个端口是控制旋转的,这个以前的文章写过:

8881735db9ca5738b3b4df7c4d24b5d8.png

然后采样节点的输出端口我们把颜色端口调出来:

b12a61a247582d50e9bd1ef59fa6beed.png

现在我们需要去单独读取颜色的红绿通道,颜色是一个矢量数据,所以添加一个矢量到实数的节点来进行分离。

然后再通过实数到矢量的节点再把红绿通道的信息合并起来,分离出来XYZ分别对应的就是RGB三个通道:

4ca2ebd667bbbd35a9166245356ab9e5.png

但是我们前面提到了颜色的范围是0到1,但是矢量的范围是-1到1,所以需要用范围映射节点来重新定义范围。

新建范围映射节点,把X轴也就是红通道连给它,然后把输出下限改为-1就行了:

5600f36b3c1f0fc47ce140f220a8eae0.png

Y轴也就是绿通道也是同样的道理,这里就不赘述了:

c89f018a1e3232c8dcf728eb9790c969.png

接下来再通过实数到矢量节点把红绿通道合并,因为我们说了红通道是影响Z轴,绿通道影响X轴,所以如图所示连接:

05e79a9bac5a6324fc9385803049796f.png

接下来再添加粒子速率节点,输入端口添加方向:

93d6c2898640b90453b170493631c40b.png

再把粒子传递以及方向的信息给连接上:

57c05cafc2c24fe534aa0b8e29a28363.png

给TP粒子添加追踪对象检测一下,漩涡的效果就出来了:

e057b0c63803d5a45a0220052e2c9afc.png

如果你不希望线条跑出平面也是可以的,团子大神用的是预设。

不过通过定义两个轴向上的最大最小范围,超出这个范围就杀死粒子的方法也是可行的,这个方法以前已经分享过了,这里就不赘述了:

16600f972215fb610d1e313ad90f57a1.png

渲染今天不说了,篇幅已经60张图了,反正和渲染毛发是一样的,我觉得随便给一个渐变色都挺好看的:

780bb1bae63018406bc333aa371f844d.png

总结:最后一种方法的优势就是不用插件预设也能制作漩涡效果,由于我们可以换不同的贴图,所以具有一定的可控性。

但是理解起来需要花一些功夫,如果要制作不同模型表面攀爬的效果至少我没有找到方法。

88ee1daeb03eefb08bdf97238c251e8c.gif

终于写完了,四种方法大家就根据自己的需求来选择吧,下面是今天的视频版:

知乎视频​www.zhihu.com

好啦,今天的内容就到这里,想要源文件、原视频的童鞋后台撩我获取吧!

更多内容欢迎关注公众号

公众号:野鹿志

老鹿微信:maluyelang6661

苦七微信:766057766

本文由“野鹿志”发布

转载前请联系马鹿野郎

私转必究

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值