如何在C ++(MFC)中开发Maya视口扩展

时间:2013-03-21 02:15:05

标签: c++ mfc viewport maya

我需要使用(MFC)在C ++中开发Maya视口扩展,还需要控制视图样式(例如顶视图,左视图等)。我可以使用Maya SDK来存档它以及如何制作它吗?感谢。

1 个答案:

答案 0 :(得分:4)

我不完全确定“视口扩展”是什么意思 我想你正在尝试编写一个Maya插件,它具有你自己的视口类型,通常称为“模型视图”。

MCF与此无关 您可以使用Maya MEL / Python命令创建Maya窗口,面板和其他UI元素 (如果有一个hack让Maya使用你自己创建的Windows,我不知道)

您可以通过创建两个类来在Maya中开发自定义视口:
视口或模型视图,以及“模型编辑器命令”。

模型视图

一个是你的视口类,我们称之为“MyViewport” 它必须继承“MPx3dModelView” 通常,您会将摄像机与视口关联。这让你可以从你看到场景的地方进行控制。您可以将多个摄像头连接到视口(多遍显示,例如立体3D),或者根本不连接(但是您必须自己设置所有渲染参数,这可能很乏味)。

您从该类继承的(回调)函数允许您设置视口的详细信息。

请参阅有关MPx3dModelView的Maya文档,了解如何使用它 http://download.autodesk.com/us/maya/2010help/API/class_m_px3d_model_view.html

模型编辑器命令

您需要的另一个类是视口命令 当有人试图创建您的视口时,这就是被调用的东西 它必须继承“MPxModelEditorCommand” 它最重要的特性是它可以创建模型编辑器类的实例。

有关如何使用它的信息,请参阅有关MPxModelEditorCommand的Maya文档:
http://download.autodesk.com/us/maya/2011help/API/class_m_px_model_editor_command.html

使用Maya插件

注册viewport命令

为了能够创建视口,您必须使用插件注册模型编辑器命令 在您的initializePlugin函数(使用插件导出的函数)


MStatus initializePlugin( MObject obj )

    {
        MFnPlugin plugin( obj, PLUGIN_COMPANY, "1.0", "Any");
        plugin.registerModelEditorCommand(MyModelViewCmd::commandName, MyModelViewCmd::creator, MyModelViewCmd::createModelView);
    }

编写创建视口的脚本

最后,您在Maya中使用MEL或Python脚本来创建用户界面 在最简单的设置中,您只需创建一个窗口,然后调用模型编辑器命令在此窗口中创建自定义视口。



    window MyWindow;
    paneLayout MyWindowPane;
    MyModelView MyModelView1;