バイナリファイルのフォーマット - SpriteStudio/SpriteStudio6-SDK GitHub Wiki

注意

情報が古いので、この内容は参考にしないでください。

概要

  • 変換時に指定した sspj ファイルと登録されているssae, ssce すべての情報を1つにパックします。
  • sspj,ssae,ssce ファイルが持つ情報のうち再生に必要な情報のみを含んでいます。
  • アニメーションの補間計算はコンバート時に行われます。(実行時計算にも対応予定)
  • 座標値はグローバル化せずローカル値のまま保持します。

詳細

  • ファイル構造

    ssbpファイルは次の情報で構成されています。 SS5PlayerData.hにssbp解析用の構造体が定義されています。

    • プロジェクト設定

      • struct ProjectData
      • dataId        ssbpファイルデータ確認用のID
      • version       ssbpファイルのバージョン
      • flags        予備
      • imageBaseDir    リソースパス、コンバート時の引数で設定する
      • cells        セル構造体へのポインタ(配列の先頭アドレス)
      • animePacks     アニメパック構造体へのポインタ(配列の先頭アドレス)
      • numCells      セルの数
      • numAnimePacks    アニメーションの数
    • セル

      • struct Cell
      • name        セル名
      • cellMap;      セルマップ構造体へのポインタ(配列の先頭アドレス)
      • indexInCellMap   セル番号
      • x          セル画像内の開始X座標
      • y          セル画像内の開始Y座標
      • width        セルの幅
      • height       セルの高さ
      • reserved      予備
    • セルマップ

      • struct CellMap
      • name        セルマップ名(ssce名)
      • imagePath      テクスチャファイル名
      • index        セルマップ番号
      • reserved      予備
    • アニメパック

      • struct AnimePackData
      • name           モーション名
      • parts           パーツ構造体へのポインタ
      • animations;     アニメ(モーション)構造体へのポインタ
      • numParts         パーツ数
      • numAnimations      モーション数
    • アニメ

      • struct AnimationData
      • name           モーション名
      • defaultData       パーツの初期値(配列の先頭アドレス)
      • frameData        各フレームのパーツデータ(配列の先頭アドレス)
      • userData         ユーザーデータ(配列の先頭アドレス)
      • labelData        ラベルデータ(配列の先頭アドレス)
      • numFrames        総フレーム
      • fps           再生スピード
      • labelNum        ラベルデータの数
    • パーツ初期値

      • struct AnimationInitialData
      • index           パーツインデックス、SS上のフレームコントロールの順番
      • dummy           バイナリデータ出力用のアライメントダミーデータ
      • flags           非表示、X反転、Y反転フラグ
      • cellIndex         セルインデックス
      • positionX         X座標初期値
      • positionY         Y座標初期値
      • opacity          透明度初期値
      • anchorX          原点Xオフセット+セルに設定された原点Xオフセット初期値
      • anchorY          原点Yオフセット+セルに設定された原点Yオフセット初期値
      • rotationX         X回転初期値
      • rotationY         Y回転初期値
      • rotationZ         Z回転初期値
      • scaleX           X拡大率初期値
      • scaleY           Y拡大率初期値
      • size_X           Xサイズ初期値
      • size_Y           Yサイズ初期値
      • uv_move_X         UV X移動初期値
      • uv_move_Y         UV Y移動初期値
      • uv_rotation        UV回転初期値
      • uv_scale_X         UV Xスケール初期値
      • uv_scale_Y         UV Yスケール初期値
      • boundingRadius      当たり半径初期値
    • 各フレームのパーツデータ

      • パーツデータは可変長で初期値と異なるデータのみが格納されています。
      • ヘッダ部
        • パーツインデックス
        • フラグ
          • フラグにはビット対応でどのデータが含まれるかが入っています。
          • フラグの内容によってファイルからデータを読むか、初期値からデータを読むかを決定する。
          • 詳細はSS5Player cocos2d-xに含まれるSS5Player.cppのvoid Player::setFrame(int frameNo)を参照
    • ユーザーデータ

      • struct UserData
      • partName       このユーザーデータが設定されているパーツ名
      • frameNo       このユーザーデータが設定されているフレーム
      • flags        含まれるデータの種類
      • integer       整数
      • rect[4]       矩形データ
      • point[2]       座標データ
      • str         文字列
      • strSize       文字列のサイズ
    • ラベルデータ

      • struct LabelData
      • str         ラベル名
      • frameNo       ラベルを設定したフレーム