Blenderで作成した剣の刃と柄のマテリアルを分けUnityに取り込む

今回は以前Blenderで作成した自作の剣のマテリアルを材質ごとに分けてそれをUnityに取り込んで設定するところをやりたいと思います。

今回の場合は単純に刃とそれ以外の二つに分けるだけですが・・・。

またマテリアルやテクスチャの名前をいいかげんに付けているので、適した分かりやすい名前に変更してください。

剣のモデリングは

Blenderを使ってシンプルな剣をモデリングしていこうと思います。シンプルな剣が出来れば、複雑な形状の剣を作成する事も可能かも?しれません。

剣にテクスチャを貼るのは

Blenderでモデリングをした剣のUVMapをファイルに出力し、色を塗ってテクスチャを作成して、剣に張ってみます。

を参照してください。

以前の記事で剣にテクスチャを貼り付けるところまでやりましたが、剣のオブジェクト全体に1つのマテリアルを設定している為、剣の刃と柄の部分の質感を分けることが出来ませんでした。

そこで刃の部分とその他の部分のメッシュでマテリアルを分け、それぞれの質感を設定出来るようにしていきます。

スポンサーリンク

剣の刃と柄のマテリアルを作成する

まずは剣の刃と柄のマテリアルのスロットを作成し、そこにそれぞれのマテリアルを設定するところまでをやります。

Objectモードで剣を選択したらプロパティエディタのマテリアルを選択し、+をクリックしマテリアルスロットを作成します(下の画像では既に刃と柄のマテリアルが作成されています)。

剣の刃と柄のマテリアルスロットを追加

次にNewを押しマテリアルを作成します。

剣の刃と柄用のマテリアルを作成

マテリアルが作成されたらマテリアルの名前をGripにします(適当に名前を付けてください)。

剣の刃と柄のマテリアルの名前を設定

既に剣には1つのマテリアルを設定していたので、そのマテリアルの名前をSwordに変更します。

これで2つのマテリアルの準備が出来ました。

間違って他のマテリアルスロットを作成してしまった場合はObjectモードでマテリアルスロットの―を押すと削除できます(Editモードの時は削除出来ない)。

刃と柄に対応するメッシュを選択する

刃と柄のマテリアルが作成出来たので、次はそのマテリアルの設定を適用するメッシュを選択していきます。

現時点では剣のメッシュ全てにSwordマテリアルが割り当てられているので、柄の部分に当たるメッシュを柄のマテリアルであるGripに割り当てていきます。

剣のオブジェクトを右クリックで選択したら、Tabキーを押してEditモードにします。

柄の部分のメッシュを選択する為Editモードにする

Editモードにしたら、剣の刃以外のメッシュを選択していきます。

剣の刃以外のメッシュを選択する

刃以外のメッシュを選択したらプロパティエディターのマテリアルのGripを選択し、Assignをクリックします。

剣の刃以外のメッシュ部分をGripマテリアルに割り当てる

これで剣の刃以外のメッシュにGripマテリアルが割り当てられました。

刃以外のメッシュをGripマテリアルに割り当てたことで、刃のメッシュ部分だけがSwordに自動で割り当てられます。

メッシュには必ず何らかのマテリアルが割り当てられる必要がある為、Swordに割り当てられていた刃以外のメッシュ部分がGripに割り当てられたことでその部分はSwordから除外されます。

このことからわかるようにメッシュには必ず何らかのマテリアルが割り当てられている必要があります。

どのメッシュにどのマテリアルが割り当てられているか確認するには、マテリアルを選択しSelectを押すと割り当てられているメッシュが選択され、Deselectを押すと選択を解除します。

一度メッシュ部分が選択されたら一旦解除してからSelectを押さないと既に選択されている部分は選択されたままになっているので注意が必要です。

これでメッシュ毎にマテリアルを分けることが出来ました。

マテリアルにテクスチャを設定する

Swordマテリアルには以前の記事で設定した剣のテクスチャが設定されていますが、Gripマテリアルにはまだテクスチャを設定していません。

そこでGripマテリアルにGrip部分のテクスチャを設定しましょう。

Gripマテリアルを選択した状態でテクスチャアイコンをクリックします。

GripマテリアルにGrip用のテクスチャを設定する

Newを押して新しいテクスチャを作成します。

剣のGrip用のテクスチャの作成

テクスチャにわかりやすく名前を付けます。

Grip用テクスチャの名前を付ける

次は作成したテクスチャに以前作成した剣のテクスチャをOpenを押して開きます。

Grip用のテクスチャを開く

GripTextureに剣のテクスチャが設定されました。

Grip用のテクスチャが設定された

剣全体のテクスチャをGripに適用して大丈夫なの!?

さて、ここで疑問に思った方もいるかもしれません。

以前、剣のオブジェクトのメッシュ全体のUVMapを作成し、そこに色を塗って剣全体のテクスチャを作成しましたが、そのテクスチャが剣の刃のマテリアルと柄のマテリアル両方に設定されています。

刃の部分は刃のテクスチャ、柄の部分は柄のテクスチャを個別に作らなくてもいいのか?という事です。

ですがこれで問題はないようです。

UVMapはメッシュを3Dから2Dの平面図にしたもので、そのメッシュ部分に対応する色を塗ったのが剣全体のテクスチャです。

UVMapの位置はずらしていないので、剣の刃の部分や絵の部分のメッシュのUVMapは以前のままであるので、それに対して塗った剣全体のテクスチャとの対応は変わっていません。

これで剣の刃と柄のマテリアルを分けることが出来ました。

Blenderから剣を出力する

Blenderから改めて剣のモデルを出力します。

Fileメニュー→Export→FBXを選択します。

剣のマテリアルを分けたモデルの出力

FBXの出力設定で、選択した剣のオブジェクトだけを出力するのでSelected Objectsにチェックを入れ、!EXPERIMENTAL! Apply Transformにチェックを入れます。

剣のマテリアルを分けたモデルのFBX出力設定

名前を付けてExport FBXボタンを押して3Dモデルを出力します。

Unityで剣のモデルを取り込む

UnityのAssetsフォルダの剣のモデルを取り込みたいフォルダ上で右クリック→Import New Asset…を選択し、出力した剣のFBXファイルを選択し取り込みます。

すると、剣のモデルと刃のマテリアル、柄のマテリアルが分かれて取り込まれます。

マテリアルが分かれた剣のモデルが取り込まれた

このままだとマテリアルが編集出来ないのでUnity内でSwordとGrip用のマテリアルを新しく作り設定し直します。

Assetsフォルダ内で右クリック→Create→Materialを選択し名前をSwordにします。同じようにGripマテリアルも作成します。

剣用のマテリアルをUnity内で作成する

上のように取り込んだ剣のモデルに内包するマテリアルとは別に2つのマテリアルを作成した状態になります。

次に剣のモデルの大元を選択しインスペクタでGripとSwordのマテリアルのスロット部分に今作成したGripとSwordのマテリアルをドラッグ&ドロップします。

Unity内で作成したマテリアルを取り込んだ剣のモデルのマテリアルにする

設定したらApplyボタンを押し確定します。

すると剣のモデルに内包されたマテリアルが消えます。

FBX内のマテリアルが消える

剣全体のテクスチャをUnityに取り込み、GripマテリアルとSwordマテリアルのAlbedoに設定すれば剣にテクスチャが張られます。

GripとSwordのAlbedoにテクスチャを設定

マテリアルの設定はいいかげんな感じにしていますが、これで刃と柄のマテリアルを分けられるようになったのがわかると思います。

剣の刃と柄のマテリアルを分けた剣のサンプル

終わりに

剣にノーマルマップを適用する記事を作成する前に、刃と柄の部分で質感を変えたかったので今回の記事を作成しました。

次回は剣の刃部分のノーマルマップを作成し適用する記事を作成していきます。

スポンサーリンク

記事をシェアして頂ける方はこちら

フォローして頂くとやる気が出ます

コメント

  1. miner より:

    複数マテリアルを登録する際の注意として、
    百聞は一見にしかずという事でこれを見て欲しい

    マテリアルの登録順が変わると
    ttp://tsubakit1.hateblo.jp/entry/2015/10/23/234955にあるような事態も起こりうるということです。
    と言っても今のUnityがどうなっているのか確認できませんが。
    で、解決方法として
    ttp://soucolle.jp/sort_material_order_of_unity_in_blender/

    オブジェクトで最もマテリアルを要するであろう人間をベースに考えた場合でも
    皮膚などのカラー(アルベド)主体の不透明マテリアル
    服などの変化系テクスチャ(差し替え)主体の不透明マテリアル
     + 装飾系のコーディネイトアクセサリのテクスチャ主体の半透明マテリアル
    の多くても3つで事足りるかなと。

    今回の剣を例に挙げると
    柄の部分がアルベド
    刀身が変化系(血染め・新品)に属する
    の2つに該当します。

    単純に材質で分けるという方法はテクスチャ(アルベド・スペキュラ・ノーマル)で事足ります。
    なのでマテリアルを分ける趣旨としての材質云々はあまり正しい表現とは言えないかも。
    補足するならばマテリアルを分ける意味として よくあるカラーバリエーションの表現であったり、それ以外に例えば この刀身部分に折れた刀のメッシュを用意すれば
    使用し続ければ金属疲労で骨折という表現も再現出来るわけです。
    その過程でマテリアルの順序設定の持つ意味が見えてくるかもしれません。