在maya中如何修正相机的枢轴点的变化导致相机动画导入引擎后不正确的问题

前言

最近工作中经常遇到外包回来的相机的枢轴点变化,甚至所有值归零后枢轴点也不在世界中心的情况,这种相机动画导入引擎就会出现和maya中相机对不上的情况,这里记录一下解决方法.

过程

基本思路就是计算出原有相机中心点的世界坐标位置,然后用一个新相机继承原有相机的动画,最后烘焙关键帧即可.

  • 打开maya的节点编辑器,将原相机和新相机显示在图表上
    在这里插入图片描述
  • 首先我们忽略相机的旋转,我这里用一个球体代替,在节点编辑器中Transform节点给我们提供了Rotate Pivot但是,这个枢轴点是局部空间的(即:相机中心到枢轴点的向量),好在Transform节点也为我们提供了用于将局部空间变换为世界空间的矩阵,这里我们用节点PointMatrixMult(这个节点可能需要开启插件matrixNodes.mll才能找到),把这个局部坐标和世界变换矩阵相乘,即可得到枢轴点的世界空间坐标.

在这里插入图片描述
在这里插入图片描述

  • 这样我们就找到了相机枢轴点的世界空间坐标,.因为我们之前说过相机的局部空间坐标是相机中心位置到相机枢轴点之间的向量,此时用相机枢轴点的坐标减去这个向量就可以得到,这里我们使用节点PlusMinusAverage并将Operation调整为Subtract来计算点和向量之间的减法.
    在这里插入图片描述

在这里插入图片描述

  • 可以看到此时小球已经和相机的中心点重合了,但需要注意此时我们的相机是不带旋转值的,如果我们此时对相机进行旋转,可以看到,相机的中心点在旋转后产生了位移.

在这里插入图片描述

  • 这时,我们可以利用一个向量来帮助我们计算相机旋转后的中心点的位置,即相机在不旋转时,枢轴点指向相机中心点的向量,然后我们旋转这个向量,再使用相机枢轴点的坐标加上旋转后的向量即可得到相机旋转后中心点的位置.继续使用PlusMinusAverage来计算枢轴点指向相机中心点的向量,使用ComposeMatrix节点创建旋转矩阵,再次使用PointMatrixMult来计算旋转后的向量

在这里插入图片描述

  • 需要注意的这次的PointMatrixMult需要勾选Vector Muitiply(不过目前的情况不勾选也没影响),这样我们就得到了旋转后枢轴点指向相机中心点的向量,最后用枢轴点的坐标加上这个向量即可同时还需要将老相机的旋转值传递给新相机.
    在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值