トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

tool_Bitmap2Material_Shade_to_Unity

Shade to Unity > Bitmap2Material


Bitmap2Material

Unity Asset Storeから購入できるツール(有料)。Windows/Macどちらでも動作。

http://www.allegorithmic.com/products/b2m/overview

連続性のない写真(テクスチャ)を、上下左右でシームレスにつながるように加工することができます。また、1枚の写真から法線マップも自動的に生成してくれます。

素材の写真(地面、石模様、壁など)からリアルなテクスチャを作成するのに重宝します。Unity内でも操作できますが、「Substance Player」(フリー)というのを使用するとUnity外でも編集作業ができます。

ただし、すべての機能を使用する場合はBitmap2Material2の製品版の購入が必要です。

テクスチャ画像としてファイルに拡散反射と法線マップテクスチャを保存するには、Unity内のBitmap2Materialだけではできず、外部ツールであるSubstance Playerを使う必要があります。設定のポップアップメニューで「Export Bitmaps」というのがあり、これでtga形式でエクスポートできました。後述します。

Substance Playerについては、

http://www.allegorithmic.com/products/player

で、デモ版のBitmap2Materialの機能を試すことができます。

使い方 (Unity内)

Bitmap2Material2のAssetをインポート

Asset StoreよりBitmap2Material2を購入し、プロジェクトにインポートします。Assetsに「B2M_2.1」というフォルダが出来るのでこれを選択。

「Bitmap2Material_2_NoGrunge」を選択すると、Inspectorウィンドウにて以下のように表示されます。

テクスチャ画像のインポート

さて、テクスチャを生成する前にまず元となる画像の読み込みが必要です。Assetとして画像ファイルをインポートします。256x256や512x512、1024x1024の画像サイズにしたものを使用するのがよいでしょう。

上記では3つの画像ファイルをインポートしていますが、1テクスチャに1画像ファイルの使用となります。

テクスチャをBitmap2Materialに割り当て

再び、「Bitmap2Material_2_NoGrunge」を選択し、Inspectorウィンドウを下までスクロールしていきます。「Bitmap Diffuse」のところの右でselectを選択して画像を指定してください。

これで、自動的にテクスチャと法線マップによる凸凹が割り当てられます。法線マップは自動計算です。

GameObjectとしてPlaneを3x3個並べ、マテリアルを割り当て

ただ、これだけでは繰り返しとか確認ができませんので、シーンにGameObjectとして「Plane」を3x3個分並べて配置します。きちんと位置あわせするために、PlaneのGameObjectを選択したときのInspectorウィンドウで、TransformのPositionを数値で指定するのがよいと思います。

Bitmap2Materialのテクスチャのアイコンを選択して、それぞれのPlaneにドラッグします。これでマテリアルとして割り当てられます。

Bitmap2Materialのパラメータを調整

マテリアルとして割り当てただけでは、まだ繰り返しが見えますね。「Bitmap2Material_2_NoGrunge」を選択し、Inspectorウィンドウで「MakeItTile Method」で「Offset」を選択します。

すると、各テクスチャの端部分が融合されたようになりました。

横方向/縦方向の融合処理を行わない場合は「Offset Tiling」で「X only」「Y only」を選ぶようにしてください。横/縦両方ともで融合処理を行う場合は「X and Y」を選択します。

パラメータが多いのでよく使う項目のみ説明します。

「Invert Generated Relief」で凸凹を反転させます。「Normal Strength」で凸凹の強さを調整。0.0で凸凹無しです。

「Light Equalizer」で画像自身に濃淡がある場合に飽和させて全体の色合いをなじませます。

複数のマテリアルを管理

Bitmap2MaterialのInspectorウィンドウの上で「+」ボタンを押すと設定を増加、「ー」ボタンを押すと選択された設定を削除します。Bitmap2Materialで作った複数のマテリアルはここで管理できます。

生成されるテクスチャの種類

Bitmap2Materialで生成されるテクスチャとしては、Diffuse/Normal/Specularがあります。Assetでは「B2M_2.1」フォルダ内に以下のように表示されます。

それぞれのマテリアルは、マテリアル選択ウィンドウで選ぶことができるようになります。それぞれのテクスチャは、作成された後にテクスチャ選択ウィンドウで選ぶことができるようになります。

tgaファイルとして画像をエクスポート

設定のポップアップメニューで「Export Bitmaps」というのがあります。

Diffuse/Normal/Specularのテクスチャがtga形式でエクスポートできました。

使い方 (Substance Player内)

テクスチャ画像としてのDiffuse(拡散反射)とNormal(法線マップ)をファイルとして出力してからUnityにAssetとしてインポートしたほうが管理しやすいと思いますので、Substance Playerを使ったテクスチャファイルの生成方法を記載します。

Substance Playerを起動時に以下のようなダイアログが表示されます。

Bitmap2Material2の製品版の場合は、Unityの適当なプロジェクトで一度Bitmap2Material2をインポートします。Assets/B2M_2.1に「Bitmap2Material_2.sbsar」が出力されますので、初回はこれを指定します。以降は、起動時のダイアログから「Bitmap2Material_2」を選択するとよいです。

製品版を手に入れていない場合は「Bitmap2Material Trial」で機能を確認できます。
が、これは出力するテクスチャにウォーターマークが付いてます。

初期画面は以下のようになってます。

左上に各種テクスチャの表示(タブで切り替え)、左下にプレビュー、右にパラメータ指定の領域があります。

テクスチャの割り当て

あらかじめオリジナルの写真からテクスチャとして使用したい部分を切り取っておきます。正方形の1024x1024や512x512 pixelで用意しておくのがよいかと思います。このときに、上下左右をつなげる(タイリングする)とした場合に無理のない部分を切り取るようにしてください。

ブラウザから画像ファイルをSubstance Playerの左下のプレビューにドラッグします。ポップアップメニューが表示されますので「Load in 'Bitmap Diffuse' tweak」を選択。

これでテクスチャが読み込まれました。この状態で、まだ繰り返しを考慮しない状態ですが、法線マップは自動生成されます。

プレビューでの操作方法

まずはプレビュー部での操作方法を記載します。

  • Shiftキーを押しながら左マウスドラッグ
    • 光源の向きを変更
  • Ctrlキーを押しながらマウス左ドラッグ
    • 原点中心にカメラ回転
  • Ctrlキーを押しながらマウス右ドラッグ
    • カメラ移動(パン)
  • Altキーを押しながらマウス右ドラッグ
    • 上下にドラッグすると拡大縮小

プレビューで表示するポリゴンメッシュを差し替え

デフォルトで用意されているプレビュー用の形状は、プレビューの左上のメニューから「Geometry」-「Primitive List」から直方体や球や円柱など切り替えることができます。が、繰り返しが分かりにくいため、独自でポリゴンメッシュを作ってそれを使用したほうがよいかもしれません。

Substance Playerはプレビュー用に、fbx形式で作成したポリゴンメッシュを読み込むことができます。

一度Substance Playerから離れて、Shadeでテクスチャ貼り付け確認用の形状をポリゴンメッシュで作成します。長方形のポリゴンメッシュに凸凹をつけた形状を作成。4分割した領域に対してそれぞれUVを割り当てました。

テクスチャを貼ってますが、これは説明のためですので割り当て不要です。どちみちSubstance Playerではテクスチャは無視されます。

FBXをエクスポートする際に、FBXエクスポートダイアログの「ジオメトリ」タブで「面の頂点の法線を出力」チェックボックスをOnにして出力します。

Substance Playerでは、読み込むFBXで法線情報がない場合は面が真っ黒になってしまいますので、法線出力は必須オプションです。

さて、Substance Playerに戻ります。プレビュー部のメニューより「Geometry」-「Load Mesh」を選択して、先ほど作成したfbxを指定します。

形状が読み込まれましたね。

テクスチャ画像をブラウザからドラッグして、Substance Playerのプレビューにドロップするとテクスチャが貼られました。

この状態でタイリングの補正などを行っていきます。

Bitmap2Materialのパラメータを調整

これは、Unity上の!Bitmap2Materialのパラメータ調整と同じです。

よく使うものは以下。

項目名役割
Global-MakeItTile Method上下または左右をシームレスにするにはOffsetを選択
Global-Offset Tilingどの方向をシームレスにするか。「X and Y」「X only」「Y only」から選択。
Relief-Invert Generated Relief凸凹の反転
Relief-Normal Strength凸凹の強さ
Lighting-Light Equalizer色合いをなじませる

また、テクスチャサイズについては「Output Size」のところを変更することで変えることができます。デフォルトは512x512 pixelです。

以下のようになりました。岩肌だとちょっと変化がわかりづらいですね。

拡散反射と法線マップのテクスチャ画像を出力

左上の2Dテクスチャが表示されているところで、Diffuse/Normalなどのタブがあります。ここで、Diffuseに切り替えてプレビュー部分を右クリック。ポップアップメニューより「Save As Bitmap」を選択するとテクスチャ画像として出力できます。

同様に「Normal」タブに切り替えて画像出力。

これで、拡散反射と法線マップテクスチャ画像をファイルとして出力できました。後は、UnityやShadeに読み込んで利用できます。

個人的には、法線マップでの凸凹は強すぎるといまいちな結果になる気がしました。
おそらくオリジナルの写真自身に陰影として凸凹要素が焼きついているからかもしれません。
岩肌や地面/壁など、気持ち少し凸凹は抑えるようにするとそれらしくなると思います。

使用例

以下は、3枚のマテリアルを張った例です。デジカメで撮影した岩肌/石/青銅の画像を、Bitmap2Materialでテクスチャ化したもの。


Shade to Unity > Bitmap2Material

最終更新時間:2013年11月09日 14時50分21秒

Future's Laboratory 技術格納庫 2004-2013 Yutaka Yoshisaka.