Blenderのテクスチャ付マテリアルをUnityのシェーダーで設定する方法!

URLをコピーする
URLをコピーしました!

CGBoxの一部の記事にはアフィリエイト広告が含まれております。

こんにちは。

最近VRchat向けのアセットを制作する過程で、BlenderのマテリアルをUnityに持っていくのが結構大変だったので、色々やり方をまとめていきます。

今回はBlenderで制作したこのアセットをUnityに持っていく過程を例に解説していきます。

こちらの作品はBoothで販売しております。

あわせて読みたい
中華レストランで使える小道具セット(16点) - Nick Nack Holic - BOOTH *4/9まで無料公開中です。ぜひダウンロードして使ってみてください! 中華レストランで使える小道具セット(16点) 中華レストランで使える小道具セットです。 ・テーブル...
目次

Blenderでの下準備

まずはUnityに持っていく前に必要な下準備をまとめていきます。

テクスチャにベイク

基本的にBlenderで作ったプロシージャルマテリアル(ノードによるマテリアル制作)はUnityに持っていくことができないと考えた方がいいでしょう。

Unityでどのシェーダーを使用するかによりますが、持っていけるのはデフォルトのプリンシプルBSDFのみで構成されたマテリアルです。

他にもエミッションなど持っていけるノードシェーダーがありますが、長くなるので今回は割愛します。今後、エミッションは別記事で書いていきます。

基本的にはBlenderに作ったマテリアルはテクスチャにベイクするのがおすすめです。

今回解説するアセットもこのように各要素ごとにテクスチャにベイクしております。

ベイクの方法は以下の記事にまとめているので、参考にしてベイクしてください。

あわせて読みたい
【Blender2.9】ベイクを使って効率化!焼きこみを行おう! こんにちは! 今回はテクスチャのベイクを使用することでできることと、そのやり方を紹介します! 【ベイクとは?】 ベイクとは、焼き付けを行う工程のことです。 外部...

プリンシプルBSDFのみの場合はベイクしなくても良い

このようにプリンシプルBSDFのみで制作したマテリアルの場合はベイクの必要はありません。

Unityの設定で数値を調整可能なので、ベイクせずに持っていきましょう。

マテリアルの数を少なくする

必ずしもではないですが、マテリアル数を少なくするとデータ量を抑えることができます。

例えば、VRchatだとデータ量によってアバターの品質が表示されます。

ゲーム制作する場合でもデータ量を減らすことは重要だと思うので、Blenderで削減しておきましょう。

テクスチャの枚数を減らす

CGデータの中で多くの比重を占めるのがテクスチャデータです。

テクスチャが多いとデータも重くなるので、VRchat用モデルやUnity用モデルを作る場合はテクスチャの枚数を抑える必要があります。

もし、テクスチャを多めに使用している場合は複数のテクスチャを減らしましょう。

複数のテクスチャを1枚のテクスチャにまとめる方法は以下の記事にまとめられています。

ゲームの作り方!
【Blender2.8】複数のテクスチャを1枚にまとめる方法 blender2.8で複数のUVからなる、複数のテクスチャを1つのUVで1枚のテクスチャにまとめる方法について解説しています。複数のテクスチャから1枚のテクスチャにベイクする...

BlenderでFBX出力

下準備ができたらBlenderでFBX出力していきます。

FBX出力する際にはパスモードのところをコピーに変更し、隣のボックスマークにチェックを入れましょう。

こうすることで、Unityに持っていったときにテクスチャが貼られた状態で持っていかれます。

Unityにインポート

FBX出力ができたらUnityにインポートしていきます。

unityのProjectのところにFBXファイルをドラック&ドロップします(もしくは右クリック→ImportNewasset)

マテリアルの生成

このままだとマテリアルが貼られていないので、マテリアルを生成していきます。手順は以下の通りです。

  1. 右上のInspectorのマテリアルを選択
  2. LocationをUse Extenal Materals(Legacy)に変更
  3. Applyを押す

これでテクスチャが貼られたマテリアルが生成されます。

テクスチャとマテリアルの設定はそれぞれ生成されたものをクリックして、右側に現れるInspectorの中から可能です。

normalのセッティングはFixnowを押そう!

マテリアルを生成するときにノーマルマップを設定しているオブジェクトだと、このようなポップアップがでます。

これはFixnowをクリックしましょう。これをIgnoreにすると一部オブジェクトが黒ずんだりするので注意です!

もしノーマルの設定をIgnoreにしてしまった場合、マテリアルのノーマルマップのところからFixNowを選択可能です。

粗さとメタリックのテクスチャは貼られない

これでマテリアルが生成されるのですが、インポートしたFBXのマテリアルを見てみると見た目がおかしいです。

これはBlenderから持ってきたマテリアルはメタリックと粗さ(roughness)のテクスチャが貼られないのが原因です。

次にシェーダーの設定とともにこのメタリックと粗さを設定していきます。

シェーダーとは?

シェーダーとはBlenderでいうマテリアルとほぼ同義で、見た目を設定できます。少しBlenderと違うのがパッケージ化されておりシェーダーごとで設定できる項目が異なります。

作りたい質感ごとにこのシェーダーを変更して作っていくことになります。

あわせて読みたい
シェーダーに関する人気の同人グッズ27528点を通販できる! - BOOTH BOOTH(ブース)とは、pixivと連携した、創作物の総合マーケットです。無料で簡単にショップを作成でき、商品の保管・発送代行サービスも提供しています!

シェーダーはインポートすることもできるので、Booth等で販売しているものもあるので見た目にこだわりたい人は購入してみるといいでしょう!

今回はデフォルトで用意されているシェーダーの設定方法を解説していきます。

シェーダーの変更(Autodesk Interative)

次にシェーダーの設定を行っていきます。デフォルトだとStandardというシェーダーが割り当てられます。

デフォルトのStandardだと粗さがsmoothという値になっています。

これは粗さと逆で、0はテカリがない状態・1がテカリが最大になる状態です。

数値が逆な上テクスチャがMetalicと同じものを使用しないといけないため、テクスチャを合成する必要がある等、Blenderで持ってきた場合非常に不便です。

ですので、多くの場合は代わりに「Autodesk Interactive」というシェーダーを使用していきます。

このシェーダーは以下のような特徴があります。

  • Standardシェーダーとほとんど見た目が変わらない
  • MetalicとRoughnessが分かれている
  • Roughnessにテクスチャが貼れる

BlenderユーザーはStandardシェーダーよりもこちらのシェーダーの方がより詳細に設定が可能なので、こちらを使ってみましょう。

テクスチャの設定

シェーダーをAutodesk Interactiveに変更したら、MetalicとRoughnessのテクスチャを貼っていきます。

各要素の左側にある丸いマークを押すと、テクスチャを選べるのでBlenderから持ってきたそれぞれのテクスチャを貼りましょう。

これでテクスチャが反映されるはずです。

テクスチャなしのマテリアル設定

今回はテクスチャなしのマテリアル設定について解説しました。

ほとんどの場合はテクスチャを付けて制作すると思いますが、簡易的なオブジェクトの場合はテクスチャを付けない場合もあると思います。

その場合はInspectorのマテリアルの項目を調整してきます。こちらは直感的にわかるとは思いますが、簡単に説明します。

よく使用する部分のみ抜粋して紹介していきます。

RnderingMode

RenderingModeでは透明・半透明の調整を行うことが可能です。

この部分は別記事で解説しているので、知りたい人は以下の記事を参考にしてみてください。

あわせて読みたい
【Unity】テクスチャを使ったアルファ抜き(透明・半透明)の調整方法! こんにちは。 今回はUnityのアルファ抜きの方法について解説していきます。 BlenderからUnityに持っていく一連のワークフローはこちらの記事にまとめているので、初めて...

Albedo・Metallic・Smoothness(Roughness)

これらの要素は数値などを調整して、質感を調整できます。

emission

エミッションは発光効果を付与することが可能です。Blenderにおけるエミッションとほぼ一緒ですね。

これに関してはボリュームがあるので、別記事で後日解説したいと思います。

シェーダー設定のFAQ(まとめ)

ここまでが基本的なBlenderから持ってくるときのUnityのシェーダー設定になります。

最後に内容のまとめとして、Blenderからもってきたときによくするミスをまとめていきます。

基本的に上記の手順を踏んでいけば、きちんとシェーダーが設定できるはずです。以下、同じ内容の重複となります。それぞれ見出しのリンクをはっているのでそこから飛んで確認してください。

テクスチャが貼られていない

テクスチャが貼られていない場合は以下の原因が考えられます。

  • FBX出力のときにパスモードをコピー&チェックを入れていない
  • インポートした後にマテリアルを設定変更(Use~(Legacy)の部分)して生成していない

この2つを確認しましょう。

もし、何らかの原因でテクスチャがどうしても貼られた状態でインポートできない場合は、プロジェクトにドラック&ドロップして、直接テクスチャを貼り付けることも可能です。

Blenderと見た目が違う

これに関してはライティングやレンダリング等も関係しているため、完全に同じにすることは難しいです。

ある程度の見た目を同じにするためには以下のことをチェックしましょう。

  • シェーダーをAutodesck Interactiveに変更
  • 各要素にテクスチャを適用
  • ノーマルの設定のポップアップをFixNowにする

この3つを確認しましょう。

まとめ

以上、BlenderからUnityにもっていくときのマテリアル・シェーダー設定でした。

ネットを見ると、Blender・Unityの情報は他の情報と比べて情報がまとめられていないので、これからもこれらについてまとめていきたいと思います!

ぜひ当メディアをチェック下さい!

Unity用アセット販売中!

当メディアで運営しているアセットショップ「NickNackHolic」にてUnity用のアセットを販売しております。

ゲーム制作やVRchat、Clusterなどで使用できる便利なアセットを販売しております。

一部無料のアセットもあるので、ぜひ覗いてみてください!

Nick Nack Holic

VRchatやゲームアセット、映像作品で使える「雑貨」を販売中

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

CGBox管理人。大学在学中にLive2D・Blender等を勉強し、卒業後にフリーランスとして活動。現在はwebメディア運営をメインにBlenderやSubstancePainter等を使用して自主制作等を行っております。

目次
閉じる