JP2008186324A - プログラム、情報記憶媒体及びゲーム装置 - Google Patents

プログラム、情報記憶媒体及びゲーム装置 Download PDF

Info

Publication number
JP2008186324A
JP2008186324A JP2007020464A JP2007020464A JP2008186324A JP 2008186324 A JP2008186324 A JP 2008186324A JP 2007020464 A JP2007020464 A JP 2007020464A JP 2007020464 A JP2007020464 A JP 2007020464A JP 2008186324 A JP2008186324 A JP 2008186324A
Authority
JP
Japan
Prior art keywords
virtual camera
screen
sub
image
control means
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
JP2007020464A
Other languages
English (en)
Inventor
Keita Takahashi
慶太 高橋
Naoya Sasaki
直哉 佐々木
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.)
Bandai Namco Entertainment Inc
Original Assignee
Namco Bandai Games Inc
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 Namco Bandai Games Inc filed Critical Namco Bandai Games Inc
Priority to JP2007020464A priority Critical patent/JP2008186324A/ja
Publication of JP2008186324A publication Critical patent/JP2008186324A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)

Abstract

【課題】 伸縮自在なキャラクタを操作対象とする場合に、プレーヤにとって操作し易い適切な仮想カメラの制御を実現する。
【解決手段】プレーヤキャラクタCPは、ゲームコントローラからの2つの方向入力におうじて、プレーヤキャラクタCPの頭CPhと尾CPtをそれぞれの方向入力に基づいて移動制御することで移動制御される。プレーヤキャラクタCPの全体を撮影するようにメイン仮想カメラCM1を制御し、更に頭CPhを部分撮影するサブ仮想カメラCM2、尾CPtを部分撮影するサブ仮想カメラCM3を設定する。メイン仮想カメラCM1の撮影画像を主ゲーム画像W1に表示させ、サブ仮想カメラCM2,CM3の撮影画像をそれぞれサブ画面W2,W3で表示制御する。
【選択図】図7

Description

本発明は、コンピュータに、所与のオブジェクトが配置された3次元仮想空間を仮想カメラで撮影した画像を生成させるためのプログラム等に関する。
近年のビデオゲームでは、3次元仮想空間にゲーム空間を形成する種々のオブジェクトや、プレーヤが操作するプレーヤのオブジェクト等を配置し、それらのプレーヤによる操作入力や予め設定された動きでそれらを動作制御してゲームを実行するものが多く、そうしたタイプのゲームにおけるゲーム画面は、同じ3次元仮想空間に仮想カメラで撮影した画像を生成し、これにゲーム進行に必要な情報(例えば、マップであったり、ゲームの残り時間、得点、ヒットポイント、残弾数など)を合成して作られる。換言すると、仮想カメラの位置や視線方向、画角を含む撮影条件に設定によって、ゲーム画面としてプレーヤに提供する視覚情報が決まるとも言える。したがって、如何に適切な撮影条件を決定するかで、そのゲームが操作しやすいユーザフレンドリーなものになるか、操作しにくいゲームとなるかに大きく影響する。
そうした仮想カメラの制御に関する技術としては、例えば、プレーヤキャラクタと攻撃目標カーソルの両方が撮影範囲に収まるように制御するものが知られている。(例えば、特許文献1参照)。
特許第3197536号公報
ところで、ゲームに登場するキャラクタは、ゲームの内容に応じて千差万別であるのは良く知られるところである。例えば、弾性体や、レオロジー物体(フックの法則に従わない固体、ニュートンの粘性法則に従わない液体、弾性力学や流体力学における抗力が無い粘弾性や塑性を示す物体などの総称。)に類する特性をもつキャラクタを登場させようとした場合、そのキャラクタは自由に伸び縮みし体系も一定とは限らない。プレーヤにとってみれば、レオロジー物体に類するキャラクタ操作しようとすると、当然のことながら端部がどういった状態で、何所にあるのかを知れるか否か必要となる。そのため、従来技術のように、単にそのキャラクタのローカル原点等の代表点を基準に仮想カメラを制御する方法では、場合によってはキャラクタの伸びた端が見えない状況が起り、著しく操作し難くなる心配があった。
本発明は、こうした事情を鑑みてなされたものであり、その目的とするところは、弾性体やレオロジー物体に類する伸縮自在なキャラクタを操作対象とする場合に、プレーヤにとって操作し易い適切な仮想カメラの制御を実現することである。
上記の課題を解決する第1の発明は、コンピュータを、3次元仮想空間中を移動可能なオブジェクト(例えば、図3のプレーヤキャラクタCP)であって、方向操作入力に応じて移動する端部(例えば、図3の前端ノード2Fr、頭CPh、後端ノード2rr、尾CPt)を有し、当該端部の移動に引きつられて全身が移動するように制御される紐状体形状のオブジェクトの移動及び体形変化を、前記方向操作入力に基づいて制御するオブジェクト制御手段(例えば、図8の処理部200、ゲーム演算部210、キャラクタ制御部212、図14のステップS6〜S10)、前記オブジェクト制御手段による前記オブジェクトの制御に応じて、画角及び/又は位置の制御を行うことで前記オブジェクトの全体を撮影する全体用仮想カメラ(例えば、図7のメイン仮想カメラCM1)を制御する全体用仮想カメラ制御手段(例えば、図8の処理部200、ゲーム演算部210、キャラクタ制御部212、図14のステップS20)、前記オブジェクト制御手段による前記端部の移動制御に応じて、少なくとも位置を制御することで、1)当該端部を撮影範囲内に収めるように、又は、2)当該端部の後方或いは当該端部位置から当該端部の移動方向に沿った方向に視線方向を向けるように、端部用仮想カメラ(例えば、図7のサブ仮想カメラCM2、サブ仮想カメラCM3)を制御する端部用仮想カメラ制御手段(例えば、図8の処理部200、ゲーム演算部210、キャラクタ制御部212、図14のステップS22)、前記全体用仮想カメラ及び前記端部用仮想カメラそれぞれで撮影された画像を少なくとも含む画像群から何れか一つの画像を主ゲーム画面として表示制御し、残る画像を前記主ゲーム画面よりも画像表示サイズが小さいサブ画面として表示制御するゲーム画面表示制御手段(例えば、図8の処理部200、画像生成部260、サブ画像表示制御部262、図14のステップS24)、として前記コンピュータを機能させるためのプログラムである。
第14の発明は、3次元仮想空間中を移動可能なオブジェクトであって、方向操作入力に応じて移動する端部を有し、当該端部の移動に引きつられて全身が移動するように制御される紐状体形状のオブジェクトの移動及び体形変化を、前記方向操作入力に基づいて制御するオブジェクト制御手段と、前記オブジェクト制御手段による前記オブジェクトの制御に応じて、画角及び/又は位置の制御を行うことで前記オブジェクトの全体を撮影する全体用仮想カメラを制御する全体用仮想カメラ制御手段と、前記オブジェクト制御手段による前記端部の移動制御に応じて、少なくとも位置を制御することで、1)当該端部を撮影範囲内に収めるように、又は、2)当該端部の後方或いは当該端部位置から当該端部の移動方向に沿った方向に視線方向を向けるように、端部用仮想カメラを制御する端部用仮想カメラ制御手段と、前記全体用仮想カメラ及び前記端部用仮想カメラそれぞれで撮影された画像を少なくとも含む画像群から何れか一つの画像を主ゲーム画面として表示制御し、残る画像を前記主ゲーム画面よりも画像表示サイズが小さいサブ画面として表示制御するゲーム画面表示制御手段とを備えたゲーム装置である。
第1及び第14の発明によれば、紐状体形状のオブジェクトの端部を方向操作入力に応じて移動させるようにして該オブジェクトの移動及び体形変化を方向操作入力に基づいて制御することができる。したがって、弾性体やレオロジー物体に類して紐のようなキャラクタを、その端部を操作するようにして操作対象とすることができる。
そして、そのオブジェクトの全体を撮影する全体用仮想カメラとオブジェクトの端部を撮影する端部用仮想カメラとを設定・制御し、全体用仮想カメラ及び端部用仮想カメラそれぞれで撮影された画像を少なくとも含む画像群から何れか一つの画像を主ゲーム画面として表示制御し、残る画像を前記主ゲーム画面よりも画像表示サイズが小さいサブ画面として表示制御することができる。
つまり、ゲーム画面には常時、オブジェクトの全体が映されるとともにオブジェクトの移動制御に重要な端部の様子が映しだされることになる。プレーヤが、キャラクタの全体とキャラクタの移動及び体形変化をさせるために端部を移動操作すると良いか判断しやすくなる。
第2の発明は、第1の発明のプログラムであって、前記ゲーム画面表示制御手段が、所定の画面切換操作に応じて、前記主ゲーム画面及び前記サブ画面に表示制御する画像を交換する画面表示画像交換制御手段(例えば、図8の処理部200、画像生成部260、サブ画像表示制御部262、図14のステップS26)を有するように前記コンピュータを機能させるためのプログラムである。
第2の発明によれば、第1の発明と同様の効果を奏するとともに、所定の画面切換操作で、主ゲーム画面及びサブ画面に表示制御する画像を切り換えすることができる。したがって、サブ画面表示されている表示内容をより大きく見たいと思ったときに画面を切り換えれば、実質的に端部の様子を拡大表示することができるので、キャラクタの操作がより一層し易くなる。
第3の発明は、第1又は第2の発明のプログラムであって、前記ゲーム画面表示制御手段が、前記主ゲーム画面に表示制御される画像が前記全体用仮想カメラで撮影された画像から他の画像に切り換わって後、所定時間経過した時点で、前記主ゲーム画面に表示制御する画像を前記全体用仮想カメラで撮影された画像に切り換える主ゲーム画面自動復帰制御手段(例えば、図8の処理部200、画像生成部260、サブ画像表示制御部262、図21のステップS182〜S188)を有するように前記コンピュータを機能させるためのプログラムである。
第3の発明によれば、第1又は第2の発明と同様の効果を奏するとともに、主ゲーム画面に表示制御される画像が、全体用仮想カメラで撮影された画像から他の画像に切り換えされたとしても、所定時間経過した時点で元の状態に自動復帰さえることができる。
弾性体やレオロジー物体に類する特性を有する紐状体形状のキャラクタを操作対象とする場合に、キャラクタの全体を見て操作するのが適当であるから、一時的に主ゲーム画面とサブ画面とで表示する画像を交換しても、いずれはキャラクタの全体の様子を主ゲーム画面に戻すほうが都合は良い。したがって、画像の切換が元の状態に自動的に復帰することで、プレーヤがより操作し易い環境を実現できる。
第4の発明は、第1〜第3の何れか一つの発明のプログラムであって、前記ゲーム画面表示制御手段が、前記サブ画面の表示/非表示を制御するサブ画面表示/非表示制御手段(例えば、図8の処理部200、画像生成部260、サブ画像表示制御部262、図20のステップS202〜S204)を有するように前記コンピュータを機能させるためのプログラムである。
第4の発明によれば、サブ画面を表示としたり非表示とすることができる。例えば、主ゲーム画面とサブ画面を並列配置する場合には主ゲーム画面をより広く表示させたり、主ゲーム画面とサブ画面を重ね配置する場合には主ゲーム画面の画像がサブ画面で隠れてしまう状態をできるだけ少なくできる。したがって、常時サブ画面が表示されている形態に比べると、プレーヤはより操作し易くなる。
第5の発明は、第4の発明のプログラムであって、前記オブジェクト制御手段により制御されている前記オブジェクトの移動及び/又は体形変化の現況が、前記サブ画面を表示制御することとする所定のサブ画面表示状況条件を満たしたことを検出する状況条件合致検出手段(例えば、図8の処理部200、画像生成部260、サブ画像表示制御部262、図20のステップS202〜S204)として前記コンピュータを機能させ、前記サブ画面表示/非表示制御手段が、前記検出に応じて前記サブ画面を表示させるように前記コンピュータを機能させるためのプログラムである。
第5の発明によれば、第4の発明と同様の効果を奏するとともに、オブジェクトの移動及び/又は体形変化の現況に応じてサブ画面を表示/非表示制御することができる。例えば、サブ画面表示状況条件を、他のオブジェクトによってキャラクタの端部が隠れて見えなくなっていることを条件とするならば、主ゲーム画面上で端部が見えない状態になるとサブ画面を表示させ、再び見えるようになるとサブ画面を非表示とするように自動制御することができるようになり、プレーヤがより一層、プレーヤはより操作し易くなる。
第6の発明は、第5の発明のプログラムであって、前記状況条件合致検出手段が、前記オブジェクトが静止している状況を前記サブ画面表示状況条件を満たす状況として前記検出を行うように前記コンピュータを機能させるためのプログラムである。
第6の発明によれば、第5の発明と同様の効果を奏するとともに、キャラクタの移動中はサブ画面を表示しないようにして、移動中の状況を見易くする一方で一旦立ち止まることで、周囲の状況を詳しく観察できるようになるので、より一層プレーヤキャラクタCPを操作し易くなる。
第7の発明は、第4〜第6の何れか一つの発明のプログラムであって、前記全体用仮想カメラ制御手段により制御されている前記全体用仮想カメラの撮影条件が、前記サブ画面を表示制御することとする所定のサブ画面表示撮影条件を満たしたことを検出する撮影条件合致検出手段(例えば、図8の処理部200、画像生成部260、サブ画像表示制御部262、図20のステップS202〜S204)として前記コンピュータを機能させ、前記サブ画面表示/非表示制御手段が、前記撮影条件合致検出手段の検出に応じて前記サブ画面を表示させるように前記コンピュータを機能させるためのプログラムである。
第7の発明によれば、第1〜第6の何れか一つの発明と同様の効果を奏するとともに、全体酔う仮想カメラの撮影条件をサブ画面の表示制御のための条件とすることができる。したがって、主ゲーム画像で表示される画像が一時的に操作しにくい状況になってもこれを自動的にリカバーしプレーヤがプレーヤはより操作環境を維持することができる。
第8の発明は、第7の発明のプログラムであって、前記撮影条件合致検出手段が、前記全体用仮想カメラから見て前記オブジェクト以外の他のオブジェクトによって前記端部が隠されている場合に前記サブ画面表示撮影条件を満たすとして前記検出を行うように前記コンピュータを機能させるためのプログラムである。
第8の発明によれば、第7の発明と同様の効果を奏するとともに、例えば、全体用仮想カメラの撮影条件を適切に設定しても、ゲーム進行状況によっては、他のオブジェクトが全体用仮想カメラの視界に入り、一時的にキャラクタの端部が隠れて見えなくなっている状況において、主ゲーム画面上にサブ画面を表示させ、再び見えるようになるとサブ画面を非表示とするように自動制御することができるようになる。したがって、より一層プレーヤキャラクタCPを操作し易くなる。
第9の発明は、第1〜第8の何れか一つの発明のプログラムであって、前記コンピュータを更に、所与のゲームイベントとして他オブジェクトを自動制御するイベントを実行させるイベント制御手段(例えば、図8の処理部200、ゲーム演算部210、図14のステップS12)、前記イベント制御手段によるイベントの実行が開始された場合に、前記他オブジェクトを撮影するイベント仮想カメラを設定するイベント仮想カメラ設定手段(例えば、図8の処理部200、ゲーム演算部210、仮想カメラ制御部214、図14のステップS18)として機能させ、前記ゲーム画面表示制御手段が、前記画像群に前記イベント仮想カメラによって撮影された画像を含めて前記表示制御を行うように機能させるためのプログラムである。
第9の発明によれば、第1〜第8の何れかの発明と同様の効果を奏するとともに、イベントの実行にともなってイベントで自動制御される他オブジェクトを撮影するイベント仮想カメラを設定し、サブ画面表示することができる。したがって、全体用仮想カメラの撮影範囲外で発生したイベントであっても、何が起きているかもれなくプレーヤに知らせることが可能になる。
第10の発明は、第9の発明のプログラムであって、前記イベント仮想カメラ設定手段が、前記オブジェクトと前記他オブジェクトとの両方が撮影範囲内に収まるように前記イベント仮想カメラの画角及び/又は位置を設定するように前記コンピュータを機能させるためのプログラムである。
第10の発明によれば、第9の発明と同様の効果を奏するとともに、イベント仮想カメラの撮影範囲内にオブジェクトと他オブジェクトとの両方が収まるように制御できる。したがって、イベント仮想カメラで撮影した画像をサブ画面表示すれば、プレーヤにそのイベントがキャラクタに対してどのあたりで起きているかを知らせることができる。よって、より一層、プレーヤはキャラクタの操作がし易くなる。
第11の発明は、第1〜第10の何れか一つの発明のプログラムであって、前記オブジェクトを包含する包含領域を前記オブジェクト制御手段の制御に応じて可変して設定する包含領域設定手段(例えば、図8の処理部200、ゲーム演算部210、仮想カメラ制御部214、図18のステップS112)として前記コンピュータを機能させ、前記全体用仮想カメラ制御手段が、前記設定された包含領域全体が撮影画像に収まるように前記全体用仮想カメラの画角及び/又は位置を制御するように前記コンピュータを機能させるためのプログラムである。
第11の発明によれば、第1〜第10の発明の何れかと同様の効果を奏するとともに、キャラクタの代表寸法を体勢や体形によらずに速やかに求め、全体用仮想カメラの撮影範囲内にキャラクタが収まるように全体用仮想カメラの画角及び/又は位置を制御することができる。したがって、処理負荷を軽減することができる。
第12の発明は、第1〜第11の何れか一つの発明のプログラムであって、前記オブジェクトは伸縮自在な紐状体形状を有し、前記オブジェクト制御手段が、前記オブジェクトを伸縮させる制御を行うオブジェクト伸縮制御手段(例えば、図8の処理部200、ゲーム演算部210、キャラクタ制御部212、図14のステップS6)を有するように前記コンピュータを機能させるためのプログラムである。
第12の発明によれば、第1〜第11の何れかの発明と同様の効果を奏するとともに、キャラクタを伸縮自在に制御することができる。
第13の発明は、コンピュータを、3次元仮想空間中を移動可能なオブジェクト(例えば、図7のプレーヤキャラクタCP)を、方向操作入力に応じて移動制御するオブジェクト制御手段(例えば、図8の処理部200、ゲーム演算部210、キャラクタ制御部212、図14のステップS6〜S10)、前記オブジェクトを撮影範囲内に含めるように第1仮想カメラ(例えば、図7のメイン仮想カメラCM1)の位置及び/又は視線方向を制御する第1仮想カメラ制御手段(例えば、図8の処理部200、ゲーム演算部210、キャラクタ制御部212、図14のステップS20)、前記オブジェクトを撮影範囲内に含めるように、前記第1仮想カメラとは異なる第2仮想カメラ(例えば、図7のサブ仮想カメラCM2、CM3)の位置及び/又は視線方向を制御する第2仮想カメラ制御手段(例えば、図8の処理部200、ゲーム演算部210、キャラクタ制御部212、図14のステップS22)、前記第1仮想カメラから見て前記オブジェクトが他のオブジェクトに隠れたことを検出する隠蔽検出手段(例えば、図8の処理部200、ゲーム演算部210、キャラクタ制御部212、図14のステップS21)、前記第1仮想カメラによる撮影画像を主ゲーム画面として表示制御するとともに、前記隠蔽検出手段の検出に応じて、前記第2仮想カメラによる撮影画像を前記主ゲーム画面よりも画像表示サイズが小さいサブ画面として表示制御するゲーム画面表示制御手段(例えば、図8の処理部200、画像生成部260、サブ画像表示制御部262、図14のステップS24)として前記コンピュータを機能させるためのプログラムである。
また、第16の発明は、3次元仮想空間中を移動可能なオブジェクトを、方向操作入力に応じて移動制御するオブジェクト制御手段と、前記オブジェクトを撮影範囲内に含めるように第1仮想カメラの位置及び/又は視線方向を制御する第1仮想カメラ制御手段と、前記オブジェクトを撮影範囲内に含めるように、前記第1仮想カメラとは異なる第2仮想カメラの位置及び/又は視線方向を制御する第2仮想カメラ制御手段と、前記第1仮想カメラから見て前記オブジェクトが他のオブジェクトに隠れたことを検出する隠蔽検出手段と、前記第1仮想カメラによる撮影画像を主ゲーム画面として表示制御するとともに、前記隠蔽検出手段の検出に応じて、前記第2仮想カメラによる撮影画像を前記主ゲーム画面よりも画像表示サイズが小さいサブ画面として表示制御するゲーム画面表示制御手段と、を備えたゲーム装置である。
第13及び第16の発明によれば、方向操作入力に応じて3次元仮想空間内におけるオブジェクトの移動を制御することができるとともに、そのオブジェクトを撮影する第1仮想カメラを設定・制御し、第1仮想カメラで撮影した画像を主ゲーム画面として表示制御できる。しかし、第1仮想カメラから見てオブジェクトが他のオブジェクトに隠れてしまっている場合には、第1仮想カメラとは異なる第2仮想カメラにより撮影された画像を主ゲーム画面よりも画像表示サイズが小さいサブ画面として表示制御することができる。つまり、ゲーム画面には常時、オブジェクトが映し出されることになり、プレーヤの移動操作が容易になる。
第14の発明は、第1〜第13の何れか一つのプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。ここで言う「情報記憶媒体」とは、例えば磁気ディスクや光学ディスク、ICメモリなどを含む。第14の発明によれば、第1〜第13の何れか一つの発明のプログラムをコンピュータに読み取らせて実行させることによって、コンピュータに第1〜13の何れか一つの発明と同様の効果を発揮させることができる。
本発明によれば、紐状体形状のオブジェクトの端部を方向操作入力に応じて移動させるようにして該オブジェクトの移動及び体形変化を方向操作入力に基づいて制御することができる。したがって、弾性体やレオロジー物体に類して紐状体形状のキャラクタを、その端部を操作するようにして操作対象とすることができる。
そして、そのオブジェクトの全体を撮影する全体用仮想カメラとオブジェクトの端部を撮影する端部用仮想カメラとを設定・制御し、全体用仮想カメラ及び端部用仮想カメラそれぞれで撮影された画像を少なくとも含む画像群から何れか一つの画像を主ゲーム画面として表示制御し、残る画像を前記主ゲーム画面よりも画像表示サイズが小さいサブ画面として表示制御することができる。
したがって、ゲーム画面には常時、オブジェクトの全体が映されるとともにオブジェクトの移動制御に重要な端部の様子が映しだされることとなり、プレーヤが弾性体やレオロジー物体に類して紐状体形状のキャラクタを操作するのに適切な画像表示を実現することができる。
〔第1実施形態〕
以下、本発明を適用した第1実施形態として、伸縮自在なキャラクタが登場するビデオゲームを例に挙げて説明する。
[ゲーム装置の構成]
図1は、本実施形態における家庭用ゲーム装置の構成例を説明するシステム構成図である。家庭用ゲーム装置1200のゲーム装置本体1201は、例えばCPUや画像処理用LSI、ICメモリ等が実装された制御ユニット1210と、光学ディスク1202やメモリカード1204といった情報記憶媒体の読み取り装置1206,1208を備える。そして、家庭用ゲーム装置1200は、光学ディスク1202やメモリカード1204からゲームプログラム及び各種設定データを読み出し、ゲームコントローラに為される操作入力に基づいて各種のゲーム演算を実行し、所与のビデオゲームを実行する。
家庭用ゲーム装置1200の制御ユニット1210で生成されたゲーム画像やゲーム音は、信号ケーブル1209で接続されたビデオモニタ1220に出力される。プレーヤは、ビデオモニタ1220のディスプレイ1222に表示されるゲーム画像を見つつ、スピーカ1224から出力されるBGMや効果音といったゲーム音を聞きながら、ゲームコントローラ1230から各種操作を入力してゲームを楽しむ。
ゲームコントローラ1230は、選択の決定やキャンセル、タイミングの入力などに用いられるコントローラ上面に設けられたプッシュボタン1232と、側面に設けられたプッシュボタン1233と、図で言うところの上下左右の各方向を単独入力するための方向入力キー1234と、右アナログレバー1236と、左アナログレバー1238とを備える。
右アナログレバー1236及び左アナログレバー1238は、図で言うところの上下方向と左右方向の2軸方向を同時入力可能な方向入力デバイスである。通常はゲームコントローラ1230を左右の手で把持し、レバー1236a,1238aにそれぞれ親指を添えて操作する。レバー1236a,1238aを倒すことによって2軸成分を含む任意の方向入力と、レバーの傾倒量に応じた任意操作量を入力することができる。また、何れのアナログレバーも、操作入力していない中立状態からレバーの軸方向に押し込むことでプッシュスイッチとしても使用することもできる。そして、本実施形態では、右アナログレバー1236及び左アナログレバー1238からの操作入力によって、プレーヤキャラクタの移動並びに伸縮の操作を入力する。
尚、ゲーム実行に必要なゲームプログラム及び各種設定データは、通信装置1212を介して通信回線1に接続し、外部装置からダウンロードして取得する構成であっても良い。ここで言う、通信回線とは、データ授受が可能な通信路を意味する。すなわち、通信回線とは、直接接続のための専用線(専用ケーブル)やイーサネット(登録商標)等によるLAN(Local Area Network)の他、電話通信網やケーブル網、インターネット等の通信網を含む意味であり、また、通信方法については有線/無線を問わない。
[プレーヤキャラクタの説明]
本実施形態におけるビデオゲームは、伸縮自在な紐状のキャラクタをプレーヤキャラクタとして操り、スタート地点から所定のゴール地点に移動することを目的とするゲームである。ゲーム空間には行く手を阻む地形的な障害や、プレーヤキャラクタの体力をそぎ落とそうとする他のキャラクタが設定されており、体力が「0」にならない内に無事ゴールに辿り着くことができればハッピーエンドでゲームクリアし、途中で体力が「0」になればバッドエンドでゲームオーバとなる。
図2は、本実施形態におけるプレーヤキャラクタのモデル構成を説明するための図である。同図に示すように、本実施形態におけるビデオゲームでプレーヤがゲームの主人公として操作するプレーヤキャラクタCPは、一頭一尾の想像上の紐状体形状を成すワーム(worm:細長く足のない動物。)としてデザインされており、紐のように柔軟であるとともにレオロジー物体のような伸縮自在な胴CPbを有する。つまり、プレーヤキャラクタCPは、頭CPh及び尾CPt方向を伸身前後方向として胴CPbの太さをそのままに伸縮自在なキャラクタとして設定されている。尚、本実施形態では胴CPbが伸び縮みする形態として説明するが、キャラクタのデザインによっては、頭CPhや尾CPtも自在に伸び縮みする設定として、全身どこでも伸び縮みする設定としても良いのは勿論である。
プレーヤキャラクタCPは、図2(a)に示すように、複数のノード2が、互いに前後の距離Lを一定にして配列され骨格モデルBMを有する。別の言い方をするならば、ノード2(=制御点)が連結子4によって一列の関節構造として連結されており、連結子4は全て同じ固定長Lを有している。また、ノード2と連結子4との結合角度は、全て所定角度範囲θ内となるように限定されている。したがって、ノード2を関節と見なすと、骨格モデルBMは、複数の関節が一本の直列状に連結されており、しかも各関節では一定角度以上曲がらないことになる。
図2(b)に示すように、プレーヤキャラクタCPにはヒット判定モデルHMが設定されている。本実施形態におけるヒット判定モデルHMでは、各ノードにヒット判定領域6が設定されている。本実施形態におけるヒット判定領域6は、対応するノード2の位置座標を中心にして、半径R(=連結子4の長さL)の球状領域として設定されている。
そして図2(c)に示すように、プレーヤキャラクタCPの表示モデルはポリゴンによって形成される。具体的には、各ノード2には、隣接するノードに向かうそれぞれのベクトルの和のベクトルを面に含む表示基準円10が設定されている。そして、頭CPh及び尾CPtは、骨格モデルBMの先頭及び末尾のノードを基準点として予め設定された頭部或いは尾部のモデルを配置する。そして、胴CPbについては、各ノードに設定されている表示基準円10で定義される円周の外縁を滑らかに結ぶように複数のポリゴンを生成・変形・再配置する。胴部CPbにおけるポリゴンモデルの形成は、例えばスケルトンモデルへの外皮形成処理などの公知のモデリング技術を適宜用いることによって実現できる。
尚、本実施形態では、表示基準円10の半径はヒット判定領域6の半径Rと同じに設定されているので、プレーヤキャラクタCPの外皮に何らかのオブジェクトが接触すると、ヒット判定される様に設定されているが、これに限るものではなくヒット判定領域6の半径Rよりやや大きく設定することによって、ヒットしたオブジェクトがプレーヤキャラクタCPに刺さって見えないように整合を図ったりしても良い。また、以下の説明では複数あるノード2のうち、キャラクタの前方側端のノードを「前端ノード2fr」、後方側端のノードを「後端ノード2rr」と呼称することがある。
[プレーヤキャラクタの操作方法の説明]
図3は、本実施形態におけるプレーヤキャラクタCPの移動操作と制御の関係を示す概念図である。同図に示すように、ゲームコントローラ1230の左アナログレバー1238に為された操作入力に応じて、骨格モデルBMの前端のノード2frに第1の操作力F1が設定される。また、右アナログレバー1236に為された操作入力に応じて後端のノード2rrに第2の操作力F2が設定される。尚、操作力以外に、重力や風に押される力などのゲーム空間に設定された様々な力や、他のキャラクタとの衝突によって受ける力が適宜設定され得るがここでは説明を省略する。
さて、第1の操作力F1ならびに第2の操作力F2が設定されると、両操作力によって骨格モデルBMは前端及び後端がそれぞれ引っ張られる格好となり、先に説明した骨格モデルBMの拘束条件を考慮して所定の運動方程式に従って各ノードの位置が更新される。そして、各ノードの位置が更新された骨格モデルBMをベースに外皮を形成処理することによって、プレーヤキャラクタCPの表示モデルの位置が更新される。この様子を仮想カメラCMで撮影し、撮影した画像を生成してゲーム画面とすることで、プレーヤキャラクタCPがゲーム空間内を移動するように表現される。
また、本実施形態では、第1の操作力F1ならびに第2の操作力F2に基づいて、プレーヤがプレーヤキャラクタCPを任意に伸ばしたり縮めたりすることができる。
図4は、本実施形態におけるプレーヤキャラクタCPの任意伸長操作と制御の関係を示す概念図である。同図(a)に示すように、プレーヤがゲームコンロローラ1230の右アナログレバー1236から右方向入力、左アナログレバー1238から左方向入力を同時入力すると任意伸長操作の入力となる。すると、同図(b)の俯瞰図に示すように、プレーヤキャラクタCPの骨格モデルBMは、左側の状態から右側の状態に変更される。すなわち、前端ノード2frと該前端ノードの次連結ノード2bとの間に新たなノード2aが追加され、更に後端ノード2rrと該後端ノードの次連結ノード2cとの間にも新たなノード2dが追加される。そして、同図(c)の俯瞰図に示す様に、プレーヤキャラクタCPの表示モデルは変更された骨格モデルBMに基づいて外皮が形成されることによって、左側の全長が短い状態から右側の全長が伸びた状態に変化する。
一方、右アナログレバー1236から右方向入力され、左アナログレバー1238から左方向入力がされているが、同時入力とは見なされない場合には、同図(d)の左側の状態のように、単に左アナログレバー1238への入力に応じた第1の操作力F1が、前端ノード2frに作用し、右アナログレバー1236への入力に応じた第2の操作力F2が、後端ノード2rrに作用していると見なされる。したがって、同図(d)の場合、第1の操作力F1及び第2の操作力F2が、プレーヤキャラクタCPの頭CPh、尾CPtをそれぞれ引っ張る様に作用し、新たなノードの追加は行われずに前端ノード2frと後端ノード2rrが反対方向に引っ張られる格好となる。この結果、例えば骨格モデルBMが湾曲状態であれば、同図(d)右側の状態のように直線状態に近づくことになる。
また図5は、本実施形態におけるプレーヤキャラクタCPの任意短縮操作と制御の関係を示す概念図である。同図(a)に示すように、プレーヤがゲームコンロローラ1230の右アナログレバー1236から左方向入力、左アナログレバー1238から右方向入力を同時入力すると任意短縮操作の入力となる。任意短縮操作が入力されると、プレーヤキャラクタCPの骨格モデルBMは、同図(b)の俯瞰図に示すように、左側の状態から右側の状態に変更される。すなわち、前端ノード2frの次連結ノード2aが削除され、更に後端ノード2rrの次連結ノード2dが削除される。そして、同図(c)の俯瞰図に示す様に、プレーヤキャラクタCPの表示モデルは、変更された骨格モデルBMに基づいて外皮が形成されることによって、左側の状態から全長が縮んだ右側の状態に変化する。
一方、右アナログレバー1236から左方向入力されるとともに左アナログレバー1238から右方向入力がされているが同時入力とは見なされない場合には、単に左アナログレバー1238への入力に応じた第1の操作力F1が前端ノード2frに作用し、右アナログレバー1236への入力に応じた第2の操作力F2が後端ノード2rrに作用するように制御される。したがって、同図(d)の場合、第1の操作力F1及び第2の操作力F2はプレーヤキャラクタCPの頭CPhと尾CPtを近づける様に作用する。結果、骨格モデルBMが当初湾曲した状態であれば、同図(d)左側の状態のようにノードの削除は行われずに前端ノード2frと後端ノード2rrが近づく格好となるので、同図(d)右側の状態のように湾曲がより強い状態になる。
本実施形態では、このようにプレーヤキャラクタCPを操作する。したがって、プレーヤの立場からすると、できるだけプレーヤキャラクタCPの頭CPhと尾CPtがゲーム画面内に移され、且つ有る程度その周囲の状況が見えるように仮想カメラCMの撮影条件が制御されるのが望ましいことになる。尚、ここで言う「撮影条件」とは、仮想カメラCMのワールド座標系の位置(より詳しくは主たる撮影対象であるプレーヤキャラクタCPに対する相対位置)、視点方向、レンズの焦点距離の設定(或いは画角設定)を含む意味である。
[仮想カメラの撮影条件設定の原理]
図6は、本実施形態における仮想カメラの撮影条件の設定方法を説明するための概念図である。本実施形態ではプレーヤキャラクタCPを主たる撮影対象とするメイン仮想カメラCM1は、基本的にプレーヤキャラクタCPを包含する包含領域の全体が仮想カメラの撮影画像に収まるように撮影条件が設定される。
具体的には、先ず同図(a)に示すように、現時点におけるプレーヤキャラクタCPを包含する包含領域10を設定する。包含領域10は、バウンダリボックスと同義であり、ワールド座標系のXw軸・Yw軸・Zw軸の各軸に沿った平面で形成された直方体である。
包含領域10が設定されたならば、ゲーム画面の縦幅・横幅と比較するためのプレーヤキャラクタCPの代表寸法を求める。
本実施形態では、最長の対角線12を求める。対角線12は、例えば包含領域10の中心11を挟んで対称位置関係にあるXwZw平面に平行な腹側平面14の頂点と、背側平面18の頂点を結ぶ4つの線分となる。尚、同図では、対角線12として腹側平面14における頭部に近傍する頂点16から、背側平面18における尾部に近傍する頂点20を結ぶ線分を示している。
求められた4つの対角線を代表寸法算出のための基礎寸法の候補とし、それぞれメイン仮想カメラCM1の撮影画像の画像座標系に投影して、投影線分21の画像座標系のXc軸成分投影寸法Lx及びYc軸成分投影寸法Lyを求める。そして、求められたXc軸成分投影寸法Lxの最大値、Yc軸成分投影寸法Lyの最大値をそれぞれ求める。これらがゲーム画面の縦幅・横幅と比較するためのプレーヤキャラクタCPの各軸方向の代表寸法となる。
代表寸法を求めたならば、更に両者を比較して何れか大きい方の投影寸法Lm(同図の場合Xc軸成分投影寸法Lx。)を選択し、選択された投影寸法Lmが対応する画像座標軸方向の画面幅Wx(=メイン仮想カメラCM1の撮影画像の縦寸法)または画面幅Wy(=メイン仮想カメラCM1の撮影画像の横寸法)に対して所定比率(80%)を成すように、メイン仮想カメラCM1の撮影条件を決定する。
例えば、画角θcを固定とするならば、仮想カメラCMの視線方向26を包含領域10の中心11に向け、次式(1)で中心11から仮想カメラCMの適正撮影距離Lcを幾何的に求める。
適正撮影距離Lc=(100/80×Lm)/2×tan(θc/2) ………(1)
勿論、適正撮影距離Lcを一定にして画角θcを求める構成としても良く、その場合も幾何的に画角θcを求めることができる。また、適正撮影距離Lcと画角θcの両方を求めるとしても良い。例えば、ゲームの演出上の観点からメイン仮想カメラCM1にプレーヤキャラクタCPを回り込むといったカメラワークさせたい場合には、あらかじめカメラワークを定義するデータを定義し、このデータにしたがって配置位置を決定してから画角θcを求める。つまり、先に適正撮影距離Lcを決定し、決定した適性撮影距離Lc基づいて画角θcを求めるとしても良い。
また、基礎寸法として複数の対角線を用いたが、予め所定の対角線を用いる構成としても良い。例えば、同図示すように、腹側平面14の頂点16から背側平面18の頂点20を結ぶ対角線12を所定の対角線としても、本実施形態のように紐状のワーム型キャラクタの場合、いずれの対角線を選択してもそう大きな差がうまれないので、演算負荷を低減することができる。
メイン仮想カメラCM1を、プレーヤキャラクタCPに対して左右どちらの方向に配置するかは適宜設定することができる。例えば、本実施形態では左アナログレバー1238からの操作入力に応じて頭CPhの移動が制御され、右アナログレバー1236からの操作入力に応じて尾CPtの移動が制御されるので、仮想カメラCMをプレーヤキャラクタCPの左側に配置すると望ましい。なぜならば、ゲーム画面の左にプレーヤキャラクタCPの頭CPb、画面右側に尾CPtが映されることになるのでゲームコントローラ1230における入力手段の配置関係と左右の位置関係が合致し自然な操作感が得られるからである。
この結果、プレーヤがプレーヤキャラクタCPを操作する上で基点となるプレーヤキャラクタCPの頭CPhと尾CPtが常にメイン仮想カメラCM1によって写されるとともに、ある程度その周囲が写されるように制御される。また、代表寸法を算出する処理が極めて簡単であるので処理負荷の低減することができる。
[サブ画面表示の説明]
さて、本実施形態は上記の如くメイン仮想カメラCM1の撮影条件を適当に設定した場合であっても、例えばビルの陰になって見えなくなるといった具合に、プレーヤキャラクタCP(被写体)とメイン仮想カメラCM1との間に障害物が存在し、必ずしもプレーヤキャラクタCPの全身が撮影されるとは限らない。そこで、プレーヤキャラクタCPを撮影するサブ仮想カメラを別途設定し、サブ仮想カメラで撮影した画像を別途、サブ画面で表示するように制御する。
図7は、本実施形態におけるサブ仮想カメラの設定と、サブ画面表示の概念を説明するための概念図である。同図(a)に示すように、本実施形態ではプレーヤキャラクタCPの全身を撮影するメイン仮想カメラCM1に加えて、頭CPhを部分撮影する第1のサブ仮想カメラCM2と、尾CPbを部分撮影する第2のサブ仮想カメラCM3とが設定される。そして、同図(b)に示すように、第1のサブ仮想カメラCM2及び第2のサブ仮想カメラCM3で撮影されたそれぞれの画像は、メイン仮想カメラCM1で撮影された画像をベースとした主ゲーム画面W1上に、それよりも画像サイズが小さいサブ画面W2,W3として重ね表示される。
この結果、仮にメイン仮想カメラCM1とプレーヤキャラクタCPとの間に他のオブジェクトが障害物として存在し、一時的に頭CPhや尾CPtが見えない状態であっても、サブ画面W2,W3でそれら各部の状態を見ることができるようになるので、プレーヤはプレーヤキャラクタCPの状態をもれなく認識可能となる。よって、操作性が向上し、例えば頭CPhを動かしたいのにゲーム画面に映っていないといった事態が起ってゲーム操作に支障が出るのを防ぐことができる。
また、本実施形態ではサブ仮想カメラはイベントの発生に伴っても設定される。ここで言う「イベント」とは、ゲームの進行に応じて特別に他のオブジェクトが登場したり、すでにゲーム空間に配置されているオブジェクトが所定のタイミングで何らかの動作を開始するといった一連の制御を言う。例えば、プレーヤキャラクタCPの敵キャラクタの登場や、渡れなかった川に倒木が倒れて橋が架かるといった内容が考えられる。そして、イベントが発生した場合、イベントに伴って登場したキャラクタや自動制御されたキャラクタを被写体とするサブ仮想カメラの一種としてイベント仮想カメラCM4が設定され、撮影された画像は同様にサブ画面W4がポップアップ表示される。
本実施形態では、イベント仮想カメラCM4の撮影条件は、被写体となるキャラクタを映すように設定されるとともに、画角内にプレーヤキャラクタCPの一部が写るように設定される場合を含む。したがって、イベントが発生するとサブ画面W4が新たに表示され、これを見ることでプレーヤは、ゲーム空間内でどのような事態が起きたのか、そしてそれはプレーヤキャラクタCPに対して何所で起きているかを即座に知ることが可能になる。
本実施形態のように紐状体のキャラクタの両端を移動させるようにして操作するゲームでは、操作感と操作性を維持するためには、先に述べたようにゲーム画面内にプレーヤキャラクタCPを有る程度大きく表示しなければならなくなる。このことは逆に周囲の状況が写る範囲を小さくすることにもなるので、周囲の状況が認識しにくく操作性を低下させる原因ともなりえる。しかし、本実施形態のようにイベント仮想カメラCM4を設定し、その撮影画像をサブ画面表示することよって、そうした不利な要因を取り除くことも可能になる。
[機能ブロックの説明]
次に、上述のような特徴を実現するための機能構成について説明する。
図8は、本実施形態における機能構成の一例を示す機能ブロック図である。同図に示すように本実施形態では、操作入力部100と、処理部200と、音出力部350と、画像表示部360と、通信部370と、記憶部500とを備える。
操作入力部100は、プレーヤによって為された各種の操作入力に応じて操作入力信号を処理部200に出力する。図1では、ゲームコントローラ1230が操作入力部100に該当する。そして、本実施形態における操作入力部100は、一つの入力操作で少なくとも2軸の方向入力を可能にする第1方向入力部102及び第2方向入力部104を備える。
第1方向入力部102及び第2方向入力部104は、例えばアナログレバーやトラックパッド、マウス、トラックボール、タッチパネルによって実現される。また、少なくとも2軸以上の検出軸を有する多軸検出型加速度センサまたは検出軸方向を違えて組み合わされた単軸検出型加速度センサの集合、少なくとも2方向以上の検出方向を可能にする多方向検出型傾斜センサまたは検出方向を違えて組み合わされた単方向検出型傾斜センサの集合などによっても実現できる。本実施形態の第1方向入力部102及び第2方向入力部104は、図1の右アナログレバー1236ならびに左アナログレバー1238が該当し、プレーヤキャラクタCPの頭CPh及び尾CPtそれぞれの移動方向と移動量の入力に用いられる。
処理部200は、例えばマイクロプロセッサやASIC(特定用途向け集積回路)、ICメモリなどの電子部品によって実現され、操作入力部100や記憶部500を含むゲーム装置1200の各機能部との間でデータの入出力を行うとともに、所定のプログラムやデータ、操作入力部100からの操作入力信号に基づいて各種の演算処理を実行して、ゲーム装置1200の動作を制御する。図1では、ゲーム装置本体1201に内蔵された制御ユニット1210が処理部200に該当する。
そして本実施形態における処理部200は、ゲーム演算部210と、音生成部250と、画像生成部260と、通信制御部270とを備える。
ゲーム演算部210は、ゲームの進行に係る処理を実行する。例えば、ゲーム空間を仮想空間中に形成する処理や、仮想空間中に配置されたプレーヤキャラクタPC以外のキャラクタの動作制御処理、ヒット判定処理、物理演算処理、ゲーム結果の算出処理、外皮の形成処理が実行対象に含まれる。そして本実施形態のゲーム演算部210は、キャラクタ制御部212と、仮想カメラ制御部214とを含んでいる。
キャラクタ制御部212は、プレーヤキャラクタCPのオブジェクトの大きさ及び/又は形状を変化させて動作制御を実行する。例えばプレーヤキャラクタCPの伸縮処理並びに移動処理、プレーヤキャラクタ以外のノンプレーヤキャラクタ(NPC)の動作制御が該当する。
仮想カメラ制御部214は、仮想カメラの制御に係る処理を実行する。本実施形態ではメイン仮想カメラCM1、サブ仮想カメラCM2及びCM3、イベント仮想カメラCM4の撮影条件を設定する処理や、仮想カメラの配置や削除の処理、仮想カメラの移動制御処理が実行対象に含まれる。
音生成部250は、例えばデジタルシグナルプロセッサ(DSP)などのプロセッサやその制御プログラムによって実現され、ゲーム演算部210による処理結果に基づいてゲームに係る効果音やBGM、各種操作音の音信号を生成し、音出力部350に出力する。
音出力部350は、音生成部250から入力される音信号に基づいて効果音やBGM等を音出力する装置によって実現される。図1ではビデオモニタ1220のスピーカ1224がこれに該当する。
画像生成部260は、例えば、デジタルシグナルプロセッサ(DSP)などのプロセッサ、その制御プログラム、フレームバッファ等の描画フレーム用ICメモリ等によって実現される。画像生成部260は、ゲーム演算部210による処理結果に基づいて1フレーム時間(1/60秒)で1枚のゲーム画像を生成し、生成したゲーム画像の画像信号を画像表示部360に出力する。
そして、本実施形態では、画像生成部260はサブ画像表示制御部262を備える。
サブ画像表示制御部262は、メイン仮想カメラCM1で撮影された画像、サブ仮想カメラCM2で撮影された画像,サブ仮想カメラCM3で撮影された画像、イベント仮想カメラCM4で撮影された画像を含む画像群のうち、何れか一つの画像を主ゲーム画面W1として表示させるとともに、その他の画像をサブ画面W2〜W4として主ゲーム画面に合成表示する制御を実行する。また、プレーヤによるサブ画面の選択操作に応じて主ゲーム画面W1と選択されたサブ画面との間で、各々の画面で表示する画像を切り換える処理を実行する。
画像表示部360は、画像生成部260から入力される画像信号に基づいて各種ゲーム画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管(CRT)、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。図1ではビデオモニタ1220のディスプレイ1222が該当する。
通信制御部270は、データ通信に係るデータ処理を実行し、通信部370を介して外部装置とのデータのやりとりを実現する。
通信部370は、通信回線2と接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現され、図1では通信装置1212、近距離無線モジュール1214がこれに該当する。
記憶部500は、処理部200にゲーム装置1200を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なゲームプログラム、各種データ等を記憶する。また、処理部200の作業領域として用いられ、処理部200が各種プログラムに従って実行した演算結果や操作部100から入力される入力データ等を一時的に記憶する。この機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD−ROMやDVDなどの光学ディスクなどによって実現される。
本実施形態では、記憶部500はゲームプログラム502と、サブ画像表示制御プログラム508とを記憶している。ゲームプログラム502は更にキャラクタ制御プログラム504と、仮想カメラ制御プログラム5060を含んでいる。
処理部200がゲームプログラム502を読み出して実行することによって、処理部200にゲーム演算部210としての機能を実現させることができる。また、処理部200がサブ画面表示制御プログラム508を読み出して実行することによって、画像生成部260にサブ画面表示制御部262としての機能を実現させることができる。
また、記憶部500には、予め用意されるデータとしてゲーム空間設定データ520、キャラクタ初期設定データ522、イベント設定データ532、メイン仮想カメラ初期設定データ536、頭部撮影条件候補データ538、尾部撮影条件候補データ540、イベント撮影条件候補データ542が記憶されている。
更にゲームの進行に伴って随時書き換えられるデータとして、キャラクタ制御データ524、作用力データ530、包含領域設定データ534、撮影条件データ544、画面表示位置設定データ546を記憶する。また、ゲームの進行に係る処理を実行するにあたり適宜必要となるタイマー値なども記憶される。本実施形態では、ノード増減許可タイマー548、撮影条件変更許可タイマー550を含む各種タイマーのタイマー値が一時的に記憶される。
ゲーム空間設定データ520には、仮想空間にゲーム空間を形成するための各種データが格納されている。例えば、プレーヤキャラクタCPが移動する地表や建物を含む配置物に関するモデルデータやテクスチャデータ及びモーションデータが含まれる。
キャラクタ初期設定データ522には、プレーヤキャラクタCPの初期設定データが格納されている。本実施形態では、ゲームスタート時におけるプレーヤキャラクタCPはある一定の長さの胴CPbを有するように設定されている。すなわち、所定数のノード2が配列された骨格モデルBM及びそのヒット判定モデルHMに関するデータが格納されている。また、プレーヤキャラクタCPの頭CPhや尾CPtのモデルデータ、胴CPbの部分に外皮を形成する際のテクスチャデータなどが格納されている。
そして、プレーヤキャラクタCPをゲーム実行中に制御するためのデータは、キャラクタ制御データ524に格納される。
図9は、本実施形態におけるキャラクタ制御データ524のデータ構成例を示す図である。同図に示すように、キャラクタ制御データ524は、その時点におけるプレーヤキャラクタCPの骨格モデルに関するデータである制御データ525を含む。
骨格モデル制御データ525には、ノード識別情報525aに対応づけて、該ノードのゲーム空間座標系における位置座標525bと、頭側連結ノード識別情報525cと、尾側連結ノード識別情報525dと、エフェクタ情報525eとが格納されている。
頭側連結ノード識別情報525c及び尾側連結ノード識別情報525dとしては、当該ノードの配列順前後(頭側が前で尾側が後。)に連結されているノードの識別情報が設定される。すなわち、前者は当該ノードの頭側(前方側)に連結されているノードを定義し、後者は当該ノードの尾側(後方側)に連結されているノードを定義する。前端ノード2fr或いは後端ノード2rrである場合には、その先に連結するノードが無いことになるので、例えば同図に示すように「NULL」が格納される。
エフェクタ情報525eは、当該ノードが右アナログレバー1236又は左アナログレバー1238からの操作入力に応じた仮想力(操作力)を作用されるノードであるか否かを示している。例えば同図のように、右アナログレバー1236による操作入力に応じた仮想力が作用するノードには「2」、左アナログレバー1238による操作入力に応じた仮想力が作用するノードには「1」、それ以外には「0」が格納されている。
そして、本実施形態においてプレーヤキャラクタCPを伸ばす場合には、骨格モデル制御データ525に新たにノードを追加登録し、縮める場合には登録されているノードを削除する制御を実行する。ノードが追加或いは削除されることによって骨格モデルBMが伸びたり縮んだりする。
作用力データ530には、各ノードに作用している力に関する情報が格納される。
図10は、本実施形態における作用力データ530のデータ構成例を示す図である。同図に示すように、例えばノード識別情報530aに対応づけて、操作力ベクトル530b、外力ベクトル530c、及びこれらの力の合力に当る作用力ベクトル530dが格納されている。その他、ゲーム中にプレーヤキャラクタCPの動作制御に影響を与える力を適宜設定することができる。
操作力ベクトル530bは、右アナログレバー1236又は左アナログレバー1238による操作入力に応じて設定される仮想力(=操作力)が、エフェクタ情報525eで設定されたノードに作用し、更に骨格モデルBMの連結構造に従って各ノードに作用している力のベクトルを格納する。つまり、エフェクタ情報525eで「2」が格納されているノードには右アナログレバー1236への操作入力に応じた操作力が直接作用するので、該操作力がそのままの状態で格納される。
一方、胴部分にあたるノードには操作力が直接的には作用しないが、先端のノードから順次連結した設定であるので、連結子4を伝って作用した結果としての力が格納される。したがって、その時点における骨格モデルBMが一直線上であれば、先頭のノード作用した操作力と同じ操作力が各ノードの操作力ベクトル530bに格納されるが、骨格モデルBMが湾曲している場合にはノード間の連結関係に従って先頭のノード作用した操作力の連結子方向成分の分力が格納されることになる。
外力ベクトル530cは、ゲーム空間自体に場として設定されている力や、ゲーム空間に配置されている他のオブジェクトの影響によって作用する仮想力を格納する。例えば、重力、他のオブジェクトとの衝突や接触によって生じる力や、環境風を受けることによって生じる力がこれに含まれる。その他、電磁力や、プレーヤキャラクタCPが好物に惹きつけられる様子を表す仮想力など適宜含めることができる。
イベント設定データ532には、イベントの発生に必要なデータが格納されている。例えば、イベント毎に当該イベントを実行するための条件、イベントで登場する或いは動作されるオブジェクトのデータ並びにモーションデータが含まれる。
包含領域設定データ534は、メイン仮想カメラCM1の撮影条件を決定するために必要な包含領域10を定義するデータを格納する。例えば、包含領域10の頂点などの座標値や中心11の座標値、対角線12の情報を格納する。
メイン仮想カメラ初期設定データ536は、メイン仮想カメラCM1の撮影条件の初期設定を格納している。具体的には、メイン仮想カメラCM1の撮影条件を決定する際に用いられる仮配置位置を算出するためのプレーヤキャラクタCPに対する相対位置座標、視線方向ベクトル、初期状態の画角(レンズの焦点距離でも可。)などが定義されている。
頭部撮影条件候補データ538及び尾部撮影条件候補データ540は、サブ仮想カメラでプレーヤキャラクタCPの所定部分を撮影する撮影条件の選択肢を格納している。前者が、頭CPhを被写体とする第1のサブ仮想カメラCM2に適用され、後者が尾CPtを被写体とする第2のサブ仮想カメラCM3に適用される。これらのデータに格納されている撮影条件の候補は、撮影される部位に応じてゲームの操作性と演出の観点から適当に設定されている。
図11は、本実施形態における頭部撮影条件候補データ538のデータ構成の一例と、該例における撮影条件の概要を示す図である。同図に示すように、頭部撮影条件候補データ538には、設定538a毎に、ゲームの操作性と演出の観点から適当に設定された撮影条件538bが対応付けて格納されている。撮影条件538bには、例えばプレーヤキャラクタCPの代表点に対する相対位置座標や、視線方向の先を示す注視点、画角を決定するためのレンズの焦点距離が含まれる。
本実施形態では、撮影画像内に頭CPhとその周囲がある撮影範囲内に収まるように設定された撮影条件(設定538aがCS01,CS02の例)や、頭部CPhの後方或いは頭部CPtの位置から当該部位の移動方向に沿った方向に視線方向を向けるように設定された撮影条件(設定538aがCS03,CS04の例)、頭CPhを正面とその周囲を撮影するように設定された撮影条件が含まれる。その他、頭部CPhの正面斜め上から撮影画像内に頭CPhとその周囲がある撮影範囲内に収まるように設定された撮影条件など、頭部CPhを移動させる際に周囲の状況が分かりやすいと思われる設定を適宜設定すると良い。
尚、尾部撮影条件候補データ540は、基本的に撮影対象となる部分が異なるだけで、撮影条件の設定の考え方は同様であり、頭部撮影条件候補データ538と同様のデータ構成を有する。頭CPh、尾CPt以外にも部分撮影する場合には、同様に対応する撮影条件候補データを適宜追加する。
イベント撮影条件候補データ542は、イベント仮想カメラCM4でイベントキャラクタCIを撮影する撮影条件の選択肢を格納している。
図12は、本実施形態におけるイベント撮影条件候補データ542のデータ構成の一例を示す図とその概念図である。同図に示すように、イベント撮影条件候補データ542には、イベント設定データ532で定義されているイベントのイベント番号542aに対応づけて複数の設定542b及び撮影条件542cが格納されている。撮影条件542cには、例えばイベントキャラクタICの代表点に対する相対位置座標や、視線方向(或いは注視点)、画角を決定するためのレンズの焦点距離が含まれる。本実施形態では、イベントキャラクタCIの少なくとも一部がイベント仮想カメラCM4で撮影される画像に写り、且つ同画像内にプレーヤキャラクタCPの一部が写るように考慮された撮影条件(設定542bがCS11、CS12の例)や、イベントキャラクタCIとその周囲を撮影条件(設定538aがCS13の例)が含まれる。
前者のような撮影条件をイベント仮想カメラCM4で撮影される画像内にイベントキャラクタとプレーヤキャラクタの両方が写るように設定するのは、プレーヤに両キャラクタの相対位置関係を見せるためであり、プレーヤキャラクタCPをどのように操作すればよいか判断し易くするためである。しかし、ゲームの内容によってはイベントキャラクタの相対位置を不明にしたほうが演出上好都合である場合には、後者のような撮影条件、すなわちイベントキャラクタICが画角内に入るがプレーヤキャラクタCPは入らないといった撮影条件のみで構成するとしても良い。
撮影条件データ544には、ゲーム実行中における現在の仮想カメラの撮影条件を含む仮想カメラの制御に係る情報を格納する。例えば、現在の仮想カメラのワールド座標系における位置座標値、仮想カメラの視線方向、画角θcが含まれる。
画像表示位置設定データ546には、主ゲーム画面、各サブ画面の表示位置、表示形態に関する情報が格納されている。
図13は、本実施形態における画像表示位置設定データ546のデータ構成の一例を示すデータ構成図である。同図に示すように画像表示位置設定データ546には、画面種類546aの主ゲーム画面、第1サブ画面、第2サブ画面、イベントサブ画面それぞれに対応づけて、画面表示範囲座標546bと、当該画面に表示される画像のソースがどの仮想カメラであるかを定義する対応仮想カメラ546cとが格納される。本実施形態では、プレーヤによるサブ画面の選択操作に応じて主ゲーム画面に表示される画像と選択されたサブ画面に表示される画像を切換制御するが、その場合該当する画面種類546aに対応する対応仮想カメラ546cの定義を入れ換える。
尚、主ゲーム画面W1の大きさは、ディスプレイ1222の画像表示範囲の大きさに相当し、画面全体で表示するように設定されている。また、同図の例ではサブ仮想カメラが2つ、イベント仮想カメラが一つ登録された例となっているが、ゲームの内容やプレーヤキャラクタのデザイン等に応じて、サブ仮想カメラやイベント仮想カメラの数は適宜設定可能である。また、サブ画面W2〜W4の表示位置や表示形態も同図(b)の例に限るものではない。例えば、上重ね形態に限らずサブ画面W2〜W4を主ゲーム画面W1と並列表示する形態としても良い。
ノード増減許可タイマー548は、時間経過を計時するタイマーのカウント値を格納する。本実施形態では、プレーヤキャラクタCPの伸長或いは短縮の制御が行われていない状態の時間経過を計時する。計時された時間、すなわちカウント値が所定の基準に満たない間は、レーヤキャラクタCPの伸縮制御が制限され実行されない。
撮影条件変更許可タイマー550は、所定値からカウントダウンして撮影条件の再設定が許可される時間間隔を計時する。すなわち、本実施形態では本タイマーが基準時間を計時される都度、撮影条件の変更が許可される。尚、ゲーム開始時点における撮影条件変更許可タイマー550の初期値は「0」である。
[動作の説明]
次に、本発明の動作について説明する。
図14は、本実施形態における処理の流れを説明するためのフローチャートである。ここで説明される処理は、処理部200がシステムプログラム501、ゲームプログラム502及びサブ画面表示制御プログラム508を読み出して実行することによって実現される。
同図に示すように、ゲーム演算部210は先ずゲーム空間設定データ520、キャラクタ初期設定データ522、メイン仮想カメラ初期設定データ536を参照して、仮想空間中にゲーム空間を形成するとともに、形成したゲーム空間にプレーヤキャラクタPCと、プレーヤキャラクタCPを撮影するメイン仮想カメラCM1を配置する(ステップS2)。
プレーヤキャラクタCPの配置に伴って、キャラクタ制御データ524の骨格モデル制御データ525に初期状態の骨格モデルBMが登録され、登録された骨格モデルBMに従って外皮を形成処理してプレーヤキャラクタCPの表示モデルがゲーム空間に配置される。骨格モデルBMに外皮を形成する処理は、公知の技術を適宜利用可能であるので詳細な説明は省略する。撮影条件データ544には、メイン仮想カメラCM1の初期の撮影条件が格納される。また、ゲームスタート時点からゲーム空間に配置されるNPCが有る場合には、この段階で配置する。
次に、ゲームが開始されたならば、ゲーム演算部210は、予め動作が設定されているオブジェクト(例えば、NPCなど)の動作を制御する(ステップS4)。例えば、風になびく木々、飛行船、プレーヤキャラクタCPの移動を邪魔するおもちゃの自動車などを設定するならば、それぞれ所定のモーションデータに基づいて移動制御する。
次に、ゲーム演算部210は、プレーヤの操作入力に従ってプレーヤキャラクタCPを伸長或いは短縮させる任意伸縮処理を実行する(ステップS6)。
図15は、本実施形態における任意伸縮処理の流れを説明するためのフローチャートである。同図に示すように、任意伸縮処理では先ず、ゲーム演算部210がノード増減許可タイマー548のカウントを所定数加算し(ステップS30)、加算した後のノード増減許可タイマー548のカウント値が基準値に達しているか否かを判定する(ステップS32)。
ノード増減許可タイマー548のカウント値が基準値に達していなければ(ステップS32のNO)、任意伸縮処理をそのまま終了する。
一方、ノード増減許可タイマー548のカウント値が基準値に達している場合(ステップS32のYES)、ゲーム演算部210は更に所定の任意伸長操作が入力されているか否かを判定する(ステップS34)。具体的には、右アナログレバー1236から右方向入力され、同時に左アナログレバー1238から左方向入力が入力されたか否かを判定する。すなわち、第1方向入力部102と第2方向入力部104から、同時入力と見なせる程度の時間差で、互いに相反する方向に方向入力されたか否かを判定する。したがって、左右に限らず両レバーで上下互い違いに入力された場合にも任意伸長操作が入力されたと判定する構成としても良い。
そして、任意伸長操作が入力されたと判定された場合(ステップS34のYES)、ゲーム演算部210は、前端ノード(頭CPhのノード)を接続子4の長さLだけ、前端ノード2frを、次連結ノードから当該全体ノードを向いた方向に移動させ(ステップS36)、移動した先端ノード2frとその次連結ノードとの間に新たなノードを追加する(ステップS38)。
具体的には、例えば図9の例ならば、「NODE1」がプレーヤキャラクタCPの前端ノード2frに当るので、その次に連結されている「NODE2」から「NODE1」へ向かうベクトルの方向へ、「NODE1」を接続子4の長さLだけ移動させる。そして、新たに追加されるノードに適当なノード識別情報(例えば「NODE6」)を付与して、骨格モデル制御データ525に登録する。このとき、位置座標525bは、「NODE1」と「NODE2」の中間位置あるいは「NODE1」の元位置とする。頭側連結ノード識別情報525cには「NODE1」を格納し、尾側連結ノード識別情報525dには「NODE2」を格納する。そして、「NODE1」の尾側連結ノード識別情報525dを「NODE2」から「NODE6」に更新し、「NODE2」の頭側連結ノード識別情報525cを「NODE1」から「NODE6」に更新する。エフェクタ情報525eには「0」を格納する。
こうしてキャラクタ制御データ524に登録されている骨格モデルBMに新たなノードを追加したならば、ゲーム演算部210は同様にして後端ノード2rr(尾CPtのノード)を接続子4の長さLだけ、後端ノード2rrの一つ前に連結された次連結ノードから後端ノードを向いた方向に移動させ(ステップS40)、移動した後端ノード2rrと一つ前に連結された次連結ノードとの間に新たなノードを追加する(ステップS42)。
そして、ノード増減許可タイマー548をリセットして「0」に戻してリスタートし(ステップS44)、任意短縮処理を終了する。
ステップS34において否定判定がされた場合(ステップS34のNO)、ゲーム演算部210は特定の任意短縮操作が入力されたか否かを判定する(ステップS50)。具体的には、右アナログレバー1236から左方向入力され、同時に左アナログレバー1238から右方向入力がされたか否かを判定する。すなわち、第1方向入力部102と第2方向入力部104から、同時と見なせるほどの時間差で互いに近寄るように方向入力されたか否かを判定する。したがって、左右に限らず両レバーで上下から寄せるように入力された場合にも任意短縮操作が入力されたと判定する構成としても良い。
任意短縮操作が入力されなかったと判定された場合には(ステップS50のNO)、ゲーム演算部210は任意短縮処理を終了する。また、骨格モデルBMの全ノード数が2以下の場合にも任意短縮処理を終了する。
一方、任意短縮操作が入力されたと判定された場合には(ステップS50のYES)、ゲーム演算部210は前端ノードの次連結ノードと、後端ノードの次連結ノードを削除し(ステップS52)、前端ノードと後端ノードを夫々の削除した次連結ノードの位置に移動させる(ステップS54)。
具体的には、例えば図9の例ならば、前端ノードに当る「NODE1」と、後端ノードに当る「NODE5」の次に連結する「NODE2」と「NODE4」を削除する。そして、「NODE1」の位置座標525bを「NODE2」の値、「NODE5」の位置座標525bを「NODE4」の値に変更する。
更に、「NODE1」の尾側連結ノード識別情報525dを「NODE3」に変更し、「NODE3」の頭側連結ノード識別情報525cを「NODE1」に変更する。また、「NODE5」の頭側連結ノード識別情報525cを「NODE3」に変更し、「NODE3」の尾側連結ノード識別情報525dを「NODE5」に変更する。
以上の任意伸縮処理によってプレーヤは任意にプレーヤキャラクタCPを伸ばしたり縮めたりすることできるようになる。
また、本実施形態では、ノード増減許可タイマー548が設けられ、カウント値が基準値に達していない場合、換言すればプレーヤキャラクタCPが伸長或いは短縮されない状態がある一定時間以上経過していない場合には、プレーヤが任意伸長操作や任意短縮操作を入力しても、伸長或いは短縮の制御は実行されない。これによって、伸長或いは短縮する動作にある種の時間的な「溜め」を作り、ゆっくりとプレーヤキャラクタCPの胴が伸びたり縮んだりする際の抵抗感を表現し、あたかも胴CPbがある程度生き物らしく成長や変形によって伸び縮みしているかのように見せることができる。
任意伸縮処理を終了したならば、図14のフローに戻って、ゲーム演算部210は次に作用力設定処理(ステップS8)を実行する。作用力設定処理は、プレーヤキャラクタCPに作用する力の設定と、その合力である作用力の算出に関する処理である。
図16は、本実施形態における作用力設定処理の流れを説明するためのフローチャートである。同図に示すように、作用力設定処理では先ず、プレーヤによる2種類の方向入力に応じた操作力をプレーヤキャラクタCPに設定する(ステップS70〜78)。
具体的には、左アナログレバー1238に入力されている傾倒方向と傾倒量に応じた第1の操作力F1(図3参照)を決定し、プレーヤキャラクタCPの頭CPhに対応する前端ノード2frに設定する(ステップS70)。そして、前端ノード2frから各ノードに連結子4を介して伝わる操作力を先端からの連結順に算出して設定する(ステップS72)。図10の例で言うと、前端ノード2frは「NODE1」とされる。したがって、設定された第1の操作力のベクトルは、作用力ベクトルデータ530の「NODE1」に対応する操作力ベクトル530bに格納され、同様に第1の操作力ベクトルが各ノードに作用する分力が求められて各々に対応する操作力ベクトル530bに格納される。
次に、ゲーム演算部210は、右アナログレバー1236に入力されている傾倒方向と傾倒量に応じた第2の操作力F2(図3参照)を決定し、プレーヤキャラクタCPの尾CPtに対応する後端ノード2rrに設定する(ステップS74)。
次いで、後端ノードから各ノードに連結子4を介して伝わる第2の操作力の分力を連結順後ろから順番に算出し(ステップS76)、算出した第2の操作力の分力と、ステップS100並びにS102で算出されて各ノードの操作力ベクトル530bに格納されているベクトルとのベクトル和を求めて、操作力ベクトル530bを更新する(ステップS78)。
操作力の設定に係る処理を終了したならば、ゲーム演算部210は次に、プレーヤキャラクタCPに作用する外力を設定するために外力設定処理を実行する(ステップS80)。外力設定処理では、骨格モデルBMの各ノードにについて、プレーヤキャラクタCPに作用する重力や電磁力、風力などゲーム空間に環境要因として設定されている力、或いは他のオブジェクトとの衝突によって受ける力などを算出し、算出した力を作用力データ530の外力ベクトル530cに格納する。
外力設定処理を終了したならば、ゲーム演算部210は全ノードについて、操作力、外力及び特定力の合力を求め、それぞれの作用力ベクトル530dとして作用力データ530に格納して(ステップS82)、作用力設定処理を終了する。
作用力設定処理が終了したならば、図14のフローに戻って、ゲーム演算部210は次にプレーヤキャラクタ移動制御処理を実行する(ステップS10)。各ノードそれぞれに作用力ベクトル530dが作用し、且つ骨格モデルBMの可動条件を維持して、次のゲーム画面の描画タイミング(例えば、1/60秒後)における位置座標を算出する。算出方法は、公知の物理演算処理によっても実現できる。そして、骨格モデル制御データ525の位置座標525bを、新たに算出した位置座標で更新する。
次に、ゲーム演算部210は、イベント設定データ532を参照してイベントを実行する(ステップS12)。すなわち、ゲーム進行状態がイベント設定データ532で定義されている条件を満たしている場合、該条件に対応づけられたイベントを実行する。本実施形態では、例えば図7で示したように、イベントキャラクタCIが登場してプレーヤキャラクタCPに向かって突進し、プレーヤキャラクタCPの行動を邪魔しようとイベントが含まれている。
次に、ゲーム演算部210は、前回の撮影条件の変更から所定時間経過したか否かを判定する(ステップS14)。具体的には、撮影条件変更許可タイマー550の値が「0(所定時間計時済み)」であるか否かを参照し、「0」であれば所定時間経過したと判定する。ゲーム開始時点における撮影条件変更許可タイマー550の初期値は「0」なので、ゲーム開始後最初に本ステップを実行する場合はそのまま次のステップに移行する(ステップS14のYES)。
前回の撮影条件の変更から所定時間経過していたならば、ゲーム演算部210は次にイベントが実行中であるか否かを判定する(ステップS16)。例えば、本実施形態ではイベントキャラクタCIがゲーム空間に登場してから所定時間が経過するまでを一つのイベントとして見なす。その他、例えば「樹木のオブジェクトが倒れて川に橋を架ける」といったイベントの場合には、樹木が倒れきって所定時間経過するまでを一つのイベントとするなど適宜設定する。
そして、イベントが実行中であると判定された場合(ステップS16のYES)、ゲーム演算部210はイベント仮想カメラ設定処理を実行する(ステップS18)。イベント仮想カメラ設定処理は、イベントの発生にともなってイベントキャラクタCIを撮影するイベント仮想カメラCM4を設定し、イベントが実行されている間、撮影を制御する処理である。
図17は、本実施形態におけるイベント仮想カメラ設定処理の流れを説明するためのフローチャートである。イベント仮想カメラ設定処理では、ゲーム演算部210は先ずイベント撮影条件候補データ542を参照して、予め定義されている撮影条件542cの中の何れかをランダムに選択し(ステップS90)、選択された撮影条件候補に基づいて撮影した場合に、イベントキャラクタCIが撮影範囲内に写るか否かを判定する(ステップS92)。具体的には、選択された撮影条件で配置されるイベント仮想カメラCM4とイベントキャラクタICとの間に他のオブジェクトが存在するか否かを判定し、他のオブジェクトが存在しなければイベントキャラクタCIが撮影範囲内に写ると判定する。
そして、イベントキャラクタCIが撮影範囲内に写ると判定された場合には(ステップS92のYES)、現在選択されている撮影条件候補をそのままイベント仮想カメラCM4の撮影条件として、撮影条件データ544に格納するとともにイベント仮想カメラCM4をゲーム空間中に配置する(ステップS94)。そして、イベント仮想カメラ設定処理を終了して、図14のフローに戻る。
尚、図14のフローにおいて、ステップS16で実行中のイベントが無いと判定された場合には(ステップS17)、イベント仮想カメラCM4で撮影する必要性がなくなったと判断して、ゲーム演算部210はイベント仮想カメラCM4の設定を解除する(ステップS17)。
さて、イベント仮想カメラ設定処理を実行したならば、ゲーム演算部210は次にメイン仮想カメラ設定処理を実行する(ステップS20)。メイン仮想カメラ設定処理は、プレーヤキャラクタCPの全身が常に撮影されるように撮影条件を求めて、メイン仮想カメラCM1を配置・制御する処理である。
図18は、本実施形態におけるメイン仮想カメラ設定処理の流れを説明するためのフローチャートである。同図に示すように、ゲーム演算部210は先ず、プレーヤキャラクタCPの移動制御に伴ってメイン仮想カメラCM1を移動させるための仮配置位置を算出する(ステップS110)。具体的には、仮想カメラ初期設定データ536を参照してプレーヤキャラクタCPの代表点に対する所定の相対位置関係を取得して、仮配置位置を求める。つまり、プレーヤキャラクタCPが真直ぐに前進すればメイン仮想カメラCM1を該前進方向に同じように直進移動させ、プレーヤキャラクタCPに対して常に所定の相対位置となるように仮配置位置を決める。
尚、仮配置位置の決定は、プレーヤキャラクタCPの移動と平行させるに限らず、例えばプレーヤキャラクタCPの上を定期的に左右に振れ回りするなどメイン仮想カメラCM1のモーションが設定されている場合には、当該モーションに基づいて仮配置位置を決定する構成としても良い。
次に、仮配置位置が決まったならば、ゲーム演算部210はプレーヤキャラクタCPの全体が撮影できるようにプレーヤキャラクタCPからの距離及び/又は画角を調整する処理を実行する。本実施形態では、プレーヤキャラクタCPの全体を包含する包含領域10を設定し(ステップS112)、メイン仮想カメラCM1で仮配置位置から撮影した場合に、包含領域10の中心11が画面の所定位置(例えば、撮影画面の中心。)に写るように、視点方向26を決定する(ステップS114)。
次いで、包含領域10の最長対角線12を求め(ステップS116)、求めた各最長対角線をメイン仮想カメラCM1の画像座標系に投影し、撮影画像上におけるX軸方向投影寸法とY軸方向投影寸法を算出する(ステップS118)。
そして、最長対角線12の数だけ算出されたX軸方向投影寸法の中から最大X軸方向投影寸法Lxを求めるとともに、同様に算出されたY軸方向投影寸法から最大Y軸方向投影寸法Lyを求め、両値(Lx及びLy)を比較して大きい方の投影寸法Lmを求める(ステップS120)。
そして、ゲーム演算部210は、選択された投影寸法Lmの軸方向に沿ったメイン仮想カメラの画像幅(最大X軸方向投影寸法Lxが最大Y軸方向投影寸法Lyより大きければ画像の横幅Wx、逆の関係ならば画像の縦幅Wy。)とが、所定の比率を成すように撮影条件を決定する(ステップS122)。
本実施形態では、Ly≧Lxならば100:80=Wy:Ly、Lx>Lyならば100:80=Wx:Lxとなるように、メイン仮想カメラCM1の包含領域10の中心11からの適正撮影距離Lcを決定する(ステップS124)。すなわち、適正撮影距離Lc=(100/80×Lm)/2×tan(θc/2)となる。
そして、仮配置位置から包含領域10の中心11までの距離が適正撮影距離Lcとなる位置を視線方向26に沿って求め、当該求めた位置をメイン仮想カメラCM1の次の配置位置座標とする(ステップS124)。勿論、撮影条件の決定は、配置位置を仮配置位置のままとして、画角を変更することによって実現するとしても良い。
尚、撮影条件の設定は、画角θcを固定にして適正撮影距離Lcを算出する上述の方法に限るものではない。プレーヤキャラクタCPに対するメイン仮想カメラCM1の相対位置を変えたくない場合には、適正距離Lcを仮配置位置までの距離とし、画角θcを新たに求める構成とすることができる。また、適正撮影距離Lcと画角θcの両方を求めるとしても良い。例えば、ゲームの演出上の観点からメイン仮想カメラCM1にプレーヤキャラクタCPを回り込むといったカメラワークさせたい場合には、あらかじめ仮想カメラ初期設定データ536にカメラワークを定義するデータを格納し、該データにしたがって配置位置を決定してから画角θcを求める。つまり、先に適正撮影距離Lcを決定し、決定した適性撮影距離Lcにおいて画角θcを求める構成としても良い。
メイン仮想カメラ設定処理を終了したならば、図14のフローに戻って、メイン仮想カメラCM1から見てプレーヤキャラクタCPが隠れるか否かを判定する(ステップS21)。具体的には、メイン仮想カメラCM1の代表点と、プレーヤキャラクタCPの代表点との間に他のオブジェクトが存在するか否かを判定し、他のオブジェクトが存在する場合に「プレーヤキャラクタCPが隠れる」と判定する。プレーヤキャラクタCPの代表点としては、本実施形態では頭CPと尾CPtとを代表点とする。尚、この隠れるか否かの判定は、別の方法で行っても良い。例えば、メイン仮想カメラCM1の撮影画像を生成し、その生成した画像中にプレーヤキャラクタCPが含まれているか否か、頭CPと尾CPtの部位が含まれているか否か、含まれているとするとどの程度の割合含まれているのか、といった撮影画像に対する所定の条件に応じて判定しても良い。
そして、プレーヤキャラクタCPが隠れると判定された場合(ステップS21のYES)、ゲーム演算部210は次に、サブ仮想カメラ設定処理(ステップS22)を実行する。サブ仮想カメラ設定処理は、プレーヤキャラクタCPの所定部分を常に撮影するようにサブ仮想カメラを配置・制御する処理である。ここで言う「所定部分」は、本実施形態ではプレーヤキャラクタCPの頭CPと尾CPtである。これらの部分は、プレーヤキャラクタCPを移動操作する際に操作力が作用する箇所に該当するので、これらの部位とともにその周囲の状況をサブ仮想カメラで撮影することは、プレーヤキャラクタCPを操作するうえで視界を確保することになる。
図19は、本実施形態におけるサブ仮想カメラ設定処理の流れを説明するためのフローチャートである。同図に示すように、ゲーム演算部210は先ず頭部撮影条件候補データ538を参照し、予め設定されている撮影されている撮影条件候補の中から何れかをランダムに選択する(ステップS140)。そして、選択された撮影条件候補に基づいて撮影した場合に、サブ仮想カメラCM2の画像内に被写体となる部分が写るか否かを判定する(ステップS142)。具体的には、サブ仮想カメラCM2と頭CPhに対応する前端ノード2frとの間に、他のオブジェクトが存在するか否かを判定する。より具体的には、サブ仮想カメラCM2の代表点と、前端ノード2frとの間に他のオブジェクトが存在するか否かを判定する。そして、他のオブジェクトが存在しなければサブ仮想カメラCM2の画像内に被写体となる部分が写ると判定する。
そして、サブ仮想カメラCM2の画像内に被写体となる部分が写ると判定されない場合(ステップS142のNO)、ステップS140に戻って撮影条件候補を再選択する。一方、画像内に被写体となる部分が写ると判定された場合には(ステップS142のYES)、現在選択されている撮影条件候補をそのままサブ仮想カメラCM2の撮影条件として、撮影条件データ544に格納するとともに、仮想カメラCM2をゲーム空間中に配置する(ステップS144)。
サブ仮想カメラCM2について撮影条件を決定したならば、ゲーム演算部210は同様にして尾CPtを撮影するサブ仮想カメラCM3の撮影条件を決定する。すなわち、尾部撮影条件候補データ542を参照し、予め設定されている撮影されている撮影条件候補の中から何れかをランダムに選択し(ステップS146)、選択された撮影条件候補に基づいて撮影した場合に、サブ仮想カメラCM3の画像内に被写体となる部分(尾CPt)が写るか否かを判定する(ステップS148)。
そして、サブ仮想カメラCM3の画像内に被写体となる部分が写ると判定されない場合(ステップS148のNO)、ステップS146に戻って撮影条件候補を再選択する。一方、画像内に被写体となる部分が写ると判定された場合には(ステップS148のYES)、現在選択されている撮影条件候補をそのままサブ仮想カメラCM3の撮影条件として、撮影条件データ544に格納するとともにサブ仮想カメラCM3をゲーム空間中に配置して(ステップS150)、サブ仮想カメラ設定処理を終了する。
尚、本実施形態では部分撮影する箇所を頭CPh及び尾CPtとしているが、3箇所以上設定するケースでは、ステップS140〜S144と同様の処理を繰り返せば良い。
さて、サブ仮想カメラ設定処理を終了したならば、図14のフローに戻って、次に画像生成部260がゲーム画面表示処理を実行する(ステップS24)。
図20は、本実施形態におけるゲーム画面表示処理の流れを説明するためのフローチャートである。同図に示すように、ゲーム画面表示処理では先ず、画像生成部260はメイン仮想カメラCM1から見た仮想空間画像を生成し、画面表示位置設定データ546で対応付けられている画像表示範囲座標546bに生成した画像を描画する(ステップS200)。
次に、サブ画面表示状況条件を満たすか否かを判定し、条件を満たしている場合にサブ画面を表示制御する。具体的には、先ず第1の条件として、メイン仮想カメラCM1から見て、プレーヤキャラクタCPの頭CPhが他オブジェクトの背後に隠れるか否か、つまり頭CPhがメイン仮想カメラCM1の撮影画像内に映るか否かを判定する(ステップS202)。このケースを換言すると、メイン仮想カメラCM1の現在の撮影条件が、サブ画面表示状況条件を満しているか否かを判定するとも言える。
そして、背後に隠れると判定された場合、つまりサブ画面表示状況条件を満たすと判定された場合(ステップS202のYES)、画像生成部260は、サブ仮想カメラCM2から見た仮想空間画像を生成し、画面表示位置設定データ546で対応付けられている画面種類548aの画像表示範囲座標546bに生成した画像を描画する(ステップS204)。ゲーム開始時の初期のままであれば、メイン仮想カメラCM1による撮影画像上に、サブ仮想カメラCM2による撮影画像がサブ画面W2として所与の位置に合成される(図7参照)。
更に第2の条件として、メイン仮想カメラCM1から見て、尾CPtが他オブジェクトの背後に隠れるか否かを判定し(ステップS206)、背後に隠れると判定された場合には(ステップS206のYES)、サブ仮想カメラCM3から見た仮想空間画像を生成し、画面表示位置設定データ546で対応付けられている画面種類548aの画像表示範囲座標546bに生成した画像を描画する(ステップS208)。ゲーム開始時の初期のままであれば、メイン仮想カメラCM1による撮影画像上に、サブ仮想カメラCM3による撮影画像がサブ画面W3として所与の位置に合成される。
次に、画像生成部260は、撮影条件データ544を参照して、イベント仮想カメラCM4が設定されているか否かを判定する(ステップS210)。そして、設定されていると判定された場合(ステップS210のYES)、イベント仮想カメラCM4の撮影画像を生成し、画面表示位置設定データ546でイベント仮想カメラCM4に対応付けられている画像表示範囲座標546bに生成した画像を描画する(ステップS212)。ゲーム開始時の初期のままであれば、メイン仮想カメラCM1による撮影画像上に、イベント仮想カメラCM4による撮影画像がサブ画面W4として合成される。
ここまでの処理で、メイン仮想カメラCM1でプレーヤキャラクタCPの全身を撮影するように制御しても、他のオブジェクトとの位置関係によってその撮影画像に頭CPhや尾CPtが写らない場合には、主ゲーム画面W1にサブ画面W2,W3でそれら各部の部分撮影画像が合成された画像が形成されたことになる。更には、イベントが発生し実行中であれば、サブ画面W4が更に合成された画像が形成されたことになる。
そこで、画像生成部260が、当該形成された画像の画像信号を画像表示部360に出力して、ゲーム画面を表示させ(ステップS214)、ゲーム画面表示処理を終了する。
尚、サブ画面を表示する条件として、オブジェクトの移動及び/又は体形変化の現況として、サブ仮想カメラCM2,CM3の被写体として定められた所定部位がメイン仮想カメラCM1の撮影画像範囲に入らないことを例に挙げたが、サブ画面表示状況条件はこれに限るものではない。例えば、プレーヤキャラクタCPが静止していることを条件としても良い。この場合、移動中はサブ画面を表示しないようにして、移動中の状況を見易くする一方で一旦立ち止まることで、周囲の状況を詳しく観察できるようになるので、より一層プレーヤキャラクタCPを操作し易くなるであろう。
また、別の例としては、プレーヤキャラクタCPの全長が基準値以上になることを条件としても良いし、所定の体勢を採っていることを条件としても良い。また例えば、移動及び/又は体形変化に限らず、プレーヤキャラクタCPが所定のアイテムが取得したり呪文を唱えるといったことや、所定部位が怪我をしたりアイテムを付属させているといった部位のステータス、接触を防ぎながら狭い場所をくぐりぬけるといったゲーム進行状態やゲームステージの種類などを条件とすることもできる。
さて、ゲーム画像表示処理を終了したならば、図14のフローに戻り、次に画像生成部260は画像表示切換処理を実行して、プレーヤの操作入力に応じて次のゲーム画面の描画タイミングで、主ゲーム画面W1に表示される画像の内容とサブ画面に表示される画像の内容とを切り換えできるように設定の画面表示位置設定データ546の変更をする(ステップS26)。
図21は、本実施形態における画像表示切換処理の流れを説明するためのフローチャートである。同図に示すように、画像表示切換処理では先ず、画像生成部260は、ゲームコントローラ1230で所定の画面切換操作が入力されたか否かを判定する(ステップS170)。例えば、所定のプッシュボタン1232を押下すると画面切換操作が入力されたと判定される。
画面切換操作が入力されたと判定した場合(ステップS170のYES)、画像生成部260は、画面切換操作が入力される都度、現在表示しているサブ画面を切換先候補として識別表示する(ステップS172)。具体的には、例えば、現在主ゲーム画面W1上にサブ画面W2及びW3が表示されている場合、画面切換操作が入力されると、サブ画面W2の周囲の表示色や輝度、表示枠に特定デザインを適用するなどして表示制御する。この状態では、サブ画面W2を切換候補とする。もう一度画面切換ボタンスイッチが押されると、今度はサブ画面W2の識別表示を解除して、代わりにサブ画面W3を識別表示制御して切換候補とする。
そして、ゲームコントローラ1230から所定の決定操作が入力された場合(ステップS174のYES)、画像生成部260は、画面表示位置設定データ546における対応仮想カメラ546cの設定を、メイン仮想カメラCM1と、先に選択決定されたサブ画面を撮影するサブ仮想カメラとで入れ換える(ステップS176)。この結果、次の制御サイクルでゲーム画面表示処理(図14のステップS24)が実行されると、主ゲーム画面W1に表示される画像の内容と、サブ画面に表示される画像の内容とが切り換わることになる。一方、所定の決定操作が入力されずに、所定のキャンセル操作が入力された場合には(ステップS178のYES)、サブ画面の識別表示を解除する(ステップS180)。
尚、本実施形態では、画面表示位置設定データ546を変更することで、次のゲーム画面の描画タイミングで瞬時に画像が入れ換えされる構成となっているが、適宜、公知の画面のトランジェント処理(例えば、ワイプ、オーバーラップなど。)を実行する構成としても良い。その場合、トランジェント処理実行中は、プレーヤキャラクタCPや他のオブジェクトの動作制御は一次中断すると好適である。
次に、画像生成部260は、画面表示位置設定データ546を参照して、主ゲーム画面W1に対応する仮想カメラがメイン仮想カメラCM1であるか否かを判定する(ステップS182)。
メイン仮想カメラCM1が対応付けられていない場合には(ステップS182のNO)、復帰タイマーを稼動させる(ステップS184)。そして、稼動タイマーが所定時間を計時していなければ(ステップS186のNO)、そのまま画像表示切換処理を終了する。一方、稼動タイマーが所定時間を計時したならば(ステップS186のYES)、画面表示位置設定データ546における対応仮想カメラ546cを初期状態(例えば、図13の状態)に戻して、主ゲーム画面W1にメイン仮想カメラCM1の撮影画像が表示されるように設定を戻してから(ステップS188)、画像表示切換処理を終了する。
つまり、プレーヤの操作入力に応じて、主ゲーム画面W1に表示されている画像と、何れかのサブ画面に表示されている画像とを入れ換えを実行しても、所定時間が経過すると自動的に元の状態に戻されることになる。このことは、メイン仮想カメラCM1とは別の角度からプレーヤが頭CPh或いは尾CPtが撮影されているサブ画面を一時的に大きく表示させて操作しやすい状態にしたとしても、その他多くの場合ではメイン仮想カメラCM1がプレーヤキャラクタCPの全体を撮影し、これを主画面として表示することで本実施形態のようなゲームに適した操作性が実現されるのであるから、画像表示の切換を自動的に元に戻すことで快適なゲームプレイ環境を提供することができる。
画像表示切換処理を終了したならば、図14のフローに戻って、次にゲーム演算部210が、ゲームの終了条件を満たすか否かを判定する(ステップS28)。本実施形態では、プレーヤキャラクタが所定のゴール地点に体力値が「0」になる前に無事たどりつければゲームクリアして終了条件を満たすと見なされる。また、移動中にイベントキャラクタCIなどの邪魔や、高所からの落下などによって体力値が「0」になってしまうとゲームオーバして終了条件を満たすと見なされる。
終了条件を満たしていなければ(ステップS28のYES)、ステップS4に戻り、終了条件を満たしていれば(ステップS28のNO)、ゲーム終了処理を実行して一連の処理を終了する。
以上の一連の処理によって、本実施形態ではプレーヤキャラクタCPの全体が常にゲーム画面上に表示されるように制御される。
図22は、本実施形態におけるメイン仮想カメラCM1による撮影画像の例を示す図であって、プレーヤキャラクタCPの全長がそれぞれ異なる場合における例を示している。
同図(a)の状態から同図(b)の状態までプレーヤキャラクタCPが伸びたとしても、メイン仮想カメラCM1がプレーヤキャラクタCPから遠ざかるように撮影条件が変更され、プレーヤキャラクタCPの容姿が撮影画面に対して所定関係を成す大きさで撮影されるようになる。つまり、プレーヤキャラクタCPをメイン仮想カメラCM1の画面座標系に投影した長さ(同図の場合は、X軸方向投影寸法Lx)が画面の幅(同図の場合は、横幅Wx)に対して「1.0」を下回る所定の割合を満たすように撮影される。したがって、同図(a)と同図(b)における各X軸方向投影寸法Lxは、原理上、近時した長さになる。
そして、本実施形態では基本的にメイン仮想カメラCM1でされた画像を、主ゲーム画面W1として表示制御するので、プレーヤは、プレーヤキャラクタCPの前端側、後端側いずれの側でもある程度周囲の状況を常に見る事が出来るので、プレーヤキャラクタCPの操作が寄りし易くなる。また、仮に、プレーヤキャラクタCPの全長ととともに胴回りも太くなるように設定したとしても、同図(c)に示すように、やはりプレーヤキャラクタCPの前端側、後端側いずれの側でもある程度周囲の状況をゲーム画面上に映すことができる。しかも、こうしたメイン仮想カメラCM1の撮影条件の設定を、包含領域10に基づいて決定することによって、複雑な形状に変化するキャラクタであっても簡単な処理で実現することができる。
また、本実施形態では、プレーヤキャラクタCPの移動や体形変化に伴って、頭CPhや尾CPtがゲーム画面で常に見えているように表示させることができる。
図23〜24は、本実施形態におけるゲーム画面例を示す図であって、主ゲーム画面W1とサブ画面W2の表示を切り換える場合の画面の変化を示している。尚、ここでは切換に際してトランジェント処理を実行する場合を示している。
同図(a)では、主ゲーム画面W1のみが表示されている。つまり、メイン仮想カメラ設定処理によってメイン仮想カメラCM1がプレーヤキャラクタCPの全身を映すように制御されている。この段階では、頭CPhも尾CPtも他のオブジェクトに隠れていないので、サブ画面表示はされていない。この状態からプレーヤキャラクタCPが移動制御されて、障害物30の背面側に移動したとする。
そして、メイン仮想カメラCM1から見てプレーヤキャラクタCPが障害物30の背後に隠れてしまうと、同図(b)に示すようにサブ画面が表示制御される。同図(b)の場合では、主ゲーム画面W1では頭CPhも尾CPtも見えていないので、頭CPhの様子を映すサブ画面W2と、尾CPtの様子を映すサブ画面W3が表示されている。プレーヤキャラクタCPが頭CPh先に隠れることになるから、前者が先に表示され、続いて後者が追加して表示されることになる。
ここで、プレーヤがゲームコントローラ1230から所定の画面切換操作を入力すると、同図(c)に示すように選択されているサブ画面に識別表示がされる。この例では、サブ画面W2が選択されており、その画像表示の周辺に所定の選択表示枠32が表示されて強調されている。
サブ画面W2が切り換え先として選択決定されると、主ゲーム画面W1とサブ画面W2との間でトランジェント処理が実行され、例えば図24(a)のように、サブ画面W2が徐々に拡大される。そして、サブ画面W2が主ゲーム画面W1と同程度の大きさに達すると、同図(b)のように、主ゲーム画面W1にサブ仮想カメラCM2による撮影画像が表示され、元のサブ画像W2の表示範囲にメイン仮想カメラCM1による撮影画像が表示される。本実施形態のようなゲームの場合、プレーヤキャラクタCPを操作するうえで頭CPh並びに尾CPtがプレーヤに見えている事が大切であるから、このようにサブ画面表示によってこれらの要部が常にゲーム画面上に映すことでプレイし易い環境を実現できる。
また、本実施形態によれば、イベントが発生した場合にもサブ画面を表示させることができる。
図25は、本実施形態におけるゲーム画面例を示す図であって、主ゲーム画面W1とサブ画面W4の表示を切り換える場合の画面の変化を示している。同図(a)に示すように、イベントが実行されると主ゲーム画面W1の所定位置にサブ画面W4が表示され、イベント仮想カメラCM4の撮影画像が表示される。同図の例では、主ゲーム画面W1ではプレーヤキャラクタCPしか見えていないが、サブ画面W4ではイベントキャラクタICがプレーヤキャラクタCPに向かって生きている様子が表示される。
ここで、更にサブ画面W4で表示されている状態を詳細に見たいと考えて、サブ画面W4を切換候補として選択・決定すると、同図(b)に示すように、サブ画面W4が識別表示されるとともに、トランジェント処理を伴って徐々に拡大表示される。そして、サブ画面W4が主ゲーム画面W1とほとんど同じ大きさまで変化すると、同図(c)に示すように、切換が完了して主ゲーム画面W1にイベント仮想カメラCM4の撮影画像が表示され、サブ画面W4にはメイン仮想カメラCM1の撮影画像が表示される。
よって、プレーヤはイベントキャラクタICがプレーヤキャラクタCPに向かってくる様子をより詳しくしることができるので、どちらの方向に回避すると良いかなどの判断をつけやすくなす。すなわち、よりプレーヤキャラクタCPを操作し易くなる。
また、同図の例ではイベントがプレーヤキャラクタCPの近傍で発生しているが、ゲーム空間内の遠く離れた場所でイベントが発生した場合であっても、サブ画面W4でイベントキャラクタICとプレーヤキャラクタCPとが画面内に映されることで、どこでイベントが起きたか理解できるので、そうした観点からもよりプレーヤキャラクタCPを操作し易くなる。
[ハードウェア構成]
次に図26を参照して、本実施形態における家庭用ゲーム装置1200を実現するためのハードウェア構成の一例について説明する図である。家庭用ゲーム装置1200は、CPU1000、ROM1002、RAM1004、情報記憶媒体1006、画像生成IC1008、音生成IC1010、I/Oポート1012,1014がシステムバス1016により相互にデータ入出力可能に接続されている。I/Oポート1012にはコントロール装置1022が、I/Oポート1014には通信装置1024が、それぞれ接続されている。
CPU1000は、情報記憶媒体1006に格納されるプログラム、ROM1002に格納されるシステムプログラム(装置本体の初期化情報等)、コントロール装置1022によって入力される信号等に従って、装置全体の制御や各種データ処理を行う。
RAM1004は、CPU1000の作業領域等として用いられる記憶手段であり、情報記憶媒体1006やROM1002内の所与の内容、CPU1000の演算結果等が格納される。
情報記憶媒体1006は、プログラム、画像データ、音データ、プレーデータ等が主に格納されるものであり、情報記憶媒体として、ROM等のメモリやハードディスクや、CD−ROM、DVD、ICカード、磁気ディスク、光ディスク等が用いられる。尚、この情報記憶媒体1006は、図8に示す記憶部500に相当するものである。
また、この装置に設けられている画像生成IC1008と音生成IC1010により、音や画像の好適な出力が行えるようになっている。
画像生成IC1008は、CPU1000の命令によって、ROM1002、RAM1004、情報記憶媒体1006等から送られる情報に基づいて画素情報を生成する集積回路であり、生成される画像信号は、表示装置1018に出力される。表示装置1018は、CRTやLCD、ELD、プラズマディスプレイ、或いはプロジェクター等により実現され、図8に示す画像表示部360に相当する。
また、音生成IC1010は、CPU1000の命令によって、情報記憶媒体1006やROM1002に記憶される情報、RAM1004に格納される音データに応じた音信号を生成する集積回路であり、生成される音信号はスピーカ1020によって出力される。スピーカ1020は、図8に示す音出力部350に相当するものである。
コントロール装置1022は、プレーヤがゲームに係る操作を入力するための装置であり、その機能は、レバー、ボタン、筐体等のハードウェアにより実現される。尚、このコントロール装置1022は、図8に示す操作入力部100に相当するものである。
通信装置1024は装置内部で利用される情報を外部とやりとりするものであり、プログラムに応じた所与の情報を他の装置と送受すること等に利用される。尚、この通信装置1024は、図8に示す通信部370に相当するものである。
そして、ゲーム処理等の上記した処理は、図8のゲームプログラム502等を格納した情報記憶媒体1006と、これらプログラムに従って動作するCPU1000、画像生成IC1008、音生成IC1010等によって実現される。CPU1000、画像生成IC1008、及び音生成IC1010は、図8に示す処理部200に相当するものであり、主にCPU1000がゲーム演算部210、画像生成IC1008が画像生成部260に、音生成IC1010が音生成部250にそれぞれ相当する。
尚、画像生成IC1008、音生成IC1010等で行われる処理は、CPU1000或いは汎用のDSP等によりソフトウェア的に行ってもよい。この場合には、CPU1000が、図8に示す処理部200に相当することとなる。
〔変形例〕
以上、本発明の実施形態について説明したが、本発明の適用形態がこれらに限定されるものではなく、発明の主旨を逸脱しない限りにおいて適宜変更を加えることができる。
例えば、家庭用ゲーム装置でビデオゲームを実行する構成を例に挙げたが、業務用のゲーム装置やパソコン、携帯型ゲーム装置などでゲームを実行することもできる。
また、プレーヤキャラクタの伸長・短縮操作を例に挙げたがこれに限るものではない。例えば、プレーヤキャラクタが使用するアイテムの伸長・短縮制御に適用することもできる。
また、画面表示切換処理における切換候補とするサブ画面の選択操作の方法として、プッシュボタン1232の押下に限らず、右アナログレバー1236や左アナログレバー1238を用いるとしても良い。
例えば、図27は、サブ画面の選択操作として右アナログレバー1236や左アナログレバー1238を用いる場合の画面表示切換処理の流れを説明するためのフローチャートである。尚、第1実施形態と同様のステップにつては同じ符号を付与し説明は省略する。
同図に示すように、画像生成部260が、親指以外の指(例えば、一指し指)で操作可能なゲームコントローラ1230の側面に設けられた所定のプッシュスイッチ1233が押下されているか否かを判定し(ステップS160)、押下されていると判定した場合(ステップS160のYES)、左右両方のアナログレバーの入力方向に基づいてサブ画面を選択する。
具体的には、例えば、サブ画面を表示/非表示を示すフラグを記憶部500に記憶しておいて、右アナログレバー1236及び左アナログレバー1238の2つの方向入力の中間方向を求め(ステップS232)、ディスプレイ1222の画像表示範囲の中心から先に求めた中間方向を中央に画面周縁に向かって広がる所定幅の扇型領域に含まれる表示状態のサブ画面を抽出し、そのサブ画面を切換候補とする(ステップS234)。扇型領域から表示状態のサブ画面がなければ、切換候補は未定とする。
そして、押下されていた所定のプッシュスイッチ1233がリリースされた場合(ステップS236のYES)、切換候補のサブ画面が有れば(ステップS238のYES)、画面表示位置設定データの設定を、メイン仮想カメラと切換候補として選択されたサブ画面を撮影するサブ仮想カメラとで入れ換えて(ステップS240)、ステップS182に以降する。一方、切換候補のサブ画面がなければ(ステップS238のNO)、画像の入れ換えを行わずにステップS182に移行する。
従って、プレーヤは右アナログレバー1236並びに左アナログレバー1238から指を離すことなく、プレーヤキャラクタCPの任意伸縮から移動、更にサブ画面の切り換えもできるようになるのでより一層操作性が高くなる。
尚、同様の操作方法は、右アナログレバー1236及び左アナログレバー1238による方向入力で実現するに限らない。
例えば、図28に示す家庭用ゲーム装置1200Bのように、ゲームコントローラ1230R及び1230Lを用意する。ゲームコントローラ1230R及び1230Lは、右アナログレバー1236及び左アナログレバー1238に相当する十字方向キー1237に親指を添え、あたかも棒を持つ要領で左右両手に一本ずつもって操作される。そして、内蔵する無線通信機1239によって制御ユニット1210に実装された無線通信機1214と無線通信を実現して、ゲーム装置本体1201に操作入力信号を出力する。更に、ゲームコントローラ1230R及び1230Lは、それぞれ加速度センサ1240を内蔵しており、各コントローラの姿勢変化に伴う加速度を検出し操作入力信号として出力する。この加速度による方向入力の前後左右を、ディスプレイ1222の画面座標系の上下左右に対応づけることで右アナログレバー1236及び左アナログレバー1238の代わりとすると、ゲームコントローラ1230R及び1230Lを同時に同じ方向へ向けて振ることでサブ画面を切換候補として選択することが可能になる。この場合もまた、プレーヤは十字方向キー1237から親指を離すことなく、プレーヤキャラクタCPの任意伸縮から移動、更にサブ画面の切り換えもできるようになる。
家庭用ゲーム装置の構成例を示すシステム構成図。 プレーヤキャラクタのモデル構成を説明するための図。 プレーヤキャラクタの移動操作と制御の関係を示す概念図。 プレーヤキャラクタの任意伸長操作と制御の関係を示す概念図。 プレーヤキャラクタの任意短縮操作と制御の関係を示す概念図。 仮想カメラの撮影条件の設定方法を説明するための概念図。 サブ仮想カメラの設定と、サブ画面表示の概念を説明するための概念図。 機能構成の一例を示す機能ブロック図。 キャラクタ制御データのデータ構成例を示す図。 作用力データのデータ構成例を示す図。 頭部撮影条件候補データのデータ構成の一例と、該例における撮影条件の概要を示す図。 イベント撮影条件候補データのデータ構成の一例を示す図とその概念図。 画像表示位置設定データのデータ構成の一例を示すデータ構成図。 第1実施形態における処理の流れを説明するためのフローチャート。 任意伸縮処理の流れを説明するためのフローチャート。 作用力設定処理の流れを説明するためのフローチャート。 イベント仮想カメラ設定処理の流れを説明するためのフローチャート。 メイン仮想カメラ設定処理の流れを説明するためのフローチャート。 サブ仮想カメラ設定処理の流れを説明するためのフローチャート。 ゲーム画面表示処理の流れを説明するためのフローチャート。 画像表示切換処理の流れを説明するためのフローチャート。 メイン仮想カメラCM1による撮影画像の例を示す図。 ゲーム画面例を示す図であって、主ゲーム画面W1とサブ画面W2の表示を切り換える場合の画面の変化を示す図。 図23に続くゲーム画面例を示す図。 ゲーム画面例を示す図であって、主ゲーム画面W1とサブ画面W4の表示を切り換える場合の画面の変化を示す図。 ハードウェア構成の一例を示す構成図。 画面表示切換処理の変形例の流れを説明するためのフローチャート。 家庭用ゲーム装置の構成例の変形例を示すシステム構成図。
符号の説明
100 操作入力部
102 第1方向入力部
104 第2方向入力部
200 処理部
210 ゲーム演算部
212 キャラクタ制御部
214 仮想カメラ制御部
260 画像生成部
262 サブ画面表示制御部
500 記憶部
524 キャラクタ制御データ
530 作用力データ
534 包含領域設定データ
538 頭部撮影条件候補データ
540 尾部撮影条件候補データ
542 イベント撮影条件候補データ
544 撮影条件データ
546 画面表示位置設定データ
1200 家庭用ゲーム装置
1230 ゲームコントローラ
1236 右アナログレバー
1238 左アナログレバー
PC プレーヤキャラクタ
CM1 メイン仮想カメラ
CM2、CM3 サブ仮想カメラ
CM4 イベント仮想カメラ
W1 主ゲーム画面
W2、W3、W4 サブ画面

Claims (16)

  1. コンピュータを、
    3次元仮想空間中を移動可能なオブジェクトであって、方向操作入力に応じて移動する端部を有し、当該端部の移動に引きつられて全身が移動するように制御される紐状体形状のオブジェクトの移動及び体形変化を、前記方向操作入力に基づいて制御するオブジェクト制御手段、
    前記オブジェクト制御手段による前記オブジェクトの制御に応じて、画角及び/又は位置の制御を行うことで前記オブジェクトの全体を撮影する全体用仮想カメラを制御する全体用仮想カメラ制御手段、
    前記オブジェクト制御手段による前記端部の移動制御に応じて、少なくとも位置を制御することで、1)当該端部を撮影範囲内に収めるように、又は、2)当該端部の後方或いは当該端部位置から当該端部の移動方向に沿った方向に視線方向を向けるように、端部用仮想カメラを制御する端部用仮想カメラ制御手段、
    前記全体用仮想カメラ及び前記端部用仮想カメラそれぞれで撮影された画像を少なくとも含む画像群から何れか一つの画像を主ゲーム画面として表示制御し、残る画像を前記主ゲーム画面よりも画像表示サイズが小さいサブ画面として表示制御するゲーム画面表示制御手段、
    として前記コンピュータを機能させるためのプログラム。
  2. 請求項1に記載のプログラムであって、
    前記ゲーム画面表示制御手段が、所定の画面切換操作に応じて、前記主ゲーム画面及び前記サブ画面に表示制御する画像を交換する画面表示画像交換制御手段を有するように前記コンピュータを機能させるためのプログラム。
  3. 請求項1又は2に記載のプログラムであって、
    前記ゲーム画面表示制御手段が、前記主ゲーム画面に表示制御される画像が前記全体用仮想カメラで撮影された画像から他の画像に切り換わって後、所定時間経過した時点で、前記主ゲーム画面に表示制御する画像を前記全体用仮想カメラで撮影された画像に切り換える主ゲーム画面自動復帰制御手段を有するように前記コンピュータを機能させるためのプログラム。
  4. 請求項1〜3の何れか一項に記載のプログラムであって、
    前記ゲーム画面表示制御手段が、前記サブ画面の表示/非表示を制御するサブ画面表示/非表示制御手段を有するように前記コンピュータを機能させるためのプログラム。
  5. 請求項4に記載のプログラムであって、
    前記オブジェクト制御手段により制御されている前記オブジェクトの移動及び/又は体形変化の現況が、前記サブ画面を表示制御することとする所定のサブ画面表示状況条件を満たしたことを検出する状況条件合致検出手段として前記コンピュータを機能させ、
    前記サブ画面表示/非表示制御手段が、前記検出に応じて前記サブ画面を表示させるように前記コンピュータを機能させる、
    ためのプログラム。
  6. 請求項5に記載のプログラムであって、
    前記状況条件合致検出手段が、前記オブジェクトが静止している状況を前記サブ画面表示状況条件を満たす状況として前記検出を行うように前記コンピュータを機能させるためのプログラム。
  7. 請求項4〜6の何れか一項に記載のプログラムであって、
    前記全体用仮想カメラ制御手段により制御されている前記全体用仮想カメラの撮影条件が、前記サブ画面を表示制御することとする所定のサブ画面表示撮影条件を満たしたことを検出する撮影条件合致検出手段として前記コンピュータを機能させ、
    前記サブ画面表示/非表示制御手段が、前記撮影条件合致検出手段の検出に応じて前記サブ画面を表示させるように前記コンピュータを機能させる、
    ためのプログラム。
  8. 請求項7に記載のプログラムであって、
    前記撮影条件合致検出手段が、前記全体用仮想カメラから見て前記オブジェクト以外の他のオブジェクトによって前記端部が隠されている場合に前記サブ画面表示撮影条件を満たすとして前記検出を行うように前記コンピュータを機能させるためのプログラム。
  9. 請求項1〜8の何れか一項に記載のプログラムであって、
    前記コンピュータを更に、
    所与のゲームイベントとして他オブジェクトを自動制御するイベントを実行させるイベント制御手段、
    前記イベント制御手段によるイベントの実行が開始された場合に、前記他オブジェクトを撮影するイベント仮想カメラを設定するイベント仮想カメラ設定手段、
    として機能させ、
    前記ゲーム画面表示制御手段が、前記画像群に前記イベント仮想カメラによって撮影された画像を含めて前記表示制御を行う、
    ように機能させるためのプログラム。
  10. 請求項9に記載のプログラムであって、
    前記イベント仮想カメラ設定手段が、前記オブジェクトと前記他オブジェクトとの両方が撮影範囲内に収まるように前記イベント仮想カメラの画角及び/又は位置を設定するように前記コンピュータを機能させるためのプログラム。
  11. 請求項1〜10の何れか一項に記載のプログラムであって、
    前記オブジェクトを包含する包含領域を前記オブジェクト制御手段の制御に応じて可変して設定する包含領域設定手段として前記コンピュータを機能させ、
    前記全体用仮想カメラ制御手段が、前記設定された包含領域全体が撮影画像に収まるように前記全体用仮想カメラの画角及び/又は位置を制御するように前記コンピュータを機能させる、
    ためのプログラム。
  12. 請求項1〜11の何れか一項に記載のプログラムであって、
    前記オブジェクトは伸縮自在な紐状体形状を有し、
    前記オブジェクト制御手段が、前記オブジェクトを伸縮させる制御を行うオブジェクト伸縮制御手段を有するように前記コンピュータを機能させるためのプログラム。
  13. コンピュータを、
    3次元仮想空間中を移動可能なオブジェクトを、方向操作入力に応じて移動制御するオブジェクト制御手段、
    前記オブジェクトを撮影範囲内に含めるように第1仮想カメラの位置及び/又は視線方向を制御する第1仮想カメラ制御手段、
    前記オブジェクトを撮影範囲内に含めるように、前記第1仮想カメラとは異なる第2仮想カメラの位置及び/又は視線方向を制御する第2仮想カメラ制御手段、
    前記第1仮想カメラから見て前記オブジェクトが他のオブジェクトに隠れたことを検出する隠蔽検出手段、
    前記第1仮想カメラによる撮影画像を主ゲーム画面として表示制御するとともに、前記隠蔽検出手段の検出に応じて、前記第2仮想カメラによる撮影画像を前記主ゲーム画面よりも画像表示サイズが小さいサブ画面として表示制御するゲーム画面表示制御手段、
    として前記コンピュータを機能させるためのプログラム。
  14. 請求項1〜13の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
  15. 3次元仮想空間中を移動可能なオブジェクトであって、方向操作入力に応じて移動する端部を有し、当該端部の移動に引きつられて全身が移動するように制御される紐状体形状のオブジェクトの移動及び体形変化を、前記方向操作入力に基づいて制御するオブジェクト制御手段と、
    前記オブジェクト制御手段による前記オブジェクトの制御に応じて、画角及び/又は位置の制御を行うことで前記オブジェクトの全体を撮影する全体用仮想カメラを制御する全体用仮想カメラ制御手段と、
    前記オブジェクト制御手段による前記端部の移動制御に応じて、少なくとも位置を制御することで、1)当該端部を撮影範囲内に収めるように、又は、2)当該端部の後方或いは当該端部位置から当該端部の移動方向に沿った方向に視線方向を向けるように、端部用仮想カメラを制御する端部用仮想カメラ制御手段と、
    前記全体用仮想カメラ及び前記端部用仮想カメラそれぞれで撮影された画像を少なくとも含む画像群から何れか一つの画像を主ゲーム画面として表示制御し、残る画像を前記主ゲーム画面よりも画像表示サイズが小さいサブ画面として表示制御するゲーム画面表示制御手段と、
    を備えたゲーム装置。
  16. 3次元仮想空間中を移動可能なオブジェクトを、方向操作入力に応じて移動制御するオブジェクト制御手段と、
    前記オブジェクトを撮影範囲内に含めるように第1仮想カメラの位置及び/又は視線方向を制御する第1仮想カメラ制御手段と、
    前記オブジェクトを撮影範囲内に含めるように、前記第1仮想カメラとは異なる第2仮想カメラの位置及び/又は視線方向を制御する第2仮想カメラ制御手段と、
    前記第1仮想カメラから見て前記オブジェクトが他のオブジェクトに隠れたことを検出する隠蔽検出手段と、
    前記第1仮想カメラによる撮影画像を主ゲーム画面として表示制御するとともに、前記隠蔽検出手段の検出に応じて、前記第2仮想カメラによる撮影画像を前記主ゲーム画面よりも画像表示サイズが小さいサブ画面として表示制御するゲーム画面表示制御手段と、
    を備えたゲーム装置。
JP2007020464A 2007-01-31 2007-01-31 プログラム、情報記憶媒体及びゲーム装置 Pending JP2008186324A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007020464A JP2008186324A (ja) 2007-01-31 2007-01-31 プログラム、情報記憶媒体及びゲーム装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007020464A JP2008186324A (ja) 2007-01-31 2007-01-31 プログラム、情報記憶媒体及びゲーム装置

Publications (1)

Publication Number Publication Date
JP2008186324A true JP2008186324A (ja) 2008-08-14

Family

ID=39729303

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007020464A Pending JP2008186324A (ja) 2007-01-31 2007-01-31 プログラム、情報記憶媒体及びゲーム装置

Country Status (1)

Country Link
JP (1) JP2008186324A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010115244A (ja) * 2008-11-11 2010-05-27 Konami Digital Entertainment Co Ltd ゲーム画像表示制御プログラム、ゲーム装置及びゲーム画像表示制御方法
JP2013220137A (ja) * 2012-04-13 2013-10-28 Square Enix Co Ltd ビデオゲーム処理装置、およびビデオゲーム処理プログラム
JP2014184320A (ja) * 2014-05-08 2014-10-02 Square Enix Co Ltd ビデオゲーム処理装置、およびビデオゲーム処理プログラム
JP2017087024A (ja) * 2017-02-23 2017-05-25 株式会社スクウェア・エニックス ビデオゲーム処理装置、およびビデオゲーム処理プログラム
JP2018055279A (ja) * 2016-09-27 2018-04-05 キヤノン株式会社 画像処理装置、画像処理方法、及び、プログラム
WO2019187732A1 (ja) * 2018-03-30 2019-10-03 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
KR20210061563A (ko) * 2019-11-20 2021-05-28 가톨릭대학교 산학협력단 가상 현실에서 3d 물체 조작을 위한 보조 카메라 위치 최적화 장치 및 방법
CN113181654A (zh) * 2021-05-28 2021-07-30 网易(杭州)网络有限公司 游戏画面生成方法、装置、存储介质及电子设备

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010115244A (ja) * 2008-11-11 2010-05-27 Konami Digital Entertainment Co Ltd ゲーム画像表示制御プログラム、ゲーム装置及びゲーム画像表示制御方法
JP2013220137A (ja) * 2012-04-13 2013-10-28 Square Enix Co Ltd ビデオゲーム処理装置、およびビデオゲーム処理プログラム
JP2014184320A (ja) * 2014-05-08 2014-10-02 Square Enix Co Ltd ビデオゲーム処理装置、およびビデオゲーム処理プログラム
JP2018055279A (ja) * 2016-09-27 2018-04-05 キヤノン株式会社 画像処理装置、画像処理方法、及び、プログラム
JP2017087024A (ja) * 2017-02-23 2017-05-25 株式会社スクウェア・エニックス ビデオゲーム処理装置、およびビデオゲーム処理プログラム
WO2019187732A1 (ja) * 2018-03-30 2019-10-03 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
KR20210061563A (ko) * 2019-11-20 2021-05-28 가톨릭대학교 산학협력단 가상 현실에서 3d 물체 조작을 위한 보조 카메라 위치 최적화 장치 및 방법
KR102314578B1 (ko) 2019-11-20 2021-10-19 가톨릭대학교 산학협력단 가상 현실에서 3d 물체 조작을 위한 보조 카메라 위치 최적화 장치 및 방법
CN113181654A (zh) * 2021-05-28 2021-07-30 网易(杭州)网络有限公司 游戏画面生成方法、装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
JP5042651B2 (ja) プログラム、情報記憶媒体及びゲーム装置
JP2008186324A (ja) プログラム、情報記憶媒体及びゲーム装置
US7775882B2 (en) Game apparatus for changing a visual point position of a virtual camera in conjunction with an attack by and enemy character
JP3934074B2 (ja) プログラム、情報記憶媒体及びゲーム装置
JP5154775B2 (ja) ゲームプログラムおよびゲーム装置
JP5469379B2 (ja) ゲームプログラム、および、ゲーム装置
JP6340414B2 (ja) 情報処理装置、情報処理システム、および情報処理方法
JP5520656B2 (ja) プログラム及び画像生成装置
JP6854133B2 (ja) 情報処理プログラム、情報処理方法、情報処理システム、および情報処理装置
JP5522902B2 (ja) 情報処理プログラムおよび情報処理装置
JP4005061B2 (ja) 情報処理装置、プログラム、および、情報処理装置におけるオブジェクト制御方法
US20140349759A1 (en) Storage medium storing game program and game apparatus
WO2012043009A1 (ja) 画像処理プログラム及びコンピュータ読み取り可能な記録媒体
JP2010068872A (ja) プログラム、情報記憶媒体及びゲーム装置
JP5037077B2 (ja) プログラム、情報記憶媒体及びゲーム装置
JP2010233671A (ja) プログラム、情報記憶媒体及びゲーム装置
JP4797439B2 (ja) ゲーム装置及びプログラム
JP2007130312A (ja) ゲームプログラムおよびゲーム装置
JP5291305B2 (ja) ゲームプログラムおよびゲーム装置
JP2008272123A (ja) プログラム、情報記憶媒体及びゲーム装置
JP2011215886A (ja) プログラム、情報記憶媒体、及び、画像生成装置
JP5632657B2 (ja) 画像処理プログラム、画像処理装置、画像処理システム及び画像処理方法
JP4005060B2 (ja) 情報処理システム、プログラムおよびゲームキャラクタ移動制御方法
JP2008220671A (ja) ゲーム装置、ゲーム装置の制御方法及びプログラム
JP2010239987A (ja) ゲーム装置、ゲーム装置の制御方法、及びプログラム