Linux 64bit
Linux 32bit
Windows 32bit
ソースファイルのパッチ(Blender2.5_Vectex_patch.zip)
今回の更新内容は、
1. トランクの変更(27332 : 27840)を取り込みました。
3. SVGファイルを連番ファイルのアニメーションとして使用した場合の不具合の修正。
となっています。
注)3月25日にr27736のビルドをアップロードしましたが、そちらにバグを混入していたことに気付いて、バグフィックス版としてr27840のビルドをアップロードし直しました。前回の更新でも同様のことをしてしまったばかりなのに、同じような失敗を繰り替えしてしまってすみません。
○SVG 連番ファイルについて
SVGフォーマットはアニメーションを表現するための仕様も含んでいて、本来ならばAVI、MPEGなどの動画ファイルのように一つのファイルに複数フレーム分のデータを保持することができます。
そのためSVGファイルを連番ファイルとして使用することは通常はほとんどないと思います。
ほとんどないとは思いますが、Blenderのイメージテクスチャの仕様上このような形でのSVGファイルの使い方もできてしまうので、実際に使ってみるとどうなるのか試してみました。


連番のSVGファイルを出力するようなソフトウェアは恐らく存在しないのではないかと思いますが、Freestyleとsvgwriterモジュールを使うことでBlenderで作成可能です。
BlenderのFreestyleブランチについては、こちらの開発ブログかBlenderartist.orgのフォーラムのスレッドに詳しい情報があります。
Freestyleの機能を試すにはGraphicall.orgにアップロードされるカスタムビルドを使うのが簡単です。
svgwriteモジュールはFreestyleブランチ開発チームのT.K.さんが作成したものです。こちらのT.K.さんのサイトから入手可能です。
もともとのアニメーション用svgwriterはXMLファイルとして各フレームのデータを一時的に保存して、それを一つのファイルにまとめるような仕組みになっています。
このXMLへの書き出し部分のpythonコードを静止画のSVGファイルのヘッダ作成を行う部分と置き換えると、SVGファイルを連番ファイルとして出力できます。
こちらにSVG連番ファイル出力用に改造したsvgwriterモジュールを置いておきます。
本来なら一つのファイルにまとめられたSVGアニメーションをVectexで使用できるようにしたいところですが、現在のところQtSVGでフレーム位置をコントロールする機能が見当たらないため、当面の間はアニメーションに対応するのは難しいと思います。
Blender2.49をベースとしていたときのVectexでも、一応SVG連番ファイルを使用することができました。
しかし、SVGファイルを連番のアニメーションとして使用すると各フレーム毎に大量のタイルキャッシュ画像が作成されるため、簡単に数ギガバイト単位のメモリを消費してしまいます。
前回の更新で、Blender2.5の現在のバージョンのVectexでは、連番のアニメーションとしてタイルキャッシュを使用した場合は、各フレームのレンダリング終了後に作成されたタイルキャッシュを削除してメモリを開放するようにしています。
これにより比較的メモリ搭載量の少ないコンピュータ上でも、Vectexでタイルキャッシュを使ったSVGの連番アニメーションが可能になっています。
SVGファイルを連番ファイルとしてBlenderに読み込んでいる場合、UI操作でタイムライン上のフレーム位置を変更するのに合わせてプレビューの更新が行われます。
通常のビットマップ画像ではフレーム位置に対応した画像をディスクから読み込む処理が行われるだけですが、VectexではSVGドキュメントの読み込みとそのレンダリングという通常より面倒な処理が行われます。
前回の更新の時点ではSVGファイルを連番アニメーションとして読み込んでいる状態でVectexパネルの設定(Base Colorなど)を変更すると、マテリアルのプレビューが表示されている場合などにBlenderがクラッシュする可能性がありました。
今回の更新でこのようなクラッシュが起こりにくくなっていると思います。
○SVG 連番ファイルの使い方
念のためVectexでSVGファイルを連番アニメーションとして使用する手順を書いておきます。
SVG連番ファイルの作成はFreestyle BranchのBlenderで行います。
あらかじめ上記の改造版svgwiterモジュールを適当な名前でハードディスク上に保存しておきます。
適当にアニメーションが設定された状態であると想定して、SVGファイルの出力に必要な手順だけを説明します。
プロパティエディタの「Render」コンテキストで「Post Processing」パネルを開き、「Freestyle」チェックボックスをオンにします。

「Layers」パネルを開き、一番下の「Add Style Modue」ボタンを押します。

「Add Style Module」ボタンのすぐ下にデフォルトのスタイルモジュールが追加されるので、ファイル名の横のフォルダボタンを押して他のスタイルモジュールを選択するためのファイルブラウザを開きます。
ファイルブラウザが開いたら、上記の改造版svgwriterモジュールを選択します。


「Output」パネルで出力先を指定します。

「Render」パネルで「Animation」ボタンを押して、アニメーションのレンダリングを実行します。

これで、JpegやPNGなどのビットマップ画像のレンダリングイメージの他に、SVGファイルが出力先のディレクトリに作成されます。

VectexでSVG連番ファイルを使う手順です。
プロパティエディタのTextureコンテキストでテクスチャのタイプを「Image or Movie」にします。

表示されるImageパネルで「Open」ボタンを押し、ファイルブラウザでSVG連番ファイルの一番最初の番号のファイルを開きます。


上記のFreestyle + svgwriterモジュールを使ってSVGファイルを作成すると透明な背景に黒の線で描画されることになるので、テクスチャプレビューは真っ黒のままでわかりにくいかもしれません。
その場合、Vector ImageパネルのBase Colorを適当に変更します。

Imageパネルの上から2段目に「File」「Sequence」「Movie」「Generated」という4つのトグルボタンがあり、SVGファイルを開いた時点では「File」が選択されています。(r27757以降は、トグルボタンからプルダウンメニューに変更されているようです。)
この中の「Sequence」を選択します。

するとテクスチャプレビューが真っ黒になるかもしれません。
これは、トグルボタンのすぐ下を見ると理由が分かります。
連番ファイルの最初のファイルとしてframe0000.svgという名前が設定されていますが、実際に保存されている連番ファイルはframe0001.svgが最初のファイルになっているため、存在しないファイルを開こうとして失敗しているという状態です。
連番ファイルを使用する場合、全体でいくつのファイルを使用するのかを指定する必要があります。
「(0)Frames:0」となっている数値ボタンに連番アニメーションの最終番号を入力します。

「Start:1」の値を変更すると、使用される連番ファイルの最初の番号を変更できます。
「Offset:0」の値を変更すると、Blenderのタイムラインと連番ファイルの対応の仕方をずらすことができます。
「Auto Refresh」をオンにすると、Timelineエディタなどでカレントフレームを移動するのに合わせて、対応する位置の連番ファイルが自動で読み込まれテクスチャプレビューが更新されます。

「Cycric」をオンにすると、連番ファイルのアニメーションの長さを超えるフレーム数に対して、連番アニメーションを繰り返すように対応させることができます。
この他、コンポジットノードのイメージインプット(ヘッダメニューのAdd->Input->Image)でもほぼ同じような操作でSVG連番ファイルを使用できます。

上記の手順を手っ取り早く試せるようにテストデータを用意しました。(改造版のsvgwriterも一緒に入れてあります)
test_data100330.zip
Freestyle用の.blendファイルでは、改造版のsvgwriterのファイルパスを指定しなおす必要があります。