コマンドライン実行

コマンドライン実行

できること

SpriteStudio7.2 以降では SpriteStudio 起動時にオプションを指定することでコマンドラインから特定の機能を実行することができます。
SpriteStudio のGUIを起動せず複数のプロジェクトを任意のバージョン向けに連続で変換するようなことが出来ます。

対応しているコマンド

Ver.7.4.2時点では「バージョン指定エクスポート」と「プロジェクトを開く」「プロジェクトを閉じる」コマンドのみ対応しています。
今後も要望に応じて増やしていく予定です。

SpriteStudio の実行ファイル

SpriteStudio の実行ファイルはインストール先(デフォルトは下記)のフォルダにあります。

  • Windows:C:\Program Files\OPTPiX\SpriteStudio 7\SpriteStudio7.exe
  • Mac:/Applications/SpriteStudio7.app/Contents/MacOS/SpriteStudio7

インストール先を変更している場合はそちらを参照するようにしてください。

書式

SpriteStudio7 .sspjファイル名 --nogui --command @コマンドファイル名

 .sspjファイル名には変換対象の sspj ファイル名(パス)を記述します。
--nogui オプションを指定するとSpriteStudioのGUIを表示しません。
--command @コマンドファイル名 を記述することでコマンドファイルの内容を読み取り実行します。

記述例

SpriteStudio7 D:\ssdata\test.sspj --nogui --command @to_ssax.json

 

コマンドファイル

入力するプロジェクトに対して実行する処理をJson形式で記述します。

下記は Ver.4.2 互換の ssax ファイルに変換してエクスポートする一例です。

{
    "version": 1,
    "tasks": [
        {
            "command": "export_project_with_version",
            "args" : {
                "destVersion": "v4_2",
                "outputFolder": "./Exported_7_to_4.2",
                "openOutputFolder": false,
                "dontPerform": false,
                "logWarningOnly": true,
                "removeSetup": true,
                "zRotCurveParamAsRadian": true,
                "reverseZRotSignForNegativeScale": true,
                "createSSWFile": true
            }
        }
    ]
}

各タグについて説明していきます。

“version”:1 を指定します。
“tasks”:実行するコマンドを記述していきます。配列で複数並べると順次実行されます。値には後述の “command”“args” を記述します。

“command” に実行するコマンド名を、“args” に各コマンド固有の引数を指定します。

  • open_project:プロジェクトファイルを読み込みます。
    • filePath:読み込むSSPJファイルパスを指定します。
    • 例) "args": {"filePath": "D:\SSData\Test.sspj"} 
  • close_project:open_project で読み込んだプロジェクトを解放します。
    • 指定できる引数はありません。
  • export_project_with_versionバージョン指定エクスポートを実行します
    • 下記の引数を指定できます。
    • destVersion:出力バージョン:v4_2, v5_8, など文字列で指定します。デフォルト値:v5_8
      Ver.7.4.2 時点では右記を指定できます。“v4_2”, "v5_8", "v6_0", "v6_2", "v6_4", "v6_5", "v6_6_3", "v7_1_0", "v7_1_2", "v7_2_0", "v7_3_0", "v7_3_1"
    • outputFolder:出力先ディレクトリです。相対パスの場合、入力sspjファイルの場所を基準にします。デフォルト値:./Exported
    • dontPerformtrue でファイルに保存せずテストします。デフォルト値:false
    • logWarningOnlytrue で変換失敗時のみログに出力します。デフォルト値:true
    • removeSetuptrue Setup を削除します。Setupにあるキーは各アニメの先頭にキーが無い場合コピーされます。デフォルト値:true
    • zRotCurveParamAsRadian[v4_2指定時のみ] Z軸回転の値にベジェ・エルミート補間が適用されている時のカーブパラメータの縦軸の値をラジアン単位に変換します。デフォルト値:true
    • reverseZRotSignForNegativeScale[v4_2指定時のみ] 負数のスケールによって表裏反転したパーツのZ軸回転の符号を反転します。デフォルト値:true
    • createSSWFile[v4_2指定時のみ]  .ssw ファイルを出力します。デフォルト値:true
    • saveSSWFileAsUTF8[createSSWFile=true指定時のみ] true .sswファイルの文字エンコードをUTF8にします。デフォルト値:false
      ※この場合アニメーションファイルおよびアニメーション名に全角文字が含まれていると16進コードに変換される問題がありますのでご注意ください。
      false では Ver.4 で保存したファイル同様の ShiftJIS となり Ver.4 で正しく読み込むことができます。
      ランタイム側で予期しない不具合を回避するため全角文字をファイル名、アニメーション名に用いないことを強く推奨しています。

連続実行について

同じエクスポート設定を使って、複数のプロジェクトを変換する場合は先述した例)

SpriteStudio7 D:\ssdata\test.sspj --nogui --command @to_ssax.json

のように記述して、入力 sspj ファイルの部分にワイルドカード展開したファイルパスを指定する方法が簡単になります。

プロジェクトごとに異なる設定で連続変換する場合、tasks の値に、open_project, export_project_with_version, close_project の3コマンドを並べて記述していく方法も使えます。

      インラインのコマンド指定

      Jsonファイルの指定ではなくインラインで直接json文字列を渡すこともできます。

      この場合 –-command {\”version\”: 1, \“tasks\”: 以下略… のように記述します。

      Windowsのコマンドプロンプトの場合、が使えないため \エスケープする必要があります。
      この点でWindowsでは PowerShell 上で実行する方が便利です。

       

      既知の問題

      • コンソールに出力されるログはリダイレクトに対応していません。ログファイルにも同じ内容の情報が出力されますのでこちらを参考にしてください。
      • Windows版では、起動直後に1行プロンプトが出力された後にSpriteStudioのログが出力され、処理が完了してもプロンプトに戻りません。このため処理が完了していないように見えますが、実際には完了しています。Enterキーを押すことでプロンプトが現れます。