Skip to content
SpriteStudio edited this page Oct 4, 2021 · 92 revisions

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

ssbpLib v1.3.8

Copyright © CRI Middleware Co., Ltd.

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

OPTPiX SpriteStudio 5 で制作したアニメーションデータを再生するための汎用C++ライブラリです。
C++で作られたゲームやアプリに使用する事ができます。
更新内容はこちらのIssueを参照してください。

ssbpLib自体はファイルの読み込み、描画の機能を持っていません。
ssbpのバイナリデータからアニメーション情報を解析しゲーム側の描画へリクエストを行う部分を担当します。

ssbpファイルの読み込み部分、パーツステータスをもとに描画する部分を環境に合わせて作成していただくことで、プラットフォームに依存せずにOPTPiX SpriteStudio 5 で作成したアニメーションを表示させる事ができます。

ssbpLibは開発を終了しました。

現在開発中のSS6ssbpLibはこちらです。

  • 免責事項
    本ソフトウェアは評価版であり、動作検証、評価を目的として配布しているため、
    何らかの不具合が含まれている可能性があることをご了承いただいた上で、
    ご利用いただきますようお願い致します。

過去バージョンについては対応バージョン一覧を参照してください。

  • 対応するSpriteStudio 5 SDKのバージョン
    対応するssbpファイルのフォーマットバージョンは4です。
    OPTPiX SpriteStudio 5 SDK v1.7.0に含まれるSs5Converterで動作確認をしています。

  • 対応するSpriteStudio 5 のバージョン
    OPTPiX SpriteStudio 5.7.0のエフェクトの挙動と同等になります。
    プレイヤーをアップデートする場合はOPTPiX SpriteStudio 5.7.0でエフェクトファイルの調整、確認を行ってください。

(重要)SS5PlayerとSpriteStudioSDKの互換性について

SpriteStudioSDKに付属されているSs5converterで出力するssbpファイルにはフォーマットバージョンが存在します。
フォーマットバージョンの一覧はこちら
SS5Playerの対応しているフォーマットバージョンを確認し、対応したSs5converterを使用してください。
フォーマットバージョンが異なる場合ssbpファイル読み込み時にエラーとなります。
プロジェクトの都合などでssbpファイルのフォーマットを変更できない場合は動作している組み合わせを継続して使用する事を検討してください。

ssbpLib Ver1.0.x系からVer1.1.x系以降に移行する場合の注意点

  • DXライブラリの3Dを利用したスプライト描画を行ったため画面上の原点位置が変更となりました。
    左下が原点となり上方向が正方向となります。(0,0)にプレイヤーを配置すると左下に表示されます。
    左上を原点とする場合はつぎの方法があります。

    • SS5Player.hに定義された#define UP_MINUSを有効にする。
      • サンプルではDXライブラリの2Dスプライト機能を使用して描画するので再現度が落ちます。(DXライブラリ固有の仕様によるものです)
    • setPosition内で高さから設定座標を引いた値を設定する。
      • _state.y = 画面サイズ - y;のように改造する事で2D表示と座標系を合わせる事ができます。
  • ソースファイルの構成が変更になりました。
    1.0.x系ではcommonフォルダに含まれていたssplayer_matrix.cpp、ssplayer_matrix.hがcommon\Animator\に移動となりました。 単純に上書きしてしまうとssplayer_matrixのソースファイルやリンクが残りビルドが出来なくなります。
    プロジェクトの構成を再設定してください。

  • 一部インタフェースが変更になりました。
    pauseがanimePauseに変更になりました。
    resumeがanimeResumeに変更になりました。

  1. Ss5Converterを使ってアニメデータからssbpファイルを作製します。
    Ss5ConverterはSpriteStudio5SDKに含まれています。
    こちらを参照してください

※コンバーターが更新されていると正しく再生されない可能性があります。最新のコンバーターを使用してください。
※SpriteStudio5本体からエクスポートするssbaファイルはSSPlayer用ファイルとなります。SS5Playerでは使用できませんのでご注意ください。

  1. プロジェクトへファイルを追加します。
    本リポジトリに含まれるSSPlayerフォルダ以下のファイルをプロジェクトへ追加します。 SSPlayerフォルダに含まれるフォルダ構成のまま追加してください。
    ゲーム側で#include "SS5Player.h"を行うとプレイヤークラスを使用する事ができます。

  2. プログラム側へ組み込みます。
    例として sample.sspj を変換して作られた sample.ssbp に含まれるアニメーションを再生する場合は以下の様になります。

#include "SS5Player.h"

// SS5プレイヤーの宣言
ss::Player *ssplayer;
ss::ResourceManager *resman;


//リソースマネージャの作成
resman = ss::ResourceManager::getInstance();
//プレイヤーの作成
ssplayer = ss::Player::create();

//アニメデータをリソースに追加
//それぞれのプラットフォームに合わせたパスへ変更してください。
resman->addData("character_template_comipo\\character_template1.ssbp");
//プレイヤーにリソースを割り当て
ssplayer->setData("character_template1");			// ssbpファイル名(拡張子不要)
//再生するモーションを設定
ssplayer->play("character_template_3head/stance");		// アニメーション名を指定(ssae名/アニメーション名)

//表示位置を設定
ssplayer->setPosition(1280/2, 720/2);
//スケール設定
ssplayer->setScale(0.5f, 0.5f);
//回転を設定
ssplayer->setRotation(0.0f, 0.0f, 0.0f);
//透明度を設定
ssplayer->setAlpha(255);
//反転を設定
ssplayer->setFlip(false, false);

//---メインループで呼び出してください。---
ssplayer->update(dt);					//プレイヤーの更新
ssplayer->draw();					//プレイヤーの描画

//---終了処理で呼び出してください。---
終了処理で resman、player を delete してください。
//SS5Playerの削除
delete (ssplayer);
delete (resman);

その他の再生、制御方法についてはサンプルプログラムや SS5Player.hのPlayer クラスのコメントをご覧ください。

再生、制御方法については SS5Player.h のPlayer クラスのコメントをご覧ください。

DXライブラリでアニメーションを再生するサンプルプログラムを付属していますので移植する際の参考にしてください。

VisualStadioでDXライブラリの設定を行い、sssample.cppファイルと、SSPlayerフォルダをプロジェクトに追加してください。
Resourcesフォルダの中身を実行ファイルと同じ場所か、デバッグ>作業ディレクトリに設定したフォルダにコピーしてください。

Visual Studio Community 2015、DXライブラリ3.17aで動作を確認しています。
ssbpとpngがあれば再生する事ができますが、Resourcesフォルダにsspjも含まれています。

samples\DXLibrary\basic
フォルダにサンプルプログラムが含まれています。

ssbpLibに含まれる、SS5PlayerPlatform.cpp には環境に合わせて処理を作成する必要のある関数がまとめられています。

  • sspjファイルの読み込み
  • テクスチャの作成、解放
  • パーツの表示

を作成環境に合わせてカスタマイズしてください。

  • Y座標の原点について
    サンプルでは左下を原点(座標0,0)として上方向がプラスとなっています。
    上方向をマイナスとして描画する場合、 void Player::setPosition(float x, float y)内で、Yに画面の縦サイズから引いた値を設定する。
    SS5Player.hに定義されている#define UP_MINUSを有効にしてください。(DXライブラリの2D機能で描画します)

  • 文字コードについて
    ソースコードはUTF-8(CRLF)で記述されています。使用する環境に合わせて文字コードを保存しなおして使用してください。
    Visual Studio Community 2015ではビルドできますがVisual Studio 2013以前では文字コードを変換する必要があるようです。

  • カラーブレンドについて
    サンプルではカラーブレンド乗算のみ対応しています。それ以外のカラーブレンド方法を利用する場合は独自のシェーダーを作成しないと実現できないと思います。
    サンプルではシェーダーの部分はコメントになっているため、作成する場合はssShader_frag.h、CustomSpriteのコメントとなってるシェーダー処理を参考にしてください。

  • XY回転について 内部的には座標の計算は行っていますが描画に反映させていません。

  • モーションブレンドについて
    モーションブレンド再生を行うためには遷移前、遷移先のアニメーションの条件を満たす必要があります。
    必要な条件はこちらを参照してください。

  • 互換性設定について
    アニメーションのプロジェクトの設定>互換性の項目は次にチェックをつけて使用してください。

    • エフェクト機能を使用するをオン
    • それ以外の互換性設定をオフにする
  • DXライブラリでの色合いについて
    不透明度が設定されたパーツの色合いがSpeiteStudio上と異なります。
    適用している不透明度の値は同じようなので、色合いの違いについてはDXライブラリ特有の仕様となります。

Players フォルダの ssbpLib フォルダの中にソースファイルとヘッダファイルがあります。
任意のプロジェクトに追加して使用してください。
各バージョンのダウンロードはこちら

Issuesページの質問だけ表示する場合はこちら
Issuesページの不具合だけ表示する場合はこちら
Issuesページの要望だけ表示する場合はこちら
同じ内容の質問があった場合、何か追加情報がある場合はコメントに書いて下さい。

質問、不具合、要望を投稿する方法

  • 投稿前に必ずお読みください

    • (重要)投稿した内容について
      投稿した内容は全て一般に公開されますので個人情報や機密情報を記載しないようにご注意ください。
    • 質問をIssueへの書き込むにはGitHubのアカウントが必要です。
      アカウントをお持ちでない場合、こちらのGitHubチュートリアルを参考にアカウントを作成してください。
    • 別のプレイヤー、別のツールの質問はそれぞれのページへ投稿してください。
  • 投稿する
    Title欄に先頭にバージョン番号をvX.X.Xとつけて概要を記入し、Leave a comment に詳細を記入します。
    [Submit new issue] ボタンを押して完了です。後ほど担当者が確認しコメントいたします。

  • 再現データの添付が必要な場合

    • ウェブテクノロジの専用メールアドレス [email protected] に添付して送付してください。
  • クリックするとメーラーが起動します。

  • ※送信する前に宛先が上記アドレスと相違ないかご確認ください。

  • ※重要なデータを含んでいる場合は、.zip を暗号化し、パスワードは別途お知らせください。

旧バージョンのドキュメントについて

SpriteStudioArchiveをご参照ください。

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

株式会社CRI・ミドルウェア
https://www.cri-mw.co.jp/
Copyright © CRI Middleware Co., Ltd.

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

  • SpriteStudio, Web Technologyは、株式会社ウェブテクノロジの登録商標です。
  • その他の商品名は各社の登録商標または商標です。