エクスポート用シェルスクリプトを公開しました

February 15th, 2024

エクスポート作業の効率化

たくさんのSpineプロジェクトを一括でエクスポートすることが可能な新しいシェルスクリプトを公開しました!このスクリプトは .spine プロジェクトファイルを検索し、見つかった各プロジェクトをエクスポートします。また、プロジェクトファイルの隣にエクスポート設定ファイルを置いておけば、プロジェクトごとに異なるエクスポート設定を使用することができます。

スクリプトを利用してのエクスポートには、多くの利点があります:

  • 任意の数のプロジェクトファイルを一括でエクスポートできます。
  • エクスポートに必ず正しい設定を利用できます。これにより、他のアニメーターに正しい設定を都度共有する必要がなくなります。
  • 開発しているソフトウェアのビルドプロセスの中でエクスポートスクリプトを実行すれば、各ビルドが常に最新のエクスポートファイルを使用していることを確実にできます。これにより、各アニメーターはプロジェクトファイルに変更を加えるたびにエクスポートを実行する必要がなくなります。
  • 新しいSpineバージョンにアップデートする際、全てのプロジェクトを再エクスポートする必要がありますが、このスクリプトの設定だけしておけばとても簡単に行えるようになります!

はじめに

このスクリプトの使い方は以下のビデオで紹介しています。

また、詳細な手順については以降のセクションで紹介しています。


スクリプトのダウンロード

お使いのOS(オペレーティングシステム)に合わせたスクリプトをダウンロードしてください:

スクリプトに関する詳細はspine-scripts GitHubリポジトリにて確認できます。

スクリプトの設定

スクリプトを任意のテキストエディターで開くと、冒頭にCustomization Sectionを確認できます。以下はspine-export.batからの抜粋です。(spine-export.shでもほぼ同じような内容になっています):

最初の3つの設定についてはスクリプトを実行する前に確認してください:

  1. SPINE_EXE Spineの実行ファイルのパスです。もしここに設定されているパスでSpineが見つからなかった場合、スクリプトは他の一般的なインストール先を検索します。

  2. VERSION エクスポートを実行する際に使用するSpineエディターのバージョンです。Spineエディターとランタイムのバージョンは必ず一致させる必要があることに注意してください。

  3. DEFAULT_EXPORT このスクリプトは発見したSpineプロジェクトと同フォルダ内にエクスポート設定JSONファイルがあるかどうかを探します。見つからなかった場合、ここで指定された設定に従ってエクスポートが実行されます。一般的なデフォルト設定のために、jsonjson+packbinarybinary+pack4つのショートカットが用意されているので、これらを使用するか、または任意のエクスポート設定ファイルへのパスを指定することもできます。(詳しくは後のセクションをご覧ください。)

スクリプトの実行

Windows

Windowsではスクリプトを実行するにあたって様々な方法があり、お好きな方法を選べます:

  1. ファイルの上にフォルダをドラッグアンドドロップする。
  2. spine-export.batファイルをダブルクリックしてCMD(コマンドライン)ウィンドウを開き、フォルダのパスを打ち込むか、貼り付けるか、またはフォルダ自体を直接CMDウィンドウ上にドラッグアンドドロップする等して入力する。
  3. コマンドプロンプトからspine-export.batファイルを実行して、フォルダのパスを打ち込むか、貼り付けるか、またはフォルダ自体を直接CMDウィンドウ上にドラッグアンドドロップする等して入力する。
  4. コマンドプロンプトからspine-export.batファイルを実行して、以下のようにフォルダのパスを第一引数として渡して実行する。
spine-export.bat path\to\spine\project\folder

上のいずれかの方法で実行すると、スクリプトは指定されたフォルダを全てのサブフォルダまで含めて検索し、見つかった.spineファイルのエクスポートを実行します。


macOS または Linux

macOSまたはLinuxの場合、spine-export.shを実行する前に実行権限(execute permission)を付与する必要があります。Terminalを開いて、スクリプトが配置されているディレクトリまで移動し、以下のコマンドを使って実行権限を付与してください。

chmod +x spine-export.sh

スクリプトを実行するには、./spine-export.shとエクスポートしたいSpineプロジェクトを含んでいるディレクトリのパスを指定してください。例えば以下のように指定します:

./spine-export.sh /path/to/spine/projects/directory/

スクリプトの実行時にパスを指定しなかった場合は、スクリプトがパスを入力するように促すメッセージを出力します。

実行すると、スクリプトは指定されたディレクトリを全てのサブディレクトリまで含めて検索し、見つかった.spineファイルのエクスポートを実行します。


エクスポート設定

詳細なエクスポート設定を指定するには、エクスポート設定JSONファイルを用意する必要があります。

エクスポート設定の保存

Spineエディター内のエクスポートダイアログの左下に、現在のエクスポート設定をJSONファイルとして保存するためのSave(保存)ボタンがあります。

保存されたエクスポート設定ファイルは".export.json"という拡張子を持ちます。

もしエクスポート設定の中でPack(パック)がチェックされていた場合、テクスチャパッカーの設定もこの.export.jsonファイル内に保存されます。


デフォルトのエクスポート設定

任意のテキストエディターでスクリプトを開いて、DEFAULT_EXPORTの値をご自身の.export.jsonファイルへのパスに変更することで、デフォルトのエクスポート設定を変更できます。例えば以下のように指定できます:

DEFAULT_EXPORT=/path/to/default.export.json

この設定は、見つかったプロジェクトファイルと同階層に .export.json が見つからなかった場合に使用されます。

ただし、出力先については、.export.json ファイルで指定されたパスではなく、Customization Section内のDEFAULT_OUTPUT_DIRに指定された値が使用されることに注意してください。

プロジェクト毎のエクスポート設定

特定のSpineプロジェクトを異なる設定でエクスポートするには、.export.json ファイルを用意してそれをそのSpineプロジェクトと同じフォルダ内に置いてください。例えば、ファイルシステムでの階層は以下のようになります:

<あなたがスクリプトを実行する時にパスを指定するフォルダ>
      ├── 01
      │ ├── skeleton1.spine
      │ ├── skeleton1.export.json
      │ ├── images
      ├── 02
      │ ├── skeleton2.spine
      │ ├── skeleton2.export.json
      │ ├── images
      └── 03
         ├── skeleton3.spine
         ├── skeleton3.export.json
         └── images

.export.jsonファイルの名前はプロジェクトファイルの名前と一致させる必要はありません。

同じプロジェクトを複数の設定でエクスポートする

特定のプロジェクトを異なるエクスポート設定で複数回エクスポートするには、実行したいエクスポートの分だけ .export.jsonファイルを用意してください。例えば、バイナリ形式のスケルトンデータとPNGシーケンスの両方をエクスポートしたい場合、ファイルシステムの階層は以下のようになります:

<あなたがスクリプトを実行する時にパスを指定するフォルダ>
      ├── 01
      │ ├── skeleton1.spine
      │ ├── skeleton1_Binary.export.json
      │ ├── skeleton1_PNG.export.json
      │ ├── images
      ├── 02
      │ ├── skeleton2.spine
      │ ├── skeleton2_Binary.export.json
      │ ├── skeleton2_PNG.export.json
      │ ├── images
      └── 03
         ├── skeleton3.spine
         ├── skeleton3_Binary.export.json
         ├── skeleton3_PNG.export.json
         └── images

デフォルト設定とカスタム設定を混合する

同フォルダ内に.export.jsonファイルが存在しないプロジェクトは、デフォルト設定でエクスポートされます:

<あなたがスクリプトを実行する時にパスを指定するフォルダ>
      ├── 01
      │ ├── skeleton1.spine
      │ ├── skeleton1_Binary.export.json
      │ ├── skeleton1_PNG.export.json
      │ ├── images
      ├── 02
      │ ├── skeleton2.spine <このスケルトンはデフォルト設定でエクスポートされます>
      │ ├── images
      └── 03
         ├── skeleton3.spine
         ├── skeleton3_Binary.export.json
         ├── skeleton3_PNG.export.json
         └── images

スクリプトの改造

これらのスクリプトは、Spineのコマンドラインインターフェースを使用するなどしてどうぞお好きに改造していただいて結構です。 分かりやすいようにこのスクリプト内の全ての処理には細かくコメントが記述されていますが、 READMEファイル にてさらに詳しくこのスクリプトがどのように動いているかが解説されています。


このチュートリアルはお役に立ちましたか?ぜひあなたのフィードバックをSpineフォーラムでお聞かせください!