インポータの詳細解説(「Unity UI」モード) - SpriteStudio/SS6PlayerForUnity GitHub Wiki

インポータの「Convert To Unity-UI」は、SpriteStudio6のデータをUnityのCanvas(UI・uGUI)機能下で簡便に扱うことができるように変換インポートするためのモードです。 基本的に、「UI.Image」と同等の扱いが可能なプレハブが作成され・対応しているアニメーションデータはAnimationClipに変換されるので、「UI.Button」などのコンポーネントを追加することで(通常のUIオブジェクトと同様に)様々なUI機能を持たせることが可能です。

「Convert To Unity-UI」モードには、下記のオプション群があります。

Importer-UnityUI-Overview

上記の中で、注意していただきたいのが「高度(Advanced)なオプション」の中にあるオプション群です。
基本的に「高度(Advanced)なオプション」の中にあるオプション群は、通常の状態で使用している分には設定を変更する必要のないオプション群です。
これらの値を変更する時には、十分な注意を払うようにしてください。

再インポート時の注意について

「Convert To Unity-UI」モードには、(「SpriteStudio6」モードのように)「Tracking Assets(使用しているアセットを追跡して、フォルダなどが移動していても、格納場所を特定して上書する機能)」がありません(都合、パス名での追跡のみしか対応できないためです)。
つまり、インポートした状態から

などを変更してしまった場合、その変更した後のアセットを追跡することができないため、再インポート時に設定されている内容を使用したパス名で新規にデータが作られてしまいます。
その点に、十分に注意してください。

「Caution」

本項目には、本モードを使用する上での注意点が記載されています。
原則、こちらに記載してある内容と同じです。

Importer-UnityUI-Caution

「Basic」オプション

このグループには、基本的なインポート状態を設定するためのオプションがまとめられています。 ※「Convert To Unity-UI」モードでは「制御プレハブ」を作成するオプションはありません。

Importer-UnityUI-Basic

Use Script For "Control-Prefab" (Ver.2.1.0以降)

「SpriteStudio6」モードの同名のオプションと同じ働きをします。

Create Project Folder

「SpriteStudio6」モードの同名のオプションと同じ働きをします。

"Invisible" part to "Hide" attribute

「SpriteStudio6」モードの同名のオプションと同じ働きをします。

Set Texture "Read/Write Enable"

「SpriteStudio6」モードの同名のオプションと同じ働きをします。

Ignore "Setup" Animation

チェックされている場合、アニメーションをインポートする際に「Setup」アニメーションのデータを初期設定から外します。
SpriteStduio6のアニメーション(ssae)ファイルに登録されているパーツ構成がほぼそのままインポート後のプレハブの中に子GameObjectとして格納されていますが、その初期値の設定状態が変化します(非チェック時はSetupアニメーションを考慮したフレーム0の値になりますが、チェック時はデータ上のフレーム0の値になります)。
通常は非チェック状態で構いません。

高度(Advanced)なオプション

基本的に本オプション群はみだりに変更しないでください。
また、変更する際でもUnity及び本モードの動作仕様を十分に理解してから行うようにしてください(設定を間違えると誤動作などを起こす可能性があるオプション群です)。

Importer-UnityUI-AdvancedOverview

「Naming Assets」オプション

各データのアセット名を付ける際に、データ種別やsspj名を接頭語として付与するためのオプション群です。
「SpriteStudio6」モードの同名のグループと同じ内容・機能になります(設定できる項目が違うだけです)。

現在設定されているモード以外のモードの設定は操作できません。

Importer-UnityUI-AdvancedNamingAssets

Add SSPJ-Name

インポートしたSpriteStudio6のプロジェクト(sspj)のファイル名を追加します。

Texture

テクスチャに付ける接頭句を指定します(空欄にすると何も付与しません)。

Prefab

Canvas上に設置して実際に使用する(UI.Image相当の)プレハブにつける接頭句を指定します(空欄にすると何も付与しません)。

Animation-Clip

アニメーションの静的データ(アニメーションクリップ)に付ける接頭句を指定します(空欄にすると何も付与しません)。

「Naming Asset-Folders」オプション

各データ別の格納サブフォルダ名を変更することができるオプション群です。
「SpriteStudio6」モードの同名のグループと同じ内容・機能になります(設定できる項目が違うだけです)。

本グループも「Naming Assets」オプションと同様に、特殊な格納状態が必要になった時以外は変更する必要のないオプションです。

Importer-UnityUI-AdvancedNamingAssetFolders

Texture

テクスチャを格納するサブフォルダ名を指定します。

Animation-Clip

アニメーションの静的データ(アニメーションクリップ)を格納するサブフォルダ名を指定します。

「Preset Material」オプション

UIの表示に使用する標準マテリアルを設定するためのオプション群です。
ここにデフォルト以外のマテリアルを設定することによって、インポート時に独自のシェーダを割り当てることができます。

ただし、代替となるマテリアルに割り当てるシェーダは、SS6PUが「Convert To Unity-UI」モード専用に持っているシェーダ(「Custom/SpriteStudio6/UnityUI/Sprite」)と機能・プロパティ名(及びその変数型と対値の振る舞い)が互換である必要がありますので、独自で作成する時にはその点に注意を払ってください(互換性がないシェーダを使用した場合、表示が正常な結果にならない可能性が非常に高くなります)。
※特に、UI用のシェーダでは「ミックス」と「加算」を1つのマテリアルで済ませるための追加計算などを行っていますので、自作する場合には必ずSS6PUのUI用のシェーダの処理を熟知してから行うようにしてください。

この項目に指定されているマテリアルは、実際に描画で使用するマテリアルを生成する際のマスタマテリアルになります(このマテリアルが書き換わることはありません)。

標準状態で割り当ててあるシェーダは、 「None(なし)」になっています(Noneの場合にはSS6PUが内部に持っているUI用の標準マテリアルを使用します)。

Importer-UnityUI-AdvancedPresetMaterial

Base Folder

何かの都合で本項目の内容が失われたりした(下記の各マテリアルが「None」などになってしまった)時に、一斉にマテリアルを割り当てるための簡易復旧目的で設置してあります。
本項目に、Projectウィンドウの(プリセットのマテリアルが格納されている)フォルダをドラッグ&ドロップすることで、その中に格納されているマテリアル名から復旧を行います。
※大元の本項目の初期値は、SS6PUが格納されているフォルダ(普通であれば「SpriteStudio6」)の下の「Material/UnityUI」フォルダです。
※通常時は「None」で構いません。

[Sprite]

UIの描画時にブレンドに関係なく(「ミックス」「加算」共用で)使用するマテリアルを自作や特殊設定のものに置き換える場合に、インポート時に標準で設定するマテリアルを指定します。
※通常時は「None」で構いません。


アニメーションのシーン配置後に必要な作業

「Convert To Unity-UI」モードでインポートしたデータは、再生するために追加の手順が必要です。
ここで解説しているのは、「Canvasの追加設定」と「UI.Buttonの機能を追加」になります。

Canvasをシーンに設置・追加設定する

「Convert To Unity-UI」モードでインポートしたアニメーション表示するためには、必ずシーン上に「Canvas」オブジェクトが設置されている必要があります。
※Unityの標準のUIオブジェクト群はシーンに設置した際にCanvasがなければ自動的にCamvasも追加してくれますが、SS6PUでインポートしたデータは現在Canvasの自動設置ができません。そのためにCanvasは別に手動で設置する必要があります。

  1. Hierarchyウィンドウ上で、右クリックしてサブメニューから[UI]-[Canvas]を選択して、Canvasを設置します(同時にEventSystemも設置されます)。
  2. 設置したシーン(Hierarchy)上のCanvasを選択して、インスペクタの「Additional Shader Channels」のプルダウンを開いて、下記の要素をチェック状態にします(この作業を行わないと、正常にデータが表示できません)。
    • TexCoord1
    • TexCoord2
    • TexCoord3

InitialPlay-UnityUI-AddStep01

これで準備は終了です。

ここにインポートしたデータ(例として「Sample_DataImport」の下に「Pivot.sspj」というSpriteStudioプロジェクトをインポートした前提です)の中から表示したいプレハブを選択肢、1で設置したシーン上のCanvasの子になるようにドラッグ&ドロップすればCanvas上に表示されます。
設置したプレハブ(の実体)は、UI.Imageと同様に扱えます(「Scirpt_SpriteStudio6_RootUnityUI」が、UI.Imageと同様の動作をするためのコンポーネントです)。

InitialPlay-UnityUI-AddStep01b

もし、このプレハブ(の実体)をアニメーションさせたい場合には、インポートで作成されたフォルダ内の「DataAnimationClip」内のアニメーションクリップをシーン上に設置したプWレハブにドラッグ&ドロップすることでアニメーションを簡易的に適用できます。
※この時に、同時にアニメーションクリップを制御するためのAnimator(この例の場合は「Animator01」)が作成されます。
※もし設置したプレハブ(の実体)がボタンなどでのマウスやタッチの状態でアニメーションを変更する場合、この方法は行わずに、次の「UI.Buttonの機能を追加する」に進んでください。

InitialPlay-UnityUI-AddStep01c

UI.Buttonの機能を追加する

Canvas下に設置したプレハブ(の実体)は、(UI.Imageと同様の扱いができるので、Unityの純正のUIパーツと同じ方法で)設置後にUIの各種コンポーネントを追加することで「UIのパーツとしての機能」を変更することができます。

ここでは例として、UI.Button(ボタン)としての機能を持たせてみます。

  1. 設置されているシーン上のプレハブ(の実体)を選択して、インスペクタの最も下にある「Add Component」を押します。
  2. 出てきたサブメニューの中から[UI]-[Button]を選択します。

InitialPlay-UnityUI-AddStep02

これで「ボタンとしての機能」を持つことができましたので、この状態でエディタ上で実行してみると、Gameウィンドウ上でマウスを(このオブジェクトに)フォーカスさせたりすると色が変化したりします。
※ただし、ボタンのティント色は少し強めに設定しないと、不透明色ベタ塗りの絵などでない場合には解りづらい(色がティントしているか認識しづらい)かと思います。

InitialPlay-UnityUI-AddStep02b

また、このボタンを「Animatorでの状態遷移を利用したアニメーションの変化」にする場合を追記します。

  1. シーンに設置したオブジェクト(プレハブの実体)を選択して、上記の2で追加したUI.Buttonのインスペクタ内にある「Transition」を「Animation」に変更します。

  2. (一番簡単な方法としては)3で「Animation」に切り替わったら表示される「Auto Generate Animation」をクリックすると、遷移を管理するAnimatorを格納するアセットフォルダとアセット名を指定するためのファイルダイアログが開きますので指定します。

  3. 4が終了するとAnimatorが生成され、オブジェクトに設置されます。このAnimatorの遷移設定を変更するために上部メニューから[Window]-[Animation]-[Animator]を選択して、Animatorの遷移設定のウィンドウを開きます(オブジェクトのインスペクタの「Animator」に表示されている「Controller」をダブルクリックしても同様にAnimatorのウィンドウが開きます)。

InitialPlay-UnityUI-AddStep02c

  1. Animatorウィンドウ上で設定したい「状態」のボタンを選択(ここでは「Normal」を例にします)すると、インスペクタに「状態」の設定が表示されます。
  2. インポートしたデータの「DataAnimationClip」のフォルダ内から、設定したい(オブジェクトに対応した)アニメーションクリップをインスペクタ上の「Motion」にドラッグ&ドロップします。

InitialPlay-UnityUI-AddStep02d

  1. 6~7を全「状態」分設定して、エディタ上などでシーンを実行すると、(Gameウィンドウ上で)描画しているオブジェクトに対してマウスカーソルなどの操作にあわせてアニメーションも遷移します。