Amazonで商品を見るセール会場へ

UnityのPreset Manager|画像インポート設定・Filter・既存素材への適用

新しく追加するUI画像のTexture TypeやPixels Per Unitをそろえるなら、TextureImporterのPresetを作り、Preset Managerへ登録します。Presetのファイル名だけではPNG限定にならず、既存の画像へReimportするだけでもデフォルトPresetは適用されません。適用する項目と画像の範囲を先に決めます。

手順の参照はUnity 6.3 LTS(6000.3)の公式資料です。既存画像の操作環境はUnity 2020.1系で、今のInspectorの表示名とは異なる場合があります。この改稿でUnity Editorを操作し、インポートやFilterの一致を実行確認したわけではありません。以下の少数素材で期待値を照合してから実プロジェクトへ設定してください。

目次

PresetとPreset Managerの違い

条件・症状手順・確認する結果
Preset AssetImporter等の設定値を保存して別の対象へコピーする。適用後の対象とPresetは自動連動しない。
Preset Manager新しいAssetのインポートやComponent作成等で使うデフォルトを管理。型・Filter・適用順を指定する。
既存画像デフォルトを登録/変更しただけで更新されない。選んだImporterへ明示適用するか、Resetの範囲を確認する。
今回の対象TextureImporterの画像インポート設定。Sprite Atlasへまとめる作業やPrefabの階層生成は別の記事。

1. 小さい確認用フォルダーと基準画像を用意する

  1. Assets/PresetTest/UIとAssets/PresetTest/Otherを検証用に用意し、少数のコピー画像で試します。元画像やImport設定の変更前状態をバージョン管理等へ残します。
  2. UIへ使う基準画像をProjectで選び、Texture Type=Sprite (2D and UI)に設定します。Sprite Modeは1枚を1SpriteとするSingleか、切り出すMultipleかを目的で選びます。
  3. Pixels Per Unitはプロジェクトの寸法に合わせます。たとえば100を使うなら、その値を今回の期待値とします。元記事の1をすべてのUIに推奨する意味ではありません。
  4. Filter Mode・圧縮・Max Size・Read/Write・sRGB・Platform Override等をどこまで共通化するか決めます。無関係なImporter設定まで上書きしないよう、次の部分Presetを確認します。

2. TextureImporterのPresetを作成する

基準画像のImport設定を決め、必要なApplyを行ってからPresetを保存します。Unity 6.3のPreset作成資料はPreset selectorからCreate Newを選ぶ手順です。旧画像のSave current to…と現在の表示を取り違えないでください。

  1. Projectで基準画像を選び、Inspector右上のPreset selector(スライダー形のアイコン)を開きます。
  2. Create NewからAssets内へ.presetを保存します。例はAssets/Presets/UITextureImporter.presetです。Presetsというフォルダー名やPng_Importerというファイル名自体に適用条件はありません。
  3. 保存したPresetをProjectで選び、Importerの型がTextureImporterであること、必要な値が保存されていることを確認します。

次の2画像はUnity 2020.1系の作成・保存資料です。現在のCreate Newを操作した証拠ではありません。

インスペクター右上のプリセットアイコンをクリックして開くメニューを示す画面。
アセッツフォルダ内にプリセットファイルを保存する手順を示す画面。

3. 必要な設定だけを適用する部分Preset

同じPresetへTexture Typeだけ保存したつもりでも、ほかのImporter項目が含まれていれば同時に変わることがあります。公式の部分適用ではPresetのプロパティをExclude Propertyで除外できます。必要な共通値を残し、個別に保ちたい設定を除外します。

  1. PresetをInspectorで開き、対象の共通値と個別値を確認します。
  2. 個別に保ちたい項目を右クリックしてExclude Propertyにします。まとまった除外が必要ならInclude/Exclude all propertiesと個別項目を組み合わせます。
  3. すでに別の値を持つコピー画像へ手動適用し、対象値だけが変わり、除外した設定が残るか確認します。保存済みPresetを後で編集しても、以前適用した画像は自動更新されません。

4. Preset Managerへデフォルトを登録する

  1. Edit > Project Settings > Preset Managerを開きます。Add Default PresetからImporter/TextureImporterの型を選びます。
  2. TextureImporterのPreset欄へ作成したPresetを設定します。PresetのInspectorからAdd to defaultを使う方法も公式にあります。
  3. Filterを設定する前に、TextureImporterのほかのデフォルト設定がないか確認します。Filter空欄は対象型全体へ適用する広い設定になるため、3D用Texture等が同じ対象へ入らない条件を決めます。
  4. 複数のPresetが条件に合う場合は上から下の順に適用され、下側が上側の値を上書きし得ます。全Preset/Filterの組合せを確認します。必要ならチェックを外して一時的に無効化します。

次は旧Add TextureImporter defaultの画面です。現在の表示名はUnity 6.3 Preset Manager資料で確認してください。

インスペクターでボタンをクリックしてプリセットをデフォルト設定に追加する手順を示す画面。

5. Filterの候補と対象外画像を確認する

公式のglob構文はglob:"検索パターン"で、大文字・小文字を区別します。*は1つのパス部分、**はフォルダー/子フォルダーを含む指定です。拡張子だけ、特定フォルダー直下、子フォルダー込みは別条件です。

例として検証用フォルダー直下のPNGだけなら、glob:"Assets/PresetTest/UI/*.png"をFilter候補にします。これは公式構文を基にした未実行の例です。使用版と実際のAssetパスで一致を確認し、対象外画像まで変わる場合はPresetを一旦無効化してFilterを修正します。子フォルダーも必要な場合は公式の**例を参照し、別の期待値で試してください。

プリセットマネージャーでフィルター設定を行い適用条件を絞り込む画面。
条件・症状手順・確認する結果
新規UI/Icon.png設定した対象値(例Sprite/Single/PPU100)が入ることを確認。
新規Other/Texture.pngUI用Presetが適用されず、意図した他のImporter設定が保たれることを確認。
新規UI/Icon.PNG・UI/Sub/Icon.png大文字拡張子と子フォルダーを別々に試す。上の直下*.png候補の対象にするかを決める。
既存UI/Old.pngデフォルト登録やReimportだけで変わったと判断しない。手動適用の手順と比較する。

6. 既存画像へ適用する:Reimportとの違い

Unity 6.3の公式資料は、既存AssetへReimportしてもデフォルトImporter Presetを適用しないと説明しています。既存画像は選択したImport設定のPreset selectorから明示的にPresetを適用します。複数選択時もImporterの型と対象数を確認し、少数で値を照合してから増やします。

  1. 既存のコピー画像1枚を選び、変更前のTexture Type/PPUと個別設定を記録します。
  2. InspectorのPreset selectorから対象Presetを選びます。適用後の値と、除外した値が保たれたかを確認します。必要なApplyを行います。
  3. Preset Managerのデフォルトを使うResetも公式に記載されていますが、ほかの初期値/一致するデフォルトを含めて変わり得ます。特定の2項目だけを変更したいときは、部分Presetの明示適用を先に試します。
  4. SceneでSpriteの寸法、表示、アニメーションやUIの参照を確認し、保存して再読込します。PPUやSprite Modeを変えることで、見た目の大きさや切り出しの条件が変わる場合があります。

設定が効かない・範囲が広すぎるとき

条件・症状手順・確認する結果
新規画像に適用されないPresetの型、デフォルト有効チェック、Filterの実パス/大文字、適用順、別AssetPostprocessorの処理を確認。
旧画像が変わらない新規インポートと既存Reimportを区別。Preset selectorから明示適用する。
3D画像までSprite化空Filterや広い条件、他のPresetを確認。一旦無効化し、対象外の新規コピー画像も試す。
個別圧縮等が変わる部分Presetの除外と後続Presetの上書きを確認。変更前の.meta/設定記録から戻す。
Preset変更が既存へ反映されない適用は設定コピーで、Presetとの自動連動ではない。必要な対象だけ再適用する。

Presetを削除する前にデフォルト登録を無効化/解除し、将来の新規画像への適用を止められるか確認します。すでに変えた画像の設定は解除だけで戻りません。変更前のImporter設定や.metaを復元し、表示を確認してください。

今回の実行確認は未実施です。Unity版、Presetの保存項目、Filter、複数Presetの順序、新規/既存/対象外の画像と前後の値を記録すれば、条件を変えたときに再確認できます。画像をまとめる用途はSprite Atlasのガイド、UIの寸法はCanvasのガイドへ。

環境設定の記事は、ほかにもあります。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

Unityのおすすめ書籍

開発PCの選び方

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次