将物体放在世界中心
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 物体尺寸(方形尺寸:长宽高)
变换原点
L- 将原点放置在物体中心
因为已经知道了 物体中心坐标(世界坐标),就可以变换物体的原点坐标移动到物体中心坐标 【物体中心坐标 [CEX,CEY,CEZ]】
变换完成后 物体原点坐标(世界):[CEX,CEY,CEZ] 物体世界坐标(世界):[CEX,CEY,CEZ] 物体自身坐标(自身):[0, 0, 0]
因为只是改变了物体原点坐标,物体本身并没有发生位移, 所以自身坐标没有改变。
L- 将物体移动回原点
在Transform节点中,物体是用自身坐标来表示物体的坐标 (下面写世界坐标,仅供理解)
当前物体的位置为 世界坐标:[CEX,CEY,CEZ] 自身坐标:[0, 0, 0]
回到世界原点计算 【只要减去物体当前的世界坐标,就能回到原点】 世界坐标:[CEX-CEX,CEY-CEY,CEZ-CEZ] 自身坐标:[0-CEX, 0-CEY, 0-CEZ] 变换完成后 物体原点坐标(世界):[0,0,0] 物体世界坐标(世界):[0,0,0] 物体自身坐标(自身):[-CEX,-CEY,-CEZ]
L- 让物体踩在地面上
已知物体尺寸,且物体中心位于原点, 物体垂直坐标加上一半的物体尺寸即可
扩展
L- Labs Axis Align节点
这个节点为官方插件,点一下SideFX Labs 就会更新进来 这个插件,能够快速让物体移动到世界原点 虽然写着是创建写的是 【Labs Axis Align节点】 但实际上为【Match Axis节点】
L- 使用VEX命令代替Local变量
centroid (
, ) : 获取物体中心的节点 【0】:表示从0号端口获取,即从上一个节点获取:坐标 【D_X】:中心垫的X坐标 【D_Y】:中心点的Y坐标 【D_Z】:中心点的Z坐标
变换优先级
先【移动】再【旋转】,与先【旋转】再【移动】 的结果的完全不同,所有需要有变换优先级
变换三维向量
只要是【三维向量】都可以用,【Transform】节点进行变换操作 例如控制物体的【v速度属性】