粉丝50
关注 2
获赞 163
max表情样条线控制器的制作

[脚本工具教程] max表情样条线控制器的制作

 !heats_icon! [复制链接]
3193 10 20 78 2年前 举报
GIF 2021-5-25 16-09-34.gif
总体来说:先创建:变量和positionxyz共同作用的功能,把圆限制在四方形内运动。
                                然后用wire功把圆圈来控制变形骨骼的位置移动,限制运动的幅度。
                                  这样positionxyz可以移动圆圈,变量又可以实现控制和UI的功能。

先画一个方形,再在里面画一个小圆形。把圆作为方框的子物体。
11.png

选择圆形,在position xyz的上面postion里加position list
再选择avaliable,加入position script
44.png

选择position script,运行代码
33.png
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窗口贴入代码:
控制1.png
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 ]
再用方形的lengthwidth,用wire的方式驱动ctrllw,点connect
55.png
66.png
   监听下变量,看是不是等于方框的lengthwidth
77.png
确认准确后,再用右键菜单的wire自己的positionX,和positionY链接到ctrlxy上。
88.png
然后重要的一点,就是要把圆父子绑定到方框上。拖动圆看看,这样圆就可以在方框的范围内限制运动了。
99.png
如果卡住拖不动,记得切换这里的默认值,列表选择positionXYZ
1010.png
那接下来如何用圆控制骨头呢?先切换到父物体坐标。参考圆圈和需要绑定的变形骨骼的上下轴向是x,还是y。还是z
控制2.png
1111.png
wire参数链接它们。
1212.png
拽下看看。发现拽的太远了。先ctrl+z返回到初始值。
1313.png
按alt+1添加参数控制器给圆物体,这个Xoffset,和Yoffset用来纠正偏移
按alt 1添加参数控制器.png
wire链接加入xoffset和yoffset的偏移变量
Y_Position+$.baseObject.Custom_Attributes.yOffset
X_Position+$.baseObject.Custom_Attributes.xOffset
控制3.png
把参数复位为0后对圆物体上的滑块进行偏移数值的微调。不时点update看纠正的效果,骨骼点回到原来的位置为ok,
这两个补偿参数其实不加到物体外面来也行。但是你要做个补偿。让圆在0,0的位置时候,骨骼也在它原始本来应该的位置
------------------------------------------------------------------------------------------------------------------------------------
最后,我们再需要做个数值限定,让圆拽着骨骼别跑的太远。
  MyValue= Y_Position+$.baseObject.Custom_Attributes.yOffset
   case of
  (
   (MyValue>= 10):5.5    --当大于某值时返回一个值
   (MyValue<= -10): -5.5   --当大于某值时返回一个值
   default: MyValue
  )

1414.png




22.png

0

打赏一次,10个CG券
全部评论10
您需要登录后才可以回帖 登录 | 立即注册

为什么我的曲线编辑器没有xy的选项
338天前
回复

使用道具 举报

可以搞个视频吗,看着好麻烦
2年前
回复

使用道具 举报

wire也可以用reaction manager来控制

也可以用反应控制器来控制.jpg 子动画.jpg
2年前
回复

使用道具 举报

跟着步骤做 圆卡不在方框里是怎么回事 ?
2年前
回复

使用道具 举报

有插件么
2年前
回复

使用道具 举报

看着不错的样子
2年前
回复

使用道具 举报

多谢分享
2年前
回复

使用道具 举报

谢谢分享
2年前
回复

使用道具 举报

感觉好复杂..
2年前
回复

使用道具 举报