テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】コンポーネントやアセットの設定をファイルに保存・他オブジェクトに反映できる「Preset」

f:id:tsubaki_t1:20180110224549j:plain

Presetは簡単に言えば「コンポーネントやオブジェクトの設定をアセットとして保持し、コンポーネントに簡単に反映出来る」めちゃくちゃ強力な機能です。

今回は、Unity開発に置けるワークフローの中核を担えるかもしれないこの新機能を紹介します。

 

目次

 

設定項目の多いコンポーネントは面倒くさい?

Unityは多くの設定項目をGUIベースで操作することができます。これは非常に簡単なのですが、量が多いと面倒になります。

例えばスプライトを作る場合、多くの項目を変更する必要が出てきます。エディター拡張のインポーターを作ることで自動化も可能ですが、まぁ。

f:id:tsubaki_t1:20180110225051j:plain

 

Presetで設定を記憶し、反映する手順

Presetはアセットやコンポーネントの情報を保持し、反映します。

例えばテクスチャの設定でやってみます。

 

アセットの設定を保存し、他のアセットに反映する!!

まずは設定を保存します。

  1. コンテキストメニューの隣に新しく追加されたボタンを押す(下のGif参照)
  2. Save Current to ...でデータを保存

f:id:tsubaki_t1:20180110225638g:plain

 

あとは他のテクスチャに設定を反映させます。

  1. 反映するテクスチャ(複数可!!)を選択
  2. プリセットボタンを押します。
  3. 先程保存したプリセットを選択して、設定を変更
  4. Applyボタンを押す

f:id:tsubaki_t1:20180110230116g:plain

 

コンポーネントの設定もプリセットに保存!プリセットから選ぶ!

これはテクスチャーですが、コンポーネント等にも使用できます。

上で紹介した手順と同様の手順で、コンポーネントの設定を保存し、プリセットの設定を再開することができます。

f:id:tsubaki_t1:20180110230710g:plain

ただしPrefabとは異なり「変更している項目は変更しない訳ではない」点には注意が必要です。
例えば上の設定の場合、各プリセットは色を変更しているだけですが、同様にModeがRealtimeでもあります。その為、もしプリセットを使う対象がMixedを選択していた場合でも、Realtimeに変更されてしまう訳です。

コンポーネントやアセットの初期設定は私が決める!!!

この機能のある意味目玉機能は、このPresetの設定内容を初期設定とできる点です。

上の手順で保存したプリセットのアセットを確認すると、ヘッダーの部分に「Set as TextureImporter Default」のボタンが表示されます。

これを押すと、Presetの値がインポート時の初期設定になります

f:id:tsubaki_t1:20180110231426j:plain

実際に試してみました。

  1. まずバッテンマークのユニティちゃんアイコンをインポート
    …Defaultのテクスチャがインポートされます(3Dモードなので)
  2. Sprite設定のPresetのSet as TextureImporter Defaultを押す
  3. マルのユニティちゃんをインポート
    …Presetの値と同じ、Spriteとして保存されます。

f:id:tsubaki_t1:20180110232024g:plain

 

この機能もアセットだけでなくコンポーネントにも使えます。

例えばMeshRendererのPresetを「全くライト系を受ける気がない」設定に設定して、標準設定とした場合、以降生成されるMeshRendererの初期設定は「全くライトを受ける気がない」設定になります。

f:id:tsubaki_t1:20180110232553j:plain

f:id:tsubaki_t1:20180110232652g:plain

Set as *** Defaultの設定はあくまでも「初期設定」なので、既に生成したオブジェクトに対しては効果は無い点に注意です。
一貫性をもたせるならPresetよりはAssetGraphToolあたりを使うのが良いかもしれません。

 

なお、初期設定は、Edit > Project Settings > Preset Managerから確認できます。

f:id:tsubaki_t1:20180110233622j:plain

 

関連

Unity 2018.1 betaが開始しました。
今回の機能もまだベータ中なので、変更があるかもしれません。

blogs.unity3d.com

もうちょっと汎用的にやろうと思ったらAssetGraphToolは便利です。

www.slideshare.net

tsubakit1.hateblo.jp

Presetの機能を紹介している動画です。

www.youtube.com紹介してるスレッド

https://forum.unity.com/threads/presets-feature.491263/