纳金网

标题: MAYA怎样不用instance来关联复制 [打印本页]

作者: .    时间: 2013-1-9 16:55
标题: MAYA怎样不用instance来关联复制
这片教程将讨论怎样不用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节点。
  
  现在把主物体变形一下
  
  在默认得设置下,如果你变形了主物体,当你再去滑动Blendshape得滑条得时候,会发现刚才对主物体的变形不起作用了,这是因为当滑条值为1.0的时候,maya总是把目标体的形状完全覆盖主物体。  现在有一种办法,就是向上移动tweak节点到整个链的末端,这样的话就可以使主物体的变形不会被目标体完全覆盖。

  这是告诉maya,先计算blendshape节点,再应用在顶部变形以达到最后的效果,但是这不是个好办法,没有完全达到我们的预想目的——主物体变形,目标体也跟着变,而是主物体保留变形,但是目标体没有跟着主物体变化。下图是把target1滑到1.0的情况。
  
  下面我们再找一个更好的办法,如果变形主物体,而这个变形也会执行到其他的目标物体上就好了。这种情况我们还是使用前面的讨论,但是我们需要连接合适的节点得合适的属性才可以。连接tweak节点得outputs到targetShape的inMesh。
  
  把所有的目标体都这样连上,这时候如果你变形主物体,就会发现,变形也会影响到其他的目标体,主物体和目标体都会产生相同的变化,好了现在我们在这篇教程最开始的3个条件都满足了。
【来源:互联网】
更多精彩教程,尽在web3D纳金网http://www.narkii.com/college/




欢迎光临 纳金网 (http://rs.narkii.com/club/) Powered by Discuz! X2.5