説明

画像処理装置、画像処理プログラム、画像処理方法および画像処理システム

【課題】新規な画像処理装置、画像処理プログラム、画像処理方法および画像処理システムを提供すること。
【解決手段】仮想空間を撮像するために所定の間隔を空けて配置されるように左仮想カメラおよび右仮想カメラを設定する仮想カメラ設定手段、前記仮想空間を前記左仮想カメラによって撮像した左眼用画像および前記右仮想カメラによって撮像した右眼用画像に基づいて生成される立体視用画像を逐次的に出力する立体視用画像出力手段、および所定の条件に基づいて、前記立体視用画像出力手段によって逐次的に出力された立体視用画像のうちのいずれかを保存する立体視用画像保存手段を備える、画像処理装置など。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理プログラム、画像処理方法および画像処理システムに関する。より具体的には、本発明は、逐次的に出力される立体視可能な画像から選択的に画像を保存するための、画像処理プログラム、画像処理装置、画像処理方法および画像処理システムに関する。
【背景技術】
【0002】
画面上で展開される画像をキャプチャ(スチルまたは取り込み)することによって、静止画などの画像を取得することは、知られている。例えば、特許文献1によれば、プレイヤキャラクタとその他の仮想オブジェクトとを含むゲーム画像を表示するゲーム装置において、複数ある表示部のうちの一方の表示部に通常の画像を表示しておき、他方の表示部にキャプチャした画像を表示するような装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第3793201号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1の装置では、キャプチャできる映像および表示される画像は、いずれも、被写体が2次元表示された画像に限られていた。すなわち、特許文献1に記載されるような装置は、立体視可能な表示装置における逐次的に展開される画像をキャプチャすることができなかった。ここで、立体視表示が可能な表示装置とは、両眼視差(右眼および左眼の両方で同一点を注視した場合の視線方向の差)、輻輳、焦点調節などの現象を利用することで、そのユーザに3次元画像における奥行き感を提供する表示装置である。
【0005】
それゆえに、この発明の目的は、新規な画像処理装置、画像処理プログラム、画像処理方法および画像処理システムを提供することである。
【0006】
この発明の他の目的は、描画される立体視用画像を保存することのできる、画像処理装置、画像処理プログラム、画像処理方法および画像処理システムを提供することである。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明は、その一例として、以下のような態様で提供され得る。以下で示した具体的な記載のいずれもが、本発明の外延を理解するために示した例示的な記載であって、本発明がこの例に限定されることを意図するものではない。すなわち、当業者は、その具体的な記載から、本発明に関する記載および技術常識に基づいて均等な範囲を実施することができることを理解し得る。
【0008】
一態様において、本発明は、画像処理装置を提供する。この画像処理装置は、仮想カメラ設定手段および立体視用画像出力手段、および立体視用画像保存手段を備える。
【0009】
仮想カメラ設定手段は、仮想空間を撮像するために所定の間隔を空けて配置されるように左仮想カメラおよび右仮想カメラを設定する。他方、立体視用画像出力手段は、上記仮想空間を上記左仮想カメラによって撮像した左眼用画像および上記右仮想カメラによって撮像した右眼用画像に基づいて生成される立体視用画像を逐次的に出力する。そして、立体視用画像保存手段は、所定の条件に基づいて、上記立体視用画像出力手段によって逐次的に出力された立体視用画像のうちのいずれかを保存する。
【0010】
本明細書において使用される場合、「立体視用画像」とは、その画像が視認可能に提供される状態において、その観察者に奥行感を伴った立体視可能な画像として知覚される特性(例えば、両眼視差を有することなど)を備えている画像または画像群をいう。
【0011】
1つの実施形態において、上記立体視用画像保存手段は、上記左眼用画像および上記右眼用画像をそれぞれ含む静止画データとして保存してもよい。
【0012】
1つの実施形態において、上記画像処理装置は、上記左仮想カメラと上記右仮想カメラとの間隔をユーザからの入力に基づいて設定するカメラ間隔設定手段をさらに備えてもよい。上記カメラ間隔設定手段は、上記カメラ間隔設定手段によって設定された間隔に基づいて上記左仮想カメラおよび上記右仮想カメラを設定し得る。また、上記立体視用画像表示手段は、上記仮想空間を上記設定された間隔に基づいて上記左仮想カメラおよび上記右仮想カメラによって撮像された左眼用画像および右眼用画像に基づいて、立体視用画像を逐次的に出力し得る。そして、上記立体視用画像保存手段は、所定の条件に基づいて、出力された立体視用画像のうちのいずれかを保存し得る。
【0013】
1つの実施形態において、上記画像処理装置は、上記立体視用画像保存手段によって保存された立体視用画像を後に再現する再現手段をさらに備えてもよい。
【0014】
1つの実施形態において、上記画像処理装置は、上記立体視用画像の視差を調整するための入力をユーザから受け付ける受付手段をさらに備えてもよい。そして、上記カメラ間隔設定手段は、上記受付手段によって受け付けられた入力に基づく視差に対応するように上記左仮想カメラと上記右仮想カメラとの間隔を設定し得る。さらに、上記立体視用画像保存手段は、所定の条件に基づいて、上記出力された立体視用画像のうちのいずれかを上記設定された視差で保存し得る。そして、上記再現手段は、静止画データとして保存された立体視用画像を再現する場合に、上記受付手段によって受け付けられる入力にかかわらず上記立体視用画像を構成するための左眼用画像および右眼用画像を上記設定された視差で再現し得る。
【0015】
1つの実施形態において、上記仮想空間には、当該仮想空間内で位置または方向を変える所定の基準点が存在してもよく、上記左仮想カメラおよび上記右仮想カメラは、上記基準点の位置かつ/または方向に応じて設定され得る。
【0016】
1つの実施形態において、上記基準点はユーザの入力によって移動が制御されるプレイヤオブジェクトであってもよい。
【0017】
1つの実施形態において、上記画像処理装置は、ユーザからの入力情報を取得する入力手段をさらに備えてもよく、ここで、上記所定の条件とは、上記入力手段によって所定の入力情報が取得されることであり、上記立体視用画像保存手段は、上記所定の入力情報が取得されたときに上記立体視用画像表示手段によって表示されている立体視用画像を保存する。
【0018】
1つの実施形態において、上記仮想空間内にはプレイヤが操作可能なプレイヤオブジェクトを含む複数の仮想オブジェクトが存在してよい。そして、上記仮想カメラ設定手段は、上記左仮想カメラおよび上記右仮想カメラを上記プレイヤオブジェクトの視点に対応する位置に配置されるように設定し得る。
【0019】
1つの実施形態において、上記仮想カメラ設定手段は、上記左仮想カメラおよび上記右仮想カメラを、上記プレイヤオブジェクトの視点に対応する位置と、当該視点以外に対応する位置との間で可逆的に選択されるように設定してもよい。そして、上記立体視用画像保存手段は、上記仮想カメラ設定手段によって上記左仮想カメラおよび上記右仮想カメラが上記プレイヤオブジェクトの視点に対応する位置に配置されるように設定変更された後、上記立体視用画像表示手段によって表示された立体視用画像を保存し得る。
【0020】
1つの実施形態において、上記仮想空間内にはプレイヤが操作可能なプレイヤオブジェクトを含む複数の仮想オブジェクトが存在してもよい。そして、上記画像処理装置は、所定のパラメータに基づいて上記複数の仮想オブジェクトの表示状態を決定する表示状態決定手段を更に備え得る。さらに、上記立体視用画像保存手段は、上記所定のパラメータと、上記左仮想カメラおよび上記右仮想カメラの位置をそれぞれ記憶し得る。
【0021】
上記再現手段は、上記再現された立体視用画像に所定の画像や情報を付して表示してもよい。
【0022】
1つの実施形態において、上記画像処理装置は、上記再現された立体視用画像をユーザの操作に基づいて編集する編集手段を更に備え得る。
【0023】
また、別の態様において、上述の装置は、その装置の機能を実現するために利用されるプログラムとしても、1または複数の装置が通信可能に接続されるシステムとして使用されてもよい。また、本発明は、上述のようなプログラム、装置、システムとして実装され得る、方法も含む。
【0024】
なお、本明細書で使用される場合、「コンピュータ読み取り可能な記憶媒体」との用語は、プログラム、コードおよび/またはデータをコンピュータシステムによって使用するために記憶することが可能な、任意の装置または媒体をいう。コンピュータ読み取り可能な記憶媒体は、コンピュータシステムによって読み取りが可能である限りにおいて、揮発性であっても、不揮発性であってもよい。コンピュータ読み取り可能な記憶媒体としては、例えば、磁気テープ、ハードディスクドライブ(HDD)、コンパクトディスク(CD)、デジタルバーサタイルディスク(DVD)、ブルーレイディスク(BD)、半導体メモリなどが挙げられるが、これらに限られない。
【0025】
また、本明細書において使用される場合、「システム」(例えば、ゲームシステム、情報処理システム)との用語は、1つの装置で構成されてもよく、また、複数の装置であって、その各々の装置が他の装置のいずれかと通信可能であるものであってもよい。
【0026】
本明細書において使用される場合、装置またはシステムが、別の装置またはシステムに「接続する」状態は、有線で接続される状態に限らず、無線で接続される状態も包含し得る。
【発明の効果】
【0027】
逐次的に表示される立体視用画像から、所望の立体視用画像を所定の条件に基づいて保存することが可能となる。
【図面の簡単な説明】
【0028】
【図1】開状態におけるゲーム装置10の正面図
【図2】閉状態におけるゲーム装置10の左側面図、正面図、右側面図および背面図
【図3】ゲーム装置10の内部構成を示すブロック図
【図4A】仮想空間において配置される仮想オブジェクトの位置関係を示した模式図
【図4B】図4Aに示された仮想オブジェクトOBJ1の位置から、視線方向D2に存在する仮想オブジェクトOBJ2が観察された場合に相当する画像(一人称画像)が上側LCD22に表示される状況を示すための模式図
【図5】ゲーム装置10のメインメモリ32のメモリマップを示す模式図
【図6A】本発明の例示的実施形態であるゲーム装置10において、その画像処理プログラムに基づいて行われるメイン処理の一例を示すフローチャート
【図6B】図6Aのフローチャートにおけるスクリーンショット撮像処理の一例を示したフローチャート
【図6C】撮像画像表示処理の一例を示したフローチャート
【発明を実施するための形態】
【0029】
(ゲーム装置の構成)
以下、本発明の一実施形態に係るゲーム装置について説明する。図1および図2は、ゲーム装置10の外観を示す平面図である。ゲーム装置10は携帯型のゲーム装置であり、図1および図2に示すように折り畳み可能に構成されている。図1は、開いた状態(開状態)におけるゲーム装置10を示し、図2は、閉じた状態(閉状態)におけるゲーム装置10を示している。図1は、開状態におけるゲーム装置10の正面図である。ゲーム装置10は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバーや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【0030】
まず、図1および図2を参照して、ゲーム装置10の外観構成について説明する。図1および図2に示されるように、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に接続されている。
【0031】
(下側ハウジングの説明)
まず、下側ハウジング11の構成について説明する。図1および図2に示すように、下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
【0032】
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12の画素数は、例えば、320dot×240dot(横×縦)であってもよい。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
【0033】
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上に装着されている。なお、本実施形態では、タッチパネル13は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度が一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1および図2(d)に示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
【0034】
各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが、設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
【0035】
アナログスティック15は、方向を指示するデバイスである。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定の仮想オブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定の仮想オブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定の仮想オブジェクトはアナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【0036】
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク42(図3参照)が設けられ、当該マイク42がゲーム装置10の外部の音を検出する。
【0037】
図2(a)は閉状態におけるゲーム装置10の左側面図であり、図2(b)は閉状態におけるゲーム装置10の正面図であり、図2(c)は閉状態におけるゲーム装置10の右側面図であり、図2(d)は閉状態におけるゲーム装置10の背面図である。図2(b)および(d)に示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14GおよびRボタン14Hは、例えば、撮像部のシャッターボタン(撮影指示ボタン)として機能することができる。また、図2(a)に示されるように、下側ハウジング11の左側面には、音量ボタン14Iが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
【0038】
図2(a)に示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ45とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ45は、コネクタに着脱自在に装着される。データ保存用外部メモリ45は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。
【0039】
また、図2(d)に示されるように、下側ハウジング11の上側面には、ゲーム装置10とゲームプログラムを記録した外部メモリ44を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ44と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。当該外部メモリ44がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。
【0040】
また、図1および図2(c)に示されるように、下側ハウジング11の下側面にはゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16A、下側ハウジング11の右側面にはゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図2(c)参照)。
【0041】
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0042】
(上側ハウジングの説明)
次に、上側ハウジング21の構成について説明する。図1および図2に示すように、上側ハウジング21には、上側LCD(Liquid Crystal Display:液晶表示装置)22、外側撮像部23(外側撮像部(左)23aおよび外側撮像部(右)23b)、内側撮像部24、3D調整スイッチ25、および、3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
【0043】
図1に示すように、上側LCD22は上側ハウジング21に収納される。上側LCD22の画素数は、例えば、800dot×240dot(横×縦)であってもよい。なお、本実施形態では上側LCD22は液晶表示装置であるとしたが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0044】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左眼用画像と右眼用画像が表示される。具体的には、左眼用画像と右眼用画像が所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。または、左眼用画像と右眼用画像とが交互に表示される方式の表示装置であってもよい。また、本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左眼用画像と右眼用画像とを左眼および右眼のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22はパララックスバリア方式のものとする。上側LCD22は、右眼用画像と左眼用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左眼に左眼用画像をユーザの右眼に右眼用画像を視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右眼にも左眼にも見えるような表示モードである)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切替えは、後述する3D調整スイッチ25によって行われる。
【0045】
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(23aおよび23b)の総称である。外側撮像部(左)23aと外側撮像部(右)23bの撮像方向は、いずれも当該外側面21Dの外向きの法線方向である。外側撮像部(左)23aと外側撮像部(右)23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。外側撮像部(左)23aおよび外側撮像部(右)23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0046】
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0047】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。3D調整スイッチ25のスライダ25aは、所定方向(上下方向)の任意の位置にスライド可能であり、当該スライダ25aの位置に応じて上側LCD22の表示モードが設定される。また、スライダ25aの位置に応じて、立体画像の見え方が調整される。
【0048】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。なお、3Dインジケータ26は、上側LCD22が立体表示モードになっており、かつ、立体視用画像を表示するプログラム処理が実行されているときに限り、点灯するようにしてもよい。
【0049】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ43からの音声がこのスピーカ孔21Eから出力される。
【0050】
(ゲーム装置10の内部構成)
次に、図3を参照して、ゲーム装置10の内部の電気的構成について説明する。図3は、ゲーム装置10の内部構成を示すブロック図である。図3に示すように、ゲーム装置10は、上述した各部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、電源回路40、およびインターフェイス回路(I/F回路)41等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0051】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。情報処理部31のCPU311は、ゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ44やデータ保存用内部メモリ35)に記憶されているプログラムを実行することによって、当該プログラムに応じた処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22及び/又は下側LCD12に出力し、上側LCD22及び/又は下側LCD12に当該画像が表示される。
【0052】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、および、データ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ44を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ45を着脱自在に接続するためのインターフェイスである。
【0053】
メインメモリ32は、情報処理部31(のCPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部(外部メモリ44や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0054】
外部メモリ44は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ44は、例えば読み取り専用の半導体メモリで構成される。外部メモリ44が外部メモリI/F33に接続されると、情報処理部31は外部メモリ44に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ45は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ45には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ45がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ45に記憶された画像を読み込み、上側LCD22及び/又は下側LCD12に当該画像を表示することができる。
【0055】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0056】
無線通信モジュール36は、例えばIEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0057】
また、情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸又は2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢や動きを検出することができる。
【0058】
また、情報処理部31には、RTC38および電源回路40が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路40は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0059】
また、情報処理部31には、I/F回路41が接続される。I/F回路41には、マイク42およびスピーカ43が接続される。具体的には、I/F回路41には、図示しないアンプを介してスピーカ43が接続される。マイク42は、ユーザの音声を検知して音声信号をI/F回路41に出力する。アンプは、I/F回路41からの音声信号を増幅し、音声をスピーカ43から出力させる。また、タッチパネル13はI/F回路41に接続される。I/F回路41は、マイク42およびスピーカ43(アンプ)の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。
【0060】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に従った処理を実行する。
【0061】
下側LCD12および上側LCD22は情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(のGPU312)の指示に従って画像を表示する。本実施形態では、情報処理部31は、上側LCD22に立体画像(立体視可能な画像)を表示させる。
【0062】
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された右眼用画像と左眼用画像とが、上側LCD22に出力される。
【0063】
より具体的には、LCDコントローラは、右眼用画像について縦方向に1ライン分の画素データを読み出す処理と、左眼用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右眼用画像と左眼用画像とを読み出す。これにより、右眼用画像および左眼用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右眼用画像の短冊状画像と左眼用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右眼に右眼用画像が、ユーザの左眼に左眼用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
【0064】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。
【0065】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダ25aの位置に応じた電気信号を情報処理部31に送信する。
【0066】
また、3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。以上がゲーム装置10の内部構成の説明である。
【0067】
(画像処理装置の例示的な実施形態)
次に、本発明の例示的な実施形態の画像処理装置であるゲーム装置10において、画像処理プログラム70に従い処理が行われた場合について説明する。また、本実施形態では、以下で説明する処理(特に、図6A以降のフローチャートにおけるすべてのステップの処理)をCPU311が実行するものとして説明するが、このような処理のいずれも、CPU311以外のプロセッサや専用回路が実行するようにしてもよい。
【0068】
ゲーム装置10の上側LCD22に立体表示するための画像に対する制御処理の概要を、図4A以降の図を参照しつつ説明する。
【0069】
例示的な実施形態において、本発明は、立体視可能に仮想空間を出力し得る画像処理装置の一例としてゲーム装置10を提供する。ゲーム装置10は、画像処理プログラム70(後述の「メモリマップ」についての記載;図5を参照)を実行することで本発明の例示的な画像処理を達成する。画像処理プログラム70は、ゲームプログラム71が担うゲーム処理の過程で呼び出されるか、または、そのゲームプログラム71の機能の一部を担うプログラムとして実行されることで、本発明の例示的な実施形態の画像処理を達成するためのプログラムである。画像処理プログラム70とゲームプログラム71との間で行われる機能の分担は、任意に変更し得るので、以下、便宜上、ゲーム装置10で行われるゲーム処理および画像処理を担う一群のプログラムを代表して、画像処理プログラム70として称する。
【0070】
ゲーム装置10は、そのゲーム処理の過程において、一連の仮想空間を描画した結果としての画像をそのプレイヤに提供する。ここで、ゲーム装置10が、図4Aを参照しつつ、仮想空間の画像を描画し、表示する過程の一例を説明する。
【0071】
図4Aは、仮想空間において配置される仮想オブジェクトの位置関係を示した模式図である。ここでは、仮想空間内に2つの仮想オブジェクト(そのそれぞれを、OBJ1およびOBJ2とする)が配置される例について説明する。仮想オブジェクトOBJ1は、ゲーム装置10のプレイヤ(ユーザ)により操作可能な仮想オブジェクト(プレイヤオブジェクト)である。他方、仮想オブジェクトOBJ2は、プレイヤにより操作されない仮想オブジェクト(ノンプレイヤオブジェクト)である。
【0072】
ゲーム装置10が、ゲーム処理を提供している際に、仮想オブジェクトOBJ1および仮想オブジェクトOBJ2の仮想空間における位置の座標(ワールド座標)は、例えば、それぞれ、3次元座標P1(x1,y1,z1)およびP2(x2,y2,z2)として与えられる。そして、CPU311は、それぞれの位置に応じて、仮想オブジェクトOBJ1およびOBJ2の各々に規定された3次元モデル(人間を模したポリゴンモデル、ビルを模したポリゴンモデル)を配置する。
【0073】
また、矢印D1は、例示的なプレイヤオブジェクトOBJ1の仮想空間内での進行方向を示す矢印である。他方、矢印D2は、例示的なプレイヤオブジェクトOBJ1の仮想空間内での視線方向を示す矢印である。なお、この矢印D1の方向と矢印D2の方向とは、必ずしも平行になる必要はない。
【0074】
ゲーム装置10のプレイヤは、そのゲーム処理の進行に沿って当該装置の入力装置(例えば、各操作ボタン14A〜14Lなど)を介して、仮想オブジェクトOBJ1を操作することで、仮想空間内を移動する。このとき、ゲーム装置10は、仮想オブジェクトが配置されたワールド座標系に基づく情報を、仮想空間における特定の視点から捉えた座標系に変換(透視変換処理)を行い、ゲーム装置10の表示領域(例えば、上側LCD22)を介してユーザに仮想空間で進行するイベントを逐次的に表示する。
【0075】
また、本例のゲーム処理の過程において、この仮想空間を捉える視点(仮想カメラ)の位置は、その所定の設定ならびにユーザによる入力装置を介した入力操作(例えば、Lボタン14Gおよび/またはRボタン14Hによる操作)に応じて、可逆的に変更され得る。例えば、ゲーム装置10は、プレイヤオブジェクト(本例では、仮想オブジェクトOBJ1)の仮想空間での位置に基づく視点(特に、その位置に配置される当該仮想オブジェクトのモデルの大きさ・形状を考慮した仮想オブジェクトOBJ1の視点;以下、「一人称視点」と呼ぶ)と、当該一人称視点以外の視点(以下、「三人称視点」と呼ぶ)との間で、実際に透視変換処理を行う際の視点の位置の設定を可逆的に変更し得る。
【0076】
図4Aに加え、図4Bを参照して、この一人称視点と三人称視点との間で行われる視点の設定変更について説明する。図4Bは、図4Aに示された仮想オブジェクトOBJ1の位置(視点)から、視線方向D2に存在する仮想オブジェクトOBJ2が観察された場合に相当する画像(一人称画像)が、上側LCD22に表示される様子を示す模式図である。
【0077】
例示的な実施形態において、ゲーム装置10は、そのゲーム処理の進行上の通常状態では、三人称視点を採用してユーザに仮想空間に生じているイベントに対応する画像を提示する。例えば、図4Aに示された例のような位置関係にある場合には、好ましくは、ゲーム装置10は、仮想オブジェクトOBJ1が含まれる仮想空間が、(ユーザが視認し得る)上側LCD22に表示されるような視点を採用する。ここで、ゲーム装置10のプレイヤが、仮想オブジェクトOBJ1を方向D1に沿って移動するように操作している場合には、好ましくは、CPU311は、その移動方向D1の先に存在する仮想オブジェクトOBJ2も把握できるような態様で仮想空間を俯瞰できる視点から透視変換処理を行う。次いで、CPU311は、そこで得られた画像を上側LCD22に表示する。
【0078】
上述のように、ゲーム装置10が、ユーザに仮想空間で進行するイベントを表す画像を逐次的に表示する際、その逐次的に出力される画像を、立体視可能な態様で、プレイヤに上側LCD22を介して提供し得る。具体的には、ゲーム装置10は、プレイヤの右眼および左眼に知覚される画像を区別して提供し得る。より具体的には、上述したような仮想オブジェクトが配置された仮想空間を透視変換処理に供する際の視点を、右眼に知覚させるための画像(右眼用画像)と左眼に知覚させるための画像(左眼用画像)とを生成するために、2通り設定し、その2つの視点の位置に基づいて同一の仮想空間(およびそれに含まれる仮想オブジェクト)の透視変換処理を行えばよい。
【0079】
ここで設定される2つの視点(右仮想カメラ、左仮想カメラ)は、3次元物体を視認する際に観測者の右眼と左眼との間に生じている視差(両眼視差)に対応する距離だけ離した位置に配置される。そして、ゲーム装置10は、このように設定された右仮想カメラおよび左仮想カメラの位置に基づいて透視変換処理を行うことで、右眼用画像および左眼用画像を提供する。そして、このよう生成された右眼用画像および左眼用画像は、上述のように、パララックスバリア方式(視差バリア方式)を採用するゲーム装置10の上側LCD22に表示されることで、立体視用画像(ユーザの左眼に左眼用画像をユーザの右眼に右眼用画像を視認させることにより、ユーザに立体感を提供し得る画像群)として機能する。
【0080】
ゲーム装置10が、仮想空間で進行するイベントを表す画像を逐次的に立体視可能な態様でプレイヤに提示する際に、そのプレイヤは、3D調整スイッチ25のスライダ25aをスライドさせることで、右仮想カメラと左仮想カメラとの間に設定される距離を調整することが可能である。具体的には、そのスライダ25aの機械的な移動量(位置)と上記仮想カメラ間の距離が対応づけられていることで、ゲーム装置10は、当該距離の直感的な調整をそのプレイヤに提供し得る。この変更された距離に応じた立体視可能な画像は、その画像から(その画像を知覚したプレイヤの脳内で)抽出される対象物の輻輳角が変更されるので、変更後の対象物の遠近感が変更される。3D調整スイッチ25のスライダ25aの移動量に応じた仮想カメラ間の距離の変更は、ゲーム装置10がユーザに仮想空間で進行するイベントを表す画像の立体視の態様にほぼリアルタイムで反映され得る。
【0081】
そして、本発明の例示的な実施形態において、ゲーム装置10は、その上側LCD22で逐次的に提供される立体視可能な画像から、プレイヤの入力操作に応じた所定の瞬間の画像(スクリーンショット)を、メインメモリ32のワーク領域に一時的に記憶し、必要に応じて、不揮発性の記憶領域(例えば、不揮発性のデータ保存用内部メモリ35またはデータ保存用外部メモリ)に記憶されることによって、当該スクリーンショットを保存し得る。
【0082】
この例では、ゲーム装置10は、上述のプレイヤの入力操作があった時点での、そのときの仮想カメラ間距離での左仮想カメラおよび右仮想カメラから撮像された左眼用画像および右眼用画像をそれぞれ含む静止画データとしてメインメモリ32のワーク領域に一時記憶した後、ユーザの操作に従って、データ保存用内部/外部メモリに保存する。ゲーム装置10は、事後的に、この保存された静止画データを読み込むことで、そのスクリーンショットを撮影した際に3D調整スイッチ25の調整によってプレイヤが設定した所望の仮想カメラ間距離(両眼視差に対応)を反映した立体視可能な画像(スクリーンショット)を上側LCD22に再現することが可能である。
【0083】
ここで、静止画データは、任意のデジタル画像形式で提供され得る。主な静止画像の取扱いが可能なファイル形式としては、JPG(Joint Photographic Experts Group)、GIF(Graphics Interchange Format)、BMP(Bitmap)、TIFF(Tagged Image File Format)などが挙げられるが、これに限られない。好ましくは、本発明の例示的な実施形態では、静止画データは、JPG形式で提供され得る。
【0084】
立体視可能なスクリーンショットとして保存される場合、CPU311は、左眼用画像と右眼用画像とが、そのまま並置された状態で収められた画像(1ファイル)として保存され得る。また、CPU311は、左眼用画像と右眼用画像を、別個のファイルで個別に保存し、事後的に再生される場合は、その一組の画像から、上述の短冊状画像を経た合成画像を生成することで立体視可能な画像とするような態様で保存してもよい。代替的に、CPU311は、次のような方法で立体視用画像を保存してもよい。すなわち、CPU311は、左眼用画像と右眼用画像とを、それぞれ、その画素を縦に1ライン毎に並んだ短冊状画像に分割する。次いで、CPU311は、分割された右眼用画像の短冊状画像と左眼用画像の短冊状画像とが交互に配置された画像を合成し、当該合成された画像を1ファイルとして提供する。
【0085】
ここで、ゲーム装置10が、静止画データとして、左眼用画像および右眼用画像をそれぞれ含むデータを保存することで、少ない処理負担かつ情報量で立体視用画像をキャプチャすることが可能となる。また、プレイヤは、逐次的に提示される仮想空間でのイベントを示す一連の画像から、所望する視差に基づき生成されたその一部を立体視可能な画像として保存することができる。
【0086】
上述のように、ゲーム装置10は、右仮想カメラと左仮想カメラとの間の距離を調整するためのユーザによる3D調整スイッチ25を介した入力操作を得ることができる。そして、ゲーム装置10は、この入力操作で設定された上記距離を、そのゲーム処理に沿って逐次的に出力される立体視可能な画像のうちのいずれかを選択的に保存する(スクリーンショットを生成する)際に、当該画像で表現された当該仮想空間の描画状態に反映させる。他方、ゲーム装置10は、このように保存されたスクリーンショットを、それが保存された後に上側LCD22において再現することが可能である。
【0087】
ただし、この再現される際には、仮に、3D調整スイッチ25において追加的な入力があっても、ゲーム装置10は、視差を変化させることなく、立体視用画像を構成するための左眼用画像および右眼用画像をスクリーンショット取得時に設定された両眼視差(プレイヤのスクリーンショット取得操作があった時の仮想カメラ間距離で撮像された画像)で再現する。これは、本実施形態において、3D調整スイッチ25が、仮想カメラ間距離を変化(調整)させるために使用されるものであるからであり、保存された立体視用画像が再現される際のその右眼用画像と左眼用画像との間の互いに対するずれ(以下、静止画データのずれ量)を変化(調整)させるために使用されるものではないからである。つまり、再現された立体視用画像の視差を変化させるために3D調整スイッチ25を用いるようにすると、2つの静止画データのずれ量を変化させることになり、仮想カメラ間距離を変化させる場合と比べて立体感が異なるという問題が生じるからである。そこで、本実施形態では、3D調整スイッチ25を、仮想カメラ間距離の調整のみに用いて、2つの静止画データのずれ量には用いないようにしている。
【0088】
このような構成をとることで、立体視可能な画像の再現時に伴った問題を解決し得る。従来、再現時の3D調整スイッチ25に対する入力値を、静止画として保存された立体視用画像(スクリーンショット)の視差調整に用いると、そのスクリーンショットを取得する前の立体視用画像を視差調整(仮想カメラ間距離の変化)した場合に得られる立体視用画像とは相違してしまうことにより、不自然な立体視(立体感)をプレイヤに提供してしまっていた。しかし、上述のような構成をとることで、ゲーム装置10は、プレイヤが保存したい所望の視差情報を維持した立体視可能な画像を、安定して提供することが可能となる。
【0089】
上述のように、ゲーム装置10は、仮想空間で生じたイベントに対応する画像を逐次的に出力する。ゲーム装置10は、仮想空間内で移動または方向を変える所定の基準点が設けられることで、その基準点の位置および/または方向に応じて右仮想カメラおよび左仮想カメラの位置/姿勢を設定する。具体的には、図4Aに示した仮想空間の例では、仮想オブジェクトOBJ1が、その基準点としての機能を果たす。すなわち、仮想オブジェクトOBJ1は、プレイヤオブジェクトであって、プレイヤのゲーム装置10に対する入力操作およびそのゲーム処理の過程に応じて、位置および/または方向(例えば、図4では矢印D1で示される方向への移動)を変化させる。または、基準点は、プレイヤオブジェクトとは別の指標(例えば、カーソルなど)であって、プレイヤが直接その基準点を操作して仮想空間内で移動または方向を変えられるようにしてもよい。さらに、基準点は、プレイヤの入力操作によらず、所定の条件にしたがって自動的に移動または方向を変えるようにしてもよい。例えば、基準点は、ゲームのシーンに応じて予め決められた位置に移動または方向を変えるようにしてもよいし、無作為に移動または方向を変えるようにしてもよい。
【0090】
このような構成をとることによって、ゲーム装置10のプレイヤは、基準点の移動に応じて変化する立体視用画像からいずれかの画像を保存することができ、立体視用画像を収集するといった興趣性をより増すことができる。この基準点がプレイヤオブジェクトである場合は、特に、プレイヤが仮想カメラの撮像範囲を自由に変化させることができるので、所望の立体視用画像を保存することができ、立体視用画像を収集するといった興趣性をより増す効果が得られる。
【0091】
さらに、上述のように、ゲーム装置10は、仮想空間を表現する際に、一人称視点と三人称視点との間で透視変換処理の設定を変更することが可能である。ゲーム装置10が、スクリーンショットを撮影する操作と、一人称視点の設定とを関連づけて、ゲーム処理をすすめる場合、あたかもプレイヤが操作する仮想オブジェクトの視点から仮想空間内を見た画像を撮っているかのような演出を行うことが可能となり、興趣性と臨場感を向上できる。
【0092】
また、そのような撮像時は一人称視点で、その他の通常時は、三人称視点としている。撮像時は一人称視点で通常時は三人称視点である設定をゲーム装置10が有すると、通常時は左右の仮想カメラをプレイヤオブジェクトの視点以外の位置に配置することによりプレイヤオブジェクトを視認して操作することが容易になり、立体視用画像を保存する際には、左右の仮想カメラをプレイヤオブジェクトの視点に対応する位置に配置することにより、あたかもプレイヤオブジェクトの視点から見たような臨場感のある立体視用画像を保存することができる。
【0093】
(メモリマップ)
ここで、ゲームプログラムの実行中にメインメモリ32に記憶される主なデータについて説明する。図5は、ゲーム装置10のメインメモリ32のメモリマップを示す模式図である。図5に示されるように、メインメモリ32には、ゲームプログラム70、画像処理プログラム71、仮想オブジェクト情報72、スクリーンショット情報73、各種変数74等が記憶される。
【0094】
画像処理プログラム70は、ゲームプログラム71のゲーム処理の過程で呼び出されるか、または、そのゲームプログラム71の一部として機能することで、本発明の例示的な実施形態の処理を担うプログラムである。
【0095】
ゲームプログラム71は、情報処理部31にゲーム表示処理を実行させるためのプログラムである。
【0096】
仮想オブジェクト情報72は、仮想オブジェクトに関連する情報であって、仮想オブジェクトの形状や模様を表すモデル情報(例えば、ポリゴンに関する情報)や、仮想空間における仮想オブジェクトの現在位置などを含む。
【0097】
スクリーンショット情報73は、ゲーム装置10が、逐次的に出力される立体視可能な画像からユーザの入力操作によって取得されたスクリーンショットに対応する静止画データである。
【0098】
各種変数74は、ゲームプログラム70および画像処理プログラム71の実行の際に用いられる各種変数である。
(例示的な処理の流れ)
以下、図6A以降のフローチャートを参照して、本発明の例示的実施形態の画像処理プログラムに基づいて実行される処理の流れを説明する。本図および後続の図では、「ステップ」を、「S」と略記する。なお、図6A以降のフローチャートは、処理過程の単なる一例にすぎない。したがって、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判断ステップで利用される閾値も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。
【0099】
図6Aは、本発明の例示的実施形態であるゲーム装置10において、その画像処理プログラム70に基づいて行われるメイン処理の一例を示すフローチャートである。
【0100】
ステップ101において、CPU311は、仮想空間内に仮想オブジェクトを配置する。具体的には、図4Aに示される例の場合、仮想オブジェクトOBJ1および仮想オブジェクトOBJ2の仮想空間における位置の座標(ワールド座標)が、メインメモリ32に記憶される内容に従い与えられる。CPU311は、それぞれの仮想空間での位置(P1,P2)に応じて、仮想オブジェクトOBJ1およびOBJ2の各々に規定された3次元モデルを配置する。
【0101】
ステップ102において、CPU311は、3D調整スイッチ25の位置に応じて算出される右仮想カメラと左仮想カメラとの間に設ける距離(仮想カメラ間距離)を取得する。
【0102】
ステップ103において、CPU311は、ステップ102で取得した仮想カメラ間距離に応じて2つの仮想カメラ(右仮想カメラ、左仮想カメラ)の仮想空間内での位置を、設定・更新する。
【0103】
ステップ104において、CPU311は、ステップ102で設定された2つの仮想カメラ(右仮想カメラ、左仮想カメラ)から仮想空間を撮像し、得られた立体視用画像(右眼用画像、左眼用画像)を描画し、上側LCD22に表示する。具体的には、CPU311は、右眼用画像および左眼用画像を次のよう処理する。すなわち、CPU311は、右眼用画像および左眼用画像のそれぞれの画素を縦に1ライン毎に並んだ短冊状画像に分割し、分割された右眼用画像の短冊状画像と左眼用画像の短冊状画像とが交互に配置された画像を合成し、当該合成された画像を、上側LCD22の画面に表示する。
【0104】
ステップ105において、CPU311は、ゲーム処理における内部状態がスクリーンショットを撮像するための準備状態(スクリーンショット撮像待機状態)に移行しているか否かを判定する。
【0105】
具体的には、CPU311が、ゲーム装置10のRボタン14Hに対して押圧操作がなされたことを示す信号を受けた場合、ゲーム処理における内部状態がスクリーンショット撮像準備状態にあると判定(ステップ105、YES)し、次のステップ106の処理に進む。他方、CPU311が、ゲーム装置10のRボタン14Hに対して押圧操作がなされたことを示す信号を検出しなかった場合、ゲーム処理における内部状態が撮像準備状態でないと判定し(ステップ105、No)、ステップ106の処理をスキップして、ステップ107の処理に進む。
【0106】
ステップ106において、CPU311は、スクリーンショット撮像処理を行う。具体的には、図6Bに示されるような一連の処理が行われる。ここで、図6Bを参照して、このスクリーンショット撮像処理(ステップ201からステップ209まで)の詳細について説明する。
【0107】
図6Bは、図6Aのフローチャートにおけるスクリーンショット撮像処理の一例を示したフローチャートである。
【0108】
ステップ201において、CPU311は、仮想カメラの位置をプレイヤオブジェクトの視点に対応した位置(一人称視点)に移動する。その後、CPU311は、ステップ202の処理に進む。
【0109】
ステップ202において、CPU311は、仮想空間を仮想カメラで撮像して得られた立体視用画像を描画・表示する。
【0110】
この一連のステップ201およびステップ202について、例えば、図4Aに示されたような位置関係にある仮想オブジェクトおよび仮想空間を例に説明する。まず、CPU311は、プレイヤオブジェクトである仮想オブジェクトOBJ1の視点を仮想カメラの位置(視点)とし(ステップ201)、当該視点から(矢印D2を視線方向として)透視変換処理を行う。この結果、例えば、CPU311は、図4Bに示されるように、仮想オブジェクトOBJ1の視点から見た、仮想オブジェクトOBJ2に対応する画像を上側LCD22に立体視可能な態様で表示する(ステップ202)。ステップ202の処理の後、CPU311は、ステップ203の処理を進める。
【0111】
ステップ203において、CPU311は、スクリーンショットの撮像を指示する操作に対応する信号を取得したか否かを判定する。具体的には、CPU311が、ゲーム装置10のRボタン14Hに対して押圧がなされた状態が解かれたことを示す信号を検出した場合(ステップ203、YES)、CPU311は、ステップ204の処理に進む。他方、CPU311が、当該信号を検出していない場合、すなわち、ゲーム装置10のRボタン14Hに対して押圧が継続されている場合(ステップ203,No)、CPU311は、ステップ206の処理に進む。
【0112】
ステップ204において、CPU311は、スクリーンショットを撮像し、また、ユーザに対して当該撮像を行ったことを示す所定の演出をおこなう。具体的には、CPU311は、スクリーンショットを撮像し、その撮像時に、必要に応じて、音声データ(例えば、カメラのシャッター音のような使用者の操作が反映されたことが想起される音声を含むデータ)を再生する。
【0113】
ステップ205において、CPU311は、ステップ204で撮像されたスクリーンショット画像をゲーム装置10のメインメモリ32のワーク領域に記憶する。
【0114】
ステップ206において、CPU311は、撮像中止操作がなされたか否かを判定する。具体的には、CPU311が、ゲーム装置10のLボタン14Gに押圧操作がなされたことを示す信号を検出した場合(ステップ206、YES)、CPU311は、このサブルーチンを終了して、ステップ107(図6A)の処理にすすむ。他方、CPU311が、当該信号を検出していない場合(ステップ206,No)、CPU311は、ステップ207の処理に進む。
【0115】
ステップ207において、CPU311は、3D調整スイッチ25に対する操作が行われたか否かを判定する。具体的には、CPU311が、ゲーム装置10の3D調整スイッチ25のスライダ25aが移動されたことを示す信号を検出した場合(ステップ207、YES)、CPU311は、ステップ208の処理にすすむ。他方、CPU311が、当該信号を検出していない場合(ステップ207,No)、CPU311は、ステップ202の処理に戻る。
【0116】
ステップ208において、CPU311は、3D調整スイッチ25におけるスライダ25aの位置に応じて算出される右仮想カメラと左仮想カメラとの間に設ける距離(仮想カメラ間距離)を取得する。
【0117】
ステップ209において、CPU311は、ステップ102で取得した仮想カメラ間距離に応じて2つの仮想カメラ(右仮想カメラ、左仮想カメラ)の仮想空間内での位置を、設定・更新する。その後、CPU311は、ステップ202の処理に戻る。
【0118】
ここで、図6Aに戻り、ステップ106のスクリーンショット撮像処理(ステップ201からステップ209に対応)が行われた後の、ステップ107からステップ110までの一連の処理について説明する。
【0119】
ステップ107において、CPU311は、ゲーム処理を終了するか否かを判定する。例えば、CPU311は、ゲーム処理を終了する旨のゲーム装置10に対するプレイヤの入力操作があった場合、またはゲーム進行が所定の条件(例えば、ステージをクリア)を満たした場合(ステップ107,Yes)、CPU311は、ステップ108の処理に進む。他方、CPU311は、ゲーム処理を終了しない旨のゲーム装置10に対するプレイヤの入力操作があった場合、またはゲーム進行が上記所定の条件を満たしていない場合(ステップ107,No)、CPU311は、ステップ101に戻って、ステップ101〜106の処理を繰り返し行う
【0120】
ステップ108おいて、CPU311は、撮像したスクリーンショットの一覧を表示する。具体的には、CPU311は、ステップ205においてメインメモリ32のワーク領域に記憶された一連のスクリーンショット画像の一連をゲーム装置10の表示領域(例えば、上側LCD22)に表示する。より具体的には、ゲーム装置10は、プレイヤが撮影した写真を確認するために、左眼用画像と右眼用画像の画面それぞれをテクスチャにコピー圧縮した静止画像として表示し得るが、表示の態様はこの例に限られない。
【0121】
ステップ109おいて、CPU311は、ステップ108において表示された一覧におけるプレイヤの選択操作を促し、その一覧に示された画像のいずれかの保存についての要否をプレイヤに確認する。CPU311は、プレイヤからいずれかの画像の選択操作を示すゲーム装置10に対するプレイヤの入力操作があった場合(ステップ109,Yes)、CPU311は、ステップ110の処理に進む。他方、CPU311は、画像の保存を必要としない旨のゲーム装置10に対するプレイヤの入力操作があった場合(ステップ109,No)、ステップ110の処理をスキップし、メイン処理を終了する。
【0122】
ステップ110おいて、CPU311は、ステップ108において表示された一覧に対するプレイヤの選択操作に従い、ゲーム装置10の不揮発性の記憶領域(例えば、データ保存用内部メモリ35およびデータ保存用外部メモリ45)のいずれかに保存する。その後、CPU311は、メイン処理を終了する。
【0123】
(付加的なアプリケーションについて)
ゲーム装置10は、上述のように撮像し、保存したスクリーンショット群を呼び出すためのアプリケーションプログラムを備えてもよい。このようなアプリケーションプログラムについて、図6Cを参照しつつ説明する。
【0124】
具体的には、図6Cに記載されるような処理過程が示されてもよい。図6Cは、撮像画像表示処理の一例を示したフローチャートである。
【0125】
ステップ301において、CPU311は、本アプリケーションを起動するユーザによる入力操作に応じて、ゲーム装置10の記憶領域に存在する撮像画像(ユーザのスクリーンショット取得操作によって保存された立体視用の静止画像:スクリーンショット画像)の一覧(サムネイル)を表示する。
【0126】
ステップ302において、CPU311は、一覧に示された撮像画像群の中からユーザがいずれかの画像を選択する操作があるか否かを判定する。CPU311は、その選択する操作に対応する信号が生じたと判定したとき(ステップ302、YES)、ステップ303に進む。他方、CPU311は、その選択する操作に対応する信号がないと判定したとき(ステップ302、No)、ステップ303からステップ305までの処理をスキップして、ステップ306の処理に進む。
【0127】
ステップ303において、CPU311は、ユーザにより選択された立体視用画像を上側LCD22に表示する。
【0128】
ステップ304において、CPU311は、プレイヤから表示されている画像の表示方法を変更する要求に係る入力があるか否かを判定する。
【0129】
具体的には、CPU311は、その画像の表示方法を変更する要求が存在すると判定したとき(ステップ304、YES)、ステップ305の処理に進む。他方、CPU311は、その画像の表示方法を変更する要求が存在しないと判定したとき(ステップ304、No)、ステップ306の処理に進む。ここで、撮像画像の表示方法の変更は、当該画像の表示の態様の変更であって、例えば、画像の拡大・縮小であったり、画像の編集を行うといったような変更を含む。そして、その変更が許容される場合に、CPU311は、上述の撮像画像一覧(ステップ301参照)における変更が許容される画像に「変更可能」を示すアイコンなどを付して表示する。これにより、CPU311は、ユーザに対して表示方法の変更が可能なことを提示する。当然ながら、撮像画像のいずれもが、表示方法の変更が許容されていないものである場合は、本ステップおよび後続のステップ305については、行われなくてよい。なお、この表示方法の変更は、付加的な関連情報の付加、スクリーンショットを囲む枠画像の付加など、追加的な情報を与えるような操作を含んでもよい。
【0130】
ステップ306において、CPU311は、本アプリケーションを終了するか否かを判定する。具体的には、CPU311は、本アプリケーション終了の要求を示すゲーム装置10に対するプレイヤの入力操作があった場合(ステップ306,Yes)、CPU311は、本アプリケーションの処理を終了する。他方、CPU311は、本アプリケーション終了の要求を示すゲーム装置10に対するプレイヤの入力操作がなかった場合(ステップ306,No)、CPU311は、ステップ302の処理に戻る。
【0131】
(主な変形例)
別の実施形態において、本発明の画像処理装置において行われる(立体視可能な画像の)スクリーンショットの表示および/または保存は、上述した例示的な実施形態のものに限られず、例えば、プレイヤが、仮想空間内で何らかのアクションをプレイヤオブジェクトに行わせている最中に、並行して表示および/または保存するような態様で行われてもよい。
【0132】
別の実施形態において、立体視用画像をスクリーンショットとして撮影する条件は、プレイヤの操作だけではなく、ゲーム処理の進行に応じた条件(例えば、ゲームの進行上の特定シーンに到達したとき)、その他のパラメータ(例えば、ゲーム開始からの経過時間)に応じて行ってもよい。
【0133】
上述したスクリーンショットの被写体となる仮想空間に配置された仮想オブジェクトの表示状態を、立体視用画像を事後的に生成またはその内容の変更が可能であるように、本発明の別の態様の画像処理装置は、次のような態様で、スクリーンショットを取得してもよい。例えば、スクリーンショットを取得する際に静止画データではなく、事後的な立体視用画像の生成、その立体視用画像の内容の変更を可能にするための形態で保存されてもよい。このような形態のデータは、仮想オブジェクトのワールド座標、そのモデルに規定されているローカル座標、透視変換時の視点(仮想カメラ)の位置、立体視を提供するための複数の仮想カメラ間の距離などを含み得る。このようにして取得されたスクリーンショットであれば、再現時に3D調整スイッチを操作することにより、仮想カメラ間距離を変更することができるので、再現された立体視用画像であっても視差を調整することができる。
【0134】
(その他の事項)
上述の例示的な実施形態では、裸眼で立体視を提供する表示装置(上側LCD22)を用いたが、別の実施形態では、裸眼で立体視を提供する方式として本実施例ではパララックスバリア方式を用いたが、その他の方式(例えば、レンチキュラー方式)を用いてもよい。あるいは、本発明の画像処理プログラム等を、他の方式で表示装置における表示に適用してもよい。例えば、両眼視差を利用して立体視を提供するために、特殊な眼鏡が使用される形式(アナグリフ方式、偏光方式、時間分割シャッター方式など)で立体視が提供されてもよい。例えば、アナグリフ方式は、左眼用画像を、青色で描画し、他方、右眼用画像を、赤色で描画する。そして、観察者は、これらの画像をアナグリフ用眼鏡(左眼に赤色・右眼に青色のフィルタを施している眼鏡)を用いて観察することで、両眼視差による立体感が得られる。
【0135】
上記実施形態では、ゲーム装置10を用いて画像処理プログラム70について説明しているが、他の実施形態では、任意の情報処理装置または情報処理システム(例えば、PDA(Personal Digital Assistant)、携帯電話、パーソナルコンピュータ、カメラ等)において、本発明の画像処理プログラムを使用してもよい。
【0136】
また、上記実施形態では、一台の装置(ゲーム装置10)のみによってゲーム処理に伴う画像処理プログラムを実行しているが、他の実施形態では、互いに通信可能な複数の情報処理装置を有する画像表示システムにおいて、当該複数の情報処理装置が画像表示処理を分担して実行するようにしてもよい。
【0137】
なお、汎用的なプラットフォームにおいて本発明の画像制御プログラム等が使用される場合には、当該表示制御プログラムが、当該プラットフォームにおいて標準的に提供されるプログラムモジュールを用いることを前提として提供されてもよい。上述のようなモジュールによって機能が補完されることを前提に、上記画像処理プログラムから上述のようなモジュールに対応する機能を除いたものは、実質的にこの画像処理プログラムに相当すると理解されるべきである。
【0138】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。ここで、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて均等な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用されるすべての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【符号の説明】
【0139】
10 ゲーム装置
11 下側ハウジング
12 下側LCD
13 タッチパネル
14 操作ボタン
15 アナログスティック
16 LED
21 上側ハウジング
22 上側LCD
23 外側撮像部
23a 外側撮像部(左)
23b 外側撮像部(右)
24 内側撮像部
25 3D調整スイッチ
26 3Dインジケータ
28 タッチペン
31 情報処理部
311 CPU
312 GPU
32 メインメモリ

【特許請求の範囲】
【請求項1】
仮想空間を撮像するために所定の間隔を空けて配置されるように左仮想カメラおよび右仮想カメラを設定する仮想カメラ設定手段、
前記仮想空間を前記左仮想カメラによって撮像した左眼用画像および前記右仮想カメラによって撮像した右眼用画像に基づいて生成される立体視用画像を逐次的に出力する立体視用画像出力手段、および
所定の条件に基づいて、前記立体視用画像出力手段によって逐次的に出力された立体視用画像のうちのいずれかを保存する立体視用画像保存手段を備える、画像処理装置。
【請求項2】
前記立体視用画像保存手段は、前記左眼用画像および前記右眼用画像をそれぞれ含む静止画データとして保存する、請求項1に記載の画像処理装置。
【請求項3】
前記画像処理装置は、前記左仮想カメラと前記右仮想カメラとの間隔をユーザからの入力に基づいて設定するカメラ間隔設定手段をさらに備え、
前記カメラ間隔設定手段は、前記カメラ間隔設定手段によって設定された間隔に基づいて前記左仮想カメラおよび前記右仮想カメラを設定し、
前記立体視用画像表示手段は、前記仮想空間を前記設定された間隔に基づいて前記左仮想カメラおよび前記右仮想カメラによって撮像された左眼用画像および右眼用画像に基づいて、立体視用画像を逐次的に出力し、
前記立体視用画像保存手段は、所定の条件に基づいて、出力された立体視用画像のうちのいずれかを保存する、請求項1または2に記載の画像処理装置。
【請求項4】
前記画像処理装置は、前記立体視用画像保存手段によって保存された立体視用画像を後に再現する再現手段をさらに備える、請求項1から3のいずれかに記載の画像処理装置。
【請求項5】
前記画像処理装置は、前記立体視用画像の視差を調整するための入力をユーザから受け付ける受付手段をさらに備え、
前記カメラ間隔設定手段は、前記受付手段によって受け付けられた入力に基づく視差に対応するように前記左仮想カメラと前記右仮想カメラとの間隔を設定し、
前記立体視用画像保存手段は、所定の条件に基づいて、前記出力された立体視用画像のうちのいずれかを前記設定された視差で保存し、
前記再現手段は、静止画データとして保存された立体視用画像を再現する場合に、前記受付手段によって受け付けられる入力にかかわらず前記立体視用画像を構成するための左眼用画像および右眼用画像を前記設定された視差で再現する、請求項2から4までのいずれかに記載の画像処理装置。
【請求項6】
前記仮想空間には、当該仮想空間内で位置または方向を変える所定の基準点が存在し、
前記左仮想カメラおよび前記右仮想カメラは、前記基準点の位置かつ/または方向に応じて設定され得る、請求項1から5のいずれかに記載の画像処理装置。
【請求項7】
前記基準点はユーザの入力によって移動が制御されるプレイヤオブジェクトである、請求項6に記載の画像処理装置。
【請求項8】
前記画像処理装置は、ユーザからの入力情報を取得する入力手段をさらに備え、
前記所定の条件とは、前記入力手段によって所定の入力情報が取得されることであり、
前記立体視用画像保存手段は、前記所定の入力情報が取得されたときに前記立体視用画像表示手段によって表示されている立体視用画像を保存する、請求項1から6までのいずれかに記載の画像処理装置。
【請求項9】
前記仮想空間内にはプレイヤが操作可能なプレイヤオブジェクトを含む複数の仮想オブジェクトが存在し、
前記仮想カメラ設定手段は、前記左仮想カメラおよび前記右仮想カメラを前記プレイヤオブジェクトの視点に対応する位置に配置されるように設定する、請求項1から8までのいずれかに記載の画像処理装置。
【請求項10】
前記仮想カメラ設定手段は、前記左仮想カメラおよび前記右仮想カメラを、前記プレイヤオブジェクトの視点に対応する位置と、当該視点以外に対応する位置との間で可逆的に選択されるように設定し、
前記立体視用画像保存手段は、前記仮想カメラ設定手段によって前記左仮想カメラおよび前記右仮想カメラが前記プレイヤオブジェクトの視点に対応する位置に配置されるように設定変更された後、前記立体視用画像表示手段によって表示された立体視用画像を保存する、請求項1から8までのいずれかに記載の画像処理装置。
【請求項11】
前記仮想空間内にはプレイヤが操作可能なプレイヤオブジェクトを含む複数の仮想オブジェクトが存在し、
前記画像処理装置は、所定のパラメータに基づいて前記複数の仮想オブジェクトの表示状態を決定する表示状態決定手段を更に備え、
前記立体視用画像保存手段は、前記所定のパラメータと、前記左仮想カメラおよび前記右仮想カメラの位置をそれぞれ記憶する、請求項1に記載の画像処理装置。
【請求項12】
前記再現手段は、前記再現された立体視用画像に所定の画像や情報を付して表示する、請求項4に記載の画像処理装置。
【請求項13】
前記画像処理装置は、前記再現された立体視用画像をユーザの操作に基づいて編集する編集手段を更に備える、請求項4に記載の画像処理装置。
【請求項14】
立体視可能に仮想空間を出力し得る画像処理装置のコンピュータで実行される画像処理プログラムであって、前記コンピュータを、
仮想空間を撮像するために所定の間隔を空けて配置されるように左仮想カメラおよび右仮想カメラを設定する仮想カメラ設定手段、
前記仮想空間を前記左仮想カメラによって撮像した左眼用画像および前記右仮想カメラによって撮像した右眼用画像に基づいて生成される立体視用画像を逐次的に出力する立体視用画像出力手段、および
所定の条件に基づいて、前記立体視用画像出力手段によって逐次的に出力された立体視用画像のうちのいずれかを保存する立体視用画像保存手段として、機能させる、画像処理プログラム。
【請求項15】
立体視可能に仮想空間を出力するための画像処理方法であって、
仮想空間を撮像するために所定の間隔を空けて配置されるように左仮想カメラおよび右仮想カメラを設定する仮想カメラ設定ステップ、
前記仮想空間を前記左仮想カメラによって撮像した左眼用画像および前記右仮想カメラによって撮像した右眼用画像に基づいて生成される立体視用画像を逐次的に出力する立体視用画像出力ステップ、および
所定の条件に基づいて、前記立体視用画像出力ステップによって逐次的に出力された立体視用画像のうちのいずれかを保存する立体視用画像保存ステップを備える、画像処理方法。
【請求項16】
立体視可能に仮想空間を出力し得る画像処理システムであって、
仮想空間を撮像するために所定の間隔を空けて配置されるように左仮想カメラおよび右仮想カメラを設定する仮想カメラ設定手段、
前記仮想空間を前記左仮想カメラによって撮像した左眼用画像および前記右仮想カメラによって撮像した右眼用画像に基づいて生成される立体視用画像を逐次的に出力する立体視用画像出力手段、および
所定の条件に基づいて、前記立体視用画像出力手段によって逐次的に出力された立体視用画像のうちのいずれかを保存する立体視用画像保存手段を備える、画像処理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図6C】
image rotate


【公開番号】特開2012−141753(P2012−141753A)
【公開日】平成24年7月26日(2012.7.26)
【国際特許分類】
【出願番号】特願2010−293558(P2010−293558)
【出願日】平成22年12月28日(2010.12.28)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】