【问题标题】:Add a custom shape to a Maya scene from C++从 C++ 向 Maya 场景添加自定义形状
【发布时间】:2014-07-17 20:49:23
【问题描述】:

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

形状由从磁盘读取文件的MPxCommand 创建。现在我想从插件中将此对象添加到我的 Maya 场景中。但不幸的是,我找不到将MPxNode/MPxSurfaceShape 添加到 Maya 以便显示的函数。

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

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

【问题讨论】:

    标签: c++ maya autodesk


    【解决方案1】:

    希望能帮到你。

     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

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

    【讨论】:

    • 太棒了!谢谢!我去看看。
    • 我想我最好从头开始。我想我需要重组插件:apiMeshShape 示例看起来与我要解决的问题非常相似。
    • 谢谢!我还发现 github.com/ADN-DevTech/Maya-Locator 和 customLocator 节点基本上可以满足我的需求。
    • 接受解决方案,因为我的问题不明确,可以在网上找到解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多