Maya – 使用渲染设置以编程方式设置帧范围 API
Maya – Setting frame range programmatically with the Render Setup API
我正尝试在 Maya 2022 中使用 renderSetup Python api 设置开始帧,如下所示:
import maya.app.renderSetup.model.override as override
import maya.app.renderSetup.model.selector as selector
import maya.app.renderSetup.model.collection as collection
import maya.app.renderSetup.model.renderLayer as renderLayer
import maya.app.renderSetup.model.renderSetup as renderSetup
import maya.cmds as cmds
rs = renderSetup.instance()
rl = rs.createRenderLayer('NewLayer')
sf = rl.createAbsoluteOverride('defaultRenderGlobals', 'startFrame')
sf.setAttrValue(20)
由于某种原因,值“20”被翻译成“0.0800”。如何设置为合适的值?
0.004 帧问题
它是 Maya 渲染设置编辑器的 Great Old Issue。使用额外的乘数 250,因为由于某种原因初始帧值仍然是 0.004
帧。如果您需要第 20 帧,请使用以下数学公式:
0.004 x 20 x 250 = 20
对这种胡说八道的唯一可能解释是实施帧速率为 23.98 fps
而不是 23.976 fps
的预设。这就是 Maya 工程师“丢失”0.004
框架的地方。这是我的想法,可能是错误的,但作为 Final Cut Pro 的传道者,我承认这个想法...
所以,根据你的代码,你需要这样写:
sf = rl.createAbsoluteOverride('defaultRenderGlobals', 'startFrame')
sf.setAttrValue(20*250)
我正尝试在 Maya 2022 中使用 renderSetup Python api 设置开始帧,如下所示:
import maya.app.renderSetup.model.override as override
import maya.app.renderSetup.model.selector as selector
import maya.app.renderSetup.model.collection as collection
import maya.app.renderSetup.model.renderLayer as renderLayer
import maya.app.renderSetup.model.renderSetup as renderSetup
import maya.cmds as cmds
rs = renderSetup.instance()
rl = rs.createRenderLayer('NewLayer')
sf = rl.createAbsoluteOverride('defaultRenderGlobals', 'startFrame')
sf.setAttrValue(20)
由于某种原因,值“20”被翻译成“0.0800”。如何设置为合适的值?
0.004 帧问题
它是 Maya 渲染设置编辑器的 Great Old Issue。使用额外的乘数 250,因为由于某种原因初始帧值仍然是 0.004
帧。如果您需要第 20 帧,请使用以下数学公式:
0.004 x 20 x 250 = 20
对这种胡说八道的唯一可能解释是实施帧速率为 23.98 fps
而不是 23.976 fps
的预设。这就是 Maya 工程师“丢失”0.004
框架的地方。这是我的想法,可能是错误的,但作为 Final Cut Pro 的传道者,我承认这个想法...
所以,根据你的代码,你需要这样写:
sf = rl.createAbsoluteOverride('defaultRenderGlobals', 'startFrame')
sf.setAttrValue(20*250)