『あんさんぶるスターズ!!Basic』での Spine 活用術
はじめに
こんにちは、『あんさんぶるスターズ!!Basic』開発エンジニアのK.Yです。
さて、この2つの画像でお気づきの点はあるでしょうか。
それは.....
上側(テレビナレーション収録)は SpriteStudio、下側(TV番組ロケ)は Spine で制作されています。
ということで、この記事は『あんさんぶるスターズ!!Basic』に Spine を導入した際の解説です。
使用しているアニメーションミドルウェア
『あんさんぶるスターズ!!Basic』は Unity を使用して開発しています。
Unity で使用されるアニメーションライブラリ/ミドルウェアには多くのものがあり、特性によって使い分けられているかと思います。
『あんさんぶるスターズ!!Basic』ではキャラクターアニメーションとして以下のミドルウェアを使用しています。
- Live2D - https://www.live2d.com/
- SpriteStudio - https://www.webtech.co.jp/spritestudio/index.html
それらに加えて、今回、キャラクターアニメーションとして Spine - http://ja.esotericsoftware.com/ を使用することにしました。
Spine を採用する際のきっかけ
Spine にはスキンという機能があり、その機能により「キャラクター x 衣装」として組み合わせで表現することができます。
また、Unity 向けランタイム - http://ja.esotericsoftware.com/spine-unity も整備されています。
キャラクターアニメーション AssetBundle 構成
キャラクターアニメーションに関して、端末アプリケーションに配信している AssetBundle の粒度は以下のとおりで、直感と対応しているかと思います。
- キャラクター(ボディ部分)オブジェクト
- 衣装オブジェクト
- モーション情報ファイル
これら3つを組み合わせることで、「ある衣装を着たあるキャラクターがあるモーションを行う」というキャラクターアニメーションを実現しています。
言い方を変えると、「ある衣装を追加したい」という場合に、AssetBundle としては衣装のみの追加で実現できることになります。
キャラクター、衣装、モーションが単一のオブジェクトに含まれている場合、衣装の追加の場合であっても、キャラクター人数分のオブジェクトを必要とし、またそれら全てに既存のモーションを含むモーション情報が含まれることとなります。
衣装コンテンツの追加時に、衣装オブジェクトのみの追加で実現できる点は、Spine を使用する際のメリットと言えるのではないかと思います。
全体 AssetBundle 構成
全体としては「サイン練習」など、あるシーンとしてのアニメーションであり、関連する附属オブジェクトも Spine で制作されています。
例えば、このアニメーションの場合は以下で構成されています。
- 椅子オブジェクト
- キャラクターアニメーション
- キャラクター(ボディ部分)オブジェクト
- 衣装オブジェクト
- モーション情報ファイル
- キャラクター前面オブジェクト(机、ペン、ノート)
椅子は画面上動きはありませんが、キャラクターとの大きさや位置の相対的な関係を Spine Editor 上で調整できるように Spine で制作されています。
利き手対応
キャラクターごとに利き手が異なります。
汎用的に言い換えると、「キャラクターごとにモーションが異なる場合の実装方法」ということになります。
キャラクターモーション情報に、「右利き用モーション、左利き用モーション」の両方が含まれ、また、キャラクター前面オブジェクト(机、ペン、ノート)についても、例えばペンは手に沿った動きをする必要があるので「右利き用モーション、左利き用モーション」が含まれています。
キャラクターに応じた再生モーションをデータ上で指定しています。また、附属オブジェクトはキャラクターのモーションに沿ったモーションが自動的に指定されるようにしています。
まとめ
現在、Spine を特定のゲームプレイ(あんさんぶるスターズ!!Basic > マイルーム >「お仕事」)でのミニキャラクター表現にて使用しています。
全てのゲームプレイでのミニキャラクターで Spine を使用していくということではなく、あくまでゲームプレイ及びコンテンツ表現に応じた検討だと考えています。
これからもアニメーションミドルウェアの枠を超えて躍動するあんさんぶるスターズ!!のアイドル達にご注目ください!!
Discussion