以 2D 打印 3D 对象动画

Print a 3D object animation in 2D

这里我需要做的是以 2D 格式打印我的动画剪辑中的 3D 动画过渡。例如打印在纸上行走的人类动画。有办法吗?

有几个方面需要考虑:

  1. 将动画分割成帧
  2. 渲染帧
  3. 正在检索渲染帧

将动画分割成帧

在渲染帧之前,您必须决定它应该是哪一帧。根据您的要求,您可能只想渲染关键帧(由动画艺术家或动作捕捉数据定义的帧,但可能不会在动画持续时间内均匀分布),或者渲染均匀分布在动画的持续时间(即每 0.2 秒渲染一帧)。 知道帧后,您可以告诉 AnimationController 跳转到该特定帧并相应地更新 3D 模型。

渲染帧

同样,根据您的要求,您可能需要考虑使用具有正交投影的相机。这将消除任何透视扭曲,从而更容易直观地分析动画。当然,如果目标是更具视觉吸引力或 "artistic" 演示,则可能还需要透视投影。

正在检索框架

由于要打印效果图,所以需要检索效果图。您可以通过让 Unity 截取屏幕截图 (Application.CaptureScreenshot) 或通过使用 RenderTexture 并将其设置为相机的渲染目标来执行此操作。然后,您可以将 RenderTexture 的内容复制到 Texture2D (Texture2D.ReadPixels()) 并将其保存到磁盘 (Texture2D.EncodeToPNG/JPG())