NESのゲヌム甚の特殊効果デバむス。 パヌト2

この蚘事では、NESでのゲヌムの特殊効果のデバむスの説明の続きを芋぀けたす最初の郚分はこちらです 。 今回は、理論が少なくなり、写真䟋が増えたす。


ビデオプロセッサのスクロヌル䜍眮を切り替えるこずによっお䜜成される゚フェクトのグルヌプず、ビデオプロセッサの状態を切り替えるこずによっお取埗されるいく぀かの゚フェクトを怜蚎したす。

スクロヌル䜍眮を倉曎するこずによるアニメヌション


むンタヌフレヌム


スクロヌル䜍眮を倉曎するこずで䜜成される最も基本的で明癜な「効果」は、ゲヌムカメラを䜜成するこずです。 それは明癜なものずしお認識されおいたすが、1回の゚ラヌなしで初めおスクロヌルを正しく実装するこずができないずいう事実に、ビットコむン党䜓を賭けるでしょう。

さたざたなゲヌムでいく぀かのスクロヌルオプションを怜蚎しおください。 これはそれほど印象的ではありたせんが、ビデオプロセッサの機胜を理解し、次の効果を理解するのに圹立ちたす。

最初の蚘事で述べたように、NESビデオプロセッサのアドレススペヌスには、衚瀺する文字を含む4぀の画面がありたす。 たた、ビデオプロセッサには特定のスクロヌル䜍眮画面䞊にタむルを描画し始める座暙がありたす。

ただし、ほずんどの堎合、ペヌゞのコンテンツはミラヌリングされたすミラヌリングの䞻なタむプのより詳现な説明です。 詳现に觊れない堎合、ほずんどの堎合、ゲヌムには4ペヌゞではなく、2ペヌゞそしお堎合によっおは1ペヌゞしかありたせん。

このスクリヌンショットは、ゲヌム「 ぀がみがずる」のペヌゞの氎平ミラヌリングを䜿甚したスクロヌルの䟋を瀺しおいたす。


氎平スクロヌル


この堎合、巊の2ペヌゞは右の2ペヌゞを反映しおいたす。 たた、スクリヌンショットでは、スクロヌルの䜍眮に泚意し、゚ミュレヌタヌ自䜓が珟圚画面に衚瀺されおいるりィンドりを遞択したす。

ビデオプロセッサの速床が遅いため、ゲヌムはすべおのペヌゞのコンテンツを事前にレンダリングするこずができず、このアクティブりィンドりの曎新のみに制限されおいたす。たた、りィンドりの近くにある最初の非衚瀺行のみを曎新し、プレむダヌが盎接アクセスするたでにそれらを構築する時間を確保したす。

そのため、䞀郚のゲヌムでは戻っお䞡方向のカメラの動きを敎理するこずができたせん。これは開発者にずっお簡単な䜜業ではなくなりたした。

カメラが移動するず、ゲヌムごずに列/行の曎新がわずかに異なりたす-ほずんどの堎合、これはゲヌムのROMファむル異なるサむズのブロック、たたは圧瞮タむルマップにレベルデヌタが栌玍される方法が原因です。

瞊スクロヌル


ミラヌリングのタむプは、カヌトリッゞのマッパヌによっおハヌドコヌディングするか、ゲヌムによっおプログラムで切り替えるこずができたす。 䞊蚘の䟋のように、2぀の画面の高さは垂盎スクロヌルの錯芚を䜜り出すのに十分かもしれたせんが、2画面以䞊の高さず幅のレベルを䜜成するには、開発者はトリックを思い付く必芁がありたした。

䞀郚のゲヌムは、2぀の画面「ドア」 Megamanシリヌズの゚ンゞン以䞊の高さのレベルで䜜成され、画面に入るずゲヌムが䞀時停止しお画面ペヌゞのコンテンツを曎新したす。

他の人は、この効果をプログラムで考案し、コヌディングしたす


ゞャングルブックやハド゜ンのアドベンチャヌアむランドなどのゲヌムでは、スクロヌルの䞻なタむプは氎平ですが、ゲヌムではカメラを䞊䞋に移動し、その堎で䞀番䞊の行を䞀番䞋に再構築し、カメラの「斜め」の動きのサポヌトを敎理するこずもできたす。

任意の方向にスクロヌルを線成する耇雑さを匷調するために、開発者の゚ラヌの䟋を挙げるこずができたす。 たずえば、 リトルマヌメむドゲヌムでは、垂盎方向にスクロヌルするず、ゲヌムは毎回ブロックの半分を「食べ」たす。これはゲヌム゚ディタヌに衚瀺されたす。぀たり、 蚭蚈者は、この゚ラヌを考慮せずにレベルを䜜成したした。


NESのほずんどのゲヌムは、画面サむズの倍数ではないブロックサむズでレベルを蚘述するためにブロックシステムを䜿甚しおいるため、垂盎スクロヌル䞭に最埌のブロックの䞋郚がスロヌされたす。 この効果はゲヌムTiny Toon Adventuresで芋るこずができたす。開発者は意図的に非衚瀺ブロックにゎミを残したした


ここで、赀い線はゲヌム゚ンゞンによっおスロヌされる線に䞋線を匕きたすこのようなマヌクは、耇数の画面の高さを持぀各レベルに存圚したす。

シングルスクリヌンゲヌムでのスクロヌル


䞀郚のマッパヌには、4回ミラヌリングされる1぀の画面ペヌゞしか含たれおいたせん。 このようなゲヌムでスクロヌルを敎理するために、開発者は画面の右偎が巊偎を䞊曞きするために発生するアヌティファクトをマスクする方法を探すこずを䜙儀なくされたした。


Battletoadsでは、ゲヌムは単に出力行の先頭でビデオプロセッサのビヌムを「消し」、最初の列が右にスクロヌルした埌に衚瀺される列を耇補するずいう事実を隠したす。


Felix The CatずTomJerryのゲヌムでは、線の右偎が黒いスプラむトでマスクされおいたす。これは、蚘事の最初の郚分で説明したスプラむトの数を衚瀺するスクリプトで芋るこずができたす。

スクロヌルアニメヌション


スクロヌル䜍眮の急激な倉化により、興味深いアニメヌション効果も可胜です。
そのようなアニメヌションの䟋は、 ミツメガトオルの2番目のボスです。


ボスの䜓はわずかにずれた2぀の異なる画面に描画され、ゲヌムはスクロヌルを数フレヌムごずに別の画面に切り替え、ボスの䜓が脈動するようにしたす。

アニメヌションは2぀のフレヌムのみで構成されおいたすが、矎しい効果を䜜成するにはこれで十分です。 ゲヌムは氎平ミラヌリングを䜿甚したす。これは、2぀の異なるボス画像をハヌフブロックオフセットで描画する必芁があるためです䞊蚘の垂盎スクロヌルの䟋を参照。これは、 CadEditor゚ディタヌでゲヌムを開くず衚瀺されたす


わかりやすくするために、「むンゞケヌタ」ブロックを倉曎しお、画面ペヌゞを切り替えるずきにゲヌムがどのように䜍眮を倉曎するかを確認できたす。


数フレヌムの背景アニメヌションのより高床な䟋は、 Bucky O'Hareで芋るこずができたす。 ゲヌムには回転する迷路がありたす


ゲヌムに実装するために、各フレヌムは、珟圚画面䞊にない画面の䞀郚を曎新したす。 画面が完成するずすぐに、スクロヌルはすぐにディスプレむを「反転」させ、郚屋を90床回転させる効果を生み出したす。 その埌、ゲヌムは別の画面ペヌゞに再び次のフレヌムを描画し始めたす。


スクリヌンショットは、非衚瀺画面でのフレヌムの郚分的なレンダリングを瀺しおいたす。

背景に倧きなオブゞェクトを描く


ゲヌムは倧きなオブゞェクトを背景ずしお描画し、スクロヌルの䜍眮を倉曎するこずで、このオブゞェクトの動きの効果を䜜成するこずがありたすほずんどの堎合、これらはボスです。 必芁に応じお、ボスには、ビデオメモリのバンクを倉曎しお、スプラむトたたはアニメヌションを含むアニメヌションパヌツが远加されたす。

その結果、たずえば、 My Pocket in My Pocketのように矎しいビッグボスができたす。


たたは、 ChipDale 2


ここでは、優れたデザむンの決定を芋るこずができたす-ボスの魔女はろうそくが消えたずきにのみ衚瀺され、開発者は背景を黒にする道埳的暩利を持っおいたす。

副䜜甚は、そのようなボスの背景自䜓が存圚しない必芁があるこずです。そうでなければ、ボスずずもに移動したす。 理論的には、䞀方向の動きが反察方向のボスを補償するような方法で背景アニメヌション効果が可胜ですが、この効果が実珟される単䞀のゲヌムやデモを芋぀けるこずができたせんでした。

このようなボスの背景を䜜成する別の方法は、フレヌムの途䞭でスクロヌル䜍眮を倉曎するこずです。ミッドフレヌムアニメヌションのセクションでは、そのようなボスの䟋ず、そのような実装の制限に぀いお説明したす。

ミッドフレヌムアニメヌション


フレヌムのレンダリング䞭にスクロヌルの䜍眮を倉曎するず、異なるれロを含む速床で移動する耇数の氎平「バンド」に画面を分割するこずができたす。 ただし、画面を揺らさずに行䞭にスクロヌル䜍眮を盎接倉曎する方法はないため、行の䞀郚が異なる速床で移動しおいるこずがわかった堎合、おそらく開発者はスプラむトでアニメヌトするか、CHRバンクを倉曎するこずで芖力を欺きたす蚘事の最初の郚分の䟋

さたざたな速床での画面の「ストラむプ」の動きに基づいお、さたざたな効果を䜜成できたす。 そのような効果を調査するために、 Mesen゚ミュレヌタヌ甚のスクリプトを䜜成したしたフレヌムの䞭倮で効果を远跡できるのはそれだけです。

開始埌、ゲヌムがスクロヌル䜍眮を倉曎し、画面を異なる速床で移動する別々のバンドに分割するラむンが衚瀺されたす。 このセクションの効果のスクリヌンショットは、このスクリプトを䜿甚しお䜜成されたした。

GUIレンダリング


最も単玔で理解しやすい効果は、ゲヌム画面の䞋たたは䞊にナヌザヌむンタヌフェむスをレンダリングするこずです。 ここではすべおがシンプルです-プレむダヌが移動するレベルのレむダヌずは異なり、GUIは動きがありたせん。 ほずんどの堎合、ゲヌムは他の゚フェクトに加えおこれを䜿甚するため、これ以䞊個別に蚀及したせん。


最も単玔な䟋はスヌパヌマリオブラザヌズのゲヌムです-画面の䞊郚は静止したたたです。 スクロヌル䜍眮を倉曎する必芁がある正確な期間を決定するために䜿甚されるトリックは非垞に難しい堎合がありたすが、ほずんどの堎合、よく知られおいるスプラむトれロヒットたたはマッパヌの行番号を远跡する機胜を䜿甚したす。

芖差


芖差効果により、芳察者にずっお、近くにあるオブゞェクトよりも遠くにあるオブゞェクトの移動が遅いずいう事実を衚瀺できたす。 次䞖代のコン゜ヌルでは、特にこの効果を実珟するために、互いに独立したいく぀かのレむダヌに描画するこずができたすが、NESではそうではないため、開発者は画像の䞀郚を氎平方向にスクロヌルしおレむダヌを゚ミュレヌトしたした。

このようなレむダヌの重芁な制限は、レむダヌが互いに垂盎に亀差しないこずです。これは、䞊蚘のスクリプトを䜿甚しお確認できたすレむダヌを区切る線がなければ、プレむダヌは互いに亀差しないこずが顕著になりたす。

最も単玔な䟋は、倕焌けの䞭を走るキャット・ニンデン・テダンディヌ・ニンゞャ・キャットです。


ここでは、マリオのように、1぀の画面を可動郚分ず固定郚分に分割するだけで十分ですほずんどすべおのゲヌムにあるGUIゟヌンでは個別に蚀及したせん。

より矎しく耇雑な䟋


バッキヌオヘアのレッドプラネット。 ここでは、空の雲ず近い山の局が静的な空に远加されたす。 線を分割しないず、山ずプレむダヌのレむダヌの間に颚景のレむダヌが残っおいるように芋えたす。これは、レむダヌが動いおいるかどうかを目で刀断できないためです。

このタむプの芖差の䟋を含むゲヌムが倚数ありたす-JoeMac-Caveman Ninja 、 Totally Rad 、 Metal Fighter 、 Vice-Project Doomなど。



ただし、1぀の氎平方向 バッキヌオヘアの窓の埌ろの背景郚分の芖差たたは䞀般的な垂盎方向の芖差レベル2 Battletoadsの井戞の壁、 Megaman 2起動画面でレむダヌの亀差の効果が芋られる堎合、これらの䟋はすべお最初に説明されおいるこずを芚えおおく䟡倀がありたす蚘事、芚えおおいおください-行の途䞭で氎平スクロヌルを倉曎するこずは䞍可胜です、これらのゲヌムは他の効果を䜿甚したす。

移動する遠い背景を持぀芖差の別の興味深いケヌスは、移動するトランスポヌトのレベルです。いく぀かの䟋を瀺したす。


スパルタンx2

小さな挫画2

バットマンゞョヌカヌの垰還

カメラが楕円圢のオブゞェクトたたは掞窟内にある堎合も、芖差は顕著です。 この堎合、䞋郚ず䞊郚は遠くの壁よりもカメラに近くなりたす。 最良の䟋は、 Battletoadsのタヌボトンネルです。


たたはバットマンゞョヌカヌの垰還 


最新の芖差の䟋は、衚瀺された平面がカメラに察しお非垞に傟いおいる堎合に関連したす。この堎合、平面の各郚分の異なる速床がはっきりず芋え、それを衚瀺するには倚くのレむダヌが必芁です。

TMNT4Tournament Fightersのフロアレむダヌの数を芋おください。


たたは、 TMNT3の海䞊Manhatten Project 


Battletoads and Double Dragonのポヌル限界ケヌス、各行の個別のスクロヌル


シヌンの䞀郚の動きを衚瀺する


この゚フェクトは、シヌンの倧郚分を衚瀺するために䜿甚されたす。


タむニヌトゥヌンアドベンチャヌのボス



バッキヌオヘアの䟋

シヌンの比范的小さな郚分に぀いおは、個々の線たで スヌパヌスパむハンタヌで曲がるずきの道路セクション


シヌンの䞀郚を矎しく組み合わせるために TMNT4トヌナメントファむタヌズのスクリヌンず


たた、フルスクリヌンパズルを衚瀺する堎合 スヌパヌマリオブラザヌズ3のルヌレット


シヌンのセクションは、最初は背景ではなくスプラむトのように芋える倧きなオブゞェクトでもかたいたせんが、スプラむトにはサむズ、合蚈数、1行の数に制限があるため、スプラむトには倧きすぎたす。 たずえば、 Bucky O 'Hareの緑の惑星のボスのボヌルはい、このゲヌムは通垞、さたざたな効果が非垞に豊富ですが背景に描かれおいたすが、床ずは別に移動したす。


デモ゚フェクト


倚くの堎合、シヌンのレむダヌの個別の動きの効果は、テキストたたはスクリヌンセヌバヌを効果的に衚瀺するために䜿甚されたす。 ゞュラシックパヌクの開始時の2぀の効果


Tmnt 3 、 ミッキヌマりス3 、 Mitusme Ga Tooruの波の効果





そしお、そのような他の人。

スクロヌルの垂盎䜍眮を倉曎する


倩井の萜䞋の効果を䜜成するために最もよく䜿甚されたす。 ボスの堎合ず同様に、必芁な条件は黒い背景であり、その䞊ではレむダヌ党䜓の動きが目立たなくなりたす。 したがっお、倩井の䜎䞋は暗い掞窟で最もよく芋られたす。


み぀めがずおる


バットマンゞョヌカヌの垰還

プロセッサ状態アニメヌション


䞻な皮類のアニメヌションに加えお、ビデオプロセッサの状態を倉曎するこずでグラフィック効果を䜜成できたす。 切り替え可胜なステヌタスフラグは、ドキュメントに蚘茉されおいたすたずえば、 こちら 。 これには、プロセッサを癜黒モヌドに切り替える、明るさを 倉曎する、たたはアクティブな画面ペヌゞのアドレスを倉曎するこずが含たれたす 。

たずえば、ゲヌムBattletoadsでは 、ナヌザヌむンタヌフェむスは別の画面ペヌゞに描画され、フレヌムの䞭倮で別の画面に切り替わりたす。この画面では、レベル自䜓がむンタヌフェむスなしで描画されたす。

マッパヌを䜿甚しお远加機胜を远加するこずもできたす。 たずえば、Namcot 163マッパヌのMappy Kidsゲヌムを考えおみたしょう。これは、画面ペヌゞを個別のコマンドずしお切り替えるこずができたす。これにより、ゲヌムは分割画面モヌドをサポヌトしたす。


これらはすべお、NESで䜿甚される䞻な皮類のアニメヌション効果です。 圓然、異なるグルヌプのいく぀かの個々の効果は芋逃され、たれなマッパヌぞの効果はほずんど研究されおいたせん。十分な量がある堎合は、別の蚘事に専念できたす。

次の蚘事では、 CadEditorを䜿甚しおグラフィックスずデヌタをROMファむルから匕き出しお、Cでこれを行う方法の䟋を瀺したす。

䜿甚枈みツヌル


ナニバヌサルCadEditorレベル゚ディタヌ

䞀般に、この蚘事ず以前の蚘事のゲヌム党䜓の研究は、このプロゞェクトの䞀郚ずしお行われたしたが、これは郚分的にロヌメヌカヌコミュニティのプロゞェクトになりたした-ゲヌムレベルのほずんどは、私ではなく他のナヌザヌによっお远加されたした。そのような研究が興味深い堎合は、 Patreonプロゞェクトペヌゞに蚀及しおください。寄付。

Mesen゚ミュレヌタヌのスクリプト
logParallax-フレヌムレンダリング䞭にゲヌムがスクロヌル䜍眮を倉曎する線を描画したす。

makeScreenshots -Qを抌すずスクリヌンショットの撮圱が開始され、もう䞀床抌すず停止したす。 画像を保存しおからgif画像にステッチするのに䟿利です。

modifyScreen- 「シェヌダヌ」を蚘述し、゚ミュレヌタヌのポスト゚フェクトの䜜成で遊ぶこずができる別のボヌナススクリプト。

Source: https://habr.com/ru/post/J354774/


All Articles