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

Posted

技术标签:

【中文标题】如何在 C++(MFC)中开发 Maya 视口扩展 [关闭]【英文标题】:How to develop a Maya Viewport Extension in C++(MFC) [closed] 【发布时间】:2013-03-21 02:15:05 【问题描述】:

我需要用(MFC)在C++中开发一个Maya Viewport Extension,还需要控制视图样式(如顶视图、左视图等)。我可以使用Maya SDK来归档这个以及如何制作吗?谢谢。

【问题讨论】:

【参考方案1】:

我不太清楚您所说的“视口扩展”是什么意思。 我猜您正在尝试编写具有您自己的视口类型的 Maya 插件, 通常称为“模型视图”。

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

您可以通过创建两个类在 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 插件注册视口命令

为了能够创建您的视口,您必须使用插件注册您的模型编辑器命令。 在您的 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;

【讨论】:

其实,我需要写一个第三方App来渲染Maya的Model。App作为额外的视口,供用户全屏编辑模型和检查错误。App是内置的C++。任何提示将不胜感激。 请更新您的原始问题,以便重新打开。在这些微小的 cmets 中回答并不能帮助其他有类似问题的人。另外:请更准确。 “第三方应用”是什么意思?

以上是关于如何在 C++(MFC)中开发 Maya 视口扩展 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

是否有显示视口大小的 Safari 的免费扩展

如何学习 MFC C++ 2013

如何在 C++ 语言中将谷歌地图 API 与 MFC 或 QT 一起使用?

玛雅人。有没有办法通过改变视口来激活脚本作业?

Maya Plugin 编译Maya插件

使用 C++/MFC 和 C# 中的插件扩展 C++/MFC 应用程序