スプライト(コンピュータグラフィックス)

Broforceの戦車とロケットのスプライト

コンピュータグラフィックスにおいて、スプライトとは、より大きなシーン(主に2Dビデオゲーム)に統合される2次元ビットマップです。元々、 「スプライト」という用語は、ハードウェアによって背景と合成された固定サイズのオブジェクトを指していました。[ 1 ]その後、この用語はより一般的に使用されるようになりました。

ハードウェアスプライトを搭載したシステムには、1970年代と1980年代のアーケードビデオゲーム Atari VCS(1977年)、ColecoVision(1982年)、ファミコン(1983年)、Genesis/Mega Drive(1988年)などのゲームコンソール、そしてTI-99/4(1979年)、Atari 8ビットコンピュータ(1979年)、Commodore 64(1982年)、MSX(1983年)、Amiga(1985年)、X68000(1987年)などの家庭コンピュータ含まますハードウェアによってサポートされるスプライトの数、各スプライトのサイズと色、スケーリングやピクセル単位の重なりの報告などの特殊効果は異なります。

スプライトのハードウェア合成は、各スキャンラインがブラウン管などのビデオ出力デバイス用に準備される際に、メインCPUの介入やフルスクリーンのフレームバッファを必要とせずに行われます。[ 1 ]スプライトは、ハードウェア合成プロセス中に使用される属性を設定することで、配置や変更が可能です。スキャンラインごとに表示できるスプライトの数は、システムがサポートするスプライトの総数よりも少ないことがよくあります。例えば、Texas Instruments TMS9918チップは32個のスプライトをサポートしていますが、同じスキャンライン上に表示できるのは4個だけです。

現代のコンピューター、ビデオゲーム機、モバイルデバイスのCPUは、特別なハードウェアの支援なしにビットマップをフレームバッファに描画できるほど高速です。さらに、GPUはCPUと並行して、膨大な数の拡大縮小、回転、アンチエイリアス、半透明などの高解像度画像を レンダリングできます。

語源

1979年のテキサス・インスツルメンツ社TMS9918ビデオディスプレイプロセッサの2人のエンジニアのうちの1人であるカール・グッタッグによると、スプライトという言葉のこの使用は、TIのマネージャであるデビッド・アクリーから来ています。[ 2 ] [ 3 ]また、1970年代後半にはテキサス・インスツルメンツ社のダニー・ヒリスもこの言葉を使用していました。 [ 4 ]この用語は、スプライトが幽霊や神話のスプライトのように、背景画像を上書きせずにその上に「浮かぶ」という事実に由来しています。

特にスプライトが一般的になる 前は、ハードウェア メーカーによっては異なる用語を使用していました。

プレイヤー/ミサイルグラフィックスは、 Atari社がAtari 8ビットコンピュータ(1979年)およびAtari 5200コンソール(1982年)のハードウェアスプライトに使用した用語です。 [ 5 ]この用語は、キャラクター(「プレイヤー」)と、同じ色を共有する小さな関連オブジェクト(「ミサイル」)の両方に使用されていることを反映しています。初期のAtariビデオコンピュータシステムや一部のAtariアーケードゲームでは、プレイヤーミサイルボールが使用されていました。

スタンプは1980年代初頭に、ミズ・パックマンを含むいくつかのアーケードハードウェアで使用されました。[ 6 ]

Movable Object BlockMOB)は、 MOSテクノロジー社のグラフィックチップに関する資料で使用されていました。MOSチップの主なユーザーであり、チップメーカーとしての存続期間の大半においてMOSを所有していたコモドール社は、コモドール64では スプライトという用語を使用していました。

OBJ (オブジェクトの略称)は、ファミコンスーパーファミコンゲームボーイの開発者マニュアルで使用されています。スプライトの属性と座標を格納するビデオRAM領域は、 OAM (オブジェクト属性メモリ)と呼ばれます。これはゲームボーイアドバンスニンテンドーDSにも適用されます。

歴史

アーケードビデオゲーム

スプライトの使用はアーケードビデオゲームに端を発する。ノーラン・ブッシュネルは、最初のアーケードビデオゲーム『 Computer Space 』(1971年)を開発した際に、この概念を考案した。技術的な制約から、初期のメインフレームゲーム『Spacewar!』 (1962年)は、小さな動きごとに画面全体をリフレッシュする必要があり、これを応用することは困難だった。そこでブッシュネルは、ゲームの各要素を専用のトランジスタで制御するという解決策を考案した。ロケットは基本的に、背景とは独立して画面上を移動するハードワイヤードなビットマップであり、これは画面イメージをより効率的に生成するための重要な革新であり、スプライトグラフィックスの基礎となった。[ 7 ]

プレイヤーキャラクターを人間のスプライトとして表現した最も初期のビデオゲームはアーケードのスポーツビデオゲームで、タイトーTVバスケットボール[ 8 ] [ 9 ] [ 10 ]に始まり、北米でのリリースのためにミッドウェイマニュファクチャリングにライセンス供与されました。 [ 11 ]西角智弘によって設計された彼は、単純なポンスタイルの長方形を超えて、長方形の形状をバスケットボール選手とバスケットボールのフープのように見えるオブジェクトに並べ替えることで、キャラクターグラフィックに移行したいと考えていました。[ 12 ] [ 13 ]ラムテックは1974年10月に別のスポーツビデオゲームBaseballをリリースしました。[ 11 ]同様に人間のようなキャラクターが表示されました。[ 14 ]

1979年のアーケードゲーム『ギャラクシアン』用のナムコ・ギャラクシアン・アーケードシステムボードは、スクロールする背景にアニメーション化された多色のスプライトを表示する。[ 15 ]これは任天堂『レーダースコープ』『ドンキーコング』といったアーケードハードウェアや、任天堂エンターテイメントシステムなどの家庭用ゲーム機の基盤となった。[ 16 ]ゼネラル・コンピュータ・コーポレーションのスティーブ・ゴルソンによると、当時は「スプライト」ではなく「スタンプ」という用語が使われていた。[ 6 ]

ホームシステム

Signetics devised the first chips capable of generating sprite graphics (referred to as objects by Signetics) for home systems. The Signetics 2636 video processors were first used in the 1978 1292 Advanced Programmable Video System and later in the 1979 Elektor TV Games Computer.

The Atari VCS, released in 1977, has a hardware sprite implementation where five graphical objects can be moved independently of the game playfield. The term sprite was not in use at the time. The VCS's sprites are called movable objects in the programming manual, further identified as two players, two missiles, and one ball.[17] These each consist of a single row of pixels that are displayed on a scan line. To produce a two-dimensional shape, the sprite's single-row bitmap is altered by software from one scan line to the next.

The 1979 Atari 400 and 800 home computers have similar, but more elaborate, circuitry capable of moving eight single-color objects per scan line: four 8-bit wide players and four 2-bit wide missiles. Each is the full height of the display—a long, thin strip. DMA from a table in memory automatically sets the graphics pattern registers for each scan line. Hardware registers control the horizontal position of each player and missile. Vertical motion is achieved by moving the bitmap data within a player or missile's strip. The feature was called player/missile graphics by Atari.

Texas Instruments developed the TMS9918 chip with sprite support for its 1979 TI-99/4 home computer. An updated version is used in the 1981 TI-99/4A.

In 2.5D and 3D games

Player interactions with sprites in a 2.5D game

Sprites remained popular with the rise of 2.5D games (those which recreate a 3D game space from a 2D map) in the late 1980s and early 1990s. A technique called billboarding allows 2.5D games to keep onscreen sprites rotated toward the player view at all times. Some 2.5D games, such as 1993's Doom, allow the same entity to be represented by different sprites depending on its rotation relative to the viewer, furthering the illusion of 3D.

完全な3Dゲームでは通常、ワールドオブジェクトは3Dモデルとして表示されますが、 GoldSrc [ 18 ]Unreal [ 19 ]などの一部の3Dゲームエンジンではスプライトがサポートされており、ビルボード表示したり、固定方向に固定したりできます。スプライトは細かいディテールやパーティクルエフェクト、その他3次元の欠如が大きなデメリットとならない用途 で依然として有用です。

ハードウェアスプライトを搭載したシステム

これらは基本的なハードウェア仕様であり、ラスター割り込みを使用してフレームの途中でスプライトを再利用する などの追加のプログラミング手法は含まれていません。

参照

参考文献

  1. ^ a bヘイグ、ジェームズ. 「なぜ専用ゲーム機が存在するのか?」 . 21世紀のプログラミング. 2018年4月23日時点のオリジナルよりアーカイブ。 2019年9月2日閲覧
  2. ^ Guttag, KArl (2011年12月6日). 「まず、役に立つこと(家庭用コンピューターとピコプロジェクター)」 . KGOnTech .
  3. ^米国特許4,243,984
  4. ^ジョンストン、ボブ (2003). 『ラップトップを気にしないで:子供、コンピューター、そして学習の変革』 iUniverse. p. 108. ISBN 978-0595288427
  5. ^ “De Re Atari” . 1981年. 2017年7月31日時点のオリジナルよりアーカイブ。 2017年8月10日閲覧
  6. ^ a bスティーブ・ゴルソン (2016).クラシックゲームの事後分析: 『ミズ・パックマン』(カンファレンス)。ゲーム開発者カンファレンス。イベントは20時30分に開催されます。 2017年1月26日閲覧[…] 6体の動くキャラクター。今で言う「スプライト」ですが、当時は「スタンプ」と呼んでいました。[…]。
  7. ^スウォルウェル、メラニー、ウィルソン、ジェイソン(2015年5月12日)『コンピューターゲームの快楽:文化史、理論、美学に関するエッセイマクファーランド・アンド・カンパニー、pp.  109-10 . ISBN 978-0-7864-5120-3. 2021年5月16日時点のオリジナルよりアーカイブ。2021年5月16日閲覧。
  8. ^リチャード・コルビー、マシュー・SS・ジョンソン、レベッカ・シュルツ・コルビー(2021年1月27日)ライティング教室におけるゲームの遊び方、研究の仕方、教え方の倫理』シュプリンガー・ネイチャー、130頁。ISBN 978-3-030-63311-0. 2021年5月3日時点のオリジナルよりアーカイブ。2021年5月3日閲覧。
  9. ^ Video Game Firsts Archived 2017-11-05 at the Wayback Machine、The Golden Age Arcade Historian (2013年11月22日)
  10. ^バスケットボールフライヤーArchived 2014-07-08 at the Wayback Machine (1974), Arcade Flyer Museum
  11. ^ a b赤城 真澄 (2006 年 10 月 13 日).アーケード TV ゲームリスト 国内・海外編(1971-2005) [アーケード TV ゲームリスト: 国内・海外編 (1971-2005) ]。日本:アミューズメント通信社。ページ 40–1、51、129。ISBN 978-4990251215
  12. ^スミス、アレクサンダー(2019年11月19日)。『They Create Worlds: The Story of the People and Companies That Shaped the Video Game Industry, Vol. I: 1971-1982CRC Press、pp.  191– 95、ISBN 978-0-429-75261-2. 2021年5月2日時点のオリジナルよりアーカイブ。2021年5月16日閲覧。
  13. ^ “スペースインベーダー・今明かす開発秘話――開発者・西角友宏氏、タイトー・和田洋一社長対談” [スペースインベーダー、今明かされる開発秘話―開発者西角友宏氏、タイトー代表取締役社長和田洋一氏インタビュー].日本経済新聞(日本語)。 2008 年 3 月 21 日。2008年 3 月 23 日のオリジナルからアーカイブ2021 年5 月 3 日に取得
  14. ^ソープ、ニック(2014年3月)「70年代:産業の起源」 Retro Gamer誌第127号、  24~ 7頁。
  15. ^ディロン、ロベルト(2016年4月19日)『ビデオゲームの黄金時代:数十億ドル規模の産業の誕生』CRCプレス、ISBN 9781439873243– Google ブックス経由。
  16. ^ファミコンを現実のものに日経エレクトロニクス(1994年9月12日)
  17. ^ Wright, Steve (1979年12月3日). 「Stella Programmer's Guide」(PDF) . 2016年3月27日時点のオリジナルよりアーカイブ(PDF) . 2016年4月14日閲覧
  18. ^ 「GoldSrc Sprite Tutorial」 . the303.org . 2024年9月26日閲覧
  19. ^ 「Unreal EngineにPaper 2D Spritesをインポートして使用する方法」 epicgames.com Epic Games 2024年10月31日閲覧
  20. ^ "Plus - CPCWiki" . Cpcwiki.eu. 2011年7月20日時点のオリジナルよりアーカイブ2009年11月29日閲覧。
  21. ^ 「テレビインターフェースアダプタ」 . AtariArchives.com. 2010年8月25日時点のオリジナルよりアーカイブ2011年2月6日閲覧。
  22. ^ 「Atari 5200 FAQ - ハードウェア概要」 . AtariHQ.com. 2011年5月14日時点のオリジナルよりアーカイブ。 2011年2月6日閲覧
  23. ^ 「MOS 6567/6569ビデオコントローラ(VIC-II)とコモドール64への応用」。2006年8月30日時点のオリジナルよりアーカイブ。 2006年1月8日閲覧{{cite web}}: CS1 maint: bot: 元のURLステータス不明(リンク
  24. ^ 「Amigaハードウェアリファレンスマニュアル4:スプライトハードウェア」 1989年。2017年8月14日時点のオリジナルよりアーカイブ2017年5月23日閲覧。
  25. ^ “Gameduino 仕様” . excamera.com. 2021年12月13日時点のオリジナルよりアーカイブ2011年6月13日閲覧。
  26. ^ “STIC - Intellivision Wiki” . wiki.intellivision.us . 2018年7月9日時点のオリジナルよりアーカイブ2018年3月15日閲覧。
  27. ^ TEXAS INSTRUMENTS 9900: TMS9918A/TMS9928A/TMS9929A ビデオディスプレイプロセッサ(PDF) . 2017年8月14日時点のオリジナル(PDF)からアーカイブ。 2011年7月5日閲覧
  28. ^モンフォート、ニック、ボゴスト、イアン(2009年1月9日)『Racing the Beam: The Atari Video Computer System』MIT Press. ISBN 9780262261524– Google ブックス経由。
  29. ^ 「マルチプラットフォーム6502アセンブリプログラミングを学ぶ…モンスター向け!プラットフォーム別シリーズ」2021年12月4日時点のオリジナルよりアーカイブ。 2021年12月4日閲覧
  30. ^ 「Galaxian由来のビデオハードウェア」 . GitHub . MAME . 2017年11月30日時点のオリジナルよりアーカイブ2018年10月23日閲覧。
  31. ^ “Galaxian由来のハードウェア” . GitHub . MAME . 2018年9月5日時点のオリジナルよりアーカイブ2018年10月23日閲覧。
  32. ^ “Galaxian hardware family” . GitHub . MAME . 2021年2月24日時点のオリジナルよりアーカイブ2018年10月23日閲覧。
  33. ^ Nathan Altice (2015), I Am Error: The Nintendo Family Computer / Entertainment System Platform、53 & 69ページArchived 2016-11-12 at the Wayback Machine MIT Press
  34. ^ 「仕様」 . Nocash.emubase.de. 2009年6月21日時点のオリジナルよりアーカイブ2009年11月29日閲覧。
  35. ^ 「Microsoft Word - NESDoc.doc」(PDF)2011年9月30日時点のオリジナルよりアーカイブ(PDF) 。 2009年11月29日閲覧
  36. ^ 「GameBoy - Spielkonsolen Online Lexikon」 . At-mix.de. 2004年6月22日. 2010年5月6日時点のオリジナルよりアーカイブ2009年11月29日閲覧。
  37. ^ 「仕様」 . Nocash.emubase.de. 2009年6月21日時点のオリジナルよりアーカイブ2009年11月29日閲覧。
  38. ^ Charles MacDonald. 「Sega Master System VDPドキュメント」 . 2014年3月18日時点のオリジナルよりアーカイブ2011年7月5日閲覧。
  39. ^ 「セガマスターシステム技術情報」(TXT) . Smspower.org . 2019年6月24日時点のオリジナルよりアーカイブ。 2016年11月28日閲覧
  40. ^ 「Sega Programming FAQ October 18, 1995, Sixth Edition - Final」 。 2005年1月22日時点のオリジナルよりアーカイブ。 2015年12月10日閲覧
  41. ^スタッフ、Polygon (2015年2月3日). 「セガはいかにしてジェネシスを開発したか」 . Polygon.オリジナルより2015年11月3日時点のアーカイブ。 2016年11月28日閲覧
  42. ^ 「Sega Out Run Hardware (Sega)」 System 16、2016年3月31日。2016年11月28日時点のオリジナルよりアーカイブ。 2016年11月28日閲覧
  43. ^ “mame/segaorun.c at master · mamedev/mame · GitHub” . github.com . 2014年11月21日. 2014年11月21日時点のオリジナルよりアーカイブ。 2018年3月15日閲覧
  44. ^ “Out Run” . 2001年2月27日. 2001年2月27日時点のオリジナルよりアーカイブ2016年11月28日閲覧。
  45. ^ 「Out Run Hardware (Sega)」 System 16。2016年11月28日時点のオリジナルよりアーカイブ2009年11月29日閲覧。
  46. ^ 「バージョン0.3 - 1998年2月7日」Coinop.org。 2016年5月14時点のオリジナルよりアーカイブ2016年11月28日閲覧。
  47. ^ 「セガ16ビット共通ハードウェア」 。 2016年1月25日時点のオリジナルよりアーカイブ2016年2月9日閲覧。
  48. ^ 「セガ「X-Board」ハードウェアノート」 。 2014年3月18日時点のオリジナル(TXT)からアーカイブ2016年11月28日閲覧。
  49. ^ "X68000-コンピュータ博物館" . Museum.ipsj.or.jp . 2014年10月2日時点のオリジナルよりアーカイブ2016年11月28日閲覧。
  50. ^ “mame/x68k.c at master · mamedev/mame · GitHub” . github.com . 2014年11月21日.オリジナルより2014年11月21日時点のアーカイブ。 2018年3月15日閲覧
  51. ^吉田浩一 (2001年9月12日). "超連射68K 開発後記" .よっしんさんのWebページです2019年5月12日のオリジナルからアーカイブ2016 年 11 月 28 日に取得( Shmuplations による翻訳。2019年7月2日、 Wayback Machineアーカイブ)。
  52. ^ 「Neo-Geo MVS ハードウェアノート」(TXT) . Furrtek.free.fr . 2018年9月16日時点のオリジナルよりアーカイブ。 2016年11月28日閲覧
  53. ^ 「Neo-Geoプログラミングマニュアル」(PDF) . Furrtek.free.fr . 2016年12月6日時点のオリジナルよりアーカイブ(PDF) . 2016年11月28日閲覧
  54. ^ 「デバッグ用ディップスイッチ一覧」 . Neo-Geo. 2014年7月9日. 2016年11月28日時点のオリジナルよりアーカイブ。 2016年11月28日閲覧
  55. ^ “SNESスプライトエンジン設計ガイド” . 2021年3月30日. 2021年12月4日時点のオリジナルよりアーカイブ