(57)【特許請求の範囲】
【請求項１】
ゲームプログラムを制御部が実行することにより、ゲームキャラクタがプレイフィールドを移動する画像を表示するように構成され、第１及び第２のコントローラを有するゲーム装置における、キャラクタ動作制御方法であって、
前記ゲーム装置が、第１のコントローラからの入力信号に基づくコマンドに応答して第１のキャラクタを動作させ、該第１のキャラクタが動作する画像を表示手段に表示させる第１ステップと、前記コマンドをメモリに格納する第２ステップと、前記第１のキャラクタを前記コマンドに応答して動作させる画像を表示した所定時間後に、前記格納されたコマンドに応答して第２のキャラクタを動作させ、該第２のキャラクタが動作する画像を表示手段に表示させる第３ステップと、を実行する第１のモードと、
前記ゲーム装置が、第１のコントローラからの入力信号に基づくコマンドに応答して第１のキャラクタを動作させ、該第１のキャラクタが動作する画像を表示手段に表示させる第４ステップと、第２のコントローラからの入力信号に基づくコマンドに応答して第２のキャラクタを動作させ、該第２のキャラクタが動作する画像を表示手段に表示させる第５ステップと、を実行する第２のモードと、があり、
さらに、前記ゲーム装置が前記第２のコントローラからの入力信号が入力されたか否かを判断し、入力された場合は第２のモードを実行し、前記ゲーム装置が前記第２のコントローラからの入力信号が所定時間以上なかったか否かを判断し、該所定時間以上前記第２のコントローラからの入力信号が入力されなかった場合、第１のモードを実行するように構成されてなる、
ことを特徴とする、ゲーム装置における、キャラクタ動作制御方法。
【請求項２】
前記第２のモードの前記第４及び５ステップの際、
前記ゲーム装置が、プレイフィールド内で第２のキャラクタが第１のキャラクタから一定距離以上に遅れてしまったかどうかを周期的に判断する第６ステップを更に実行するように構成され、前記前記プレイフィールド内で第２のキャラクタが第１のキャラクタよりも一定距離以上に遅れたと判断されたときは、前記ゲーム装置が、前記プレイフィールド内で第２のキャラクタを第１のキャラクタに近づくように移動表示する、ように構成された、請求項１記載の方法。
【請求項３】
前記第２のモードの前記第４及び第５ステップの際、前記プレイフィールド上で前記第２のキャラクタが前記第１のキャラクタよりも遅れて表示画面の視界から消えた場合、前記ゲーム装置は、前記プレイフィールド上で前記第２のキャラクタを第１のキャラクタに近づけて表示画面で見られるように移動する第６ステップをさらに実行するように構成されてなる、請求項１記載の方法。
【発明の詳細な説明】
【技術分野】
本発明は、一般的には、ビデオゲームに関するもので、より詳細には、プレイフィールドをゲームキャラクタに対して相対的にスクロールさせることによって、プレイフィールドにおけるキャラクタの挙動を表示するビデオゲームに係る。
【背景技術】
ビデオゲームは、周知の通り、ゲームキャラクタすなわちスプライトが、プレーヤの操作にしたがってスクロール画面上の決められた通路を動き回るものである。ここで、ゲームキャラクタは、通常人間的外見を有するが、他の外見（例えば、動物・怪物・乗り物・幾何学図形・記号など）を有するものを含む。また、スプライトは、グラフィック画面に表すための画像ブロックで、通常矩形の領域である。スプライトのサイズは自由で、同一ゲーム中に異なったサイズのスプライトが登場することもある。スプライトは、高速な手順（例えば、メモリのブロック転送）によって表示できるので、ゲームの高速化に貢献する。
プレーヤは、キャラクタの動きを制御する「ジョイスティック」等を使う制御卓を含む入力装置を操作する。入力装置を使ってプレーヤがキャラクタを右に動かす命令を出すと、プレイフィールドが左にスクロールし、そのためキャラクタが画面に対して右に動いた印象を与える。反対に、プレーヤがキャラクタを左に動かす命令を出すと、画面が右に動いて、キャラクタが左に動いた印象を与える。この様な画面のスクロールが行われる間、画面上でのキャラクタが動き回る印象を受けるが、キャラクタの画像は通常表示画面の中央近くに固定されている。
このプレイフィールドは、一般に、表示画面よりはるかに広いので、プレーヤが表示画面で同時に見られるのは、常にプレイフィールドの一部のみである。プレーヤのキャラクタは、プレイフィールド内を自在に歩き回ってゲームを行う。このようなゲームは、典型的には、ロールプレイングゲームと呼ばれる。熱心な常習的プレーヤは、しばしばプレーフィールド全体の地図を紙の上に作成する。
典型的なビデオゲームでは、プレーヤは、入力装置を使ってキャラクタに様々な動き、即ちジャンプ、うずくまりあるいは動きを早めたり、遅くしたりする動きを指令することができる。ゲームキャラクタは、様々な動きをするときに見かけ上の形を変えることが多い。例えば、キャラクタがゆっくりと動くときは、足、腕及び身体全体は完全に視認できる。これに反して、動きが早い時は、画面が高速でスクロールするのに対して、キャラクタの像の頭を除く他の大部分はぼやけて見える。さらに、キャラクタがうずくまったときは、ある決まったポーズをとり、ジャンプしたときはそれに応じたポーズをする。さらにまた、転んだり、キックしたり、空中を「飛行」する等、キャラクタが一連の特殊な動きをすることもある。
この様なビデオゲームの実現に関する試みの一つは、様々な映像と障害物のあるプレイフィールドを作りだすことである。障害物は、例えば、登るべき山、飛び越えなければならない谷あるいは打ち勝たなければならない敵である。これらすべての活動の間、キャラクタやプレイフィールドの形態や動きは、円滑かつ素早く処理されねばならない。さもないと、プレーヤが飽きたり、高速なアクションを盛り込んだビデオゲームの興奮がそこなわれるからである。
したがって、ゲームキャラクタやプレイフィールドの動き及び形状を制御するため、一定の表示制御方法が使われることが多い。この様な技術の中には、画面上をキャラクタが動き回る通路を定義する方法がある。キャラクタはプレーヤの命令にしたがってこの通路に沿って移動する。例えば、通路が右上がりで、プレーヤがキャラクタを右に移動させようとすると、画面が左にスクロールするに連れてキャラクタは右に進んで、坂を登るようになっている。次にプレーヤがキャラクタを左に戻す命令を出すと、画面は右にスクロールし、キャラクタは左に坂を下る様子が表示される。
通路に沿って移動するキャラクタの像は、コンピュータプログラムの制御によって生成される。キャラクタの動きはそのプログラムによって制限され、キャラクタが左右に動いても、常に通路から離れないようになっている。例えば、キャラクタがジャンプしても、すぐ元の通路に戻る。その通路が画面上の崖の様なもので中断していると、キャラクタは崖の縁を通り過ぎて谷底の通路に落下するか、又は、崖縁の奈落を飛び越えて向こう岸の通路に着地することになる。プレーヤはキャラクタの動きを制御するが、プログラムは通常キャラクタがその通路から外れないようにしている。
一般的に、プレイフィールド上の通路は、キャラクタの動きを制御する方法として受け入れられたものではあったが、問題がなかった訳ではない。例えば、キャラクタが通路を踏み外さないようにする最も一般的な方法は衝突ブロックを使うことであった。衝突ブロックは、キャラクタが侵入可能な領域（例えば地上）と、キャラクタが侵入不可能な領域（例えば地中）を表す所定のデータブロックで、キャラクタが侵入可能な領域と不可能な領域の境界線を移動すれば、キャラクタは地表を移動することになる。同様に、キャラクタの水平方向の両側に侵入不可能な領域による「壁」を形成すれば、キャラクタは通路の左右に外れることはできない。
すなわち、キャラクタがプレーヤの命令にしたがって動く時、コンピュータプログラムは記憶された衝突ブロックを参照して命令に合った正確な通路を決定する。プレイフィールドは特にグラフィックブロックに分割されている。キャラクタが個々のグラフィック通路ブロックを通るとき、通路コントロールプログラムは、そのようなグラフィック通路ブロックに該当する個々の衝突ブロックを参照する。衝突ブロックは、例えばグラフィック通路ブロック内の通路が平坦か、傾斜しているかあるいは崖から落ちるかどうかを決定するのに用いられる。
この様な先行技術にかかわる問題は、キャラクタが螺旋状、上下が逆転あるいは斜めに傾斜した通路（本明細書において「傾斜路」という）でも進めることが望ましいことである。代表的な先行の通路プログラムは、キャラクタがまるで重力の作用によるかのように通路にしっかりと植え付けられたようにして動かすため、通常ではそのような傾斜あるいは上下が逆さまになった通路からはキャラクタは落下してしまう。
従って、前後に傾斜したり、左右に傾斜したり、上下が逆転した、通路セグメントを表示する、グラフィック技術を開発する必要があった。本発明はこの要求に応えるものである。
また、ビデオゲームに関わる他の試みの一つは、対戦モードにおいて二人のビデオゲームプレーヤが独立して画面上のゲームキャラクタを操作することである。例えば、プレーヤは、画面上のキャラクタを操作して障害物を避けたり、相手を倒し、あるいは「魔法のリング」を集めることによって最高点を取ることを競い合う。対戦ゲームの問題の一つは、二つのキャラクタが画面上で動き回るうちに一人のプレーヤが制御するキャラクタが、別のプレーヤが制御するキャラクタを大きく引き離してしまうことである。ゲームをより刺激的かつ挑戦的なものするためには、２つのキャラクタをより互角に近づけることが必要である。
したがって、あるキャラクタが別のキャラクタをはるかに引き離したとき、両者の間のリードの差を逆転又は短縮する方法を開発する必要があった。本発明はこの問題を解決するものである。
また、前記のような従来技術に係わる問題は、グラフィック通路ブロックの同じ領域において２つの異なる通路を定義できることが望ましいことである。残念なことに、上記のような方法では、通常衝突ブロックは１つの通路しか定義せず、各グラフィック通路ブロックは１つの衝突ブロックにしか対応しない。従って、従来は、通路を交差させるなど、あるグラフィック通路ブロックの同じ領域で複数の通路を使うことは困難であった。
このため、あるグラフィック通路ブロックの同じ領域で複数の通路を使うことができる改良技術が必要であった。本発明はこれらの要求を満たすものである。
また、この様なビデオゲームに係わる試みの一つは、別々のキャラクタを操作する二人のプレーヤが互いにプレイフィールド上を動くゲームキャラクタを競争させることができる競争モードを提供することである。これまでにも、プレイフィールド上を動く二つのゲームキャラクタが競い合う様々な先行のテレビゲームが作られている。そのような競争ゲームにおける問題の一つは、プレイフィールド上で片方のキャラクタが相手をはるかに抜き去り、両方のキャラクタを同じ画面に表示するのが困難になることであった。さらに別の問題は、分割画面においては、プレイフィールドを構成する二つの画面のそれぞれのグラフィックのサイズが画面の分割によって小さくなることである。
従って、分割画面を使うビデオゲーム用の方法を開発する必要があった。本発明はこの要求を満たすものである。
また、ビデオゲームの実施に係わる試みの一つは、未熟なプレーヤが技を磨き、上手なプレーヤとゲームを楽しめるようにすることである。この目的を達成する上での問題は、画面上のゲームキャラクタの進行が、キャラクタの動きを操作するプレーヤの技に掛かっていることである。習熟したプレーヤが操作するゲームキャラクタは、未熟なプレーヤが操作するゲームキャラクタよりも遠くに、早く動き回ることが多い。そのため、習熟したプレーヤが操作するゲームキャラクタが画面上の別のキャラクタよりもはるかに遠くまで進んでしまい、習熟度の違うプレーヤの２つのゲームキャラクタを同じ画面に表示することができなくなることである。
【発明の開示】
まず、本発明は、ディスプレイ画面上の通路をビデオゲームキャラクタが通るときに、キャラクタの外見を制御する方法を含む。この方法は特に、グラフィックコントローラ、デジタルメモリ及びディスプレイ画面を含むビデオゲームシステムに対して効果的である。傾斜路は、画面上に表示される部分（セグメント）に区分されている。ビデオゲームキャラクタは、この傾斜路のある少なくとも１箇所では直立して表示され、また別の少なくとも１箇所にさしかかったときには倒立して表示される。デジタルメモリには多数のスプライトのパターンが記憶されている。それぞれのパターンは、キャラクタが傾斜路を通るときのそれぞれの位置におけるキャラクタの外見に該当する。傾斜路の、キャラクタが居る位置は、キャラクタがそこを通る間追跡される。キャラクタが通路を通る際、傾斜路の各位置に応じたキャラクタを描くために、それぞれ異なったスプライトパターンが用いられる。
かくしてキャラクタは、例えば急角度で傾斜する通路、横にねじれた、果ては上下が逆転した通路すらも、進むことができる。通路がねじれたり、回転してもキャラクタが落下することはなく、キャラクタの像はその通路を進むにつれて変化する。例えば、通路が逆さまになると、キャラクタも倒立する。通路が傾斜した場合は、あたかもキャラクタが画面と平行な通路を通っているように、キャラクタの頭頂部が見える場合もあり得る。
また、本発明は、複数のプレーヤによる対戦ビデオゲームを制御する方法を提供するためのもので、ここでいうビデオゲームは、ビデオ表示画面、グラフィックスコントローラ、デジタルメモリ及び少なくとも１台以上の入力装置を含むシステムである。本実施例においては、分割画面表示を使用し、上の画面はプレイフィールドの第一領域を表示し、下の画面ではプレイフィールドの第二領域を表示する。第一のキャラクタは上の画面に表示され、第二のキャラクタは下の画面に表示される。上の画面のプレイフィールドの第一領域は、画面上の第一キャラクタの進行につれてスクロールし、下の画面のプレイフィールドの第二領域は第二キャラクタの進行を示しながらスクロールする。入替えアイテムは、上下画面の少なくとも一つに表示される。入替えアイテムが作動すると、その結果として、上下の画面の各プレイフィールドの表示が入れ替わり、入替え後には、上の画面がプレイフィールド第二領域にいる第一キャラクタを表示し、下の画面はプレイフィールド第一領域にいる第二キャラクタを表示する。
このように入替えアイテムを作動させることにより、第一、第二キャラクタの位置が入れ換えられる。そのため、相手をはるかに引き離して前進したキャラクタは、今では相手よりはるかに後ろにつくことになる。したがって、この入替えアイテムは、ビデオゲームの遊技に新しい戦術的要素を追加するものである。
また、本発明は、一つの態様において、本発明は、ビデオ表示画面、ユーザーが操作するコントローラ及びデジタルメモリを含むシステムを使って画面上で動き回るビデオゲームキャラクタを表示する方法を含む。プレイフィールドは、次々にスクロールされる一連の表示画面である。またビデオゲームキャラクタは、プレイフィールド上の通路に沿って動作する。プレイフィールド上で動くゲームキャラクタは、キャラクタが置かれたプレイフィールドをスクロールする事によって表示される。
各々の通路セグメントを定義するのに使う複数の衝突ブロックはデジタルメモリに記憶される。プレイフィールドは、その通路を構成する複数のグラフィック通路に分割される。記憶されたキャラクタの衝突のタイプは、特定のキャラクタが第一キャラクタ衝突タイプか第二キャラクタ衝突タイプのどちらかであると見なされる。ここでは個々のグラフィック通路ブロックから個々の衝突ブロックへの参照が行われる。このうち少なくとも一つの参照は、特定のグラフィック通路ブロックの中で動き回るキャラクタのキャラクタ衝突タイプに即して行われる。ユーザーがグラフィックコントローラに入力したものに対するプレイフィールドにおけるキャラクタの動きはディジタル画面に表示される。表示されたキャラクタの像は、通路を構成する個々のグラフィック通路ブロックを参照した個々の衝突ブロックの通路セグメントによって定義される通路を辿る。記憶されたキャラクタ衝突タイプ情報は、キャラクタが既定の位置を通過すると変化し、その変化の後では、記憶されたキャラクタ衝突タイプ情報は変化の前のキャラクタ衝突タイプとは別のものとなる。
従って、例えばそのキャラクタは、通路であって、その通路自体と交差する通路を辿ることが可能になる。キャラクタが初めて交差部分に近づくと、一つの衝突情報を記憶し、交差部分の一方の通路を通り、当該部分の他方の通路と衝突することはない。また、キャラクタがその交差部分に２度目に近付くと、もう一つの衝突情報を記憶し、１度目に通った通路部分に衝突することなく、交差部分の他方の通路を通る。
また、本発明では、ビデオ表示画面を使い、デジタルメモリを有するグラフィックコントローラを含むビデオゲームシステムで使われるビデオゲームにおいて、ゲームキャラクタの表示を制御する方法を提供する。ゲームキャラクタの動きは、二人のユーザが操作する入力装置で操作される。第一のゲームキャラクタは、第一のユーザの入力装置で操作し、第二のゲームキャラクタは第二のユーザの入力装置で操作される。このビデオゲームは、一連のビデオ画面上に表示されるプレイフィールド上で動き回るゲームキャラクタを含む。
分割画面表示を用意する。第一のプレイフィールドは表示画面の上方に表示され、第二のプレイフィールドは表示画面の下方に表示される。最初と第二のプレイフィールドの表示にはインターレースビデオ画面レンダリング技衝が用いられる。ユーザ入力装置は、画面上の第一と第二のキャラクタの動きをコントロールするゲームキャラクタ動作コマンドを出力する。第一のキャラクタの動きは第一のプレイフィールドに表示され、第二のキャラクタは第二のプレイフィールドに表示される。
かくして、各プレーヤは明確に仕切られた分割画面上でゲームキャラクタの動きをそれぞれ独立して操作することが可能となる。第一のプレーヤは、第一のユーザ入力装置を用いて第一のプレイフィールド画面上の第一のゲームキャラクタの動きを操作し、第二のプレーヤは第二のユーザ入力装置を用いて第二のプレイフィールド画面上の第二のキャラクタの動きを操作することができる。
また、本発明では、ビデオゲーム表示画面、デジタルメモリ、第一ユーザ入力装置及び第二ユーザ入力装置を含むシステムで用いられるビデオゲームにおいて二つのゲームキャラクタの動きを制御する方法を提供することである。第一キャラクタは第一入力装置に応答して動き、次のキャラクタは第二入力装置に応答して動く。このビデオゲームでは、一連のビデオ画面像として表示されるプレイフィールドを動き回る二つのゲームキャラクタを含む一連のゲームキャラクタの動きのコマンドは第一プレーヤの入力装置によって与えられる。プレイフィールド上の第一キャラクタの一連の動きは、一連のコマンドに応答して画面上に表示される。この一連のコマンドは一時的にメモリに記憶される。画面上の第二のキャラクタの動きも、同様に一連のコマンドに応答して表示される。
この様にして、第二のキャラクタは第一キャラクタの動きを追って、それに倣って表示される。かくして第二キャラクタは第一キャラクタの動きと歩調を合わせて進行できる。
本発明の他の状態において、一人のユーザは第二キャラクタを周期的に操作して、２つのキャラクタが画面を動き回るときに第二キャラクタを第一キャラクタと競争させることができる。第二キャラクタが第一キャラクタに対して極端に遅れた場合あるいは第二キャラクタが所定時間制御入力がなかった場合は、ゲームは第二キャラクタが第一キャラクタを追い、それに倣うモードに戻る。
以上の内容や、この発明の他の目的や利点は、この種の技術の当業者であれば、以下の技術内容の詳細な説明や添付図面に基づいて、明確に理解できると思われる。
【図面の簡単な説明】
【図１】ビデオディスプレイと優先順位コントローラのブロック図、及び、本発明によるビデオ画像の生成に用いられるスクロール画面の概念図。
【図２】６０スクリーン幅で、８スクリーン分の高さのプレイフィールド全体の概念図。
【図３】図２のプレイフィールドの中のある1つの(空白)画面。
【図４】図３の画面の中の８ドット×８ドットのグラフィックセル。
【図５】５Ａは、図４のグラフィックセルを表示するのに用いられるカラーパターンを表わし、５Ｂは、５Ａのカラーパターンの２ドットを表示するための８ビットのバイトのカラー情報を表わす。
【図６】図４のグラフィックセルを５Ａのカラーパターンと対照するパターン番号表を示す。
【図７】本発明によるグラフィックコントローラのブロック図。
【図８】図６のパターン番号表に記憶したあるパターン番号を示す。
【図９】図６のカラーパターン番号表を使ってカラーパターン情報にアクセスするのに用いるステップの流れ図。
【図１０】図７のコントローラのコントロールRAMに記憶できるスプライトの表の一例。
【図１１】図７のコントローラのVRAMに記憶されたスプライトの属性表の一例。
【図１２】図７のコントローラのTVインターフェース回路の優先エンコーダ２５によって実施される優先順位をコード化する規則を示す表。
【図１３】図８のパターン番号のVFとhfビットの役割を示す一連のカラーパターンを表す。
【図１４】図７のグラフィックコントローラが用いる、優先順位に基づいてスプライトをリンクさせるデータリンク表の一例を示す。
【図１５】水平及び垂直方向の様々なサイズのスプライトを作り出すために様々なパターンを記憶できる、一連のパターンジェネレータデータフォーマットを示す。
【図１６】１６Ａ−Ｄは、本発明によるシャトルループを示し、１６Ａはキャラクタの５方向を示し、１６Ｂはキャラクタの相対位置、また１６Ｄはループの中心から相対位置までの距離を示す。
【図１７】キャラクタが図１６Ａ−Ｄのループを通るときに画面に表示されるキャラクタの像のパターンの一群を示す。
【図１８】１８Ａ−Ｂは、図１６Ａ−Ｄのループのキャラクタの動きの表示を制御するのに用いられるコンピュータプログラムの流れ図を示す。
【図１９】図１９Ａ−Ｂは、キャラクタが図１６Ａ−Ｄルーブを通るときのキャラクタパターンを選択し、キャラクタの相対位置を決定するのに用いられる角度の表と相対位置の表。
【図２０】図２０Ａ−Ｃは、本発明による通路を構成するオーバラップループ通路の図及びグラフィック通路ブロック。
【図２１】図２０Ａ−Ｃのグラフィック通路プロックの通路セグメントを定義するのに用いる一群のグラフィックブロックの図を示す。
【図２２】グラフィックプロックと衝突ブロックの対照表。
【図２３】衝突ブロックによって定義される通路セグメントを探すプロセスを図解するのに用いられる図２１の一群の衝突ブロックの１つを拡大したものを示す。
【図２４】キャラクタがプレイフィールドの規定の領域を通るときに、ゲームキャラクタの衝突タイプを変えるのに用いられるプロセスの流れ図。
【図２５】２５Ａ−Ｂは、ある先行技術による単一画面グラフィックで、プレイフィールドグラフィックとキャラクタグラフィックを含むもの、及び、ある先行技術による分割画面グラフィックで、プレイフィールドグラフィックの一部が分割画面の映像の中では失われているものを示す。
【図２６】２６Ａ−Ｂは、別の先行技術による単一画面グラフィックで、同一画面の２つのキャラクタが互いに矢印の方向に離れて行くものの連続した姿を示す。
【図２７】２７Ａ−Ｂは、本発明による単独画面グラフィックと分割画面グラフィックを示す。
【図２８】インタレースフレームを示す。
【図２９】偶数のスキャンフレームを示す。
【図３０】奇数のスキャンフレームを示す。
【図３１】３１Ａ−Ｄは、本発明による分割画面の映像の描写における４つのステージ(段階)を示す。
【図３２】図３１Ａ−Ｄの４ステージに該当するタイミング図を示す。
【図３３】図３３Ａ−Ｂは、インタレースモードにおいて分割画面表示の描写中にデータの移行を説明するコンピュータプログラムの流れ図。
【図３４】分割画面表示の描写中にグラフィック情報の説明をコントロールするのに用いられるコンピュータプログラムを示す。
【図３５】インタレースモードで用いられるグラフィックパターンを作り出すのに用いられる単一のセルを示す。
【図３６】インタレースモードにおいてグラフィックパターンを作り出すのに用いられる単一のセルのもう１つの例を示す。
【図３７】図３７Ａ−Ｅは、第１、第２のプレーヤ(キャラクタ)がプレイフィールドを通るときに現れる一連の画面表示を示すことによって協調モードの働きを示す。
【図３８】協調モードにおける第２のゲームキャラクタの動きを制御するのに用いられるコンピュータプログラムの働きを説明する流れ図を示す。
【図３９】第２のゲームキャラクタが協調モード又は対戦モードのどちらを使うべきかを決定するために用いられるコンピュータプログラムの流れ図を示す。
【図４０】第２のキャラクタが第１のキャラクタからはるかに遅れ、表示画面から見えなくなった後で、第２のキャラクタを画面に戻すのに用いられるコンピュータプログラムの流れ図を示す。
【図４１】本発明による分割画面表示で、プレイフィールドの領域Ａが画面の一番上に、また領域Ｂが一番下に表示され、第1のプレーヤ(キャラクタ)が画面の一番上に、又第２のプレーヤ(キャラクタ)が画面の一番下に示されるものを示す。
【図４２】図４１の上と下のプレイフィールド領域が入れ替わった分割画面表示を示す。
【図４３】図４３Ａ−Ｂは、画面表示が図４１の画面表示から図４２の画面表示に変わるときの情報の交換を制御するのに用いられるコンピュータプログラムの流れ図を示す。
【図４４】本発明による、動作の前の入替えアイテム(オブジェクト)を示す。
【図４５】動作の後の入替えアイテムを示す。
【発明を実施するための最良の形態】
本発明は、ビデオゲームに用いられる新規の装置と方法に関するものである。以下の説明は、当業者が本発明を製作、使用できるようにするために提示するものであり、また特定の適用とその必要条件の文脈で作成されたものである。当業者にとっては、この望ましい実施例に様々な修正を行うことができ、ここに定義されている本発明の原理は、本発明の精神と範囲から逸脱せずにその他の実施態様及び応用に適用できる。従って、本発明はここに示す実施例に限定することを意図するものでなく、ここに開示する原理と特徴から逸脱することなく広い範囲に適用できるものである。
［プレイフィールドと表示データ］
本発明のこの実施例においては、ＴＶディスプレイ画面にグラフィック画像を映し出すためにビデオディスプレイジェネレータが使われる。画像を映し出すのに使われるグラフィック情報は、図１に示す一連の画面で、ある画面の後ろに別の画面が隠されるものと考えることができる。これらの画面は、メモリの所定領域上にデータによって構成される平面である。最初の画面はスプライト画面である。次の２つの画面は、スクロール画面Ａとスクロール画面Ｂである。ＴＶ画面に映し出される実際の映像は、それぞれが別々の色で示され、それらのドットが映像を形成するような一連のドットの列で構成される。それぞれのドットがどの様に表示されるかを決めるグラフィック情報は３つの画面から提供される。優先順位コントローラが、個々のドットに対してスプライト画面、スクロール画面Ａ又はスクロール画面Ｂのどれを使って表示を行うかを決定する。３つの画面のグラフィック情報は、優先順位が与えられており、一番優先順位の高いドットが表示される。
スクロールＡは、ビデオゲームが行われるプレイフィールドである。プレイフィールドはゲーム装置内の仮想空間で、例えば、国の領土、迷宮、島、城の中などを表す。スクロールＢは、スクロールＡの背景である。ビデオ表示は、ある瞬間にはプレイフィールド全体のごく一部だけを表示する。プレイフィールド全体は、４８０の画面から成る。ビデオゲームは、プレイフィールドの上でビデオゲームのキャラクタが動き回ることを含む。図２の図解は水平方向に６０画面、垂直方向に８画面を持つプレイフィールドを示す。本発明のシステムは、単独画面モード又は分割画面モードのいずれかで操作できる。単独画面の操作では、単独のプレイフィールドのみが表示可能である。この場合の表示画面は、ビデオゲームのキャラクタが現在通っているプレイフィールドの部分に該当する。分割画面モードでは、２つの画面が同時に表示され、１つは第１のビデオゲームキャラクタ用、次は第２のキャラクタ用である。それぞれのキャラクタに対し、表示画面はその時そのキャラクタが動いているプレイフィールドに該当する。
ディスプレイ上に現われるプレイフィールドの画像は、スクロールＡ、Ｂ用に記憶されたグラフィック情報によって形成される。スプライトと称する像も画面に現われる。スプライトは、プレイフィールドの上を動き回ることができる対象である。例えば、ゲームキャラクタもスプライトである。スプライトのグラフィック情報はスプライト画面に記憶される。
ノンインタレースモードにおいては、各画面は水平に３２０ドット、垂直に２２４ドットで構成される。図３はそのような画面の例を示す。この画面は、例えば図２に示すプレイフィールド上の四角Ｑで示す位置にある。四角Ｑは、プレイフィールドの左上隅のプレイフィールドベースアドレスから、水平及び垂直の所定の相対位置（オフセット）に位置する。
プレイフィールド全体はグラフィックブロックに分割される。各グラフィックブロックは、グラフィックセルに分割される。各グラフィックセルは、画素に相当するドットに分割される。各グラフィックセルは、画面の８ドット×８ドットの領域を表わす。この実施例においては、各画面に水平に４０のグラフィックセルが、垂直に２８のグラフィックセルがある。
典型的なプレイフィールドのグラフィックは、最初、画家によって創作されることは理解に難くない。その後、グラフィックは「デジタル化」される。すなわちグラフィックスはグラフィックセルに分割される。グラフィックセルは、記憶されたカラーパターンと照合されるが、このカラーパターンは、グラフィックセルを色付けする色情報を含む。このように、記憶されたカラーパターン情報は別のグラフィックセルに再利用できる。
例えば、プレイフィールドのスクロールＡ部分の特定の領域は緑の草を代表することができる。緑の草を表わす各グラフィックセルは、同じ記憶パターン情報を使うことができる。プレイフィールドの緑の草を表わす各グラフィックセルに対して別に記憶した緑の草のグラフィックを使う代わりに、緑の草のパターンを１つ記憶して、個々のグラフィックセルがその記憶されたパターンを使って草の画像を作り出す。
図４の図解は、８ドット×８ドットのグラフィックセルの例を示す。この表示像の各セルに対して、セル中のドットをスクロールＡ画面、スクロールＢ画面又はスプライト画面用のどれに記憶したカラーパターンを使って描写するかの決定がなされる。上述のように、同じ記憶パターン情報を多数のグラフィックセルに使うことができる。下記に説明するグラフィックコントローラの機能は、この決定を行うものである。
カラーパターン情報は、スプライト画面、スクロールＡ及びスクロールＢ画面に対して記憶させることができる。各パターンは、グラフィックセル全体に対するドットによる色描写パターンを意味する。例えば、図５Ａは、ａ１−ｈ８の６４ドットに対する色情報を持つパターンを示す。図５Ｂに示すように、各ドットに対して４ビットの色情報が使われる。色情報は、８ビットのバイト３２個に記憶され、具体的には、各バイトがあるドットに対する４ビットと他のドットに対する４ビットを記憶する。表示画面Ｑの各グラフィックセルに対して、スプライト画面、スクロールＡ画面又はスクロールＢ画面のどれに記憶したカラーパターンを使うかの決定がなされる。次に、このように選択されたパターンのカラーデータを使ってそのセルのドットが点灯される。
記憶されたスクロールＡとスクロールＢのグラフィックパターンを探すのに使われる一般的な方法は、図６に示す通りである。スクロールＡのセルに対するパターン番号表が維持され、スクロールＢに対する別の表が維持される。スクロールＡ表に対しては、画面の各セルに対して１つのパターン番号が記憶される。各パターン番号は、スクロールアドレス表への入力の見出しと一緒に記憶され、このアドレス表は、パターン番号に対応する記憶されたグラフィックパターンにアクセスするのに使われるサブルーチンを指示する。この様にして、スクロールＡの各グラフィックセルに対するグラフィックパターンが探される。スクロールＢ画面のグラフィックセルに対して使われるグラフィックパターンも同じ方法で探すことができる。
スクロールＡのグラフィックセルとスクロールＢのグラフィックセルに対するカラーパターンを探す方法は、スプライト画面に対するカラーパターンを探すステップの検討と共に以下に説明する。
［グラフィックスコントローラ］
図７には、本発明に基づいて、グラフィックスコントローラ４０のブロック図が表示されている。コントローラ４０には、ＲＡＭ４２、ビデオＲＡＭ（ＶＲＡＭ）４３、マイクロプロセッサ４４、プロセッサインタフェース４５、制御ロジック４６、制御ＲＡＭ４８、水平軸カウンタ制御部５０、垂直軸カウンタ制御部５２が内蔵されている。さらに、コントローラ４０には、割り込み制御部５７、直接メモリーアクセス（ＤＭＡ）制御部５９、ラインバッファ６０、レジスタ６１および入出力インタフェース６４が内蔵されている。ＴＶインタフェース回路５４は、ＴＶシステム５６にＲＧＢアナログ信号を供給する。
ＲＡＭ４２は、カートリッジ式のＲＯＭ５８からグラフィックス情報を受信する。本発明に含まれていないカートリッジ６３については、１９９０年４月１７日付け申請、米国特許申請番号０７／５１０，０７０で公開されている。このカートリッジ６３は、マツバラ氏によって発明されたものである。ここに引用することにより、前記申請の前明細を本文にも適用する。
第１及び第２外部コントローラ７２と７４は、入出力インタフェース６４を介してコントローラ４０に接続されている。コントローラ７２と７４にはそれぞれ、ゲームキャラクタの動きを制御するためのボタンが装備されている。
第１コントローラの７２は、第一のゲームキャラクタ（スプライト）の動きを制御する。第２コントローラの７４は、第二のゲームキャラクタ（スプライト）の動きを制御する。Ｓ／Ｐボタンは、ゲームの開始／停止を制御する。Ａ、Ｂ、Ｃの各ボタンはそれぞれ、キャラクタアタックやスペシャシルパワーの対決などの特殊なゲーム機能に使用する。Ｌ、Ｒ、Ｕｐ、Ｄｎのラベルの付いたボタンは、ゲームキャラクタを左右上下に移動させるときに使用する。
ビデオＲＡＭ４５は、動作時には、図５Ａに示されているパターンと類似した、スプライト、画面及びスクロールＡとスクロールＢの両画面に関するグラフィックスパターンを記憶する。ＴＶ表示画面を１ラインずつ走査するときに、グラフィックス情報に一致する、スクロールＡ、スクロールＢおよびスプライトの各画面に関するパターンが検索され、３つの独立した信号が生成される。これら信号はそれぞれ、スクロールＡ、スクロールＢおよびスプライトの画面のグラフィックスパターンを表す。ＴＶインタフェース５４内の優先順位コントローラは、指定された優先順位に従って１セルずつ適切な信号を選択する。ＴＶインタフェース５４内のカラーデコーダとＤＡＣは、優先順位コントローラからの出力を受信し、それと一致するＲＧＢ信号を生成し、ＴＶシステム５６に転送する。
さらに詳しく述べると、制御ロジック４６がプレイフィールド内にどのグラフィックスセルを表現すべきかを決定する、水平軸スクロール値と垂直軸スクロール値を受信する。
ＶＲＡＭ内のパターン番号テーブルアドレスは、受信した垂直軸値と水平軸値に基づいて算出される。算出されたアドレスには、グラフィックスセルの彩色に使用されるパターンを識別する番号が記憶される。パターン番号テーブルに記憶される代表的パターン番号は図８のとおりである。検索されたパターン番号は、ＶＲＡＭ４５に記憶されているカラーパターンにアクセスするときに使用される。カラーパターンとパターン番号テーブルから検索されたカラーパレット選択情報がともに、カラーＲＡＭアドレスの算出に使用される。図９に、スクロールパターン情報の検索プロセスがさらに詳細に説明されている。このプロセスは、スクロールＡとスクロールＢの各パターンの検索プロセスと類似している。
以下のパターン番号の記録事項（エントリ）テーブルは、図８のカラーパターン番号のバイトの内容を表している。
パターン番号テーブルの記録事項
ｐｒｉ：  優先順位
ｃｐｌ：  カラーパレット選択ビット
ｃｐｏ：  カラーパレット選択ビット
ｖｆ：    垂直軸反転ビット
ｈｆ：    水平軸反転ビット
ｐｔｌｏ−ｐｔｏ：パターンジェネレータ番号
優先順位ビットはパターンの優先順位を表す。２つのカラーパレット選択ビットは、適切なカラーパレットの選択を表す。本実施例では、４種類のカラーパレットが使用されている。
ｖｆとｈｆの両ビットについて、図１３の図を参照して説明する。基本的には、ｖｆビットとｈｆビットを使用すると、セル単位での水平軸反転と垂直軸反転が可能となる。つまり、ｖｆ値とｈｆ値に従って、セルの垂直軸方向又は水平軸方向、あるいは垂直軸と水平軸の両方の方向を変更することができる。この方法では、グラフィックス情報をさらに高密度に記憶することができる。ｖｆとｈｆの両値を使用して、各カラーパターンの方向を変更するだけで、記憶されている同じカラーパターンを使用して各種グラフィックス画像を生成することができる。
コントローラ４０は、以下のようにスプライトグラフィックスを処理する。垂直軸カウンタ５６から垂直軸カウンタ信号を受信すると、制御ＲＡＭ４８内で、垂直軸カウンタにより指示された垂直軸位置と同じ位置をもつスプライトが探索される。制御ＲＡＭには、垂直軸位置、スプライトのサイズ、リンク番号およびパターン番号が記憶される。図１０に示されているスプライトテーブル内で、指定された垂直軸位置を持つ１つ又は複数のスプライトが検出されると、その垂直軸位置を共用しているすべてのスプライトに関するサイズとリンク番号が、ＲＡＭ４８から制御ロジック４６に返される。ビデオＲＡＭ４５には、スプライト修飾表（属性テーブル）が記憶される。このスプライト属性テーブルでも、該当する垂直軸アドレスを持つスプライトが検索される。図１１は、スプライト属性テーブル内の記録事項（エントリ）のフォーマットを表している。このような垂直軸アドレスを持つ各スプライトのパターン番号と水平軸位置が、ＶＲＡＭ４５から制御ロジック４６に返される。
なお、図１１において、スプライト属性はＶＲＡＭ上に記憶されており、基準アドレスはレジスタ＃５により示される。各スプライトごとに属性表示に８バイト（４ワード）必要であり、この属性は、表示位置、優先順位、スプライトジェネレータ番号及び属性を表す。属性テーブル始めから、スプライト０，１，２，３のように番号が順次割り当てられる。スプライト間の優先順位は、スプライト番号の順序によって決定されるのではなく、各スプライトのリンク・データによって決定されるので、プログラミング可能である。
スプライト間の優先順位は、以下の説明するスプライトリンクテーブルに従って決定される。決定された各スプライト優先順位に従って、特定の垂直ラインに関する、表示するスプライトのパターン番号が決定される。水平軸カウント情報は、水平軸カウンタ５０によって提供される。ライン上に複数のスプライトが存在するときには、表示すべきスプライトと表示してはならないスプライトが、スプライトの優先順位の計算結果から決定される。パターン番号は、ＶＲＡＭ４５に記憶されている適切なスプライトカラーパターンのアドレス指定に使用される。垂直軸ラインに関するドット単位のイルミネーション情報は、ラインバッファ６０に転送される。
ＴＶインタフェース回路５４内の優先順位コントローラの役割は、図１２のテーブルを参照すればさらに深く理解することができよう。表示画面に写し出される各グラフィックスセルごとに、スプライト、スクロールＡ、スクロールＢの各画面での優先順位が設定される。このテーブルに従って、優先順位が最も高いグラフィックスセルが表示される。いちど優先順位が決定されると、スプライト、スクロールＡ、又はスクロールＢのいずれかの信号のうち優先順位の最も高い信号に対しＲＧＢアナログ信号が生成される。したがって、例えばスクロールＡが所定のグラフィックスセルに関して最も高い優先順位を有しているときには、グラフィックスコントローラにより生成された、そのセルに関するスクロールＡのカラー情報が、ＲＧＢアナログ信号としてＴＶシステム５６に供給される。
［スプライト］
スプライトは、ＶＲＡＭ４５に記憶されているスプライト属性テーブルエントリとＲＡＭ４２に記憶されているスプライトステータステーブルを使用して定義される。以下のスプライトステータステーブルには、主役（ヒーロー）クラスのスプライトと敵又は移動プラットフォームなどの他の各種スプライトに関する、ＲＡＭ４２に記憶されている代表的ステータス情報がリストアップされている。
スプライトステータステーブル
バイト数  内容
１  アクション番号
１  アクションフラグ
２  ＶＲＡＭ内のオフセット
４  パターンテーブルのアドレス
４  プレイフィールド内のＸ軸方向オフセット
４  プレイフィールド内のＹ軸方向オフセット
２  ±Ｘ軸方向速度
２  ±Ｙ軸方向速度
１  キャラクタの中心からキャラクタのいちばん下までの垂直軸オフセット（ドット数）
１  キャラクタの中心からキャラクタのいちばん下までの水平軸オフセット（ドット数）
１  スプライトの優先順位
１  垂直軸幅（ドット数）
１  パターン番号
１  パターンカウンタ
２  パターン変更番号
１  パターンタイマカウンタ
１  パターンタイママスタ
１  衝突サイズ
１  衝突カウンタ
１  ルーチン番号１
１  ルーチン番号２
２  ルーチン番号１
１  ルーチン番号２
２  ループ（ｓ字ループではない）を通過するキャラクタの角度
１  ライドオンフラグ
１  ヒットフラグ
２  Ａ／Ｂタイプ衝突設定
アクション番号は、実質的にはスプライトの名称を表す。各スプライトには固有のアクション番号がある。アクションフラグタイプには、８ビットが使用される。そのうちの１ビットは、スプライトを左右どちらの方向に向けるのかを示す。別のバイトは、スプライトをその頭頂部と足元のどちらで固定するのかを示す。さらに別のバイトは、オフセット（相対位置）としてスプライトの上端又は下端までのどちらを使用すべきかを表す。さらに別のバイトは、スプライトを表示画面のフィールド表示内に表示するか否かを指定する。スプライトの生成に使用されるパターンデータの基準アドレスを指示するのに、４バイトが使用される。別の４バイトは、プレイフィールド内のスプライトのＸ軸方向オフセットを示すのに使用される。また別の４バイトは、プレイフィールド内のスプライトのＸ軸方向のオフセットを示すのに使用される。スプライトのＸ軸（左右）方向の移動と速度を表すのに２バイトが使用される。別の２バイトが、スプライトのＹ軸（上下）方向の移動と速度を表すのに使用される。さらに１バイトが、スプライトの中心からスプライトのいちばん下までの垂直軸オフセットをドット数で設定するときに使用される。さらに別の１バイトが、スプライトの中心から両端までの水平軸オフセットをドット数で設定するときに使用される。スプライトの優先順位を表すバイトや、スプライトの水平軸方向の幅（ドット数）を示すバイトもある。
パターン番号を表すバイトも存在する。画面上に各スプライトパターンの表示時間を指示する１バイトのパターンカウンタがある。スプライトは、一連のパターンを使用して描写することができるが、各パターンの持続期間を設定しなくてはならない。パターン変更番号としても知られるマスターパターン番号を指示するのに２バイトが使用される。例えば、それぞれ移動しているスプライトのイメージシーケンスを表す４つのパターンが存在し、別の４つのパターンが、回転しているスプライトのパターンシーケンスを表すのに使用されると仮定する。パターン変更番号は、パターンのどのセットを使用するかを表す。１バイトのパターンタイマは、パターンカウンタと同じで、それにはパターンを表示する時間数が配置される。別のバイトは、カウントアップ／ダウンしている間、現在のカウントを保持しておく。さらに別のバイトには、ヒットが発生したか否かを判断するために、キャラクタのサイズを決定するヒットテーブルに索引を付与するヒット番号が配置される。このヒット番号は、スプライトの衝突ボックスのサイズを示す。これは、敵とみなす目標の大きさをスプライトが判断できるようにすることなどを目的としている。例えば、ヒーロースプライトは発射用スプライトを発射する敵スプライトにより襲撃される可能性がある。発射物がヒーローに命中したか否かを判断するときには、ヒーローのヒットサイズが検出される。衝突カウントは、スプライトを“消滅”したり勢力を弱めたりするのに必要な衝突回数や命中回数を表す。
サブルーチン０を表すのに１バイトが使用される。例えばスプライトが現在移動していないときには、スプライトを表示するため１つのサブルーチンが呼び出される。スプライトが移動しているときには、そのスプライトを表示するため別のサブルーチンが呼び出される。別のバイトがルーチン番号１を表す。例えば、スプライトが停止し、発射しているときには１つのサブルーチンが呼び出される。スプライトが停止しているが発射していないときには、別のサブルーチンが呼び出される。
キャラクタの角度方向を変更するために２バイトが使用される。これらは、上昇傾斜／下降傾斜面上の通路、あるいは３６０°のループを通過する通路を追跡するのに使用することができる。ライドオンフラグのステータスを示すのに１バイトが使用される。プレイフィールド内には、スプライトが「乗る」ことができる「物体」が、「イベント」として存在する。例えば、スプライト画面内に移動する台が存在するときには、スプライトはこのような台に乗ることができる。スプライトがこの台に乗っているときには、ライドオンフラグが設定される。クラッシュフラグは、スプライトが壁や敵のような、通路以外のオブジェクトにぶつかったか否かを示す。スプライトがＡタイプ衝突スプライトかＢタイプ衝突スプライトのどちらであるかを示すのに、さらに１バイトが使用される。
［スプライトデータ属性テーブル］
図１１に示されている図は、ＶＲＡＭ４５に記憶される代表的スプライト属性テーブルの記録事項を表している。
以下のテーブルには、スプライト属性情報が表されている。
スプライト属性テーブル
ｖｐ９〜ｖｐ０：    垂直軸位置
ｈｐ８〜ｈｐ０：    水平軸位置
ｈｓ１、ｈｓ：      スプライトの水平軸沿いのサイズ
ｖｓ１、ｖｓ０；    スプライトの垂直軸沿いのサイズ
ｉｄ６〜ｉｄ０：    リンクデータ
ｐｒｉ：            優先順位ビット
ｃｐ１、ｃｐ０：    カラーパレット選択ビット
ｖｆ：              垂直軸反転ビット１：反転
ｈｆ：              水平軸反転ビット１：反転
ｓｎ１０〜ｓｎ０：  スプライトパターン番号
スプライトの垂直軸位置と水平軸位置は、スクロール画面の基準アドレスをベースとしている。スプライトの水平軸沿いのサイズは、８、１６、２４又は３２ピクセルのどれかとして設定することができる。同様に、スプライトの垂直軸沿いのサイズも、８、１６、２４、３２のいずれかの画素として設定することができる。スプライト優先順位ビットも設定可能であり、その利用法についてはすでに説明済みである。カラーパレットを選択することが可能である。ｖｆビットとｈｆビットを使用すると、パターンジェネレータ番号に関して説明した方法と同じ方法で、スプライトの向きを反転させることができる。スプライトパターン番号は、ｓｎ１０−ｓｎ０までの１１個のビットによって示される。リンクデータは、スプライト間の優先順位を指示するのに使用される。
［シャトルループの制御］
図１６Ａは、本発明におけるシャトルループが示されている。そのシャトルループは、スパイラルループの形状で、プレイフィールドの一部である。そのスパイラルループ（以下「スループ」という）は、らせん状又はコクル栓抜き形の通路になっており、その通路に沿ってキャラクタが走ると、そのキャラクタは、３６０°回転することになる。点Ｅ１とＥ２（入場位置）では当該通路の表面が正常であるから、キャラクタが当該スループ通路に沿って移動しながらそれらの点に来ると、そのキャラクタは矢印が示すように垂直に正立する。点Ｍ（中央位置）では当該通路が１８０°回転しているから、キャラクタが当該通路のこの点に来ると、矢印Ｍが示すように（完全に）逆立ちになる。点Ｔ１では、当該通路がねじれて側方に傾きかけているから、キャラクタは見える状態にあるけれども、本人の身体の向きは矢印Ｔ１が示すように斜めになっている。この傾斜する通路は、実物のレーストラックを模倣したもので、実物のレーストラックでは、カーブの部分が勾配や傾斜を有し、レーサーがトラック上から逸走しなくて済むようになっている。キャラクタが矢印Ｔ２で示された位置に来るとその姿が隠れて見えなくなるが、それは、傾斜路面が当該スループ通路の下面Ｕに隠れて見えなくなるようなループ通路の位置を、キャラクタが移動するからである。
当該スループは興味深いグラフィック画像が生じ、その画像では、スプライトは画面上のねじれたスパイラル通路を辿ることができ、スプライトは通路を上り、ついには通路は完全に裏返し、つまり１８０°逆さまになる。キャラクタは、当該通路がコルク栓抜き状に次の１８０°回転を続ける時、その通路を辿り続け、一時的に隠れて見えなくなるけれども、キャラクタは当該スループ通路の他方の側で正立して再び現れる。スループの画像を実現するためには、課題が多数存在する。スパイラル通路の各位置ごとに、適切なスプライトパターンを選択することは最小限必要であるが、その他にも以下の処理が必要である。スプライトキャラクタが通路に沿って移動するためには、その足を通路につけておく必要がある。
キャラクタは、多くの異なる向きで示されなければならない。つまり、横向きの姿から通路が９０°側方傾斜した時は真上から見た姿になり、また、完全な正立から倒立になり、さらに、通路の側方傾斜に従ってそれ以外の様々な角度の向きになる。図１７は、「テールズ」と愛称されるキャラクタスプライトについて、異なった外見のパターンを１２種類示している。
スパイラルループのスクロール画面でのパターンに対して、スプライトキャラクタの相対位置は、常に適切に定めなければならず、それは、スプライトキャラクタが、このようなスパイラルループに沿って移動するときには、スプライトキャラクタのしかるべき外見は変化するからである。図１６Ｂの中で１１０の符号を付けた線は、スプライトがスループ通路を辿る際の、ループからキャラクタの中心までの相対距離を大まかに示す。スプライトがスループのいずれかの端に位置しているとき、スプライトの足は通路に触れており、当該スプライトの中心は、明らかに通路上方に位置する。しかし、スプライトが通路に沿って移動するに伴い、スプライトキャラクタの中心からスループまでの距離が変わり、或る位置でスプライトとスループ通路の中心が一致する。例えば、スパイラルループ通路上で両者の距離がなくなるその位置では、当該通路が９０°側方傾斜しているから、キャラクタの頭頂部のパターンの映像が画面に示される。スプライトが途中の位置に来ると、そのスプライトの足が通路に触れており、当該スプライトの中心はスパイラルループ通路の下方の離れた位置にある。スプライトキャラクタが通路を辿り続けるにつれて、スプライトと通路の相対距離は次第に縮小し、スプライトは一時視界から消え、それからスループ通路のやや上方の離れた位置にその中心が来るように現れる。
［シャトルループの制御］
キャラクタがプレイフィールドのシャトルループに接近した時、図１８Ａ−Ｂのプログラムが実行に移される。そのプログラムは、プレイフィールド上のキャラクタの位置を絶えず把握している別のプログラムに応答しながら、実行に移される。その別のプログラムは、キャラクタがシャトルループに接近しているかどうかを判断する。接近している場合は、図１８Ａ−Ｂのプログラムが実行に移され、キャラクタが実際にはまだスパイラルループ通路の上にいるかどうかを判断する。肝心なことは、他方のプログラムが、プレイフィールド上のある位置を記録していることで、この位置は、図１８Ａ−Ｂのプログラム実行を開始するに充分なほどシャトルループに近いと考えられる。
ステップ１００において、スプライトキャラクタの搭乗フラグが１に設定されているかどうかが判断される。スループ通路は、スプライトが搭乗可能な物体すなわち「イベント」であると見做される。キャラクタ搭乗フラグは単に、キャラクタがスループ通路上に着地したことを表す。
ステップ１０２において、キャラクタがジャンプ中であるかどうかの判断が行われる。このステップの必要な理由は、キャラクタが他の位置からのジャンプによって、シャトルループの始端の近傍に来ることが決して起こらないようにすることである。シャトルループに入れるキャラクタは、通路に沿って移動する者に限られ、ジャンプでは入れない。
ステップ１０３において、キャラクタがシャトルループに入る途中であるかどうかの判断が行われる。図１６Ａの矩形枠１０５で示すように、シャトルループのいずれかの端で定義される或る一定の領域がある。図１８Ａ−Ｂのプログラムは、キャラクタがこの入口領域の内部を移動しているかどうかの判断を行う。１０３によって示されるプログラムステップは、それら二つの領域のいずれかを通るキャラクタの移動を追跡し続けて、キャラクタが左右のどちらからでもよいが、シャトルループに入る途中であるかどうかを判断する。
ステップ１０３が、キャラクタがシャトルループに入る途中であるかどうかを判断することの重要性は理解されるであろう。以下に説明するように、キャラクタはシャトルループに入る時、非常に敏捷に動作しなければならない。さらに、キャラクタがいったんシャトルループに入ったら、次のセクションで説明するようにキャラクタの動きは、もはや衝突ブロックでは制御されなくなる。もっと正確に言えば、以下に説明するように、本セクションで述べる１個のオフセットテーブルを参照することによって制御される。
ステップ１０４において、キャラクタ搭乗フラブがその前に１に設定されてなく、しかもプレーヤが左右のどちらかからシャトルループに入る途中であれば、キャラクタ搭乗フラブは１に設定される。ステップ１０６において、スプライトの速度が予め設定した限界を超えていないかどうかが判断される。本実施例のビデオゲームの規則によれば、スプライトは或る一定の最低速度を維持しなけらばならない。そうしなければ、シャトルループに入ることができない。この特徴によってゲームがいっそう面白くなり、しかも迫真性が高まる。
ステップ１０８において、もう一度、キャラクタがジャンプ中であるかどうかの判断が行われる。図１８Ａ−Ｂのプログラムが、キャラクタがスループを通過する際に、反復的に実行されることの重要性を理解されたい。キャラクタがシャトルループを通過する途中でジャンプすることは可能である。スループはコルク栓抜きのようにねじれているから、プレーヤがジャンプすると、上方に上がることにならず、キャラクタはループから落下するという結果になりかねない。例えば、スプライトが右に走っている時、そのキャラクタが、左に傾斜、つまりねじれているループ面からジャンプすれば、キャラクタは上向きにジャンプすることにはならずに、図１６Ｃの矢印１２０によって示す飛翔経路で表すように下方に落ちる結末となるだろう。その一方、キャラクタがシャトルループ上を左に走りながら、そのループの右側の傾斜部分からジャンプした場合は、その左向きの水平速度は維持されながら下方に落ちるから、飛翔経路１２２を辿ることが判るであろう。その落下は、当該キャラクタが表面１２４にぶっつかった時、止まる。ステップ１１１において、キャラクタがシャトルループに搭乗しつつあるかどうかの判断が、再度行われる。搭乗しつつある場合は、ステップ１１２において、キャラクタのシャトルループ上でのＸ（水平）位置の判断が行われ、その次に、キャラクタのＹ位置に関する計算が行われる。ステップ１１４において、そのＸ位置に対するキャラクタの回転角度の計算が行われる。ステップ１０６、１０８、１１０において、キャラクタの速度が限界を超えていないこと、又はキャラクタがジャンプ中であること、又はキャラクタがもはやシャトルループ上に乗っていないこと、この条件のいずれかが判れば、図１８Ｂのステップ１１６への分岐が行われる。キャラクタ搭乗フラブはクリアされる。ステップ１１８において、数字１がキャラクタの方向カウンターに割り当てられ、ステップ１２０において、キャラクタの進行方向の速度の限界値が設定される。
方向カウンターは、キャラクタがループの右又は左に傾いた区間でジャンプして、そのループから落下する時の、当人の回転数を設定するために使用される。キャラクタは落下する際にとんぼ返りをする。そのとんぼ返りは、着地区域１２４の上方に或る大きさの最小距離が存在するループの一区間にキャラクタが居る場合だけ起こる。ジャンプの際に、キャラクタと着地区域１２４の間に充分な距離が無い場合は、キャラクタはその時点でのパターンのままで、ただ飛び降りる。ステップ１２０で設定した速度フラブによって、上述のジャンプ中のキャラクタの落下時のとんぼ返り、又は回転の速度が判る。
ループの中心に対するオフセット（相対位置）は、プレイフィールドの底辺のアドレスを基準として垂直方向に測った当該スループの芯から計算される。垂直方法に測った当該スループの高さは６４ドットである。従って、Ｙオフセットは、図１６Ｄに示すように、中心から上下に３２ドットである。当該スループの幅は３８４ドットである。Ｘドットが１ドット増えるごとに、そのＸドットに対するＹオフセットを図１９Ａ−Ｂのオフセット表に記憶させる。その表のオフセット値によって、図１６Ｂに示すような、スプライトの中心位置のオフセットが判る。
正しいスプライトのパターンは図１７の１２種類のパターンから選ばれる。そのオフセット表の各行に対して、方位表の中に１個の記録事項がある。例えば、キャラクタの位置のＸオフセットが１ドットである時、Ｙオフセットは０３２であり、方位参照値は＄００である。例えば、キャラクタの位置のＸオフセットが５０ドットである時、Ｙオフセットは０３０であり、方位参照値は＄１６である。方位表の記録事項は、その時点でのキャラクタのスパイラルループ上の位置に対するそのキャラクタの適切な外見を表すために、１２種のパターンのどれを選ぶかを示す。
その結果、スプライトのオフセットとスプライトの適切な外見との両方が、当該スプライトのスループ上の移動に伴うあらゆる位置に対して、必ず存在する。
［切り替え可能なＡ／Ｂ衝突画像］
本発明のこの実施例において、キャラクタは、ユーザーの命令に応じてプレイフィールドの左右一杯に設けられる、予め決められた通路を辿る。その通路は、プレイフィールド全体にわたって、見えるかも知れないし、一部分しか見えないかも知れないが、いずれにしても存在する。図２０Ａの説明図は、一つのループを形成し、しかもその一部が重なり合う通路（オーバーラップ通路）の一例を示す。衝突ブロックと称する記憶情報が、当該通路上のキャラクタを維持するために使われる。その衝突ブロックの使用は、シャトルループとの関連で上述した方法以外の、通路上のキャラクタを維持するための別案に相当する。
衝突ブロックのライブラリはＲＯＭ５８に記憶させてある。図２１は、図２０Ａのオーバーラップ通路上にキャラクタを維持するために使うことができる衝突ブロックの収集内容を示す。プレイフィールドの通路は、複数の画像用通路ブロックに分割されている。図２０Ｂは、オーバーラップループを含む画像用通路ブロックを示す。
キャラクタが通路に沿って進む時、キャラクタが当該時点でいずれの画像用通路ブロックを通過中であるかについての記録が維持される。図２２に示すような衝突表が、画像用ブロックから衝突ブロックへの相互参照を行うために使われる。その衝突ブロックは、実際には、キャラクタが辿る通路区間を定義する。画像用通路ブロックは単なる画像であって、それらの中には、衝突ブロックによって定義される通路区間の画像を含むものもあるし、含まないものもある。キャラクタは、通路に沿って移動しながら、或る画像用通路ブロックから別の画像用通路ブロックに移る時、衝突表を経由して画像用通路ブロックに照会して求めた衝突ブロックの個別の通路区間によって定義される通路に入る。
本システムの斬鮮な特徴は、画像用通路ブロックから衝突ブロックへの相互参照が、キャラクタ状態表に記憶させてある衝突の型の情報を頼りにして行えることである。キャラクタ衝突の型を変えることによって、画像用通路ブロックに別の衝突ブロックを参照させることができる。従って、キャラクタが辿る通路区間が、キャラクタの状態表の情報次第で決まるようにすることができる。
図２２を参照すると、通路ブロックから衝突ブロックへの相互参照に使われる衝突表が示されている。その表では、第一欄に通路ブロック番号が示されている。第二欄と第三欄に、同じ行の通路ブロックを参照することによって求められる衝突ブロックが示されている。第二欄に記載されている参照内容は、キャラクタ自体が“Ａ”型衝突情報を担っている場合に使われ、第三欄に記載されている参照内容は、キャラクタ自体が“Ｂ”型衝突情報を担っている場合に使われる。その表の参照内容の大多数は、キャラクタが担う衝突情報の型（ＡまたはＢ）とは無関係に同じであるが、画像用通路ブロックとの相互参照の一部は、キャラクタの衝突の型に従って決まる。
具体的に述べれば、画像用通路ブロックＧ６からの相互参照によって、衝突ブロックは、キャラクタの衝突型次第で、Ｃ１またはＣ８の両者のいずれかに決まることになり得る。それと同様に、画像用通路ブロックＧ１１からの相互参照によって衝突ブロックは、キャラクタの衝突型次第で、Ｃ４またはＣ５の両者のいずれかに決まることになり得る。オーバーラップ通路ブロックを構成する画像用通路ブロックの中の上記以外のものの参照先は、キャラクタの衝突型とは無関係に、同じ衝突ブロックになる。例えば、画像用通路ブロックＧ５から相互参照すれば、衝突ブロックは必ずＣ０になり、画像用通路ブロックＧ１２から相互参照すれば、衝突ブロックは必ずＣ３になる。
図２３の説明図を参照すると、図２１の衝突ブロックＣ１の拡大図が示されている。衝突ブロックＣ１は、キャラクタがＡ型の衝突情報を持っている時、画像用通路ブロックＧ６を参照することによって得られる。登場人物２００が通路に沿って左から右へ進んでいると仮定すれば、当人は画像用通路ブロックＧ６を通過する時は登坂している。当該キャラクタがブロックＧ６を通過する時の、表示画面上の実際の動きは、衝突ブロックＣ１を参照することによって制御される。Ａ型の衝突情報を持つ同一キャラクタが、ブロックＧ６を右から左へ通過するとすれば、そのキャラクタは降坂することになる。
もっと具体的に述べれば、衝突ブロックＣ１内には陰影付き領域と、無衝突陰影無し領域が示されている。その衝突領域（地）は、予め指定された論理情報、例えば論理“１”を記憶させることによって、ＲＯＭ内部のディジタル形式として表され、無衝突領域（空）は、予め指定された別の値、例えば“０”を記憶させることによって表される。衝突領域と無衝突領域の間の境界線によって一つの通路区間が定義される。キャラクタがＡ型衝突情報を持ちながら、画像用通路ブロックＧ６を進む時は、当人は衝突ブロックＣ１内部で定義される通路区間を辿る。ゲームキャラクタが辿るその通路は、複数個のそのような通路区間で構成されるが、それらの通路区間は、当該ライブラリ内の様々な衝突ブロックによって定義されている。
図２３において、ゲームキャラクタの輪郭が線２００によって示されている。ユーザーが、キャラクタ２００に対して左または右に動くよう、指示を与えると、キャラクタが通路区間との接触を保つためには、水平に動くべきか、斜めに動くべきか、上方に動くべきか、下方に動くべきかについて判断が行われる。
入力用制御装置７２または７４を操作するユーザーは、ＬまたはＲの印が付いているボタンを押して、キャラクタが左に動くべきか右に動くべきかを示すだけでよい。例えば、画像制御部が、キャラクタが或る画像用通路ブロックに入り、それを参照すれば図２３に示された衝突ブロックＣ１になり、しかもキャラクタがＡ型の衝突情報を持っていると判断した場合は、次に、当該制御部は、ブロックＣ１によって定義される通路区間を使って、当該画像用通路ブロックの端から端までのキャラクタの正確な動きを決めることになるだろう。例えば、ユーザーが、図２３内のキャラクタ２００に対して、左から右へ動くように指示したと仮定しよう。その移動後もキャラクタが通路区間上に残っていられるためには、当人が右に水平に動くべきか、右斜め上方に動くべきか、右斜め下方に動くべきかについての判断が行われる。
個々の通路区間に沿ったキャラクタの動きを制御する方法には、当該衝突ブロック内のゲームキャラクタのその時点での位置を把握することが含まれる。起こり得る幾つかのキャラクタの動きの中のどれが、キャラクタを衝突無しの空間に宙ぶらりんにするか、あるいは禁止された衝突領域に入り込ませるか、あるいは当該通路区間に乗せているかについての判断が行われる。キャラクタを当該通路区間に留めておけるような動きが選択される。
例えば、ここでも図２３を参照すると、予め指定した試験位置２０２、２０４、２０６が、結果の見込みを試すために使われるが、それは、キャラクタの先端２０Ｂが通路区間の表面に留まっていられるか、無衝突空間に入り込むか、あるいは衝突領域に入り込むかを判断することによって行われる。記憶させてある論理ビット（複数）で衝突領域を示すものは、キャラクタが入ることを禁止する領域である。位置２０４に向かってキャラクタが水平方向に動けば、禁止された衝突領域に入り込みことになるから、その選択は除かれる。位置２０６に向かって右斜め下方に動けば、キャラクタが禁止された衝突領域に入り込むことになるから、その選択もやはり除かれる。しかし、位置２０２に向かって右斜め上方に動けば、キャラクタはちょうど良く通路上に乗せられてそこに残ることになるから、それが選択される。
或る衝突ブロック内部の通路区間の位置特定に関して、つい先ほど記述した手法が、それと類似する各衝突ブロックごとの試験位置のセットも扱えることの重要性は理解されるであろう。手法がこのように統一されているので、高速画像表示がし易くなり、しかも、ゲーム通路の選定と作成に関する融通性が容易に高められる。その上、その手法の詳細にはプレイフィールド内の画像用通路ブロックのオフセット（位置）の把握が含まれるが、そのような詳細は、当該技術分野に精通している人達であれば理解することであるから、ここに詳述する必要はない。
図２０Ｂの線２１０によって示されるオーバーラップループの頂点で、図２４の流れ図で図解したやり方に従い、キャラクタの衝突型の情報の変更が行われる。すなわち、キャラクタがプレイフィールドの線２１０の近傍の領域を通過するたびに、キャラクタの衝突型が変えられる。キャラクタが、画像用通路ブロックＧ１１を右から左へ端から端まで移動した場合は、衝突型はＡからＢに変わり、キャラクタが、画像用通路ブロックＧ１１を左から右へ端から端まで移動した場合は、衝突型はＢからＡに変わる。それ故、その変更後、キャラクタの衝突型は衝突前の衝突型と異なる。図２２を参照すると、相互参照によってブロックＧ１１から求められる相手が、キャラクタの型の変化に伴って変わることを認めることができる。キャラクタがＡ型衝突情報を持つ時は、相互参照によってブロックＣ４が求められる。キャラクタがＢ型衝突情報を持つ時は、相互参照によってブロックＣ５が求められる。その代案として、画像用ブロックＧ１１に対して、キャラクタの衝突型とは無関係に、相互参照によって単一の衝突ブロックが求められるようにすることもできるが、それは、このブロックには通路区間の交差が無いので、通路がキャラクタの方向と無関係になるからである。
例えば、一人のキャラクタが当初は衝突型Ａを持ち、左から画像用通路Ｇ５を通過してオーバーラップループに入ると仮定しよう。キャラクタが画像用通路ブロックＧ６を通過する時、参照が行われて衝突ブロックＣ１が求められる。キャラクタが画像用通路ブロックＧ１１の頂点に到達した時、キャラクタが担っていた衝突型はＡからＢに変わる。キャラクタが左から右に降坂して再度画像用通路ブロックＧ６を通過しようとする際、この時は参照によって、衝突ブロックＣ８が求められる。その結果、画像用通路ブロックＣ６を最初に通過する際は、参照によって或る一つの衝突ブロックが求められるが、２回目に通過する際は、参照によって別の衝突ブロックが求められる。
それと逆に、キャラクタが当初に衝突型Ｂを持ち、当初は右から左にオーバーラップループに入る場合は、当人が画像用通路ブロックＧ６を通過する際に、参照によって衝突ブロックＣ８が求められる。キャラクタがそのループに従いながら上方に移動して、画像用通路ブロックＧ１１の線２１０で示された領域を横断する時、キャラクタが担っている衝突型情報はＢからＡに変わる。キャラクタが降坂して、再度、画像用通路ブロックＧ６を通過する際は、参照によって衝突ブロックＣ１が求められる。キャラクタが線２１０で示される領域を横ぎりながら前後に移動する場合は、キャラクタが担う衝突型情報がＡとＢの間を行ったり来たりしながら変化し続けることの重要性を理解するべきである。
キャラクタの衝突型によって決まる衝突ブロックを求めるために、参照手法を用いることにすれば、その利点として、互いに交差する通路の使用が可能になる。その上、キャラクタの衝突型に支配される参照手法の使用は、キャラクタが異なる方向から特定の通路ブロックに接近する時は、異なる衝突ブロックを引き出そうとする場合に特に有用である。
［分割画面対戦グラフィックス］
分割画面対戦グラフィックスの利点は、２つのスクロールする画面を表示し、各画面が、同じプレイフィールドの異なった部分にスクロールできることである。２つの画面のキャラクタスプライトは、それぞれ別個独立に２つの画面上で動くことができる。このことによる利点は、それぞれ独立してスクロール（する）スクリーン上で、完全な対戦が可能になることである。さらに、上方のスクロールスクリーンも下方のスクロールスクリーンも、スプライトグラフィックス情報を完全に含むことができる。なぜならば、２つのスクリーンは、単一スクロールスクリーンモードで占有されていた画面を半分ずつ占有し、２つの各スクロールスクリーンの画像は、垂直方向へ圧縮つまり縮められるからである。各画面のスクロール速度は、各キャラクタが画面を通る速度によって決まる。一方のキャラクタは他方のキャラクタのはるか引き離して前進することができる。また、本実施例においては、２つのスプライトキャラクタはそれぞれ独立してゲームポイントを加算していくことができる。
本分割スクリーンモードは、従来技術（先行技術）の限界を克服するものである。例えば、図２５Ａ−Ｂに初期の分割画面に内在する問題が例示されている。すなわち、図２５Ａに示す単一画面モードから図２５Ｂに示す分割図面モードへ移行する際に、プレーフィールド画面情報が一部失われてしまう。例えば大きな顔のグラフィックは、分割画面モードで部分的に失われるプレーフィールドグラフィックの例の一部である。図２６Ａ−Ｂは、従来のスクロール対戦ゲームのもう１つの内在的欠陥を示している。すなわち、対抗キャラクタがプレーフィールドにおいて距離が離れ過ぎると、視界から消えてしまうことがある。
図２７Ａは単一画面モードを示し、図２７Ｂは本発明に係る分割画面モードを示している。図２６Ｂにおける２つの分割画面は、図２７Ａにおける単一画面と比較して、垂直に圧縮したものとなっている。しかしながら、分割画面モードにおいて情報は全く失われておらず、すべてのスクロール情報およびスプライト情報が、それぞれ独立してスクロールする２つの画面のそれぞれにおいて使用できるものとして存在している。さらに表示は、２つのスプライトキャラクタがプレーフィールドにおいて離間した場合もいずれか一方の姿を決して失うことがない。
［インタレースモードの制御］
インタレースモードにおける動作の間、図２８に示すインタレース表示領域には、実対角線によって示す偶数走査線１０２と破水平線１０４によって示す奇数走査線の両方が含まれる。インタレースモードは、当業者には理解されるＴＶ動作における周知のモードである。１つのインタレース表示領域の全体は、２つの走査フレーム上を進むことにより生成される。図２９に示す１つの走査フレームの間に、偶数走査線が追跡される。図３０に示す１つの奇数走査フレーム間に、奇数線１０４が追跡される。
分割画面モードには、上側画面１０６と下側画面１０８がある。その２つの画面は、両者間の境界１１０によって分離されている。上側画面１０６と下側画面１０８はプレーフィールドの異なる領域を描き、かつ異なるスプライトキャラクタを描くことができるので、その２つのプレーフィールドを実行するためには、異なるスプライトグラフィック情報および異なるグラフィックプレーフィールド情報にアクセスしなければならない。現在の装置においては、上側および下側プレーフィールド１０６、１０８におけるスプライト情報のすべてを維持するために要求されるメモリ容量は膨大なものとなるおそれがある。したがって、本発明の本実施例によれば、記憶されたスプライトグラフィック情報を単一の偶数フレームを追跡している間に変更し、単一奇数フレームの追跡間に記憶されたスプライトグラフィック情報を再び変更する技術が用いられている。
より詳細には、図３１Ａ−Ｄの図面の説明に、単一フレーム追跡の４時点のセグメントの図が示されている。図３１Ａに示す第１のセグメントは、プロセッサ４４の垂直割り込みが呼び出される再追跡を表している。図３１Ｂに示す第２のセグメントは、上側画面の図面追跡を表している。図３１Ｃに示す第３のセグメントは、プロセッサ４４の水平割り込みが呼び出されるセグメントを表している。図３１Ｄに示す第４のセグメントは、下側画面が追跡される期間を表している。
図３２のタイミング図に、上記セグメントが発生する時間間隔を示す。１つのインタレースフィールドの全体の生成に使用される２つのフレームの各々は１／６０秒（１６ミリ秒）の間に実行される。したがって、１つの完全なインタレースフィールドは、１／３０秒（３２ミリ秒）内に生成される。上記タイミング図を参照して説明すれば、１フレームを実行する最初の３ミリ秒の間に、ビームが画面の右下部から左上部へ再追跡しながら、垂直割り込みが呼び出される。その期間に、上側画面におけるスプライトグラフィック情報がＲＡＭ４２からＶＲＡＭ４５へ転送される。次の６ミリ秒の間に、記憶されたグラフィック情報により上側画面１０６が実行される。続く１ミリ秒の直前に水平割り込みが呼び出される。この期間において、下側画面に対してＲＡＭからＶＲＡＭへスプライトグラフィック情報が転送される。最後の６ミリ秒が経過する直前に画面は元に戻り、下側画面１０８が実行される。当然ながら、上記手順は偶数フレームおよび奇数フレームの両者に対して発生することが理解されるであろう。したがって、１つの全インタレースフィールドを実行するためにこの手順は２回発生する。
図３３Ａ−Ｂおよび３４の説明図は、単一インタレースフィールドを生成するために使用される２つのフレームのそれぞれにおいて発生するグラフィックデータ転送の詳細を説明するフロー図である。
図３５および図３６の説明図には、インタレースモードで使用する単一セルと対応グラフィックパターンが示されている。なお、インタレースモード２では、単一のセルは、８×１６ドットから構成され、それに係る６４バイト（１６ロングワード）を要する。から構成される。図２５のグラフィックパターンを実行する場合、偶数追跡フレーム間には列００、０８、１０、１８、２０、２８、３０および３８を、奇数追跡フレーム間には列０４、０Ｃ、１４、１Ｃ、２４、２Ｃ、３４および３Ｃを実行する。分割画面モードにおいて上側画面および下側画面の両者に現れるドット列の数は、非インタレースモードにおいて全画面に現れるドット列の数と同じであることが理解されよう。各分割画面において２２４のドット列がある。しかしながら、インタレースモードにおいてはドットがより接近しているため、上側および下側分割画面における画像は垂直に圧縮されたように見える。このことはスクロールされるプレーフィールドおよびスプライトの両方についていえる。
［複数プレーヤ協調モードおよび複数プレーヤ対戦モードの概要］
本実施例において、本発明に係るシステムは２つのモード、すなわち協調モードと対戦モードを備えている。協調モードでは、第１のキャラクタは第１のコントローラに加えられる入力に応答し、第２のキャラクタはプレーフィールドを通じて第１のキャラクタに追従する。第１のキャラクタがプレーフィールドを通じて第２のキャラクタを先導するという意味において、２つのゲームキャラクタは協調するということができる。第２のキャラクタはまた第１のキャラクタに追従するだけでなく、第２のキャラクタはまた第１のキャラクタの動きを模倣する。この結果、第１および第２のゲームキャラクタは、第２のキャラクタが第１のキャラクタの後方に追従し、かつそれを模倣しているように見える状態において、その両者に与えられる入力に応答する。
図３７Ａ−Ｅは、協調モードおよび対戦モードの動作の説明に使用される、全く説明のみのための画面である。各図はプレーフィールドを通じての規定の通路の一部を示している。見られる通り、通路は山部と谷部を含んでいる。ある箇所には、溝がある。台（“イベント”）が、矢印で示す通り、溝を通って前後に移動する。ゲームキャラクタが溝を越えるには、キャラクタはフラットフォーム上へジャンプし、台に乗って溝を越え、さらに台から反対側へジャンプしなければならない。台上へ、またそこからジャンプするには熟練を要する。これは初心者のプレーヤにとって困難を生じさせるかもしれない挑戦的なタイプのものである。
図３７Ａ−Ｅにおいて、三角形のキャラクタが第１のコントローラによって制御される第１のキャラクタであり、円形のキャラクタが協調モードにおいて第１のキャラクタに追従する第２のキャラクタである。図３７Ａにおいて、第２のキャラクタは第１のキャラクタの後方に追従する。図３７Ａのボックスは通路の一部を包囲しており、この通路の一部はこのとき表示画面上において可視状態にある。この結果、ボックスの左右への通路の一部は画面表示の外部にあり、ゲームプレーヤには見えない。
図３７Ｂにおいて、第１および第２のキャラクタは右側へ進んでおり、従って画面上において可視である通路の一部は変化している。また、第１のキャラクタはジャンプしているところが示されている。図３７Ｃにおいて、第１および第２のキャラクタは、プレーフィールド上の図面表示の位置によって示される通り右側へさらに遠く進んでいる。図３７Ｃでは、第２のキャラクタが第１のキャラクタがすでにジャンプしたのと同様にジャンプしていることが分かる。協調モードにおいては、第２のキャラクタのジャンプは、図３７Ｂにおいて第１のキャラクタをジャンプさせた第１のコントローラに対するジャンプ命令に応答している。図３７Ｄにおいては、第１のキャラクタが溝をうまく通ったところが示されている。第２のキャラクタはまだ溝の左端部にあってそれを横断していない。
この時点で、第２のコントローラを使用する第２のプレーヤが、溝を越えようと試みて第２のキャラクタの動作の制御を開始することを決心したと仮定しよう。第２のプレーヤは、第２のキャラクタを台上へジャンプさせようとして第２のコントローラへ入力を加える。ゲームは対戦モードに切り換わる。ジャンプが失敗したとすると、その結果、図３７Ｅにおいて、第１のキャラクタは進み続けており、第２のキャラクタは視界から消えて取り残される。このとき、第１のキャラクタは視界内にある画面表示によって示されているが、（点線で示される）第２のキャラクタは画面表示の視界の外部にある画面表示によって示されている。その結果、本実施例において動作は中止され、第２のキャラクタは、画面表示内において第１のキャラクタの真上に現れ、図４０のコンピュータプログラムに対し、以下に述べるように下方に移動し始める。
対戦モードにおいては、各ゲームキャラクタは異なるコントローラの別個の制御下にある。第１のゲームキャラクタは、第１のコントローラ７２に加えられる入力に応答し、第２のゲームキャラクタは第２のコントローラ７４に加えられる入力に応答する。２つのゲームキャラクタは、プレーフィールドを通るとき対戦する。
一定のゲーム環境においては、プレーフィールドを通ってゲームキャラクタが進む距離は、ゲームキャラクタの制御に使用するコントローラを操作するプレーヤの熟練度に依存して決まる。熟練のプレーヤは制御対象であるキャラクタの通路における障害を克服するのがうまいので、熟練のプレーヤが制御するキャラクタはより遠くに進むことができる。協調モード制御の部分で説明したように、協調モードでは、初心者が、熟練度の高い方の第１のプレーヤの技術の効果を利用することが可能となる。技術を完成したプレーヤは、第１のキャラクタを制御して、その技術により、プレーフィールドを通って大幅に進ませることが可能である。第２のキャラクタもまた、第１のキャラクタに追従し、かつその動作を模倣することにより大きく前進することになる。
対戦モードの制御およびモード切り換えの部分においては以下に説明するように、初心者のプレーヤは、第２のコントローラ上のボタンを押して第２のキャラクタの動作制御を行うことができる。システムはこのとき、各キャラクタが別個のコントローラによって制御される対戦モードで動作する。しかしながら、本好適実施例においては、第２のプレーヤが規定の期間、例えば１０秒の間に第２のコントローラを操作しなければ、システムは再び協調モードに戻り、第２のキャラクタは再度第１のキャラクタに追従する。この他、もし第２のプレーヤは第２のキャラクタ制御を操作し続けるが、第２のキャラクタがある規定の距離だけ第１のキャラクタの後方、画面上で見えなくなる程遠く後方にある場合、システムは第２のキャラクタを第１のキャラクタに追いつかせることとなり、システムは協調モードに再び戻ることとなる。
［協調モードの制御］
図３８を参照して、協調モードにおいて第２のゲームキャラクタの動きの制御に使用されるコンピュータプログラムにおけるフロー図が示されている。本フロー図において、第１のプレーヤは、第１のキャラクタのプレーフィールドを通じての動きを制御するために、一連の命令を第１のコントローラへ与えているものと仮定している。ステップ５１０において、１６／６０秒前に記憶された入力データに対し、第１のコントローラの入力データが読み出される。ステップ５１２において、記憶された入力データが右ボタンが操作されたことを示しているか否かが判定される。右ボタンが操作されたことを示している場合、ステップ５１４においてキャラクタの第２のスプライトが両面表示上の右側に動く。ステップ５１６において、入力データが左ボタンが操作されたことを示すか否かが判定される。作動されていれば、ステップ５１８においてキャラクタスプライトは左へ動く。ステップ５２０においては、ジャンプボタンが操作されたかどうかが判定される。作動されている場合、ステップ５２２において第２のキャラクタスプライトが画面上でジャンプする。ステップ５２４において、下ボタンが操作されたか否かが判定される。操作された場合、ステップ５２６においてキャラクタスプライトは下方にかがむ。ステップ５２８において、第２のキャラクタスプライトの通路に障害となる物体がないかどうか、判定される。もしあれば、ステップ５３０において第２のスプライトはその物体を飛び越えようとジャンプする。こうして、第２のキャラクタは、第１のキャラクタを追いかけながらその通路の障害を克服しようと試みるのであり、これはその特定の目的に対して第１のコントローラ入力が加えられなくても行われる。
ステップ５３２において、第１および第２のキャラクタの間に距離があるか否かが判定される。距離があれば、第２のキャラクタは第１のキャラクタの方へドット単位で動く。図３８に表されるコンピュータプログラムは割り込みルーチンにより１／６０秒ごとに呼び出されている。第２のキャラクタは、代表的な場合として、そのルーチンが呼び出される数ドット前にしか動く機会をもたない。この結果、第２のキャラクタが第１のキャラクタに追いつこうと努力して非常に遠くに移動する前に、第２のキャラクタが模倣すべき第１のキャラクタの動きが他にあるかどうか、判定される。
第２のキャラクタスプライトは、第１のキャラクタスプライトに追従し、その動きを真似る。しかしながら、もし第１のキャラクタスプライトが動かない場合は、第２のキャラクタスプライトはステップ５３４の動作を通じて彼に追いつく。その結果、第１のキャラクタは、第１のコントローラの制御下においてプレーフィールドを通って前進する。第２のキャラクタは、後方にぴったりと追従して第１および第２のキャラクタが画面表示上に可視状態となる。第１のキャラクタが動かなければ、第２のキャラクタが、必要に応じて左または右へ第１のキャラクタに向かって動く。このルーチンは、システムが協調モードにあるとき、周期的に実行される。
［対戦モードの制御］
対戦モードにおいては、第１のコントローラ７２が第１のキャラクタスプライトの動きを制御するために使用され、第２のコントローラ７４が第２のキャラクタスプライトの動きを制御するために使用される。第１および第２のコントローラを操作するプレーヤは、第１および第２のキャラクタがプレーフィールドを横断してゆく状態において、互いに対戦する。対戦は、例えば最も早くプレーフィールドを横断して最高得点を加算してゆこうとする試みを含めることができる。
［モードの切り換え］
図３９の説明図を参照すると、協調モードが使用されるか対戦モードが使用されるかを判定するために使用するコンピュータプログラムにおけるフロー図が示されている。ステップ５４０において、ゲームがプレーヤ一人だけで制御されるように設定されているか否かが判定される。もしそのように設定されていれば、ゲームは自動的に協調モードに入り、ステップ５４２において、第２のコントローラに加えられる制御入力があるか否かが判定される。もしなければ、ステップ５４４において、１０秒以上の間、第２のコントローラからの入力がないかどうかが判定される。１０秒以上入力がなければ、ゲームは、ステップ５４６で示されるように協調モードのままの状態が続く。
ステップ５４２において第２のコントローラからの制御入力があれば、ステップ５４８において第２のキャラクタスプライトが画面から消えたか否かが判定される。もし消えていれば、第２のキャラクタスプライトはステップ５５０で画面上の視界に戻され、ゲームは協調モードに維持される。ステップ５４８において第２のキャラクタスプライトが画面から消えていない場合は、ステップ５５２で第２のキャラクタスプライトは第２のコントローラの制御下に置かれ、ゲームは対戦モードに戻る。
図３９のプログラムは定期的に実行される。その結果、もし第２のキャラクタが第１のキャラクタの十分後方にあって画面から消えている場合、あるいは第２のプレーヤが規定の期間の間に第２のコントローラを操作しなかった場合、ゲームは協調モードに戻る。反対に、第２のプレーヤが第２のコントローラを操作し、第２のキャラクタが画面上に依然として見えている場合、ゲームは対戦モードに戻る。
図４０のフロー図は、第２のキャラクタスプライトが第１のスプライトのずっと後方にあって画面から消えた場合、第２のキャラクタスプライトを視界に戻すために使用するコンピュータプログラムを表している。図４０のプログラムは、第１および第２のキャラクタスプライトが共に画面表示上に可視状態にとどまることを確実にするために対戦モードにおいて使用される。その目的は初心者のプレーヤが制御するキャラクタが主キャラクタのはるか後方に遅れ過ぎないようにすることである。
ステップ５６０において、初期フラグがセットされているか否かが判定される。この初期フラグは、続く４つのステップがすでに行われたかどうかを示すものである。初期フラグは、第２のキャラクタスプライトに対するスプライトステータス情報の一部をなす。ステップ５６２において、第２のキャラクタスプライトが空を飛んでいる画像パターンが選ばれる。ステップ５６４においては、第１のスプライトの水平方向位置と調和するように第２のスプライトの水平方向位置が選ばれる。代表的な例として、コントローラ４０は第１のキャラクタスプライトを画面の中心に保つ。この結果、第２のキャラクタもまた画面の水平方向中心に位置する。第１のキャラクタは画面上で凍結され、第２のキャラクタの動きを除き画面の動きはすべて凍結される。ステップ５６６において、第２のキャラクタスプライトの垂直方向位置が、第１のプレーヤより１９２ドット上方になるように選択される。ステップ５６８において初期フラグがセットされ、ステップ５７０において第２のキャラクタがゆっくりと下方に動き始める。ステップ５７２において、第２のキャラクタがゲームの通路に降りたかどうか、判定される。もし降りていなければ、第２のキャラクタが着地するまでサイクルを繰り返し、ステップ５７４において第２のキャラクタが立ち姿勢で表示される。この時点で図３８に示すプログラムが開始され、そのプログラムに示されているステップが実行される。図３９のプログラムは、協調モードと対戦モード間の切り換えを制御する。
［プレーフィールド位置交換グラフィックの概要］
本発明は、上記の動作の分割図面モードを含むものである。画面表示は２つの等しいサイズの画面表示に上下に分割され、そこでゲームキャラクタは互いに対戦が可能となる。２つの画面の各々は同一プレーフィールドの異なる領域を表示することができる。上側画面表示は、１つのゲームキャラクタを表示する。下側画面表示は、もう１つのゲームキャラクタを表示する。第１のキャラクタは、１つのコントローラを操作する一人のユーザによって制御される。第２のキャラクタは、もう１つのコントローラを操作するもう一人のユーザによって制御される。上側および下側画面はプレーフィールドの異なる領域を表示することができる。上側画面は、下側画面とは別個にスクロールを表示する。
ある種のビデオゲームにおいては、例えば、対戦するプレーヤは別々のコントローラを操作して異なるキャラクタの動きをプレーフィールドを通じて制御する。二人のプレーヤは、例えば、彼らのキャラクタをプレーフィールドを通じて対戦させたり、障害を乗り越えて得点を積み上げたり、敵を殺害したり、“魔法のリング”を集めたりすること、等によって対戦する。そのキャラクタがプレーフィールドの最大領域を渡ったプレーヤ、あるいは最大得点を得たプレーヤが勝ちとなる。
図４２を参照して説明する。例えば、上側画面はＡと表示されたプレーフィールド領域を表示することができ、下側画面はＢで表示されたプレーフィールド領域を表示することができる。この例においては、領域Ａと領域Ｂが重なり合っている。図４１の説明図においては、上側画面がプレーフィールド領域Ａにおける第１のキャラクタを描き、下側画面領域がプレーフィールド領域Ｂにある第２のキャラクタを描いている分割画面表示が示されている。そのプレーフィールド内には、テレポートボックスと呼ぶ入替えアイテム（Ｅｘｃｈａｎｇｅ  Ｏｂｊｅｃｔ）がある。キャラクタスプライトの１つが入替えアイテムの規定の近接範囲内にあるとき、プレーフィールドの２つのキャラクタの位置およびそれらのステータス情報の多くが交換される。このようにして、後方に遅れたキャラクタはもう一方のキャラクタとプレーフィールド位置を交代することができる。入替えアイテムはしたがって、ゲームの対戦に新たな戦略の検討を強いるものとなる。
図４１において、上側画面の第１のキャラクタは下側画面の第２のキャラクタの後方にある。これは２つの画面表示における地形から明らかである。キャラクタは左から右へ動きながら、プレーフィールドを通じて前進する。上側画面においては、第１のキャラクタはまだ同じ山を横断していない。下側画面では、第２のキャラクタは同じ山をちょうど横断したところである。上側画面には１つの入替えアイテムがある。第１のキャラクタがそれに接触すると、図４３Ａ−Ｂのコンピュータプログラムのフロー図との関連で以下に述べるように、第１および第２のキャラクタは図４２に示す通り逆転されることになる。
［入替えアイテムの制御］
図４３Ａ−Ｂを参照して説明すると、ステップ６１０において、いずれかのゲームキャラクタが入替えアイテムにアクセスしたかどうか、判定される。もしアクセスしていれば、ステップ６１２において第１および第２のキャラクタに対する一定のカレントステータス情報が交換される。すべてのステータス情報が交換されるわけではなく、例えば、交換される情報には外観を決定づけているグラフィックパターンのような各々のキャラクタに固有の情報は含まれない。例えば、スプライト動画を表すスプライトパターンの数は交換されない。ステップ６１２の間に、キャラクタスプライトステータス情報は、ＲＡＭ４２における１つのキャラクタのステータス情報バッファとＲＡＭ４２におけるもう１つのキャラクタのステータス情報バッファとの間で転送が実際に行われる。
ステップ６１４において、各プレーヤにおけるマスタ数とパターン数が初期化されて２つの第１および第２のキャラクタが交換の後に続く立ち姿勢で示される。ステップ６１６において、上側画面スクロールバッファと下側画面スクロールバッファとの間でスクロールパターン情報が転移される。ステップ６１８において、上側画面スクロールバッファと下側画面スクロールバッファとの間で動作設定数が交換される。動作設定数は、任意の与えられた時間においてＲＡＭ４２に実際に記憶された画面を表す。本実施例においては、１つのプレーフィールドは図２に示すように水平方向に６０画面、垂直方向に８画面であることが思い出されよう。各プレーフィールドは、動作設定数によって識別される領域数を備えている。１つの動作設定数によって指定されるプレーフィールド領域は、任意の与えられた瞬間において単一の分割画面もしくは全画面上に表示することのできるプレーフィールドの一部より大きい。本実施例においては、一度に１画面しか表示されないが、任意の与えられた時間において複数の動作設定数領域がＲＡＭ４２に記憶される。この追加プレーフィールド表示情報は、高速のキャラクタの動きや方向変化を収容するようにＲＡＭ４２に記憶される。例えば、キャラクタが、それ以前には表示されていなかった新しいプレーフィールドへ移動する場合、新しいプレーフィールド領域表示情報はＲＡＭ４２において簡単に利用できる状態となる。新しいプレーフィールド表示情報をＲＯＭ５８からＲＡＭ４２へ転送する必要は生じない。したがって、キャラクタが新しいプレーフィールド領域へ移動する際、認められるような遅延あるいは不連続は発生しない。
ステップ６２０において、キャラクタ間で優先情報が交換される。ステップ６２２において、ある種のイベントについてはフラグが調整される。より詳細には、キャラクタの衝突情報に変化を生ぜしめるＡ／Ｂの衝突切り換えの後でのキャラクタの通過といったイベントがある。また、キャラクタに特殊な外観をとらせるプレーフィールドのある領域に進入したキャラクタといったイベントもある。例えば、本実施例においては、画面の１つは“カジノの夜”として知られている。第１のキャラクタがカジノの夜の画面にあるとき、カジノの夜はピンボール機の形をとるのでキャラクタはピンボールの形状となる。こうして、キャラクタがカジノの夜の画面を通る際には、ピンボール像を作成するのに使用されるパターン情報がキャラクタを描写するために使用される。ステップ６２２でセットされるフラグは、上記のような特殊なイベントのトラックを保持するフラグである。特定のプレーフィールドあるいはビデオゲームのそれぞれの固有の表現形式に応じてセットされるべき他の特殊なイベントフラグが存在しうることは、当業界の通常の技術を有する者には理解されるであろう。
ステップ６２４において、バリヤおよび無敵として知られるモードがキャラクタに対して設定される。本実施例においては、キャラクタの１つに対してこれらのモードを設定するには、キャラクタを無敵として描くある一定のグラフィックを用いてキャラクタが表示されることとなるルーチンが呼び出される。あるキャラクタが無敵モードにあるとき、例えばそのキャラクタは容易に“殺される”ものとはなることがない。ステップ６２６において、第１のキャラクタが旋回しているかどうかが判定される。もし旋回していれば、第１のキャラクタの激突模様がステップ６２８で低減され、ステップ６３０において、第２のキャラクタが旋回しているかどうかが選定される。もし旋回していれば、ステップ６３２において第２のキャラクタの激突規模が減される。繰り返せば、ゲームの特定の特徴に応じて他の特殊なモードが存在しうることは当業界の通常の技術を有する者には理解されるであろう。
図４３Ｂを参照し、ステップ６３４において、キャラクタがある“イベント”上に乗っているかどうかが判定される。本実施例においては、１つのイベントとは、動いているプラットフォームやシャトルループなどのプレーフィールド物体あるいは障害物を指す用語である。キャラクタがあるイベントに乗っているとき、その期間におけるキャラクタ動作に対しては特別な考慮を払わなければならない。例えば、もしキャラクタがシャトルループを横断している場合、その制御は衝突情報でなくオフセットテーブル入力に応じて決まってくる。
第１のキャラクタがあるイベントに乗っている場合、ステップ６３６で第１のキャラクタ乗車フラグがセットされる。ステップ６３８において、第２のキャラクタがあるイベントに乗っているかどうかが判定される。もし乗っていれば、ステップ６４０で第２のキャラクタの乗車フラグがセットされる。ステップ６４２において、ＴＶ画面表示を不活性化するフラグがセットされ、その間にスクロールフィールドが交換される。ステップ６４４では、設定動作停止フラグが両キャラクタに対してセットされ、両キャラクタは一時停止する。ステップ６４８および６５０において、そのカウントが１つずつカウントダウンされ、さらにステップ６５２において、カウントが完了しスクロール画面が更新されたとき、ＴＶ画面表示が再びオンとなる。ＴＶ画面表示は、情報交換を収容するため、また交換がいま発生したことを気づかせる時間を人間プレーヤに与えるためという２つの目的において一時的にオフされる。ステップ６５４において、２つのキャラクタに対する動作フラグが再びセットされる。
図４４はテレポートボックスを図示している。本実施例において、このテレポートボックスは画面上に見ることのできる入替えアイテムである。キャラクタがそれに飛び乗ってこのボックスに接触すると、ボックスは“破壊”される。キャラクタがそれに接触する前にはボックスは図４４のような外観であるが、キャラクタがそれに接触し、“破壊”した後ではボックスは図４５のような外観となる。ボックスは、ある高さに到達するまで上方に浮遊する。その高さに達すると、上に述べた交換が発生する。これにより、ゲームプレーヤは、交換がいま発生しようとしているということを知る。
本発明の特定の実施例についで詳細に述べてきたが、本発明の精神および範囲を逸脱することなく上記実施例に対する種々の変更態様が可能である。例えば、シャトルループは、３６０度以上または以下にねじれた通路を画定するものであってもよいであろう。かくして、本発明は添付の請求の範囲によってのみ限定される。
【産業上の利用可能性】
以上のように、本発明によれば、前後に傾斜したり、左右に傾斜したり、上下が逆転した、通路セグメントを表示することができるので、ビデオゲームの内容が飛躍的に高度化し、また、リアリティも向上する。
【図１】
0003724569.tif 000002
【図２】
0003724569.tif 000003
【図３】
0003724569.tif 000004
【図４】
0003724569.tif 000005
【図５Ａ】
0003724569.tif 000006
【図５Ｂ】
0003724569.tif 000007
【図６】
0003724569.tif 000008
【図７】
0003724569.tif 000009
【図８】
0003724569.tif 000010
【図９】
0003724569.tif 000011
【図１０】
0003724569.tif 000012
【図１１】
0003724569.tif 000013
【図１２】
0003724569.tif 000014
【図１３】
0003724569.tif 000015
【図１４】
0003724569.tif 000016
【図１５】
0003724569.tif 000017
【図１６Ａ】
0003724569.tif 000018
【図１６Ｂ】
0003724569.tif 000019
【図１６Ｃ】
0003724569.tif 000020
【図１６Ｄ】
0003724569.tif 000021
【図１７】
0003724569.tif 000022
【図１８Ａ】
0003724569.tif 000023
【図１８Ｂ】
0003724569.tif 000024
【図１９Ａ】
0003724569.tif 000025
【図１９Ｂ】
0003724569.tif 000026
【図２０Ａ】
0003724569.tif 000027
【図２０Ｂ】
0003724569.tif 000028
【図２０Ｃ】
0003724569.tif 000029
【図２１】
0003724569.tif 000030
【図２２】
0003724569.tif 000031
【図２３】
0003724569.tif 000032
【図２４】
0003724569.tif 000033
【図２５Ａ】
0003724569.tif 000034
【図２６Ａ】
0003724569.tif 000035
【図２６Ｂ】
0003724569.tif 000036
【図２７Ａ】
0003724569.tif 000037
【図２８】
0003724569.tif 000038
【図３１】
0003724569.tif 000039
【図３２】
0003724569.tif 000040
【図３３Ａ】
0003724569.tif 000041
【図３３Ｂ】
0003724569.tif 000042
【図３４】
0003724569.tif 000043
【図３５】
0003724569.tif 000044
【図３６】
0003724569.tif 000045
【図３７Ａ】
0003724569.tif 000046
【図３７Ｂ】
0003724569.tif 000047
【図３７Ｃ】
0003724569.tif 000048
【図３７Ｄ】
0003724569.tif 000049
【図３７Ｅ】
0003724569.tif 000050
【図３８】
0003724569.tif 000051
【図３９】
0003724569.tif 000052
【図４０】
0003724569.tif 000053
【図４１】
0003724569.tif 000054
【図４２】
0003724569.tif 000055
【図４３Ａ】
0003724569.tif 000056
【図４３Ｂ】
0003724569.tif 000057
【図４４】
0003724569.tif 000058
【図４５】
0003724569.tif 000059