
在本教程中,我们将向您展示如何使用循环Python脚本和
-renderMeshFromCustomPositionLookAt命令制作一个转盘动画。
这个脚本将为RealityCapture中的任何打开项目创建一个转盘动画的帧。
您需要在计算机上安装Python。
该脚本具有可以轻松编辑以调整动画属性的变量,包括:
1. 相机将注视的坐标(这也将是循环的中心)
2. 相机的焦距(35毫米)
3. 循环的高度
4. 循环的半径
5. 相机的上向量
6. 渲染帧的像素尺寸
7. 在整个360循环中要渲染的帧数
该脚本也可以用于带有地理参考场景,但是项目必须首先设置为UTM坐标系统;您可以在本文末尾找到这个工作流程。
在欧几里得空间工作
这是脚本:

这个脚本使用了代理,将使用任何已打开的 RealityCapture 实例。您需要在计算机上安装 Python,并且脚本的文件扩展名必须为 .py。
我将使用的数据集已经缩放,并且处于欧几里得坐标系统中:

我们的项目使用米作为尺度单位,所有的距离单位变量都是以米为单位的。相机将围绕对象旋转,形成一个半径为3米的圆。

渲染的高度是2米。

摄像机对准的点位于欧几里得原点0,0,0上方1米处。

在当前状态下,该脚本将渲染绕对象360度的图像。

渲染所有这些帧需要相当长的时间,所以最好在几帧上进行小规模测试,以确保您不必等待渲染360帧无用的图像。为此,请将num_points变量从360更改为4。

现在,如果您从所选文件夹运行脚本,它将创建一个名为"frames"的子文件夹,并生成四个渲染:

从测试渲染中我可以看出,我缩放得有点过大,而且没有对准对象的中心。有两种方法可以让更多的主体进入画面。我可以更改相机的焦距,目前设置为70(该值以毫米为单位,等效于35毫米)。

较低的值,例如50,意味着焦距较短的镜头,具有更宽的视野。
另一种选择是通过更改循环的半径将相机移动到更远的地方,这是我将要做的,将其从3米更改为5米。

此外,主体没有居中,我需要在z轴上稍微抬高视角,因此我将把zLookAt变量从1米更改为1.3米。

在进行任何更改后,再次运行脚本以检查帧。

一旦您对调整满意,主题看起来已经正确框定,您可以将快照的数量更改为您在循环中想要的任何数量;拍摄360张照片会在以30 FPS回放时持续12秒。

现在,您可以运行脚本。当脚本运行完毕后,您将拥有一个充满图像的文件夹。您可以通过将帧序列添加到视频编辑器来使用这些帧制作动画。
处理地理参考项目
首先,将项目坐标系统更改为适用于所在国家的UTM坐标系,例如,我的项目是在犹他州创建的,所以我像这样更改了坐标系:

在您关注的焦点位置放置一个控制点,将其设置为与您的项目相同的UTM坐标系,并在任意三个图像建议上点击绿色加号。现在您可以复制在"实际位置"中找到的坐标到您的脚本中。


请注意,我还改变了循环的半径和循环的高度。
这个数据集可以在这里找到,并由Metatexel提供。
https://dev.epicgames.com/community/learning/tutorials/9nO5/unreal-engine-capturing-reality-realitycapture-automated-cli-pipeline-for-large-datasets
您现在可能想要将项目的坐标系更改回原始坐标系并删除新的控制点。
扫描下方二维码,关注后点击菜单栏按钮“更多内容”并选择“联系我们”获得更多虚幻引擎的授权合作方式和技术支持。“虚幻引擎”微信公众账号是Epic Games旗下Unreal Engine的中文官方微信频道,在这里我们与大家一起分享关于虚幻引擎的开发经验与最新活动。