(57)【要約】【課題】ゲーム空間に新たなキャラクタを登場させたり、ゲーム進行を一時中断させることなく、スムーズ且つシームレスなゲーム途中参加を実現すること。【解決手段】（ａ）ゲーム空間には、１体の主役キャラクタ１０と複数体の一般キャラクタ２０とが配置されている。主役キャラクタ１０はプレーヤキャラクタ（ＰＣ）であり、本体装置１１００の所定の接続ポート１１１０ａに接続されたゲームコントローラ１２００ａからの操作信号に従って制御される。また、一般キャラクタ２０はノンプレーヤキャラクタ（ＮＰＣ）である。（ｂ）そして、本体装置１１００に新たなゲームコントローラ１２００ｂが接続されると、ＮＰＣであった２体の一般キャラクタ２０ａ，２０ｃがＰＣとなり、このゲームコントローラ１２００ｂからの操作信号に従って制御される。【選択図】図４
2009106393.tif 000002
【特許請求の範囲】
【請求項１】
有線又は無線によりコントローラの接続が可能なコンピュータに、ゲーム空間中を移動可能なＮＰＣ（ノンプレーヤキャラクタ）をコンピュータ制御するとともに所与の仮想カメラから見た前記ゲーム空間の画像を生成して所定のゲームを進行制御させるためのプログラムであって、
前記ゲームの進行制御中に新たなコントローラの接続を認識する接続認識手段、
前記接続認識手段により新たなコントローラの接続が認識された場合に、ＮＰＣを当該新たなコントローラの操作入力で制御される新たなＰＣ（プレーヤキャラクタ）として割り当てる割当手段、
前記割当手段により割り当てられた新たなＰＣを、割り当てられた新たなコントローラの操作入力に従って制御するＰＣ制御手段、
前記割当手段により割り当てられていないＮＰＣをコンピュータ制御するＮＰＣ制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項２】
前記割当手段は、複数のＮＰＣのうちから選択した所定数のＮＰＣを新たなＰＣとして割り当てるように前記コンピュータを機能させるための請求項１に記載のプログラム。
【請求項３】
前記ゲームの開始前に前記ゲーム空間中に複数のＮＰＣを配置するＮＰＣ配置手段として前記コンピュータを機能させ、
前記割当手段が、前記ＮＰＣ配置手段により配置されたＮＰＣの中から新たにＰＣとして割り当てるＮＰＣを選択するように前記コンピュータを機能させ、
前記ＮＰＣ制御手段が、前記ＮＰＣ配置手段により配置されたＮＰＣであり、前記割当手段により割り当てられていないＮＰＣをコンピュータ制御するように前記コンピュータを機能させる、
ための請求項２に記載のプログラム。
【請求項４】
接続済みのコントローラの接続中断を検出する中断検出手段、
前記中断検出手段の検出に応じて、接続中断が検出されたコントローラに割り当てられていたＰＣの割り当てを解除する割当解除手段、
として前記コンピュータを機能させるための請求項２又は３に記載のプログラム。
【請求項５】
前記割当手段が、前記接続認識手段により認識された新たなコントローラが、前記中断検出手段により過去に検出されたコントローラであった場合に、以前、当該コントローラに割り当てていたＮＰＣ以外のＮＰＣを、当該コントローラの操作入力で制御される新たなＰＣとして割り当てるように前記コンピュータを機能させるための請求項４に記載のプログラム。
【請求項６】
前記割当手段が、前記接続認識手段により認識された新たなコントローラが、前記中断検出手段により過去に検出されたコントローラであった場合に、以前、当該コントローラに割り当てていたＮＰＣと同一のＮＰＣを、当該コントローラの操作入力で制御される新たなＰＣとして割り当てるように前記コンピュータを機能させるための請求項４に記載のプログラム。
【請求項７】
前記ゲームの進行制御中において、前記仮想カメラの視線方向、画角及びカメラ位置のうちの少なくとも１つを制御して、現時点の全てのＰＣを表示範囲内とする制御を行う仮想カメラ制御手段として前記コンピュータを機能させるための請求項２〜６の何れか一項に記載のプログラム。
【請求項８】
前記ゲーム空間中に、現時点の全てのＰＣを内包する内包領域を設定する内包領域設定手段として前記コンピュータを機能させるとともに、
前記仮想カメラ制御手段が、前記内包領域を用いて前記仮想カメラの制御を行うように前記コンピュータを機能させる、
ための請求項７に記載のプログラム。
【請求項９】
前記ゲームの開始前に接続済みの１台のコントローラと、当該コントローラの操作入力に従って制御される常時ＰＣとを対応付けて設定する常時ＰＣ対応設定手段、
前記常時ＰＣを、前記常時ＰＣ対応設定手段によって対応付けて設定されたコントローラの操作入力に従って制御する常時ＰＣ制御手段、
として前記コンピュータを機能させるとともに、
前記仮想カメラ制御手段が、前記常時ＰＣ対応設定手段によって対応付けて設定されたコントローラの操作入力に従って前記仮想カメラのカメラ位置を制御するカメラ位置制御手段を有し、該カメラ位置制御手段により制御されたカメラ位置を基準として、前記仮想カメラの視線方向及び／又は画角を制御して、現時点の全てのＰＣを表示範囲内とする制御を行うように前記コンピュータを機能させる、
ための請求項７又は８に記載のプログラム。
【請求項１０】
前記ゲームの開始前に接続済みの１台のコントローラと、当該コントローラの操作入力に従って制御される常時ＰＣとを対応付けて設定する常時ＰＣ対応設定手段、
前記常時ＰＣを、前記常時ＰＣ対応設定手段によって対応付けて設定されたコントローラの操作入力に従って制御する常時ＰＣ制御手段、
として前記コンピュータを機能させるとともに、
前記割当手段が、前記常時ＰＣとの相対的な位置関係が所定の選択条件を満たすＮＰＣを、新たなＰＣとして割り当てるように前記コンピュータを機能させる、
ための請求項２〜９の何れか一項に記載のプログラム。
【請求項１１】
前記コントローラは、両手で把持し、左右それぞれの手指で操作する左右の方向操作入力部を有し、
前記割当手段が、前記接続認識手段により認識された新たなコントローラに、当該コントローラの左手用の方向操作入力部からの操作入力で制御される１体の新たなＰＣと、右手用の方向操作入力部からの操作入力で制御される１体の新たなＰＣとを新たに割り当てるように前記コンピュータを機能させるための請求項２〜１０の何れか一項に記載のプログラム。
【請求項１２】
前記コントローラには、方向操作入力部を備えた１つの片手把持用のコントローラでなる第１コントローラと、方向操作入力部を備えた２つの片手把持用のコントローラが接続されてなる第２コントローラとが有り、
前記接続認識手段により新たに認識されたコントローラが前記第１コントローラか前記第２コントローラかを判別する判別手段として前記コンピュータを機能させ、
前記割当手段が、前記接続認識手段により認識された新たなコントローラが前記判別手段により前記第１コントローラと判別された場合には、当該新たなコントローラに１体の新たなＰＣを割り当て、前記第２コントローラと判別された場合には、当該新たなコントローラの２つの片手把持用コントローラそれぞれからの操作入力で制御される２体の新たなＰＣを割り当てるように前記コンピュータを機能させる、
ための請求項２〜１０の何れか一項に記載のプログラム。
【請求項１３】
前記ＮＰＣには、相対的な優劣、敵味方、合体可否、及び、接近可否のうちの何れかの特性が予め定められた複数種類のＮＰＣがあり、
前記ＮＰＣ制御手段が、各ＮＰＣを、当該ＮＰＣの種類に定められている前記特性に基づいて制御するように前記コンピュータを機能させ、
前記割当手段が、前記接続認識手段により認識された新たなコントローラに複数体のＮＰＣを新たなＰＣとして割り当てる場合に、前記相対的な特性を有する異なる種類のＮＰＣを新たなＰＣとして割り当てるように前記コンピュータを機能させる、
ための請求項２〜１２の何れか一項に記載のプログラム。
【請求項１４】
請求項１〜１３の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項１５】
有線又は無線によりコントローラの接続が可能であり、ゲーム空間中を移動可能なＮＰＣをコンピュータ制御するとともに所与の仮想カメラから見た前記ゲーム空間の画像を生成して所定のゲームを進行制御するゲーム装置であって、
前記ゲームの進行制御中に新たなコントローラの接続を認識する接続認識手段と、
前記接続認識手段により新たなコントローラの接続が認識された場合に、ＮＰＣを当該新たなコントローラの操作入力で制御される新たなＰＣとして割り当てる割当手段と、
前記割当手段により割り当てられた新たなＰＣを、割り当てられた新たなコントローラの操作入力に従って制御するＰＣ制御手段と、
前記割当手段により割り当てられていないＮＰＣをコンピュータ制御するＮＰＣ制御手段と、
を備えたゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータに所定のゲームを進行制御させるためのプログラム等に関する。
【背景技術】
【０００２】
同一のゲーム空間において複数のプレーヤそれぞれがプレーヤキャラクタを操作して楽しむことができるゲームの一例として、複数のプレーヤがチームを組んでチーム同士で対戦するゲームが知られている。このようなゲームでは、ゲーム開始前に、所定人数のプレーヤを組み合わせるマッチングを行ってゲームに参加するプレーヤを決定した後、これらの参加プレーヤによるゲームが開始される（例えば、特許文献１参照）。
【特許文献１】特開２００６−２５４９８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述のような、ゲームの開始前にマッチングによってゲームに参加するプレーヤが決定されるゲームでは、ゲームに参加するプレーヤはゲーム毎に固定とされる。つまり、ゲーム開始後は、新たなプレーヤがゲームに参加することはできない。一方、複数のプレーヤが同一のゲーム世界で楽しむことが可能な他の形態のゲームとして、オンラインゲゲームが知られている。例えばネットワークＲＰＧ（Role Playing Game）では、ゲーム進行中、任意のタイミングで新たなプレーヤがゲームに参加できるものがある。このようなゲームの場合、プレーヤは、自分のプレーヤキャラクタをゲーム世界に新たに登場させることでゲーム世界に途中参加し、プレーヤキャラクタをゲーム世界から退場させることでゲーム世界から離脱することができる。すなわち、ゲーム世界に対する新たなキャラクタの登場／退場をもってゲーム世界への途中参加／途中終了が可能であった。
【０００４】
しかしながら、進行中のゲーム世界における新たなキャラクタの登場／退場は唐突であり、他のプレーヤにとっては、ゲームの没入感が削がれる一因となっていた。さらに、家庭用のゲーム装置等の１台のコンピュータシステムにおいては、新たなプレーヤが途中参加する場合には、次のような対処療法的なプレーヤ側の操作で対応しているのが現状である。すなわち、進行途中のゲームをリセット・再スタートすることでプレイ人数の初期設定からゲームをやり直したり、進行途中のゲームを一時中断して設定画面からプレイ人数を変更したりといった、ゲームプレイを楽しんでいたプレーヤが、ゲームを中断する等の犠牲を払って、新たなプレーヤの追加を容認する何らかの操作・行為をする必要があった。本発明は、上記事情に鑑みてなされたものである。
【課題を解決するための手段】
【０００５】
上記課題を解決するための第１の発明は、
有線又は無線によりコントローラ（例えば、図１のゲームコントローラ１２００）の接続が可能なコンピュータ（例えば、図１の本体装置１１００）に、ゲーム空間中を移動可能なＮＰＣ（ノンプレーヤキャラクタ）をコンピュータ制御するとともに所与の仮想カメラから見た前記ゲーム空間の画像を生成して所定のゲームを進行制御させるためのプログラム（例えば、図１３のゲームプログラム６１０）であって、
前記ゲームの進行制御中に新たなコントローラの接続を認識する接続認識手段（例えば、図２２のステップＢ１）、
前記接続認識手段により新たなコントローラの接続が認識された場合に、ＮＰＣを当該新たなコントローラの操作入力で制御される新たなＰＣ（プレーヤキャラクタ）として割り当てる割当手段（例えば、図２２のステップＢ５）、
前記割当手段により割り当てられた新たなＰＣを、割り当てられた新たなコントローラの操作入力に従って制御するＰＣ制御手段（例えば、図２２のステップＢ１３）、
前記割当手段により割り当てられていないＮＰＣをコンピュータ制御するＮＰＣ制御手段（例えば、図２２のステップＢ１５）、
として前記コンピュータを機能させるためのプログラムである。
【０００６】
また、第１５の発明は、
有線又は無線によりコントローラの接続が可能であり、ゲーム空間中を移動可能なＮＰＣをコンピュータ制御するとともに所与の仮想カメラから見た前記ゲーム空間の画像を生成して所定のゲームを進行制御するゲーム装置（例えば、図１，図１３の家庭用ゲーム装置１０００）であって、
前記ゲームの進行制御中に新たなコントローラの接続を認識する接続認識手段（例えば、図１３のコントローラ接続検出部２１１）と、
前記接続認識手段により新たなコントローラの接続が認識された場合に、ＮＰＣを当該新たなコントローラの操作入力で制御される新たなＰＣとして割り当てる割当手段（例えば、図１３の一般キャラ制御部２１３）と、
前記割当手段により割り当てられた新たなＰＣを、割り当てられた新たなコントローラの操作入力に従って制御するＰＣ制御手段（例えば、図１３の一般ＰＣ制御部２１４）と、
前記割当手段により割り当てられていないＮＰＣをコンピュータ制御するＮＰＣ制御手段（例えば、図１３の一般ＮＰＣ制御部２１５）と、
を備えたゲーム装置である。
【０００７】
この第１又は第１５の発明によれば、ゲームの進行制御中に新たなコントローラの接続が認識された場合、ゲーム空間中のＮＰＣが当該コントローラの操作入力で制御される新たなＰＣとして割り当てられる。つまり、ゲームの進行中に新たなコントローラを接続すると、このコントローラによって、ゲーム空間中のＮＰＣをＰＣとして制御することが可能となる。これにより、ゲームの進行中、任意のタイミングでゲームに参加可能となるとともに、ゲーム空間に配置されているＮＰＣが制御可能なキャラクタ（ＰＣ）となるため、ゲーム空間に新たなキャラクタを登場させたり、ゲーム進行を一時中断させることなく、スムーズ且つシームレスにゲームに参加することが可能となる。
【０００８】
第２の発明は、第１の発明のプログラムであって、
前記割当手段は、複数のＮＰＣのうちから選択した所定数のＮＰＣを新たなＰＣとして割り当てるように前記コンピュータを機能させるためのプログラムである。
【０００９】
この第２の発明によれば、ゲーム空間中の複数のＮＰＣのうちから選択されたＮＰＣが新たなＰＣとして、新たに接続されたゲームコントローラに割り当てられる。
【００１０】
第３の発明は、第２の発明のプログラムであって、
前記ゲームの開始前に前記ゲーム空間中に複数のＮＰＣを配置するＮＰＣ配置手段（例えば、図１３のゲーム演算部２１０；図２１のステップＡ１）として前記コンピュータを機能させ、
前記割当手段が、前記ＮＰＣ配置手段により配置されたＮＰＣの中から新たにＰＣとして割り当てるＮＰＣを選択するように前記コンピュータを機能させ、
前記ＮＰＣ制御手段が、前記ＮＰＣ配置手段により配置されたＮＰＣであり、前記割当手段により割り当てられていないＮＰＣをコンピュータ制御するように前記コンピュータを機能させる、
ためのプログラムである。
【００１１】
この第３の発明によれば、ゲームの開始前にゲーム空間に配置された複数のＮＰＣの中から、新たに接続が認識されたコントローラに割り当てるＮＰＣが選択される。つまり、ゲーム開始時点においてゲーム空間内にいるＮＰＣを、新たに接続したコントローラによってＰＣとして操作することができる。
【００１２】
第３の発明は、第２又は第３の発明のプログラムであって、
接続済みのコントローラの接続中断を検出する中断検出手段（例えば、図１３のコントローラ接続検出部２１１；図２２のステップＢ７）、
前記中断検出手段の検出に応じて、接続中断が検出されたコントローラに割り当てられていたＰＣの割り当てを解除する割当解除手段（例えば、図１３の一般キャラ制御部２１３；図２２のステップＢ９）、
として前記コンピュータを機能させるためのプログラムである。
【００１３】
この第４の発明によれば、接続済みのコントローラの接続中断が検出されると、このコントローラに割り当てられていたＰＣの割り当てが解除される。つまり、接続しているコントローラを取り外すと、当該コントローラで制御可能であったＰＣがＮＰＣに戻る。
【００１４】
第５の発明は、第４の発明のプログラムであって、
前記割当手段が、前記接続認識手段により認識された新たなコントローラが、前記中断検出手段により過去に検出されたコントローラであった場合に、以前、当該コントローラに割り当てていたＮＰＣ以外のＮＰＣを、当該コントローラの操作入力で制御される新たなＰＣとして割り当てるように前記コンピュータを機能させるためプログラムである。
【００１５】
この第５の発明によれば、新たに接続が認識されたコントローラが過去に接続中断が検出されたコントローラであった場合、以前、当該コントローラに割り当てていたＮＰＣ以外のＮＰＣが、当該コントローラの操作入力で制御される新たなＰＣとして割り当てられる。つまり、接続中断したコントローラを再度接続させると、以前とは異なるＮＰＣが、新たなＰＣとして当該コントローラで制御可能となる。
【００１６】
第６の発明は、第４の発明のプログラムであって、
前記割当手段が、前記接続認識手段により認識された新たなコントローラが、前記中断検出手段により過去に検出されたコントローラであった場合に、以前、当該コントローラに割り当てていたＮＰＣと同一のＮＰＣを、当該コントローラの操作入力で制御される新たなＰＣとして割り当てるように前記コンピュータを機能させるためのプログラムである。
【００１７】
この第６の発明によれば、新たに接続が認識されたコントローラが過去に接続中断が検出されたコントローラであった場合、以前、当該コントローラに割り当てていたＮＰＣと同一のＮＰＣが、当該コントローラの操作入力で制御される新たなＰＣとして割り当てられる。つまり、接続中断したコントローラを再度接続させると、以前と同じＮＰＣが、再度ＰＣとして当該コントローラで制御可能となる。
【００１８】
第７の発明は、第２〜第７の何れかの発明のプログラムであって、
前記ゲームの進行制御中において、前記仮想カメラの視線方向、画角及びカメラ位置のうちの少なくとも１つを制御して、現時点の全てのＰＣを表示範囲内とする制御を行う仮想カメラ制御手段（例えば、図１３の仮想カメラ制御部２１６；図２１のステップＡ１１）として前記コンピュータを機能させるためのプログラムである。
【００１９】
この第７の発明によれば、ゲームの進行制御中において、現時点の全てのＰＣを表示範囲内とするよう、仮想カメラの視線方向、画角及びカメラ位置のうちの少なくとも１つが制御される。つまり、ゲームの進行制御中は、全てのＰＣが表示対象となるため、何れのプレーヤも自身のＰＣの様子を視認することができる。
【００２０】
第８の発明は、第７の発明のプログラムであって、
前記ゲーム空間中に、現時点の全てのＰＣを内包する内包領域（例えば、図１１の全体包含領域４０）を設定する内包領域設定手段（例えば、図１３の仮想カメラ制御部２１６；図２６のステップＦ７）として前記コンピュータを機能させるとともに、
前記仮想カメラ制御手段が、前記内包領域を用いて前記仮想カメラの制御を行うように前記コンピュータを機能させる、
ためのプログラムである。
【００２１】
この第８の発明によれば、ゲーム空間中に、現時点の全てのＰＣを内包する内包領域が設定され、この内包領域を用いて仮想カメラの制御が行われる。これにより、例えばこの内包領域の全体を映すように仮想カメラを制御するといったことで、ＰＣが複雑な形状のキャラクタであっても、全てのＰＣを表示範囲内とする仮想カメラの制御が容易となる。
【００２２】
第９の発明は、第７又は第８の発明のプログラムであって、
前記ゲームの開始前に接続済みの１台のコントローラと、当該コントローラの操作入力に従って制御される常時ＰＣとを対応付けて設定する常時ＰＣ対応設定手段（例えば、図１３のゲーム演算部２１０；図２１のステップＡ１）、
前記常時ＰＣを、前記常時ＰＣ対応設定手段によって対応付けて設定されたコントローラの操作入力に従って制御する常時ＰＣ制御手段（例えば、図１３の主役キャラ制御部２１２；図２１のステップＡ９）、
として前記コンピュータを機能させるとともに、
前記仮想カメラ制御手段が、前記常時ＰＣ対応設定手段によって対応付けて設定されたコントローラの操作入力に従って前記仮想カメラのカメラ位置を制御するカメラ位置制御手段を有し、該カメラ位置制御手段により制御されたカメラ位置を基準として、前記仮想カメラの視線方向及び／又は画角を制御して、現時点の全てのＰＣを表示範囲内とする制御を行うように前記コンピュータを機能させる、
ためのプログラムである。
【００２３】
この第９の発明によれば、ゲーム開始前に接続済みの１台のコントローラと、当該コントローラの操作入力に従って制御される常時ＰＣとが対応付けて設定されており、この常時ＰＣと対応付けられたコントローラの操作入力に従って制御されたカメラ位置を基準として、現時点の全てのＰＣが表示範囲内となるよう、仮想カメラの視線方向及び／又は画角が制御される。つまり、所定の１台のコントローラによって、仮想カメラの制御操作が可能となる。
【００２４】
第１０の発明は、第２〜第９の何れかの発明のプログラムであって、
前記ゲームの開始前に接続済みの１台のコントローラと、当該コントローラの操作入力に従って制御される常時ＰＣとを対応付けて設定する常時ＰＣ対応設定手段（例えば、図１３のゲーム演算部２１０；図２１のステップＡ１）、
前記常時ＰＣを、前記常時ＰＣ対応設定手段によって対応付けて設定されたコントローラの操作入力に従って制御する常時ＰＣ制御手段（例えば、図１３のゲーム演算部２１０；図２１のステップＡ９）、
として前記コンピュータを機能させるとともに、
前記割当手段が、前記常時ＰＣとの相対的な位置関係が所定の選択条件を満たすＮＰＣを、新たなＰＣとして割り当てるように前記コンピュータを機能させる、
ためのプログラムである。
【００２５】
この第１０の発明によれば、ゲーム開始前に接続済みの１台のコントローラと、当該コントローラの操作入力に従って制御される常時ＰＣとが対応付けて設定され、新たに接続が認識されたコントローラには、この常時ＰＣとの相対的な位置関係が所定の選択条件を満たすＮＰＣが新たなＰＣとして割り当てられる。
【００２６】
第１１の発明は、第２〜第１０の何れかの発明のプログラムであって、
前記コントローラは、両手で把持し、左右それぞれの手指で操作する左右の方向操作入力部（例えば、図１の右アナログレバー１２０２及び左アナログレバー１２０４）を有し、
前記割当手段が、前記接続認識手段により認識された新たなコントローラに、当該コントローラの左手用の方向操作入力部からの操作入力で制御される１体の新たなＰＣと、右手用の方向操作入力部からの操作入力で制御される１体の新たなＰＣとを新たに割り当てるように前記コンピュータを機能させるためのプログラムである。
【００２７】
この第１１の発明によれば、コントローラは、両手で把持し、左右それぞれの手指で操作する左右の方向操作入力部を有し、新たに接続が認識されたコントローラには、当該コントローラの左手用の方向操作入力部からの操作入力で制御される１体の新たなＰＣと、右手用の方向操作入力部からの操作入力で制御される１体の新たなＰＣとが割り当てられる。つまり、プレーヤは、１台のコントローラで２体のＰＣを独立して制御可能である。
【００２８】
第１２の発明は、第２〜第１０の何れかの発明のプログラムであって、
前記コントローラには、方向操作入力部を備えた１つの片手把持用のコントローラでなる第１コントローラと、方向操作入力部を備えた２つの片手把持用のコントローラが接続されてなる第２コントローラとが有り、
前記接続認識手段により新たに認識されたコントローラが前記第１コントローラか前記第２コントローラかを判別する判別手段として前記コンピュータを機能させ、
前記割当手段が、前記接続認識手段により認識された新たなコントローラが前記判別手段により前記第１コントローラと判別された場合には、当該新たなコントローラに１体の新たなＰＣを割り当て、前記第２コントローラと判別された場合には、当該新たなコントローラの２つの片手把持用コントローラそれぞれからの操作入力で制御される２体の新たなＰＣを割り当てるように前記コンピュータを機能させる、
ためのプログラムである。
【００２９】
この第１２の発明によれば、コントローラには、方向操作入力部を備えた１つの片手把持用のコントローラでなる第１コントローラと、方向操作入力を備えた２つの片手把持用のコントローラが接続されてなる第２コントローラとがあり、新たに接続が認識されたコントローラが第１コントローラである場合には、当該コントローラに１体の新たなＰＣが割り当てられ、第２コントローラである場合には、当該コントローラに２体の新たなＰＣが割り当てられる。つまり、プレーヤは、第１のコントローラの場合には、何れか片方の手で片手把持用コントローラを把持して１体のＰＣを制御可能となり、第２コントローラの場合には、両手それぞれに１台づつ片手把持用コントローラを把持して２体のＰＣを独立して制御可能でとなる。
【００３０】
第１３の発明は、第２〜第１２の何れかの発明のプログラムであって、
前記ＮＰＣには、相対的な優劣、敵味方、合体可否、及び、接近可否のうちの何れかの特性が予め定められた複数種類のＮＰＣがあり、
前記ＮＰＣ制御手段が、各ＮＰＣを、当該ＮＰＣの種類に定められている前記特性に基づいて制御するように前記コンピュータを機能させ、
前記割当手段が、前記接続認識手段により認識された新たなコントローラに複数体のＮＰＣを新たなＰＣとして割り当てる場合に、前記相対的な特性を有する異なる種類のＮＰＣを新たなＰＣとして割り当てるように前記コンピュータを機能させる、
ためのプログラムである。
【００３１】
この第１３の発明によれば、ＮＰＣには、相対的な特性が予め定められた複数種類のＮＰＣがあり、新たに接続が認識されたコントローラには、相対的な特性を有する異なる種類のＮＰＣが新たに制御可能なＰＣとして割り当てられる。
【００３２】
第１４の発明は、第１〜第１３の何れかの発明のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体（例えば、図１３の記憶部６００）である。
【００３３】
ここで、情報記憶媒体とは、記憶されている情報をコンピュータが読み取り可能な、例えばハードディスクやＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ、メモリカード、ＩＣメモリ等の記憶媒体である。従って、この第１３の発明によれば、情報記憶媒体に記憶されている情報をコンピュータに読み取らせて演算処理を実行させることで、第１〜第１２の何れかの発明と同様の効果を奏することができる。
【発明の効果】
【００３４】
本発明によれば、ゲームの進行制御中に新たなコントローラの接続が認識された場合、ゲーム空間中のＮＰＣが当該コントローラの操作入力で制御される新たなＰＣとして割り当てられる。つまり、ゲームの進行中に新たなコントローラを接続すると、このコントローラによって、ゲーム空間中のＮＰＣをＰＣとして制御することが可能となる。これにより、ゲームの進行中、任意のタイミングでゲームに参加可能となるとともに、ゲーム空間に配置されているＮＰＣが制御可能なキャラクタ（ＰＣ）となるため、ゲーム空間に新たなキャラクタを登場させたり、ゲーム進行を一時中断させることなく、スムーズ且つシームレスにゲームに参加することが可能となる。
【発明を実施するための最良の形態】
【００３５】
以下、図面を参照して、本発明の好適な実施形態を説明する。なお、以下では、本発明を家庭用のゲーム装置に適用した場合を説明するが、本発明の適用可能な実施形態がこれに限定されるものではない。
【００３６】
［外観］
図１は、本実施形態における家庭用ゲーム装置１０００の外観の一例を示す図である。同図によれば、家庭用ゲーム装置１０００は、本体装置１１００と、プレーヤがゲーム操作を入力するためのゲームコントローラ１２００と、ディスプレイ１３０２及びスピーカ１３０４を有するビデオモニタ１３００とを備えて構成される。
【００３７】
本体装置１１００がゲーム処理を行うために必要なプログラムやデータを含むゲーム情報は、例えば本体装置１１００に着脱自在な情報記憶媒体である光学ディスク１１２２やメモリカード１１２４に格納されている。すなわち、プレーヤは、この光学ディスク１１２２等を交換することで異なるゲームを楽しむことができる。なお、このゲーム情報は、本体装置１１００が備える通信装置１１０８を介して通信回線Ｎに接続し、外部装置からダウンロードして取得することにしても良い。ここで、通信回線Ｎはデータ授受が可能な通信路を意味する。すなわち、通信回線Ｎとは、直接接続のための専用線（専用ケーブル）やイーサネット（登録商標）等によるＬＡＮ（Local Area Network）の他、電話通信網やケーブル網、インターネット等の通信網を含む意味であり、また、通信方法については有線／無線を問わない。
【００３８】
また、本体装置１１００は、例えばＣＰＵや画像処理用ＬＳＩ、ＩＣメモリ等が実装された制御ユニット１１０２と、光学ディスク１１２２やメモリカード１１２４といった情報記憶媒体の読取装置１１０４，１１０６を備える。そして、本制御ユニット１１０２に実装されたＣＰＵは、光学ディスク１１２２やメモリカード１１２４から読み出したゲーム情報や、ゲームコントローラ１２００からの操作信号等に基づいて各種のゲーム演算を実行し、ゲーム画面の画像信号及びゲーム音の音信号を生成して所与のビデオゲームを実行する。生成されたゲーム画像やゲーム音は、画像信号及び音信号を伝送可能な信号ケーブル１１３０を介してビデオモニタ１３００に出力される。プレーヤは、ビデオモニタ１３００のディスプレイ１３０２に表示されるゲーム画像を見つつ、スピーカ１３０４から出力されるＢＧＭや効果音といったゲーム音を聞きながら、ゲームコントローラ１２００を操作してゲームを楽しむ。
【００３９】
ゲームコントローラ１２００は、上面に設けられたプッシュキー１２０６、方向キー１２０８、右アナログレバー１２０２及び左アナログレバー１２０４と、側面に設けられた右プッシュボタン１２１０及び左プッシュボタン１２１２を備える。右アナログレバー１２０２及び左アナログレバー１２０４は、上下方向と左右方向の２軸方向を同時入力可能な方向入力デバイスであり、レバーを倒すことによって、２軸成分を含む任意の方向と、レバーの傾倒量に応じた任意の操作量とを入力することができる。さらに、この右アナログレバー１２０２及び左アナログレバー１２０４は、操作入力していない中立状態からレバーの軸方向に押し込むことでプッシュスイッチとしても使用することもできる。また、ゲームコントローラ１２００の右側に設けられている右アナログレバー１２０２、プッシュキー１２０６及び右プッシュボタン１２１０により右ボタン群１２２０が形成され、左側に設けられている左アナログレバー１２０４、方向キー１２０８及び左プッシュボタン１２１２により左ボタン群１２２２が形成される。プレーヤは、ゲームコントローラ１２００を左右の手で把持し、主に、右手の手指で右ボタン群１２２０を操作し、左手の手指で左ボタン群１２２２を操作する。
【００４０】
本体装置１１００の前面には、ゲームコントローラ１２００のコネクタ１２３０を接続するための４つの接続ポート１１１０が設けられている。すなわち、本体装置１１００には最大４台のゲームコントローラ１２００を接続可能であり、同時に最大４人のプレーヤがゲームを楽しむことが可能となっている。なお、接続ポート１１１０の数は「４」に限らず、複数であればこれより多くとも良いし少なくとも良い。本実施形態のゲームでは、ゲームコントローラ１２００を何れの接続ポート１１１０に接続しても良い。また、ゲーム進行中、空いている接続ポート１１１０に新たにゲームコントローラ１２００を接続することで、このゲームコントローラ１２００による操作入力が可能となり、シームレスなゲーム途中参加ができるようになっている。
【００４１】
［原理］
図２は、ゲーム空間の一例を示す図である。同図（ａ）に示すように、ゲーム空間には、１体の主役キャラクタ１０と複数体の一般キャラクタ２０とが配置されるとともに、仮想カメラＣＭが配置される。主役キャラクタ１０は、本実施形態のゲームにおいて主役となるキャラクタであり、プレーヤの操作入力に従って制御されるプレーヤキャラクタ（ＰＣ）である。また、この主役キャラクタ１０は、伸縮自在な紐状体をなし、伸縮しながらゲーム空間内を移動する。
【００４２】
一般キャラクタ２０は、コンピュータによってＡＩ制御されるノンプレーヤキャラクタ（ＮＰＣ）と、プレーヤの操作入力に従って制御されるプレーヤキャラクタ（ＰＣ）とに分類される。ＮＰＣである一般キャラクタ２０（以下、「一般ＮＰＣ」という）は所定の制御ルーチンに従って制御され、ＰＣである一般キャラクタ２０（以下、「一般ＰＣ」という）はプレーヤの操作入力に従って制御され、それぞれゲーム空間内を移動する。なお、一般キャラクタ２０は、ゲーム進行中、新たに出現（登場）したり、逆に消滅（退場）したりすることはない。
【００４３】
仮想カメラＣＭは、プレーヤキャラクタ、すなわち主役キャラクタ１０及び全ての一般ＰＣを視野内に収めるように配置され、この仮想カメラＣＭに基づくゲーム空間の様子がゲーム画面としてディスプレイ１３０２に表示される。具体的には、同図（ａ）に示すように、３体の一般キャラクタ２０ａ，２０ｂ，２０ｃの全てがＮＰＣである場合、仮想カメラＣＭは、主役キャラクタ１０を視野内に収めるように制御され、ゲーム画面は、同図（ｂ）に示すように、主役キャラクタ１０に注目した表示となる。しかし、図３（ａ）に示すように、３体の一般キャラクタ２０ａ，２０ｂ，２０ｃのうち、一般キャラクタ２０ａがＰＣであり、それ以外の一般キャラクタ２０ｂ，２０ｃがＮＰＣである場合には、仮想カメラＣＭは、主役キャラクタ１０及び一般キャラクタ２０ａの２体を視野内に収めるように制御される。従って、この場合のゲーム画面は、同図（ｂ）に示すように、主役キャラクタ１０及び一般キャラクタ２０ａの両方に着目した表示となる。
【００４４】
プレーヤキャラクタである主役キャラクタ１０及び一般ＰＣは、接続ポート１１１０に接続されたゲームコントローラ１２００からの操作入力に従って制御される。図４は、ゲームコントローラ１２００とキャラクタとの制御関係を説明する図である。本実施形態では、本体装置１１００の４つの接続ポート１１１０のうち、１つの接続ポート１１１０が主役キャラクタ１０の制御用に設定され、それ以外の３つの接続ポート１１１０が一般キャラクタ２０の制御用に設定される。そして、主役キャラクタ１０の制御用の接続ポート１１１０（以下、「主役キャラ用接続ポート」という）に接続されたゲームコントローラ１２００からの操作入力に従って主役キャラクタ１０が制御され、一般キャラクタ２０の制御用の接続ポート１１１０（以下、「一般キャラ用接続ポート」という）に接続されたゲームコントローラ１２００からの操作入力に従って一般キャラクタ２０が制御される。
【００４５】
各接続ポート１１１０の制御対象として設定されるキャラクタ種別（主役キャラクタ／一般キャラクタ）は、ゲーム開始前に決定される。具体的には、例えばゲーム開始前の時点でゲームコントローラ１２００が接続されている接続ポート１１１０を主役キャラ用接続ポートとし、それ以外の接続ポート１１１０を一般キャラ用接続ポートとする。但し、ゲーム開始前の時点で複数の接続ポート１１１０にゲームコントローラ１２００が接続されている場合には、これらの接続されている接続ポート１１１０のうちの何れか１つを主役キャラ用接続ポートとする。また、何れの接続ポート１１１０にもゲームコントローラ１２００が接続されていない場合には、予め定められた所定の接続ポート１１１０（例えば、左端の接続ポート１１１０）を主役キャラ用接続ポートとしても良いし、或いは、主役キャラ用接続ポートをゲーム開始前に設定せず、ゲーム開始後、最初にゲームコントローラ１２００の接続が検出された接続ポート１１１０を主役キャラ用接続ポートとしても良い。
【００４６】
図４では、本体装置１１００に横一列に設けられている４つの接続ポート１１１０ａ〜１１１０ｄのうち、左端の接続ポート１１１０ａが主役キャラ用接続ポートであり、それ以外の接続ポート１１１０ｂ，１１１０ｃ，１１１０ｄが一般キャラ用接続ポートである。同図（ａ）に示すように、主役キャラ用接続ポートである接続ポート１１１０ａにのみゲームコントローラ１２００ａが接続されている場合、このゲームコントローラ１２００ａによって主役キャラクタ１０が制御される。この場合、一般キャラクタ２０ａ，２０ｂ，２０ｃの全てがＮＰＣである。
【００４７】
そして、同図（ｂ）に示すように、一般キャラ用接続ポートである接続ポート１１１０ｄに新たにゲームコントローラ１２００ｂが接続されると、一般キャラクタ２０ａ，２０ｂ，２０ｃのうちの２体の一般キャラクタ２０ａ，２０ｃがＰＣとなり、このゲームコントローラ１２００ｂによって制御される。なお、一般キャラクタ２０ｂはＮＰＣのままである。
【００４８】
また、一般キャラ用接続ポートに接続されているゲームコントローラ１２００が取り外されると（接続中断）、このゲームコントローラ１２００によって制御されていた一般キャラクタ２０（一般ＰＣ）はＮＰＣに戻る。すなわち、同図（ｂ）において、接続ポート１１１０ｄからゲームコントローラ１２００ｂを取り外すと、ＰＣである一般キャラクタ２０ａ，２０ｃはＮＰＣに変更される。但し、主役キャラクタ１０は常にＰＣであり、主役キャラ用接続ポートである接続ポート１１１０ａに接続されていたゲームコントローラ１２００ａが取り外されてもＮＰＣとはならない。
【００４９】
上述のように、一般キャラ用接続ポートに接続されたゲームコントローラ１２００には、２体の一般キャラクタ２０（一般ＰＣ）が割り当てられる。つまり、１台のゲームコントローラ１２００によって２体の一般キャラクタ２０（一般ＰＣ）が制御される。この２体の一般キャラクタ２０は互いに独立して制御される。
【００５０】
図５は、ゲームコントローラ１２００と一般キャラクタ２０との制御関係を示す図である。同図に示すように、ゲームコントローラ１２００に設けられている右ボタン群１２２０及び左ボタン群１２２２それぞれが、当該ゲームコントローラ１２００に割り当てられた２体の一般キャラクタ２０（一般ＰＣ）それぞれの制御に用いられる。ここで、右ボタン群１２２０によって制御される一般キャラクタ２０（一般ＰＣ）を「第１の一般ＰＣ」といい、左ボタン群１２２２によって制御される一般キャラクタ２０（一般ＰＣ）を「第２の一般ＰＣ」という。そして、右アナログレバー１２０２或いは左アナログレバー１２０４になされた操作方向に応じた方向に、対応する一般キャラクタ２０が移動される。また、右プッシュボタン１２１０或いは左プッシュボタン１２１２の押下操作によって、対応する一般キャラクタ２０が予め定められた特定の動作（例えば、所定範囲内の他のキャラクタに乗る）を行う。
【００５１】
このように、本実施形態では、一般キャラ用接続ポートに接続された１台のゲームコントローラ１２００で２体の一般キャラクタ２０（一般ＰＣ）が制御される。また、本体装置１１００には３つの一般キャラ用接続ポートが設けられている。つまり、最大合計６体の一般キャラクタ２０がＰＣとなり得る。このため、ゲーム空間には、少なくとも６体の一般キャラクタ２０が配置されている。
【００５２】
一般キャラ用接続ポートに接続されたゲームコントローラ１２００に割り当てられる一般キャラクタ２０は、主役キャラクタ１０との位置関係に基づいて決定される。図６は、ゲームコントローラ１２００に割り当てる一般キャラクタ２０の選択を説明するための図である。同図に示すように、接続ポート１１１０へのゲームコントローラ１２００の接続が認識された時点において、主役キャラクタ１０に最も近い２体のＮＰＣである一般キャラクタ２０（一般ＮＰＣ）が、ＰＣとして当該ゲームコントローラ１２００に割り当てられる。
【００５３】
同図では、ゲーム空間に、１体の主役キャラクタ１０と５体の一般キャラクタ２０ａ〜２０ｅが配置されている。５体の一般キャラクタ２０ａ〜２０ｅのうち、一般キャラクタ２０ｂ，２０ｃ，２０ｄがＮＰＣ（一般ＮＰＣ）であり、一般キャラクタ２０ａ，２０ｅがＰＣ（一般ＰＣ）である。また、各一般キャラクタ２０ａ〜２０ｅと主役キャラクタ１０との距離Ｄａ〜Ｄｅには、Ｄｃ＜Ｄａ＜Ｄｂ＜Ｄｄ＜Ｄｅ、の関係がある。従って、この場合、一般キャラクタ２０ｂ，２０ｃがＰＣとしてゲームコントローラ１２００に割り当てられる。
【００５４】
図７は、主役キャラクタ１０のモデル構成を説明する図である。主役キャラクタ１０は、一頭一尾の想像上の紐状体形状を成すワーム（worm：細長く足のない動物）としてデザインされており、紐のように柔軟であるとともに、レオロジー物体のような伸縮自在な胴１３を有する。つまり、主役キャラクタ１０は、頭１１及び尾１２方向を伸身前後方向として胴１３の太さをそのままに伸縮自在なキャラクタとして設定されている。なお、本実施形態では胴１３が伸び縮みする形態として説明するが、キャラクタのデザインによっては、頭１１や尾１２も自在に伸び縮みする設定として、全身どこでも伸び縮みする設定としても良いのは勿論である。
【００５５】
同図（ａ）に示すように、主役キャラクタ１０は、複数のノード２が互いに前後の距離Ｌを一定にして配列された骨格モデルＢＭを有する。言い換えれば、ノード２が連結子４によって一列の関節構造として連結されており、連結子４は全て同じ固定長Ｌを有している。また、ノード２と連結子４との結合角度は、全て所定角度範囲θ内となるように限定されている。したがって、ノード２を関節と見なすと、骨格モデルＢＭは、複数の関節が一本の直列状に連結されており、しかも各関節では一定角度以上曲がらないことになる。ここで、複数あるノード２のうち、主役キャラクタ１０の前方側端のノード２を「前端ノード２ｆｒ」といい、後方側端のノード２を「後端ノード２ｒｒ」という。
【００５６】
また、同図（ｂ）に示すように、主役キャラクタ１０にはヒット判定モデルＨＭが設定されている。本実施形態におけるヒット判定モデルＨＭでは、各ノード２にヒット判定領域６が設定されている。ヒット判定領域６は、対応するノード２の位置座標を中心にして、半径Ｒ（＝連結子４の長さＬ）の球状領域として設定されている。
【００５７】
そして、同図（ｃ）に示すように、主役キャラクタ１０の表示モデルはポリゴンによって形成される。具体的には、各ノード２には、隣接するノード２に向かうそれぞれのベクトルの和のベクトルを面に含む表示基準円８が設定されている。そして、頭１１及び尾１２として、骨格モデルＢＭの先頭及び末尾のノード２を基準点として予め設定された頭部或いは尾部のモデルが配置されている。そして、胴１３については、各ノードに設定されている表示基準円８で定義される円周の外縁を滑らかに結ぶように複数のポリゴンが生成・変形・再配置される。胴１３におけるポリゴンモデルの形成は、例えばスケルトンモデルへの外皮形成処理などの公知のモデリング技術を適宜用いることによって実現できる。
【００５８】
なお、本実施形態では、表示基準円８の半径はヒット判定領域６の半径Ｒと同じに設定されているので、主役キャラクタ１０の外皮に何らかのオブジェクトが接触するとヒット判定されるように設定されているが、これに限るものではなく、ヒット判定領域６の半径Ｒよりやや大きく設定することによって、ヒットしたオブジェクトが主役キャラクタ１０に刺さり、刺さった部分が見えなくなるような視覚的効果を図るようにしても良い。
【００５９】
図８は、主役キャラクタ１０の操作方法を説明する図である。主役キャラクタ１０は、主役キャラ用接続ポートに接続されたゲームコントローラ１２００からの操作入力によって制御される。具体的には、同図に示すように、ゲームコントローラ１２００の左アナログレバー１２０４になされた操作入力（傾斜方向及び傾斜量）に応じて、骨格モデルＢＭの前端ノード２ｆｒに第１の操作力Ｆ１が設定される。また、右アナログレバー１２０２になされた操作入力に応じて、後端ノード２ｒｒに第２の操作力Ｆ２が設定される。なお、操作力Ｆ以外に、重力や風に押される力などのゲーム空間に設定された様々な力や、他のキャラクタとの衝突によって受ける力が適宜設定され得るが、ここでは説明を省略する。
【００６０】
第１の操作力Ｆ１或いは第２の操作力Ｆ２が設定されると、この操作力Ｆによって骨格モデルＢＭは前端ノード２ｆｒ或いは後端ノード２ｒｒがそれぞれ引っ張られる格好となり、先に説明した骨格モデルＢＭの連結条件を考慮して所定の運動方程式に従って各ノード２の位置が更新される。そして、各ノード２の位置が更新された骨格モデルＢＭをベースに外皮を形成処理することによって、主役キャラクタ１０の表示モデルの位置が更新される。これにより、主役キャラクタ１０がゲーム空間内を移動するように表現される。
【００６１】
また、右アナログレバー１２０２及び左アナログレバー１２０４の操作入力の組合せによって、主役キャラクタ１０の伸張／短縮操作が可能である。図９は、主役キャラクタ１０の伸長操作（伸ばす操作）を説明するための図である。同図（ａ）に示すように、ゲームコントローラ１２００の右アナログレバー１２０２から右方向入力が、左アナログレバー１２０４から左方向入力が同時に入力されると、伸長操作入力となる。すると、同図（ｂ）の俯瞰図に示すように、主役キャラクタ１０の骨格モデルＢＭは、左側の状態から右側の状態に変更される。すなわち、前端ノード２ｆｒとその次の連結ノード２ｂとの間に新たなノード２ａが追加されるとともに、後端ノード２ｒｒとその次の連結ノード２ｃとの間に新たなノード２ｄが追加される。
【００６２】
詳細には、前端ノード２ｆｒが、連結子４の長さＬだけ、当該前端ノード２ｆｒの次連結ノード２ｂから当該前端ノード２ｆｒに向う方向ａ（前方）に移動され、当該前端ノード２ｆｒの元の位置に新たなノード２ａが追加される。また、後端ノード２ｒｒについても同様に、後端ノード２ｒｒが、連結子４の長さＬだけ、当該後端ノード２ｒｒの次連結ノード２ｃから当該後端ノード２ｒｒに向う方向ｂ（後方）に移動され、当該後端ノード２ｒｒの元の位置に新たなノード２ｄが追加される。そして、同図（ｃ）の俯瞰図に示すように、主役キャラクタ１０の表示モデルは、変更された骨格モデルＢＭに基づいて外皮が形成されることによって、左側の全長が短い状態から右側の全長が伸びた状態に変化する。
【００６３】
一方、右アナログレバー１２０２から右方向入力され、左アナログレバー１２０４から左方向入力がされているが、同時入力とはみなされない場合には、同図（ｄ）の左側の状態のように、単に左アナログレバー１２０４からの操作入力に応じた第１の操作力Ｆ１が前端ノード２ｆｒに作用し、右アナログレバー１２０２への入力に応じた第２の操作力Ｆ２が後端ノード２ｒｒに作用しているとみなされる。したがって、同図（ｄ）の場合、第１の操作力Ｆ１及び第２の操作力Ｆ２が、主役キャラクタ１０の頭１１及び尾１２をそれぞれ引っ張るように作用し、新たなノード２は追加されずに前端ノード２ｆｒと後端ノード２ｒｒが反対方向に引っ張られる格好となる。この結果、例えば骨格モデルＢＭが湾曲状態であれば、同図（ｄ）の右側の状態のように直線状態に近づくことになる。なお、この「伸張操作」は、右アナログレバー１２０２及び左アナログレバー１２０４それぞれからの左右方向の同時入力に限らず、例えば、右アナログレバー１２０２と左アナログレバー１２０４の一方からの上方向入力と他方からの下方向入力との同時入力としても良い。
【００６４】
また、図１０は、主役キャラクタ１０の短縮操作（縮める操作）を説明するための図である。同図（ａ）に示すように、ゲームコントローラ１２００の右アナログレバー１２０２から左方向入力、左アナログレバー１２０４から右方向入力が同時入力されると、短縮操作入力となる。すると、主役キャラクタ１０の骨格モデルＢＭは、同図（ｂ）の俯瞰図に示すように、左側の状態から右側の状態に変更される。すなわち、前端ノード２ｆｒの次連結ノード２ａが削除され、この次連結ノード２ａの元の位置に前端ノード２ｆｒが移動される。また、後端ノード２ｒｒの次連結ノード２ｄが削除され、この次連結ノード２ｄの元の位置に後端ノード２ｒｒが移動される。そして、同図（ｃ）の俯瞰図に示すように、主役キャラクタ１０の表示モデルは、変更された骨格モデルＢＭに基づいて外皮が形成されることによって、左側の状態から全長が縮んだ右側の状態に変化する。
【００６５】
一方、右アナログレバー１２０２から左方向入力され、左アナログレバー１２０４から右方向入力がされているが、同時入力とはみなされない場合には、単に左アナログレバー１２０４への入力に応じた第１の操作力Ｆ１が前端ノード２ｆｒに作用し、右アナログレバー１２０２への入力に応じた第２の操作力Ｆ２が後端ノード２ｒｒに作用するように制御される。したがって、同図（ｄ）の場合、第１の操作力Ｆ１及び第２の操作力Ｆ２は主役キャラクタ１０の頭１１と尾１２を近づけるように作用する。その結果、骨格モデルＢＭが当初湾曲した状態であれば、同図（ｄ）左側の状態のように、ノード２の削除は行われずに前端ノード２ｆｒと後端ノード２ｒｒが近づく格好となるので、同図（ｄ）の右側の状態のように湾曲がより強い状態になる。
【００６６】
本実施形態では、このように主役キャラクタ１０を操作する。したがって、プレーヤの立場からすると、できるだけ主役キャラクタ１０の頭１１と尾１２がゲーム画面内に写され、且つある程度その周囲の状況が見えるように仮想カメラＣＭの撮影条件が制御されるのが望ましいことになる。なお、この「撮影条件」とは、仮想カメラＣＭのワールド座標系の位置や視線方向、画角（或いは、レンズの焦点距離）を含む意味である。
【００６７】
図１１，図１２は、仮想カメラＣＭの撮影条件の設定を説明する図である。先ず、図１１（ａ）に示すように、現時点における主役キャラクタ１０を包含する個別包含領域３０と、ＰＣである一般キャラクタ２０（一般ＰＣ）それぞれを包含する個別包含領域３０を設定する。個別包含領域３０は、バウンダリボックスと同様、ワールド座標系のＸｗ，Ｙｗ，Ｚｗ軸の各軸に沿った平面で形成された直方体である。次いで、これらの個別包含領域３０の全てを包含する全体包含領域４０を設定する。この全体包含領域４０も、個別包含領域３０と同様に、ワールド座標系のＸｗ，Ｙｗ，Ｚｗ軸の各軸に沿った平面で形成された直方体である。なお、一般キャラクタの全てがＮＰＣである場合には、同図（ｂ）に示すように、主役キャラクタ１０の個別包含領域３０が全体包含領域４０となる。
【００６８】
次いで、図１２に示すように、全体包含領域４０の対角線４２を求める。対角線４２は、例えば全体包含領域４０の中心４１を挟んで対称位置関係にある、Ｘ−Ｚ平面に平行な下側平面の頂点と上側平面の頂点を結ぶ４つの線分である。なお、同図では、１つの対角線４２のみを示している。続いて、この４つの対角線４２それぞれを仮想カメラＣＭの撮影画像の画像座標系に投影し、投影線分４３の画像座標系のＸｃ軸成分投影寸法Ｌｘ及びＹｃ軸成分投影寸法Ｌｙを算出する。次いで、算出したＸｃ軸成分投影寸法Ｌｘの最大値及びＹｃ軸成分投影寸法Ｌｙそれぞれの最大値を求める。
【００６９】
そして、求めたＸｃ軸成分投影寸法ＬｘとＹｃ軸成分投影寸法Ｌｙとを比較し、大きいほうの投影寸法Ｌｍが、対応する画像座標軸方向の画面幅Ｗに対して所定比率（例えば、８０％）を成すように、仮想カメラＣＭの撮影条件を設定する。すなわち、Ｘｃ軸成分投影寸法ＬｘがＹｃ軸成分投影寸法Ｌｙより大きい（Ｌｘ＞Ｌｙ）ならば、画像座標系のＸ軸方向の画面幅Ｗｘ（＝仮想カメラＣＭの撮影画像の横寸法）に対するＸ軸成分投影寸法Ｌｘの比が８０％（Ｗｘ：Ｌｘ＝１００：８０）となるように、仮想カメラＣＭの撮影条件（具体的には、位置及び画角θｃ）を設定する。一方、Ｘｃ軸成分投影寸法ＬｘがＹｃ軸成分投影寸法Ｌｙ以下（Ｌｘ≦Ｌｙ）ならば、画像座標系のＹ軸方向の画面幅Ｗｙ（＝仮想カメラＣＭの撮影画像の縦寸法）に対するＹ軸成分投影寸法Ｌｙの比が８０％（Ｗｙ：Ｌｙ＝１００：８０）となるように、仮想カメラＣＭの撮影条件を設定する。
【００７０】
撮影条件の設定としては、例えば画角θｃを固定とするならば、仮想カメラＣＭの視線方向４４を全体包含領域４０の中心４１に向け、式（１）に従って、中心４１と仮想カメラＣＭとの間の適正撮影距離Ｌｃを求める。
Ｌｃ＝｛(１００／８０)×Ｌｍ）｝／｛２×ｔａｎ(θｃ／２)｝…（１）
なお、適正撮影距離Ｌｃを一定にして画角θｃを求める構成としても良く、その場合も幾何学的に画角θｃを求めることができる。
【００７１】
また、仮想カメラＣＭを、主役キャラクタ１０に対して左右どちらの方向に配置するかは適宜設定することができる。例えば、本実施形態では左アナログレバー１２０４からの操作入力に応じて頭１１の移動が制御され、右アナログレバー１２０２からの操作入力に応じて尾１２の移動が制御されるので、主役キャラクタ１０の左側を撮影するように、主役キャラクタ１０にとって左側に仮想カメラＣＭを配置すると望ましい。なぜならば、ゲーム画面の左側に主役キャラクタ１０の頭１１、画面右側に尾１２が映されることになるのでゲームコントローラ１２００における入力手段の配置関係と左右の位置関係が合致し自然な操作感が得られるからである。この結果、プレーヤが主役キャラクタ１０を操作する上で基点となる主役キャラクタ１０の頭１１と尾１２が常にゲーム画面に表示されるとともに、ＰＣである一般キャラクタ２０（一般ＰＣ）が存在する場合にはこの一般ＰＣも表示されることになる。
【００７２】
［機能構成］
図１３は、家庭用ゲーム装置１０００の機能構成を示すブロック図である。同図によれば、家庭用ゲーム装置１０００は、機能的には、操作入力部１００と、処理部２００と、画像表示部３００と、音出力部４００と、通信部５００と、記憶部６００とを備えて構成される。
【００７３】
操作入力部１００は、プレーヤによる操作指示を受け付け、なされた各種操作入力に応じた操作信号を処理部２００に出力する。図１では、ゲームコントローラ１２００がこれに該当する。本実施形態では、操作入力部１００は、主役キャラクタ１０に対する操作入力を行うための主役キャラ用操作部１１０と、一般キャラクタ２０に対する操作入力を行うための複数の一般キャラ用操作部１２０とを含んでいる。
【００７４】
主役キャラ用操作部１１０は、１つの操作で少なくとも２軸の方向入力が可能な第１方向入力部１１１及び第２方向入力部１１２を有する。この主役キャラ用操作部１１０は、本体装置１１００の接続ポート１１１０のうち、主役キャラ用接続ポートに接続されたゲームコントローラ１２００が該当し、第１方向入力部１１１及び第２方向入力部１１２は、このゲームコントローラ１２００の右ボタン群１２２０及び左ボタン群１２２２それぞれが該当する。
【００７５】
一般キャラ用操作部１２０は、２体の一般キャラクタ２０（一般ＰＣ）に対する操作入力が可能であり、それぞれに対する操作入力を独立して行うため、「第１の一般ＰＣ」に対する操作入力を行うための第１キャラ用入力部１２１と、「第２の一般ＰＣ」に対する操作入力を行うための第２キャラ用入力部１２２とを有している。この一般キャラ用操作部１２０は、一般キャラ用接続ポートに接続されたゲームコントローラ１２００それぞれに該当し、第１キャラ用入力部１２１及び第２キャラ用入力部１２２は、このゲームコントローラ１２００の右ボタン群１２２０及び左ボタン群１２２２それぞれが該当する。また、一般キャラ用操作部１２０の数は、現時点で一般キャラ用接続ポートに接続されているゲームコントローラ１２００の数に等しい。
【００７６】
なお、本体装置１１００の接続ポート１１１０それぞれを主役キャラ用接続ポートとするか一般キャラ接続用ポートとするかは、ゲームの進行開始前にゲーム演算部２１０によって決定される。そして、各接続ポート１１１０の設定データは、接続ポート設定データ６２５に格納される。
【００７７】
図１４に、接続ポート設定データ６２５のデータ構成の一例を示す。同図によれば、接続ポート設定データ６２５は、接続ポート６２５ａ毎に、制御対象として設定されたキャラクタの種別６２５ｂを対応付けて格納している。
【００７８】
処理部２００は、記憶部６００に記憶されているプログラムやデータ、操作入力部１００からの操作信号等に基づき各種の演算処理を実行して、家庭用ゲーム装置１０００の全体制御を行う。この処理部２００は、例えばマイクロプロセッサやＡＳＩＣ（特定用途向け集積回路）、ＩＣメモリ等によって実現される。図１では、本体装置１１００に内蔵された制御ユニット１１０２がこれに該当する。また、本実施形態では、処理部２００は、ゲーム演算部２１０と、画像生成部２３０と、音生成部２４０と、通信制御部２５０とを含む。
【００７９】
ゲーム演算部２１０は、ゲームの進行にかかる処理を実行する。例えば、ゲーム空間を仮想空間中に形成する処理や、ゲーム空間中に配置された各種キャラクタの制御処理、ヒット判定処理、物理演算処理、ゲーム結果の算出処理等が含まれる。また、本実施形態では、ゲーム演算部２１０は、コントローラ接続検出部２１１と、主役キャラ制御部２１２と、一般キャラ制御部２１３と、仮想カメラ制御部２１６とを有し、記憶部６００のゲームプログラム６１０に従ったゲーム処理を実行する。
【００８０】
コントローラ接続検出部２１１は、本体装置１１００へのゲームコントローラ１２００の接続／切断（接続中断）を検出する。具体的には、定期的に、接続ポート１１１０それぞれへのゲームコントローラ１２００の接続有無を判断するとともに、接続されているゲームコントローラ１２００のコントローラＩＤを取得する。これにより、接続ポート１１１０への新たなゲームコントローラ１２００の接続や、接続ポート１１１０に接続されていたゲームコントローラ１２００の取り外し（切断）を検出する。
【００８１】
主役キャラ制御部２１２は、主役キャラ用操作部１１０からの操作入力に従って主役キャラクタ１０を制御する。具体的には、図８を参照して説明したように、第１方向入力部１１１及び第２方向入力部１１２それぞれからの操作入力（傾斜方向及び傾斜量）に応じた操作力Ｆ１，Ｆ２を、主役キャラクタ１０の骨格モデルＢＭの前端ノード２ｆｒ及び後端ノード２ｒｒそれぞれに設定する。操作力Ｆ１，Ｆ２は、連結子４を伝ってそれ以外のノード２にも作用する。このため、前端ノード２ｆｒと後端ノード２ｒｒとの間の各ノード２に、ノード間の連結関係に従って連結子方向の操作力Ｆ１，Ｆ２の分力を作用させる。そして、作用させた力をもとに、運動方程式に従って骨格モデルＢＭの連結条件を満たすように各ノード２を移動させる。
【００８２】
また、「伸張操作」が入力された場合には、図９を参照して説明したように、主役キャラクタ１０の骨格モデルＢＭの前端ノード２ｆｒを連結子４の長さＬだけ前方に移動させ、前端ノード２ｆｒの元の位置に新たなノード２を追加するとともに、後端ノード２ｒｒを連結子４の長さＬだけ後方に移動させ、後端ノード２ｒｒの元の位置に、新たなノード２を追加する。ここで、「伸張操作」とは、右アナログレバー１２０２から右方向が、左アナログレバー１２０４から左方向が、同時に入力される操作である。すなわち、主役キャラ制御部２１２は、第１方向入力部１１１と第２方向入力部１１２から、同時入力とみなせる程度の時間差で互いに相反する方向が入力されると、「伸張操作」が入力されたと判断する。
【００８３】
また、所定の「短縮操作」がなされた場合には、図１０を参照して説明したように、主役キャラクタ１０の骨格モデルＢＭの前端ノード２ｆｒの次連結ノード２を削除し、この次連結ノード２の元の位置に前端ノード２ｆｒを移動させるとともに、後端ノード２ｒｒの次連結ノード２を削除し、この次連結ノード２の元の位置に後端ノード２ｒｒを移動させる。ここで、「短縮操作」は、右アナログレバー１２０２から左方向が、左アナログレバー１２０４から右方向が、同時に入力される操作である。すなわち、主役キャラ制御部２１２は、第１方向入力部１１１と第２方向入力部１１２から、同時とみなせるほどの時間差で互いに近寄るような方向が入力されると、「短縮操作」が入力されたと判断する。
【００８４】
なお、主役キャラ制御部２１２は、ノード増減許可タイマのカウント値が基準値に達していない場合には、伸張操作や短縮操作がなされても、主役キャラクタ１０の伸張或いは短縮の制御は行わない。ノード増減許可タイマとは、主役キャラクタ１０が伸長或いは短縮されない状態が継続している時間を計時（カウント）し、主役キャラクタ１０の伸張或いは短縮の制御が終了した時点でリセットされる。つまり、主役キャラクタ１０の伸張或いは短縮されない状態がある一定時間以上経過していない場合には、伸長操作や短縮操作を入力しても、伸長或いは短縮の制御は実行されない。これによって、伸長或いは短縮する動作にある種の時間的な「溜め」を作り、ゆっくりと主役キャラクタ１０の胴が伸びたり縮んだりする際の抵抗感を表現し、あたかも胴１３がある程度生き物らしく成長や変形によって伸び縮みしているかのように見せることができる。
【００８５】
主役キャラクタ１０についてのデータは、主役キャラデータ６２１に格納されている。図１５に、主役キャラデータ６２１のデータ構成の一例を示す。同図によれば、主役キャラデータ６２１は、主役キャラクタ１０のキャラクタＩＤ６２１ａと、モデルデータ６２１ｂと、骨格モデルデータ６２２と、作用力データ６２３とを格納している。
【００８６】
骨格モデルデータ６２２は、現時点での主役キャラクタ１０の骨格モデルＢＭについてのデータである。図１６に、骨格モデルデータ６２２のデータ構成の一例を示す。同図によれば、骨格モデルデータ６２２は、ノード６２２ａ毎に、現在の位置座標６２２ｂと、頭側連結ノード６２２ｃと、尾側連結ノード６２２ｄと、エフェクタ６２２ｅとを対応付けて格納している。頭側連結ノード６２２ｃは、対応するノード２の連結順で頭側（前側）に連結されているノード２である。尾側連結ノード６２２ｄは、対応するノード２の連結順で尾側（後側）に連結されているノード２である。エフェクタ６２２ｅは、当該ノード２が第１方向入力部１１１或いは第２方向入力部１１２からの操作入力に応じた操作力Ｆが作用するノードであるか否かを示すデータである。例えば、第２方向入力部１１２からの操作入力に応じた操作力Ｆ１が作用するノード２には「１」が、第１方向入力部１１１からの操作入力に応じた操作力Ｆ２が作用するノード２には「２」が、それ以外のノード２には「０」が、それぞれ設定される。
【００８７】
作用力データ６２３は、現時点で主役キャラクタ１０の各ノード２に作用している力（作用力）についてのデータである。図１７に、作用力データ６２３のデータ構成の一例を示す。同図によれば、作用力データ６２３は、ノード６２３ａ毎に、操作力ベクトル６２３ｂと、外力ベクトル６２３ｃと、作用力ベクトル６２３ｄとを対応付けて格納している。操作力ベクトル６２３ｂは、第１方向入力部１１１及び第２方向入力部１１２からの操作入力に応じて当該ノード２に作用する力のベクトルである。外力ベクトル６２３ｃは、ゲーム空間自体に場として設定されている力や、ゲーム空間に配置されている他のオブジェクトによって作用する力のベクトルである。例えば、重力、他のオブジェクトとの衝突や接触によって生じる力、環境風を受けることによって生じる力等がこれに含まれる。作用力ベクトル６２３ｄは、操作力ベクトルと外力ベクトルとの和である。
【００８８】
一般キャラ制御部２１３は、一般キャラ用接続ポートに接続されているゲームコントローラ１２００への一般キャラクタ２０の割り当てを行う。具体的には、コントローラ接続検出部２１１により一般キャラ用接続ポートへのゲームコントローラ１２００の接続が検出されると、このゲームコントローラ１２００に、２体のＮＰＣである一般キャラクタ２０（一般ＮＰＣ）を割り当てる。すなわち、図６を参照して説明したように、ゲーム空間に配置されているＮＰＣである一般キャラクタ２０（一般ＮＰＣ）のうちから、主役キャラクタ１０から近い順に２体を選択し、選択した一般キャラクタ２０（ＮＰＣ）をＰＣに変更してこのゲームコントローラ１２００に割り当てる。また、一般キャラ用接続ポートに接続されていたゲームコントローラ１２００の切断（接続中断）が検出されると、このゲームコントローラ１２００への一般キャラクタ２０（一般ＰＣ）の割り当てを解除し、当該一般キャラクタ２０をＮＰＣに変更する。
【００８９】
ゲームコントローラ１２００へのキャラクタの割り当てについてのデータは、キャラ割り当てデータ６２６に格納される。図１８に、キャラ割り当てデータ６２６のデータ構成の一例を示す。同図によれば、キャラ割り当てデータ６２６は、接続ポート６２６ａ毎に、接続されているゲームコントローラ６２６ｂと、割り当てられているキャラクタ６２６ｃとを対応付けて格納している。割り当てキャラクタ６２６ｃは、主役キャラ用接続ポートについては主役キャラクタ１０のキャラクタＩＤが格納され、一般キャラ用接続ポートについては、当該ポートに接続されているゲームコントローラ１２００に割り当てられた２体の一般キャラクタ２０のキャラクタＩＤが格納される。但し、ゲームコントローラ１２００が接続されていない接続ポート１１１０については、キャラクタが割り当てられない。
【００９０】
また、一般キャラ制御部２１３は、ＮＰＣである一般キャラクタ２０（一般ＰＣ）を制御する一般ＰＣ制御部２１４と、ＰＣである一般キャラクタ２０（一般ＮＰＣ）を制御する一般ＮＰＣ制御部２１５とを有する。
【００９１】
一般ＮＰＣ制御部２１５は、ＮＰＣである一般キャラクタ２０（一般ＮＰＣ）を、当該キャラクタに予め定められている所定の制御ルーチン、並びに全ての一般キャラクタ２０に対して共通に定められている一般キャラ行動テーブル６３１に従って制御する。
【００９２】
一般キャラ行動テーブル６３１は、一般キャラクタ２０の行動をその発動条件と対応付けて定めたデータテーブルである。図３０に、一般キャラ行動テーブル６３１のデータ構成の一例を示す。同図によれば、一般キャラ行動テーブル６３１は、一般キャラクタ２０がとり得る行動６３１ａそれぞれについて、行動発動条件６３１ｂを対応付けて格納している。行動発動条件６３１ｂは、一般キャラクタ２０がＮＰＣであるかＰＣであるかに応じて異なる。すなわち、ＮＰＣであるときの発動条件として、ゲーム空間の環境や、当該一般キャラクタ２０と他のキャラクタ（主役キャラクタ２０或いは他の一般キャラクタ２０）との相対位置関係に基づく条件が設定され、ＰＣであるときの発動条件としては、上記ＮＰＣであるときの発動条件とゲームコントローラ１２００からの操作信号とを組み合わせた条件が設定されている。これにより、プレーヤがＰＣである一般キャラクタ２０を操作して、当該一般キャラクタ２０がＮＰＣであるときと同様の行動を行わせることが可能となる。
【００９３】
一般ＰＣ制御部２１４は、ＰＣである一般キャラクタ２０（一般ＰＣ）を、一般キャラ行動テーブル６３１を参照し、該当する一般キャラ用操作部１２０からの操作入力に従って制御する。すなわち、一般キャラクタ２０（一般ＰＣ）が、割り当てられているゲームコントローラ１２００の「第１の一般ＰＣ」として設定されているならば、第１キャラ用入力部１２１からの操作入力に従って制御し、「第２の一般ＰＣ」として設定されているならば、第２キャラ用入力部１２２からの操作入力に従って制御する。
【００９４】
一般キャラクタ２０についてのデータは、一般キャラデータ６２４に格納されている。図１９に、一般キャラデータ６２４のデータ構成の一例を示す。同図によれば、一般キャラデータ６２４は、ゲーム空間に配置されている一般キャラクタ毎に生成され、該当する一般キャラクタ２０のキャラクタＩＤ６２４ａと、種類６２４ｂと、モデルデータ６２４ｃと、現在位置６２４ｄと、制御形態６２４ｅと、制御ルーチン６２４ｆとを格納している。現在位置６２４ｄは、ワールド座標系で表現された当該一般キャラクタ２０の代表点の位置座標である。制御形態６２４ｅは、当該一般キャラクタ２０がＰＣであるかＮＰＣであるかを示す値が格納される。
【００９５】
仮想カメラ制御部２１６は、仮想カメラＣＭを制御する。具体的には、図１１，図１２を参照して説明したように仮想カメラＣＭの撮影条件を決定する。すなわち、主役キャラクタ１０及びＰＣである一般キャラクタ２０（一般ＰＣ）それぞれを包含する個別包含領域３０を設定し、これらの個別包含領域３０全てを包含する全体包含領域４０を設定する。また、主役キャラクタ１０との相対位置が所定の位置関係を満たすように仮想カメラＣＭの仮配置位置を決定し、この仮配置位置を基準として全体包含領域４０の中心４１を向くように仮想カメラＣＭの視線方向を設定する。ここで、満たすべき「相対位置関係」としては、例えば主役キャラクタ１０の左斜め上方の位置である。
【００９６】
次いで、全体包含領域４０の４つの対角線４２それぞれを仮想カメラＣＭの撮影画像の画像座標系に投影したＸｃ軸成分投影寸法Ｌｘ及びＹｃ軸成分投影寸法Ｙｃのうち、大きいほうの投影寸法Ｌｍを求め、仮想カメラＣＭの画角θｃを所定値として式（１）に従って最適撮影距離Ｌｃを算出する。そして、仮想カメラＣＭの視線方向に沿って、全体包含領域４０の中心４１から最適撮影距離Ｌｃの位置を、仮想カメラＣＭの配置位置として設定する。
【００９７】
仮想カメラＣＭについてのデータは、仮想カメラデータ６２７に格納される。図２０に、仮想カメラデータ６２７のデータ構成の一例を示す。同図によれば、仮想カメラデータ６２７は、現在の仮想カメラＣＭの配置位置６２７ａと、視線方向６２７ｂと、画角６２７ｃとを格納している。
【００９８】
画像生成部２３０は、ゲーム演算部２１０による処理結果に基づいて１フレーム時間（１／６０秒）で１枚のゲーム画像を生成し、生成したゲーム画像の画像信号を画像表示部３００に出力する。この画像生成部２３０は、例えば、デジタルシグナルプロセッサ（ＤＳＰ）などのプロセッサ、その制御プログラム、フレームバッファ等の描画フレーム用ＩＣメモリ等によって実現される。画像表示部３００は、画像生成部２３０から入力される画像信号に基づいて各種ゲーム画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管（ＣＲＴ）、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。図１では、ビデオモニタ１３００のディスプレイ１３０２がこれに該当する。
【００９９】
音生成部２４０は、ゲーム演算部２１０による処理結果に基づいてゲームに係る効果音やＢＧＭ、各種操作音の音信号を生成し、音出力部４００に出力する。この音生成部２４０は、例えばデジタルシグナルプロセッサ（ＤＳＰ）などのプロセッサやその制御プログラムによって実現される。音出力部４００は、音生成部２４０から入力される音信号に基づいて効果音やＢＧＭ等を音出力する装置によって実現される。図１では、ビデオモニタ１３００のスピーカ１３０４がこれに該当する。
【０１００】
通信制御部２５０は、データ通信に係るデータ処理を実行し、通信部５００を介して外部装置とのデータのやりとりを実現する。通信部５００は、通信回線Ｎと接続して通信を実現する。例えば、無線通信機、モデム、ＴＡ（ターミナルアダプタ）、有線用の通信ケーブルのジャックや制御回路等によって実現され、図１では、通信装置１１０８がこれに該当する。
【０１０１】
記憶部６００は、処理部２００に家庭用ゲーム装置１０００を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なゲームプログラム、各種データ等を記憶する。また、処理部２００の作業領域として用いられ、処理部２００が各種プログラムに従って実行した演算結果や操作入力部１００から入力される入力データ等を一時的に記憶する。この機能は、例えばＲＡＭやＲＯＭなどのＩＣメモリ、ハードディスク等の磁気ディスク、ＣＤ−ＲＯＭやＤＶＤなどの光学ディスクなどによって実現される。本実施形態では、記憶部６００には、プログラムとして、ゲームプログラム６１０が記憶されるとともに、データとして、主役キャラデータ６２１と、一般キャラデータ６２４と、接続ポート設定データ６２５と、キャラ割り当てデータ６２６と、仮想カメラデータ６２７と、一般キャラ行動テーブル６３１とが記憶される。
【０１０２】
［処理の流れ］
図２１は、本実施形態のゲーム処理の流れを説明するためのフローチャートである。この処理は、処理部２００がゲームプログラム６１０を実行することで実現される。同図によれば、ゲーム演算部２１０は、先ず、仮想空間にゲーム空間を形成し、このゲーム空間に、主役キャラクタ１０及び一般キャラクタ２０を含む各種キャラクタや、仮想カメラＣＭ等を配置する（ステップＡ１）。次いで、接続ポート１１１０に設定するキャラクタの種別（主役／一般）を決定する（ステップＡ３）。すなわち、現時点でゲームコントローラ１２００が接続されている接続ポート１１１０を判断し、これが１つであれば、当該接続ポート１１１０を主役キャラ用接続ポートとし、２つ以上であれば、例えば最も左に位置する１つの接続ポート１１１０を主役キャラ用接続ポートとし、なければ、予め定められた１つの接続ポート１１１０を主役キャラ用接続ポートとする。そして、それ以外の接続ポート１１１０を一般キャラ用接続ポートとする。その後、ゲームの進行制御を開始する（ステップＡ５）。そして、ゲームの進行中は、一般キャラ制御部２１３が、一般キャラ制御処理を実行して一般キャラクタ２０を制御する（ステップＡ７）。
【０１０３】
図２２は、一般キャラ制御処理の流れを説明するためのフローチャートである。同図によれば、一般キャラ制御部２１３は、一般キャラ用接続ポートに新たなゲームコントローラ１２００が接続されたかを判断する。新たなゲームコントローラ１２００が接続されたならば（ステップＢ１：ＹＥＳ）、ＮＰＣである一般キャラクタ２０（一般ＮＰＣ）のうちから、主役キャラクタ１０に近い順に２体の一般キャラクタ２０を選択し（ステップＢ３）、これらの一般キャラクタ２０をＰＣに変更して、この新たなゲームコントローラ１２００に割り当てる（ステップＢ５）。
【０１０４】
また、一般キャラ用接続ポートに接続されているゲームコントローラ１２００が取り外されたか（切断）を判断し、取り外されたならば（ステップＢ７：ＹＥＳ）、この取り外されたゲームコントローラ１２００への一般キャラクタ２０の割り当てを解除し、割り当てられていた一般キャラクタ２０をＮＰＣに変更する（ステップＢ９）。
【０１０５】
続いて、一般キャラ制御部２１３は、ゲーム空間に配置されている一般キャラクタ２０それぞれを対象としてループＡの処理を行う。ループＡでは、対象の一般キャラクタ２０がＰＣであるかＮＰＣであるかを判断し、ＰＣであるならば（ステップＢ１１：ＹＥＳ）、当該キャラクタが割り当てられている一般キャラ用操作部１２０の該当する入力部（すなわち、対応する一般キャラ用接続ポートに接続されているゲームコントローラ１２００の対応するボタン群）からの操作入力に従って、対象の一般キャラクタ２０を制御する（ステップＢ１３）。一方、対象の一般キャラクタ２０がＮＰＣであるならば（ステップＢ１１：ＮＯ）、該当する一般キャラデータ６２４を参照し、設定されている制御ルーチンに従って対象の一般キャラクタ２０を制御する（ステップＢ１５）。そして、全ての一般キャラクタ２０を対象としたループＡの処理を終了すると、一般キャラ制御処理を終了する。
【０１０６】
また、主役キャラ制御部２１２が、主役キャラ制御処理を実行して主役キャラクタ１０を制御する（ステップＡ９）。
【０１０７】
図２３は、主役キャラ制御処理の流れを説明するためのフローチャートである。同図によれば、主役キャラ制御部２１２は、伸縮処理を実行して、主役キャラクタ１０を伸張或いは短縮させる（ステップＣ１）。
【０１０８】
図２４は、伸縮処理の流れを説明するためのフローチャートである。同図によれば、主役キャラ制御部２１２は、先ず、ノード増減許可タイマのカウントを所定数加算し（ステップＤ１）、加算した後のノード増減許可タイマのカウント値が基準値に達しているか否かを判定する。ノード増減許可タイマのカウント値が基準値に達していなければ（ステップＤ３：ＮＯ）、伸縮処理をそのまま終了する。
【０１０９】
一方、ノード増減許可タイマのカウント値が基準値に達しているならば（ステップＤ３：ＹＥＳ）、主役キャラ制御部２１２は、所定の「伸長操作」が入力されたかを判定する。そして、「伸張操作」が入力されたと判定したならば（ステップＤ５：ＹＥＳ）、主役キャラ制御部２１２は、主役キャラクタ１０の前端ノード２ｆｒ（頭１１のノード２）を連結子４の長さＬだけ前方に移動させ（ステップＤ７）、移動させた前端ノード２ｆｒとその連結ノード２との間に新たなノード２を追加する（ステップＤ９）。また、主役キャラクタ１０の後端ノード２ｒｒ（尾１２のノード２）を連結子４の長さＬだけ後方に移動させ（ステップＤ１１）、移動させた後端ノード２ｒｒとその連結ノード２との間に新たなノード２を追加する（ステップＤ１３）。
【０１１０】
また、「伸張操作」が入力されていないならば（ステップＤ５：ＮＯ）、主役キャラ制御部２１２は、所定の「短縮操作」が入力されたかを判定する。そして、「短縮操作」が入力されたと判定したならば（ステップＤ１５：ＹＥＳ）、主役キャラ制御部２１２は、主役キャラクタ１０の前端ノード２ｆｒの次に連結されているノード（次連結ノード）と、後端ノード２ｒｒの次に連結されているノード（連結ノード）を削除し（ステップＤ１７）、前端ノード２ｆｒ及び後端ノード２ｒｒそれぞれを、削除した次連結ノードの位置に移動させる（ステップＤ１９）。その後、主役キャラ制御部２１２は、ノード増減許可タイマをリセットして「０」に戻してリスタートし（ステップＳ２１）、伸縮処理を終了する。
【０１１１】
伸縮処理を終了すると、主役キャラ制御部２１２は、作用力設定処理を実行して、主役キャラクタ１０に作用力を設定する（ステップＣ３）。
【０１１２】
図２５は、作用力設定処理の流れを説明するためのフローチャートである。同図によれば、主役キャラ制御部２１２は、主役キャラ用操作部１１０の第１方向入力部１１１（すなわち、主役キャラ用接続ポートに接続されているゲームコントローラ１２００の左アナログレバー１２０４）からの操作入力（傾倒方向及び傾倒量）に応じた第１の操作力Ｆ１を決定し、操作力ベクトルとして主役キャラクタ１０の頭１１に対応する前端ノード２ｆｒに設定する（ステップＥ１）。次いで、前端ノード２ｆｒから各ノードに連結子４を介して伝わる操作力Ｆ１の分力をノード２の連結順に従って算出し、操作力ベクトルとして各ノード２に設定する（ステップＥ３）。
【０１１３】
また、主役キャラ用操作部１１０の第２方向入力部１１２（すなわち、右アナログレバー１２０２の）からの操作入力（傾倒方向及び傾倒量）に応じた第２の操作力Ｆ２を決定し、操作力ベクトルとして主役キャラクタ１０の尾１２に対応する後端ノード２ｒｒに設定する（ステップＥ５）。次いで、後端ノード２ｒｒから各ノード２に連結子４を介して伝わる操作力Ｆ２の分力をノード２の連結順に従って算出し、各ノード２の操作力ベクトルに加算する（ステップＥ７）。
【０１１４】
また、主役キャラ制御部２１２は、主役キャラクタ１０に作用する外力を設定する。すなわち、骨格モデルＢＭの各ノード２について、主役キャラクタ１０に作用する重力や電磁力、風力などゲーム空間に環境要因として設定されている力、或いは他のオブジェクトとの衝突によって受ける力などを算出し、外力ベクトルとして設定する（ステップＥ９）。そして、主役キャラクタ１０の全ノード２について、操作力ベクトルと外力ベクトルとの和を求め、それぞれの作用力ベクトルとして設定する（ステップＥ１１）。以上の処理を行うと、作用力設定処理を終了する。
【０１１５】
作用力設定処理を終了すると、主役キャラ制御部２１２は、続いて、主役キャラクタ１０の移動制御処理を行う（ステップＣ５）。この移動制御処理では、主役キャラクタ１０の各ノード２に設定された作用力ベクトルをもとに、骨格モデルＢＭの連結条件を満たす各ノード２の次の位置を算出する。以上の処理を行うと、主役キャラ制御処理を終了する。
【０１１６】
また、仮想カメラ制御部２１６が、仮想カメラ制御処理を実行して仮想カメラＣＭを制御する（ステップＡ１１）。
【０１１７】
図２６は、仮想カメラ制御処理の流れを説明するためのフローチャートである。同図によれば、仮想カメラ制御部２１６は、主役キャラクタ１０に対する相対位置が所定の位置関係となるよう、仮想カメラＣＭの仮配置位置を決定する（ステップＦ１）。また、主役キャラクタ１０の全体を包含する個別包含領域３０を設定するとともに（ステップＦ３）、ＰＣである一般キャラクタ２０（一般ＰＣ）それぞれを包含する個別包含領域３０を設定する（ステップＦ５）。次いで、これらの個別包含領域３０の全てを包含する全体包含領域４０を設定する（ステップＦ７）。そして、仮配置位置から見て全体包含領域４０の中心４１に向うように、仮想カメラＣＭの視線方向を決定する（ステップＦ９）。
【０１１８】
続いて、仮想カメラ制御部２１６は、全体包含領域４０の対角線４２を求め（ステップＦ１１）、求めた各対角線４２を仮想カメラＣＭの画像座標系に投影し、撮影画像上におけるＸｃ軸方向投影寸法Ｌｘ及びＹｃ軸方向投影寸法Ｌｙを算出する（ステップＦ１３）。次いで、算出したＸｃ軸方向投影寸法Ｌｘの最大値と、Ｙｃ軸方向投影寸法Ｌｙの最大値とを比較し、大きい方の投影寸法Ｌｍを求める（ステップＦ１５）。次いで、投影寸法Ｌｍをもとに、式（１）に従って、仮想カメラＣＭの全体包含領域４０の中心４１からの適正撮影距離Ｌｃを決定する（ステップＦ１７）。そして、全体包含領域４０の中心４１から仮配置位置に向って視線方向に沿って適正撮影距離Ｌｃとなる位置を、仮想カメラＣＭの次の配置位置とする（ステップＦ１９）。以上の処理を行うと、仮想カメラ制御処理を終了する。
【０１１９】
仮想カメラ制御処理を終了すると、画像生成部２３０が、仮想カメラＣＭに基づくゲーム空間の画像を生成し、ゲーム画面として画像表示部３００に表示させる（ステップＡ１３）。その後、ゲーム演算部２１０は、ゲームの終了条件を満たすか否かを判断し、満たさないならば（ステップＡ１５：ＮＯ）、ステップＡ７に戻ってゲームの進行を続行し、終了条件を満たすならば（ステップＡ１５：ＹＥＳ）、ゲームの進行を終了してゲーム処理を終了する。
【０１２０】
［変形例］
以上、本発明の一実施形態を説明したが、本発明の適用可能な実施形態は上述の実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で適宜変更可能なのは勿論である。
【０１２１】
（Ａ）ゲームコントローラ１２００に割り当てる一般キャラクタ２０
（Ａ１）主役キャラクタ１０との位置関係
上述の実施形態では、ゲームコントローラ１２００に割り当てる一般キャラクタ２０を、主役キャラクタ１０に近い順から選択することにしたが、主役キャラクタ１０を基準として相対的な位置関係が所定条件を満たす一般キャラクタ２０であれば何れを選択することにしても良い。例えば、主役キャラクタ１０から所定距離の範囲内の一般ＮＰＣのうちからランダムに選択することにしても良い。ここで、主役キャラクタ１０を基準とするのは、仮想カメラＣＭの表示対象となる範囲が広くなり、ゲーム画面中のキャラクタが小さくなり過ぎるのを防止するためである。
【０１２２】
（Ａ２）一般キャラクタ２０の種類
また、一般キャラクタ２０を複数種類用意し、種類間に相対的な特性（関係）を定め、所定の特性にある一般キャラクタ２０を選択して割り当てることにしても良い。一般キャラクタ２０の種類間の特性としては、例えば次のようなものがある。すなわち、“らいおん”は“うさぎ”に対して優勢であり、逆に“うさぎ”は“らいおん”に対して劣勢であるといった「優劣」や、“けいさつかん”と“どろぼう”といった互いに反目する関係にある「敵味方」、“はりねずみ”は何れのキャラクタにも物理的に所定距離以内に近づけない「接近可否」といったものがある。また、一般キャラクタ２０の種類を“いきもの”と“のりもの”に分類し、“いきもの”は“のりもの”に“乗る”ことができるといった「合体可能」や逆に“のりもの”は“のりもの”に“乗る”ことができないといった「合体不可能」もある。これらの特性を参考に、例えば“いきもの”と“のりもの”や“けいさつかん”と“どろぼう”といった、特性が相反する２体の一般キャラクタ２０を１台のゲームコントローラ１２００に割り当てたり、“いきもの”と“いきもの”といった同じ特性の一般キャラクタ２０を１台のゲームコントローラ１２００に割り当てたりする。
【０１２３】
（Ａ３）一般キャラクタ２０の割り当て履歴
また、本体装置１１００に接続されたゲームコントローラ１２００に割り当てる一般キャラクタ２０を、これまでの割り当て履歴に基づいて決定することにしても良い。具体的には、ゲームコントローラ１２００に割り当てた一般キャラクタ２０を、割り当て履歴として一般キャラ割り当て履歴データ６３１に格納しておく。
【０１２４】
図２７に、一般キャラ割り当て履歴データ６３１のデータ構成の一例を示す。同図によれば、一般キャラ割り当て履歴データ６３１は、割り当て履歴として、これまでに接続が検出されたゲームコントローラ６３１ａ毎に、割り当てられた一般キャラクタ６３１ｂを対応付けて格納している。そして、新たにゲームコントローラ１２００が接続された場合には、この一般キャラ割り当て履歴データ６３１を参照して、以前に当該ゲームコントローラ１２００に割り当てた一般キャラクタ２０以外のキャラクタを選択して割り当てる。
【０１２５】
或いは、以前に当該ゲームコントローラ１２００に割り当てた一般キャラクタ２０と同じキャラクタを割り当てることにしても良い。このとき、該当する一般キャラクタ２０が、現時点で他のゲームコントローラ１２００に割り当てられている（すなわち、ＰＣである）場合には、これ以外のＮＰＣである一般キャラクタ２０（一般ＮＰＣ）のうちから選択して割り当てるようにすれば良い。
【０１２６】
（Ａ４）プレーヤが選択
また、新たに接続したゲームコントローラ１２００に割り当てる一般キャラクタ２０をプレーヤが選択するようにしても良い。具体的には、新たなゲームコントローラ１２００の接続が検出（認識）されると、当該時点においてＮＰＣである一般キャラクタ２０（一般ＮＰＣ）を、例えばゲーム画面において所定のマークを付加表示したり、当該キャラクタのアイコン（簡易画像）を一覧表示させる等してプレーヤに対して提示し、プレーヤによる当該ゲームコントローラ１２００からの選択操作によって選択された一般ＮＰＣをＰＣとして当該ゲームコントローラ１２００に割り当てる。
【０１２７】
（Ｂ）一般キャラクタ２０のカスタマイズ
また、一般キャラクタ２０のカスタマイズを可能としても良い。すなわち、ＰＣである一般キャラクタ２０について、該当するプレーヤが、当該一般キャラクタ２０の髪の毛や肌の色といったキャラクタのパーツや、服や帽子、持ち物といったアイテムを変更可能とする。また、このカスタマイズ可能なパーツやアイテムは、一般キャラクタ２０の種類やプレーヤレベルに応じて異なることにしても良い、
【０１２８】
（Ｃ）仮想カメラＣＭの制御
また、仮想カメラＣＭをプレーヤの操作入力によって制御することにしても良い。具体的には、図２８に示すように、仮想カメラＣＭの視線方向４４を全体包含領域４０の中心４１に向けたまま、ゲームコントローラ１２００からの操作入力に従って、仮想カメラＣＭの配置位置を、Ｘｃ−Ｚｃ平面に平行な方向ａに移動させるとともに、Ｙｃ−Ｚｃ平面に平行な方向ｂに移動させるように制御する。そして、この制御された仮想カメラＣＭの配置位置を仮配置位置として、視線方向４４に沿った全体包含領域４０の中心４１からの適正撮影距離Ｌｃを算出して仮想カメラＣＭを制御する。これにより、主役キャラクタ１０等に対して回り込むようなカメラワークが実現される。
【０１２９】
ここで、仮想カメラＣＭの制御を可能とするゲームコントローラ１２００は、主役キャラ用接続ポートに接続されたゲームコントローラ１２００であることが望ましいが、一般キャラ用接続ポートに接続されたゲームコントローラ１２００としても良い。
【０１３０】
また、ゲームコントローラ１２００における仮想カメラＣＭの制御操作の入力は、ゲームコントローラ１２００に設けられた所定のボタン操作（或いは、スイッチ操作やレバー操作等でも良い）で実現しても良いし、或いは、ゲームコントローラ１２００に所定のＮ軸の加速度センサを内蔵する構成とし、ゲームコントローラ１２００を傾斜させることで実現しても良い、
【０１３１】
（Ｄ）ゲームコントローラ
上述の実施形態では、ゲームコントローラ１２００を、左右の両手で把持し、右ボタン群１２２０及び左ボタン群１２２２それぞれを操作することで２体の一般キャラクタ２０を制御可能な構成としたが、これ以外の構成としても良い。
【０１３２】
具体的には、例えば、図２９に示すように片手で把持する形状のゲームコントローラを用いることにしても良い。同図によれば、家庭用ゲーム装置１０００Ａは、片手で把持可能な棒状のゲームコントローラ１２００Ａを備える。このゲームコントローラ１２００Ａの上面には、右アナログレバー１２０２及び左アナログレバー１２０４に相当する十字キー１２４２が設けられているとともに、本体装置１１００に内蔵された制御ユニット１１０２に実装された無線通信装置１１３２と無線通信を行う無線通信装置１２４４を内蔵している。
【０１３３】
また、ゲームコントローラ１２００Ａにはサブコントローラ１２００Ｂが有線接続可能である。サブコントローラ１２００Ｂには、右アナログレバー１２０２及び左アナログレバー１２０４に相当するアナログレバー１２５２が設けられている。そして、アナログレバー１２５２の操作信号は、当該サブコントローラ１２００Ｂが接続されたゲームコントローラ１２００Ａを介して本体装置１１００に送信される。つまり、ゲームコントローラ１２００Ａは単独の状態で１台のゲームコントローラを形成することも、サブコントローラ１２００Ｂが接続された状態で１台のゲームコントローラを形成することも可能である。
【０１３４】
この場合、ゲームコントローラ１２００Ａ及びサブコントローラ１２００Ｂには、１台につき１体の一般キャラクタ２０が割り当てられる。すなわち、ゲームコントローラ１２００Ａは、サブコントローラ１２００Ｂが接続されているか否かを示す情報を本体装置１１００に送信し、本体装置１１００では、接続されたゲームコントローラ１２００Ａにサブコントローラ１２００Ｂが接続されているか否かに応じて割り当てる一般キャラクタ２０を決定する。つまり、ゲームコントローラ１２００Ａにサブコントローラ１２００Ｂが接続されていない場合には、当該ゲームコントローラ１２００Ａに１体の一般キャラクタを割り当てる。すなわち、ゲームコントローラ全体として１体の一般キャラクタ２０が割り当てられることになる。一方、ゲームコントローラ１２００Ａにサブコントローラ１２００Ｂが接続されている場合には、当該ゲームコントローラ１２００Ａ及び当該サブコントローラ１２００Ｂそれぞれに１体の一般キャラクタ２０を割り当てる。すなわち、ゲームコントローラ全体として２体の一般キャラクタ２０が割り当てられることになる。
【０１３５】
（Ｅ）一般キャラクタ２０の割り当てを報知
また、ゲームコントローラ１２００に割り当てられた一般キャラクタ２０をプレーヤに報知することにしても良い。具体的には、例えば、ゲーム画面において、ＰＣである一般キャラクタ２０（一般ＰＣ）に、対応するゲームコントローラ１２００が接続されている接続ポート１１１０を示す所定のマークを表示する。
【０１３６】
（Ｆ）ゲームコントローラ１２００の接続形態
上述の実施形態では、本体装置１１００とゲームコントローラ１２００を有線接続することにしたが、無線接続することにしても良い。この場合には、更に、本体装置１１００に有線接続されているゲームコントローラ１２００について接続を認識させたまま無線接続に移行させることや、逆に、無線接続されているゲームコントローラ１２００について接続を認識させたまま有線接続に移行させることを可能としても良い。
【図面の簡単な説明】
【０１３７】
【図１】家庭用ゲーム装置の外観例。
【図２】ゲーム空間の一例。
【図３】ゲーム空間の一例。
【図４】ゲームコントローラとキャラクタとの制御関係図。
【図５】ゲームコントローラと一般キャラクタとの制御関係図。
【図６】ゲームコントローラに割り当てる一般キャラクタの選択の説明図。
【図７】主役キャラクタのモデル構成図。
【図８】主役キャラクタの操作方法の説明図。
【図９】主役キャラクタの伸張操作方法の説明図。
【図１０】主役キャラクタの短縮操作方法の説明図。
【図１１】仮想カメラの制御方法の説明図。
【図１２】仮想カメラの制御方法の説明図。
【図１３】家庭用ゲーム装置の機能構成図。
【図１４】接続ポート設定データのデータ構成例。
【図１５】主役キャラデータのデータ構成例。
【図１６】骨格モデルデータのデータ構成例。
【図１７】作用力データのデータ構成例。
【図１８】キャラ割り当てデータのデータ構成例。
【図１９】一般キャラデータのデータ構成例。
【図２０】仮想カメラデータのデータ構成例。
【図２１】ゲーム処理のフローチャート。
【図２２】一般キャラ制御処理のフローチャート。
【図２３】主役キャラ制御処理のフローチャート。
【図２４】伸縮処理のフローチャート。
【図２５】作用力設定処理のフローチャート。
【図２６】仮想カメラ設定処理のフローチャート。
【図２７】一般キャラ割り当て履歴データのデータ構成例。
【図２８】仮想カメラの制御方法の説明図。
【図２９】家庭用ゲーム装置の他の外観例。
【図３０】一般キャラ行動テーブルのデータ構成例。
【符号の説明】
【０１３８】
１０００  家庭用ゲーム装置
１００  操作入力部
１１０  主役キャラ用操作部
１１１  第１方向入力部、１１２  第２方向入力部
１２０  一般キャラ用操作部
１２１  第１キャラ用入力部、１２２  第２キャラ用入力部
２００  処理部
２１０  ゲーム演算部
２１１  コントローラ接続検出部
２１２  主役キャラ制御部
２１３  一般キャラ制御部
２１４  一般ＰＣ制御部、２１５  一般ＮＰＣ制御部
２１６  仮想カメラ制御部
６００  記憶部
６１０  ゲームプログラム
６２１  主役キャラデータ、６２４  一般キャラデータ
６２５  接続ポート設定データ、６２６  キャラ割り当てデータ
６２７  仮想カメラデータ
６３１  一般キャラ行動テーブル
【図１】
2009106393.tif 000003
【図２】
2009106393.tif 000004
【図３】
2009106393.tif 000005
【図４】
2009106393.tif 000006
【図５】
2009106393.tif 000007
【図６】
2009106393.tif 000008
【図７】
2009106393.tif 000009
【図８】
2009106393.tif 000010
【図９】
2009106393.tif 000011
【図１０】
2009106393.tif 000012
【図１１】
2009106393.tif 000013
【図１２】
2009106393.tif 000014
【図１３】
2009106393.tif 000015
【図１４】
2009106393.tif 000016
【図１５】
2009106393.tif 000017
【図１６】
2009106393.tif 000018
【図１７】
2009106393.tif 000019
【図１８】
2009106393.tif 000020
【図１９】
2009106393.tif 000021
【図２０】
2009106393.tif 000022
【図２１】
2009106393.tif 000023
【図２２】
2009106393.tif 000024
【図２３】
2009106393.tif 000025
【図２４】
2009106393.tif 000026
【図２５】
2009106393.tif 000027
【図２６】
2009106393.tif 000028
【図２７】
2009106393.tif 000029
【図２８】
2009106393.tif 000030
【図２９】
2009106393.tif 000031
【図３０】
2009106393.tif 000032