バッチインポート機能 - SpriteStudioArchive/SS5PlayerForUnity_v1_2_1 GitHub Wiki

バッチインポート機能

=================

概要

バッチインポート機能はsspjファイルのパスを記述したテキストファイルを読み込み事で、複数のsspjファイルをSS5Player for Unityにインポート、更新できる機能です。

Unity上の上部ツールバーから[tools]-[SpriteStudio]-[Sample]-[BatchImporter(SSPJ)]を選択すると、「Choose List-File & Import」のボタンがあるダイアログが開きます。
ボタンを押して用意したテキストファイルを選びますと、sspjファイルのインポートが開始されます。 テキストファイルはUnityのプロジェクトにある必要はありません。

※ご留意いただきたい点について
本バッチインポータは、ツールバー内の格納階層名の通り「サンプル」として提供されています。 バッチインポータは、アプリケーションの制作環境(OSやファイル管理方法・人数など)によって、利便性が異なるため、
「アプリケーション制作の都合に合わせて、改造や機能拡張して運用されることが望ましい」
……と考え、(それぞれの制作環境に合わせた)バッチインポータを作成するための「原型」として、最低限の機能を実装し・拡張しやすく作成されています。
本バッチインポータサンプルの本来の運用指針については、後述の「バッチインポータの運用指針について」をご参照下さい。
また、それらの前提があることをご理解頂いた上で、ご使用してくださいますようお願い致します。
そのため、「実験機能」と同様に本サンプルの修正、変更、拡張の要望については基本的にサポート対象外になります。

テキストファイルのフォーマット

テキストファイルにはsspjファイル名と設定コマンドを記述する事ができます。

  • 行頭が「*」で始まっている行は注釈とみなされ、行全てが無視されます。
  • 行頭が「?」で始まっている行は、インポータの設定を変えるための設定コマンド行とみなされます。
  • 空行は無視されます。
  • それ以外の文字で始まっている行は、入力対象ファイル(sspj)のファイルパスとみなされます。

設定コマンド一覧

コマンドの行頭には「? 」が付きます。 テキストに記述された内容は上から順に実行されていくため、途中で設定を変えたり出力フォルダを変える事ができます。

  • TextureSizePixelMaximum
    インポートで許される最大テクスチャのピクセルサイズを設定するコマンドです。
    引数は整数で8192までの2のn乗の値を設定する事が出来ます。
    デフォルト(本命令が記載されていない状態)の値は「8192」です。

    • 使用例
      ? TextureSizePixelMaximum > 4096
  • CollisionThicknessZ
    当たり判定をコリジョンに変換する時のZ軸の厚みを設定します。
    引数は小数値で設定する事が出来ます。
    デフォルト(本命令が記載されていない状態)の値は「1.0」です。
    (単独のインポート設定ダイアログ中の「Collider-Thickness」と同じ設定機能です)

    • 使用例
      ? CollisionThicknessZ > 2.0
  • FlagAttachRigidBody
    当たり判定をコリジョンに変換する時に、そのパーツのGameObjectにRidid-Bodyコンポーネントを付加するかを設定します。
    引数は「true」で「付加する」・「false」で「付加しない」ことを意味します。
    デフォルト(本命令が記載されていない状態)の値は「true」です。
    (単独のインポート設定ダイアログ中の「Attach Ridgid-Body to Collider」と同じ設定機能です)

    • 使用例
      ? FlagAttachRigidBody > true
  • FlagAttachControlGameObject
    インポートする際に「制御用プレハブ」を作成するかを設定します。
    引数は「true」で「作成する」・「false」で「作成しない」ことを意味します。
    デフォルト(本命令が記載されていない状態)の値は「true」です。
    (単独のインポート設定ダイアログ中の「Create Control-Prefab」と同じ設定機能です)

    • 使用例
      ? FlagAttachControlGameObject > false
  • FlagConfirmOverWrite
    インポートする際プレハブの上書きが起こる場合の確認を行うかを設定します。
    引数は「true」で「確認する」・「false」で「確認しない」ことを意味します。
    デフォルト(本命令が記載されていない状態)の値は「false」です。
    (単独のインポート設定ダイアログ中の「Confirm Overwrite-Prefab」と同じ設定機能です)

    • 使用例
      ? FlagConfirmOverWrite > true
  • FlagCreateProjectFolder
    インポートする際に「SSPJファイルのボディ名と同じ名前のフォルダを作成して、その下にデータを格納する」かを設定します。
    引数は「true」で「作成する」・「false」で「作成しない」ことを意味します。
    デフォルト(本命令が記載されていない状態)の値は「true」です。
    (単独のインポート設定ダイアログ中の「Create Project Folder」と同じ設定機能です)

    • 使用例
      ? FlagCreateProjectFolder > true
  • NameBaseFolderSS5Data
    sspjを読み込むベースフォルダを設定します。
    以降のsspjファイルパスの先頭に、ベースフォルダのパスが付加されます。
    デフォルト(本命令が記載されていない状態)の値は空文字で、インポート指定ファイル群は「絶対パス」で記載されていることを意味します。

    • 使用例
      ? NameBaseFolderSS5Data > C:/TestProject
      test.sspj
      test2.sspj

    上記の指定の場合、「C:/TestProject/test.sspj」と「C:/TestProject/test2.sspj」をインポートします。

  • NameBaseFolderAsset
    Unityプロジェクト内の出力アセットフォルダを設定します。
    単独インポート時に出力アセットフォルダを選択しておきますが、それと同等の機能です。
    デフォルト(本命令が記載されていない状態)の値は「Assets」で、プロジェクトのルートを選択していることを意味します(ただし、__UnityのProject上でインポートするフォルダが選択されていた場合、そのフォルダがインポート先のデフォルト__になります)。
    ※本命令で指定するアセットフォルダは、「既存である(未作成状態ではない)」ことが必要です。

    • 使用例
      ? NameBaseFolderAsset > Assets/SpriteStudioData

    この場合、Assets/SpriteStudioDataフォルダをインポート時の出力基準フォルダにします。

テキストファイル記述時の注意点

  • 出力フォルダが無い場合フォルダを作製しないので、既存のアセットフォルダを指定する必要があります。
  • テキストファイルの記載に全角文字を使用しないでください。
  • テキストファイルの拡張子は「.txt」にしてください。
  • テキストファイルの格納場所はUnityプロジェクト外でも構いません。

※上記のうち「全角文字を使用しないでください」については、アプリケーションの制作環境(OSや使用しているテキストエディタの設定など)によって、「全角文字の文字コード形式」が異なるためです。
後述の「バッチインポータの運用指針について」をご参照いただき、各制作環境に適した文字エンコード指定を行うように改造することで、全角文字を使用しても問題のない仕様にすることが可能です(サンプルのままですと、「OS毎に決まっている基本文字コード」でリストファイルを読むようになっております。

テキストファイル記述例

* ++++++++++++++++++++++++++++++++++++++++
? TextureSizePixelMaximum > 4096
? CollisionThicknessZ > 1.0
? FlagAttachRigidBody > true
? FlagAttachControlGameObject > true
? FlagConfirmOverWrite > false
? FlagCreateProjectFolder > true

? NameBaseFolderSS5Data > D:/User/ApplicationData/SS5/Menu
? NameBaseFolderAsset > Assets/Graphic/Menu

Menu/Confirm.sspj
Nowloading/NowLoading.sspj

* ++++++++++++++++++++++++++++++++++++++++
? NameBaseFolderSS5Data > D:/User/ApplicationData/SS5/Character
? NameBaseFolderAsset > Assets/Graphic/Character

Character01.sspj
Character02.sspj

バッチインポータの運用指針について

前記の通り、本バッチインポータは「サンプル」として提供されていることもあり、実際に使用・運用される際には、下記のような形で「実際に使用するバッチインポータ」を作成してから、運用していただくことを推奨いたします。

  • UnityプロジェクトのEditor内に、2つC#スクリプトファイルを作成する。
  • 1つ目はインポータ本体のC#スクリプトファイルです。
  • 2つ目はメニュー選択直後に開くメニューダイアログ用のC#スクリプトファイルです。
  • 作成した2つのC#ファイルに、それぞれに対応したサンプルスクリプトの内容をコピー&ペーストする。
  • 1つ目にはアセット内「Editor/SpriteStudioArchive/Sample/BatchImport/LibraryEditor_SpriteStudio_Sample_BachImport.cs」が対応C#スクリプトファイルになります。
  • 2つ目にはアセット内「Editor/SpriteStudioArchive/Sample/BatchImport/MenuItem_SpriteStudio_Sample_BatchImport」が対応C#スクリプトファイルになります。
  • コピー&ペースト後の2つのC#ファイルに、下記の変更を行います。
  • 1つ目のC#スクリプトファイルのバッチインポータ本体用クラス名(サンプルでは「LibraryEditor_SpriteStudio_Sample_BachImport」となっています)を、作成したC#ファイル名と同じ名称に書き換えます。
  • 2つ目のC#スクリプトファイルのメニューアイテムクラス名(サンプルでは「MenuItem_SpriteStudio_Sample_BatchImport」となっています)を、作成したC#ファイル名と同じ名称に書き換えます。
  • 2つ目のC#スクリプトファイルの「MenuItem」で設定される、メニュー階層を変更します(これは制作上、運用のご都合の良いメニュー階層名で構いません。サンプルでは「Tools/SpriteStudioArchive/Sample/BatchImport(sspj)」になっています)。
  • 2つ目のC#スクリプトファイルの「MenuItem_SpriteStudio_Sample_BatchImport」「LibraryEditor_SpriteStudio_Sample_BachImport」と記載されている箇所を、新規に作成したそれぞれのクラス名に変更します。

これらを行うことで、「独自の改変・仕様追加・バグ修正」などを行った「実際に運用されるバッチインポータ」が、今後のSS5PUのバージョンアップ時に書き潰されることがなくなる他、複数の仕様を持ったバッチインポータを作成したりすることが可能です。