VisualC++でSoftimageXSIのプラグインを作成する

今回からしばらくXSIのプラグインを作成していきます。
まずはSoftimageXSIとXSISDKをインストールしておいてください。
ちなみに自分が使っているのはXSI 5.11 Foundationでちょっと古いですが、
今のバージョンも多分そんなにやり方は変わらないと思います。

まずは環境変数を確認します。
XSISDKが設定されていない場合は手動で設定してください。
plugin06

XSIを立ち上げてください。
[ファイル]->[プラグインマネージャ]を選択して、
プラグインマネージャを開いてください。
plugin01

次にプラグインマネージャで[ファイル]->[新規作成]->[コマンド]を選択して、
CCmdWizardを開きます。
plugin02

[スクリプト言語]->[Cpp]を選択します。
コマンド名、プラグイン名なども適当に変更してください。
plugin03

[メニューに追加]でプラグインのメニューをどこに追加するかを設定します。
これはソースからも変更できるので必須ではありませんが、手間を省くために設定しておきます。
この例ではsiMenuTbGetPrimitivePolygonMeshIDを選択します。
出力ディレクトリはuser\(ユーザー名)\XSI_???\Application\Pulgins あたりが良いはずです。
この辺りにおいておくとXSIがユーザープラグインとして認識してくれます。
そして[コードの生成]ボタンを押します。
plugin04

VC6用.dspとVC7用の.vcprojとcppファイルが生成されるので、.dspか.vcprojをVicualC++で開きます。
この例ではVisualC++ 2008を使用しています。
Visual Studio 変換ウィザードが立ちあがるので、[次へ]をクリックします。
途中警告やらエラーっぽいものが出るかもしれませんが無視して先に進めます。
plugin05

そのままビルドすると以下のようなエラーが出ます。
新しいVCだとwchar_tがデフォルトで組み込み型として設定されている為、
おそらくtypedef unsigned short wchar_tとして生成されたXSISDKのライブラリファイルと食い違っているせいだと思われます。
plugin07

これを回避する為にプロジェクトの設定を変更します。
[プロジェクトの設定]->[プロパティ]を選択してプロパティを開きます。
[構成プロパティ]->[C/C++]->[言語]タブを開き、
[wchar_tをビルトイン型として扱う]をいいえに変更します。
plugin08

ビルドが成功し.dllが生成されたら、XSIのプラグインマネージャで[すべて更新]をクリックします。
新規作成時にsiMenuTbGetPrimitivePolygonMeshIDにメニューを追加するように設定したので、
[取得]->[プリミティブ]->[ポリゴンメッシュ]にNewCommandのメニューが追加されているはずです。
plugin09

NewCommandを選択してみてください。
ログに以下のように表示されていれば成功です。
plugin10

現段階ではソースコード側の解説は無しにしておきます。
CCmdWizardの設定項目とソースコードを見比べてみれば大体検討がつくと思います。
いろいろいじって試してみてください。

次はダイアログを使えるようにしてみます。

コメントする

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トラックバックする

トラックバック用URL:

アニメーションが親切に解説されております

レンダリング、ライティングの基本が分かります

図版が見やすい美術解剖書です