見出し画像

スプライトについて忘備録


スプライトとアトラス


複数のテクスチャを1つに並べてまとめると事をスプライトやアトラスと言うことがあります。(私はテクスチャをパックすると言ってました)
これらは過去の経緯から来ているのでちょっとメモしておきます。
ゲームエンジン自体にテクスチャをパックする機能がついていたり、アドオンでモデルやマテリアルをマージする際にテクスチャもいい感じにパックされるなど現在はさまざまな環境があります。従って、今後必ずしも、ゲームのCGデザイナーにとってずーっと必要なの作業なのかはわかりませんが、概念としては知っておいた方が良いのでまとめておきます。

  • スプライト・・・連番アニメなどのキャラクターを背景の上にハードウエア的な機能によって画面に重ねて表示する手法。
    このスプライトは、ファミコンの頃の時代に始まる、当時のゲームに必須の機能です。
    スプライト=妖精 初期のゲーム機でビデオメモリの上に重ねて表示するキャラクタのパタンアニメーションを妖精になぞらえてスプライトと呼んでいたようです。
    現在は、当初のハードウエア的に重ねるという意味は余り意識されていないようですね。同じサイズの連続したアニメーション用のコマを並べて、1個のテクスチャにする事をさして、スプライトといっているようです。

  • アトラス・・・単一のテクスチャに複数のテクスチャをパックする手法。
    テクスチャアトラスへのパック自体は、通常のWEBサイトを構築する際に、描画高速化を実現するために必須な工程です。
    アトラス=世界地図 国々が異なる形を個々のテクスチャに模した呼称なのでしょうか。
    私の感覚としては、スプライトの場合、基本的には同一のサイズのテクスチャを扱いますが、アトラスの場合は異なるサイズをパックしたものを指すように感じています。

    両者は対立した概念ではないんですよね。

    あと、アトラスはテクスチャの座標を示すRECT情報(なんらかのテキストファイル)が別に必要です。たいていはパックするツールで同時に生成されます。
    スプライトも同様のRECT情報が必要になりますが、私の場合はファイルネームに符号を付けて順番や枚数を指定していました。アスキー(低ドットのスクリーンフォント)なんかはみんなそうですね。今はゲームエンジン側で指定する項目があるようです。

    ゲームが重くて困ったら、スプライトを思い出してください。

    歴史的記述:「スプライト」にまつわる疑問

単独のツール

TexturePacker(有料)
前職で使用していました。ライセンス管理が面倒だったな~

Free Texture Packer

並べるだけならこれで良いかもね。一通りの作業は可能。(2011/11/25確認)

◯他にも探せばけっこうあります

※並べる自由度はFree Texture Packerの方が高い。アニメーションプレビューは簡単でわかりやすい(2011/11/25確認)

【Photoshop】複数の画像を「自動処理」で一度に並べる方法

※境界にアンチエイリアス入るし、色も補正されているみたいで、スプライトシート作成には使えない。タイトルの画像がそれです。(2011/11/25確認)

以下はゲームエンジンと組み合わせてなので来年考える

【Adobe animate】スプライトシートまたはテクスチャアトラスを作成して、モバイルアプリおよびゲームエンジン用のアニメーションを書き出します。プラグインを使用して、テクスチャアトラスを Unity またはお気に入りのゲームエンジンに読み込ませます。

【Unity】SpriteをパックするSpriteAtlasの使い方

Unityだけでテクスチャのアトラス化ができるすごい奴+複数のメッシュを一つに結合できるすごいやつ

https://support.borndigital.co.jp/hc/ja/articles/115002132233-Houdini-Game-Dev-Tools-Texture-Sheets%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B



この記事が気に入ったらサポートをしてみませんか?