JPH0887592A - 画像制御装置 - Google Patents

画像制御装置

Info

Publication number
JPH0887592A
JPH0887592A JP6248886A JP24888694A JPH0887592A JP H0887592 A JPH0887592 A JP H0887592A JP 6248886 A JP6248886 A JP 6248886A JP 24888694 A JP24888694 A JP 24888694A JP H0887592 A JPH0887592 A JP H0887592A
Authority
JP
Japan
Prior art keywords
image
detection
pixels
block
chroma key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6248886A
Other languages
English (en)
Inventor
Koji Toriyama
康治 鳥山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP6248886A priority Critical patent/JPH0887592A/ja
Publication of JPH0887592A publication Critical patent/JPH0887592A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

(57)【要約】 【目的】 光の受け具合や光源のちらつき等があっても
適正なクロマキー検出を行い、位置検出誤差を発生せず
に表示制御し得る画像制御装置を実現する。 【構成】 ビデオ信号処理部20および位置検出処理部
40が特定色に着色されたバットBATを撮像してなる
撮像画像から当該バットBATに対応するクロマキー像
を抽出すると共に、このクロマキー像を形成する各画素
を互いに隣接する画素同士の相関に応じて補正する。さ
らに、位置検出処理部40が補正された各画素からなる
補正クロマキー像の撮像画像内における位置を検出する
と、CPU51が補正クロマキー像の位置に応じてディ
スプレイ3に表示させるべき画像を表示制御するので、
位置検出誤差を発生せずに表示制御することが可能にな
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、例えば、バーチャルリ
アリティ(仮想現実感)を創出するビデオゲームなどに
用いて好適な画像制御装置に関する。
【0002】
【従来の技術】従来より、操作パッド等の操作に応じて
オブジェクト画像を動画制御したり、効果音を発生させ
たりする画像制御装置が各種実用化されている。なお、
ここで言うオブジェクト画像とは、ゲーム画面に表示さ
れる「キャラクタ」を指し、背景となるバックグラウン
ド画面上に移動表示されるものである。この種の装置
は、ビデオゲームあるいはTVゲームと呼ばれ、遊戯者
の反射神経を問うシューティングゲームや、仮想的な現
実感をシミュレートするゲーム等が知られている。
【0003】このようなビデオゲームは、ゲーム操作に
対応したビデオ信号を発生する画像処理部と、この画像
処理部から供給されるビデオ信号を映像表示するディス
プレイとから構成される。画像処理部は、CPU、RO
MおよびRAM等から構成され、例えば、ROMパック
に記憶された画像情報および制御情報を順次読み出し、
画面背景となるバックグラウンド画像をディスプレイに
表示すると共に、ゲーム操作に応じて対応するキャラク
タ(オブジェクト画像)を画面背景上を動画表示し、そ
の動きに応じた効果音を発音するようにしている。
【0004】
【発明が解決しようとする課題】さて、上述したよう
に、従来の画像制御装置では、操作パッドの操作に応じ
てオブジェクト画像を表示制御する態様が一般的であ
り、仮想的な現実感をシミュレートするゲームでは不向
きになることが多い。つまり、仮想的な現実感を追求す
るには、実際の行動(行為)に即した形態で画像制御に
する必要がある。例えば、投手が球を投げるシーンを画
面に表示し、この表示画面に基づいて遊戯者が打撃操作
するようにしたシミュレーションゲームでは、操作パッ
ドに替えて「バット」が操作子となり、この「バット」
の位置あるいは動きに応じて画像制御することになる。
【0005】このような画像制御を行う場合には、周知
のクロマキー検出処理により操作子の位置や動きを検出
する手法が採られている。クロマキー検出処理とは、こ
の場合、予め「バット(操作子)」を特定の色で色付け
しておき、遊戯者を撮像した画像からこの特定色のクロ
マキー像を抽出し、これによって、遊戯者が持つ操作子
の位置や動きを画面上の位置として検出するものであ
る。そして、検出したクロマキー像の画面上の位置に基
づきオブジェクト画像を表示制御することになる。
【0006】ところで、クロマキー検出処理では、例え
ば、光沢色のように光の受け具合に応じて見え方が変化
したり、あるいは蛍光燈のフリッカー等にような光源の
ちらつきによって本来検出すべきクロマキー像がぶれた
り点滅したりすることが起こり、完全なクロマキー像と
して検出されず、結果的に位置検出誤差を招く要因にな
る。そこで本発明は、上述した事情に鑑みてなされたも
ので、光の受け具合や光源のちらつき等があっても、適
正なクロマキー検出を行い、位置検出誤差を発生するこ
となく表示制御することができる画像制御装置を提供す
ることを目的としている。
【0007】
【課題を解決するための手段】上記目的を達成するた
め、請求項1に記載の発明では、特定色に着色された被
写体を撮像してなる撮像画像から当該被写体に対応する
クロマキー像を抽出し、この補正された各画素からなる
補正クロマキー像を生成する補正手段と、この補正クロ
マキー像の前記撮像画像内における位置を検出する位置
検出手段と、この位置検出手段によって検出された前記
補正クロマキー像の位置に応じて表示画面に表示させる
べき画像を表示制御する表示制御手段とを具備すること
を特徴としている。
【0008】上記請求項1に従属する請求項2に記載の
発明によれば、前記クロマキー抽出手段は、前記撮像画
像の1走査ラインに対応する各画素にそれぞれ前記クロ
マキー像に相当するものであるか否かを示す属性を付与
し、前記補正手段は、この1走査ライン毎に付与された
各画素の属性を所定の相関に基づいて補正することを特
徴としている。
【0009】また、請求項3に記載の発明によれば、前
記補正手段は、互いに上下に隣接する各走査ラインの画
素列の相関に応じて前記属性を補正することを特徴とし
ている。さらに、請求項4に記載の発明では、前記補正
手段は、前記クロマキー像に相当する属性の画素がM個
以上連続した時に、その連続した画素をクロマキー像を
形成する検出画素と判定し、M個未満の時には誤検出で
あると見做してその連続した画素をクロマキー像を形成
しない非検出画素と判定する第1の過程と、このM個以
上連続する前記検出画素を含む1走査ラインの画素列の
間に、前記クロマキー像に相当しない属性の画素がN個
以下連続した時には誤検出であると見做してその連続し
た画素を前記検出画素と判定し、N個より大の時にはそ
の連続した画素を前記非検出画素と判定する第2の過程
と、前記クロマキー像に相当しない属性の画素がN個以
上連続して左右両端に連なる画素列中に、前記クロマキ
ー像に相当する属性の画素がM個以下続いた場合、誤検
出であると見做してその連続した画素を前記非検出画素
と判定し、M個より大の時にはその連続した画素を前記
検出画素と判定する第3の過程とを備えることを特徴と
している。
【0010】
【作用】本発明にあっては、クロマキー抽出手段が特定
色に着色された被写体を撮像してなる撮像画像から当該
被写体に対応するクロマキー像を抽出し、補正手段が前
記クロマキー像を形成する各画素を、互いに隣接する画
素同士の相関に応じて補正して補正クロマキー像を生成
するから、光の受け具合や光源のちらつき等があって
も、適正なクロマキー検出がなされる。そして、位置検
出手段は、この補正クロマキー像の前記撮像画像内にお
ける位置を検出し、表示制御手段がこの位置検出手段に
よって検出された前記補正クロマキー像の位置に応じて
表示画面に表示させるべき画像を表示制御するので、位
置検出誤差を発生することなく表示制御することが可能
になる。
【0011】
【実施例】以下、図面を参照して本発明の実施例につい
て説明する。 A.実施例の概要 図1は、本発明による画像制御装置の全体構成を示す外
観図であり、バッティング動作をシミュレートするゲー
ムに適用した一例を図示するものである。この図におい
て、1はCCD等の固体撮像素子を備える撮像部であ
り、バッターボックス(図示略)に位置する遊戯者Bを
撮像する。ここで、遊戯者Bは、例えば、クロマキー検
出用として「青色」に着色されたバットBATを用いて
バッティング動作する。
【0012】2は装置本体であり、撮像部1から供給さ
れる撮像信号にクロマキー検出を施し、検出したクロマ
キー像に基づき、実画像中におけるバットBAT像の位
置、面積および重心位置を判別する。ここで言う実画像
とは、撮像部1によって撮像される画像を指す。また、
装置本体2は、ゲームの背景シーンとなるバックグラウ
ンド画像と、このバックグラウンド画像上を移動表示さ
れるオブジェクト画像とを合成し、これをコンピュータ
グラフィック画像(以下、CG画像と称す)としてディ
スプレイ3に表示する。ディスプレイ3には、例えば、
背景シーン上における投手のスローイング動作と、スロ
ーイングに応じたボールの飛翔動作とが動画表示され
る。
【0013】さらに、装置本体2は、図2(イ)に示す
ように、CG画像中に表示されるボール位置からその重
心位置を求める一方、同図(ロ)に示すように、実画像
からクロマキー検出されたバットBAT像の重心位置を
算出する。そして、CG画像中の「ボール」と実画像中
の「バットBAT」とが衝突するか否かを所定タイミン
グ毎に判定し、衝突する際には、ミートするタイミング
時点で両重心位置の差に応じて打撃具合を求める。例え
ば、図2(ハ)のように、「ボール」と「バットBA
T」との衝突時点に両重心位置が一致すれば、ジャスト
ミートとして「ホームラン」とするように現実に近いシ
ミュレーションを行う。
【0014】B.実施例の構成 次に、図3を参照して撮像部1および装置本体2の電気
的構成について説明する。 (1)撮像部1の構成 撮像部1は、構成要素10〜13から構成されている。
10は発振回路であり、8倍オーバーサンプリング信号
8fSCを発生して出力する。11はこの8倍オーバーサ
ンプリング信号8fSCを次段のクロックドライバ12に
供給すると共に、CCD13から出力される撮像信号S
Sをサンプリング画像データDSに変換する撮像信号処
理部であり、その構成については後述する。クロックド
ライバ12は、発振回路10から供給される8倍オーバ
ーサンプリング信号8fSCに基づき、水平駆動信号、垂
直駆動信号、水平/垂直同期信号および帰線消去信号等
の各種タイミング信号を発生する一方、上記水平駆動信
号および垂直駆動信号に対応する撮像駆動信号を発生し
てCCD13に供給する。CCD13は、この撮像駆動
信号に従って撮像信号SSを発生する。
【0015】撮像信号処理部11は、CCD13から供
給される撮像信号SSをコンディショニングした後、A
/D変換してサンプリング画像データDSを発生するも
のであり、その概略構成について図4を参照して説明す
る。図4において、11aはサンプリング回路であり、
上述したクロックドライバ12から供給される4倍オー
バーサンプリング信号4fSCに応じて撮像信号SSをサ
ンプルホールドして次段へ出力する。11bはサンプリ
ングされた撮像信号SSを所定レベルに変換して出力す
るAGC(自動利得制御)回路である。
【0016】11cは、撮像信号SSのガンマ特性をγ
=1/2.2に補正して出力するγ補正回路である。1
1dは、このガンマ補正された撮像信号SSを8ビット
長のサンプリング画像データDSに変換して出力するA
/D変換回路である。サンプリング画像データDSは、
後述するビデオ信号処理部20に供給される。11eは
ビデオ信号処理部20から供給されるコンポジット映像
信号DCVをアナログビデオ信号SVに変換して前述した
ディスプレイ3に出力するD/A変換回路である。
【0017】(2)装置本体2の構成 次に、図3〜図7を参照して装置本体2の構成について
説明する。装置本体2は、図3に示すように、ビデオ信
号処理部20、画像処理部30、位置検出処理部40お
よび制御部50から構成されており、以下、これら各部
について詳述する。 ビデオ信号処理部20の構成 ビデオ信号処理部20は、撮像部1から供給されるサン
プリング画像データD Sに対して色差変換処理とクロマ
キー検出処理とを施し、その結果を後述する位置検出処
理部40に供給する。また、この処理部20は、後述す
る画像処理部30から供給される画像処理データDSP
コンポジット映像信号DCVに変換し、前述したD/A変
換回路11e(図4参照)に供給する。なお、この画像
処理データDSPとは、バックグラウンド画像と、当該バ
ックグラウンド画像上に移動表示されるオブジェクト画
像とを合成したCG画像を形成するものである。
【0018】ここで、図5を参照して上記各処理を具現
するビデオ信号処理部20の構成について説明する。図
5において、20aは色分離フィルタであり、サンプリ
ング画像データDSを信号Ye(イエロー)、信号Cy
(シアン)および信号G(グリーン)に色分離して次段
へ出力する。20bは映像信号中における変化点の前後
に対して輝度変調を施して画質調整する輪郭補正回路で
ある。20cはホワイトバランス回路であり、各信号Y
e,Cy,Gを規定レベルに設定して出力する。20d
はバンドパスフィルタで構成される分別フィルタであ
り、各信号Ye,Cyを信号R(赤)および信号B
(青)に分別して出力する。20eは三原色を表わす信
号R,G,Bを各8ビット長の輝度信号Y、色差信号B
−Y,R−Yに変換するマトリクス回路である。
【0019】20fはクロマキー信号発生回路であり、
後述するCPU51から与えられるR−Y閾値およびB
−Y閾値に応じたクロマキー検出領域内に、色差信号B
−Y,R−Yがそれぞれ収る時に「H」レベルのクロマ
キー検出信号CROを発生する。なお、この実施例で
は、R−Y閾値およびB−Y閾値は、「青色」に対応す
るよう設定される。20gは、マトリクス回路20eか
ら出力される各8ビット長の輝度信号Y、色差信号B−
Y,R−Yを、4ビット長の輝度信号Y’、2ビット長
の色差信号B−Y’,R−Y’に変換する色差変換回路
である。
【0020】20hは、画像処理部30(後述する)か
ら供給される画像処理データDSP(RGB信号)を輝度
信号Y、色差信号B−Y,R−Yに変換するマトリクス
回路である。20iはセレクタであり、後述する位置検
出処理部40から供給されるセレクト信号SLに応じて
マトリクス回路20eの出力、あるいはマトリクス回路
20hの出力のいずれかを選択して次段へ供給する。2
0jはモジュレータである。モジュレータ20jは、セ
レクタ20iを介して供給される輝度信号Y、色差信号
B−Y,R−Yに各種同期信号(水平/垂直同期信号お
よび帰線消去信号)を重畳したディジタルコンポジット
映像信号DCVを生成する。
【0021】上記構成によれば、ビデオ信号処理部20
は、撮像部1から供給されるサンプリング画像データD
Sを輝度信号Y’、2ビット長の色差信号B−Y’,R
−Y’に変換すると共に、クロマキー検出信号CROを
発生して画像処理部30(後述する)側へ供給する。ま
た、この処理部20は、画像処理部30側から入力され
る画像処理データDSP(RGB信号)、あるいは撮像部
1から供給されるサンプリング画像データDSのいずれ
かをセレクト信号SLに応じて選択し、選択されたデー
タをコンポジット映像信号DCVに変換して出力する。な
お、セレクト信号SLは、後述する位置検出処理部40
から供給される信号である。
【0022】画像処理部30の構成 次に、画像処理部30の構成について説明する。画像処
理部30は、ビデオディスプレイプロセッサ(以下、V
DPと略す)31とVRAM32とから構成される。こ
のVDP31の基本的機能は、VRAM32に格納され
るバックグラウンド画像データDBGおよびオブジェクト
画像データDOBを制御部50(後述する)側から供給さ
れる制御信号SCに応じて読み出し、これを1走査ライ
ン毎のドット表示色を表わす画像処理データDSPを発生
することにある。以下、図6を参照して各部の構成につ
いて詳述する。
【0023】図6において、31aはCPUインタフェ
ース回路であり、制御部50を構成するCPU51のバ
スを介して供給される制御信号SCに応じて構成要素3
1b〜31dに各種制御指示を与える。制御信号SC
は、バックグラウンド画像およびオブジェクト画像を表
示制御する各種コマンドや、VRAM32にDMA転送
されるバックグラウンド画像データDBGおよびオブジェ
クト画像データDOBから形成される。31bはVRAM
コントロール回路であり、構成要素31a,31cおよ
び31dから供給される制御信号に対応してVRAM3
2とのデータ授受を行う。
【0024】すなわち、上記CPUインタフェース回路
31aからDMA転送する旨の制御信号SCを受けた場
合には、当該回路31aを介してDMA転送されるバッ
クグラウンド画像データDBG、あるいはオブジェクト画
像データDOBを所定の記憶エリアに格納する。また、バ
ックグラウンドコントロール回路31cからバックグラ
ウンド画像データDBGを読み出す旨の指示を受けた場
合、対応するデータDBGを読み出して回路31c側に返
送する。これと同様に、オブジェクトコントロール回路
31dからオブジェクト画像データDOBを読み出す旨の
指示を受けた場合、対応するデータDOBを読み出して回
路31d側に返送する。
【0025】バックグラウンドコントロール回路31c
は、回路31aを介して制御部50側から与えられるバ
ックグラウンド表示制御コマンドに基づき、VRAMコ
ントロール回路31bを経由して読み出されたバックグ
ラウンド画像データDBGに対して表示位置を指定した
後、色差データ処理回路31eへ供給する。また、この
回路31cは、上述したビデオ信号処理部20から供給
される輝度信号Y’,色差信号B−Y’,R−Y’、す
なわち、撮像部1によって撮像された1フレーム分のサ
ンプリング画像を、VRAMコントロール回路31bを
介してVRAM32に格納する。つまり、撮像した画像
をバックグラウンド画像データDBGにすることが可能に
なっている。
【0026】オブジェクトコントロール回路31dは、
回路31aを介して制御部50側から与えられるオブジ
ェクトテーブルデータTOBをオブジェクトテーブルRA
M31fに書き込む。オブジェクトテーブルデータTOB
とは、表示画面におけるオブジェクト画像データDOB
表示位置を指定する座標データである。また、当該回路
31dは、オブジェクト表示制御コマンドに応じてVR
AM32から読み出されたオブジェクト画像データDOB
に対し、上記オブジェクトテーブルデータTOBを参照し
て表示位置を求めると共に、1走査ライン分のオブジェ
クト画像データDOBをラインバッファRAM31gに一
時記憶する。ラインバッファRAM31gに一時記憶さ
れるオブジェクト画像データDOBは、1走査毎に更新さ
れる。このRAM31gから読み出されたオブジェクト
画像データDOBは、色差データ処理回路31eに供給さ
れる。
【0027】色差データ処理回路31eは、バックグラ
ウンドコントロール回路31cおよびオブジェクトコン
トロール回路31dから供給される8ビット長の画像デ
ータDBG,DOBを、周知のカラールックアップテーブル
RAM31hを参照して各4ビット長のR信号,G信号
およびB信号から形成される画像処理データDSPに変換
して出力する。また、この色差データ処理回路31e
は、上述した画像処理データDSP(RGB信号)の他、
信号YSBGおよび信号YSOBJを発生する。
【0028】信号YSBGおよび信号YSOBJは、現
在出力している画像処理データDSPがバックグラウンド
画像データDBGに対応するものであるか、あるいはオブ
ジェクト画像データDOBに対応するものであるかを表わ
す信号である。例えば、現在出力している画像処理デー
タDSPがバックグラウンド画像データDBGに対応するも
のである時には、信号YSBGが「H(ハイ)」とな
り、信号YSOBJが「L(ロウ)」になる。一方、こ
れとは逆に画像処理データDSPがオブジェクト画像デー
タDOBに対応するものであれば、信号YSBGが「L」
となり、信号YSOBJが「H」になる。
【0029】このように、画像処理部30では、制御部
50側からDMA転送されるバックグラウンド画像デー
タDBGおよびオブジェクト画像データDOBをVRAM3
2に格納しておき、CPU51から供給される制御信号
SC(各種表示制御コマンド)に応じてこのVRAM3
2から画像データDBGあるいは画像データDOBを読み出
し、これを1走査ライン毎のドット表示色を表わす画像
処理データDSPを発生すると共に、当該画像処理データ
SPの表示属性を表わす信号YSBGおよびYSOBJ
を出力する。
【0030】位置検出処理部40の構成 位置検出処理部40は、複数のロジック素子を配列して
なるゲートアレイ、ラインバッファおよびワークRAM
とから構成されており、後述する制御部50の指示の下
にサンプリング画像データDS中に含まれるクロマキー
像と、オブジェクト画像データDOBにより形成されるオ
ブジェクト画像との衝突座標位置や、これら画像の重心
位置等を予め定められたロジックに基づいて論理演算す
る。図示されていないラインバッファには、ビデオ信号
処理部20から供給されるクロマキー検出信号CROが
一時記憶される。また、ワークRAMには、ゲートアレ
イによって論理演算された各種演算結果が一時記憶され
る。
【0031】位置検出処理部40は、上述した画像処理
部30から供給される信号YSBGおよびYSOBJに
基づき、前述したセレクト信号SLを発生してビデオ信
号処理部20に与え、サンプリング画像データDS(実
画像)と画像処理データDSP(CG画像)との重なり具
合、つまり、画面表示される画像の優先順位(前後関
係)を制御する。さらに、処理部40は、制御部50の
指示の下に、前述した撮像信号処理部11、ビデオ信号
処理部20およびVDP31へそれぞれレジスタコント
ロール信号SREGを供給し、各部レジスタのデータセッ
ト/リセットを制御する。
【0032】ここで、図7を参照して位置検出処理部4
0におけるワークRAMのレジスタ構成について説明す
る。この図において、E1は初期画面エリアであり、水
平方向(走査ライン)当り96ドット、垂直方向に96
ラインから形成される初期画面のデータを一時記憶す
る。初期画面のデータとは、ゲーム開始に先立って撮像
されたシーン内に存在するクロマキー検出結果を指す。
シーン内にクロマキー検出色(例えば、青色)の物体が
存在した場合、前述したバットBAT(図1参照)の一
部と誤認する虞がある。そこで、初期画面エリアE1に
一時記憶されるデータは、クロマキー検出されたドット
位置をバットBAT(図1参照)と誤認しないようにす
るため、当該ドット位置を不感帯とする際に用いられ
る。
【0033】E2は水平方向96ドット、垂直方向96
ラインで形成される処理画面エリアであり、実画像にお
いてクロマキー検出されるバットBAT像(あるいは調
整パネル像CP)およびCG画像中のオブジェクト画像
(本実施例では、ボール像)が1フレーム毎に更新記憶
される。E3〜E4は、それぞれ1フレーム毎に更新さ
れる処理画面でのバットBAT像の上端/下端位置を一
時記憶する上端座標エリア、下端座標エリアである。E
5〜E6は、それぞれ1フレーム毎に更新される処理画
面でのバットBAT像(あるいは調整パネル像CP)の
左端/右端位置を一時記憶する左端座標エリア、右端座
標エリアである。
【0034】E7は第1の衝突座標エリアである。第1
の衝突座標エリアE1とは、バットBAT像とオブジェ
クト画像(ボール像)との重なり(衝突)が最初に検出
される走査ライン中の交点を、処理画面上の座標として
表現したものである。また、第2の衝突座標エリアE8
は、バットBAT像とオブジェクト画像(ボール像)と
の重なりが最後に検出される走査ライン中の交点を、処
理画面上の座標として表現したものである。E9は重心
座標エリアであり、実画像にてクロマキー検出されるバ
ットBAT像(あるいは調整パネル像CP)の面積に基
づき算出される重心位置を処理画面上の座標位置が記憶
される。
【0035】E10は、実画像にてクロマキー検出され
るバットBAT像(あるいは調整パネル像CP)の面積
が記憶される面積エリアである。この面積エリアE10
にセットされる面積は、ブロック個数で表わされる。こ
こで言うブロックとは、処理画面において水平方向6ド
ット、垂直方向2ラインからなる12ドット領域を指
す。この12ドット領域から形成されるブロック中に、
「6ドット」以上のクロマキー検出があった場合、その
ブロックがバットBAT像の面積として見做される。
【0036】制御部50の構成 次に、再び図3を参照して制御部50の構成について説
明する。制御部50は、構成要素51〜57から構成さ
れる。CPU51は装置本体2の操作パネルに配設され
る各種操作子をキースキャンし、これに応じて生成され
る操作子信号KSに応じて装置各部を制御するものであ
り、その動作の詳細については後述する。このCPU5
1は、内部タイマを備え、当該タイマによってカウント
されるゲームカウンタ値に基づきゲーム進行を管理す
る。
【0037】また、CPU51は、周知のDMAコント
ローラを備えており、画像制御動作に必要な各種データ
(バックグラウンド画像データDBGやオブジェクト画像
データDOB)を前述した画像処理部30へDMA転送す
るよう構成されている。52はRAMであり、CPU5
1のワークエリアとして各種演算結果やフラグ値が一時
記憶される。53はCPU51の動作を管理するOS
(オペレーションシステム)プログラムが記憶されるR
OMである。54はCPU51の制御の下に装置全体の
動作を規定するシステムクロックを発生するシステムク
ロック回路である。
【0038】55は装置本体2に対して挿脱自在に装着
されるゲームカートリッジであり、ROM55aと第1
音源回路55bとから構成されている。ROM55a
は、CPU51にロードされるアプリケーションプログ
ラムである。なお、この実施例においては、前述したよ
うに、打撃練習をシミュレートするゲームプログラムが
記憶されている。55bは第1音源回路であり、CPU
51側から位置検出処理部40を介して供給されるイベ
ントデータに基づき、ゲーム動作に対応したゲーム効果
音を合成し、これを楽音信号としてCPU51へ出力す
る。56は第2音源回路であり、ゲーム進行に対応した
楽曲、例えば、オープニングやエンディング等の楽曲を
楽音合成して出力する。57はサウンドシステムであ
り、上記第1音源回路55bおよび第2音源回路56か
ら供給される楽音信号に対してノイズ除去等のフィルタ
リングを施した後、これを増幅して出力する。
【0039】C.実施例の動作 次に、上記構成による実施例の動作について説明する。
ここでは、まず、前述した位置検出処理部40の動作に
ついて説明した後、制御部50(CPU51)の動作に
ついて説明するものとする。なお、本願発明では、位置
検出処理部40においてなされる補正処理(後述する)
によって、光の受け具合や光源のちらつき等があって
も、バット像BATを適正にクロマキー検出することを
特徴としている。 (1)位置検出処理部40の動作 ここでは、ゲートアレイによって構成される位置検出処
理部40の全体動作について図8〜図16を参照して説
明する。この処理部40では、制御部50の指示に応じ
てサンプリング画像データDS中に含まれるバットBA
T像をクロマキー検出信号CROに基づいて検出すると
共に、本願発明の要旨である補正処理に基づきクロマキ
ー検出信号CROに従って生成されるブロック属性(後
述する)を補正し、これにより得られる適正なブロック
属性に応じてバットBAT像とオブジェクト画像(ボー
ル像)との衝突座標位置や、これら画像の重心位置を検
出する。以下では、こうした動作の概略(メインルーチ
ン)について説明した後、このメインルーチンにてコー
ルされる各種ルーチンの処理について詳述する。
【0040】メインルーチンの動作 まず、装置本体2に電源が投入され、CPU51側から
システムリセットを表わす制御信号SCが位置検出処理
部40に供給されたとする。そうすると、位置検出処理
部40は、上記制御信号SCに基づき、内部にセットさ
れるマイクロプログラムをロードして図8に示すメイン
ルーチンを起動し、ステップSA1を実行する。ステッ
プSA1では、自身の内部レジスタをリセット、あるい
は初期値をセットするイニシャライズを行う一方、撮像
信号処理部11、ビデオ信号処理部20およびVDP3
1へそれぞれレジスタセットを指示するレジスタコント
ロール信号SREGを供給し、次のステップSA2に進
む。
【0041】ステップSA2では、「初期画面マップ」
が作成されているか否かを判断する。ここで、例えば、
「初期画面マップ」が作成されていない場合、判断結果
は「NO」となり、次のステップSA3に処理を進め
る。なお、この「初期画面マップ」とは、ゲーム開始に
先立って、撮像部1が撮像する画面内に、バットBAT
(図1参照)と同色の物体が存在するか否かを確認する
ためのものである。そして、ステップSA3に進むと、
複数フレーム分のクロマキー検出結果を重ね合わせ、こ
れをワークRAMの初期画面エリアE1(図7参照)に
格納し、初期画面内に存在するクロマキー検出ブロック
を「不感帯」と見做す「初期画面マップ」を作成する。
【0042】このようにして「初期画面マップ」の作成
がなされると、位置検出処理部40は、次のステップS
A4に処理を進める。なお、「初期画面マップ」が予め
用意されている場合には、上記ステップSA2の判断結
果は「YES」となり、ステップSA4に進む。ステッ
プSA4では、レジスタX,Yの値をゼロリセットす
る。なお、このレジスタX,Yには、水平方向96ドッ
ト、垂直方向96ラインで形成される画面座標に相当す
る値が処理内容に応じて順次セットされる。次いで、ス
テップSA5に進むと、位置検出処理部40は、図示さ
れていないラインバッファに一時記憶されたクロマキー
検出信号CROに対してブロック単位毎のクロマキー検
出を施す。
【0043】ここで言うブロック単位のクロマキー検出
とは、ラインバッファから読み出したクロマキー検出信
号CROを水平方向6ドット、垂直方向2ラインからな
るブロックに区分けし、「H」レベルのクロマキー検出
信号CROがブロック当り「6ドット」以上存在した時
に、当該ブロックの属性を「クロマキー有り」と見做す
ものである。こうしたクロマキー検出の結果は、前述し
た処理画面エリアE2(図7参照)にブロック属性とし
てストアされ、これが「処理画面マップ」となる。
【0044】次いで、ブロック単位毎のクロマキー検出
がなされると、位置検出処理部40は、ステップSA6
に処理を進め、レジスタXの値を1インクリメントして
歩進させる。続いて、ステップSA7では、レジスタX
の値が「96」、つまり、1走査ライン分の処理が完了
したか否かを判断する。ここで、レジスタXの値が「9
6」に達していない場合には、判断結果が「NO」とな
り、1走査ライン分の処理が完了する迄、上記ステップ
SA5〜SA7を繰り返す。
【0045】これに対し、レジスタXの値が「96」に
達して1走査ライン分の処理が完了すると、ステップS
A7の判断結果は「YES」となり、ステップSA8に
処理が進む。ステップSA8では、クロマキー検出され
た1走査ライン分の互いに隣接する各ブロックについて
相関を求め、求めた相関関係からこのブロック列を補正
する補正処理を行う。なお、この補正処理の意味すると
ころは、追って説明する。次いで、1走査ライン分のブ
ロック列に対する補正処理が完了すると、位置検出処理
部40は、ステップSA9に処理を進め、レジスタXの
値を再びゼロリセットすると共に、レジスタYの値を1
インクリメントして走査ラインを垂直方向に更新する。
【0046】そして、ステップSA10に進むと、処理
部40はレジスタYの値が「96」であるか否かを判断
する。ここで、レジスタYの値が「96」に達していな
い場合には、判断結果が「NO」となり、上述したステ
ップSA5〜SA9を繰り返す。そして、1フレーム分
(1画面分)の走査が完了すると、ここでの判断結果が
「YES」となり、ステップSA11に処理を進める。
ステップSA11では、上記ステップSA8において逐
次補正された1フレーム分のクロマキー検出ブロックに
基づき、バットBAT像の左端/右端座標および上端/
下端座標を算出し、これらをワークRAMの記憶エリア
E3〜E6(図7参照)に記憶する一方、クロマキー検
出されたブロック個数からバットBAT像の面積を求め
る。
【0047】なお、記憶エリアE3〜E4は、それぞれ
1フレーム毎に更新される処理画面でのバットBAT像
の上端/下端位置を一時記憶し、記憶エリアE5〜E6
は、それぞれ1フレーム毎に更新される処理画面でのバ
ットBAT像(あるいは調整用パネルCP)の左端/右
端位置を一時記憶する。また、ブロック個数から算出さ
れるバットBAT像の面積は、記憶エリアE10に格納
されるようになっている。
【0048】こうして実画像からバットBAT像をクロ
マキー検出すると、ステップSA12に進み、当該バッ
トBAT像の重心位置を求め、続いて、ステップSA1
3では、クロマキー検出された実画像のバットBAT像
とCG画像中におけるオブジェクト画像OBJ(ボール
像)との衝突の有無を検出し、衝突する場合にはその衝
突座標を求める。次いで、ステップSA14に進むと、
位置検出処理部40は、衝突フラグCFが「1」かどう
かを判定し、衝突フラグCFが衝突状態を示す「1」で
あれば、判断結果が「YES」となり、次のステップS
A15へ進む。
【0049】ステップSA15では、CPU51に対し
て割込み信号を出力する。この後、ステップSA16に
進み、衝突フラグCFを「0」にセットする。この衝突
フラグCFとは、実画像のバットBAT像とCG画像の
オブジェクト画像(ボール像)とが衝突状態、すなわ
ち、重なり合う場合に「1」となる。そして、このステ
ップSA16以後、位置検出処理部40はその処理をス
テップSA4に戻し、上述した動作を繰り返し、「バッ
ト」と「ボール」との対応関係をフレーム毎に求める。
【0050】初期画面マップ作成ルーチンの動作 次に、図9を参照して初期画面マップ作成ルーチンの動
作について説明する。上述したように、初期画面マップ
が作成されていない場合、位置検出処理部40はステッ
プSA3に処理を進め、図9に示す初期画面マップ作成
ルーチンを実行してステップSB1に処理を進める。ス
テップSB1では、内部レジスタにセットされるサンプ
リング回数nを読み出す。サンプリング回数nとは、撮
像部1から供給されるクロマキー検出信号CROを何フ
レーム分取り込むかを表わすものである。次いで、ステ
ップSB2に進むと、レジスタX,Yの値をゼロリセッ
トし、次のステップSB3に進む。ステップSB3で
は、ラインバッファに書き込まれたクロマキー検出信号
CROの内、X方向(水平方向)の6ドット分、Y方向
(垂直方向)の2ライン分、すなわち、1ブロック分を
読み出す。
【0051】次いで、ステップSB4に進むと、この読
み出した1ブロック中に「6ドット」以上の「H」レベ
ルのクロマキー検出信号CROが存在するか否かを判断
する。ここで、「6ドット」以上存在しなければ、「ク
ロマキー無し」として判断結果が「NO」となり、ステ
ップSB5に進む。ステップSB5では、そのブロック
属性を「0」として次のステップSB7へ処理を進め
る。一方、これに対し、「6ドット」以上存在すると、
「クロマキー有り」とされて、判断結果が「YES」と
なり、ステップSB6に進む。ステップSB6では、そ
のブロック属性を「1」にセットし、次のステップSB
7へ処理を進める。ステップSB7では、最初のフレー
ムであるか否かを判断する。ここで、最初にサンプリン
グしたフレームであると、判断結果は「YES」とな
り、ステップSB8に進む。
【0052】ステップSB8に進むと、位置検出処理部
40は、現レジスタX,Yの値に応じて初期画面エリア
E1へ判定したブロック属性をストアする。そして、こ
の後、ステップSB9に進み、レジスタXの値を1イン
クリメントし、指定ブロックの番号を歩進させる。次
に、ステップSB10に進むと、この歩進された指定ブ
ロックの番号が「96」、つまり、1走査(水平)ライ
ン分完了したか否かを判断する。ここで、完了していな
い場合には、判断結果が「NO」となり、ステップSB
11に進む。ステップSB11では、レジスタYの値が
「96」、つまり、1フレーム分終了したか否かを判断
する。ここで、1フレーム分の処理が終了していない場
合には、判断結果が「NO」となり、前述したステップ
SB3に戻る。これにより、ステップSB3〜SB6が
繰り返され、次のブロック属性が判定される。
【0053】そして、例えば、いま、1走査(水平)ラ
イン分のブロック属性の判定が完了したとする。そうす
ると、ステップSB10の判断結果が「YES」とな
り、処理部40はステップSB13へ処理を進める。ス
テップSB13では、レジスタXをゼロリセットする一
方、レジスタYの値を1インクリメントして走査ライン
を更新する。そして、この後、再び、ステップSB11
を介してステップSB3以降のブロック判定がなされ
る。次いで、1フレーム分のブロック属性について判定
が完了すると、上述したステップSB11の判断結果が
「YES」となり、ステップSB12に進む。ステップ
SB12では、サンプリング回数nが設定回数に達した
か否かを判断する。
【0054】ここで、設定回数に達していない場合に
は、判断結果が「NO」となり、ステップSB14へ処
理を進める。ステップSB14では、サンプリング回数
nを歩進させ、再び前述したステップSB2以降を実行
する。こうして1回目の初期画面マップが作成され、2
回目の初期画面マップの作成を行う過程で、ステップS
B7に進むと、ここでの判断結果が「NO」となり、ス
テップSB15に進む。ステップSB15では、先にス
トアされた対応ブロック属性をレジスタX,Yの値に応
じて初期画面エリアE1から読み出す。そして、ステッ
プSB16に進むと、先のブロック属性と、現在判定さ
れたブロック属性との論理和を求める。続いて、ステッ
プSB8では、この論理和を新たなブロック属性として
レジスタX,Yの値に基づき初期画面エリアE1にスト
アする。そして、所定フレーム分の論理和が生成される
と、上述したステップSB12の判断結果が「YES」
となり、このルーチンを終了し、位置検出処理部40の
処理は前述したメインルーチンへ復帰する。
【0055】処理画面マップ作成ルーチンの動作 以上のようにして初期画面マップが作成されると、位置
検出処理部40はステップSA5を介して図10に示す
処理画面マップ作成ルーチンを実行してステップSC1
に処理を進める。ステップSC1では、ラインバッファ
に書き込まれたクロマキー検出信号CROの内、X方向
(水平方向)6ドット、Y方向(垂直方向)2ラインか
らなる1ブロックを読み出す。
【0056】次いで、ステップSC2に進むと、その読
み出した1ブロック内に「6ドット」以上の「H」レベ
ルのクロマキー検出信号CROが存在するか否かを判断
する。ここで、「6ドット」以上存在しなければ、「ク
ロマキー無し」として判断結果が「NO」となり、ステ
ップSC3に進む。ステップSC3では、そのブロック
属性を「0」として次のステップSC4へ処理を進め
る。ステップSC4では、この判定されたブロック属性
をレジスタX,Yの値に基づき処理画面エリアE2(図
8参照)にストアする。
【0057】一方、上記ステップSC2の判断結果が
「YES」となった場合、すなわち、1ブロック内に
「6ドット」以上の「H」レベルのクロマキー検出信号
CROが存在する時には、処理部40はステップSC5
に処理を進める。ステップSC5では、リジェクトスイ
ッチSRがオン操作されているか否かを判断する。この
リジェクトスイッチSRとは、装置本体2の操作パネル
に配設されるスイッチであり、そのスイッチ操作に応じ
て「不感帯」を設けるか否かを設定するものである。こ
こで、当該スイッチSRがオン設定されている場合に
は、初期画面マップに記憶されたクロマキー検出ブロッ
クを「不感帯」と見做すようにする。
【0058】すなわち、上記ステップSC5において、
リジェクトスイッチSRがオン設定されている場合に
は、判断結果が「YES」となり、次のステップSC6
に進む。ステップSC6では、初期画面エリアE1から
レジスタX,Yの値に応じて対応するブロック属性を読
み出す。次いで、ステップSC7に進むと、初期画面エ
リアE1から読み出したブロック属性が「1」であるか
否かを判断する。ここで、当該ブロック属性が「1」で
ある時、その判断結果は「YES」となり、上述したス
テップSC3に進み、ブロック属性を「0」に変更し、
その後、ステップSC4を介して、この変更されたブロ
ック属性をレジスタX,Yの値に応じて処理画面エリア
E2に書き込む。この結果、初期画面マップに記憶され
たクロマキー検出ブロックが「不感帯」に設定される訳
である。
【0059】なお、上記リジェクトスイッチSRがオン
設定されない場合、つまり、「不感帯」を設定しない時
には、ステップSC5の判断結果が「NO」となり、ス
テップSC8に進む。ステップSC8では、上述したス
テップSC2において判定された結果に基づき、対応す
るブロックの属性を「1」に設定し、続いて、ステップ
SC4を介してそのブロック属性をレジスタX,Yの値
に応じて処理画面エリアE2に書き込む。
【0060】補正処理ルーチンの動作 前述したように、処理画面マップ作成ルーチンにおいて
は、リジェクトスイッチSRがオンされることによっ
て、撮像画像中にバットBAT(図1参照)と同じクロ
マキー色の物体が存在しても、その部分を「不感帯」す
ることによってクロマキー検出誤差を抑止しているが、
この補正処理ルーチンでは、これに加えて隣接するブロ
ック属性の相互相関に応じて「検出もれ」や「誤検出」
を補正し、これにより光の受け具合や光源のちらつき等
があっても、適正なクロマキー検出を行い得るようにし
ている。
【0061】(a)補正処理の原理 このルーチンでは、4つのレジスタA〜Eを用いる。レ
ジスタAには、判定値Mがセットされる。判定値Mと
は、「1」の属性のブロックがM個以上連続した時に、
これら連続したブロックを検出ブロック(属性が「1」
のブロックを指す)と判定し、M個未満の時には誤検出
であると見做してその連続したブロックを非検出ブロッ
ク(属性が「0」のブロックを指す)と判定するための
閾値として扱われる。
【0062】レジスタBには、判定値Nがセットされ
る。判定値Nは、「0」の属性のブロックが「検出ブロ
ック」であるか「非検出ブロック」であるかを判定する
際に用いられる値である。レジスタCには、1走査ライ
ンに対応するブロック列から読み出される検出ブロック
のカウント値がセットされる。レジスタDには、検出ブ
ロックに続いて読み出される非検出ブロックのカウント
値がセットされる。レジスタEには、検出ブロックのカ
ウント値と非検出ブロックのカウント値との和がセット
される。
【0063】これらレジスタA〜Eにセットされる各値
に基づき、次のように処理画面マップから読み出したブ
ロック属性を補正する。最初に、非検出ブロックが出現
する迄、あるいは1走査ライン分のブロック属性読み出
しが完了するまで検出ブロックの数をカウントし、その
値をレジスタCにセットする。そして、以下のような処
理を行う。 (イ)レジスタCの値がレジスタAに格納される判定値
M以上ならば、それまでの各ブロックの属性を「1」と
判定する。 (ロ)一方、レジスタCの値がレジスタAに格納される
判定値Mに満たないならば、それまでの各ブロックの属
性を「0」と判定する。
【0064】次に、検出ブロックの次に非検出ブロック
が出現した場合、レジスタCのカウント値をクリアし、
検出ブロックが出現するか、あるいは1走査ラインが完
了するまで非検出ブロックの数をカウントしてレジスタ
Dにセットする。また、非検出ブロックのカウント中に
検出ブロックが出現した時には、再び検出ブロックの数
をカウントしてレジスタCにセットする。そして、以下
のような処理を行う。
【0065】(ハ)レジスタDの値がレジスタBに格納
される判定値Nより小の場合には、 a)非検出ブロックを「検出ブロック」と仮定し、 b)レジスタCの値とレジスタDの値とを加算してレジス
タEにセットする。 c)この時、レジスタEの値がレジスタAに格納される判
定値M以上ならば、非検出ブロック列とこれに続く検出
ブロック列との属性を全て「1」に補正する。 d)一方、レジスタEの値がレジスタAに格納される判定
値Mに満たない時には、非検出ブロック列とこれに続く
検出ブロック列との属性を全て「0」に補正する。
【0066】(ニ)レジスタDの値がレジスタBに格納
される判定値N以上の場合には、 a)非検出ブロックをそのまま「非検出ブロック」と判断
し、 b)レジスタCの値がレジスタAに格納される判定値M以
上ならば、検出ブロック列を全て「1」に補正し、 d)一方、レジスタCの値がレジスタAに格納される判定
値Mに満たない時には、検出ブロック列を全て「0」に
補正する。 こうして、隣接するブロック同士間の属性相関に基づ
き、ブロック属性を補正するから、光の受け具合や光源
のちらつき等による「クロマキー検出もれ」や「誤検
出」を補正でき、適正なクロマキー検出を行い得る訳で
ある。
【0067】(b)補正処理ルーチンの動作 次に、図11〜図13を参照して補正処理ルーチンの動
作について説明する。前述したように、位置検出処理部
40は、1水平(走査)ライン分のブロックについてク
ロマキー検出を施すと、ステップSA8を介して図11
に示す補正処理ルーチンを実行し、ステップSE1に処
理を進める。ステップSE1では、まず、各種レジスタ
を初期化する。ここでは、検出ブロック(属性が「1」
のブロックを指す)の判定値MがレジスタAにセットさ
れ、レジスタBに非検出ブロック(属性が「0」のブロ
ックを指す)の判定値Nがセットされる。なお、ここで
言う判定値Mは、連続する検出ブロックの数を判定する
ための値であり、判定値Nは、連続する非検出ブロック
の数を判定するための値である。
【0068】また、このステップSE1では、レジスタ
C,DおよびEがそれぞれゼロリセットされる。レジス
タCは、検出ブロックのカウント値m(以下では、検出
ブロックカウント値mと称す)を一時記憶するものであ
り、レジスタDは、検出ブロック列の後に出現する非検
出ブロックのカウント値n(以下では、非検出ブロック
カウント値nと称す)を一時記憶するものである。ま
た、レジスタEは、検出ブロックカウント値mと非検出
ブロックカウント値nとの和を一時記憶するものであ
る。
【0069】次いで、ステップSE2に進むと、処理部
40はレジスタXの値をゼロリセットする。次に、ステ
ップSE3では、当該レジスタXの値に対応するブロッ
クの属性が「1」、つまり、検出ブロックであるか否か
を判断する。ここで、検出ブロックであった場合には、
判断結果が「YES」となり、次のステップSE4へ処
理を進める。ステップSE4では、レジスタCのカウン
ト値である検出ブロック数mを1インクリメントする。
そして、この後、ステップSE5に進み、レジスタXの
値を1インクリメントして歩進させる。
【0070】次に、ステップSE6に進むと、レジスタ
Xの値が「96」、すなわち、1走査ラインに相当する
1ブロックラインのブロック属性読み出しが完了したか
否かを判断する。ここで、1ブロックラインのブロック
属性読み出しが完了していない時には、判断結果が「N
O」となり、上述したステップSE3に処理を戻し、以
後、1ブロックライン分のブロック属性読み出しが完了
する迄、ステップSE3〜SE5を繰り返す。そして、
1ブロックライン分のブロック属性読み出しが完了した
時点で、処理部40はその処理をステップSE7に進め
る。ステップSE7では、レジスタCにセットされる検
出ブロックカウント値mが判定値M以上であるか否かを
判断する。
【0071】ここで、検出ブロックカウント値mが判定
値M以上であると、判断結果が「YES」となり、ステ
ップSE8に進み、そのブロック列の属性を全て「1」
に確定する。一方、検出ブロックカウント値mが判定値
Mに満たない場合には、ステップSE7の判断結果が
「NO」となり、ステップSE9に処理を進め、この場
合、誤検出と見做して対応するブロック列の属性を
「0」に補正する。次いで、この後、ステップSE10
においてレジスタC、DおよびEの各内容をクリアして
このルーチンを終了し、メインルーチンへ復帰する。
【0072】ところで、上述したステップSE3におい
て、レジスタXの値に応じて読み出されるブロックの属
性が「0」、つまり、非検出ブロックが出現した場合に
は、ここでの判断結果が「NO」となり、図12に示す
ステップSE11に処理を進める。ステップSE11で
は、これ迄に読み出したブロック中に検出ブロックが存
在したか否かを判断する。ここで、検出ブロックがこれ
までに存在していない時には、判断結果が「NO」とな
り、ステップSE12に進み、現在読み出しているブロ
ックの属性を「0(非検出ブロック)」に確定し、前述
したステップSE5へ処理を進める。
【0073】一方、これ迄に読み出したブロック中に検
出ブロックが存在した時には、このステップSE11の
判断結果が「YES」となり、次のステップSE13へ
処理を進める。ステップSE13に進むと、処理部40
は、これ迄の検出ブロックカウント値mが判定値M以上
であるか否かを判断する。ここで、検出ブロックカウン
ト値mが判定値M以上であると、判断結果が「YES」
となり、ステップSE14に進み、非検出ブロックに連
なるブロック列の属性を全て「1(検出ブロック)」に
確定する。これに対し、検出ブロックカウント値mが判
定値Mに満たない場合には、このステップSE13の判
断結果が「NO」となり、ステップSE15に進み、非
検出ブロックに連なるブロック列の属性を全て「0」に
補正する。これにより、誤検出が補正されることにな
る。
【0074】そして、この後、ステップSE16に進
み、レジスタCに格納される検出ブロックカウント値m
をゼロリセットした後、ステップSE17に処理を進め
る。ステップSE17に進むと、レジスタDに格納され
る非検出ブロックカウント値nを1インクリメントす
る。次いで、ステップSE18では、次のブロック属性
を読み出し、これが「1(検出ブロック)」であるか否
かを判断する。ここで、読み出したブロック属性が「0
(非検出ブロック)」である場合には、判断結果が「N
O」となり、次のステップSE19に進み、レジスタX
の値を1インクリメントして歩進させる。
【0075】次いで、ステップSE20では、この歩進
されたレジスタXの値が「96」、つまり、1走査ライ
ン分のブロック属性読み出しが完了したか否を判断す
る。1走査ライン分の読み出しが完了していない時に
は、ここでの判断結果が「NO」となり、上述したステ
ップSE17へ処理を戻し、ステップSE17〜SE1
9を繰り返す。そして、1走査ライン分のブロック属性
読み出しが完了すると、このステップSE20の判断結
果が「YES」となり、次のステップSE21へ処理を
進める。ステップSE21に進むと、処理部40は、ス
テップSE17〜SE19の繰り返しによって読み出さ
れたブロック列を「0(非検出ブロック)」に確定す
る。この後、ステップSE22に進み、レジスタC,D
およびEをゼロリセットし、このルーチンを完了する。
【0076】これに対し、上述したステップSE18に
おいて読み出されたブロック属性が「1(検出ブロッ
ク)」であった場合には、その判断結果は「YES」と
なり、ステップSE23へ進む。ステップSE23で
は、レジスタCに格納される非検出ブロックカウント値
nが判定値Nより小であるか否かを判断する。ここで、
非検出ブロックカウント値nが判定値N以上存在する場
合には、判断結果が「NO」となり、ステップSE24
に進み、その非検出ブロックカウント値nに対応するブ
ロック列を「0(非検出ブロック)」に確定する。次い
で、ステップSE25に進み、レジスタDにセットされ
る非検出ブロックカウント値nをゼロリセットした後、
処理部40は前述したステップSE5へ進み、ブロック
属性の読み出しを続ける。
【0077】一方、上記ステップSE23において、非
検出ブロックカウント値nが判定値Nより小であると、
ここでの判断結果が「YES」となり、図13に示すス
テップSE26に処理を進める。ステップSE26で
は、この非検出ブロックカウント値nに対応するブロッ
ク列を「1」、すなわち、検出もれとなった検出ブロッ
クと仮定する。そして、次のステップSE27では、レ
ジスタCに格納される検出ブロックカウント値mをイン
クリメントして歩進させ、続いて、ステップSE28で
は、レジスタXの値に応じて次に読み出されるブロック
属性が「0」であるか否かを判断する。ここで、読み出
したブロック属性が「0」でなければ、さらにレジスタ
Xの値を1インクリメントし(ステップSE29)、こ
のインクリメントした結果、1走査ラインに対応するブ
ロック属性読み出しが完了したか否かを判断する(ステ
ップSE30)。
【0078】1走査ラインに対応するブロック属性読み
出しが完了していない時には、ステップSE30の判断
結果が「NO」となり、再びステップSE27以降を繰
り返す。そして、ステップSE28において読み出した
ブロック属性が「0」の場合、あるいはステップSE3
0において1走査ライン分のブロック読み出しが完了し
た場合には、ステップSE31に進み、レジスタCに格
納される検出ブロックカウント値mとレジスタDに格納
される非検出ブロックカウント値nとの和(m+n)を
レジスタEにセットする。
【0079】次いで、処理部40は、次のステップSE
32へ処理を進め、このレジスタEにセットされた加算
値(m+n)が判定値M以上であるか否かを判断する。
ここで、加算値(m+n)が判定値M以上であると、判
断結果は「YES」となり、ステップSE33に進み、
加算値(m+n)に対応するブロック列の属性を全て
「1(検出ブロック)」に確定する。一方、加算値(m
+n)が判定値Mに満たない場合には、判断結果が「N
O」となり、ステップSE34に処理を進め、加算値
(m+n)に対応するブロック列の属性を全て「0(非
検出ブロック)」に確定する。これにより、検出ブロッ
ク列中に存在する非検出ブロック、あるいは非検出ブロ
ック列中に存在する検出ブロックを「検出もれ」あるい
は「誤検出」と見做して補正し得ることになる。
【0080】そして、この後、処理部40はステップS
E35に進み、レジスタXの値を歩進させ、続いて、ス
テップSE36では、この歩進されたレジスタXの値が
1走査ライン分完了したか否かを判断する。ここで、1
走査ラインが完了した時、この補正処理ルーチンを終了
し、メインルーチンへ復帰する。一方、1走査ラインが
完了していない時には、ステップSE37に進み、レジ
スタC,DおよびEをそれぞれゼロクリアし、前述した
ステップSE17(図12参照)以降を繰り返す。
【0081】以上のように、この補正処理ルーチンで
は、検出ブロック列あるいは非検出ブロック列のパター
ンに応じて「検出もれ」や「誤検出」を判定し、判定結
果に基づいてブロック属性を補正するようになってい
る。ここで、例えば、レジスタXに応じて読み出したブ
ロック属性が以下のように配列したケースを具体的に考
える。 00…00,11…11,00…00,11…11,00…00,11…11,00…00,11…11,00…00,… |m1| |n1| |m2| |n2| |m3| |n3| |m4| |n4| の時、 (イ)M≦m1の場合には、m1個のブロック列が「1
(検出ブロック)」に確定される。 (ロ)N>n1の場合には、n1個のブロック列を
「1」と仮定し、M≦(n1+m2)ならば、n1個の
ブロック列が「1(検出ブロック)」に確定される。 (ハ)N>n2の場合には、n2個のブロック列を
「1」と仮定し、M≦(n2+m3)ならば、n2個の
ブロック列が「1(検出ブロック)」に確定される。 (ニ)N>n3の場合には、n3個のブロック列を
「1」と仮定し、M≦(n3+m4)ならば、n3個の
ブロック列が「1(検出ブロック)」に確定される。 (ホ)N≦n4ならば、n4個のブロック列が「0(非
検出ブロック)」に確定される。
【0082】座標検出ルーチンの動作 次に、図14を参照して座標検出ルーチンの動作につい
て説明する。位置検出処理部40は、上述した補正処理
ルーチンによって補正された処理画面マップに基づき、
クロマキー像の左端座標/右端座標および上端座標/下
端座標を検出すべくステップSA11(図8参照)を介
して座標検出ルーチンを実行し、ステップSF1に処理
を進める。ステップSF1では、レジスタX,Yと、レ
ジスタX’,Y’と、レジスタSとをそれぞれゼロリセ
ットして初期化する。なお、レジスタSには、ブロック
個数を累算してなるバットBAT像の面積が格納され
る。また、レジスタX’,Y’に格納される値について
は後述する。
【0083】次いで、ステップSF2に進むと、処理部
40は、処理画面エリアE2からレジスタX,Yの値に
応じて対応するブロック属性を読み出してステップSF
3に処理を進める。ステップSF3では、その読み出し
たブロック属性が「1」、すなわち、クロマキー検出さ
れたバットBAT像であるか否かを判断する。ここで、
ブロック属性が「1」でない場合には、判断結果が「N
O」となり、ステップSF4に進む。ステップSF4で
は、レジスタXの値を1インクリメントして歩進させ
る。そして、ステップSF5に進むと、レジスタXの値
が「96」、つまり、1水平(走査)ライン分のブロッ
ク属性を読み出したか否かを判断する。ここで、1水平
ライン分の読み出しが完了していない場合には、判断結
果が「NO」となり、再び上記ステップSF2へ処理を
戻す。
【0084】そして、例えば、読み出したブロック属性
が「1」であると、ステップSF3の判断結果が「YE
S」となり、ステップSF6に処理を進める。ステップ
SF6では、レジスタXの値がレジスタX’の値より大
であるか否かを判断する。レジスタX’には、前回検出
したX座標がセットされており、この座標値と今回の座
標値との比較結果に応じて右端/左端座標を更新するよ
うにしている。つまり、ここでの判断結果が「NO」に
なると、ステップSF7に進み、レジスタXの値を左端
座標エリアE5(図7参照)にストアしてバットBAT
像の左端座標を更新する。一方、ステップSF6の判断
結果が「YES」になると、ステップSF8に進み、レ
ジスタXの値を右端座標エリアE6(図7参照)にスト
アしてバットBAT像の右端座標を更新する。
【0085】次いで、ステップSF9に進むと、処理部
40は、レジスタYの値がレジスタY’の値より大であ
るか否かを判断する。ここで、レジスタY’は、上記レ
ジスタX’と同様、前回検出したY座標がセットされて
おり、この座標値と今回の座標値との比較結果に応じて
上端/下端座標を更新するようにしている。つまり、判
断結果が「NO」になると、ステップSF10に進み、
レジスタYの値を上端座標エリアE3(図7参照)にス
トアしてバットBAT像の上端座標を更新する。一方、
ステップSF9の判断結果が「YES」になると、ステ
ップSF11に進み、レジスタYの値を下端座標エリア
E4(図7参照)にストアしてバットBAT像の下端座
標を更新する。
【0086】そして、ステップSF12では、レジスタ
Sの値を1インクリメントし、面積を1ブロック増加さ
せる。続いて、ステップSF13に進むと、レジスタ
X,Yの値をそれぞれレジスタX’,Y’に書き換え
る。こうして上記ステップSF2〜SF13の処理が1
水平ライン分なされると、上述したステップSF5の判
断結果が「YES」となり、ステップSF14に進み、
レジスタXの値をゼロリセットすると共に、レジスタY
の値を歩進させる。次いで、ステップSF15に進む
と、レジスタYの値が「96」、つまり、1フレーム分
の座標検出がなされたか否かを判断する。そして、1フ
レーム分の座標検出が完了していない場合には、前述し
たステップSF2以降が繰り返される。一方、完了した
時には、このルーチンから前述したメインルーチン(図
8参照)へ処理を戻す。
【0087】重心計算ルーチンの動作 上記座標検出ルーチンによって、クロマキー検出された
バットBAT像の左端/右端座標および上端/下端座標
が検出されると、位置検出処理部40はステップSA1
2を介して図15に示す重心計算ルーチンを実行し、ス
テップSP1に処理を進める。まず、ステップSP1で
は、レジスタXG,YGをゼロリセットする。レジスタ
XG,YGは、それぞれクロマキー検出されたブロック
に基づいて算出されるバットBAT像の重心座標が格納
されるものである。次に、ステップSP2に進むと、レ
ジスタX,Yを初期化し、続いて、ステップSP3で
は、処理画面エリアE2からレジスタX,Yの値に対応
するブロック属性を読み出す。
【0088】次に、ステップSP4に進むと、処理部4
0は、この読み出したブロック属性が「1」、すなわ
ち、クロマキー検出されたバットBAT像であるか否か
を判断する。ここで、ブロック属性が「1」でない場合
には、判断結果が「NO」となり、ステップSP5に進
む。ステップSP5では、レジスタXの値を1インクリ
メントして歩進させる。そして、ステップSP6に進む
と、レジスタXの値が「96」、つまり、1水平(走
査)ライン分のブロック属性を読み出したか否かを判断
する。ここで、1水平ライン分の読み出しが完了してい
ない場合には、判断結果が「NO」となり、再び上記ス
テップSP3に処理を戻す。
【0089】そして、例えば、次に読み出したブロック
属性が「1」であるとする。そうすると、ステップSP
4の判断結果は「YES」となり、処理部40はステッ
プSP7に処理を進める。ステップSP7では、クロマ
キー検出されたブロックを質点と見做し、このブロック
の座標(X,Y)と面積Sとの比を順次累算する重心計
算を行う。なお、この面積Sは上述した座標検出ルーチ
ンにおいてレジスタSに格納されるものである。次い
で、ステップSP8に進むと、上記ステップSP7の重
心計算結果に応じて重心座標を更新し、続いて、ステッ
プSP5においてレジスタXの値を歩進させる。
【0090】ここで、1水平ライン分の読み出しが完了
したとすると、ステップSP6の判断結果が「YES」
となり、ステップSP9に進み、レジスタXの値をゼロ
リセットすると共に、レジスタYの値を1歩進させる。
次いで、ステップSP10に進むと、レジスタYの値が
「96」、つまり、1フレーム分の重心計算がなされた
か否かを判断する。そして、1フレーム分の重心計算が
完了していない場合には、判断結果が「NO」となり、
前述したステップSP3以降の処理を繰り返す。一方、
1フレーム分の重心計算が完了した時には、判断結果が
「YES」となり、このルーチンを終了してメインルー
チン(図8参照)に復帰する。
【0091】衝突座標検出ルーチンの動作 次に、図16を参照して衝突座標検出ルーチンの動作に
ついて説明する。上述したように補正処理が施された処
理画面マップが作成されると、位置検出処理部40はス
テップSA13(図8参照)を介して衝突座標検出ルー
チンを実行する。このルーチンでは、クロマキー検出さ
れた実画像のバットBAT像とCG画像中におけるオブ
ジェクト画像(ボール像)との衝突の有無を検出するも
のである。
【0092】まず、当該ルーチンが実行されると、処理
部40はステップSD1に処理を進め、レジスタX,Y
をそれぞれゼロリセットし、次のステップSD2へ進
む。ステップSD2では、レジスタX,Yの値に対応す
るブロック属性を処理画面エリアE2から読み出す。そ
して、ステップSD3に進むと、その読み出したブロッ
ク属性が「1」、すなわち、クロマキー検出されたバッ
トBAT像であるか否かを判断する。ここで、ブロック
属性が「1」でない場合には、判断結果が「NO」とな
り、衝突が起こり得ないとして後述するステップSD1
2へ処理を進める。
【0093】これに対し、読み出したブロック属性が
「1」である時には、判断結果が「YES」となり、次
のステップSD4に処理を進める。ステップSD4で
は、ラインバッファに書き込まれたCGデータをレジス
タX,Yの値に応じて読み出す。ここで言うCGデータ
とは、CG画像中のオブジェクト画像データDOBに対応
する信号YSOBJを指す。なお、信号YSOBJは、
VDP31(図3参照)から処理部40に供給されるも
のである。そして、次のステップSD5に進むと、処理
部40は読み出したCGデータが「1」であるか否かを
判断する。この時、当該CGデータが「1」でなけれ
ば、レジスタX,Yの値に応じて読み出されたブロック
はオブジェクト画像データDOBと重ならないことになる
から、衝突しないとして判断結果が「NO」となり、後
述するステップSD12に処理を進める。
【0094】一方、読み出したCGデータが「1」であ
ると、ステップSD5の判断結果が「YES」となり、
ステップSD6に進む。ステップSD6では、衝突フラ
グCFが「0」であるか否かを判断する。衝突フラグC
Fは、実画像のバットBAT像とCG画像のオブジェク
ト画像(ボール像)とが重なり合う場合に「1」となる
ものである。ここで、当該フラグCFが「0」である場
合、つまり、初めて両画像の衝突が認知された状態で
は、判断結果が「YES」となり、次のステップSD7
に処理を進める。ステップSD7では、最初に検出され
た第1のX座標をを衝突座標エリアE7にストアし、続
いてステップSD8では、これに対応する第1のY座標
を同エリアE7にストアする。そして、ステップSD9
に進み、衝突フラグCFを「1」にセットする。
【0095】なお、このようにして衝突フラグCFが
「1」になると、処理部40はCPU51側へ割込み要
求を出し、これに応じてCPU51が衝突割込み処理
(後述する)を実行するようにしている。これに対して
上記ステップSD6の判断結果が「NO」の場合、すな
わち、既に両画像の衝突が認知された状態では、ステッ
プSD10に進み、最後に検出された第2のX座標を衝
突座標エリアE8にストアし、続いてステップSD11
では、これに対応する第2のY座標を同エリアE7にス
トアする。
【0096】そして、この後、処理部40は、ステップ
SD12に進み、レジスタXの値をインクリメントして
歩進させ、続くステップSD13では、歩進されたレジ
スタXの値が「96」、すなわち、1水平(走査)ライ
ン分のブロック属性読み出しが完了したか否かを判断す
る。ここで、1水平(走査)ライン分のブロック属性読
み出しが完了していない時には、判断結果が「NO」に
なり、前述したステップSD2以降を繰り返す。一方、
1水平(走査)ライン分のブロック属性読み出しが完了
した場合には、判断結果が「YES」となり、次のステ
ップSD14へ処理を進め、レジスタXをゼロリセット
すると共に、レジスタYの値を歩進させて読み出すべき
走査ラインを更新する。次いで、ステップSD15で
は、この更新されたレジスタYの値が「96」、つま
り、1画面分のブロック属性読み出しが完了したか否か
を判断する。ここで、1画面分のブロック属性読み出し
が完了していない場合には、判断結果が「NO」とな
り、前述のステップSD2以降を繰り返して衝突座標を
検出する。一方、1画面分のブロック属性読み出しが完
了した時には、このステップSD15の判断結果が「Y
ES」となり、このルーチンを終了する。
【0097】以上説明したように、位置検出処理部40
では、補正処理が施されたブロック属性に基づいてクロ
マキー検出されるバットBAT像を処理画面マップに登
録する。そして、処理画面マップから読み出したブロッ
ク属性に従ってバットBAT像とオブジェクト画像(ボ
ール像)との衝突座標位置や、処理画面におけるバット
BAT像の左端/右端座標および上端/下端座標を求め
ると共に、その面積と重心位置とを算出する。なお、前
述した補正処理ルーチンにおける判定値M,Nは、それ
ぞれCPU51からセットされる態様としても良いし、
あるいは位置検出処理部40の内部に固定値としてプリ
セットする態様としても良い。また、補正結果に基づき
最適な判定値M,Nを与えるフィードバック制御態様と
することも可能である。
【0098】(2)制御部50(CPU51)の動作 次に、上述した位置検出処理部40から供給される各種
データに基づいて画像処理部30、第1音源回路55b
および第2音源回路56を制御してゲーム進行を管理す
るCPU51の動作について図16〜図26を参照して
説明する。以下では、CPU51の概略動作としてCP
Uメインルーチンについて説明した後、各種割込み処理
ルーチンについて説明する。
【0099】メインルーチンの動作 まず、装置本体2に電源が投入されると、CPU51は
ROM53に記憶されたオペレーションシステムプログ
ラムを読み出してロードした後、図17に示すCPUメ
インルーチンを実行し、ステップSG1に処理を進め
る。ステップSG1では、RAM52に確保される各種
レジスタを初期化すると共に、VDP31および位置検
出処理部40にイニシャライズを指定する制御信号SC
を供給する。次いで、ステップSG2に進むと、各部へ
割込み許可を与える制御信号SCを供給する一方、自身
の割込みマスクを解除した後、次のステップSG3に進
む。
【0100】ステップSG3に進むと、ゲームカートリ
ッジ55に内蔵されるROM55aからアプリケーショ
ンプログラムを読み出し、RAM52の所定記憶エリア
に展開する。次に、ステップSG4に進むと、CPU5
1は、ゲーム開始当初の初期画面を形成するバックグラ
ウンド画像データDBGをVDP31へDMA転送するた
め、DMAコントローラに転送先アドレスおよび転送元
アドレスをセットする。なお、DMA転送は、ディスプ
レイ3(図1参照)側の垂直帰線期間に同期した転送割
込み処理により行われる。転送命令がセットされたDM
Aコントローラは、CPU51の指示の下、ROM55
a(図3参照)から転送元アドレスに対応するバックグ
ラウンド画像データDBGを読み出してVDP31(VR
AM32)へDMA転送する。こうした割込み処理につ
いては追って説明する。
【0101】次いで、ステップSG5に進むと、CPU
51は、バックグラウンド画像BG上に表示されるオブ
ジェクト画像データDOBをVDP31へDMA転送する
ため、DMAコントローラに転送先アドレスおよび転送
元アドレスをセットする。続いて、ステップSG6で
は、当該データDOBに対応するオブジェクトテーブルデ
ータTOBの転送先アドレスおよび転送元アドレスをDM
Aコントローラにセットする。オブジェクトテーブルデ
ータTOBは、初期画面におけるオブジェクト画像データ
OBの表示位置を指定するものであって、オブジェクト
テーブルRAM31fに格納される。
【0102】こうして初期画面や警告画面を形成する各
種データのDMA転送セットが完了すると、CPU51
はステップSG7に処理を進め、レジスタACKFに格
納される転送フラグFを「1」にセットする。なお、レ
ジスタACKFにセットされる転送フラグFとは、DM
Aコントローラに転送セットされたデータがDMA転送
されたか否かを表わすものであり、当該フラグFが
「0」の時にDMA転送完了の旨を表わし、「1」の時
に未転送状態を表わしている。そして、ステップSG8
では、この転送フラグFが「0」になる迄、すなわち、
後述する転送割込み処理ルーチンによってDMA転送が
完了するまで待機する。
【0103】そして、いま、DMA転送が完了したとす
る。そうすると、CPU51はステップSG9に処理を
進め、スタートイベントが発生したか否かを判断する。
ここで言うスタートイベントとは、装置本体2の操作パ
ネルに配設されるスタートスイッチがオン操作された時
に発生するイベントである。そして、遊戯者がゲーム動
作を開始させるため、当該スタートスイッチをオン操作
すると、上記スタートイベントが生成されるから、ここ
での判断結果が「YES」となり、ステップSG10へ
処理を進める。ステップSG10では、レジスタtをゼ
ロリセットし、続いて、ステップSG11に進み、レジ
スタSTFに「1」をセットして次のステップSG12
へ処理を進める。一方、スタートイベントが生成されな
い場合には、上記ステップSG9の判断結果が「NO」
となり、ステップSG12へ進む。なお、上述したレジ
スタtにはゲーム進行を管理するタイムカウント値が後
述する割込み動作によってセットされるようになってい
る。
【0104】ステップSG12では、レジスタSTFの
値が「1」、すなわち、ゲーム開始か否かを表わすスタ
ートフラグがゲーム開始状態にセットされたか否かを判
断する。ここで、「1」がセットされていなければ、判
断結果が「NO」となり、スタートイベントが生成され
るまで上述したステップSG9〜SG11を繰り返す。
そして、スタートイベントが発生すると、ステップSG
12の判断結果が「YES」となり、CPU51は図1
8に示すステップSG13へ処理を進める。ステップS
G13では、レジスタACKFにセットされる転送フラ
グFが「0」であるか否かを判断する。ここで、DMA
転送が完了している場合、当該フラグFは「0」である
から、判断結果は「YES」となり、次のステップSG
14に処理を進める。
【0105】ステップSG14では、レジスタtの値、
すなわち、ゲーム進行に応じたタイムカウント値に基づ
き、対応するオブジェクトテーブルデータTOBを演算す
る。これにより、オブジェクト画像データDOBの表示位
置が定まる。この場合、オブジェクト画像データD
OBは、「投手」を模したキャラクタ像と、このキャラク
タ像が持つ「ボール像」とから形成される。次に、ステ
ップSG15に進むと、CPU51は予めVDP31側
へDMA転送した複数のオブジェクト画像データD OB
内から、レジスタtのタイムカウント値に対応した画像
データDOBを指定する制御信号SCを発生する。この結
果、ゲーム画面においてテーブルデータTOBで指定され
た位置に、タイムカウント値に対応したオブジェクト画
像データDOBが表示される。
【0106】以上のようにしてゲーム画面が形成される
と、CPU51はステップSG16に進み、レジスタA
CKFに格納される転送フラグFを「1」にセットし、
ステップSG17に進む。なお、上述したステップSG
13において判断結果が「NO」の場合、つまり、既に
オブジェクトテーブルデータTOBがDMA転送されてい
る時にはステップSG17へ処理を進める。ステップS
G17では、ストップイベントが発生したか否かを判断
する。ストップイベントとは、装置本体2の操作パネル
に配設されるストップスイッチがオン操作された時に発
生するイベントである。そして、遊戯者がゲームを停止
させるため、当該ストップスイッチをオン操作すると、
上記ストップイベントが生成され、ここでの判断結果が
「YES」となり、ステップSG18へ進む。
【0107】ステップSG18では、レジスタSTFに
格納されるスタートフラグを「0」にセットしてゲーム
動作を停止させる。この後、CPU51は前述したステ
ップSG9に処理を戻し、以後、スタートイベントが発
生するまでステップSG9〜SG12の動作を繰り返
す。一方、上記ステップSG17において、ストップス
イッチがオン操作されない場合には、判断結果が「N
O」となり、ステップSG19へ処理を進める。ステッ
プSG19では、レジスタtに格納されるタイムカウン
ト値が所定値Tに達したか否かを判断する。ここで、タ
イムカウント値がゲーム終了時間に相当する所定値Tに
達していない場合には、判断結果が「NO」となり、ス
テップSG9へ処理を戻す。これに対し、タイムカウン
ト値が所定値Tに達した場合には、ステップSG20を
介してレジスタtに格納されるタイムカウント値をゼロ
リセットした後、ステップSG9へ処理を戻す。
【0108】割込み処理ルーチンの動作 次に、図19〜図24を参照し、CPU51において実
行される各種割込み処理ルーチンの動作について説明す
る。 a.転送割込み処理ルーチンの動作 CPU51は、クロックドライバ12(図3参照)から
垂直帰線信号が供給される毎にDMAコントローラ(図
示略)へ転送指示を与えると共に、図19に示す転送割
込み処理ルーチンを実行する。まず、ステップSJ1で
は、レジスタACKFに格納される転送フラグFが
「1」、つまり、前述したステップSG6(図17参
照)においてDMA転送セットされたオブジェクトテー
ブルデータTOBが未転送状態にあるか否かを判断する。
ここで、当該データTOBが既にDMA転送済みである
と、転送フラグFは「0」になっているから、判断結果
は「NO」となり、このルーチンを終了する。
【0109】一方、オブジェクトテーブルデータTOB
未転送状態にあると、判断結果は「YES」となり、C
PU51は次のステップSJ2へ処理を進める。ステッ
プSJ2では、DMAコントローラに転送セットされて
いるオブジェクト画像データDOBをVDP31側へDM
A転送し、続く、ステップSJ3では当該データDOB
対応するオブジェクトテーブルデータTOBをDMA転送
する。次いで、ステップSJ4に進むと、CPU51は
レジスタACKFに格納される転送フラグFを「0」と
して転送完了の旨を表わし、この後、CPUメインルー
チンに復帰する。このように、転送割込み処理ルーチン
にあっては、レジスタACKFにセットされる転送フラ
グFに応じてCG画像を形成するオブジェクト画像デー
タDOB2およびオブジェクトテーブルデータTOB2をV
DP31にDMA転送するようになっている。
【0110】b.衝突割込み処理ルーチンの動作 CPU51では、ゲーム進行に応じたタイムカウント値
に基づいてゲーム画面を形成するオブジェクト画像デー
タDOBおよびオブジェクトテーブルデータTOBを順次D
MA転送するよう制御しており、一方、VDP31側で
はこれらデータDOB,TOBに対応するオブジェクト画像
とクロマキー検出されるバットBAT像とを合成して時
々刻々変化するCG画像を生成する。
【0111】この時、位置検出処理部40では、前述し
た衝突座標検出処理ルーチン(図16参照)の動作に基
づき、「バット像」と「ボール像」との衝突の有無を随
時検出する。そして、位置検出処理部40が衝突を検出
した場合、衝突フラグCFを「1」に設定することによ
り、CPU51は図20に示す衝突割込み処理ルーチン
を実行し、ステップSK1へ処理を進める。
【0112】ステップSK1では、レジスタtにセット
されるタイムカウント値が所定値T 1〜T2の範囲に収っ
ているか否かを判断する。タイムカウント値は、ゲーム
開始直後からカウントされ、ゲーム進行を管理する値で
ある。また、ここで言う所定値T1〜T2とは、「バット
像」と「ボール像」とがミートする際の有効期間を指
す。つまり、このステップSK1では、「バット像」と
「ボール像」とが衝突したタイミングがミートの有効期
間内にあるか否かを判断している。ここで、例えば、遊
戯者がバットBATを早目に振ったり、振り遅れたりす
ると、衝突したタイミングがミートの有効期間を外すこ
とになるから、判断結果は「NO」となり、このルーチ
ンを完了する。
【0113】これに対し、衝突したタイミングがミート
の有効期間内にあると、判断結果は「YES」となり、
次のステップSK2へ処理を進める。ステップSK2で
は、クロマキー検出された「バットBAT像」の重心位
置、すなわち、位置検出処理部40のワークRAMにお
ける重心座標エリアE9から重心座標を取り込む。次い
で、ステップSK3に進むと、オブジェクト画像データ
OBから形成される「ボール像」の重心位置と、クロマ
キー検出された「バットBAT像」の重心位置との対応
関係を判定する。ここで、両者の重心位置が一致した場
合には、ステップSK4に進み、後述する第1画像処理
ルーチンが実行される。また、「ボール像」の重心が
「バットBAT像」の重心より下方に位置する場合に
は、ステップSK5に進み、後述する第2画像処理ルー
チンが実行される。さらに、「ボール像」の重心が「バ
ットBAT像」の重心より上方に位置する場合には、ス
テップSK6に進み、後述する第3画像処理ルーチンが
実行される。
【0114】c.タイマインタラプト処理ルーチン 次に、ゲーム進行を管理するタイムカウント値を発生す
るタイマインタラプト処理ルーチンの動作について図2
1を参照して説明する。CPU51は、システムクロッ
ク回路24から供給されるシステムクロックに基づき、
所定周期毎に本ルーチンを起動し、ステップSM1を実
行し、レジスタtに格納されるタイムカウント値を1イ
ンクリメントして歩進させている。
【0115】d.画像処理ルーチンの動作 次に、上記第1〜第3画像処理ルーチンの動作について
図22〜図24を参照して説明する。図22は、上述し
た第1〜第3画像処理ルーチンの処理内容を共通化した
フロチャートである。まず、ステップSL1では、レジ
スタtに格納されるタイムカウント値に基づいてオブジ
ェクト画像データDOB(「ボール像」)の表示位置を演
算し、続いて、ステップSL2では、当該タイムカウン
ト値に応じたオブジェクト画像データDOBを指定すると
共に、レジスタACKF2に格納される転送フラグF2
の値を「1」にセットする。
【0116】したがって、第1画像処理ルーチンにあっ
ては、「ボール像」の重心と「バットBAT像」の重心
とが一致するから、実際のバッティングと同様に、例え
ば、”ホームラン”となるように「ボール像」をCG画
像中で表示する。また、第2画像処理ルーチンでは、図
23に図示するように、「ボール像」の重心が「バット
BAT像」の重心より下方に位置するバッティングとな
るので、例えば、”ゴロ”となるように「ボール像」を
CG画像中で表示する。さらに、第3画像処理ルーチン
では、図24に図示するように、「ボール像」の重心が
「バットBAT像」の重心より上方に位置するバッティ
ングとなるので、例えば、”フライ”となるように「ボ
ール像」をCG画像中で表示する。
【0117】このようにして、「ボール像」の重心位置
と「バットBAT像」の重心位置との対応関係に応じた
CG画像を生成すると、CPU51はステップSL3に
処理を進める。ステップSL3では、レジスタACKF
に格納される転送フラグFを「1」にセットし、続い
て、ステップSL4では、レジスタtに格納されるタイ
ムカウント値がゲーム終了値ENDに達したか否かを判
断する。ここで、タイムカウント値が当該ゲーム終了値
ENDに達した場合には、判断結果が「YES」とな
り、ステップSL5に進み、タイムカウント値をゼロリ
セットしてこのルーチンを完了する。
【0118】一方、タイムカウント値がゲーム終了値E
NDに満たない場合には、上記ステップSL4の判断結
果が「NO」となり、ステップSL6に進む。ステップ
SL6では、ストップイベントが発生したか否かを判断
する。ここで、ストップイベントが発生していない場合
には、判断結果が「NO」となり、上述したステップS
L1〜SL4を繰り返す。これに対して、ストップイベ
ントが発生すると、判断結果が「YES」となって、ス
テップSL7に進み、レジスタSTFに格納されるスタ
ートフラグを「0」にセットし、ゲーム終了の旨を表わ
してこのルーチンを完了する。
【0119】以上のように、本実施例では、処理画面マ
ップから読み出したブロック属性を、互いに隣接するブ
ロック同士の属性相関に従って補正するため、例えば、
光の受け具合や光源のちらつき等により「クロマキー検
出もれ」や「誤検出」が発生しても、これが補正され、
適正なクロマキー検出となり、結果的に位置検出誤差の
無い画像制御が実現し得る。
【0120】なお、上述した実施例にあっては、1走査
(水平)ラインに対応して読み出さされるブロック相互
の相関に応じてその属性を補正したが、これに替えて、
垂直方向に隣接するブロック相互間の相関に基づいてブ
ロック属性を補正するようにしても良いし、水平方向と
垂直方向との相関に応じてブロック属性を補正すること
も可能である。このようにすることで、よりクロマキー
検出精度が向上することは言うまでもない。また、本実
施例にあっては、「バッテイング」動作をシミュレート
する画像制御装置に適用した場合について開示したが、
本発明による要旨は当該装置に限定されるものではな
く、例えば、「テニス」や「ゴルフ」等、遊戯者の運動
行動を取り入れた各種ゲーム、あるいはロールプレイン
グゲームに適用することが可能であるばかりか、クロマ
キー検出を用いて画像制御するものであれば上述した本
願特有の効果を達成し得る。
【0121】
【発明の効果】本発明によれば、クロマキー抽出手段が
特定色に着色された被写体を撮像してなる撮像画像から
当該被写体に対応するクロマキー像を抽出し、補正手段
が前記クロマキー像を形成する各画素を、互いに隣接す
る画素同士の相関に応じて補正して補正クロマキー像を
生成するから、光の受け具合や光源のちらつき等があっ
ても、適正なクロマキー検出を行うことができる。した
がって、位置検出手段は、この補正手段によって生成さ
れる補正クロマキー像の前記撮像画像内における位置を
検出し、表示制御手段がこの位置検出手段によって検出
された前記補正クロマキー像の位置に応じて表示画面に
表示させるべき画像を表示制御するので、位置検出誤差
を発生することなく表示制御することができる。
【図面の簡単な説明】
【図1】本発明の一実施例による画像制御装置の全体構
成を示す外観図である。
【図2】同実施例の概要を説明するための図である。
【図3】同実施例の電気的構成を示すブロック図であ
る。
【図4】同実施例における撮像信号処理部11の構成を
示すブロック図である。
【図5】同実施例におけるビデオ信号処理部20の構成
を示すブロック図である。
【図6】同実施例におけるVDP31の構成を示すブロ
ック図である。
【図7】同実施例における位置検出処理部40のワーク
RAMの内容を説明するためのメモリマップである。
【図8】位置検出処理部40におけるメインルーチンの
動作を示すフローチャートである。
【図9】位置検出処理部40における初期画面マップ作
成ルーチンの動作を示すフローチャートである。
【図10】位置検出処理部40における処理画面マップ
作成ルーチンの動作を示すフローチャートである。
【図11】位置検出処理部40における補正処理ルーチ
ンの動作を示すフローチャートである。
【図12】位置検出処理部40における補正処理ルーチ
ンの動作を示すフローチャートである。
【図13】位置検出処理部40における補正処理ルーチ
ンの動作を示すフローチャートである。
【図14】位置検出処理部40における座標検出処理ル
ーチンの動作を示すフローチャートである。
【図15】位置検出処理部40における重心計算処理ル
ーチンの動作を示すフローチャートである。
【図16】位置検出処理部40における衝突座標検出処
理ルーチンの動作を示すフローチャートである。
【図17】同実施例におけるCPUメインルーチンの動
作を示すフローチャートである。
【図18】同実施例におけるCPUメインルーチンの動
作を示すフローチャートである。
【図19】CPU51における転送割込み処理ルーチン
の動作を示すフローチャートである。
【図20】CPU51における衝突割込み処理ルーチン
の動作を示すフローチャートである。
【図21】CPU51におけるタイマインタラプトルー
チンの動作を示すフローチャートである。
【図22】CPU51における第n画像処理ルーチンの
動作を示すフローチャートである。
【図23】CPU51における第n画像処理ルーチンの
動作を説明するための図である。
【図24】CPU51における第n画像処理ルーチンの
動作を説明するための図である。
【符号の説明】
1 撮像部 2 装置本体 3 ディスプレイ(表示画面) 20 ビデオ信号処理部(クロマキー抽出手段) 30 画像処理部(表示制御手段) 40 位置検出処理部(クロマキー抽出手段、補正手
段、位置検出手段) 50 制御部 51 CPU(表示制御手段)

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 特定色に着色された被写体を撮像してな
    る撮像画像から当該被写体に対応するクロマキー像を抽
    出するクロマキー抽出手段と、 前記クロマキー像を形成する各画素を、互いに隣接する
    画素同士の相関に応じて補正し、この補正された各画素
    からなる補正クロマキー像を生成する補正手段と、 この補正クロマキー像の前記撮像画像内における位置を
    検出する位置検出手段と、 この位置検出手段によって検出された前記補正クロマキ
    ー像の位置に応じて表示画面に表示させるべき画像を表
    示制御する表示制御手段とを具備することを特徴とする
    画像制御装置。
  2. 【請求項2】 前記クロマキー抽出手段は、前記撮像画
    像の1走査ラインに対応する各画素にそれぞれ前記クロ
    マキー像に相当するものであるか否かを示す属性を付与
    し、 前記補正手段は、この1走査ライン毎に付与された各画
    素の属性を所定の相関に基づいて補正することを特徴と
    する請求項1記載の画像制御装置。
  3. 【請求項3】 前記補正手段は、互いに上下に隣接する
    各走査ラインの画素列の相関に応じて前記属性を補正す
    ることを特徴とする請求項2記載の画像制御装置。
  4. 【請求項4】 前記補正手段は、前記クロマキー像に相
    当する属性の画素がM個以上連続した時に、その連続し
    た画素をクロマキー像を形成する検出画素と判定し、M
    個未満の時には誤検出であると見做してその連続した画
    素をクロマキー像を形成しない非検出画素と判定する第
    1の過程と、 このM個以上連続する前記検出画素を含む1走査ライン
    の画素列の間に、前記クロマキー像に相当しない属性の
    画素がN個以下連続した時には誤検出であると見做して
    その連続した画素を前記検出画素と判定し、N個より大
    の時にはその連続した画素を前記非検出画素と判定する
    第2の過程と、 前記クロマキー像に相当しない属性の画素がN個以上連
    続して左右両端に連なる画素列中に、前記クロマキー像
    に相当する属性の画素がM個以下続いた場合、誤検出で
    あると見做してその連続した画素を前記非検出画素と判
    定し、M個より大の時にはその連続した画素を前記検出
    画素と判定する第3の過程とを備えることを特徴とする
    請求項2記載の画像制御装置。
JP6248886A 1994-09-16 1994-09-16 画像制御装置 Pending JPH0887592A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6248886A JPH0887592A (ja) 1994-09-16 1994-09-16 画像制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6248886A JPH0887592A (ja) 1994-09-16 1994-09-16 画像制御装置

Publications (1)

Publication Number Publication Date
JPH0887592A true JPH0887592A (ja) 1996-04-02

Family

ID=17184912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6248886A Pending JPH0887592A (ja) 1994-09-16 1994-09-16 画像制御装置

Country Status (1)

Country Link
JP (1) JPH0887592A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010035315A (ko) * 2001-02-02 2001-05-07 홍만의 입체조명 크로마키

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010035315A (ko) * 2001-02-02 2001-05-07 홍만의 입체조명 크로마키

Similar Documents

Publication Publication Date Title
JP3766981B2 (ja) 画像制御装置および画像制御方法
US5634850A (en) Image processing device and method
US6149520A (en) Video game method and apparatus for effecting character movement and ball control determination
JP3145064B2 (ja) ビデオゲーム機及びビデオゲームプログラムを記録した媒体
US8506371B2 (en) Game device, game device control method, program, information storage medium
JP3463379B2 (ja) 画像制御装置及び画像制御方法
JP3451343B2 (ja) 信号生成装置及び信号生成方法
JPH0850661A (ja) 画像制御装置
JPH0887592A (ja) 画像制御装置
JPH07271982A (ja) 画像制御装置
JP3371535B2 (ja) 画像制御装置および画像制御方法
JP3622234B2 (ja) 画像制御装置、および、画像制御方法
EP1151771B1 (en) Game system, imaging method in the game system, and computer readable storage medium having game program stored therein
JP3407394B2 (ja) 画像表示制御装置および画像表示制御方法
US6354942B1 (en) Method for executing game and game device for implementing same
JPH07282236A (ja) 画像制御装置
JPH07302324A (ja) 画像制御装置
JPH07282265A (ja) 画像制御装置
JP3371521B2 (ja) 信号生成装置及び信号生成方法
JPH0879621A (ja) 画像制御装置
JPH0855212A (ja) 画像制御装置
JP3586880B2 (ja) 画像抽出装置及び画像抽出方法
JP4277066B2 (ja) 画像処理装置および画像処理方法
JP3392386B2 (ja) 球軌跡の解析方法、球軌跡の解析装置、ゲーム実行方法、ゲーム装置、及び記録媒体
JP3145065B2 (ja) 球技のビデオゲーム機及び球技のビデオゲームプログラムを格納したコンピュータ可読媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040831

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050125

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050601