リソースツリーに登録されたスプライトはオブジェクトの外観としても利用できますが、同時にコリジョン(衝突判定)用のマスクも設定されています。ここではスプライトの設定に関して「原点」と「コリジョンマスク」に焦点を当てています。

このエントリーをはてなブックマークに追加

アニメーションについて

GM:Studio はスプライトに一枚絵としての静止画だけではなくアニメーション機能を持たせることができます。

アニメーションと言っても現在は複数の実装があって、2D に関して伝統的には連続した静止画像=ラスタ画像を一定の間隔で切り替えるとキャラクターなどが動いて見える、いわゆる「パラパラ漫画」方式が一般的にはすぐ思い浮かぶかと思われます。

CG アニメーションではこれ以外の実装もあって、特にゲームでは SWF のようにベクトル画像を用いて、これを時間軸に沿った移動量や回転・変形で動かして見せるものもあります。

GM:Studio はまだ限定的ながら SWF のようなベクトル画像の読み込みにも対応しています。

さらに進化した現在、ゲームではボーンアニメーションが利用されるケースが増えてきています。3D のゲームで複雑なモーションは IK(インバースキネマティック) のような CG アニメーション用のリギング機能を当たり前に使っていますが、2D にも IK を利用した仕組みはあり、その代表的なソフトが Spine で、GM:Studio は Spine 形式のボーンアニメーションに標準機能で対応しました。

Origin(原点)について

静止画像だけを扱う場合は、画像の枚数があまり多くならない前提であれば Sprites の Origin 設定についてはあまり注意する必要が無いので楽なのですが、アニメーションさせる前提だと Sprite Origin の XY 位置については統一した仕様で対応したほうが良い。

    GMStudio_1.4_sprite_properties_animation_files

アニメーションさせる場合 Origin は Center が良い

ロードするスプライトの種類によっては最初から原点が中央(center)で固定されて変更できないものもあります。

Spine 形式は原点がデフォルトで中央に設定されています。原点を中央に定めることで Flip (フリップ、もしくはミラー、いわゆる左右反転)処理に都合の良い状況が作れます。

原点が中央以外の場合、このスプライトを左右反転するとコリジョン(衝突判定)用の Bounding Box 位置も左右反転に追従するため、衝突判定処理にひと手間生じてしまう可能性があります。

具体的には Origin X/Y 0,0 だった場合、原点はスプライトの左上にあるということなのですが、このスプライトの横サイズが 100 ピクセルだった場合、フリップによって原点の位置は変わらないけれど Bounding Box も反転するためフリップする前は衝突判定が無かったのに、フリップしたらいきなり衝突が…というより壁にめり込む状態が生じてしまいます。

    GMStudio_1.4_sprite_flip_bounding_box_test

Draw イベントをカスタムすれば対応できるけど

ひと手間かけるよりも、最初からアニメーション用はスプライトの原点を中央にして、その前提でゲーム仕様を作った方が混乱が少ない。左右反転を簡単に実装するためには原点が中央にあったほうが楽。

次のページへ

“超”初心者用チュートリアル:記事一覧

Leave a Reply

Your email address will not be published. Required fields are marked *