maya自定义图像平面中的公共可见自定义属性

时间:2016-05-05 07:17:29

标签: c++ api attributes maya

我一直在为maya开发一个自定义图像平面,我需要从外部文件加载信息,所以我试图为用户创建一个自定义属性(字符串)来输入文件的路径。

我已在customImagePlane.h

中声明了这一点
public:
    static  MObject     metaDataFile;

并在initialize方法中初始化它:

MStatus customImagePlane::initialize()
{
    MStatus             stat;
    MFnTypedAttribute   attr;
    MFnStringData       stringFn;
    MObject defmsg  = stringFn.create("Input metadata file path");
    metaDataFile    = attr.create("metaDataFilePath", "datapath", MFnData::kString, defmsg, &stat);
    if(!stat) return stat;
    attr.setHidden          (false  );
    attr.setReadable        (false  );
    attr.setWritable        (true   );
    attr.setStorable        (true   );
    attr.setConnectable     (true   );
    attr.setChannelBox      (false  );
    attr.setInternal        (false  );
    attr.setUsedAsFilename  (true   );
    stat = addAttribute(metaDataFile);
    if (!stat) { stat.perror("addAttribute"); return stat;}
    return MS::kSuccess;
}

现在,该属性在节点编辑器或hypershade中可见,但我需要的是在节点的额外属性中可见,以便用户轻松接收。

我做错了什么? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

好吧,经过几个小时考虑事情和尝试一些事情后,restarting maya使我的属性显示为应该。 Loadind mll并不是那么干净。