ツクールMV スプライトについて1

概要

スプライトとはなんぞや、なので、スクリプト的なことは無いです。興味が無い場合読み飛ばそう。


スプライトとは

wikipedia:スプライト(映像技術)詳しくはコレを見てね。

ビデオゲームが生まれたばかりの頃のCPUは今ほど強力ではなかったため、絵を画面に出す専用のハードウェアで処理軽減していました。その絵の制御単位がスプライトです。

制御する仕組みとして優秀だったので、ハードウェアで実行する必要がなくなった今でも考え方として残っています。

ツクールもソフトウェアスプライトとしてこれを実装しています。

スプライトの概念

ツクールの素材を触ったことがあれば、以下のような画像が入っているのを見ているかと思います。

キャラクターチップとマップタイルですね。

この画像そのままではただの素材の集合体で、いまいちゲームには使いづらいです。

そこでスプライトの機能を使います。

スプライトは画像に対して表示する範囲を設定し、画像を擬似的に切り出すことが出来ます。マスク処理とか言います、多分。

わかりやすく表示する範囲外(マスク部分)を紫で塗りました。

上記のマスク設定の場合、画面に表示されるスプライトの結果は「横向きキャラクターの画像」になります。

あとは、スプライトが画面のどの位置に表示されるかを設定してやることで、画面上にキャラクターが出ます。やったね。

Q.わかりにくいし、最初から切り出した物を描画すればいいのでは?

確かに単一画像画面に表示する場合、切り出しておいた画像をロードし、画面に直接書いてしまったほうがマスクの分やることが減って楽ちんです。なぜ今もこんな仕組みになっているのでしょうか…理解に苦しみます。解せぬ…。

A.分かりやすい概念に置き換えてみよう

知らない概念なのでわかりにくくなります。置き換えてみましょう。

画面はホワイトボードだとします。

画像を画面に直接描くのは、ホワイトボードに直にペンで絵を描くようなものだとします。

ホワイトボードに描かれた絵の位置を動かすには、一旦消して、別の場所に再度描く必要があります。

これは大変そうです。

実際、描画処理としても大変冗長で、描き直しに手間取っている状態(画像のロード中の表示不能な状態)は、チラツキとしてプレイヤーに見えてしまいます。

対してスプライトは、予め紙に絵を描いておき、透明のクリアファイルに入れているようなものです。

画面に表示する場合は、そのクリアファイルをホワイトボードに貼り付けるイメージですね。

絵の位置を変えたいなら、クリアファイルを移動するだけです。

用意は大変そうだけど用意した後は楽そうです。少なくとも絵を何度も描くよりは。

マスクする位置を変える

スプライトはマスクする位置を変更出来ます。

先程は横向きの画像を切り出しました。

マスクする場所を上にずらしてみます。

すると、スプライトの表示は正面を向いたキャラクターの表示になります。

マスクの位置を変えるのは、ボードに貼ったままのクリアファイルの紙を、別の紙に差し替える作業です。

クリアファイルの位置は変わらないので、絵だけが差し替わります。ボードに都度描き直すよりは楽そうです。既に描画済みの絵を差し替えるだけなのでチラツキも無いでしょう。


以上が、スプライトの基本的な機能の説明になります。

まとめ

スプライトの概念何となくわかったでしょうか。

余談ですが、スプライトの機能が高級になると回転したり出来るようになります。ツクールはかなり高級なスプライトを実装しているので、回転だけではなく、風にたなびく旗などを表現できたりします。

ページのトップへ戻る