(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024121471
(43)【公開日】2024-09-06
(54)【発明の名称】コンピュータシステム、プログラムおよびマッチング制御方法
(51)【国際特許分類】
A63F 13/67 20140101AFI20240830BHJP
A63F 13/795 20140101ALI20240830BHJP
A63F 13/79 20140101ALI20240830BHJP
A63F 13/533 20140101ALI20240830BHJP
A63F 13/822 20140101ALI20240830BHJP
【FI】
A63F13/67
A63F13/795
A63F13/79 500
A63F13/79
A63F13/533
A63F13/822
【審査請求】未請求
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2023028602
(22)【出願日】2023-02-27
(71)【出願人】
【識別番号】000134855
【氏名又は名称】株式会社バンダイナムコエンターテインメント
(74)【代理人】
【識別番号】100124682
【弁理士】
【氏名又は名称】黒田 泰
(74)【代理人】
【識別番号】100104710
【弁理士】
【氏名又は名称】竹腰 昇
(74)【代理人】
【識別番号】100090479
【弁理士】
【氏名又は名称】井上 一
(72)【発明者】
【氏名】阿須名 孝次
(72)【発明者】
【氏名】南 清志
(72)【発明者】
【氏名】小倉 建一
(72)【発明者】
【氏名】恩田 明生
(72)【発明者】
【氏名】青木 隆
(72)【発明者】
【氏名】村井 伸太郎
(57)【要約】
【課題】複数のユーザとNPCとが同じコンテンツに参加する場合のグループの集団としての行動のバランスを、従来よりも改善する技術を提供すること。
【解決手段】ユーザキャラクタを操作して楽しむ所与のコンテンツに参加する複数の参加ユーザをマッチングする。参加ユーザが不足して暫定されたユーザグループの不足枠に割り当てる補欠NPC5を設定する。補欠NPC5の自動制御用の行動制御パラメータ値BNを、暫定されたユーザグループの参加ユーザの情報又は参加ユーザのユーザキャラクタ4の情報である参加ユーザ情報に基づいて分析されたグループ行動傾向(グループ行動傾向値BT)に基づいて設定する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
ユーザキャラクタを操作して楽しむ所与のコンテンツに参加する複数の参加ユーザをマッチングするユーザマッチング手段と、
前記コンテンツに参加するNPC(Non Player Character)である参加NPCの自動制御用の制御パラメータを、前記参加ユーザの情報又は前記参加ユーザのユーザキャラクタの情報である参加ユーザ情報に基づいて設定する参加NPC設定手段と、
前記参加ユーザそれぞれのユーザキャラクタと前記参加NPCとを前記コンテンツに参加させる制御を行う参加制御手段と、
を備えるコンピュータシステム。
【請求項2】
前記ユーザマッチング手段は、
所定の必要マッチング数を満たす数の参加ユーザのマッチングを試行するマッチング試行手段と、
前記試行において前記必要マッチング数を満たさない状態が継続することにより所定の試行打ち切り条件を充足した場合に当該試行を中止し、中止するまでにマッチングされた参加ユーザを暫定する暫定手段と、
を有し、
前記参加制御手段は、前記試行において前記必要マッチング数を満たした場合には、前記マッチングされた前記参加ユーザそれぞれのユーザキャラクタを前記コンテンツに参加させる制御を行い、前記試行打ち切り条件を充足した場合には、前記暫定された参加ユーザそれぞれのユーザキャラクタと、前記参加NPCとを前記コンテンツに参加させる制御を行う、
請求項1に記載のコンピュータシステム。
【請求項3】
前記参加NPC設定手段は、前記参加ユーザでなるユーザグループのグループ傾向を前記参加ユーザ情報に基づいて分析するグループ傾向分析手段、を有し、前記グループ傾向に基づいて前記制御パラメータを設定する、
請求項1に記載のコンピュータシステム。
【請求項4】
前記参加NPC設定手段は、自動制御される前記参加NPCが前記グループ傾向に沿った行動を行うための前記制御パラメータを設定する類似モードを、前記制御パラメータの設定モードとして有する、
請求項3に記載のコンピュータシステム。
【請求項5】
前記参加NPC設定手段は、自動制御される前記参加NPCが、所与の目標グループ傾向に対する前記グループ傾向の差を低減する行動を行うための前記制御パラメータを設定するバランスモードを、前記制御パラメータの設定モードとして有する、
請求項3に記載のコンピュータシステム。
【請求項6】
前記参加ユーザ以外のユーザの情報に基づいて前記目標グループ傾向を設定する目標グループ傾向設定手段、
を更に備える請求項5に記載のコンピュータシステム。
【請求項7】
前記参加NPC設定手段は、
前記制御パラメータの設定モードとして、1)自動制御される前記参加NPCが前記グループ傾向に沿った行動を行うための前記制御パラメータを設定する類似モードと、2)自動制御される前記参加NPCが、所与の目標グループ傾向に対する前記グループ傾向の差を低減する行動を行うための前記制御パラメータを設定するバランスモードと、を有し、
前記設定モードを選択するモード選択手段、
を有する、
請求項3に記載のコンピュータシステム。
【請求項8】
前記モード選択手段は、前記参加ユーザの操作入力に基づいて前記設定モードを選択する、
請求項7に記載のコンピュータシステム。
【請求項9】
前記モード選択手段は、前記グループ傾向分析手段の分析結果に基づいて、前記設定モードを選択する、
請求項7に記載のコンピュータシステム。
【請求項10】
前記グループ傾向は、複数の項目と、当該項目に関する値と、を含み、
前記制御パラメータは、前記複数の項目それぞれに関連づけられたパラメータを含み、
前記グループ傾向分析手段は、前記グループ傾向として、前記複数の項目それぞれに関する値を分析し、
前記参加NPC設定手段は、前記グループ傾向として分析された前記複数の項目それぞれに関する値に基づいて、前記制御パラメータを設定する、
請求項3から9の何れか一項に記載のコンピュータシステム。
【請求項11】
前記参加ユーザ情報は、前記参加ユーザが過去に前記コンテンツに参加した時のユーザキャラクタの操作内容に基づく個別行動傾向の分析結果の情報を含み、
前記グループ傾向分析手段は、前記個別行動傾向の分析結果の情報を用いて前記グループ傾向を分析する、
請求項3から9の何れか一項に記載のコンピュータシステム。
【請求項12】
前記参加ユーザ情報は、前記参加ユーザのユーザキャラクタの属性情報を含み、
前記グループ傾向分析手段は、前記属性情報を用いて前記グループ傾向を分析する、
請求項3から9の何れか一項に記載のコンピュータシステム。
【請求項13】
前記参加NPC設定手段は、1体以上の前記参加NPCについて前記制御パラメータを設定し、複数体の前記参加NPCの前記制御パラメータを設定する場合には、当該参加NPC相互の当該制御パラメータが異なるように設定する、
請求項1に記載のコンピュータシステム。
【請求項14】
前記コンテンツは、グループでプレイするゲームであり、
前記ユーザマッチング手段は、前記グループを構成する前記参加ユーザをマッチングし、
前記参加NPC設定手段は、前記グループに加える前記参加NPCの前記制御パラメータを、当該グループを構成する前記参加ユーザの前記参加ユーザ情報に基づいて設定する、
請求項1から9の何れか一項に記載のコンピュータシステム。
【請求項15】
前記コンテンツは、グループ対戦ゲームであり、
前記ユーザマッチング手段は、対戦する各グループを構成する前記参加ユーザをマッチングし、
前記参加NPC設定手段は、対戦する各グループのうち、当該グループに加える前記参加NPCの前記制御パラメータを、1)当該グループを構成する前記参加ユーザの前記参加ユーザ情報、および/又は、2)当該グループ以外の他のグループを構成する前記参加ユーザの前記参加ユーザ情報に基づいて設定する、
請求項1から9の何れか一項に記載のコンピュータシステム。
【請求項16】
コンピュータシステムを、
ユーザキャラクタを操作して楽しむ所与のコンテンツに参加する複数の参加ユーザをマッチングするユーザマッチング手段、
前記コンテンツに参加するNPC(Non Player Character)である参加NPCの自動制御用の制御パラメータを、前記参加ユーザの情報又は前記参加ユーザのユーザキャラクタの情報である参加ユーザ情報に基づいて設定する参加NPC設定手段、
前記参加ユーザそれぞれのユーザキャラクタと前記参加NPCとを前記コンテンツに参加させる制御を行う参加制御手段、
として機能させるためのプログラム。
【請求項17】
コンピュータシステムが、
ユーザキャラクタを操作して楽しむ所与のコンテンツに参加する複数の参加ユーザをマッチングするユーザマッチングステップと、
前記コンテンツに参加するNPC(Non Player Character)である参加NPCの自動制御用の制御パラメータを、前記参加ユーザの情報又は前記参加ユーザのユーザキャラクタの情報である参加ユーザ情報に基づいて設定する参加NPC設定ステップと、
前記参加ユーザそれぞれのユーザキャラクタと前記参加NPCとを前記コンテンツに参加させる制御を行う参加制御ステップと、
を実行するマッチング制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、参加ユーザをマッチングするコンピュータシステム等に関する。
【背景技術】
【0002】
仮想空間での仮想体験を提供するサービスの1つに、グループ参加型のビデオゲームがある。グループ参加型のビデオゲームでは、所定数の参加枠それぞれに参加希望者であるユーザを割り当てたユーザグループをマッチングで作成し、ユーザグループでゲームに参加する。
【0003】
グループの参加枠に対してマッチング希望者が不足する場合に、不足している参加枠(不足枠)に補欠NPC(Non Player Character)を割り当てる技術が知られている(例えば、特許文献1、特許文献2を参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2018-166874号公報
【特許文献2】特開2019-30802号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
複数のユーザと補欠NPCとで構成されるグループについて、集団としての行動のバランスに着目すると従来技術には改善の余地があった。すなわち、プレーヤであるユーザの行動傾向はユーザの個性が色濃く表れるので、ユーザそれぞれによって異なる。グループの集団としての行動傾向は、メンバーであるプレーヤの個別行動傾向の組み合わせ次第であり、千差万別である。
【0006】
特許文献1,2を含む従来の技術では、追加される補欠NPCの行動が、グループの集団としての行動傾向にそぐわない場合が起こり得た。グループの集団としての行動のバランスが崩れると、プレーヤは違和感を持ってプレイすることになる。時には、NPCの行動に対する苛立ちすら抱きながらプレイしなければならない場合も起こり得た。
【0007】
グループの集団としての行動のバランスに関するこうした課題は、ビデオゲームのコンテンツに限らず、他のジャンルのコンテンツ(例えば、メタバース内で行われるグループ参加型のイベント)においても同様に存在する。
【0008】
本発明が解決しようとする課題は、複数のユーザとNPCとが同じコンテンツに参加する場合のグループの集団としての行動のバランスを従来よりも改善する技術を提供すること、である。
【課題を解決するための手段】
【0009】
上記した課題を解決するための第1の発明は、ユーザキャラクタを操作して楽しむ所与のコンテンツに参加する複数の参加ユーザをマッチングするユーザマッチング手段(例えば、
図10のユーザマッチング部220)と、前記コンテンツに参加するNPC(Non Player Character)である参加NPC(例えば、
図2の補欠NPC5)の自動制御用の制御パラメータを、前記参加ユーザの情報又は前記参加ユーザのユーザキャラクタの情報である参加ユーザ情報に基づいて設定する参加NPC設定手段(例えば、
図10の参加NPC設定部240)と、前記参加ユーザそれぞれのユーザキャラクタと前記参加NPCとを前記コンテンツに参加させる制御を行う参加制御手段(例えば、
図10の参加制御部250)と、を備えるコンピュータシステムである。
【0010】
第2の発明は、上記のコンピュータシステムにおいて、前記ユーザマッチング手段は、所定の必要マッチング数を満たす数の参加ユーザのマッチングを試行するマッチング試行手段(例えば、
図10のマッチング試行部222)と、前記試行において前記必要マッチング数を満たさない状態が継続することにより所定の試行打ち切り条件を充足した場合に当該試行を中止し、中止するまでにマッチングされた参加ユーザを暫定する暫定手段(例えば、
図10の暫定部224)と、を有し、前記参加制御手段は、前記試行において前記必要マッチング数を満たした場合には、前記マッチングされた前記参加ユーザそれぞれのユーザキャラクタを前記コンテンツに参加させる制御を行い、前記試行打ち切り条件を充足した場合には、前記暫定された参加ユーザそれぞれのユーザキャラクタと、前記参加NPCとを前記コンテンツに参加させる制御を行う、コンピュータシステムである。
【0011】
第1又は第2の発明のコンピュータシステムは、参加NPCを参加ユーザのユーザキャラクタの情報である参加ユーザ情報に基づいて設定できる。例えば、参加NPCを、マッチングの不足枠に割り当てる補欠NPCとする場合、参加NPCを補充先のユーザグループの集団としての行動バランスに適当なキャラクタとして設定することができる。複数のユーザと参加NPCとで構成される集団としての行動のバランスを従来よりも改善するといったことが実現可能となる。
【0012】
第3の発明は、上記のコンピュータシステムにおいて、前記参加NPC設定手段は、前記参加ユーザでなるユーザグループのグループ傾向を前記参加ユーザ情報に基づいて分析するグループ傾向分析手段(例えば、
図10のグループ傾向分析部244)、を有し、前記グループ傾向に基づいて前記制御パラメータを設定する、コンピュータシステムである。
【0013】
第3の発明のコンピュータシステムは、ユーザグループのグループ傾向を分析して、参加NPCの制御パラメータを設定するので、より好適な参加NPCとすることができる。
【0014】
第4の発明は、上記のコンピュータシステムにおいて、前記参加NPC設定手段は、自動制御される前記参加NPCが前記グループ傾向に沿った行動を行うための前記制御パラメータを設定する類似モードを、前記制御パラメータの設定モードとして有する、コンピュータシステムである。
【0015】
第4の発明のコンピュータシステムは、グループ傾向に沿った行動を行う参加NPCとすることができる。
【0016】
第5の発明は、上記のコンピュータシステムにおいて、前記参加NPC設定手段は、自動制御される前記参加NPCが、所与の目標グループ傾向に対する前記グループ傾向の差を低減する行動を行うための前記制御パラメータを設定するバランスモードを、前記制御パラメータの設定モードとして有する、コンピュータシステムである。
【0017】
第5の発明のコンピュータシステムは、所与の目標グループ傾向に対するグループ傾向の差を低減する行動を行う参加NPCとすることができる。
【0018】
第6の発明は、上記のコンピュータシステムにおいて、前記参加ユーザ以外のユーザの情報に基づいて前記目標グループ傾向を設定する目標グループ傾向設定手段(例えば、
図10の目標グループ傾向設定部242、
図21のステップS60)、を更に備えるコンピュータシステムである。
【0019】
第6の発明のコンピュータシステムは、参加ユーザ以外のユーザのことを考慮した、より好適な参加NPCとすることができる。
【0020】
第7の発明は、上記のコンピュータシステムにおいて、前記参加NPC設定手段は、前記制御パラメータの設定モードとして、1)自動制御される前記参加NPCが前記グループ傾向に沿った行動を行うための前記制御パラメータを設定する類似モードと、2)自動制御される前記参加NPCが、所与の目標グループ傾向に対する前記グループ傾向の差を低減する行動を行うための前記制御パラメータを設定するバランスモードと、を有し、前記設定モードを選択するモード選択手段(例えば、
図10のモード選択部246)、を有する、コンピュータシステムである。
【0021】
第7の発明によれば、コンピュータシステムは、グループ傾向に沿った行動を行う参加NPCとするか、所与の目標グループ傾向に対するグループ傾向の差を低減する行動を行う参加NPCとするかを、選択することができる。
【0022】
第8の発明は、上記のコンピュータシステムにおいて、前記モード選択手段は、前記参加ユーザの操作入力に基づいて前記設定モードを選択する、コンピュータシステムである。
【0023】
第8の発明によれば、参加ユーザが参加NPCの設定モードを選択できるようになる。
【0024】
第9の発明は、上記のコンピュータシステムにおいて、前記モード選択手段は、前記グループ傾向分析手段の分析結果に基づいて、前記設定モードを選択する、コンピュータシステムである。
【0025】
第9の発明によれば、グループ傾向の分析結果に基づいて、参加NPCの設定モードが選択されるようになる。
【0026】
第10の発明は、上記のコンピュータシステムにおいて、前記グループ傾向は、複数の項目と、当該項目に関する値と、を含み、前記制御パラメータは、前記複数の項目それぞれに関連づけられたパラメータを含み、前記グループ傾向分析手段は、前記グループ傾向として、前記複数の項目それぞれに関する値を分析し、前記参加NPC設定手段は、前記グループ傾向として分析された前記複数の項目それぞれに関する値に基づいて、前記制御パラメータを設定する、コンピュータシステムである。
【0027】
第10の発明のコンピュータシステムは、複数の項目で記述されるグループ傾向に基づいて参加NPCを設定できる。よって、より細かいグループ傾向の分析結果に応じた好適な参加NPCの設定を実現できる。
【0028】
第11の発明は、上記コンピュータシステムにおいて、前記参加ユーザ情報は、前記参加ユーザが過去に前記コンテンツに参加した時のユーザキャラクタの操作内容に基づく個別行動傾向の分析結果の情報を含み、前記グループ傾向分析手段は、前記個別行動傾向の分析結果の情報を用いて前記グループ傾向を分析する、コンピュータシステムである。
【0029】
第11の発明のコンピュータシステムは、参加ユーザが過去に行ったユーザキャラクタの操作内容に基づく個別行動傾向の情報を用いてグループ傾向を分析できる。よって、より好適な参加NPCの設定を実現できる。
【0030】
第12の発明は、上記のコンピュータシステムにおいて、前記参加ユーザ情報は、前記参加ユーザのユーザキャラクタの属性情報を含み、前記グループ傾向分析手段は、前記属性情報を用いて前記グループ傾向を分析する、コンピュータシステムである。
【0031】
第12の発明のコンピュータシステムは、参加ユーザのユーザキャラクタの属性を考慮したより好適な参加NPCの設定を実現できる。
【0032】
第13の発明は、上記のコンピュータシステムにおいて、前記参加NPC設定手段は、1体以上の前記参加NPCについて前記制御パラメータを設定し、複数体の前記参加NPCの前記制御パラメータを設定する場合には、当該参加NPC相互の当該制御パラメータが異なるように設定する、コンピュータシステムである。
【0033】
第13の発明のコンピュータシステムは、複数体の参加NPCに「違い」を設けることができるので、同じ傾向の行動をする複数の参加NPCがいることで生じる不自然さを抑制できる。
【0034】
第14の発明は、上記のコンピュータシステムにおいて、前記コンテンツは、グループでプレイするゲームであり、前記ユーザマッチング手段は、前記グループを構成する前記参加ユーザをマッチングし、前記参加NPC設定手段は、前記グループに加える前記参加NPCの前記制御パラメータを、当該グループを構成する前記参加ユーザの前記参加ユーザ情報に基づいて設定する、コンピュータシステムである。
【0035】
第14の発明のコンピュータシステムは、グループでプレイするゲームにおいて、当該グループに参加させる参加NPCを、当該グループを構成する参加ユーザの参加ユーザ情報に基づいて設定することができる。
【0036】
第15の発明は、上記のコンピュータシステムにおいて、前記コンテンツは、グループ対戦ゲームであり、前記ユーザマッチング手段は、対戦する各グループを構成する前記参加ユーザをマッチングし、前記参加NPC設定手段は、対戦する各グループのうち、当該グループに加える前記参加NPCの前記制御パラメータを、1)当該グループを構成する前記参加ユーザの前記参加ユーザ情報、および/又は、2)当該グループ以外の他のグループを構成する前記参加ユーザの前記参加ユーザ情報に基づいて設定する、コンピュータシステムである。
【0037】
第15の発明のコンピュータシステムは、グループ対戦ゲームに参加するユーザの参加ユーザ情報を考慮した好適な参加NPCを設定できる。
【0038】
第16の発明は、コンピュータシステムを、ユーザキャラクタを操作して楽しむ所与のコンテンツに参加する複数の参加ユーザをマッチングするユーザマッチング手段、前記コンテンツに参加するNPC(Non Player Character)である参加NPCの自動制御用の制御パラメータを、前記参加ユーザの情報又は前記参加ユーザのユーザキャラクタの情報である参加ユーザ情報に基づいて設定する参加NPC設定手段、前記参加ユーザそれぞれのユーザキャラクタと前記参加NPCとを前記コンテンツに参加させる制御を行う参加制御手段、として機能させるためのプログラムである。
【0039】
第16の発明によれば、上記の発明と同様の作用効果を奏するコンピュータシステムを実現するためのプログラムを構成することができる。
【0040】
第17の発明は、コンピュータシステムが、ユーザキャラクタを操作して楽しむ所与のコンテンツに参加する複数の参加ユーザをマッチングするユーザマッチングステップ(例えば、
図16のステップS12)と、前記コンテンツに参加するNPC(Non Player Character)である参加NPCの自動制御用の制御パラメータを、前記参加ユーザの情報又は前記参加ユーザのユーザキャラクタの情報である参加ユーザ情報に基づいて設定する参加NPC設定ステップ(例えば、
図16のステップS24)と、前記参加ユーザそれぞれのユーザキャラクタと前記参加NPCとを前記コンテンツに参加させる制御を行う参加制御ステップ(例えば、
図16のステップS100)と、を実行するマッチング制御方法である。
【0041】
第18の発明によれば、上記の発明と同様の作用効果を奏するマッチング制御方法を実現できる。
【図面の簡単な説明】
【0042】
【
図1】仮想空間サービスシステムの構成例を示すシステム構成図。
【
図2】コンテンツの1つであるグループで対戦プレイするタイプのビデオゲームについて説明するための図。
【
図5】ユーザグループのグループ傾向について説明するための図。
【
図6】類似モードにおける補欠NPCの行動制御パラメータ値の設定について説明するための図。
【
図7】類似モードにおける補欠NPCの行動制御パラメータ値の設定の効果について説明するための図。
【
図8】バランスモードにおける補欠NPCの行動傾向に係るパラメータ値の設定について説明するための図。
【
図9】補欠NPCの能力制御パラメータ値の設定について説明するための図。
【
図10】サーバサイドシステムの機能構成例を示すブロック図。
【
図11】サーバサイドシステムの記憶部が記憶するプログラムやデータの例を示す図。
【
図12】ベースキャラクタ初期設定データのデータ構成例を示す図。
【
図13】属性選択パターン定義データのデータ構成例を示す図。
【
図14】コンテンツ進行制御データのデータ構成例を示す図。
【
図15】ユーザ端末の機能構成例を示す機能ブロック図。
【
図16】サーバサイドシステムが実行する処理の流れを説明するためのフローチャート。
【
図17】補欠NPC生成処理の流れを説明するためのフローチャート。
【
図18】グループ成績データのデータ構成例を示す図。
【
図20】攻略用推奨グループ行動傾向のデータ構成例を示す図。
【
図21】補欠NPC生成処理の変形例における処理の流れを説明するためのフローチャート。
【
図22】スキル定義データのデータ構成例を示す図。
【発明を実施するための形態】
【0043】
以下、本発明の実施形態の例を説明するが、本発明を適用可能な形態が以下の実施形態に限られないことは勿論である。
【0044】
図1は、本発明に係る仮想空間サービスシステムの構成例を示すシステム構成図である。
仮想空間サービスシステム1000は、同時に複数のユーザが各々のユーザキャラクタであるアバターを使って3DCG(3 Dimensional Computer Graphics)で構築された共通の仮想空間へ参加して、アバターで仮想空間内を自由に行動し、アバターを介して仮想空間内に用意された様々なコンテンツの提供を受けることができるコンピュータシステムである。
【0045】
仮想空間サービスシステム1000は、ネットワーク9を介してデータ通信可能に接続されたサーバサイドシステム1010およびユーザ別のユーザ端末1500(1500a,1500b,…)を含むコンピュータシステムである。ユーザ端末1500はマン・マシン・インターフェース(Man Machine Interface:MMIF)となる。
【0046】
ネットワーク9は、データ通信が可能な通信路を意味する。すなわち、ネットワーク9とは、直接接続のための専用線(専用ケーブル)やイーサネット(登録商標)等によるLAN(Local Area Network)の他、電話通信網やケーブル網、インターネットを含む。
【0047】
サーバサイドシステム1010は、仮想空間サービスシステム1000の運用者が運用するコンピュータシステムであって、ポータルサーバシステム1100Pと、1つ又は複数のコンテンツサーバシステム1100G(1100Ga,1100Gb,…)とを有する。
【0048】
ポータルサーバシステム1100Pは、仮想空間の基本的な仕組みを提供するコンピュータシステムであって、仮想空間へ参加するユーザのユーザ端末1500が最初にアクセスするフロントエンドのサーバシステムである。ポータルサーバシステム1100Pは、例えば、ユーザ登録に係る制御、アバターのカスタマイズに係る制御、仮想空間内でのアバターの制御、仮想世界内でのイベント等の制御、アバターの位置や動作に応じた各種コンテンツの提供に係る制御、などを行う。そして、登録ユーザに関する情報やアバターの設定情報などを記憶・管理する。ポータルサーバシステム1100Pは、仮想空間で提供するコンテンツの内容に応じてこれら以外の制御を実行するとしてもよい。また、これらの制御のうち1つ又は複数をバックエンドサーバにより実現してもよい。
【0049】
コンテンツサーバシステム1100G(1100Ga,1100Gb,…)は、ユーザ端末1500をクライアントとして1種類又は複数種類のコンテンツを提供するためのバックエンドサーバである。提供するコンテンツの内容は適宜設定可能である。例えば、ショッピング、ゲームプレイ、美術館・博物館などの観覧、映画鑑賞、イベント、スポーツ観戦、などである。
【0050】
ポータルサーバシステム1100Pおよびコンテンツサーバシステム1100Gは、マッチング処理を実行するマッチングサーバシステム1101として機能する。
【0051】
ポータルサーバシステム1100Pおよびコンテンツサーバシステム1100Gは、本体装置、キーボード、タッチパネル、などを有し、本体装置に制御基板1150を搭載する。制御基板1150には、CPU(Central Processing Unit)1151やGPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などの各種マイクロプロセッサ、VRAMやRAM,ROM等の各種ICメモリ1152、通信装置1153、が搭載されている。なお、制御基板1150に搭載された機能の一部又は全部は、ASIC(Application Specific Integrated Circuit)や、FPGA(Field-Programmable Gate Array)、SoC(System on a Chip)により実現するとしてもよい。
【0052】
ポータルサーバシステム1100Pとコンテンツサーバシステム1100Gとは、制御基板1150が所定のプログラムおよびデータに基づいて演算処理することによりそれぞれ別個の機能を実現する。
【0053】
図1では、ポータルサーバシステム1100Pおよびコンテンツサーバシステム1100Gは、それぞれ1台のサーバ装置であるかのように描いているが、それぞれを複数の装置で実現する構成であってもよい。例えば、ポータルサーバシステム1100Pは、各機能を分担する複数のブレードサーバを搭載して相互に内部バスを介してデータ通信可能に接続した構成であってもよいし、データベースやオンラインストレージを含むとしてもよい。コンテンツサーバシステム1100Gも同様である。
【0054】
なお、コンテンツサーバシステム1100Gの一部又は全部は、仮想空間サービスシステム1000およびポータルサーバシステム1100Pの運用者とは別の運用者が運用することとしてもよい。
【0055】
ユーザ端末1500は、ユーザが仮想空間に参加するために使用するコンピュータシステムであって、仮想空間サービスシステム1000におけるマン・マシン・インターフェースの機能を担っている。
【0056】
ユーザ端末1500(1500a,1500b,…)は、例えば、パソコン、スマートフォン、ウェアラブルコンピュータ、携帯型ゲーム装置、家庭用ゲーム装置、タブレット型コンピュータ、などのネットワーク9に接続可能なコンピュータシステムである。
【0057】
ユーザ端末1500は、主体となるコンピュータとこれに通信接続された各種デバイスとが全体として1つの機能を果たす場合には、主体および各種デバイスを1つのユーザ端末1500とみなすことができる。例えば
図1では、ユーザ端末1500aは、デスクトップ型パソコンにVR(Virtual Reality)用MMIFセット1580が通信接続された例を示している。VR用MMIFセット1580は、VRゴーグル1581、VRヘッドセット1583、VRコントローラ1585などを含む。
図1のユーザ端末1500bはスマートフォン単体として例示されているが、ユーザ端末1500bがユーザ端末1500aと同様にVR用MMIFセット1580を含む構成としてもよい。
【0058】
ユーザ端末1500は、操作入力デバイス(例えば、タッチパネル1506、キーボード、ゲームコントローラ、マウスなど)と、画像表示デバイス(例えば、タッチパネル1506、ヘッドマウントディスプレイ、グラス型ディスプレイなど)と、制御基板1550と、を備える。
【0059】
制御基板1550は、CPU1551や、GPU,DSPなどの各種マイクロプロセッサ、VRAMやRAM,ROM等の各種ICメモリ1552、ネットワーク9に接続する通信モジュール1553、などを搭載する。制御基板1550に搭載されているこれらの要素は、バス回路などを介して電気的に接続され、データの読み書きや信号の送受信が可能に接続されている。制御基板1550の一部又は全部をASICやFPGA、SoCにて構成してもよい。制御基板1550は、ユーザ端末1500としての機能を実現させるためのプログラムや各種データをICメモリ1552に記憶する。ユーザ端末1500は、所定のアプリケーションプログラムを実行することにより、仮想空間サービスシステム1000のマン・マシン・インターフェースとして、またユーザが各種コンテンツの提供を受ける際のクライアントとしての機能を実現する。
【0060】
なお、ユーザ端末1500は、仮想空間サービスに係るプログラムやその実行に必要な各種データをポータルサーバシステム1100Pからダウンロードする構成としているが、ユーザが別途入手したメモリカードなどの記憶媒体から読み出す構成としてもよい。
【0061】
図2は、仮想空間サービスシステム1000が提供するコンテンツの1つであるグループで対戦プレイするタイプのビデオゲームについて説明するための図である。
【0062】
プレーヤとなるユーザは、アバターに代えてコンテンツ用のユーザキャラクタ4を操作してゲームを楽しむ。当該ビデオゲームは、コンテンツ用の仮想空間3に、プレーヤであるユーザが操作するユーザキャラクタ4(4a,4b,…)を含むユーザグループ6で参加してプレイするマルチプレイオンラインゲームである。
【0063】
ユーザグループ6は、参加希望者を対象としてマッチング処理により決定される。
マッチング処理では、所定の必要マッチング数(ユーザグループ6の参加枠に相当)を満たす数の参加希望者のマッチングを試行する。参加希望者の数が十分であれば、試行により必要マッチング数は満たされ、参加希望者で、ユーザグループ6の参加枠が埋まる。しかし、参加希望者の数が不十分であれば、試行において必要マッチング数を満たさない状態となる。この場合、参加希望者の追加を待つが、必要マッチング数を満たさない状態が継続することにより所定の試行打ち切り条件を充足した場合(例えば、参加希望者の追加待ちで所定時間経過した場合)に、試行を中止して、中止するまでにマッチングされた参加ユーザで、ユーザグループ6を暫定する。暫定状態のユーザグループ6の参加枠には、参加希望者が割り当てられていない不足枠が生じている。この不足枠には、自動的に補欠NPC5が割り当てられる。
【0064】
ビデオゲームのゲームジャンルは、適宜設定可能である。
図2の例は、複数の敵NPC7で構成される敵グループ8と対戦する対戦ゲームであって、魔法が存在するファンタジックな世界観を有するRPG(Role Playing Game)の例を示している。プレーヤであるユーザは、各々のユーザキャラクタ4(4a,4b,…)を、予め用意されている属性の何れかが設定された候補キャラクタのなかから選択して、適宜装備を持たせてプレイする。
【0065】
属性は、そのキャラクタができる能力に基づく分類であって、「クラス」「ジョブ」「職種」などと言い換えてもよい。属性の種類は、ゲーム内容に応じて適宜設定可能である。例えば、
図1の例であれば、属性として、戦士、重戦士、騎士、弓使い、魔法使い、魔法剣士、回復士、などを設定してもよい。同じ属性の候補キャラクタは、種類別に、外観デザインや使える能力の設定が少しずつ違うように設定されている。
【0066】
図3は、マッチングについて説明するための図である。
サーバサイドシステム1010は、マッチング処理を実行してユーザグループ6を決定する。マッチング処理によって、参加希望者を参加ユーザとしてユーザグループ6の参加枠に割り当てるが、参加希望者が参加枠に対して不足する場合、補欠NPC5を生成して不足枠に割り当てる。
【0067】
補欠NPC5は、コンテンツに参加する参加NPCの一種である。補欠NPC5は、従来のように予め用意されているテンプレートのなかから選択するのではなく、不足枠が生じている暫定状態のユーザグループ6を構成しているユーザキャラクタ4の設定情報やそれらのユーザの行動傾向に基づいてその都度専用に生成される。
図3は、1つのユーザグループ6の参加枠が4つの設定に対して、マッチングの希望者(プレーヤとなるユーザ2)が3名で、不足枠が1枠生じており、補欠NPC5を1体生成する例を示している。勿論、不足枠が複数で、1つのユーザグループ6に対して複数体の補欠NPC5を生成するケースもあり得る。
【0068】
図4は、プレーヤであるユーザ別に記憶管理されるユーザ管理データ600のデータ構成例を示す図である。
サーバサイドシステム1010は、ユーザキャラクタ4毎に、それを操作するプレーヤであるユーザ別のユーザ管理データ600を紐付づけて記憶・管理する。ユーザ管理データ600は、ユーザアカウント601と、ユーザ情報603と、個別行動記録データ630と、を含む。勿論、これら以外のデータも適宜含めることができる。
【0069】
ユーザ情報603は、補欠NPC5の生成の基礎になるデータである。ユーザ情報603は、フレンド登録データ605と、ユーザキャラクタ設定データ610と、個別行動傾向データ620と、を含む。マッチングされたプレーヤであるユーザのユーザ情報603は、参加ユーザ情報ということになる。
【0070】
フレンド登録データ605は、友人とみなす他ユーザを登録するデータであって、当該ユーザに係るユーザの情報である。
【0071】
ユーザキャラクタ設定データ610は、ユーザキャラクタ4の情報である。ユーザキャラクタ設定データ610は、例えば、キャラクタ属性611と、当該属性のうちどの種類のベースキャラクタを使用してユーザキャラクタ4を作ったかを示すキャラクタ種類612と、ユーザキャラクタ4の最新の能力制御パラメータ値(例えば、攻撃力、防御力、移動力、回復力、スキル種類とスキルレベル、など)を示す適用能力制御パラメータ値リスト613と、を含む。勿論、これら以外のデータも適宜含めることができる。
【0072】
個別行動傾向データ620は、補欠NPC5が取り得る複数の行動傾向について、当該ユーザが操作してユーザキャラクタ4に行わせた行動傾向を示すデータ群である。個別行動傾向データ620は、複数の行動傾向毎の統計値(第1行動傾向についての統計値である第1行動傾向統計値621、第2行動についての統計値である第2行動傾向統計値622、…)を含む。
【0073】
行動傾向は、例えば、ワールドステートの示す状況・状態において、ある行動種類の行動を行う傾向を意味する。1つの行動傾向(第1行動傾向、第2行動傾向、…)は、ワールドステートと、行動種類と、統計値(例えば、確率値、過去行動における実行回数の積算値、など)と、で記述する。
【0074】
「ワールドステート」は、自身の状態を含むゲーム進行状態を示す様々な状態を示す。
ワールドステートは、様々なパラメータ値で構成されるとしてもよいし、予め想定される様々な状態毎に固有の状態値を設定したものであってもよい。ワールドステートが示す状態の例としては、例えば「交戦中、敵の数が味方の数より多い、自身と味方のHPは80%以上」「交戦中、敵の数が味方の数より多い、HP10%未満のメンバーが発生」などとしてもよい。
【0075】
「行動種類」としては、「抽象度の大きい行動」を採用してもよい。
図1で示すようなRPGを想定する場合、例えば、攻撃・防御・援護・移動・アイテム使用・逃走、などとしてもよい。
【0076】
例えば、第1行動傾向統計値621は、第1のワールドステートにおいて「攻撃」を選択した確率とし、第2行動傾向統計値622は、第1のワールドステートにおいて「防御」を選択した確率を示す、といった具合に個別行動傾向データ620を作る。よって、個別行動傾向データ620の各データを横断的にみると、当該ユーザのユーザキャラクタ4が、どのような状態のときに、どのような行動を取る傾向があるかがそこに記述されていることになる。
【0077】
なお、行動種類を、更に「抽象度の小さい行動(具体的な行動)」を含めて詳細に設定してもよい。例えば、攻撃カテゴリーにおいて抽象度の小さい行動とは、攻撃目標の選定と、攻撃方法の選定と、の具体的な内容が該当する。攻撃目標の選定として、「弱い敵から選択的に攻撃」「味方が攻撃していない敵を選択的に攻撃」「味方が攻撃している敵を選択的に攻撃」、…などが挙げられる。攻撃方法の選定として「武器攻撃」「魔法攻撃」…などが挙げられる。
【0078】
また、行動傾向は、ワールドステートの示す状況・状態と、行動種類の組み合わせに限らない。行動内容に係わらずそのキャラクタの行動において横断的に見られる「全般傾向」であってもよい。例えば、積極性、協調性、敏捷性、などである。更にこれらについては、攻撃の積極性、防御の積極性、攻撃目標の選択についての協調性、味方援護の協調性、など抽象度の小さい行動を含めて詳細に設定してもよい。
【0079】
どのような行動傾向を幾つ設定するかは、ゲーム内容や補欠NPC5への要求水準の設定により適宜設定可能である。いずれにせよ、個別行動傾向データ620は、当該ユーザ(ユーザキャラクタ4)が、どのような状態・状況においてどのような行動傾向を有するかを表す。
【0080】
個別行動傾向データ620は、個別行動記録データ630を統計処理して求められる。
個別行動記録データ630は、過去に当該コンテンツに参加した時のユーザキャラクタ4の操作内容、当該操作内容に基づくユーザキャラクタ4の個別行動の履歴データである。ユーザが操作入力したユーザキャラクタ4の操作コマンドの入力履歴データであってもよい。個別行動記録データ630は、例えば、実行日時と、実行された行動種類(或いは操作コマンドの種類)と、その時のワールドステートと、を対応付けたデータ群とされる。つまり、ワールドステートの示す状況・状態において、どういった種類の行動を行ったか、の記録である。
【0081】
個別行動記録データ630は、例えば、第1行動履歴データ631、第2行動履歴データ632、…といった具合に、第1行動傾向統計値621、第2行動傾向統計値622、…のそれぞれに対応する第1行動履歴データ631、第2行動履歴データ632、…を含むとしてもよい。つまり、個別行動傾向データ620は、過去に当該コンテンツに参加した時のユーザキャラクタ4の操作内容に基づく個別行動傾向の分析結果の情報ということになる。
【0082】
図5は、ユーザグループ6のグループ傾向について説明するための図である。
補欠NPC5を生成するために、当該補欠NPC5が割り当て対象とされるユーザグループ6(参加枠に不足枠がある暫定状態のユーザグループ6)のグループ傾向730を求める。
【0083】
グループ傾向730は、当該ユーザグループ6の集団的な行動の特徴形成に関与するデータ群であって、例えば、ユーザグループ6におけるユーザキャラクタ4に関して、キャラクタ属性の構成を示すキャラクタ属性構成731と、キャラクタレベルの構成を示すキャラクタレベル構成733と、グループ行動傾向735と、を含む。
【0084】
グループ行動傾向735は、個別行動傾向データ620の各種の行動傾向に基づき、ユーザグループ6という1つの纏まり(1集団)として見た場合の行動傾向を表す。
グループ行動傾向735は、暫定状態のユーザグループ6の参加枠に割り当て済のユーザ(参加ユーザ)のユーザ情報603(
図4参照;参加ユーザ情報)を分析して求められる。
【0085】
具体的には、グループ行動傾向735は、行動傾向の種類別(行動傾向を記述する複数の項目別)に求められるグループ行動傾向値BT(第1グループ行動傾向値BT1,第2グループ行動傾向値BT2,…;項目に関する値)で表される。そして、グループ行動傾向値BT(BT1,BT2,…)は、補欠NPC5が割り当てられる前の暫定状態のユーザグループ6を構成しているユーザキャラクタ4(4a,4b,4c)それぞれの個別行動傾向データ620を、行動傾向の種類毎に統計処理して求められる。統計処理は、例えば平均値や中央値を求める処理である。
【0086】
グループ行動傾向735は、行動傾向の種類数「m」だけのm次元のデータとなる。
図5では、m=5のレーダーチャートとしてグループ行動傾向735を示している。表記BPnは、Behavior of Personalの各頭文字+行動種別の識別子n(n=1,2,…)+キャラク識別子(a,b,…,n)で表している。表記BTmは、Behavior of Teamの各頭文字+行動種別の識別子m(m=1,2,…)で表している。
【0087】
補欠NPC5を生成するためのモードには、「類似モード」と「バランスモード」とがある。「類似モード」では、暫定状態のユーザグループ6のグループ行動傾向735と同じ又は類似する行動傾向を有する補欠NPC5を生成する。「バランスモード」では、暫定状態のユーザグループ6のグループ行動傾向735を所与の目標グループ行動傾向に近づけるような行動傾向を有する補欠NPC5を生成する。
【0088】
図6は、類似モードにおける補欠NPC5の行動制御パラメータ値BNの設定について説明するための図である。
【0089】
行動制御パラメータ値BN(BN1,BN2,…)は、補欠NPC5の行動を自動制御する際に用いられる制御パラメータの値である。
【0090】
自動制御方法は、意志決定モデル、ゲームAI(Artificial Intelligence)、AI意志決定パイプライン、などとも呼ばれるものである。自動制御方法は、例えば、行動ツリー、ゴール指向型プランニング(GOAP)、階層型タスクネットワーク(HTN)、階層型ゴール思考、などの1つ又は複数の組み合わせで採用される。どの方法を採用するかは、ゲームの内容、特に補欠NPC5に求められる行動種類の数や、各行動種類で要求される行動内容の細かさ、などに応じて決める。
【0091】
自動制御用パラメータの種類と、それらの具体的な値である行動制御パラメータ値BNと、の扱いは、採用された自動制御方法の制御構造に応じて決まる。例えば、自動制御方法として行動ツリーを採用した場合には、末端が行動種類とされる行動ツリーにおいて、行動制御パラメータ値BNは、ツリー分岐点における分岐所要時間(NPCの行動決定の素早さとして現れる)や、ツリーの判定開始までの待機時間、分岐別の選択確率や出現率、とすることができる。
【0092】
また例えば、自動制御方法として、階層型タスクネットワーク(HTN)を採用した場合には、行動制御パラメータ値BNは、予め用意されている複数種類のプリミティブタスクの中から、ワールドステートが示す状況・状態において実行可能な候補プリミティブタスクとして選択される確率、候補プリミティブタスクを選択するためのテーブルデータを指定する情報、などとすることができる。
【0093】
類似モードでは、グループ行動傾向値BT(BT1,BT2,…)を、目標値Tg(Tg1,Tg2,…)として行動制御パラメータ値BNを設定する。
【0094】
そして、目標値Tgおよび行動制御パラメータ値BNに関して、予め類似モード用相関関数550が設定されている。類似モード用相関関数550は、属性別に用意され、行動種類毎に相関関数が設定されている。各相関関数は、対応する目標値Tgが、行動制御パラメータ値BNのどのような係わり合い(影響度合い)によって実現されるかを示している。相関関数は、例えば、行動制御パラメータ値BNを変数とし、その係数k(k11,k12,…)によって係わり合いの度合を示す方程式とすることができる。そして、複数の目標値Tgを実現する解または近似解を得る所定の数値解析を行うことで、行動制御パラメータ値BNを決定する。
【0095】
勿論、類似モード用相関関数550は、方程式以外でもよい。相関関数に代えて、行動種類毎の目標値Tgと行動制御パラメータ値BNの初期値からの変更量とを対応づけたテーブルデータで代用してもよい。
【0096】
図7は、類似モードにおける補欠NPC5の行動制御パラメータ値BNの設定の作用効果について説明するための図である。
補欠NPC5の生成として、先ず、マッチングされたユーザグループ6のユーザキャラクタ4(4a、4b、4c)の属性や、キャラクタレベル等に基づいて所与の選択ルールに基づいて、補欠NPC5の属性と、補欠NPC5のキャラクタレベルとが選択される。因みに、キャラクタレベルが上がると能力の作用効果が高くなる。
【0097】
補欠NPC5の属性の選択では、例えば、マッチングされたユーザグループ6のユーザキャラクタ4(4a、4b、4c)の属性がばらけている場合、属性による能力の得手不得手を考慮して前衛・後衛の配置分けをするのが良策と判断して、前衛或いは後衛として不足する属性を選択するとしてもよい。また、ユーザキャラクタ4(4a、4b、4c)の属性が統一又は略統一している場合、当該属性と同属性又は類似する能力を発揮する他属性を選択するとしてもよい。勿論、これら以外のルールで選択するとしてもよい。
【0098】
また、補欠NPC5のキャラクタレベルの選択では、ユーザキャラクタ4(4a,4b,4c)のキャラクタレベルを参照し、それらと同じ又は同程度のキャラクタレベルを選択する。ユーザキャラクタ4(4a,4b,4c)のキャラクタレベルの少なくとも最低レベルとする、としてもよい。
【0099】
属性とキャラクタレベルの組み合わせ毎に、補欠NPC5用の自動制御定義データ580が予め用意されている。1つの自動制御定義データ580は、適用属性581と、適用レベル582と、適用ワールドステート583と、自動制御パターンデータ584と、を格納する。
【0100】
自動制御パターンデータ584は、行動制御パラメータ値BNを変数として用いて定義されている。
図7では、自動制御パターンデータ584の例として、行動ツリーデータを概念的に表現している。行動制御パラメータ値BN(BN1,BN2,…,BNn)は、分岐時にカウントされる分岐待ち時間や、分岐確率、などとして自動制御に用いられる。
【0101】
自動制御方法に、階層型タスクネットワーク(HTN)を採用した場合は、例えば、自動制御パターンデータ584を、適用ワールドステート583が示す状況・状態において実行可能な候補プリミティブタスクの定義データ(或いはリスト)とし、行動制御パラメータ値BNを、それら候補プリミティブタスク毎の選択確率として用いる、としてもよい。
【0102】
生成される補欠NPC5には、類似モード用相関関数550を解いて求めた行動制御パラメータ値BNが設定・適用される(
図6参照)。その結果、生成された補欠NPC5は、暫定状態のユーザグループ6を構成するユーザキャラクタ4(4a,4b,4c)のグループ行動傾向735に沿った個別行動傾向を有するNPCとなる。
【0103】
よって、複数のユーザと補欠NPCとで構成されるグループの集団としての行動バランスは、限られたテンプレートのなかから補欠NPC5を選択して設定する従来の方法や、他プレーヤのユーザキャラクタ4をコピーして補欠NPC5を設定する従来の方法よりも良好になる。
【0104】
図8は、バランスモードにおける補欠NPC5の行動傾向に係るパラメータ値の設定について説明するための図である。
【0105】
バランスモードでは、補欠NPC5が、グループ行動傾向値BT(BT1,BT2,…)を、目標グループ行動傾向10(グラフ中の長破線)に対する不足或いは過剰を補正するように働く個別行動傾向を有するように、行動制御パラメータ値BNを設定する。具体的には、グループ行動傾向値BT毎に、求めたグループ行動傾向735(グラフ中の太実線)と目標グループ行動傾向10とを比較して、グループ行動傾向値BTが不足している或いは過剰になっている過不足値D(D1,D2,…)を求める。
【0106】
過不足値Dと行動制御パラメータ値BNに係り、予めバランスモード用相関関数560が設定されている。バランスモード用相関関数560は、キャラクタ属性別に用意されており、行動傾向の種類毎に相関関数が設定されている。各相関関数は、対応する過不足値Dが、行動制御パラメータ値BNのどのような係わり合いによって実現されるかを示している。相関関数は、例えば、行動制御パラメータ値BNを変数とし、その係数t(t11,t12,…)によって係わり合いの度合を示す方程式としてもよい。そして、複数の過不足値Dを実現する解または近似解を得る所定の数値解析を行うことで、行動制御パラメータ値BNを決定する。
【0107】
勿論、バランスモード用相関関数560は、方程式以外でもよい。行動種類毎の過不足値Dと、行動制御パラメータ値BNの初期値からの変更量と、を対応づけたテーブルデータで代用してもよい。
【0108】
なお、目標グループ行動傾向10と合致させるには行動制御パラメータ値BNの設定範囲を超えなければならないケースでは、行動制御パラメータ値BNを当該設定範囲内での最大或いは最小の値にするとしてもよい。つまり、バランスモードでは、補欠NPC5を加えた後のユーザグループ6のグループ行動傾向が、目標グループ行動傾向10に近づくように、目標グループ行動傾向10との差を低減するように、行動制御パラメータ値BNを設定できればよいとする。
【0109】
図9は、補欠NPC5の能力制御パラメータ値の設定について説明するための図である。
能力制御パラメータ値X(X1,X2,…)は、ユーザキャラクタ4や補欠NPC5がゲーム内で有する能力の種類(例えば、攻撃力、防御力、移動力、回復力、など)毎に用意され、当該能力を発揮する制御に用いられる値である。つまり、能力制御パラメータ値Xは、そのキャラクタの行動傾向を実現するための基礎になるパラメータ値であるといえる。よって、能力制御パラメータは、キャラクタの能力制御に係る制御パラメータであるといえる。
【0110】
補欠NPC5の行動制御パラメータ値BNを適切に設定しても、それで実現される行動傾向を、ユーザキャラクタ4(4a,4b,4c)に劣らず実現するには、補欠NPC5は相応の能力制御パラメータ値X(X1,X2,…)を有する必要がある。例えば、行動制御パラメータ値BNによって補欠NPC5が、「次の攻撃が可能になるまでの待機時間中に、敵からの攻撃を回避し易くするために積極的に移動する」といったグループ行動傾向735に則した行動が可能になったとしても、移動力に係る能力制御パラメータ値Xが、ユーザキャラクタ4(4a,4b,4c)相当でなければ、ユーザキャラクタ4に相応の行動とはならない。さもなくば、補欠NPC5が移動中に遅れを取ることになる。
【0111】
そこで、補欠NPC5の能力制御パラメータ値X(X1,X2,…)は、先に設定された行動制御パラメータ値BNに基づいて決定する。
具体的には、能力相関関数570が予め設定されている。能力相関関数570は、キャラクタの属性別に用意され、行動制御パラメータ値BN毎に相関関数が設定されている。各相関関数は、対応する行動制御パラメータ値BNが、各種の能力制御パラメータ値Xによってどのように影響を受けるかを示している。相関関数は、例えば、能力制御パラメータ値X(X1,X2,…)を変数とし、その係数h(h11,h12,…)によって係わり合いの度合を示す方程式とすることができる。そして、複数の行動制御パラメータ値BNを実現する解または近似解を得る所定の数値解析を行うことで、能力制御パラメータ値X(X1,X2,…)を決定する。求められた能力制御パラメータ値Xが、当該補欠NPC5に適用される適用能力制御パラメータ値群726とされる。
【0112】
勿論、能力相関関数570は、方程式以外でもよい。行動種類毎の行動制御パラメータ値BNと、補欠NPC5のキャラクタ属性と、キャラクタレベルによって予め決まる能力制御パラメータ値Xの初期値からの変更量を対応づけたテーブルデータで代用してもよい。
【0113】
こうして適用能力制御パラメータ値群726が設定されることで、補欠NPC5は、暫定状態のユーザグループ6の集団としての行動のバランスに則した行動傾向或いは行動のバランスをより目標に近づける行動傾向を有し、且つその行動傾向を実現するための裏打ちとしてユーザキャラクタ4(4a,4b,4c)並の能力を有するNPCとなる。
【0114】
こうして専用に生成された補欠NPC5をユーザグループ6に加えた場合、ユーザグループ6の集団としての行動のバランスが崩れる可能性は従来よりも遥かに低くなる。プレーヤが、プレイ中に補欠NPC5の行動に違和感を持つ機会は従来よりも減り、補欠NPC5の行動への苛立ちを抱く頻度も従来より少なくなる。
【0115】
次に、機能構成について説明する。
図10は、サーバサイドシステム1010の機能構成例を示すブロック図であって、ポータルサーバシステム1100Pとコンテンツサーバシステム1100Gとが担う機能をまとめて示す図である。
【0116】
サーバサイドシステム1010は、機能面でポータルサーバシステム1100Pとコンテンツサーバシステム1100Gとに分けられるが、1つのサーバサイドシステム1010として包括すると、操作入力部100sと、処理部200sと、音出力部390sと、画像表示部392sと、通信部394sと、記憶部500sとを備える構成となる。
【0117】
操作入力部100sは、サーバサイドシステム1010の管理のための各種操作を入力するための手段である。例えば、キーボード、タッチパネル、マウス、などがこれに該当する。
【0118】
処理部200sは、例えばCPUやGPU、ASIC、FPGA等の演算回路となるプロセッサの他、ICメモリなどの電子部品によって実現され、操作入力部100sや記憶部500sを含む各機能部との間でデータの入出力制御を行う。そして、所定のプログラムやデータ、操作入力部100sからの操作入力信号などから受信したデータ、等に基づいて各種の演算処理を実行して、サーバサイドシステム1010の動作を統合的に制御する。
【0119】
サーバサイドシステム1010の処理部200sは、コンテンツ管理部202と、計時部280sと、音生成部290sと、画像生成部292sと、通信制御部294sと、を有する。
【0120】
コンテンツ管理部202は、仮想空間サービスシステム1000が提供するコンテンツの提供・実行制御に係る各種処理を実行する。コンテンツ管理部202は、ユーザ管理部210と、ユーザマッチング部220と、参加NPC設定部240と、参加制御部250と、を含む。勿論、これら以外の機能部も適宜含めることができる。
【0121】
ユーザマッチング部220は、ユーザキャラクタ4を操作して楽しむ所与のコンテンツに参加する複数の参加ユーザをマッチングする(
図3参照)。
【0122】
ユーザマッチング部220は、マッチング試行部222と、暫定部224と、を有する。
【0123】
マッチング試行部222は、ユーザグループ6を構成する参加ユーザをマッチングすべく、所定の必要マッチング数(参加枠の数)を満たす数の参加ユーザのマッチングを試行する。
【0124】
暫定部224は、マッチング試行部222による試行において、必要マッチング数を満たさない状態が継続することにより所定の試行打ち切り条件を充足した場合に当該試行を中止し、中止するまでにマッチングされた参加ユーザを暫定してユーザグループ6(暫定状態のユーザグループ6)を作る。試行打ち切り条件は、例えば経過時間の条件として定めることとしてもよいし、経過時間とその時点までに暫定的にマッチングされたユーザの数とによる複合的な条件として定めることとしてもよい。
【0125】
参加NPC設定部240は、コンテンツに参加するNPCである参加NPCの自動制御用の制御パラメータを、暫定部224が暫定したユーザグループ6を構成する参加ユーザの参加ユーザ情報又は参加ユーザのユーザキャラクタの情報である参加ユーザ情報に基づいて設定する(
図4から
図9参照)。
【0126】
具体的には、参加NPC設定部240は、目標グループ傾向を設定する目標グループ傾向設定部242と、参加ユーザでなるユーザグループ6のグループ傾向(複数の項目と、当該項目に関する値と、を含む;
図5参照)を参加ユーザ情報に基づいて分析するグループ傾向分析部244と、モード選択部246と、を有し、グループ傾向に基づいて参加NPCの制御パラメータを設定する。
【0127】
より具体的には、参加ユーザ情報は、参加ユーザが過去にコンテンツに参加した時のユーザキャラクタの操作内容に基づく個別行動傾向の分析結果の情報や、参加ユーザのユーザキャラクタの属性情報、を含む。グループ傾向分析部244は、グループ傾向として、複数の項目それぞれに関する値を、個別行動傾向の分析結果の情報や、ユーザキャラクタの属性情報、を用いて分析する。
【0128】
参加NPC設定部240は、(1)自動制御される参加NPCがグループ傾向に沿った行動を行うための制御パラメータを設定する類似モード(
図6参照)と、(2)自動制御される参加NPCが、所与の目標グループ傾向に対するグループ傾向の差を低減する行動を行うための制御パラメータを設定するバランスモード(
図8参照)と、を制御パラメータの設定モードとして有する。
【0129】
参加NPC設定部240は、モード選択部246で、設定モードを選択する。モード選択部246は、参加ユーザの操作入力や、グループ傾向分析部244の分析結果(グループ傾向として分析された複数の項目それぞれに関する値)に基づいて、制御パラメータを設定する。
【0130】
そして、参加NPC設定部240は、1体以上の参加NPCについて制御パラメータを設定し、複数体の参加NPCの制御パラメータを設定する場合には、当該参加NPC相互の当該制御パラメータが異なるように設定する。
【0131】
参加制御部250は、参加ユーザそれぞれのユーザキャラクタ4と参加NPCとをコンテンツに参加させる制御を行う。
【0132】
具体的には、参加制御部250は、マッチング試行部222による試行において必要マッチング数を満たした場合には、マッチングされた参加ユーザそれぞれのユーザキャラクタ4をコンテンツに参加させる制御を行い、試行打ち切り条件を充足した場合には、暫定された参加ユーザそれぞれのユーザキャラクタ4と、参加NPCとをコンテンツに参加させる制御を行う。後者の場合、ユーザキャラクタ4と補欠NPC5とでユーザグループ6を編成し、ユーザグループ6で参加するコンテンツを実行制御することがこれに該当する。
【0133】
計時部280sは、システムクロックを利用して現在日時や制限時間等の各種計時を行う。
【0134】
音生成部290sは、音声データの生成やデコードをするICやソフトウェアの実行により実現される。音生成部290sは、生成した音声信号を音出力部390sへ出力する。音出力部390sは、スピーカ等により実現され、音声信号に基づいて放音する。
【0135】
画像生成部292sは、サーバサイドシステム1010のシステム管理のための各種管理画面の画像生成を行い、画像データを画像表示部392sに出力する。また、ユーザ端末1500にて表示させる画像の一部又は全部の生成を行う。画像表示部392sは、フラットパネルディスプレイや、ヘッドマウントディスプレイ、プロジェクターなど、画像を表示させる装置で実現される。
【0136】
通信制御部294sは、データ通信に係るデータ処理を実行し、通信部394sを介して外部装置とのデータのやりとりを実現する。通信部394sは、ネットワーク9と接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現される。
図1の例では通信装置1153がこれに該当する。
【0137】
記憶部500sは、処理部200sにサーバサイドシステム1010を統合的に制御させるための諸機能を実現するためのプログラムや各種データ等を記憶する。また、記憶部500sは、処理部200sの作業領域として用いられ、処理部200sが各種プログラムに従って実行した演算結果などを一時的に記憶する。この機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD-ROMやDVDなどの光学ディスク、オンラインストレージなどによって実現される。
図1の例では、ポータルサーバシステム1100Pやコンテンツサーバシステム1100Gの本体装置が搭載するICメモリ1152やハードディスクなどの記憶媒体がこれに該当する。オンラインストレージを記憶部500sに含めてもよい。
【0138】
図11は、記憶部500sが記憶するプログラムやデータの例を示す図である。
記憶部500sは、サーバプログラム501と、配信用クライアントプログラム503と、コンテンツ初期設定データ510と、ユーザ管理データ600(
図4参照)と、コンテンツ進行制御データ700と、現在日時900と、を記憶する。なお、記憶部500sは、その他のプログラムやデータ(例えばタイマーや、カウンタ、各種フラグ、など)も適宜記憶する。
【0139】
サーバプログラム501は、コンテンツ管理部202としての機能を実現させるためのプログラムである。
【0140】
配信用クライアントプログラム503は、ユーザ端末1500へ提供されて実行されるクライアントプログラムのオリジナルである。
【0141】
コンテンツ初期設定データ510は、
図2のビデオゲームをコンテンツとして提供するための各種初期設定データを格納する。コンテンツ初期設定データ510は、コンテンツ用の仮想空間3(
図2参照)を定義する仮想空間定義データ511と、敵NPC7の種類毎に用意された敵NPC初期設定データ513と、敵グループ8に係る敵グループ初期設定データ515と、を含む。本実施形態で例示するビデオゲームの内容が、PvEゲームなので、敵NPC初期設定データ513と敵グループ初期設定データ515が用意されているが、PvPゲームであればこれらを省略してもよい。
【0142】
また、コンテンツ初期設定データ510は、ベースキャラクタ初期設定データ520と、属性選択パターン定義データ530と、類似モード用相関関数550(
図6参照)と、バランスモード用相関関数560(
図8参照)と、能力相関関数570(
図9参照)と、自動制御定義データ580(
図7参照)と、を含む。
【0143】
ベースキャラクタ初期設定データ520は、ユーザキャラクタ4や補欠NPC5の元になるキャラクタ(ベースキャラクタ)の種類毎に用意され、これに係る各種初期設定データを格納する。プレーヤであるユーザは、初回プレイ時に、ベースキャラクタ初期設定データ520の示す候補キャラクタの中から、自分のユーザキャラクタ4の元を選択して、カスタマイズをしてユーザキャラクタ4を作る。
【0144】
図12に示すように、1つのベースキャラクタ初期設定データ520は、キャラクタ種類521と、キャラクタ属性522と、キャラクタをゲーム画面に表示させるためのキャラクタ初期モデルデータ523と、レベル別初期能力制御パラメータ値リスト524と、を含む。勿論、これら以外のデータも適宜含めることができる。例えば、キャラクタモデルに所定の動作をさせるためのモーションデータ、能力発動時演出として表示されるエフェクトデータ、なども適宜含めることができる。
【0145】
レベル別初期能力制御パラメータ値リスト524は、当該ベースキャラクタのキャラクタレベル毎に設定され、当該レベルにおける初期能力制御パラメータ値が設定されている。
ユーザキャラクタ4は、ゲームプレイの成績に応じて、初期能力制御パラメータ値は徐々に能力向上(或いは場合によっては能力低下)するように変化し、やがてレベルアップの条件が満たされると、更に上のキャラクタレベルに達し、当該上のキャラクタレベルの初期能力制御パラメータ値が適用されるようになる。
【0146】
補欠NPC5については、生成過程でキャラクタ属性とキャラクタレベルが決まると、当該キャラクタ属性のベースキャラクタ初期設定データ520の何れかが選択されてベースキャラクタとされる。そして、行動制御パラメータ値BNに基づいて能力制御パラメータ値Xで適用能力制御パラメータ値群726が設定される(
図9参照)。或いは、能力制御パラメータ値Xを補正値とし、生成過程で決まったキャラクタレベルのレベル別初期能力制御パラメータ値リスト524をコピーして能力制御パラメータ値Xだけ変更して適用能力制御パラメータ値群726(
図14参照)としてもよい。
【0147】
図11に戻って、属性選択パターン定義データ530は、補欠NPC5のベースキャラクタとするキャラクタ属性をどのように選択するかを定義する。
図13に示すように、1つの属性選択パターン定義データ530は、適用要件531と、選択キャラクタ属性536と、を対応付けて格納する。適用要件531は、1つのサブ条件又は複数のサブ条件をANDやORで組み合わせて記述される。サブ条件としては、例えば、ユーザキャラクタ属性構成サブ条件532、能力制御パラメータ値サブ条件533、敵グループ構成サブ条件534と、モードサブ条件535と、を含む。
【0148】
ユーザキャラクタ属性構成サブ条件532は、暫定状態のユーザグループ6を構成するユーザキャラクタ4(4a,4b,…)のキャラクタ属性の構成について条件である。
【0149】
能力制御パラメータ値サブ条件533は、暫定状態のユーザグループ6を構成するユーザキャラクタ4(4a,4b,…)の能力制御パラメータ値の構成について条件である。例えば、能力制御パラメータ値の平均値、中央値、バラツキ、などで記述される。
【0150】
敵グループ構成サブ条件534は、敵グループ8の構成に関する条件であって、敵グループ8を構成する敵NPC7の数や種類、キャラクタレベルなどで記述される。当該サブ条件は、敵グループ8が固定しているようなケース(例えば、特定の敵グループ8の攻略を目的とするイベントなど)で設定される。
【0151】
モードサブ条件535は、補欠NPC5の生成のモードについての条件であって、類似モード・バランスモードの何れか又は両方が設定される。
【0152】
図14は、コンテンツ進行制御データ700のデータ構成例を示す図である。
コンテンツ進行制御データ700は、コンテンツの進行制御に係る各種データを格納する。コンテンツ進行制御データ700は、ビデオゲームプレイの最新状態を記述する各種データを格納するプレイデータに相当する。
【0153】
コンテンツ進行制御データ700は、グループ管理データ701と、補欠NPC5の生成に係るグループ傾向730(
図5参照)と、プレイ成績データ740と、を含む。勿論、これら以外のデータも適宜含めることができる。
【0154】
グループ管理データ701は、ゲームに登場するユーザグループ6毎に用意される。
図14の例では1つだけだが、レイドのように複数のユーザグループ6が同時に1つのコンテンツに参加するケースでは、その数だけグループ管理データ701が用意される。
【0155】
グループ管理データ701は、グループID705と、ユーザキャラクタ4(4a,4b,…)毎のユーザキャラクタ管理データ710と、補欠NPC5毎の補欠NPC管理データ720と、を含む。
【0156】
ユーザキャラクタ管理データ710は、対応するプレーヤによる操作入力に応じた動作制御に必要な各種データを格納する。例えば、プレーヤであるユーザを示すプレーヤアカウント、動作制御データなどを格納する。当該管理データが対応するユーザキャラクタ4の最新状態は、プレーヤアカウントが示すユーザのユーザ管理データ600(
図4参照)のユーザ情報603として管理する。ユーザ管理データ600をセーブデータと位置付け、プレイの都度、ユーザ管理データ600をユーザキャラクタ管理データ710にコピーして、最新状態を示すデータとして管理し、プレイ終了時にユーザ管理データ600をユーザキャラクタ管理データ710で更新するとしてもよい。
【0157】
補欠NPC管理データ720は、対応する補欠NPC5の最新状態を記述する各種データを格納する。例えば、補欠NPC管理データ720は、キャラクタID721と、キャラクタ属性722と、キャラクタレベル723と、適用行動要素パラメータ値群725と、適用能力制御パラメータ値群726と、を含む。勿論、これら以外のデータも適宜含めることができる。
【0158】
図15は、ユーザ端末1500の機能構成例を示す機能ブロック図である。ユーザ端末1500は、操作入力部100と、端末処理部200と、音出力部390と、画像表示部392と、通信部394と、端末記憶部500と、を備える。
【0159】
操作入力部100は、ユーザによってなされた各種の操作入力に応じた操作入力信号を端末処理部200に出力する。例えば、プッシュスイッチや、ジョイスティック、タッチパッド、トラックボール、加速度センサ、ジャイロ、などによって実現できる。
【0160】
端末処理部200は、例えばCPUやGPU等のマイクロプロセッサや、ICメモリなどの電子部品によって実現され、操作入力部100や端末記憶部500を含む各機能部との間のデータ入出力の制御を行う。そして、所定のプログラムやデータ、操作入力部100からの操作入力信号、サーバサイドシステム1010から受信した各種データに基づいて各種の演算処理を実行して、ユーザ端末1500の動作を制御する。
【0161】
端末処理部200は、クライアント制御部260と、計時部280と、音生成部290と、画像生成部292と、通信制御部294と、を有する。
【0162】
クライアント制御部260は、仮想空間サービスシステム1000におけるクライアントとしての制御として、ユーザ端末1500をMMIF(マン・マシン・インターフェース)として機能させる各種制御を行う。具体的には、クライアント制御部260は、操作入力情報提供部261と、表示制御部262と、を有する。
【0163】
操作入力情報提供部261は、操作入力部100からの入力に応じて操作入力情報をサーバサイドシステム1010へ送信する制御を行う。
【0164】
表示制御部262は、サーバサイドシステム1010から受信したデータに基づいて各種画像を表示させるための制御を行う。
【0165】
計時部280は、システムクロックを利用して現在日時や制限時間等の計時を行う。
【0166】
音生成部290は、例えばデジタルシグナルプロセッサ(DSP)や、音声合成ICなどのプロセッサ、音声ファイルを再生可能なオーディオコーデック等によって実現され、楽曲や効果音、各種操作音の音信号を生成し、音出力部390に出力する。音出力部390は、スピーカなど音生成部290から入力される音信号に基づいて音出力(放音)する装置によって実現される。
【0167】
画像生成部292は、クライアント制御部260の制御に基づく画像を画像表示部392へ表示させる画像信号を生成・出力する。
図1の例では、制御基板1550に搭載されるGPU(Graphics Processing Unit)や、グラフィックコントローラ、グラフィックボード、などがこれに該当する。画像表示部392は、フラットパネルディスプレイや、ヘッドマウントディスプレイ、プロジェクターなど、画像を表示させる装置で実現される。
【0168】
通信制御部294は、データ通信に係るデータ処理を実行し、通信部394を介して外部装置とのデータのやりとりを実現する。
【0169】
通信部394は、ネットワーク9と接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現される。
図1の例では通信モジュール1553がこれに該当する。
【0170】
端末記憶部500は、端末処理部200に所与の機能を実現させるためのプログラムや、各種データ等を記憶する。また、端末処理部200の作業領域として用いられ、端末処理部200が各種プログラムに従って実行した演算結果や操作入力部100から入力される入力データ等を一時的に記憶する。こうした機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD-ROMやDVDなどの光学ディスクなどによって実現される。
図1の例では、制御基板1550が搭載するICメモリ1552がこれに該当する。
【0171】
具体的には、端末記憶部500は、ユーザ端末1500を仮想空間サービス用のクライアント制御部260として機能させるためのクライアントプログラム800(アプリケーションプログラム)と、クライアントデータ810と、現在日時900と、を記憶する。勿論、これら以外のデータも適宜記憶できる。
【0172】
クライアントデータ810は、クライアント制御部260の制御実行に係る各種データである。クライアントデータ810は、例えば、仮想空間サービスのユーザとしてのユーザアカウントや、パスワード、などを含む。
【0173】
図16は、サーバサイドシステム1010が実行する処理の流れを説明するためのフローチャートである。
サーバサイドシステム1010は、コンテンツの参加希望者を受け付け(ステップS10)、ユーザマッチング処理を実行する(ステップS12)。ユーザマッチング処理により、1つ又は複数のユーザグループ6を編成する。
【0174】
サーバサイドシステム1010は、編成したユーザグループ6毎にループAを実行する(ステップS20からステップS70)。
ループAにおいて、サーバサイドシステム1010は、処理対象グループに不足枠が生じており、所定の試行打ち切り条件を満たしたかを判定する。肯定判定の場合、補欠NPC5の生成が必要と判断して(ステップS22のYES)、補欠NPC生成処理を実行する(ステップS24)。
【0175】
図17は、補欠NPC生成処理の流れを説明するためのフローチャートである。
補欠NPC生成処理において、サーバサイドシステム1010は、生成の設定モードを、類似モードとするかバランスモードとするかを選択する(ステップS30)。
【0176】
モード選択を、処理対象グループのユーザキャラクタ4(4a、4b、4c)に係るユーザ情報603に基づいて自動選択するとしてもよい。例えば、暫定状態のユーザグループ6を構成するユーザキャラクタ4(4a、4b、4c)のキャラクタ属性やキャラクタレベルが所定の分散条件を満たす場合には、適度にばらけていると判断してバランスモードとし、キャラクタ属性やキャラクタレベルが所定の近似条件又は非分散条件を満たす場合には類似モードとする、としてもよい。勿論、これら以外のルールで自動設定してもよい。
【0177】
また、モード選択を、処理対象グループのグループ行動傾向735(分析結果)に基づいて、自動選択するとしてもよい。例えば、グループ行動傾向735が特定の行動傾向に所与の偏重条件を満たすほどに特異的に偏っている場合には類似モードを選択し、それ以外はバランスモードにする、としても良い。勿論、これら以外のルールで自動設定してもよい。
【0178】
また、モード選択を、処理対象グループのユーザの操作入力に基づいて選択してもよい。
例えば、ユーザ端末1500にて、各プレーヤ向けに、マッチングに補欠NPC5が必要であることを告げるとともに、補欠NPC5に求める行動傾向についてのアンケートを表示して、アンケートへの答えを集計して決めることとしてもよい。アンケートの文言は、例えば、「補欠NPC5に求める行動傾向を次の選択肢から選択してください。選択肢(1)グループの集団としての行動傾向に類似した行動傾向とする。選択肢(2)グループの集団としての行動傾向のバランスを補完する行動傾向とする。」などとする。そして、選択肢(1)を選択したユーザが多ければ類似モードとし、選択肢(2)を選択したユーザが多ければバランスモードに設定する。
【0179】
次に、サーバサイドシステム1010は、処理対象グループのグループ傾向730を分析し、グループ行動傾向735を求める(ステップS32;
図5参照)。
【0180】
次に、サーバサイドシステム1010は、処理対象グループの不足枠の数だけ、ループBを実行する(ステップS40からステップS58)。
ループBでは、サーバサイドシステム1010は、処理対象補欠NPCのキャラクタ属性とキャラクタレベルを決定する(ステップS42;
図7参照)。
【0181】
次いで、サーバサイドシステム1010は、ステップS30で選択した設定モードが、類似モードであれば(ステップS44の類似モード)、処理対象補欠NPCの行動制御パラメータ値BNを類似モードで設定する(ステップS46;
図6参照)。設定モードがバランスモードであれば(ステップS44のバランスモード)、サーバサイドシステム1010は、処理対象補欠NPCの行動制御パラメータ値BNをバランスモードで設定する(ステップS48;
図8参照)。
【0182】
そして、サーバサイドシステム1010は、能力制御パラメータ値Xを設定して(ステップS66;
図9参照)、ループBを終える。
【0183】
処理対象グループの不足枠の数だけ、ループBを実行し終えたならば、サーバサイドシステム1010は、処理対象グループの不足枠の数が複数であったならば(ステップS70:複数体)、生成した複数の補欠NPC5の行動制御パラメータ値BNを、それら補欠NPC5相互でバラツキが生じるように変更する(ステップS72)。更に、生成した複数の補欠NPC5の能力制御パラメータ値Xを、それら補欠NPC5の間でバラツキが生じるように変更して(ステップS74)、補欠NPC生成処理を終了する。
【0184】
ステップS72とステップS74により、生成された複数の補欠NPC5の行動傾向に違いが生じる。プレーヤの視点からみれば、全く同じ行動をするNPCがグループ内に複数体いた場合には、いかにもコンピュータの助けが介入している感覚を抱き、ゲームプレイが興ざめとなりかねないが、適度に行動傾向に違いがあれば、そのような事態を回避することができる。
【0185】
図16に戻って、補欠NPC生成処理を終了するとループAを抜ける(ステップS90)。マッチングで不足枠が生じた全てのユーザグループ6についてループAを実行したならば、サーバサイドシステム1010は、コンテンツの進行制御を開始する(ステップS100)。これに伴い、サーバサイドシステム1010は、補欠NPC5や敵NPC7の自動制御を開始し、個別行動記録データ630(
図4参照)の記録を開始する。
【0186】
コンテンツ終了条件が満たされれば(ステップS102のYES)、サーバサイドシステム1010は、所定の終了処理を実行して(ステップS104)、一連のコンテンツの実行制御を終了する。
【0187】
以上より、サーバサイドシステム1010は、複数のユーザとNPCとが同じコンテンツに参加する場合のグループの集団としての行動のバランスを、従来よりも改善することができる。
【0188】
〔変形例〕
以上、本発明を適用した実施形態の例について説明したが、本発明を適用可能な形態は上記形態に限定されるものではなく適宜構成要素の追加・省略・変更を施すことができる。
【0189】
(変形例その1)
例えば、上記実施形態では、コンテンツの例として、ユーザグループ6と敵グループ8とが対戦するPvEタイプのマルチプレイオンラインゲームを挙げたが、ユーザグループ6同士が対戦するPvPタイプのゲームであってもよい。また、本発明が適用可能なコンテンツは、マッチングされたユーザのユーザキャラクタ4とNPCとがユーザグループ6として参加する内容であれば、ビデオゲームに限らない。例えば、仮想空間サービスで提供される汎用空間(例えば、いわゆるメタバース)内で実行されるグループ参加型のイベント(例えばダンスを行ったり楽器を演奏する等)であってもよい。
【0190】
(変形例その2)
バランスモードにおける目標グループ行動傾向10(
図8参照)を成績優秀なユーザグループの実績値としてもよい。具体的には、サーバサイドシステム1010は、コンテンツ実行(ゲームプレイ)毎に、
図18に示すようなグループ成績データ760を残す。グループ成績データ760は、記録日時761と、メンバーユーザアカウントリスト763と、グループ成績765と、グループ行動傾向(写)766(グループ行動傾向735の写し;
図14参照)と、を含むとする。そして、目標グループ行動傾向10を示す値として、グループ成績765が最も良いグループ成績データ760のグループ行動傾向(写)766に含まれるグループ行動傾向値BT(BT1,BT2,…)を採用する。
【0191】
(変形例その3)
バランスモードにおける目標グループ行動傾向10を、敵グループ8の構成情報に基づいて決定するとしてもよい。例えば、1つの敵グループ8を撃退することがゲームの目的である場合(例えば、レイドイベント)、ステップS48(
図17参照)において、予め用意されている敵グループ8を撃退するのに適したユーザグループ6のグループ行動傾向735を予め設定しておいて、このグループ行動傾向735を目標グループ行動傾向10を示す値として採用する、としてもよい。複数のゲームステージ毎に異なる敵グループ8と対戦するステージ攻略型のゲームであれば、異なる敵グループ8毎に撃退するのに適したユーザグループ6のグループ行動傾向735を用意しておいて、行動制御パラメータ値BNの設定をゲームステージ毎に再設定するとしてもよい。
【0192】
(変形例その4)
上記実施形態では、類似モードとバランスモードの何れかを選択・適用する例を示したが、両モードを併用する構成としてもよい。
例えば、
図19に示すように、コンテンツを、複数のユーザグループ6(6a,6b,…)が参加するチーム参加型PvP対戦ゲームとする。
また、
図20に示すように、予め攻略用推奨グループ行動傾向750を用意しておく。攻略用推奨グループ行動傾向750は、複数種類用意されていて、それぞれ攻略対象グループ傾向751と、攻略に推奨されるグループ行動傾向である推奨グループ行動傾向753と、を対応づけて格納している。
【0193】
そして、
図21に示す補欠NPC生成処理βのように、サーバサイドシステム1010は、ループBの処理対象グループへ割り当てる補欠NPC5を生成する際に、暫定状態の処理対象グループのユーザキャラクタ4のユーザ情報603に基づいて、行動制御パラメータ値BNを類似モードで1次設定する(ステップS46)。
【0194】
その後、サーバサイドシステム1010は、対戦相手である他のユーザグループ6のグループ傾向730に適合する攻略用推奨グループ行動傾向750を検索する(ステップS60)。次いで、検索した攻略用推奨グループ行動傾向750の推奨グループ行動傾向753を目標グループ行動傾向とみなしたバランスモードで、推奨行動制御パラメータ値を決定する(ステップS62)。
【0195】
次いで、サーバサイドシステム1010は、ステップS46で1次設定した行動制御パラメータ値BNを、ステップS62で決定した推奨グループ行動傾向に近づけるように補正して行動制御パラメータ値BNを最終決定する(ステップS64)。なお、当該ステップでは、1次設定した行動制御パラメータ値BNは、奨行動制御パラメータ値に必ずしも一致させる必要は無く、両者の差を低減する値であればよい。当該ステップで、1次設定した行動制御パラメータ値BNを攻略に適するように調整したともいえる。
【0196】
当該変形例によれば、補欠が必要なユーザグループ6(6a,6b)同士が対戦するゲームであっても、それぞれのユーザグループ6の補欠NPC5(5n,5g)を、それぞれのグループ行動傾向に沿った行動傾向を有し、且つ攻略に適した行動傾向を有するNPCとすることができる。
【0197】
(変形例その5)
また、上記実施形態では、補欠NPC5の生成の際に、1回だけ行動制御パラメータ値BNを設定したが、コンテンツの進行制御開始以降、所与のタイミング(例えば、所定時間経過毎)に、行動制御パラメータ値BNを再設定してもよい。
【0198】
具体的には、再設定に際しては、当該コンテンツ開始以降の行動結果が反映された個別行動記録データ630(
図4参照)に基づいて、各ユーザキャラクタ4の個別行動傾向データ620からグループ行動傾向735を更新して、補欠NPC生成処理を実行するとしてもよい。或いは、個別行動記録データ630のうち、当該コンテンツ開始以降の行動結果のデータのみからユーザキャラクタ4の個別行動傾向データ620に相当するデータを求め、求めたデータからグループ行動傾向735に相当するデータを求めて、このグループ行動傾向735に相当するデータを用いて補欠NPC生成処理を実行して再設定するとしてもよい。
【0199】
(変形例その6)
能力パラメータとして、攻撃力、防御力、移動力などのカテゴリーを例示したが、ユーザキャラクタ4や補欠NPC5にスキルを設定できる構成では、能力パラメータにスキル種類とスキルレベルとを含めることができる。
【0200】
例えば、能力制御パラメータ値の設定可能範囲が、キャラクタ属性毎に決まっている場合、補欠NPC5のキャラクタ属性が決まると自ずから能力制御パラメータ値の設定許容可能範囲が決まる。行動制御パラメータ値BNの実現を裏付ける能力制御パラメータ値Xを設定しようとしても(
図9参照)、設定許容可能範囲以上に能力制御パラメータ値Xは設定できない。つまり、能力制御パラメータ値Xだけでは、行動制御パラメータ値BNの実現を裏付ける能力を補欠NPC5に付与できないケースが起こる。この場合、設定許容可能範囲の設定に阻まれて付与できなかった能力の分を、スキルを設定することでカバーするとしてもよい。スキルの設定は、新たな能力制御パラメータの追加設定ということもできる。
【0201】
具体的には、
図22に示すような、スキル定義データ590を予め用意しておく。スキル定義データ590は、スキル種類591と、複数のスキル内容データ592とを含む。1つのスキル内容データ592は、適用スキルレベル593と対応付けられたスキル効果発現用データ594および能力補完効果595、を含む。スキル効果発現用データ594は、当該スキルをゲーム内で発現するための各種設定データである。能力補完効果595は、適用スキルレベル593が示すスキルレベルにおいて実質的にどの能力制御パラメータ値Xがどれだけ向上するかを示すデータである。
【0202】
例えば、能力制御パラメータ値Xが最大値であっても不可能な高速移動を可能にする「俊足スキル」があるとして、スキルレベルが上がるにつれて移動可能距離と移動速度が向上するものとする。「俊足スキル」のスキル効果発現用データ594は、スキル発動時にキャラクタの動作が高速化されているように見せる演出表示データなどが設定される。能力補完効果595は、「移動力」の補完パラメータ値「100」といった具合に設定される。
【0203】
そして、補欠NPC5の能力制御パラメータ値Xを設定するステップS66において、設定したい能力制御パラメータ値Xが、キャラクタレベルに基づく当該能力制御パラメータ値の許容設定範囲の上限値(例えば、そのキャラクタ属性では上限値「50」)を超える場合、上限値を超える不足分(例えば、「20」)を補完パラメータ値で賄う。
【0204】
具体的には、能力補完効果595の示す補完パラメータ値が、賄うべき不足分と同値又は最も近い値のスキル定義データ590を検索して、当該スキルを補欠NPC5へ付与する。もし、補欠NPC5が検索したスキルを既に持っていれば、別種で同様の効果を有する別のスキルを検索するか、スキルレベルを上げることで対処する。
【0205】
なお、スキル定義データ590のスキルは、補欠NPC5に限らず、ユーザキャラクタ4にも付与される。
【0206】
(変形例その7)
上述した実施形態および変形例においては、ユーザグループ6の参加枠に不足が生じた場合に補欠NPC5を割り当てることとして説明した。しかし、参加枠に不足が生じなくとも、上述した実施形態における補欠NPC5に相当するNPCを追加することとしてユーザグループ6を構成してもよい。この場合、例えば、最低1体のNPCをユーザグループ6に参加させる、という実施形態とすることができる。
【符号の説明】
【0207】
4…ユーザキャラクタ
5…補欠NPC
6…ユーザグループ
10…目標グループ行動傾向
200s…処理部
202…コンテンツ管理部
210…ユーザ管理部
220…ユーザマッチング部
222…マッチング試行部
224…暫定部
240…参加NPC設定部
242…目標グループ傾向設定部
244…グループ傾向分析部
246…モード選択部
250…参加制御部
501…サーバプログラム
510…コンテンツ初期設定データ
550…類似モード用相関関数
560…バランスモード用相関関数
570…能力相関関数
580…自動制御定義データ
600…ユーザ管理データ
620…個別行動傾向データ
630…個別行動記録データ
700…コンテンツ進行制御データ
701…グループ管理データ
710…ユーザキャラクタ管理データ
720…補欠NPC管理データ
725…適用行動要素パラメータ値群
726…適用能力制御パラメータ値群
730…グループ傾向
735…グループ行動傾向
1000…仮想空間サービスシステム
1010…サーバサイドシステム
1101…マッチングサーバシステム
1500…ユーザ端末