スポンサーリンク

iOS開発

【SpriteKit】SKActionのイージングを簡単にカスタマイズするライブラリ「SpriteKit-Easing」

【SpriteKit】SKActionのイージングを簡単にカスタマイズするライブラリ「SpriteKit-Easing」

SKActionではtimingModeプロパティでイージングの種類を指定できますが、Linear、EaseIn、EaseOut、EaseInEaseOutと、ごく基本的な指定しかできません。

もっと、「ズバッ!」と動かしたり、「ふわっ」と止めたり、イージングに強弱をつけたい時に使えるOSSライブラリ「SpriteKit-Easing」を紹介します。

>>[GitHub] buddingmonkey/SpriteKit-Easing

イージングカーブの種類

SpriteKit-Easingには、11種類のイージングカーブが用意されています。

  • Linear
  • Quadratic
  • Cubic
  • Quartic
  • Quintic
  • Sine
  • Circular
  • Expo
  • Elastic
  • Back
  • Bounce

このような、イージングカーブの種別に聞き覚えがない人は、「Easing Function 早見表」を参考にすると良いでしょう。

>>Easing Function 早見表

イージングファンクション早見表SS
それぞれのイージングカーブが視覚的に表されています。
カーブにカーソルを合わせると、実際にアニメーションでイージングを再生してくれます。

11種類のイージングカーブに加え、3種類のイージングタイプを選択することで、30種類以上のイージングを作成することができます。

  • EaseIn: ゆっくり → はやい
  • EaseOut: はやい → ゆっくり
  • EaseInEaseOut: ゆっくり → はやい → ゆっくり

基本的な使い方

アニメーションは移動、回転、スケール、アルファ(フェード)の4種類。
それぞれに、To指定とFrom指定の各2つのメソッドが用意されています。

ビルドエラーが出る場合の対処

ライブラリをプロジェクトに取り込むと、プロジェクトの構成によってはビルドエラーが発生することがあります。

easing.cのファイルタイプが「Default – C Source」となっているなら、これを「Objective-C Source」に変更してみてください。

アニメーションを連続させる場合はスタート値に注意

アニメーションを連続させる場合、ターゲットノードを指定した時点での値がスタート値として使われることに注意してください。

swift & iOS8ならば「Sprite Kit Utils」という選択肢もあり

Sprite Kit Utils」というライブラリにも、様々なイージングが用意されています。

[GitHub] raywenderlich/SKTUtils

イージングの他にも様々な機能があり、Swift版とObjective-C版の両方が用意されていますが、イージングにはtimingFunctionを使用しているようです。
このプロパティはiOS8で実装されたもので、iOS7には対応していません。

スポンサーリンク