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

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

 !heats_icon! [复制链接]
3195 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
20
点赞
0
打赏
78
添加到收藏夹
打赏一次,1个CG券
全部评论10
您需要登录后才可以回帖 登录 | 立即注册

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

使用道具 举报

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

使用道具 举报

wire也可以用reaction manager来控制

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

使用道具 举报

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

使用道具 举报

有插件么
2年前
回复

使用道具 举报

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

使用道具 举报

多谢分享
2年前
回复

使用道具 举报

谢谢分享
2年前
回复

使用道具 举报

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

使用道具 举报

数据加载中....
没有更多评论了