2009年03月04日

AGG SVG Viewer

vectexの話題の続きです。
vectexのソースコードをダウンロードすると、その中に「agg-2.5」「expat-1.95.8」というフォルダがあります。
pic090304_01.jpg

vectexのReadmeを読んでみると、このプラグインの作者 mgmalheirosさんは、オープンソースの2D描画ライブラリ「AGG」に付属しているSVGビュワーを元にして、このプラグインを作成したようです。
AGG」というのは「Anti-Grain Geometry」というのが正式名称で、Maxim Shemanarevさんという方が作られています。このサイトのトップページのメニューに「SVG Viewer」という項目があり、そこにこのライブラリを使ったSVG ViewerのWindows版ファイルとサンプルのSVGグラフィックがダウンロードできます。
pic090304_04.jpg

サンプルというだけあって、SVGファイル名を引数として指定してコマンドラインから実行するという使用方法になっています。
コマンドラインからの実行ということでちょっと面倒ですが、あるSVGファイルがBlenderのvectexプラグインで使えるかどうかを調べるのに使えそうです。
pic090304_02.jpg

ただ、なぜかLinux版の実行ファイルはダウンロードできるようになっていません。ソースコードから自分でコンパイルしてくださいということらしいです。基本的には「make」コマンドを使うだけなのですが、私がこのSVG_Viewerをコンパイルするまでにちょっととまどう部分がありましたので、少しその手順を説明したいと思います。

svg_viewerのソースファイルは「agg-2.5」フォルダの中の「examples」フォルダの中の「svg_viewer」というフォルダの中にあります。フォルダの中を見てみると、普通ならあるはずの「Makefile」が見当たりません。
pic090304_03.jpg

他のサンプルファイルは「examples」の中の「X11」フォルダにある「Makefile」を使ってまとめてコンパイルすることができましたが、その中にSVG Viewerはみつかりません。これは、もしかして自分で「Makefile」を作れということなのかと思って、しばらく悩みました。

結果的には「agg-2.5」フォルダのreadmeファイルをよく見ると、そこにコンパイルの仕方が書かれていました。
実は他のサンプルファイルと同じく「X11」フォルダにある「Makefile」に、SVG Viewerのための記述も書かれているのですが、SVG Viewerは他のライブラリ(freetype,expat)に依存しているためデフォルトではコンパイルされないようになっているそうです。
Ubuntuのパッケージマネージャ「Synaptic」で確認すると、私の環境ではどちらもインストール済みでしたので、そのままでコンパイルできそうです。SVG Viewerをコンパイルするには、端末ウィンドウで「exapmles」-「X11」に移動して、

$ make svg_test


と入力するだけです。
ちなみに、makeの後に指定しているのは、すべてをコンパイルするときに指定する「all」、makeで作成されたオブジェクトファイルなどを削除する「clean」などと同じ「ターゲット」というものです。「Makefile」の中でSVG Viewerに関する記述が「svg_test」というターゲットの下に書かれているので、この名前を指定することでmakeコマンドにSVG Viewerをコンパイルさせることができるということです。

Linuxでプログラミングをする場合、makeコマンドの動作の仕組みとかをある程度知っていないといけないようです。
※追記
「Makefile」について「make」コマンドとまぎらわしい記述になっていたのを修正しました。
posted by mato at 03:20| Comment(0) | Linux | このブログの読者になる | 更新情報をチェックする

2009年03月02日

テクスチャプラグインのパス

前回は少し話がそれてしまいましたが、BlenderのSVGテクスチャプラグイン「vectex」についてもう少し調べてみようと思っています。(ちなみに、Linuxのインストールの方は、結局UbuntuのGnome版32bitをインストールしました。)

●サンプルファイルを本来の状態で開くには...
vectexプラグイン付属のサンプル「test-animated.blend」「test-static.blend」を開くと、私の環境では「Plugin」パネルに vectexがロードされていない状態でファイルが開かれています。
pic090302_01.jpg

ただ、ファイルを開いたときにコンソール上に

var1: ./vectex.so, var2: ./vectex.so, var3: ./vectex.so: cannot open shared object file: No such file or directory

というようにエラーが表示されていて、本来ならプラグインをロードした状態で開かれるはずなのがわかります。
pic090302_02.jpg

なんとなく、プラグインを置いてある場所が問題になっている、という感じがします。
そして、実際にプラグインファイルと使用されているSVGファイルを、特定の場所に移動してあげることで、プラグインがロードされた状態でサンプルファイルを開くことができました。
pic090302_03.jpg

ただし、その場所というのは、使用しているBlenderによって若干変わるかもしれません。

○Windows
プラグインファイル「vectex.so」と使用しているSVGファイル「tiger.svg」をBlenderの実行ファイルと同じ場所に置いていると、「.blend」ファイルを開いたときにプラグインもロードされ、SVGファイルのパス、Base Colorなどが設定された状態になるようです。
pic090302_04.jpg

ただし、WindowsのBlender2.48aではなんらかの不具合が起こっているらしく、1回目にファイルを開いた時にはvectexがロードされない状態でファイルが開き、Blenderを閉じないでそのまま「File」メニューから同じファイルを開き直すと、vectexがロードされた状態でファイルが開きます。

○Linux
プラグインファイル、SVGファイルをユーザーのホームディレクトリ(/home/matoなど)に置くと、「.blend」ファイルを開いたときにプラグインがロードされ、SVGファイルのパス、Base Colorなどが設定された状態になります。


●パスの相対指定
通常、Blenderで使用している画像ファイルなどは、その置かれている場所を指定する際に、システムのトップディレクトリからの絶対パスでの指定の他に、その画像を使用している「.blend」ファイルからの位置、相対パスとして指定することができます。

しかし、vectexのプラグインパネルのSVGファイルの指定で同じことをしようとしてもうまくいきません。
どうやら、このプラグインのSVGファイルのパス指定は、相対パスを指定する際に「.blend」ファイルからの位置ではなく、WindowsではBlenderの実行ファイルのある場所、Linuxではホームディレクトリからの位置になっているようです。


●User Preferences
以上のことを考慮しておけば、自分でこのプラグインを使用してシーンを作成する場合でも、「.blend」ファイルを再度開く際にプラグインパネルで設定した内容を維持したままでファイルを開くことができると思います。
ただ、WindowsのBlenderの実行ファイル、Linuxのホームディレクトリなどには、本来余計なファイルはなるべく置いておきたくないものです。

Blenderの画面の一番上のメニューの部分をマウスドラッグで引き下げると表示される「User Preferences」画面にある、「File Paths」の「Tex Plugins:」を設定すると、プラグインファイルを置く場所を自由に指定できます。
pic090302_05.jpg

上記のWindows、Linuxでのプラグインファイルを認識する場所の違いは、何も指定しない状態での「Tex Plugins:」のデフォルト設定が、それぞれBlenderの実行ファイルのある場所、ユーザーのホームディレクトリとなっている、ということなのかもしれません。
posted by mato at 04:03| Comment(0) | Blender | このブログの読者になる | 更新情報をチェックする
×

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