我是通过将其设置为使用其MatrixWorld属性的两个导出的假人在两个导出的假人之间切换相机。
camera_foreground.matrixWorld = (dummy_shot1.matrixWorld);
camera_foreground.updateProjectionMatrix();
这效果很好,但是我创建的cameral_helper并未继承矩阵更改。
它不允许我在助手本身上运行updateProctiveMottionMatrix()。我已经尝试将助手育儿到原始相机。我还尝试将助手设置为同一dummy_shot1.matrixworld。什么是让助手与它为/来自?
您可以使用THREE.CameraHelper.update()
更新相机辅助器的frustum。
给定两个摄像机:camera1
和camera2
,您可以将CameraHelper
转换从camera1
切换到camera2
:
cameraHelper.camera = camera2;
cameraHelper.matrix = camera2.matrixWorld;
cameraHelper.update();
注意
另一种对您来说似乎更方便的解决方案是为每个相机创建一个THREE.CameraHelper
,然后用以下方式切换当前显示的助手:
camera1.helper.visible = false;
camera2.helper.visible = true;
此外,THREE.Layers
也可用于控制当前显示的助手。
3DSMAX摄像机/相机动画不受3DSMAX Collada Exporter的支持。为了解决这个问题,我正在出口傻瓜(从最大到三j),这些假人曾被送往所说的相机。我担心假人没有动画就会通过(因为父母(3DSMAX摄像机)被忽略了)。
假人经过了很好的效果(我想),因为相机位置/旋转将矩阵复制到三分。试图让助手做同样的事情时出现了问题(在通过调试摄像机查看场景时很明显)。
似乎三个中的camera_helper对象与这些特定假人的矩阵播放不好(可能是因为在3DSMAX中,它们是从父母身上吸入的)。奇怪的是,摄像机(如上所述)正常工作。
为了解决问题,我使用了一个很棒的maxScript(http://www.breidt.net/scripts/mb_collapse.mcr)来复制/烘烤/烘烤所有父键帧从3DSMAX摄像机(不再是继承))。然后将Collada友好的假人出口到三分。
感谢Neeh的帮助和问题。它正在重建一个测试场景以上传,我注意到新的假人(未育儿为相机)与助手的效果很好。