ロゴ メインコンテンツへ
RSSフィード
「デジタルコンテンツ制作」に関連する記事一覧

Maya API 最低限必要な関数

2009/06/23
(この記事の文字数: 1278)

ずっとMaya APIを作ろうとしていて放置していました。そのおかげでせっかく勉強したこともほとんど忘れてしまいました。
もう一度習得しなおそうと思います。そして今度こそMayaのプラグイン作ります。勉強したことをちょくちょく書いていこうと思います。

さて、とりあえず始めはAPIを作る上で最低限必要な関数をおさらいしておきます。

以下がMaya APIを作る上で最低限必要な関数です。

・initializePlugin() ⇒ プラグインロード時に実行される関数

・uninitializePlugin() ⇒ プラグインアンロード時に実行される関数

・コマンド用クラス ⇒ コマンドを定義するためにコマンドのclassはMPxCommandを継承する
  例えばTestCmdというクラスの場合

  class TestCmd:public MPxCommand{
  public:
       virtual MStatus doIt(const MArgList&);  
       static void *creator(){return new TestCmd} 
  }

というように定義します。
doItはコマンドの中身を実行するものです。creatorはコマンドが実行される毎にコマンドのインスタンスを生成します。これはundo、redoを可能にするためです。

・コマンドの実行する中身を定義する関数(doIt)
    MStatus TestCmd::doIt(const MArgList& args){
    }


以下はhelloと表示するだけのサンプルコードです。

#include <maya/MPxCommand.h>
#include <maya/MGlobal.h>
#include <maya/MFnPlugin.h>

class testCmd : public MPxCommand{
public:
 virtual MStatus doIt(const MArgList&)
 {
  MGlobal::displayInfo("hello\n");
  return MS::kSuccess;
 }
 static void *creator() {
  return new testCmd;
 }
};

MStatus initializePlugin( MObject obj ){
 MFnPlugin plugin(obj,"wsp", "1.0");
 MStatus stat;
 stat = plugin.registerCommand("test", testCmd::creator);
 if(!stat)
  stat.perror("registerCommand failed");
 return stat;
}

MStatus uninitializePlugin(MObject obj){
 MFnPlugin plugin(obj);
 MStatus stat;
 stat = plugin.deregisterCommand("test");
 if(!stat)
  stat.perror("deregisterCommand failed");
 return stat;
}


  このエントリーをはてなブックマークに追加  

<<「デジタルコンテンツ制作」の記事一覧に戻る

<<「デジタルコンテンツ制作」の次の記事
「デジタルコンテンツ制作」の前の記事 >>

コメント(0 件)



コンテンツロード: 0.0084 sec
Copyright(C)2006-2024 puarts All Rights Reserved