【问题标题】:Maya c++ API, parenting one object to another?Maya c++ API,一个对象到另一个对象?
【发布时间】:2018-02-17 15:53:29
【问题描述】:

我正在学习 maya c++ API,并被困在最简单的任务上。

我有一个对象(定位器):

MObject locatorObj = dagModifier.createNode("transform");
MObject locShapeObj = dagModifier.createNode("locator", locatorObj);
dagModifier.renameNode(locatorObj, "root");
dagModifier.renameNode(locShapeObj, "rootShape");

还有一个:

//root loc
MObject locatorObj2 = dagModifier.createNode("transform");
MObject locShapeObj2 = dagModifier.createNode("locator", locatorObj);
dagModifier.renameNode(locatorObj2, "root2");
dagModifier.renameNode(locShapeObj2, "root2Shape");

我想把第二个放在第一个下面。我试过了:

//parent t
MStatus status;
MFnDagNode fnRoot(locatorObj);

status = fnRoot.addChild(locatorObj2, MFnDagNode::kNextPos, true);

但是当我运行 Maya 时它崩溃了。我在这里使用MFnDagNode 对吗?我也试过:

MFnTransform rootTransform (locatorObj);
status = rootTransform.addChild(locatorObj2, MFnDagNode::kNextPos, true);

但我也遇到了崩溃。我哪里错了? 谢谢。

【问题讨论】:

    标签: maya maya-api


    【解决方案1】:

    我最终使用关节而不是定位器。这有效:

    MFnIkJoint* rootJoint = new MFnIkJoint();
    MObject rootTransform = rootJoint->create(MObject::kNullObj, &status);
    
    MFnIkJoint* Joint = new MFnIkJoint();
    MObject Transform = Joint->create(MObject::kNullObj, &status);
    
    MStatus status = rootJoint ->addChild(Transform , MFnDagNode::kNextPos, false);
    

    【讨论】:

      猜你喜欢
      • 2021-06-16
      • 2018-03-12
      • 1970-01-01
      • 1970-01-01
      • 2015-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-13
      相关资源
      最近更新 更多