JP2006154884A - 画像データ生成装置、および印刷装置 - Google Patents

画像データ生成装置、および印刷装置 Download PDF

Info

Publication number
JP2006154884A
JP2006154884A JP2004339913A JP2004339913A JP2006154884A JP 2006154884 A JP2006154884 A JP 2006154884A JP 2004339913 A JP2004339913 A JP 2004339913A JP 2004339913 A JP2004339913 A JP 2004339913A JP 2006154884 A JP2006154884 A JP 2006154884A
Authority
JP
Japan
Prior art keywords
data
image
polygon
print
image data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2004339913A
Other languages
English (en)
Inventor
Tsutomu Otani
勤 大谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2004339913A priority Critical patent/JP2006154884A/ja
Publication of JP2006154884A publication Critical patent/JP2006154884A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Image Generation (AREA)

Abstract

【課題】 モニタ画面に表示された画像を写真のような高い画質で印刷する。
【解決手段】 ポリゴンによって物体の三次元形状を表したポリゴンデータから、二次元画像を生成してモニタ画面に表示する。モニタ画面に表示された二次元画像の印刷命令を受け取った場合には、該二次元画像の画像データか、該二次元画像の生成に用いたポリゴンデータの少なくとも一方を取得することにより、該二次元画像と物体の配置が同一で、且つ、該ポリゴンデータよりも小さなポリゴンに基づく画像データを生成する。こうして得られた画像データを印刷データとして用いて画像を印刷すれば、物体の三次元形状が細かなポリゴンによって正確に表現された画像を印刷することができるので、モニタ画面に表示された画像を、写真のような高い画質で印刷することが可能となる。
【選択図】 図15

Description

この発明は、コンピュータグラフィックス技術を用いて作成した3次元データから、2次元画像を生成して印刷する技術に関する。
近年では、いわゆるコンピュータグラフィックス(CG)技術の進歩により、想像によって作り上げた架空の世界を、あたかも実在するかのように表現することが可能となっている。また、こうした技術を利用して、実在するかのように表現された仮想的な世界の中を、これも実在するかのように表現されたキャラクタを動かしてゲームを進めるゲーム機も開発されており、現在では広く使用されている。
CG上で3次元の物体を扱う場合、物体の表面を小さな平面多角形に分割して、これら多角形の集まりによって表現する方法を用いることが一般的である。このように、物体の形状を規定するために用いられる平面多角形は「ポリゴン」と呼ばれている。ポリゴンは平面であるから、ポリゴンを用いて表現した物体は表面がゴツゴツした感じとなり、違和感を与えるおそれがあるが、こうした問題はポリゴンの大きさを小さくすることによって、事実上問題とならない程度まで改善することができる。もちろん、ポリゴンの大きさを小さくすれば、物体を構成するポリゴン数が増加するので、画像を迅速に表示することは困難となる。そこでポリゴンの大きさは、物体を実在する物のように表現することに対する要求と、画像の表示速度との兼ね合いから決定されている。
CG技術を活用したゲーム機では、画像の表示速度に対する要求は更に大きなものとなる。すなわちゲーム機では、ゲームを行う者の操作に反応してキャラクタを速やかに動かさなければならず、このためには画像の表示を迅速に行う必要がある。その一方で、ゲーム中はキャラクタが動いていることが多く、表面のゴツゴツした感じは目立ち難いという特性がある。そこでゲーム機では、物体を真実らしく表現することよりも、画像の表示速度に比重を置いてポリゴンの大きさが設定されている。また、ポリゴンによって表現された物体を、より本物らしく表現しながら、画像を迅速に表示可能とするために、種々の技術が開発され、提案されている(例えば、特許文献1、特許文献2など)。
特開平7−262387号公報 特開平8−161510号公報
しかし、たとえ画面上では実在する物のように表現されていたとしても、例えば紙媒体などの様に、より鮮明に画像を表示可能な媒体に印刷すると、物体表面がゴツゴツしていることが分かってしまうという問題があった。印刷した画像で、物体表面がゴツゴツしていることが分かってしまうと、もはや画面上に表示された画像でさえも、仮想的に表現されたものであることが気になってしまうと言う問題があった。
この発明は従来技術における上述した課題を解決するためになされたものであり、画面上に表示されている物体を、紙媒体などのより鮮明に表示可能な媒体に印刷した場合でも、実在する物であるかのように表現可能とする技術の提供を目的とする。
上述した課題の少なくとも一部を解決するために、本発明の画像データ生成装置は、次の構成を採用した。すなわち、
物体の表面を複数のポリゴンに分割し、該各々のポリゴンを構成する頂点の座標によって該物体の三次元形状を表現したポリゴンデータから、該物体の二次元画像を表す画像データを生成する画像データ生成装置であって、
前記ポリゴンデータから生成された前記画像データに基づいて、前記物体の二次元画像を画面上に表示する画像表示手段と、
前記画面上に表示された二次元画像の印刷命令を受け取ると、前記画像データまたは該画像データの生成に用いられた前記ポリゴンデータの少なくとも一方を取得することにより、該二次元画像と前記物体の配置が同一で、且つ、該ポリゴンデータよりも小さなポリゴンに基づく画像データを、該二次元画像を印刷するための印刷データとして生成する印刷データ生成手段と
を備えることを要旨とする。
また、上記の画像データ生成装置に対応する本発明の画像データ生成方法は、
物体の表面を複数のポリゴンに分割し、該各々のポリゴンを構成する頂点の座標によって該物体の三次元形状を表現したポリゴンデータから、該物体の二次元画像を表す画像データを生成する画像データ生成方法であって、
前記ポリゴンデータから生成された前記画像データに基づいて、前記物体の二次元画像を画面上に表示する第1の工程と、
前記画面上に表示された二次元画像の印刷命令を受け取ると、前記画像データまたは該画像データの生成に用いられた前記ポリゴンデータの少なくとも一方を取得することにより、該二次元画像と前記物体の配置が同一で、且つ、該ポリゴンデータよりも小さなポリゴンに基づく画像データを、該二次元画像を印刷するための印刷データとして生成する第2の工程と
を備えることを要旨とする。
かかる本発明の画像データ生成装置および画像データ生成方法においては、ポリゴンデータから画像データを生成して二次元画像を画面上に表示する。画面に表示されている二次元画像の印刷命令を受け取ると、該二次元画像の生成に用いられた画像データ、もしくは、該画像データを生成するために使用したポリゴンデータの少なくとも一方を取得して、該二次元画像と前記物体の配置が同一で、且つ、該ポリゴンデータよりも小さなポリゴンに基づく画像データを生成する。ここで、小さなポリゴンから生成された画像データを生成するに際しては、一旦、小さなポリゴンによって構成されたポリゴンデータを生成し、次いで、生成したポリゴンデータに基づいて画像データを生成することができる。あるいは、新たに生成したポリゴンデータに基づいて画像データを生成するのではなく、画像データに所定の処理を施すことによって、小さなポリゴンから生成された画像データを生成することとしてもよい。また、画面に表示された二次元画像の画像データ、もしくは、その画像データを生成するために用いられたポリゴンデータの少なくとも一方を取得しておけば、表示されている二次元画像と物体の配置が一致する画像データを生成することができる。例えば、小さなポリゴンによるポリゴンデータを、取得したポリゴンデータと同じ位置に生成してもよい。あるいは、小さなポリゴンのポリゴンデータによる二次元画像が、画像データを取得した二次元画像と重なるように、小さなポリゴンによって表現される物体を移動あるいは回転させることとしても良い。このようにして、小さなポリゴンから生成された画像データが得られたら、この画像データを、画面上に表示されている画像を印刷するための印刷データとする。
このようにして得られた印刷データは、小さなポリゴンから生成された画像データとなっているので、たとえ、紙媒体などの様に鮮明に画像を表示可能な媒体上に印刷した場合でも、物体表面がゴツゴツした画像となることがなく、あたかも実在する物体を撮影した写真のような、高画質な画像を得ることができる。また、こうして印刷された画像は、画面上に表示された二次元画像と、物体の配置が同一となっているので、画面上の二次元画像をそのまま印刷したかのような印象を与えることができる。このため、印刷して得られた高画質な画像が、そのまま画面に表示されているかのような印象を与えることになり、画面の表示を実際の表示以上に実物らしく見せるという効果も得ることができる。
かかる画像データ生成装置においては、物体を画面に表示するためのポリゴンデータたる表示用ポリゴンデータと、該表示用ポリゴンデータを構成するポリゴンよりも小さなポリゴンによって構成された精密ポリゴンデータとを記憶しておき、画面上に表示された二次元画像を印刷する場合には、精密ポリゴンデータを使用して、次のようにして印刷データを生成することとしても良い。すなわち、画面上に表示された二次元画像の印刷命令を受け取ると、表示用ポリゴンデータを精密ポリゴンデータに置き換えた後、この精密ポリゴンデータを用いて印刷データを生成する。ポリゴンデータを置き換えるに際しては、表示用ポリゴンデータまたは該表示用ポリゴンデータから生成された画像データの少なくとも一方を取得し、取得したデータを用いて、精密ポリゴンデータを位置合わせしてから置き換えてやる。
このように印刷データを生成することとすれば、物体の形状を正確に表現したポリゴンデータを精密ポリゴンデータとして記憶しておくことで、あたかも実在する物体を撮影して得られた写真のような、高画質な画像を印刷することができる。
また、表示用ポリゴンデータを精密ポリゴンデータに置き換えるに際しては、次のようにして、精密ポリゴンデータの位置合わせを行ってから置き換えることとしても良い。すなわち、少なくとも表示用ポリゴンデータおよび精密ポリゴンデータの何れのデータも記憶されている物体については、該物体に対して所定の位置に設定された少なくとも3つの座標点を、該表示用ポリゴンデータおよび該精密ポリゴンデータの各々の基準点として記憶しておく。ここで、基準点としては、表示用ポリゴンデータのポリゴンを構成する複数の頂点と、精密ポリゴンデータのポリゴンを構成する複数の頂点の中から、何れにも含まれる頂点を選択することもできるし、あるいは、これら頂点とは別の座標値に基準点を設定することも可能である。次いで、精密ポリゴンデータを、物体の三次元形状を維持したまま移動あるいは回転させることにより、表示用ポリゴンデータの基準点と精密ポリゴンデータの基準点とを、少なくとも画面上で一致させる。このとき、表示用ポリゴンデータ側の基準点の三次元座標と、精密ポリゴンデータ側の基準点の三次元座標とが一致していることを確認しても良いし、あるいは、これら基準点が画面上で一致していることを確認しても良い。こうして2つのポリゴンデータの基準点を一致させた状態で、表示用ポリゴンデータを精密ポリゴンデータで置き換えた後に、印刷データを生成することとしてもよい。
このようにして基準点を一致させてから表示用ポリゴンデータを精密ポリゴンデータで置き換えてやれば、精密ポリゴンデータによる画像を、表示用ポリゴンデータによる画像に正確に位置合わせすることができるので、物体の配置が画面の表示と同じとなり、あたかも画面の表示をそのまま印刷したかのような画像を印刷することが可能となる。
また、上述した画像データ生成装置においては、印刷のためのポリゴンデータを予め記憶しておく代わりに、画像の表示に用いたポリゴンデータから印刷用のポリゴンデータを生成することとしてもよい。すなわち、画面に表示された二次元画像の印刷命令を受け取ると、該二次元画像の画像データを生成するために用いられたポリゴンデータを取得して、該ポリゴンデータを構成するポリゴンが複数のポリゴンに分割された印刷用のポリゴンデータを生成する。次いで、この印刷用のポリゴンデータから印刷データを生成することとしてもよい。
こうすれば、印刷用のポリゴンデータを予め記憶しておく必要がないので、記憶容量を節約することが可能となる。また、画面の表示のためのポリゴンデータから、該ポリゴンデータを構成するポリゴンを分割することによって印刷用のポリゴンデータを生成しているため、印刷用ポリゴンデータは画面の表示のためのポリゴンデータと同じ位置に生成されることになる。このため、印刷用ポリゴンデータの位置合わせを行う必要がなく、画面の表示を印刷する処理を簡素なものとすることが可能となる。
あるいは、画面に表示された二次元画像の印刷命令を受け取ると、該二次元画像の画像データを取得して、該二次元画像に含まれるポリゴンを複数のポリゴンに分割することにより、小さなポリゴンから構成された画像データを生成して印刷データとすることとしてもよい。
このようにしても、印刷用のポリゴンデータを予め記憶しておく必要が無い。また、画面に表示された二次元画像の画像データを取得して、該二次元画像に含まれるポリゴンを分割しているので、小さなポリゴンによる画像データは元の画像データと同じ位置に生成することになり、画像データの位置合わせを行う必要もない。
また、ポリゴンデータを構成するポリゴン、あるいは画像データに含まれるポリゴンを分割する場合には、これら分割して生成したポリゴンについては、該ポリゴンの色属性を、隣接するポリゴンの色属性に基づいて決定することとしてもよい。ここで、ポリゴンの色属性としては、単に色彩に限らず、例えば、金属色や、ガラスの色、更には木目や布目など、物体の表面に現れる視覚的な特徴とすることができる。
ポリゴンを複数のポリゴンにしても、必ずしも物体形状の表現精度が向上するわけではないが、分割して生成したポリゴンの色属性を、隣接するポリゴンに基づいて決定してやれば、ポリゴン間の色属性の変化を少なくすることができる。このため、必ずしも物体形状の表現精度が向上していなかったとしても、表面がゴツゴツした感じを抑制することができ、写真の様な高画質な画像を印刷することが可能となる。
また、こうした画像データ生成装置においては、画面に表示された二次元画像の印刷命令に加えて、該二次元画像を印刷するための所定の印刷条件を受け取り、該印刷条件が反映された印刷データを生成することとしてもよい。ここで、印刷条件としては、例えば、印刷媒体の大きさ、印刷媒体の種類などを設定することとしてもよい。
所定の印刷条件として、予め定められた項目について設定しておけば、設定内容を反映させて適切な印刷データを生成することができるので、より高画質な画像を印刷することが可能となる。
あるいは、画面に表示された二次元画像の印刷命令に加えて、該二次元画像に表示された光景を撮影するとしたときの撮影条件を受け取り、受け取った撮影条件が反映された印刷データを生成することとしてもよい。ここで、撮影条件としては、例えば、表示された画面の中で印刷する範囲や、画面の中で焦点を合わせる位置(焦点位置)、更には、焦点深度などを設定することとしてもよい。
写真のような高画質な画像が得られることに加えて、このように撮影条件を設定することができれば、あたかも実在する対象を撮影したかのような印象を与えることができるので、得られた画像に、より一層の臨場感を付与することができる。
また、上述した画像データ生成装置においては、次のような印刷データを生成することとしても良い。すなわち、各々のポリゴンを構成する頂点の二次元座標値と、該各々のポリゴンの色属性とを少なくとも含んだデータを、印刷データとして生成することとしても良い。
物体の三次元形状が複数のポリゴンによって表現されている場合、各々のポリゴンを構成する頂点の二次元座標値と、該各々のポリゴンの色属性とを用いれば、二次元画像を効率よく表現することができる。従って、生成した印刷データのデータ量が低減するため、迅速に印刷データを出力することができ、延いては、迅速に画像を印刷することが可能となる。
あるいは、上述した画像データ生成装置においては、二次元画像を構成する画素毎に階調値が設定された画像データを、印刷データとして生成することとしても良い。
印刷装置の中には、画素毎に階調値が設定された画像データを受け取って、画像を印刷可能なものも多数存在する。従って、このような画像データを印刷データとして出力しておけば、このような印刷装置に印刷データを供給することで、そのまま画像を印刷することが可能となる。加えて、画素毎に設定される階調値を、いわゆる光の三原色に相当するR,G,B各色の階調値としておけば、画面に表示するために画像データを生成する処理と、画像を印刷するための印刷データを生成する処理との共通化を図ることが可能になるという利点も得ることができる。
また、上述した本発明の画像データ生成装置は、画面に表示された二次元画像を印刷するために、印刷データを生成する装置である。従って、本発明は、印刷データを生成する画像生成装置と、生成された印刷データを用いて画像を印刷する印刷装置とを組み合わせた印刷装置として把握することも可能である。こうした本発明の印刷装置は、
ポリゴンを構成する頂点の座標によって物体の三次元形状を表したポリゴンデータに基づいて画面上に表示された二次元画像を、印刷媒体上に出力する印刷装置であって、
前記画面上に二次元画像を表示するための画像データを、前記ポリゴンデータから生成して該画面上に表示する画像表示手段と、
前記画面上に表示された二次元画像の印刷命令を受け取ると、前記画像データまたは該画像データの生成に用いられた前記ポリゴンデータの少なくとも一方を取得することにより、該二次元画像と前記物体の配置が同一で、且つ、該ポリゴンデータよりも小さなポリゴンに基づく画像データを、該二次元画像を印刷するための印刷データとして生成する印刷データ生成手段と、
前記印刷データに基づいて、前記印刷媒体上に画像を出力する画像出力手段と
を備えることを要旨とする。
また、上記の印刷装置に対応する本発明の印刷方法は、
ポリゴンを構成する頂点の座標によって物体の三次元形状を表したポリゴンデータに基づいて画面上に表示された二次元画像を、印刷媒体上に出力する印刷方法であって、
前記画面上に二次元画像を表示するための画像データを、前記ポリゴンデータから生成して該画面上に表示する工程(A)と、
前記画面上に表示された二次元画像の印刷命令を受け取ると、前記画像データまたは該画像データの生成に用いられた前記ポリゴンデータの少なくとも一方を取得することにより、該二次元画像と前記物体の配置が同一で、且つ、該ポリゴンデータよりも小さなポリゴンに基づく画像データを、該二次元画像を印刷するための印刷データとして生成する工程(B)と、
前記印刷データに基づいて、前記印刷媒体上に画像を出力する工程(C)と
を備えることを要旨とする。
かかる本発明の印刷装置および印刷方法においては、画面に表示されている二次元画像の印刷命令を受け取ると、該二次元画像の生成に用いられた画像データ、もしくは、該画像データを生成するために使用したポリゴンデータの少なくとも一方を取得して、該二次元画像と前記物体の配置が同一で、且つ、該ポリゴンデータよりも小さなポリゴンに基づく画像データを、印刷データとして生成する。次いで、生成した印刷データに基づいて、印刷媒体上に画像を出力する。ここで、印刷媒体としては、いわゆる印刷用紙に限らず、例えば布や、樹脂フィルム、金属泊など、種々の媒体を用いることができる。
このようにして画像を出力すれば、小さなポリゴンから生成した印刷データに基づいて画像を出力することができるので、鮮明に画像を表示可能な媒体上に印刷した場合でも、物体表面がゴツゴツした画像となることがなく、あたかも実在する物体を撮影した写真のような、高画質な画像を得ることができる。また、こうして印刷された画像は、画面上に表示された二次元画像と、物体の配置が同一となっている。このため、画面上の二次元画像をそのまま印刷したかのような印象を与えることが可能となる。
更に本発明は、上述した画像データ生成方法あるいは印刷方法を実現するためのプログラムをコンピュータに読み込ませ、コンピュータを用いて実現することも可能である。従って、本発明は次のようなプログラム、あるいは該プログラムを記録した記録媒体として把握することもできる。すなわち、上述した画像データ生成方法に対応する本発明のプログラムは、
物体の表面を複数のポリゴンに分割し、該各々のポリゴンを構成する頂点の座標によって該物体の三次元形状を表現したポリゴンデータから、該物体の二次元画像を表す画像データを生成する方法を、コンピュータで実現するためのプログラムであって、
前記ポリゴンデータから生成された前記画像データに基づいて、前記物体の二次元画像を画面上に表示する第1の機能と、
前記画面上に表示された二次元画像の印刷命令を受け取ると、前記画像データまたは該画像データの生成に用いられた前記ポリゴンデータの少なくとも一方を取得することにより、該二次元画像と前記物体の配置が同一で、且つ、該ポリゴンデータよりも小さなポリゴンに基づく画像データを、該二次元画像を印刷するための印刷データとして生成する第2の機能と
を実現することを要旨とする。
また、上記のプログラムに対応する本発明の記録媒体は、
物体の表面を複数のポリゴンに分割し、該各々のポリゴンを構成する頂点の座標によって該物体の三次元形状を表現したポリゴンデータから、該物体の二次元画像を表す画像データを生成するプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
前記ポリゴンデータから生成された前記画像データに基づいて、前記物体の二次元画像を画面上に表示する第1の機能と、
前記画面上に表示された二次元画像の印刷命令を受け取ると、前記画像データまたは該画像データの生成に用いられた前記ポリゴンデータの少なくとも一方を取得することにより、該二次元画像と前記物体の配置が同一で、且つ、該ポリゴンデータよりも小さなポリゴンに基づく画像データを、該二次元画像を印刷するための印刷データとして生成する第2の機能と
を実現するプログラムを記憶していることを要旨とする。
更に、上述した印刷方法に対応する本発明のプログラムは、
ポリゴンを構成する頂点の座標によって物体の三次元形状を表したポリゴンデータに基づいて画面上に表示された二次元画像を、印刷媒体上に印刷する方法を、コンピュータを用いて実現するためのプログラムであって、
前記画面上に二次元画像を表示するための画像データを、前記ポリゴンデータから生成して該画面上に表示する機能(A)と、
前記画面上に表示された二次元画像の印刷命令を受け取ると、前記画像データまたは該画像データの生成に用いられた前記ポリゴンデータの少なくとも一方を取得することにより、該二次元画像と前記物体の配置が同一で、且つ、該ポリゴンデータよりも小さなポリゴンに基づく画像データを、該二次元画像を印刷するための印刷データとして生成する機能(B)と、
前記印刷データに基づいて、前記印刷媒体上に画像を出力する機能(C)と
を実現することを要旨とする。
また、上記のプログラムに対応する本発明の記録媒体は、
ポリゴンを構成する頂点の座標によって物体の三次元形状を表したポリゴンデータに基づいて画面上に表示された二次元画像を、印刷媒体上に印刷するプログラムを、コンピュータで読み取り可能に記録した記録媒体であって、
前記画面上に二次元画像を表示するための画像データを、前記ポリゴンデータから生成して該画面上に表示する機能(A)と、
前記画面上に表示された二次元画像の印刷命令を受け取ると、前記画像データまたは該画像データの生成に用いられた前記ポリゴンデータの少なくとも一方を取得することにより、該二次元画像と前記物体の配置が同一で、且つ、該ポリゴンデータよりも小さなポリゴンに基づく画像データを、該二次元画像を印刷するための印刷データとして生成する機能(B)と、
前記印刷データに基づいて、前記印刷媒体上に画像を出力する機能(C)と
を実現するプログラムを記録していることを要旨とする。
こうしたプログラム、あるいは記録媒体に記録されているプログラムをコンピュータに読み込ませ、該コンピュータを用いて上述の各種機能を実現すれば、画面に表示された二次元画像を、あたかも実在する物体を撮影した写真のような高画質の画像として出力することが可能となる。
以下では、本発明の作用・効果をより明確に説明するために、本発明の実施の形態を、次のような順序に従って説明する。
A.装置構成 :
A−1.ゲーム機の構成 :
A−2.カラープリンタの構成 :
B.ゲーム画面の表示の概要 :
C.第1実施例 :
C−1.第1の変形例 :
C−2.第2の変形例 :
C−3.第3の変形例 :
C−4.第4の変形例 :
D.第2実施例 :
D−1.第2実施例の変形例 :
E.第3実施例 :
E−1.第3実施例の変形例 :
A.装置構成 :
A−1.ゲーム機の構成 :
図1は、本実施例の画像データ生成装置を備えたゲーム機100の構成を示す説明図である。本実施例のゲーム機100は、CPU101を中心として、メインメモリ110、座標変換器(以下、GTE:Geometry Transfer Engine)112、フレームバッファ114、画像処理器(以下、GPU:Graphic Proccesing Unit)116、ROM108、ドライバ106、通信制御部103などが、バスを介して相互にデータをやり取り可能に接続されて構成されている。また、ゲーム機100には、ゲーム機100の操作を行うためのコントローラ102などが接続されている。更に、本実施例のゲーム機100にはカラープリンタ200も接続されており、ゲーム中の画面をカラープリンタ200に出力することも可能となっている。
CPU101は、いわゆる算術演算や論理演算を実行する中央演算装置であり、ゲーム機100全体の制御を司っている。ROM108は、読み出し専用のメモリであり、ゲーム機100の電源投入後にCPU101が初めに実行するプログラム(ブートプログラム)を始めとして、各種のプログラムが格納されている。メインメモリ110は、データの読み出しおよび書き込みが可能なメモリであり、CPU101が算術演算や論理演算を実行する際に一時的な記憶領域として使用される。GTE112は、CPU101の制御の下で、メインメモリ110にアクセスしながら、幾何学的形状を三次元空間で移動、回転させるための演算を高速に実行する。GPU116は、CPU101からの命令を受けて、モニタ150上に表示される画面を生成する処理を高速に実行する。フレームバッファ114は、GPU116が、モニタ150上に表示される画面を生成するために使用する専用メモリである。GPU116は、フレームバッファ114上に生成した画面のデータを読み出してモニタ150に出力することにより、ゲーム中の画面を表示する。また、ゲーム中の画面を印刷する場合には、フレームバッファ114上に生成されたデータがGPU116を介してカラープリンタ200に供給されることによって、ゲーム中の画像が印刷される。
ゲームを実行するためのプログラムや各種のデータは、いわゆるコンパクトディスクやデジタルビデオディスクなどの記憶ディスク105に記憶されている。これら記憶ディスク105をゲーム機100にセットすると、記憶ディスク105に記憶されているプログラムおよびデータがドライバ106によって読み出され、メインメモリ110に一旦記憶される。そして、コントローラ102の操作内容が通信制御部103を介してCPU101に入力されると、CPU101が、メインメモリ110に記憶されているプログラムを読み出して所定の処理を実行することにより、ゲームが実行される。
A−2.カラープリンタの構成 :
図2は、本実施例のゲーム機100に接続されているカラープリンタ200の概略構成を示す説明図である。カラープリンタ200はシアン,マゼンタ,イエロ,ブラックの4色インクのドットを形成可能なインクジェットプリンタである。もちろん、これら4色のインクに加えて、染料または顔料濃度の低いシアン(淡シアン)インクと、染料または顔料濃度の低いマゼンタ(淡マゼンタ)インクとを含めた合計6色のインクドットを形成可能なインクジェットプリンタを用いることもできる。尚、以下では場合によって、シアンインク,マゼンタインク,イエロインク,ブラックインク,淡シアンインク,淡マゼンタインクのそれぞれを、Cインク,Mインク,Yインク,Kインク,LCインク,LMインクと略称することがあるものとする。
カラープリンタ200は、図示するように、キャリッジ240に搭載された印字ヘッド241を駆動してインクの吐出およびドット形成を行う機構と、このキャリッジ240をキャリッジモータ230によってプラテン236の軸方向に往復動させる機構と、紙送りモータ235によって印刷用紙Pを搬送する機構と、ドットの形成やキャリッジ240の移動および印刷用紙の搬送を制御する制御回路260などから構成されている。
キャリッジ240には、Kインクを収納するインクカートリッジ242と、Cインク,Mインク,Yインクの各種インクを収納するインクカートリッジ243とが装着されている。インクカートリッジ242,243をキャリッジ240に装着すると、カートリッジ内の各インクは図示しない導入管を通じて、印字ヘッド241の下面に設けられた各色毎のインク吐出用ヘッド244ないし247に供給される。
図3は、インク吐出用ヘッド244ないし247におけるインクジェットノズルNzの配列を示す説明図である。図示するように、インク吐出用ヘッドの底面には、C,M,Y,Kの各色のインクを吐出する4組のノズル列が形成されており、1組のノズル列あたり48個のノズルNzが、一定のノズルピッチkで配列されている。
制御回路260は、CPUや、ROM、RAM、PIF(周辺機器インターフェース)等がバスで相互に接続されて構成されている。制御回路260は、キャリッジモータ230および紙送りモータ235の動作を制御することによってキャリッジ240の主走査動作および副走査動作を制御するとともに、外部から供給される印刷データに基づいて、各ノズルから適切なタイミングでインク滴を吐出する制御を行う。こうして、制御回路260の制御の下、印刷媒体上の適切な位置に各色のインクドットを形成することによって、カラープリンタ200はカラー画像を印刷することができる。
また、インク滴を吐出するためにノズルに供給される駆動信号波形を制御してやれば、吐出されるインク滴の大きさを変更して、大きさの異なるインクドットを形成することもできる。このようにしてインクドットの大きさを制御することができれば、印刷しようとする画像の領域に応じて異なる大きさのインクドットを使い分けてやることで、より高画質の画像を印刷することも可能となる。
尚、各色のインク吐出ヘッドからインク滴を吐出する方法には、種々の方法を適用することができる。すなわち、ピエゾ素子を用いてインクを吐出する方式や、インク通路に配置したヒータでインク通路内に泡(バブル)を発生させてインク滴を吐出する方法などを用いることができる。また、インクを吐出する代わりに、熱転写などの現象を利用して印刷用紙上にインクドットを形成する方式や、静電気を利用して各色のトナー粉を印刷媒体上に付着させる方式のプリンタを使用することも可能である。
以上のようなハードウェア構成を有するカラープリンタ200は、キャリッジモータ230を駆動することによって、各色のインク吐出用ヘッド244ないし247を印刷用紙Pに対して主走査方向に移動させ、また紙送りモータ235を駆動することによって、印刷用紙Pを副走査方向に移動させる。制御回路260は、キャリッジ240の主走査および副走査の動きに同期させながら、適切なタイミングでノズルを駆動してインク滴を吐出することによって、カラープリンタ200は印刷用紙上にカラー画像を印刷することが可能となっている。
B.ゲーム画面の表示の概要 :
本実施例のゲーム機100では、ゲームの舞台として設定された仮想的な三次元空間の中で、メインキャラクタを操作することによってゲームが進行するようになっている。図4は、モニタ150上にゲーム中の画面が表示されている様子を例示した説明図である。図示されている画面には、想像上の惑星表面が表示されており、惑星の表面には各種の建造物が設定されている様子が仮想的に表示されている。このようなゲームの舞台の中を、メインキャラクタである飛行艇を操縦しながら進んでいくことによってゲームが行われる。
モニタ150の画面では二次元の形状しか表現し得ないが、ゲーム機100の内部では、惑星表面や、飛行艇、各種の建造物などについては三次元的な形状を伴った物体として表現されている。このように、ゲーム機100の内部で三次元的な形状を伴うものとして扱われている物体を、本明細書中では「オブジェクト」と呼ぶことにする。図4に例示した画面では、画面のほぼ中央に大きく表示された飛行艇ob1 や、惑星表面ob2 、ドーム状の建造物ob3 、遠方に見えるピラミッド状の2つの建造物ob11、ob12、更には、惑星の表面上を飛行する6つの円盤ob4 ないしob9 などがオブジェクトであり、これらについては、物体の表面形状を三次元的に表すデータが記憶されている。このため、メインキャラクタである飛行艇ob1 を操作することにより、飛行艇ob1 に対して、他のオブジェクト(例えば建造物や円盤等)の位置関係が変化すると、これに伴って、モニタ150上でのオブジェクトの見え方も変化することになる。この結果、飛行艇ob1 や、惑星表面ob2 などのオブジェクトは、想像によって作り出されたものであるにも拘わらず、あたかも現実に存在しているかのように、モニタ150に表示することが可能となっている。また、詳細には後述するが、本実施例のゲーム機100では、モニタ150に表示された画面を印刷することで、あたかも写真で撮影したかのような画像を印刷することも可能となっている。
尚、図4に示した例では、惑星の空の部分や、空に浮かぶ衛星は、オブジェクトではなく二次元的な画像がそのままモニタ150に表示されたものとなっている。従って、これらについては、飛行艇ob1 を操作しても、モニタ150上での見え方が変化することはない。これは、ゲームのメインキャラクタである飛行艇ob1 の移動範囲に対して極めて遠方にあるため、飛行艇ob1 の位置が変わっても見え方はほとんど変化せず、従って二次元画像として扱えば十分であることによる。図5は、モニタ150の画面上で、二次元画像がそのまま表示されている領域を、ハッチングを付して表した説明図である。このように、本実施例のゲーム機100では、モニタ150に表示される画面の一部に、二次元画像を嵌め込んで表示することも可能となっている。
次に、ゲーム機100が、物体を三次元的な形状を伴ったオブジェクトとして取り扱う方法について説明する。図6は、メインキャラクタである飛行艇ob1 の形状を示す斜視図である。図の左側には、飛行艇ob1 を斜め後方から見た様子が示されており、図の右側には、飛行艇ob1 を斜め前方から様子が示されている。図示されているように、飛行艇ob1 は、表面のほとんどの部分が滑らかな曲面によって構成されている。ゲーム機100の内部では、このような三次元的な曲面を有する物体を、平面多角形を用いて表現する。すなわち、三次元的な曲面を細かな平面多角形に分割し、これら平面多角形によって近似的に表現するのである。
図7は、メインキャラクタの飛行艇ob1 の形状を細かな平面多角形によって表現した様子を概念的に示した説明図である。このように、細かな多角形に分割すれば三次元的な曲面を持った物体形状を、平面多角形によって表現することが可能である。尚、このような平面多角形は「ポリゴン」と呼ばれている。本実施例のゲーム機100では、全てのオブジェクトがポリゴンの集まりとして表現されており、ポリゴンを構成する各頂点の三次元座標値によってオブジェクトの形状が表現されている。本明細書においては、ポリゴンの頂点の座標によってオブジェクトの形状を表現したデータを、「ポリゴンデータ」と呼ぶことにする。また、本実施例のゲーム機100においては、各オブジェクトのポリゴンデータは、オブジェクトテーブルと呼ばれるテーブルによって管理されている。
図8は、本実施例のゲーム機100において、各オブジェクトのポリゴンデータを管理するために用いられるオブジェクトテーブルを概念的に示した説明図である。図示されているように、オブジェクトテーブルには、各オブジェクトを識別するためのオブジェクト番号と、オブジェクトの形状を示したポリゴンデータが格納されているメインメモリ110の先頭アドレスと、オブジェクトを構成するポリゴン数とが記憶されている。オブジェクトテーブルには、このようなオブジェクト番号とポリゴンデータの先頭アドレスとポリゴン数とを一組とするレコードが、オブジェクトの数だけ設定されている。
図9は、オブジェクトの形状を示したポリゴンデータのデータ構造を示す説明図である。図示されているようにポリゴンデータは、ポリゴンの通し番号と、各ポリゴンを構成する頂点のXYZ座標値と、ポリゴンに付与されるテクスチャの番号と、オブジェクトに設定されている基準点のXYZ座標値などから構成されている。このうち、ポリゴンの番号、頂点座標、テクスチャ番号についてはポリゴン毎に一組ずつ設定されており、一方、基準点のXYZ座標値はオブジェクトについて設定されている。
各ポリゴンに設定されている頂点座標の個数は、ポリゴンの形状に応じた個数が設定されている。例えば、ポリゴンが三角形であれば3つの頂点から構成されているから、そのポリゴンについては3つの頂点座標が設定される。同様に、ポリゴンが四角形であれば4つの頂点座標が設定されることになる。本実施例では、全てのオブジェクトが三角形のポリゴンで構成されており、従って、各ポリゴンには3つずつ頂点座標が設定されている。
また、テクスチャ番号は、簡単に言えば、ポリゴン内を塗りつぶすべき色彩を示す番号のようなものと考えることができる。例えば、オブジェクトの表面が赤ければ、そのオブジェクトを構成する全てのポリゴンを赤色としておけばよい。この場合、ポリゴンのテクスチャ番号には、赤色を示す番号が指定されることになる。もっとも、このように色彩だけでなく、アルミや真鍮などの各種の金属表面や、ガラスのような透明な表面、更には木肌のような表面を、テクスチャ番号として指定することも可能である。テクスチャ番号は、このようにポリゴンに付与される表面の状態を指定する番号である。
一方、オブジェクトについて設定されている基準点は、三次元空間におけるオブジェクトの位置と姿勢とを表すために用いられるXYZ座標値である。本実施例のゲーム機100では、ゲーム中に表示されるモニタ150の画面を、あたかも写真のような鮮明な画像として印刷することが可能となっており、詳細には後述するが、対象とするオブジェクトの位置および向きの情報を用いることによって、このような鮮明な画像を印刷することを可能としている。このため本実施例のオブジェクトには、そのオブジェクトが三次元空間内のどの位置に存在していて、どちらの方向を向いているかを特定するために、基準点が設定されている。図7に示した飛行艇(オブジェクト番号ob1 )については、機体先頭部に設けられた基準点P1と、左右の尾翼の後端にそれぞれ設けられた基準点P2、P3の、合計3つの基準点が設けられている。このように、最低3つの基準点が設けられていれば、三次元空間内でのオブジェクトの位置および向きを特定することができる。もちろん、基準点の個数は3つに限らず、より多数の基準点を設けておくこととしても良い。図9に示したポリゴンデータには、これら基準点のXYZ座標値が設定されている。尚、基準点は、必ずしも全てのオブジェクトに設けられている必要はない。この点については、後ほど詳しく説明する。
以上に説明したように、本実施例のゲーム機100では、全てのオブジェクトにオブジェクト番号が付与されており、オブジェクトの表面形状はポリゴンの頂点座標を示すポリゴンデータによって表現されている。そして、オブジェクト番号からオブジェクトテーブルを引くことによって対応するポリゴンデータの先頭アドレスを取得すれば、メインメモリ110の該当アドレス以降に書き込まれているデータを読み出すことによって、オブジェクトの三次元的な形状を表した頂点座標を取得することが可能となっている。ゲーム機100のモニタ150に表示するための画像データは、このようにして取得した三次元形状を示すポリゴンデータに、後述する処理を施すことによって生成されている。
尚、図8に例示したオブジェクトテーブルでは、ポリゴンデータの先頭アドレス、およびオブジェクトを構成するポリゴン数の2つの項目だけが、オブジェクト番号に対応付けて設定されているが、これら以外の項目も設定することとしても良い。例えば、オブジェクトを構成するポリゴンのタイプ、すなわちポリゴンが何角形であるかを示すデータや、ポリゴンに基準点が設けられているか否か、更には基準点の個数を示すデータなどを、オブジェクト番号に対応付けて設定しておくことも可能である。
図10は、本実施例のゲーム機100が、ゲーム中の画面をモニタ150に表示する処理の概要を示したフローチャートである。かかる処理は、CPU101を中心として、メインメモリ110、GTE112、フレームバッファ114、GPU116などが協動しながら実行される処理である。以下、フローチャートに従って説明する。
ゲーム画面表示処理を開始すると、CPU101は、コントローラ102からの入力があったか否かを判断する(ステップS10)。前述したように、ゲーム中は、ゲーム機100に対する操作は専らコントローラ102によって行われるので、先ず初めにコントローラ102からの操作入力があったか否かを判断するのである。そして、入力がなかった場合は(ステップS10:no)、フレームバッファ114に記憶されている画像データをモニタ150に出力して、画面の表示を更新する処理(画面更新処理)を行う(ステップS50)。フレームバッファ114には、モニタ150に表示すべき画像データが生成されて記憶されている。画像データを生成してフレームバッファ114に記憶するための処理、およびフレームバッファ114に記憶されている画像データをモニタ150に出力する画面更新処理の内容については後述する。一方、コントローラ102からの入力があったと判断された場合には(ステップS10:yes)、コントローラ102による操作の内容をモニタ150の画面に反映させるべく、後述する一連の処理を行う。
コントローラ102からの入力が検出されると、コントローラ102によって操作されたオブジェクトを、ゲームの舞台として設定されている三次元空間内で、操作に応じた距離および方向に移動させる処理を行う(ステップS20)。一例として、コントローラ102による操作が、メインキャラクタである飛行艇ob1 を前進させるものであった場合について説明する。前述したように飛行艇ob1 は、ゲーム機100の内部では複数のポリゴンによって表現されており(図7参照)、各ポリゴンの頂点座標はポリゴンデータに設定されている(図9参照)。また、ポリゴンデータが記憶されているメモリ領域の先頭アドレスは、オブジェクトテーブルを参照することによって取得することができる。
そこで、メインキャラクタである飛行艇ob1 を前進させる場合は、先ずオブジェクトテーブルを参照して、飛行艇(オブジェクト番号ob1 )に対応するポリゴンデータの先頭アドレスを取得する。次いで、メインメモリ110上の取得したアドレスを先頭とするメモリ領域に記憶されているポリゴンデータを読み出すことによって、各ポリゴンを構成する頂点座標を取得する。こうして得られた頂点座標は、ゲームの舞台として設定された三次元空間内において、現時点での飛行艇ob1 の位置を表す座標となっている。
この点について、若干補足して説明する。記憶ディスク105には、各オブジェクトについてのポリゴンデータの初期値が記憶されている。ゲームの開始時には、初期値のポリゴンデータが、記憶ディスク105から読み込まれてメインメモリ110に記憶されるとともに、ポリゴンデータを記憶した先頭アドレス値が、オブジェクトテーブルに設定される。そして、ゲームの進行に伴って、オブジェクトが移動、回転、あるいは変形すると、後述する処理によって、メインメモリ110に記憶されているポリゴンデータの内容が更新されていく。従って、オブジェクトテーブルを参照して先頭アドレスを取得すれば、各オブジェクトの現時点での頂点座標を読み出すことが可能となっているのである。
ここでは、飛行艇ob1 が前進するように、コントローラ102が操作されたものとしているから、図10に示したゲーム画面表示処理のS20では、オブジェクトテーブルを参照することにより、現在の飛行艇ob1 の位置を示すポリゴンデータをメインメモリ110から取得する。次いで、コントローラ102の操作量から、三次元空間内で飛行艇ob1 を移動させる向きと移動量とを決定し、移動後の飛行艇ob1 の座標値を算出する。かかる演算は、CPU101の制御の下でGTE112によって高速に実行される。具体的には、CPU101は飛行艇ob1 の移動方向および移動量を決定すると、ポリゴンデータの先頭アドレスの値と共にGTE112に供給する。GTE112は、供給された先頭アドレスに基づいて飛行艇ob1 のポリゴンデータを読み出した後、このポリゴンデータの頂点座標に対して座標変換を行うことにより、移動後の頂点座標を算出する。こうして得られた変換後の頂点座標によって、メインメモリ110のポリゴンデータを更新する。以上では、メインキャラクタである飛行艇ob1 を前進させた場合について説明したが、コントローラ102によって他のオブジェクトが操作された場合は、操作されたオブジェクトについて同様の処理が実行される。この結果、メインメモリ110に記憶されている各オブジェクトのポリゴンデータには、常に最新のオブジェクトの座標値が記憶されていることになる。
このようにして、コントローラ102の操作をオブジェクト位置に反映させたら、各オブジェクトのポリゴンデータから二次元画像のデータを生成する処理(レンダリング処理)を開始する(ステップS30)。レンダリング処理では、ポリゴンデータによって表現された三次元的なオブジェクトを、モニタ150の画面に相当する平面上に投影するような処理を行うことによって、三次元的なオブジェクトから二次元的な画像を生成する。
図11は、レンダリング処理の概要を示した説明図である。図11では、サイコロ形状のオブジェクトにレンダリング処理を施すことにより、二次元的な画像を生成する様子が示されている。レンダリング処理に際しては、先ず初めに、オブジェクトを観察するための視点Qを設定し、次いで、オブジェクトと視点Qとの間に、モニタ150の画面に相当する投影面Rを設定する。そして、オブジェクトの表面から選択した任意の点と視点Qとを直線で結び、この直線が投影面Rと交差する交点を決定する。例えば、図11に示したように、オブジェクト上のa点を選択したとすると、a点と視点Qとを結ぶ直線が投影面Rと交わる交点としてRa点を決めることができる。ここで、周知のように光は直進する性質を有するから、a点から出て視点Qに向かう光は、投影面R上のRa点に像を結ぶことになる。換言すれば、投影面R上のRa点は、オブジェクト上のa点が投影される点と考えることができる。従って、オブジェクトの表面の全ての点について、このような操作を行えば、投影面R上に投影されたオブジェクトの二次元像を得ることができる。
もっとも、前述したようにオブジェクトはポリゴンによって表現されているから、オブジェクト表面の全ての点についてこうした操作を行う必要はなく、ポリゴンの頂点座標についてのみ実行すればよい。例えば、図11に示すように、オブジェクト表面のb点およびc点が、投影面R上のRb点、Rc点にそれぞれ投影されたものとする。この場合、オブジェクト上のa点、b点、c点を頂点とする三角形のポリゴンは、投影面R上では、Ra点、Rb点、Rc点を頂点とする三角形の領域に投影されるものと考えて良い。また、オブジェクト上のポリゴンが例えば赤色であったとすると、このポリゴンが投影面R上に投影された三角形の領域も赤色になると考えて良い。すなわち、オブジェクト上のポリゴンが有するテクスチャ番号は、投影面R上に投影された領域にも引き継がれると考えることができる。
更に、レンダリング処理では、いわゆる陰面消去と呼ばれる処理も行われる。陰面消去とは、オブジェクト表面の中で、他の表面の陰になっている部分を消去する処理である。例えば、図11に示した例では、オブジェクト表面のb点、d点、e点を頂点とするポリゴンは、視点Qから見てオブジェクトの裏側にあり、全体が他の表面の陰になっているため投影面R上に像を結ぶことはない。そこで、このようなポリゴンについては、投影面R上に投影像が表示されないようにするのである。尚、オブジェクトの形状および視点Qの設定によっては、あるポリゴンの一部の領域だけが他の表面の陰になる場合もある。このような場合は、そのポリゴンの陰になっている部分だけの表示が省略されて、陰になっていない部分についてだけ、投影像が表示されることになる。
このように、レンダリング処理では、オブジェクトを構成するポリゴンの頂点を投影面Rに投影したときの座標値を算出する処理が行われる。このような座標値の算出は、比較的簡単に行うことができる。図12(a)は、オブジェクト上の座標点(X,Y,Z)を投影して得られる投影面R上の座標値(U,V)を求める計算式を示した説明図である。ここで、図12(a)中のα、β、γ、δは、視点Qから投影面R、あるいはオブジェクトまでの距離によって定まる係数である。あるいは、簡易的には、図12(b)に示すように、除算を含まない計算式を用いることもできる。ここで、図12(b)中のε、ζ、η、θ、ι、κは、それぞれ視点Qから投影面R、あるいはオブジェクトまでの距離によって定まる係数である。
また、詳細な説明は省略するが、レンダリング処理では、三次元空間内の予め設定された位置に光源を置いて、オブジェクト表面に陰影を付けるシェーディングと呼ばれる処理や、遠近感を強調するために、遠方にある部分ほど輝度を低下させたり、投影像をぼかす処理などが行われることもある。こうした一連の処理からなるレンダリング処理は、GTE112がCPU101からの命令を受け取って、メインメモリ110に記憶されているポリゴンデータに対して所定の演算を実行し、得られた結果を用いて、メモリ上のポリゴンデータを更新することによって行われる。そして、モニタ150の画面に現れる全てのオブジェクトについて、以上のような処理を行ったら、図10のステップS30に示したレンダリング処理を終了する。
上述したレンダリング処理に続いて、ゲーム機100のCPU101は、描画処理を開始する(図10のステップS40)。描画処理とは、レンダリング処理によって生成された投影像から、画素毎に階調値が設定された画像データを生成する処理である。すなわち、レンダリング処理で得られた投影像は、ポリゴンが投影された多角形の頂点の座標と、その多角形に付与すべきテクスチャ番号とを用いた形式で表現されている。これに対して、モニタ150上で表示可能な画像データは、画像を画素と呼ばれる微細な領域に細分し、画素毎に階調データ(通常は、輝度を表すデータ)を設定した形式で表現されている。各画素に1種類の輝度データを設定した場合には、モノクロ画像の画像データとなり、光の三原色を構成するRGB各色の輝度データを設定した場合には、カラー画像の画像データとなる。尚、RGB各色の輝度データの代わりに、明度に対応する階調データと、色差に対応する2種類の階調データを用いてカラー画像を表現することも可能である。いずれにしても、レンダリング処理によって得られた投影像を表すデータは、そのままではモニタ150上に表示することができないので、モニタ150で表示可能なデータ形式に変換する処理を行う。このような処理が描画処理と呼ばれる処理である。また、図5を用いて前述したように、画面に二次元画像が嵌め込まれている場合は、描画処理の中で二次元画像のデータを嵌め込んでやればよい。
描画処理を開始すると、ゲーム機100のCPU101は、GPU116に向かって描画命令を出力する。この描画命令を受けて、GPU116が画像データを生成してフレームバッファ114に記憶することによって描画処理が行われる。
図13は、描画命令によって描画しようとする画像、すなわち、前述したレンダリング処理によって生成された投影像を、概念的に示した説明図である。また、図14は、このような画像を描画するために、CPU101からGPU116に向かって出力される描画命令のデータ構造を概念的に示した説明図である。先ず、図13を参照しながら、描画の対象となる投影像について説明する。描画の対象となる投影像は、前述したように、オブジェクトを構成するポリゴンを投影面R上に投影することによって得られた二次元画像である。本実施例では、オブジェクトは全て三角形のポリゴンを用いて構成されているものとしているから、原則として全てのポリゴンが、三角形の画像として投影面R上に投影される。尚、ポリゴンとは、前述したようにオブジェクトを構成する平面多角形を指しており、ポリゴンが投影面Rに投影された多角形は、厳密にはポリゴンとは異なるものである。しかし、以下では説明の便宜から、このようなポリゴンの投影像も、ポリゴンと呼ぶことがあるものとする。また、特にこれらを区別する場合は、「オブジェクトを構成するポリゴン」、および「投影像を構成するポリゴン」などと称することがあるものとする。
図13に示されている投影像は、ポリゴン1、ポリゴン2、ポリゴン3の3つのポリゴンから構成されている。また、投影像がいずれも三角形のポリゴンによって構成されているのは、オブジェクトを構成するポリゴンが全て三角形のポリゴンによって構成されており、これら三角形のポリゴンを投影面R上に投影すると三角形の投影像が得られることに対応したものである。そして、図11を用いて前述したように、これら投影像を構成するポリゴンには、オブジェクトを構成するポリゴンと同じテクスチャ番号が付与されている。
このような投影像を描画する場合、CPU101は図14に示すようなデータ構造の描画命令を出力する。図示されているように描画命令は、「CODE」と、テクスチャ番号と、投影面R上での頂点の座標値とを一組とするデータが、投影像を構成するポリゴン毎に設定された構造となっている。ここで、「CODE」は、この命令が描画命令であることを表すとともに、描画の対象としているポリゴンの形状を指定するデータとなっている。すなわち、オブジェクトを構成するポリゴンは、三角形に限らず、四角形や五角形などのポリゴンが使用される場合もあり、これに伴って投影像を構成するポリゴンの形状も変わってくる。また、オブジェクトのポリゴンが三角形であったとしても、一部が他のポリゴンの陰になった場合などには投影面Rの上のポリゴンを、例えば四角形のポリゴンとして扱うことも可能である。このようなことを考慮して、本実施例の描画命令では、ポリゴン毎にポリゴンの形状を指定可能となっているのである。
本実施例の描画命令には、「CODE」に続いて、テクスチャ番号が設定されている。このテクスチャ番号は、投影像を構成するポリゴンに付与されているテクスチャ番号であり、ほとんどの場合は、オブジェクトを構成するポリゴンに付与されたテクスチャ番号と同じものとなる。尚、テクスチャ番号の代わりに、ポリゴンに付与すべき色情報(例えば、R,G,B各色の階調値)を設定しておくことも可能である。
テクスチャ番号に続いて、ポリゴンを構成する頂点の投影面R上での座標値が設定されている。頂点座標の個数は上述した「CODE」によって決定される。例えば、「CODE」においてポリゴンの形状が三角形と指定されている場合は、3つの頂点座標が設定され、四角形のポリゴンと指定されている場合は、4つの頂点座標が設定されることになる。描画命令は、このような「CODE」、テクスチャ番号、頂点座標を一組とするデータが、投影像を構成するポリゴン毎に設定されたデータ構造となっている。
図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に供給する。
GPU116は、このような描画命令を受け取ると、各頂点を結んだ多角形の内部を、テクスチャ番号が示す色彩あるいは模様で塗り潰した二次元画像に展開する。そして、得られた二次元画像を、画像を構成する画素毎に階調データを設定した表現形式のデータに変換して、画像データとしてフレームバッファ114に記憶する。この結果、投影面R上でのポリゴンの頂点座標と、ポリゴンのテクスチャ番号とによって表現された投影像が、モニタ150で表示可能なデータ形式の画像データに変換されて、フレームバッファ114に記憶されたことになる。尚、本実施例のゲーム機100では、R,G,B各色の階調値が画素毎に設定された画像データを生成するものとする。モニタ150の画面に現れる全ての投影像について、以上のような処理を行ったら、図10のステップS40に示した描画処理を終了する。
描画処理を終了すると、今度は、フレームバッファ114上に得られた画像データをモニタ150に出力して、モニタ150の画面を更新する処理を行う(ステップS50)。すなわち、画面解像度や、インターレースあるいはノンインターレースと言った走査方式など、モニタ150の仕様に合わせて、フレームバッファ114から画像データを読み出してビデオ信号としてモニタ150に供給する。こうすることで、フレームバッファ114に展開した二次元画像をモニタ150の画面に表示させることができる。
また、モニタ150の表示を少なくとも1秒間に24回以上の頻度で更新してやれば、人間の網膜が有する残像現象により、あたかも連続して動いているかのような画像を表示することができる。本実施例のゲーム機100では、図10に示したゲーム画面表示処理を1秒間に30回程度の頻度で実行して画面の表示を更新することで、あたかもモニタ150の画面内で飛行艇ob1 などの各種オブジェクトが連続して動いているかのように表示することが可能となっている。そして、このような高速な処理を可能とするために、本実施例のゲーム機100では、座標変換を始めとする各種の演算を高速に実行可能なGTE112や、演算に用いる大量のデータを高速に読み書き可能なメインメモリ110、CPU101から受け取った描画命令に基づいて画像データを迅速に生成するGPU116、更には、生成した画像データを高速に記憶するとともにモニタ150に高速に出力可能なフレームバッファ114などが搭載されている。
もっとも、処理対象とするポリゴン数があまりに多くなると、図10に示したゲーム画面表示処理を、1秒間に30回程度の頻度で実行することは困難となる。そこで、飛行艇ob1 を始めとする各種のオブジェクトは、ポリゴン数があまり多くならないように、若干大きめのポリゴンによって構成されている。前述したようにポリゴンは平面多角形なので、ポリゴンが大きくなると、オブジェクトの表面がゴツゴツしてしまうという弊害がある。しかし、幸いにも、ゲームの画面ではオブジェクトは動いていることが多く、加えて、モニタ150は写真の様には高い描画力を有していないため、オブジェクト表面がゴツゴツしていることが目立つことはなく、従って、ゲームの臨場感を損なってしまうといった弊害が生じることはない。
しかし、モニタ150の画面を印刷装置で印刷すると、こうした状況は一変することがある。すなわち、印刷して得られる画像は静止画像であることに加えて、近年の印刷装置は写真に迫る高い描画力を有していることから、印刷画像を見ればオブジェクトの表面がゴツゴツしていることがハッキリと分かってしまうことがある。そして、このような印刷画像を見てしまった後では、たとえゲーム中のモニタ150に表示されたオブジェクトでさえも、表面がゴツゴツしている様に見えてしまい、ゲームの臨場感が大きく損なわれてしまう畏れも生じる。これに対して本実施例のゲーム機100では、モニタ150の画面を印刷装置で出力した場合でも、あたかも実物を写真で撮影したかのような、鮮明な画像を出力することが可能となっている。以下では、こうしたことを可能とする処理について詳しく説明する。
C.第1実施例 :
図15は、第1実施例のゲーム機100によって行われる画像印刷処理の流れを示すフローチャートである。以下、フローチャートに従って、画像印刷処理について説明する。
ゲーム機100のCPU101は、コントローラ102に設けられた所定の印刷ボタンが押されたことを検出すると、割り込みを発生させて、図15に示す画像印刷処理を開始する。尚、割り込みを発生させると、それまでCPU101が行っていた処理は一旦中断され、これに伴ってゲームの進行も、画像印刷処理を終了するまで中断されることになる。
画像印刷処理を開始すると、先ず初めにCPU101は、コントローラ102の印刷ボタンが押された時点でモニタ150に表示されていた画像の、元となったポリゴンデータを取得する(ステップS100)。すなわち、前述したように、モニタ150に表示される画像は、オブジェクトを投影面Rに投影して得られた画像であり、オブジェクトを構成するポリゴンの頂点の座標値はポリゴンデータとして、メインメモリ110に記憶されている。そこで、ステップS100では、コントローラ102の印刷ボタンが押された時点でモニタ150に表示されている各オブジェクトについて、オブジェクトのポリゴンデータを取得する。
次いで、取得したポリゴンデータについて、精密ポリゴンデータが記憶されているか否かを判断する(ステップS102)。ここで、精密ポリゴンデータとは、前述したゲーム画面表示処理で用いたポリゴンよりも小さなポリゴンによって、オブジェクトの三次元形状を表したデータである。図16は、メインキャラクタである飛行艇ob1 の三次元的な形状が小さなポリゴンによって表現されている様子を概念的に示した説明図である。精密ポリゴンデータは、このようなポリゴンを構成する各頂点の三次元座標値によって、オブジェクトの表面形状を表現したデータである。
また、精密ポリゴンデータにも、図7および図9に示した通常のポリゴンデータと同様に、複数(本実施例では3つ)の基準点が設けられている。これら基準点は、精密ポリゴンデータの場合でも、通常のポリゴンデータの場合でも、オブジェクトに対する位置関係では同じ位置に設けられている。例えば、図7に示したように、飛行艇ob1 の通常のポリゴンデータでは、機体の先端と、左右の尾翼の後端とに、それぞれ基準点p1、p2、p3が設けられている。これと同様に、飛行艇ob1 の精密ポリゴンデータでも、機体先端と、左右の尾翼の後端とに、それぞれ基準点p1、p2、p3が設けられている。このように、精密ポリゴンデータが存在するオブジェクトについては、通常のポリゴンデータおよび精密ポリゴンデータのそれぞれについて、オブジェクトに対して同じ位置に基準点が設けられている。逆に言えば、精密ポリゴンデータが存在しないオブジェクトについては、オブジェクトデータに必ずしも基準点が設定されている必要はない。
図7と図16とを比較すれば、ゲーム画面表示処理で用いたポリゴンデータと比べて、精密ポリゴンデータは小さなポリゴンが用いられていることが分かる。また、オブジェクト表面の曲率が大きい(曲率半径が小さい)部分ほど、小さなポリゴンによって構成されていることが分かる。このように、小さなポリゴンを用いれば、オブジェクトの形状をより正確に表現することができ、表面の曲率が大きな部分でも、見る者にゴツゴツした印象を与えることがない。
このような精密ポリゴンデータが存在するか否かは、精密ポリゴンデータの有無が予め設定されたテーブル(精密ポリゴンデータテーブル)を参照することによって判断することができる。図17は、精密ポリゴンデータの有無を判断するために参照されるテーブルを概念的に示した説明図である。図示されているように、精密ポリゴンデータテーブルには、精密ポリゴンデータが存在するオブジェクトのオブジェクト番号と、ポリゴン数とが設定されている。従って、精密ポリゴンデータテーブルを参照してオブジェクト番号が設定されていれば、そのオブジェクトについては精密ポリゴンデータが存在すると判断することができる。逆に、精密ポリゴンデータテーブルにオブジェクト番号が設定されていなければ、そのオブジェクトについては、精密ポリゴンデータは存在しないと判断することができる。
尚、図8を用いて前述したオブジェクトテーブルには、全てのオブジェクトについて、固有のオブジェクト番号と、ポリゴンデータの先頭アドレスとが設定されていた。これに対して精密ポリゴンデータテーブルでは、複数のオブジェクト番号に対して同じ先頭アドレスが設定される場合がある。例えば、図4に示したように、オブジェクトob4 〜ob9 の6つのオブジェクトは何れも円盤を表しており、これら円盤は同じ形状となっている。このような場合、精密ポリゴンデータテーブルには、図17に示すように、オブジェクト番号ob4 〜ob9 の6つのオブジェクトについては、同じ先頭アドレスおよびポリゴン数が設定される。このように、精密ポリゴンデータテーブルでは、異なるオブジェクト番号に対しても、同じ先頭アドレスおよびポリゴン数が設定されることがある理由については、後述する。
ステップS102において、精密ポリゴンデータが存在すると判断されたオブジェクトについては、ステップS100で先に取得しておいたポリゴンデータを、基準点を一致させた状態で、精密ポリゴンデータに差し替える処理を行う(ステップS104)。以下、この処理の内容について詳しく説明する。先ず、精密ポリゴンデータテーブルに設定されている先頭アドレスに基づいて、精密ポリゴンデータを読み出し、メインメモリ110の連続するアドレスに記憶する。ここでは、メインメモリ110上のアドレス値Appd 以降の連続した領域に精密ポリゴンデータが記憶されたものとする。
次いで、メインメモリ110のアドレスAppd 以降のメモリ領域に記憶した精密ポリゴンデータに対して、オブジェクトを移動あるいは回転させる座標変換を行うことにより、精密ポリゴンデータの基準点の座標を、ステップS100で取得しておいた通常のポリゴンデータの基準点の座標に一致させる。このような座標変換は、図17に示した精密ポリゴンデータテーブルの先頭アドレスで示されているデータに対して行うのではなく、この精密ポリゴンデータを読み出してメインメモリ110のアドレスAppd 以降に展開したデータに対して実行する。そして、精密ポリゴンデータの基準点の座標を、通常のポリゴンデータの基準点の座標と一致させたら、メインメモリ110上で、この精密ポリゴンデータが記憶されているメモリ領域の先頭アドレスAppd および精密ポリゴンデータを構成するポリゴン数によって、図8を用いて前述したオブジェクトテーブルの先頭アドレスおよびポリゴン数を書き換えてやる。このようにオブジェクトテーブルに設定されている先頭アドレスおよびポリゴン数を書き換えておけば、続いて実行するレンダリング処理および描画処理においては、通常のポリゴンデータではなく、精密ポリゴンデータを参照することになる。図15のステップS104において、ポリゴンデータを精密ポリゴンデータで差し替える処理とは、具体的には、このようにオブジェクトテーブルに設定されている先頭アドレスおよびポリゴン数を、位置合わせした精密ポリゴンデータの先頭アドレスおよびポリゴン数に書き換える処理のことである。
ここで、図17に示したように、精密ポリゴンデータテーブルでは、異なるオブジェクト番号に対しても、同じ先頭アドレスおよびポリゴン数が設定されることがある理由について説明する。上述したように、精密ポリゴンデータが存在するオブジェクトについては、精密ポリゴンデータを読み込んだ後、基準点の座標が通常のポリゴンデータの基準点の座標に一致するように、精密ポリゴンデータを移動あるいは回転させる。ここで、異なるオブジェクトは必ず異なる三次元座標値を持っているから、たとえ同じ精密ポリゴンデータを読み込んだ場合でも、移動あるいは回転後は、異なった精密ポリゴンデータとなっている。従って、オブジェクト毎にメインメモリ110の異なる領域でこうした操作を行っておけば、元の精密ポリゴンデータは同じデータを使用することが可能であり、このため、精密ポリゴンデータテーブルでは、同じ形状のオブジェクトについては、同じ先頭アドレスおよびポリゴン数が設定されているのである。
ステップS104の処理では、精密ポリゴンデータが存在するオブジェクトについて、このようにポリゴンデータを精密ポリゴンデータで差し替える処理を行う。一方、精密ポリゴンデータの存在しないオブジェクトについては、このような処理はスキップすればよい。
次いで、画像の撮影条件を設定する処理を開始する(ステップS106)。撮影条件の設定は、ゲーム機100の操作者が、モニタ150に表示された画面を確認しながら行うことができる。図18は、画像の撮影条件を設定するための画面が、モニタ150に表示されている様子を例示した説明図である。図示されているように、撮影条件を設定する画面のほぼ中央には、印刷ボタンを押したときにモニタ150に表示されていた画面を表示するモニタ領域151が設けられている。また、モニタ領域151の周辺には、焦点距離や、絞り、焦点を合わせる位置などを設定するボタンが設けられている。本実施例のゲーム機100では、単にモニタ150に表示されている画面を印刷するのでなく、これらの項目を設定することで、あたかも仮想的なカメラを操作して写真を撮影しているかのようにして、モニタ150上の画像を印刷することが可能となっている。
焦点距離の設定は、モニタ領域151の右側に設けられたツマミ153を上下に動かすことで、望遠から広角までの焦点距離を選択することによって行う。また、絞りの設定は、モニタ領域151の右下に設けられたツマミ154を上下に動かすことで、開放側から絞り側までの絞り値を選択することで行う。また、焦点を合わせる位置の設定は、コントローラ102の十字カーソルを操作しながら、モニタ領域151に表示されているカーソル152を、焦点を合わせたい位置まで移動した後、設定画面上の「焦点位置設定」と表示されたボタンを押すことによって設定することができる。こうした設定した撮影条件による効果は、モニタ領域151に表示されている画像に反映されるので、効果を確認しながら撮影条件を設定することができる。そして、所望の撮影条件が決まったら、設定画面上の「OK」と表示されたボタンを押すことによって、設定した撮影条件を確定することができる。図15に示した画像印刷処理のステップS106では、以上のようにして、各種の撮影条件を設定する処理を行う。
撮影条件の設定に続いて、レンダリング処理および描画処理を開始する(ステップS108、およびステップS110)。前述したようにレンダリング処理とは、各オブジェクトのポリゴンデータから二次元画像のデータを生成する処理である。かかる処理は、図11を用いて前述したように、視点Qと各オブジェクトとの間に設定した投影面Rへの、各オブジェクトの投影像を算出することによって行うことができる。また、描画処理とは、レンダリング処理によって生成された投影像から、画素毎に階調値が設定された画像データを生成する処理である。図10を用いて前述したゲーム画面表示処理と同様に、レンダリング処理は、CPU101の制御の下でGTE112がオブジェクトテーブルを参照しながら実行し、得られた二次元画像のデータはメインメモリ110に記憶される。撮影条件設定処理で設定された内容は、レンダリング処理における視点Qおよび投影面Rの設定に反映される。また、視点Qに対して遠方あるいは近くにあるオブジェクトに対しては、絞りの設定に応じて、投影像をぼやかすようなフィルタを施すなどの特殊な操作も行われる。
続いて行われる描画処理は、CPU101が出力した描画命令を受けてGPU116が実行し、得られた画像データはフレームバッファ114に記憶される。これらレンダリング処理および描画処理の詳細な内容については、ここでは説明を省略する。但し、精密ポリゴンデータが存在するオブジェクトについては、前述したステップS104においてオブジェクトテーブル(図8参照)が書き換えられていることから、コントローラ102の印刷ボタンを押したときにモニタ150に表示されていた通常のポリゴンデータではなく、精密ポリゴンデータに対してレンダリング処理および描画処理が実行される点が異なっている。
ゲーム機100のCPU101は、レンダリング処理(ステップS108)および描画処理(ステップS110)に続いて、印刷条件設定処理を開始する(ステップS112)。印刷条件設定処理も、上述したステップS106の撮影条件設定処理と同様に、ゲーム機100の操作者が、モニタ150に表示された画面を確認しながら行うことができる。図19は、画像の印刷条件を設定するための画面が、モニタ150に表示されている様子を例示した説明図である。図示されているように、本実施例のゲーム機100では、印刷条件として、印刷に用いる用紙サイズ、用紙種類、および印刷に際しての印刷モードの3つの項目を設定することが可能となっている。用紙サイズ及び用紙種類の設定は、コントローラ102の十字カーソルを操作することにより、画面上に表示されたカーソル152を用いて用紙サイズを選択することによって行う。また、印刷モードについては、画面に表示されたツマミ158を「きれい」から「速い」までの間で動かすことによって設定することができる。また、これらの条件に加えて、印刷枚数や、いわゆる縁なし印刷を行うか否か、といった項目を設定可能としても良い。以上のようにして、印刷条件を設定したら、設定画面上の「OK」と表示されたボタンを押すことによって、設定した印刷条件を確定する。
印刷条件を設定したら、ゲーム機100のCPU101は、フレームバッファ114に記憶されている画像データから印刷データを生成して、カラープリンタ200に出力する処理(印刷データ出力処理)を開始する(ステップS200)。
図20は、印刷データ出力処理の流れを示したフローチャートである。印刷データ出力処理を開始すると、CPU101は先ず初めに、解像度変換処理を開始する(ステップS202)。解像度変換処理とは、フレームバッファ114に記憶されている画像データの解像度を、カラープリンタ200が画像を印刷しようとする解像度(印刷解像度)に変換する処理である。また、印刷解像度は、モニタ150の画面を構成している画素数と、印刷しようとする画像の大きさ、すなわち前述した印刷条件設定処理(図15のステップS112)で設定した印刷用紙のサイズによって決定される。
そして、画像データの解像度よりも印刷解像度の方が高い場合は、補間演算を行って画素間に新たな画像データを生成することにより解像度を増加させる。逆に、画像データの解像度の方が印刷解像度よりも高い場合は、読み込んだ画像データを一定の比率で間引くことによって解像度を低下させる。解像度変換処理では、フレームバッファ114上の画像データに対して、このような操作を行うことにより、描画処理によって生成した画像データの解像度を印刷解像度に変換する。
こうして画像データの解像度を印刷解像度に変換したら、今度は、色変換処理を行う(ステップS204)。色変換処理とは、R,G,Bの階調値の組合せによって表現されているRGBカラー画像データを、印刷のために使用される各色の階調値の組合せによって表現された画像データに変換する処理である。前述したように、本実施例のゲーム機100では、画素毎にR,G,B各色の階調値が設定された画像データを生成しているのに対して、カラープリンタ200は、図2に示した様に、C,M,Y,Kの4色のインクを用いて画像を印刷する。そこで、RGB各色によって表現された画像データを、C,M,Y,Kの各色の階調値によって表現されたデータに変換する処理(色変換処理)を行うのである。
色変換処理は、色変換テーブル(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各色の階調データに迅速に変換することが可能となる。
また、印刷用紙が違えば用紙の地色も違うし、インクの発色も異なっている。更には、インクの滲み方も印刷用紙の種類によって異なっており、滲み方の違いは印刷された画像の色合いに影響を与える。このことから、高画質な画像を印刷するためには、印刷用紙の種類に応じて適切なLUTを使い分けることが好ましい。そこで、ステップS204では、前述した印刷条件設定処理(図15のステップS112)で設定された印刷用紙の種類に応じて、予め定められたLUTを使い分けながら、色変換処理を行う。
以上のようにして色変換処理を行ったら、ゲーム機100のCPU101は、ハーフトーン処理を開始する(ステップS206)。ハーフトーン処理とは、次のような処理である。色変換処理によって得られた画像データは、データ長を1バイトとすると、画素毎に、階調値0から階調値255までの値を取り得る階調データである。これに対してカラープリンタ200はドットを形成することによって画像を表示しているから、それぞれの画素については「ドットを形成する」か「ドットを形成しない」かのいずれかの状態しか取り得ない。このためカラープリンタ200では、画素毎の階調値を変化させる代わりに、所定領域内で形成されるドットの密度を変化させることによって中間階調を表現している。ハーフトーン処理とは、画像データの階調値に応じて適切な密度でドットが発生するように、画素毎にドット形成の有無を判断する処理である。
階調値に応じた適切な密度でドットを発生させる手法としては、誤差拡散法やディザ法などの種々の手法を適用することができる。誤差拡散法は、ある画素についてドットの形成有無を判断したことでその画素に発生する階調表現の誤差を、周辺の画素に拡散するとともに、周囲から拡散されてきた誤差を解消するように、各画素についてのドット形成の有無を判断していく手法である。発生した誤差を周辺の各画素に拡散させる割合は、誤差拡散マトリックスに予め設定されている。また、ディザ法は、ディザマトリックスに設定されている閾値と画像データの階調値とを画素毎に比較して、画像データの方が大きい画素にはドットを形成すると判断し、逆に閾値の方が大きい画素についてはドットを形成しないと判断することで、各画素についてドット形成の有無を判断していく手法である。本実施例の印刷データ出力処理では、いずれの手法を用いることもできるが、ここではディザ法と呼ばれる手法を用いてハーフトーン処理を行うものとする。
図22は、ディザ法で参照される一般的なディザマトリックスの一部を拡大して例示した説明図である。図示したマトリックスには、縦横それぞれ64画素、合計4096個の画素に、階調値0〜255の範囲から万遍なく選択された閾値が設定されている。ここで、閾値の階調値が0〜255の範囲から選択されているのは、本実施例では画像データが1バイトデータであり、画素に設定される階調値が0〜255の値を取り得ることに対応するものである。尚、ディザマトリックスの大きさは、図22に例示したように縦横64画素分に限られるものではなく、縦と横の画素数が異なるものも含めて種々の大きさとすることができる。
図23は、ディザマトリックスを参照しながら、画素毎にドット形成の有無を判断している様子を概念的に示した説明図である。ドット形成有無の判断に際しては、先ず、判断の対象として着目している画素(着目画素)についての画像データの階調値と、ディザマトリックス中の対応する位置に記憶されている閾値とを比較する。図中に示した細い破線の矢印は、着目画素の階調値を、ディザマトリックス中の対応する位置に記憶されている閾値と比較していることを模式的に表したものである。そして、ディザマトリックスの閾値よりも着目画素の階調値の方が大きい場合には、その画素にはドットを形成するものと判断する。逆に、ディザマトリックスの閾値の方が大きい場合には、その画素にはドットを形成しないものと判断する。
図23に示した例では、画像データの左上隅にある画素の画像データは階調値180であり、ディザマトリックス上でこの画素に対応する位置に記憶されている閾値は1である。従って、左上隅の画素については、画像データの階調値180の方がディザマトリックスの閾値1よりも大きいから、この画素にはドットを形成すると判断する。図23中に実線で示した矢印は、この画素にはドットを形成すると判断して、判断結果をメモリに書き込んでいる様子を模式的に表したものである。一方、この画素の右隣の画素については、画像データの階調値は130、ディザマトリックスの閾値は177であり、閾値の方が大きいので、この画素についてはドットを形成しないものと判断する。ディザ法では、このようにディザマトリックスを参照しながらドットを発生させる。
図20に示した印刷データ出力処理のステップS206では、色変換処理によって変換されたC,M,Y,K各色の階調値毎に、以上のようにしてドット形成の有無を判断する処理を行う。
以上のようにしてハーフトーン処理を終了すると、ゲーム機100のCPU101は、インターレース処理を開始する(ステップS208)。インターレース処理とは、ドットの形成有無による表現形式に変換された画像データを、ドットが実際に印刷用紙上に形成される順序を考慮しながら、カラープリンタ200に転送する順序に並べ替える処理である。ゲーム機100のCPU101は、インターレース処理を行って画像データを並べ替えた後、最終的に得られたデータを、GPU116からカラープリンタ200に印刷データとして出力する(ステップS210)。そして、全ての印刷データをカラープリンタ200に出力したら、図20に示す印刷データ出力処理を終了して、図15の画像印刷処理に復帰する。
画像印刷処理では、印刷データ出力処理から復帰すると、ゲーム復帰処理を行う(ステップS114)。ゲーム復帰処理は、図15に示した画像印刷処理を終了して、ゲームを再開するための処理である。すなわち、上述した画像印刷処理は、前述したようにコントローラ102の印刷ボタンが押されると、ゲーム機100のCPU101が割り込みを発生させて、進行中のゲームを一旦、中断した状態で開始される。そこで、画像印刷処理の終了に先立って、CPU101は、プログラムカウンタや各種データを、ゲームの中断前の状態に復帰させて、ゲームを再開するための準備を行うのである。前述したように、精密ポリゴンデータが存在するオブジェクトについては、画像印刷処理の中でオブジェクトテーブルの設定値も書き換えられているので、これらについても、ゲーム復帰処理で元の設定値に戻されることになる。
こうしてゲーム復帰処理を終了したら(ステップS114)、図15に示した画像印刷処理を終了する。プログラムカウンタを始めとする各種の変数およびデータは、ゲーム中断前の状態に戻っているので、中断したところからゲームを再開することが可能となる。
一方、カラープリンタ200は、このようにしてGPU116から供給された印刷データに従って、印刷用紙上にドットを形成することにより画像を印刷する。すなわち、図2を用いて前述したように、キャリッジモータ230および紙送りモータ235を駆動することによってキャリッジ240の主走査および副走査を行い、これらの動きに合わせて印字ヘッド241を駆動してインク滴を吐出することによりインクドットを形成する。その結果、モニタ150の画面に表示されているものと、同じ場面の印刷画像が得られることになる。
上述したように、画像印刷処理では精密ポリゴンデータから印刷データを生成しているため、印刷データではオブジェクトの表面が、曲面部分を含めて滑らかな表面として表現されている。従って、このような印刷データに基づいて得られた印刷画像では、オブジェクトの表面がゴツゴツすることがなく、あたかも実在する対象を写真で撮影したかのような印刷画像を得ることができる。
もちろん、初めから精密ポリゴンデータのような細かなポリゴンを用いてオブジェクトを構成しておけば、モニタ150に表示される画面をそのまま印刷した場合でも、写真で撮影したかのような画像を得ることができる。しかし、これではオブジェクトを構成するポリゴン数が増加するため、ゲーム中の画像を迅速に表示することができなくなってしまう。これに対して、ゲーム中は、大きめのポリゴンから生成されたポリゴンデータを用いてモニタ150に画像を表示しておき、画面を印刷する際には、ゲームを進行させるために使用しているポリゴンデータの内容に基づいて、新たに精密ポリゴンデータを生成しているために、ゲーム中は画像を迅速に表示しつつ、写真のような高画質な画像を印刷することが可能となる。また、この場合でも、画像を印刷する場合には、多くのポリゴンを処理する必要があるため、モニタ150に表示する場合のように迅速に処理することは困難となる。しかし、ゲームを中断して行う画像印刷処理では、十分な時間をかけて印刷データを生成することができるので、精密ポリゴンデータのポリゴン数が多くなっても事実上の弊害が生じることはない。
更に、印刷データを生成するために通常のポリゴンデータを精密ポリゴンデータに置き換えるに際しては、ゲーム中断時点で通常のポリゴンデータの基準点があった座標値と、精密ポリゴンデータの基準点の座標値とが重なるように、精密ポリゴンデータを位置決めしてから置き換えている。このため、コントローラ102の印刷ボタンが押されたときにモニタ150に表示されていた画像とは、実際には異なるポリゴンデータが用いられているにも拘わらず、モニタ150に表示されていた画像がそのまま印刷されたかのように、高画質な画像を出力することが可能となる。
上述した第1実施例のゲーム機100には、種々の変形例が存在している。以下では、これら変形例について簡単に説明する。
C−1.第1の変形例 :
上述した第1実施例の画像印刷処理では、撮影条件を設定した後、レンダリング処理および描画処理を行い、その後に、印刷条件を設定するものとした。しかし、撮影条件および印刷条件を一度に設定してから、レンダリング処理に続く一連の処理を行うものとしても良い。また、この場合、撮影条件の一部の項目と印刷条件とを連動させることとしても良い。例えば、撮影条件として、図18に示したように細かな項目を設定可能な撮影モード(プロモード)と、モニタ150に表示された画面をそのまま撮影する様なモード(アマチュアモード)とを選択可能としておき、撮影条件としてプロモードが選択された場合は、印刷用紙は「専用紙」が、そして印刷モードは「きれい」が、それぞれ自動的に標準として選択される様にしても良い。
C−2.第2の変形例 :
上述した第1実施例の画像印刷処理では、ゲーム中にモニタ150に表示された画面を印刷するものとして説明した。この場合は、ゲーム中の任意の画面を印刷することが可能である。しかし、任意の画面ではなく、ゲーム中に予め設定しておいた舞台、あるいはゲームとは別に撮影用に設定した舞台の中でだけ、画像を印刷可能としても良い。ゲーム中の任意の画面を印刷可能とした場合は、種々のオブジェクトが印刷される可能性があるので、これらオブジェクトについて精密ポリゴンデータを用意しておく必要がある。これに対して、ゲーム中に予め設定しておいた舞台もしくは撮影用の専用の舞台でのみ、画像を印刷可能としておけば、用意すべき精密ポリゴンデータを少なくすることができるという利点が得られる。
C−3.第3の変形例 :
以上の説明では、ゲームの画面を印刷するものとして説明したが、ゲームの操作者が用意した画像を組み込んだ状態で印刷することとしても良い。例えば、人物の顔を写した画像データを用意しておき、ゲームに登場するキャラクタの顔の部分に嵌め込んだ状態で、画像を印刷することとしても良い。図24は、飛行艇ob1 を操縦するキャラクタの顔の部分に、別途用意した顔を嵌め込む様子を示した説明図である。図中で斜線を付した部分が、画像データを嵌め込む部分である。嵌め込む画像データは、例えば、デジタルカメラで撮影したものを使用することもできるし、あるいは写真からスキャナで取り込んだデータを用いることもできる。こうして用意された画像データは、二次元的な画像データである。従って、前述した描画処理によってフレームバッファ114上に展開された画像データに対して、該当する部分のデータを置き換えてやればよい。
C−4.第4の変形例 :
上述した実施例では、精密ポリゴンデータに設定された基準点の三次元座標と、通常のポリゴンデータに設定された基準点の三次元座標とを一致させた後、通常のポリゴンデータを精密ポリゴンデータに差し替えるものとして説明した。しかし、基準点の三次元座標を一致させるのではなく、投影面Rに投影された基準点を一致させることとしてもよい。すなわち、通常のポリゴンデータの基準点を投影面Rに投影した座標点(投影点)を予め求めておく。次いで、精密ポリゴンデータの基準点を投影して得られた投影点を求める。そして、精密ポリゴンデータの基準点の投影点が、通常のポリゴンデータの基準点の投影点と一致するように、精密ポリゴンデータを三次元空間内で移動あるいは回転させる。こうして、2つのポリゴンデータの基準点の投影点が一致させた後、通常のポリゴンデータを精密ポリゴンデータに差し替えることとしてもよい。
このようにすれば、基準点の三次元座標を一致させるのではなく、投影点の二次元座標を一致させればよいので、通常のポリゴンデータと精密ポリゴンデータとを容易に位置合わせすることができる。その結果、容易に精密ポリゴンデータを差し替えることが可能となる。
D.第2実施例 :
以上に説明した第1実施例の画像印刷処理では、精密ポリゴンデータを予め記憶しておき、画像の印刷に際しては、通常のポリゴンデータを精密ポリゴンデータに置き換えた後、精密ポリゴンデータを含む各オブジェクトに対して、レンダリング処理や描画処理などの一連の処理を行って画像を印刷した。もっとも、精密ポリゴンデータを予め用意しておくのではなく、通常のポリゴンデータから精密ポリゴンデータを生成し、このデータに対して、レンダリング処理を始めとする一連の処理を行うこととしても良い。以下では、このような第2実施例の画像印刷処理について説明する。
図25は、第2実施例の画像印刷処理の流れを示すフローチャートである。かかる処理は、前述した第1実施例の画像印刷処理に対して、通常のポリゴンデータから精密ポリゴンデータを生成している点が大きく異なっており、他の部分の処理は、第1実施例の処理とほぼ同様である。以下では、こうした相違点を中心として、第2実施例の画像印刷処理について説明する。
第2実施例の画像印刷処理においても、前述した第1実施例と同様に、ゲーム機100のCPU101は、コントローラ102に設けられた所定の印刷ボタンが押されたことを検出すると、割り込みを発生させて画像印刷処理を開始する。そして、先ず初めに、コントローラ102の印刷ボタンが押された時点でモニタ150に表示されていた画像の、元となったポリゴンデータを取得する(ステップS300)。
次いで、ポリゴンデータを取得したオブジェクトの中から、精密ポリゴンデータを生成するオブジェクトを選択する(ステップS302)。オブジェクトの選択は、次のようにして行う。
前述したように、オブジェクトを構成するポリゴンの大きさは、オブジェクトの表面を正確に表現することに対する要求と、図10に示したゲーム画面表示処理を迅速に実行することに対する要求との兼ね合いによって決定されている。このため、基本的には、オブジェクトによらず、ポリゴンはほぼ同じ大きさとなっている。しかし、図11に示したように、レンダリング処理では、オブジェクトを構成するポリゴンの投影像を求めて二次元画像を生成しており、投影像を構成するポリゴンの大きさは、投影面Rから遠方にあるオブジェクトほど小さくなる。従って、オブジェクトを構成するポリゴンの大きさが同じであっても、投影像を構成するポリゴンの大きさは、遠方にあるオブジェクトについては小さくなり、近くのオブジェクトについては大きくなる。そこで、第2実施例の画像印刷処理では、投影像を構成するポリゴンが所定値以上の大きさのオブジェクトについては、精密ポリゴンデータを生成することにして、そうでないオブジェクトについては通常のポリゴンデータのまま、続く一連の処理を行う。図25のステップS302では、投影像を構成するポリゴンが所定値以上の大きさのオブジェクトを、精密ポリゴンデータを生成するオブジェクトとして選択する処理を行うのである。
次いで、選択したオブジェクトについて、ステップS300で取得しておいた通常のポリゴンデータから、精密ポリゴンデータを生成する処理を開始する(ステップS304)。図26は、通常のポリゴンデータから精密ポリゴンデータを生成する原理を示した説明図である。図中に太い実線で示した三角形は、それぞれが通常の大きさのポリゴンである。精密ポリゴンデータの生成にあたっては、ポリゴンを構成する各辺の中点を結んでポリゴンを分割することにより、小さなポリゴンを生成する。図26に示した三角形ABCのポリゴンについて説明すると、辺ABの中点abと、辺BCの中点bcと、辺ACの中点acとをそれぞれ結ぶことにより、三角形ABCをより小さな4つの三角形に分割することができる。隣接するポリゴンBCDについても同様にして、辺BCの中点bcと、辺CDの中点cdと、辺BDの中点bdとをそれぞれ結べば、三角形BCDを4つの三角形に分割することができる。このような操作を繰り返していけば、オブジェクトを構成する全てのポリゴンを小さなポリゴンに分割することができる。
もちろん、各辺の中点ではなく、辺上に任意に取った点を結ぶことによっても、三角形を4つの小さな三角形に分割することができる。しかし、各辺の中点同士を結んで分割してやれば、分割して生成した三角形をほぼ同じ大きさとすることができる。すなわち、比較的簡単な操作により、ポリゴンを適切に分割することが可能である。
また、こうして生成した小さなポリゴンのテクスチャ番号は、元になったポリゴンのテクスチャ番号と、隣接するポリゴンのテクスチャ番号とに基づいて決定する。一例として、図26に示した三角形BCDのポリゴンを用いて説明する。中央に生成された小さなポリゴンc1については、元になったポリゴンのテクスチャ番号をそのまま付与しておく。一方、隣接する2つのポリゴン(三角形ABC、三角形CDE)に挟まれた小さなポリゴンc2については、隣接する2つのポリゴンのテクスチャと、元になったポリゴン(三角形BCD)のテクスチャとの中間的なテクスチャとなるテクスチャ番号を設定する。同様に、分割して生成した小さなポリゴンc3については、隣接するポリゴン(三角形ABC)と、元になったポリゴン(三角形BCD)との中間的なテクスチャとなるテクスチャ番号を設定してやればよい。以上のようにして、ポリゴンを小さなポリゴンに分割し、分割して生成したポリゴンの頂点を検出するとともに、各ポリゴンのテクスチャ番号を設定してやれば、通常のポリゴンデータから精密ポリゴンデータを生成することができる。
尚、以上の説明では、中点同士を結んでポリゴンを分割するものとしたが、頂点と、これに対抗する辺(対辺)の中点とを結んでポリゴンを分割することとしても良い。図27(a)は、このようにしてポリゴンを分割している様子を示した説明図である。図示されているように、このようにしてポリゴンを分割してやれば、三角形のポリゴンを6つの小さな三角形にポリゴンに分割することができる。また、頂点と、対辺の中点とを結んで分割しておけば、分割して生成されたポリゴンの大きさを、ほぼ同じにすることができる。また、ポリゴンが四角形の場合は、図27(b)に示すように、対抗する辺の中点同士を結んでポリゴンを分割してやればよい。
図25に示した第2実施例のS304では、選択しておいたオブジェクトのポリゴンを、このようにして分割することによって精密ポリゴンデータを生成し、次いで、これらオブジェクトについて、オブジェクトテーブルに設定されている先頭アドレスおよびポリゴン数を書き換える処理を行う。
尚、第2実施例では、コントローラ102の印刷ボタンが押されたときのポリゴンデータを取得して(図25のステップS300)、このポリゴンデータから精密ポリゴンデータを生成している。すなわち、生成した精密ポリゴンデータによって表現されるオブジェクトは、取得したポリゴンデータによって表現されるオブジェクトと、三次元空間内に置かれた位置および向きが一致している。従って、前述した第1実施例の画像印刷処理のように、基準点を用いて、通常のポリゴンデータと精密ポリゴンデータとの位置合わせを行う必要がなく、ポリゴンデータに基準点を設定しておく必要もない。
以上のようにして精密ポリゴンデータを生成したら、以降は、前述した第1実施例の画像印刷処理と同様にして画像を印刷する。以下、簡単に説明する。
先ず、画像の撮影条件を設定する処理を開始する(ステップS306)。撮影条件は、モニタ150に表示された画面(図18を参照)を確認しながら行うことができる。次いで、前述したレンダリング処理および描画処理を行う(ステップS308、S310)。レンダリング処理では、オブジェクトテーブルを参照してCPU101が、ポリゴンデータあるいは精密ポリゴンデータが格納されている先頭アドレスおよびポリゴン数を、GTE112に供給し、これを受けて、GTE112がレンダリング処理を実行して、得られた結果をメインメモリ110に記憶する。次いで、CPU101がメインメモリ110を参照しながらGPU116に対して描画命令を出力する。すると、GPU116は、レンダリング処理によって生成された二次元画像を、画素毎に階調データが設定された画像データに変換して、フレームバッファ114に記憶する。
描画処理に続いて、印刷条件を設定した後(ステップS312)、前述した印刷データ出力処理を開始する(S200)。かかる処理の内容は、前述した第1実施例において行われる印刷データ出力処理と全く同様であるため、ここでは説明を省略する。
第2実施例の画像印刷処理においても、印刷データ出力処理から復帰すると、ゲーム復帰処理を行う(ステップS314)。すなわち、第2実施例の画像印刷処理も、進行中のゲームを一旦、中断させて開始されるので、画像印刷処理を終了させる前に、プログラムカウンタや各種データをゲームの中断前の状態に復帰させて、ゲームを再開するための準備を行うのである。そして、ゲーム復帰処理を終了したら、図25に示した第2実施例の画像印刷処理を終了する。
以上に説明した第2実施例の画像印刷処理では、モニタ150に表示された画像を印刷するに際して、オブジェクトを構成するポリゴンを細かなポリゴンに分割して精密ポリゴンデータを生成する。もちろん、ポリゴンを細かなポリゴンに分割するだけでは、オブジェクト形状の表現精度が向上するわけではないが、このようにして細かなポリゴンに分割しておけば、各ポリゴンに適切なテクスチャを付与することで、オブジェクト表面がゴツゴツした印象を大幅に緩和することができる。このため、カラープリンタ200から画像を出力した場合でも、実在する対象を写真で撮影したかのような印刷画像を得ることができる。
また、上述した第2実施例の画像印刷処理では、取得したポリゴンデータから精密ポリゴンデータを生成するために、前述した第1実施例の画像印刷処理のように、取得したポリゴンデータと精密ポリゴンデータとを、基準点を用いて位置合わせする処理が不要である。このため、メモリ容量や処理能力が比較的小さなゲーム機100を用いた場合でも、迅速に画像を印刷することが可能となる。
D−1.第2実施例の変形例 :
上述した第2実施例のゲーム機100についても、変形例が存在している。以下では、この変形例について簡単に説明する。
図28は、第2実施例の変形例の画像印刷処理の流れを示すフローチャートである。上述した第2実施例の画像印刷処理では、オブジェクトを構成するポリゴンを分割して精密ポリゴンデータを生成し、このポリゴンデータに対してレンダリング処理を行っていた。これに対して、以下に説明する変形例の画像印刷処理では、レンダリング処理を行った後に、投影像を構成するポリゴンを分割する点が大きく異なっている。以下では、図28のフローチャートに従って、第2実施例の変形例の画像印刷処理について説明する。
変形例の画像印刷処理においても、上述した第2実施例の画像印刷処理と同様に、処理を開始すると、コントローラ102の印刷ボタンが押された時点でモニタ150に表示されていた画像の、元となったポリゴンデータを取得する(ステップS350)。
変形例の画像印刷処理では、続いて、モニタ150に表示された画面(図18を参照)を確認しながら、画像の撮影条件を設定する(ステップS352)。撮影条件を設定したら、レンダリング処理を開始する(ステップS354)。すなわち、ステップS350で取得したポリゴンデータから、撮影条件を考慮して設定された投影面Rへの投影像を算出する。
変形例の画像印刷処理では、レンダリング処理を終了すると、レンダリング処理によって二次元の投影像として表現されたオブジェクトの中から、構成するポリゴンが大きなオブジェクトを選択する(ステップS356)。すなわち、図11を用いて前述したように、投影像を構成するポリゴンの大きさは、視点Qおよび投影面Rから遠方にあるオブジェクトほど小さくなり、逆に、近くにあるオブジェクトほど大きくなる。そこで、近くにあって、投影像を構成するポリゴンが、所定値以上に大きなオブジェクトを選択するのである。
次いで、選択したオブジェクトの投影像を構成するポリゴンを、複数のポリゴンに分割する処理を行う(ステップS358)。かかる処理は、三次元で行うか二次元で行うかの違いはあるものの、前述した第2実施例の画像印刷処理中で精密ポリゴンデータを生成する処理(図25のステップS304)と、ほぼ同様である。すなわち、前述した第2実施例の画像印刷処理では、図26に示したように、三次元のオブジェクトを構成するポリゴンについて、ポリゴンを構成する各辺の中点を結ぶことによってポリゴンを分割した。これに対して、第2実施例の変形例のステップS358の処理では、二次元の投影像を構成するポリゴンについて、ポリゴンを構成する各辺の中点を結ぶことで、1つのポリゴンを4つの小さなポリゴンに分割する。こうすれば、比較的簡単な操作によって、ほぼ等しい大きさのポリゴンに分割することができるので、適切に分割することができる。また、こうして得られた小さなポリゴンのテクスチャ番号についても、前述した第2実施例の画像印刷処理と同様にして決定することができる。すなわち、隣接するポリゴンのテクスチャと、元になったポリゴンのテクスチャとの中間的なテクスチャとなるように、テクスチャ番号を決定すればよい。このようにして、ポリゴンが分割された投影像のデータは、メインメモリ110に記憶される。
以上のようにしてポリゴンを分割したら、今度は描画処理を開始する(ステップS360)。描画処理の内容は、前述した第2実施例の画像印刷処理と同様である。簡単に説明すると、ゲーム機100のCPU101が、メインメモリ110を参照しながらGPU116に対して描画命令を出力する。すると、GPU116は、ポリゴンが分割された投影像の二次元画像を、画素毎に階調データが設定された画像データに変換して、フレームバッファ114に記憶する。
次いで、印刷条件を設定した後(ステップS362)、フレームバッファ114に記憶されている画像データを印刷データに変換して、カラープリンタ200に出力する処理(印刷データ出力処理)を開始する(S200)。これら処理の内容も、上述した第2実施例と全く同様であるため、ここでは説明を省略する。そして、印刷データ出力処理から復帰すると、第2実施例と同様にゲーム復帰処理を行った後(ステップS364)、図28に示した第2実施例の変形例の画像印刷処理を終了する。
以上に説明した第2実施例の変形例の画像印刷処理においても、1つのポリゴンを複数のポリゴンに分割し、分割して生成した小さなポリゴンに適切なテクスチャ番号を付与することで、モニタ150の画面を、写真で撮影したかのような高画質な画像として印刷することが可能となる。
E.第3実施例 :
以上に説明した各種実施例では、ゲーム機100内で画像データから印刷データを生成し、生成した印刷データをカラープリンタ200に供給することによって画像を印刷した。もっとも、ゲーム機100のCPU101が出力する描画命令を、そのままカラープリンタ200に供給して、カラープリンタ200内で印刷データを生成して画像を印刷することとしてもよい。以下では、こうした第3実施例について説明する。
図29は、第3実施例のゲーム機500の構造を示した説明図である。上述した各種実施例のゲーム機100では、カラープリンタ200がGPU116に接続されていた。これに対して、第3実施例のゲーム機500には、ゲーム機が周辺機器とデータをやり取りするための周辺機器インターフェース(以下では、PIF)118が搭載されており、カラープリンタ200が、このPIF118を介してゲーム機500に接続されている点が異なっている。
この第3実施例のゲーム機500は、ゲーム中の画面の表示は、前述した各種実施例と同様にして実施する。すなわち、図10を用いて前述したように、コントローラ102からの入力の有無を検出し(図10のステップS10)、ゲームの舞台に設定されている三次元空間内でオブジェクトを移動させる(ステップS20)。次いで、移動させたオブジェクトのポリゴンデータに対して、レンダリング処理を行うことにより、三次元形状を有するオブジェクトの二次元画像を生成する(ステップS30)。オブジェクトの移動およびレンダリング処理は、ゲーム機500に搭載されたGTE112が実行し、得られた結果はメインメモリ110に記憶される。
こうして生成した二次元画像に対して描画処理を行うことにより、画素毎に階調値が設定された画像データを生成する(ステップS40)。描画処理は、CPU101が出力する描画命令を受けて、GPU116が実行し、得られた画像データはフレームバッファ114に記憶される。そして、このフレームバッファ114に記憶された画像データを、モニタ150に供給することによって、表示画像を更新する(ステップS50)。
一方、第3実施例のゲーム機500では、モニタ150の画像を印刷する場合には、CPU101がPIF118を介して、カラープリンタ200に描画命令を供給し、カラープリンタ200で描画命令を実行することによって画像を印刷する。図29中に一点鎖線で示した矢印は、モニタ150の画像を印刷するために、CPU101がカラープリンタ200に向かって描画命令を出力する様子を、概念的に表したものである。すなわち、メインメモリ110には、GTE112によってポリゴンデータから生成された二次元画像のデータが記憶されている。そこでCPU101は、この二次元画像のデータを用いて描画命令を生成して、カラープリンタ200に出力する。こうすれば、描画命令から印刷データを生成することなくカラープリンタ200に供給することができるので、速やかにゲームに復帰することができる。また、描画命令は印刷データよりもデータ量が少ないため、データ転送に要する時間も僅かとなり、迅速に画像を印刷することも可能となる。以下では、第3実施例のゲーム機500が、このようにしてモニタ150の画面を印刷する処理について簡単に説明する。
図30は、第3実施例のゲーム機500がモニタ150に表示された画面を印刷するために行う画像印刷処理の流れを示すフローチャートである。かかる処理は、前述した第1実施例の画像印刷処理に対して、レンダリング処理を行うと、描画命令をカラープリンタ200に供給する点が異なっている。以下では、かかる相違点を中心として、第3実施例の画像印刷処理について簡単に説明する。
第3実施例の画像印刷処理も、コントローラ102に設けられた所定の印刷ボタンが押されたことを検出して割り込みを発生させることによって開始される。第3実施例の画像印刷処理を開始すると、先ず初めに、モニタ150に表示されている画像のポリゴンデータを取得し(ステップS500)、次いで、取得したポリゴンデータのオブジェクトに、精密ポリゴンデータが設定されているか否かを判断する(ステップS502)。精密ポリゴンデータが存在するオブジェクトについては(ステップS502:yes)、取得しておいた通常のポリゴンデータを、精密ポリゴンデータによって差し替える。このとき、通常のポリゴンデータの基準点と、精密ポリゴンデータの基準点を一致させることにより、オブジェクトの位置合わせを行う。一方、精密ポリゴンデータが存在しないオブジェクトについては(ステップS502:no)、こうした処理はスキップする。
次いで、画像の撮影条件を設定した後(ステップS506)、レンダリング処理を行う(ステップS508)。その結果、精密ポリゴンデータあるいは通常のポリゴンデータによって表現された各オブジェクトが、投影面上に投影された二次元画像に変換されて、得られた二次元画像のデータ(すなわち、ポリゴン頂点の二次元座標、ポリゴンのテクスチャ番号など)がメインメモリ110に記憶される。
第3実施例の画像印刷処理では、CPU101はレンダリング処理を終了すると、得られた二次元画像の描画命令を生成して、カラープリンタ200に出力する(ステップS510)。図14を用いて前述したように、描画命令は、「CODE」、すなわち描画命令であることを表すとともに、二次元画像のポリゴンの形状を指定するデータと、ポリゴンに付与すべきテクスチャを示すテクスチャ番号と、二次元画像を構成するポリゴンの頂点座標とによって構成されている。また、二次元画像を構成するポリゴンのテクスチャ番号、およびポリゴンを構成する頂点の二次元座標は、レンダリング処理の中で生成されてメインメモリ110に記憶されている。そこで、CPU101は、メインメモリ110からこれらのデータを読み出して、図14に示すような描画命令を生成した後、カラープリンタ200に出力する。そして、モニタ150に表示されている全てのポリゴンについて描画命令を出力したら、ステップS510の処理を終了して、ゲーム復帰処理を開始する(ステップS512)。
ゲーム復帰処理では、プログラムカウンタや各種データをゲームの中断前の状態に復帰させて、ゲームを再開するための準備が行われる。そして、ゲーム復帰処理が終了すると、図30に示した第3実施例の画像印刷処理を終了する。その結果、中断したところから、再びゲームが開始される。
一方、カラープリンタ200は、CPU101からPIF118を介して描画命令を受け取ると、描画命令に基づいて画像データを生成し、生成した画像データから印刷データを発生させて、画像を印刷する。図2に示したように、カラープリンタ200にはCPUやRAM、ROMなどが搭載されている。従って、これらを用いれば、図10を用いて前述した描画処理と同様の処理を実行して、描画命令から画像データを生成することができる。もちろん、カラープリンタ200に、GPU116やフレームバッファ114を搭載することも可能である。もっとも、画像を印刷するための処理は、モニタ150の画面を表示する処理のようには、迅速な処理が要求されないので、GPU116などを搭載せずに、CPUやRAMを用いて同様の処理を行った場合でも、実用上の弊害が生じることはない。こうして描画命令から画像データを生成したら、印刷条件を設定した後、図20を用いて前述した印刷データ出力処理と同様の処理を行うことによって、画像を印刷することができる。
E−1.第3実施例の変形例 :
以上の説明では、CPU101が出力する描画命令は、モニタ150の画面を更新するためにGPU116に出力する場合も、画像を印刷するためにカラープリンタ200に出力する場合も、同様なデータ構造の描画命令を出力するものとして説明した。これに対して、画像を印刷する場合には、データ構造を変更した描画命令をカラープリンタ200に出力することとしても良い。
図31は、変形例の画像印刷処理で出力される描画命令のデータ構造を例示した説明図である。図31(a)に示したデータ構造では、テクスチャ番号の代わりに、ポリゴンに付与すべき色彩を示すR,G,B階調値が設定されている。図14に示したように、ポリゴンのテクスチャ番号ではなく、R,G,B階調値に変換してから描画命令として出力してやれば、カラープリンタ200で、テクスチャ番号を解釈する必要が無い。
また、図21に例示した色変換テーブルLUTをゲーム機500に記憶しておき、テクスチャ番号から得られたR,G,B階調値を、更にC,M,Y.K各色の階調値に変換した後、カラープリンタ200に描画命令として出力することとしても良い。あるいは、図21に示す通常のLUTの代わりに、テクスチャ番号に対してC,M,Y,K各色の階調値を対応付けた専用のLUTを記憶しておき、カラープリンタ200に描画命令を出力する場合には、この専用LUTを参照してテクスチャ番号を変換してから、出力することとしても良い。
以上、各種の実施例について説明してきたが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。
例えば、上述した各種の実施例では、モニタ150に表示された画面を印刷する場合、画像を印刷するための細かなポリゴンに基づく画像データを生成すると、この画像データは印刷データを生成するためだけに用いられるものとして説明した。しかし、生成した画像データを用いてモニタ150に画像を表示することとしても良い。例えば、印刷データの生成を開始するとともに、細かなポリゴンに基づいて生成された画像データを、モニタ150の画面に表示することとしても良い。印刷のために生成された画像データは、モニタ150に表示するために生成された画像データよりも高画質な画像を表示可能であり、加えて、撮影条件などを考慮して各種の処理が施された画像データとなっている。従って、印刷データの生成中に、この細かなポリゴンに基づく画像データをモニタ150に表示してやれば、こうした効果をモニタ150の上でも確認することが可能となる。
あるいは、印刷データの生成を開始する前に、細かなポリゴンに基づく画像データをモニタ150の画面上に表示することとしても良い。こうすれば、撮影条件などの各種の設定項目を、細かなポリゴンに基づく画像データによって、効果を確認しながら設定することができるので、より適切な設定を行うことが可能となる。
本実施例の画像データ生成装置を備えたゲーム機の構成を示す説明図である。 本実施例のゲーム機に接続されているカラープリンタの概略構成を示す説明図である。 インク吐出用ヘッドにおけるノズルNzの配列を示す説明図である。 モニタにゲーム中の画面が表示されている様子を例示した説明図である。 モニタの画面上で二次元画像が嵌め込まれている領域を表した説明図である。 メインキャラクタである飛行艇の形状を示す斜視図である。 メインキャラクタの飛行艇の形状をポリゴンによって表現した様子を概念的に示した説明図である。 オブジェクトのポリゴンデータを管理するために用いられるオブジェクトテーブルを概念的に示した説明図である。 オブジェクトの形状を表すポリゴンデータのデータ構造を示す説明図である。 本実施例のゲーム機がゲーム中の画面をモニタに表示する処理の概要を示したフローチャートである。 レンダリング処理の概要を示した説明図である。 オブジェクトを構成するポリゴンの頂点座標を、二次元平面の座標点に投影する変換式を例示した説明図である。 レンダリング処理によって生成された投影像を概念的に示した説明図である。 CPUがGPUに出力する描画命令のデータ構造を概念的に示した説明図である。 第1実施例のゲーム機によって行われる画像印刷処理の流れを示すフローチャートである。 メインキャラクタである飛行艇の三次元的な形状が小さなポリゴンによって表現されている様子を概念的に示した説明図である。 精密ポリゴンデータの有無を判断するために参照されるテーブルを概念的に示した説明図である。 画像の撮影条件を設定するための画面がモニタに表示されている様子を例示した説明図である。 画像の印刷条件を設定するための画面がモニタに表示されている様子を例示した説明図である。 印刷データ出力処理の流れを示したフローチャートである。 色変換処理のために参照されるLUTを概念的に示した説明図である。 ディザ法で参照される一般的なディザマトリックスの一部を拡大して例示した説明図である。 ディザマトリックスを参照しながら画素毎にドット形成の有無を判断している様子を概念的に示した説明図である。 描画処理によって生成された画像データに、別の画像データを嵌め込む様子を示した説明図である。 第2実施例の画像印刷処理の流れを示すフローチャートである。 通常のポリゴンデータから精密ポリゴンデータを生成する原理を示した説明図である。 ポリゴンを分割して複数のポリゴンを生成する他の態様を例示した説明図である。 第2実施例の変形例の画像印刷処理の流れを示すフローチャートである。 第3実施例のゲーム機の構造を示した説明図である。 第3実施例の画像印刷処理の流れを示すフローチャートである。 第3実施例の変形例において出力される専用の描画命令のデータ構造を例示した説明図である。
符号の説明
100...ゲーム機、 101...CPU、 110...メインメモリ、
112...GTE、 114...フレームバッファ、 116...GPU、
150...モニタ、 200...カラープリンタ、 500...ゲーム機

Claims (15)

  1. 物体の表面を複数のポリゴンに分割し、該各々のポリゴンを構成する頂点の座標によって該物体の三次元形状を表現したポリゴンデータから、該物体の二次元画像を表す画像データを生成する画像データ生成装置であって、
    前記ポリゴンデータから生成された前記画像データに基づいて、前記物体の二次元画像を画面上に表示する画像表示手段と、
    前記画面上に表示された二次元画像の印刷命令を受け取ると、前記画像データまたは該画像データの生成に用いられた前記ポリゴンデータの少なくとも一方を取得することにより、該二次元画像と前記物体の配置が同一で、且つ、該ポリゴンデータよりも小さなポリゴンに基づく画像データを、該二次元画像を印刷するための印刷データとして生成する印刷データ生成手段と
    を備える画像データ生成装置。
  2. 請求項1記載の画像データ生成装置であって、
    前記物体を前記画面に表示するためのポリゴンデータたる表示用ポリゴンデータと、該表示用ポリゴンデータを構成する前記ポリゴンよりも小さなポリゴンによって構成された精密ポリゴンデータとを記憶しているポリゴンデータ記憶手段を備え、
    前記画像表示手段は、前記表示用ポリゴンデータから生成された前記画像データに基づいて、前記二次元画像を表示する手段であり、
    前記印刷データ生成手段は、前記表示用ポリゴンデータまたは該表示用ポリゴンデータから生成された画像データの少なくとも一方を取得して、該表示用ポリゴンデータを前記精密ポリゴンデータで置き換えたポリゴンデータから、前記印刷データを生成する手段である画像データ生成装置。
  3. 請求項2記載の画像データ生成装置であって、
    前記ポリゴンデータ記憶手段は、少なくとも前記表示用ポリゴンデータおよび前記精密ポリゴンデータを記憶している物体については、該物体に対して所定の位置に設定された少なくとも3つの座標点を、該表示用ポリゴンデータおよび該精密ポリゴンデータの各々の基準点として記憶している手段であり、
    前記印刷データ生成手段は、前記表示用ポリゴンデータの基準点と、前記精密ポリゴンデータの基準点とを少なくとも前記画面上では一致させた状態で該表示用ポリゴンデータを該精密ポリゴンデータで置き換えた後、前記印刷データを生成する手段である画像データ生成装置。
  4. 請求項1記載の画像データ生成装置であって、
    前記印刷データ生成手段は、前記印刷命令を受け取ると、前記画像データの生成に用いられた前記ポリゴンデータに基づいて、該ポリゴンデータを構成するポリゴンが複数のポリゴンに分割された印刷用のポリゴンデータを生成し、該印刷用のポリゴンデータから前記印刷データを生成する手段である画像データ生成装置。
  5. 請求項1記載の画像データ生成装置であって、
    前記印刷データ生成手段は、前記印刷命令を受け取ると、前記二次元画像の画像データを取得して該二次元画像に含まれるポリゴンを分割することにより、前記印刷データを生成する手段である画像データ生成装置。
  6. 請求項4または請求項5に記載の画像データ生成装置であって、
    前記印刷データ生成手段は、前記分割して生成したポリゴンについては、該ポリゴンの色属性を、隣接するポリゴンの色属性に基づいて決定しながら、前記印刷データを生成する手段である画像データ生成装置。
  7. 請求項1記載の画像データ生成装置であって、
    前記印刷データ生成手段は、前記印刷命令に加えて、前記二次元画像を印刷するための所定の印刷条件を受け取ることにより、該印刷条件が反映された前記印刷データを生成する手段である画像データ生成装置。
  8. 請求項1記載の画像データ生成装置であって、
    前記画面に表示された二次元画像の光景を撮影するとしたときの撮影条件を設定する撮影条件設定手段を備え、
    前記印刷データ生成手段は、前記印刷命令に加えて、前記撮影条件を受け取ることにより、該撮影条件が反映された前記印刷データを生成する手段である画像データ生成装置。
  9. 請求項1記載の画像データ生成装置であって、
    前記印刷データ生成手段は、前記印刷データとして、前記各々のポリゴンを構成する頂点の二次元座標値と、該各々のポリゴンの色属性とを少なくとも含んだデータを、生成する手段である画像データ生成装置。
  10. 請求項1記載の画像データ生成装置であって、
    前記印刷データ生成手段は、前記印刷データとして、前記二次元画像を構成する画素毎に階調値が設定された画像データを、生成する手段である画像データ生成装置。
  11. ポリゴンを構成する頂点の座標によって物体の三次元形状を表したポリゴンデータに基づいて画面上に表示された二次元画像を、印刷媒体上に出力する印刷装置であって、
    前記画面上に二次元画像を表示するための画像データを、前記ポリゴンデータから生成して該画面上に表示する画像表示手段と、
    前記画面上に表示された二次元画像の印刷命令を受け取ると、前記画像データまたは該画像データの生成に用いられた前記ポリゴンデータの少なくとも一方を取得することにより、該二次元画像と前記物体の配置が同一で、且つ、該ポリゴンデータよりも小さなポリゴンに基づく画像データを、該二次元画像を印刷するための印刷データとして生成する印刷データ生成手段と、
    前記印刷データに基づいて、前記印刷媒体上に画像を出力する画像出力手段と
    を備える印刷装置。
  12. 物体の表面を複数のポリゴンに分割し、該各々のポリゴンを構成する頂点の座標によって該物体の三次元形状を表現したポリゴンデータから、該物体の二次元画像を表す画像データを生成する画像データ生成方法であって、
    前記ポリゴンデータから生成された前記画像データに基づいて、前記物体の二次元画像を画面上に表示する第1の工程と、
    前記画面上に表示された二次元画像の印刷命令を受け取ると、前記画像データまたは該画像データの生成に用いられた前記ポリゴンデータの少なくとも一方を取得することにより、該二次元画像と前記物体の配置が同一で、且つ、該ポリゴンデータよりも小さなポリゴンに基づく画像データを、該二次元画像を印刷するための印刷データとして生成する第2の工程と
    を備える画像データ生成方法。
  13. ポリゴンを構成する頂点の座標によって物体の三次元形状を表したポリゴンデータに基づいて画面上に表示された二次元画像を、印刷媒体上に出力する印刷方法であって、
    前記画面上に二次元画像を表示するための画像データを、前記ポリゴンデータから生成して該画面上に表示する工程(A)と、
    前記画面上に表示された二次元画像の印刷命令を受け取ると、前記画像データまたは該画像データの生成に用いられた前記ポリゴンデータの少なくとも一方を取得することにより、該二次元画像と前記物体の配置が同一で、且つ、該ポリゴンデータよりも小さなポリゴンに基づく画像データを、該二次元画像を印刷するための印刷データとして生成する工程(B)と、
    前記印刷データに基づいて、前記印刷媒体上に画像を出力する工程(C)と
    を備える印刷方法。
  14. 物体の表面を複数のポリゴンに分割し、該各々のポリゴンを構成する頂点の座標によって該物体の三次元形状を表現したポリゴンデータから、該物体の二次元画像を表す画像データを生成する方法を、コンピュータで実現するためのプログラムであって、
    前記ポリゴンデータから生成された前記画像データに基づいて、前記物体の二次元画像を画面上に表示する第1の機能と、
    前記画面上に表示された二次元画像の印刷命令を受け取ると、前記画像データまたは該画像データの生成に用いられた前記ポリゴンデータの少なくとも一方を取得することにより、該二次元画像と前記物体の配置が同一で、且つ、該ポリゴンデータよりも小さなポリゴンに基づく画像データを、該二次元画像を印刷するための印刷データとして生成する第2の機能と
    を実現するプログラム。
  15. ポリゴンを構成する頂点の座標によって物体の三次元形状を表したポリゴンデータに基づいて画面上に表示された二次元画像を、印刷媒体上に印刷する方法を、コンピュータを用いて実現するためのプログラムであって、
    前記画面上に二次元画像を表示するための画像データを、前記ポリゴンデータから生成して該画面上に表示する機能(A)と、
    前記画面上に表示された二次元画像の印刷命令を受け取ると、前記画像データまたは該画像データの生成に用いられた前記ポリゴンデータの少なくとも一方を取得することにより、該二次元画像と前記物体の配置が同一で、且つ、該ポリゴンデータよりも小さなポリゴンに基づく画像データを、該二次元画像を印刷するための印刷データとして生成する機能(B)と、
    前記印刷データに基づいて、前記印刷媒体上に画像を出力する機能(C)と
    を実現するプログラム。
JP2004339913A 2004-11-25 2004-11-25 画像データ生成装置、および印刷装置 Withdrawn JP2006154884A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004339913A JP2006154884A (ja) 2004-11-25 2004-11-25 画像データ生成装置、および印刷装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004339913A JP2006154884A (ja) 2004-11-25 2004-11-25 画像データ生成装置、および印刷装置

Publications (1)

Publication Number Publication Date
JP2006154884A true JP2006154884A (ja) 2006-06-15

Family

ID=36633161

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004339913A Withdrawn JP2006154884A (ja) 2004-11-25 2004-11-25 画像データ生成装置、および印刷装置

Country Status (1)

Country Link
JP (1) JP2006154884A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244095A (ja) * 2009-04-01 2010-10-28 Seiko Epson Corp データ処理装置、印刷システムおよびプログラム
JPWO2021144883A1 (ja) * 2020-01-15 2021-07-22

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244095A (ja) * 2009-04-01 2010-10-28 Seiko Epson Corp データ処理装置、印刷システムおよびプログラム
JPWO2021144883A1 (ja) * 2020-01-15 2021-07-22
WO2021144883A1 (ja) * 2020-01-15 2021-07-22 株式会社Fuji 三次元造形における基準マーク自動作成方法、三次元造形方法、基準マーク自動作成プログラム及び三次元造形装置
JP7177955B2 (ja) 2020-01-15 2022-11-24 株式会社Fuji 三次元造形における基準マーク自動作成方法、三次元造形方法、基準マーク自動作成プログラム及び三次元造形装置

Similar Documents

Publication Publication Date Title
US8602888B2 (en) Video game device and image processing program
JP3725524B2 (ja) コンピュータディスプレイ画像を生成する方法ならびに画像データを生成するコンピュータ処理システムおよびグラフィックスプロセッサ
US8325205B2 (en) Methods and files for delivering imagery with embedded data
JP2006202083A (ja) 画像データ生成装置、および印刷装置
JP4613636B2 (ja) 印刷データ出力装置、および印刷データ出力方法
JP4343207B2 (ja) ゲーム装置および画像処理プログラム
JP2018176711A (ja) 3次元プリンタのモデルの印刷方法
JP3352982B2 (ja) レンダリング方法及び装置、ゲーム装置、並びに立体モデルをレンダリングするプログラムを格納するコンピュータ読み取り可能な記録媒体
JPH07146931A (ja) 画像創成方法
US6712700B1 (en) Stereo model displaying method and apparatus in video game, game apparatus, and computer-readable recording medium stored with stereo model displaying program for video game
US20060158667A1 (en) Image output system and method for notifying information
JP2006154884A (ja) 画像データ生成装置、および印刷装置
JP2006154885A (ja) 画像データ生成装置、および印刷装置
JP2004246877A (ja) ゲームのキャラクタに画像を投影するプログラム、そのプログラムが組み込まれたゲーム機、及びそのプログラムが格納された記録媒体
JP2011164141A (ja) 自動写真作成装置
JP5895394B2 (ja) 遊戯用撮影装置、遊戯用撮影方法、および遊戯用撮影プログラム
JP4425589B2 (ja) 画像生成プログラム、画像生成方法及び画像生成装置
JP4591962B2 (ja) 画像生成装置、ゲーム装置、画像生成方法、画像生成プログラムおよび可読記録媒体
JP4662238B2 (ja) 立体視用印刷物の製造方法、立体視用印刷物、画像生成方法及びプログラム
JP3647348B2 (ja) 画像処理装置及び画像処理方法
JPH09147147A (ja) テクスチャ編集システム
JPH07287774A (ja) 印刷装置
JP3586679B2 (ja) 3次元ゲーム画像処理プログラム、3次元ゲーム画像処理方法及びビデオゲーム装置
US20190325560A1 (en) High-resolution animated raster artwork for display
JP2968209B2 (ja) 三次元グラフィックス編集装置および方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070404

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080205