创建自定义装备

 
 
 

将自定义装备摄影机添加到场景中的方法有以下两种。

方法 1

编写 MEL 或 Python 脚本程序

  1. 通过编写 MEL/Python 脚本创建自定义装备。
    提示

    最好是使用 Python 脚本创建装备。

  2. 描述摄影机装备的层次并定义中心摄影机、左侧摄影机和右侧摄影机的关系。

    所有装备节点必须以一台摄影机为父对象(直接或通过任意数量的变换)。该摄影机作为根装备,并作为中心摄影机。无法在装备结构内部使用实例化。

    创建过程不应使用任何参数,并且必须返回由三个字符串组成的数组。第一个是装备的根节点,第二个和第三个分别是左侧摄影机和右侧摄影机。

有关 stereoRigManager

注册您的自定义装备

  1. 选择“立体 > 编辑器 > 自定义立体装备”(Stereo > Editors > Custom Stereo Rig)

    此时将显示“自定义立体装备编辑器”(Custom Stereo Rig Editor)窗口。

  2. “注册新装备”(Register a new rig section)区域中,选择自定义装备的名称。选择用于创建自定义装备的语言,即 Python 或 MEL。输入要用于创建您的自定义装备的 Python 或 MEL 程序,例如:

    maya.app.stereo.stereoCameraComplexRig.createRig.

  3. “摄影机集回调”(Camera Set Callback)区域中,指定回调(如果正在使用多重摄影机装备)。

    每个自定义装备可以指定每当该装备附加到摄影机集时调用的回调。摄影机集保存到多重摄影机装备的各层上,并包含用于保存与各层相关的信息的窗口。创建装备并将其指定给多重装备的某一层后,将执行该回调,以使自定义装备知道已发生该操作并允许执行任何自定义操作。多重装备的每一层都如此。

    在创建所有多重装备后,会将一个最终回调发送到同一个方法,以指示 Maya 已完成多重装备的创建。回调的语法包含下列标志:

    每层:<nameOfCallback> -cameraSet <multiRigName> <rigNodeName>

    最终回调:<nameOfCallbak> -cameraSet <multiRigName> -allDone 1

    有关多重摄影机装备的详细信息,请参见创建多重摄影机装备多重摄影机装备工具

  4. 单击“添加新装备”

    现在,通过选择“面板 > 立体”(Panels > Stereo)“新立体摄影机(<您的自定义装备>)”,您可以访问自定义装备。

    注意

    还可以通过使用 StereoRig 管理器命令注册您的自定义装备。有关如何使用该命令注册自定义装备、查询默认装备或删除装备的示例,请参见 StereoRig 管理器命令文档。

源代码示例

Maya 附带一个已启用的默认立体装备。提供的源代码在 Python 模块中:...\Python\Lib\site-packages\maya\app\stereo。在该目录中,还可以找到以下代码示例:

...\scripts\others\stereoCameraSimpleRig.mel 创建最简单的装备,其中摄影机用于右眼和中心眼。左侧摄影机被设置为子对象。

stereoRigManager 示例中使用了这些脚本。

方法 2

使现有装备与 Maya 兼容

如果存在现有装备,或者需要在 Maya 之外创建装备,可以使现有装备与 Maya 的要求兼容。但是,所有摄影机必须以公共变换为父对象,称为装备根。

调用以下 Python 代码:

import maya.cmds as cmds
from maya.app.stereo import stereoCameraRig
# Make sure the stereo plug-in is loaded
cmds.loadPlugin("stereoCamera", quiet=True)
stereoCameraRig.makeStereoCameraRig(rigRoot, rigTypeName, leftCam, rightCam)

其中 rigRootleftCamrightCam 分别是根变换的名称、左侧摄影机对的名称和右侧摄影机对的名称。rigNameType 是用于标识装备类型的用户定义的字符串。

更改默认的左侧摄影机对和右侧摄影机对

如果已装备多个左侧和右侧摄影机对,您可以更改用于交互式显示的默认左侧对和右侧对。

调用以下 Python 代码:

 
import maya.cmds as cmds
from maya.app.stereo import stereoCameraRig
# Make sure the stereo plug-in is loaded
cmds.loadPlugin("stereoCamera", quiet=True)
stereoCameraRig.setStereoPair(rigRoot, leftCam, rightCam)