Skip to main content

这个项目收获不少,尤其是对XP的理解更多了。工程下载在https://worldcter.com/portfolio/fu

灵感来自于https://www.behance.net/gallery/73931121/FRESH-START#commentshttps://www.behance.net/gallery/74235225/XPC2018

这个项目遇到的第一个问题是怎么让粒子根据实际的外形去碰撞,尤其是上面第一个链接的内容对比着去看。

XP可以计算粒子碰撞,但是它是把粒子当作一个点来计算的。

比如我们使用一个球作为粒子,那么这个碰撞没什么问题,但是当我们用立方体去代替粒子时就不一样了,XP还是将粒子视为一个点去模拟碰撞,这就会导致粒子之间的穿插。

同时产生了第二个问题,因为不是真实的碰撞,所以粒子碰撞之后不会产生因为碰撞导致的粒子旋转。

如果想要制作真实的碰撞,就需要使用c4d内置的动力学去模拟,但是成千上万个物体去使用内置的动力学是不现实的。

我以为XP做不了,但是第一个连接中的动态,又分明有着特别真实的碰撞和旋转。于是我就抱着试一试的心态(怎么像宣传假药的)询问了一下作者,没想到作者真的耐心的回复了其中的技巧。

首先,平时我使用OC渲染XP,是使用xpGenerator,将物体放入子级中去渲染。这个情况下XP其实是真实的将物体替换为粒子。但是大部分情况,我们只需要给xpEmitter添加一个OC对象标签,然后将物体拖入到Particle Rendering选框中也能实现。

这个流程相比使用xpGenerator少了一个步骤,我相信也会加速一点渲染时间。

同时他做的那个短片中,也不是真实的碰撞模拟,在某一帧也能看到粒子直接的穿插。但是聪明的地方在于,他使用Question对象来相应粒子的运动速度,当粒子速度到达一定数值后,就让粒子发生自旋。当粒子发射的时候设置一下起始随机旋转值后,这样看上去粒子就好像真的有了碰撞和旋转。

粒子碰撞的问题解决了,然后又出现了新的问题。

透视视图中粒子是正确的,渲染出来的时候粒子总是会多出一块,这个问题也卡壳了很久,我直接反馈给OC官方,不得不说他们的客服确实很厉害,基本一天以内就会响应。

问题发生在我的三个物体中,两个物体坐标不在物体中心位置,而是跑偏了,复位物体轴心位置就好了。

解决了这两个问题,也就没有别的什么了。(完)

2 Comments

Leave a Reply