🚧 サイトをリニューアル中。運営しながら少しずつ改良中。見づらくてすいません 😭

Blenderのポーズ済みメッシュをUnityに表示させる(Unity学習10回目)

(約 3,200文字の記事です。)

Unityでセル画調の静止画やアニメーションを作りたい人がUnityの使い方を学ぶ日記、備忘録、メモ帳です。

対象読者はUnity初心者で、Unityで動画を作りたい人。ゲームはいらんと言う人。

なおこの記事は私の学習メモなので、読者に分かりやすく解説する記事ではないので、その点にご注意を。

目次

Blenderを使うならfbxよりもglTFかも

前回のUnity学習中に知ったglTFという形式。

Unityでコンポーネント調整後にモデルだけ一瞬で差し替える方法。 | Genki Tech

どうやらfbxの弱点を補えるらしい。少なくともUnityとBlenderを使うなら損はしないようだ。(Mayaでもエクスポーターを入れればできるらしい。)

glTFとは何か?

glTF(ジーエルティーエフ:GL Transmission Format)、GLとは「Graphics Language」の略らしい。

英語版Wikipediaより、glTF (derivative short form of Graphics Language Transmission Format or GL Transmission Format)

Zbrush、Fusion 360、Twinmotion、(UE4少々)から入ったモデリング主体の造型方法ではソフト間のファイルのやりとりはobjかfbxが多い。クリース情報などとなるとobjではシンプルすぎて何もできないので、当時からfbxを使っていた。だから今回のBlenderとUnityとのファイルのやりとりでもfbxで考えていた。

だがひょんなことからglTFなるものを知る。調べてみるとこれ、Blender使いがUnityを使うならばfbxよりも有利なんじゃないか?(Maya使いはfbxがよさげらしい。)

glTF2 – R&D Slack Wiki

なんだかfbxではできなかったことができるようになるらしい。そしてglTF 2.0になってから劇的によくなったそうだ。調べてみるとビンゴな紹介記事を見つけた。

【Unity】Blenderで作成した3DモデルをglTF形式でインポートする – XR-Hub

UniGlTFプラグインを入れるだけでOKだとか。なぁんだ、これでBlenderでPBRマテリアルも含めてセットアップしてもUnityに移植できるようだ。この互換性の高さはfbxよりもはるかによさそうだ。なのでfbxによる連携ではなくてglTF形式で運用してみようと思う。

無料ドーナツ3Dモデル – TurboSquid 1660724

このモデルでテスト。幸いBlendファイルも直接用意されていたので都合がいい。ディフューズマップ(アルベド、要するに地の色)以外に、ノーマルマップ、ラフネスマップ、ディスプレイスメントマップまである。

ディスプレイスメントモディファイアで凹んでいる部分もある。(メッシュモデルはツルンとしている)

しかもBlenderで作成されたBlenderファイルまであるのでBlenderで開く分には完璧。なかなかハードルの高い素材が手に入った。これでglTFのテストをする。

Blenderの絵をUnityで表現できた!

インポートはできたが、モディファイアの適用チェックをOFFにしていたので凹みがない。なので再度ONにしてテスト。よく分からないが上記URLの記事にしたがってPrefab variantを作成して上書きインポートで差し替え完了。

プレハブバリアント – Unity マニュアル

ディスプレイスメント・モディファイアが適用された形でUnityにインポートされた。やったね。

色味は結構違うが、これは光りの加減やマテリアル設定の違いによるものだろう。詳細はさておき、これでディフューズ、ノーマル、ラフネスマップはBlenderから移植できたっぽい。

(まだ正しく設定されているかどうかをUnity上で確認する術を知らないw)

カメラを移動させてゲームウィンドウでの見栄えはこちら。

何だかシュールな絵になっている。

だがこれでとりあえず静止画1枚でいいならばBlenderで作ったものをUnityに移植できることが分かった。

あとはマテリアルの見栄えの調整方法などを学べばいい。

glTFの他にも.blendファイルを直接Unityに渡す作戦もあるようだ。後日調べてみる予定。

今後やるべきこと

おっと、だいぶ前進した気がする。Unityでセル画調の1枚絵を作るための取り組みは、実は結構いいところまで来たと思う。Unityは確か「見栄えがそのままレンダリング結果」だったはずなので、後はマテリアルの見た目の調整とRecorderによる1フレームのpng高画質画像を出力できれば、あとはUnity Toon Shaderのセットアップで願いが叶うことになるのでは?と思っている。

少なくとも今日までに確認できたことは、

  1. Blenderでリグ入りメッシュをUnityにインポートできる
  2. glTFを使えばたいていのマップをUnityにインポートできる
  3. glTFによるメッシュの差し替え変更方法の理解

ここまでくれば、あと身に付けたいことは、

  1. Unity上でのマテリアルのセット状態の確認・修正方法
  2. Unity Toon Shaderの導入(および設定の煮詰め)
  3. Unity Recorderの導入
  4. 1フレーム分の高画質png出力

おっと?だいぶゴールが見えてきた気がする(笑)アニメーションなしならば意外と早いのかも知れない。

今回の創作活動は約1時間30分(累積 約2,754時間)
(807回目のブログ更新)

筆者はAmazonアソシエイト・プログラムに参加しています。(AmazonアソシエイトとはAmazon.co.jpの商品を宣伝し所定の条件を満たすことで紹介料をAmazon様から頂けるという大変ありがたい仕組みのこと。)
以下のリンクを経由してAmazonでお買物をするとその購入額の1~3%ほどのお小遣いが私に寄付されます(笑)以下のリンクを経由して頂ければ紹介商品以外のご購入でもOKですよ~。

お役立ち情報を伝えよう!
  • URLをコピーしました!
目次