説明

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

【課題】ゲーム空間に新たなキャラクタを登場させたり、ゲーム進行を一時中断させることなく、スムーズ且つシームレスなゲーム途中参加を実現すること。
【解決手段】(a)ゲーム空間には、1体の主役キャラクタ10と複数体の一般キャラクタ20とが配置されている。主役キャラクタ10はプレーヤキャラクタ(PC)であり、本体装置1100の所定の接続ポート1110aに接続されたゲームコントローラ1200aからの操作信号に従って制御される。また、一般キャラクタ20はノンプレーヤキャラクタ(NPC)である。(b)そして、本体装置1100に新たなゲームコントローラ1200bが接続されると、NPCであった2体の一般キャラクタ20a,20cがPCとなり、このゲームコントローラ1200bからの操作信号に従って制御される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータに所定のゲームを進行制御させるためのプログラム等に関する。
【背景技術】
【0002】
同一のゲーム空間において複数のプレーヤそれぞれがプレーヤキャラクタを操作して楽しむことができるゲームの一例として、複数のプレーヤがチームを組んでチーム同士で対戦するゲームが知られている。このようなゲームでは、ゲーム開始前に、所定人数のプレーヤを組み合わせるマッチングを行ってゲームに参加するプレーヤを決定した後、これらの参加プレーヤによるゲームが開始される(例えば、特許文献1参照)。
【特許文献1】特開2006−254980号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
上述のような、ゲームの開始前にマッチングによってゲームに参加するプレーヤが決定されるゲームでは、ゲームに参加するプレーヤはゲーム毎に固定とされる。つまり、ゲーム開始後は、新たなプレーヤがゲームに参加することはできない。一方、複数のプレーヤが同一のゲーム世界で楽しむことが可能な他の形態のゲームとして、オンラインゲゲームが知られている。例えばネットワークRPG(Role Playing Game)では、ゲーム進行中、任意のタイミングで新たなプレーヤがゲームに参加できるものがある。このようなゲームの場合、プレーヤは、自分のプレーヤキャラクタをゲーム世界に新たに登場させることでゲーム世界に途中参加し、プレーヤキャラクタをゲーム世界から退場させることでゲーム世界から離脱することができる。すなわち、ゲーム世界に対する新たなキャラクタの登場/退場をもってゲーム世界への途中参加/途中終了が可能であった。
【0004】
しかしながら、進行中のゲーム世界における新たなキャラクタの登場/退場は唐突であり、他のプレーヤにとっては、ゲームの没入感が削がれる一因となっていた。さらに、家庭用のゲーム装置等の1台のコンピュータシステムにおいては、新たなプレーヤが途中参加する場合には、次のような対処療法的なプレーヤ側の操作で対応しているのが現状である。すなわち、進行途中のゲームをリセット・再スタートすることでプレイ人数の初期設定からゲームをやり直したり、進行途中のゲームを一時中断して設定画面からプレイ人数を変更したりといった、ゲームプレイを楽しんでいたプレーヤが、ゲームを中断する等の犠牲を払って、新たなプレーヤの追加を容認する何らかの操作・行為をする必要があった。本発明は、上記事情に鑑みてなされたものである。
【課題を解決するための手段】
【0005】
上記課題を解決するための第1の発明は、
有線又は無線によりコントローラ(例えば、図1のゲームコントローラ1200)の接続が可能なコンピュータ(例えば、図1の本体装置1100)に、ゲーム空間中を移動可能なNPC(ノンプレーヤキャラクタ)をコンピュータ制御するとともに所与の仮想カメラから見た前記ゲーム空間の画像を生成して所定のゲームを進行制御させるためのプログラム(例えば、図13のゲームプログラム610)であって、
前記ゲームの進行制御中に新たなコントローラの接続を認識する接続認識手段(例えば、図22のステップB1)、
前記接続認識手段により新たなコントローラの接続が認識された場合に、NPCを当該新たなコントローラの操作入力で制御される新たなPC(プレーヤキャラクタ)として割り当てる割当手段(例えば、図22のステップB5)、
前記割当手段により割り当てられた新たなPCを、割り当てられた新たなコントローラの操作入力に従って制御するPC制御手段(例えば、図22のステップB13)、
前記割当手段により割り当てられていないNPCをコンピュータ制御するNPC制御手段(例えば、図22のステップB15)、
として前記コンピュータを機能させるためのプログラムである。
【0006】
また、第15の発明は、
有線又は無線によりコントローラの接続が可能であり、ゲーム空間中を移動可能なNPCをコンピュータ制御するとともに所与の仮想カメラから見た前記ゲーム空間の画像を生成して所定のゲームを進行制御するゲーム装置(例えば、図1,図13の家庭用ゲーム装置1000)であって、
前記ゲームの進行制御中に新たなコントローラの接続を認識する接続認識手段(例えば、図13のコントローラ接続検出部211)と、
前記接続認識手段により新たなコントローラの接続が認識された場合に、NPCを当該新たなコントローラの操作入力で制御される新たなPCとして割り当てる割当手段(例えば、図13の一般キャラ制御部213)と、
前記割当手段により割り当てられた新たなPCを、割り当てられた新たなコントローラの操作入力に従って制御するPC制御手段(例えば、図13の一般PC制御部214)と、
前記割当手段により割り当てられていないNPCをコンピュータ制御するNPC制御手段(例えば、図13の一般NPC制御部215)と、
を備えたゲーム装置である。
【0007】
この第1又は第15の発明によれば、ゲームの進行制御中に新たなコントローラの接続が認識された場合、ゲーム空間中のNPCが当該コントローラの操作入力で制御される新たなPCとして割り当てられる。つまり、ゲームの進行中に新たなコントローラを接続すると、このコントローラによって、ゲーム空間中のNPCをPCとして制御することが可能となる。これにより、ゲームの進行中、任意のタイミングでゲームに参加可能となるとともに、ゲーム空間に配置されているNPCが制御可能なキャラクタ(PC)となるため、ゲーム空間に新たなキャラクタを登場させたり、ゲーム進行を一時中断させることなく、スムーズ且つシームレスにゲームに参加することが可能となる。
【0008】
第2の発明は、第1の発明のプログラムであって、
前記割当手段は、複数のNPCのうちから選択した所定数のNPCを新たなPCとして割り当てるように前記コンピュータを機能させるためのプログラムである。
【0009】
この第2の発明によれば、ゲーム空間中の複数のNPCのうちから選択されたNPCが新たなPCとして、新たに接続されたゲームコントローラに割り当てられる。
【0010】
第3の発明は、第2の発明のプログラムであって、
前記ゲームの開始前に前記ゲーム空間中に複数のNPCを配置するNPC配置手段(例えば、図13のゲーム演算部210;図21のステップA1)として前記コンピュータを機能させ、
前記割当手段が、前記NPC配置手段により配置されたNPCの中から新たにPCとして割り当てるNPCを選択するように前記コンピュータを機能させ、
前記NPC制御手段が、前記NPC配置手段により配置されたNPCであり、前記割当手段により割り当てられていないNPCをコンピュータ制御するように前記コンピュータを機能させる、
ためのプログラムである。
【0011】
この第3の発明によれば、ゲームの開始前にゲーム空間に配置された複数のNPCの中から、新たに接続が認識されたコントローラに割り当てるNPCが選択される。つまり、ゲーム開始時点においてゲーム空間内にいるNPCを、新たに接続したコントローラによってPCとして操作することができる。
【0012】
第3の発明は、第2又は第3の発明のプログラムであって、
接続済みのコントローラの接続中断を検出する中断検出手段(例えば、図13のコントローラ接続検出部211;図22のステップB7)、
前記中断検出手段の検出に応じて、接続中断が検出されたコントローラに割り当てられていたPCの割り当てを解除する割当解除手段(例えば、図13の一般キャラ制御部213;図22のステップB9)、
として前記コンピュータを機能させるためのプログラムである。
【0013】
この第4の発明によれば、接続済みのコントローラの接続中断が検出されると、このコントローラに割り当てられていたPCの割り当てが解除される。つまり、接続しているコントローラを取り外すと、当該コントローラで制御可能であったPCがNPCに戻る。
【0014】
第5の発明は、第4の発明のプログラムであって、
前記割当手段が、前記接続認識手段により認識された新たなコントローラが、前記中断検出手段により過去に検出されたコントローラであった場合に、以前、当該コントローラに割り当てていたNPC以外のNPCを、当該コントローラの操作入力で制御される新たなPCとして割り当てるように前記コンピュータを機能させるためプログラムである。
【0015】
この第5の発明によれば、新たに接続が認識されたコントローラが過去に接続中断が検出されたコントローラであった場合、以前、当該コントローラに割り当てていたNPC以外のNPCが、当該コントローラの操作入力で制御される新たなPCとして割り当てられる。つまり、接続中断したコントローラを再度接続させると、以前とは異なるNPCが、新たなPCとして当該コントローラで制御可能となる。
【0016】
第6の発明は、第4の発明のプログラムであって、
前記割当手段が、前記接続認識手段により認識された新たなコントローラが、前記中断検出手段により過去に検出されたコントローラであった場合に、以前、当該コントローラに割り当てていたNPCと同一のNPCを、当該コントローラの操作入力で制御される新たなPCとして割り当てるように前記コンピュータを機能させるためのプログラムである。
【0017】
この第6の発明によれば、新たに接続が認識されたコントローラが過去に接続中断が検出されたコントローラであった場合、以前、当該コントローラに割り当てていたNPCと同一のNPCが、当該コントローラの操作入力で制御される新たなPCとして割り当てられる。つまり、接続中断したコントローラを再度接続させると、以前と同じNPCが、再度PCとして当該コントローラで制御可能となる。
【0018】
第7の発明は、第2〜第7の何れかの発明のプログラムであって、
前記ゲームの進行制御中において、前記仮想カメラの視線方向、画角及びカメラ位置のうちの少なくとも1つを制御して、現時点の全てのPCを表示範囲内とする制御を行う仮想カメラ制御手段(例えば、図13の仮想カメラ制御部216;図21のステップA11)として前記コンピュータを機能させるためのプログラムである。
【0019】
この第7の発明によれば、ゲームの進行制御中において、現時点の全てのPCを表示範囲内とするよう、仮想カメラの視線方向、画角及びカメラ位置のうちの少なくとも1つが制御される。つまり、ゲームの進行制御中は、全てのPCが表示対象となるため、何れのプレーヤも自身のPCの様子を視認することができる。
【0020】
第8の発明は、第7の発明のプログラムであって、
前記ゲーム空間中に、現時点の全てのPCを内包する内包領域(例えば、図11の全体包含領域40)を設定する内包領域設定手段(例えば、図13の仮想カメラ制御部216;図26のステップF7)として前記コンピュータを機能させるとともに、
前記仮想カメラ制御手段が、前記内包領域を用いて前記仮想カメラの制御を行うように前記コンピュータを機能させる、
ためのプログラムである。
【0021】
この第8の発明によれば、ゲーム空間中に、現時点の全てのPCを内包する内包領域が設定され、この内包領域を用いて仮想カメラの制御が行われる。これにより、例えばこの内包領域の全体を映すように仮想カメラを制御するといったことで、PCが複雑な形状のキャラクタであっても、全てのPCを表示範囲内とする仮想カメラの制御が容易となる。
【0022】
第9の発明は、第7又は第8の発明のプログラムであって、
前記ゲームの開始前に接続済みの1台のコントローラと、当該コントローラの操作入力に従って制御される常時PCとを対応付けて設定する常時PC対応設定手段(例えば、図13のゲーム演算部210;図21のステップA1)、
前記常時PCを、前記常時PC対応設定手段によって対応付けて設定されたコントローラの操作入力に従って制御する常時PC制御手段(例えば、図13の主役キャラ制御部212;図21のステップA9)、
として前記コンピュータを機能させるとともに、
前記仮想カメラ制御手段が、前記常時PC対応設定手段によって対応付けて設定されたコントローラの操作入力に従って前記仮想カメラのカメラ位置を制御するカメラ位置制御手段を有し、該カメラ位置制御手段により制御されたカメラ位置を基準として、前記仮想カメラの視線方向及び/又は画角を制御して、現時点の全てのPCを表示範囲内とする制御を行うように前記コンピュータを機能させる、
ためのプログラムである。
【0023】
この第9の発明によれば、ゲーム開始前に接続済みの1台のコントローラと、当該コントローラの操作入力に従って制御される常時PCとが対応付けて設定されており、この常時PCと対応付けられたコントローラの操作入力に従って制御されたカメラ位置を基準として、現時点の全てのPCが表示範囲内となるよう、仮想カメラの視線方向及び/又は画角が制御される。つまり、所定の1台のコントローラによって、仮想カメラの制御操作が可能となる。
【0024】
第10の発明は、第2〜第9の何れかの発明のプログラムであって、
前記ゲームの開始前に接続済みの1台のコントローラと、当該コントローラの操作入力に従って制御される常時PCとを対応付けて設定する常時PC対応設定手段(例えば、図13のゲーム演算部210;図21のステップA1)、
前記常時PCを、前記常時PC対応設定手段によって対応付けて設定されたコントローラの操作入力に従って制御する常時PC制御手段(例えば、図13のゲーム演算部210;図21のステップA9)、
として前記コンピュータを機能させるとともに、
前記割当手段が、前記常時PCとの相対的な位置関係が所定の選択条件を満たすNPCを、新たなPCとして割り当てるように前記コンピュータを機能させる、
ためのプログラムである。
【0025】
この第10の発明によれば、ゲーム開始前に接続済みの1台のコントローラと、当該コントローラの操作入力に従って制御される常時PCとが対応付けて設定され、新たに接続が認識されたコントローラには、この常時PCとの相対的な位置関係が所定の選択条件を満たすNPCが新たなPCとして割り当てられる。
【0026】
第11の発明は、第2〜第10の何れかの発明のプログラムであって、
前記コントローラは、両手で把持し、左右それぞれの手指で操作する左右の方向操作入力部(例えば、図1の右アナログレバー1202及び左アナログレバー1204)を有し、
前記割当手段が、前記接続認識手段により認識された新たなコントローラに、当該コントローラの左手用の方向操作入力部からの操作入力で制御される1体の新たなPCと、右手用の方向操作入力部からの操作入力で制御される1体の新たなPCとを新たに割り当てるように前記コンピュータを機能させるためのプログラムである。
【0027】
この第11の発明によれば、コントローラは、両手で把持し、左右それぞれの手指で操作する左右の方向操作入力部を有し、新たに接続が認識されたコントローラには、当該コントローラの左手用の方向操作入力部からの操作入力で制御される1体の新たなPCと、右手用の方向操作入力部からの操作入力で制御される1体の新たなPCとが割り当てられる。つまり、プレーヤは、1台のコントローラで2体のPCを独立して制御可能である。
【0028】
第12の発明は、第2〜第10の何れかの発明のプログラムであって、
前記コントローラには、方向操作入力部を備えた1つの片手把持用のコントローラでなる第1コントローラと、方向操作入力部を備えた2つの片手把持用のコントローラが接続されてなる第2コントローラとが有り、
前記接続認識手段により新たに認識されたコントローラが前記第1コントローラか前記第2コントローラかを判別する判別手段として前記コンピュータを機能させ、
前記割当手段が、前記接続認識手段により認識された新たなコントローラが前記判別手段により前記第1コントローラと判別された場合には、当該新たなコントローラに1体の新たなPCを割り当て、前記第2コントローラと判別された場合には、当該新たなコントローラの2つの片手把持用コントローラそれぞれからの操作入力で制御される2体の新たなPCを割り当てるように前記コンピュータを機能させる、
ためのプログラムである。
【0029】
この第12の発明によれば、コントローラには、方向操作入力部を備えた1つの片手把持用のコントローラでなる第1コントローラと、方向操作入力を備えた2つの片手把持用のコントローラが接続されてなる第2コントローラとがあり、新たに接続が認識されたコントローラが第1コントローラである場合には、当該コントローラに1体の新たなPCが割り当てられ、第2コントローラである場合には、当該コントローラに2体の新たなPCが割り当てられる。つまり、プレーヤは、第1のコントローラの場合には、何れか片方の手で片手把持用コントローラを把持して1体のPCを制御可能となり、第2コントローラの場合には、両手それぞれに1台づつ片手把持用コントローラを把持して2体のPCを独立して制御可能でとなる。
【0030】
第13の発明は、第2〜第12の何れかの発明のプログラムであって、
前記NPCには、相対的な優劣、敵味方、合体可否、及び、接近可否のうちの何れかの特性が予め定められた複数種類のNPCがあり、
前記NPC制御手段が、各NPCを、当該NPCの種類に定められている前記特性に基づいて制御するように前記コンピュータを機能させ、
前記割当手段が、前記接続認識手段により認識された新たなコントローラに複数体のNPCを新たなPCとして割り当てる場合に、前記相対的な特性を有する異なる種類のNPCを新たなPCとして割り当てるように前記コンピュータを機能させる、
ためのプログラムである。
【0031】
この第13の発明によれば、NPCには、相対的な特性が予め定められた複数種類のNPCがあり、新たに接続が認識されたコントローラには、相対的な特性を有する異なる種類のNPCが新たに制御可能なPCとして割り当てられる。
【0032】
第14の発明は、第1〜第13の何れかの発明のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体(例えば、図13の記憶部600)である。
【0033】
ここで、情報記憶媒体とは、記憶されている情報をコンピュータが読み取り可能な、例えばハードディスクやMO、CD−ROM、DVD、メモリカード、ICメモリ等の記憶媒体である。従って、この第13の発明によれば、情報記憶媒体に記憶されている情報をコンピュータに読み取らせて演算処理を実行させることで、第1〜第12の何れかの発明と同様の効果を奏することができる。
【発明の効果】
【0034】
本発明によれば、ゲームの進行制御中に新たなコントローラの接続が認識された場合、ゲーム空間中のNPCが当該コントローラの操作入力で制御される新たなPCとして割り当てられる。つまり、ゲームの進行中に新たなコントローラを接続すると、このコントローラによって、ゲーム空間中のNPCをPCとして制御することが可能となる。これにより、ゲームの進行中、任意のタイミングでゲームに参加可能となるとともに、ゲーム空間に配置されているNPCが制御可能なキャラクタ(PC)となるため、ゲーム空間に新たなキャラクタを登場させたり、ゲーム進行を一時中断させることなく、スムーズ且つシームレスにゲームに参加することが可能となる。
【発明を実施するための最良の形態】
【0035】
以下、図面を参照して、本発明の好適な実施形態を説明する。なお、以下では、本発明を家庭用のゲーム装置に適用した場合を説明するが、本発明の適用可能な実施形態がこれに限定されるものではない。
【0036】
[外観]
図1は、本実施形態における家庭用ゲーム装置1000の外観の一例を示す図である。同図によれば、家庭用ゲーム装置1000は、本体装置1100と、プレーヤがゲーム操作を入力するためのゲームコントローラ1200と、ディスプレイ1302及びスピーカ1304を有するビデオモニタ1300とを備えて構成される。
【0037】
本体装置1100がゲーム処理を行うために必要なプログラムやデータを含むゲーム情報は、例えば本体装置1100に着脱自在な情報記憶媒体である光学ディスク1122やメモリカード1124に格納されている。すなわち、プレーヤは、この光学ディスク1122等を交換することで異なるゲームを楽しむことができる。なお、このゲーム情報は、本体装置1100が備える通信装置1108を介して通信回線Nに接続し、外部装置からダウンロードして取得することにしても良い。ここで、通信回線Nはデータ授受が可能な通信路を意味する。すなわち、通信回線Nとは、直接接続のための専用線(専用ケーブル)やイーサネット(登録商標)等によるLAN(Local Area Network)の他、電話通信網やケーブル網、インターネット等の通信網を含む意味であり、また、通信方法については有線/無線を問わない。
【0038】
また、本体装置1100は、例えばCPUや画像処理用LSI、ICメモリ等が実装された制御ユニット1102と、光学ディスク1122やメモリカード1124といった情報記憶媒体の読取装置1104,1106を備える。そして、本制御ユニット1102に実装されたCPUは、光学ディスク1122やメモリカード1124から読み出したゲーム情報や、ゲームコントローラ1200からの操作信号等に基づいて各種のゲーム演算を実行し、ゲーム画面の画像信号及びゲーム音の音信号を生成して所与のビデオゲームを実行する。生成されたゲーム画像やゲーム音は、画像信号及び音信号を伝送可能な信号ケーブル1130を介してビデオモニタ1300に出力される。プレーヤは、ビデオモニタ1300のディスプレイ1302に表示されるゲーム画像を見つつ、スピーカ1304から出力されるBGMや効果音といったゲーム音を聞きながら、ゲームコントローラ1200を操作してゲームを楽しむ。
【0039】
ゲームコントローラ1200は、上面に設けられたプッシュキー1206、方向キー1208、右アナログレバー1202及び左アナログレバー1204と、側面に設けられた右プッシュボタン1210及び左プッシュボタン1212を備える。右アナログレバー1202及び左アナログレバー1204は、上下方向と左右方向の2軸方向を同時入力可能な方向入力デバイスであり、レバーを倒すことによって、2軸成分を含む任意の方向と、レバーの傾倒量に応じた任意の操作量とを入力することができる。さらに、この右アナログレバー1202及び左アナログレバー1204は、操作入力していない中立状態からレバーの軸方向に押し込むことでプッシュスイッチとしても使用することもできる。また、ゲームコントローラ1200の右側に設けられている右アナログレバー1202、プッシュキー1206及び右プッシュボタン1210により右ボタン群1220が形成され、左側に設けられている左アナログレバー1204、方向キー1208及び左プッシュボタン1212により左ボタン群1222が形成される。プレーヤは、ゲームコントローラ1200を左右の手で把持し、主に、右手の手指で右ボタン群1220を操作し、左手の手指で左ボタン群1222を操作する。
【0040】
本体装置1100の前面には、ゲームコントローラ1200のコネクタ1230を接続するための4つの接続ポート1110が設けられている。すなわち、本体装置1100には最大4台のゲームコントローラ1200を接続可能であり、同時に最大4人のプレーヤがゲームを楽しむことが可能となっている。なお、接続ポート1110の数は「4」に限らず、複数であればこれより多くとも良いし少なくとも良い。本実施形態のゲームでは、ゲームコントローラ1200を何れの接続ポート1110に接続しても良い。また、ゲーム進行中、空いている接続ポート1110に新たにゲームコントローラ1200を接続することで、このゲームコントローラ1200による操作入力が可能となり、シームレスなゲーム途中参加ができるようになっている。
【0041】
[原理]
図2は、ゲーム空間の一例を示す図である。同図(a)に示すように、ゲーム空間には、1体の主役キャラクタ10と複数体の一般キャラクタ20とが配置されるとともに、仮想カメラCMが配置される。主役キャラクタ10は、本実施形態のゲームにおいて主役となるキャラクタであり、プレーヤの操作入力に従って制御されるプレーヤキャラクタ(PC)である。また、この主役キャラクタ10は、伸縮自在な紐状体をなし、伸縮しながらゲーム空間内を移動する。
【0042】
一般キャラクタ20は、コンピュータによってAI制御されるノンプレーヤキャラクタ(NPC)と、プレーヤの操作入力に従って制御されるプレーヤキャラクタ(PC)とに分類される。NPCである一般キャラクタ20(以下、「一般NPC」という)は所定の制御ルーチンに従って制御され、PCである一般キャラクタ20(以下、「一般PC」という)はプレーヤの操作入力に従って制御され、それぞれゲーム空間内を移動する。なお、一般キャラクタ20は、ゲーム進行中、新たに出現(登場)したり、逆に消滅(退場)したりすることはない。
【0043】
仮想カメラCMは、プレーヤキャラクタ、すなわち主役キャラクタ10及び全ての一般PCを視野内に収めるように配置され、この仮想カメラCMに基づくゲーム空間の様子がゲーム画面としてディスプレイ1302に表示される。具体的には、同図(a)に示すように、3体の一般キャラクタ20a,20b,20cの全てがNPCである場合、仮想カメラCMは、主役キャラクタ10を視野内に収めるように制御され、ゲーム画面は、同図(b)に示すように、主役キャラクタ10に注目した表示となる。しかし、図3(a)に示すように、3体の一般キャラクタ20a,20b,20cのうち、一般キャラクタ20aがPCであり、それ以外の一般キャラクタ20b,20cがNPCである場合には、仮想カメラCMは、主役キャラクタ10及び一般キャラクタ20aの2体を視野内に収めるように制御される。従って、この場合のゲーム画面は、同図(b)に示すように、主役キャラクタ10及び一般キャラクタ20aの両方に着目した表示となる。
【0044】
プレーヤキャラクタである主役キャラクタ10及び一般PCは、接続ポート1110に接続されたゲームコントローラ1200からの操作入力に従って制御される。図4は、ゲームコントローラ1200とキャラクタとの制御関係を説明する図である。本実施形態では、本体装置1100の4つの接続ポート1110のうち、1つの接続ポート1110が主役キャラクタ10の制御用に設定され、それ以外の3つの接続ポート1110が一般キャラクタ20の制御用に設定される。そして、主役キャラクタ10の制御用の接続ポート1110(以下、「主役キャラ用接続ポート」という)に接続されたゲームコントローラ1200からの操作入力に従って主役キャラクタ10が制御され、一般キャラクタ20の制御用の接続ポート1110(以下、「一般キャラ用接続ポート」という)に接続されたゲームコントローラ1200からの操作入力に従って一般キャラクタ20が制御される。
【0045】
各接続ポート1110の制御対象として設定されるキャラクタ種別(主役キャラクタ/一般キャラクタ)は、ゲーム開始前に決定される。具体的には、例えばゲーム開始前の時点でゲームコントローラ1200が接続されている接続ポート1110を主役キャラ用接続ポートとし、それ以外の接続ポート1110を一般キャラ用接続ポートとする。但し、ゲーム開始前の時点で複数の接続ポート1110にゲームコントローラ1200が接続されている場合には、これらの接続されている接続ポート1110のうちの何れか1つを主役キャラ用接続ポートとする。また、何れの接続ポート1110にもゲームコントローラ1200が接続されていない場合には、予め定められた所定の接続ポート1110(例えば、左端の接続ポート1110)を主役キャラ用接続ポートとしても良いし、或いは、主役キャラ用接続ポートをゲーム開始前に設定せず、ゲーム開始後、最初にゲームコントローラ1200の接続が検出された接続ポート1110を主役キャラ用接続ポートとしても良い。
【0046】
図4では、本体装置1100に横一列に設けられている4つの接続ポート1110a〜1110dのうち、左端の接続ポート1110aが主役キャラ用接続ポートであり、それ以外の接続ポート1110b,1110c,1110dが一般キャラ用接続ポートである。同図(a)に示すように、主役キャラ用接続ポートである接続ポート1110aにのみゲームコントローラ1200aが接続されている場合、このゲームコントローラ1200aによって主役キャラクタ10が制御される。この場合、一般キャラクタ20a,20b,20cの全てがNPCである。
【0047】
そして、同図(b)に示すように、一般キャラ用接続ポートである接続ポート1110dに新たにゲームコントローラ1200bが接続されると、一般キャラクタ20a,20b,20cのうちの2体の一般キャラクタ20a,20cがPCとなり、このゲームコントローラ1200bによって制御される。なお、一般キャラクタ20bはNPCのままである。
【0048】
また、一般キャラ用接続ポートに接続されているゲームコントローラ1200が取り外されると(接続中断)、このゲームコントローラ1200によって制御されていた一般キャラクタ20(一般PC)はNPCに戻る。すなわち、同図(b)において、接続ポート1110dからゲームコントローラ1200bを取り外すと、PCである一般キャラクタ20a,20cはNPCに変更される。但し、主役キャラクタ10は常にPCであり、主役キャラ用接続ポートである接続ポート1110aに接続されていたゲームコントローラ1200aが取り外されてもNPCとはならない。
【0049】
上述のように、一般キャラ用接続ポートに接続されたゲームコントローラ1200には、2体の一般キャラクタ20(一般PC)が割り当てられる。つまり、1台のゲームコントローラ1200によって2体の一般キャラクタ20(一般PC)が制御される。この2体の一般キャラクタ20は互いに独立して制御される。
【0050】
図5は、ゲームコントローラ1200と一般キャラクタ20との制御関係を示す図である。同図に示すように、ゲームコントローラ1200に設けられている右ボタン群1220及び左ボタン群1222それぞれが、当該ゲームコントローラ1200に割り当てられた2体の一般キャラクタ20(一般PC)それぞれの制御に用いられる。ここで、右ボタン群1220によって制御される一般キャラクタ20(一般PC)を「第1の一般PC」といい、左ボタン群1222によって制御される一般キャラクタ20(一般PC)を「第2の一般PC」という。そして、右アナログレバー1202或いは左アナログレバー1204になされた操作方向に応じた方向に、対応する一般キャラクタ20が移動される。また、右プッシュボタン1210或いは左プッシュボタン1212の押下操作によって、対応する一般キャラクタ20が予め定められた特定の動作(例えば、所定範囲内の他のキャラクタに乗る)を行う。
【0051】
このように、本実施形態では、一般キャラ用接続ポートに接続された1台のゲームコントローラ1200で2体の一般キャラクタ20(一般PC)が制御される。また、本体装置1100には3つの一般キャラ用接続ポートが設けられている。つまり、最大合計6体の一般キャラクタ20がPCとなり得る。このため、ゲーム空間には、少なくとも6体の一般キャラクタ20が配置されている。
【0052】
一般キャラ用接続ポートに接続されたゲームコントローラ1200に割り当てられる一般キャラクタ20は、主役キャラクタ10との位置関係に基づいて決定される。図6は、ゲームコントローラ1200に割り当てる一般キャラクタ20の選択を説明するための図である。同図に示すように、接続ポート1110へのゲームコントローラ1200の接続が認識された時点において、主役キャラクタ10に最も近い2体のNPCである一般キャラクタ20(一般NPC)が、PCとして当該ゲームコントローラ1200に割り当てられる。
【0053】
同図では、ゲーム空間に、1体の主役キャラクタ10と5体の一般キャラクタ20a〜20eが配置されている。5体の一般キャラクタ20a〜20eのうち、一般キャラクタ20b,20c,20dがNPC(一般NPC)であり、一般キャラクタ20a,20eがPC(一般PC)である。また、各一般キャラクタ20a〜20eと主役キャラクタ10との距離Da〜Deには、Dc<Da<Db<Dd<De、の関係がある。従って、この場合、一般キャラクタ20b,20cがPCとしてゲームコントローラ1200に割り当てられる。
【0054】
図7は、主役キャラクタ10のモデル構成を説明する図である。主役キャラクタ10は、一頭一尾の想像上の紐状体形状を成すワーム(worm:細長く足のない動物)としてデザインされており、紐のように柔軟であるとともに、レオロジー物体のような伸縮自在な胴13を有する。つまり、主役キャラクタ10は、頭11及び尾12方向を伸身前後方向として胴13の太さをそのままに伸縮自在なキャラクタとして設定されている。なお、本実施形態では胴13が伸び縮みする形態として説明するが、キャラクタのデザインによっては、頭11や尾12も自在に伸び縮みする設定として、全身どこでも伸び縮みする設定としても良いのは勿論である。
【0055】
同図(a)に示すように、主役キャラクタ10は、複数のノード2が互いに前後の距離Lを一定にして配列された骨格モデルBMを有する。言い換えれば、ノード2が連結子4によって一列の関節構造として連結されており、連結子4は全て同じ固定長Lを有している。また、ノード2と連結子4との結合角度は、全て所定角度範囲θ内となるように限定されている。したがって、ノード2を関節と見なすと、骨格モデルBMは、複数の関節が一本の直列状に連結されており、しかも各関節では一定角度以上曲がらないことになる。ここで、複数あるノード2のうち、主役キャラクタ10の前方側端のノード2を「前端ノード2fr」といい、後方側端のノード2を「後端ノード2rr」という。
【0056】
また、同図(b)に示すように、主役キャラクタ10にはヒット判定モデルHMが設定されている。本実施形態におけるヒット判定モデルHMでは、各ノード2にヒット判定領域6が設定されている。ヒット判定領域6は、対応するノード2の位置座標を中心にして、半径R(=連結子4の長さL)の球状領域として設定されている。
【0057】
そして、同図(c)に示すように、主役キャラクタ10の表示モデルはポリゴンによって形成される。具体的には、各ノード2には、隣接するノード2に向かうそれぞれのベクトルの和のベクトルを面に含む表示基準円8が設定されている。そして、頭11及び尾12として、骨格モデルBMの先頭及び末尾のノード2を基準点として予め設定された頭部或いは尾部のモデルが配置されている。そして、胴13については、各ノードに設定されている表示基準円8で定義される円周の外縁を滑らかに結ぶように複数のポリゴンが生成・変形・再配置される。胴13におけるポリゴンモデルの形成は、例えばスケルトンモデルへの外皮形成処理などの公知のモデリング技術を適宜用いることによって実現できる。
【0058】
なお、本実施形態では、表示基準円8の半径はヒット判定領域6の半径Rと同じに設定されているので、主役キャラクタ10の外皮に何らかのオブジェクトが接触するとヒット判定されるように設定されているが、これに限るものではなく、ヒット判定領域6の半径Rよりやや大きく設定することによって、ヒットしたオブジェクトが主役キャラクタ10に刺さり、刺さった部分が見えなくなるような視覚的効果を図るようにしても良い。
【0059】
図8は、主役キャラクタ10の操作方法を説明する図である。主役キャラクタ10は、主役キャラ用接続ポートに接続されたゲームコントローラ1200からの操作入力によって制御される。具体的には、同図に示すように、ゲームコントローラ1200の左アナログレバー1204になされた操作入力(傾斜方向及び傾斜量)に応じて、骨格モデルBMの前端ノード2frに第1の操作力F1が設定される。また、右アナログレバー1202になされた操作入力に応じて、後端ノード2rrに第2の操作力F2が設定される。なお、操作力F以外に、重力や風に押される力などのゲーム空間に設定された様々な力や、他のキャラクタとの衝突によって受ける力が適宜設定され得るが、ここでは説明を省略する。
【0060】
第1の操作力F1或いは第2の操作力F2が設定されると、この操作力Fによって骨格モデルBMは前端ノード2fr或いは後端ノード2rrがそれぞれ引っ張られる格好となり、先に説明した骨格モデルBMの連結条件を考慮して所定の運動方程式に従って各ノード2の位置が更新される。そして、各ノード2の位置が更新された骨格モデルBMをベースに外皮を形成処理することによって、主役キャラクタ10の表示モデルの位置が更新される。これにより、主役キャラクタ10がゲーム空間内を移動するように表現される。
【0061】
また、右アナログレバー1202及び左アナログレバー1204の操作入力の組合せによって、主役キャラクタ10の伸張/短縮操作が可能である。図9は、主役キャラクタ10の伸長操作(伸ばす操作)を説明するための図である。同図(a)に示すように、ゲームコントローラ1200の右アナログレバー1202から右方向入力が、左アナログレバー1204から左方向入力が同時に入力されると、伸長操作入力となる。すると、同図(b)の俯瞰図に示すように、主役キャラクタ10の骨格モデルBMは、左側の状態から右側の状態に変更される。すなわち、前端ノード2frとその次の連結ノード2bとの間に新たなノード2aが追加されるとともに、後端ノード2rrとその次の連結ノード2cとの間に新たなノード2dが追加される。
【0062】
詳細には、前端ノード2frが、連結子4の長さLだけ、当該前端ノード2frの次連結ノード2bから当該前端ノード2frに向う方向a(前方)に移動され、当該前端ノード2frの元の位置に新たなノード2aが追加される。また、後端ノード2rrについても同様に、後端ノード2rrが、連結子4の長さLだけ、当該後端ノード2rrの次連結ノード2cから当該後端ノード2rrに向う方向b(後方)に移動され、当該後端ノード2rrの元の位置に新たなノード2dが追加される。そして、同図(c)の俯瞰図に示すように、主役キャラクタ10の表示モデルは、変更された骨格モデルBMに基づいて外皮が形成されることによって、左側の全長が短い状態から右側の全長が伸びた状態に変化する。
【0063】
一方、右アナログレバー1202から右方向入力され、左アナログレバー1204から左方向入力がされているが、同時入力とはみなされない場合には、同図(d)の左側の状態のように、単に左アナログレバー1204からの操作入力に応じた第1の操作力F1が前端ノード2frに作用し、右アナログレバー1202への入力に応じた第2の操作力F2が後端ノード2rrに作用しているとみなされる。したがって、同図(d)の場合、第1の操作力F1及び第2の操作力F2が、主役キャラクタ10の頭11及び尾12をそれぞれ引っ張るように作用し、新たなノード2は追加されずに前端ノード2frと後端ノード2rrが反対方向に引っ張られる格好となる。この結果、例えば骨格モデルBMが湾曲状態であれば、同図(d)の右側の状態のように直線状態に近づくことになる。なお、この「伸張操作」は、右アナログレバー1202及び左アナログレバー1204それぞれからの左右方向の同時入力に限らず、例えば、右アナログレバー1202と左アナログレバー1204の一方からの上方向入力と他方からの下方向入力との同時入力としても良い。
【0064】
また、図10は、主役キャラクタ10の短縮操作(縮める操作)を説明するための図である。同図(a)に示すように、ゲームコントローラ1200の右アナログレバー1202から左方向入力、左アナログレバー1204から右方向入力が同時入力されると、短縮操作入力となる。すると、主役キャラクタ10の骨格モデルBMは、同図(b)の俯瞰図に示すように、左側の状態から右側の状態に変更される。すなわち、前端ノード2frの次連結ノード2aが削除され、この次連結ノード2aの元の位置に前端ノード2frが移動される。また、後端ノード2rrの次連結ノード2dが削除され、この次連結ノード2dの元の位置に後端ノード2rrが移動される。そして、同図(c)の俯瞰図に示すように、主役キャラクタ10の表示モデルは、変更された骨格モデルBMに基づいて外皮が形成されることによって、左側の状態から全長が縮んだ右側の状態に変化する。
【0065】
一方、右アナログレバー1202から左方向入力され、左アナログレバー1204から右方向入力がされているが、同時入力とはみなされない場合には、単に左アナログレバー1204への入力に応じた第1の操作力F1が前端ノード2frに作用し、右アナログレバー1202への入力に応じた第2の操作力F2が後端ノード2rrに作用するように制御される。したがって、同図(d)の場合、第1の操作力F1及び第2の操作力F2は主役キャラクタ10の頭11と尾12を近づけるように作用する。その結果、骨格モデルBMが当初湾曲した状態であれば、同図(d)左側の状態のように、ノード2の削除は行われずに前端ノード2frと後端ノード2rrが近づく格好となるので、同図(d)の右側の状態のように湾曲がより強い状態になる。
【0066】
本実施形態では、このように主役キャラクタ10を操作する。したがって、プレーヤの立場からすると、できるだけ主役キャラクタ10の頭11と尾12がゲーム画面内に写され、且つある程度その周囲の状況が見えるように仮想カメラCMの撮影条件が制御されるのが望ましいことになる。なお、この「撮影条件」とは、仮想カメラCMのワールド座標系の位置や視線方向、画角(或いは、レンズの焦点距離)を含む意味である。
【0067】
図11,図12は、仮想カメラCMの撮影条件の設定を説明する図である。先ず、図11(a)に示すように、現時点における主役キャラクタ10を包含する個別包含領域30と、PCである一般キャラクタ20(一般PC)それぞれを包含する個別包含領域30を設定する。個別包含領域30は、バウンダリボックスと同様、ワールド座標系のXw,Yw,Zw軸の各軸に沿った平面で形成された直方体である。次いで、これらの個別包含領域30の全てを包含する全体包含領域40を設定する。この全体包含領域40も、個別包含領域30と同様に、ワールド座標系のXw,Yw,Zw軸の各軸に沿った平面で形成された直方体である。なお、一般キャラクタの全てがNPCである場合には、同図(b)に示すように、主役キャラクタ10の個別包含領域30が全体包含領域40となる。
【0068】
次いで、図12に示すように、全体包含領域40の対角線42を求める。対角線42は、例えば全体包含領域40の中心41を挟んで対称位置関係にある、X−Z平面に平行な下側平面の頂点と上側平面の頂点を結ぶ4つの線分である。なお、同図では、1つの対角線42のみを示している。続いて、この4つの対角線42それぞれを仮想カメラCMの撮影画像の画像座標系に投影し、投影線分43の画像座標系のXc軸成分投影寸法Lx及びYc軸成分投影寸法Lyを算出する。次いで、算出したXc軸成分投影寸法Lxの最大値及びYc軸成分投影寸法Lyそれぞれの最大値を求める。
【0069】
そして、求めたXc軸成分投影寸法LxとYc軸成分投影寸法Lyとを比較し、大きいほうの投影寸法Lmが、対応する画像座標軸方向の画面幅Wに対して所定比率(例えば、80%)を成すように、仮想カメラCMの撮影条件を設定する。すなわち、Xc軸成分投影寸法LxがYc軸成分投影寸法Lyより大きい(Lx>Ly)ならば、画像座標系のX軸方向の画面幅Wx(=仮想カメラCMの撮影画像の横寸法)に対するX軸成分投影寸法Lxの比が80%(Wx:Lx=100:80)となるように、仮想カメラCMの撮影条件(具体的には、位置及び画角θc)を設定する。一方、Xc軸成分投影寸法LxがYc軸成分投影寸法Ly以下(Lx≦Ly)ならば、画像座標系のY軸方向の画面幅Wy(=仮想カメラCMの撮影画像の縦寸法)に対するY軸成分投影寸法Lyの比が80%(Wy:Ly=100:80)となるように、仮想カメラCMの撮影条件を設定する。
【0070】
撮影条件の設定としては、例えば画角θcを固定とするならば、仮想カメラCMの視線方向44を全体包含領域40の中心41に向け、式(1)に従って、中心41と仮想カメラCMとの間の適正撮影距離Lcを求める。
Lc={(100/80)×Lm)}/{2×tan(θc/2)}…(1)
なお、適正撮影距離Lcを一定にして画角θcを求める構成としても良く、その場合も幾何学的に画角θcを求めることができる。
【0071】
また、仮想カメラCMを、主役キャラクタ10に対して左右どちらの方向に配置するかは適宜設定することができる。例えば、本実施形態では左アナログレバー1204からの操作入力に応じて頭11の移動が制御され、右アナログレバー1202からの操作入力に応じて尾12の移動が制御されるので、主役キャラクタ10の左側を撮影するように、主役キャラクタ10にとって左側に仮想カメラCMを配置すると望ましい。なぜならば、ゲーム画面の左側に主役キャラクタ10の頭11、画面右側に尾12が映されることになるのでゲームコントローラ1200における入力手段の配置関係と左右の位置関係が合致し自然な操作感が得られるからである。この結果、プレーヤが主役キャラクタ10を操作する上で基点となる主役キャラクタ10の頭11と尾12が常にゲーム画面に表示されるとともに、PCである一般キャラクタ20(一般PC)が存在する場合にはこの一般PCも表示されることになる。
【0072】
[機能構成]
図13は、家庭用ゲーム装置1000の機能構成を示すブロック図である。同図によれば、家庭用ゲーム装置1000は、機能的には、操作入力部100と、処理部200と、画像表示部300と、音出力部400と、通信部500と、記憶部600とを備えて構成される。
【0073】
操作入力部100は、プレーヤによる操作指示を受け付け、なされた各種操作入力に応じた操作信号を処理部200に出力する。図1では、ゲームコントローラ1200がこれに該当する。本実施形態では、操作入力部100は、主役キャラクタ10に対する操作入力を行うための主役キャラ用操作部110と、一般キャラクタ20に対する操作入力を行うための複数の一般キャラ用操作部120とを含んでいる。
【0074】
主役キャラ用操作部110は、1つの操作で少なくとも2軸の方向入力が可能な第1方向入力部111及び第2方向入力部112を有する。この主役キャラ用操作部110は、本体装置1100の接続ポート1110のうち、主役キャラ用接続ポートに接続されたゲームコントローラ1200が該当し、第1方向入力部111及び第2方向入力部112は、このゲームコントローラ1200の右ボタン群1220及び左ボタン群1222それぞれが該当する。
【0075】
一般キャラ用操作部120は、2体の一般キャラクタ20(一般PC)に対する操作入力が可能であり、それぞれに対する操作入力を独立して行うため、「第1の一般PC」に対する操作入力を行うための第1キャラ用入力部121と、「第2の一般PC」に対する操作入力を行うための第2キャラ用入力部122とを有している。この一般キャラ用操作部120は、一般キャラ用接続ポートに接続されたゲームコントローラ1200それぞれに該当し、第1キャラ用入力部121及び第2キャラ用入力部122は、このゲームコントローラ1200の右ボタン群1220及び左ボタン群1222それぞれが該当する。また、一般キャラ用操作部120の数は、現時点で一般キャラ用接続ポートに接続されているゲームコントローラ1200の数に等しい。
【0076】
なお、本体装置1100の接続ポート1110それぞれを主役キャラ用接続ポートとするか一般キャラ接続用ポートとするかは、ゲームの進行開始前にゲーム演算部210によって決定される。そして、各接続ポート1110の設定データは、接続ポート設定データ625に格納される。
【0077】
図14に、接続ポート設定データ625のデータ構成の一例を示す。同図によれば、接続ポート設定データ625は、接続ポート625a毎に、制御対象として設定されたキャラクタの種別625bを対応付けて格納している。
【0078】
処理部200は、記憶部600に記憶されているプログラムやデータ、操作入力部100からの操作信号等に基づき各種の演算処理を実行して、家庭用ゲーム装置1000の全体制御を行う。この処理部200は、例えばマイクロプロセッサやASIC(特定用途向け集積回路)、ICメモリ等によって実現される。図1では、本体装置1100に内蔵された制御ユニット1102がこれに該当する。また、本実施形態では、処理部200は、ゲーム演算部210と、画像生成部230と、音生成部240と、通信制御部250とを含む。
【0079】
ゲーム演算部210は、ゲームの進行にかかる処理を実行する。例えば、ゲーム空間を仮想空間中に形成する処理や、ゲーム空間中に配置された各種キャラクタの制御処理、ヒット判定処理、物理演算処理、ゲーム結果の算出処理等が含まれる。また、本実施形態では、ゲーム演算部210は、コントローラ接続検出部211と、主役キャラ制御部212と、一般キャラ制御部213と、仮想カメラ制御部216とを有し、記憶部600のゲームプログラム610に従ったゲーム処理を実行する。
【0080】
コントローラ接続検出部211は、本体装置1100へのゲームコントローラ1200の接続/切断(接続中断)を検出する。具体的には、定期的に、接続ポート1110それぞれへのゲームコントローラ1200の接続有無を判断するとともに、接続されているゲームコントローラ1200のコントローラIDを取得する。これにより、接続ポート1110への新たなゲームコントローラ1200の接続や、接続ポート1110に接続されていたゲームコントローラ1200の取り外し(切断)を検出する。
【0081】
主役キャラ制御部212は、主役キャラ用操作部110からの操作入力に従って主役キャラクタ10を制御する。具体的には、図8を参照して説明したように、第1方向入力部111及び第2方向入力部112それぞれからの操作入力(傾斜方向及び傾斜量)に応じた操作力F1,F2を、主役キャラクタ10の骨格モデルBMの前端ノード2fr及び後端ノード2rrそれぞれに設定する。操作力F1,F2は、連結子4を伝ってそれ以外のノード2にも作用する。このため、前端ノード2frと後端ノード2rrとの間の各ノード2に、ノード間の連結関係に従って連結子方向の操作力F1,F2の分力を作用させる。そして、作用させた力をもとに、運動方程式に従って骨格モデルBMの連結条件を満たすように各ノード2を移動させる。
【0082】
また、「伸張操作」が入力された場合には、図9を参照して説明したように、主役キャラクタ10の骨格モデルBMの前端ノード2frを連結子4の長さLだけ前方に移動させ、前端ノード2frの元の位置に新たなノード2を追加するとともに、後端ノード2rrを連結子4の長さLだけ後方に移動させ、後端ノード2rrの元の位置に、新たなノード2を追加する。ここで、「伸張操作」とは、右アナログレバー1202から右方向が、左アナログレバー1204から左方向が、同時に入力される操作である。すなわち、主役キャラ制御部212は、第1方向入力部111と第2方向入力部112から、同時入力とみなせる程度の時間差で互いに相反する方向が入力されると、「伸張操作」が入力されたと判断する。
【0083】
また、所定の「短縮操作」がなされた場合には、図10を参照して説明したように、主役キャラクタ10の骨格モデルBMの前端ノード2frの次連結ノード2を削除し、この次連結ノード2の元の位置に前端ノード2frを移動させるとともに、後端ノード2rrの次連結ノード2を削除し、この次連結ノード2の元の位置に後端ノード2rrを移動させる。ここで、「短縮操作」は、右アナログレバー1202から左方向が、左アナログレバー1204から右方向が、同時に入力される操作である。すなわち、主役キャラ制御部212は、第1方向入力部111と第2方向入力部112から、同時とみなせるほどの時間差で互いに近寄るような方向が入力されると、「短縮操作」が入力されたと判断する。
【0084】
なお、主役キャラ制御部212は、ノード増減許可タイマのカウント値が基準値に達していない場合には、伸張操作や短縮操作がなされても、主役キャラクタ10の伸張或いは短縮の制御は行わない。ノード増減許可タイマとは、主役キャラクタ10が伸長或いは短縮されない状態が継続している時間を計時(カウント)し、主役キャラクタ10の伸張或いは短縮の制御が終了した時点でリセットされる。つまり、主役キャラクタ10の伸張或いは短縮されない状態がある一定時間以上経過していない場合には、伸長操作や短縮操作を入力しても、伸長或いは短縮の制御は実行されない。これによって、伸長或いは短縮する動作にある種の時間的な「溜め」を作り、ゆっくりと主役キャラクタ10の胴が伸びたり縮んだりする際の抵抗感を表現し、あたかも胴13がある程度生き物らしく成長や変形によって伸び縮みしているかのように見せることができる。
【0085】
主役キャラクタ10についてのデータは、主役キャラデータ621に格納されている。図15に、主役キャラデータ621のデータ構成の一例を示す。同図によれば、主役キャラデータ621は、主役キャラクタ10のキャラクタID621aと、モデルデータ621bと、骨格モデルデータ622と、作用力データ623とを格納している。
【0086】
骨格モデルデータ622は、現時点での主役キャラクタ10の骨格モデルBMについてのデータである。図16に、骨格モデルデータ622のデータ構成の一例を示す。同図によれば、骨格モデルデータ622は、ノード622a毎に、現在の位置座標622bと、頭側連結ノード622cと、尾側連結ノード622dと、エフェクタ622eとを対応付けて格納している。頭側連結ノード622cは、対応するノード2の連結順で頭側(前側)に連結されているノード2である。尾側連結ノード622dは、対応するノード2の連結順で尾側(後側)に連結されているノード2である。エフェクタ622eは、当該ノード2が第1方向入力部111或いは第2方向入力部112からの操作入力に応じた操作力Fが作用するノードであるか否かを示すデータである。例えば、第2方向入力部112からの操作入力に応じた操作力F1が作用するノード2には「1」が、第1方向入力部111からの操作入力に応じた操作力F2が作用するノード2には「2」が、それ以外のノード2には「0」が、それぞれ設定される。
【0087】
作用力データ623は、現時点で主役キャラクタ10の各ノード2に作用している力(作用力)についてのデータである。図17に、作用力データ623のデータ構成の一例を示す。同図によれば、作用力データ623は、ノード623a毎に、操作力ベクトル623bと、外力ベクトル623cと、作用力ベクトル623dとを対応付けて格納している。操作力ベクトル623bは、第1方向入力部111及び第2方向入力部112からの操作入力に応じて当該ノード2に作用する力のベクトルである。外力ベクトル623cは、ゲーム空間自体に場として設定されている力や、ゲーム空間に配置されている他のオブジェクトによって作用する力のベクトルである。例えば、重力、他のオブジェクトとの衝突や接触によって生じる力、環境風を受けることによって生じる力等がこれに含まれる。作用力ベクトル623dは、操作力ベクトルと外力ベクトルとの和である。
【0088】
一般キャラ制御部213は、一般キャラ用接続ポートに接続されているゲームコントローラ1200への一般キャラクタ20の割り当てを行う。具体的には、コントローラ接続検出部211により一般キャラ用接続ポートへのゲームコントローラ1200の接続が検出されると、このゲームコントローラ1200に、2体のNPCである一般キャラクタ20(一般NPC)を割り当てる。すなわち、図6を参照して説明したように、ゲーム空間に配置されているNPCである一般キャラクタ20(一般NPC)のうちから、主役キャラクタ10から近い順に2体を選択し、選択した一般キャラクタ20(NPC)をPCに変更してこのゲームコントローラ1200に割り当てる。また、一般キャラ用接続ポートに接続されていたゲームコントローラ1200の切断(接続中断)が検出されると、このゲームコントローラ1200への一般キャラクタ20(一般PC)の割り当てを解除し、当該一般キャラクタ20をNPCに変更する。
【0089】
ゲームコントローラ1200へのキャラクタの割り当てについてのデータは、キャラ割り当てデータ626に格納される。図18に、キャラ割り当てデータ626のデータ構成の一例を示す。同図によれば、キャラ割り当てデータ626は、接続ポート626a毎に、接続されているゲームコントローラ626bと、割り当てられているキャラクタ626cとを対応付けて格納している。割り当てキャラクタ626cは、主役キャラ用接続ポートについては主役キャラクタ10のキャラクタIDが格納され、一般キャラ用接続ポートについては、当該ポートに接続されているゲームコントローラ1200に割り当てられた2体の一般キャラクタ20のキャラクタIDが格納される。但し、ゲームコントローラ1200が接続されていない接続ポート1110については、キャラクタが割り当てられない。
【0090】
また、一般キャラ制御部213は、NPCである一般キャラクタ20(一般PC)を制御する一般PC制御部214と、PCである一般キャラクタ20(一般NPC)を制御する一般NPC制御部215とを有する。
【0091】
一般NPC制御部215は、NPCである一般キャラクタ20(一般NPC)を、当該キャラクタに予め定められている所定の制御ルーチン、並びに全ての一般キャラクタ20に対して共通に定められている一般キャラ行動テーブル631に従って制御する。
【0092】
一般キャラ行動テーブル631は、一般キャラクタ20の行動をその発動条件と対応付けて定めたデータテーブルである。図30に、一般キャラ行動テーブル631のデータ構成の一例を示す。同図によれば、一般キャラ行動テーブル631は、一般キャラクタ20がとり得る行動631aそれぞれについて、行動発動条件631bを対応付けて格納している。行動発動条件631bは、一般キャラクタ20がNPCであるかPCであるかに応じて異なる。すなわち、NPCであるときの発動条件として、ゲーム空間の環境や、当該一般キャラクタ20と他のキャラクタ(主役キャラクタ20或いは他の一般キャラクタ20)との相対位置関係に基づく条件が設定され、PCであるときの発動条件としては、上記NPCであるときの発動条件とゲームコントローラ1200からの操作信号とを組み合わせた条件が設定されている。これにより、プレーヤがPCである一般キャラクタ20を操作して、当該一般キャラクタ20がNPCであるときと同様の行動を行わせることが可能となる。
【0093】
一般PC制御部214は、PCである一般キャラクタ20(一般PC)を、一般キャラ行動テーブル631を参照し、該当する一般キャラ用操作部120からの操作入力に従って制御する。すなわち、一般キャラクタ20(一般PC)が、割り当てられているゲームコントローラ1200の「第1の一般PC」として設定されているならば、第1キャラ用入力部121からの操作入力に従って制御し、「第2の一般PC」として設定されているならば、第2キャラ用入力部122からの操作入力に従って制御する。
【0094】
一般キャラクタ20についてのデータは、一般キャラデータ624に格納されている。図19に、一般キャラデータ624のデータ構成の一例を示す。同図によれば、一般キャラデータ624は、ゲーム空間に配置されている一般キャラクタ毎に生成され、該当する一般キャラクタ20のキャラクタID624aと、種類624bと、モデルデータ624cと、現在位置624dと、制御形態624eと、制御ルーチン624fとを格納している。現在位置624dは、ワールド座標系で表現された当該一般キャラクタ20の代表点の位置座標である。制御形態624eは、当該一般キャラクタ20がPCであるかNPCであるかを示す値が格納される。
【0095】
仮想カメラ制御部216は、仮想カメラCMを制御する。具体的には、図11,図12を参照して説明したように仮想カメラCMの撮影条件を決定する。すなわち、主役キャラクタ10及びPCである一般キャラクタ20(一般PC)それぞれを包含する個別包含領域30を設定し、これらの個別包含領域30全てを包含する全体包含領域40を設定する。また、主役キャラクタ10との相対位置が所定の位置関係を満たすように仮想カメラCMの仮配置位置を決定し、この仮配置位置を基準として全体包含領域40の中心41を向くように仮想カメラCMの視線方向を設定する。ここで、満たすべき「相対位置関係」としては、例えば主役キャラクタ10の左斜め上方の位置である。
【0096】
次いで、全体包含領域40の4つの対角線42それぞれを仮想カメラCMの撮影画像の画像座標系に投影したXc軸成分投影寸法Lx及びYc軸成分投影寸法Ycのうち、大きいほうの投影寸法Lmを求め、仮想カメラCMの画角θcを所定値として式(1)に従って最適撮影距離Lcを算出する。そして、仮想カメラCMの視線方向に沿って、全体包含領域40の中心41から最適撮影距離Lcの位置を、仮想カメラCMの配置位置として設定する。
【0097】
仮想カメラCMについてのデータは、仮想カメラデータ627に格納される。図20に、仮想カメラデータ627のデータ構成の一例を示す。同図によれば、仮想カメラデータ627は、現在の仮想カメラCMの配置位置627aと、視線方向627bと、画角627cとを格納している。
【0098】
画像生成部230は、ゲーム演算部210による処理結果に基づいて1フレーム時間(1/60秒)で1枚のゲーム画像を生成し、生成したゲーム画像の画像信号を画像表示部300に出力する。この画像生成部230は、例えば、デジタルシグナルプロセッサ(DSP)などのプロセッサ、その制御プログラム、フレームバッファ等の描画フレーム用ICメモリ等によって実現される。画像表示部300は、画像生成部230から入力される画像信号に基づいて各種ゲーム画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管(CRT)、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。図1では、ビデオモニタ1300のディスプレイ1302がこれに該当する。
【0099】
音生成部240は、ゲーム演算部210による処理結果に基づいてゲームに係る効果音やBGM、各種操作音の音信号を生成し、音出力部400に出力する。この音生成部240は、例えばデジタルシグナルプロセッサ(DSP)などのプロセッサやその制御プログラムによって実現される。音出力部400は、音生成部240から入力される音信号に基づいて効果音やBGM等を音出力する装置によって実現される。図1では、ビデオモニタ1300のスピーカ1304がこれに該当する。
【0100】
通信制御部250は、データ通信に係るデータ処理を実行し、通信部500を介して外部装置とのデータのやりとりを実現する。通信部500は、通信回線Nと接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現され、図1では、通信装置1108がこれに該当する。
【0101】
記憶部600は、処理部200に家庭用ゲーム装置1000を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なゲームプログラム、各種データ等を記憶する。また、処理部200の作業領域として用いられ、処理部200が各種プログラムに従って実行した演算結果や操作入力部100から入力される入力データ等を一時的に記憶する。この機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD−ROMやDVDなどの光学ディスクなどによって実現される。本実施形態では、記憶部600には、プログラムとして、ゲームプログラム610が記憶されるとともに、データとして、主役キャラデータ621と、一般キャラデータ624と、接続ポート設定データ625と、キャラ割り当てデータ626と、仮想カメラデータ627と、一般キャラ行動テーブル631とが記憶される。
【0102】
[処理の流れ]
図21は、本実施形態のゲーム処理の流れを説明するためのフローチャートである。この処理は、処理部200がゲームプログラム610を実行することで実現される。同図によれば、ゲーム演算部210は、先ず、仮想空間にゲーム空間を形成し、このゲーム空間に、主役キャラクタ10及び一般キャラクタ20を含む各種キャラクタや、仮想カメラCM等を配置する(ステップA1)。次いで、接続ポート1110に設定するキャラクタの種別(主役/一般)を決定する(ステップA3)。すなわち、現時点でゲームコントローラ1200が接続されている接続ポート1110を判断し、これが1つであれば、当該接続ポート1110を主役キャラ用接続ポートとし、2つ以上であれば、例えば最も左に位置する1つの接続ポート1110を主役キャラ用接続ポートとし、なければ、予め定められた1つの接続ポート1110を主役キャラ用接続ポートとする。そして、それ以外の接続ポート1110を一般キャラ用接続ポートとする。その後、ゲームの進行制御を開始する(ステップA5)。そして、ゲームの進行中は、一般キャラ制御部213が、一般キャラ制御処理を実行して一般キャラクタ20を制御する(ステップA7)。
【0103】
図22は、一般キャラ制御処理の流れを説明するためのフローチャートである。同図によれば、一般キャラ制御部213は、一般キャラ用接続ポートに新たなゲームコントローラ1200が接続されたかを判断する。新たなゲームコントローラ1200が接続されたならば(ステップB1:YES)、NPCである一般キャラクタ20(一般NPC)のうちから、主役キャラクタ10に近い順に2体の一般キャラクタ20を選択し(ステップB3)、これらの一般キャラクタ20をPCに変更して、この新たなゲームコントローラ1200に割り当てる(ステップB5)。
【0104】
また、一般キャラ用接続ポートに接続されているゲームコントローラ1200が取り外されたか(切断)を判断し、取り外されたならば(ステップB7:YES)、この取り外されたゲームコントローラ1200への一般キャラクタ20の割り当てを解除し、割り当てられていた一般キャラクタ20をNPCに変更する(ステップB9)。
【0105】
続いて、一般キャラ制御部213は、ゲーム空間に配置されている一般キャラクタ20それぞれを対象としてループAの処理を行う。ループAでは、対象の一般キャラクタ20がPCであるかNPCであるかを判断し、PCであるならば(ステップB11:YES)、当該キャラクタが割り当てられている一般キャラ用操作部120の該当する入力部(すなわち、対応する一般キャラ用接続ポートに接続されているゲームコントローラ1200の対応するボタン群)からの操作入力に従って、対象の一般キャラクタ20を制御する(ステップB13)。一方、対象の一般キャラクタ20がNPCであるならば(ステップB11:NO)、該当する一般キャラデータ624を参照し、設定されている制御ルーチンに従って対象の一般キャラクタ20を制御する(ステップB15)。そして、全ての一般キャラクタ20を対象としたループAの処理を終了すると、一般キャラ制御処理を終了する。
【0106】
また、主役キャラ制御部212が、主役キャラ制御処理を実行して主役キャラクタ10を制御する(ステップA9)。
【0107】
図23は、主役キャラ制御処理の流れを説明するためのフローチャートである。同図によれば、主役キャラ制御部212は、伸縮処理を実行して、主役キャラクタ10を伸張或いは短縮させる(ステップC1)。
【0108】
図24は、伸縮処理の流れを説明するためのフローチャートである。同図によれば、主役キャラ制御部212は、先ず、ノード増減許可タイマのカウントを所定数加算し(ステップD1)、加算した後のノード増減許可タイマのカウント値が基準値に達しているか否かを判定する。ノード増減許可タイマのカウント値が基準値に達していなければ(ステップD3:NO)、伸縮処理をそのまま終了する。
【0109】
一方、ノード増減許可タイマのカウント値が基準値に達しているならば(ステップD3:YES)、主役キャラ制御部212は、所定の「伸長操作」が入力されたかを判定する。そして、「伸張操作」が入力されたと判定したならば(ステップD5:YES)、主役キャラ制御部212は、主役キャラクタ10の前端ノード2fr(頭11のノード2)を連結子4の長さLだけ前方に移動させ(ステップD7)、移動させた前端ノード2frとその連結ノード2との間に新たなノード2を追加する(ステップD9)。また、主役キャラクタ10の後端ノード2rr(尾12のノード2)を連結子4の長さLだけ後方に移動させ(ステップD11)、移動させた後端ノード2rrとその連結ノード2との間に新たなノード2を追加する(ステップD13)。
【0110】
また、「伸張操作」が入力されていないならば(ステップD5:NO)、主役キャラ制御部212は、所定の「短縮操作」が入力されたかを判定する。そして、「短縮操作」が入力されたと判定したならば(ステップD15:YES)、主役キャラ制御部212は、主役キャラクタ10の前端ノード2frの次に連結されているノード(次連結ノード)と、後端ノード2rrの次に連結されているノード(連結ノード)を削除し(ステップD17)、前端ノード2fr及び後端ノード2rrそれぞれを、削除した次連結ノードの位置に移動させる(ステップD19)。その後、主役キャラ制御部212は、ノード増減許可タイマをリセットして「0」に戻してリスタートし(ステップS21)、伸縮処理を終了する。
【0111】
伸縮処理を終了すると、主役キャラ制御部212は、作用力設定処理を実行して、主役キャラクタ10に作用力を設定する(ステップC3)。
【0112】
図25は、作用力設定処理の流れを説明するためのフローチャートである。同図によれば、主役キャラ制御部212は、主役キャラ用操作部110の第1方向入力部111(すなわち、主役キャラ用接続ポートに接続されているゲームコントローラ1200の左アナログレバー1204)からの操作入力(傾倒方向及び傾倒量)に応じた第1の操作力F1を決定し、操作力ベクトルとして主役キャラクタ10の頭11に対応する前端ノード2frに設定する(ステップE1)。次いで、前端ノード2frから各ノードに連結子4を介して伝わる操作力F1の分力をノード2の連結順に従って算出し、操作力ベクトルとして各ノード2に設定する(ステップE3)。
【0113】
また、主役キャラ用操作部110の第2方向入力部112(すなわち、右アナログレバー1202の)からの操作入力(傾倒方向及び傾倒量)に応じた第2の操作力F2を決定し、操作力ベクトルとして主役キャラクタ10の尾12に対応する後端ノード2rrに設定する(ステップE5)。次いで、後端ノード2rrから各ノード2に連結子4を介して伝わる操作力F2の分力をノード2の連結順に従って算出し、各ノード2の操作力ベクトルに加算する(ステップE7)。
【0114】
また、主役キャラ制御部212は、主役キャラクタ10に作用する外力を設定する。すなわち、骨格モデルBMの各ノード2について、主役キャラクタ10に作用する重力や電磁力、風力などゲーム空間に環境要因として設定されている力、或いは他のオブジェクトとの衝突によって受ける力などを算出し、外力ベクトルとして設定する(ステップE9)。そして、主役キャラクタ10の全ノード2について、操作力ベクトルと外力ベクトルとの和を求め、それぞれの作用力ベクトルとして設定する(ステップE11)。以上の処理を行うと、作用力設定処理を終了する。
【0115】
作用力設定処理を終了すると、主役キャラ制御部212は、続いて、主役キャラクタ10の移動制御処理を行う(ステップC5)。この移動制御処理では、主役キャラクタ10の各ノード2に設定された作用力ベクトルをもとに、骨格モデルBMの連結条件を満たす各ノード2の次の位置を算出する。以上の処理を行うと、主役キャラ制御処理を終了する。
【0116】
また、仮想カメラ制御部216が、仮想カメラ制御処理を実行して仮想カメラCMを制御する(ステップA11)。
【0117】
図26は、仮想カメラ制御処理の流れを説明するためのフローチャートである。同図によれば、仮想カメラ制御部216は、主役キャラクタ10に対する相対位置が所定の位置関係となるよう、仮想カメラCMの仮配置位置を決定する(ステップF1)。また、主役キャラクタ10の全体を包含する個別包含領域30を設定するとともに(ステップF3)、PCである一般キャラクタ20(一般PC)それぞれを包含する個別包含領域30を設定する(ステップF5)。次いで、これらの個別包含領域30の全てを包含する全体包含領域40を設定する(ステップF7)。そして、仮配置位置から見て全体包含領域40の中心41に向うように、仮想カメラCMの視線方向を決定する(ステップF9)。
【0118】
続いて、仮想カメラ制御部216は、全体包含領域40の対角線42を求め(ステップF11)、求めた各対角線42を仮想カメラCMの画像座標系に投影し、撮影画像上におけるXc軸方向投影寸法Lx及びYc軸方向投影寸法Lyを算出する(ステップF13)。次いで、算出したXc軸方向投影寸法Lxの最大値と、Yc軸方向投影寸法Lyの最大値とを比較し、大きい方の投影寸法Lmを求める(ステップF15)。次いで、投影寸法Lmをもとに、式(1)に従って、仮想カメラCMの全体包含領域40の中心41からの適正撮影距離Lcを決定する(ステップF17)。そして、全体包含領域40の中心41から仮配置位置に向って視線方向に沿って適正撮影距離Lcとなる位置を、仮想カメラCMの次の配置位置とする(ステップF19)。以上の処理を行うと、仮想カメラ制御処理を終了する。
【0119】
仮想カメラ制御処理を終了すると、画像生成部230が、仮想カメラCMに基づくゲーム空間の画像を生成し、ゲーム画面として画像表示部300に表示させる(ステップA13)。その後、ゲーム演算部210は、ゲームの終了条件を満たすか否かを判断し、満たさないならば(ステップA15:NO)、ステップA7に戻ってゲームの進行を続行し、終了条件を満たすならば(ステップA15:YES)、ゲームの進行を終了してゲーム処理を終了する。
【0120】
[変形例]
以上、本発明の一実施形態を説明したが、本発明の適用可能な実施形態は上述の実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で適宜変更可能なのは勿論である。
【0121】
(A)ゲームコントローラ1200に割り当てる一般キャラクタ20
(A1)主役キャラクタ10との位置関係
上述の実施形態では、ゲームコントローラ1200に割り当てる一般キャラクタ20を、主役キャラクタ10に近い順から選択することにしたが、主役キャラクタ10を基準として相対的な位置関係が所定条件を満たす一般キャラクタ20であれば何れを選択することにしても良い。例えば、主役キャラクタ10から所定距離の範囲内の一般NPCのうちからランダムに選択することにしても良い。ここで、主役キャラクタ10を基準とするのは、仮想カメラCMの表示対象となる範囲が広くなり、ゲーム画面中のキャラクタが小さくなり過ぎるのを防止するためである。
【0122】
(A2)一般キャラクタ20の種類
また、一般キャラクタ20を複数種類用意し、種類間に相対的な特性(関係)を定め、所定の特性にある一般キャラクタ20を選択して割り当てることにしても良い。一般キャラクタ20の種類間の特性としては、例えば次のようなものがある。すなわち、“らいおん”は“うさぎ”に対して優勢であり、逆に“うさぎ”は“らいおん”に対して劣勢であるといった「優劣」や、“けいさつかん”と“どろぼう”といった互いに反目する関係にある「敵味方」、“はりねずみ”は何れのキャラクタにも物理的に所定距離以内に近づけない「接近可否」といったものがある。また、一般キャラクタ20の種類を“いきもの”と“のりもの”に分類し、“いきもの”は“のりもの”に“乗る”ことができるといった「合体可能」や逆に“のりもの”は“のりもの”に“乗る”ことができないといった「合体不可能」もある。これらの特性を参考に、例えば“いきもの”と“のりもの”や“けいさつかん”と“どろぼう”といった、特性が相反する2体の一般キャラクタ20を1台のゲームコントローラ1200に割り当てたり、“いきもの”と“いきもの”といった同じ特性の一般キャラクタ20を1台のゲームコントローラ1200に割り当てたりする。
【0123】
(A3)一般キャラクタ20の割り当て履歴
また、本体装置1100に接続されたゲームコントローラ1200に割り当てる一般キャラクタ20を、これまでの割り当て履歴に基づいて決定することにしても良い。具体的には、ゲームコントローラ1200に割り当てた一般キャラクタ20を、割り当て履歴として一般キャラ割り当て履歴データ631に格納しておく。
【0124】
図27に、一般キャラ割り当て履歴データ631のデータ構成の一例を示す。同図によれば、一般キャラ割り当て履歴データ631は、割り当て履歴として、これまでに接続が検出されたゲームコントローラ631a毎に、割り当てられた一般キャラクタ631bを対応付けて格納している。そして、新たにゲームコントローラ1200が接続された場合には、この一般キャラ割り当て履歴データ631を参照して、以前に当該ゲームコントローラ1200に割り当てた一般キャラクタ20以外のキャラクタを選択して割り当てる。
【0125】
或いは、以前に当該ゲームコントローラ1200に割り当てた一般キャラクタ20と同じキャラクタを割り当てることにしても良い。このとき、該当する一般キャラクタ20が、現時点で他のゲームコントローラ1200に割り当てられている(すなわち、PCである)場合には、これ以外のNPCである一般キャラクタ20(一般NPC)のうちから選択して割り当てるようにすれば良い。
【0126】
(A4)プレーヤが選択
また、新たに接続したゲームコントローラ1200に割り当てる一般キャラクタ20をプレーヤが選択するようにしても良い。具体的には、新たなゲームコントローラ1200の接続が検出(認識)されると、当該時点においてNPCである一般キャラクタ20(一般NPC)を、例えばゲーム画面において所定のマークを付加表示したり、当該キャラクタのアイコン(簡易画像)を一覧表示させる等してプレーヤに対して提示し、プレーヤによる当該ゲームコントローラ1200からの選択操作によって選択された一般NPCをPCとして当該ゲームコントローラ1200に割り当てる。
【0127】
(B)一般キャラクタ20のカスタマイズ
また、一般キャラクタ20のカスタマイズを可能としても良い。すなわち、PCである一般キャラクタ20について、該当するプレーヤが、当該一般キャラクタ20の髪の毛や肌の色といったキャラクタのパーツや、服や帽子、持ち物といったアイテムを変更可能とする。また、このカスタマイズ可能なパーツやアイテムは、一般キャラクタ20の種類やプレーヤレベルに応じて異なることにしても良い、
【0128】
(C)仮想カメラCMの制御
また、仮想カメラCMをプレーヤの操作入力によって制御することにしても良い。具体的には、図28に示すように、仮想カメラCMの視線方向44を全体包含領域40の中心41に向けたまま、ゲームコントローラ1200からの操作入力に従って、仮想カメラCMの配置位置を、Xc−Zc平面に平行な方向aに移動させるとともに、Yc−Zc平面に平行な方向bに移動させるように制御する。そして、この制御された仮想カメラCMの配置位置を仮配置位置として、視線方向44に沿った全体包含領域40の中心41からの適正撮影距離Lcを算出して仮想カメラCMを制御する。これにより、主役キャラクタ10等に対して回り込むようなカメラワークが実現される。
【0129】
ここで、仮想カメラCMの制御を可能とするゲームコントローラ1200は、主役キャラ用接続ポートに接続されたゲームコントローラ1200であることが望ましいが、一般キャラ用接続ポートに接続されたゲームコントローラ1200としても良い。
【0130】
また、ゲームコントローラ1200における仮想カメラCMの制御操作の入力は、ゲームコントローラ1200に設けられた所定のボタン操作(或いは、スイッチ操作やレバー操作等でも良い)で実現しても良いし、或いは、ゲームコントローラ1200に所定のN軸の加速度センサを内蔵する構成とし、ゲームコントローラ1200を傾斜させることで実現しても良い、
【0131】
(D)ゲームコントローラ
上述の実施形態では、ゲームコントローラ1200を、左右の両手で把持し、右ボタン群1220及び左ボタン群1222それぞれを操作することで2体の一般キャラクタ20を制御可能な構成としたが、これ以外の構成としても良い。
【0132】
具体的には、例えば、図29に示すように片手で把持する形状のゲームコントローラを用いることにしても良い。同図によれば、家庭用ゲーム装置1000Aは、片手で把持可能な棒状のゲームコントローラ1200Aを備える。このゲームコントローラ1200Aの上面には、右アナログレバー1202及び左アナログレバー1204に相当する十字キー1242が設けられているとともに、本体装置1100に内蔵された制御ユニット1102に実装された無線通信装置1132と無線通信を行う無線通信装置1244を内蔵している。
【0133】
また、ゲームコントローラ1200Aにはサブコントローラ1200Bが有線接続可能である。サブコントローラ1200Bには、右アナログレバー1202及び左アナログレバー1204に相当するアナログレバー1252が設けられている。そして、アナログレバー1252の操作信号は、当該サブコントローラ1200Bが接続されたゲームコントローラ1200Aを介して本体装置1100に送信される。つまり、ゲームコントローラ1200Aは単独の状態で1台のゲームコントローラを形成することも、サブコントローラ1200Bが接続された状態で1台のゲームコントローラを形成することも可能である。
【0134】
この場合、ゲームコントローラ1200A及びサブコントローラ1200Bには、1台につき1体の一般キャラクタ20が割り当てられる。すなわち、ゲームコントローラ1200Aは、サブコントローラ1200Bが接続されているか否かを示す情報を本体装置1100に送信し、本体装置1100では、接続されたゲームコントローラ1200Aにサブコントローラ1200Bが接続されているか否かに応じて割り当てる一般キャラクタ20を決定する。つまり、ゲームコントローラ1200Aにサブコントローラ1200Bが接続されていない場合には、当該ゲームコントローラ1200Aに1体の一般キャラクタを割り当てる。すなわち、ゲームコントローラ全体として1体の一般キャラクタ20が割り当てられることになる。一方、ゲームコントローラ1200Aにサブコントローラ1200Bが接続されている場合には、当該ゲームコントローラ1200A及び当該サブコントローラ1200Bそれぞれに1体の一般キャラクタ20を割り当てる。すなわち、ゲームコントローラ全体として2体の一般キャラクタ20が割り当てられることになる。
【0135】
(E)一般キャラクタ20の割り当てを報知
また、ゲームコントローラ1200に割り当てられた一般キャラクタ20をプレーヤに報知することにしても良い。具体的には、例えば、ゲーム画面において、PCである一般キャラクタ20(一般PC)に、対応するゲームコントローラ1200が接続されている接続ポート1110を示す所定のマークを表示する。
【0136】
(F)ゲームコントローラ1200の接続形態
上述の実施形態では、本体装置1100とゲームコントローラ1200を有線接続することにしたが、無線接続することにしても良い。この場合には、更に、本体装置1100に有線接続されているゲームコントローラ1200について接続を認識させたまま無線接続に移行させることや、逆に、無線接続されているゲームコントローラ1200について接続を認識させたまま有線接続に移行させることを可能としても良い。
【図面の簡単な説明】
【0137】
【図1】家庭用ゲーム装置の外観例。
【図2】ゲーム空間の一例。
【図3】ゲーム空間の一例。
【図4】ゲームコントローラとキャラクタとの制御関係図。
【図5】ゲームコントローラと一般キャラクタとの制御関係図。
【図6】ゲームコントローラに割り当てる一般キャラクタの選択の説明図。
【図7】主役キャラクタのモデル構成図。
【図8】主役キャラクタの操作方法の説明図。
【図9】主役キャラクタの伸張操作方法の説明図。
【図10】主役キャラクタの短縮操作方法の説明図。
【図11】仮想カメラの制御方法の説明図。
【図12】仮想カメラの制御方法の説明図。
【図13】家庭用ゲーム装置の機能構成図。
【図14】接続ポート設定データのデータ構成例。
【図15】主役キャラデータのデータ構成例。
【図16】骨格モデルデータのデータ構成例。
【図17】作用力データのデータ構成例。
【図18】キャラ割り当てデータのデータ構成例。
【図19】一般キャラデータのデータ構成例。
【図20】仮想カメラデータのデータ構成例。
【図21】ゲーム処理のフローチャート。
【図22】一般キャラ制御処理のフローチャート。
【図23】主役キャラ制御処理のフローチャート。
【図24】伸縮処理のフローチャート。
【図25】作用力設定処理のフローチャート。
【図26】仮想カメラ設定処理のフローチャート。
【図27】一般キャラ割り当て履歴データのデータ構成例。
【図28】仮想カメラの制御方法の説明図。
【図29】家庭用ゲーム装置の他の外観例。
【図30】一般キャラ行動テーブルのデータ構成例。
【符号の説明】
【0138】
1000 家庭用ゲーム装置
100 操作入力部
110 主役キャラ用操作部
111 第1方向入力部、112 第2方向入力部
120 一般キャラ用操作部
121 第1キャラ用入力部、122 第2キャラ用入力部
200 処理部
210 ゲーム演算部
211 コントローラ接続検出部
212 主役キャラ制御部
213 一般キャラ制御部
214 一般PC制御部、215 一般NPC制御部
216 仮想カメラ制御部
600 記憶部
610 ゲームプログラム
621 主役キャラデータ、624 一般キャラデータ
625 接続ポート設定データ、626 キャラ割り当てデータ
627 仮想カメラデータ
631 一般キャラ行動テーブル

【特許請求の範囲】
【請求項1】
有線又は無線によりコントローラの接続が可能なコンピュータに、ゲーム空間中を移動可能なNPC(ノンプレーヤキャラクタ)をコンピュータ制御するとともに所与の仮想カメラから見た前記ゲーム空間の画像を生成して所定のゲームを進行制御させるためのプログラムであって、
前記ゲームの進行制御中に新たなコントローラの接続を認識する接続認識手段、
前記接続認識手段により新たなコントローラの接続が認識された場合に、NPCを当該新たなコントローラの操作入力で制御される新たなPC(プレーヤキャラクタ)として割り当てる割当手段、
前記割当手段により割り当てられた新たなPCを、割り当てられた新たなコントローラの操作入力に従って制御するPC制御手段、
前記割当手段により割り当てられていないNPCをコンピュータ制御するNPC制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項2】
前記割当手段は、複数のNPCのうちから選択した所定数のNPCを新たなPCとして割り当てるように前記コンピュータを機能させるための請求項1に記載のプログラム。
【請求項3】
前記ゲームの開始前に前記ゲーム空間中に複数のNPCを配置するNPC配置手段として前記コンピュータを機能させ、
前記割当手段が、前記NPC配置手段により配置されたNPCの中から新たにPCとして割り当てるNPCを選択するように前記コンピュータを機能させ、
前記NPC制御手段が、前記NPC配置手段により配置されたNPCであり、前記割当手段により割り当てられていないNPCをコンピュータ制御するように前記コンピュータを機能させる、
ための請求項2に記載のプログラム。
【請求項4】
接続済みのコントローラの接続中断を検出する中断検出手段、
前記中断検出手段の検出に応じて、接続中断が検出されたコントローラに割り当てられていたPCの割り当てを解除する割当解除手段、
として前記コンピュータを機能させるための請求項2又は3に記載のプログラム。
【請求項5】
前記割当手段が、前記接続認識手段により認識された新たなコントローラが、前記中断検出手段により過去に検出されたコントローラであった場合に、以前、当該コントローラに割り当てていたNPC以外のNPCを、当該コントローラの操作入力で制御される新たなPCとして割り当てるように前記コンピュータを機能させるための請求項4に記載のプログラム。
【請求項6】
前記割当手段が、前記接続認識手段により認識された新たなコントローラが、前記中断検出手段により過去に検出されたコントローラであった場合に、以前、当該コントローラに割り当てていたNPCと同一のNPCを、当該コントローラの操作入力で制御される新たなPCとして割り当てるように前記コンピュータを機能させるための請求項4に記載のプログラム。
【請求項7】
前記ゲームの進行制御中において、前記仮想カメラの視線方向、画角及びカメラ位置のうちの少なくとも1つを制御して、現時点の全てのPCを表示範囲内とする制御を行う仮想カメラ制御手段として前記コンピュータを機能させるための請求項2〜6の何れか一項に記載のプログラム。
【請求項8】
前記ゲーム空間中に、現時点の全てのPCを内包する内包領域を設定する内包領域設定手段として前記コンピュータを機能させるとともに、
前記仮想カメラ制御手段が、前記内包領域を用いて前記仮想カメラの制御を行うように前記コンピュータを機能させる、
ための請求項7に記載のプログラム。
【請求項9】
前記ゲームの開始前に接続済みの1台のコントローラと、当該コントローラの操作入力に従って制御される常時PCとを対応付けて設定する常時PC対応設定手段、
前記常時PCを、前記常時PC対応設定手段によって対応付けて設定されたコントローラの操作入力に従って制御する常時PC制御手段、
として前記コンピュータを機能させるとともに、
前記仮想カメラ制御手段が、前記常時PC対応設定手段によって対応付けて設定されたコントローラの操作入力に従って前記仮想カメラのカメラ位置を制御するカメラ位置制御手段を有し、該カメラ位置制御手段により制御されたカメラ位置を基準として、前記仮想カメラの視線方向及び/又は画角を制御して、現時点の全てのPCを表示範囲内とする制御を行うように前記コンピュータを機能させる、
ための請求項7又は8に記載のプログラム。
【請求項10】
前記ゲームの開始前に接続済みの1台のコントローラと、当該コントローラの操作入力に従って制御される常時PCとを対応付けて設定する常時PC対応設定手段、
前記常時PCを、前記常時PC対応設定手段によって対応付けて設定されたコントローラの操作入力に従って制御する常時PC制御手段、
として前記コンピュータを機能させるとともに、
前記割当手段が、前記常時PCとの相対的な位置関係が所定の選択条件を満たすNPCを、新たなPCとして割り当てるように前記コンピュータを機能させる、
ための請求項2〜9の何れか一項に記載のプログラム。
【請求項11】
前記コントローラは、両手で把持し、左右それぞれの手指で操作する左右の方向操作入力部を有し、
前記割当手段が、前記接続認識手段により認識された新たなコントローラに、当該コントローラの左手用の方向操作入力部からの操作入力で制御される1体の新たなPCと、右手用の方向操作入力部からの操作入力で制御される1体の新たなPCとを新たに割り当てるように前記コンピュータを機能させるための請求項2〜10の何れか一項に記載のプログラム。
【請求項12】
前記コントローラには、方向操作入力部を備えた1つの片手把持用のコントローラでなる第1コントローラと、方向操作入力部を備えた2つの片手把持用のコントローラが接続されてなる第2コントローラとが有り、
前記接続認識手段により新たに認識されたコントローラが前記第1コントローラか前記第2コントローラかを判別する判別手段として前記コンピュータを機能させ、
前記割当手段が、前記接続認識手段により認識された新たなコントローラが前記判別手段により前記第1コントローラと判別された場合には、当該新たなコントローラに1体の新たなPCを割り当て、前記第2コントローラと判別された場合には、当該新たなコントローラの2つの片手把持用コントローラそれぞれからの操作入力で制御される2体の新たなPCを割り当てるように前記コンピュータを機能させる、
ための請求項2〜10の何れか一項に記載のプログラム。
【請求項13】
前記NPCには、相対的な優劣、敵味方、合体可否、及び、接近可否のうちの何れかの特性が予め定められた複数種類のNPCがあり、
前記NPC制御手段が、各NPCを、当該NPCの種類に定められている前記特性に基づいて制御するように前記コンピュータを機能させ、
前記割当手段が、前記接続認識手段により認識された新たなコントローラに複数体のNPCを新たなPCとして割り当てる場合に、前記相対的な特性を有する異なる種類のNPCを新たなPCとして割り当てるように前記コンピュータを機能させる、
ための請求項2〜12の何れか一項に記載のプログラム。
【請求項14】
請求項1〜13の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項15】
有線又は無線によりコントローラの接続が可能であり、ゲーム空間中を移動可能なNPCをコンピュータ制御するとともに所与の仮想カメラから見た前記ゲーム空間の画像を生成して所定のゲームを進行制御するゲーム装置であって、
前記ゲームの進行制御中に新たなコントローラの接続を認識する接続認識手段と、
前記接続認識手段により新たなコントローラの接続が認識された場合に、NPCを当該新たなコントローラの操作入力で制御される新たなPCとして割り当てる割当手段と、
前記割当手段により割り当てられた新たなPCを、割り当てられた新たなコントローラの操作入力に従って制御するPC制御手段と、
前記割当手段により割り当てられていないNPCをコンピュータ制御するNPC制御手段と、
を備えたゲーム装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate