马上注册,加入CGJOY,让你轻松玩转CGJOY。
您需要 登录 才可以下载或查看,没有帐号?立即注册
×
总体来说:先创建:变量和positionxyz共同作用的功能,把圆限制在四方形内运动。 然后用wire功把圆圈来控制变形骨骼的位置移动,限制运动的幅度。 这样positionxyz可以移动圆圈,变量又可以实现控制和UI的功能。
先画一个方形,再在里面画一个小圆形。把圆作为方框的子物体。
选择圆形,在position xyz的上面postion里加position list 再选择avaliable,加入position script。
选择position script,运行代码 def=attributes ctrl ( parameters ctrlP ( l type:#float w type:#float x type:#float y type:#float ) ) custAttributes.add $.pos.controller[2].controller def def=custAttributes.getdef $.pos.controller[2].controller.ctrl 然后得到ctrl下面四个变量 双击position Scipt分支,在scriptcontrol窗口贴入代码: x=0 y=0 l=this.l/2 w=this.w/2 if this.x>w then(x=-this.x+w;this.x=w) if this.x<-w then(x=-this.x-w;this.x=-w) if this.y>l then(y=-this.y+l;this.y=l) if this.y<-l then(y=-this.y-l;this.y=-l) [ x, y, 0 ] 再用方形的length和width,用wire的方式驱动ctrl的l和w,点connect。 监听下变量,看是不是等于方框的length和width 确认准确后,再用右键菜单的wire自己的positionX,和positionY链接到ctrl的x,y上。 然后重要的一点,就是要把圆父子绑定到方框上。拖动圆看看,这样圆就可以在方框的范围内限制运动了。 如果卡住拖不动,记得切换这里的默认值,列表选择positionXYZ 那接下来如何用圆控制骨头呢?先切换到父物体坐标。参考圆圈和需要绑定的变形骨骼的上下轴向是x,还是y。还是z 用wire参数链接它们。 拽下看看。发现拽的太远了。先ctrl+z返回到初始值。 按alt+1添加参数控制器给圆物体,这个Xoffset,和Yoffset用来纠正偏移 wire链接加入xoffset和yoffset的偏移变量 Y_Position+$.baseObject.Custom_Attributes.yOffset X_Position+$.baseObject.Custom_Attributes.xOffset 把参数复位为0后对圆物体上的滑块进行偏移数值的微调。不时点update看纠正的效果,骨骼点回到原来的位置为ok, 这两个补偿参数其实不加到物体外面来也行。但是你要做个补偿。让圆在0,0的位置时候,骨骼也在它原始本来应该的位置 ------------------------------------------------------------------------------------------------------------------------------------ 最后,我们再需要做个数值限定,让圆拽着骨骼别跑的太远。 MyValue= Y_Position+$.baseObject.Custom_Attributes.yOffset case of ( (MyValue>= 10):5.5 --当大于某值时返回一个值 (MyValue<= -10): -5.5 --当大于某值时返回一个值 default: MyValue )
|