UnityでClusterで使うVRMアバターを作成していたのですが、VRMファイルをエクスポートする度に、テクスチャのインポート設定(圧縮)が初期化される現象が発生。
こんな感じで圧縮の設定をしているのですが・・・。
アバターをVRM形式でエクスポートすると、毎回圧縮の設定が『なし』に戻されてしまいます。
この現象がアバターに使用しているテクスチャ全てで、発生するんですよ。
毎回元に戻ると設定しなおすのが面倒だし、ミスが必ずでるからやめて欲しい。
未だに原因は不明なのですが、とりあえずの回避方法はみつけたので覚書です。
私の環境は以下のバージョンですが、試しに他のバージョンのUnity EditorとUniVRMでも試したところ、同様の現象が発生してました。
問題の環境
- OS ・・・ Windows10
- Unity Editor ・・・ 2021.3.4.f1
- UniVRM・・・0.99.4
Unity|VRMエクスポートのテクスチャのインポート設定初期化の回避方法
テクスチャのインポート設定が初期化されるなら、デフォルトの設定を変えればいい!!!
ということで、Unityでインポート設定のデフォルトを変更する方法を調査。
Unityのエディター拡張で、テクスチャーのインポート設定を自動で行うことができるということで、そちらで対応することにしました。
毎回手動で対応するより断然楽です。
以下の記事で、方法が詳しく説明されています。
私は圧縮の初期値を全て通常にしたかったので、以下のコードを使用。
using UnityEngine;
using UnityEditor;
using System.Collections;
public class ImportProcess : AssetPostprocessor
{
//画像のインポート時、インポート設定変更時に実行される関数
void OnPreprocessTexture ()
{
//assetImporterにインポートするオブジェクトが入る。それをテクスチャ型にキャスト
TextureImporter Ti = assetImporter as TextureImporter;
//インポート設定変更時もこのメソッドが呼ばれる都合上、一部のテクスチャだけ初期設定を無効化するには何かしらの処理が必要
//今回はパッキングタグが何かしら設定されている場合、初期設定を行わないように設定する
if (Ti.spritePackingTag != "")
{
return;
}
//圧縮は全て通常
Ti.textureCompression = TextureImporterCompression.Compressed;
}
}
参考にした記事にはテクスチャがあるフォルダ毎での設定の変え方や、他の項目の設定方法も書いてありました。
細かく設定を変えたい場合は、そちらを参考に変えればOKです!
Unity|VRMエクスポートでテクスチャのインポート設定が初期化される ~まとめ~
ということで、UnityでVRMファイルのエクスポート後にテクスチャのインポート設定が初期化される現象の対応でした。
アバターをエクスポートする度に容量が変わるから、変だなぁ~と思ってたんですよねぇ~。
まさかこんな動きをしているとは。
他によい方法がないか引き続き調べてみますっ!
では、また!