ak備忘録

レガシーブログ

SoftImageでプラグイン開発 コンパイル編

こんばんは。

SoftImageでプラグイン開発を行おうと思っていじっていたんですが
早速コンパイル通らなくてワロタ!!

正確にはリンクエラー。
C++プラグインを作ろうと思ったんですが、
XSI関係のクラスや関数などにことごとくリンクが通らない。

おそらくこれは64bit環境などの影響によるものだと思います。
ここが詳しいのでC++コンパイルを通したい場合は参考にしてみるとよいと思います。

http://download.autodesk.com/global/docs/softimage2012/ja_jp/sdkguide/index.html?url=files/
Softimage SDK プログラマー ガイド > C++ API 開発

先ずプラグインのVisualStudioプロジェクトですが、
SoftImageのプラグインマネージャーを使えば、勝手にひな形を作ってくれるので
自分でプロジェクトの新規作成をする必要はありません。

ちなみに僕はC++あきらめました・・・
なんかもうエラー解消が面倒なのでおとなしくC#にすることにしました。

これまたこの辺が詳しいと思います。

http://download.autodesk.com/global/docs/softimage2012/ja_jp/sdkguide/index.html?url=files/
Softimage SDK プログラマー ガイド > C# 開発

C#だとXSIが作ってくれたひな形に少しコードを付け足すだけでコンパイルが通りました。

付け足すコード。

①XSIPlugin::Loadメソッド

【追加】

in_reg.RegisterCommand("HelloWorld", "HelloWorld");

②上で追加したプラグイン名と同名の新しいクラス

【追加】

public class HelloWorld : Base
{
	public bool Init(Context in_ctxt)
	{
		return true;
	}

	public bool Execute(Context in_ctxt)
	{
		Info("Hello World!!");
		return true;
	}
}

これを付け足すだけで、最低限コンパイルが通って動くプラグインになりました。

あとはSoftImageのプラグインマネージャでロードして、
Pythonなどで

Application.HelloWorld()

と呼び出せばOK。