LoginSignup
2
1

More than 5 years have passed since last update.

Spineランタイム:アニメーション再生タイムライン(トラック)の構成

Last updated at Posted at 2016-07-25

以前にFlashとSpineのタイムラインの違いについて簡単にまとめましたが、Spine側をもう少し詳しく掘り下げてみようと思います。
以下、Spineツール4.3、ランタイムはSpine-Stralingの4.3を利用した場合で解説しますが、どの言語ランタイムでも基本は同じです。

Spineランタイムのタイムラインは映像編集ソフトのそれに似ている

Spineランタイムでは1キャラクターに対して、アニメーションの再生を同時にいくつでも行う事ができ、並列にアニメーションタイムラインが並んでいる状態になります。(対して、Spineツール上のタイムラインは1本です)。それぞれのタイムラインはトラックと呼ばれ、トラックは1つづつ個別のスピードで再生できます。各トラックのアニメーションで同じパーツを操作していても、うまい具合に全てが合成されて再生されます。

アニメーション再生命令の第一引数にはトラック番号が指定できます。これで複数のアニメーションを同時に制御できます。アニメーションの停止命令のclearTrackもトラック番号が指定できます。

sample.as
var trackIndex:int = 0; // これがトラック番号
// 再生
var animName:String = "hoge";
var loop:Boolean = false;
animationState.setAnimationByName(trackIndex, animName, loop);
// 停止
animationState.clearTrack(trackIndex);

その他、トラック番号が指定できる命令はいくつかあります。

SpineTimelineFig1a.png

連続アニメーションとアニメーション切り替え時のMixing

addAnimationなどの命令で連続アニメーションを指定した際は、指定トラックに複数のトラックデータが並ぶ状態になります。トラックデータ同士の合間に間を設けることも、それぞれのアニメーションをクロスフェードさせるような感じで、スムーズに切り替えることもできます。

この、アニメーションのmixingについては別途投稿にまとめます。

まとめ

アニメーションスピードの個別で調整や、合成するアニメーションの動的な追加など、Spineは他ツールと比較して、高度で柔軟な作業ができると言えます。弱点としては現在アニメーションツール側では複数のアニメーションを合成再生プレビューする機能が(おそらく)ない点です。しかし、ここはそのうち改善されると思いますし、SkeletonViewrを立ちあげつつ作業することで、ある程度カバーできそうです。

今回は以上です。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1