我需要用(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;