在 HTC Vive 的 Maya 中为 90 fps

90 fps in Maya for HTC Vive

我正在 Maya/Stingray 2017 年为 HTC Vive VR HMD 开发游戏。众所周知,Vive 以最低 90fps 的速度运行游戏(我们需要使用 90fps 来获得强大的 VR 体验而不是感到恶心)。但是 Maya 没有预设 90 fps。它仅支持这些:2、3、4、5、6、8、10、12、15、16、20、24、25、30、40、48、50、60、75、80、100、120、 125、150、200、240、250、300、375、400、500、600、750、1000、1200、1500、2000、3000 和 6000 fps。

这是我在脚本编辑器中为 90fps80fps 执行的 MEL 命令:

currentUnit -t "90fps"; 
// Warning: line 1: Illegal value entered for -time // 

currentUnit -t "80fps";
// Result: 80fps // 

如何使用 MEL 让 Maya 以 90 fps 精确播放我的动画?

根据文档: http://help.autodesk.com/cloudhelp/2016/ENU/Maya-Tech-Docs/Commands/

currentUnit -time "30fps";

应该是:

currentUnit -time "ntsc"; // This is 30 FPS
currentUnit -time "film"; // This is 24 FPS

或类似。

为了回答您的问题,您说 HTC Vive VR 耳机至少需要 90 FPS。为什么不以 100 FPS 的速度进行?十个额外的帧对您的玩家是否实际看到帧速率几乎没有影响。当你超过 90 FPS 时,帧速率变得非常清晰,以至于人类通常很难有意识地意识到 90 和 100 帧之间存在差异。

这是来自动画师。

也就是说,您可以继续使用相同的时间间隔并提高到 120 FPS。这将控制帧速率比率,因为它是 30 的倍数,就像 90 帧一样。

希望对您有所帮助。 Maya 不会偏离随机值,因为存在帧速率标准。 90有点古怪。

我觉得 Maya 中的帧率和动画的实际制作方式存在一些误解。

动画师可以使用帧速率来使用他们对帧和时间的了解。然而,动画键可以设置为关闭数字,如 15.62。帧在那里是为了方便,但不会改变动画及时放置在浮点上的事实。

这意味着您基本上可以将 Maya 设置为 12 fps,并且在您的 game-engine 中仍然让动画完全流畅,假设您的键是插值的。

动画师以 60 fps 的速度工作可能会有所帮助,但没有什么可以阻止您在 30.5 帧处设置关键点,例如。

您可以使用的一个技巧(如果您的计算机足够快)是将 "Playback by" 首选项设置为小于 1。例如,如果您以 30 fps 的速度制作动画,但想预览您的60 fps 的动画,您可以简单地在 "Preferences > Time Slider" 下设置以下选项:

  • 播放速度 > 每帧播放
  • 回放 > 0.5
  • 最大播放速度 > Real-time

您可以用半帧进行硬件渲染并以两倍的速度播放。

因此,将帧视为浮动时间轴上的点...

Example of frame to time at 30 fps

Frame    0      1      2      3      4      5      6      
Time     0.000  0.033  0.067  0.100  0.133  0.167  0.200  etc.

作为一名动画师,我也不愿意以 90 fps 的速度工作。一秒钟考虑的帧太多了。相反,我会调整动画在以 90 fps 观看时可能 "snappy" 不够的几个点。通常这可以通过简单地调整曲线来完成。

现在 Autodesk Maya 2020 支持 90 fps 帧速率(现在它的 fps 范围是 2 到 48000 fps):

MEL 命令:

currentUnit -time "90fps";

# // Result: 90fps // 

Python 命令:

import maya.cmds as cmds

cmds.currentUnit(time='90fps')

# // Result: 90fps //

...那么你可以查询:

cmds.currentUnit(query=True, time=True)