植物モデルをBlenderのアドオンや自分で作成するとき、透過部分のあるテクスチャー(.pngなど)を使うことが多いと思います。
しかし、BlenderからUnityにblendファイルをインポートすると、アルファ部分が切り取られていない状態でインポートされてしまいます。
また、マテリアルを編集しようと思ってもロックがかかっており、多くの人が一度は困惑してしまうと思います。
今回は各レンダーパイプライン別にアルファの切り取り方と、マテリアル編集がロックされてしまう現象の対処法を説明していきます。
BlenderからUnityにモデルとテクスチャーをインポートする方法については、下記の記事をご覧ください。

解決したいこと

今回は上の画像のようなモデルを例として扱います。
Blenderで透過テクスチャーを平面に貼り、マテリアルのブレンドモードをアルファブレンドに設定した状態です。
このモデルとテクスチャーをUnityにインポートすると以下の画像のようになります。

ご覧の通り、テクスチャーの透過部分が透過されていません。
また、プレハブ内のマテリアルも編集できない状態になっています。
これからこの対処法について説明していきます。
テクスチャーの透過部分を切り取る
全レンダーパイプライン共通
このような透過テクスチャーのマテリアルは、個別で設定しなければなりません。
そのため、まずはAssets直下に「Materials」というフォルダーを作り、そこに新規マテリアルを追加します

名前は何でもいいのですが、この後の作業で分かりやすくするために、Blenderでのマテリアルの名前と同じにしています(例では”Leaf”)。
次にインポートしたモデルのマテリアルのプロパティをコピーします。

上の画像の通り、マテリアルを左クリックすると出てくるインスペクターの右上にある「:」を左クリックすると出てきます。
つぎに、これを先ほど新規作成したマテリアルにペーストします。

一旦ここまではどのレンダーパイプラインでも同様に行えると思います。
ここからは各レンダーパイプラインで方法が異なるため、それぞれ説明していきます。
Unity-ビルトインの場合
作成したマテリアルのRendering ModeをOpaqueからCutoutに変更します。
このマテリアルをシーンウィンドウのモデルにドラッグアンドドロップします。

これで完成です。
Unity-URPの場合
作成したマテリアルのアルファクリッピングにチェックを入れます。
このマテリアルをシーンウィンドウのモデルにドラッグアンドドロップします。

これで完成です。
Unity-HDRPの場合
作成したマテリアルのAlfa Clippingにチェックを入れます。
このマテリアルをシーンウィンドウのモデルにドラッグアンドドロップします。

これで完成です。
プレハブ内のマテリアルを変更したい場合
ここまで説明したやり方では、いちいちプレハブ内のモデルを探してドラッグアンドドロップしなければならず、モデルが多い場合にはとても面倒です。
しかし、プレハブ内のモデルはマテリアルと紐づけられている状態であるため、編集ができません。
これを解決するための方法が以下になります。これはどのレンダーパイプラインでも同様に行えます。
まず、Assets直下にインポートしたblendファイルのプレハブをクリックします。
そこで出てくるインスペクターの上側にModel,Lig,Animation,Materialsの欄があるので、Materialをクリックします。

次に「再マッピングされたマテリアル」の所にBlenderで作ったマテリアルの名前が表示されているので、透過させたいマテリアルの欄の右側にある◎をクリックします。

先ほどUnity内で作成したマテリアルを選択してダブルクリックし、下側の「適用する」を押します。

少し待てば透過されたマテリアルに置換されているはずです。
まとめ
いかがでしたでしょうか。
今回は少し煩わしいと感じるくらい丁寧に説明してみました。
植物以外のモデルでも、ガラスや金属など、BlenderからUnityにそのまま情報が引き継げないマテリアルへの応用が可能です。
お疲れさまでした。
コメント