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

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

Info

Publication number
JP2012119867A
JP2012119867A JP2010266873A JP2010266873A JP2012119867A JP 2012119867 A JP2012119867 A JP 2012119867A JP 2010266873 A JP2010266873 A JP 2010266873A JP 2010266873 A JP2010266873 A JP 2010266873A JP 2012119867 A JP2012119867 A JP 2012119867A
Authority
JP
Japan
Prior art keywords
image
color
virtual object
virtual
predetermined
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010266873A
Other languages
English (en)
Inventor
Shinji Kitahara
慎治 北原
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.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2010266873A priority Critical patent/JP2012119867A/ja
Priority to US13/197,231 priority patent/US20120133676A1/en
Publication of JP2012119867A publication Critical patent/JP2012119867A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/65Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
    • A63F13/655Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition by importing photos, e.g. of the player
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5252Changing parameters of virtual cameras using two or more virtual cameras concurrently or sequentially, e.g. automatically switching between fixed virtual cameras when a character changes room or displaying a rear-mirror view in a car-driving game
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/633Control of cameras or camera modules by using electronic viewfinders for displaying additional information relating to control or operation of the camera
    • H04N23/635Region indicators; Field of view indicators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/272Means for inserting a foreground image in a background image, i.e. inlay, outlay
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/74Circuits for processing colour signals for obtaining special effects
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/25Output arrangements for video game devices
    • A63F13/26Output arrangements for video game devices having at least one additional display device, e.g. on the game controller or outside a game booth
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5255Changing parameters of virtual cameras according to dedicated instructions from a player, e.g. using a secondary joystick to rotate the camera around a player's character
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/92Video game devices specially adapted to be hand-held while playing
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/204Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform the platform being a handheld device
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/30Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device
    • A63F2300/301Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device using an additional display connected to the game console, e.g. on the controller
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/6045Methods for processing data by generating or executing the game program for mapping control signals received from the input arrangement into game commands
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6661Methods for processing data by generating or executing the game program for rendering three dimensional images for changing the position of the virtual camera
    • A63F2300/6676Methods for processing data by generating or executing the game program for rendering three dimensional images for changing the position of the virtual camera by dedicated player input
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/69Involving elements of the real world in the game world, e.g. measurement in live races, real video
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/69Involving elements of the real world in the game world, e.g. measurement in live races, real video
    • A63F2300/695Imported photos, e.g. of the player

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Color Image Communication Systems (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

【課題】実世界画像を用いて仮想オブジェクトに対して新たな処理を行うことができる画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法を提供する。
【解決手段】所定色が設定されている少なくとも1つの仮想オブジェクトが仮想世界に配置され、実カメラによって撮像された撮像画像において、所定色に相当する少なくとも1つの画素が含まれているか否かを、撮像画像の画素が有するRGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報を用いて検出する。所定色に相当する画素を検出した場合、当該所定色が設定されている仮想オブジェクトに対して所定の処理を行い、仮想オブジェクトが少なくとも配置された仮想世界の画像を表示装置に表示する。
【選択図】図7

Description

本発明は、画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法に関し、より具体的には、実世界画像を用いて仮想オブジェクトに対して所定の処理を行う画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法に関する。
従来、実世界画像と仮想世界画像とを重ね合わせた画像を表示する装置が提案されている(例えば、特許文献1参照)。上記特許文献1で開示されたゲーム装置は、外部カメラによって撮像された画像を背景画像としてゲーム画像に重ね合わせて表示している。具体的には、上記ゲーム装置は、上記背景画像が一定時間毎に更新され、最新の背景画像をゲーム画像と重ね合わせて表示している。
特開2008−113746号公報
しかしながら、上記特許文献1で開示されたゲーム装置は、外部カメラによって撮像された画像が単に背景画像として表示されるだけであり、重ね合わされる背景画像とゲーム画像とが何ら関連のない状態で表示される。したがって、表示される画像自体が単調であり、面白みのある画像をユーザに提示することはできない。
それ故に、本発明の目的は、実世界画像を用いて仮想オブジェクトに対して新たな処理を行うことができる画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法を提供することである。
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
本発明の画像処理プログラムの一構成例は、表示装置に表示する画像を処理する画像処理装置のコンピュータを、撮像画像取得手段、オブジェクト配置手段、色検出手段、オブジェクト処理手段、および画像表示制御手段として機能させる。撮像画像取得手段は、実カメラによって撮像された撮像画像を取得する。オブジェクト配置手段は、所定色が設定されている少なくとも1つの仮想オブジェクトを仮想世界に配置する。色検出手段は、撮像画像取得手段によって取得された撮像画像において、仮想世界に配置されている仮想オブジェクトに設定されている所定色に相当する少なくとも1つの画素が含まれているか否かを、撮像画像の画素が有するRGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報を用いて検出する。オブジェクト処理手段は、色検出手段が所定色に相当する画素を検出した場合、当該所定色が設定されている仮想オブジェクトに対して所定の処理を行う。画像表示制御手段は、仮想オブジェクトが少なくとも配置された仮想世界の画像を表示装置に表示する。
上記によれば、実世界画像に仮想オブジェクトの所定色に相当する画素が含まれている場合、当該仮想オブジェクトに対して所定の処理が行われるため、実世界画像を用いて仮想オブジェクトに対する新たな処理を行うことができる。
また、上記画像処理プログラムは、画像合成手段として、さらにコンピュータを機能させてもよい。画像合成手段は、撮像画像取得手段によって取得された撮像画像と仮想オブジェクトが配置された仮想世界の画像とを合成した合成画像を生成する。この場合、上記画像表示制御手段は、画像合成手段により生成された合成画像を表示装置に表示してもよい。
上記によれば、撮像画像(実世界画像)と仮想オブジェクトが配置された画像(仮想世界画像)とが合成されて表示されるため、さらに面白みのある画像を提示することができる。
また、上記オブジェクト処理手段は、画像合成手段が撮像画像と仮想世界の画像とを合成する場合に、所定色が設定された仮想オブジェクトのうち、当該所定色に相当する画素と重なって当該撮像画像に合成される仮想オブジェクトに対して所定の処理を行ってもよい。
上記によれば、撮像画像から検出された所定色に相当する被写体の位置に対応する仮想オブジェクトが所定の処理の対象となるため、ユーザが所定の処理を行いたい仮想オブジェクトを特定色の被写体に合わせるような操作が必要となり、新たな操作環境を提供することができる。
また、上記オブジェクト配置手段は、所定色が設定されている複数の仮想オブジェクトを仮想世界に配置してもよい。上記オブジェクト処理手段は、所定色が設定されている複数の仮想オブジェクトのうち、当該所定色と同じ所定色に相当する画素と重なって撮像画像に合成される仮想オブジェクトに対して所定の処理を行ってもよい。
上記によれば、撮像画像から検出された所定色に相当する被写体の位置に対応する複数の仮想オブジェクトが所定の処理の対象となり得るため、ユーザが所定の処理を複数の仮想オブジェクトに対して行いたい場合、当該複数の仮想オブジェクトを同時に特定色の被写体に合わせるような操作が必要となり、新たな操作環境を提供することができる。
また、上記画像処理プログラムは、操作信号取得手段として、さらにコンピュータを機能させてもよい。操作信号取得手段は、ユーザの操作に応じて、操作信号を取得する。この場合、上記オブジェクト処理手段は、色検出手段が所定色に相当する画素を検出し、かつ、仮想オブジェクトに攻撃を加える操作を示す操作信号を操作信号取得手段が取得したときに、当該所定色が設定されている仮想オブジェクトに対して所定の攻撃を加えてもよい。
上記によれば、仮想オブジェクトに設定された所定色に相当する画素が撮像画像に含まれている場合、当該仮想オブジェクトが攻撃の対象となった攻撃操作が可能となる。したがって、ユーザは、仮想オブジェクトを攻撃しようとする場合、カメラ画像に当該仮想オブジェクトの所定色に相当する被写体が含まれるように実カメラの撮像方向を調整しながら攻撃操作する必要があり、実世界画像を用いて仮想オブジェクトに対して新たな処理を行うゲームを提供することができる。
また、上記オブジェクト処理手段は、色検出手段が所定色に相当する画素を検出した場合に、当該所定色が設定された仮想オブジェクトに対して所定の標識を設定してもよい。上記画像表示制御手段は、オブジェクト処理手段が設定した標識を仮想オブジェクトに付与し、当該標識が付与された仮想オブジェクトが配置された仮想世界の画像を表示装置に表示してもよい。
上記によれば、標識を表示することによって、所定の処理の対象となっている仮想オブジェクトを区別することができる。
また、上記オブジェクト処理手段は、所定の攻撃が加えられた仮想オブジェクトを、仮想世界から消滅させてもよい。
上記によれば、ユーザが所定の攻撃操作をすることによって、攻撃の対象となっている仮想オブジェクトを消滅させることができる。
また、上記色検出手段は、彩度および明度を示す色情報がそれぞれ所定の閾値以上に高く、かつ、色相を示す色情報が所定の範囲内となる画素を、所定色に相当する画素として検出してもよい。
上記によれば、複数の色情報を組み合わせて所定色に相当する画素を検出することによって、色の誤判定を防止しながらユーザが本来区別している色認識に画像処理結果を近づけることができる。
また、上記所定色が設定された仮想オブジェクトの表示色は、当該所定色と実質的に同じ色に設定されてもよい。上記画像表示制御手段は、所定色が設定された仮想オブジェクトを示す画像の少なくとも一部に設定された表示色が含まれるように、当該仮想オブジェクトを表示装置に表示してもよい。
上記によれば、仮想オブジェクトが表示される表示色によってユーザが所定の処理の対象となる被写体の色を把握することができる。
また、上記所定色が設定された仮想オブジェクトの表示色は、当該所定色の実質的に補色となる色に設定されてもよい。上記画像表示制御手段は、所定色が設定された仮想オブジェクトを示す画像の少なくとも一部に設定された表示色が含まれるように、当該仮想オブジェクトを表示装置に表示してもよい。
上記によれば、仮想オブジェクトが表示される表示色によってユーザが所定の処理の対象となる被写体の色を把握することができる。また、仮想オブジェクトの表示色の補色が当該仮想オブジェクトに所定の処理を行うための被写体の色となるため、ユーザに補色の関係を考慮させることが可能となる。
また、上記色検出手段は、ブロック分割手段およびブロックRGB平均値算出手段を含んでいてもよい。ブロック分割手段は、撮像画像を複数の画素で構成されるブロックに分割する。ブロックRGB平均値算出手段は、ブロックに属する画素がそれぞれ有するRGB値の平均値を当該ブロック毎に算出する。この場合、上記色検出手段は、ブロック毎の平均値に基づいて、当該ブロックを検出単位として所定色に相当する画素が撮像画像に含まれているか否かを検出してもよい。
上記によれば、ブロック毎に色情報を判定することによって色検出処理が容易となり、処理負荷が軽減される。
また、上記撮像画像取得手段は、画像処理装置が利用可能な実カメラによってリアルタイムに撮像された実世界の撮像画像を繰り返し取得してもよい。上記色検出手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれにおいて、所定色に相当する画素を繰り返し検出してもよい。上記オブジェクト処理手段は、色検出手段が繰り返し検出した結果に基づいて、仮想オブジェクトに対して繰り返し所定の処理を行ってもよい。上記画像合成手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれと仮想オブジェクトが配置された仮想世界の画像とを合成して繰り返し合成画像を生成してもよい。上記画像表示制御手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれに仮想世界の画像が合成された合成画像を表示装置に繰り返し表示してもよい。
上記によれば、リアルタイムに撮像された実世界の動画像を用いて仮想オブジェクトに対する新たな処理を行うことができる。
また、上記画像処理プログラムは、色設定手段として、さらにコンピュータを機能させてもよい。色設定手段は、オブジェクト処理手段が仮想オブジェクトに対して所定の処理を行った後、当該仮想オブジェクトの所定色を異なる色に変化させる。
上記によれば、仮想オブジェクトに所定の処理をさらに行う場合は、異なる特定色を有する被写体をさらに撮像する必要があるため、ユーザにおける操作の難易度が高まるとともに、新たな操作環境を提供することができる。
また、上記画像処理プログラムは、処理設定手段として、さらにコンピュータを機能させてもよい。処理設定手段は、色検出手段が所定色に相当する画素を検出した場合、当該所定色が設定されている仮想オブジェクトに対して行う所定の処理の内容を当該画素が有する色情報に基づいて変化させる。
上記によれば、仮想オブジェクトの所定色に相当する画素が有する色情報に基づいて、当該仮想オブジェクトに対して行われる所定の処理の内容が変化するため、当該仮想オブジェクトにユーザが所望する処理を施すために被写体の色をさらに限定する必要があり、さらに操作の難易度を高くすることができる。
また、本発明は、上記各手段を備える画像処理装置および画像処理システムや上記各手段で行われる動作を含む画像処理方法の形態で実施されてもよい。
本発明によれば、実世界画像に仮想オブジェクトの所定色に相当する画素が含まれている場合、当該仮想オブジェクトに対して所定の処理が行われるため、実世界画像を用いて仮想オブジェクトに対する新たな処理を行うことができる。
開いた状態におけるゲーム装置10の一例を示す正面図 開いた状態におけるゲーム装置10の一例を示す側面図 閉じた状態におけるゲーム装置10の一例を示す左側面図 閉じた状態におけるゲーム装置10の一例を示す正面図 閉じた状態におけるゲーム装置10の一例を示す右側面図 閉じた状態におけるゲーム装置10の一例を示す背面図 ユーザがゲーム装置10を両手で把持する様子の一例を示す図 ゲーム装置10の内部構成の一例を示すブロック図 カメラ画像CIと複数の仮想オブジェクトとが合成されて上側LCD22に表示された一例を示す図 カメラ画像CIに含まれる赤色の被写体と複数の仮想オブジェクトの一部とが重なって表示された様子が上側LCD22に表示された一例を示す図 図7に示した状態において、ユーザが攻撃操作を行った場合に上側LCD22に表示される画像の一例を示す図 画像処理プログラムを実行することに応じて、メインメモリ32に記憶される各種データの一例を示す図 図9のブロックデータDcの一例を示す図 図9のオブジェクトデータDdの一例を示す図 画像処理プログラムを実行することによってゲーム装置10が画像処理する動作の一例を示すフローチャート 図12のステップ54で行われるオブジェクト設定処理の詳細な動作の一例を示すサブルーチン 図13のステップ61で行われる色検出処理の詳細な動作の一例を示すサブルーチン
図面を参照して、本発明の一実施形態に係る画像処理プログラムを実行する画像処理装置について説明する。本発明の画像処理プログラムは、任意のコンピュータシステムで実行されることによって適用することができるが、画像処理装置の一例として携帯型のゲーム装置10を用い、ゲーム装置10で実行される画像処理プログラムを用いて説明する。なお、図1〜図3Dは、ゲーム装置10の外観の一例を示す平面図である。ゲーム装置10は、一例として携帯型のゲーム装置であり、図1〜図3Dに示すように折り畳み可能に構成されている。図1は、開いた状態(開状態)におけるゲーム装置10の一例を示す正面図である。図2は、開状態におけるゲーム装置10の一例を示す右側面図である。図3Aは、閉じた状態(閉状態)におけるゲーム装置10の一例を示す左側面図である。図3Bは、閉状態におけるゲーム装置10の一例を示す正面図である。図3Cは、閉状態におけるゲーム装置10の一例を示す右側面図である。図3Dは、閉状態におけるゲーム装置10の一例を示す背面図である。ゲーム装置10は、撮像部を内蔵しており、当該撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラから見た仮想世界画像等のコンピュータグラフィックス処理により生成された画像を画面に表示することもできる。
図1〜図3Dにおいて、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に連結されている。図1の例では、下側ハウジング11および上側ハウジング21は、それぞれ横長の長方形の板状で形成され、互いの長辺部分で回動可能に連結されている。通常、ユーザは、開状態でゲーム装置10を使用する。そして、ユーザは、ゲーム装置10を使用しない場合には閉状態としてゲーム装置10を保管する。また、ゲーム装置10は、上記閉状態および開状態のみでなく、下側ハウジング11と上側ハウジング21とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング21を下側ハウジング11に対して任意の角度で静止させることができる。
図1および図2に示されるように、下側ハウジング11の上側長辺部分には、下側ハウジング11の内側面(主面)11Bに対して垂直な方向に突起する突起部11Aが設けられる。また、上側ハウジング21の下側長辺部分には、上側ハウジング21の下側面から当該下側面に垂直な方向に突起する突起部21Aが設けられる。下側ハウジング11の突起部11Aと上側ハウジング21の突起部21Aとが連結されることにより、下側ハウジング11と上側ハウジング21とが、折り畳み可能に接続される。
下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L(図1、図3A〜図3D)、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。下側LCD12は、下側ハウジング11の中央に配置される。下側LCD12は、下側ハウジング11の内側面(主面)に設けられ、下側ハウジング11の内側面に設けられた開口部から下側LCD12の画面が露出する。そして、ゲーム装置10を使用しない場合には上記閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。下側LCD12の画素数は、一例として、256dot×192dot(横×縦)である。他の例として、下側LCD12の画素数は、320dot×240dot(横×縦)である。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上を覆うように装着されている。なお、本実施形態では、タッチパネル13は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、例えば静電容量方式等、任意の押圧式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度とが一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1および図3Dに示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、操作ボタン14B、操作ボタン14C、操作ボタン14D、操作ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示する操作ボタンを有している。操作ボタン14B、操作ボタン14C、操作ボタン14D、および操作ボタン14Eは、十字状に配置される。操作ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
アナログスティック15は、方向を指示するデバイスであり、下側ハウジング11の内側面の下側LCD12より左側領域の上部領域に設けられる。図1に示すように、十字ボタン14Aが下側LCD12より左側領域の下部領域に設けられ、アナログスティック15が十字ボタン14Aの上方に設けられる。また、アナログスティック15および十字ボタン14Aは、下側ハウジング11を把持した左手の親指で操作可能な位置に設計される。また、アナログスティック15を上部領域に設けたことにより、下側ハウジング11を把持する左手の親指が自然と位置するところにアナログスティック15が配され、十字ボタン14Aは、左手の親指を少し下にずらした位置に配される。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いてもよい。
十字状に配置される、操作ボタン14B、操作ボタン14C、操作ボタン14D、および操作ボタン14Eの4つの操作ボタンは、下側ハウジング11を把持する右手の親指が自然と位置するところに配置される。また、これらの4つの操作ボタンとアナログスティック15とは、下側LCD12を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、これらの4つの操作ボタンを使用して方向指示入力をすることも可能である。
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク(図5参照)が設けられ、当該マイクがゲーム装置10の外部の音を検出する。
図3Bおよび図3Dに示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14Gは、下側ハウジング11の上面の左端部に設けられ、Rボタン14Hは、下側ハウジング11の上面の右端部に設けられる。後述のように、Lボタン14GおよびRボタン14Hは、撮像部のシャッターボタン(撮影指示ボタン)として機能する。また、図3Aに示されるように、下側ハウジング11の左側面には、音量ボタン14Iが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
図3Aに示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ46とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ46は、上記コネクタに着脱自在に装着される。データ保存用外部メモリ46は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。なお、上記コネクタおよびそのカバー部11Cは、下側ハウジング11の右側面に設けられてもよい。
図3Dに示されるように、下側ハウジング11の上側面にはゲーム装置10とゲームプログラムを記録した外部メモリ45を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ45と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。外部メモリ45がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよび挿入口11Dは、下側ハウジング11の他の側面(例えば、右側面等)に設けられてもよい。
図1に示されるように、下側ハウジング11の下側面には、ゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16Aが設けられる。また、図3Cに示されるように、下側ハウジング11の右側面には、ゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は、他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、他の機器との無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図3C参照)。
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
上側ハウジング21には、上側LCD22、2つの外側撮像部23(外側左撮像部23aおよび外側右撮像部23b)、内側撮像部24、3D調整スイッチ25、および3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
図1に示すように、上側LCD22は、上側ハウジング21に収納される。上側LCD22は、横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。上側LCD22は、上側ハウジング21の中央に配置される。上側LCD22の画面の面積は、一例として下側LCD12の画面の面積よりも大きく設定される。具体的には、上側LCD22の画面は、下側LCD12の画面よりも横長に設定される。すなわち、上側LCD22の画面のアスペクト比における横幅の割合は、下側LCD12の画面のアスペクト比における横幅の割合よりも大きく設定される。
上側LCD22の画面は、上側ハウジング21の内側面(主面)21Bに設けられ、上側ハウジング21の内側面に設けられた開口部から上側LCD22の画面が露出する。また、図2に示すように、上側ハウジング21の内側面は、透明なスクリーンカバー27によって覆われている。スクリーンカバー27は、上側LCD22の画面を保護するとともに、上側LCD22と上側ハウジング21の内側面と一体的にさせ、これにより統一感を持たせている。上側LCD22の画素数は、一例として640dot×200dot(横×縦)である。他の例として、上側LCD22の画素数は、800dot×240dot(横×縦)である。なお、本実施形態では、上側LCD22が液晶表示装置であるとしたが、例えばELを利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。上側LCD22は、実質的に同一の表示領域を用いて左目用画像と右目用画像とを表示することが可能である。具体的には、上側LCD22は、左目用画像と右目用画像とが所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。一例として、上側LCD22の画素数が800dot×240dotで構成される場合、横の800ピクセルを左目用画像と右目用画像とに交互にそれぞれ400ピクセル割り当てることによって立体視が可能となる。なお、上側LCD22は、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、上側LCD22は、裸眼立体視可能な表示装置である。この場合、上側LCD22は、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22は、パララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像をそれぞれ視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである。)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(外側左撮像部23aおよび外側右撮像部23b)の総称である。外側左撮像部23aおよび外側右撮像部23bの撮像方向は、いずれも外側面21Dの外向きの法線方向である。また、外側左撮像部23aおよび外側右撮像部23bは、いずれも、上側LCD22の表示面(内側面)の法線方向と180度反対の方向に設計される。すなわち、外側左撮像部23aの撮像方向および外側右撮像部23bの撮像方向は、平行である。外側左撮像部23aと外側右撮像部23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。また、プログラムによっては、2つの外側撮像部(外側左撮像部23aおよび外側右撮像部23b)のいずれか一方を単独で用いて、外側撮像部23を非ステレオカメラとして使用することも可能である。また、プログラムによっては、2つの外側撮像部(外側左撮像部23aおよび外側右撮像部23b)で撮像した画像を合成してまたは補完的に使用することにより撮像範囲を広げた撮像を行うことも可能である。本実施形態では、外側撮像部23は、外側左撮像部23aおよび外側右撮像部23bの2つの撮像部で構成される。外側左撮像部23aおよび外側右撮像部23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
図1の破線および図3Bの実線で示されるように、外側撮像部23を構成する外側左撮像部23aおよび外側右撮像部23bは、上側LCD22の画面の横方向と平行に並べられて配置される。すなわち、2つの外側左撮像部23aおよび外側右撮像部23bを結んだ直線が上側LCD22の画面の横方向と平行になるように、外側左撮像部23aおよび外側右撮像部23bが配置される。図1の破線23aおよび23bは、上側ハウジング21の内側面とは反対側の外側面に存在する外側左撮像部23aおよび外側右撮像部23bをそれぞれ表している。図1に示すように、ユーザが上側LCD22の画面を正面から視認した場合に、外側左撮像部23aは左側に外側右撮像部23bは右側にそれぞれ位置する。外側撮像部23をステレオカメラとして機能させるプログラムが実行されている場合、外側左撮像部23aは、ユーザの左目で視認される左目用画像を撮像し、外側右撮像部23bは、ユーザの右目で視認される右目用画像を撮像する。外側左撮像部23aおよび外側右撮像部23bの間隔は、人間の両目の間隔程度に設定され、例えば、30mm〜70mmの範囲で設定されてもよい。なお、外側左撮像部23aおよび外側右撮像部23bの間隔は、この範囲に限らない。
なお、本実施例においては、外側左撮像部23aおよび外側右撮像部23bは、ハウジングに固定されており、撮像方向を変更することはできない。
外側左撮像部23aおよび外側右撮像部23bは、上側LCD22(上側ハウジング21)の左右方向に関して中央から対称となる位置にそれぞれ配置される。すなわち、外側左撮像部23aおよび外側右撮像部23bは、上側LCD22を左右に2等分する線に対して対称の位置にそれぞれ配置される。また、外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方の位置の裏側に配置される。すなわち、外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21の外側面であって、上側LCD22を外側面に投影した場合、投影した上側LCD22の画面の上端よりも上方に配置される。このように、外側撮像部23の2つの撮像部(外側左撮像部23aおよび外側右撮像部23b)が上側LCD22の左右方向に関して中央から対称の位置に配置されることにより、ユーザが上側LCD22を正視した場合に、外側撮像部23それぞれの撮像方向をユーザの左右の目それぞれの視線方向と一致させることができる。
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
図1に示すように、内側撮像部24は、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方に配置され、上側ハウジング21の左右方向に関して中央の位置(上側ハウジング21(上側LCD22の画面)を左右に2等分する線の線上)に配置される。具体的には、図1および図3Bに示されるように、内側撮像部24は、上側ハウジング21の内側面であって、外側左撮像部23aおよび外側右撮像部23bの中間の裏側の位置に配置される。すなわち、上側ハウジング21の外側面に設けられた外側左撮像部23aおよび外側右撮像部23bを上側ハウジング21の内側面に投影した場合、当該投影した外側左撮像部23aおよび外側右撮像部23bの中間に、内側撮像部24が設けられる。図3Bで示される破線24は、上側ハウジング21の内側面に存在する内側撮像部24を表している。このように、内側撮像部24は、外側撮像部23とは反対方向を撮像する。内側撮像部24は、上側ハウジング21の内側面であって、2つの外側撮像部23の中間位置となる裏側に設けられる。これにより、ユーザが上側LCD22を正視した際、内側撮像部24でユーザの顔を正面から撮像することができる。
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。図1〜図3Dに示されるように、3D調整スイッチ25は、上側ハウジング21の内側面および右側面の端部に設けられ、ユーザが上側LCD22を正視した場合に、当該3D調整スイッチ25を視認できる位置に設けられる。3D調整スイッチ25は、所定方向(例えば、上下方向)の任意の位置にスライド可能なスライダを有しており、当該スライダの位置に応じて上側LCD22の表示モードが設定される。
例えば、3D調整スイッチ25のスライダが最下点位置に配置されている場合、上側LCD22が平面表示モードに設定され、上側LCD22の画面には平面画像が表示される。なお、上側LCD22を立体表示モードのままとして、左目用画像と右目用画像とを同一の画像とすることにより平面表示してもよい。一方、上記最下点位置より上側にスライダが配置されている場合、上側LCD22は立体表示モードに設定される。この場合、上側LCD22の画面には立体視可能な画像が表示される。ここで、スライダが上記最下点位置より上側に配置されている場合、スライダの位置に応じて、立体画像の見え方が調整される。具体的には、スライダの位置に応じて、右目用画像および左目用画像における横方向の位置のずれ量が調整される。
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。例えば、3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。図1に示されるように、3Dインジケータ26は、上側ハウジング21の内側面に設けられ、上側LCD22の画面近傍に設けられる。このため、ユーザが上側LCD22の画面を正視した場合、ユーザは3Dインジケータ26を視認しやすい。したがって、ユーザは、上側LCD22の画面を視認している状態でも、上側LCD22の表示モードを容易に認識することができる。
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ44からの音声がこのスピーカ孔21Eから出力される。
次に、図4を参照して、ゲーム装置10の使用状態の一例を示す。なお、図4は、ユーザがゲーム装置10を把持して操作する様子の一例を示す図である。
図4に示されるように、ユーザは、下側LCD12および上側LCD22がユーザの方向を向く状態で、両手の掌と中指、薬指および小指とで下側ハウジング11の側面および外側面(内側面の反対側の面)を把持する。このように把持することで、ユーザは、下側ハウジング11を把持したまま、各操作ボタン14A〜14Eおよびアナログスティック15に対する操作を親指で行い、Lボタン14GおよびR14Hに対する操作を人差し指で行うことができる。そして、図4に示した一例では、外側左撮像部23aおよび外側右撮像部23bによってゲーム装置10の背面側の実世界を撮像したカメラ画像が、上側LCD22に表示されている。また、タッチパネル13に対して入力を行う場合には、下側ハウジング11を把持していた一方の手を離して他方の手のみで下側ハウジング11を把持することによって、当該一方の手でタッチパネル13に対する入力を行うことができる。
次に、図5を参照して、ゲーム装置10の内部構成を説明する。なお、図5は、ゲーム装置10の内部構成の一例を示すブロック図である。
図5において、ゲーム装置10は、上述した各構成部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、角速度センサ40、電源回路41、およびインターフェイス回路(I/F回路)42等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。本実施形態では、所定のプログラムがゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ45やデータ保存用内部メモリ35)に記憶されている。情報処理部31のCPU311は、当該所定のプログラムを実行することによって、後述する画像処理やゲーム処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22および/または下側LCD12に出力し、上側LCD22および/または下側LCD12に当該画像が表示される。
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、およびデータ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ45を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ46を着脱自在に接続するためのインターフェイスである。
メインメモリ32は、情報処理部31(CPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、画像処理やゲーム処理で用いられる各種データを一時的に記憶したり、外部(外部メモリ45や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
外部メモリ45は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ45は、例えば読み取り専用の半導体メモリで構成される。外部メモリ45が外部メモリI/F33に接続されると、情報処理部31は外部メモリ45に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ46は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ46には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ46がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ46に記憶された画像を読み込み、上側LCD22および/または下側LCD12に当該画像を表示することができる。
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
無線通信モジュール36は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は、情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(本実施形態では、xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、例えば下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、ゲーム装置10の各軸方向へ生じる直線加速度の大きさをそれぞれ検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は、1軸または2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受け取って、ゲーム装置10の姿勢や動きを算出する。
情報処理部31には、角速度センサ40が接続される。角速度センサ40は、ゲーム装置10の3軸(本実施形態では、xyz軸)周りに生じる角速度をそれぞれ検出し、検出した角速度を示すデータ(角速度データ)を情報処理部31へ出力する。角速度センサ40は、例えば下側ハウジング11の内部に設けられる。情報処理部31は、角速度センサ40から出力された角速度データを受け取って、ゲーム装置10の姿勢や動きを算出する。
情報処理部31には、RTC38および電源回路41が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路41は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
情報処理部31には、I/F回路42が接続される。I/F回路42には、マイク43、スピーカ44、およびタッチパネル13が接続される。具体的には、I/F回路42には、図示しないアンプを介してスピーカ44が接続される。マイク43は、ユーザの音声を検知して音声信号をI/F回路42に出力する。アンプは、I/F回路42からの音声信号を増幅し、音声をスピーカ44から出力させる。I/F回路42は、マイク43およびスピーカ44(アンプ)の制御を行う音声制御回路と、タッチパネル13の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置(タッチ位置)の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、およびタッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われたタッチ位置を知ることができる。
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に応じた処理を実行する。
下側LCD12および上側LCD22は、情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(GPU312)の指示にしたがって画像を表示する。本実施形態では、情報処理部31は、入力操作用の画像を下側LCD12に表示させ、外側撮像部23および内側撮像部24のいずれかから取得した画像を上側LCD22に表示させる。すなわち、情報処理部31は、上側LCD22に外側撮像部23で撮像した右目用画像と左目用画像とを用いた立体画像(立体視可能な画像)を表示させたり、内側撮像部24で撮像した平面画像を上側LCD22に表示させたり、上側LCD22に外側撮像部23で撮像した右目用画像および左目用画像の一方を用いた平面画像を表示させたりする。
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された(外側撮像部23で撮像された)右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示にしたがって画像を撮像し、撮像した画像データを情報処理部31に出力する。本実施形態では、情報処理部31は、外側撮像部23および内側撮像部24のいずれか一方に対して撮像指示を行い、撮像指示を受けた撮像部が画像を撮像して画像データを情報処理部31に送る。具体的には、ユーザによるタッチパネル13や操作ボタン14を用いた操作によって使用する撮像部が選択される。そして、撮像部が選択されたことを情報処理部31(CPU311)が検知し、情報処理部31が外側撮像部23または内側撮像部24に対して撮像指示を行う。
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダの位置に応じた電気信号を情報処理部31に送信する。
3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。
次に、ゲーム装置10で実行される画像処理プログラムによる具体的な画像処理動作を説明する前に、図6〜図8を参照して当該画像処理動作によって上側LCD22に表示される表示形態例について説明する。なお、図6は、カメラ画像CIと複数の仮想オブジェクトとが合成されて上側LCD22に表示された一例を示す図である。図7は、カメラ画像CIに含まれる赤色の被写体と複数の仮想オブジェクトの一部とが重なって表示された様子が上側LCD22に表示された一例を示す図である。図8は、図7に示した状態において、ユーザが攻撃操作を行った場合に上側LCD22に表示される画像の一例を示す図である。なお、説明を簡単にするために、上側LCD22には、外側撮像部23および内側撮像部24のいずれかから取得したカメラ画像CIに基づいた、実世界の平面画像(上述した立体視可能な画像とは反対の意味での平面視の画像)が表示される例を用いる。
図6〜図8において、上側LCD22には、ゲーム装置10に内蔵する実カメラ(例えば、外側撮像部23)によって撮像された実世界画像であるカメラ画像CIが表示される。例えば、上側LCD22には、ゲーム装置10に内蔵する実カメラで撮像されたリアルタイムの実世界画像(動画像)が表示される。そして、複数の仮想オブジェクトが配置された仮想世界画像が、カメラ画像CIに合成されて上側LCD22に表示される。なお、図6〜図8に示した画面例は、複数の仮想オブジェクトがそれぞれ表示画面の上から下へ所定の移動速度で移動するゲーム画像の一場面をそれぞれ示している。そして、上記ゲームでは、上記仮想オブジェクトが表示画面の下部に設けられた所定位置まで到達した場合に減点され、減点の総合計が閾値に到達した場合にゲームオーバとなる。
図6において、上記仮想オブジェクトは、それぞれ処理対象色を有している。例えば、図6に示した例では、赤色の処理対象色を有するオブジェクトRobjと、青色の処理対象色を有するオブジェクトBobjとが上側LCD22に表示されている。一例として、赤色の処理対象色を有するオブジェクトRobjは、赤色(図面では、斜線領域で示す)のオブジェクト画像で表現され、青色の処理対象色を有するオブジェクトBobjは、青色(図面では、白抜き領域で示す)のオブジェクト画像で表現されて、それぞれ上側LCD22に表示される。ここで、図6に示した例では、上側LCD22に表示されたカメラ画像CIとして、赤色の被写体と白色の被写体とが撮像されており、オブジェクトRobjおよびBobjは、全て白色の被写体と重なって表示され、赤色の被写体とは重なって表示されていない。
図7に示す例では、オブジェクトRobjおよびBobjの一部と、上側LCD22に表示されたカメラ画像CIに撮像されている赤色の被写体とが重なって表示されている。そして、赤色の被写体と重なっているオブジェクトRobjには、攻撃カーソルAcが付与される。一方、赤色の被写体と重なっているオブジェクトBobjには、攻撃カーソルAcが付与されない。また、白色の被写体と重なっているオブジェクトRobjおよびBobjにも、攻撃カーソルAcが付与されない。つまり、図7に示す例では、赤色の処理対象色を有するオブジェクトRobjと赤色の被写体と重なって、すなわち仮想オブジェクトが当該仮想オブジェクトの処理対象色に含まれる色の被写体と重なって表示される場合、当該仮想オブジェクトに攻撃カーソルAcが付与されて表示される。この場合、仮想オブジェクトの処理対象色は、攻撃カーソルAcを付与する処理の対象となる色(典型的には、処理の対象となる色の範囲)を示していることになる。
図8において、ゲーム装置10を用いて、ユーザが攻撃操作(例えば、操作ボタン14B(Aボタン)を押下する操作)した場合、攻撃カーソルAcが付与された仮想オブジェクトに所定の攻撃が加えられる。例えば、図8に示した一例では、ユーザの攻撃操作によって、攻撃カーソルAcが付与されたオブジェクトRobjが全て上側LCD22から消滅している。つまり、ゲーム装置10のユーザは、上側LCD22に表示された仮想オブジェクトを消滅させるためには、当該仮想オブジェクトが当該仮想オブジェクトの処理対象色と一致する色の被写体と重なるようにゲーム装置10の撮像方向を調整しながら、攻撃操作を行うことが必要となる。そして、仮想オブジェクトを消滅させることによって、当該仮想オブジェクトが表示画面の下部に設けられた所定位置まで到達することによる減点を防ぐことができるため、結果的にゲームの高得点を得ることとなる。
なお、仮想オブジェクトは、複数回の攻撃を受けることによって消滅してもよい。例えば、上述した攻撃操作によって仮想オブジェクトが攻撃された場合、当該攻撃を受けた仮想オブジェクトのライフ値を所定量減算し、当該ライフ値が0まで減算された時点で当該仮想オブジェクトを消滅させる。この場合、仮想オブジェクトに設定されている初期ライフ値や攻撃1回当たりに減算させる減算量によって、当該仮想オブジェクトを消滅させるために複数回の攻撃が必要となることがある。
また、上述した例では、仮想オブジェクトが当該仮想オブジェクトの処理対象色と一致する色の被写体と重なって表示される場合、当該仮想オブジェクトが攻撃の対象となる例を説明したが、他の組み合わせによって攻撃対象が設定されてもかまわない。本発明では、仮想オブジェクトが当該仮想オブジェクトの処理対象色と所定の関係となる特定色の被写体と重なって表示される場合に、当該仮想オブジェクトを攻撃対象にすればよい。また、色が異なる複数の被写体との重なりを経た攻撃によって、仮想オブジェクトが消滅してもよい。例えば、仮想オブジェクトが第1の特定色の被写体と重なって表示された場合に第1段階の攻撃が可能となり、当該仮想オブジェクトが第1の特定色とは異なる第2の特定色の被写体と重なって表示された場合に第2段階の攻撃が可能となり、当該第1段階の攻撃と当該第2段階の攻撃とが行われることによって当該仮想オブジェクトが消滅する。この場合、仮想オブジェクトに設定される処理対象色を、上記第1段階では第1の特定色に設定し、上記第2段階では第2の特定色に設定すればよい。
ここで、カメラ画像から特定色を検出する場合、当該カメラ画像における各画素の色情報を用いることが考えられる。例えば、各画素の色情報としては、RGB値、色相を表す値、彩度を表す値、明度を表す値等が考えられるが、本実施形態においてはいずれの値を用いてもかまわない。
第1の例として、上記値を組み合わせて上記特定色を検出する。具体的には、彩度を表す値および明度を表す値がそれぞれ所定の閾値以上であり、かつ、色相を表す値が特定色を示す所定の範囲内である場合、特定色を表す画素であると判定する。このように、複数の色情報を組み合わせて特定色を判定することによって、色の誤判定を防止しながらユーザが本来区別している色認識に判定結果を近づけることができる。
第2の例として、上記値のいずれか1つを用いて上記特定色を検出する。一例として、明度を表す値のみを用いて、カメラ画像から所定の閾値以上の明度を有する画素を判別することが可能となる。この場合、カメラ画像における所定の閾値以上の明度を有する被写体と特定の仮想オブジェクトとが重なった場合、当該仮想オブジェクトを攻撃対象とするような画像処理が可能となる。他の例として、RGB値のみ、色相を表す値のみ、または彩度を表す値のみを用いて、カメラ画像から所定条件を満たす画素を、特定色を有する画素として判別してもかまわない。
なお、攻撃操作によって仮想オブジェクトに与えるライフ減算量は、当該仮想オブジェクトと重なる画素の色情報に応じて変化させてもかまわない。また、上側LCD22に表示される仮想オブジェクトは、カメラ画像と合成されることなく上側LCD22に表示されてもかまわない。この場合、上側LCD22にはゲーム装置10に内蔵する実カメラによって撮像されたカメラ画像が表示されず、当該カメラ画像と仮想世界画像とを合成すると仮定した場合に撮像された特定色の被写体と重なる位置に特定の仮想オブジェクトが配置されている場合に、当該重なる特定の仮想オブジェクトが攻撃対象として設定される。すなわち、上側LCD22には、仮想カメラから見た仮想空間のみが表示されることになるが、この場合、実カメラで撮像されているカメラ画像を下側LCD12に表示してもかまわない。
次に、図9〜図14を参照して、ゲーム装置10で実行される画像処理プログラムによる具体的な処理動作について説明する。なお、図9は、画像処理プログラムを実行することに応じて、メインメモリ32に記憶される各種データの一例を示す図である。図10は、図9のブロックデータDcの一例を示す図である。図11は、図9のオブジェクトデータDdの一例を示す図である。図12は、当該画像処理プログラムを実行することによってゲーム装置10が画像処理する動作の一例を示すフローチャートである。図13は、図12のステップ54で行われるオブジェクト設定処理の詳細な動作の一例を示すサブルーチンである。図14は、図13のステップ61で行われる色検出処理の詳細な動作の一例を示すサブルーチンである。なお、これらの処理を実行するためのプログラムは、ゲーム装置10に内蔵されるメモリ(例えば、データ保存用内部メモリ35)や外部メモリ45またはデータ保存用外部メモリ46に含まれており、ゲーム装置10の電源がオンになったときに、内蔵メモリから、または外部メモリI/F33やデータ保存用外部メモリI/F34を介して外部メモリ45またはデータ保存用外部メモリ46からメインメモリ32に読み出されて、CPU311によって実行される。
図9において、メインメモリ32には、内蔵メモリ、外部メモリ45、またはデータ保存用外部メモリ46から読み出されたプログラムや画像処理において生成される一時的なデータが記憶される。図9において、メインメモリ32のデータ記憶領域には、カメラ画像データDa、操作データDb、ブロックデータDc、オブジェクトデータDd、仮想世界画像データDe、および表示画像データDf等が格納される。また、メインメモリ32のプログラム記憶領域には、画像処理プログラムを構成する各種プログラム群Paが記憶される。
カメラ画像データDaは、外側撮像部23および内側撮像部24のいずれかが撮像したカメラ画像を示すデータである。後述する処理の説明においては、カメラ画像を取得するステップにおいて外側撮像部23および内側撮像部24のいずれかが撮像したカメラ画像を用いて、カメラ画像データDaを更新する態様を用いる。なお、外側撮像部23または内側撮像部24が撮像し、撮像されたカメラ画像を用いてカメラ画像データDaを更新する周期は、ゲーム装置10が処理する時間単位(例えば、1/60秒)と同じでもいいし、当該時間単位より短い時間でもかまわない。ゲーム装置10が処理する周期よりカメラ画像データDaを更新する周期が短い場合、後述する処理とは独立して適宜カメラ画像データDaを更新してもかまわない。この場合、後述するカメラ画像を取得するステップにおいて、カメラ画像データDaが示す最新のカメラ画像を常に用いて処理すればよい。
操作データDbは、ユーザがゲーム装置10を操作した操作情報を示すデータである。例えば、操作データDbは、ユーザがゲーム装置10の操作ボタン14やアナログスティック15等の操作子を操作したことを示すデータである。なお、操作ボタン14やアナログスティック15からの操作データは、ゲーム装置10が処理する時間単位(例えば、1/60秒)毎に取得され、当該取得に応じて操作データDbに格納されて更新される。なお、操作データDbは、他の処理周期で更新されてもかまわない。例えば、操作ボタン14やアナログスティック15等の操作子をユーザが操作したことを検出する周期毎に操作データDbを更新し、当該更新された操作データDbを処理周期毎に利用する態様でもかまわない。この場合、操作データDbを更新する周期と、処理周期とが異なることになる。
ブロックデータDcは、カメラ画像から判定された特定色を示すデータである。以下、図10を参照して、ブロックデータDcの一例について説明する。
図10において、一例として、外側撮像部23および内側撮像部24のいずれかが撮像したカメラ画像(以下、単にカメラ画像と記載する)は、所定サイズのブロック(例えば、8×8ピクセルのブロック)に分割され、ブロック毎に特定色が判定される。具体的には、上記カメラ画像は、Mmax個のブロックに分割され、それぞれのブロックにブロック番号1〜ブロック番号Mmaxが付与される。そして、ブロックデータDcは、ブロック毎に、RGB平均値、色相Hを表す値、彩度Sを表す値、明度Vを表す値、判定された特定色を示す特定色設定パラメータが記述される。例えば、ブロック番号1のブロックは、RGB平均値がR1、G1、およびB1、色相Hを表す値がH1、彩度Sを表す値がS1、明度Vを表す値がV1であり、当該ブロックに特定色が設定されなかったことが特定色設定パラメータで示されている。また、ブロック番号2のブロックは、RGB平均値がR2、G2、およびB2、色相Hを表す値がH2、彩度Sを表す値がS2、明度Vを表す値がV2であり、当該ブロックが赤色に判定されたことが特定色設定パラメータで示されている。
図9に戻り、オブジェクトデータDdは、仮想空間に配置されて表示されるオブジェクト毎の各種情報を示すデータである。以下、図11を参照して、オブジェクトデータDdの一例について説明する。
図11において、仮想空間に配置されて表示されるそれぞれのオブジェクトにオブジェクト番号1〜オブジェクト番号Nmaxが付与される。そして、オブジェクトデータDdは、オブジェクト毎に、処理対象色、配置位置、ライフ値、重畳ブロック色、およびカーソル有無を示すデータが記述される。ここで、上記処理対象色は、オブジェクトに攻撃カーソルAcが付与される対象となる特定色を示す情報であり、少なくとも1つの特定色を示す情報が記述される。上記配置位置は、オブジェクトを仮想世界に配置する位置を示すデータである。上記ライフ値は、オブジェクトに残存しているライフ値を示すデータであり、当該ライフ値が0以下となった場合にオブジェクトを消滅させるために用いられる。上記重畳ブロック色は、カメラ画像と合成する際に、オブジェクトと重なる上記ブロックに設定されている特定色を示すデータである。上記カーソル有無は、オブジェクトに攻撃カーソルAcを付与して表示するか否かを示すデータである。例えば、オブジェクト番号1のオブジェクトは、処理対象色が「青」、配置位置が「(X1,Y1)」、ライフ値が「100」、重畳ブロック色が「なし」、およびカーソル有無が「なし」であることが示されている。また、オブジェクト番号3のオブジェクトは、処理対象色が「赤」、配置位置が「(X3,Y3)」、ライフ値が「50」、重畳ブロック色が「赤」、およびカーソル有無が「あり」であることが示されている。
図9に戻り、仮想世界画像データDeは、複数のオブジェクトが配置された仮想世界を示すデータである。例えば、仮想世界画像データDeは、オブジェクトが配置された2次元の仮想世界を示すデータや、オブジェクトが配置された仮想空間を正射影や透視投影等することによって得られる仮想世界画像を示すデータである。
表示画像データDfは、上側LCD22に表示される表示画像を示すデータである。例えば、上側LCD22に表示される表示画像は、上記仮想世界画像を優先して上記カメラ画像上に上記仮想世界画像を合成することによって生成される。
次に、図12を参照して、情報処理部31の動作について説明する。まず、ゲーム装置10の電源(電源ボタン14F)がONされると、CPU311によってブートプログラム(図示せず)が実行され、これにより内蔵メモリまたは外部メモリ45やデータ保存用外部メモリ46に格納されているプログラムがメインメモリ32にロードされる。そして、当該ロードされたプログラムが情報処理部31(CPU311)で実行されることによって、図12に示す各ステップ(図12〜図14では「S」と略称する)が実行される。なお、図12〜図14においては、本発明に直接関連しない処理についての記載を省略する。
図12において、情報処理部31は、画像処理における初期設定を行い(ステップ51)、次のステップに処理を進める。一例として、情報処理部31は、仮想世界画像を生成するために、仮想オブジェクトを配置するための2次元の仮想世界を設定する場合、当該仮想世界を示す2次元の座標軸(例えば、XY軸)を設定する。他の例として、情報処理部31は、仮想世界画像を生成するために仮想カメラを仮想空間に設定する場合、仮想空間に当該仮想カメラを設定し、当該仮想カメラが配置される仮想空間の座標軸(例えば、XYZ軸)を設定する。また、情報処理部31は、以降の画像処理で用いる各パラメータを所定の値(例えば、0やNull値)に初期化する。
次に、情報処理部31は、ゲーム装置10の実カメラからカメラ画像を取得し(ステップ52)、次のステップに処理を進める。例えば、情報処理部31は、現在選択されている撮像部(外側撮像部23または内側撮像部24)によって撮像されたカメラ画像を用いて、カメラ画像データDaを更新する。
次に、情報処理部31は、操作データを取得し(ステップ53)、次のステップに処理を進める。例えば、情報処理部31は、操作ボタン14やアナログスティック15を操作したことを示すデータを取得して、操作データDbを更新する。
次に、情報処理部31は、オブジェクト設定処理を行い(ステップ54)、次のステップに処理を進める。以下、図13を参照して、オブジェクト設定処理の一例について説明する。
図13において、情報処理部31は、色検出処理を行い(ステップ60)、次のステップに処理を進める。以下、図14を参照して、色検出処理の一例について説明する。
図14において、情報処理部31は、当該サブルーチンで用いる一時変数Mを1に設定し(ステップ90)、次のステップに処理を進める。
次に、情報処理部31は、ブロックMのRGB平均値を算出し(ステップ91)、次のステップに処理を進める。上述したように、カメラ画像は、Mmax個のブロックに分割される。例えば、情報処理部31は、カメラ画像データDaが示すカメラ画像からブロックMに相当する画素(例えば、8×8ピクセル)のRGB値を抽出し、RGB値それぞれの平均値(すなわち、R、G、およびBの値それぞれの平均値)を算出する。そして、情報処理部31は、算出されたRGB平均値を用いて、ブロックMのRGB平均値に対応するブロックデータDcを更新する。
次に、情報処理部31は、上記ステップ91で算出されたRGB平均値を、色相Hm、彩度Sm、および明度Vmに変換し(ステップ92)、次のステップに処理を進める。そして、情報処理部31は、変換された色相Hm、彩度Sm、および明度Vmの値を用いて、ブロックMの色相H、彩度S、および明度Vに対応するブロックデータDcを更新する。
ここで、RGB平均値から、色相Hm、彩度Sm、および明度Vmへの変換は、一般的に用いられている手法を用いればよい。例えば、RGB平均値の各要素(すなわち、R、G、およびBの値)が0.0〜1.0で表され、maxを各要素の最大値、minを各要素の最小値とすると、色相Hmは、以下のような数式で変換される。
各要素のうち、Rの値がmaxの場合:
Hm=60×(G−B)/(max−min)
各要素のうち、Gの値がmaxの場合:
Hm=60×(B−R)/(max−min)+120
各要素のうち、Bの値がmaxの場合:
Hm=60×(R−G)/(max−min)+240
なお、上記数式を用いた変換によってHmが負の値となった場合、さらにHmに360を加算して色相Hmとする。また、彩度Smおよび明度Vmは、以下のような数式で変換される。
Sm=(max−min)/max
Vm=max
上記変換式を用いて、色相Hm、彩度Sm、および明度Vmを算出した場合、色相Hmが0.0〜360.0の範囲、彩度Smが0.0〜1.0の範囲、明度Vmが0.0〜1.0の範囲で、それぞれ求められる。
次に、情報処理部31は、上記ステップ92で算出された彩度Smが閾値Sc(例えば、Sc=0.43)以上であるか否かを判断する(ステップ93)。そして、情報処理部31は、彩度Smが閾値Sc以上である場合、次のステップ94に処理を進める。一方、情報処理部31は、彩度Smが閾値Sc未満である場合、次のステップ101に処理を進める。
ステップ94において、情報処理部31は、上記ステップ92で算出された明度Vmが閾値Vc(例えば、Vc=0.125)以上であるか否かを判断する。そして、情報処理部31は、明度Vmが閾値Vc以上である場合、次のステップ95に処理を進める。一方、情報処理部31は、明度Vmが閾値Vc未満である場合、次のステップ101に処理を進める。
ステップ95において、情報処理部31は、上記ステップ92で算出された色相Hmが閾値Rc1(例えば、Rc1=315.0)以上、または、閾値Rc2(例えば、Rc2=45.0)以下であるか否かを判断する。そして、上記ステップ95で肯定判定された場合、情報処理部31は、ブロックMを赤色の特定色に設定して、ブロックMの特定色設定に対応するブロックデータDcを更新し(ステップ96)、次のステップ102に処理を進める。一方、上記ステップ95で否定判定された場合、情報処理部31は、次のステップ97に処理を進める。
ステップ97において、情報処理部31は、上記ステップ92で算出された色相Hmが閾値Gc1(例えば、Gc1=75.0)以上、かつ、閾値Gc2(例えば、Gc2=165.0)以下であるか否かを判断する。そして、上記ステップ97で肯定判定された場合、情報処理部31は、ブロックMを緑色の特定色に設定して、ブロックMの特定色設定に対応するブロックデータDcを更新し(ステップ98)、次のステップ102に処理を進める。一方、上記ステップ97で否定判定された場合、情報処理部31は、次のステップ99に処理を進める。
ステップ99において、情報処理部31は、上記ステップ92で算出された色相Hmが閾値Bc1(例えば、Bc1=195.0)以上、かつ、閾値Bc2(例えば、Bc2=285.0)以下であるか否かを判断する。そして、上記ステップ99で肯定判定された場合、情報処理部31は、ブロックMを青色の特定色に設定して、ブロックMの特定色設定に対応するブロックデータDcを更新し(ステップ100)、次のステップ102に処理を進める。一方、上記ステップ99で否定判定された場合、情報処理部31は、次のステップ101に処理を進める。
一方、ステップ101において、情報処理部31は、ブロックMを特定色なしに設定して、ブロックMの特定色設定に対応するブロックデータDcを更新し、次のステップ102に処理を進める。このように、ブロックMの彩度Smが閾値Sc未満である場合、ブロックMの明度Vmが閾値Vc未満である場合、またはブロックMの色相Hmがステップ95、ステップ97、およびステップ98においてそれぞれ用いられている判定範囲のいずれにも属さない場合、ブロックMが特定色なしに設定される。
ステップ102において、情報処理部31は、現在設定されている一時変数MがMmaxであるか否かを判断する。そして、情報処理部31は、一時変数MがMmaxである場合、当該サブルーチンによる処理を終了する。一方、情報処理部31は、一時変数MがMmaxに到達していない場合、現在設定されている一時変数Mに1を加算して新たな一時変数を設定して(ステップ103)、上記ステップ91に戻って処理を繰り返す。
図13に戻り、上記ステップ60における色検出処理の後、情報処理部31は、仮想世界にオブジェクトが設定されているか否かを判断する(ステップ61)。例えば、情報処理部31は、オブジェクトデータDdを参照して、少なくとも1つの仮想オブジェクトデータがオブジェクトデータDdに設定されているか否かを判断する。そして、情報処理部31は、オブジェクトデータDdに仮想オブジェクトが設定されている場合、次のステップ62に処理を進める。一方、情報処理部31は、オブジェクトデータDdに仮想オブジェクトが設定されていない場合、次のステップ74に処理を進める。
ステップ62において、情報処理部31は、当該サブルーチンで用いる一時変数Nを1に設定し、次のステップに処理を進める。
次に、情報処理部31は、オブジェクト番号Nのオブジェクトを仮想世界において移動させ(ステップ63)、次のステップに処理を進める。例えば、情報処理部31は、オブジェクト番号Nのオブジェクトを示す画像が上側LCD22に表示される際に当該上側LCD22の表示画面において下方向へ当該画像が移動する方向へ、当該オブジェクトを仮想世界において所定の距離だけ移動させる。そして、仮想世界において移動させた後のオブジェクトの位置を用いて、オブジェクトデータDdにおけるオブジェクト番号Nのオブジェクト配置位置を示すデータを更新する。なお、仮想世界における所定の領域までオブジェクトが到達した場合にゲームの得点が減点される場合、移動後の配置位置が当該減点領域に到達していれば、上記ステップ63において当該減点領域に到達したオブジェクトの種別に応じて所定の得点を減算する処理を行ってもかまわない。
次に、情報処理部31は、オブジェクト番号Nのオブジェクトが重畳するブロック色を取得し(ステップ64)、次のステップに処理を進める。例えば、情報処理部31は、仮想世界画像がカメラ画像に合成される際、オブジェクト番号Nのオブジェクトと重なるブロック(例えば、オブジェクト番号Nのオブジェクトの中央の点と重なるブロック)を抽出し、ブロックデータDcを参照して当該ブロックに対して設定されている特定色を示すデータを取得する。そして、情報処理部31は、取得したブロックの特定色を用いて、オブジェクトデータDdにおけるオブジェクト番号Nの重畳ブロック色を示すデータを更新する。
次に、情報処理部31は、オブジェクト番号Nのオブジェクトに攻撃カーソルAcを付与するか否かを判断する(ステップ65)。例えば、情報処理部31は、オブジェクトデータDdを参照し、オブジェクト番号Nの処理対象色と重畳ブロック色とが一致するか否かを判定し、肯定判定の場合にオブジェクト番号Nのオブジェクトに攻撃カーソルAcを付与すると判断する。そして、情報処理部31は、オブジェクト番号Nのオブジェクトに攻撃カーソルAcを付与する場合、次のステップ66に処理を進める。一方、情報処理部31は、オブジェクト番号Nのオブジェクトに攻撃カーソルAcを付与しない場合、次のステップ67に処理を進める。
ステップ66において、情報処理部31は、オブジェクト番号Nのオブジェクトを攻撃カーソルありに設定し、次のステップに処理を進める。例えば、情報処理部31は、オブジェクトデータDdにおけるオブジェクト番号Nのカーソル有無を示すデータを、カーソルありに設定する。
次に、情報処理部31は、ゲーム装置10のユーザによって攻撃操作が行われたか否かを判断する(ステップ68)。例えば、情報処理部31は、操作データDbを参照して、ユーザが所定の攻撃操作(例えば、操作ボタン14B(Aボタン)の押下)を行ったか否かを判断する。そして、情報処理部31は、攻撃操作が行われた場合、次のステップ69に処理を進める。一方、情報処理部31は、攻撃操作が行われていない場合、次のステップ72に処理を進める。
ステップ69において、情報処理部31は、オブジェクト番号Nのオブジェクトのライフ値を所定数減算し、次のステップに処理を進める。例えば、情報処理部31は、オブジェクトデータDdが示すオブジェクト番号Nのライフ値から、所定の値を減算し、当該減算した値を用いてオブジェクトデータDdにおけるオブジェクト番号Nのライフ値を更新する。ここで、情報処理部31がライフ値から減算する値は、ゲーム設定に応じて決めればよい。
第1の例は、情報処理部31は、オブジェクトデータDdが示すオブジェクト番号Nのライフ値が0となるように減算する。この場合、ユーザが一度攻撃操作を行うことによって、攻撃対象となっているオブジェクトが仮想世界から消滅することになる。第2の例は、情報処理部31は、オブジェクトデータDdが示すオブジェクト番号Nのライフ値から、予め定められた固定値を減算する。この場合、オブジェクト毎に定められるライフ値の初期値と上記固定値との相対的な大小関係によって、当該オブジェクトを消滅させるまでに必要な攻撃回数を調整することができる。第3の例は、情報処理部31は、重畳ブロックの色情報に応じて算出された値を、オブジェクトデータDdが示すオブジェクト番号Nのライフ値から減算する。ここで、上記ステップ64において、仮想世界画像がカメラ画像に合成される際、オブジェクト番号Nのオブジェクトと重なるブロックが抽出されており、当該ブロックに対して設定されているRGB平均値、色相、彩度、および明度がブロックデータDcに設定されている。例えば、情報処理部31は、オブジェクト番号Nのオブジェクトと重なるブロックに設定されているRGB平均値、色相、彩度、および明度の少なくとも1つに基づいて、ライフ値から減算する値を設定する。この場合、オブジェクトと重なって表示されている被写体の色に応じて、当該オブジェクトを消滅させるまでに必要な攻撃回数が変化することになり、重なって表示されている被写体の色に応じてオブジェクトに与えられる攻撃の強さを変化させることができる。
また、オブジェクトに攻撃が加えられることに応じて、上記ステップ69において当該オブジェクトの処理対象色を変更してもかまわない。これによって、当該オブジェクトをさらに攻撃して消滅させるためには、当該オブジェクトを他の特定色の被写体と重ねて表示しながら攻撃操作をする必要があり、さらにゲームの興趣性が向上する。
次に、情報処理部31は、オブジェクト番号Nのオブジェクトが有するライフ値が0以下か否かを判断する(ステップ70)。例えば、情報処理部31は、オブジェクトデータDdが示すオブジェクト番号Nのライフ値を参照し、当該ライフ値が0以下を示しているか否かを判断する。そして、情報処理部31は、オブジェクト番号Nのオブジェクトが有するライフ値が0以下である場合、次のステップ71に処理を進める。一方、情報処理部31は、オブジェクト番号Nのオブジェクトが有するライフ値が0より大きい場合、次のステップ72に処理を進める。
ステップ71において、情報処理部31は、オブジェクト番号Nのオブジェクトを消滅させる処理を行い、次のステップ72に処理を進める。例えば、情報処理部31は、オブジェクトデータDdからオブジェクト番号Nのデータを消去することによって、オブジェクト番号Nのオブジェクトを消滅する処理を行う。なお、仮想世界からオブジェクトが消去されることによって、ゲームの得点が得られる場合、上記ステップ71において消滅したオブジェクトの種別に応じて、所定の得点を加算する処理を行ってもかまわない。
一方、上記ステップ65において、オブジェクト番号Nのオブジェクトに攻撃カーソルAcを付与しないと判断された場合、情報処理部31は、オブジェクト番号Nのオブジェクトを攻撃カーソルなしに設定し、次のステップ72に処理を進める。例えば、情報処理部31は、オブジェクトデータDdにおけるオブジェクト番号Nのカーソル有無を示すデータを、カーソルなしに設定する。
ステップ72において、情報処理部31は、現在設定されている一時変数NがNmaxであるか否かを判断する。そして、情報処理部31は、一時変数NがNmaxである場合、次のステップ74に処理を進める。一方、情報処理部31は、一時変数NがNmaxに到達していない場合、現在設定されている一時変数Nに1を加算して新たな一時変数Nを設定して(ステップ73)、上記ステップ63に戻って処理を繰り返す。
ステップ74において、情報処理部31は、仮想世界にオブジェクトを新たに出現させる処理を行い、次のステップに処理を進める。例えば、情報処理部31は、所定のアルゴリズムに基づいて、新たにオブジェクトを出現させるか否かを判断する。オブジェクトを出現させる場合、情報処理部31は、当該アルゴリズムに基づいて、オブジェクトの出現数、オブジェクトの出現位置、および出現させるオブジェクトの種別(処理対象色、初期ライフ値)等を設定する。そして、設定されたオブジェクト情報を用いて、出現させるオブジェクトを示すデータをオブジェクトデータDdに追加する。なお、出現させるオブジェクトのデータは、オブジェクトデータDdに既に格納されている最大のオブジェクト番号から順に昇順となるように追加してもいいし、上記ステップ71における消滅処理によってオブジェクト番号に空番号がある場合に当該空番号に追加してもよい。なお、上記オブジェクトを出現させる処理の後においても、上記ステップ71における消滅処理によってオブジェクト番号に空番号がある場合、当該空番号が埋まるように順次データを移動させる。また、上記ステップ74の処理によって、オブジェクトデータDdに記述されるオブジェクトの数が増加または減少した場合、当該増加または減少に応じて上記ステップ72で用いる判定値Nmaxが変化することになる。
次に、情報処理部31は、オブジェクトを仮想世界に配置して(ステップ75)、当該サブルーチンによる処理を終了する。例えば、情報処理部31は、オブジェクトデータDdを参照して、設定された配置位置、処理対象色、およびカーソル有無に基づいて、各オブジェクトを仮想世界に配置する。一例として、情報処理部31は、各オブジェクトを2次元の仮想世界に配置する場合、設定されている仮想世界を示す2次元の座標軸に基づいて、各オブジェクトを配置する。そして、カーソルありに設定されているオブジェクトについては、当該オブジェクトを囲むように矩形や円形状の攻撃カーソルAcを付与する。他の例として、情報処理部31は、各オブジェクトを3次元の仮想空間に配置する場合、設定されている仮想空間を示す3次元の座標軸に基づいて、各オブジェクトを配置する。そして、カーソルありに設定されているオブジェクトについては、当該オブジェクトを取り囲むように攻撃カーソルAcに対応する立体(例えば、枠のみが不透明の立方体や直方体、半透明の球体等)を付与する。なお、仮想世界に配置するオブジェクトの色は、各処理対象色に応じて設定してもよい。例えば、設定されている処理対象色と同じ色にオブジェクトの色を設定してもいいし、設定されている処理対象色の補色(すなわち、赤色に対する青緑色、緑色に対する赤紫、青色に対する黄色等)となる色にオブジェクトの色を設定してもよい。前者の場合、オブジェクトの色によって当該オブジェクトを消滅させるための被写体の色を直接的にユーザに示すことができる。また、後者の場合、オブジェクトの色の補色が当該オブジェクトを消滅させるための被写体の色となるため、ユーザに補色の関係を考慮させながらゲームを進めることが可能となる。
図12に戻り、上記ステップ54におけるオブジェクト設定処理の後、情報処理部31は、仮想世界画像を生成する処理を行い(ステップ55)、次のステップに処理を進める。例えば、2次元の仮想世界にオブジェクトが配置されている場合、情報処理部31は、当該オブジェクトを含む仮想世界を示す画像を仮想世界画像として生成して、仮想世界画像データDeを更新する。また、3次元の仮想空間にオブジェクトが配置されている場合、情報処理部31は、オブジェクトが配置されている仮想空間をレンダリングした画像を用いて、仮想世界画像データDeを更新する。例えば、情報処理部31は、仮想空間の配置されたオブジェクトを、仮想カメラから透視投影または正射影でレンダリングすることによって仮想世界画像を生成し、生成された仮想世界画像を用いて仮想世界画像データDeを更新する。
次に、情報処理部31は、カメラ画像と仮想世界画像とを合成した表示画像を生成し、当該表示画像を上側LCD22に表示して(ステップ56)、次のステップに処理を進める。例えば、情報処理部31は、カメラ画像データDaが示すカメラ画像および仮想世界画像データDeが示す仮想世界画像を取得して、仮想世界画像を優先してカメラ画像上に当該仮想世界画像を合成することによって表示画像を生成し、当該表示画像を用いて表示画像データDfを更新する。また、情報処理部31のCPU311は、表示画像データDfが示す表示画像をVRAM313に格納する。そして、情報処理部31のGPU312が、VRAM313に描画された表示画像を上側LCD22に出力することによって、上側LCD22に当該表示画像が表示される。なお、情報処理部31は、仮想世界画像データDeに仮想世界画像が格納されていない場合、カメラ画像データDaが示すカメラ画像をそのまま上記表示画像とすればよい。
次に、情報処理部31は、ゲームを終了するか否かを判断する(ステップ57)。ゲームを終了する条件としては、例えば、ゲームオーバとなる条件が満たされたことや、ユーザがゲームを終了する操作を行ったこと等がある。情報処理部31は、ゲームを終了しない場合、上記ステップ52に戻って処理を繰り返す。一方、情報処理部31は、ゲームを終了する場合、当該フローチャートによる処理を終了する。
このように、上述した実施形態に係る画像処理では、仮想オブジェクトにそれぞれ処理対象色が設定され、実カメラから得られたカメラ画像において当該仮想オブジェクトと重なって表示される被写体の色が当該仮想オブジェクトの処理対象色と実質的に同じである場合に当該仮想オブジェクトが攻撃対象となる。したがって、ユーザは、仮想オブジェクトを攻撃して消滅させようとする場合、カメラ画像における特定色の被写体と当該カメラ画像に合成される仮想オブジェクト画像との位置関係を調整しながら攻撃操作する必要があり、実世界画像を用いて仮想オブジェクトに対して新たな処理を行うゲームを提供することができる。
なお、上述した説明では、ブロックに対して設定され得る特定色、すなわち仮想オブジェクトに対して設定され得る処理対象色やカメラ画像に含まれる被写体に対して設定され得る特定色を、「赤色」、「緑色」、「青色」の3色としたが、他の色や他の属性を仮想オブジェクトの処理対象色や被写体の特定色としてもかまわない。例えば、橙色、黄色、紫色、桃色等の他の色相を仮想オブジェクトの処理対象色や被写体の特定色に設定してもいいし、黒色、灰色、白色等の無彩色を仮想オブジェクトの処理対象色や被写体の特定色に設定してもよい。また、所定の閾値より明るい色または暗い色(明度が相対的に高い色または低い色)や所定の閾値より純色に近い色または純色から遠い色(彩度が相対的に高い色または低い色)を仮想オブジェクトの処理対象色や被写体の特定色に設定してもよい。RGB値、色相、彩度、明度等の色情報の少なくとも1つを用いることによって、上記と同様の仮想オブジェクト設定処理が可能となることは言うまでもない。
また、上述した説明では、カメラ画像のブロック全てに対して、当該ブロック毎に色情報(RGB平均値、色相、彩度、および明度)が所定の範囲にある場合に特定色を設定し、仮想オブジェクトの処理対象色が当該特定色と一致する場合に当該仮想オブジェクトを攻撃の対象とする処理例を用いたが、処理対象色と特定色とが実質的に一致する判定をする処理は他の方式を用いてもかまわない。第1の例として、仮想オブジェクト毎に処理対象色に相当する色情報(RGB平均値、色相、彩度、および明度)の範囲を設定し、当該仮想オブジェクトと重なって表示されるカメラ画像のブロックの色情報が当該範囲に含まれる場合に当該仮想オブジェクトを攻撃の対象とするような処理を行う。この場合、処理対象色と特定色とが実質的に一致する判定をする処理を、仮想オブジェクトと重なって表示されるカメラ画像のブロックに対してのみ行うことも考えられる。第2の例として、仮想オブジェクトと重なって表示されるカメラ画像のブロックに対してのみ特定色を判定する処理を行う。すなわち、仮想オブジェクトと重なって表示されているブロックの色情報が所定の範囲にある場合に当該ブロックに特定色を設定し、当該特定色が当該ブロックと重なっている仮想オブジェクトの処理対象色と一致する場合に当該仮想オブジェクトを攻撃の対象とする。
また、実カメラが撮像したカメラ画像における被写体の明暗や色を反転させた画像(ネガ画像)を、上側LCD22に表示してもかまわない。この場合、情報処理部31がカメラ画像データDaに格納されているカメラ画像全体のRGB値をそれぞれ反転させることによって、上記ネガ画像を生成することができる。具体的には、カメラ画像のRGB値が0〜255の値で示される場合、255からRGB値を減算した値をそれぞれのRGB値とする(例えば、RGB値(150,120,60)の場合、RGB値(105,135,195)となる)ことによって、上述したRGB値の反転が可能となる。この場合、ゲーム装置10のプレイヤは、仮想オブジェクトに所定の処理を行うためには、上側LCD22に表示されたネガ画像において当該仮想オブジェクトの処理対象色(すなわち、当該仮想オブジェクトに所定の処理を施すための色)の補色(例えば、処理対象色が赤色の場合、青緑色)で撮像されている被写体に重ねることが必要となり、ゲームを進行させる上で新たな思考が必要となる。なお、上側LCD22に表示するカメラ画像は、ゲーム進行において特定のタイミングが到来したり、特定の状態になったりしたことを契機として、上記ネガ画像へ変化させてもかまわない。
また、上述した説明では、カメラ画像を所定サイズのブロックに分割し、ブロック毎に特定色を設定する例を用いたが、他の単位で特定色を設定してもかまわない。例えば、カメラ画像の画素毎に特定色を設定してもかまわない。
また、上述したゲーム例では、攻撃対象となった仮想オブジェクトに攻撃カーソルAcが付与されるが、攻撃対象に対しても攻撃カーソルAcを付与することなくゲーム画像を生成してもかまわない。この場合、ゲーム装置10のユーザに対して、攻撃操作前に攻撃対象となっている仮想オブジェクトを示すことはできないが、ユーザが攻撃操作を行うことによって攻撃対象に対して同様の攻撃が行われる。したがって、ユーザに対して攻撃対象を攻撃操作前に示すことなく、当該被写体の特定色と当該被写体と重なって表示される仮想オブジェクトの処理対象色とが実質的に同じである場合に当該仮想オブジェクトが攻撃操作に応じて攻撃されることになるため、さらに興趣性に富んだゲームとなることがあり得る。
また、上述したゲーム例では、被写体の特定色と当該被写体と重なって表示される仮想オブジェクトの処理対象色とが実質的に同じである場合に、当該被写体と重なっている当該仮想オブジェクトが攻撃処理の対象となる例を示したが、当該仮想オブジェクトに対して他の処理が行われてもかまわない。
第1の例として、被写体の特定色と当該被写体と重なって表示される仮想オブジェクトの処理対象色とが実質的に同じである場合に、当該被写体と重なっている当該仮想オブジェクトのライフ値を所定量増加させる。この場合、仮想オブジェクトが攻撃対象となる処理が行われる処理対象色と、仮想オブジェクトのライフ値が上昇する処理が行われる処理対象色とを、それぞれ別の色に設定することによって、両方の処理を両立させてもよい。
第2の例として、被写体の特定色と当該被写体と重なって表示される仮想オブジェクトの処理対象色とが実質的に同じである場合に、当該被写体と重なっている当該仮想オブジェクトの移動速度や移動方向を変化させる。この場合、仮想オブジェクトが攻撃対象となる処理が行われる処理対象色と、仮想オブジェクトの移動速度や移動方向を変化させる処理が行われる処理対象色とを同じ色または別の色に設定して、仮想オブジェクトが攻撃対象となる処理と仮想オブジェクトの移動速度や移動方向を変化させる処理とを両立させてもよい。例えば、両者の処理対象色を同じにした場合、攻撃対象となる被写体と仮想オブジェクトが重なって表示された場合に、移動速度や移動方向を変化させることによって当該被写体上から当該仮想オブジェクトが逃げるようなゲーム画像を上側LCD22において表現することも可能となる。
第3の例として、被写体の特定色と当該被写体と重なって表示される仮想オブジェクトの処理対象色とが実質的に同じである場合に、当該被写体と重なっている当該仮想オブジェクトを***させたり、合体させたり、一時的に透明に(すなわち、消去)したりして、当該仮想オブジェクトが表示される個数を変化させる。この場合も、仮想オブジェクトが攻撃対象となる処理が行われる処理対象色と、仮想オブジェクトの表示個数を変化させる処理が行われる処理対象色とを同じ色または別の色に設定して、仮想オブジェクトが攻撃対象となる処理と仮想オブジェクトの表示個数を変化させる処理とを両立させてもよい。例えば、両者の処理対象色を同じにした場合、攻撃対象となる被写体と仮想オブジェクトが重なって表示された場合に、***、合体、消滅することによって当該仮想オブジェクトがユーザの攻撃を防御するようなゲーム画像を上側LCD22において表現することも可能となる。
また、仮想オブジェクトに所定の処理が行われる処理対象色は、複数設定されてもかまわない。例えば、赤色と青色とが仮想オブジェクトの処理対象色に設定されている場合、当該仮想オブジェクトが赤色の被写体と重なると当該仮想オブジェクトに対して所定の処理が行われるとともに、当該仮想オブジェクトが青色の被写体と重なっても当該仮想オブジェクトに対して同じ所定の処理が行われることになる。
また、上述したゲーム例では、仮想オブジェクトにそれぞれ処理対象色が設定され、実カメラから得られたカメラ画像において当該仮想オブジェクトと重なって表示される被写体の色が当該仮想オブジェクトの処理対象色と実質的に同じである場合に、当該仮想オブジェクト全てに所定の処理が行われる。しかしながら、当該仮想オブジェクトの一部に対して所定の処理を行ってもかまわない。
また、上述したゲーム例では、被写体の特定色と当該被写体と重なって表示される仮想オブジェクトの処理対象色とが実質的に同じである場合に、当該被写体と重なっている当該仮想オブジェクトに対して所定の処理が行われるが、当該被写体と重ならない仮想オブジェクトにも当該処理を行ってもかまわない。例えば、仮想オブジェクトの処理対象色と実質的に同じである特定色を有する被写体が、上側LCD22に表示されたカメラ画像に撮像されていれば、上側LCD22に表示された仮想オブジェクトのうち、当該特定色を処理対象色とする仮想オブジェクト全てに対して所定の処理を行ってもかまわない。この場合、ゲーム装置10のユーザは、仮想オブジェクトに所定の処理を行う場合に当該仮想オブジェクトと特定色の被写体とを重ねて表示させる必要はなく、当該特定色の被写体が少なくとも撮像範囲に含まれるように実カメラで撮像するだけでよい。この場合、仮想オブジェクトにそれぞれ処理対象色が設定され、実カメラから得られたカメラ画像に表示された被写体の色が当該処理対象色と実質的に同じである場合に、当該処理対象色が設定されている仮想オブジェクト全てに所定の処理が行われることになるが、当該仮想オブジェクトの一部に対して所定の処理を行ってもかまわない。
また、上述した説明では、上側LCD22に、外側撮像部23および内側撮像部24のいずれかから取得したカメラ画像CIが、実世界の平面画像(上述した立体視可能な画像とは反対の意味での平面視の画像)として表示される例を用いたが、裸眼で立体視可能な実世界の画像(立体画像)を上側LCD22に表示してもよい。例えば、上述したように、ゲーム装置10は、外側左撮像部23aおよび外側右撮像部23bから取得したカメラ画像を用いた立体視可能な画像(立体画像)を上側LCD22に表示することが可能である。この場合、上側LCD22に表示された立体画像に含まれる特定色の被写体と当該特定色を処理対象色とする仮想オブジェクトとの位置関係に応じて、当該仮想オブジェクトに対して所定の処理が行われる。
例えば、上記立体画像に含まれる特定色の被写体に応じて仮想オブジェクトに所定の処理が行われるように描画する場合、外側左撮像部23aから得られた左目用画像および外側右撮像部23bから得られた右目用画像を用いて、上述した画像処理を行う。具体的には、図12に示した画像処理において、仮想世界に配置されたオブジェクトを、2つの仮想カメラ(ステレオカメラ)から透視変換することによって、それぞれ左目用仮想世界画像と右目用仮想世界画像とを得る。そして、左目用画像(外側左撮像部23aから得られたカメラ画像)と左目用仮想世界画像とを合成して左目用表示画像を生成し、右目用画像(外側右撮像部23bから得られたカメラ画像)と右目用仮想世界画像とを合成して右目用表示画像を生成し、当該左目用表示画像および当該右目用表示画像を上側LCD22に出力する。
また、上述した説明では、ゲーム装置10に内蔵する実カメラで撮像されたリアルタイムの動画像が上側LCD22に表示され、上記実カメラで撮像された動画像(カメラ画像)が仮想世界画像と合成されて表示されるが、本発明において上側LCD22に表示する画像は、様々なバリエーションが考えられる。第1の例として、予め録画された動画像およびテレビジョン放送や他の装置から得られる動画像等が上側LCD22に表示される。この場合、上記動画像が上側LCD22に表示され、当該動画像に特定色の被写体が含まれる場合、当該特定色の被写体に応じて、仮想オブジェクトに所定の処理が行われることになる。第2の例として、ゲーム装置10に内蔵する実カメラや他の実カメラから得られた静止画像が上側LCD22に表示される。この場合、実カメラから得られた静止画像が上側LCD22に表示され、当該静止画像に特定色の被写体が含まれる場合、当該特定色の被写体に応じて、仮想オブジェクトに所定の処理が行われることになる。ここで、実カメラから得られる静止画像は、ゲーム装置10に内蔵する実カメラでリアルタイムに撮像された実世界の静止画像でもいいし、当該実カメラや他の実カメラで予め撮影された実世界の静止画像でもいいし、テレビジョン放送や他の装置から得られる静止画像でもよい。
また、上記実施形態では、上側LCD22がパララックスバリア方式の液晶表示装置であるとして、視差バリアのON/OFFを制御することにより、立体表示と平面表示とを切り替えることができる。他の実施形態では、例えば、上側LCD22としてレンチキュラー方式の液晶表示装置を用いて、立体画像および平面画像を表示可能としてもよい。レンチキュラー方式の場合でも、外側撮像部23で撮像した2つの画像を縦方向に短冊状に分割して交互に配置することで画像が立体表示される。また、レンチキュラー方式の場合でも、内側撮像部24で撮像した1つの画像をユーザの左右の目に視認させることによって、当該画像を平面表示させることができる。すなわち、レンチキュラー方式の液晶表示装置であっても、同じ画像を縦方向に短冊状に分割し、これら分割した画像を交互に配置することにより、ユーザの左右の目に同じ画像を視認させることができる。これにより、内側撮像部24で撮像された画像を平面画像として表示することが可能である。
また、上述した実施形態では、2画面分の液晶表示部の一例として、物理的に分離された下側LCD12および上側LCD22を互いに上下に配置した場合(上下2画面の場合)を説明した。しかしながら、本発明は、単一の表示画面(例えば、上側LCD22のみ)を有する装置または単一の表示装置に表示する画像に対する画像処理を行う装置でも実現することができる。また、2画面分の表示画面の構成は、他の構成でもかまわない。例えば、下側ハウジング11の一方主面に下側LCD12および上側LCD22を左右に配置してもかまわない。また、下側LCD12と横幅が同じで縦の長さが2倍のサイズからなる縦長サイズのLCD(すなわち、物理的には1つで、表示サイズが縦に2画面分あるLCD)を下側ハウジング11の一方主面に配設して、2つの画像(例えば、撮像画像と操作説明画面を示す画像等)を上下に表示(すなわち上下の境界部分なしに隣接して表示)するように構成してもよい。また、下側LCD12と縦幅が同じで横の長さが2倍のサイズからなる横長サイズのLCDを下側ハウジング11の一方主面に配設して、横方向に2つの画像を左右に表示(すなわち左右の境界部分なしに隣接して表示)するように構成してもよい。すなわち、物理的に1つの画面を2つに分割して使用することにより2つの画像を表示してもかまわない。また、物理的に1つの画面を2つに分割して使用することにより上記2つの画像を表示する場合、当該画面全面にタッチパネル13を配設してもかまわない。
また、上述した実施例では、ゲーム装置10にタッチパネル13が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、当該実施例を実現できることは言うまでもない。また、上側LCD22の上面にタッチパネル13を設けて上側LCD22に上述した下側LCD12に表示していた表示画像を表示してもよい。また、当該実施例を実現する場合に、タッチパネル13が設けられていなくもかまわない。
また、上記実施例では、携帯型のゲーム装置10を用いて説明したが、据置型のゲーム装置や一般的なパーソナルコンピュータ等の情報処理装置で本実施例の画像処理プログラムを実行してもかまわない。この場合、ユーザによって撮像方向や撮像位置を変化させることができる撮像装置を使用し、当該撮像装置から得られる実世界画像を用いれば同様の画像処理が実現可能となる。また、他の実施形態では、ゲーム装置に限らず任意の携帯型電子機器、例えば、PDA(Personal Digital Assistant)や携帯電話、パーソナルコンピュータ、カメラ等であってもよい。例えば、携帯電話が、1つのハウジングの主面に表示部と、実カメラとを備えてもよい。
また、上述した説明では画像処理をゲーム装置10で行う例を用いたが、上記画像処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲーム装置10が他の装置(例えば、サーバや他のゲーム装置)と通信可能に構成されている場合、上記画像処理における処理ステップは、ゲーム装置10および当該他の装置が協働することによって実行してもよい。一例として、ゲーム装置10において、カメラ画像を設定する処理が行われ、他の装置がゲーム装置10からカメラ画像に関するデータを取得して、ステップ53〜ステップ57の処理を行う。そして、カメラ画像と仮想世界とが合成された表示画像を他の装置から取得して、ゲーム装置10の表示装置(例えば、上側LCD22)に表示することが考えられる。他の例として、他の装置において、カメラ画像を設定する処理が行われ、ゲーム装置10がカメラ画像に関するデータを取得して、ステップ53〜ステップ57の処理を行うことが考えられる。このように、上記画像における処理ステップの少なくとも一部を他の装置で行うことによって、上述した画像処理と同様の処理が可能となる。つまり、上述した画像処理は、少なくとも1つの情報処理装置により構成される画像処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施形態においては、ゲーム装置10の情報処理部31が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、ゲーム装置10が備える専用回路によって上記処理の一部または全部が行われてもよい。
また、上述したゲーム装置10の形状や、それに設けられている各種操作ボタン14、アナログスティック15、タッチパネル13の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した画像処理で用いられる処理順序、設定値、数式、判定に用いられる値等は、単なる一例に過ぎず他の順序、値、数式であっても、上記実施例を実現できることは言うまでもない。
また、上記画像処理プログラム(ゲームプログラム)は、外部メモリ45やデータ保存用外部メモリ46等の外部記憶媒体を通じてゲーム装置10に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置10に供給されてもよい。また、上記プログラムは、ゲーム装置10内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープなどでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
本発明に係る画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法は、実世界画像を用いて仮想オブジェクトに対して新たな処理を行うことが可能であり、各種画像の画像処理等を行う画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法等として有用である。
10…ゲーム装置
11…下側ハウジング
12…下側LCD
13…タッチパネル
14…操作ボタン
15…アナログスティック
16…LED
17…挿入口
18…マイクロフォン用孔
19…無線スイッチ
21…上側ハウジング
22…上側LCD
23…外側撮像部
23a…外側左撮像部
23b…外側右撮像部
24…内側撮像部
25…3D調整スイッチ
26…3Dインジケータ
27…スクリーンカバー
28…タッチペン
31…情報処理部
311…CPU
312…GPU
313…VRAM
32…メインメモリ
33…外部メモリI/F
34…データ保存用外部メモリI/F
35…データ保存用内部メモリ
36…無線通信モジュール
37…ローカル通信モジュール
38…RTC
39…加速度センサ
40…角速度センサ
41…電源回路
42…I/F回路
43…マイク
44…スピーカ
45…外部メモリ
46…データ保存用外部メモリ

Claims (17)

  1. 表示装置に表示する画像を処理する画像処理装置のコンピュータを、
    実カメラによって撮像された撮像画像を取得する撮像画像取得手段、
    所定色が設定されている少なくとも1つの仮想オブジェクトを仮想世界に配置するオブジェクト配置手段、
    前記撮像画像取得手段によって取得された撮像画像において、仮想世界に配置されている仮想オブジェクトに設定されている前記所定色に相当する少なくとも1つの画素が含まれているか否かを、前記撮像画像の画素が有するRGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報を用いて検出する色検出手段、
    前記色検出手段が前記所定色に相当する画素を検出した場合、当該所定色が設定されている仮想オブジェクトに対して所定の処理を行うオブジェクト処理手段、および
    前記仮想オブジェクトが少なくとも配置された仮想世界の画像を前記表示装置に表示する画像表示制御手段として機能させる、画像処理プログラム。
  2. 前記撮像画像取得手段によって取得された撮像画像と前記仮想オブジェクトが配置された仮想世界の画像とを合成した合成画像を生成する画像合成手段として、さらに前記コンピュータを機能させ、
    前記画像表示制御手段は、前記画像合成手段により生成された合成画像を前記表示装置に表示する、請求項1に記載の画像処理プログラム。
  3. 前記オブジェクト処理手段は、前記画像合成手段が前記撮像画像と前記仮想世界の画像とを合成する場合に、前記所定色が設定された仮想オブジェクトのうち、当該所定色に相当する画素と重なって当該撮像画像に合成される仮想オブジェクトに対して前記所定の処理を行う、請求項2に記載の画像処理プログラム。
  4. 前記オブジェクト配置手段は、前記所定色が設定されている複数の仮想オブジェクトを前記仮想世界に配置し、
    前記オブジェクト処理手段は、前記所定色が設定されている複数の仮想オブジェクトのうち、当該所定色と同じ所定色に相当する画素と重なって前記撮像画像に合成される仮想オブジェクトに対して所定の処理を行う、請求項1乃至3のいずれか1つに記載の画像処理プログラム。
  5. ユーザの操作に応じて、操作信号を取得する操作信号取得手段として、さらに前記コンピュータを機能させ、
    前記オブジェクト処理手段は、前記色検出手段が前記所定色に相当する画素を検出し、かつ、仮想オブジェクトに攻撃を加える操作を示す操作信号を前記操作信号取得手段が取得したときに、当該所定色が設定されている仮想オブジェクトに対して所定の攻撃を加える、請求項1乃至4のいずれか1つに記載の画像処理プログラム。
  6. 前記オブジェクト処理手段は、前記色検出手段が前記所定色に相当する画素を検出した場合に、当該所定色が設定された仮想オブジェクトに対して所定の標識を設定し、
    前記画像表示制御手段は、前記オブジェクト処理手段が設定した前記標識を仮想オブジェクトに付与し、当該標識が付与された仮想オブジェクトが配置された仮想世界の画像を前記表示装置に表示する、請求項1乃至5のいずれか1つに記載の画像処理プログラム。
  7. 前記オブジェクト処理手段は、前記所定の攻撃が加えられた仮想オブジェクトを、仮想世界から消滅させる、請求項5に記載の画像処理プログラム。
  8. 前記色検出手段は、彩度および明度を示す色情報がそれぞれ所定の閾値以上に高く、かつ、色相を示す色情報が所定の範囲内となる画素を、前記所定色に相当する画素として検出する、請求項1乃至3のいずれか1つに記載の画像処理プログラム。
  9. 前記所定色が設定された仮想オブジェクトの表示色は、当該所定色と実質的に同じ色に設定され、
    前記画像表示制御手段は、前記所定色が設定された仮想オブジェクトを示す画像の少なくとも一部に前記設定された表示色が含まれるように、当該仮想オブジェクトを前記表示装置に表示する、請求項1乃至3のいずれか1つに記載の画像処理プログラム。
  10. 前記所定色が設定された仮想オブジェクトの表示色は、当該所定色の実質的に補色となる色に設定され、
    前記画像表示制御手段は、前記所定色が設定された仮想オブジェクトを示す画像の少なくとも一部に前記設定された表示色が含まれるように、当該仮想オブジェクトを前記表示装置に表示する、請求項1乃至3のいずれか1つに記載の画像処理プログラム。
  11. 前記色検出手段は、
    前記撮像画像を複数の画素で構成されるブロックに分割するブロック分割手段と、
    前記ブロックに属する画素がそれぞれ有するRGB値の平均値を当該ブロック毎に算出するブロックRGB平均値算出手段とを含み、
    前記色検出手段は、前記ブロック毎の前記平均値に基づいて、当該ブロックを検出単位として前記所定色に相当する画素が前記撮像画像に含まれているか否かを検出する、請求項1乃至3に記載の画像処理プログラム。
  12. 前記撮像画像取得手段は、前記画像処理装置が利用可能な実カメラによってリアルタイムに撮像された実世界の撮像画像を繰り返し取得し、
    前記色検出手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれにおいて、前記所定色に相当する画素を繰り返し検出し、
    前記オブジェクト処理手段は、前記色検出手段が繰り返し検出した結果に基づいて、前記仮想オブジェクトに対して繰り返し前記所定の処理を行い、
    前記画像合成手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれと前記仮想オブジェクトが配置された仮想世界の画像とを合成して繰り返し前記合成画像を生成し、
    前記画像表示制御手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれに前記仮想世界の画像が合成された合成画像を前記表示装置に繰り返し表示する、請求項2または3に記載の画像処理プログラム。
  13. 前記コンピュータを、前記オブジェクト処理手段が仮想オブジェクトに対して前記所定の処理を行った後、当該仮想オブジェクトの所定色を異なる色に変化させる色設定手段として、さらに機能させる、請求項1乃至3に記載の画像処理プログラム。
  14. 前記コンピュータを、前記色検出手段が前記所定色に相当する画素を検出した場合、当該所定色が設定されている仮想オブジェクトに対して行う前記所定の処理の内容を当該画素が有する色情報に基づいて変化させる処理設定手段として、さらに機能させる、請求項1乃至3に記載の画像処理プログラム。
  15. 表示装置に表示する画像を処理する画像処理装置であって、
    実カメラによって撮像された撮像画像を取得する撮像画像取得手段と、
    所定色が設定されている少なくとも1つの仮想オブジェクトを仮想世界に配置するオブジェクト配置手段と、
    前記撮像画像取得手段によって取得された撮像画像において、仮想世界に配置されている仮想オブジェクトに設定されている前記所定色に相当する少なくとも1つの画素が含まれているか否かを、前記撮像画像の画素が有するRGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報を用いて検出する色検出手段と、
    前記色検出手段が前記所定色に相当する画素を検出した場合、当該所定色が設定されている仮想オブジェクトに対して所定の処理を行うオブジェクト処理手段と、
    前記仮想オブジェクトが少なくとも配置された仮想世界の画像を前記表示装置に表示する画像表示制御手段とを備える、画像処理装置。
  16. 複数の装置が通信可能に構成され、表示装置に表示する画像を処理する画像処理システムであって、
    実カメラによって撮像された撮像画像を取得する撮像画像取得手段と、
    所定色が設定されている少なくとも1つの仮想オブジェクトを仮想世界に配置するオブジェクト配置手段と、
    前記撮像画像取得手段によって取得された撮像画像において、仮想世界に配置されている仮想オブジェクトに設定されている前記所定色に相当する少なくとも1つの画素が含まれているか否かを、前記撮像画像の画素が有するRGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報を用いて検出する色検出手段と、
    前記色検出手段が前記所定色に相当する画素を検出した場合、当該所定色が設定されている仮想オブジェクトに対して所定の処理を行うオブジェクト処理手段と、
    前記仮想オブジェクトが少なくとも配置された仮想世界の画像を前記表示装置に表示する画像表示制御手段とを備える、画像処理システム。
  17. 表示装置に表示する画像を処理する画像処理が可能な少なくとも1つの情報処理装置により構成される画像処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行される画像処理方法であって、
    実カメラによって撮像された撮像画像を取得する撮像画像取得ステップと、
    所定色が設定されている少なくとも1つの仮想オブジェクトを仮想世界に配置するオブジェクト配置ステップと、
    前記撮像画像取得ステップで取得された撮像画像において、仮想世界に配置されている仮想オブジェクトに設定されている前記所定色に相当する少なくとも1つの画素が含まれているか否かを、前記撮像画像の画素が有するRGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報を用いて検出する色検出ステップと、
    前記色検出ステップで前記所定色に相当する画素が検出された場合、当該所定色が設定されている仮想オブジェクトに対して所定の処理を行うオブジェクト処理ステップと、
    前記仮想オブジェクトが少なくとも配置された仮想世界の画像を前記表示装置に表示する画像表示制御ステップとを含む、画像処理方法。
JP2010266873A 2010-11-30 2010-11-30 画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法 Pending JP2012119867A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010266873A JP2012119867A (ja) 2010-11-30 2010-11-30 画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法
US13/197,231 US20120133676A1 (en) 2010-11-30 2011-08-03 Storage medium having stored thereon image processing program, image processing apparatus, image processing system, and image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010266873A JP2012119867A (ja) 2010-11-30 2010-11-30 画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法

Publications (1)

Publication Number Publication Date
JP2012119867A true JP2012119867A (ja) 2012-06-21

Family

ID=46126319

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010266873A Pending JP2012119867A (ja) 2010-11-30 2010-11-30 画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法

Country Status (2)

Country Link
US (1) US20120133676A1 (ja)
JP (1) JP2012119867A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9215368B2 (en) * 2012-12-02 2015-12-15 Bachir Babale Virtual decals for precision alignment and stabilization of motion graphics on mobile video
CN110542938B (zh) 2013-11-27 2023-04-18 奇跃公司 虚拟和增强现实***与方法
JP6723720B2 (ja) * 2015-10-20 2020-07-15 キヤノン株式会社 表示システム、情報処理方法及びプログラム
US10885676B2 (en) * 2016-12-27 2021-01-05 Samsung Electronics Co., Ltd. Method and apparatus for modifying display settings in virtual/augmented reality

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2998075B2 (ja) * 1996-06-20 2000-01-11 セイコーインスツルメンツ株式会社 反射型液晶表示装置
US20040104935A1 (en) * 2001-01-26 2004-06-03 Todd Williamson Virtual reality immersion system
KR100477656B1 (ko) * 2002-07-27 2005-03-22 삼성전자주식회사 디지털 화질 개선 방법 및 장치
JP5236372B2 (ja) * 2008-07-14 2013-07-17 株式会社ソニー・コンピュータエンタテインメント 画像投影装置、その制御方法、プログラム及び情報記憶媒体

Also Published As

Publication number Publication date
US20120133676A1 (en) 2012-05-31

Similar Documents

Publication Publication Date Title
JP5800484B2 (ja) 表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法
JP5602618B2 (ja) 画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法
JP5646263B2 (ja) 画像処理プログラム、画像処理装置、画像処理システム、および、画像処理方法
JP5525923B2 (ja) 画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法
JP5698529B2 (ja) 表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法
US8648871B2 (en) Storage medium having information processing program stored therein, information processing apparatus, information processing system, and information processing method
JP5947111B2 (ja) 立体ディスプレイにおける複数のオブジェクトを制御する装置および方法
JP5702653B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法
US9196078B2 (en) System and methods for displaying virtual space including a silhouette image
JP2012145981A (ja) 画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法
JP2012068977A (ja) ゲーム処理をするためのプログラム、装置、システムおよび方法
JP5514637B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、及び情報処理方法
EP2442280B1 (en) Blending a real world with a virtual world
JP5689637B2 (ja) 立体視表示制御プログラム、立体視表示制御システム、立体視表示制御装置、および、立体視表示制御方法
JP2012243147A (ja) 情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法
JP5725902B2 (ja) 画像処理プログラム、画像処理装置、画像処理方法および画像処理システム
JP2012123337A (ja) 表示制御プログラム、表示制御装置、表示制御方法および表示制御システム
JP5687881B2 (ja) 表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法
EP2469387B1 (en) Stereoscopic display of a preferential display object
JP2012119867A (ja) 画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法
US20120262447A1 (en) Storage medium, information processing apparatus, information processing method and information processing system
JP5777332B2 (ja) ゲーム装置、ゲームプログラム、ゲームシステム及びゲーム方法
JP5685079B2 (ja) 画像処理装置、画像処理プログラム、画像処理方法および画像処理システム
JP5816435B2 (ja) 表示制御プログラム、表示制御装置、表示制御システム、表示制御方法
JP2014135771A (ja) 立体視表示制御プログラム、立体視表示制御システム、立体視表示制御装置、および、立体視表示制御方法