MRが楽しい

MRやVRについて学習したことを書き残す

Blenderのpythonスクリプトでユニティちゃんのレンダリング負荷軽減を自動化する

本日は Blender の技術調査枠です。
Blenderpythonスクリプトでユニティちゃんのレンダリング負荷を軽減する手順を記事にします。
f:id:bluebirdofoz:20190719085844j:plain
以下の記事を Blenderpythonスクリプトで実行してみたものです。
bluebirdofoz.hatenablog.com

実行手順

ユニティちゃんのFBXファイルをBlnderに取り込みます。
FBXの所在やFBXファイルをインポートする際の注意点は以下の記事を参照してください。
bluebirdofoz.hatenablog.com
f:id:bluebirdofoz:20190719085903j:plain

後述の UnityChan_Converter.py をテキストエディタ―に読み込みます。
[スクリプト実行]を行い、処理が完了するのを待ちます。
f:id:bluebirdofoz:20190719085912j:plain

処理が完了すると、オブジェクト/マテリアル/テクスチャ が一つにまとめられたユニティちゃんモデルが作成されます。
テクスチャは読み込んだFBXファイルのテクスチャフォルダに出力されています。
f:id:bluebirdofoz:20190719085924j:plain

作成されたモデルを再びFBXファイルとしてエクスポートすれば Unity で利用可能です。
Batchs/SetPass calls の負荷が 1 になっていることが分かります。
f:id:bluebirdofoz:20190719085932j:plain

読み込み時の注意点は以下の記事を参照してください。
上記の例では透明化が必要なテクスチャを含むため、シェーダは Unlit/Transparent Cutout を利用しています。
bluebirdofoz.hatenablog.com

実行スクリプト

これまで作成した「Blenderで利用可能なpythonスクリプト」のノウハウを組合せて作成しました。
少し長いですが、スクリプト全文を貼付しておきます。
アーマチュアの設定/オブジェクト結合/テクスチャ作成/ベイク/マテリアル設定など一通りの機能を実行しているので学習サンプルとして良いです。
参照オブジェクト名などがユニティちゃんに依存しているため、他のモデルでは正常に動作しません。

長いので折りたたみました。クリックで開きます。