2015年12月13日日曜日

雑記:安価なテクスチャ生成ソフトやBlenderアドオンを買いました その2

その1に引き続いてBlenderアドオンの紹介です。紹介するアドオンはBake ToolとBlendUp、アドオンはここで購入しました。

BLENDER MARKET


Blender向けのモデルやマテリアル、アドオンを販売しているサイト。アドオンは動画で機能紹介されており、英語に自信がなくてもなんとなくわかる。また不具合対応や新機能追加などちょくちょくバージョンアップを行ってくれるアドオンも多め。

Bake Tool


$14.95(購入時¥1,873)で購入。Blenderレンダー/Cyclesでのテクスチャベイクの設定を楽にかつ、バッチ処理(あらかじめ設定した手順に従い自動的に連続処理を行うことで、ここでの意味は設定に従い複数マップのベイクを自動で行う処理)もやってくれるアドオン。
ちなみにベイクのバッチ処理だけなら公開されているスクリプトでできるらしいので、探してみるといい。

以下、このツールでのベイクの流れを解説する。
Blenderのバージョンは2.76b、Bake Toolは1.31。

インストール

インストールは他アドオンのインストール手順と変わらない。

Blender Marketからダウンロードしたファイルを解凍する。


ファイル→ユーザー設定→アドオンのタブを開き、下段の「ファイルからインストール」をクリック。


先ほど解凍したBake Toolのフォルダを開き、baketool.zipを選択してファイルからインストールを選択。


右側のチェックボックスにチェックを入れて左下のユーザー設定の保存をクリックする。


プロパティの「レンダー」タブをスクロールしてBake Toolの項目があればインストールは成功だ。

Blenderレンダーで単一のオブジェクトをBake Toolでベイクする手順


Blenderレンダーデフォルトのベイクの手順と同様、ベイク用のUVマップを追加し(わかりやすくBakeなどにリネームしておくとよい)、UV展開を済ませる。


ベイクするオブジェクトの全マテリアルのテクスチャのマッピングを設定する。「座標」をUVに、「マップ」はそれぞれのマテリアルに設定したUVを設定。
(ひとつ前の手順で追加したベイク用のUVマップを間違って設定しないように!)


プロパティの「レンダー」からBake Toolの項目へ移動し、Job Managerの下の追加をクリックしてJobを作成。


このモデルのような単一オブジェクトのベイクならば、オプションでモードを「個別」に設定する。(上の画像中ピンクで囲まれた箇所)
Save pathで保存先フォルダを設定。(再度同じマップをベイクする際、フォルダを変更しないと勝手に上書きされてしまうので注意)

Object Managerで書き出すオブジェクトを指定する。(上の画像中水色で囲まれた箇所)
ベイクしたいオブジェクトを選択して、スポイトのアイコンをクリックすればリストにオブジェクトを追加できる。オブジェクト名のすぐ隣の欄はベイクの書き出し先のUVだ。ここに、この手順で最初に追加したUV(Bake)を設定する。

Pass Managerで書き出すマップを設定する。(上の画像中黄色で囲まれた箇所)
追加のボタンを押すと、Pass 1 が追加される。Passはいくつでも追加できる。
オプションの項目で追加されたPassごとに書き出すマップのタイプやサイズ、余白が設定できる。ベイクタイプの種類はBlenderレンダーデフォルトのベイクと同一なので説明は省く。



Passの設定を終えたら、Bake Toolの項目の一番上にある、BAKE!を押すことでベイクが始まる。 

ひとまず試しに256×256程度の低解像度で比較的軽いディフューズだけベイクしてみることをおすすめする。というのも、一度ベイクを始めてしまうと一切Blenderの操作が出来ないためだ。
見切り発車で高解像度の複数Passのベイクを始めてしまうと痛い目を見る。(体験談)
そのため、BakeToolでのベイク前にファイルを保存することも忘れてはいけない。


上の画像が256×256でベイクした結果。ベイクが終わると、完成したマップが予め指定していたフォルダに保存される。指定していなくても、「F ジョブ名_オブジェクト名_ベイクタイプ」(例:F job 1_Mesh03_NORMALS)の名前で画像が保存されているので、その画像を開いて画像を別名保存しても良い。
きちんとベイクされることを確認したら、本番ベイク用のPassを設定していく。



2048×2048サイズのPassを5種類のベイクタイプで設定した。あとは就寝前や出勤・通学前にBAKE!を押すだけで勝手に作業をしてくれる。



ベイク中はウィンドウの左上に進捗が表示される。




書きだしたマップの一覧がこんな感じ。Blenderレンダーでのベイクなので、一晩もかからなかった。
(i7 6700Kで30分くらい)

BlenderレンダーでBakeToolを使用する場合、全マテリアルのテクスチャのマッピングを設定する手順が面倒だった。(Blenderレンダーデフォルトのベイクなら特に設定しなくてもベイクできてしまう)どちらかといえば、Cyclesでのベイク向きといえるかもしれない。

今回紹介できなかった機能もいくつかあり、一度にバッチ処理可能なのはオブジェクト一つだけでなく、Jobを追加して別のオブジェクトを指定しPassを設定すれば、別々のオブジェクトのそれぞれのベイクもやってくれる。
 私は使わないが、別々のオブジェクトのUVを一つのマップにまとめてベイクしてくれる機能もあり、使い方次第でかなり時間の節約になるアドオンだ。


機能紹介ビデオがこちら


BlendUp 

2018/2/18現在、BLENDER MARKETから削除されており、残念ながら入手不可能です。


$35.00(購入時¥4,418)で購入。SketchUp内のメニューからそのままBlenderへインポートできる。これは厳密に言えばSketchUpのプラグインだ。SketchUpで設定したマテリアルのテクスチャ、UV、エッジの設定、Ngonもかなり綺麗な状態でBlenderに読み込んでくれる。私はSketchUpのモデリングに慣れきってしまっているため、このようなアドオンはありがたい。

これについても似たアドオン(Sketchup importer)が公開されているのでこちらで代用しても良い。
機能制限版のBlendUpLTSketchUpでの面が1000以上だとコンバート不可) もあるので気になる方は試してみるといいだろう。

以下、コンバートの流れを解説する。SketchUpは2016、BlendUpのバージョンは1.3。

プラグインのインストール、Blender・SU側の設定の確認


Blender Marketからダウンロードしたファイルを解凍し、インストールされているSketchUpのバージョンに合ったインストールプログラムを起動する。



特にSketchUpのインストール先を確認されることもなく、すんなりインストールが終了する。うまくいかない場合は一時的にウイルス対策ソフトを切ったり、右クリックして「管理者として実行」 を試すといいだろう。


SketchUpを開く前に、Blender側の設定を見なおしておかないとならない。
ファイル→ユーザー設定→「システム」タブ→ ローカライズの項目(スクロールすると現れる、右下の項目)
Blenderを日本語化している方はここの項目を設定して日本語化していると思うが、ここで設定されている項目によってはアドオンが正常に動かないので要注意。

ここに「インターフェイス」、「ツールチップ」、「新規データ」の項目が並んでいるが、一番右の「新規データ」がオンになっている場合はオフにする。

「新規データ」は作成したオブジェクトやモディファイヤの名称を日本語にしてくれる項目だが、それらに日本語を使うと特にアドオンなんかは動いてくれないことがある。Sketchup importerや今回のBlendUpも正常に動いてくれず(SketchUpから書き出すとカメラと光源しか書き出されない)しばらく悩んだ末、危うくこんな事でBlendUpのサポートに連絡を取ってしまうところだった。

 
SketchUp2016を使用している場合、SU側でも設定が必要だ。ウィンドウ→環境設定の拡張設定の項目にある、Spread 3D BlendUpという項目にチェックを入れる。

SketchUpからのコンバート


準備が済んだら、早速SketchUpでコンバートをする。このモデルは面が8745ほど、マテリアルが29種類だが、コンバートはかなり高速なのでテスト用に適当な軽量モデルを用意しなくても問題ないはずだ。

コンバート用にモデルやマテリアルを修正する作業は必要ない。書き出してみておかしな部分があれば直す程度で済む。

 
コンバートはファイル→BlendUpの項目でできる。が、まずはコンバート先のBlenderのフォルダを設定してやる必要があるため、BlendUpのいずれかの項目を選択するとウィンドウが出てBlenderのフォルダを設定するよう催促される。(あとからOptionsのConfigureで再設定できる)

 
Optionsの項目はシンプルだ。

Unit / Metric(メーター)かImperial(フィート)から選択。Metricで問題ない。

Rendering / Blender Internal(Blenderレンダー)か Blender Cyclesを選べる。

Use Sun Shasows / オンにするとBlenderにサンを置いてくれるが、今のところ太陽高度は反映されず、デフォルトでサンを設置した時と同じように真上からの日照となっている。(アップデートで修正?)

Export as Quads and N-Gons / オンにすると三角ポリゴンか多角形ポリゴンで書き出される。.daeや.3dsでの書き出しは自動的に三角ポリゴンへ変換され、編集時の見栄えが悪いので、この項目にチェックを入れるとかなり綺麗な状態で書きだされ、三角ポリゴンの数も僅かに減る。

Export Scenes as Cameras / オンにすると、SU上のシーンでカメラの位置を登録している場合に限り、Blenderにカメラを書き出してくれる。個人的にはBlenderのカメラは正直使い勝手が悪い(3Dビューのビュー内「視点を揃える」で「現在の視点にカメラを揃える」を使っても若干見切れていて現在の視点通りになっていない)のでこの項目は重宝する。ただし、書きだしたカメラはクリッピングの終了距離が100m程度なのでBlender側で修正する必要がある。

Simplify Materials / SU上では表と裏でそれぞれマテリアルを設定できるが、この項目をオンにすると表面しか書き出さない。ただし、SU上で表面と裏面が統一されていないと、面が正しくレンダリングされないなどの不具合が発生する。

Mark Edges / SU上のエッジをBlenderの辺のシャープに変換してくれる。シャープは曲面上でエッジを尖らせたいときに使える。

Keep Hierarchy / オフにすると単一のメッシュとして読み込まれる。

Use Blender Groups / コンポーネントを持つ大きなファイルサイズのSUファイルをコンバートする際にこの項目にチェックをつければ、Blenderグループに変換され、各グループは特定のシーンに蓄えられる、とある。(英語力が無くて最後の行についてはよくわからなかった)

Configure / blender.exeがあるフォルダ指定する。


 
オプションの設定が済んだらついに書き出しだ。ファイル→BlendUp→Exportで保存先を設定するとコンバートの進行状況を示すコマンドプロンプトが表示され、数十秒もすれば勝手にBlenderが起動する。書き出し速度はSU内部エクスポーターのdae、3dsなどより格段に速い。

 
Blenderが起動するとほぼこんな画面なので面食らうが、 これはOptionsの項目でも触れたように、初期のカメラのクリッピング終了距離が100m程度なのでオブジェクトが描画されていないだけだ。
画面を移動すればモデルを見ることができる。


コンバート時点のシェーデングはソリッドになっている。


シェーディングをレンダーにするとこんな感じ。サンが設定されているので綺麗に表示されるが、サンが真上にある設定なので、影の落ち方には違和感がある。

 
編集モードで開いたところ
左がOptionsのExport as Quads and N-Gonsをオン、右がオフ。右は.3dsなどで書きだした場合とほぼ一緒だ。左の三角面が31,566、右が32,713とポリゴン数もやや削減される。


あとがき

このプラグインもかなり重宝しそうです。というか、SUプロ版(商用版118,000円)の機能のうちひとつがこのプラグインで代用できるので(Blenderに書き出してしまえば、各種フォーマットへの変換も容易)、少し心配になります。
(2018/2/18追記:不安が的中してしまったようです)

何はともあれ、これらのソフトウェア/アドオン・プラグインを導入してみて、かなり便利になったことは間違いないので、どれもオススメできます。代用可能なフリーウェアのリンクも貼っておいたので、そちらをつかうのもいいでしょう。最近は独立系開発会社が大手ソフトウェアの機能に遜色ないソフトウェアを比較的安価だったりフリーウェアで提供してくれるからありがたいです。そんな開発者を応援する意味でも、今後もそんないいモノを見つけたらここで紹介したいと思います。それでは!




0 件のコメント:

コメントを投稿