将物体放在世界中心
https://www.aboutcg.org/play?courseId=861&lessonId=64210

本地变量

如果要实现变换原点,需要利用下面这些本地变量

XMIN,YMIN,ZMIN 物体在分别在Z Y Z轴上的最小值

XMAX,YMAX,ZMAX 物体在分别在 X Y Z 轴上的最大值

CEX,CEY,CEZ 物体在分别在Z Y Z轴上的最中值 (向量 [CEX, CEY, CEZ] 则就为物体的中心坐标)

GCX,GCY,GCZ 物体的质心坐标(世界坐标)

SIZEX,SIZEY,SIZEZ 物体尺寸(方形尺寸:长宽高)

image.png


变换原点

L- 将原点放置在物体中心

因为已经知道了 物体中心坐标(世界坐标),就可以变换物体的原点坐标移动到物体中心坐标 【物体中心坐标 [CEX,CEY,CEZ]】

变换完成后 物体原点坐标(世界):[CEX,CEY,CEZ] 物体世界坐标(世界):[CEX,CEY,CEZ] 物体自身坐标(自身):[0, 0, 0]

因为只是改变了物体原点坐标,物体本身没有发生位移, 所以自身坐标没有改变。image.png


L- 将物体移动回原点

在Transform节点中,物体是用自身坐标来表示物体的坐标 (下面写世界坐标,仅供理解)

当前物体的位置为 世界坐标:[CEX,CEY,CEZ] 自身坐标:[0, 0, 0]

回到世界原点计算 【只要减去物体当前的世界坐标,就能回到原点】 世界坐标:[CEX-CEX,CEY-CEY,CEZ-CEZ] 自身坐标:[0-CEX, 0-CEY, 0-CEZ] image.png 变换完成后 物体原点坐标(世界):[0,0,0] 物体世界坐标(世界):[0,0,0] 物体自身坐标(自身):[-CEX,-CEY,-CEZ]


L- 让物体踩在地面上

已知物体尺寸,且物体中心位于原点, 物体垂直坐标加上一半的物体尺寸即可 image.png

QQ截图20210529003433.png

扩展

L- Labs Axis Align节点

这个节点为官方插件,点一下SideFX Labs 就会更新进来 这个插件,能够快速让物体移动到世界原点 image.png image.png 虽然写着是创建写的是 【Labs Axis Align节点】 但实际上为【Match Axis节点】 image.png


L- 使用VEX命令代替Local变量

image.png

centroid (, ) 获取物体中心的节点 【0】:表示从0号端口获取,即从上一个节点获取 :坐标 【D_X】:中心垫的X坐标 【D_Y】:中心点的Y坐标 【D_Z】:中心点的Z坐标


变换优先级

先【移动】再【旋转】,与先【旋转】再【移动】 的结果的完全不同,所有需要有变换优先级 image.png


变换三维向量

只要是【三维向量】都可以用,【Transform】节点进行变换操作 image.png 例如控制物体的【v速度属性】 嵌套序列 05_1.gif

QQ录屏20210717192655_1.mp4 (11.28MB)