What is a sprite sheet? - Performance
We protect your privacy. Click above to load the video and player from youtube.
スプライトシート すべてのゲーム開発者が知るべき事実-

パート2ではスプライトシートを使うことでどのようにしてゲームのパフォーマンスを向上させることができるのかを学びます。
まずはOpenGLを紹介します。 彼はゲームシーンとフレームバッファーと呼ばれる場所を描く画家です。
もうひとつの重要な要素はもちろんゲーム自身です。
スプライトシートではなくスプライトを個別に使う場合に何が起こるのかを見ていきましょう。


まずゲームはOpenGLにどのスプライトを描くのかを伝える必要があります。
次にスプライトのどの部分を描くのかも伝える必要があります。
最後にフレームのどこにスプライトを描くのかを伝える必要があります。
この情報をもとにOpenGLはシーンを描きはじめます。 しかし、OpenGLが忙しくしているのに対し、ゲームは次のコマンドが処理できるようになるまで待たなくてはなりません。
この一連のやり取りはすべてのスプライトが描画されるまで繰り返されます。 つまり、この処理が速いほどゲームのフレームレートも高くなるのです。
これまで見てきたように、ゲームとOpenGLのあいだには多くのコミュニケーション費用が発生しています。 これが理想の方法でないことは明らかです。


より良い方法は、前の例で作成したようなスプライトシートを使うことです。 そのためには、スプライトバッチやスプライトアトラスと呼ばれる追加モジュールがゲームに必要になります。 このモジュールはスプライトを描画するために必要なすべての情報をひとまとめにします。 スプライトシートへの参照、これからシーンに描き写すスプライトシートの各パーツを含む描画元の座標リスト、シーン上でスプライトが描画される位置の座標リストです。
これでゲームとOpenGLのあいだのコミュニケーションはかなりシンプルになりました。 スプライトシート、変換元の座標リスト、描画先の座標リストを用意するだけです。
こうして、OpenGLは余計にゲームを中断させることなくシーンを描画できるようになり、ゲームはプレイヤーの入力処理やオブジェクトの移動、衝突判定処理のような仕事に集中することができるようになりました。


これで、スプライトシートを使うとどれだけいいことがあるのか分かってもらえたかと思います。
スプライトシートは、メモリ使用量を減らし、描画処理速度を上げ、フレームレートを高く保つことを手助けしてくれます。
さあ、スプライトシートを使いはじめましょう。
codeandweb.com/texturepackerでお待ちしております。
Thanks to Japanese Nobuhito Kurose for the translation! The transcript is also available in English