[ 前へ | 目次 | 次へ ]

スプライト描画

レンダラーが描画を行う方法には、これまでに扱ってきた直接描画の他に、 スプライト描画という方法が存在します。ここでは、このスプライト描画について説明します。


スプライト描画

スプライト描画とは、本来ゲームなどでの2DCG 全盛期に、ハードウェアで実装されていたスプライト描画という機能を、 ソフトウェア的に実装したものです。 スプライト描画の概念は、アニメ映像の制作過程における、 セル画の概念と非常によく似ています。 具体的には、まず描画する図形や画像の数だけ、 スプライト(またはスプライト)と呼ばれる「層」をレンダラーに登録しておきます。 そして、描画時にそれらのスプライトをレンダラーで重ねて合成し、1 枚の絵を生成します。

スプライト描画が特に威力を発揮するのは、 アニメーション処理などを行う時です。 例えば、アニメーションの中に、動く図形(や画像)と動かない図形があったとしましょう。 この場合、1 回の画面に表示する絵を直接描画で用意すると、まず背景をクリアし、 そして全ての図形をdraw系関数で描画しなければなりません。そこでスプライト描画を使用すると、 最初に全ての図形をスプライトとして登録しておき、あとは毎回の描画時に、 動かしたいスプライトだけを動かせば済むので、プログラムの記述が簡単になりますし、 処理速度の面でも有利となります。

スプライト描画と直接描画は、組み合わせて使用する事も可能です。 それにはレンダラーを複数用意し、あるレンダラーの描画したグラフィックスデータを、 別のレンダラーにスプライトとして登録する、またはdrawGraphics で描き込むなどの方法を使用します。 適材適所でそれぞれの描画方法を組み合わせる事で、効率的なプログラミングが可能となります。

スプライトの基本操作

直接描画と異なり、スプライトはプログラム実行中に動かしたり、 色を変えたりなど、動的に活用します。 そこで、具体的なスプライトの生成を扱う前に、 スプライトを動的に活用するための基本操作について述べておきます。

スプライトの生成

実際のスプライトには様々な種類のものがありますが、それらは全てnew〜Sprite 関数で生成し ます。〜の部分にはスプライトの種類に固有の名称が入ります。具体的な生成は次章で扱います。

- 関数仕様 -
void new〜Sprite ( 〜 )

この関数は、スプライトを生成し、そのスプライトに固有の識別番号を返します。

スプライトの登録

生成したスプライトは、レンダラーに登録しなければ描画されません。 レンダラーにスプライトを登録するには、mountSprite 関数を使用します。

- 関数仕様 -
void mountSprite ( int SpriteID, int rendererID )

最初の引数SpriteID には、登録するスプライトのスプライトID を指定します。 スプライトID とは、スプライトに割り振られる識別番号で、 後に述べるスプライト生成関数が戻り値として返します。 続く引数rendererID には、登録先レンダラーのID を指定します。

スプライトの描画

レンダラーにすべてのスプライトを登録したら、 それらのスプライトを重ね合わせて合成し、1 枚のグラフィックスに描画する必要があります。 これには paintGraphics2D 関数を使用します。

- 関数仕様 -
void paintGraphics2D ( int rendererID )

引数のrendererIDには、レンダラーのIDを指定します。 この関数をコールするまで、スプライトの合成は行われないのでご注意ください。



スポンサーリンク



スポンサーリンク

この階層の目次
お知らせ

Vnanoのスクリプトエンジンアーキテクチャ解説1: 全体像
2019年05月28日 - RINEARNでは現在、 アプリケーション組み込み用スクリプトエンジン「 Vnano 」を、オープンソースで開発中です。今回は、このスクリプトエンジンのアーキテクチャ面を掘り下げて解説します。

リニアンプロセッサー nano の先行開発版やソースコードリポジトリを公開
2019年04月16日 - オープンソースで開発中の小型プログラム関数電卓ソフト、「 リニアンプロセッサー nano 」の先行開発版やソースコードリポジトリを公開しました。概要と使用方法、ビルド方法などについて解説します。

各ソフトウェアの最新版を一括でリリース、OpenJDKのJava実行環境(JRE)に対応
2019年03月06日 - RINEARNでは3月6日に、主要なソフトウェアの最新版を一括でリリースしました。今回のアップデートには、以前お知らせした、OpenJDKで生成したJREへの対応が含まれています。その概要等をお知らせします。

新着
連番ファイルから3Dグラフをアニメーション描画するツール

フォルダ内の連番データファイルを読み込み、3Dグラフを高速で連続描画して、アニメーションさせるツールです。
2019年06月03日
連番ファイルから2Dグラフをアニメーション描画するツール

フォルダ内の連番データファイルを読み込み、2Dグラフを高速で連続描画して、アニメーションさせるツールです。
2019年05月24日
[公式ガイドサンプル] 立体モデルを生成して3D空間に配置する

「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを生成し、3D空間に配置します。
2019年05月21日
[公式ガイドサンプル] ポリゴンを生成して3D空間に配置する

「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体の基本的な構成要素となるポリゴンを生成し、3D空間に配置します。
2019年05月20日
[公式ガイドサンプル] CSVファイルにデータを書き出し&読み込んで、複雑な3次元曲面のグラフを描く(魔法陣形)

「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルにデータを書き出し、さらにそれを読み込んで、魔法陣のような3次元曲面のグラフを描画します。
2019年05月17日
開発元Twitterアカウント

スポンサーリンク