(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0018】
本発明の実施例について以下の順序で説明する。
A.装置構成:
B.制御機構の構成:
C.制御ソフトウェア構成:
C1.モジュール構成:
C2.演出制御の基本概念:
C3.イベントモジュールの機能:
C4.演出モジュールの機能:
C5.サウンドモジュールの機能:
C6.ランプモジュールの機能:
D.演出制御処理:
D1.メイン処理:
D2.イベント処理:
D3.演出データ処理:
D4.サウンド処理:
D5.ランプ処理:
E.効果:
F.第2実施例:
F1.遊技機の構成:
F2.遊技機の制御:
G.変形例:
【0019】
A.装置構成:
図1は実施例におけるスロットマシン10の外観を示す説明図である。スロットマシン10は、遊技媒体であるメダル(遊技メダル)を用いてゲームを行うことができる。「遊技媒体」とは、遊技場(ホール)において1回ごとのゲームについて投資または掛ける対象、およびゲームの結果に応じた特典として払い出しの対象となる物を意味する。本実施例は、スロットマシンを例にとって説明するが、本実施例は、パチンコ機などの遊技機として構成してもよい。
【0020】
図の左側にはスロットマシン10の正面図を示し、右側にA−A断面図を示した。図の煩雑化を避けるため、A−A断面図では、スロットマシン10のドア部分のみを示してある。スロットマシン10は、上方に大型(本実施例では画面サイズが19インチ程度となっている)の液晶パネル21を備えている。液晶パネル21の下部には3つの円筒形のリール22が配置されている。これらのリール22には、ゲーム用の図柄が描かれており、それぞれ図中の左右方向を回転軸として回転可能となっている。スロットマシン10の正面は、大型の透明カバー11で覆われている。
【0021】
遊技者が、メダルを投入して、始動レバー15を操作すると、リール22が回転し始める。遊技者が、3つの停止ボタン16をそれぞれ操作すると、ボタンの位置に対応したリール22の回転を停止させることができる。投入したメダル数、および回転が停止した時の図柄の配列に応じて、スロットマシン10はメダルを払い出す。
【0022】
スロットマシン10は、遊技中に種々の演出を行うため、スピーカ40やランプ30を備えている。スピーカ40は、上部および下部にそれぞれ左右の4カ所に設けられているが、上部のスピーカについては図示されていない。ランプ30は、スロットマシン10の左右および上部に設けられている。ランプ30は、多数のLEDと、それを覆う透明樹脂製のレンズで構成されている。ランプ30は、遊技状況に応じて点灯し、例えば、大当たりが出た場合などには鮮やかに点灯して、大当たりの発生を周囲にアピールする演出を行う。
【0023】
B.制御機構の構成:
図2は制御機構の構成を示す説明図である。スロットマシン10はメイン制御基板100、サブ制御基板200の分散処理によって制御される。メイン制御基板100は、内部にCPU101、ROM102、RAM103を備えており、スロットマシン10の全体処理を制御する。この制御を実行するため、メイン制御基板100には、種々の情報が入出力される。図中には、その一部を示した。
【0024】
入力される情報としては、例えば、始動レバー15および停止ボタン16の動作状態、メダル満タンセンサ50、エラー解除センサ51、扉開放センサ52などのセンサ出力がある。メダル満タンセンサ50は、遊技機内のメダルの貯留数が所定数量を超えた場合にエラー信号をメイン制御基板100に出力する。エラー解除センサ51は、スロットマシン10の動作にエラーが生じた際に、係員の操作に応じてエラーをリセットするためのスイッチからの出力信号である。扉開放センサ52は、スロットマシン10の前面扉が開放されたことを報知するためのセンサ出力である。
【0025】
リール22からは、各リールの停止位置情報を表す信号が出力される。また、メイン制御基板100からリール22には、各リールを回転させるモータの起動及び停止を制御する駆動パルス信号が出力される。
【0026】
電源ユニット18は、メイン制御基板100を含めた各種基板に電力を供給するための機構である。電力の供給とともに、停電などの異常が発生した際に、バックアップ処理を行わせるため、停電予測信号をメイン制御基板100に出力する。
【0027】
ホッパ装置19は、特典としてメダルを払い出すための機構である。リールの停止状態によって成立した役に応じて、内部に貯留されているメダルをステッピングモータによって払い出し口から払い出すことができる。メイン制御基板100からホッパ装置19には、メダルの払い出し動作を行うための制御信号が出力される。ホッパ装置19には、払い出されたメダルを1枚ずつ検出する払出センサが設けられており、メダル1枚ごとの払出メダル信号がメイン制御基板100に出力される。
【0028】
スロットマシン10は、遊技状態に応じて音声出力、ランプ点灯、画像表示などの演出を行う。これらの演出は、サブ制御基板200によって制御される。メイン制御基板100が遊技状態を表すコマンドを出力すると、サブ制御基板200は、これに応じた演出を実行するのである。この意味で、サブ制御基板200は、メイン制御基板100からのコマンドに応じて作動する下位の制御基板であると言える。本実施例では、不正を回避するため、メイン制御基板100とサブ制御基板200は単方向の信号線で接続されており、サブ制御基板200からメイン制御基板100への信号伝達は行われない。
【0029】
サブ制御基板200は、内部にCPU201、ROM202、RAM203等を備えるマイクロコンピュータとして構成されている。CPU201は、ROM202に記憶されたプログラムおよびデータを用いて、RAM203を活用しながら種々の演出制御処理を実行する。CPU201は、ランプ30に点灯パターンを表すランプデータを出力することによって、その点灯状態を制御することができる。
【0030】
サブ制御基板200には、またLCD21を制御するためのVDP(Video Display
Processor)204が備えられている。VDP204は、CPU201からのコマンドに従って、画像をビットマップ展開し、LCD21に画像を表示するための表示データを生成する。表示データの生成は、種々の方法で行うことが可能であるが、本実施例では、予め用意されたキャラクタデータを活用する方法を採った。
【0031】
キャラクタデータとは、LCD21にまとまった単位として表示されるイメージ(以下、このイメージをスプライトと呼ぶ)を表すための64ピクセルなどの規定サイズの矩形のビットマップデータである。画面上には種々の大きさのスプライトが存在する。小さなスプライトは、一つのキャラクタデータで表現することができるし、人物など比較的大きいスプライトの場合には、例えば、横2×縦3などで配置した合計6個のキャラクタデータで表現することができる。背景画像のように更に大きいスプライトであれば、更に多数のキャラクタデータを用いて表現することができる。キャラクタデータの数および配置は、スプライトごとに任意に指定可能である。スプライトおよびキャラクタデータのサイズ等は任意に設定可能である。本実施例では、定型的な大きさのキャラクタデータを配置してスプライトを構成するものとしたが、キャラクタデータは、各スプライトの大きさに応じた不統一なサイズとしてもよい。
【0032】
CPU201は、画像に表示すべき複数のスプライトおよびその位置をVDP204に指示する。VDP204は、指定されたスプライトに対応するキャラクタデータをROM202から読み出し、指定された位置に展開して、表示データを生成するのである。
【0033】
画面上に複数のスプライトが配置されている場合には、順次、バッファ上にスプライトごとのデータが展開される。後から展開されるスプライトのデータは既に展開済みのデータに上書きされるため、複数のスプライトが配置される時は、後から展開されるスプライトほど優先的に表示されることになる。
【0034】
VDP204は、画像を展開する上で有用な種々の機能を有している。かかる機能の一つとしてレイヤ機能が挙げられる。VDP204は、スプライトを予め用意された複数のレイヤごとに展開することができるのである。この機能を利用すれば、画像の表示の有無および表示の優先度を指定することによって、スプライト間の重なり具合を容易に制御することができる利点がある。
【0035】
VDP204の上述の処理を制御するための表示制御CPU、およびキャラクタデータを格納するためのキャラROMをサブ制御基板200に更に設ける構成をとってもよい。
この場合には、サブ制御基板200のCPU201は、表示制御CPUに、表示すべき画像を表す識別コード等を出力すればすむ。表示制御CPUが、この識別コードを解析して、表示すべきスプライトおよび位置を特定し、VDP204に指示を出すことになる。また、キャラクラタデータ専用のキャラROMを設けることにより、キャラクタデータの読み出し速度を向上させることができ、画像表示を円滑に行うことが可能となる。
【0036】
サブ制御基板200には、音声を出力するための音源IC205が用意されている。CPU201が再生すべき音声を表す音源コマンドを音源IC205に出力すると、音源IC205は、音源コマンドに対応した音源データをROM202から読み出し、アンプ206を介してスピーカ40から音声を出力することができる。音源データを格納しておくための専用のROMを音源IC205に接続しておく構成としてもよい。
【0037】
本実施例では、音声は4チャンネルでスピーカ40に出力可能である。ここに図示した4つのスピーカは、それぞれチャンネルを模式的に表しているものであり、
図1で説明した物理的な4個のスピーカに対応している訳ではない。アンプ206内には、チャンネルごとに、増幅回路206aと、ボリューム206vが用意されている。後述する通り、ボリューム206vは、CPU201が個別に調整可能となっている。こうすることにより、例えば、BGMを演奏中に、そのチャンネルのボリュームを落として、他のチャンネルから流れる効果音を一時的に優先させるなどの演出を比較的容易に実現することが可能となる。
【0038】
C.制御ソフトウェア構成:
C1.モジュール構成:
図3は制御ソフトウェア構成を示す説明図である。本実施例では、各モジュールは、サブ制御基板のCPU201が実行するコンピュータプログラムによってソフトウェア的に構成されているが、一部または全部をハードウェア的に構成しても構わない。
【0039】
システムモジュール210内の主基板コマンドバッファ211は、メイン制御基板100から送信される主基板コマンドを受信し、コマンド解析モジュール220に受け渡す。
本実施例では、主基板コマンドは2バイトの情報であり、4ビットずつ4回に分けて出力される。主基板コマンドバッファ211は、この4回の信号を受信して2バイトのコマンドに再構成し、コマンド解析モジュール220に受け渡すのである。
【0040】
主基板コマンドには、遊技状態やスロットマシン10の動作状態のうち演出に関係のある内容を表す情報が含まれる。例えば、扉開放その他のセンサ出力(
図2参照)や、始動レバー15や停止ボタン16の操作、リールの回転や停止、停止時の役の成否などが挙げられる。ここに挙げたコマンドは例示であり、遊技機の機種や、演出内容に応じて種々のコマンドを含めることができる。例えば、本実施例をパチンコ機に適用する場合には、始動入賞口等への入賞の有無や、抽選の結果などを主基板コマンドに含めることができる。
【0041】
コマンド解析モジュール220は、主基板コマンドの内容を解析し、有効なコマンドか否かを判断する。有効なコマンドと判断された場合には、イベントモジュール230に受け渡す。
【0042】
イベントモジュール230は、受け取ったコマンドに基づいて、システムイベントおよびユーザイベントを生成する。システムイベントとは、遊技中のユーザの操作と無関係に、スロットマシン10の動作状態に応じて種々の処理を行うための管理状態を言う。本実施例では、システムイベントで管理する状態としては、優先度の高い順に、「設定変更中、各種異常報知、扉開放状態、リール空回し、パワーセーブ、通常遊技、デモ」などが挙げられる。これらは一例に過ぎず、更に多くの管理状態を対象としてもよい。
【0043】
ユーザイベントとは、遊技中の演出表示に関するイベントであり、例えば、始動レバー15の操作、停止ボタン16の操作、リールの停止状態などがあげられる。イベントモジュール230は、これらのイベントに応じて、演出番号を特定し、演出モジュール240に受け渡す。演出番号とは、音声出力、ランプ、LCDなどによって実現される演出内容を表す識別情報である。
【0044】
演出モジュール240は、演出番号に基づいて、液晶コマンド、音声動作番号、ランプ動作番号を決定する。演出番号に対して、どのような液晶コマンド、音声動作番号、ランプ動作番号を出力するかは、統合演出命令データで予め規定され、ROM202に格納されている。統合演出命令データの内容、および液晶コマンド等の決定方法については後述する。液晶コマンドは、液晶コマンドバッファ212を介して、VDP204に受け渡される。液晶コマンド、音声動作番号、ランプ動作番号のうちシステムイベントに起因するものは、演出モジュール240によらず、イベントモジュール230によって指定されることもある。
【0045】
統合演出命令データの選択、および統合演出命令データに基づく動作情報(液晶コマンド、音声動作番号、ランプ動作番号)の出力を行う点で、本実施例のイベントモジュール230および演出モジュール240は、本発明における統合演出制御部に相当する機能を果たす。本実施例では、2つのモジュールで統合演出制御部を構成しているが、両者を統合した単一のモジュールで統合演出制御部を構成してもよい。
【0046】
VDP204は、この液晶コマンドバッファ212に基づき表示データを生成して、LCD21に出力する。表示データは、先に
図2で説明した通り、液晶コマンドで指定されたキャラクタデータを指定された位置に展開する方法で生成する。
【0047】
サウンドモジュール250は、音声動作番号に基づいて音源コマンドを生成する。音源コマンドの生成方法については後で詳述し、ここでは概要のみを示す。
本実施例では、音声動作番号と、生成すべき音源コマンドとの関係は、予め音声用の種別演出命令データとして規定され、ROM202に記憶されている。サウンドモジュール250は、この種別演出命令データを参照して音源コマンドを生成するのである。図示を省略したが、サウンドモジュール250には、種別演出命令データを参照して音源コマンドを生成するためのレイヤ制御部が複数、設けられている。サウンドモジュール250は、これらの複数のレイヤ制御部を統合制御して、4チャンネル分の出力に対応する音源コマンドを生成することができる。音源IC205は、この音源コマンドで指定された音源データをROM202から読み出し、スピーカ40から音声出力する。
【0048】
ランプモジュール260は、ランプ動作番号に基づいて、ランプを点灯・点滅させるためのランプデータを生成する。ランプデータの生成方法については後で詳述し、ここでは概要のみを示す。
本実施例では、ランプ動作番号と、生成すべきランプデータとの関係は、予め種別演出命令データとして規定され、ROM202に記憶されている。ランプモジュール260は、この種別演出命令データを参照してランプデータを生成するのである。図示を省略したが、ランプモジュール260には、種別演出命令データを参照してランプデータを生成するためのレイヤ制御部が複数、設けられている。ランプモジュール260は、これらの複数のレイヤ制御部を統合制御してランプデータを生成することができる。ランプデータは、出力ポートイメージワーク213を介してランプ30に出力され、各ランプを点灯・点滅させる。
【0049】
C2.演出制御の基本概念:
図4は演出制御の基本概念を示す説明図である。サウンドモジュール250の機能を例にとって示した。先に説明した通り、サウンドモジュール250は、音声動作番号に基づいて音源ICに出力する音源コマンドを生成する。音源コマンドの生成は、レイヤ制御部252[1]〜252[4]等によって実現される。各レイヤ制御部は、予め個別に用意された音声出力用の種別演出命令データ255を参照して音源コマンドを生成する。種別演出命令データ255の構造は後述する。サウンドモジュールメイン251は、レイヤ制御部用に用意された種別演出命令データ255とは別に、サウンドモジュールメイン用に用意された種別演出命令データに従って、各レイヤ制御部の起動を制御し、参照すべき種別演出命令データを指定する。
【0050】
図示したレイヤ制御部252[1]〜[4]は本実施例で設けられているレイヤ制御部の一部である。レイヤ制御部は、音源コマンドの生成を並行して実行する必要のある本数分用意される。本実施例では、各レイヤ制御部によって出力される音声、即ち並列処理するそれぞれの音声を、画像表示のレイヤ構造に対応させ、「レイヤ」と称することもある。レイヤ制御部は、レイヤごとに一つ設けられることになる。
【0051】
本実施例で設けられるレイヤは、優先度の高い順に次の通りである。音声についてのレイヤ構造は、下記に限定されるものではなく、この中の一部を省略してもよいし、この他のレイヤを追加してもよい。
システム効果音(設定変更等) 禁止;
通常異常効果音 禁止;
扉開放効果音(エラー報知、ドア等) 禁止;
機能効果音2(払い出し、BET等) 許可;
機能効果音1(払い出し、BET等) 許可;
企画特殊効果音(ボーナスBGM等) 許可;
企画演出効果音(演出からの音声番号設定) 許可;
【0052】
「禁止」、「許可」とは、各レイヤを使用する際に、他のレイヤの音声出力を禁止するか、許可するかの指定である。例えば、「システム効果音」レイヤを使用して音声を出力する際には、その他のレイヤの音声出力が禁止されるため、システム効果音のみが出力されることになる。「企画演出効果音」レイヤを使用する場合には、このレイヤの音声と、他のレイヤの音声とが合成された音声が出力される。
【0053】
レイヤ制御部252[1]〜252[4]から出力された音源コマンドは、本実施例で設けられている4つのチャンネルCh1〜Ch4のいずれかから出力される。各チャンネルの音声は、ボリューム260v[1]〜[4]を介してスピーカ40[1]〜[4]から出力される。もっとも、ここに図示したスピーカ40[1]〜[4]は、各チャンネルCh1〜Ch4の出力を模式的に表したものであり、スロットマシン10に設けられた物理的ないずれか一つのスピーカと対応していることを意味している訳ではない。
【0054】
レイヤ制御部252と出力チャンネルとの対応関係は、チャンネルCh1〜Ch4に対応づけて設けられたチャンネル管理用ワーク253[1]〜253[4]によって管理される。図の右下にチャンネル管理用ワーク253のデータ構造を例示した。このワーク253では、レイヤ番号、フレーズ番号、ステレオ再生フラグ、出力ボリューム、ループ属性が格納されている。
【0055】
レイヤ番号は、各チャンネルを使用するレイヤを規定する。図の例では、チャンネルCh4は、レイヤ#3が使用していることを表している。レイヤ番号を変更することによって、チャンネルとレイヤ制御部との対応関係を切り換えることができる。例えば、レイヤ制御部252[4]は、図中の例では、チャンネルCh2と割り当てられているが、チャンネル管理用ワーク253[4]のレイヤ番号を「#4」に変更すれば、チャンネルCh4に割り当てられる。同様に、チャンネル管理用ワーク253[1]、253[2]のレイヤ番号を「#4」に変更すれば、それぞれチャンネルCh1、Ch2に割り当てられることになる。
フレーズ番号は、各レイヤから出力される一連の音声のうち、現在、どのフレーズが再生されているのかを示す情報である。ステレオ再生フラグは、ステレオ出力するか否かを表している。出力ボリュームはチャンネルごとのボリュームである。ループ属性は、繰り返し再生するか否かの指定である。これらの情報は、サウンドモジュールメイン251によって指定される。
【0056】
本実施例の構成は、出力ボリュームに関わらず音源コマンドを生成する機能と、出力先、および出力間の優劣やボリュームを調整する機能とを分離した構成と言える。前者がレイヤ制御部252の機能であり、後者がサウンドモジュールメイン251の機能である。
こうすることにより、複数のレイヤ制御部252には、レイヤ制御部間の優劣等を考慮することなく再生すべき種別演出命令データを指定しさえすればよいため、その動作制御が簡素なものとできる利点がある。また、レイヤ制御部の処理負荷も軽減する。更に、音声出力の過程で、柔軟に出力チャンネルや優先度、ボリュームを調整できる利点もある。
【0057】
例えば、音声出力中に、サウンドモジュールメイン251が、各チャンネルのレイヤ番号を変更することにより、各チャンネルから出力されるレイヤを容易に切り換えることができる。レイヤ1、2をそれぞれチャンネルCh1、Ch2から出力している途中で、出力先のチャンネルを入れ替えることが可能となるのである。この結果、チャンネルCh1がボリューム大、Ch2がボリューム小に設定されている場合には、大小のボリュームバランスを変えることなく、今まで大きく再生されていた音声を小さく出力し、小さく再生されていた音声を大きく出力することを容易に実現することできる。
【0058】
また、別の例として、一部のレイヤの出力ボリュームを0とすることにより、特定のレイヤの音声を容易に消去させることができ、一時的に特定のレイヤの音声のみを出力することができる。この間も、ボリューム0とされたレイヤは、音声の再生だけは継続的に行っているから、ボリュームを復帰させれば、従前の続きの音声が違和感なく出力されるという利点がある。
【0059】
図中では、サウンドモジュール250について、演出制御の基本概念を示した。本実施例では、ランプモジュール260についても同様の構成を採用している。つまり、ランプモジュール内にも、ランプデータを生成するための複数のレイヤ制御部が設けられており、レイヤ構造を採用している。ランプモジュール用のレイヤは、優先度の高い順に次の通りである。
設定変更;
エラー報知;
扉開放報知;
機能表示2(告知等);
機能表示1(払い出し等);
遊技演出;
ランプについてのレイヤ構造は、これに限定されるものではなく、この中の一部を省略してもよいし、この他のレイヤを追加してもよい。
【0060】
ランプについては、全て「禁止」扱いである。つまり、上述のレイヤの中で最も優先度の高いもののみが出力される。従って、サウンドモジュールと異なり、出力間のボリューム調整の機能も設けられていない。もっとも、ランプについても、サウンドと同様、他のレイヤの出力を「許可」するとともに、各レイヤの出力強度を調整するボリューム相当の機能を設けても良い。例えば、演出用のレイヤを複数設けておき、これらを共に出力許可扱いとしておけば、両者の重ね合わせ、およびその出力強度の調整によって、多様な演出を容易に実現することができる利点がある。
【0061】
以上で、スロットマシン10の制御機構のモジュール構成および演出制御の基本概念について説明した。次に、各モジュールの機能について、データ構造を示しながら、より詳細に説明する。
【0062】
C3.イベントモジュールの機能:
図5はシステムイベントの生成を示す説明図である。イベントモジュール230は、先に
図3で説明した通り、主基板コマンドに基づいて、システムイベントおよびユーザイベントを生成し、管理する機能;これらのイベントに応じて、演出番号を特定し、演出モジュール240に受け渡す機能;およびシステムイベントに基づいて液晶コマンド、音声動作番号、ランプ動作番号を設定する機能を奏する。
破線枠内に本実施例でシステムイベントとして管理する状態SEを示した。下側に行くほど優先度が高くなる。制御の便宜上、「電源投入」もシステムイベントと同じ扱いとしている。
【0063】
イベントモジュール230がイベントの処理に使用するワーク231を左側に示した。
このワークでは、管理すべきイベントの数に対応したイベント情報[1]〜[n]が格納されている。イベント情報[1]〜[n]は、「電源投入」を除く各システムイベントSEと対応しており、各イベントが「ON」、「OFF」、「ONからOFFへの切り換え」、「OFFかONへの切り換え」のいずれの状態にあるかを管理している。例えば、遊技者による操作がなされないまま所定時間経過したことが主基板コマンドその他の情報によって検出されると、イベントモジュール230は、「デモ」に移行すべきと判断し、これに対応するイベント情報[1]を「OFFかONへの切り換え」に設定する。
【0064】
ワーク231における「効果音停止レイヤ」および「ランプ停止レイヤ」は、上述のイベントの発生/停止等に応じて、出力を停止させるべきサウンドレイヤ番号、ランプレイヤ番号を格納する。図の煩雑化を回避するため、図示を省略したが、「効果音停止レイヤ」、「ランプ停止レイヤ」等のワーク231も、それぞれ並行して指定できるよう必要数だけ設けられている。
ワーク231における「サウンド起動レイヤ」および「サウンド起動パターン」は、イベント発生/停止等に応じて、サウンドを出力させるべきレイヤ、および出力させるべきサウンドのパターンをそれぞれ番号で指定する。サウンドパターンの番号とは、
図3中の音声動作番号を意味する。ワーク231における「ランプ起動レイヤ」および「ランプ起動パターン」も同様に、起動させるべきランプレイヤおよびランプの点灯パターンをそれぞれ番号で指定する。ランプの点灯パターンの番号とは、
図3中のランプ動作番号を意味する。上述の「デモ」起動の時には、サウンドレイヤ[1]で効果音[1]、ランプレイヤ[1]でランプ[1]を起動させることになる。
【0065】
ワーク231における「パワーセーブ監視タイマ」は無操作期間を監視するために使用されるタイマである。このタイマで指定された時間が経過すると、通常遊技からデモ状態に移行したと判断される。ワーク231における「リール空回し警告タイマ」は、停止ボタン16が操作されることなくリールが回転し続けた時間を監視するためのタイマである。このタイマで指定された時間が経過すると、「リール空回し警告中」イベントに応じて、LCD21にエラー表示がなされる。
【0066】
ワーク231における「効果音停止レイヤ」、「ランプ停止レイヤ」等は、動作番号テーブル232、およびレイヤ情報テーブル233によって与えられる。これらのテーブルは、予め規定され、ROM202に格納されている。動作番号テーブル232は、イベントごとに、起動すべき音声動作番号(図中の効果音[0]〜[n])、およびランプ動作番号(図中のランプ[0]〜[n])を格納している。レイヤ情報テーブル233は、イベントごとに、音声を出力すべきレイヤ(図中のサウンドレイヤ[0]〜[n])、およびランプレイヤ[0]〜[n]を格納している。イベントモジュール230は、イベントの状態に応じて、動作番号テーブル232およびレイヤ情報テーブル233を参照し、その結果をワーク231に反映させるという処理を実行する。
【0067】
この他に、先に
図3で説明した通り、システムモジュール210は、例えば、始動レバー15の操作、停止ボタン16の操作、リールの停止状態、およびシステムイベント情報などに応じて演出番号を特定する。本実施例では、予めこれらの各種イベントと演出番号との関係を規定した演出抽選テーブルを参照することによって、遊技状態に応じた演出番号を特定する方法を採った。
【0068】
また、更に、システムモジュール210は、所定のタイミングで、画面設定コマンドをVDP204に出力する。これは、画面設定等に関するコマンドであり、こうすることで、ノイズなどの影響で演出表示に支障が生じた場合でも、速やかに復旧することが可能となる。
【0069】
システムモジュール210は、この他、遊技中に行われる基本的な操作に連動した音声出力やランプ表示を行わせるための音声動作番号、ランプ動作番号の出力を行う。出力される音声としては、例えば、「メダル投入音」、「ウェイト音」、「回胴回転開始音」、「リール停止音」、「払い出し音」などが挙げられる。ランプ表示としては、ベット時、レバーON時、リール停止時の表示などが挙げられる。本実施例では、これらの音声動作番号、ランプ動作番号は、システムイベントの管理で使用するワーク231のサウンド起動レイヤ、サウンド起動パターン、ランプ起動レイヤ、ランプ起動パターンに書き込まれる。これらの音声、ランプ出力は、システムイベントに応じた音声、ランプ出力とは別のレイヤとして管理される。
【0070】
C4.演出モジュールの機能:
図6は演出モジュール240の機能を示す説明図である。演出モジュール240は、イベントモジュール230から演出番号を受け取り、VDP204、サウンドモジュール250およびランプモジュール260に出力するコマンドを設定する。図中には、このコマンドを設定するために参照される統合演出命令データ241の構造を示した。
【0071】
本実施例では、統合演出命令データ241は、イベントモジュール230から指定される演出番号ごとに用意され、ROM202に格納されている。
統合演出命令データ241と演出番号との対応関係は、演出管理テーブルに規定されている。図の左側に示す通り、演出管理テーブルは、統合演出命令データの格納アドレスを示す、演出管理ポインタを備えている。演出管理ポインタは、演出番号に対応する数だけ用意されているが、ここでは5つのみを例示した。
図の例では、例えば、演出管理ポインタ[1]は、最初は、統合演出命令データ241の先頭アドレスA1を格納していることになる。
統合演出命令データの処理が実行されるにつれ、演出管理ポインタ[1]の値は、順次、A1、A2と移行していく。一通り演出を終えた後、演出番号01Hが再度指定された時には、アドレスA1から開始される演出を再開できるよう、演出管理ポインタ[1]の初期値(アドレスA1)は、統合演出命令データの処理を実行している最中も保存しておくことが必要である。初期値の保存は種々の方法が可能である。
第1に、統合演出命令データの処理を実行する際には、演出管理ポインタ[1]の初期値を一旦、初期値保存用のメモリに退避した後、演出管理ポインタ[1]をA1、A2と移行させ、演出が終了した時点で、初期値を復帰させる方法である。
第2に、予めROM内に演出管理ポインタ[1]の初期値を保存しておき、起動時にはRAM上にワークとして構成された演出管理テーブルに、この初期値を読み込む方法である。この場合は、演出が終了した時点で、ROMから再び初期値を読み込めば初期値を復帰させることができる。
第3に、演出管理テーブルとは別に、演出制御用の制御ポインタを設け、統合演出命令データの実行時には、演出管理ポインタ[1]の値を、制御ポインタに格納する方法である。この方法では、制御処理の実行時には、制御ポインタがA1、A2と移行し、演出管理ポインタ[1]の値は初期値のまま変化しないことになる。
演出管理ポインタ[1]だけでなく、他の演出管理ポインタについても同様に、制御の実行時には初期値を保存しておく必要がある。上述の第1〜第3のいずれの方法を採ってもよいが、本実施例では、第2の方法、即ち別途ROM内に用意されたテーブルからRAM上の演出管理ポインタに、それぞれの初期値が読み込まれているものとして説明する。
【0072】
本実施例では、演出番号は、演出管理ポインタのアドレス値を用いるものとした。図の例では、演出番号01H、02H等は、それぞれ演出管理ポインタ[1]、[2]等の格納アドレスを表している。もっとも、演出番号はアドレス値に限らず、任意の識別情報を用いることができる。この場合には、演出管理テーブルを、演出番号と演出管理ポインタとを対応づけた構成とすればよく、演出モジュール240は、演出番号をキーとして演出管理ポインタを検索した上で、統合演出命令データの処理を行うようにすればよい。もっとも、演出管理ポインタのアドレス値を演出番号として用いれば、演出管理テーブルのデータ量を軽減できるとともに、上述の検索も不要となるため、統合演出命令データの処理に要する負荷を軽減できる利点がある。
【0073】
統合演出命令データ241においては、図示する通り、一つ一つのコマンドは、原則として処理命令とパラメータから構成される。処理命令とは、演出モジュール240が実行すべき機能である。本実施例で用いる処理命令の例を以下に示す。パラメータは、処理命令の処理内容を具体的に指示する変数である。パラメータを指定する必要がない処理命令を設けても良い。
(1) 主基板コマンド受信チェック…所定の主基板コマンドを受信したか否かをチェックする。チェック対象となる主基板コマンドは、パラメータで指定する。
(2) ジャンプ…パラメータで指定されたアドレスを演出管理ポインタにセットする。
演出モジュール240は、指定されたアドレスにジャンプして統合演出命令データの処理を継続することになる。
(3) コール…次の処理命令のポインタ値を待避した上で、パラメータで指定されたアドレスを演出管理ポインタにセットする。演出モジュール240は、一時的にパラメータで指定されたアドレスに移行して統合演出命令データの処理を行った後、上述の待避したポインタ値に基づき、従前の処理に復帰することができる。
(4) リターン…コール先から復帰するための指示である。コールで待避したポインタ値を、演出管理テーブルに設定する機能を有する。
(5) タイマセット…待ち時間用のタイマの値を設定する。このタイマ値は、処理中に順次、減算される。タイマ値が0となった時に指定された待ち時間が経過したことを表す。
(6) タイマウェイト…設定されたタイマが0となるまで待って、統合演出命令データの処理を継続する。
(7) メモリ参照…所定のイベントの発生有無が設定された条件を満たすか否かを判断し、満たしたか否かによって、次に行う処理を分岐する。いわゆる条件分岐に相当する。
イベントの発生有無は、パラメータが示すイベント用メモリの値を参照することによって監視する。
(8) ループ…ループからループエンドまでの間の処理命令を、パラメータで指定された回数だけ繰り返し実行する。
(9) ループエンド…ループの終了を表す。
(10) 演出終了…演出番号をクリアし、実行終了する。この際、演出管理ポインタに統合演出命令データの先頭アドレスを書き込むことによって、リセットしておく。
(11) 液晶コマンドセット…液晶に送信するコマンドを設定する。
(12) 音声動作番号セット…サウンドモジュール250に出力する音声動作番号を設定する。
(13) ランプ動作番号セット…ランプスケジュール260に出力するランプ動作番号を設定する。
【0074】
図中の例では、アドレスA2において「コール」命令が指定されている。演出モジュール240は、このパラメータで指定されたアドレスA31の処理命令を次に実行する。図の例では、アドレスA31において液晶コマンドをセットし、A32において音声動作番号、A33においてランプ動作番号をセットして、A3nでリターンする。演出コマンドは、これらの処理を終了すると、「コール」が指定されたアドレスA2に復帰し、次のアドレスA3の処理に移行する。
【0075】
このように、コール命令を活用することによって、アドレスA31〜A3nで指定された一連のブロックBL3の内容を統合演出命令データの種々の部分に取り込むことが可能となる。こうすることによって、統合演出命令データの容量を低減できるとともに、その作成負荷を軽減することができる。また、こうすることで、次に示す通り、スロットマシン10に特有の効果も有する。スロットマシン10では、遊技中に種々の抽選等が行われ、その結果に応じて遊技の展開が変わってくる。遊技者の中には、抽選中の演出内容の微妙な違いを見つけて、抽選結果等を推測することができる者もいる。これに対し、本発明では、コールによって、汎用的な演出内容を種々の場面で活用することができるため、こうした微妙な違いを解消することができ、抽選結果等を予測しづらくすることができ、遊技の興趣が損なわれるのを抑制することができるのである。
【0076】
図中の例では、次にアドレスA3でタイマウェイトが実行される。ここでは、パラメータPrm[031]で指定された時間が経過するまで、統合演出命令データの処理が待たれる。後述する通り、本実施例では、タイマ割り込みによって処理が繰り返し実行される。従って、演出モジュール240は、タイマウェイト処理命令では、パラメータPrm[031]の値が0でなければ、以降の処理を行うことなく統合演出命令データの処理を一旦終了し、この値が0であれば、次のアドレスの処理命令に移行するという処理を行う。
【0077】
図中の例では、アドレスA11でメモリ参照、即ち条件分岐が実行されている。ここでは、所定のボタンが押されたか否かを条件とする場合を例示した。主基板から受け渡されるコマンドに基づいて、ボタンが押されるというイベントの発生が検出されると、演出モジュール240はアドレスA11の次のアドレスの処理に移行する。このイベントが発生するまではパラメータPrm[112]で指定されるアドレスに移行する。
【0078】
本実施例では、パラメータPrm[112]に、自己のアドレスA11を指定することにより、ボタンが押されるまで処理が先に進まないような構成とした。この結果、本実施例の統合演出命令データ241は、開始アドレスA1から条件分岐A11までを一連のブロックBL1として捉えることができる。図示を省略したが、統合演出命令データ241では、ブロックBL1の処理内では、液晶コマンド、音声動作番号、ランプ動作番号が相互に抵触しないように指定される。
【0079】
本実施例では、先に
図5で示したワーク231と同じ形式のワークを利用して、音声動作番号等の指定を行っている。システムイベントが使用するワーク231と演出モジュール240が使用するワークとは別に用意されており、演出モジュール240は、統合演出命令データの指定に従って、音声動作番号等をそれぞれワークに格納する。また、演出モジュール240が指定するレイヤも、システムモジュール用のレイヤ(
図5参照)とは別に設けられている。演出モジュール用のワークにおいても、これらのレイヤの中から、音声動作番号、ランプ動作番号を並行して複数指定可能となっている。
【0080】
条件分岐のアドレスA11以降も同様に統合演出命令データは、処理命令およびパラメータによって規定される。図中の例では、条件分岐のアドレスA11以降、演出終了(アドレスAn)に至るまで、条件分岐は設けられていない例を示した。ブロックBL1の処理は条件分岐を判断するまでに実行される処理であるのに対し、条件分岐以降の範囲は、条件分岐の条件が満たされない限り実行されないという意味で、上述のブロックBL1とは別のブロックBL2となるため、ブロックBL1との抵触を考慮することなく、液晶コマンド(アドレスA22)や音声動作番号(アドレスA21)などが指定可能である。これらの設定に代えて、コール命令によって、ブロックBL3等を取り込むようにしてもよい。
【0081】
図7は条件分岐の他の使用例(1)を示す説明図である。
図6に示した統合演出命令データの内容を左側に示し、この処理の内容を表すフローチャートを右側に対比して示した。
例えば、アドレスA2におけるコール命令は、右側のフローチャートに示す通り、アドレスA31のサブルーチンを実行するという処理となる(ステップS2)。また、アドレスA3におけるタイマウエイト命令は、Pm[031]で表される待ち時間が経過するまで、ステップS3の判断処理を繰り返すことになる。
【0082】
アドレスA11の条件分岐でも、分岐先アドレス(Prm[112])として、アドレスA11自体を指定しておけば、「ボタンが押されたか?」という条件が満たされるまで、この判断を繰り返し実行することになる(ステップS11)。
条件が満たされた時には、アドレスA21、A22の処理、つまり音声動作番号出力(ステップS21)、液晶コマンド出力(ステップS22)が実行される。
【0083】
条件分岐(ステップS11)において、分岐先アドレス(Prm[112])は種々の指定が可能である。
例えば、分岐先アドレス(Prm[112])として、アドレスA2を指定しておけば、図中に破線矢印で示したように、「ボタンが押されたか?」という条件が満たされない場合には、アドレスA31のサブルーチンを実行する処理(ステップS2)以降を再度、行わせることができる。かかる態様は、例えば、スタートボタンが押されるまで、アドレスA31のサブルーチンでデモ画面を表示させるという場合に利用することができる。
【0084】
図8は条件分岐の他の使用例(2)を示す説明図である。統合演出命令データの内容を左側に示し、処理の内容を表すフローチャートを右側に対比して示した。
使用例(2)では、アドレスA11aにおいて、「ボタンが押されたか」という条件を満足したか否かで処理が二つに分かれる例を示している。
【0085】
この条件を満たさない場合には、条件分岐のパラメータで指定されているアドレスA31aにジャンプする。アドレスA31aとは、統合演出命令データ形式のブロックBL3aの先頭アドレス(枠囲みで図示したアドレス)である。従って、図の例では、ボタンが押されない場合には、音声動作番号(2)の出力(アドレスA31aおよびステップS31a)、液晶コマンド(2)の出力(アドレスA32a、ステップS32a)などの処理を行った後、演出を終了する(アドレスA33aおよびステップS33a)。
【0086】
アドレスA11aおよびステップS11aにおいて、「ボタンが押されたか」という条件を満たす場合には、ジャンプせず、そのまま次のアドレスの処理が行われる。従って、図の例では、音声動作番号(1)の出力(アドレスA21aおよびステップS21a)、液晶コマンド(1)の出力(アドレスA22a、ステップS22a)などの処理を行った後、演出を終了する(アドレスA23aおよびステップS23a)。
【0087】
図8の例では、条件を満たす場合の処理(アドレスA21a〜A23a)に、演出終了(アドレスA23aおよびステップS23a)を行うため、条件を満たす場合と満たさない場合で、完全に処理が二通りに分岐する例となっている。
これに対し、アドレスA23aおよびステップS23aの「演出終了」を省略することもできる。この場合には、「ボタンが押された」条件が満たされると、音声動作番号出力(1)(アドレスA21a、ステップS21a)、液晶コマンド出力(アドレスA22a、ステップS22a)等を行った後、演出終了せずに、次のアドレスA31aの音声動作番号出力(2)以降の処理を実行することになる。
つまり、右側のフローチャート内に破線矢印で示すように、ボタンが押された場合には、音声動作番号出力(1)(ステップS21a)、液晶コマンド出力(ステップS22a)等の処理を行った後、再び、音声動作番号出力(2)(ステップS31a)等の処理に合流する形の処理を実現することができる。
【0088】
図9は条件分岐の他の使用例(3)を示す説明図である。統合演出命令データの内容を左側に示し、この処理の内容を表すフローチャートを右側に対比して示した。
使用例(3)では、条件を満たすか否かによって、2通りの処理に分岐した後、再び合流して同一の処理を実行する例を示す。
【0089】
アドレスA11bの条件分岐において、「ボタンが押されたか」という条件を満たす場合、パラメータで指定された分岐アドレスA31bへのジャンプは行われず、ブロックBL2bの処理、つまり音声動作番号出力(1b)(アドレスA21b、ステップS21b)、液晶コマンド出力(1b)(アドレスA22b、ステップS22b)等が行われる。
その後、アドレスA23bのジャンプ命令では、パラメータで指定されたアドレスA41bに無条件にジャンプする。アドレスA41bは、図中のブロックBL4bの先頭アドレス(図中では枠囲みで示した)である。従って、ボタンが押された場合には、ブロックBL2bの処理が行われた後、音声動作番号出力(3b)(アドレスA41b、ステップS41b)、液晶コマンド出力(3b)(アドレスA42b、ステップS42b)の処理が行われることになる。
【0090】
一方、アドレスA11b、ステップS11bにおいて「ボタンが押された」条件が満たされない場合には、処理は、パラメータで指定された分岐先のアドレスA31bに分岐する。アドレスA31bは、ブロックBL3bの先頭アドレス(図中では枠囲みで示した)である。従って、ボタンが押されない場合には、音声動作番号出力(2b)(アドレスA31b、ステップS31b)、液晶コマンド出力(2b)(アドレスA32b、ステップS32b)が行われる。
その後、処理は、次のアドレス、つまりアドレスA41bに移行し、音声動作番号出力(3b)、液晶コマンド出力(3b)などブロックBL4bの処理が行われる。
【0091】
以上の通り、
図9では、「ボタンが押された」条件を満たす場合の処理(ブロックBL2b)の最後に無条件のジャンプ命令(アドレスS23b)を入れることにより、条件分岐で一旦、ブロックBL2b、BL3b2通りの処理に分岐した後、合流してブロックBL4bの処理を行うというフローチャートを実現している。
【0092】
図6〜
図9では、条件分岐の処理命令で示された条件を「満たさない場合」に、指定されたアドレスにジャンプする例を示した。条件分岐は、かかる態様に限定されるものではなく、条件を「満たす場合」に指定されたアドレスにジャンプするように構成してもよい。また、条件を満たす場合、満たさない場合にそれぞれ分岐先のアドレスを指定可能としてもよい。
【0093】
図10は条件分岐の他の使用例(4)を示す説明図である。統合演出命令データの内容を左側に示し、この処理の内容を表すフローチャートを右側に対比して示した。
使用例(4)では、条件に対する分岐先を3通り指定する例を示す。
条件分岐命令(アドレスA11c、ステップS11c)では、図示する通り、「左」のストップスイッチが押された場合には分岐先アドレスA21c、「中」のストップスイッチが押された場合には分岐先アドレスA31c、「右」のストップスイッチが押された場合には分岐先アドレスA41cという3通りの分岐先が指定されている。
【0094】
従って、「左」のストップスイッチが押された場合には、アドレスA21c、ステップS21cの音声動作番号出力(1c)が実行された後、アドレスA22cの無条件ジャンプ命令によって、指定されたアドレスA51cにジャンプする。
「中」のストップスイッチが押された場合には、アドレスA31c、ステップS31cの音声動作番号出力(2c)が実行された後、アドレスA32cの無条件ジャンプ命令によって、指定されたアドレスA51cにジャンプする。
「右」のストップスイッチが押された場合には、アドレスA41c、ステップS41cの音声動作番号出力(3c)が実行された後、次のアドレスA51cの処理に移行する。
【0095】
このように、アドレスA22c、A32cに無条件ジャンプ命令を入れたことにより、
図10では、ステップS11cの条件に応じて3通りの処理に分岐した後、再び合流して、アドレスA51c、ステップS51cの液晶コマンド出力を実行するフローチャートを実現している。図示の都合上、ここでは、3通りに分岐した処理内では、それぞれブロックBL2c、BL3c、BL4c内で、音声動作番号出力(ステップS21c、S31c、S41c)という単一の処理を行う場合を例示したが、各ブロック内で、更に多くの処理を行わせることも可能である。
また、
図10のアドレスA22c、A32cにおいて無条件ジャンプ命令に代えて、演出終了命令を設けても良い。こうすることにより、ステップS11cの条件に応じて、完全に3通りの処理に分岐させるフローチャートを実現することができる。
【0096】
図7〜10では、条件分岐命令の使用例を示した。このように条件分岐命令を利用すると、遊技状態に応じて条件を満たすか否かが変化するため、遊技状態を反映させた多種多様な演出を比較的容易に実現することが可能となる。
【0097】
統合演出命令データにおいて有用な処理命令として、
図6で示したコール命令、
図7〜10で示した条件分岐の他に、ループ命令が挙げられる。次に、ループ命令の使用例について説明する。
図11はループ命令の使用例を示す説明図である。統合演出命令データの内容を示した。
アドレスA101においてループ命令が設定されており、パラメータでは、ループの終了条件として、「コインの投入」が指定されている。この処理命令では、終了条件が満たされるまで、ループエンド(アドレスA105)までの処理が繰り返し実行される。図の例では、アドレスA102のデモ用動作番号による音声出力と、アドレスA103のデモ用表示コマンドの液晶出力等の処理が繰り返し実行されるのである。
図の右側に、処理が進行する流れを矢印で示した。まず矢印P1で示すように、アドレスA101〜A105の処理がアドレス順に実行される。そして、アドレスA105のループエンドまで来ると、処理は、矢印P2に示すように、アドレスA101のループ命令に戻る。
アドレスA101では、「コイン投入」という終了条件が満たされるか否かが判断される。終了条件が満たされない場合には、再び矢印P1、P2に沿って、処理が進行する。
終了条件が満たされる場合には、矢印P3に示されるようにループエンド(アドレスA105)の次のアドレスA106の処理に無条件に移行する。
【0098】
上述の繰り返し処理は、ループおよびループエンドに代えて、条件分岐を用いても実現することができる。アドレスA101のループ命令を削除するとともに、図の左側に示すように、「コイン投入」という条件分岐を、アドレスA105のループエンドに代えて設定すればよい。条件分岐先は、アドレスA101またはA102を指定する。
条件分岐命令を用いると、アドレスA105において、「コイン投入」という条件が満たされない場合には、アドレスA101以降の処理が実行されることになる。従って、この条件が満たされるまで、アドレスA101以降の処理が繰り返されるため、実質的にループと同様の処理が実現される。
ただし、ループとループエンドによって、繰り返し処理を実現する場合には、条件分岐命令のように分岐先アドレスを指定する必要がないという利点がある。従って、統合演出データを作成する際に、アドレスを意識することなく、ループとループエンドの位置を移動させることができる利点がある。
【0099】
繰り返し処理の範囲は、上述のように、ループエンドで指定する方法の他、アドレスで指定する方法を採っても良い。
図中のアドレスA110のループ命令では、繰り返し処理の範囲をアドレスで指定する例を示した。この例では、3回繰り返しという終了条件が満たされるまで、パラメータで指定されたアドレスA112までの処理が繰り返される。
従って、右側の矢印P11に示すように、音声の動作番号出力(アドレスA111)、および液晶の表示コマンド出力(アドレスA112)を行った後、繰り返し数が3回に満たない場合には矢印P12のようにループ命令に戻って、再び矢印P11に沿った処理が実行される。繰り返し数が3回に至ると、矢印P13のように繰り返し範囲の次のアドレスA113の処理に移行する。
【0100】
かかる処理は、ループ命令の機能として、演出管理ポインタ、つまり統合演出データのうち、次に実行すべき処理命令の格納場所を示すポインタを、「アドレスA112の次にはアドレスA110に書き換える」という機能を設けることによって実現できる。
3回の繰り返しを実現するためには、「繰り返し数−1回」、つまり2回、書き換えを行えばよい。こうすることによって、矢印P11に沿って1回目の処理が行われて、演出管理ポインタがアドレスA112になると、1回目の書き換えによって、演出管理ポインタがアドレスA110とされる。この結果、矢印P12に示すように、処理はアドレスA110に戻り、2回目の繰り返し処理が行われることになる。同様に、3回目の繰り返し処理は、演出管理ポインタの2回目の書き換えによって実行される。その後は、演出管理ポインタの書き換えは行われないから、3回目の繰り返し処理が完了すると演出管理ポインタはアドレスA113となり、矢印P13のように繰り返し範囲の次の処理に移行することができる。
【0101】
アドレスA110のループ命令では、繰り返し範囲を、アドレスA112という絶対アドレスで指定する例を示した。これに対し、繰り返し範囲を、ループ命令との相対アドレスで指定するようにしてもよい。図の例では、繰り返し範囲のアドレスA112は、ループ命令よりも2つ後のアドレスとなるから、パラメータで「2」を指定することになる。
相対アドレスでの指定によれば、ループエンドを用いる場合と同様、繰り返し範囲の絶対アドレスを意識することなく、比較的容易に、ループ命令の位置を移動させることができる利点がある。
【0102】
上述したコール命令、条件分岐、ループなどは、種々の組合せで用いることができる。
統合演出命令データでは、条件分岐とコール命令とを組み合わせて用いても良い。例えば、演出内容を切り換えるための乱数を発生させ、その乱数の値に応じて異なるアドレスをコールすればよい。
図6の例では、アドレスA2において、「乱数値≦Th1?」という条件を付せば、この条件を満たす時にアドレスA31〜A3nの演出が実行されることになる。また、アドレスA2の次(アドレスA2+1)において、「Th1<乱数値≦Th2?」という条件を付して、アドレスA41(図示しない)をコールすれば、乱数の値に応じて、アドレスA31以降とは異なる演出が実行される。このように、乱数に応じた条件分岐で異なるアドレスをコールすれば、乱数によって演出内容をランダムに切り換えることができ、遊技の興趣を高めることが可能となる。以下、このように演出内容を切り換えることを、本明細書では、「演出抽選」と呼ぶものとする。
【0103】
演出抽選の適用例としては、例えば、次の態様が挙げられる。
(1)子役の告知を行う(音、表示、ランプの演出抽選);
(2)内部あたり時の効果音を切り換える(音の演出抽選);
(3)時間帯によって表示の背景を切り換える(表示の演出抽選);
(4)リーチ態様によってテンパイ時の効果音を切り換える(音の演出抽選);
(5)変動開始音の出力タイミングを遅らせる(音の演出抽選);
(6)アシストタイム抽選を表示する(表示の演出抽選);
(7)メインで表示されるキャラクター以外のサブキャラを表示させる(表示の演出抽選);
(8)予告音の出力(音の演出抽選);
(9)内部当たり告知を数ゲームにわたって行う(表示の演出抽選);
(10)入賞した役によってリール停止時のバックライトを変化させる(ランプの演出抽選)
【0104】
上述の例では、演出抽選によって表示、音、ランプの全てを切り換える場合もあれば、一部のみを切り換える場合もある。全てを切り換える場合には、コール命令で呼び出された統合演出命令データ内で、表示、音、ランプの内容を全て指定すればよい。一部のみを切り換える場合には、コール命令で呼び出された統合演出命令データ内で、切り換えの対象となる部分のみを指定し、その他の部分はコール命令からリターンしてきた後に統一して指定すればよい。
【0105】
上述の通り、演出抽選は、あくまでもサブ制御基板200の制御処理によって、演出内容を切り換えるものであり、遊技自体に影響を与えるものではない。しかし、このように演出抽選を可能とすることによって、メイン制御基板100から出力されるコマンドの種類よりも多彩な演出を実現することができ、興趣をより高めることができる。
【0106】
C5.サウンドモジュールの機能:
図12はサウンドモジュール250の機能を示す説明図である。サウンドモジュール250は、ROM202に格納された種別演出命令データ255を参照しながら、音声出力を行う。先に
図4で説明した通り、サウンドモジュール250は、複数のレイヤ制御部252を併用してこれらの処理を行う。各レイヤ制御部252は、音声用のサウンドレイヤと対応づけて設けられている。また、各レイヤ制御部252には、動作管理用のワーク252Wがそれぞれ用意されている。ワーク252Wの内容は後述する。
【0107】
演出モジュール240から音声動作番号を受け取ると、サウンドモジュール250は、音声動作番号テーブルを参照して、実行すべき種別演出命令データ255を特定する。音声動作番号テーブルは、音声動作番号に対して、初期サウンドポインタおよびサウンドレイヤを対応づけたテーブルである。本実施例では、音声動作番号は、音声動作番号テーブルの格納アドレスを用いるものとした。従って、サウンドモジュール250は、音声動作番号で指定されたアドレスにアクセスすれば、遊技状態に応じた音声動作番号テーブルを読み込むことができる。音声動作番号は、任意の識別情報を用いることが可能であるが、先に演出番号(
図6参照)で説明したのと同じく、格納アドレスを用いた方が音声動作番号テーブルの容量低減およびテーブル参照時の処理負荷軽減という利点がある。
【0108】
初期サウンドポインタは、種別演出命令データ255の格納アドレスを指定している。
本実施例では、初期サウンドポインタ[1]には、アドレスSA1が格納されていることになる。1番目のサウンドレイヤからは、アドレスSA1に格納された種別演出命令データ255を用いて再生された音声が出力される。同様に、2番目のサウンドレイヤからは、初期サウンドポインタ[2]で指定されたアドレスに格納された種別演出命令データ255による音声が出力される。このように、音声動作番号テーブルのサウンドポインタを参照することによって、各レイヤで用いる種別演出命令データを特定することが可能となる。
【0109】
種別演出命令データ255は、統合演出命令データ(
図6参照)と同様、処理命令とパラメータによって構成されている。種別演出命令データ255で使用される処理命令は次の通りである。
(1) タイマセット…パラメータで設定された時間をワーク252Wのタイマにセットする。
(2) フレーズ再生…パラメータで設定されたフレーズ番号が示すフレーズデータを再生する。フレーズデータの内容については後述する。
(3) フレーズ消音…パラメータで設定されたフレーズデータを再生しているチャンネルの再生を停止する。
(4) チャンネル消音…パラメータで設定されたチャンネルの再生を停止する。
(5) レイヤ出力停止…処理を停止し、使用していたチャンネルを解放する。
(6) コール…次の処理命令のポインタ値を待避した上で、パラメータで指定されたアドレスをサウンドポインタにセットする。
(7) リターン…コール先から復帰する。
(8) ジャンプ…パラメータで指定されたアドレスをサウンドポインタに設定する。
(9) ループ…ループからループエンドまでの間の処理命令を、パラメータで指定された回数だけ繰り返し実行する。
(10) ループエンド…ループの終了を表す。
さらに、「メモリ参照」、つまり、所定のイベントの発生有無が設定された条件を満たすか否かを判断し、満たしたか否かによって、次に行う処理を分岐する処理命令を設けても良い。これは、いわゆる条件分岐に相当する。イベントの発生有無は、パラメータが示すイベント用メモリの値を参照することによって監視することができる。
【0110】
図中の例では、アドレスSA2において、コール命令が規定されている。サウンドモジュール250は、統合演出命令データ(
図6)で示したのと同じように、アドレスSA31(図示せず)以降の一連のブロックを実行した後、アドレスSA2の次のアドレスSA3の処理を行う。
【0111】
アドレスSA3では、フレーズ再生が規定されている。サウンドモジュール250は、パラメータで指定されたフレーズ番号00Hに対応するフレーズデータ255Fを読み込み、これを再生する。
【0112】
図の右側にフレーズデータ255Fの構造例を示した。フレーズ番号は、各フレーズデータに付された識別情報である。本実施例では、任意の識別情報を用い得る形としたが、フレーズデータ255Fの格納アドレスをフレーズ番号として用いてもよい。この場合には、フレーズデータ255Fからフレーズ番号を省略することもできる。
【0113】
チャンネルは、フレーズ再生時の出力チャンネルの指定である。左右パンポット、上下パンポットとは、スロットマシン10に備えられた4つのスピーカの左右/上下の出力バランスである。ボリュームは、出力ボリュームである。曲番号は、再生すべき音声の識別番号である。この番号が音源IC205に受け渡されると、音源IC205は、これに対応する音源データをROM202から読み出し、音声を再生する。ループは、音声を繰り返し再生するか否かの指定である。ステレオは、ステレオ出力するか否かの指定である。
【0114】
各レイヤ制御部252には、動作管理用のワーク252Wが対応づけられている。ワーク252Wには、図中に示す種々の情報が格納される。
動作状態は、各レイヤが動作中か否かを示している。
音声番号は、動作中の種別演出命令データ255の番号を表している。本実施例では、種別演出命令データ255の先頭アドレスを用いるものとした。
サウンドポインタは、レイヤ制御部252が実行している種別演出命令データ255のアドレスを格納する。その初期値は初期サウンドポインタで指定される。図中の例では、処理が進むにつれ、サウンドポインタの値は、順次、SA2、SA3と移行する。
レイヤ制御タイマは、次の処理命令を実行するまでの待ち時間を表す。種別演出命令データ255で待ち時間が指定された時に設定され、時間の経過とともに、順次、減算される。サウンドモジュール250は、この値が0となった時に次の処理命令を実行する。
【0115】
コールネスト数、ループネスト数は、種別演出命令データ255およびフレーズ番号で多重的に指定されたコール、ループのネスト数を表している。つまり、例えば、アドレスSA2のコール命令(第1コール)で呼び出されるアドレスSA31以降の処理において、更にコール命令(第2コール)によって別のアドレスの種別演出命令データ255を呼び出すと、コールネスト数は2となる。第2コールを終えて、第1コールに復帰すると、コールネスト数は1に減じられる。ループも同様である。コール戻りアドレスはコール先からの戻りアドレスでありコールネスト数に応じて設けられる。ループ先頭アドレスは、ループ範囲の先頭アドレスであり、ループ回数は、ループの繰り返し回数である。ループ先頭アドレス等は、ループネスト数に応じて設けられる。
【0116】
C6.ランプモジュールの機能:
図13はランプモジュール260の機能を示す説明図である。ランプモジュール260は、ROM202に格納された種別演出命令データ265を参照しながら、ランプ出力、即ちランプの点灯・点滅制御を行う。ランプモジュール260も、複数のレイヤ制御部262を併用してこれらの処理を行う。各レイヤ制御部262は、ランプ用のランプレイヤと対応づけて設けられている。また、各レイヤ制御部262には、動作管理用のワーク262Wがそれぞれ用意されている。ワーク262Wの内容は後述する。
【0117】
演出モジュール240からランプ動作番号を受け取ると、ランプモジュール260は、ランプ動作番号テーブルを参照して、実行すべき種別演出命令データ265を特定する。
ランプ動作番号テーブルは、ランプ動作番号に対して、初期ランプポインタおよびランプレイヤを対応づけたテーブルである。本実施例では、ランプ動作番号は、ランプ動作番号テーブルの格納アドレスを用いるものとした。ランプ動作番号は、任意の識別情報を用いることが可能であるが、先に演出番号(
図6参照)で説明したのと同じく、格納アドレスを用いた方がランプ動作番号テーブルの容量低減およびテーブル参照時の処理負荷軽減という利点がある。
【0118】
初期ランプポインタは、ランプ動作番号に対応して実行されるべき種別演出命令データ265の格納アドレスを指定している。本実施例では、初期ランプポインタ[1]には、アドレスLA1が格納されていることになる。
【0119】
種別演出命令データ265は、統合演出命令データ(
図6参照)と同様、処理命令とパラメータによって構成されている。種別演出命令データ265で使用される処理命令は次の通りである。
(1) タイマセット…パラメータで設定された時間をワーク252Wのタイマにセットする。
(2) 階調パターン設定…パラメータで設定された階調パターンデータアドレスを設定し、ワーク262W内の階調データタイマをクリアすることによって、階調データの実行を指示する。
(3) ジャンプ…パラメータで指定されたアドレスをランプポインタに設定する。
(4) レイヤ出力停止…処理を停止する。
(5) ループ…ループからループエンドまでの間の処理命令を、パラメータで指定された回数だけ繰り返し実行する。
(6) ループエンド…ループの終了を表す。
さらに、「メモリ参照」、つまり、所定のイベントの発生有無が設定された条件を満たすか否かを判断し、満たしたか否かによって、次に行う処理を分岐する処理命令を設けても良い。これは、いわゆる条件分岐に相当する。イベントの発生有無は、パラメータが示すイベント用メモリの値を参照することによって監視することができる。
【0120】
図中の例では、アドレスLA2において、コール命令が規定されている。ランプモジュール260は、統合演出命令データ(
図6)で示したのと同じように、アドレスLA31(図示せず)以降の一連のブロックを実行した後、アドレスLA2の次のアドレスLA3の処理を行う。
【0121】
アドレスLA3では、階調パターン設定が規定されている。ランプモジュール260は、パラメータで指定されたアドレスLA11に格納されている階調パターンデータ266を設定する。ランプレイヤ制御部262には、それぞれ階調制御部263が対応づけて設けられており、指定された階調データ1でランプを点灯させ、タイマ値で指定された時間が経過すると、階調データ2でランプを点灯させる。ここでは、2通りの階調データが指定されている例を示したが、3つ以上指定されている場合も、タイマ値の時間間隔で順次、階調データを切り換えつつ、ランプを点灯させる。階調パターン設定をアドレスLA12以降も複数用意しておくことにより、階調データ間の切り換えタイマ値を変化させつつ、種々の階調パターンでランプを点灯させることが可能となる。階調パターンデータ内に、ループを設けることも可能である。階調制御部263は、アドレスLA11〜LA1nの一連の処理を実行すると、ランプの点灯を終了する。ランプレイヤ制御部262は、種別演出命令データ265のアドレスLA3の処理に復帰し、次のアドレスの処理を停止(アドレスLAn)に至るまで実行する。
【0122】
各レイヤ制御部262には、動作管理用のワーク262Wが対応づけられている。ワーク262Wには、図中に示す種々の情報が格納される。
制御ステータスは、レイヤ制御部が起動中か否かを示す。
動作パターンナンバーは、動作中の種別演出命令データ265の番号を表している。本実施例では、種別演出命令データ265の先頭アドレスを用いるものとした。
レイヤ制御タイマは、次の処理命令を実行するまでの待ち時間を表す。種別演出命令データで待ち時間が指定された時に設定され、時間の経過とともに、順次、減算される。ランプ260は、この値が0となった時に次の処理命令を実行する。
階調データタイマは、階調パターンデータ266の実行時に、次の階調データを実行するまでの待ち時間を表す。図の例で、アドレスLA11に規定された階調データを実行する際には、階調データタイマに、設定されたタイマ値が0になると、階調データ1から階調データ2に移行し、再びタイマ値が0になると、アドレスLA11の処理を終了してアドレスLA12の処理に移行する。
【0123】
ランプポインタは、レイヤ制御部262が実行している種別演出命令データ265のアドレスを格納する。その初期値は初期ランプポインタで指定される。図中の例では、処理が進むにつれ、ランプポインタの値は、順次、LA1、LA2、LA3と移行する。
階調データポインタは、階調制御部263が実行している階調パターンデータ266のアドレスを格納する。図中の例では、処理が進むにつれ、階調データポインタの値は、順次、LA11、LA12と移行する。
ループ回数は、ループの繰り返し回数であり、ループ先頭アドレスは、ループ範囲の先頭アドレスである。サウンドの場合と同様、ループにネストを許容してもよい。
【0124】
D.演出制御処理:
本実施例では、以上で説明した各モジュールの機能によって、演出制御が実行される。
以下では、演出制御の処理内容を示す。それぞれの処理は、ソフトウェア的には先に説明した各モジュールが連動して実現するものであり、ハードウェア的にはサブ制御基板200のCPU201が実行する処理である。
【0125】
D1.メイン処理:
図14はメイン処理のフローチャートである。左側に定常処理、右側にタイマ更新処理を示した。定常処理は16msecの周期で繰り返し実行され、タイマ更新処理は2msecの周期で繰り返し実行される。それぞれの周期は、任意に設定可能である。
【0126】
定常処理には、電源投入後の一連の処理を示した。電源が投入されると、CPU201は、割り込みを禁止し(ステップS10)、起動処理として種々のレジスタ設定等を行う(ステップS11)。起動処理が終了すると、割り込みを許可して(ステップS12)、メイン処理ルーチンに入る。
【0127】
メイン処理ルーチンでは、イベント処理(ステップS30)、演出データ処理(ステップS40)、サウンド処理(ステップS50)、ランプ処理(ステップS60)、および液晶へのコマンド出力(ステップS70)を16msec周期で繰り返し実行する。これらの処理は、それぞれイベントモジュール230、サウンドモジュール250、演出モジュール240、ランプモジュール260の機能に相当する処理である。
【0128】
メイン処理ルーチンの実行中には、先に説明した通り、種々のタイマが使用される。図の中央に示したタイマテーブルTWは、メイン処理ルーチンで使用される種々のタイマ値を、それぞれタイマ[1]〜タイマ[n]に対応づけて格納するテーブルである。メイン処理ルーチンにおいて、各モジュールは、タイマテーブルTWを参照することによって、処理に必要なタイマ値を更新することができる。
【0129】
タイマテーブルのタイマ[1]〜タイマ[n]の値は、2msec周期で実行されるタイマ更新処理によって更新される。右側にタイマ更新処理のフローチャートを示した。この処理では、CPU201は処理対象のタイマ[i]が0でない場合には(ステップS21)、タイマ値を1だけ減算し(ステップS22)、そうでない場合には、減算処理をスキップする。CPU201は、処理対象のタイマ[i]を、タイマ[1]〜タイマ[n]に順次、切り換えながら全タイマについて終了するまで(ステップS23)、繰り返し実行する。タイマ更新処理を実行することによって、タイマテーブルTWに格納されたタイマ[1]〜タイマ[n]の値は、2msec周期で、値0になるまで順次、減算させることとなる。メイン処理ルーチンの各モジュールは、タイマテーブルTWの値が0になっているか否かを監視することで、指定した時間が経過したか否かを判断することができる。
【0130】
本実施例では、このようにタイマテーブルの値をメイン処理ルーチンの各モジュールが必要に応じてポーリングするという構成を採用した。時間の監視は、かかる方法に限定されるものではなく、タイマ更新処理において、タイマテーブルのタイマ[1]〜タイマ[n]のいずれかの値が0となった時に、そのタイマに対応するモジュールに時間経過を知らせる通知を発する構成を採用してもよい。
【0131】
D2.イベント処理:
図15はイベント処理のフローチャートである。イベントモジュール230が実行する処理であり、メイン処理ルーチンのステップS30に相当する処理である。
【0132】
この処理では、CPU201は、まず主基板コマンドを読み込み(ステップS41)、その内容を解析する(ステップS42)。そして、主基板コマンドに応じてシステムイベントを作成する(ステップS43)。つまり、
図5に示したワーク231に対し、各イベント情報を設定することでスロットマシン10がどのような状態にあるかを表すとともに、その結果に応じて、効果音停止レイヤ等を設定して、演出表示以外の種々の動作を設定する。
【0133】
CPU201は、優先度の高いイベントから順に、この処理を実行し、途中で「ON→OFF」、または「OFF←ON」に切り換えられるイベントが生じた場合には、以後のイベントについての処理をスキップする(ステップS44)。切り換えられるイベントがない場合には、全イベントについて上述の処理を実行する(ステップS45)。
【0134】
これらの処理が終了すると、CPU201は、演出番号の設定(ステップS46)、液晶コマンド設定(ステップS47)、サウンドパターン起動(ステップS48)、ランプレイヤ起動(ステップS49)を順次実行する。
演出番号の設定(ステップS46)とは、先に
図5で説明した通り、例えば、始動レバー15の操作、停止ボタン16の操作、リールの停止状態、およびシステムイベント情報などに応じて、演出番号を特定する処理である。
液晶コマンド設定(ステップS47)とは、ノイズなどの影響で演出表示に支障が生じた場合の対策として、画面設定等に関する画面設定コマンドをVDP204に出力する処理である。
サウンドパターン起動(ステップS48)およびランプレイヤ起動(ステップS49)とは、遊技中に行われる基本的な操作に連動した音声出力やランプ表示を行わせるための音声動作番号、ランプ動作番号の出力を行う。出力される音声としては、例えば、「メダル投入音」、「ウェイト音」、「回胴回転開始音」、「リール停止音」、「払い出し音」などが挙げられる。ランプ表示としては、ベット時、レバーON時、リール停止時の表示などが挙げられる。
【0135】
D3.演出データ処理:
図16は演出データ処理のフローチャートである。演出モジュール240が実行する処理であり、メイン処理ルーチンのステップS40に相当する処理である。
【0136】
CPU201は、演出番号を読み込み(ステップS41)、演出番号が正常か否かを判断する(ステップS42)。ノイズ等の影響で、正常でない演出番号が指定されている場合には(ステップS42)、CPU201は、演出データ処理を終了する。この際、読み込んだ演出番号は破棄される。
【0137】
演出番号が正常な場合には(ステップS42)、CPU201は、演出管理テーブル(
図6参照)を参照し(ステップS43)、演出番号に対応した演出管理ポインタ値を得る。この演出管理ポインタ値が異常の場合には(ステップS44)、CPU201は、レイヤ制御部を停止して(ステップS46)、処理を終了する。
【0138】
演出管理ポインタ値が正常の場合には(ステップS44)、そのポインタで指定された統合演出命令データを読み込み、そこに規定された処理命令を実行する(ステップS45)。統合演出命令データの構造および処理命令の種類は、
図6で説明した通りである。この処理によって、遊技状態に応じた演出を実現するための液晶コマンド、音声動作番号、ランプ動作番号が設定され、ワーク231(
図5参照)に格納される。CPU201は、条件分岐、タイムウェイトなどの処理によって統合演出命令データの処理の中断が指示される場合、または演出終了が指示されるまで、この処理を継続する(ステップS47)。
【0139】
以上の処理を終了すると、
図14に示した通り、統合演出命令データに従って指定された音声動作番号、ランプ動作番号は、次に示すサウンド処理、ランプ処理に受け渡される。また液晶コマンドはメイン処理ルーチンにおいて、VDP204に出力される(
図14のステップS70)。
【0140】
D4.サウンド処理:
図17はサウンド処理のフローチャートである。サウンドモジュール250が実行する処理であり、メイン処理ルーチンのステップS50に相当する処理である。
【0141】
CPU201は、複数のレイヤ制御部252に対して、処理対象となるレイヤ制御部を順次切り換えながら、ステップS51〜S54の処理を実行する。まず、CPU201は、処理対象となる音声動作番号に応じて、レイヤ制御部の起動中、または新たに起動が必要か否かを判断する(ステップS51)。レイヤ制御部が起動中でなく、新たに起動する必要もない場合には、処理対象を次のレイヤ制御部に切り換えて順次処理を行う。起動の要否は、演出データ処理(
図16)で設定されたワーク231を参照することで判断できる。また、レイヤ制御部が既に起動中か否かは、レイヤ制御部252が使用するワーク252W(
図12参照)の動作状態を参照することによって判断できる。
【0142】
レイヤ制御部252が起動中または新規起動と判断された場合には(ステップS51)、レイヤ制御部252に対応づけられたワーク252Wを参照し、タイマ値が0となっているか否かを判断する(ステップS52)。タイマ値が0でない場合には、処理の待ち時間中であることを意味するため、CPU201は、そのレイヤ制御部252に対しては、何も処理を行うことなく、処理対象を次のレイヤ制御部に切り換える。
【0143】
タイマ値が0の場合には、レイヤ制御部が次の処理命令を実行すべきタイミングにあることを意味する。従って、CPU201は、レイヤ制御部の更新(ステップS53)、即ちサウンドポインタを一つ進める処理を行う。そして、新たなポインタで指定された種別演出命令データを読み込み、その処理命令に従った処理を実行する。この処理において、先に
図12で説明した通り、フレーズ再生が指定されていると、音源コマンドとして、フレーズデータ255Fに従った曲番号が出力され、音源IC205が音声を再生する。CPU201は、以上の処理を全レイヤ制御部について順次、実行する(ステップS54)。
【0144】
次に、CPU201は、起動中のレイヤ制御部のうち、最優先のレイヤ制御部を選択する(ステップS55)。図の右側に本実施例におけるサウンドレイヤ構造254を示した。先に
図4で説明した通り、本実施例では#1〜#8までの8つのサウンドレイヤを有している。下に行くほど優先度が高いレイヤとなっている。仮に、図中に○をつけたレイヤ#1,#2、#5が起動中であるものとする。この時、ステップS55の処理では、起動中のレイヤのうち、最も優先度が高いレイヤ#5が選択されることになる。
【0145】
CPU201は、こうして選択したレイヤについて他のレイヤ制御部の発音が禁止されているか否かを判断する(ステップS56)。禁止されている場合には、CPU201は、他のレイヤ制御部のボリュームをオフとし(ステップS57)、許可されている場合には、全レイヤ制御部のボリュームはフレーズデータ255Fで指定されたボリューム値としておく(ステップS58)。
【0146】
図の例では、レイヤ#5は、他のレイヤの発音が禁止されている。従って、レイヤ#1、#2の出力ボリュームは0とされる。このボリューム調整は、フレーズデータ255Fで指定されたチャンネルに対応するチャンネル管理用ワーク253(
図4参照)の出力ボリュームを0とすることによって実現できる。レイヤ#1、#2は出力ボリュームが0とされたものの、動作を停止された訳ではないため、そのまま音声出力は継続して行われる。従って、出力ボリュームを復帰させさえすれば、従前の出力の続きを違和感なく出力させることが可能となる。
【0147】
本実施例では、最優先のレイヤの禁止/許可のみを参照して、他のレイヤの音声出力の可否を制御しているが、複数のレイヤの禁止/許可を参照するものとしてもよい。例えば、最優先のレイヤと2番目のレイヤを参照し、いずれか一方が禁止の時は他のレイヤを消音するという制御を行っても良い。こうすることで、優先度の高いレイヤが「許可」、2番目のレイヤが「禁止」となっている場合でも、3番目以降のレイヤを消音することが可能となる。
図17中に示したレイヤ構造では、優先度の低いレイヤ#1〜#4は許可、優先度の高いレイヤ#5〜#8は禁止というように、一定以上の優先度のレイヤは一律「禁止」と設定されているが、複数のレイヤの禁止/許可を参照することにより、各レイヤの禁止/許可が柔軟に設定可能となる。例えば、必ず出力させておくことが好ましいが、他のレイヤの発音を禁止するほどの情報ではない音声がある場合には、最優先のレイヤに設定しつつ、「許可」と設定しておけばよい。
【0148】
以上の処理によって、複数のレイヤ制御部を並行して使用しながら音声出力を行うことができる。また、優先度および禁止/許可の設定によって、他のレイヤを再生し続けたまま、一部のレイヤの音声のみを出力することができる。複数のレイヤ制御部を起動することによって、例えば、BGMを再生しながら、始動レバーの操作等の効果音を一時的にBGMにミキシングして流すなど、多様な演出を容易に実現することが可能となる。
【0149】
D5.ランプ処理:
図18はランプ処理のフローチャートである。ランプモジュール260が実行する処理であり、メイン処理ルーチンのステップS60に相当する処理である。
【0150】
CPU201は、サウンド処理(
図17)と同様、レイヤ制御部の起動(ステップS61)、タイマ値の判定(ステップS62)を行う。レイヤ制御部が起動中または新規起動の状態にあり、タイマ値が0の場合には、CPU201はレイヤ制御部を更新し(ステップS63)、新たなランプポインタ(新たに生成される
図13のワーク262W)で指定された種別演出命令データの処理命令を実行する。この処理において、階調パターン設定(
図13)が設定されている時には、指定された階調パターンデータ266に基づいて階調パターンがランプ30に出力される。CPU201は、以上の処理を、各レイヤに含まれる全てのレイヤ制御部262および階調制御部263について実行し(ステップS64)、更に、全レイヤについて実行する(ステップS65)。
【0151】
次にCPU201は、起動中のレイヤ制御部のうち、最優先のレイヤ制御部を選択する(ステップS66)。図の右側に本実施例におけるランプレイヤ構造264を示した。先に
図13で説明した通り、本実施例では#1〜#6までの6つのレイヤを有している。下に行くほど優先度が高いレイヤとなっている。仮に、図中に○をつけたレイヤ#1,#2、#5が起動中であるものとする。この時、ステップS66の処理では、起動中のレイヤのうち、最も優先度が高いレイヤ#5が選択されることになる。
【0152】
CPU201は、こうして選択したレイヤについてのみランプデータを出力する(ステップS67)。他のレイヤについては、レイヤ制御部は階調データを再生しているが、ランプに送信されることなく出力が遮断されることになる。他のレイヤのレイヤ制御部は処理を停止している訳ではないため、最優先のレイヤの処理が停止すれば、次に優先度の高いレイヤの階調データが従前の続きとして違和感なく出力される。
【0153】
最優先のレイヤのみを出力するのは、ランプについては、複数のレイヤを重畳させると、概して規則性のない違和感のある点灯パターンとなりやすいからである。ランプの階調データ次第では、最優先のレイヤ以外のレイヤも併せて出力可能としてもよい。また、優先度に応じて、階調データに強弱をつけて重畳してもよい。このように重畳した出力を許容する場合には、音声出力の場合と同様、レイヤごとに重畳の禁止、許可を設定してもよい。
【0154】
E.効果:
以上で説明した本実施例のスロットマシン10によれば、サブ制御基板200での演出制御において、多様な演出を比較的容易に実現できる利点がある。
まず、本実施例では、統合演出命令データや種別演出命令データを用いて演出装置の制御内容を規定する。これらの演出命令データは、演出時に種々のモジュールが実行すべき制御処理の内容を指示する処理命令を実行すべき順序で複数格納したデータ構造を有している。従って、本実施例では、演出制御のプログラムを変更するまでなく、これらの演出命令データを用意するだけで、種々の演出を実現することが可能となるのである。
しかも、本実施例では、この処理命令には、条件分岐命令を含めることができるため、一つの演出命令データで処理を多様に分岐させることができ、種々変化する遊技状態に対応した多彩な演出表示を効率的に実現することが可能となる。 また、本実施例では、音声、ランプのそれぞれについて、複数のレイヤ制御部を並行して用いることによって、音声、ランプのそれぞれで多種多様な演出効果を実現することが可能となる。
また、LCD、音声、ランプを統合制御する統合演出命令データと、音声、ランプのそれぞれの出力を制御するための種別演出命令データとを階層的に用いるため、音声、ランプで実現される種々の演出の組合せによって、さらに多種多様な演出を容易に実現することが可能となる。
【0155】
F.第2実施例:
F1.遊技機の構成:
図19は第2実施例としてのパチンコ機に用いられる遊技盤70の正面図である。遊技盤70は、パチンコ機の外枠(図示せず)に取り付けられており、中央に遊技領域71を備えている。遊技者は、図示しないハンドルを操作して遊技領域71内に遊技球を打ち込み、入賞口に入賞させる遊技を行うことができる。
【0156】
本実施例のパチンコ機はいわゆる第二種と呼ばれるタイプに当たる。遊技盤70の中央には、機械的抽選、即ち遊技球の動きに基づいて大当りか否かを決める抽選方法を実行する可変入賞装置80が備えられている。可変入賞装置80の上部には、図示するように第1可動片81、第2可動片82がそれぞれ左右一対に備えられている。図の状態は、可変入賞装置80内に遊技球が入り込めるように第1可動片81、第2可動片82が開いた状態を示している。普段は、第1可動片81は矢印Bに示すようにスライドして開口部を塞ぐように閉じている。この時、第2可動片82は矢印Cに示すように内部に隠れている。
遊技球が遊技領域71の下部の始動入賞口72に入賞すると、図示するように第1可動片81、第2可動片82が開口状態となる。
【0157】
開口中に可変入賞装置80内に入り込んだ遊技球は、矢印Dに示すように、左右に円弧状に設けられた流路83内を、左右から中央に延びるアーム84上に向かって転がり落ちる。可変入賞装置80は、全体が矢印Aに示すように左右に揺動するため、遊技球はアーム84上で左右に不安定に転がった後、駆動装置85駆動装置85駆動装置85駆動装置85駆動装置85適当なタイミングで落下する。落下タイミングによっては、遊技球は、一般入賞口86に入り、V入賞口87に入る。アーム84および駆動装置85が、大当りか否かを決める振分機構として機能することになる。V入賞口87に入賞すると「大当り」となり、第1可動片81、第2可動片82が、所定のパターンで開閉を繰り返す「大当り遊技」が開始される。
【0158】
可変入賞装置80には、落下する遊技球と干渉しない程度に前面にシフトした位置に、UFOを形取った演出用の駆動装置85として設けられている。駆動装置85は、UFOの動きを模して、矢印Eに示すように前後左右方向に8の字を描くように曲線的に移動するとともに、矢印Fに示すようにロール運動する。遊技者は、駆動装置85が落下する遊技球に干渉するかのように感じて、ハラハラドキドキすると同時に、現実の物が移動することによって、表示やランプでは得られないリアルな演出効果を得ることができる。
【0159】
遊技領域71の中央には、LCD73が備えられており、遊技中に種々の演出画面(装飾図柄と呼ぶこともある)が表示される。始動入賞口への入賞時、大当りの発生時などにも、それぞれ遊技状態に応じた演出画面が表示される。LCD73は、遊技者から見て駆動装置85よりも奥に設置されている。駆動装置85は、LCD73の表示と連動させて駆動してもよい。
【0160】
F2.遊技機の制御:
パチンコ機の制御機構の構成は、スロットマシン10と同様である。先に
図2で説明した通り、メイン制御基板100とサブ制御基板200によって遊技およびそのための演出が制御される。スロットマシン10では、表示の制御もサブ制御基板200で行っていたが、パチンコ機では、表示制御用の基板を別途設けてもよい。この場合には、
図3で示した演出モジュール240における表示関連の機能、液晶コマンドバッファ212およびVDP204の機能を液晶表示制御用の基板で実現することになる。
【0161】
図20はパチンコ機の制御ソフトウェア構成を示す説明図である。スロットマシン10と同じモジュールには同一の符号を付したため、説明を省略する。本実施例のパチンコ機は、
図19に示した駆動装置85の動作を制御するためのモジュールが追加されている点が、実施例(
図3)と相違する。
【0162】
駆動装置85はランプ等と同様、出力ポートイメージワーク214を介して駆動装置モジュール270に接続されており、イベントモジュール230Aおよび駆動装置モジュール270によって制御される。駆動装置85には駆動用に複数のステッピングモータが設けられており、これらのステッピングモータの動作が制御対象となる。具体的な制御項目は、次の通りである。
(1)移動量…ステッピングモータの回転ステップ角;
(2)移動時間…現在の位置から次の位置まで移動させるための時間;
(3)移動速度…モータの回転速度;
(4)励磁方法…1−1相励磁、1ー2相励磁、2−2相励磁の区別;
(5)台形駆動…回転開始、停止時にステップ関数的に速度を変化させるのではなく、所定の角加速度で回転速度を変化させる;
(6)回転方向…モータの回転方向;
(7)原点位置まで戻すための復帰動作の実行指示;
(8)メカエンド停止の指示;
ここでメカエンド停止とは、駆動装置85の可動範囲が機械的に制限されている時に、可動範囲の限界位置に付勢した状態で停止させることを意味する。
【0163】
駆動装置85の制御方法は、ランプ等と同様である。演出モジュール240Aは、コマンドを解析して駆動装置85の動作態様を決定し、動作態様を表す駆動装置動作番号を駆動装置モジュール270に出力する。駆動装置モジュール270は、駆動装置動作番号に応じた種別演出命令データを参照する。駆動装置85用の種別演出命令データには、上述した制御項目(1)〜(8)等を指定するための処理命令およびパラメータが用意されている。また、コール、条件分岐、演出抽選も同様に設けられている。
【0164】
駆動装置85についても、
図4に示したように、複数のレイヤ制御部が並行して稼働可能である。各レイヤ制御部からステッピングモータへの信号出力は、
図4に示したのと同じく、複数チャンネルの出力強さによって調整される。
【0165】
このようにランプ、サウンドと同様の制御機構を設けることにより、駆動装置85に多彩な動きを行わせることができる。
例えば、機械的に当たり/はずれを決める際に、遊技球に干渉するかのうように見える演出を行うために8の字状に移動させる他、当たり時には派手な飛行をしたり、はずれ時には墜落させたりというように、種々の演出効果を考慮した動きをさせてもよい。8の字状に移動させるレイヤ制御部と、当たり時の演出動作を実現するレイヤ制御部、はずれ時の演出動作を実現するレイヤ制御部を並行して稼働しつつ、抽選結果に応じてそれぞれの出力を調整すればよい。駆動装置85の演出動作と、表示、ランプ、サウンドを連動させるよう統合演出命令データを規定しておいてもよい。こうすることで、統一感のある演出を実現することができる。
【0166】
第2実施例においても、表示、サウンド、ランプ、駆動装置85を対象とした演出抽選を行うことができる。演出抽選は、実施例と同様、乱数に基づいて統合演出命令データのコール命令を使い分けることによって行うことも可能である(
図6参照)。これに対し、本実施例では、統合演出命令データではなく、種別演出命令データで演出抽選を行う方法を採った。
【0167】
種別演出命令データでの演出抽選は、統合演出命令データと同様の方法によって実現可能である。つまり、種別演出命令データ内で、条件分岐とコール命令を用い、演出抽選用の乱数に応じて、異なる種別演出命令データをコールするように規定しておけばよい。この方法では、表示、サウンド、ランプ、駆動装置85が独立して演出抽選を行う結果、その組み合わせによって実現される演出態様は非常に多彩となり、より興趣を高めることができる利点がある。
ただし、表示、サウンド、ランプ、駆動装置85の演出抽選の結果に関わらず、違和感のない演出を実現するためには、これらの演出が同時に終了することが好ましい。従って、本実施例では、演出抽選の選択対象となる種別演出命令データは、同一時間で演出が終了する内容となっている。もっとも、同一時間で演出が終了することは必須の要件ではなく、これらの演出時間がまちまちとなっていても構わない。
【0168】
種別演出命令データでの演出抽選には、演出内容が多彩になる他、表示、サウンド、ランプ、駆動装置85の出力状況に応じて抽選態様を切り換えることができる利点もある。
例えば、演出抽選が指示された時点で、駆動装置85が8の字状の振り分け動作を実行中であり、他の動作が制限されている時には、駆動装置モジュール270は駆動装置85に関する演出抽選を禁止してもよい。
同様に、表示、サウンド、ランプについても、演出抽選が指示された時の状況に応じて、演出抽選を禁止してもよい。また、演出抽選禁止において、一部の種別演出命令データを選択禁止とすることにより、演出抽選を一部禁止としてもよい。
【0169】
以上で説明した第2実施例の遊技機においても、第1実施例と同様、多彩な演出を実現することができる。また駆動装置85に対しても同様の制御方法を採用することにより、駆動装置85を演出装置の一種として扱うことができ、その動作によって、より興趣に富んだ演出を実現することが可能となる。
【0170】
G.変形例:
以上の実施例では、LCDについては、サブ制御基板200が液晶コマンドを出力する構成をとっているが、液晶コマンドについても、サウンドモジュール等と同じく、演出命令データを処理するモジュールを設けても良い。また、演出の制御は3階層以上のデータ構造で実現してもよい。例えば、実施例において、ランプレイヤ制御部262(
図13参照)が起動する際に、階調制御部263を用いて階調データを出力している。階調制御部263は、ランプレイヤ制御部262が使用している種別演出命令データ265とは異なる階調パターンデータ266を参照して稼働するモジュールである。この意味で、ランプについては、統合演出命令データ、種別演出命令データ、階調パターンデータの3階層で制御されているとも言える。このように、演出の制御は3階層、またはそれ以上の階層構造のデータで制御してもよい。
【0171】
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。
(1) 本実施例では、ソフトウェアで実現している処理の一部または全部をハードウェアによって実現してもよいし、その逆も可能である。
(2) 本実施例では、スロットマシン10への適用例を示したが、本発明はパチンコ機その他の遊技機への適用も可能である。また、第2実施例でパチンコ機に適用した構成をスロットマシン10に適用することも可能である。