MAYA节点连接问题
发布时间:2023-03-17|点击:1次Maya节点连接问题这篇教程将讨论怎样不用 instance 来关联复制,在讨论一些混合变形的一些问题 这有几个问题
1 , 我们需要创建一些形状差不多得物体,当我们改变主物体的时候,复制体也反映出这些变化,但是我们也能自由得改变复制物体,而这时候,主物体不发生形变。
2 , 如果我们关联复制 instance ,如果选择着一些物体(主物体和这些复制物体)中得一个改变她的组分,其他得都跟着变化,这是很讨厌得
3 ,当我们创建混合变形( blend shape )的时候,我们就不能改变着模型了,只要我们一动混合变形得滑条,刚才我们在模型上得组分变形就全没了,我们现在需要改变模型,同时那些混合变形的目标体也跟着变形。
其实第一个问题,在max 里面有这种复制方式
我们就根据这几个问题来进行我门的教程 先看看关联复制是怎么样得 打开 Edit->Duplicate 得选项框,选 instance 关联复制。
但是如果打开 outliner, 右键 show shapes ,你将会看到所有的复制得物体都具有相同的 shape node
再来看看 hypergraph, 选择 pCube1, pCube2 and pCube3 ,展开上下游节点。
仅有一个形态接点显示出来,但是颜色不是白色,灰色,而是粉色,双击箭头,打开连接编辑器,你将看到 InstObjGroup[] 到 DagSetMembers[] 之间的连接,
因为现在只有一个形态节点( shape node ) , 所以所有的变形节点都使用这个形态节点,所以你变形任何一个关联复制体,其他的都将产生相同的变化,同样的,当你选择一个物体的组分的时候,其它的的也会别选择。
使用关联复制,不能解决我们前面问题 1 和问题 2 ,我们不能只变形关联复制体而是其他的不变形。所以我们需要其他的办法 幸好, maya 是基于节点的应用程序,用户可以在这些接点之间定义自己的数据流动。 我们做个例子 创建一个 polygon 的球和方盒,重命名为 box 和 ball, 把他们排列一下,使得你能清楚地看到他们俩。
打开 Hypergraph ,选在 box 和 ball, 显示他们的上下游节点。
BoxShape 节点是 box 的形态节点,同样的, BallShape 是 ball 的形态节点, 现在我们想要 Box 跟随 Sphere 的形态,所以他现在不应该是个方盒,而应该是个球。 在 hypergraph 里面托拽 BallShape (主)节点到 BoxShape (从) , 出现的菜单选择 Other... 连接编辑器 Connection Editor 就会打开, BallShape 在 Outputs , BoxShape 在 Inputs ,在 Outputs 里面找到 "outMesh" ,在 Inputs 里面找到 "inMesh" ,你会发现在 Inputs 里面的 "inMesh" 是灰色的 , 这显示了已经有一个 input 连接了,没关系,我们覆盖它以前的连接就可以了。在 Outputs ,选择 outMesh ,在 Inputs. 选择 inMesh 。
现在你可以看到,原来的方盒现在变成了圆球了,在 Hypergraph 里面可以看到,从 BallShape to BoxShape 粉红的箭头 , BoxShape 不再从 polyCube1 输入连接了
现在我们来检查一下效果, 1 ,我们改变 BallShape , BoxShape 会跟着变化吗?(就是改变球的形状,以前是方盒,现在是球的那个物体会跟着变化吗?) 2 ,我们改变 BoxShape , BallShape 会跟着变化吗? 如果满足了条件,那么我们就完成了的 3 个问题的前两个。
下面来看这片教程最开始提出第 3 个问题,关于 blendshape 的问题 在一些其它的软件中,使用类似于 blendshape 的工具的时候,如果你变化主物体,则其他的目标体也会自动得产生变化,举一个例子,如果你做了 30 个目标体,已经设置好了 Blendshape, 这时候导演对你说, Bob ,颧骨太高了,我想要低一些,前额太小了,变大一些,下颚太方了,变得圆一些。这时候,如果你能只改变主物体,那些目标体都能跟着变化就好了。 先叫我们看一下 blendshape 在 Hypergraph 里面是怎样工作的。 在这个例子里面我们就用跟简单的多边形物体吧,建一个 2*2*2 的方盒,做 3 个目标体, target1, target2, target3 ,把他们在稍变形一下,如下图
创建了混合变形后,在 Hypergraph 里面注意,将会涉及到一些节点,一个中间物体(通常在它名字里面带有 Orig )一个 tweak 节点,当然还有一个 blendshape 节点。
现在把主物体变形一下
下面我们再找一个更好的办法,如果变形主物体,而这个变形也会执行到其他的目标物体上就好了 这种情况我们还是使用前面的讨论,但是我们需要连接合适的节点得合适的属性才可以。 连接 tweak 节点得 outputs 到 targetShape 的 inMesh 。
把所有的目标体都这样连上,这时候如果你变形主物体,就会发现,变形也会影响到其他的目标体,主物体和目标体都会产生相同的变化, 好了现在我们在这篇教程最开始的 3 个条件都满足了。