インポータの詳細解説 - SpriteStudio/SS6PlayerForUnity GitHub Wiki

SS6Player For Unity(以降「SS6PU」)のインポータには3つのモードが存在します。
インポートのモードはそれぞれ目的と設定内容が異なります。

「SpriteStudio6 Player」モード・「Convert To Unity-Native」モード・「Convert To Unity-UI」モードの使い分けのヒントについては、こちらを参照してください

Importer-Common-Mode

  • 「SpriteStudio6 Player」モード
    SS6PU専用のプレーヤーを使用してアニメーション等を表示するためのデータをインポートするために使います。
    SpriteStudio6で作成したデータをほぼ忠実に再現することができるモードです。
    インポート対象は、1つのSpriteStudio6のプロジェクト(sspj)ファイルです。

  • 「Convert To Unity-Native」モード
    SpriteStudio6のデータを、Unityの基本機能に変換します。
    ただし、再現性は厳密ではなく近似の挙動になる他、SpriteStudio6で使用することができる機能に制限が出ることに注意してください。
    主な制限の内容はこちらを参照してください。
    ただし、大半の場合(Unityの基本機能に変換されるため)「SpriteStudio6 Player」モードでインポートしたデータよりも「CPUの処理負荷が軽い」ことが大きな利点となります。
    インポート対象は、1つのSpriteStudio6のプロジェクト(sspj)ファイルです。

  • 「Convert To Unity-UI」モード(Ver.2.1.0以降)
    SpriteStudio6のデータを、UnityのCanvas(UI・uGUI)下で使用する「UI.Image」相当の機能に変換します。
    ただし、SpriteStudio6で使用することができる機能に制限が出ることに注意してください。
    主な制限の内容はこちらを参照してください。
    基本的に、UI.ButtonなどのUIコンポーネントを追加することで「UnityのUI標準機能とほぼ同様の使用方法」で扱うことができることが最大の利点です。
    インポート対象は、1つのSpriteStudio6のプロジェクト(sspj)ファイルです。

  • 「Batch Import」モード
    「バッチリスト」と呼ばれるテキストファイルにテキストでインポート設定とインポートするファイルを記載することで、複数のSpriteStudio6のプロジェクト(sspj)ファイルを異なる設定で読み込むことができる機能です。
    この機能は、上記の3モード(「SpriteStudio6 Player」「Convert To Unity-Native」「Convert To Unity-UI」)を切り替えたり、インポータの設定保存ファイルを読み込んだりしながら、複数のファイルをインポートしていくことができます。

機能解説メニュー

(共通)「Import」ボタン

このボタンを押すと、インポートを開始します。
それぞれのモードで挙動が少しだけ異なります。 また、「Batch Import」以外のモードでは、「Import」ボタンを押す前に、必ずインポートしたデータを格納するためのアセットフォルダを「Project」ウィンドウ上で選択しておいてください(「Two Column Layout」の場合、右ペイン側で選択されている必要があります。Projectウィンドウでのフォルダ選択時の注意点はこちらを参照してください)。

  • 「SpriteStudio6 Player」モード
    インポート先フォルダを選択肢てから本ボタンを押すと、インポートするsspjファイルを選択するためのファイル選択ダイアログが開きます。
    ファイルを選択するとインポートが始まり、インポートの進行度を表示しているプログレスバーが閉じるとインポート終了です。
    シーンに設置するためのプレハブは、(格納先フォルダ名を変えていないなら)下記のアセットフォルダ中に出力されています。

    • ssaeファイルに相当するアニメーション: インポート先アセットフォルダ内「PrefabAnimation」
    • sseeに相当するエフェクト: インポート先アセットフォルダ内「PrefabEffect」
    • 制御用プレハブ: インポート先アセットフォルダ直下
  • 「Convert To Unity-Native」モード
    インポート先フォルダを選択肢てから本ボタンを押すと、インポートするsspjファイルを選択するためのファイル選択ダイアログが開きます。
    ファイルを選択するとインポートが始まり、インポートの進行度を表示しているプログレスバーが閉じるとインポート終了です。

    • ssaeファイルに相当するアニメーション: インポート先アセットフォルダ内「PrefabSprite」
    • 制御用プレハブ: インポート先アセットフォルダ直下
  • 「Convert To Unity-UI」モード(Ver.2.1.0以降)
    インポート先フォルダを選択肢てから本ボタンを押すと、インポートするsspjファイルを選択するためのファイル選択ダイアログが開きます。
    ファイルを選択するとインポートが始まり、インポートの進行度を表示しているプログレスバーが閉じるとインポート終了です。 シーンに設置するためのプレハブは、(格納先フォルダ名を変えていないなら)下記のアセットフォルダ中に出力されています。

    • UI.Image相当のプレハブ: インポート先アセットフォルダ直下
  • 「Batch Import」モード
    ボタンを押すと、バッチリストファイルを選択するためのファイル選択ダイアログが開きます。
    (インポート設定の「Output log file」がチェックされていると)続けて、インポートのログを出力するためのテキストファイルを選択するためのファイル選択ダイアログが開きます。
    ファイルを選択し終わるとインポートが始まり、インポートするsspjファイル数の回数分プログレッシブバーが表示され、それが終るとインポート終了です。

(共通)「Setting Save/Load/Reset」

このグループは、現在の設定内容について下記の動作を行うためのメニューです。

Importer-Common-Setting-SaveLoad

チェック類

これらのチェックは保存(Save)用のオプションで、チェックされているオプション群の情報をセーブします。 上の画像の状態がデフォルトの状態です。
下記の「Save to Text-File」でファイルに設定が保存される場合、「SpriteStudio6 Player」「Convert To Unity-Native」「Convert To Unity-UI」「Batch Import」の全モードの情報が保存されますので、各モードごとに設定を保存する必要はありません。

  • Export "Mode" (現在設定されているモードを保存します)
  • Export "Basic"
  • Export "PreCalculation"
  • Export "Collider"
  • Export "Overwrite Confirm"
  • Export "Checking SSxx Version"
  • Export "Advanced Options: Naming Assets"
  • Export "Advanced Options: Naming Asset-Folders"
  • Export "Advanced Options: Attribute data Packing"
  • Export "Advanced Options: Preset Material"
  • Export "Advanced Options: Holder Asset"

「Save to Text-File」ボタン

テキストファイルに現在の設定を保存します。
このボタンを使って出力された設定は、「Load from Text-File」で再度読み込んで設定を復帰できる他、「Batch Import」モードでのバッチリストファイル内でのインポート設定としても使用することもできます。
ボタンを押すと、設定を出力するためのファイル選択ダイアログが開きますので、保存するファイル名(及びフォルダ)を指定してください。
※この設定ファイルは、Unityのプロジェクト内(アセットフォルダ群の中)にある必要はありません。Unityプロジェクト外のローカルフォルダなどに格納しても構いません(バッチリストから読まれるものでも、Unityプロジェクト外にあって問題ありません)。

「Load from Text-File」ボタン

「Save to Text-File」ボタンで保存された設定を復帰する際に使用してください。
ボタンを押すと、設定が記録されているテキストファイルを選択するためのファイル選択ダイアログが開きますので、読み込むファイル(及びフォルダ)を指定してください。

「Reset (Restore initial setting)」ボタン

ボタンを押すと、現在のインポート設定を全て初期状態(最初にSS6PUをインストールした直後の状態)に戻します。

3つのインポートモードの使い分けについて

SS6PUには「SpriteStudio6 Player」「Convert To Unity-Native」「Convert To Unity-UI」の3つのインポートモードが存在しますが、それらの使い分けについてヒントを記載したいと思います。

この3つのモードは下記のような特徴を持ちます。

  • 「SpriteStudio6 Player」モード

    • メリット
      • プレーヤ処理を独自で持っているため、SpriteStudio6のデータの再現性が高いです。
      • 複数のアニメーションオブジェクトをシーン上でZ座標値(カメラからの深度)で描画順制御することが可能です。
      • 3Dのシーン上に置くことも可能です。
        ※SS6PUの内部処理で、1アニメーションオブジェクト毎に、パーツの描画順序とマテリアルの使用順序を考慮した上でメッシュをバッチングし・各アニメーションオブジェクトが「サブメッシュを持った1メッシュデータ」としてUnityのレンダリング処理段に渡されるため、描画上ではほぼ「1つのアニメーションオブジェクト=1つの剛体メッシュ」と同じ扱いになります。
      • 各種の再生管理機能群が提供されています。
    • デメリット
      • 「Convert To Unity-Native」モードと比較して、アニメーションデータのデコード処理が低速です(ただし、多くの場合、Unityのレンダリング処理段の負荷は低めに留まる傾向があります)。
  • 「Convert To Unity-Native」モード

    • メリット
      • 「SpriteStudio6 Player」モードと比較して、アニメーションデータのデコード処理が高速であるため、CPU処理(スクリプト処理段)の負荷が低くなる場合が多いです(ただし、データや使い方によっては、レンダリング処理段の負荷が増える傾向があります)。
      • Unityの基本機能のデータに変換されるため、SS6PU専用の関数を使わなくても制御が可能です(ただし、逆説的に自分で必要とするアニメーション管理機能を自力で実装しなくてはならない「裏返し」のデメリットも生じます)。
    • デメリット
      • 使用できないアトリビュートや機能が存在します(また結果が「近似」再現になっているものもあります)。
        主な制限の内容はこちらを参照してください。
      • Renderer.sortingOrderでパーツの描画順を制御しているために、(何も拡張しない状態では)Z座標値などでの描画順の制御がし辛かったり、3Dのシーンとの組み合わせが難しい場合が生じます。
        描画順のリアルタイム制御の実装のヒントについてはこちらを参照してください
  • 「Convert To Unity-UI」モード

    • メリット
      • UI.Image相当のプレハブオブジェクトとなるため、Canvas上のほぼすべての機能と親和性が高いです。
      • アニメーションのキーフレームデータはAnimationClipにデータ変換されるので、UI.ButtonをAnimatorでアニメーション遷移の制御をする場合などでもかなり楽に適用が可能です。
    • デメリット

上記の特徴を踏まえた上で、使い分けの例を提案するのであれば、

  • 「SpriteStudio6 Player」モード

    • 「インスタンス」機能や「エフェクト」機能をアニメーションに連動して使いたい場合
    • デモムービー的なものやカットインなどで使用する場合
    • 3Dオブジェクト群と混ぜたシーンを構築したい場合
    • SS6PUが提供している「アニメーション合成」や「トラックトランジション」などの独自機能を使用したい場合
    • CPU負荷が増えても、レンダリング処理段の負荷を軽くしたい場合
  • 「Convert To Unity-Native」モード

    • 画面に多くのキャラクタが出てくる(ゴチャキャラ)の場合や、アクションゲームなどの速度性が重要視される場合
    • Unityのアニメーション機能などを使い慣れた人が、そのノウハウで挙動を実装していく場合
    • UIのチップなどの、あまり多くのSpriteStudio6の機能を使用しないものの場合
    • レンダリング処理段の負荷が若干増えても、MonoBehaviour周りの処理を軽くしたい場合
  • 「Convert To Unity-UI」モード

    • Canvas上で描画する場合

などが挙げられます。

他に使用するアセット・機能やアプリケーションの都合によって、どのモードを使用すると有利かの判断は変わってくるかと思いますが、基本的に「同様の目的のアニメーションオブジェクト(例えば「RPGのキャラユニット」)」区分で、これら2つのモードを混在させるのは好ましくないことは確かかと思います。
混在させる場合でも「UI用のチップ」「キャラ」「背景」など、明確な目的区分でモードを使い分けるのが良いでしょう。