画像出力システム、および情報報知方法
【課題】 画像出力装置の操作者に適切に情報を提供する。
【解決手段】 画像出力装置の操作者に対する情報を、画像データ供給装置に向かって、文書、画像、または音声などの形態で出力し、画像データ供給装置では出力されてきた情報を、そのまま再生する。情報がこのような形態で記述されていれば、操作者は直ちに情報を理解することができるので、画像データ供給装置では、単に情報を再生するだけで、操作者に適切な情報を提供することができる。また、情報を再生するだけであれば、どのような機器でも実行することが可能であるため、画像データ供給装置にどのような画像出力装置が接続された場合でも、更には、画像出力装置に画像データを供給する機器がどのような機器であった場合でも、操作者に対して適切に情報を提供することが可能となる。
【解決手段】 画像出力装置の操作者に対する情報を、画像データ供給装置に向かって、文書、画像、または音声などの形態で出力し、画像データ供給装置では出力されてきた情報を、そのまま再生する。情報がこのような形態で記述されていれば、操作者は直ちに情報を理解することができるので、画像データ供給装置では、単に情報を再生するだけで、操作者に適切な情報を提供することができる。また、情報を再生するだけであれば、どのような機器でも実行することが可能であるため、画像データ供給装置にどのような画像出力装置が接続された場合でも、更には、画像出力装置に画像データを供給する機器がどのような機器であった場合でも、操作者に対して適切に情報を提供することが可能となる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、画像出力装置の操作に伴う情報を、該出力装置の操作者に伝達する技術に関する。
【背景技術】
【0002】
いわゆるインクジェットプリンタやレーザープリンタ等に代表される画像出力装置は、画像の表示速度や画質など、種々の面での改良が目覚ましく、このため、文字や図形などのような人工的な画像から写真のような自然画像まで、あらゆる画像の出力装置として使用されるようになっている。また、これに伴って画像出力装置には、例えばコンピュータやデジタルカメラ、更には携帯電話など、種々の機器が接続されて、これら画像データ供給装置から画像データが供給されるようになっている。
【0003】
一方、画像出力装置の動作状態(例えば、「データ受信中」や、「画像出力中」、「インク切れ」、「用紙切れ」など)を表示する場合には、動作状態に応じたコードデータを画像出力装置から出力することによって行うことが一般的である。また、コードデータでは、操作者が内容を理解することは困難であることから、画像出力装置から画像データ供給装置に向かってコードデータを供給し、画像データ供給装置がコードデータを解釈して表示態様を切り換える技術が提案されている(例えば、特許文献1)。あるいは、所定のボタンが押されると、コードデータが解釈されて対応するメッセージが表示されたり、読み上げられるようにすることで、操作者がコードデータの内容を容易に理解できるようにする技術も提案されている(例えば、特許文献2、特許文献3など)。
【0004】
【特許文献1】特開2002−236573号公報
【特許文献2】特開平1−147950号公報
【特許文献3】特開平4−23662号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、これら従来の技術では、画像出力装置から出力されるコードデータを解釈するための情報を、予め、画像データ供給装置に記憶しておかなければならないという問題がある。もちろん、コードデータを予め規格化しておけば、どのような画像出力装置から出力されるコードデータであっても同じように解釈することが可能となるが、例えば、画像出力装置に新たな機能や機構などが搭載された場合、これら機能や機構に拘わるコードデータは新たに追加されたものとなるので、単にコードデータを予め規格化しておくだけでは、このような新たに追加されたコードデータに対応することはできない。あるいは、画像出力装置から出力されるコードデータを解釈するための情報を、インターネットや各種記録媒体などから読み込むこととすれば、新たに追加されたコードデータであっても、これを適切に解釈して表示することが可能となるが、全ての画像データ供給装置がインターネットに接続可能なわけではなく、また記録媒体から必要なデータを読み込めるわけではない。
【0006】
更には、こうした問題は、画像出力装置の動作状態を表示する場合に限らず、例えば、画像出力装置の操作方法など、操作者に対して何らかの情報を伝達しようとする場合にも、同様に生じ得る。
【0007】
この発明は従来技術における上述した課題を解決するためになされたものであり、画像出力装置の操作に伴う情報を、該画像出力装置の操作者に、理解し易い形態で簡便に伝達することを可能とする技術の提供を目的とする。
【課題を解決するための手段】
【0008】
上述した課題の少なくとも一部を解決するために、本発明の画像出力システムは、次の構成を採用した。すなわち、
画像を出力する画像出力装置と、該画像出力装置に画像データを供給する画像データ供給装置とを備える画像出力システムにおいて、
前記画像出力装置には、該出力装置の操作者に対する情報を、文書、画像、または音声の少なくとも何れかの形態を含んで出力する情報出力手段が設けられており、
前記画像データ供給装置には、前記画像出力装置から出力された情報を、受け取った形態に従って再生する情報再生手段が設けられていることを特徴とする。
【0009】
かかる本発明の画像出力システムにおいては、画像出力装置の操作者に対する情報が、該画像出力装置から、文書、画像、または音声の少なくともいずれかの形態を含んだ態様で、画像データ供給装置に向かって出力される。そして、画像データ供給装置では、出力されてきた情報を、受け取った態様に従って再生する。すなわち、操作者に対する情報が、文書または画像の形態で画像出力装置から出力された場合には、受け取った情報を、文書または画像として表示する。また、画像出力装置から音声の形態で出力されてきた場合には、受け取った情報を音声として再生する。
【0010】
このように、操作者に対する情報を、画像出力装置から画像データ供給装置に向かって、文書、画像、音声など、操作者がそのまま理解可能な形態で出力しておけば、画像データ供給装置では画像出力装置から受け取った情報をそのまま再生するだけで、直ちに理解可能な形態で、操作者に情報を提供することが可能となる。このため、画像出力装置から受け取った情報を解釈するためのデータを、予め画像データ供給装置に記憶しておく必要がなく、どのような画像出力装置が接続された場合でも、適切な情報を、簡便に、操作者に提供することが可能となる。更に、画像データ供給装置にとっても、単に受け取った情報を表示あるいは再生するだけで良いので、画像データ供給装置の構成あるいは制御内容を簡素なものとすることができる。
【0011】
こうした画像出力システムにおいては、画像出力装置の動作状態を、操作者に対する情報として、該画像出力装置から画像データ供給装置に向かって出力することとしても良い。ここで、画像出力装置の動作状態としては、例えば、「画像データの受信中」や、「データ処理中」、「画像の出力中」といったステータス情報や、あるいは「用紙切れ」や、「通信異常の発生」といった何らかのエラー情報などとすることができる。
【0012】
操作者に対する情報として、画像出力装置の動作状態を提供するのであれば、画像データ供給装置の側では、供給された情報を再生するだけで足りることが多く、供給された情報を受けて画像データ供給装置の側で複雑な処理が必要となることが無いので好ましい。特に、本願の画像出力システムの利点の一つには、画像データ供給装置の構成あるいは制御を複雑化させることなく操作者に適切な情報を提供可能なことがあり、画像出力装置からの情報を受けて画像データ供給装置側で複雑な処理を行ったのでは、こうした利点が減殺されてしまう。この点、画像出力装置の動作状態であれば、画像データ供給装置の側では、受け取った情報の再生以外の処理を行ったとしても、複雑な処理が必要となることが無いので好適である。
【0013】
また、操作者に対する情報は、その情報が記述されている形態(例えば文書、画像、または音声など)を示す記述形態データとともに、画像出力装置から画像データ供給装置に向かって出力することとして、画像データ供給装置では、受け取った情報を、記述形態データに示された形態に従って再生することとしても良い。
【0014】
このように、操作者に対する情報を記述形態データとともに出力し、受け取った情報を記述形態データに従って再生することとすれば、操作者に対する情報の記述形態を柔軟に切り替えることができる。このため、例えば情報の内容に応じて、文字、画像、音声など適切な形態で、操作者に対する情報を提供することも可能となるので好ましい。
【0015】
また、操作者に対する情報を、いわゆるマークアップ言語によって記述することとしても良い。ここで、マークアップ言語とは、タグと呼ばれる特殊な文字列を埋め込ながら文章を記述することにより、文章の構造を表現可能な言語の総称であり、代表的なものとしては、SGML、HTML、XMLなどの仕様が知られている。また、文章の構造としては、論理的な構造や、見出しのような形式的な構造、字下げや字体のような装飾的な構造、画像や音声のようなデータの形態に関する構造など、種々の構造を表現することが可能である。
【0016】
マークアップ言語は、タグを用いることで、種々の構造を柔軟に且つ簡単に記述することが可能である。また、マークアップ言語で記述されたデータは、単純なプログラムによって適切に再生することが可能である。このため、画像出力装置の操作者に対する情報を、マークアップ言語で記述しておけば、簡便に且つ適切に、操作者に情報を提供することが可能となるので好ましい。
【0017】
また、画像出力装置の中には、操作者に必要な情報を提供するために、文書、画像、あるいは音声などのデータを再生する機能が搭載された装置も存在する。このような画像出力装置では、自らが再生して操作者に提供するための情報を、画像データ供給装置に出力することとしてもよい。
【0018】
こうすれば、画像出力装置は、自らが再生するための情報と、画像データ供給装置で再生するための情報とを二重に記憶しておく必要が無いので好ましい。また、操作者にとっても、画像出力装置からと画像データ供給装置からとで同じ情報が提供されることになるため、提供された内容を、なんら混乱することなく容易に理解することができる。
【0019】
また、上述した本発明の画像出力システムは、着目する箇所に応じて種々の態様として把握することができる。例えば、操作者に対して情報を出力している点に着目すると、本発明は画像出力装置として把握することができる。すなわち、こうした本発明の画像出力装置は、
画像データを受け取って画像を出力する画像出力装置において、
前記画像出力装置の操作者に対する情報を、前記画像データを供給する機器に向かって、文書、画像、または音声の少なくとも何れかを含んだ形態で出力することを特徴とする。
【0020】
かかる本発明の画像出力装置においては、画像データを供給する機器に向かって、画像出力装置の操作者に対する情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で出力する。このように、文書、画像、または音声といった形態であれば、操作者は直ちに内容を理解することができるので、画像データ供給装置は、受け取った情報を単に再生するだけで、操作者に対して適切に情報を提供することができる。また、情報を再生するだけであれば、簡単に実現可能であることから、どのような機器から画像データを受け取った場合でも、操作者に対する情報を、機器を選ばず適切に提供することが可能となる。
【0021】
また、画像出力装置の操作者に対する情報を報知している点に着目すれば、本発明は情報を報知する方法として把握することができる。すなわち、こうした本発明の第1の情報報知方法は、
画像データ供給装置に接続された画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知する情報報知方法において、
前記画像出力装置の操作者に報知するべき情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データ供給装置に向かって出力する第1の工程と、
前記画像出力装置から出力された情報を、受け取った形態に従って再生する第2の工程と
を備えることを特徴とする。
【0022】
かかる本発明の第1の情報報知方法においても、操作者に報知するべき情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で出力し、これを画像データ供給装置で再生する。こうすれば、受け取った情報を単に再生するだけで、操作者に情報を適切に報知することが可能となる。
【0023】
また、特に、操作者に対する情報を出力している点に着目すると、本発明は次のような情報報知方法として把握することができる。すなわち、本発明の第2の情報報知方法は、
画像データを受け取って画像を出力する画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知する情報報知方法において、
前記画像出力装置の操作者に報知するべき情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データを供給する機器に向かって出力する工程を備えることを特徴とする。
【0024】
かかる本発明の第2の情報報知方法においても、画像出力装置の操作に伴う情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で出力する。このような形態で出力しておけば、受け取った情報を単に再生するだけで、操作者が直ちに理解可能な状態で適切に報知することができる。
【0025】
更に本発明は、上述した情報報知方法を実現するためのプログラムをコンピュータに読み込ませ、コンピュータを用いて実現することも可能である。従って、本発明は次のようなプログラム、あるいは該プログラムを記録した記録媒体として把握することもできる。すなわち、上述した第1の情報報知方法に対応する本発明のプログラムは、
画像データ供給装置に接続された画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知する方法を、コンピュータを用いて実現するプログラムにおいて、
前記画像出力装置の操作者に報知するべき情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データ供給装置に向かって出力する第1の機能と、
前記画像出力装置から出力された情報を、受け取った形態に従って再生する第2の機能と
を実現することを特徴とする。
【0026】
また、上記のプログラムに対応する本発明の記録媒体は、
画像データ供給装置に接続された画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知するプログラムを、コンピュータで読み取り可能に記録した記録媒体において、
前記画像出力装置の操作者に報知するべき情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データ供給装置に向かって出力する第1の機能と、
前記画像出力装置から出力された情報を、受け取った形態に従って再生する第2の機能と
を実現するプログラムを記憶していることを特徴とする。
【0027】
更に、上述した第2の情報報知方法に対応する本発明のプログラムは、
画像データを受け取って画像を出力する画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知する方法を、コンピュータを用いて実現するプログラムにおいて、
前記画像出力装置の操作者に報知する情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データを供給する機器に向かって出力する機能を実現することを特徴とする。
【0028】
また、上記のプログラムに対応する本発明の記録媒体は、
画像データを受け取って画像を出力する画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知するプログラムを、コンピュータで読み取り可能に記録した記録媒体において、
前記画像出力装置の操作者に報知する情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データを供給する機器に向かって出力する機能を実現するプログラムを記録していることを特徴とする。
【0029】
こうしたプログラム、あるいは記録媒体に記録されているプログラムをコンピュータに読み込ませ、該コンピュータを用いて上述の各種機能を実現すれば、画像出力装置の操作者に報知するべき情報を、簡便に且つ適切に報知することが可能となる。
【発明を実施するための最良の形態】
【0030】
以下では、本発明の作用・効果をより明確に説明するために、本発明の実施の形態を、次のような順序に従って説明する。
A.装置構成 :
A−1.ゲーム機の構成 :
A−2.カラープリンタの構成 :
B.ゲーム画面の表示の概要 :
C.画像印刷処理の概要 :
D.第1実施例のプリンタ情報表示処理 :
E.第2実施例のプリンタ情報表示処理 :
【0031】
A.装置構成 :
A−1.ゲーム機の構成 :
図1は、ゲーム機100とカラープリンタ200とによって構成される本実施例の画像出力システムを示した説明図である。ゲーム機100は、CPU101を中心として、メインメモリ110、座標変換器(以下、GTE:Geometry Transfer Engine)112、フレームバッファ114、画像処理器(以下、GPU:Graphic Proccesing Unit)116、ROM108、ドライバ106、通信制御部103などが、バスを介して相互にデータをやり取り可能に接続されて構成されている。また、ゲーム機100には、ゲーム機100の操作を行うためのコントローラ102などが接続されている。
【0032】
CPU101は、いわゆる算術演算や論理演算を実行する中央演算装置であり、ゲーム機100全体の制御を司っている。ROM108は、読み出し専用のメモリであり、ゲーム機100の電源投入後にCPU101が初めに実行するプログラム(ブートプログラム)を始めとして、各種のプログラムが格納されている。メインメモリ110は、データの読み出しおよび書き込みが可能なメモリであり、CPU101が算術演算や論理演算を実行する際に一時的な記憶領域として使用される。GTE112は、CPU101の制御の下で、メインメモリ110にアクセスしながら、幾何学的形状を三次元空間で移動、回転させるための演算を高速に実行する。GPU116は、CPU101からの命令を受けて、モニタ150上に表示される画面を生成する処理を高速に実行する。フレームバッファ114は、GPU116が、モニタ150上に表示される画面を生成するために使用する専用メモリである。GPU116は、フレームバッファ114上に生成した画面のデータを読み出してモニタ150に出力することにより、ゲーム中の画面を表示する。
【0033】
ゲームを実行するためのプログラムや各種のデータは、いわゆるコンパクトディスクやデジタルビデオディスクなどの記憶ディスク105に記憶されている。これら記憶ディスク105をゲーム機100にセットすると、記憶ディスク105に記憶されているプログラムおよびデータがドライバ106によって読み出され、メインメモリ110に一旦記憶される。そして、コントローラ102の操作内容が通信制御部103を介してCPU101に入力されると、CPU101が、メインメモリ110に記憶されているプログラムを読み出して所定の処理を実行することにより、ゲームが実行される。
【0034】
また、ゲーム機100にはカラープリンタ200が接続されており、ゲーム機100から画像データを供給することによって、ゲーム中の画面をカラープリンタ200から出力することが可能となっている。ゲーム機100およびカラープリンタ200は、全体として本実施例の画像出力システムを構成している。
【0035】
A−2.カラープリンタの構成 :
図2は、本実施例の画像出力システムを構成するカラープリンタ200の概略構成を示す説明図である。カラープリンタ200はシアン,マゼンタ,イエロ,ブラックの4色インクのドットを形成可能なインクジェットプリンタである。もちろん、これら4色のインクに加えて、染料または顔料濃度の低いシアン(淡シアン)インクと、染料または顔料濃度の低いマゼンタ(淡マゼンタ)インクとを含めた合計6色のインクドットを形成可能なインクジェットプリンタを用いることもできる。尚、以下では場合によって、シアンインク,マゼンタインク,イエロインク,ブラックインク,淡シアンインク,淡マゼンタインクのそれぞれを、Cインク,Mインク,Yインク,Kインク,LCインク,LMインクと略称することがあるものとする。
【0036】
カラープリンタ200は、図示するように、キャリッジ240に搭載された印字ヘッド241を駆動してインクの吐出およびドット形成を行う機構と、このキャリッジ240をキャリッジモータ230によってプラテン236の軸方向に往復動させる機構と、紙送りモータ235によって印刷用紙Pを搬送する機構と、ドットの形成やキャリッジ240の移動および印刷用紙の搬送を制御する制御回路260などから構成されている。
【0037】
キャリッジ240には、Kインクを収納するインクカートリッジ242と、Cインク,Mインク,Yインクの各種インクを収納するインクカートリッジ243とが装着されている。インクカートリッジ242,243をキャリッジ240に装着すると、カートリッジ内の各インクは図示しない導入管を通じて、印字ヘッド241の下面に設けられた各色毎のインク吐出用ヘッド244ないし247に供給される。
【0038】
図3は、インク吐出用ヘッド244ないし247におけるインクジェットノズルNzの配列を示す説明図である。図示するように、インク吐出用ヘッドの底面には、C,M,Y,Kの各色のインクを吐出する4組のノズル列が形成されており、1組のノズル列あたり48個のノズルNzが、一定のノズルピッチkで配列されている。
【0039】
制御回路260は、CPUや、ROM、RAM、PIF(周辺機器インターフェース)等がバスで相互に接続されて構成されている。制御回路260は、キャリッジモータ230および紙送りモータ235の動作を制御することによってキャリッジ240の主走査動作および副走査動作を制御するとともに、外部から供給される印刷データに基づいて、各ノズルから適切なタイミングでインク滴を吐出する制御を行う。こうして、制御回路260の制御の下、印刷媒体上の適切な位置に各色のインクドットを形成することによって、カラープリンタ200はカラー画像を印刷することができる。
【0040】
また、インク滴を吐出するためにノズルに供給される駆動信号波形を制御してやれば、吐出されるインク滴の大きさを変更して、大きさの異なるインクドットを形成することもできる。このようにしてインクドットの大きさを制御することができれば、印刷しようとする画像の領域に応じて異なる大きさのインクドットを使い分けてやることで、より高画質の画像を印刷することも可能となる。
【0041】
尚、各色のインク吐出ヘッドからインク滴を吐出する方法には、種々の方法を適用することができる。すなわち、ピエゾ素子を用いてインクを吐出する方式や、インク通路に配置したヒータでインク通路内に泡(バブル)を発生させてインク滴を吐出する方法などを用いることができる。また、インクを吐出する代わりに、熱転写などの現象を利用して印刷用紙上にインクドットを形成する方式や、静電気を利用して各色のトナー粉を印刷媒体上に付着させる方式のプリンタを使用することも可能である。
【0042】
以上のようなハードウェア構成を有するカラープリンタ200は、キャリッジモータ230を駆動することによって、各色のインク吐出用ヘッド244ないし247を印刷用紙Pに対して主走査方向に移動させ、また紙送りモータ235を駆動することによって、印刷用紙Pを副走査方向に移動させる。制御回路260は、キャリッジ240の主走査および副走査の動きに同期させながら、適切なタイミングでノズルを駆動してインク滴を吐出することによって、カラープリンタ200は印刷用紙上にカラー画像を印刷することが可能となっている。
【0043】
B.ゲーム画面の表示の概要 :
本実施例の画像出力システムを構成するゲーム機100は、ゲームの舞台として設定された仮想的な三次元空間の中で、メインキャラクタを操作することによってゲームが進行するようになっている。図4は、モニタ150上にゲーム中の画面が表示されている様子を例示した説明図である。図示されている画面には、想像上の惑星表面が表示されており、惑星の表面には各種の建造物が設定されている様子が仮想的に表示されている。このようなゲームの舞台の中を、メインキャラクタである飛行艇を操縦しながら進んでいくことによってゲームが行われる。
【0044】
モニタ150の画面では二次元の形状しか表現し得ないが、ゲーム機100の内部では、惑星表面や、飛行艇、各種の建造物などについては三次元的な形状を伴った物体として表現されている。このように、ゲーム機100の内部で三次元的な形状を伴うものとして扱われている物体を、本明細書中では「オブジェクト」と呼ぶことにする。図4に例示した画面では、画面のほぼ中央に大きく表示された飛行艇ob1 や、惑星表面ob2 、ドーム状の建造物ob3 、遠方に見えるピラミッド状の2つの建造物ob11、ob12、更には、惑星の表面上を飛行する6つの円盤ob4 ないしob9 などがオブジェクトであり、これらについては、物体の表面形状を三次元的に表すデータが記憶されている。このため、メインキャラクタである飛行艇ob1 を操作することにより、飛行艇ob1 に対して、他のオブジェクト(例えば建造物や円盤等)の位置関係が変化すると、これに伴って、モニタ150上でのオブジェクトの見え方も変化することになる。この結果、飛行艇ob1 や、惑星表面ob2 などのオブジェクトは、想像によって作り出されたものであるにも拘わらず、あたかも現実に存在しているかのように、モニタ150に表示することが可能となっている。また、詳細には後述するが、ゲーム機100では、モニタ150に表示された画面をカラープリンタ200から出力することにより、あたかも写真で撮影したかのような画像を印刷することも可能となっている。
【0045】
尚、図4に示した例では、惑星の空の部分や、空に浮かぶ衛星は、オブジェクトではなく二次元的な画像がそのままモニタ150に表示されたものとなっている。従って、これらについては、飛行艇ob1 を操作しても、モニタ150上での見え方が変化することはない。これは、ゲームのメインキャラクタである飛行艇ob1 の移動範囲に対して極めて遠方にあるため、飛行艇ob1 の位置が変わっても見え方はほとんど変化せず、従って二次元画像として扱えば十分であることによる。図5は、モニタ150の画面上で、二次元画像がそのまま表示されている領域を、ハッチングを付して表した説明図である。このように、ゲーム機100では、モニタ150に表示される画面の一部に、二次元画像を嵌め込んで表示することも可能となっている。
【0046】
次に、本実施例の画像出力システムを構成するゲーム機100が、物体を三次元的な形状を伴ったオブジェクトとして取り扱う方法について説明する。図6は、メインキャラクタである飛行艇ob1 の形状を示す斜視図である。図の左側には、飛行艇ob1 を斜め後方から見た様子が示されており、図の右側には、飛行艇ob1 を斜め前方から様子が示されている。図示されているように、飛行艇ob1 は、表面のほとんどの部分が滑らかな曲面によって構成されている。ゲーム機100の内部では、このような三次元的な曲面を有する物体を、平面多角形を用いて表現する。すなわち、三次元的な曲面を細かな平面多角形に分割し、これら平面多角形によって近似的に表現していることになる。
【0047】
図7は、メインキャラクタの飛行艇ob1 の形状を細かな平面多角形によって表現した様子を概念的に示した説明図である。このように、細かな多角形に分割すれば三次元的な曲面を持った物体形状を、平面多角形によって表現することが可能である。尚、このような平面多角形は「ポリゴン」と呼ばれている。ゲーム機100では、全てのオブジェクトがポリゴンの集まりとして表現されており、ポリゴンを構成する各頂点の三次元座標値によってオブジェクトの形状が表現されている。本明細書においては、ポリゴンの頂点の座標によってオブジェクトの形状を表現したデータを、「ポリゴンデータ」と呼ぶことにする。また、ゲーム機100においては、各オブジェクトのポリゴンデータは、オブジェクトテーブルと呼ばれるテーブルによって管理されている。
【0048】
図8は、本実施例の画像出力システムを構成するゲーム機100において、各オブジェクトのポリゴンデータを管理するために用いられるオブジェクトテーブルを概念的に示した説明図である。図示されているように、オブジェクトテーブルには、各オブジェクトを識別するためのオブジェクト番号と、オブジェクトの形状を示したポリゴンデータが格納されているメインメモリ110の先頭アドレスと、オブジェクトを構成するポリゴン数とが記憶されている。オブジェクトテーブルには、このようなオブジェクト番号とポリゴンデータの先頭アドレスとポリゴン数とを一組とするレコードが、オブジェクトの数だけ設定されている。
【0049】
図9は、オブジェクトの形状を示したポリゴンデータのデータ構造を示す説明図である。図示されているようにポリゴンデータは、ポリゴンの通し番号と、各ポリゴンを構成する頂点のXYZ座標値と、ポリゴンに付与されるテクスチャの番号と、オブジェクトに設定されている基準点のXYZ座標値などから構成されている。このうち、ポリゴンの番号、頂点座標、テクスチャ番号についてはポリゴン毎に一組ずつ設定されており、一方、基準点のXYZ座標値はオブジェクト毎に設定されている。
【0050】
各ポリゴンに設定されている頂点座標の個数は、ポリゴンの形状に応じた個数が設定されている。例えば、ポリゴンが三角形であれば3つの頂点から構成されているから、そのポリゴンについては3つの頂点座標が設定される。同様に、ポリゴンが四角形であれば4つの頂点座標が設定されることになる。本実施例では、全てのオブジェクトが三角形のポリゴンで構成されており、従って、各ポリゴンには3つずつ頂点座標が設定されている。
【0051】
また、テクスチャ番号は、簡単に言えば、ポリゴン内を塗りつぶすべき色彩を示す番号のようなものと考えることができる。例えば、オブジェクトの表面が赤ければ、そのオブジェクトを構成する全てのポリゴンを赤色としておけばよい。この場合、ポリゴンのテクスチャ番号には、赤色を示す番号が設定されることになる。もっとも、このように色彩だけでなく、アルミや真鍮などの各種の金属表面や、ガラスのような透明な表面、更には木肌のような表面を、テクスチャ番号として指定することも可能である。テクスチャ番号は、このようにポリゴンに付与される表面の状態を指定する番号である。
【0052】
一方、オブジェクトについて設定されている基準点は、三次元空間におけるオブジェクトの位置と姿勢とを表すために用いられるXYZ座標値である。本実施例のゲーム機100では、ゲーム中に表示されるモニタ150の画面を、あたかも写真のような鮮明な画像として印刷することが可能となっており、詳細には後述するが、対象とするオブジェクトの位置および向きの情報を用いることによって、このような鮮明な画像を印刷することを可能としている。このため本実施例の画像出力システムを構成するゲーム機100では、そのオブジェクトが三次元空間内のどの位置に存在していて、どちらの方向を向いているかを特定するために、基準点が設定されている。図7に示した飛行艇(オブジェクト番号ob1 )については、機体先頭部に設けられた基準点p1と、左右の尾翼の後端にそれぞれ設けられた基準点p2、p3の、合計3つの基準点が設けられている。このように、最低3つの基準点が設けられていれば、三次元空間内でのオブジェクトの位置および向きを特定することができる。もちろん、基準点の個数は3つに限らず、より多数の基準点を設けておくこととしても良い。図9に示したポリゴンデータには、これら基準点のXYZ座標値が設定されている。尚、基準点は、必ずしも全てのオブジェクトに設けられている必要はない。この点については、後ほど詳しく説明する。
【0053】
以上に説明したように、本実施例の画像出力システムを構成するゲーム機100では、全てのオブジェクトにオブジェクト番号が付与されており、オブジェクトの表面形状はポリゴンの頂点座標を示すポリゴンデータによって表現されている。そして、オブジェクト番号からオブジェクトテーブルを引くことによって対応するポリゴンデータの先頭アドレスを取得すれば、メインメモリ110の該当アドレス以降に書き込まれているデータを読み出すことによって、オブジェクトの三次元的な形状を表した頂点座標を取得することが可能となっている。ゲーム機100のモニタ150に表示するための画像データは、このようにして取得した三次元形状を示すポリゴンデータに、後述する処理を施すことによって生成されている。
【0054】
尚、図8に例示したオブジェクトテーブルでは、ポリゴンデータの先頭アドレス、およびオブジェクトを構成するポリゴン数の2つの項目だけが、オブジェクト番号に対応付けて設定されているが、これら以外の項目も設定することとしても良い。例えば、オブジェクトを構成するポリゴンのタイプ、すなわちポリゴンが何角形であるかを示すデータや、ポリゴンに基準点が設けられているか否か、更には基準点の個数を示すデータなどを、オブジェクト番号に対応付けて設定しておくことも可能である。
【0055】
図10は、本実施例の画像出力システムを構成するゲーム機100が、ゲーム中の画面をモニタ150に表示する処理の概要を示したフローチャートである。かかる処理は、CPU101を中心として、メインメモリ110、GTE112、フレームバッファ114、GPU116などが協動しながら実行する処理である。以下、フローチャートに従って説明する。
【0056】
ゲーム画面表示処理を開始すると、CPU101は、コントローラ102からの入力があったか否かを判断する(ステップS10)。前述したように、ゲーム中は、ゲーム機100に対する操作は専らコントローラ102によって行われるので、先ず初めにコントローラ102からの操作入力があったか否かを判断するのである。そして、入力がなかった場合は(ステップS10:no)、フレームバッファ114に記憶されている画像データをモニタ150に出力して、画面の表示を更新する処理(画面更新処理)を行う(ステップS50)。フレームバッファ114には、モニタ150に表示すべき画像データが生成されて記憶されている。画像データを生成してフレームバッファ114に記憶するための処理、およびフレームバッファ114に記憶されている画像データをモニタ150に出力する画面更新処理の内容については後述する。一方、コントローラ102からの入力があったと判断された場合には(ステップS10:yes)、コントローラ102による操作の内容をモニタ150の画面に反映させるべく、後述する一連の処理を行う。
【0057】
コントローラ102からの入力が検出されると、コントローラ102によって操作されたオブジェクトを、ゲームの舞台として設定されている三次元空間内で、操作に応じた距離および方向に移動させる処理を行う(ステップS20)。一例として、コントローラ102による操作が、メインキャラクタである飛行艇ob1 を前進させるものであった場合について説明する。前述したように飛行艇ob1 は、ゲーム機100の内部では複数のポリゴンによって表現されており(図7参照)、各ポリゴンの頂点座標はポリゴンデータに設定されている(図9参照)。また、ポリゴンデータが記憶されているメモリ領域の先頭アドレスは、オブジェクトテーブルを参照することによって取得することができる。
【0058】
そこで、メインキャラクタである飛行艇ob1 を前進させる場合は、先ずオブジェクトテーブルを参照して、飛行艇(オブジェクト番号ob1 )に対応するポリゴンデータの先頭アドレスを取得する。次いで、メインメモリ110上の取得したアドレスを先頭とするメモリ領域に記憶されているポリゴンデータを読み出すことによって、各ポリゴンを構成する頂点座標を取得する。こうして得られた頂点座標は、ゲームの舞台として設定された三次元空間内において、現時点での飛行艇ob1 の位置を表す座標となっている。
【0059】
この点について、若干補足して説明する。記憶ディスク105には、各オブジェクトについてのポリゴンデータの初期値が記憶されている。ゲームの開始時には、初期値のポリゴンデータが、記憶ディスク105から読み込まれてメインメモリ110に記憶されるとともに、ポリゴンデータを記憶した先頭アドレス値が、オブジェクトテーブルに設定される。そして、ゲームの進行に伴って、オブジェクトが移動、回転、あるいは変形すると、後述する処理によって、メインメモリ110に記憶されているポリゴンデータの内容が更新されていく。従って、オブジェクトテーブルを参照して先頭アドレスを取得すれば、各オブジェクトの現時点での頂点座標を読み出すことが可能となっているのである。
【0060】
ここでは、飛行艇ob1 が前進するように、コントローラ102が操作されたものとしているから、図10に示したゲーム画面表示処理のS20では、オブジェクトテーブルを参照することにより、現在の飛行艇ob1 の位置を示すポリゴンデータをメインメモリ110から取得する。次いで、コントローラ102の操作量から、三次元空間内で飛行艇ob1 を移動させる向きと移動量とを決定し、移動後の飛行艇ob1 の座標値を算出する。かかる演算は、CPU101の制御の下でGTE112によって高速に実行される。具体的には、CPU101は飛行艇ob1 の移動方向および移動量を決定すると、ポリゴンデータの先頭アドレスの値と共にGTE112に供給する。GTE112は、供給された先頭アドレスに基づいて飛行艇ob1 のポリゴンデータを読み出した後、このポリゴンデータの頂点座標に対して座標変換を行うことにより、移動後の頂点座標を算出する。こうして得られた変換後の頂点座標によって、メインメモリ110のポリゴンデータを更新する。以上では、メインキャラクタである飛行艇ob1 を前進させる場合について説明したが、コントローラ102によって他のオブジェクトが操作された場合は、操作されたオブジェクトについて同様の処理が実行される。この結果、メインメモリ110に記憶されている各オブジェクトのポリゴンデータには、常に最新のオブジェクトの座標値が記憶されていることになる。
【0061】
このようにして、コントローラ102の操作をオブジェクト位置に反映させたら、各オブジェクトのポリゴンデータから二次元画像のデータを生成する処理(レンダリング処理)を開始する(ステップS30)。レンダリング処理では、ポリゴンデータによって表現された三次元的なオブジェクトを、モニタ150の画面に相当する平面上に投影するような処理を行うことによって、三次元的なオブジェクトから二次元的な画像を生成する。
【0062】
図11は、レンダリング処理の概要を示した説明図である。図11では、サイコロ形状のオブジェクトにレンダリング処理を施すことにより、二次元的な画像を生成する様子が示されている。レンダリング処理に際しては、先ず初めに、オブジェクトを観察するための視点Qを設定し、次いで、オブジェクトと視点Qとの間に、モニタ150の画面に相当する投影面Rを設定する。そして、オブジェクトの表面から選択した任意の点と視点Qとを直線で結び、この直線が投影面Rと交差する交点を決定する。例えば、図11に示したように、オブジェクト上のa点を選択したとすると、a点と視点Qとを結ぶ直線が投影面Rと交わる交点としてRa点を決めることができる。ここで、周知のように光は直進する性質を有するから、a点から出て視点Qに向かう光は、投影面R上のRa点に像を結ぶことになる。換言すれば、投影面R上のRa点は、オブジェクト上のa点が投影される点と考えることができる。従って、オブジェクトの表面の全ての点について、このような操作を行えば、投影面R上に投影されたオブジェクトの二次元像を得ることができる。
【0063】
もっとも、前述したようにオブジェクトはポリゴンによって表現されているから、オブジェクト表面の全ての点についてこうした操作を行う必要はなく、ポリゴンの頂点座標についてのみ実行すればよい。例えば、図11に示すように、オブジェクト表面のb点およびc点が、投影面R上のRb点、Rc点にそれぞれ投影されたものとする。この場合、オブジェクト上のa点、b点、c点を頂点とする三角形のポリゴンは、投影面R上では、Ra点、Rb点、Rc点を頂点とする三角形の領域に投影されるものと考えて良い。また、オブジェクト上のポリゴンが例えば赤色であったとすると、このポリゴンが投影面R上に投影された三角形の領域も赤色になると考えて良い。すなわち、オブジェクト上のポリゴンが有するテクスチャ番号は、投影面R上に投影された領域にも引き継がれると考えることができる。
【0064】
更に、レンダリング処理では、いわゆる陰面消去と呼ばれる処理も行われる。陰面消去とは、オブジェクト表面の中で、他の表面の陰になっている部分を消去する処理である。例えば、図11に示した例では、オブジェクト表面のb点、d点、e点を頂点とするポリゴンは、視点Qから見てオブジェクトの裏側にあり、全体が他の表面の陰になっているため投影面R上に像を結ぶことはない。そこで、このようなポリゴンについては、投影面R上に投影像が表示されないようにするのである。尚、オブジェクトの形状および視点Qの設定によっては、あるポリゴンの一部の領域だけが他の表面の陰になる場合もある。このような場合は、そのポリゴンの陰になっている部分だけの表示が省略されて、陰になっていない部分についてだけ、投影像が表示されることになる。
【0065】
このように、レンダリング処理では、オブジェクトを構成するポリゴンの頂点を投影面Rに投影したときの座標値を算出する処理が行われる。このような座標値の算出は、比較的簡単に行うことができる。図12(a)は、オブジェクト上の座標点(X,Y,Z)を投影して得られる投影面R上の座標値(U,V)を求める計算式を示した説明図である。ここで、図12(a)中のα、β、γ、δは、視点Qから投影面R、あるいはオブジェクトまでの距離などによって定まる係数である。あるいは、簡易的には、図12(b)に示すように、除算を含まない計算式を用いることもできる。ここで、図12(b)中のε、ζ、η、θ、ι、κは、それぞれ視点Qから投影面R、あるいはオブジェクトまでの距離などによって定まる係数である。
【0066】
また、詳細な説明は省略するが、レンダリング処理では、三次元空間内の予め設定された位置に光源を置いて、オブジェクト表面に陰影を付けるシェーディングと呼ばれる処理や、遠近感を強調するために、遠方にある部分ほど輝度を低下させたり、投影像をぼかす処理などが行われることもある。こうした一連の処理からなるレンダリング処理は、GTE112がCPU101からの命令を受け取って、メインメモリ110に記憶されているポリゴンデータに対して所定の演算を実行し、得られた結果を用いて、メモリ上のポリゴンデータを更新することによって行われる。そして、モニタ150の画面に現れる全てのオブジェクトについて、以上のような処理を行ったら、図10のステップS30に示したレンダリング処理を終了する。
【0067】
上述したレンダリング処理に続いて、ゲーム機100のCPU101は、描画処理を開始する(図10のステップS40)。描画処理とは、レンダリング処理によって生成された投影像から、画素毎に階調値が設定された画像データを生成する処理である。すなわち、レンダリング処理で得られた投影像は、ポリゴンが投影された多角形の頂点の座標と、その多角形に付与すべきテクスチャ番号とを用いた形式で表現されている。これに対して、モニタ150上で表示可能な画像データは、画像を画素と呼ばれる微細な領域に細分し、画素毎に階調データ(通常は、輝度を表すデータ)を設定した形式で表現されている。各画素に1種類の輝度データを設定した場合には、モノクロ画像の画像データとなり、光の三原色を構成するRGB各色の輝度データを設定した場合には、カラー画像の画像データとなる。尚、RGB各色の輝度データの代わりに、明度に対応する階調データと、色差に対応する2種類の階調データを用いてカラー画像を表現することも可能である。いずれにしても、レンダリング処理によって得られた投影像を表すデータは、そのままではモニタ150上に表示することができないので、モニタ150で表示可能なデータ形式に変換する処理を行う。このような処理が描画処理と呼ばれる処理である。また、図5を用いて前述したように、画面に二次元画像が嵌め込まれている場合は、描画処理の中で二次元画像のデータを嵌め込んでやればよい。
【0068】
描画処理を開始すると、ゲーム機100のCPU101は、GPU116に向かって描画命令を出力する。この描画命令を受けて、GPU116が画像データを生成してフレームバッファ114に記憶することによって描画処理が行われる。
【0069】
図13は、描画命令によって描画しようとする画像、すなわち、前述したレンダリング処理によって生成された投影像を、概念的に示した説明図である。また、図14は、このような画像を描画するために、CPU101からGPU116に向かって出力される描画命令のデータ構造を概念的に示した説明図である。先ず、図13を参照しながら、描画の対象となる投影像について説明する。描画の対象となる投影像は、前述したように、オブジェクトを構成するポリゴンを投影面R上に投影することによって得られた二次元画像である。本実施例では、オブジェクトは全て三角形のポリゴンを用いて構成されているものとしているから、原則として全てのポリゴンが、三角形の画像として投影面R上に投影される。尚、ポリゴンとは、前述したようにオブジェクトを構成する平面多角形を指しており、ポリゴンが投影面Rに投影された多角形は、厳密にはポリゴンとは異なるものである。しかし、以下では説明の便宜から、このようなポリゴンの投影像も、ポリゴンと呼ぶことがあるものとする。また、特にこれらを区別する場合は、「オブジェクトを構成するポリゴン」、および「投影像を構成するポリゴン」などと称することがあるものとする。
【0070】
図13に示されている投影像は、ポリゴン1、ポリゴン2、ポリゴン3の3つのポリゴンから構成されている。また、投影像がいずれも三角形のポリゴンによって構成されているのは、オブジェクトを構成するポリゴンが全て三角形のポリゴンによって構成されており、これら三角形のポリゴンを投影面R上に投影すると三角形の投影像が得られることに対応したものである。そして、図11を用いて前述したように、これら投影像を構成するポリゴンには、オブジェクトを構成するポリゴンと同じテクスチャ番号が付与されている。
【0071】
このような投影像を描画する場合、CPU101は図14に示すようなデータ構造の描画命令を出力する。図示されているように描画命令は、「CODE」と、テクスチャ番号と、投影面R上での頂点の座標値とを一組とするデータが、投影像を構成するポリゴン毎に設定された構造となっている。ここで、「CODE」は、この命令が描画命令であることを表すとともに、描画の対象としているポリゴンの形状を指定するデータとなっている。すなわち、オブジェクトを構成するポリゴンは、三角形に限らず、四角形や五角形などのポリゴンが使用される場合もあり、これに伴って投影像を構成するポリゴンの形状も変わってくる。また、オブジェクトのポリゴンが三角形であったとしても、一部が他のポリゴンの陰になった場合などには投影面Rの上のポリゴンを、例えば四角形のポリゴンとして扱うことも可能である。このようなことを考慮して、描画命令では、ポリゴン毎にポリゴンの形状を指定可能となっているのである。
【0072】
描画命令には、「CODE」に続いて、テクスチャ番号が設定されている。このテクスチャ番号は、投影像を構成するポリゴンに付与されているテクスチャ番号であり、ほとんどの場合は、オブジェクトを構成するポリゴンに付与されたテクスチャ番号と同じものとなる。尚、テクスチャ番号の代わりに、ポリゴンに付与すべき色情報(例えば、R,G,B各色の階調値)を設定しておくことも可能である。
【0073】
テクスチャ番号に続いて、ポリゴンを構成する頂点の投影面R上での座標値が設定されている。頂点座標の個数は上述した「CODE」によって決定される。例えば、「CODE」においてポリゴンの形状が三角形と指定されている場合は、3つの頂点座標が設定され、四角形のポリゴンと指定されている場合は、4つの頂点座標が設定されることになる。描画命令は、このような「CODE」、テクスチャ番号、頂点座標を一組とするデータが、投影像を構成するポリゴン毎に設定されたデータ構造となっている。
【0074】
図14に例示した描画命令では、描画の対象としている投影像が、ポリゴン1ないしポリゴン3の3つのポリゴンから構成されていることと対応して、「CODE」、テクスチャ番号、頂点座標からなる三組のデータが設定されている。すなわち、ポリゴン1については、「CODE」およびテクスチャ番号に続いて、ポリゴン1を構成する3つの頂点A、B、Cの座標値が設定されている。また、ポリゴン2については、「CODE」およびテクスチャ番号に続いて、ポリゴン2を構成する3つの頂点B、C、Dの座標値が設定され、ポリゴン3については、「CODE」、テクスチャ番号に続いて、ポリゴン3を構成する3つの頂点C、D、Eの座標値が設定されている。これらポリゴンの頂点座標およびテクスチャ番号は、前述したレンダリング処理の中でGTE112によって生成された後、メインメモリ110に記憶されている。CPU101は、メインメモリ110に記憶されているデータの中から、モニタ150の画面上に表示すべき全てのオブジェクトについて、これらのデータを読み出すことにより、図14に示すようなデータ構造の描画命令を生成してGPU116に供給する。
【0075】
GPU116は、このような描画命令を受け取ると、各頂点を結んだ多角形の内部を、テクスチャ番号が示す色彩あるいは模様で塗り潰した二次元画像に展開する。そして、得られた二次元画像を、画像を構成する画素毎に階調データが設定された表現形式のデータに変換して、画像データとしてフレームバッファ114に記憶する。この結果、投影面R上でのポリゴンの頂点座標と、ポリゴンのテクスチャ番号とによって表現された投影像が、モニタ150で表示可能なデータ形式の画像データに変換されて、フレームバッファ114に記憶されたことになる。尚、本実施例の画像出力システムを構成するゲーム機100では、R,G,B各色の階調値が画素毎に設定された画像データを生成するものとする。モニタ150の画面に現れる全ての投影像について、以上のような処理を行ったら、図10のステップS40に示した描画処理を終了する。
【0076】
描画処理を終了すると、今度は、フレームバッファ114上に得られた画像データをモニタ150に出力して、モニタ150の画面を更新する処理を行う(ステップS50)。すなわち、画面解像度や、インターレースあるいはノンインターレースと言った走査方式など、モニタ150の仕様に合わせて、フレームバッファ114から画像データを読み出してビデオ信号としてモニタ150に供給する。こうすることで、フレームバッファ114に展開した二次元画像をモニタ150の画面に表示させることができる。
【0077】
また、モニタ150の表示を少なくとも1秒間に24回以上の頻度で更新してやれば、人間の網膜が有する残像現象により、あたかも連続して動いているかのような画像を表示することができる。本実施例の画像出力システムを構成するゲーム機100では、図10に示したゲーム画面表示処理を1秒間に30回程度の頻度で実行して画面の表示を更新することで、あたかもモニタ150の画面内で飛行艇ob1 などの各種オブジェクトが連続して動いているかのように表示することが可能となっている。そして、このような高速な処理を可能とするために、ゲーム機100では、座標変換を始めとする各種の演算を高速に実行可能なGTE112や、演算に用いる大量のデータを高速に読み書き可能なメインメモリ110、CPU101から受け取った描画命令に基づいて画像データを迅速に生成するGPU116、更には、生成した画像データを高速に記憶するとともにモニタ150に高速に出力可能なフレームバッファ114などが搭載されている。
【0078】
もっとも、処理対象とするポリゴン数があまりに多くなると、図10に示したゲーム画面表示処理を、1秒間に30回程度の頻度で実行することは困難となる。そこで、飛行艇ob1 を始めとする各種のオブジェクトは、ポリゴン数があまり多くならないように、若干大きめのポリゴンによって構成されている。前述したようにポリゴンは平面多角形なので、ポリゴンが大きくなると、オブジェクトの表面がゴツゴツしてしまうという弊害がある。しかし、幸いにも、ゲームの画面ではオブジェクトは動いていることが多く、加えて、モニタ150は写真の様には高い描画力を有していないため、オブジェクト表面がゴツゴツしていることが目立つことはなく、従って、ゲームの臨場感を損なってしまうといった弊害が生じることはない。
【0079】
しかし、モニタ150の画面を印刷装置で印刷すると、こうした状況は一変することがある。すなわち、印刷して得られる画像は静止画像であることに加えて、近年の印刷装置は写真に迫る高い描画力を有していることから、印刷画像を見ればオブジェクトの表面がゴツゴツしていることがハッキリと分かってしまうことがある。そして、このような印刷画像を見てしまった後では、たとえゲーム中のモニタ150に表示されたオブジェクトでさえも、表面がゴツゴツしている様に見えてしまい、ゲームの臨場感が大きく損なわれてしまう畏れも生じる。これに対して本実施例の画像出力装置を構成するゲーム機100では、モニタ150の画面を印刷装置で出力した場合でも、あたかも実物を写真で撮影したかのような、鮮明な画像を出力することが可能となっている。以下では、こうしたことを可能とする処理について詳しく説明する。
【0080】
C.画像印刷処理の概要 :
図15は、本実施例のゲーム機100からカラープリンタ200に画像データを供給することによって画像を印刷する処理(画像印刷処理)の流れを示すフローチャートである。以下、フローチャートに従って、画像印刷処理について説明する。
【0081】
ゲーム機100のCPU101は、コントローラ102に設けられた所定の印刷ボタンが押されたことを検出すると、割り込みを発生させて、図15に示す画像印刷処理を開始する。尚、割り込みを発生させると、それまでCPU101が行っていた処理は一旦中断され、これに伴ってゲームの進行も、画像印刷処理を終了するまで中断されることになる。
【0082】
画像印刷処理を開始すると、先ず初めにCPU101は、コントローラ102の印刷ボタンが押された時点でモニタ150に表示されていた画像の、元となったポリゴンデータを取得する(ステップS100)。すなわち、前述したように、モニタ150に表示される画像は、オブジェクトを投影面Rに投影して得られた画像であり、オブジェクトを構成するポリゴンの頂点の座標値はポリゴンデータとして、メインメモリ110に記憶されている。そこで、ステップS100では、コントローラ102の印刷ボタンが押された時点でモニタ150に表示されている各オブジェクトについて、オブジェクトのポリゴンデータを取得する。
【0083】
次いで、取得したポリゴンデータについて、精密ポリゴンデータが記憶されているか否かを判断する(ステップS102)。ここで、精密ポリゴンデータとは、前述したゲーム画面表示処理で用いたポリゴンよりも小さなポリゴンによって、オブジェクトの三次元形状を表したデータである。図16は、メインキャラクタである飛行艇ob1 の三次元的な形状が小さなポリゴンによって表現されている様子を概念的に示した説明図である。精密ポリゴンデータは、このようなポリゴンを構成する各頂点の三次元座標値によって、オブジェクトの表面形状を表現したデータである。
【0084】
また、精密ポリゴンデータにも、図7および図9に示した通常のポリゴンデータと同様に、複数(本実施例では3つ)の基準点が設けられている。これら基準点は、精密ポリゴンデータの場合でも、通常のポリゴンデータの場合でも、オブジェクトに対する位置関係では同じ位置に設けられている。例えば、図7に示したように、飛行艇ob1 の通常のポリゴンデータでは、機体の先端と、左右の尾翼の後端とに、それぞれ基準点p1、p2、p3が設けられている。これと同様に、飛行艇ob1 の精密ポリゴンデータでも、機体先端と、左右の尾翼の後端とに、それぞれ基準点p1、p2、p3が設けられている。このように、精密ポリゴンデータが存在するオブジェクトについては、通常のポリゴンデータおよび精密ポリゴンデータのそれぞれについて、オブジェクトに対して同じ位置に基準点が設けられている。逆に言えば、精密ポリゴンデータが存在しないオブジェクトについては、オブジェクトデータに必ずしも基準点が設定されている必要はない。
【0085】
図7と図16とを比較すれば、ゲーム画面表示処理で用いたポリゴンデータと比べて、精密ポリゴンデータでは小さなポリゴンが用いられていることが分かる。また、オブジェクト表面の曲率が大きい(曲率半径が小さい)部分ほど、小さなポリゴンによって構成されていることが分かる。このように、小さなポリゴンを用いれば、オブジェクトの形状をより正確に表現することができ、表面の曲率が大きな部分でも、見る者にゴツゴツした印象を与えることがない。
【0086】
このような精密ポリゴンデータが存在するか否かは、精密ポリゴンデータの有無が予め設定されたテーブル(精密ポリゴンデータテーブル)を参照することによって判断することができる。図17は、精密ポリゴンデータの有無を判断するために参照されるテーブルを概念的に示した説明図である。図示されているように、精密ポリゴンデータテーブルには、精密ポリゴンデータが存在するオブジェクトのオブジェクト番号と、ポリゴン数とが設定されている。従って、精密ポリゴンデータテーブルを参照してオブジェクト番号が設定されていれば、そのオブジェクトについては精密ポリゴンデータが存在すると判断することができる。逆に、精密ポリゴンデータテーブルにオブジェクト番号が設定されていなければ、そのオブジェクトについては、精密ポリゴンデータは存在しないと判断することができる。
【0087】
尚、図8を用いて前述したオブジェクトテーブルには、全てのオブジェクトについて、固有のオブジェクト番号と、ポリゴンデータの先頭アドレスとが設定されていた。これに対して精密ポリゴンデータテーブルでは、複数のオブジェクト番号に対して同じ先頭アドレスが設定される場合がある。例えば、図4に示したように、オブジェクトob4 〜ob9 の6つのオブジェクトは何れも円盤を表しており、これら円盤は同じ形状となっている。このような場合、精密ポリゴンデータテーブルには、図17に示すように、オブジェクト番号ob4 〜ob9 の6つのオブジェクトについては、同じ先頭アドレスおよびポリゴン数が設定される。このように、精密ポリゴンデータテーブルでは、異なるオブジェクト番号に対しても、同じ先頭アドレスおよびポリゴン数が設定されることがある理由については、後述する。
【0088】
ステップS102において、精密ポリゴンデータが存在すると判断されたオブジェクトについては、ステップS100で先に取得しておいたポリゴンデータを、基準点を一致させた状態で、精密ポリゴンデータに差し替える処理を行う(ステップS104)。以下、この処理の内容について詳しく説明する。先ず、精密ポリゴンデータテーブルに設定されている先頭アドレスに基づいて、精密ポリゴンデータを読み出し、メインメモリ110の連続するアドレスに記憶する。ここでは、メインメモリ110上のアドレス値Appd 以降の連続した領域に精密ポリゴンデータが記憶されたものとする。
【0089】
次いで、メインメモリ110のアドレスAppd 以降のメモリ領域に記憶した精密ポリゴンデータに対して、オブジェクトを移動あるいは回転させる座標変換を行うことにより、精密ポリゴンデータの基準点の座標を、ステップS100で取得しておいた通常のポリゴンデータの基準点の座標に一致させる。このような座標変換は、図17に示した精密ポリゴンデータテーブルの先頭アドレスで示されているデータに対して行うのではなく、この精密ポリゴンデータを読み出してメインメモリ110のアドレスAppd 以降に展開したデータに対して実行する。そして、精密ポリゴンデータの基準点の座標を、通常のポリゴンデータの基準点の座標と一致させたら、メインメモリ110上で、この精密ポリゴンデータが記憶されているメモリ領域の先頭アドレスAppd および精密ポリゴンデータを構成するポリゴン数によって、図8を用いて前述したオブジェクトテーブルの先頭アドレスおよびポリゴン数を書き換えてやる。このようにオブジェクトテーブルに設定されている先頭アドレスおよびポリゴン数を書き換えておけば、続いて実行するレンダリング処理および描画処理においては、通常のポリゴンデータではなく、精密ポリゴンデータを参照することになる。図15のステップS104において、ポリゴンデータを精密ポリゴンデータで差し替える処理とは、具体的には、このようにオブジェクトテーブルに設定されている先頭アドレスおよびポリゴン数を、位置合わせした精密ポリゴンデータの先頭アドレスおよびポリゴン数に書き換える処理のことである。
【0090】
ここで、図17に示したように、精密ポリゴンデータテーブルでは、異なるオブジェクト番号に対しても、同じ先頭アドレスおよびポリゴン数が設定されることがある理由について説明する。上述したように、精密ポリゴンデータが存在するオブジェクトについては、精密ポリゴンデータを読み込んだ後、基準点の座標が通常のポリゴンデータの基準点の座標に一致するように、精密ポリゴンデータを移動あるいは回転させる。ここで、異なるオブジェクトは必ず異なる三次元座標値を持っているから、たとえ同じ精密ポリゴンデータを読み込んだ場合でも、移動あるいは回転後は、異なった精密ポリゴンデータとなっている。従って、オブジェクト毎にメインメモリ110の異なる領域でこうした操作を行っておけば、元の精密ポリゴンデータは同じデータを使用することが可能であり、このため、精密ポリゴンデータテーブルでは、同じ形状のオブジェクトについては、同じ先頭アドレスおよびポリゴン数が設定されているのである。
【0091】
ステップS104の処理では、精密ポリゴンデータが存在するオブジェクトについて、このようにポリゴンデータを精密ポリゴンデータで差し替える処理を行う。一方、精密ポリゴンデータの存在しないオブジェクトについては、このような処理はスキップすればよい。
【0092】
次いで、画像の撮影条件を設定する処理を開始する(ステップS106)。撮影条件の設定は、ゲーム機100の操作者が、モニタ150に表示された画面を確認しながら行うことができる。図18は、画像の撮影条件を設定するための画面が、モニタ150に表示されている様子を例示した説明図である。図示されているように、撮影条件を設定する画面のほぼ中央には、印刷ボタンを押したときにモニタ150に表示されていた画面を表示するモニタ領域151が設けられている。また、モニタ領域151の周辺には、焦点距離や、絞り、焦点を合わせる位置などを設定するボタンが設けられている。本実施例のゲーム機100では、単にモニタ150に表示されている画面を印刷するのでなく、これらの項目を設定することで、あたかも仮想的なカメラを操作して写真を撮影しているかのようにして、モニタ150上の画像を印刷することが可能となっている。
【0093】
焦点距離の設定は、モニタ領域151の右側に設けられたツマミ153を上下に動かすことで、望遠から広角までの焦点距離を選択することによって行う。また、絞りの設定は、モニタ領域151の右下に設けられたツマミ154を上下に動かすことで、開放側から絞り側までの絞り値を選択することで行う。また、焦点を合わせる位置の設定は、コントローラ102の十字カーソルを操作しながら、モニタ領域151に表示されているカーソル152を、焦点を合わせたい位置まで移動した後、設定画面上の「焦点位置設定」と表示されたボタンを押すことによって設定することができる。こうした設定した撮影条件による効果は、モニタ領域151に表示されている画像に反映されるので、効果を確認しながら撮影条件を設定することができる。そして、所望の撮影条件が決まったら、設定画面上の「OK」と表示されたボタンを押すことによって、設定した撮影条件を確定することができる。図15に示した画像印刷処理のステップS106では、以上のようにして、各種の撮影条件を設定する処理を行う。
【0094】
撮影条件の設定に続いて、レンダリング処理および描画処理を開始する(ステップS108、およびステップS110)。前述したようにレンダリング処理とは、各オブジェクトのポリゴンデータから二次元画像のデータを生成する処理である。かかる処理は、図11を用いて前述したように、視点Qと各オブジェクトとの間に設定した投影面Rへの、各オブジェクトの投影像を算出することによって行うことができる。また、描画処理とは、レンダリング処理によって生成された投影像から、画素毎に階調値が設定された画像データを生成する処理である。図10を用いて前述したゲーム画面表示処理と同様に、レンダリング処理は、CPU101の制御の下でGTE112がオブジェクトテーブルを参照しながら実行し、得られた二次元画像のデータはメインメモリ110に記憶される。撮影条件設定処理で設定された内容は、レンダリング処理における視点Qおよび投影面Rの設定に反映される。また、視点Qに対して遠方あるいは近くにあるオブジェクトに対しては、絞りの設定に応じて、投影像をぼやかすようなフィルタを施すなどの特殊な操作も行われる。
【0095】
続いて行われる描画処理は、CPU101が出力した描画命令を受けてGPU116が実行し、得られた画像データはフレームバッファ114に記憶される。これらレンダリング処理および描画処理の詳細な内容については、ここでは説明を省略する。但し、精密ポリゴンデータが存在するオブジェクトについては、前述したステップS104においてオブジェクトテーブル(図8参照)が書き換えられていることから、コントローラ102の印刷ボタンを押したときにモニタ150に表示されていた通常のポリゴンデータではなく、精密ポリゴンデータに対してレンダリング処理および描画処理が実行される点が異なっている。
【0096】
ゲーム機100のCPU101は、レンダリング処理(ステップS108)および描画処理(ステップS110)に続いて、印刷条件設定処理を開始する(ステップS112)。印刷条件設定処理も、上述したステップS106の撮影条件設定処理と同様に、ゲーム機100の操作者が、モニタ150に表示された画面を確認しながら行うことができる。図19は、画像の印刷条件を設定するための画面が、モニタ150に表示されている様子を例示した説明図である。図示されているように、本実施例のゲーム機100では、印刷条件として、印刷に用いる用紙サイズ、用紙種類、および印刷に際しての印刷モードの3つの項目を設定することが可能となっている。用紙サイズ及び用紙種類の設定は、コントローラ102の十字カーソルを操作することにより、画面上に表示されたカーソル152を用いて用紙サイズを選択することによって行う。また、印刷モードについては、画面に表示されたツマミ158を「きれい」から「速い」までの間で動かすことによって設定することができる。また、これらの条件に加えて、印刷枚数や、いわゆる縁なし印刷を行うか否か、といった項目を設定可能としても良い。以上のようにして、印刷条件を設定したら、設定画面上の「OK」と表示されたボタンを押すことによって、設定した印刷条件を確定する。
【0097】
印刷条件を設定したら、ゲーム機100のCPU101は、フレームバッファ114に記憶されている画像データから印刷データを生成して、カラープリンタ200に出力する処理(印刷データ出力処理)を開始する(ステップS150)。
【0098】
図20は、印刷データ出力処理の流れを示したフローチャートである。印刷データ出力処理を開始すると、CPU101は先ず初めに、解像度変換処理を開始する(ステップS152)。解像度変換処理とは、フレームバッファ114に記憶されている画像データの解像度を、カラープリンタ200が画像を印刷しようとする解像度(印刷解像度)に変換する処理である。また、印刷解像度は、モニタ150の画面を構成している画素数と、印刷しようとする画像の大きさ、すなわち前述した印刷条件設定処理(図15のステップS112)で設定した印刷用紙のサイズによって決定される。
【0099】
そして、画像データの解像度よりも印刷解像度の方が高い場合は、補間演算を行って画素間に新たな画像データを生成することにより解像度を増加させる。逆に、画像データの解像度の方が印刷解像度よりも高い場合は、読み込んだ画像データを一定の比率で間引くことによって解像度を低下させる。解像度変換処理では、フレームバッファ114上の画像データに対して、このような操作を行うことにより、描画処理によって生成した画像データの解像度を印刷解像度に変換する。
【0100】
こうして画像データの解像度を印刷解像度に変換したら、今度は、色変換処理を行う(ステップS154)。色変換処理とは、R,G,Bの階調値の組合せによって表現されているRGBカラー画像データを、印刷のために使用される各色の階調値の組合せによって表現された画像データに変換する処理である。前述したように、ゲーム機100では、画素毎にR,G,B各色の階調値が設定された画像データを生成しているのに対して、カラープリンタ200は、図2に示した様に、C,M,Y,Kの4色のインクを用いて画像を印刷する。そこで、RGB各色によって表現された画像データを、C,M,Y,Kの各色の階調値によって表現されたデータに変換する処理(色変換処理)を行うのである。
【0101】
色変換処理は、色変換テーブル(LUT)を参照することで、迅速に行うことができる。図21は、色変換処理のために参照されるLUTを概念的に示した説明図である。LUTとは、次のように考えれば、三次元の数表の一種と考えることができる。先ず、図21に示されているように、直交する3つの軸にR軸、G軸、B軸を取って色空間を考える。すると、全てのRGB画像データは、必ず色空間内の座標点に対応付けて表すことができる。このことから、R軸、G軸、B軸のそれぞれを細分して色空間内に多数の格子点を設定してやれば、それぞれの格子点はRGBの画像データを表していると考えることができ、RGBの画像データに対応するC,M,Y,K各色の階調値を、各格子点に対応付けてやることができる。LUTは、こうして色空間内に設けた格子点に、C,M,Y,K各色の階調値を対応付けて記憶した3次元の数表と考えることができる。LUTに記憶されているRGBの画像データとC,M,Y,K各色の階調データとの対応関係に基づいて色変換処理を行えば、RGB各色の階調値によって表現された画像データを、C,M,Y,K各色の階調データに迅速に変換することが可能となる。
【0102】
また、印刷用紙が違えば用紙の地色も違うし、インクの発色も異なっている。更には、インクの滲み方も印刷用紙の種類によって異なっており、滲み方の違いは印刷された画像の色合いに影響を与える。このことから、高画質な画像を印刷するためには、印刷用紙の種類に応じて適切なLUTを使い分けることが好ましい。そこで、ステップS154では、前述した印刷条件設定処理(図15のステップS112)で設定された印刷用紙の種類に応じて、予め定められたLUTを使い分けながら、色変換処理を行う。
【0103】
以上のようにして色変換処理を行ったら、ゲーム機100のCPU101は、ハーフトーン処理を開始する(ステップS156)。ハーフトーン処理とは、次のような処理である。色変換処理によって得られた画像データは、データ長を1バイトとすると、画素毎に、階調値0から階調値255までの値を取り得る階調データである。これに対してカラープリンタ200はドットを形成することによって画像を表示しているから、それぞれの画素については「ドットを形成する」か「ドットを形成しない」かのいずれかの状態しか取り得ない。このためカラープリンタ200では、画素毎の階調値を変化させる代わりに、所定領域内で形成されるドットの密度を変化させることによって中間階調を表現している。ハーフトーン処理とは、画像データの階調値に応じて適切な密度でドットが発生するように、画素毎にドット形成の有無を判断する処理である。
【0104】
階調値に応じた適切な密度でドットを発生させる手法としては、誤差拡散法やディザ法などの種々の手法を適用することができる。誤差拡散法は、ある画素についてドットの形成有無を判断したことでその画素に発生する階調表現の誤差を、周辺の画素に拡散するとともに、周囲から拡散されてきた誤差を解消するように、各画素についてのドット形成の有無を判断していく手法である。発生した誤差を周辺の各画素に拡散させる割合は、誤差拡散マトリックスに予め設定されている。また、ディザ法は、ディザマトリックスに設定されている閾値と画像データの階調値とを画素毎に比較して、画像データの方が大きい画素にはドットを形成すると判断し、逆に閾値の方が大きい画素についてはドットを形成しないと判断することで、各画素についてドット形成の有無を判断していく手法である。本実施例の印刷データ出力処理では、いずれの手法を用いることもできるが、ここではディザ法と呼ばれる手法を用いてハーフトーン処理を行うものとする。
【0105】
図22は、ディザ法で参照される一般的なディザマトリックスの一部を拡大して例示した説明図である。図示したマトリックスには、縦横それぞれ64画素、合計4096個の画素に、階調値0〜255の範囲から万遍なく選択された閾値が設定されている。ここで、閾値の階調値が0〜255の範囲から選択されているのは、本実施例では画像データが1バイトデータであり、画素に設定される階調値が0〜255の値を取り得ることに対応するものである。尚、ディザマトリックスの大きさは、図22に例示したように縦横64画素分に限られるものではなく、縦と横の画素数が異なるものも含めて種々の大きさとすることができる。
【0106】
図23は、ディザマトリックスを参照しながら、画素毎にドット形成の有無を判断している様子を概念的に示した説明図である。ドット形成有無の判断に際しては、先ず、判断の対象として着目している画素(着目画素)についての画像データの階調値と、ディザマトリックス中の対応する位置に記憶されている閾値とを比較する。図中に示した細い破線の矢印は、着目画素の階調値を、ディザマトリックス中の対応する位置に記憶されている閾値と比較していることを模式的に表したものである。そして、ディザマトリックスの閾値よりも着目画素の階調値の方が大きい場合には、その画素にはドットを形成するものと判断する。逆に、ディザマトリックスの閾値の方が大きい場合には、その画素にはドットを形成しないものと判断する。
【0107】
図23に示した例では、画像データの左上隅にある画素の画像データは階調値180であり、ディザマトリックス上でこの画素に対応する位置に記憶されている閾値は1である。従って、左上隅の画素については、画像データの階調値180の方がディザマトリックスの閾値1よりも大きいから、この画素にはドットを形成すると判断する。図23中に実線で示した矢印は、この画素にはドットを形成すると判断して、判断結果をメモリに書き込んでいる様子を模式的に表したものである。一方、この画素の右隣の画素については、画像データの階調値は130、ディザマトリックスの閾値は177であり、閾値の方が大きいので、この画素についてはドットを形成しないものと判断する。ディザ法では、このようにディザマトリックスを参照しながらドットを発生させる。
【0108】
図20に示した印刷データ出力処理のステップS156では、色変換処理によって変換されたC,M,Y,K各色の階調値毎に、以上のようにしてドット形成の有無を判断する処理を行う。
【0109】
以上のようにしてハーフトーン処理を終了すると、ゲーム機100のCPU101は、インターレース処理を開始する(ステップS158)。インターレース処理とは、ドットの形成有無による表現形式に変換された画像データを、ドットが実際に印刷用紙上に形成される順序を考慮しながら、カラープリンタ200に転送する順序に並べ替える処理である。ゲーム機100のCPU101は、インターレース処理を行って画像データを並べ替えた後、最終的に得られたデータを、GPU116からカラープリンタ200に印刷データとして出力する(ステップS160)。そして、全ての印刷データをカラープリンタ200に出力したら、図20に示す印刷データ出力処理を終了して、図15の画像印刷処理に復帰する。
【0110】
画像印刷処理では、印刷データ出力処理から復帰すると、ゲーム復帰処理を行う(ステップS114)。ゲーム復帰処理は、図15に示した画像印刷処理を終了して、ゲームを再開するための処理である。すなわち、上述した画像印刷処理は、前述したようにコントローラ102の印刷ボタンが押されると、ゲーム機100のCPU101が割り込みを発生させて、進行中のゲームを一旦、中断した状態で開始される。そこで、画像印刷処理の終了に先立って、CPU101は、プログラムカウンタや各種データを、ゲームの中断前の状態に復帰させて、ゲームを再開するための準備を行うのである。前述したように、精密ポリゴンデータが存在するオブジェクトについては、画像印刷処理の中でオブジェクトテーブルの設定値も書き換えられているので、これらについても、ゲーム復帰処理で元の設定値に戻されることになる。
【0111】
こうしてゲーム復帰処理を終了したら(ステップS114)、図15に示した画像印刷処理を終了する。プログラムカウンタを始めとする各種の変数およびデータは、ゲーム中断前の状態に戻っているので、中断したところからゲームを再開することが可能となる。
【0112】
一方、カラープリンタ200は、このようにしてGPU116から供給された印刷データに従って、印刷用紙上にドットを形成することにより画像を印刷する。すなわち、図2を用いて前述したように、キャリッジモータ230および紙送りモータ235を駆動することによってキャリッジ240の主走査および副走査を行い、これらの動きに合わせて印字ヘッド241を駆動してインク滴を吐出することによりインクドットを形成する。その結果、モニタ150の画面に表示されているものと、同じ場面の印刷画像が得られることになる。
【0113】
上述したように、画像印刷処理では精密ポリゴンデータから印刷データを生成しているため、印刷データではオブジェクトの表面が、曲面部分を含めて滑らかな表面として表現されている。従って、このような印刷データに基づいて得られた印刷画像では、オブジェクトの表面がゴツゴツすることがなく、あたかも実在する対象を写真で撮影したかのような印刷画像を得ることができる。また、ゲーム中は、大きめのポリゴンから生成されたポリゴンデータを用いているため、ゲーム中は画像を迅速に表示することが可能である。
【0114】
D.第1実施例のプリンタ情報表示処理 :
以上に説明したように、ゲーム機100にはカラープリンタ200が接続されており、ゲーム機100からカラープリンタ200に画像データを供給することで、モニタ150の画面に表示された画像を印刷することが可能となっている。もっとも、例えば画像の印刷中に、カラープリンタ200に搭載されているインクや印刷用紙が無くなってしまった場合などには、新たなインクカートリッジや印刷用紙の補充を促すために、これを報知する必要が生じる。このような場合、インク切れの発生や用紙切れの発生を表すコードデータをカラープリンタからゲーム機100に向かって出力し、ゲーム機100のモニタ150上に、コードデータに応じたメッセージを表示して報知するのが一般的である。
【0115】
しかし、これでは、カラープリンタから出力されたコードデータを解釈するためのデータを、ゲーム機100に予め記憶しておく必要がある。また、ゲーム機100が発売される時点で知られているプリンタであれば、予めデータを記憶しておくことも不可能ではないが、ゲーム機100の発売後に、新たな機能が搭載されたプリンタが開発されたり、あるいは新たなインク色を搭載したプリンタが開発された場合などには、これらプリンタから出力される全てのコードデータを解釈するためのデータを、予めゲーム機100に記憶しておくことはできない。こうした点に鑑みて、本実施例のゲーム機100では、次のような処理を行うことにより、プリンタの情報を表示することとしている。
【0116】
図24は、第1実施例のプリンタ情報表示処理に流れを示すフローチャートである。かかる処理は、ゲーム機100に搭載されたCPU101によって実行される処理である。図示されているように、プリンタ情報表示処理では、先ず初めに、カラープリンタ200から表示要求があったか否かを判断する(ステップS200)。すなわち、カラープリンタ200でインク切れや用紙切れが発生するなど、何らかの理由でプリンタの操作者に報知しなければならない事態が発生した場合には、カラープリンタ200から特別な制御コードが出力される。ゲーム機100のCPU101は、この制御コードを受け取ると、カラープリンタ200が何らかのメッセージの表示を要求しているものと判断する。尚、ここでは、便宜上、プリンタからの表示要求があったか否かをCPU101が常に監視しているものとして説明するが、必ずしも常に監視している必要はなく、カラープリンタ200から表示要求の制御コードが出力されると、これを受けて割り込みを発生させることによって、プリンタ状態表示処理を開始することとしても良い。
【0117】
プリンタから表示要求があったと判断された場合(ステップS200:yes)、ゲーム機100のCPU101は、モニタ150に、プリンタ情報表示画面を用意する(ステップS202)。図25は、モニタ150にプリンタ情報表示画面が表示された状態を示した説明図である。図示されているように、プリンタ情報表示画面には、「OK」ボタンと、「Cancel」ボタンの2つのボタンと、「プリンタ情報」という画面のタイトルとが表示されているが、プリンタ情報の内容が表示される領域(プリンタ情報表示領域)は、何も表示されていない空白の状態となっている。図25では、プリンタ情報表示領域は、斜線を付して表示されている。
【0118】
図25に示すようなプリンタ情報表示画面を表示すると、CPU101は、カラープリンタ200から出力されてきたデータを、プリンタ情報表示領域に表示する(ステップS204)。図26は、カラープリンタ200から出力されたデータが、プリンタ情報表示領域に表示された様子を示す説明図である。図示した例では、プリンタ情報表示領域には、文字のみが表示されている。従って、このような場合には、カラープリンタ200は、情報の表示を要求する制御コードに続いて、表示しようとする内容が記載されたテキストデータを出力すればよい。制御コードを受け取ったゲーム機100のCPU101は、図25に例示したプリンタ情報表示画面を用意した後、カラープリンタ200から受け取ったテキストデータをプリンタ情報表示領域に表示するだけで、図26に示すような画面がモニタ150に表示され、プリンタの情報を表示することができる。
【0119】
こうして、カラープリンタ200から受け取ったデータを、プリンタ情報表示領域に表示したら、モニタ150の画面上に「OK」と表示されたボタン(確認ボタン)が押されたことを確認し(ステップS206)、確認ボタンが押されたことが確認できたら(ステップS206:yes)、図26に示したプリンタ情報表示画面を閉鎖して(ステップS208)、図24のプリンタ情報表示処理を終了する。
【0120】
以上に説明したプリンタ情報表示処理では、予め用意されたプリンタ情報表示画面に、カラープリンタ200から供給されたデータをそのまま表示するだけで、カラープリンタ200の情報を適切に表示することができる。すなわち、カラープリンタ200から出力されるコードデータを解釈するためのデータを、ゲーム機100に予め記憶しておく必要がないので、どのようなプリンタが接続された場合でも、接続されたプリンタに対応した適切な内容の表示を行うことができる。
【0121】
例えば、カラープリンタに特別な色のインクが搭載されていて、そのインクが無くなった場合でも、ゲーム機100のCPU101は、単にプリンタ情報表示画面を用意して、カラープリンタ200から供給されたデータを表示するだけで、特殊なインクが無くなってしまったことを、プリンタの操作者に適切に認識させることができる。もちろん、カラープリンタ200には、画面に表示するためのデータを予め記憶しておく必要があり、そのための記憶容量が必要となるが、1機種分のデータを記憶すればよいので、僅かな容量で記憶することができる。また、たとえカラープリンタ200の仕向地が異なる場合でも、プリンタに記憶しておくデータを仕向地の言語で記述しておけば、ゲーム機100の側には何らの変更を加えずとも、プリンタの情報を適切に表示することができる。
【0122】
図27は、カラープリンタ200からのデータが英語で記述されていた場合を例示した説明図である。図示されているように、プリンタから出力されるデータが仕向地の言語で記述されていれば、ゲーム機100のCPU101は受け取ったデータを画面に表示するだけで、プリンタの情報を仕向地の言語で適切に表示することが可能となる。このように、本実施例のプリンタ情報表示処理によれば、ゲーム機100に接続されるプリンタが、どのような機種の、どのような仕向地のものであっても、ゲーム機100の側では何ら特別な対応をせずとも、プリンタが出力する情報を適切に表示することが可能である。
【0123】
また、本実施例のプリンタ情報表示処理によれば、カラープリンタ200が情報を表示する処理も極めて簡単な処理となる。すなわち、ゲーム機100に向かって表示要求を出力した後、予め記憶しておいたデータをゲーム機100に出力するだけで、モニタ150の画面に情報を表示することができる。更に、各プリンタには、そのプリンタの機種に対応するデータが記憶されているから、モニタ150に表示された内容は、必ずプリンタの機種に対応した適切な内容とすることができる。
【0124】
以上の説明では、カラープリンタ200からはテキストデータの形式でデータが出力されるものとしたが、カラープリンタ200から出力するデータはテキストデータに限らず、画像データを出力することも可能である。画像データのデータ形式は、例えば、ビットマップ形式や、GIFF形式、JPEG形式など、汎用的なデータ形式であれば、どのようなデータ形式で記述されていてもよい。
【0125】
図28は、プリンタ情報表示領域に、テキストデータと、画像データとが表示されている様子を概念的に示した説明図である。このような情報を表示する場合は、カラープリンタ200から出力されるデータに、テキストデータの形式で記述されていることを示す情報と、画像データの形式で記述されていることを示す情報とを組み込んでおけばよい。このようなデータ形式としては、いわゆるHTML文書の様な、マークアップ言語で記述されたデータを好適に用いることができる。そして、ゲーム機100では、受け取ったデータを画面に表示する際に、テキストデータの形式で記述されている部分はテキストの形態で表示し、画像データの形式で記述されている部分は画像の形態で表示してやれば良い。
【0126】
また、図28に例示されている画像には、接続されているカラープリンタ200の外観形状が表されており、更に給紙スイッチの位置が矢印によって示されている。プリンタの外観形状や、給紙スイッチの位置などはプリンタの機種によって異なっているが、本実施例のプリンタ情報表示処理では、カラープリンタ200からデータを供給しているために、ゲーム機100では、接続されているプリンタの機種を何ら識別することなく、適切な情報を表示することが可能である。
【0127】
更には、カラープリンタ200から、複数回に分けてデータを出力することとしても良い。図29は、カラープリンタ200から複数回に分けてデータを出力する態様を例示した説明図である。図示されているように、例えば、印刷を開始すると、先ず初めに、カラープリンタ200から図29(a)に示すような画像データを出力して、モニタ150の画面に表示する。次いで、画像の印刷がある程度進んだ段階で、図29(b)に示すような画像データを出力する。こうすれば、ゲーム機100では、単にカラープリンタ200から供給されたデータを表示しているだけで、カラープリンタ200における処理の進行状況に応じた表示を行うことが可能となる。
【0128】
更には、カラープリンタ200から音声データを出力してもよい。あるいは、テキストや、画像に、音声を組み合わせた状態で記述したデータを出力することとしても良い。カラープリンタ200から出力されるデータを、いわゆるHTMLなどのマークアップ言語で記述しておけば、テキスト、画像、音声など、データの記述形態に応じたタグを書き込むことで、これら形態を組み合わせて記述することが可能となる。
【0129】
E.第2実施例のプリンタ情報表示処理 :
以上に説明した第1実施例のプリンタ情報表示処理では、もっぱらプリンタからの表示要求に応じて、プリンタから供給されるデータを表示(音声データの場合は再生)していた。このように、ゲーム機100が受け身的に表示する場合は、表示の内容は、いきおいプリンタの動作状態に関するものになりがちである。しかし、ゲーム機100の側からプリンタに対して積極的にデータを要求して、得られたデータを表示することも可能である。以下では、このような第2実施例のプリンタ情報表示処理について説明する。
【0130】
図30は、第2実施例のプリンタ情報表示処理の流れを示すフローチャートである。かかる処理も、前述した第1実施例のプリンタ情報表示処理と同様に、ゲーム機100に搭載されたCPU101によって実行される処理である。以下、フローチャートに従って説明する。
【0131】
第2実施例のプリンタ情報表示処理は、例えばゲーム機100の操作者がコントローラ102に設けられた所定のボタンを押すと、ゲーム機100のCPU101が割り込みを発生させることによって開始される。尚、以下では、理解の便宜を図って具体的に説明するために、プリンタのヘルプ情報を表示する場合について説明する。
【0132】
図示されているように、第2実施例のプリンタ情報表示処理では、先ず初めに、プリンタヘルプ表示画面を用意する(ステップS300)。図31は、モニタ150にプリンタヘルプ表示画面が表示された状態を示した説明図である。図示されているように、プリンタヘルプ表示画面には、「戻る」ボタンと、「次へ」ボタンと、「閉じる」ボタンの3つのボタンと、「プリンタヘルプ」という画面のタイトルと、プリンタのヘルプ情報が表示される領域(プリンタヘルプ表示領域)とが設けられている。尚、図31では、プリンタヘルプ表示領域は、斜線を付して表示されている。
【0133】
ゲーム機100のCPU101は、このようなプリンタヘルプ画面を表示したら、カラープリンタ200に向かって、ヘルプデータを要求する制御コードを出力する(図30のステップS302)。カラープリンタ200は、ヘルプデータを要求する制御コードを受け取ると、予め記憶されているヘルプデータをゲーム機100に向かって出力する。このヘルプデータは、テキスト、画像、音声、あるいはこれらを組み合わせた形態で記述されて、カラープリンタ200に予め記憶されている。
【0134】
ゲーム機100のCPU101は、カラープリンタ200から出力されてきたヘルプデータを受け取ると、先に用意しておいたプリンタヘルプ表示領域に、受け取ったデータを表示する(ステップS304)。尚、データに音声データが含まれている場合は、音声データの再生も行う。図32は、このようにしてカラープリンタ200から出力されたヘルプデータが、プリンタヘルプ表示画面の所定の領域に表示されている様子を示した説明図である。カラープリンタ200から出力されたヘルプデータは、プリンタヘルプ表示領域では表示しきれないので、画面に設けられた「次へ」ボタン、あるいは「戻る」ボタンを押すことによって、表示領域を切り換えることができる。こうした機能は、ゲーム機100に搭載された画面表示機能(具体的には、ブラウザ)によって実現されている。図30に示した第2実施例のプリンタ情報表示処理のステップS304では、このように、カラープリンタ200から受け取ったヘルプデータの中から、指示された箇所のデータを読み出して、画面上に表示する処理を行う。
【0135】
そして、プリンタヘルプ画面に設けられた「閉じる」ボタンが押されたことが確認されたら(ステップS306:yes)、図32に示したプリンタヘルプ画面を閉鎖して(ステップS308)、図30に示した第2実施例のプリンタ情報表示処理を終了する。
【0136】
以上に説明した第2実施例のプリンタ情報表示処理においても、モニタ150の画面上に予め用意された領域に、カラープリンタ200から供給されたデータをそのまま表示するだけで、カラープリンタ200の情報を適切に表示することができる。従って、ゲーム機100に接続されるプリンタが、どのような機種の、どのような仕向地のものであっても、ゲーム機100の側では何ら特別な対応をせずとも、プリンタが出力する情報を適切に表示することが可能である。
【0137】
以上、各種の実施例について説明してきたが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。
【0138】
例えば、上述した各種実施例では、画像データを供給する機器は、ゲーム機100であるものとして説明した。しかし、上述した各種のプリンタ情報表示処理は、何ら高度な処理能力を必要とせずに実行することができるので、カラープリンタ200に画像データを供給するどのような機器であっても、極めて容易に実施することができる。例えば、デジタルカメラや、携帯電話など、モニタ画面を有する機器であれば、どのような機器でも適切に実行することが可能である。
【0139】
もちろん、プリンタに画像データを供給する機器が、コンピュータのような高度な処理能力を有する機器であっても構わない。このような場合も、画像データを供給する側では、どのようなプリンタが接続されているかを何ら意識することなく、プリンタが出力する情報を適切に表示することが可能となる。
【図面の簡単な説明】
【0140】
【図1】ゲーム機とカラープリンタとによって構成される本実施例の画像出力システムを示した説明図である。
【図2】本実施例の画像出力システムを構成するカラープリンタの概略構成を示す説明図である。
【図3】インク吐出用ヘッドにおけるインクジェットノズルの配列を示す説明図である。
【図4】モニタ上にゲーム中の画面が表示されている様子を例示した説明図である。
【図5】モニタの画面上で二次元画像がそのまま表示されている領域をハッチングを付して表した説明図である。
【図6】メインキャラクタである飛行艇の形状を示す斜視図である。
【図7】メインキャラクタの飛行艇の形状を細かな平面多角形によって表現した様子を概念的に示した説明図である。
【図8】画像出力システムを構成するゲーム機において各オブジェクトのポリゴンデータを管理するためのオブジェクトテーブルを概念的に示した説明図である。
【図9】オブジェクトの形状を示したポリゴンデータのデータ構造を示す説明図である。
【図10】画像出力システムを構成するゲーム機がゲーム中の画面をモニタに表示する処理の概要を示したフローチャートである。
【図11】レンダリング処理の概要を示した説明図である。
【図12】オブジェクトを構成するポリゴンの頂点座標を、二次元平面の座標点に投影する変換式を例示した説明図である。
【図13】レンダリング処理によって生成された投影像を概念的に示した説明図である。
【図14】レンダリング処理によって生成された画像を描画するために出力される描画命令のデータ構造を概念的に示した説明図である。
【図15】ゲーム機からカラープリンタに画像データを供給することによって画像を印刷する処理の流れを示すフローチャートである。
【図16】メインキャラクタである飛行艇の三次元的な形状が小さなポリゴンによって表現されている様子を概念的に示した説明図である。
【図17】精密ポリゴンデータの有無を判断するために参照されるテーブルを概念的に示した説明図である。
【図18】画像の撮影条件を設定するための画面がモニタに表示されている様子を例示した説明図である。
【図19】画像の印刷条件を設定するための画面がモニタに表示されている様子を例示した説明図である。
【図20】印刷データ出力処理の流れを示したフローチャートである。
【図21】色変換処理のために参照されるLUTを概念的に示した説明図である。
【図22】ディザ法で参照される一般的なディザマトリックスの一部を拡大して例示した説明図である。
【図23】ディザマトリックスを参照しながら画素毎にドット形成の有無を判断している様子を概念的に示した説明図である。
【図24】第1実施例のプリンタ情報表示処理の流れを示すフローチャートである。
【図25】モニタにプリンタ情報表示画面が表示された状態を示した説明図である。
【図26】カラープリンタから出力されたデータがプリンタ情報表示領域に表示された様子を示す説明図である。
【図27】カラープリンタからのデータが英語で記述されていた場合を例示した説明図である。
【図28】プリンタ情報表示領域にテキストデータと画像データとが表示されている様子を概念的に示した説明図である。
【図29】カラープリンタから複数回に分けてデータを出力する態様を例示した説明図である。
【図30】第2実施例のプリンタ情報表示処理の流れを示すフローチャートである。
【図31】モニタにプリンタヘルプ表示画面が表示された状態を示した説明図である。
【図32】カラープリンタから出力されたヘルプデータがプリンタヘルプ表示画面の所定の領域に表示されている様子を示した説明図である。
【符号の説明】
【0141】
100...ゲーム機、 101...CPU、 110...メインメモリ
112...GTE、 114...フレームバッファ、 116...GPU
150...モニタ、 200...カラープリンタ
【技術分野】
【0001】
この発明は、画像出力装置の操作に伴う情報を、該出力装置の操作者に伝達する技術に関する。
【背景技術】
【0002】
いわゆるインクジェットプリンタやレーザープリンタ等に代表される画像出力装置は、画像の表示速度や画質など、種々の面での改良が目覚ましく、このため、文字や図形などのような人工的な画像から写真のような自然画像まで、あらゆる画像の出力装置として使用されるようになっている。また、これに伴って画像出力装置には、例えばコンピュータやデジタルカメラ、更には携帯電話など、種々の機器が接続されて、これら画像データ供給装置から画像データが供給されるようになっている。
【0003】
一方、画像出力装置の動作状態(例えば、「データ受信中」や、「画像出力中」、「インク切れ」、「用紙切れ」など)を表示する場合には、動作状態に応じたコードデータを画像出力装置から出力することによって行うことが一般的である。また、コードデータでは、操作者が内容を理解することは困難であることから、画像出力装置から画像データ供給装置に向かってコードデータを供給し、画像データ供給装置がコードデータを解釈して表示態様を切り換える技術が提案されている(例えば、特許文献1)。あるいは、所定のボタンが押されると、コードデータが解釈されて対応するメッセージが表示されたり、読み上げられるようにすることで、操作者がコードデータの内容を容易に理解できるようにする技術も提案されている(例えば、特許文献2、特許文献3など)。
【0004】
【特許文献1】特開2002−236573号公報
【特許文献2】特開平1−147950号公報
【特許文献3】特開平4−23662号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、これら従来の技術では、画像出力装置から出力されるコードデータを解釈するための情報を、予め、画像データ供給装置に記憶しておかなければならないという問題がある。もちろん、コードデータを予め規格化しておけば、どのような画像出力装置から出力されるコードデータであっても同じように解釈することが可能となるが、例えば、画像出力装置に新たな機能や機構などが搭載された場合、これら機能や機構に拘わるコードデータは新たに追加されたものとなるので、単にコードデータを予め規格化しておくだけでは、このような新たに追加されたコードデータに対応することはできない。あるいは、画像出力装置から出力されるコードデータを解釈するための情報を、インターネットや各種記録媒体などから読み込むこととすれば、新たに追加されたコードデータであっても、これを適切に解釈して表示することが可能となるが、全ての画像データ供給装置がインターネットに接続可能なわけではなく、また記録媒体から必要なデータを読み込めるわけではない。
【0006】
更には、こうした問題は、画像出力装置の動作状態を表示する場合に限らず、例えば、画像出力装置の操作方法など、操作者に対して何らかの情報を伝達しようとする場合にも、同様に生じ得る。
【0007】
この発明は従来技術における上述した課題を解決するためになされたものであり、画像出力装置の操作に伴う情報を、該画像出力装置の操作者に、理解し易い形態で簡便に伝達することを可能とする技術の提供を目的とする。
【課題を解決するための手段】
【0008】
上述した課題の少なくとも一部を解決するために、本発明の画像出力システムは、次の構成を採用した。すなわち、
画像を出力する画像出力装置と、該画像出力装置に画像データを供給する画像データ供給装置とを備える画像出力システムにおいて、
前記画像出力装置には、該出力装置の操作者に対する情報を、文書、画像、または音声の少なくとも何れかの形態を含んで出力する情報出力手段が設けられており、
前記画像データ供給装置には、前記画像出力装置から出力された情報を、受け取った形態に従って再生する情報再生手段が設けられていることを特徴とする。
【0009】
かかる本発明の画像出力システムにおいては、画像出力装置の操作者に対する情報が、該画像出力装置から、文書、画像、または音声の少なくともいずれかの形態を含んだ態様で、画像データ供給装置に向かって出力される。そして、画像データ供給装置では、出力されてきた情報を、受け取った態様に従って再生する。すなわち、操作者に対する情報が、文書または画像の形態で画像出力装置から出力された場合には、受け取った情報を、文書または画像として表示する。また、画像出力装置から音声の形態で出力されてきた場合には、受け取った情報を音声として再生する。
【0010】
このように、操作者に対する情報を、画像出力装置から画像データ供給装置に向かって、文書、画像、音声など、操作者がそのまま理解可能な形態で出力しておけば、画像データ供給装置では画像出力装置から受け取った情報をそのまま再生するだけで、直ちに理解可能な形態で、操作者に情報を提供することが可能となる。このため、画像出力装置から受け取った情報を解釈するためのデータを、予め画像データ供給装置に記憶しておく必要がなく、どのような画像出力装置が接続された場合でも、適切な情報を、簡便に、操作者に提供することが可能となる。更に、画像データ供給装置にとっても、単に受け取った情報を表示あるいは再生するだけで良いので、画像データ供給装置の構成あるいは制御内容を簡素なものとすることができる。
【0011】
こうした画像出力システムにおいては、画像出力装置の動作状態を、操作者に対する情報として、該画像出力装置から画像データ供給装置に向かって出力することとしても良い。ここで、画像出力装置の動作状態としては、例えば、「画像データの受信中」や、「データ処理中」、「画像の出力中」といったステータス情報や、あるいは「用紙切れ」や、「通信異常の発生」といった何らかのエラー情報などとすることができる。
【0012】
操作者に対する情報として、画像出力装置の動作状態を提供するのであれば、画像データ供給装置の側では、供給された情報を再生するだけで足りることが多く、供給された情報を受けて画像データ供給装置の側で複雑な処理が必要となることが無いので好ましい。特に、本願の画像出力システムの利点の一つには、画像データ供給装置の構成あるいは制御を複雑化させることなく操作者に適切な情報を提供可能なことがあり、画像出力装置からの情報を受けて画像データ供給装置側で複雑な処理を行ったのでは、こうした利点が減殺されてしまう。この点、画像出力装置の動作状態であれば、画像データ供給装置の側では、受け取った情報の再生以外の処理を行ったとしても、複雑な処理が必要となることが無いので好適である。
【0013】
また、操作者に対する情報は、その情報が記述されている形態(例えば文書、画像、または音声など)を示す記述形態データとともに、画像出力装置から画像データ供給装置に向かって出力することとして、画像データ供給装置では、受け取った情報を、記述形態データに示された形態に従って再生することとしても良い。
【0014】
このように、操作者に対する情報を記述形態データとともに出力し、受け取った情報を記述形態データに従って再生することとすれば、操作者に対する情報の記述形態を柔軟に切り替えることができる。このため、例えば情報の内容に応じて、文字、画像、音声など適切な形態で、操作者に対する情報を提供することも可能となるので好ましい。
【0015】
また、操作者に対する情報を、いわゆるマークアップ言語によって記述することとしても良い。ここで、マークアップ言語とは、タグと呼ばれる特殊な文字列を埋め込ながら文章を記述することにより、文章の構造を表現可能な言語の総称であり、代表的なものとしては、SGML、HTML、XMLなどの仕様が知られている。また、文章の構造としては、論理的な構造や、見出しのような形式的な構造、字下げや字体のような装飾的な構造、画像や音声のようなデータの形態に関する構造など、種々の構造を表現することが可能である。
【0016】
マークアップ言語は、タグを用いることで、種々の構造を柔軟に且つ簡単に記述することが可能である。また、マークアップ言語で記述されたデータは、単純なプログラムによって適切に再生することが可能である。このため、画像出力装置の操作者に対する情報を、マークアップ言語で記述しておけば、簡便に且つ適切に、操作者に情報を提供することが可能となるので好ましい。
【0017】
また、画像出力装置の中には、操作者に必要な情報を提供するために、文書、画像、あるいは音声などのデータを再生する機能が搭載された装置も存在する。このような画像出力装置では、自らが再生して操作者に提供するための情報を、画像データ供給装置に出力することとしてもよい。
【0018】
こうすれば、画像出力装置は、自らが再生するための情報と、画像データ供給装置で再生するための情報とを二重に記憶しておく必要が無いので好ましい。また、操作者にとっても、画像出力装置からと画像データ供給装置からとで同じ情報が提供されることになるため、提供された内容を、なんら混乱することなく容易に理解することができる。
【0019】
また、上述した本発明の画像出力システムは、着目する箇所に応じて種々の態様として把握することができる。例えば、操作者に対して情報を出力している点に着目すると、本発明は画像出力装置として把握することができる。すなわち、こうした本発明の画像出力装置は、
画像データを受け取って画像を出力する画像出力装置において、
前記画像出力装置の操作者に対する情報を、前記画像データを供給する機器に向かって、文書、画像、または音声の少なくとも何れかを含んだ形態で出力することを特徴とする。
【0020】
かかる本発明の画像出力装置においては、画像データを供給する機器に向かって、画像出力装置の操作者に対する情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で出力する。このように、文書、画像、または音声といった形態であれば、操作者は直ちに内容を理解することができるので、画像データ供給装置は、受け取った情報を単に再生するだけで、操作者に対して適切に情報を提供することができる。また、情報を再生するだけであれば、簡単に実現可能であることから、どのような機器から画像データを受け取った場合でも、操作者に対する情報を、機器を選ばず適切に提供することが可能となる。
【0021】
また、画像出力装置の操作者に対する情報を報知している点に着目すれば、本発明は情報を報知する方法として把握することができる。すなわち、こうした本発明の第1の情報報知方法は、
画像データ供給装置に接続された画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知する情報報知方法において、
前記画像出力装置の操作者に報知するべき情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データ供給装置に向かって出力する第1の工程と、
前記画像出力装置から出力された情報を、受け取った形態に従って再生する第2の工程と
を備えることを特徴とする。
【0022】
かかる本発明の第1の情報報知方法においても、操作者に報知するべき情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で出力し、これを画像データ供給装置で再生する。こうすれば、受け取った情報を単に再生するだけで、操作者に情報を適切に報知することが可能となる。
【0023】
また、特に、操作者に対する情報を出力している点に着目すると、本発明は次のような情報報知方法として把握することができる。すなわち、本発明の第2の情報報知方法は、
画像データを受け取って画像を出力する画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知する情報報知方法において、
前記画像出力装置の操作者に報知するべき情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データを供給する機器に向かって出力する工程を備えることを特徴とする。
【0024】
かかる本発明の第2の情報報知方法においても、画像出力装置の操作に伴う情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で出力する。このような形態で出力しておけば、受け取った情報を単に再生するだけで、操作者が直ちに理解可能な状態で適切に報知することができる。
【0025】
更に本発明は、上述した情報報知方法を実現するためのプログラムをコンピュータに読み込ませ、コンピュータを用いて実現することも可能である。従って、本発明は次のようなプログラム、あるいは該プログラムを記録した記録媒体として把握することもできる。すなわち、上述した第1の情報報知方法に対応する本発明のプログラムは、
画像データ供給装置に接続された画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知する方法を、コンピュータを用いて実現するプログラムにおいて、
前記画像出力装置の操作者に報知するべき情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データ供給装置に向かって出力する第1の機能と、
前記画像出力装置から出力された情報を、受け取った形態に従って再生する第2の機能と
を実現することを特徴とする。
【0026】
また、上記のプログラムに対応する本発明の記録媒体は、
画像データ供給装置に接続された画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知するプログラムを、コンピュータで読み取り可能に記録した記録媒体において、
前記画像出力装置の操作者に報知するべき情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データ供給装置に向かって出力する第1の機能と、
前記画像出力装置から出力された情報を、受け取った形態に従って再生する第2の機能と
を実現するプログラムを記憶していることを特徴とする。
【0027】
更に、上述した第2の情報報知方法に対応する本発明のプログラムは、
画像データを受け取って画像を出力する画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知する方法を、コンピュータを用いて実現するプログラムにおいて、
前記画像出力装置の操作者に報知する情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データを供給する機器に向かって出力する機能を実現することを特徴とする。
【0028】
また、上記のプログラムに対応する本発明の記録媒体は、
画像データを受け取って画像を出力する画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知するプログラムを、コンピュータで読み取り可能に記録した記録媒体において、
前記画像出力装置の操作者に報知する情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データを供給する機器に向かって出力する機能を実現するプログラムを記録していることを特徴とする。
【0029】
こうしたプログラム、あるいは記録媒体に記録されているプログラムをコンピュータに読み込ませ、該コンピュータを用いて上述の各種機能を実現すれば、画像出力装置の操作者に報知するべき情報を、簡便に且つ適切に報知することが可能となる。
【発明を実施するための最良の形態】
【0030】
以下では、本発明の作用・効果をより明確に説明するために、本発明の実施の形態を、次のような順序に従って説明する。
A.装置構成 :
A−1.ゲーム機の構成 :
A−2.カラープリンタの構成 :
B.ゲーム画面の表示の概要 :
C.画像印刷処理の概要 :
D.第1実施例のプリンタ情報表示処理 :
E.第2実施例のプリンタ情報表示処理 :
【0031】
A.装置構成 :
A−1.ゲーム機の構成 :
図1は、ゲーム機100とカラープリンタ200とによって構成される本実施例の画像出力システムを示した説明図である。ゲーム機100は、CPU101を中心として、メインメモリ110、座標変換器(以下、GTE:Geometry Transfer Engine)112、フレームバッファ114、画像処理器(以下、GPU:Graphic Proccesing Unit)116、ROM108、ドライバ106、通信制御部103などが、バスを介して相互にデータをやり取り可能に接続されて構成されている。また、ゲーム機100には、ゲーム機100の操作を行うためのコントローラ102などが接続されている。
【0032】
CPU101は、いわゆる算術演算や論理演算を実行する中央演算装置であり、ゲーム機100全体の制御を司っている。ROM108は、読み出し専用のメモリであり、ゲーム機100の電源投入後にCPU101が初めに実行するプログラム(ブートプログラム)を始めとして、各種のプログラムが格納されている。メインメモリ110は、データの読み出しおよび書き込みが可能なメモリであり、CPU101が算術演算や論理演算を実行する際に一時的な記憶領域として使用される。GTE112は、CPU101の制御の下で、メインメモリ110にアクセスしながら、幾何学的形状を三次元空間で移動、回転させるための演算を高速に実行する。GPU116は、CPU101からの命令を受けて、モニタ150上に表示される画面を生成する処理を高速に実行する。フレームバッファ114は、GPU116が、モニタ150上に表示される画面を生成するために使用する専用メモリである。GPU116は、フレームバッファ114上に生成した画面のデータを読み出してモニタ150に出力することにより、ゲーム中の画面を表示する。
【0033】
ゲームを実行するためのプログラムや各種のデータは、いわゆるコンパクトディスクやデジタルビデオディスクなどの記憶ディスク105に記憶されている。これら記憶ディスク105をゲーム機100にセットすると、記憶ディスク105に記憶されているプログラムおよびデータがドライバ106によって読み出され、メインメモリ110に一旦記憶される。そして、コントローラ102の操作内容が通信制御部103を介してCPU101に入力されると、CPU101が、メインメモリ110に記憶されているプログラムを読み出して所定の処理を実行することにより、ゲームが実行される。
【0034】
また、ゲーム機100にはカラープリンタ200が接続されており、ゲーム機100から画像データを供給することによって、ゲーム中の画面をカラープリンタ200から出力することが可能となっている。ゲーム機100およびカラープリンタ200は、全体として本実施例の画像出力システムを構成している。
【0035】
A−2.カラープリンタの構成 :
図2は、本実施例の画像出力システムを構成するカラープリンタ200の概略構成を示す説明図である。カラープリンタ200はシアン,マゼンタ,イエロ,ブラックの4色インクのドットを形成可能なインクジェットプリンタである。もちろん、これら4色のインクに加えて、染料または顔料濃度の低いシアン(淡シアン)インクと、染料または顔料濃度の低いマゼンタ(淡マゼンタ)インクとを含めた合計6色のインクドットを形成可能なインクジェットプリンタを用いることもできる。尚、以下では場合によって、シアンインク,マゼンタインク,イエロインク,ブラックインク,淡シアンインク,淡マゼンタインクのそれぞれを、Cインク,Mインク,Yインク,Kインク,LCインク,LMインクと略称することがあるものとする。
【0036】
カラープリンタ200は、図示するように、キャリッジ240に搭載された印字ヘッド241を駆動してインクの吐出およびドット形成を行う機構と、このキャリッジ240をキャリッジモータ230によってプラテン236の軸方向に往復動させる機構と、紙送りモータ235によって印刷用紙Pを搬送する機構と、ドットの形成やキャリッジ240の移動および印刷用紙の搬送を制御する制御回路260などから構成されている。
【0037】
キャリッジ240には、Kインクを収納するインクカートリッジ242と、Cインク,Mインク,Yインクの各種インクを収納するインクカートリッジ243とが装着されている。インクカートリッジ242,243をキャリッジ240に装着すると、カートリッジ内の各インクは図示しない導入管を通じて、印字ヘッド241の下面に設けられた各色毎のインク吐出用ヘッド244ないし247に供給される。
【0038】
図3は、インク吐出用ヘッド244ないし247におけるインクジェットノズルNzの配列を示す説明図である。図示するように、インク吐出用ヘッドの底面には、C,M,Y,Kの各色のインクを吐出する4組のノズル列が形成されており、1組のノズル列あたり48個のノズルNzが、一定のノズルピッチkで配列されている。
【0039】
制御回路260は、CPUや、ROM、RAM、PIF(周辺機器インターフェース)等がバスで相互に接続されて構成されている。制御回路260は、キャリッジモータ230および紙送りモータ235の動作を制御することによってキャリッジ240の主走査動作および副走査動作を制御するとともに、外部から供給される印刷データに基づいて、各ノズルから適切なタイミングでインク滴を吐出する制御を行う。こうして、制御回路260の制御の下、印刷媒体上の適切な位置に各色のインクドットを形成することによって、カラープリンタ200はカラー画像を印刷することができる。
【0040】
また、インク滴を吐出するためにノズルに供給される駆動信号波形を制御してやれば、吐出されるインク滴の大きさを変更して、大きさの異なるインクドットを形成することもできる。このようにしてインクドットの大きさを制御することができれば、印刷しようとする画像の領域に応じて異なる大きさのインクドットを使い分けてやることで、より高画質の画像を印刷することも可能となる。
【0041】
尚、各色のインク吐出ヘッドからインク滴を吐出する方法には、種々の方法を適用することができる。すなわち、ピエゾ素子を用いてインクを吐出する方式や、インク通路に配置したヒータでインク通路内に泡(バブル)を発生させてインク滴を吐出する方法などを用いることができる。また、インクを吐出する代わりに、熱転写などの現象を利用して印刷用紙上にインクドットを形成する方式や、静電気を利用して各色のトナー粉を印刷媒体上に付着させる方式のプリンタを使用することも可能である。
【0042】
以上のようなハードウェア構成を有するカラープリンタ200は、キャリッジモータ230を駆動することによって、各色のインク吐出用ヘッド244ないし247を印刷用紙Pに対して主走査方向に移動させ、また紙送りモータ235を駆動することによって、印刷用紙Pを副走査方向に移動させる。制御回路260は、キャリッジ240の主走査および副走査の動きに同期させながら、適切なタイミングでノズルを駆動してインク滴を吐出することによって、カラープリンタ200は印刷用紙上にカラー画像を印刷することが可能となっている。
【0043】
B.ゲーム画面の表示の概要 :
本実施例の画像出力システムを構成するゲーム機100は、ゲームの舞台として設定された仮想的な三次元空間の中で、メインキャラクタを操作することによってゲームが進行するようになっている。図4は、モニタ150上にゲーム中の画面が表示されている様子を例示した説明図である。図示されている画面には、想像上の惑星表面が表示されており、惑星の表面には各種の建造物が設定されている様子が仮想的に表示されている。このようなゲームの舞台の中を、メインキャラクタである飛行艇を操縦しながら進んでいくことによってゲームが行われる。
【0044】
モニタ150の画面では二次元の形状しか表現し得ないが、ゲーム機100の内部では、惑星表面や、飛行艇、各種の建造物などについては三次元的な形状を伴った物体として表現されている。このように、ゲーム機100の内部で三次元的な形状を伴うものとして扱われている物体を、本明細書中では「オブジェクト」と呼ぶことにする。図4に例示した画面では、画面のほぼ中央に大きく表示された飛行艇ob1 や、惑星表面ob2 、ドーム状の建造物ob3 、遠方に見えるピラミッド状の2つの建造物ob11、ob12、更には、惑星の表面上を飛行する6つの円盤ob4 ないしob9 などがオブジェクトであり、これらについては、物体の表面形状を三次元的に表すデータが記憶されている。このため、メインキャラクタである飛行艇ob1 を操作することにより、飛行艇ob1 に対して、他のオブジェクト(例えば建造物や円盤等)の位置関係が変化すると、これに伴って、モニタ150上でのオブジェクトの見え方も変化することになる。この結果、飛行艇ob1 や、惑星表面ob2 などのオブジェクトは、想像によって作り出されたものであるにも拘わらず、あたかも現実に存在しているかのように、モニタ150に表示することが可能となっている。また、詳細には後述するが、ゲーム機100では、モニタ150に表示された画面をカラープリンタ200から出力することにより、あたかも写真で撮影したかのような画像を印刷することも可能となっている。
【0045】
尚、図4に示した例では、惑星の空の部分や、空に浮かぶ衛星は、オブジェクトではなく二次元的な画像がそのままモニタ150に表示されたものとなっている。従って、これらについては、飛行艇ob1 を操作しても、モニタ150上での見え方が変化することはない。これは、ゲームのメインキャラクタである飛行艇ob1 の移動範囲に対して極めて遠方にあるため、飛行艇ob1 の位置が変わっても見え方はほとんど変化せず、従って二次元画像として扱えば十分であることによる。図5は、モニタ150の画面上で、二次元画像がそのまま表示されている領域を、ハッチングを付して表した説明図である。このように、ゲーム機100では、モニタ150に表示される画面の一部に、二次元画像を嵌め込んで表示することも可能となっている。
【0046】
次に、本実施例の画像出力システムを構成するゲーム機100が、物体を三次元的な形状を伴ったオブジェクトとして取り扱う方法について説明する。図6は、メインキャラクタである飛行艇ob1 の形状を示す斜視図である。図の左側には、飛行艇ob1 を斜め後方から見た様子が示されており、図の右側には、飛行艇ob1 を斜め前方から様子が示されている。図示されているように、飛行艇ob1 は、表面のほとんどの部分が滑らかな曲面によって構成されている。ゲーム機100の内部では、このような三次元的な曲面を有する物体を、平面多角形を用いて表現する。すなわち、三次元的な曲面を細かな平面多角形に分割し、これら平面多角形によって近似的に表現していることになる。
【0047】
図7は、メインキャラクタの飛行艇ob1 の形状を細かな平面多角形によって表現した様子を概念的に示した説明図である。このように、細かな多角形に分割すれば三次元的な曲面を持った物体形状を、平面多角形によって表現することが可能である。尚、このような平面多角形は「ポリゴン」と呼ばれている。ゲーム機100では、全てのオブジェクトがポリゴンの集まりとして表現されており、ポリゴンを構成する各頂点の三次元座標値によってオブジェクトの形状が表現されている。本明細書においては、ポリゴンの頂点の座標によってオブジェクトの形状を表現したデータを、「ポリゴンデータ」と呼ぶことにする。また、ゲーム機100においては、各オブジェクトのポリゴンデータは、オブジェクトテーブルと呼ばれるテーブルによって管理されている。
【0048】
図8は、本実施例の画像出力システムを構成するゲーム機100において、各オブジェクトのポリゴンデータを管理するために用いられるオブジェクトテーブルを概念的に示した説明図である。図示されているように、オブジェクトテーブルには、各オブジェクトを識別するためのオブジェクト番号と、オブジェクトの形状を示したポリゴンデータが格納されているメインメモリ110の先頭アドレスと、オブジェクトを構成するポリゴン数とが記憶されている。オブジェクトテーブルには、このようなオブジェクト番号とポリゴンデータの先頭アドレスとポリゴン数とを一組とするレコードが、オブジェクトの数だけ設定されている。
【0049】
図9は、オブジェクトの形状を示したポリゴンデータのデータ構造を示す説明図である。図示されているようにポリゴンデータは、ポリゴンの通し番号と、各ポリゴンを構成する頂点のXYZ座標値と、ポリゴンに付与されるテクスチャの番号と、オブジェクトに設定されている基準点のXYZ座標値などから構成されている。このうち、ポリゴンの番号、頂点座標、テクスチャ番号についてはポリゴン毎に一組ずつ設定されており、一方、基準点のXYZ座標値はオブジェクト毎に設定されている。
【0050】
各ポリゴンに設定されている頂点座標の個数は、ポリゴンの形状に応じた個数が設定されている。例えば、ポリゴンが三角形であれば3つの頂点から構成されているから、そのポリゴンについては3つの頂点座標が設定される。同様に、ポリゴンが四角形であれば4つの頂点座標が設定されることになる。本実施例では、全てのオブジェクトが三角形のポリゴンで構成されており、従って、各ポリゴンには3つずつ頂点座標が設定されている。
【0051】
また、テクスチャ番号は、簡単に言えば、ポリゴン内を塗りつぶすべき色彩を示す番号のようなものと考えることができる。例えば、オブジェクトの表面が赤ければ、そのオブジェクトを構成する全てのポリゴンを赤色としておけばよい。この場合、ポリゴンのテクスチャ番号には、赤色を示す番号が設定されることになる。もっとも、このように色彩だけでなく、アルミや真鍮などの各種の金属表面や、ガラスのような透明な表面、更には木肌のような表面を、テクスチャ番号として指定することも可能である。テクスチャ番号は、このようにポリゴンに付与される表面の状態を指定する番号である。
【0052】
一方、オブジェクトについて設定されている基準点は、三次元空間におけるオブジェクトの位置と姿勢とを表すために用いられるXYZ座標値である。本実施例のゲーム機100では、ゲーム中に表示されるモニタ150の画面を、あたかも写真のような鮮明な画像として印刷することが可能となっており、詳細には後述するが、対象とするオブジェクトの位置および向きの情報を用いることによって、このような鮮明な画像を印刷することを可能としている。このため本実施例の画像出力システムを構成するゲーム機100では、そのオブジェクトが三次元空間内のどの位置に存在していて、どちらの方向を向いているかを特定するために、基準点が設定されている。図7に示した飛行艇(オブジェクト番号ob1 )については、機体先頭部に設けられた基準点p1と、左右の尾翼の後端にそれぞれ設けられた基準点p2、p3の、合計3つの基準点が設けられている。このように、最低3つの基準点が設けられていれば、三次元空間内でのオブジェクトの位置および向きを特定することができる。もちろん、基準点の個数は3つに限らず、より多数の基準点を設けておくこととしても良い。図9に示したポリゴンデータには、これら基準点のXYZ座標値が設定されている。尚、基準点は、必ずしも全てのオブジェクトに設けられている必要はない。この点については、後ほど詳しく説明する。
【0053】
以上に説明したように、本実施例の画像出力システムを構成するゲーム機100では、全てのオブジェクトにオブジェクト番号が付与されており、オブジェクトの表面形状はポリゴンの頂点座標を示すポリゴンデータによって表現されている。そして、オブジェクト番号からオブジェクトテーブルを引くことによって対応するポリゴンデータの先頭アドレスを取得すれば、メインメモリ110の該当アドレス以降に書き込まれているデータを読み出すことによって、オブジェクトの三次元的な形状を表した頂点座標を取得することが可能となっている。ゲーム機100のモニタ150に表示するための画像データは、このようにして取得した三次元形状を示すポリゴンデータに、後述する処理を施すことによって生成されている。
【0054】
尚、図8に例示したオブジェクトテーブルでは、ポリゴンデータの先頭アドレス、およびオブジェクトを構成するポリゴン数の2つの項目だけが、オブジェクト番号に対応付けて設定されているが、これら以外の項目も設定することとしても良い。例えば、オブジェクトを構成するポリゴンのタイプ、すなわちポリゴンが何角形であるかを示すデータや、ポリゴンに基準点が設けられているか否か、更には基準点の個数を示すデータなどを、オブジェクト番号に対応付けて設定しておくことも可能である。
【0055】
図10は、本実施例の画像出力システムを構成するゲーム機100が、ゲーム中の画面をモニタ150に表示する処理の概要を示したフローチャートである。かかる処理は、CPU101を中心として、メインメモリ110、GTE112、フレームバッファ114、GPU116などが協動しながら実行する処理である。以下、フローチャートに従って説明する。
【0056】
ゲーム画面表示処理を開始すると、CPU101は、コントローラ102からの入力があったか否かを判断する(ステップS10)。前述したように、ゲーム中は、ゲーム機100に対する操作は専らコントローラ102によって行われるので、先ず初めにコントローラ102からの操作入力があったか否かを判断するのである。そして、入力がなかった場合は(ステップS10:no)、フレームバッファ114に記憶されている画像データをモニタ150に出力して、画面の表示を更新する処理(画面更新処理)を行う(ステップS50)。フレームバッファ114には、モニタ150に表示すべき画像データが生成されて記憶されている。画像データを生成してフレームバッファ114に記憶するための処理、およびフレームバッファ114に記憶されている画像データをモニタ150に出力する画面更新処理の内容については後述する。一方、コントローラ102からの入力があったと判断された場合には(ステップS10:yes)、コントローラ102による操作の内容をモニタ150の画面に反映させるべく、後述する一連の処理を行う。
【0057】
コントローラ102からの入力が検出されると、コントローラ102によって操作されたオブジェクトを、ゲームの舞台として設定されている三次元空間内で、操作に応じた距離および方向に移動させる処理を行う(ステップS20)。一例として、コントローラ102による操作が、メインキャラクタである飛行艇ob1 を前進させるものであった場合について説明する。前述したように飛行艇ob1 は、ゲーム機100の内部では複数のポリゴンによって表現されており(図7参照)、各ポリゴンの頂点座標はポリゴンデータに設定されている(図9参照)。また、ポリゴンデータが記憶されているメモリ領域の先頭アドレスは、オブジェクトテーブルを参照することによって取得することができる。
【0058】
そこで、メインキャラクタである飛行艇ob1 を前進させる場合は、先ずオブジェクトテーブルを参照して、飛行艇(オブジェクト番号ob1 )に対応するポリゴンデータの先頭アドレスを取得する。次いで、メインメモリ110上の取得したアドレスを先頭とするメモリ領域に記憶されているポリゴンデータを読み出すことによって、各ポリゴンを構成する頂点座標を取得する。こうして得られた頂点座標は、ゲームの舞台として設定された三次元空間内において、現時点での飛行艇ob1 の位置を表す座標となっている。
【0059】
この点について、若干補足して説明する。記憶ディスク105には、各オブジェクトについてのポリゴンデータの初期値が記憶されている。ゲームの開始時には、初期値のポリゴンデータが、記憶ディスク105から読み込まれてメインメモリ110に記憶されるとともに、ポリゴンデータを記憶した先頭アドレス値が、オブジェクトテーブルに設定される。そして、ゲームの進行に伴って、オブジェクトが移動、回転、あるいは変形すると、後述する処理によって、メインメモリ110に記憶されているポリゴンデータの内容が更新されていく。従って、オブジェクトテーブルを参照して先頭アドレスを取得すれば、各オブジェクトの現時点での頂点座標を読み出すことが可能となっているのである。
【0060】
ここでは、飛行艇ob1 が前進するように、コントローラ102が操作されたものとしているから、図10に示したゲーム画面表示処理のS20では、オブジェクトテーブルを参照することにより、現在の飛行艇ob1 の位置を示すポリゴンデータをメインメモリ110から取得する。次いで、コントローラ102の操作量から、三次元空間内で飛行艇ob1 を移動させる向きと移動量とを決定し、移動後の飛行艇ob1 の座標値を算出する。かかる演算は、CPU101の制御の下でGTE112によって高速に実行される。具体的には、CPU101は飛行艇ob1 の移動方向および移動量を決定すると、ポリゴンデータの先頭アドレスの値と共にGTE112に供給する。GTE112は、供給された先頭アドレスに基づいて飛行艇ob1 のポリゴンデータを読み出した後、このポリゴンデータの頂点座標に対して座標変換を行うことにより、移動後の頂点座標を算出する。こうして得られた変換後の頂点座標によって、メインメモリ110のポリゴンデータを更新する。以上では、メインキャラクタである飛行艇ob1 を前進させる場合について説明したが、コントローラ102によって他のオブジェクトが操作された場合は、操作されたオブジェクトについて同様の処理が実行される。この結果、メインメモリ110に記憶されている各オブジェクトのポリゴンデータには、常に最新のオブジェクトの座標値が記憶されていることになる。
【0061】
このようにして、コントローラ102の操作をオブジェクト位置に反映させたら、各オブジェクトのポリゴンデータから二次元画像のデータを生成する処理(レンダリング処理)を開始する(ステップS30)。レンダリング処理では、ポリゴンデータによって表現された三次元的なオブジェクトを、モニタ150の画面に相当する平面上に投影するような処理を行うことによって、三次元的なオブジェクトから二次元的な画像を生成する。
【0062】
図11は、レンダリング処理の概要を示した説明図である。図11では、サイコロ形状のオブジェクトにレンダリング処理を施すことにより、二次元的な画像を生成する様子が示されている。レンダリング処理に際しては、先ず初めに、オブジェクトを観察するための視点Qを設定し、次いで、オブジェクトと視点Qとの間に、モニタ150の画面に相当する投影面Rを設定する。そして、オブジェクトの表面から選択した任意の点と視点Qとを直線で結び、この直線が投影面Rと交差する交点を決定する。例えば、図11に示したように、オブジェクト上のa点を選択したとすると、a点と視点Qとを結ぶ直線が投影面Rと交わる交点としてRa点を決めることができる。ここで、周知のように光は直進する性質を有するから、a点から出て視点Qに向かう光は、投影面R上のRa点に像を結ぶことになる。換言すれば、投影面R上のRa点は、オブジェクト上のa点が投影される点と考えることができる。従って、オブジェクトの表面の全ての点について、このような操作を行えば、投影面R上に投影されたオブジェクトの二次元像を得ることができる。
【0063】
もっとも、前述したようにオブジェクトはポリゴンによって表現されているから、オブジェクト表面の全ての点についてこうした操作を行う必要はなく、ポリゴンの頂点座標についてのみ実行すればよい。例えば、図11に示すように、オブジェクト表面のb点およびc点が、投影面R上のRb点、Rc点にそれぞれ投影されたものとする。この場合、オブジェクト上のa点、b点、c点を頂点とする三角形のポリゴンは、投影面R上では、Ra点、Rb点、Rc点を頂点とする三角形の領域に投影されるものと考えて良い。また、オブジェクト上のポリゴンが例えば赤色であったとすると、このポリゴンが投影面R上に投影された三角形の領域も赤色になると考えて良い。すなわち、オブジェクト上のポリゴンが有するテクスチャ番号は、投影面R上に投影された領域にも引き継がれると考えることができる。
【0064】
更に、レンダリング処理では、いわゆる陰面消去と呼ばれる処理も行われる。陰面消去とは、オブジェクト表面の中で、他の表面の陰になっている部分を消去する処理である。例えば、図11に示した例では、オブジェクト表面のb点、d点、e点を頂点とするポリゴンは、視点Qから見てオブジェクトの裏側にあり、全体が他の表面の陰になっているため投影面R上に像を結ぶことはない。そこで、このようなポリゴンについては、投影面R上に投影像が表示されないようにするのである。尚、オブジェクトの形状および視点Qの設定によっては、あるポリゴンの一部の領域だけが他の表面の陰になる場合もある。このような場合は、そのポリゴンの陰になっている部分だけの表示が省略されて、陰になっていない部分についてだけ、投影像が表示されることになる。
【0065】
このように、レンダリング処理では、オブジェクトを構成するポリゴンの頂点を投影面Rに投影したときの座標値を算出する処理が行われる。このような座標値の算出は、比較的簡単に行うことができる。図12(a)は、オブジェクト上の座標点(X,Y,Z)を投影して得られる投影面R上の座標値(U,V)を求める計算式を示した説明図である。ここで、図12(a)中のα、β、γ、δは、視点Qから投影面R、あるいはオブジェクトまでの距離などによって定まる係数である。あるいは、簡易的には、図12(b)に示すように、除算を含まない計算式を用いることもできる。ここで、図12(b)中のε、ζ、η、θ、ι、κは、それぞれ視点Qから投影面R、あるいはオブジェクトまでの距離などによって定まる係数である。
【0066】
また、詳細な説明は省略するが、レンダリング処理では、三次元空間内の予め設定された位置に光源を置いて、オブジェクト表面に陰影を付けるシェーディングと呼ばれる処理や、遠近感を強調するために、遠方にある部分ほど輝度を低下させたり、投影像をぼかす処理などが行われることもある。こうした一連の処理からなるレンダリング処理は、GTE112がCPU101からの命令を受け取って、メインメモリ110に記憶されているポリゴンデータに対して所定の演算を実行し、得られた結果を用いて、メモリ上のポリゴンデータを更新することによって行われる。そして、モニタ150の画面に現れる全てのオブジェクトについて、以上のような処理を行ったら、図10のステップS30に示したレンダリング処理を終了する。
【0067】
上述したレンダリング処理に続いて、ゲーム機100のCPU101は、描画処理を開始する(図10のステップS40)。描画処理とは、レンダリング処理によって生成された投影像から、画素毎に階調値が設定された画像データを生成する処理である。すなわち、レンダリング処理で得られた投影像は、ポリゴンが投影された多角形の頂点の座標と、その多角形に付与すべきテクスチャ番号とを用いた形式で表現されている。これに対して、モニタ150上で表示可能な画像データは、画像を画素と呼ばれる微細な領域に細分し、画素毎に階調データ(通常は、輝度を表すデータ)を設定した形式で表現されている。各画素に1種類の輝度データを設定した場合には、モノクロ画像の画像データとなり、光の三原色を構成するRGB各色の輝度データを設定した場合には、カラー画像の画像データとなる。尚、RGB各色の輝度データの代わりに、明度に対応する階調データと、色差に対応する2種類の階調データを用いてカラー画像を表現することも可能である。いずれにしても、レンダリング処理によって得られた投影像を表すデータは、そのままではモニタ150上に表示することができないので、モニタ150で表示可能なデータ形式に変換する処理を行う。このような処理が描画処理と呼ばれる処理である。また、図5を用いて前述したように、画面に二次元画像が嵌め込まれている場合は、描画処理の中で二次元画像のデータを嵌め込んでやればよい。
【0068】
描画処理を開始すると、ゲーム機100のCPU101は、GPU116に向かって描画命令を出力する。この描画命令を受けて、GPU116が画像データを生成してフレームバッファ114に記憶することによって描画処理が行われる。
【0069】
図13は、描画命令によって描画しようとする画像、すなわち、前述したレンダリング処理によって生成された投影像を、概念的に示した説明図である。また、図14は、このような画像を描画するために、CPU101からGPU116に向かって出力される描画命令のデータ構造を概念的に示した説明図である。先ず、図13を参照しながら、描画の対象となる投影像について説明する。描画の対象となる投影像は、前述したように、オブジェクトを構成するポリゴンを投影面R上に投影することによって得られた二次元画像である。本実施例では、オブジェクトは全て三角形のポリゴンを用いて構成されているものとしているから、原則として全てのポリゴンが、三角形の画像として投影面R上に投影される。尚、ポリゴンとは、前述したようにオブジェクトを構成する平面多角形を指しており、ポリゴンが投影面Rに投影された多角形は、厳密にはポリゴンとは異なるものである。しかし、以下では説明の便宜から、このようなポリゴンの投影像も、ポリゴンと呼ぶことがあるものとする。また、特にこれらを区別する場合は、「オブジェクトを構成するポリゴン」、および「投影像を構成するポリゴン」などと称することがあるものとする。
【0070】
図13に示されている投影像は、ポリゴン1、ポリゴン2、ポリゴン3の3つのポリゴンから構成されている。また、投影像がいずれも三角形のポリゴンによって構成されているのは、オブジェクトを構成するポリゴンが全て三角形のポリゴンによって構成されており、これら三角形のポリゴンを投影面R上に投影すると三角形の投影像が得られることに対応したものである。そして、図11を用いて前述したように、これら投影像を構成するポリゴンには、オブジェクトを構成するポリゴンと同じテクスチャ番号が付与されている。
【0071】
このような投影像を描画する場合、CPU101は図14に示すようなデータ構造の描画命令を出力する。図示されているように描画命令は、「CODE」と、テクスチャ番号と、投影面R上での頂点の座標値とを一組とするデータが、投影像を構成するポリゴン毎に設定された構造となっている。ここで、「CODE」は、この命令が描画命令であることを表すとともに、描画の対象としているポリゴンの形状を指定するデータとなっている。すなわち、オブジェクトを構成するポリゴンは、三角形に限らず、四角形や五角形などのポリゴンが使用される場合もあり、これに伴って投影像を構成するポリゴンの形状も変わってくる。また、オブジェクトのポリゴンが三角形であったとしても、一部が他のポリゴンの陰になった場合などには投影面Rの上のポリゴンを、例えば四角形のポリゴンとして扱うことも可能である。このようなことを考慮して、描画命令では、ポリゴン毎にポリゴンの形状を指定可能となっているのである。
【0072】
描画命令には、「CODE」に続いて、テクスチャ番号が設定されている。このテクスチャ番号は、投影像を構成するポリゴンに付与されているテクスチャ番号であり、ほとんどの場合は、オブジェクトを構成するポリゴンに付与されたテクスチャ番号と同じものとなる。尚、テクスチャ番号の代わりに、ポリゴンに付与すべき色情報(例えば、R,G,B各色の階調値)を設定しておくことも可能である。
【0073】
テクスチャ番号に続いて、ポリゴンを構成する頂点の投影面R上での座標値が設定されている。頂点座標の個数は上述した「CODE」によって決定される。例えば、「CODE」においてポリゴンの形状が三角形と指定されている場合は、3つの頂点座標が設定され、四角形のポリゴンと指定されている場合は、4つの頂点座標が設定されることになる。描画命令は、このような「CODE」、テクスチャ番号、頂点座標を一組とするデータが、投影像を構成するポリゴン毎に設定されたデータ構造となっている。
【0074】
図14に例示した描画命令では、描画の対象としている投影像が、ポリゴン1ないしポリゴン3の3つのポリゴンから構成されていることと対応して、「CODE」、テクスチャ番号、頂点座標からなる三組のデータが設定されている。すなわち、ポリゴン1については、「CODE」およびテクスチャ番号に続いて、ポリゴン1を構成する3つの頂点A、B、Cの座標値が設定されている。また、ポリゴン2については、「CODE」およびテクスチャ番号に続いて、ポリゴン2を構成する3つの頂点B、C、Dの座標値が設定され、ポリゴン3については、「CODE」、テクスチャ番号に続いて、ポリゴン3を構成する3つの頂点C、D、Eの座標値が設定されている。これらポリゴンの頂点座標およびテクスチャ番号は、前述したレンダリング処理の中でGTE112によって生成された後、メインメモリ110に記憶されている。CPU101は、メインメモリ110に記憶されているデータの中から、モニタ150の画面上に表示すべき全てのオブジェクトについて、これらのデータを読み出すことにより、図14に示すようなデータ構造の描画命令を生成してGPU116に供給する。
【0075】
GPU116は、このような描画命令を受け取ると、各頂点を結んだ多角形の内部を、テクスチャ番号が示す色彩あるいは模様で塗り潰した二次元画像に展開する。そして、得られた二次元画像を、画像を構成する画素毎に階調データが設定された表現形式のデータに変換して、画像データとしてフレームバッファ114に記憶する。この結果、投影面R上でのポリゴンの頂点座標と、ポリゴンのテクスチャ番号とによって表現された投影像が、モニタ150で表示可能なデータ形式の画像データに変換されて、フレームバッファ114に記憶されたことになる。尚、本実施例の画像出力システムを構成するゲーム機100では、R,G,B各色の階調値が画素毎に設定された画像データを生成するものとする。モニタ150の画面に現れる全ての投影像について、以上のような処理を行ったら、図10のステップS40に示した描画処理を終了する。
【0076】
描画処理を終了すると、今度は、フレームバッファ114上に得られた画像データをモニタ150に出力して、モニタ150の画面を更新する処理を行う(ステップS50)。すなわち、画面解像度や、インターレースあるいはノンインターレースと言った走査方式など、モニタ150の仕様に合わせて、フレームバッファ114から画像データを読み出してビデオ信号としてモニタ150に供給する。こうすることで、フレームバッファ114に展開した二次元画像をモニタ150の画面に表示させることができる。
【0077】
また、モニタ150の表示を少なくとも1秒間に24回以上の頻度で更新してやれば、人間の網膜が有する残像現象により、あたかも連続して動いているかのような画像を表示することができる。本実施例の画像出力システムを構成するゲーム機100では、図10に示したゲーム画面表示処理を1秒間に30回程度の頻度で実行して画面の表示を更新することで、あたかもモニタ150の画面内で飛行艇ob1 などの各種オブジェクトが連続して動いているかのように表示することが可能となっている。そして、このような高速な処理を可能とするために、ゲーム機100では、座標変換を始めとする各種の演算を高速に実行可能なGTE112や、演算に用いる大量のデータを高速に読み書き可能なメインメモリ110、CPU101から受け取った描画命令に基づいて画像データを迅速に生成するGPU116、更には、生成した画像データを高速に記憶するとともにモニタ150に高速に出力可能なフレームバッファ114などが搭載されている。
【0078】
もっとも、処理対象とするポリゴン数があまりに多くなると、図10に示したゲーム画面表示処理を、1秒間に30回程度の頻度で実行することは困難となる。そこで、飛行艇ob1 を始めとする各種のオブジェクトは、ポリゴン数があまり多くならないように、若干大きめのポリゴンによって構成されている。前述したようにポリゴンは平面多角形なので、ポリゴンが大きくなると、オブジェクトの表面がゴツゴツしてしまうという弊害がある。しかし、幸いにも、ゲームの画面ではオブジェクトは動いていることが多く、加えて、モニタ150は写真の様には高い描画力を有していないため、オブジェクト表面がゴツゴツしていることが目立つことはなく、従って、ゲームの臨場感を損なってしまうといった弊害が生じることはない。
【0079】
しかし、モニタ150の画面を印刷装置で印刷すると、こうした状況は一変することがある。すなわち、印刷して得られる画像は静止画像であることに加えて、近年の印刷装置は写真に迫る高い描画力を有していることから、印刷画像を見ればオブジェクトの表面がゴツゴツしていることがハッキリと分かってしまうことがある。そして、このような印刷画像を見てしまった後では、たとえゲーム中のモニタ150に表示されたオブジェクトでさえも、表面がゴツゴツしている様に見えてしまい、ゲームの臨場感が大きく損なわれてしまう畏れも生じる。これに対して本実施例の画像出力装置を構成するゲーム機100では、モニタ150の画面を印刷装置で出力した場合でも、あたかも実物を写真で撮影したかのような、鮮明な画像を出力することが可能となっている。以下では、こうしたことを可能とする処理について詳しく説明する。
【0080】
C.画像印刷処理の概要 :
図15は、本実施例のゲーム機100からカラープリンタ200に画像データを供給することによって画像を印刷する処理(画像印刷処理)の流れを示すフローチャートである。以下、フローチャートに従って、画像印刷処理について説明する。
【0081】
ゲーム機100のCPU101は、コントローラ102に設けられた所定の印刷ボタンが押されたことを検出すると、割り込みを発生させて、図15に示す画像印刷処理を開始する。尚、割り込みを発生させると、それまでCPU101が行っていた処理は一旦中断され、これに伴ってゲームの進行も、画像印刷処理を終了するまで中断されることになる。
【0082】
画像印刷処理を開始すると、先ず初めにCPU101は、コントローラ102の印刷ボタンが押された時点でモニタ150に表示されていた画像の、元となったポリゴンデータを取得する(ステップS100)。すなわち、前述したように、モニタ150に表示される画像は、オブジェクトを投影面Rに投影して得られた画像であり、オブジェクトを構成するポリゴンの頂点の座標値はポリゴンデータとして、メインメモリ110に記憶されている。そこで、ステップS100では、コントローラ102の印刷ボタンが押された時点でモニタ150に表示されている各オブジェクトについて、オブジェクトのポリゴンデータを取得する。
【0083】
次いで、取得したポリゴンデータについて、精密ポリゴンデータが記憶されているか否かを判断する(ステップS102)。ここで、精密ポリゴンデータとは、前述したゲーム画面表示処理で用いたポリゴンよりも小さなポリゴンによって、オブジェクトの三次元形状を表したデータである。図16は、メインキャラクタである飛行艇ob1 の三次元的な形状が小さなポリゴンによって表現されている様子を概念的に示した説明図である。精密ポリゴンデータは、このようなポリゴンを構成する各頂点の三次元座標値によって、オブジェクトの表面形状を表現したデータである。
【0084】
また、精密ポリゴンデータにも、図7および図9に示した通常のポリゴンデータと同様に、複数(本実施例では3つ)の基準点が設けられている。これら基準点は、精密ポリゴンデータの場合でも、通常のポリゴンデータの場合でも、オブジェクトに対する位置関係では同じ位置に設けられている。例えば、図7に示したように、飛行艇ob1 の通常のポリゴンデータでは、機体の先端と、左右の尾翼の後端とに、それぞれ基準点p1、p2、p3が設けられている。これと同様に、飛行艇ob1 の精密ポリゴンデータでも、機体先端と、左右の尾翼の後端とに、それぞれ基準点p1、p2、p3が設けられている。このように、精密ポリゴンデータが存在するオブジェクトについては、通常のポリゴンデータおよび精密ポリゴンデータのそれぞれについて、オブジェクトに対して同じ位置に基準点が設けられている。逆に言えば、精密ポリゴンデータが存在しないオブジェクトについては、オブジェクトデータに必ずしも基準点が設定されている必要はない。
【0085】
図7と図16とを比較すれば、ゲーム画面表示処理で用いたポリゴンデータと比べて、精密ポリゴンデータでは小さなポリゴンが用いられていることが分かる。また、オブジェクト表面の曲率が大きい(曲率半径が小さい)部分ほど、小さなポリゴンによって構成されていることが分かる。このように、小さなポリゴンを用いれば、オブジェクトの形状をより正確に表現することができ、表面の曲率が大きな部分でも、見る者にゴツゴツした印象を与えることがない。
【0086】
このような精密ポリゴンデータが存在するか否かは、精密ポリゴンデータの有無が予め設定されたテーブル(精密ポリゴンデータテーブル)を参照することによって判断することができる。図17は、精密ポリゴンデータの有無を判断するために参照されるテーブルを概念的に示した説明図である。図示されているように、精密ポリゴンデータテーブルには、精密ポリゴンデータが存在するオブジェクトのオブジェクト番号と、ポリゴン数とが設定されている。従って、精密ポリゴンデータテーブルを参照してオブジェクト番号が設定されていれば、そのオブジェクトについては精密ポリゴンデータが存在すると判断することができる。逆に、精密ポリゴンデータテーブルにオブジェクト番号が設定されていなければ、そのオブジェクトについては、精密ポリゴンデータは存在しないと判断することができる。
【0087】
尚、図8を用いて前述したオブジェクトテーブルには、全てのオブジェクトについて、固有のオブジェクト番号と、ポリゴンデータの先頭アドレスとが設定されていた。これに対して精密ポリゴンデータテーブルでは、複数のオブジェクト番号に対して同じ先頭アドレスが設定される場合がある。例えば、図4に示したように、オブジェクトob4 〜ob9 の6つのオブジェクトは何れも円盤を表しており、これら円盤は同じ形状となっている。このような場合、精密ポリゴンデータテーブルには、図17に示すように、オブジェクト番号ob4 〜ob9 の6つのオブジェクトについては、同じ先頭アドレスおよびポリゴン数が設定される。このように、精密ポリゴンデータテーブルでは、異なるオブジェクト番号に対しても、同じ先頭アドレスおよびポリゴン数が設定されることがある理由については、後述する。
【0088】
ステップS102において、精密ポリゴンデータが存在すると判断されたオブジェクトについては、ステップS100で先に取得しておいたポリゴンデータを、基準点を一致させた状態で、精密ポリゴンデータに差し替える処理を行う(ステップS104)。以下、この処理の内容について詳しく説明する。先ず、精密ポリゴンデータテーブルに設定されている先頭アドレスに基づいて、精密ポリゴンデータを読み出し、メインメモリ110の連続するアドレスに記憶する。ここでは、メインメモリ110上のアドレス値Appd 以降の連続した領域に精密ポリゴンデータが記憶されたものとする。
【0089】
次いで、メインメモリ110のアドレスAppd 以降のメモリ領域に記憶した精密ポリゴンデータに対して、オブジェクトを移動あるいは回転させる座標変換を行うことにより、精密ポリゴンデータの基準点の座標を、ステップS100で取得しておいた通常のポリゴンデータの基準点の座標に一致させる。このような座標変換は、図17に示した精密ポリゴンデータテーブルの先頭アドレスで示されているデータに対して行うのではなく、この精密ポリゴンデータを読み出してメインメモリ110のアドレスAppd 以降に展開したデータに対して実行する。そして、精密ポリゴンデータの基準点の座標を、通常のポリゴンデータの基準点の座標と一致させたら、メインメモリ110上で、この精密ポリゴンデータが記憶されているメモリ領域の先頭アドレスAppd および精密ポリゴンデータを構成するポリゴン数によって、図8を用いて前述したオブジェクトテーブルの先頭アドレスおよびポリゴン数を書き換えてやる。このようにオブジェクトテーブルに設定されている先頭アドレスおよびポリゴン数を書き換えておけば、続いて実行するレンダリング処理および描画処理においては、通常のポリゴンデータではなく、精密ポリゴンデータを参照することになる。図15のステップS104において、ポリゴンデータを精密ポリゴンデータで差し替える処理とは、具体的には、このようにオブジェクトテーブルに設定されている先頭アドレスおよびポリゴン数を、位置合わせした精密ポリゴンデータの先頭アドレスおよびポリゴン数に書き換える処理のことである。
【0090】
ここで、図17に示したように、精密ポリゴンデータテーブルでは、異なるオブジェクト番号に対しても、同じ先頭アドレスおよびポリゴン数が設定されることがある理由について説明する。上述したように、精密ポリゴンデータが存在するオブジェクトについては、精密ポリゴンデータを読み込んだ後、基準点の座標が通常のポリゴンデータの基準点の座標に一致するように、精密ポリゴンデータを移動あるいは回転させる。ここで、異なるオブジェクトは必ず異なる三次元座標値を持っているから、たとえ同じ精密ポリゴンデータを読み込んだ場合でも、移動あるいは回転後は、異なった精密ポリゴンデータとなっている。従って、オブジェクト毎にメインメモリ110の異なる領域でこうした操作を行っておけば、元の精密ポリゴンデータは同じデータを使用することが可能であり、このため、精密ポリゴンデータテーブルでは、同じ形状のオブジェクトについては、同じ先頭アドレスおよびポリゴン数が設定されているのである。
【0091】
ステップS104の処理では、精密ポリゴンデータが存在するオブジェクトについて、このようにポリゴンデータを精密ポリゴンデータで差し替える処理を行う。一方、精密ポリゴンデータの存在しないオブジェクトについては、このような処理はスキップすればよい。
【0092】
次いで、画像の撮影条件を設定する処理を開始する(ステップS106)。撮影条件の設定は、ゲーム機100の操作者が、モニタ150に表示された画面を確認しながら行うことができる。図18は、画像の撮影条件を設定するための画面が、モニタ150に表示されている様子を例示した説明図である。図示されているように、撮影条件を設定する画面のほぼ中央には、印刷ボタンを押したときにモニタ150に表示されていた画面を表示するモニタ領域151が設けられている。また、モニタ領域151の周辺には、焦点距離や、絞り、焦点を合わせる位置などを設定するボタンが設けられている。本実施例のゲーム機100では、単にモニタ150に表示されている画面を印刷するのでなく、これらの項目を設定することで、あたかも仮想的なカメラを操作して写真を撮影しているかのようにして、モニタ150上の画像を印刷することが可能となっている。
【0093】
焦点距離の設定は、モニタ領域151の右側に設けられたツマミ153を上下に動かすことで、望遠から広角までの焦点距離を選択することによって行う。また、絞りの設定は、モニタ領域151の右下に設けられたツマミ154を上下に動かすことで、開放側から絞り側までの絞り値を選択することで行う。また、焦点を合わせる位置の設定は、コントローラ102の十字カーソルを操作しながら、モニタ領域151に表示されているカーソル152を、焦点を合わせたい位置まで移動した後、設定画面上の「焦点位置設定」と表示されたボタンを押すことによって設定することができる。こうした設定した撮影条件による効果は、モニタ領域151に表示されている画像に反映されるので、効果を確認しながら撮影条件を設定することができる。そして、所望の撮影条件が決まったら、設定画面上の「OK」と表示されたボタンを押すことによって、設定した撮影条件を確定することができる。図15に示した画像印刷処理のステップS106では、以上のようにして、各種の撮影条件を設定する処理を行う。
【0094】
撮影条件の設定に続いて、レンダリング処理および描画処理を開始する(ステップS108、およびステップS110)。前述したようにレンダリング処理とは、各オブジェクトのポリゴンデータから二次元画像のデータを生成する処理である。かかる処理は、図11を用いて前述したように、視点Qと各オブジェクトとの間に設定した投影面Rへの、各オブジェクトの投影像を算出することによって行うことができる。また、描画処理とは、レンダリング処理によって生成された投影像から、画素毎に階調値が設定された画像データを生成する処理である。図10を用いて前述したゲーム画面表示処理と同様に、レンダリング処理は、CPU101の制御の下でGTE112がオブジェクトテーブルを参照しながら実行し、得られた二次元画像のデータはメインメモリ110に記憶される。撮影条件設定処理で設定された内容は、レンダリング処理における視点Qおよび投影面Rの設定に反映される。また、視点Qに対して遠方あるいは近くにあるオブジェクトに対しては、絞りの設定に応じて、投影像をぼやかすようなフィルタを施すなどの特殊な操作も行われる。
【0095】
続いて行われる描画処理は、CPU101が出力した描画命令を受けてGPU116が実行し、得られた画像データはフレームバッファ114に記憶される。これらレンダリング処理および描画処理の詳細な内容については、ここでは説明を省略する。但し、精密ポリゴンデータが存在するオブジェクトについては、前述したステップS104においてオブジェクトテーブル(図8参照)が書き換えられていることから、コントローラ102の印刷ボタンを押したときにモニタ150に表示されていた通常のポリゴンデータではなく、精密ポリゴンデータに対してレンダリング処理および描画処理が実行される点が異なっている。
【0096】
ゲーム機100のCPU101は、レンダリング処理(ステップS108)および描画処理(ステップS110)に続いて、印刷条件設定処理を開始する(ステップS112)。印刷条件設定処理も、上述したステップS106の撮影条件設定処理と同様に、ゲーム機100の操作者が、モニタ150に表示された画面を確認しながら行うことができる。図19は、画像の印刷条件を設定するための画面が、モニタ150に表示されている様子を例示した説明図である。図示されているように、本実施例のゲーム機100では、印刷条件として、印刷に用いる用紙サイズ、用紙種類、および印刷に際しての印刷モードの3つの項目を設定することが可能となっている。用紙サイズ及び用紙種類の設定は、コントローラ102の十字カーソルを操作することにより、画面上に表示されたカーソル152を用いて用紙サイズを選択することによって行う。また、印刷モードについては、画面に表示されたツマミ158を「きれい」から「速い」までの間で動かすことによって設定することができる。また、これらの条件に加えて、印刷枚数や、いわゆる縁なし印刷を行うか否か、といった項目を設定可能としても良い。以上のようにして、印刷条件を設定したら、設定画面上の「OK」と表示されたボタンを押すことによって、設定した印刷条件を確定する。
【0097】
印刷条件を設定したら、ゲーム機100のCPU101は、フレームバッファ114に記憶されている画像データから印刷データを生成して、カラープリンタ200に出力する処理(印刷データ出力処理)を開始する(ステップS150)。
【0098】
図20は、印刷データ出力処理の流れを示したフローチャートである。印刷データ出力処理を開始すると、CPU101は先ず初めに、解像度変換処理を開始する(ステップS152)。解像度変換処理とは、フレームバッファ114に記憶されている画像データの解像度を、カラープリンタ200が画像を印刷しようとする解像度(印刷解像度)に変換する処理である。また、印刷解像度は、モニタ150の画面を構成している画素数と、印刷しようとする画像の大きさ、すなわち前述した印刷条件設定処理(図15のステップS112)で設定した印刷用紙のサイズによって決定される。
【0099】
そして、画像データの解像度よりも印刷解像度の方が高い場合は、補間演算を行って画素間に新たな画像データを生成することにより解像度を増加させる。逆に、画像データの解像度の方が印刷解像度よりも高い場合は、読み込んだ画像データを一定の比率で間引くことによって解像度を低下させる。解像度変換処理では、フレームバッファ114上の画像データに対して、このような操作を行うことにより、描画処理によって生成した画像データの解像度を印刷解像度に変換する。
【0100】
こうして画像データの解像度を印刷解像度に変換したら、今度は、色変換処理を行う(ステップS154)。色変換処理とは、R,G,Bの階調値の組合せによって表現されているRGBカラー画像データを、印刷のために使用される各色の階調値の組合せによって表現された画像データに変換する処理である。前述したように、ゲーム機100では、画素毎にR,G,B各色の階調値が設定された画像データを生成しているのに対して、カラープリンタ200は、図2に示した様に、C,M,Y,Kの4色のインクを用いて画像を印刷する。そこで、RGB各色によって表現された画像データを、C,M,Y,Kの各色の階調値によって表現されたデータに変換する処理(色変換処理)を行うのである。
【0101】
色変換処理は、色変換テーブル(LUT)を参照することで、迅速に行うことができる。図21は、色変換処理のために参照されるLUTを概念的に示した説明図である。LUTとは、次のように考えれば、三次元の数表の一種と考えることができる。先ず、図21に示されているように、直交する3つの軸にR軸、G軸、B軸を取って色空間を考える。すると、全てのRGB画像データは、必ず色空間内の座標点に対応付けて表すことができる。このことから、R軸、G軸、B軸のそれぞれを細分して色空間内に多数の格子点を設定してやれば、それぞれの格子点はRGBの画像データを表していると考えることができ、RGBの画像データに対応するC,M,Y,K各色の階調値を、各格子点に対応付けてやることができる。LUTは、こうして色空間内に設けた格子点に、C,M,Y,K各色の階調値を対応付けて記憶した3次元の数表と考えることができる。LUTに記憶されているRGBの画像データとC,M,Y,K各色の階調データとの対応関係に基づいて色変換処理を行えば、RGB各色の階調値によって表現された画像データを、C,M,Y,K各色の階調データに迅速に変換することが可能となる。
【0102】
また、印刷用紙が違えば用紙の地色も違うし、インクの発色も異なっている。更には、インクの滲み方も印刷用紙の種類によって異なっており、滲み方の違いは印刷された画像の色合いに影響を与える。このことから、高画質な画像を印刷するためには、印刷用紙の種類に応じて適切なLUTを使い分けることが好ましい。そこで、ステップS154では、前述した印刷条件設定処理(図15のステップS112)で設定された印刷用紙の種類に応じて、予め定められたLUTを使い分けながら、色変換処理を行う。
【0103】
以上のようにして色変換処理を行ったら、ゲーム機100のCPU101は、ハーフトーン処理を開始する(ステップS156)。ハーフトーン処理とは、次のような処理である。色変換処理によって得られた画像データは、データ長を1バイトとすると、画素毎に、階調値0から階調値255までの値を取り得る階調データである。これに対してカラープリンタ200はドットを形成することによって画像を表示しているから、それぞれの画素については「ドットを形成する」か「ドットを形成しない」かのいずれかの状態しか取り得ない。このためカラープリンタ200では、画素毎の階調値を変化させる代わりに、所定領域内で形成されるドットの密度を変化させることによって中間階調を表現している。ハーフトーン処理とは、画像データの階調値に応じて適切な密度でドットが発生するように、画素毎にドット形成の有無を判断する処理である。
【0104】
階調値に応じた適切な密度でドットを発生させる手法としては、誤差拡散法やディザ法などの種々の手法を適用することができる。誤差拡散法は、ある画素についてドットの形成有無を判断したことでその画素に発生する階調表現の誤差を、周辺の画素に拡散するとともに、周囲から拡散されてきた誤差を解消するように、各画素についてのドット形成の有無を判断していく手法である。発生した誤差を周辺の各画素に拡散させる割合は、誤差拡散マトリックスに予め設定されている。また、ディザ法は、ディザマトリックスに設定されている閾値と画像データの階調値とを画素毎に比較して、画像データの方が大きい画素にはドットを形成すると判断し、逆に閾値の方が大きい画素についてはドットを形成しないと判断することで、各画素についてドット形成の有無を判断していく手法である。本実施例の印刷データ出力処理では、いずれの手法を用いることもできるが、ここではディザ法と呼ばれる手法を用いてハーフトーン処理を行うものとする。
【0105】
図22は、ディザ法で参照される一般的なディザマトリックスの一部を拡大して例示した説明図である。図示したマトリックスには、縦横それぞれ64画素、合計4096個の画素に、階調値0〜255の範囲から万遍なく選択された閾値が設定されている。ここで、閾値の階調値が0〜255の範囲から選択されているのは、本実施例では画像データが1バイトデータであり、画素に設定される階調値が0〜255の値を取り得ることに対応するものである。尚、ディザマトリックスの大きさは、図22に例示したように縦横64画素分に限られるものではなく、縦と横の画素数が異なるものも含めて種々の大きさとすることができる。
【0106】
図23は、ディザマトリックスを参照しながら、画素毎にドット形成の有無を判断している様子を概念的に示した説明図である。ドット形成有無の判断に際しては、先ず、判断の対象として着目している画素(着目画素)についての画像データの階調値と、ディザマトリックス中の対応する位置に記憶されている閾値とを比較する。図中に示した細い破線の矢印は、着目画素の階調値を、ディザマトリックス中の対応する位置に記憶されている閾値と比較していることを模式的に表したものである。そして、ディザマトリックスの閾値よりも着目画素の階調値の方が大きい場合には、その画素にはドットを形成するものと判断する。逆に、ディザマトリックスの閾値の方が大きい場合には、その画素にはドットを形成しないものと判断する。
【0107】
図23に示した例では、画像データの左上隅にある画素の画像データは階調値180であり、ディザマトリックス上でこの画素に対応する位置に記憶されている閾値は1である。従って、左上隅の画素については、画像データの階調値180の方がディザマトリックスの閾値1よりも大きいから、この画素にはドットを形成すると判断する。図23中に実線で示した矢印は、この画素にはドットを形成すると判断して、判断結果をメモリに書き込んでいる様子を模式的に表したものである。一方、この画素の右隣の画素については、画像データの階調値は130、ディザマトリックスの閾値は177であり、閾値の方が大きいので、この画素についてはドットを形成しないものと判断する。ディザ法では、このようにディザマトリックスを参照しながらドットを発生させる。
【0108】
図20に示した印刷データ出力処理のステップS156では、色変換処理によって変換されたC,M,Y,K各色の階調値毎に、以上のようにしてドット形成の有無を判断する処理を行う。
【0109】
以上のようにしてハーフトーン処理を終了すると、ゲーム機100のCPU101は、インターレース処理を開始する(ステップS158)。インターレース処理とは、ドットの形成有無による表現形式に変換された画像データを、ドットが実際に印刷用紙上に形成される順序を考慮しながら、カラープリンタ200に転送する順序に並べ替える処理である。ゲーム機100のCPU101は、インターレース処理を行って画像データを並べ替えた後、最終的に得られたデータを、GPU116からカラープリンタ200に印刷データとして出力する(ステップS160)。そして、全ての印刷データをカラープリンタ200に出力したら、図20に示す印刷データ出力処理を終了して、図15の画像印刷処理に復帰する。
【0110】
画像印刷処理では、印刷データ出力処理から復帰すると、ゲーム復帰処理を行う(ステップS114)。ゲーム復帰処理は、図15に示した画像印刷処理を終了して、ゲームを再開するための処理である。すなわち、上述した画像印刷処理は、前述したようにコントローラ102の印刷ボタンが押されると、ゲーム機100のCPU101が割り込みを発生させて、進行中のゲームを一旦、中断した状態で開始される。そこで、画像印刷処理の終了に先立って、CPU101は、プログラムカウンタや各種データを、ゲームの中断前の状態に復帰させて、ゲームを再開するための準備を行うのである。前述したように、精密ポリゴンデータが存在するオブジェクトについては、画像印刷処理の中でオブジェクトテーブルの設定値も書き換えられているので、これらについても、ゲーム復帰処理で元の設定値に戻されることになる。
【0111】
こうしてゲーム復帰処理を終了したら(ステップS114)、図15に示した画像印刷処理を終了する。プログラムカウンタを始めとする各種の変数およびデータは、ゲーム中断前の状態に戻っているので、中断したところからゲームを再開することが可能となる。
【0112】
一方、カラープリンタ200は、このようにしてGPU116から供給された印刷データに従って、印刷用紙上にドットを形成することにより画像を印刷する。すなわち、図2を用いて前述したように、キャリッジモータ230および紙送りモータ235を駆動することによってキャリッジ240の主走査および副走査を行い、これらの動きに合わせて印字ヘッド241を駆動してインク滴を吐出することによりインクドットを形成する。その結果、モニタ150の画面に表示されているものと、同じ場面の印刷画像が得られることになる。
【0113】
上述したように、画像印刷処理では精密ポリゴンデータから印刷データを生成しているため、印刷データではオブジェクトの表面が、曲面部分を含めて滑らかな表面として表現されている。従って、このような印刷データに基づいて得られた印刷画像では、オブジェクトの表面がゴツゴツすることがなく、あたかも実在する対象を写真で撮影したかのような印刷画像を得ることができる。また、ゲーム中は、大きめのポリゴンから生成されたポリゴンデータを用いているため、ゲーム中は画像を迅速に表示することが可能である。
【0114】
D.第1実施例のプリンタ情報表示処理 :
以上に説明したように、ゲーム機100にはカラープリンタ200が接続されており、ゲーム機100からカラープリンタ200に画像データを供給することで、モニタ150の画面に表示された画像を印刷することが可能となっている。もっとも、例えば画像の印刷中に、カラープリンタ200に搭載されているインクや印刷用紙が無くなってしまった場合などには、新たなインクカートリッジや印刷用紙の補充を促すために、これを報知する必要が生じる。このような場合、インク切れの発生や用紙切れの発生を表すコードデータをカラープリンタからゲーム機100に向かって出力し、ゲーム機100のモニタ150上に、コードデータに応じたメッセージを表示して報知するのが一般的である。
【0115】
しかし、これでは、カラープリンタから出力されたコードデータを解釈するためのデータを、ゲーム機100に予め記憶しておく必要がある。また、ゲーム機100が発売される時点で知られているプリンタであれば、予めデータを記憶しておくことも不可能ではないが、ゲーム機100の発売後に、新たな機能が搭載されたプリンタが開発されたり、あるいは新たなインク色を搭載したプリンタが開発された場合などには、これらプリンタから出力される全てのコードデータを解釈するためのデータを、予めゲーム機100に記憶しておくことはできない。こうした点に鑑みて、本実施例のゲーム機100では、次のような処理を行うことにより、プリンタの情報を表示することとしている。
【0116】
図24は、第1実施例のプリンタ情報表示処理に流れを示すフローチャートである。かかる処理は、ゲーム機100に搭載されたCPU101によって実行される処理である。図示されているように、プリンタ情報表示処理では、先ず初めに、カラープリンタ200から表示要求があったか否かを判断する(ステップS200)。すなわち、カラープリンタ200でインク切れや用紙切れが発生するなど、何らかの理由でプリンタの操作者に報知しなければならない事態が発生した場合には、カラープリンタ200から特別な制御コードが出力される。ゲーム機100のCPU101は、この制御コードを受け取ると、カラープリンタ200が何らかのメッセージの表示を要求しているものと判断する。尚、ここでは、便宜上、プリンタからの表示要求があったか否かをCPU101が常に監視しているものとして説明するが、必ずしも常に監視している必要はなく、カラープリンタ200から表示要求の制御コードが出力されると、これを受けて割り込みを発生させることによって、プリンタ状態表示処理を開始することとしても良い。
【0117】
プリンタから表示要求があったと判断された場合(ステップS200:yes)、ゲーム機100のCPU101は、モニタ150に、プリンタ情報表示画面を用意する(ステップS202)。図25は、モニタ150にプリンタ情報表示画面が表示された状態を示した説明図である。図示されているように、プリンタ情報表示画面には、「OK」ボタンと、「Cancel」ボタンの2つのボタンと、「プリンタ情報」という画面のタイトルとが表示されているが、プリンタ情報の内容が表示される領域(プリンタ情報表示領域)は、何も表示されていない空白の状態となっている。図25では、プリンタ情報表示領域は、斜線を付して表示されている。
【0118】
図25に示すようなプリンタ情報表示画面を表示すると、CPU101は、カラープリンタ200から出力されてきたデータを、プリンタ情報表示領域に表示する(ステップS204)。図26は、カラープリンタ200から出力されたデータが、プリンタ情報表示領域に表示された様子を示す説明図である。図示した例では、プリンタ情報表示領域には、文字のみが表示されている。従って、このような場合には、カラープリンタ200は、情報の表示を要求する制御コードに続いて、表示しようとする内容が記載されたテキストデータを出力すればよい。制御コードを受け取ったゲーム機100のCPU101は、図25に例示したプリンタ情報表示画面を用意した後、カラープリンタ200から受け取ったテキストデータをプリンタ情報表示領域に表示するだけで、図26に示すような画面がモニタ150に表示され、プリンタの情報を表示することができる。
【0119】
こうして、カラープリンタ200から受け取ったデータを、プリンタ情報表示領域に表示したら、モニタ150の画面上に「OK」と表示されたボタン(確認ボタン)が押されたことを確認し(ステップS206)、確認ボタンが押されたことが確認できたら(ステップS206:yes)、図26に示したプリンタ情報表示画面を閉鎖して(ステップS208)、図24のプリンタ情報表示処理を終了する。
【0120】
以上に説明したプリンタ情報表示処理では、予め用意されたプリンタ情報表示画面に、カラープリンタ200から供給されたデータをそのまま表示するだけで、カラープリンタ200の情報を適切に表示することができる。すなわち、カラープリンタ200から出力されるコードデータを解釈するためのデータを、ゲーム機100に予め記憶しておく必要がないので、どのようなプリンタが接続された場合でも、接続されたプリンタに対応した適切な内容の表示を行うことができる。
【0121】
例えば、カラープリンタに特別な色のインクが搭載されていて、そのインクが無くなった場合でも、ゲーム機100のCPU101は、単にプリンタ情報表示画面を用意して、カラープリンタ200から供給されたデータを表示するだけで、特殊なインクが無くなってしまったことを、プリンタの操作者に適切に認識させることができる。もちろん、カラープリンタ200には、画面に表示するためのデータを予め記憶しておく必要があり、そのための記憶容量が必要となるが、1機種分のデータを記憶すればよいので、僅かな容量で記憶することができる。また、たとえカラープリンタ200の仕向地が異なる場合でも、プリンタに記憶しておくデータを仕向地の言語で記述しておけば、ゲーム機100の側には何らの変更を加えずとも、プリンタの情報を適切に表示することができる。
【0122】
図27は、カラープリンタ200からのデータが英語で記述されていた場合を例示した説明図である。図示されているように、プリンタから出力されるデータが仕向地の言語で記述されていれば、ゲーム機100のCPU101は受け取ったデータを画面に表示するだけで、プリンタの情報を仕向地の言語で適切に表示することが可能となる。このように、本実施例のプリンタ情報表示処理によれば、ゲーム機100に接続されるプリンタが、どのような機種の、どのような仕向地のものであっても、ゲーム機100の側では何ら特別な対応をせずとも、プリンタが出力する情報を適切に表示することが可能である。
【0123】
また、本実施例のプリンタ情報表示処理によれば、カラープリンタ200が情報を表示する処理も極めて簡単な処理となる。すなわち、ゲーム機100に向かって表示要求を出力した後、予め記憶しておいたデータをゲーム機100に出力するだけで、モニタ150の画面に情報を表示することができる。更に、各プリンタには、そのプリンタの機種に対応するデータが記憶されているから、モニタ150に表示された内容は、必ずプリンタの機種に対応した適切な内容とすることができる。
【0124】
以上の説明では、カラープリンタ200からはテキストデータの形式でデータが出力されるものとしたが、カラープリンタ200から出力するデータはテキストデータに限らず、画像データを出力することも可能である。画像データのデータ形式は、例えば、ビットマップ形式や、GIFF形式、JPEG形式など、汎用的なデータ形式であれば、どのようなデータ形式で記述されていてもよい。
【0125】
図28は、プリンタ情報表示領域に、テキストデータと、画像データとが表示されている様子を概念的に示した説明図である。このような情報を表示する場合は、カラープリンタ200から出力されるデータに、テキストデータの形式で記述されていることを示す情報と、画像データの形式で記述されていることを示す情報とを組み込んでおけばよい。このようなデータ形式としては、いわゆるHTML文書の様な、マークアップ言語で記述されたデータを好適に用いることができる。そして、ゲーム機100では、受け取ったデータを画面に表示する際に、テキストデータの形式で記述されている部分はテキストの形態で表示し、画像データの形式で記述されている部分は画像の形態で表示してやれば良い。
【0126】
また、図28に例示されている画像には、接続されているカラープリンタ200の外観形状が表されており、更に給紙スイッチの位置が矢印によって示されている。プリンタの外観形状や、給紙スイッチの位置などはプリンタの機種によって異なっているが、本実施例のプリンタ情報表示処理では、カラープリンタ200からデータを供給しているために、ゲーム機100では、接続されているプリンタの機種を何ら識別することなく、適切な情報を表示することが可能である。
【0127】
更には、カラープリンタ200から、複数回に分けてデータを出力することとしても良い。図29は、カラープリンタ200から複数回に分けてデータを出力する態様を例示した説明図である。図示されているように、例えば、印刷を開始すると、先ず初めに、カラープリンタ200から図29(a)に示すような画像データを出力して、モニタ150の画面に表示する。次いで、画像の印刷がある程度進んだ段階で、図29(b)に示すような画像データを出力する。こうすれば、ゲーム機100では、単にカラープリンタ200から供給されたデータを表示しているだけで、カラープリンタ200における処理の進行状況に応じた表示を行うことが可能となる。
【0128】
更には、カラープリンタ200から音声データを出力してもよい。あるいは、テキストや、画像に、音声を組み合わせた状態で記述したデータを出力することとしても良い。カラープリンタ200から出力されるデータを、いわゆるHTMLなどのマークアップ言語で記述しておけば、テキスト、画像、音声など、データの記述形態に応じたタグを書き込むことで、これら形態を組み合わせて記述することが可能となる。
【0129】
E.第2実施例のプリンタ情報表示処理 :
以上に説明した第1実施例のプリンタ情報表示処理では、もっぱらプリンタからの表示要求に応じて、プリンタから供給されるデータを表示(音声データの場合は再生)していた。このように、ゲーム機100が受け身的に表示する場合は、表示の内容は、いきおいプリンタの動作状態に関するものになりがちである。しかし、ゲーム機100の側からプリンタに対して積極的にデータを要求して、得られたデータを表示することも可能である。以下では、このような第2実施例のプリンタ情報表示処理について説明する。
【0130】
図30は、第2実施例のプリンタ情報表示処理の流れを示すフローチャートである。かかる処理も、前述した第1実施例のプリンタ情報表示処理と同様に、ゲーム機100に搭載されたCPU101によって実行される処理である。以下、フローチャートに従って説明する。
【0131】
第2実施例のプリンタ情報表示処理は、例えばゲーム機100の操作者がコントローラ102に設けられた所定のボタンを押すと、ゲーム機100のCPU101が割り込みを発生させることによって開始される。尚、以下では、理解の便宜を図って具体的に説明するために、プリンタのヘルプ情報を表示する場合について説明する。
【0132】
図示されているように、第2実施例のプリンタ情報表示処理では、先ず初めに、プリンタヘルプ表示画面を用意する(ステップS300)。図31は、モニタ150にプリンタヘルプ表示画面が表示された状態を示した説明図である。図示されているように、プリンタヘルプ表示画面には、「戻る」ボタンと、「次へ」ボタンと、「閉じる」ボタンの3つのボタンと、「プリンタヘルプ」という画面のタイトルと、プリンタのヘルプ情報が表示される領域(プリンタヘルプ表示領域)とが設けられている。尚、図31では、プリンタヘルプ表示領域は、斜線を付して表示されている。
【0133】
ゲーム機100のCPU101は、このようなプリンタヘルプ画面を表示したら、カラープリンタ200に向かって、ヘルプデータを要求する制御コードを出力する(図30のステップS302)。カラープリンタ200は、ヘルプデータを要求する制御コードを受け取ると、予め記憶されているヘルプデータをゲーム機100に向かって出力する。このヘルプデータは、テキスト、画像、音声、あるいはこれらを組み合わせた形態で記述されて、カラープリンタ200に予め記憶されている。
【0134】
ゲーム機100のCPU101は、カラープリンタ200から出力されてきたヘルプデータを受け取ると、先に用意しておいたプリンタヘルプ表示領域に、受け取ったデータを表示する(ステップS304)。尚、データに音声データが含まれている場合は、音声データの再生も行う。図32は、このようにしてカラープリンタ200から出力されたヘルプデータが、プリンタヘルプ表示画面の所定の領域に表示されている様子を示した説明図である。カラープリンタ200から出力されたヘルプデータは、プリンタヘルプ表示領域では表示しきれないので、画面に設けられた「次へ」ボタン、あるいは「戻る」ボタンを押すことによって、表示領域を切り換えることができる。こうした機能は、ゲーム機100に搭載された画面表示機能(具体的には、ブラウザ)によって実現されている。図30に示した第2実施例のプリンタ情報表示処理のステップS304では、このように、カラープリンタ200から受け取ったヘルプデータの中から、指示された箇所のデータを読み出して、画面上に表示する処理を行う。
【0135】
そして、プリンタヘルプ画面に設けられた「閉じる」ボタンが押されたことが確認されたら(ステップS306:yes)、図32に示したプリンタヘルプ画面を閉鎖して(ステップS308)、図30に示した第2実施例のプリンタ情報表示処理を終了する。
【0136】
以上に説明した第2実施例のプリンタ情報表示処理においても、モニタ150の画面上に予め用意された領域に、カラープリンタ200から供給されたデータをそのまま表示するだけで、カラープリンタ200の情報を適切に表示することができる。従って、ゲーム機100に接続されるプリンタが、どのような機種の、どのような仕向地のものであっても、ゲーム機100の側では何ら特別な対応をせずとも、プリンタが出力する情報を適切に表示することが可能である。
【0137】
以上、各種の実施例について説明してきたが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。
【0138】
例えば、上述した各種実施例では、画像データを供給する機器は、ゲーム機100であるものとして説明した。しかし、上述した各種のプリンタ情報表示処理は、何ら高度な処理能力を必要とせずに実行することができるので、カラープリンタ200に画像データを供給するどのような機器であっても、極めて容易に実施することができる。例えば、デジタルカメラや、携帯電話など、モニタ画面を有する機器であれば、どのような機器でも適切に実行することが可能である。
【0139】
もちろん、プリンタに画像データを供給する機器が、コンピュータのような高度な処理能力を有する機器であっても構わない。このような場合も、画像データを供給する側では、どのようなプリンタが接続されているかを何ら意識することなく、プリンタが出力する情報を適切に表示することが可能となる。
【図面の簡単な説明】
【0140】
【図1】ゲーム機とカラープリンタとによって構成される本実施例の画像出力システムを示した説明図である。
【図2】本実施例の画像出力システムを構成するカラープリンタの概略構成を示す説明図である。
【図3】インク吐出用ヘッドにおけるインクジェットノズルの配列を示す説明図である。
【図4】モニタ上にゲーム中の画面が表示されている様子を例示した説明図である。
【図5】モニタの画面上で二次元画像がそのまま表示されている領域をハッチングを付して表した説明図である。
【図6】メインキャラクタである飛行艇の形状を示す斜視図である。
【図7】メインキャラクタの飛行艇の形状を細かな平面多角形によって表現した様子を概念的に示した説明図である。
【図8】画像出力システムを構成するゲーム機において各オブジェクトのポリゴンデータを管理するためのオブジェクトテーブルを概念的に示した説明図である。
【図9】オブジェクトの形状を示したポリゴンデータのデータ構造を示す説明図である。
【図10】画像出力システムを構成するゲーム機がゲーム中の画面をモニタに表示する処理の概要を示したフローチャートである。
【図11】レンダリング処理の概要を示した説明図である。
【図12】オブジェクトを構成するポリゴンの頂点座標を、二次元平面の座標点に投影する変換式を例示した説明図である。
【図13】レンダリング処理によって生成された投影像を概念的に示した説明図である。
【図14】レンダリング処理によって生成された画像を描画するために出力される描画命令のデータ構造を概念的に示した説明図である。
【図15】ゲーム機からカラープリンタに画像データを供給することによって画像を印刷する処理の流れを示すフローチャートである。
【図16】メインキャラクタである飛行艇の三次元的な形状が小さなポリゴンによって表現されている様子を概念的に示した説明図である。
【図17】精密ポリゴンデータの有無を判断するために参照されるテーブルを概念的に示した説明図である。
【図18】画像の撮影条件を設定するための画面がモニタに表示されている様子を例示した説明図である。
【図19】画像の印刷条件を設定するための画面がモニタに表示されている様子を例示した説明図である。
【図20】印刷データ出力処理の流れを示したフローチャートである。
【図21】色変換処理のために参照されるLUTを概念的に示した説明図である。
【図22】ディザ法で参照される一般的なディザマトリックスの一部を拡大して例示した説明図である。
【図23】ディザマトリックスを参照しながら画素毎にドット形成の有無を判断している様子を概念的に示した説明図である。
【図24】第1実施例のプリンタ情報表示処理の流れを示すフローチャートである。
【図25】モニタにプリンタ情報表示画面が表示された状態を示した説明図である。
【図26】カラープリンタから出力されたデータがプリンタ情報表示領域に表示された様子を示す説明図である。
【図27】カラープリンタからのデータが英語で記述されていた場合を例示した説明図である。
【図28】プリンタ情報表示領域にテキストデータと画像データとが表示されている様子を概念的に示した説明図である。
【図29】カラープリンタから複数回に分けてデータを出力する態様を例示した説明図である。
【図30】第2実施例のプリンタ情報表示処理の流れを示すフローチャートである。
【図31】モニタにプリンタヘルプ表示画面が表示された状態を示した説明図である。
【図32】カラープリンタから出力されたヘルプデータがプリンタヘルプ表示画面の所定の領域に表示されている様子を示した説明図である。
【符号の説明】
【0141】
100...ゲーム機、 101...CPU、 110...メインメモリ
112...GTE、 114...フレームバッファ、 116...GPU
150...モニタ、 200...カラープリンタ
【特許請求の範囲】
【請求項1】
画像を出力する画像出力装置と、該画像出力装置に画像データを供給する画像データ供給装置とを備える画像出力システムにおいて、
前記画像出力装置には、該出力装置の操作者に対する情報を、文書、画像、または音声の少なくとも何れかの形態を含んで出力する情報出力手段が設けられており、
前記画像データ供給装置には、前記画像出力装置から出力された情報を、受け取った形態に従って再生する情報再生手段が設けられていることを特徴とする画像データ出力システム。
【請求項2】
請求項1記載の画像出力システムにおいて、
前記情報出力手段は、前記操作者に対する情報として、前記画像出力装置の動作状態を出力する手段であることを特徴とする画像出力システム。
【請求項3】
請求項1または請求項2に記載の画像出力システムにおいて、
前記情報出力手段は、前記操作者に対する情報に加えて、該情報が文書、画像、または音声のいずれの形態で記述されているかを示す記述形態データを出力する手段であり、
前記情報再生手段は、前記画像出力装置から出力された情報を、前記記述形態データが示す形態に従って再生する手段であることを特徴とする画像出力システム。
【請求項4】
請求項3記載の画像出力システムにおいて、
前記情報出力手段は、マークアップ言語によって記述された前記情報を、前記画像データ供給装置に出力する手段であることを特徴とする画像出力システム。
【請求項5】
請求項1記載の画像出力システムにおいて、
前記画像出力装置にも、該出力装置の操作者に対する情報を、文書、画像、または音声の少なくとも何れかの形態を含んで再生する情報再生手段が設けられており、
前記情報出力手段は、前記情報再生手段によって再生される情報を、前記画像データ供給装置に出力する手段であることを特徴とする画像出力システム。
【請求項6】
画像データを受け取って画像を出力する画像出力装置において、
前記画像出力装置の操作者に対する情報を、前記画像データを供給する機器に向かって、文書、画像、または音声の少なくとも何れかを含んだ形態で出力することを特徴とする画像出力装置。
【請求項7】
画像データ供給装置に接続された画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知する情報報知方法において、
前記画像出力装置の操作者に報知するべき情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データ供給装置に向かって出力する第1の工程と、
前記画像出力装置から出力された情報を、受け取った形態に従って再生する第2の工程と
を備えることを特徴とする情報報知方法。
【請求項8】
画像データを受け取って画像を出力する画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知する情報報知方法において、
前記画像出力装置の操作者に報知するべき情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データを供給する機器に向かって出力する工程を備えることを特徴とする情報報知方法。
【請求項9】
画像データ供給装置に接続された画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知する方法を、コンピュータを用いて実現するプログラムにおいて、
前記画像出力装置の操作者に報知するべき情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データ供給装置に向かって出力する第1の機能と、
前記画像出力装置から出力された情報を、受け取った形態に従って再生する第2の機能と
を実現することを特徴とするプログラム。
【請求項10】
画像データを受け取って画像を出力する画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知する方法を、コンピュータを用いて実現するプログラムにおいて、
前記画像出力装置の操作者に報知する情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データを供給する機器に向かって出力する機能を実現することを特徴とするプログラム。
【請求項1】
画像を出力する画像出力装置と、該画像出力装置に画像データを供給する画像データ供給装置とを備える画像出力システムにおいて、
前記画像出力装置には、該出力装置の操作者に対する情報を、文書、画像、または音声の少なくとも何れかの形態を含んで出力する情報出力手段が設けられており、
前記画像データ供給装置には、前記画像出力装置から出力された情報を、受け取った形態に従って再生する情報再生手段が設けられていることを特徴とする画像データ出力システム。
【請求項2】
請求項1記載の画像出力システムにおいて、
前記情報出力手段は、前記操作者に対する情報として、前記画像出力装置の動作状態を出力する手段であることを特徴とする画像出力システム。
【請求項3】
請求項1または請求項2に記載の画像出力システムにおいて、
前記情報出力手段は、前記操作者に対する情報に加えて、該情報が文書、画像、または音声のいずれの形態で記述されているかを示す記述形態データを出力する手段であり、
前記情報再生手段は、前記画像出力装置から出力された情報を、前記記述形態データが示す形態に従って再生する手段であることを特徴とする画像出力システム。
【請求項4】
請求項3記載の画像出力システムにおいて、
前記情報出力手段は、マークアップ言語によって記述された前記情報を、前記画像データ供給装置に出力する手段であることを特徴とする画像出力システム。
【請求項5】
請求項1記載の画像出力システムにおいて、
前記画像出力装置にも、該出力装置の操作者に対する情報を、文書、画像、または音声の少なくとも何れかの形態を含んで再生する情報再生手段が設けられており、
前記情報出力手段は、前記情報再生手段によって再生される情報を、前記画像データ供給装置に出力する手段であることを特徴とする画像出力システム。
【請求項6】
画像データを受け取って画像を出力する画像出力装置において、
前記画像出力装置の操作者に対する情報を、前記画像データを供給する機器に向かって、文書、画像、または音声の少なくとも何れかを含んだ形態で出力することを特徴とする画像出力装置。
【請求項7】
画像データ供給装置に接続された画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知する情報報知方法において、
前記画像出力装置の操作者に報知するべき情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データ供給装置に向かって出力する第1の工程と、
前記画像出力装置から出力された情報を、受け取った形態に従って再生する第2の工程と
を備えることを特徴とする情報報知方法。
【請求項8】
画像データを受け取って画像を出力する画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知する情報報知方法において、
前記画像出力装置の操作者に報知するべき情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データを供給する機器に向かって出力する工程を備えることを特徴とする情報報知方法。
【請求項9】
画像データ供給装置に接続された画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知する方法を、コンピュータを用いて実現するプログラムにおいて、
前記画像出力装置の操作者に報知するべき情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データ供給装置に向かって出力する第1の機能と、
前記画像出力装置から出力された情報を、受け取った形態に従って再生する第2の機能と
を実現することを特徴とするプログラム。
【請求項10】
画像データを受け取って画像を出力する画像出力装置の操作に伴う情報を、該画像出力装置の操作者に報知する方法を、コンピュータを用いて実現するプログラムにおいて、
前記画像出力装置の操作者に報知する情報を、文書、画像、または音声の少なくとも何れかを含んだ形態で、前記画像データを供給する機器に向かって出力する機能を実現することを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【公開番号】特開2006−150912(P2006−150912A)
【公開日】平成18年6月15日(2006.6.15)
【国際特許分類】
【出願番号】特願2004−349130(P2004−349130)
【出願日】平成16年12月1日(2004.12.1)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成18年6月15日(2006.6.15)
【国際特許分類】
【出願日】平成16年12月1日(2004.12.1)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]