C4D使用xpresso节点将样条线对齐物体表面教程

C4D使用xpresso节点将样条线对齐物体表面教程    [复制链接]

C4D教程 2020-12-18 08:21 发布

版权归原作者所有,仅供交流学习,禁止商业使用!
C4D教程
资源分类: VIP精选
教程分类: 物理模拟 » Xpresso
渲染器: 自带标准 
教程语言: 英文
素材文件:
检索码: QL202012172154
image.png 使用Xpresso将样条点附加到克隆
image.png

如果您希望在Cinema 4D Mograph装置中释放更多动力,Tim Clapham的本教程将演示一种技术,该技术将为您的日常工作,动画和装配任务打开无限的可能性。Tim逐步指导您完成设置过程,该过程使您可以使用Xpresso将样条线点附加到克隆,同时仍然保持设置过程。通过使用Xpresso(和一行Python),您可以访问单个克隆对象的点,边或多边形。


image.png
本教程分为四个逻辑部分。在第一部分中,我们从一个非常基本的Xpresso设置开始,该设置使用Point节点并将样条线的单个顶点链接到对象的位置(在本例中为Audio Jack Plug)。如果您不熟悉Cinema 4D节点,本节将帮助您熟悉Xpresso,此外,它还为您简要介绍了此强大技术的基本基础。3
image.png
在第二部分中,Tim介绍了MoGraph Data节点,以及遍历对象层次结构的概念,以保持表达式的高效和灵活。“数据”节点允许您访问信息,例如Mograph对象的位置,旋转和颜色(以及许多其他有用的数据),并将其传递给场景中的其他元素。通过使用“层次结构”节点,可以遍历场景中的对象层次结构。在此示例中,我们将每个样条线的顶点链接到每个音频插孔的位置,但是可以将此方法扩展为与许多其他类型的对象和技术一起使用。
image.png
到目前为止,此装备的明显限制是所有样条线都是场景中的实际对象。这意味着,如果我们更改克隆器的计数,则需要添加或删除样条线。如果样条线也由Cloner Object生成,那么它将更加灵活,这样我们就可以使生成的数字保持同步。如果使用Cloner创建样条线,则将导致对象的虚拟层次结构,并且可以使用Data节点进行迭代。不幸的是,“数据”节点不允许您访问所生成样条曲线的各个顶点,因此我们需要一种替代解决方案。
image.png
这就是Python拯救的地方,相信我,您不需要了解Python即可使用此方法。这是一个简单的衬板,可以解决我们的问题,并为您的钻机带来全新的乐趣。
import c4d
#Welcome to the world of Python
def main():
global Output1
Output1 = Input1.GetCache()
我们真正感兴趣的唯一部分是此行,添加Python节点时,其余部分已经存在。

Output1 = Input1.GetCache()
注意:添加Python节点时,使用数据类型Link删除现有输入并添加新输入非常重要,否则,将无法将对象连接到该节点。
这是将Python节点的输出端口设置为输入端口的缓存。这部分代码Get.Cache()将返回先前构建的缓存中的对象,它还可以返回对象列表,如果我们将Cloner插入输入中,则将发生这种情况。然后,我们有一个虚拟的对象层次结构进行迭代。为了稍微说明一下上下文,对象的缓存通常是在后台进行的。例如,如果我们创建一个数组对象,然后将一个多维数据集添加为一个子对象,则内部生成的缓存将是多维数据集的层次结构,每个生成的多维数据集一个,然后每个多维数据集将拥有自己的缓存,在此它是一个多边形对象。不同的对象会产生不同的缓存,Extrude对象可能会返回,挤压的几何图形,圆角和顶盖,取决于您使用的设置。您可以通过按C来查看Generator的缓存,从而使Generator对象可编辑,并通过使用这段简单的代码,您可以在保持对象过程的同时访问此缓存。
image.png
现在我们已经完成了那部分,其余的很简单。将Python输出连接到层次结构节点,一切都按上面第二部分的操作进行。最大的不同是,现在您正在使用Cloner生成样条,Python脚本正在提取虚拟层次结构供我们迭代。现在,您可以轻松地创建数百或数千个对象,并使它们全部通过样条线连接,如果您在Xpresso中链接两个Cloner的Count参数,则可以从一个Cloner驱动它以轻松保持计数同步。
现在,将样条线的另一端链接到另一个“克隆器”是一项相当琐碎的任务。只需复制对象,数据和点节点,然后将点索引设置到样条曲线上的最后一个点(在本例中为索引3),将第二个Cloner链接到Object节点,然后将索引连接到Data节点。(观看视频,观看蒂姆做到这一点比书面解释要容易得多。)
image.png
现在,您已经构建了此Xpresso,可以对设置进行重新处理以帮助执行各种任务,这些任务需要访问所生成对象的组件,而不必是Mograph设置,只需根据需要修改表达式即可。 。在这种特殊用法中,我们可以更进一步,因为此设置存在一个非常明显的问题。
问题是,尽管我们已经将样条线点链接到Mograph对象,但是如果我们在周围移动或旋转“克隆器”,则样条线不会平滑地退出音频插孔的背面。为了解决这个问题,我们需要将样条曲线的第二个顶点约束到与对象位置一致的位置,但沿Z轴偏移。这将确保我们在样条曲线上获得漂亮的平滑曲线,并且也应避免与对象相交的任何问题。
image.png
我们已经有了克隆音频插孔的位置,并且由于该位置是一个向量,我本来以为最简单的解决方案是将该向量拆分为X,Y,Z分量,在Z参数上添加一个值,然后转换回一个向量,嘿,presto,我们有答案。现在这确实可行,但是这里的问题是,当我们将值添加到Z位置值时,它会使用全局空间。如果您永远不会轮换克隆,这很好,但是您可能会想要。当我第一次尝试解决这个问题时,这部分让我很困惑,但是事实证明,我走错了路。
image.png
经过大量的Google搜索筛选后,我终于找到了一个口头解释了如何在代码中解决此问题的人。事实证明,解决方案是实际使用对象的矩阵,然后将其与局部向量相乘。在Xpresso中,我们可以使用数据节点访问克隆的全局矩阵,就像访问位置,旋转等一样。全局矩阵是向量的集合,从中我们可以获取有关对象位置,方向以及其他信息的信息。值,例如方向矢量的长度。对我们来说幸运的是,有一个专门用于乘以矩阵和向量的节点,它的名称很方便,名为MatrixMulVector,我们要做的就是输入全局矩阵,将其乘以Vector与该节点相乘,结果是一个全局向量然后我们输入到我们的点位。

image.png
现在,我们可以调整此向量的值/轴以控制样条点的偏移,从而解决了问题。现在,我们的花键已顺利退出音频插孔。当然,这是解决问题的相当具体的解决方案,但是在此过程中,我们探索了许多可以以许多其他方式使用的解决方案。我想其余的一切都取决于您和您的创造力。
image.png
视频教程下载

C4D使用xpresso节点将样条线对齐物体表面教程 
关闭

菜鸟C4D推荐上一条 /9 下一条

菜鸟C4D与你一起从零开始!
十年专注C4D学习

( 浙ICP备13033195号-2 )Copyright   ©2013-2024  Powered by©Discuz!  技术支持:cainiao    

|网站地图