「ラスタースクロール」の版間の差分

削除された内容 追加された内容
 
(13人の利用者による、間の15版が非表示)
1行目:
{{出典の明記|date=2019年10月}}
'''ラスタースクロール'''(raster(raster scroll)scroll)とは、主に[[テレビゲーム]]で用いられる、[[映像信号|ビデオ信号]]の[[走査]]タイミング(水平帰線期間)に合わせて画面を[[スクロール]]させる技法<ref>{{Cite journal|author=遠藤雅伸|year=2014|title=ゲームに活きる画像技術|journal=日本写真学会誌|volume=77|issue=3|page=252|DOI=10.11454/photogrst.77.248}}</ref>、およびそれによって得られる画面効果のことである。横ラインスクロールとも呼ばれる。
 
後述の疑似ラスタースクロールなど実現方法問わず同様の結果を得る画面効果含めラスタースクロールという場合もある。逆にステータス表示や疑似3Dのためにラスタースクロールの技術を使っていても言わない場合もある。
 
普通の横スクロール・縦スクロールなどを走査タイミングで細かく制御することにより、表示内容の縦分割、画像を「縦方向に伸ばしたり縮めたりする」「横方向に歪めたり波打たせたりする」などの特殊効果が得られる。左右に歪める処理をラスタースクロール、奥行きを出すために一方向のみに速度差をつけて歪めない処理をラインスクロール、と呼び分けることもある。
 
[[ポリゴン]]が採用される前の擬似3Dレースゲームのコース表現や、[[ドラゴンクエストシリーズ|ドラゴンクエスト]]の「旅のとびら」など、使用例は枚挙にいとまがない。
 
なお、業務用ゲーム機や家庭用ゲーム機([[メガドライブ]]など)の中には、各ラインごとに個別にスクロールオフセットを指定できるハードウェアもある。つまり、水平帰線期間に割り込みをかけなくても、垂直帰線期間内で普通に画面を描画すればラスタースクロールと同様の画像が得られる(前出のメガドライブでラスタースクロール様の処理が高速なのはこのため)
 
逆に、水平帰線期間を割り込みトリガとすることが出来ないハードウェア([[ファミリーコンピュータ]]や[[FM TOWNS]]等)の場合は、ほかの手段で実装する必要がある。
なお、業務用ゲーム機や家庭用ゲーム機([[メガドライブ]]など)の中には、各ラインごとに個別にスクロールオフセットを指定できるハードウェアもある。つまり、水平帰線期間に割り込みをかけなくても、垂直帰線期間内で普通に画面を描画すればラスタースクロールと同様の画像が得られる(前出のメガドライブでラスタースクロール様の処理が高速なのはこのため)。
 
ファミコンの場合は、0番スプライトと走査線の接触の検出ができるので、これをソフトウェア上で待つことでトリガにして実装することが多い。カートリッジ内に搭載したICのタイマカウント割り込み機能で実現する方法も取られた。FM TOWNSでは走査線の割り込みトリガがなく、ソフトウェアによる画像変型で疑似的に実装したソフトも見られるが、処理が重いので、ほとんどのソフトでは低速な機種では処理を切れるようになっている。軽い処理としては、スプライトパターンで疑似的に再現する方法もある(FM TOWNSのソフトには[[CRTC_(LSI)|CRTC]]を操作して走査線を歪ませる、疑似ラスタースクロールとも呼べる表示効果も見られる
逆に、水平帰線期間を割り込みトリガとすることが出来ないハードウェア([[ファミリーコンピュータ]]や[[FM TOWNS]]等)の場合は、ほかの手段で実装する必要がある。
ファミコンの場合は、0番スプライトと走査線の接触の検出ができるので、これをソフトウェア上で待つことでトリガにして実装することが多い。カートリッジ内に搭載したICのタイマカウント割り込み機能で実現する方法も取られた。FM TOWNSでは走査線の割り込みトリガがなく、ソフトウェアによる画像変型で疑似的に実装したソフトも見られるが、処理が重いので、ほとんどのソフトでは低速な機種では処理を切れるようになっている。軽い処理としては、スプライトパターンで疑似的に再現する方法もある。(FM TOWNSのソフトには[[CRTC_(LSI)|CRTC]]を操作して走査線を歪ませる、疑似ラスタースクロールとも呼べる表示効果も見られる。)
 
ポリゴンによるリアルタイムレンダリングが一般的になると、画像の変形は簡単な処理の部類となり、ソフトウェアによる代替処理が主流になった。もっとも処理が遅い初期のポリゴンハードウェアでは移植の際に再現を諦めたソフトや、再現時に処理落ちしているソフトも多い。[[2005年]]現在、ラスタースクロールと呼ばれているもののほとんどは、[[正弦|正弦波]]などを利用して画像を変形させている擬似ラスタースクロール、あるいはラスタースクロールの[[エミュレーション]]である。
16 ⟶ 20行目:
== 原理 ==
 
<small>以降の説明では便宜上[[ディスプレイ (コンピュータ)|ディスプレイ]]横置き(長辺が横、短辺が縦)とする。</small>
 
ディスプレイは、以下の繰り返しで映像を表示している。
 
* 左から右へ、横方向に1ライン分の信号を出力する
* 1ライン下の一番左へ移動する('''水平帰線期間''')
* 左から右へ、横方向に1ライン分の信号を出力する
 
(中略)
 
* (最下のライン)左から右へ、横方向に1ライン分の信号を出力する
* 一番上のラインの一番左へ移動する(垂直帰線期間)
 
ラスタースクロールは、この'''水平帰線期間'''をハードウェア割り込みで検知し、割り込みルーチン内でスクロールレジスタを操作する。水平帰線期間の度に矢継ぎ早にスクロール量を変化させることによって、実際に描画される画面上では、画面の一部のラインだけが横に移動したように見える。
水平帰線期間の度に矢継ぎ早にスクロール量を変化させることによって、実際に描画される画面上では、画面の一部のラインだけが横に移動したように見える。
 
=== 例 ===
70 ⟶ 73行目:
=== 画面の上下分割(ステータス表示など) ===
 
[[ファミリーコンピュータ]]・[[MSX2]]などのレイヤー機能を持たないハードウェアにおいて、画面を上下に分割して、ステータスやスコア表示を行ったままもう一方の画面をスクロールさせる([[スーパーマリオブラザーズ3]]など)手法も走査タイミングによる割り込み処理で行っている。ライン分割スクロール(ラインスクロール)とも呼ばれる。
 
上下方向で分割したい位置で割り込みを発生させ、表示ページやスクロール位置、画面モード、マップパーツなどを切り替えることにより画面の上下で別の表示を行うことが可能となる。
93 ⟶ 96行目:
==== 見かけのスプライト数の倍増 ====
 
スプライトは画面上に同時に表示できる枚数に限りがあるが、画面上方で表示したスプライトを画面下方で再利用することにより見かけのスプライト表示数を増やす手法。スプライトダブラーとも呼ばれる。ハードウェアの処理能力により、分割数を増やすことができ四倍辺りまで増やすライブラリが存在する。なお、水平帰線期間内にスプライトICを操作できないハードウェアでは、この方法は使えない。同様に保持するパターンの入れ替えも行うことで擬似的に定義数も変更可能である。ただし、構造上、分割ラインをまたいだ場合、キャラクタが切れて表示されることになる。
ハードウェアの処理能力により、分割数を増やすことができ四倍辺りまで増やすライブラリが存在する。
なお、水平帰線期間内にスプライトICを操作できないハードウェアでは、この方法は使えない。
同様に保持するパターンの入れ替えも行うことで擬似的に定義数も変更可能である。
但し、構造上、分割ラインをまたいだ場合、キャラクタが切れて表示されることになる。
 
==== スプライトの出現・消滅 ====
110 ⟶ 109行目:
 
=== 画面モードの切り替え ===
; [[スーパーファミコン]]
 
: スーパーファミコンの多くのソフトで使用されていた。水平ラインごとに画面を分割して各画面モードを切り替えて、それぞれのモード特有の特殊処理を表示画面内で別々に使用する。
[[MSX2]]の一部ソフトで使用。画面を上下に分割し、[[TMS9918]]互換のキャラクタ・グラフィックのモードや、[[V9938]]のビットマップの低解像度16色・256色と高解像度4色・16色の任意の各モードを組み合わせて表示する。上画面をスクロール固定のスコア表示、下画面をゲーム画面とする手法が一般的。モード切り替えを伴わない単なる画面分割は、[[ドラゴンバスター]]のドラゴンとの対決シーンなどのようにファミコンにおいても使用例がある。
: 『[[スーパーマリオカート]]』では遠景やスコア表示をBGレイヤーが複数使えるモード0で描画し、地面のコース部分を拡大縮小回転可能なモード7で描画していた。『[[ファイナルファンタジーVI]]』での飛空艇の飛行シーンにおいては、遠景を縦ラスタースクロールが可能なモード2を使い前述の疑似回転処理で描画、地表を拡大縮小回転可能なモード7で描画、地平線の傾きをスプライトのマスクで表現することにより、当時としては迫力あるリアルな飛行シーンを実現していた。
:
; [[MSX2]]
[[: MSX2]]の一部ソフトで使用。画面を上下に分割し、[[TMS9918]]互換のキャラクタ・グラフィックのモードや、[[V9938]]のビットマップの低解像度16色・256色と高解像度4色・16色の任意の各モードを組み合わせて表示する。上画面をスクロール固定のスコア表示、下画面をゲーム画面とする手法が一般的。モード切り替えを伴わない単なる画面分割は、[[ドラゴンバスター]]のドラゴンとの対決シーンなどのようにファミコンにおいても使用例がある。
 
== ラスタースクロールを駆使したゲーム ==
 
* [[ポールポジション (ゲーム)|ポールポジション]]
* [[F1レース (任天堂)|F1レース]](ファミリーコンピュータ版)
* [[北斗の拳#コンピュータゲーム|北斗の拳]]([[セガ・マークIII]]版)
*[[スーパーモナコGP]](メガドライブ版)
**[[アイルトン・セナ スーパーモナコGPII]](メガドライブ版)
*[[:en:F1 (video game)|F1]](メガドライブ)
* [[セクターゾーン]]
* [[マグマックス]]
* [[サマーカーニバル'92 烈火]]
* [[ダライアスII]]、[[メタルブラック]]、[[レイフォース]]、[[ダライアス外伝]]
* [[XEXEX]]
* [[アクスレイ]]
* [[悪魔城ドラキュラXX]]
* [[ファランクス (ゲーム)|ファランクス]]
* [[ナイアス (ゲーム)|ナイアス]]、[[アクアレス]]
* [[ストリートファイターII]]
* [[:en:Ranger X|エクスランザー]]
* [[マジカルチェイス]]
* [[サンダーフォース|サンダ]]シリフォースズ(II・III・IV]]・V)
* [[ソニック・ザ・ヘッジホッグ]]シリーズ(1・[[ソニック・ザ・ヘッジホッグ2|2]]・[[ソニック・ザ・ヘッジホッグ3|3]]・[[ソニック&ナックルズ]])
**[[サンダーフォース|サンダーフォースV]]
* [[ソニック・ザ・ヘッジホッグ]]
**[[ソニック・ザ・ヘッジホッグ2]]
**[[ソニック・ザ・ヘッジホッグ3]]
**[[ソニック&ナックルズ]]
* [[ガンスターヒーローズ]]
* [[ずんずん教の野望]]
* [[キラキラスターナイトDX]]
 
== 脚注 ==
{{脚注ヘルプ}}
<references />
 
[[Category:コンピュータゲームの技術|らすたあすくろおる]]
[[Category:ハードウェア|らすたあすくろおる]]