以 2D 打印 3D 对象动画
Print a 3D object animation in 2D
这里我需要做的是以 2D 格式打印我的动画剪辑中的 3D 动画过渡。例如打印在纸上行走的人类动画。有办法吗?
有几个方面需要考虑:
- 将动画分割成帧
- 渲染帧
- 正在检索渲染帧
将动画分割成帧
在渲染帧之前,您必须决定它应该是哪一帧。根据您的要求,您可能只想渲染关键帧(由动画艺术家或动作捕捉数据定义的帧,但可能不会在动画持续时间内均匀分布),或者渲染均匀分布在动画的持续时间(即每 0.2 秒渲染一帧)。
知道帧后,您可以告诉 AnimationController 跳转到该特定帧并相应地更新 3D 模型。
渲染帧
同样,根据您的要求,您可能需要考虑使用具有正交投影的相机。这将消除任何透视扭曲,从而更容易直观地分析动画。当然,如果目标是更具视觉吸引力或 "artistic" 演示,则可能还需要透视投影。
正在检索框架
由于要打印效果图,所以需要检索效果图。您可以通过让 Unity 截取屏幕截图 (Application.CaptureScreenshot) 或通过使用 RenderTexture 并将其设置为相机的渲染目标来执行此操作。然后,您可以将 RenderTexture 的内容复制到 Texture2D (Texture2D.ReadPixels()) 并将其保存到磁盘 (Texture2D.EncodeToPNG/JPG())
这里我需要做的是以 2D 格式打印我的动画剪辑中的 3D 动画过渡。例如打印在纸上行走的人类动画。有办法吗?
有几个方面需要考虑:
- 将动画分割成帧
- 渲染帧
- 正在检索渲染帧
将动画分割成帧
在渲染帧之前,您必须决定它应该是哪一帧。根据您的要求,您可能只想渲染关键帧(由动画艺术家或动作捕捉数据定义的帧,但可能不会在动画持续时间内均匀分布),或者渲染均匀分布在动画的持续时间(即每 0.2 秒渲染一帧)。 知道帧后,您可以告诉 AnimationController 跳转到该特定帧并相应地更新 3D 模型。
渲染帧
同样,根据您的要求,您可能需要考虑使用具有正交投影的相机。这将消除任何透视扭曲,从而更容易直观地分析动画。当然,如果目标是更具视觉吸引力或 "artistic" 演示,则可能还需要透视投影。
正在检索框架
由于要打印效果图,所以需要检索效果图。您可以通过让 Unity 截取屏幕截图 (Application.CaptureScreenshot) 或通过使用 RenderTexture 并将其设置为相机的渲染目标来执行此操作。然后,您可以将 RenderTexture 的内容复制到 Texture2D (Texture2D.ReadPixels()) 并将其保存到磁盘 (Texture2D.EncodeToPNG/JPG())