SpriteKitでテクスチャアトラスを用いたアニメーションの向きを変える

参考サイトの素材迄利用させて貰って 本ブログ2016年6月28日の記事 では取り敢えずiPhone上で動かし得たアニメーションでしたが、 その際参考にするばかりかアニメーション用画像素材迄提供を受けた Ray Wenderlich の2013年9月24日の記事 アニメーションとテクスチャアトラス では更に関連情報が記載されています。 今回はSpriteKitでテクスチャアトラスを用いたアニメーションを採用するに当たって理解を深めるために 其の内容を実践してみました。

因みに現在では Ray Wenderlich では此処で参考にした日本語の情報 は削除されていますが なお英語に依る当該ページが用意されています。 ただし此処で参考にした際は Objective-C に於ける情報でしたが現在は現状を踏まえ Swift に置き換えられた情報が提供されています。

左右にアニメーションするウパンダ
スポンサーリンク
日付:2014年4月2日
開発機:MacBook Air(11-inch, Mid 2013)
MacOSバージョン:OS X 10.9.2
Xcodeバージョン:5.1
言語:Objective-C
主関連アプリ:うさ犬が行く
Sprite Kit Animations and Texture Atlases in Swift

上記参考サイトに於いて今回注目すべきは Changing Animation Facing Direction です。 以前日本語ページが提供されていた際には 動きに基づいてアニメーションの向きを変更する 項目として用意されていました。

此の項目に於いて要諦は以下の一点に尽きます。 アニメの向きを変えるにはインスタンスのxScaleに-1を掛ければ良い のです。 此の情報に接した際には目から鱗にて、 脳裏に曖昧模糊、漠然と考えていたのはアニメノードのオブジェクト自体に 方向なるメソッドを保持しており其処を任意に切り替える如き感覚の手法でしたが、 実際にはアニメノードのプロパティの一つに過ぎない 画像サイズの縮尺を弄れば良いと言う教示だったのでした。

参考サイトでは飽く迄サンプルとしてですので 実際の開発ゲームに活かすには足りない部分が多いのですが、 其処からは多くの知見を得られるであろう 画面をタッチした際にキャラクターが進行方向を変えるアニメーションが紹介されています。

画面タッチのメソッドとしてSpriteKitに標準のメソッドが Objective-Cでは以下の如く用意されています。 2016年現時点では参考サイトにはSwiftで参考コードが用意されていますのでご注意ください。

  • 画面へ指が触れた時
    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
  • 画面から指が離れた時
    -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

即ち、画面へ指が触れた最初と最後が検出されそれぞれにメソッドが割り振られているのですが 参考サイトでは画面から指が離れた瞬間を検出して アニメーションの向きを変える後者が選択されており、 此れはWindowsやMacなどのデスクトップOSで通常良く見られる マウスのクリックに於ける挙動と同様でしょう。 参考サイトは意識せずともゲームとしてのUIを軽く示唆しているかのように感じられます。

Going USAINU(邦題: うさ犬が行く)
無料:カテゴリ: ゲーム: 4+ 評価
バージョン: 3.21
リリース: 2015年9月14日
更新: 2022年3月7日
サイズ : 19.7 MB
互換性: iOS 14.4 以降のiPhone、iPod touch に対応。および、macOS 11.0以降とApple M1 チップを搭載したMac に対応。