Python改变电影门的方式

时间:2016-06-20 21:35:04

标签: python maya

改变电影门的命令是什么?

然而,在我的情况下,有2个胶片门在其相机光圈等方面具有相同的值,但它们具有不同的名称,例如。 35毫米默认和35毫米交付。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

评论很长,所以还有另一个答案

如果你在底部查看该文件,你可以看到

AEcameraFilmbackNew

它填充optionMenu

的地方
string $filmbackTable[] = globalFilmbackTable();

whish是那个mel脚本的顶部

whish是

的列表
            //  Name                                        Horiz    Vert     Squeeze
    (uiRes("m_AEcameraFilmbackNew.kTheatrical")),          "0.404", "0.295", "1.0",
    (uiRes("m_AEcameraFilmbackNew.kSuper")),                    "0.493", "0.292", "1.0",
    (uiRes("m_AEcameraFilmbackNew.kAcademy")),                "0.864", "0.630", "1.0",
    (uiRes("m_AEcameraFilmbackNew.kProjectionTV")),     "0.816", "0.612", "1.0",
    (uiRes("m_AEcameraFilmbackNew.kAperture")),         "0.980", "0.735", "1.0",
    (uiRes("m_AEcameraFilmbackNew.kProjection185")),  "0.825", "0.446", "1.0",
    (uiRes("m_AEcameraFilmbackNew.kAnamorphic")),          "0.864", "0.732", "2.0",
    (uiRes("m_AEcameraFilmbackNew.kProjection70")),        "2.066", "0.906", "1.0",
    (uiRes("m_AEcameraFilmbackNew.kVista")),                   "1.485", "0.991", "1.0",
    (uiRes("m_AEcameraFilmbackNew.kImax")),                           "2.772", "2.072", "1.0"

没有简单的方法来设置预设,它们只是用脚本填充的保存设置

答案 1 :(得分:0)

并非一切都是AE(属性编辑器)中的属性  它是ui的动态构建部分,允许进行自定义设置

电影门不是一个属性,只是一些设置的枚举

选择你的相机并运行它, 你不会看到列出的电影门

for i in sorted(pm.ls(sl=True)[0].listAttr()):
    print i

当您手动更改时,您将获得以下内容

AEwhichCameraFilmback perspShape2.horizontalFilmAperture  perspShape2.verticalFilmAperture perspShape2.lensSqueezeRatio;
AEcameraFilmbackModified "perspShape2";
AEcameraFilmbackModified "perspShape2";
AEadjustFOV perspShape2.focalLength perspShape2.horizontalFilmAperture;

这就是mel所以这让你相信它的一些命令

在mel(并且只有mel)中有一个whatIs命令

whatIs AEadjustFOV ;
//Result: Mel procedure found in: C:/Program Files/Autodesk/Maya2014/scripts/AETemplates/AEcameraTemplateCommon.mel

再次证明其自定义AE而不是直接属性

如果你破坏了所有这些命令的内容,他们可能会回到同一个mel文件

我也发现获取这些文件的最快方法是将路径粘贴到网络浏览器中,它会弹出正确的

您很可能会找到构建该选项菜单的位置并找到它运行的命令更改

答案 2 :(得分:0)

所以我通过python

找到了一种方法
cmds.optionMenu('filmbackMenu', edit = True, value = "<Name of the filmback>")

cmds.optionMenu('filmbackMenu', edit = True, select = "<Filmback index in the Film Gate drop-down list")

请注意,对于索引方法,索引从1开始,而不是从0开始

之后,运行以下代码,以便将更改反映到光圈和镜头挤压上。如果不这样做,它只会更改filmback的名称

mel.eval('AEwhichCameraFilmback <Name of Camera>.horizontalFilmAperture <Name of Camera>.verticalFilmAperture <Name of Camera>.lensSqueezeRatio;')

注意:我注意到它有时会起作用,但不能保证。仍试图找出原因