从C ++向Maya场景添加自定义形状

时间:2014-05-28 14:46:58

标签: c++ maya autodesk

我正在为maya创建自定义导入插件。我已经编写了一些导入代码并创建了一个自定义MPxSurfaceShape类(我主要对从视口中绘制曲面感兴趣)。

形状由MPxCommand创建,它从磁盘读取文件。现在我想从插件中将这个对象添加到我的maya场景中。但遗憾的是,我无法找到一个带MPxNode / MPxSurfaceShape的函数并将其添加到Maya中,以便可以显示它。

在所有示例中,我已经看到节点是从mel内部实例化的。但我想将此实例链接到一个文件。这使我无法创建节点然后进行编辑。

可以在maya插件文件夹中的apiMeshShape示例或此处找到类似的解决方案:https://github.com/ADN-DevTech/Maya-Locator/(也支持加载外部数据)。

1 个答案:

答案 0 :(得分:3)

我希望这会有所帮助。

 MDagModifier dagMod;
 MObject newNode = dagMod.MDGModifier::createNode("Node Name")
 dagMod.doIt()

 MDagModifier dagMod;
 MObject newNode = dagMod.MDGModifier::createNode(Node::id)
 dagMod.doIt()

从那里你有一个MObject,你可以做其他事情。

 //Dag Node example.
 MFnDagNode new_MDagNode(newNode);

 //Dependency Node.
 MFnDependencyNode new_DependNode(newNode);

MPxNode也有thisMObject(),它将为您提供MPxNode中的当前MObject。 http://download.autodesk.com/us/maya/2010help/API/class_m_px_node.html#9608c582da0945e792c3f9893661404d

我再也不确定我完全理解这个问题,但我希望这会有所帮助。