2009年03月15日

テクスチャプラグインをWindowsでコンパイルする

前回は付属のサンプルコードをコンパイルするだけで終わってしまったので、今回はオリジナルのプラグインを作ってみよう...と思ったのですが、前回できなかったWindowsでのコンパイルがようやくできるようになったので、その方法を書いておこうと思います。

まず、今回参考にしたインターネットのページです。
BlenderArtists.orgのフォーラムで検索してこちらのスレッドにたどり着きました。
そして、その中で紹介されていたのが、こちらのサイトです。

以下に、簡単に手順を説明します。基本的に上のサイトの手順そのままです。
ちなみに使用するコンパイラはMicrosoftのVisual C++ 2008 Express Editionのものです。

1.コマンドプロンプトを立ち上げます。Windowsのスタートメニューの「アクセサリ」とかにあります。
pic090314_01.jpg

2.Visual C++の機能をコマンドプロンプトから使えるようにします。具体的には、Visual C++に付属する「vcvars32.bat」というバッチファイルを実行します。

"\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"

インストールの仕方によってファイルの場所は、違っていたりするかもしれません。
pic090314_03.jpg pic090314_04.jpg

3.「cd」コマンドで、Blenderのインストールフォルダにある「Plugins」ディレクトリに移動します。
あらかじめ「Plugins」フォルダだけを、どこかわかりやすい場所にコピーしておいた方がいいかもしれません。

cd \blender\plugins

今回は「C:\」直下に「blender」というフォルダを作って、そこに「Plugins」フォルダをコピーしてあります。
pic090314_05.jpg pic090314_06.jpg

4.コンパイルに必要な「lib」ファイルを作成します。
詳しいことは上記のサイトで説明されていますが、プラグインのソースファイルでBlenderの用意している関数を使うために必要なようです。サンプルの「tiles.c」と「clouds2.c」では、「plugins」-「include」フォルダの「plugin.h」に記述されているhnoise()関数が使われています。
そのためのコマンドは以下のようなものになります。

link /lib /nologo /MACHINE:X86 /DEF:include\plugin.def /NAME:blender.exe

これで、「plugin.lib」「plugin.exp」という2つのファイルが作成されます。
pic090314_07.jpg pic090314_08.jpg

5.プラグインをコンパイルします。

cl /nologo -Iinclude /LD texture/tiles.c plugin.lib /link /EXPORT:plugin_getinfo /EXPORT:plugin_tex_getversion

2行に分かれて表示されていますが、実際には1行にまとめて入力します。
上の例では、「texture」フォルダに入っている「tiles.c」を指定しました。
このコマンドを実行すると、コマンドプロンプトにずらっとメッセージが表示され、「tiles.obj」「tiles.dll」「tiles.lib」「tiles.exp」の4つのファイルが作成されます。このうち、「tiles.dll」がプラグイン本体となります。
pic090314_09.jpg pic090314_10.jpg

pic090314_11.jpg

Blenderの「plugin」パネルの「Load Plugins」ボタンで、今作ったプラグインファイルを開いてみます。
pic090314_12.jpg pic090314_13.jpg

無事、プラグインとして使用できました。


実は、今回参考にさせていただいた上記のサイト以外に、LCC、MinGWを使ってWindowsでテクスチャプラグインをコンパイルする方法が書かれているサイトがあって、最初はそちらを参考にしてコンパイルを試していたのですが、私の環境ではなぜかうまくいきませんでした。
そちらでは、今回の「4.」の「lib」ファイルを作成する部分に相当する手順が省かれているようですので、そのあたりを工夫すればLCCやMinGWでもコンパイルできるのかもしれません。
posted by mato at 00:21| Comment(0) | Blender | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。