Force to mono
Unity側で音源をモノラルに変換して、容量を削減してくれる設定
モバイルだとONにしたい。
インスペクタ上だと、この設定をONにすると、 Normalize
というオプション設定が選択できるようになる。
これは音量を平均化してくれる機能ですが、音素材側で音量調整されているケースもあって、
「小さい音にしたかったのにやたら音量上がってない?」みたいなことになります。
なので、モノラル設定はONにしつつ、ノーマライズはOFFにしておきたい気持ちになりますね。
インポート設定を自動化したい
手動でやるのはつらくなるので、
AudioImporter をスクリプトからいじってなんとかしたい。
が、AudioImpoter には、 forceToMono
というパラメータはありますが、
Normalize
に関するパラメータが公開されていませんでした。
結果
以下のようにやってやると、該当のパラメータを取得して書き換えることができました。
var audioImporter = assetImporter as AudioImporter;
var serializedObject = new SerializedObject(audioImporter);
var normalize = serializedObject.FindProperty("m_Normalize");
normalize.boolValue = false;
serializedObject.ApplyModifiedProperties();
参考
https://answers.unity.com/questions/1016473/how-to-disable-normalize-in-audioimporter.html
https://docs.unity3d.com/ScriptReference/EditorUtility.SetDirty.html