アウトライナに表示してる特定のオブジェクトくれよ!一覧でいいからくれよ!
defaultObjectSetがとりたいと仮定する。
あげる。どこかで呼んでください。
Printf("---- name start ----- ");
MItDependencyNodes Itdag;
for (; !Itdag.isDone(); Itdag.next())
{
MFnDependencyNode dn;
dn.setObject(Itdag.item());
const char *nodeName = dn.name().asChar();
Printf("ThisName:/ %s\n", nodeName);
}
Printf("---- name end ----- ");
MItDependencyNodes を使えばアウトラインに出てる奴全部取得できる!
以下VisualStudioの出力結果。赤字は社内プラグインなので伏せ
よけいなのめっちゃでてる。なんで?アウトライナには5こぐらいしかでてなかったよ?
他にもデフォでいろいろチェック入ってるから注意してね。
いや、DAG Objects Obnly状態の物が欲しい。フィルターとかかけられないの?
かけれるよ。
Printf("---- name start -----\n ");
MItDependencyNodes Itdag(MFn::Type::kSet); //単体走査タイプ指定
for (; !Itdag.isDone(); Itdag.next())
{
MFnDependencyNode dn;
dn.setObject(Itdag.item());
const char *nodeName = dn.name().asChar();
Printf("ThisName:/ %s\n", nodeName);
}
Printf("---- name end -----\n ");
初期化の時にタイプ指定するとフィルタリングできるよ。他にも複数指定とかできるけどMItType系のフィルタークラスがあるからそれにMIntArray系で指定できたはずだよ。面倒だから誰か書いて。
重要なのはここで
MItDependencyNodes Itdag(MFn::Type::kSet); //単体走査タイプ指定
MFn::Type::kSetを指定したけどなんでKSetなの?
アトリビュートをみるとobjectSet:とかいてあるよ。これらはkSetになるよ。なんでKobjectSetじゃないの?そういう所だぞAutDesk!
visual studio の表示結果
更新で呼んでるので何度も表示されるけど
だいたい合ったのでよしとする。
重要なのは MItDependencyNodes クラス
他にもMIt系はたくさんある!Itってのはイテレーターの略です。ぶん回して走査するので軽くはない。
Maya2018の公式リファレンスをみるといい。英語だから読みたくないけど。大正義の情報源はここ。
http://help.autodesk.com/view/MAYAUL/2018/JPN/?guid=__cpp_ref_class_m_graph_editor_info_html
さよなら