IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社バンダイナムコゲームスの特許一覧

特開2023-98275コンピュータシステムおよび反映制御方法
<>
  • 特開-コンピュータシステムおよび反映制御方法 図1
  • 特開-コンピュータシステムおよび反映制御方法 図2
  • 特開-コンピュータシステムおよび反映制御方法 図3
  • 特開-コンピュータシステムおよび反映制御方法 図4
  • 特開-コンピュータシステムおよび反映制御方法 図5
  • 特開-コンピュータシステムおよび反映制御方法 図6
  • 特開-コンピュータシステムおよび反映制御方法 図7
  • 特開-コンピュータシステムおよび反映制御方法 図8
  • 特開-コンピュータシステムおよび反映制御方法 図9
  • 特開-コンピュータシステムおよび反映制御方法 図10
  • 特開-コンピュータシステムおよび反映制御方法 図11
  • 特開-コンピュータシステムおよび反映制御方法 図12
  • 特開-コンピュータシステムおよび反映制御方法 図13
  • 特開-コンピュータシステムおよび反映制御方法 図14
  • 特開-コンピュータシステムおよび反映制御方法 図15
  • 特開-コンピュータシステムおよび反映制御方法 図16
  • 特開-コンピュータシステムおよび反映制御方法 図17
  • 特開-コンピュータシステムおよび反映制御方法 図18
  • 特開-コンピュータシステムおよび反映制御方法 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023098275
(43)【公開日】2023-07-10
(54)【発明の名称】コンピュータシステムおよび反映制御方法
(51)【国際特許分類】
   G06T 19/00 20110101AFI20230703BHJP
   A63F 13/358 20140101ALI20230703BHJP
   A63F 13/352 20140101ALI20230703BHJP
【FI】
G06T19/00 300A
A63F13/358
A63F13/352
【審査請求】未請求
【請求項の数】22
【出願形態】OL
(21)【出願番号】P 2021214934
(22)【出願日】2021-12-28
(71)【出願人】
【識別番号】000134855
【氏名又は名称】株式会社バンダイナムコエンターテインメント
(74)【代理人】
【識別番号】100124682
【弁理士】
【氏名又は名称】黒田 泰
(74)【代理人】
【識別番号】100104710
【弁理士】
【氏名又は名称】竹腰 昇
(74)【代理人】
【識別番号】100090479
【弁理士】
【氏名又は名称】井上 一
(72)【発明者】
【氏名】阿須名 孝次
(72)【発明者】
【氏名】南 清志
(72)【発明者】
【氏名】小倉 建一
(72)【発明者】
【氏名】恩田 明生
(72)【発明者】
【氏名】青木 隆
(72)【発明者】
【氏名】村井 伸太郎
【テーマコード(参考)】
5B050
【Fターム(参考)】
5B050AA03
5B050BA09
5B050CA07
5B050CA08
5B050EA26
5B050FA02
5B050FA05
(57)【要約】
【課題】同じ世界観に設定された複数の仮想空間について、仮想空間別に生じる差異を共通化するための新たな技術を提供すること。
【解決手段】ゲームシステムは、参加した仮想空間内でのみ個々のユーザキャラクタが移動可能であり、同じ世界観に設定された複数の仮想空間について、相互の仮想空間の反映制御を行うコンピュータシステムである。ゲームシステムは、仮想空間別に表示制御されるオブジェクトの情報であるオブジェクト情報を管理する。そして、各仮想空間の間で共通の範囲として所与の対象範囲を設定し、複数の仮想空間のうちの反映元空間の対象範囲内に表示制御されるオブジェクトを、複数の仮想空間のうちの反映先空間の前記対象範囲に反映させて表示制御する反映制御を行う。
【選択図】図3
【特許請求の範囲】
【請求項1】
参加した仮想空間内でのみ個々のユーザキャラクタが移動可能であり、同じ世界観に設定された複数の仮想空間について、相互の仮想空間の反映制御を行うコンピュータシステムであって、
前記仮想空間別に表示制御されるオブジェクトの情報であるオブジェクト情報を管理するオブジェクト情報管理手段と、
前記仮想空間で共通の範囲として、前記反映制御の対象とする所与の対象範囲を設定する対象範囲設定手段と、
前記オブジェクト情報に基づいて、前記複数の仮想空間のうちの反映元空間の前記対象範囲内に表示制御される前記オブジェクトを、前記複数の仮想空間のうちの反映先空間の前記対象範囲に反映させて表示制御する前記反映制御を行う反映制御手段と、
を備えるコンピュータシステム。
【請求項2】
前記オブジェクト情報は、前記オブジェクトに係る出現・形態変更・パラメータ設定・消失のうちの何れかの情報であるオブジェクト状態情報を含む、
請求項1に記載のコンピュータシステム。
【請求項3】
前記反映制御手段は、前記反映元空間に係るワールドタイムと、前記反映先空間に係るワールドタイムとに基づいて、前記反映制御を実行するタイミングを制御する、
請求項1又は2に記載のコンピュータシステム。
【請求項4】
前記オブジェクト情報管理手段は、前記オブジェクトに関する前記ユーザキャラクタの行為に基づいて、前記オブジェクト情報を変更する、
請求項1から3の何れか一項に記載のコンピュータシステム。
【請求項5】
前記対象範囲設定手段は、前記反映先空間に存在する前記ユーザキャラクタの位置に基づいて前記対象範囲を設定する、
請求項1から4の何れか一項に記載のコンピュータシステム。
【請求項6】
前記反映制御手段は、前記反映制御の反映内容を可変に決定する、
請求項1から5の何れか一項に記載のコンピュータシステム。
【請求項7】
前記反映制御の反映内容は、反映させる際の表示制御を含む、
請求項6に記載のコンピュータシステム。
【請求項8】
前記オブジェクト情報は、前記オブジェクトに係る反映可否情報を含み、
前記反映制御手段は、前記反映可否情報に基づいて、前記反映制御の反映内容を可変に決定する、
請求項6又は7に記載のコンピュータシステム。
【請求項9】
前記複数の仮想空間のなかから、前記反映元空間を選択する反映元空間選択手段、
を更に備える請求項1から8の何れか一項に記載のコンピュータシステム。
【請求項10】
前記反映元空間選択手段は、前記複数の仮想空間で所定の同時期条件を満たすタイミングで所与のイベントが発生した場合に、前記反映元空間を選択する、
請求項9に記載のコンピュータシステム。
【請求項11】
前記イベントは、前記複数の仮想空間において同じイベントである、
請求項10に記載のコンピュータシステム。
【請求項12】
前記イベントは、前記複数の仮想空間において異なるイベントである、
請求項10に記載のコンピュータシステム。
【請求項13】
前記反映元空間選択手段は、前記複数の仮想空間それぞれの状況に基づいて、前記反映元空間を選択する、
請求項9から12の何れか一項に記載のコンピュータシステム。
【請求項14】
前記反映元空間選択手段は、当該仮想空間に係るユーザの利用状況に基づいて、前記反映元空間を選択する、
請求項9から13の何れか一項に記載のコンピュータシステム。
【請求項15】
前記反映複数の仮想空間のなかから、前記反映先空間を選択する反映先空間選択手段、
を更に備える請求項1から8の何れか一項に記載のコンピュータシステム。
【請求項16】
前記反映先空間選択手段は、前記複数の仮想空間それぞれの状況に基づいて、前記反映先空間を選択する、
請求項15に記載のコンピュータシステム。
【請求項17】
前記反映先空間選択手段は、当該仮想空間に係るユーザの利用状況に基づいて、前記反映先空間を選択する、
請求項15又は16に記載のコンピュータシステム。
【請求項18】
前記反映制御手段は、所与の反映発動条件が満たされた場合に前記反映制御を実行する、
請求項1から17の何れか一項に記載のコンピュータシステム。
【請求項19】
前記仮想空間毎に当該仮想空間を管理する仮想空間別のサーバシステム、
を更に備える請求項1から18の何れか一項に記載のコンピュータシステム。
【請求項20】
参加した仮想空間内でのみ個々のユーザキャラクタが移動可能であり、同じ世界観に設定された複数の仮想空間について、相互の仮想空間の反映制御を行うコンピュータシステムであって、
前記仮想空間別のイベントの情報であるイベント情報を管理するイベント情報管理手段と、
前記仮想空間で共通の範囲として、前記反映制御の対象とする所与の対象範囲を設定する対象範囲設定手段と、
前記イベント情報に基づいて、前記複数の仮想空間のうちの反映元空間の前記対象範囲内に生じた前記イベントを、前記複数の仮想空間のうちの反映先空間の前記対象範囲に反映させて表示制御する前記反映制御を行う反映制御手段と、
を備えるコンピュータシステム。
【請求項21】
参加した仮想空間内でのみ個々のユーザキャラクタが移動可能であり、同じ世界観に設定された複数の仮想空間について、コンピュータシステムが、相互の仮想空間の反映制御を行う反映制御方法であって、
前記仮想空間別に表示制御されるオブジェクトの情報であるオブジェクト情報を管理することと、
前記仮想空間で共通の範囲として、前記反映制御の対象とする所与の対象範囲を設定することと、
前記オブジェクト情報に基づいて、前記複数の仮想空間のうちの反映元空間の前記対象範囲内に表示制御される前記オブジェクトを、前記複数の仮想空間のうちの反映先空間の前記対象範囲に反映させて表示制御する前記反映制御を行うことと、
を含む反映制御方法。
【請求項22】
参加した仮想空間内でのみ個々のユーザキャラクタが移動可能であり、同じ世界観に設定された複数の仮想空間について、コンピュータシステムが、相互の仮想空間の反映制御を行う反映制御方法であって、
前記仮想空間別のイベントの情報であるイベント情報を管理することと、
前記仮想空間で共通の範囲として、前記反映制御の対象とする所与の対象範囲を設定することと、
前記イベント情報に基づいて、前記複数の仮想空間のうちの反映元空間の前記対象範囲内に生じた前記イベントを、前記複数の仮想空間のうちの反映先空間の前記対象範囲に反映させて表示制御する前記反映制御を行うことと、
を含む反映制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想空間を制御するコンピュータシステム等に関する。
【背景技術】
【0002】
コンピュータの演算処理により現実とは異なる仮想世界となる仮想空間(例えば、メタバース、多人数参加型オンラインゲームのゲーム空間、など)を構築し、利用者であるユーザのキャラクタ(例えば、アバター、プレーヤキャラクタ、など;以下、「ユーザキャラクタ」という)を配置して、ユーザに仮想空間での仮想体験を提供する技術が知られている。例えば、特許文献1には、複数のユーザで1つの仮想空間を共有し、ユーザ間でコミュニケーションをとることができる技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2001-312744号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
仮想空間に存在するユーザ数が大規模になると、1台のコンピュータシステムで当該仮想空間を管理(運用ともいえる)しきれなくなる。言い方を代えると、1つの仮想空間に許容できるユーザキャラクタの数には限界がある。そのため、多人数参加型の仮想空間を運用するためには、複数のサーバシステムを用意して、各サーバシステムのそれぞれで仮想空間を制御・管理し、ログインするユーザキャラクタを複数の仮想空間に分散させて管理している。各サーバシステムが管理する複数の仮想空間は並行して存在することになる。しかし、ユーザ側からはどの仮想空間も同じ仮想空間であるかのように、仮想空間の基本的な地理や背景、空間座標などの基本設定が同じに設定される。
【0005】
ところが、仮想空間それぞれにログインするユーザキャラクタは異なるため、各仮想空間で起きた変化を互いに反映させて統合・共通化すべきかどうかという点で課題がある。
【0006】
例えば、互いの仮想空間の状態変化を反映させず、統合・共通化を全く行わないとするならば、各仮想空間は開始当初は同一であったものの、それぞれの仮想空間のユーザキャラクタの行為によって、時間経過とともにオリジナリティが生まれ得る。仮に、仮想空間にユーザが家を建てて仮想的な商売ができるルールであるならば、ある仮想空間では花屋が建っている位置に、別の仮想空間では家具屋が建っている、といったことが起きる。つまり、各仮想空間が別の並行世界であるかのような存在となってしまう。
【0007】
仮想空間の状態が異なったままであると、ユーザコミュニティで仮想空間の出来事を話題にすると話しが噛み合わないといった事態が起きる。多人数参加型の仮想空間を提供するサービスであって、複数のサーバシステムで並行する複数の仮想空間を管理するものの、統一感のある同じ1つの世界観であることを標榜するサービスにおいては、こうした事態は好ましく無い。
【0008】
一方、各仮想空間の状態を細部に亘って反映させて統合・共通化しようとすると、処理コストが膨大になり、実現が困難になると予想される。結果的に1つのサーバシステムで管理することと同じであり、それに加えて高速・大容量のデータ通信が必要になるからである。本明細書において、処理コストとは、演算量やデータ通信量のことであり、設備投資やメンテナンスに要する費用・人員・時間と考えることもできる。
【0009】
本発明が解決しようとする課題は、同じ世界観に設定された複数の仮想空間について、仮想空間別に生じる差異を共通化するための新たな技術を提供すること、である。
【課題を解決するための手段】
【0010】
上記した課題を解決するための第1の発明は、参加した仮想空間内でのみ個々のユーザキャラクタが移動可能であり、同じ世界観に設定された複数の仮想空間について、相互の仮想空間の反映制御を行うコンピュータシステムであって、
前記仮想空間別に表示制御されるオブジェクトの情報であるオブジェクト情報を管理するオブジェクト情報管理手段(例えば、図1のゲームサーバシステム1100G、図9の処理部200g、オブジェクト情報管理部222、図12の仮想空間管理データ600、図17のステップS14)と、
前記仮想空間で共通の範囲として、前記反映制御の対象とする所与の対象範囲を設定する対象範囲設定手段(例えば、図1のゲームサーバシステム1100G、図9の処理部200g、対象範囲設定部228、図17のステップS42)と、
前記オブジェクト情報に基づいて、前記複数の仮想空間のうちの反映元空間の前記対象範囲内に表示制御される前記オブジェクトを、前記複数の仮想空間のうちの反映先空間の前記対象範囲に反映させて表示制御する前記反映制御を行う反映制御手段(例えば、図1のゲームサーバシステム1100G、図9の処理部200g、反映制御部230、図18のステップS60、図19のステップS84、図19のステップS84、図19のステップS96、図19のステップS110)と、
を備えるコンピュータシステムである。
【0011】
第1の発明によれば、コンピュータシステムは、仮想空間の相互の状態を反映して共通化することが可能となる。その際、反映制御を対象範囲に限定することで、反映制御に係る処理コストを低減できる。
【0012】
第2の発明は、前記オブジェクト情報が、前記オブジェクトに係る出現・形態変更・パラメータ設定・消失のうちの何れかの情報であるオブジェクト状態情報を含む、第1の発明のコンピュータシステムである。
【0013】
第2の発明によれば、コンピュータシステムは、オブジェクトに係る出現、形態変更、パラメータ設定、消失について、複数の仮想空間それぞれで起きた変化を共通化できる。
【0014】
第3の発明は、前記反映制御手段が、前記反映元空間に係るワールドタイムと、前記反映先空間に係るワールドタイムとに基づいて、前記反映制御を実行するタイミングを制御する(例えば、図19のステップS74のYESからステップS96)、第1又は第2の発明のコンピュータシステムである。
【0015】
「ワールドタイム」とは仮想空間における日時である。
第3の発明によれば、コンピュータシステムは、反映制御のタイミングをワールドタイムに基づいて実行できる。例えば、仮想空間それぞれにおいて、同じワールドタイムで同じオブジェクトが出現する/消失する、といった反映制御が可能になる。
【0016】
第4の発明は、前記オブジェクト情報管理手段が、前記オブジェクトに関する前記ユーザキャラクタの行為に基づいて、前記オブジェクト情報を変更する(例えば、図17のステップS14)、第1から第3の何れかの発明のコンピュータシステムである。
【0017】
第4の発明によれば、コンピュータシステムは、ユーザの操作入力、すなわちユーザキャラクタの行為に基づいて、そこに配置されているオブジェクトのオブジェクト情報、つまり当該オブジェクトの状態を変更することができる。よって、それぞれの仮想空間を、当該仮想空間に存在するユーザキャラクタの行為に基づいて変化させることができる。
【0018】
第5の発明は、前記対象範囲設定手段が、前記反映先空間に存在する前記ユーザキャラクタの位置に基づいて前記対象範囲を設定する、第1から第4の何れかの発明のコンピュータシステムである。
【0019】
第5の発明によれば、コンピュータシステムは、ユーザキャラクタの位置を基準として設定される範囲を対象として反映制御を実行することができる。このため、仮想空間全域を対象に反映制御を実行するよりも、処理コストを低減できる。
【0020】
第6の発明は、前記反映制御手段が、前記反映制御の反映内容を可変に決定する、第1から第5の何れかの発明のコンピュータシステムである。
【0021】
第6の発明によれば、コンピュータシステムは、反映内容を様々に変更することができる。
【0022】
第7の発明は、前記反映制御の反映内容が、反映させる際の表示制御を含む、第6の発明のコンピュータシステムである。
【0023】
第7の発明によれば、コンピュータシステムは、表示させる内容や表示させる形態を変化させることができる。
【0024】
第8の発明は、前記オブジェクト情報が、前記オブジェクトに係る反映可否情報を含み、前記反映制御手段は、前記反映可否情報に基づいて、前記反映制御の反映内容を可変に決定する、第6又は第7の発明のコンピュータシステムである。
【0025】
第8の発明によれば、コンピュータシステムは、反映の対象とするオブジェクトと、対象としないオブジェクトとを分けて反映制御を実行することができる。
【0026】
第9の発明は、前記複数の仮想空間のなかから、前記反映元空間を選択する反映元空間選択手段(例えば、図1のゲームサーバシステム1100G、図9の処理部200g、反映関係選択部226、反映元空間選択部226a、図17のステップS26)、を更に備える第1から第8の何れかの発明のコンピュータシステムである。
【0027】
第9の発明によれば、コンピュータシステムは、複数の仮想空間のなかから、反映元空間を選択できるので、反映元・反映先の関係を変化させることができる。
【0028】
第10の発明は、前記反映元空間選択手段は、前記複数の仮想空間で所定の同時期条件を満たすタイミングで所与のイベントが発生した場合に、前記反映元空間を選択する、第9の発明のコンピュータシステムである。
【0029】
また、第11の発明は、前記イベントが、前記複数の仮想空間において同じイベントである、第10の発明のコンピュータシステムである。
【0030】
また、第12の発明は、前記イベントが、前記複数の仮想空間において異なるイベントである、第10の発明のコンピュータシステムである。
【0031】
第10から第12の何れかの発明によれば、コンピュータシステムは、複数の仮想空間で所定の同時期条件を満たすタイミングでイベントが発生した場合に、反映元空間を選択できる。
【0032】
第13の発明は、前記反映元空間選択手段が、前記複数の仮想空間それぞれの状況に基づいて、前記反映元空間を選択する、第9から第12の何れかの発明のコンピュータシステムである。
【0033】
第13の発明によれば、コンピュータシステムは、複数の仮想空間それぞれの状況に基づいて反映元空間を選択できる。
【0034】
第14の発明は、前記反映元空間選択手段が、当該仮想空間に係るユーザの利用状況に基づいて、前記反映元空間を選択する、第9から第13の何れかの発明のコンピュータシステムである。
【0035】
仮想空間に係るユーザの利用状況は、例えば、当該仮想空間を利用しているユーザ数、利用頻度、当該仮想空間を利用中の課金状況(例えば、課金アイテムの購入回数や購入金額)、などで表すことができる。そして、利用状況が高い仮想空間は、それだけユーザキャラクタが活発に行為を行うが故に多くの状態変化が生じ得る。してみれば、利用状況が高い仮想空間は、それだけ反映元とする意義が大きく、当該仮想空間の状態を他の仮想空間に反映させるべきと考えられる。利用状況が低い仮想空間は、反映元とする意義は小さいが、逆に反映先とする意義が大きいと考えられる。
【0036】
よって、第14の発明によれば、コンピュータシステムは、仮想空間に係るユーザの利用状況に基づいて反映元空間を選択することで、反映制御の有効性を高めることができる。
【0037】
第15の発明は、前記複数の仮想空間のなかから、前記反映先空間を選択する反映先空間選択手段(例えば、図1のゲームサーバシステム1100G、図9の処理部200g、反映関係選択部226、反映先空間選択部226b、図17のステップS26)、を更に備える第1から第8の何れかの発明のコンピュータシステムである。
【0038】
また、第16の発明は、前記反映先空間選択手段が、前記複数の仮想空間それぞれの状況に基づいて、前記反映先空間を選択する、第15の発明のコンピュータシステムである。
【0039】
また、第17の発明は、前記反映先空間選択手段が、当該仮想空間に係るユーザの利用状況に基づいて、前記反映先空間を選択する、第15又は第16の発明のコンピュータシステムである。
【0040】
第15から第17の何れかの発明によれば、コンピュータシステムは、複数の仮想空間のなかから、反映先空間を選択できるので、反映元・反映先の関係を変化させることができる。
【0041】
第18の発明は、前記反映制御手段が、所与の反映発動条件が満たされた場合に前記反映制御を実行する、第1から第17の何れかの発明のコンピュータシステムである。
【0042】
第18の発明によれば、コンピュータシステムは、反映発動条件が満たされた場合に反映制御を実行することができる。よって、反映制御を随時実行する場合に比べて処理コストの低減を図ることができる。
【0043】
第19の発明は、前記仮想空間毎に当該仮想空間を管理する仮想空間別のサーバシステム、を更に備える第1から第18の何れかの発明のコンピュータシステムである。
【0044】
第19の発明によれば、複数のサーバシステムを用意して、それぞれに仮想空間を管理させる構成とすることができる。
【0045】
第20の発明は、参加した仮想空間内でのみ個々のユーザキャラクタが移動可能であり、同じ世界観に設定された複数の仮想空間について、相互の仮想空間の反映制御を行うコンピュータシステムであって、前記仮想空間別のイベントの情報であるイベント情報を管理するイベント情報管理手段(例えば、図9のイベント情報管理部232、図12の発動イベント情報650、図17のステップS16)と、前記仮想空間で共通の範囲として、前記反映制御の対象とする所与の対象範囲を設定する対象範囲設定手段と、前記イベント情報に基づいて、前記複数の仮想空間のうちの反映元空間の前記対象範囲内に生じた前記イベントを、前記複数の仮想空間のうちの反映先空間の前記対象範囲に反映させて表示制御する前記反映制御を行う反映制御手段と、を備えるコンピュータシステムである。
【0046】
第20の発明によれば、コンピュータシステムは、仮想空間の相互のイベントの状態を反映して共通化することが可能となる。その際、反映制御を対象範囲に限定することで、反映制御に係る処理コストを低減できる。
【0047】
第21の発明は、参加した仮想空間内でのみ個々のユーザキャラクタが移動可能であり、同じ世界観に設定された複数の仮想空間について、コンピュータシステムが、相互の仮想空間の反映制御を行う反映制御方法であって、前記仮想空間別に表示制御されるオブジェクトの情報であるオブジェクト情報を管理することと、前記仮想空間で共通の範囲として、前記反映制御の対象とする所与の対象範囲を設定することと、前記オブジェクト情報に基づいて、前記複数の仮想空間のうちの反映元空間の前記対象範囲内に表示制御される前記オブジェクトを、前記複数の仮想空間のうちの反映先空間の前記対象範囲に反映させて表示制御する前記反映制御を行うことと、を含む反映制御方法である。
【0048】
第21の発明によれば、第1の発明と同様の作用効果を奏する反映制御方法を実現できる。
【0049】
第22の発明は、参加した仮想空間内でのみ個々のユーザキャラクタが移動可能であり、同じ世界観に設定された複数の仮想空間について、コンピュータシステムが、相互の仮想空間の反映制御を行う反映制御方法であって、前記仮想空間別のイベントの情報であるイベント情報を管理することと、前記仮想空間で共通の範囲として、前記反映制御の対象とする所与の対象範囲を設定することと、前記イベント情報に基づいて、前記複数の仮想空間のうちの反映元空間の前記対象範囲内に生じた前記イベントを、前記複数の仮想空間のうちの反映先空間の前記対象範囲に反映させて表示制御する前記反映制御を行うことと、を含む反映制御方法である。
【0050】
第22の発明によれば、第20の発明と同様の作用効果を奏する反映制御方法を実現できる。
【図面の簡単な説明】
【0051】
図1】ゲームシステムの構成例を示す図。
図2】ゲームシステムが提供する仮想空間について説明するための図。
図3】反映制御について説明するための図。
図4】対象範囲の設定の一例について説明するための図。
図5】「反映対象の間引き」について説明するための図。
図6】「反映周期の間引き」について説明するための図。
図7】「反映内容の間引き」について説明するための図。
図8】ポータルサーバシステムの機能構成例を示すブロック図。
図9】ゲームサーバシステムの機能構成例を示すブロック図。
図10】ゲームサーバシステムの記憶部が記憶するプログラムやデータの例を示す図。
図11】利用状況情報のデータ構成例を示す図。
図12】仮想空間管理データのデータ構成例を示す図。
図13】背景オブジェクト情報のデータ構成例を示す図。
図14】ユーザキャラクタ情報のデータ構成例を示す図。
図15】追加オブジェクト情報のデータ構成例を示す図。
図16】ユーザ端末の機能構成例を示すブロック図。
図17】ゲームサーバシステムにおける処理の流れを説明するためのフローチャート。
図18図17より続くフローチャート。
図19図18より続くフローチャート。
【発明を実施するための形態】
【0052】
以下、本発明の実施形態の例を説明するが、本発明を適用可能な形態が以下の実施形態に限られないことは勿論である。
【0053】
図1は、ゲームシステム1000の構成例を示す図である。
ゲームシステム1000は、仮想空間における仮想体験を多人数参加型のオンラインゲームとしてユーザに提供するためのシステムである。ゲームシステム1000は、ネットワーク9を介してデータ通信可能に接続された運用システム1010およびユーザ別のユーザ端末1500(1500a,1500b,…)を含み、ユーザ端末1500をマン・マシン・インターフェース(Man Machine Interface:MMIF)とするコンピュータシステムである。
【0054】
ネットワーク9は、データ通信が可能な通信路を意味する。すなわち、ネットワーク9とは、直接接続のための専用線(専用ケーブル)やイーサネット(登録商標)等によるLAN(Local Area Network)の他、電話通信網やケーブル網、インターネットを含む。
【0055】
運用システム1010は、サービス提供者・システム運用者が管理運用するコンピュータシステムであって、ポータルサーバシステム1100Pと、複数のゲームサーバシステム1100G(1100Ga,1100Gb,…)を有する。
【0056】
ポータルサーバシステム1100Pは、オンラインゲームに係る各種サービスを利用するためユーザ端末1500が最初にアクセスするサーバシステムである。ポータルサーバシステム1100Pは、例えば、ユーザ登録、ゲームに係る各種アイテム等のオンライン販売の管理、ゲームサーバへのユーザの振り分け(或いはユーザによる利用するゲームサーバの選択の受付)、等に係る機能を果たす。
【0057】
ゲームサーバシステム1100G(1100Ga,1100Gb,…)は、それぞれが単数又は複数のユーザ端末1500と通信して、ユーザ端末1500をゲームクライアントとしたゲームサーバとしての機能を果たす。
【0058】
ポータルサーバシステム1100Pとゲームサーバシステム1100Gとは、コンピュータシステムとしての基本的な機能は同様に実現できる。
すなわち、ポータルサーバシステム1100Pおよびゲームサーバシステム1100Gは、本体装置1101、キーボード、タッチパネル、ストレージ1140を有し、本体装置1101に制御基板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)により実現するとしてもよい。
【0059】
但し、ポータルサーバシステム1100Pとゲームサーバシステム1100Gとは、制御基板1150が所定のプログラムおよびデータに基づいて演算処理することによりそれぞれ別個の機能を実現する。
【0060】
図面には、ポータルサーバシステム1100Pおよびゲームサーバシステム1100Gは、それぞれ1台のサーバ装置であるかのように描いているが、複数の装置で実現する構成であってもよい。例えば、ポータルサーバシステム1100Pおよびゲームサーバシステム1100Gは、各機能を分担する複数のブレードサーバを搭載して相互に内部バスを介してデータ通信可能に接続した構成であってもよい。また、ポータルサーバシステム1100Pおよびゲームサーバシステム1100Gを構成するハードウェアの設置場所は問わない。離れた場所に設置された独立した複数のサーバを、ネットワーク9を介してデータ通信させることで、全体としてポータルサーバシステム1100P或いはゲームサーバシステム1100Gとして機能させる構成であってもよい。
【0061】
ユーザ端末1500は、ユーザがゲームシステム1000を利用するために使用するコンピュータシステムである。ユーザ端末1500は、ゲームシステム1000におけるマン・マシン・インターフェースの機能を担っている。
【0062】
図1では、ユーザ端末1500を、いわゆるスマートフォンと呼ばれる装置として表しているが、コンピュータシステムであれば、ウェアラブルコンピュータや、携帯型ゲーム装置、家庭用ゲーム装置、タブレット型コンピュータ、パソコン、などでもよい。スマートフォンと、当該スマートフォンに通信接続されたスマートウォッチ、ヘッドマウントディスプレイなどの組み合わせといった複数の電子機器が通信可能に接続することで1つの機能を果たす場合にはこれらの複数の電子機器を1つのユーザ端末1500とみなすことができる。
【0063】
ユーザ端末1500は、操作入力デバイス(例えば、タッチパネル1506、キーボード、ゲームコントローラ、マウスなど)と、画像表示デバイス(例えば、タッチパネル1506、ヘッドマウントディスプレイ、グラス型ディスプレイなど)と、制御基板1550と、を備える。
【0064】
制御基板1550は、CPU1551や、GPU,DSPなどの各種マイクロプロセッサ、VRAMやRAM,ROM等の各種ICメモリ1552、ネットワーク9に接続する通信モジュール1553、などを搭載する。制御基板1550に搭載されているこれらの要素は、バス回路などを介して電気的に接続され、データの読み書きや信号の送受信が可能に接続されている。制御基板1550の一部又は全部をASICやFPGA、SoCにて構成してもよい。そして、制御基板1550は、ユーザ端末としての機能を実現させるためのプログラムや各種データをICメモリ1552に記憶する。そして、ユーザ端末1500は、所定のアプリケーションプログラムを実行することにより、ゲームシステム1000のMMIFとして、またゲームクライアントとしての機能を実現する。
【0065】
ユーザ端末1500は、アプリケーションプログラムやその実行に必要な各種データをポータルサーバシステム1100Pからダウンロードする構成としているが、ユーザが別途入手したメモリカードなどの記憶媒体から読み出す構成としてもよい。
【0066】
図2は、ゲームシステム1000が提供する仮想空間3について説明するための図である。
仮想空間3は、全ユーザにとって共通の世界観(共通のゲーム世界)を表現する3次元の仮想的な世界として設定されている。仮想空間3は、現実とは異なる空間と時間の流れを有し、ユーザがログインしていなくてもゲームシステム1000のデータとして存在し続け、現実世界の時間経過とともに仮想空間でも時間が経過し、変化し続けている。
【0067】
仮想空間3には、同時並行的に存在する複数の仮想空間3(3a,3b,…)がある。各ゲームサーバシステム1100G(1100Ga,1100Gb,…)は、それぞれ1つずつ仮想空間3(3a,3b,…)のデータを記憶・管理する。各仮想空間3(3a,3b,…)は、データとしての実体は独立しているが、当該仮想空間が記述する仮想空間3の広さ、位置座標系、そこで適用されるルールは同じであり、共通の世界観を有する。
【0068】
ユーザは、自身のユーザ端末1500を操作して、ゲームサーバシステム1100G(1100Ga,1100Gb,…)の何れかにログインする。ゲームサーバシステム1100Gは、ログインしたユーザ端末1500のユーザキャラクタ4(4a,4b,…)を、当該ゲームサーバシステム1100Gが管理する仮想空間3(3a,3b,…)の中に配置する。そして、ゲームサーバシステム1100Gは、ユーザの操作入力に応じてユーザキャラクタ4の行為を仮想空間3内で制御し、当該行為の結果として仮想空間3(3a,3b,…)を構成するオブジェクトを出現・移動・形態変更・消去させて仮想空間3を変更する。つまり、ユーザは、ユーザ端末1500を用いてログインしたゲームサーバシステム1100Gが管理する仮想空間3にユーザキャラクタ4で参加して、仮想空間3での仮想体験を楽しむことができる。
【0069】
仮想空間3(3a,3b,…)には、大きく分けて、基礎オブジェクト10、背景オブジェクト20、ユーザキャラクタ4のオブジェクト、などが配置される。
【0070】
基礎オブジェクト10は、ユーザが異なるゲームサーバシステム1100Gにログインしたとしても、共通の世界観を有する仮想空間3にログインしたとの認識をユーザに抱かせるためのオブジェクトである。例えば、地形(又はそれに相当する構造体)、建物、遺跡、ダンジョンの入口、などを表すオブジェクトがこれに該当する。
【0071】
背景オブジェクト20は、ユーザキャラクタ4や基礎オブジェクト10に分類されないオブジェクトである。例えば、各種のNPC(ノンプレーヤキャラクタ)、ユーザキャラクタ4が任意に設置/移動/撤去が可能な任意設置オブジェクト21(21b)、ユーザキャラクタ4が状態を変化させることが可能な仕掛けオブジェクト22(22a,22b,…)、イベントの発動に伴い出現するイベントオブジェクト23、などがこれに該当する。
【0072】
システム運用開始当初は、全ての仮想空間3(3a,3b,…)は同じ初期状態とされる。つまり、初期状態では、基礎オブジェクト10や背景オブジェクト20は、同一の位置にあって同一の状態にある。しかし、ユーザキャラクタ4の行為の結果として仮想空間3(3a,3b,…)のオブジェクトに施された状態の変更は、その仮想空間3におけるローカル事象として残る。結果として、各仮想空間3(3a,3b,…)は、システム運用開始から時間が経過するにつれて、初期状態と異なるオリジナリティを有するようになる。
【0073】
図2を参照して説明する。図2に示すように、それぞれの仮想空間3(3a,3b,…)には、それぞれの仮想空間3にログインしたユーザキャラクタ4(4a,4b,…)が存在する。
仮想空間3bでは、ユーザキャラクタ4dが、任意設置オブジェクトである標識21bを設置しているが、これは当該仮想空間3bにおけるローカル事象であり、他の仮想空間3aや仮想空間3cには標識21bに該当するオブジェクトは存在していない。
【0074】
仮想空間3cでは、背景オブジェクト20の1つであるイベント発動用の仕掛けオブジェクト22cが倒されて発動状態にされているが、これは当該仮想空間3cにおけるローカル事象であり、他の仮想空間3aや仮想空間3bの同じ位置に設置されている仕掛けオブジェクト22aや仕掛けオブジェクト22bは倒されていない。
【0075】
また、仮想空間3cでは、仕掛けオブジェクト22cが倒されたことで、仕掛けオブジェクト22cに対応づけられている所定のイベント(例えば、NPC(non player character)によるダンスや音楽などの実演や、レイドボスであるNPCの出現など)が発動し、それに係るイベントオブジェクト23が配置されているが、これは当該仮想空間3cにおけるローカル事象であり、他の仮想空間3aおよび仮想空間3bには、イベントオブジェクト23に該当するオブジェクトは配置されていない。
【0076】
運用システム1010は、仮想空間3(3a,3b,…)が表している世界観をユーザに認識させるために、仮想空間3(3a,3b,…)におけるローカル事象から生じたオリジナリティを共通化する「反映制御」を行う。反映制御の共通化には、様々なバリエーションがある。
【0077】
図3は、反映制御について説明するための図である。
反映制御は、各ゲームサーバシステム1100G毎に実行される。図3の例では、ゲームサーバシステム1100Gaが反映制御を実行している例を示している。
【0078】
反映制御に係り、ゲームサーバシステム1100Gaは、自分が管理する仮想空間3aでプレイ中(利用中)のユーザ毎、つまりユーザキャラクタ4毎に、反映制御の対象範囲40を設定する。図3の例ではユーザキャラクタ4aが対象範囲40の設定基準として着目とされている。
【0079】
ゲームサーバシステム1100Gaは、着目するユーザキャラクタ4aの仮想空間3aにおける位置座標を基準位置として対象範囲40aを決定する。各仮想空間3a,3b,3cそれぞれの座標系は同じに設定されているため、仮想空間3aにおいて対象範囲40aを決定すると、他の仮想空間3b,3cにおいても、それと同じ座標の対象範囲40b,40cが一義的に決定する。そして、ゲームサーバシステム1100Gaは、ゲームサーバシステム1100Gbに対して、ゲームサーバシステム1100Gbが管理する仮想空間3bにおける対象範囲40bに含まれるオブジェクト(但し、ユーザキャラクタ4と基礎オブジェクト10は除く)の最新状態についての情報を取得する。図3の例では、標識21bと仕掛けオブジェクト22bとのオブジェクトの状態についての情報を取得することになる。
【0080】
同様にして、ゲームサーバシステム1100Gaは、ゲームサーバシステム1100Gcに対しても、ゲームサーバシステム1100Gcが管理する仮想空間3cにおける対象範囲40cに含まれるオブジェクトの最新状態についての情報を取得する。図3の例では、仕掛けオブジェクト22cがイベント発動状態(倒れた状態)になっていることについての情報を取得することになる。仕掛けオブジェクト22cがイベント発動状態になったことで、仮想空間3cには、イベントオブジェクト23が出現しているが、当該イベントオブジェクト23は対象範囲40cには入らないのでイベントオブジェクト23の状態の情報は取得されない。
【0081】
そして、ゲームサーバシステム1100Gaは、自分の仮想空間3aを反映先とし、ゲームサーバシステム1100Gbの仮想空間3bおよびゲームサーバシステム1100Gcの仮想空間3cを反映元として、反映元の対象範囲40b,40cにおけるオブジェクトの状態を反映先の対象範囲40aに反映させる。
【0082】
図3の例では、結果として、ゲームサーバシステム1100Gaは、自分の仮想空間3aにおける仕掛けオブジェクト22aの状態を、仮想空間3cにおける仕掛けオブジェクト22cの状態と同じに変更する。反映させる状態には優劣が定められており、イベント発動状態(倒れた状態)となっている場合は、イベント発動状態(倒れた状態)となっていない場合に対して優先するからである。また、ゲームサーバシステム1100Gaは、仮想空間3bにある標識21bが、自分の仮想空間3aには存在していないので、追加オブジェクトとして標識21aを追加する。
【0083】
追加オブジェクト(この場合標識21a)の追加に当たっては、仮想空間3aに追加オブジェクトが瞬間的に出現すると違和感を生むので、透明又はほぼ透明な状態(例えば、透明度100%)で当初追加した後に、時間経過とともに徐々に反映元の仮想空間3bにおける標識21bと同じ状態の透明度(例えば、透明度0%)に到達するように制御する。これを反映率の経時制御という。反映率で述べれば、追加当初の透明度100%は反映率0%に相当する。
【0084】
因みに、図2に示す状況において、ゲームサーバシステム1100Gbが、ユーザキャラクタ4fに着目して仮想空間3bに対象範囲40bを設定して反映制御を実行する場合を考える。この場合、対象範囲40bと同じ位置の範囲であるゲームサーバシステム1100Gcが管理する仮想空間3cの対象範囲40cの中に、イベントオブジェクト23が存在するので、イベントオブジェクト23に相当する追加オブジェクトが仮想空間3bに追加されることになる。
【0085】
この追加オブジェクトは、それ以降、ゲームサーバシステム1100Gbが反映制御を繰り返す毎に、仮想空間3cのイベントオブジェクト23の状態が反映される。従って、ユーザキャラクタ4fのユーザは、ユーザキャラクタ4fが配置されていない他の仮想空間3cでのイベントを仮想体験することができる。
【0086】
なお、イベントオブジェクト23に係るイベントが、レイドボスキャラクタを攻略して報酬を得る類いのキャラクタ相互干渉のイベントの場合、ユーザキャラクタ4fも当該イベントに参加する制御をしてもよい。つまり、ユーザキャラクタ4fが、仮想空間3cのイベントオブジェクト23に対応する追加オブジェクトに対して、攻撃行為をしてダメージを与えたならば、そのダメージに応じて報酬を得るとしてもよい。
【0087】
図4は、対象範囲40の設定の一例について説明するための図である。
対象範囲40は、ユーザキャラクタ4の仮想空間3における現在位置P(図4中の黒点)を含むユーザキャラクタ4の視界範囲を表す球形として設定される。球の半径Rは、ユーザキャラクタ4の高度ALTと、視界の距離に影響する環境パラメータ値Fe(例えば、仮想空間の明るさ、霧の有無、雲の中か否か、など)と、を変数とする所定の関数で決定される。
【0088】
具体的には、高度ALTが大きい程、ユーザキャラクタ4の視界範囲は広くなるので、関数を、高度ALTが増加するほど半径Rが大きくなり、ある高度値からはほぼ変わらないように設定すると好適である。また、環境パラメータ値Feが明るさであれば、関数を、環境パラメータ値Feが大きい程に半径Rが増加し、ある明るさ値からはほぼ変わらなくなるように設定すると好適である。なお、半径Rの関数や変数は、これらに限らず適宜設定可能である。
【0089】
なお、対象範囲40の形状や、対象範囲40におけるユーザキャラクタ4の相対位置関係は、図3の例に限らず適宜設定可能である。例えば、対象範囲40の形状は、ユーザキャラクタ4の視線方向を向いた視錐台の形状であってもよい。
【0090】
反映制御を、ユーザキャラクタ4の現在位置Pを基準として決定される対象範囲40に限定して行うことにより、仮想空間3(3a,3b,…)の全体を相互間でつぶさに反映制御する場合よりも、遥かに処理コストが少なくなる。
【0091】
各ユーザキャラクタ4毎に上述のような対象範囲40が決定されて反映制御が行われる。そのため、ユーザがゲーム画面を通じて目にし得る範囲においては、異なる仮想空間3(3a,3b,…)であっても、共通する世界が見えていることとなる。よって、ユーザ全員が同じ1つの世界に居ると思わせることができる。
【0092】
また、運用システム1010は、仮想空間3の間の差異を共通化する処理コストを更に低減するために「反映対象の間引き」「反映周期の間引き」「反映内容の間引き」を行う。
【0093】
図5は、「反映対象の間引き」について説明するための図である。
図5の例では、ユーザキャラクタ4に設定された対象範囲40の中に、2つの小さなオブジェクト24a,24bと、2つの大きなオブジェクト25a,25bがある。小さなオブジェクト24aと大きなオブジェクト25aは、ユーザキャラクタ4との間の相対距離が所定の第1閾値L1以下なので、そのサイズに係わらずこれらのオブジェクトを反映対象のオブジェクトとして認定する。
【0094】
しかし、小さなオブジェクト24bと大きなオブジェクト25bは、ユーザキャラクタ4からの相対距離が第1閾値L1より大きい。小さなオブジェクト24bについては、ユーザキャラクタ4の視界範囲において映るサイズが小さく、反映先と反映元との仮想空間の違いをユーザに認識させるには影響が小さいのでこれを反映対象とはしない。大きなオブジェクト25bについては、ユーザキャラクタ4の視界範囲において映るサイズもそれなりになるので、仮想空間3の違いをユーザに認識させ得る。よって、大きなオブジェクト25bは反映対象のオブジェクトとする。つまり、ユーザキャラクタ4から遠くにあり視界の中に小さくしか現れないオブジェクトを、反映制御の対象から除外・間引きして処理コストの低減を図っている。
【0095】
なお、小さなオブジェクト24a,24bと大きなオブジェクト25a,25bとの区別は、予めオブジェクトのサイズについての閾値を設定して区別することができる。サイズ区分を3区分以上設定してもよく、その場合、相対距離の閾値を2種類用意して、どの区分のオブジェクトを反映オブジェクトとするかの範囲を細かく分ければ、より細かに処理コストの低減を図ることができる。
【0096】
また、オブジェクトの種類によっては、こうしたサイズに基づいて反映対象からの間引きを適用しないとしてもよい。例えば、アイテムなどの場合は、そのサイズの大小にかかわらず反映対象のオブジェクトとする、としてもよい。
【0097】
図6は、「反映周期の間引き」について説明するための図である。
この例では、ユーザキャラクタ4の対象範囲40に、動かないオブジェクトの標識21aと、動くオブジェクトのNPC26と、が例示されている。
【0098】
上述した反映制御を実行するタイミングは、画面表示品質の観点からユーザ端末1500での表示画面のリフレッシュレートと同程度の短周期とするのが好適である。NPC26のように動くオブジェクトの場合は、その動作も滑らかに表現する必要があるし、NPC26が敵キャラクタであれば、ユーザキャラクタ4がダメージを受ける可能性もあるので、リフレッシュレートと同程度の周期で連続的に反映制御を行うべきといえる。
【0099】
対して、標識21aについては、動きの要素が無いので、リフレッシュレートと同程度の周期で処理コストを掛けて連続的に反映制御を行う必要性が低い。例えば、数秒おきに反映制御しても、ユーザが抱く1つの仮想空間としての認識に矛盾を生じさせる可能性が低い。よって、標識21aを対象とする反映制御は、NPC26の反映制御のタイミング周期よりも長い周期で実行する。つまり、NPC26については反映周期の間引きをする。
【0100】
このように、オブジェクトの種類・属性(この場合、動く/動かない)に応じて、当該オブジェクトに係る反映制御を実行するタイミングを違えることで、各タイミングで反映制御の対象とするオブジェクト数を減らし、処理コストの低減を図ることができる。なお、反映周期の間引きは、ゲームサーバシステム1100Gの処理能力が十分に高く、また通信速度も十分なケースでは省略してもよい。
【0101】
図7は、「反映内容の間引き」について説明するための図である。
図7の例では、ユーザキャラクタ4の対象範囲40の中に、反映対象のオブジェクトとして選択された標識21dと標識21eとがある。ユーザキャラクタ4までの相対距離が、所定の第2閾値L2以下となる標識21dについては、当該オブジェクトの状態項目全てを反映元の仮想空間3から反映先の仮想空間3へ反映させる。相対距離が第2閾値L2より大きい標識21eについては、当該オブジェクトの状態項目の一部のみを反映させる。
【0102】
具体的には、標識21dは、ユーザキャラクタ4の近くにあるので、標識21dの本体オブジェクトに付加されている付属オブジェクト(例えば、標識に刺さっているナイフ、とまっているトンボ、など)、細部の彩色が施されたスキン(例えば、汚れ、標識の文字、などもが描かれたスキン)、など状態項目の全てを反映させる。つまり、ディテールまで反映させる。
【0103】
一方、標識21eは、ユーザキャラクタ4から遠くにあり、標識21eはユーザキャラクタ4の視界では小さくしか見えない。よって、標識21eの細部については反映を省略しても、ユーザが抱く1つの仮想空間としての認識に矛盾を生じさせる可能性が低い。よって、標識21eの本体オブジェクトに付加されている付属オブジェクトの反映を省略したり、反映元で適用されているディテール(例えば、標識の内容を示すテキストや汚れなど)を省略し、簡単な配色とする。
【0104】
このように、反映対象とされるオブジェクトの状態を表す情報のうち、幾つかを省略して反映内容を間引きして反映制御を実行することによって、処理コストの低減を図る。すなわち、反映内容の間引きは、反映させる際の表示制御に係る内容を変更しているともいえる。
【0105】
次に、機能構成について説明する。
図8は、ポータルサーバシステム1100Pの機能構成例を示すブロック図である。
ポータルサーバシステム1100Pは、操作入力部100pと、処理部200pと、音出力部390pと、画像表示部392pと、通信部394pと、記憶部500pとを備える。
【0106】
操作入力部100pは、ポータルサーバシステム1100Pの管理のための各種操作を入力するための手段である。例えば、キーボード、タッチパネル、マウス、などがこれに該当する。
【0107】
処理部200pは、例えばCPUやGPU、ASIC、FPGA等の演算回路となるプロセッサの他、ICメモリなどの電子部品によって実現され、操作入力部100pや記憶部500pを含む各機能部との間でデータの入出力制御を行う。そして、所定のプログラムやデータ、操作入力部100pからの操作入力信号、ユーザ端末1500やゲームサーバシステム1100G(1100Ga,1100Gb,…)などから受信したデータ、等に基づいて各種の演算処理を実行して、ポータルサーバシステム1100Pの動作を統合的に制御する。
【0108】
処理部200pは、ユーザ管理部202と、サーバ振り分け制御部204と、課金管理部206と、計時部280pと、音生成部290pと、画像生成部292pと、通信制御部294pとを含む。勿論、これら以外の機能部も適宜含めることができる。
【0109】
ユーザ管理部202は、ユーザ登録手続きに係る処理およびユーザアカウントに紐付けられる各種情報の記憶管理を行う。
【0110】
サーバ振り分け制御部204は、サービスの利用を希望するユーザを、何れかのゲームサーバシステム1100Gへ振り分ける制御を行う。振り分け先のゲームサーバシステム1100Gは、ユーザ毎に固定的に決定することとしてもよいし、ログイン毎に可変的に選択・決定することとしてもよい。また、振り分け先のゲームサーバシステム1100Gを決定する方式は、自動であってもよいし、ユーザの希望に基づいて決定するとしてもよい。
【0111】
課金管理部206は、ゲームシステム1000の利用料や、ゲームで利用可能なアイテム等の購入、などの課金要素の実現に係る各種制御を行う。
【0112】
計時部280pは、システムクロックを利用して現在日時や制限時間等の各種計時を行う。
【0113】
音生成部290pは、音声データの生成やデコードをするICやソフトウェアの実行により実現される。音生成部290pは、生成した音声信号を音出力部390pへ出力する。音出力部390pは、スピーカ等により実現され、音声信号に基づいて放音する。
【0114】
画像生成部292pは、ポータルサーバシステム1100Pのシステム管理のための各種管理画面の画像生成を行い、画像データを画像表示部392pに出力する。画像表示部392pは、フラットパネルディスプレイや、ヘッドマウントディスプレイ、プロジェクターなど、画像を表示させる装置で実現される。
【0115】
通信制御部294pは、データ通信に係るデータ処理を実行し、通信部394pを介して外部装置とのデータのやりとりを実現する。通信部394pは、ネットワーク9と接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現される。図1の例では通信装置1153がこれに該当する。
【0116】
記憶部500pは、処理部200pにポータルサーバシステム1100Pを統合的に制御させるための諸機能を実現するためのプログラムや各種データ等を記憶する。また、記憶部500pは、処理部200pの作業領域として用いられ、処理部200pが各種プログラムに従って実行した演算結果などを一時的に記憶する。この機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD-ROMやDVDなどの光学ディスク、オンラインストレージなどによって実現される。図1の例では本体装置1101が搭載するICメモリ1152やハードディスクなどの記憶媒体がこれに該当する。オンラインストレージを記憶部500pに含めてもよい。
【0117】
記憶部500pは、ポータルサーバプログラム501と、配信用クライアントプログラム502と、課金管理データ509と、ユーザ管理データ510と、ログイン管理データ520と、を記憶する。なお、記憶部500pは、その他のプログラムやデータ(例えばタイマーや、カウンタ、各種フラグ、現在日時、など)も適宜記憶する。
【0118】
ポータルサーバプログラム501は、処理部200pが読み出して実行することで、ポータルサーバシステム1100Pを、ユーザ管理部202、サーバ振り分け制御部204、課金管理部206、などとして機能させるためのプログラムである。
【0119】
配信用クライアントプログラム502は、ユーザ端末1500へ提供されて実行されるクライアントプログラムのオリジナルである。
【0120】
課金管理データ509は、課金に関する各種データを含む。例えば、サービス利用料、アイテム別の料金および在庫情報、などを含む。
【0121】
ユーザ管理データ510は、登録手続を済ませたユーザ別に用意され、ユーザ管理部202により管理される。ユーザ管理データ510は、当該ユーザに係る各種データを格納する。具体的には、ユーザ管理データ510は、ユーザ固有のユーザアカウント511、当該ユーザのゲームプレイ成績に応じて自動的に決定されるプレーヤレベル512、ゲームサーバシステム1100Gのうちどれを利用したかの履歴である利用サーバ履歴データ513、課金履歴データ514、セーブデータ515、などを含む。セーブデータ515には、ユーザキャラクタ設定データ516などが含まれる。
【0122】
ログイン管理データ520は、ゲームシステム1000全体におけるユーザのログイン状況を管理するデータであって、ログインしたユーザ別に作成される。
【0123】
図9は、ゲームサーバシステム1100G(1100Ga,1100Gb,…)の機能構成例を示すブロック図である。ゲームサーバシステム1100Gは、操作入力部100gと、処理部200gと、音出力部390gと、画像表示部392gと、通信部394gと、記憶部500gとを備える。
【0124】
操作入力部100gは、ゲームサーバシステム1100Gの管理のための各種操作を入力するための手段である。例えば、キーボード、タッチパネル、マウス、などがこれに該当する。
【0125】
処理部200gは、例えばCPUやGPU、ASIC、FPGA等の演算回路となるプロセッサの他、ICメモリなどの電子部品によって実現され、操作入力部100gや記憶部500gを含む各機能部との間でデータの入出力制御を行う。そして、所定のプログラムやデータ、操作入力部100gからの操作入力信号、ユーザ端末1500やポータルサーバシステム1100Pなどから受信したデータ、等に基づいて各種の演算処理を実行して、ゲームサーバシステム1100Gの動作を統合的に制御する。
【0126】
処理部200gは、仮想空間管理部220と、計時部280gと、音生成部290gと、画像生成部292gと、通信制御部294gとを含む。勿論、これら以外の機能部も適宜含めることができる。
【0127】
仮想空間管理部220は、仮想空間の構築・管理に係る各種制御を実行する。
具体的には、仮想空間管理部220は、オブジェクト情報管理部222と、利用状況情報更新部224と、反映関係選択部226と、対象範囲設定部228と、反映制御部230と、イベント情報管理部232と、を含む。
【0128】
オブジェクト情報管理部222は、仮想空間3別に表示制御されるオブジェクトの情報であるオブジェクト情報を管理する制御を行う。具体的には、オブジェクト情報管理部222は、オブジェクトに関するユーザキャラクタ4の行為に基づいて、オブジェクト情報を変更する。
【0129】
利用状況情報更新部224は、当該ゲームサーバシステム1100Gの利用状況を表す情報を更新し、また他のゲームサーバシステム1100Gへ当該利用状況を表す情報を提供する(或いは他のゲームサーバシステム1100Gの利用状況を表す情報を取得する)制御を行う。
【0130】
反映関係選択部226は、複数の仮想空間3のなかから、反映元空間および反映先空間を選択する。具体的には、反映関係選択部226は、当該仮想空間に係るユーザの利用状況に基づいて、反映元空間および反映先空間を選択する。つまり、反映関係選択部226は、反映元空間を選択する反映元空間選択部226aと、反映先空間を選択する反映先空間選択部226bとを有する。
【0131】
対象範囲設定部228は、仮想空間3間で共通の範囲として、反映制御の対象とする所与の対象範囲40を設定する。具体的には、対象範囲設定部228は、反映先空間に存在するユーザキャラクタ4の位置に基づいて対象範囲40を設定する(図4参照)。
【0132】
反映制御部230は、オブジェクト情報に基づいて、複数の仮想空間3のうちの反映元空間の対象範囲40内のオブジェクトを、複数の仮想空間3のうちの反映先空間の対象範囲40に反映させて表示制御する反映制御を、所与の反映発動条件が満たされた場合に実行する。
【0133】
また、反映制御部230は、対象範囲40に基づいて選択されたオブジェクトの中から、反映制御の対象を選択する。例えば、反映対象の間引きがこれに該当する(図5参照)。
【0134】
また、反映制御部230は、反映対象とされるオブジェクトの属性に基づいて、反映制御を実行するタイミングを決定する。例えば、反映周期の間引きがこれに該当する(図6参照)。
【0135】
また、反映制御部230は、反映制御の反映内容を可変に決定する。具体的には、反映制御部230は、オブジェクトに係る反映可否情報に基づいて、反映制御の反映内容を可変に決定する。
【0136】
例えば、反映元にはあるが反映先には無い偏在オブジェクトを、反映先に追加オブジェクトとして追加した場合に、その反映率(透明度)を可変に決定することがこれに該当する。また例えば、反映対象とするオブジェクトの状態項目の間引きもこれに該当する(図7参照)。また例えば、反映可否情報を適切に設定することで、反映対象となるオブジェクトを削減して処理コストを低減したり、特定の仮想空間3でのみ出現するオブジェクトを設定することも可能となる。
【0137】
また、反映制御部230は、反映元空間に係るワールドタイムと、反映先空間に係るワールドタイムとに基づいて、反映制御を実行するタイミングを制御する。
【0138】
ここで言う「ワールドタイム」は、仮想空間3(ゲーム世界)における日時である。反映制御部230は、仮想空間3それぞれのワールドタイムにズレがある状況において、反映制御を実行するタイミングを、各仮想空間3のワールドタイム基準に合わせる(例えば各仮想空間3それぞれにおける「正午」のワールドタイムとする)といったことが可能になる。
【0139】
イベント情報管理部232は、当該ゲームサーバシステム1100Gが管理する仮想空間3において発動したイベントに係る情報を記憶・管理する。
【0140】
計時部280gは、システムクロックを利用して現在日時や制限時間等の各種計時を行う。
【0141】
音生成部290gは、音声データの生成やデコードをするICやソフトウェアの実行により実現され、ゲームサーバシステム1100Gのシステム管理や、オンラインゲームの提供に係る操作音や効果音、BGM、音声通話、などの音声データを生成或いはデコードする。そして、システム管理に関する音声信号は音出力部390gへ出力する。音出力部390gは、スピーカ等により実現され、音声信号に基づいて放音する。
【0142】
画像生成部292gは、ゲームサーバシステム1100Gのシステム管理のための各種管理画面の画像生成を行い、画像データを画像表示部392gに出力する。画像表示部392gは、フラットパネルディスプレイや、ヘッドマウントディスプレイ、プロジェクターなど、画像を表示させるデバイスで実現される。
【0143】
また、画像生成部292gは、ゲームプレイに係る画像の生成を行う。例えば、各ユーザ端末1500に表示させる仮想空間3の画像をレンダリングする。
【0144】
通信制御部294gは、通信部394gを介して外部装置とのデータのやりとりを実現する。通信部394gは、ネットワーク9と接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現される。図1の例では通信装置1153がこれに該当する。
【0145】
記憶部500gは、処理部200gにゲームサーバシステム1100Gを統合的に制御させるための諸機能を実現するためのプログラムや各種データ等を記憶する。また、処理部200gの作業領域として用いられ、処理部200gが各種プログラムに従って実行した演算結果などを一時的に記憶する。この機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD-ROMやDVDなどの光学ディスク、オンラインストレージなどによって実現される。図1の例では本体装置1101が搭載するICメモリ1152やハードディスクなどの記憶媒体がこれに該当する。オンラインストレージを記憶部500gに含めてもよい。
【0146】
図10は、ゲームサーバシステム1100Gの記憶部500gが記憶するプログラムやデータの例を示す図である。記憶部500gは、例えば、ゲームサーバプログラム503と、仮想空間初期設定データ530と、当該ゲームサーバシステム1100Gにログインしているユーザを示すログインユーザリスト532と、当該ゲームサーバシステム1100Gの利用状況情報540と、他のゲームサーバシステム1100Gから取得した他利用状況情報540tと、反映関係選択基準データ560と、仮想空間管理データ600と、反映関係設定データ670と、反映制御の実行に係る各種データを一時的に格納する反映制御データ700と、現在日時900と、を記憶する。勿論、これら以外のデータも適宜格納してもよい。
【0147】
ゲームサーバプログラム503は、処理部200gが読み出して実行することで、処理部200gを仮想空間管理部220として機能させるためのプログラムである。
【0148】
仮想空間初期設定データ530は、仮想空間3の初期状態を定義する各種データ、仮想空間3に登場するオブジェクトの種類別にその初期状態および当該オブジェクトを表示・動作制御するために必要な各種データを格納する。本実施形態の仮想空間3はゲーム空間であるから、仮想空間初期設定データ530は、ゲーム初期設定データであるともいえる。ゲームルールに係る各種設定データもここに含まれる。
【0149】
例えば、仮想空間初期設定データ530は、基礎オブジェクト10のデータや背景オブジェクト20のデータを含む。例えば、基礎オブジェクト10については、モデルデータやスキンデータを含む。また、仮想空間3のどの位置にどの種類の基礎オブジェクト10をどの姿勢で配置するかのデータを含む。
【0150】
背景オブジェクト20については、モデルデータ、スキンデータ、動作制御データ、ユーザキャラクタ4の行為によってどのように形態が変更するかの設定データ、などを含む。
【0151】
また、仮想空間初期設定データ530に、初期のユーザキャラクタ4のデータを含ませる場合には、初期のユーザキャラクタ4のモデルデータ、スキンデータ、動作制御データ、初期能力パラメータ値、などを含む。
また、仮想空間初期設定データ530は、アイテムのデータを含む。また、仮想空間初期設定データ530は、仮想空間に登場するNPCに係るモデルデータ、スキンデータ、モーションデータ、初期能力パラメータ値、などを含む。
【0152】
利用状況情報540および他利用状況情報540tは、図11に示すようなデータ構成を有する。具体的には、利用状況情報540は、(1)当該情報がどのゲームサーバシステム1100Gの利用状況を示しているかを示す固有のサーバシステムID541と、(2)サーバシステムID541が示すゲームサーバシステム1100Gが管理する仮想空間3に固有の仮想空間ID543と、(3)仮想空間ID543が示す仮想空間3におけるワールドタイム545と、(4)当該ゲームサーバシステム1100Gにログインしているユーザ数である利用者数547と、(5)現在ログインしているユーザの課金履歴データ514から導かれる課金額合計549と、(6)現在ログインしているユーザの利用サーバ履歴データ513から導かれる利用頻度551と、(7)現在ログインしているユーザのプレーヤレベル512から導かれるユーザレベル分布553と、(8)当該ゲームサーバシステム1100Gのパフォーマンスを表す負荷状況値555と、(9)通信品質パラメータ値557と、を含む。勿論、利用状況情報540には、これら以外の情報も適宜含めることができる。他利用状況情報540tのデータ構成は、利用状況情報540と同様である。
【0153】
負荷状況値555は、例えば、CPUやメモリに係るパフォーマンスパラメータ値の1つ又は複数で記述される。
【0154】
通信品質パラメータ値557は、当該ゲームサーバシステム1100Gと他のゲームサーバシステム1100Gとの間の通信状況の良し悪しを表すパラメータ値である。例えば、通信速度、遅延、パケットロス、などのパラメータ値、およびそれらを変数として求められるパラメータ値、で記述される。
【0155】
図10に戻って、反映関係選択基準データ560は、反映制御に係る仮想空間3の参照関係の設定基準を示すデータであって、様々な状況別に用意される。1つの反映関係選択基準データ560は、例えば、どのような状況において当該基準データが適用されるかを示す適用要件と、適用要件が満たされる状況において反映先の仮想空間3を選択する基準となる反映先設定と、適用要件が満たされる状況において反映元の仮想空間3を選択する基準となる反映元設定と、を含む。
【0156】
適用要件は、複数のサブ条件をANDやORで組み合わせて記述する。そして、サブ条件は、利用状況情報540に含まれる項目のパラメータ値を用いて記述してもよい。
例えば、適用要件に、自機(反映関係を選択しようとするゲームサーバシステム1100G)と他機(他のゲームサーバシステム1100G)との利用者数547の差の範囲を用いて記述されるサブ条件を含めると、利用者数547の差が大きい他機を反映元に含める/含めない、という反映関係の選択が可能になる。また例えば、適用要件に、他機の利用者数547の範囲を設定すると、利用者数547が閾値より大きい他機を反映元に選択する/選択しない、という反映関係の選択が可能になる。
【0157】
勿論、利用者数547に代えて、課金額合計549、利用頻度551、ユーザレベル分布553、負荷状況値555、通信品質パラメータ値557、を用いたサブ条件を設定してもよい。例えば、適用要件に負荷状況値555を用いて記述されるサブ条件を含めれば、負荷状況が高いゲームサーバシステム1100Gは反映元に選択しない、ということが可能になる。また例えば、適用要件に通信品質パラメータ値557を用いて記述されるサブ条件を含めれば、通信状況が不良で通信に時間がかかってしまうゲームサーバシステム1100Gは反映元に選択しない、ということが可能になる。
【0158】
反映先設定は、基本的には自機(反映関係を選択しようとしているゲームサーバシステム1100G)が管理する仮想空間3を示す。反映元設定は、基本的には、適用要件を満たした他機が管理する仮想空間3を示す。
【0159】
仮想空間管理データ600は、当該ゲームサーバシステム1100Gが管理する仮想空間3の最新状態を記述する各種データを格納する。仮想空間管理データ600は、例えば図12に示すように、固有の仮想空間ID601と、ワールドタイム603と、基礎オブジェクト情報605と、背景オブジェクト情報610と、ユーザキャラクタ情報620と、追加オブジェクト情報640と、発動イベント情報650と、を含む。勿論、これら以外のデータも適宜含めることができる。
【0160】
ワールドタイム603は、当該仮想空間3の日時である。基本的には、異なるゲームサーバシステム1100Gの仮想空間3のワールドタイム603は、それぞれの標準時に基づいて時刻合わせされる。標準時に対するズレを意図的に設定して、異なるゲームサーバシステム1100Gの仮想空間3において、ワールドタイム603が異なっていてもよい。
【0161】
基礎オブジェクト情報605は、各仮想空間3の世界観が同じであるとの認識をユーザに抱かせるための基礎をなす基礎オブジェクト10(例えば、仮想空間を作り上げる地理、主要な建造物、など)毎に用意され、その最新状態を記述するパラメータ値(例えば、位置、姿勢、適用されるスキンデータ、動作データの種類、など)を格納する。基礎オブジェクト10の状態は、基本的にはユーザキャラクタ4を介した仮想空間3でのユーザの行為によって変化するものではない。別の言い方をすると、基礎オブジェクト10は反映制御の対象とはされない。
【0162】
背景オブジェクト情報610は、背景オブジェクト20毎に用意され、その最新状態を記述する各種データを格納する。背景オブジェクト情報610は、仮想空間3に新たに配置されると作成され、配置が解除されて消滅すると削除される。1つの背景オブジェクト情報610は、例えば図13に示すように、固有のオブジェクトID611と、オブジェクト種類613と、位置座標615と、オブジェクト状態情報617と、を含む。勿論、これら以外のデータも適宜含めることができる。
【0163】
オブジェクト状態情報617は、当該オブジェクトの状態を表す項目別に用意され、そのオブジェクトに係る最新状態を表すデータが格納されている。項目には、例えば、形態状態と、動作制御状態と、オブジェクトの能力の状態(例えば、キャラクタやアイテムの能力パラメータ値)と、キャラクタとしてのステータス状態と、がある。形態状態とは、当該オブジェクトの見かけに関する状態であり、例えば、他から見える出現状態、他からは見えない消失状態、半透明状態、アイテムや装備などの付加オブジェクトの付属の有無、適用されているスキンの情報、スキンに付加されている追加配色の有無、などがある。ステータス状態とは、例えば、正常や、昏睡・麻痺などの異常、などがある。
【0164】
オブジェクト状態情報617は、関与イベント情報618と、当該オブジェクトに係る反映可否情報619と、を含む。
【0165】
関与イベント情報618は、当該オブジェクトの出現や、状態変化の起源や要因とされるイベントについての情報、例えばイベントIDや発動日時、などである。
【0166】
反映可否情報619は、当該オブジェクトの反映を許可するかしないかの設定を示す。反映可否情報619を「反映不可」にしたオブジェクトについては、他の仮想空間3に反映されなくなる。例えば、アクションRPGにおける敵NPCを、各仮想空間3における独立的なオブジェクトとする構成では、敵NPCのオブジェクトの反映可否情報619を「反映不可」に設定する。また、エフェクトオブジェクトや、会話などの吹き出しオブジェクト、その仮想空間3に参加しているユーザキャラクタ4向けのローカルな情報掲示板(例えば、運営からのお知らせ、注意事項、などの掲示板)などの反映可否情報619も「反映不可」に設定すると好適である。また、仮想空間3毎のオリジナリティをある程度許容する構成では、その仮想空間3に固有のイベントを設定し、そのイベントに係るオブジェクトを「反映不可」に設定するとよい。また例えば、任意設置オブジェクト21のオブジェクト状態情報617には、配置日時を含めても良い。
【0167】
ユーザキャラクタ情報620は、当該ユーザキャラクタ4に係る各種オブジェクトの最新の状態を記述する各種データを格納する。
【0168】
1つのユーザキャラクタ情報620は、例えば図14に示すように、固有のユーザキャラクタID621と、ユーザアカウント623と、位置座標625と、ユーザキャラクタ4のオブジェクト状態情報627(当該ユーザキャラクタのオブジェクト状態情報617に相当)と、を含む。勿論、これら以外のデータも適宜含めることができる。
【0169】
追加オブジェクト情報640は、反映元の仮想空間3に有って、反映先の仮想空間3に無いオブジェクト(偏在オブジェクト)を、反映先の仮想空間3に追加するのにともなって作成される。1つの追加オブジェクト情報640は、固有のオブジェクトID641と、オブジェクト種類643と、位置座標645と、反映元での偏在オブジェクトのオブジェクト状態情報617の写しである反映元オブジェクト状態情報647と、反映率649と、を含む。
【0170】
反映率649は、反映元のオブジェクトを反映先にどの程度表示させるか(=反映させるか)を表す表示制御の割合である。0%で反映無しつまり反映先では見えない状態となり、100%で反映元と同じ状態で表示されることを意味する。本実施形態では反映率649として反透明度を用い、初期値を0%又は数%程度とし、時間経過とともに100%に近づくように更新する。そうすることで、追加オブジェクトが、いきなり反映先の仮想空間3に出現するのではなく、徐々にその姿がはっきりしてくるように表示制御して、追加出現に伴う見え方の違和感を抑制する。なお、反映率649として表示倍率を用いてもよい。
【0171】
図12に戻って、発動イベント情報650は、当該仮想空間3において発動されたイベント毎に作成され、当該イベントに係る各種データを格納する。イベントの履歴データということもできる。例えば、1つの発動イベント情報650は、発動日時、発動したイベントを示すイベントID、発動位置座標、などの情報を含む。勿論、これら以外の情報も適宜含めることができる。例えば、当該イベントの発動に伴い、仮想空間3に追加配置したオブジェクトのオブジェクトIDや位置座標、消去したオブジェクトのオブジェクトID、イベント成績情報、などを含めてもよい。
【0172】
図10に戻って、反映関係設定データ670は、反映関係選択基準データ560に基づいて選択・決定された反映関係の結果を格納する。具体的には、反映関係設定データ670は、反映先空間ID(又は反映先空間を管理するゲームサーバシステム1100Gの識別情報やアクセス情報)と、反映元空間ID(又は反映元空間を管理するゲームサーバシステム1100Gの識別情報やアクセス情報)と、を含む。
【0173】
図16は、ユーザ端末1500の機能構成例を示す機能ブロック図である。ユーザ端末1500は、操作入力部100と、端末処理部200と、音出力部390と、画像表示部392と、通信部394と、端末記憶部500と、を備える。
【0174】
操作入力部100は、ユーザによってなされた各種の操作入力に応じた操作入力信号を端末処理部200に出力する。例えば、プッシュスイッチや、ジョイスティック、タッチパッド、トラックボール、加速度センサ、ジャイロ、などによって実現できる。
【0175】
端末処理部200は、例えばCPUやGPU等のマイクロプロセッサや、ICメモリなどの電子部品によって実現され、操作入力部100や端末記憶部500を含む各機能部との間でデータの入出力制御を行う。そして、所定のプログラムやデータ、操作入力部100からの操作入力信号、ポータルサーバシステム1100Pやゲームサーバシステム1100Gから受信した各種データに基づいて各種の演算処理を実行して、ユーザ端末1500の動作を制御する。
【0176】
端末処理部200は、クライアント制御部260と、計時部280と、音生成部290と、画像生成部292と、通信制御部294と、を有する。
【0177】
クライアント制御部260は、ゲームシステム1000におけるゲームクライアントとしての制御として、ユーザ端末1500をMMIF(マン・マシン・インターフェース)として機能させる各種制御を行う。具体的には、クライアント制御部260は、操作入力情報提供部261と、表示制御部262と、を有する。
【0178】
操作入力情報提供部261は、操作入力部100からの入力に応じて操作入力情報をゲームサーバシステム1100Gへ送信する制御を行う。
【0179】
表示制御部262は、ゲームサーバシステム1100Gから受信したデータに基づいて各種画像を表示させるための制御を行う。
【0180】
計時部280は、システムクロックを利用して現在日時や制限時間等の計時を行う。
【0181】
音生成部290は、例えばデジタルシグナルプロセッサ(DSP)や、音声合成ICなどのプロセッサ、音声ファイルを再生可能なオーディオコーデック等によって実現され、楽曲や効果音、各種操作音の音信号を生成し、音出力部390に出力する。音出力部390は、スピーカなど音生成部290から入力される音信号に基づいて音出力(放音)する装置によって実現される。
【0182】
画像生成部292は、クライアント制御部260の制御に基づく画像を画像表示部392へ表示させる画像信号を生成・出力する。図1の例では、制御基板1550に搭載されるGPU(Graphics Processing Unit)や、グラフィックコントローラ、グラフィックボード、などがこれに該当する。画像表示部392は、フラットパネルディスプレイや、ヘッドマウントディスプレイ、プロジェクターなど、画像を表示させる装置で実現される。
【0183】
通信制御部294は、データ通信に係るデータ処理を実行し、通信部394を介して外部装置とのデータのやりとりを実現する。
【0184】
通信部394は、ネットワーク9と接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現される。図1の例では通信モジュール1553がこれに該当する。
【0185】
端末記憶部500は、端末処理部200に所与の機能を実現させるためのプログラムや、各種データ等を記憶する。また、端末処理部200の作業領域として用いられ、端末処理部200が各種プログラムに従って実行した演算結果や操作入力部100から入力される入力データ等を一時的に記憶する。こうした機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD-ROMやDVDなどの光学ディスクなどによって実現される。図1の例では、制御基板1550が搭載するICメモリ1552がこれに該当する。
【0186】
具体的には、端末記憶部500は、ユーザ端末1500をクライアント制御部260として機能させるためのクライアントプログラム504(アプリケーションプログラム)と、現在日時900と、を記憶する。勿論、これら以外のデータも適宜記憶できる。
【0187】
図17から図19は、ゲームサーバシステム1100Gにおける処理の流れを説明するためのフローチャートである。図3の例に照らして、処理の実行主体をゲームサーバシステムGaとして説明するが、他のゲームサーバシステムGb,Gcも同様の処理を並行的に実行する。当該処理は、所与の周期で繰り返し実行される。
【0188】
図17に示すように、ゲームサーバシステム1100Gaは、当該サーバシステムにログインするユーザのユーザキャラクタ4を、自身が管理する仮想空間3aに配置する(ステップS10)。
【0189】
次に、ゲームサーバシステム1100Gaは、ユーザ端末1500からの操作入力情報に基づいて、当該端末に対応するユーザキャラクタ4(4a,4b,…)のオブジェクトの動作を制御し(ステップS12)、その結果として他のオブジェクト、例えば背景オブジェクト20などの制御を行い(ステップS14)、イベントの発動や発動中のイベントの制御などを行うイベント管理処理を実行する(ステップS16)。つまり、ユーザキャラクタ4の行為に応じて、仮想空間3aに配置されているオブジェクトの状態を変更し、イベントを発動させ、発動したイベントに係るオブジェクトを制御する。よって、ステップS12からステップS16によって、実質的にゲームプレイが進行したことになる。これらのステップにプレイ成績を決定する処理を含めてもよい。
【0190】
次に、ゲームサーバシステム1100Gaは、自機の利用状況情報540(図11参照)を更新し(ステップS20)、他のゲームサーバシステム1100Gbやゲームサーバシステム1100Gcとの間でそれぞれの利用状況情報540を交換し(ステップS22)、他利用状況情報540t(図10参照)を取得して記憶する。
【0191】
次に、ゲームサーバシステム1100Gaは、所与の反映発動条件が満たされているかを判定する(ステップS24)。例えば、反映発動条件は日時条件とすることができる。具体的には、反映発動条件を、特定の日時(通信環境が悪化する時間帯や曜日、特定のイベント開催日時)を除外して設定することができる。また、反映発動条件は、ログインしているユーザすなわち利用者数の条件とすることができる。
【0192】
そして、反映発動条件が満たされたならば(ステップS24のYES)、ゲームサーバシステム1100Gaは、反映制御の準備として反映関係を設定する(ステップS26)。具体的には、反映関係選択基準データ560(図10参照)の中から、適用要件が満たされる基準データを検索し、検索された基準データの反映先設定および反映元設定に基づいて反映先空間および反映元空間を選択して反映関係設定データ670に設定する。
【0193】
次に、ゲームサーバシステム1100Gaは、自身が管理している仮想空間3aに現在配置されているユーザキャラクタ4毎にループA(ステップS40からステップS100;図19参照)を実行する。
【0194】
ループAでは、ゲームサーバシステム1100Gaは、処理対象ユーザキャラクタ(図3の例では、着目するユーザキャラクタ4a)の位置座標に基づいて対象範囲40aを決定し(ステップS42)、反映元空間別にループBを実行する(ステップS44からステップS98;図19)。
【0195】
ループBにおいて、ゲームサーバシステム1100Gaは、ループBの処理対象とされる反映元空間を管理する他のゲームサーバシステム1100Gと通信して、当該反映元空間における対象範囲40(ステップS42で求めた対象範囲40aに相当する範囲)に含まれるオブジェクト(但し、ユーザキャラクタ4、基礎オブジェクト10を除く)のオブジェクト情報(背景オブジェクト情報610、追加オブジェクト情報640)を取得する(ステップS46)。
【0196】
図18に移って、ゲームサーバシステム1100Gaは、取得したオブジェクト状態情報を参照して、自身が管理する仮想空間3aと、ループBの処理対象である反映元空間の仮想空間3とで、同一の存在と見なせるオブジェクトの対応づけを行い、対応付け毎に「オブジェクト対」を設定する(ステップS50)。同一の存在と見なせるオブジェクトを見つける方法は適宜選択可能である。例えば、同種類のオブジェクトで、双方の位置座標のズレが所定の許容範囲内であれば、同一の存在と見なせるオブジェクトと判定してもよい。
【0197】
次にゲームサーバシステム1100Gaは、生成されたオブジェクト対別にループCを実行する(ステップS52からステップS62)。
【0198】
ループCにおいて、ゲームサーバシステム1100Gaは、ループCの処理対象であるオブジェクト対のオブジェクトが、反映周期の間引き対象に該当するかを判定する(ステップS54)。例えば、動かないオブジェクトは間引き対象に該当すると判定し、動くオブジェクトは間引き対象に該当しないと判定する(図6参照)。
【0199】
反映周期の間引き対象に該当しないと判定した場合(ステップS54のNO)、ゲームサーバシステム1100Gaは、反映内容を決定する(ステップS58)。ここで、反映内容の間引きを行う(図7参照)。
【0200】
そして、ステップS46で取得している反映元空間のオブジェクト情報の中から、ループCの処理対象であるオブジェクト対の反映元のオブジェクトのオブジェクト情報を検索し、ループCの処理対象のオブジェクト対の反映先のオブジェクトのオブジェクト情報へ、ステップS58で決定した反映内容を反映させる(ステップS60)。そしてループCを終える(ステップS62)。
【0201】
一方、反映周期の間引き対象に該当すると判定した場合(ステップS54のYES)、ゲームサーバシステム1100Gaは、前回の反映制御から所定時間経過しているかを判定する(ステップS56)。例えば、反映周期の間引き対象に該当するオブジェクトは、現在日時の10秒おきに反映制御すると決めておけば、現在日時900の秒数の1桁が「0」になっていれば、ステップS56は肯定判定とし(ステップS56のYES)、ステップS58~S60を実行する。もし、ステップS56が否定判定されるならば(ステップS56のNO)、今回の制御サイクルでは反映制御をスキップしてループCを終える(ステップS62)。
【0202】
オブジェクト対の全てについてループCを実行したならば、ゲームサーバシステム1100Gaは、反映元空間に有って反映先空間に無い偏在オブジェクトを検索し(ステップS70)、検索された偏在オブジェクトから反映対象の間引きをする(ステップS72;図5参照)。
【0203】
具体的には、ゲームサーバシステム1100Gaは、検索された偏在オブジェクト毎にループBの処理対象のユーザキャラクタ4との相対距離を求め、相対距離が第1閾値L1を超える範囲の偏在オブジェクトについては、そのサイズが基準以下のオブジェクトを検索結果から除外する。つまり、相対距離とサイズに基づく反映対象の間引きをする。更に、ゲームサーバシステム1100Gaは、除外後に残っている偏在オブジェクトそれぞれの反映可否情報619を参照し、当該情報が「反映不可」に設定されているオブジェクトを、更に検索結果から除外する。つまり、オブジェクトの属性に基づいて反映対象の間引きをする。こうして検索結果から間引かれずに残った偏在オブジェクトが、反映対象オブジェクトとされる。
【0204】
図19に移って、次にゲームサーバシステム1100Gaは、ループBの処理対象である反映元空間のワールドタイムに対して、反映先空間のワールドタイムが遅れているかを判定する(ステップS74)。
【0205】
もし、遅れていなければ(ステップS74のNO)、ゲームサーバシステム1100Gaは、検索結果から間引かれずに残った偏在オブジェクト(反映対象となるオブジェクト)毎にループDを実行する(ステップS80からステップS86)。
【0206】
ループDにおいて、ゲームサーバシステム1100Gaは、ループDの処理対象である偏在オブジェクトについて反映内容を決定し(ステップS82)、当該偏在オブジェクトを、新たな追加オブジェクトとして反映先空間へ追加配置し(ステップS84)、ループDを終える(ステップS86)。ステップS84に伴い、反映先空間の仮想空間管理データ600(図12参照)に、新たに追加オブジェクト情報640が作成される。
【0207】
ゲームサーバシステム1100Gaは、ステップS72を経て検索結果から間引かれずに残った偏在オブジェクト(反映対象となるオブジェクト)の全てについてループDを実行したならば、反映先空間に有って反映元空間に無い追加オブジェクトを検索して反映先空間から消去し(ステップS96)、ループBを終える(ステップS98)。
【0208】
ステップS96によって、追加オブジェクトの起源となった反映元空間のオブジェクトが、何らかの理由で反映元空間から消去された場合に、それを反映先空間からも消去する。ステップS96は、背景オブジェクト20についても実行されるので、反映元空間で消去された背景オブジェクト20が反映先空間からも消去されることになる。
【0209】
一方、ループBの処理対象である反映元空間のワールドタイムに対して、反映先空間のワールドタイムが遅れている場合には(ステップS74のYES)、ゲームサーバシステム1100Gaは、検索結果から間引かれずに残った偏在オブジェクトの遅延配置予約を設定する(ステップS90)。具体的には、偏在オブジェクトのオブジェクトIDと、現在日時900にステップS74で判明した遅れ分を加算した予約時刻とを対応づけて記憶した遅延配置予約の情報として記憶する。
【0210】
そして、過去に設定された遅延配置予約の予約情報を参照し、現在日時900にその予約時刻が達した偏在オブジェクトを、反映先空間への追加オブジェクトとして追加配置し(ステップS92)、ステップS96を実行した後、ループBを終了する(ステップS98)。
【0211】
反映元空間の全てについてループBを実行したならば、ゲームサーバシステム1100Gaは、ループAを終了する(ステップS100)。
【0212】
そして、全てのユーザキャラクタ4についてループAを実行したならば、各ユーザ端末1500にて仮想空間3の画像を表示させる制御を実行する(ステップS110)。すなわち、各ユーザキャラクタ4の位置に基づいて決定される仮想カメラで仮想空間3の様子を撮影した画像(仮想空間画像)をレンダリングする。そこには、すでに反映元のオブジェクトの状態の一部又は全部が反映された背景オブジェクト20および追加オブジェクトが仮想カメラで撮影されることになる。
【0213】
仮想空間画像に基づくゲーム画面には、他の仮想空間3で起きたローカル事象の結果も反映されている。つまり、仮想空間3の全域について反映制御を行わずとも、それよりも遥かに少ない処理コストで、ユーザに共通の仮想世界でプレイしているかのように認識させることができる。
【0214】
表示制御を実行したならば、ゲームサーバシステム1100Gaは、全ての追加オブジェクトの反映率649を所与の割合(又は所与の値)分だけアップするように変更する(ステップS112)。
【0215】
次に、ゲームサーバシステム1100Gaは、ログアウトしたユーザのユーザキャラクタ4を仮想空間3aから配置解除・削除する(ステップS116)。
【0216】
以上、本実施形態によれば、多人数参加型のゲームにおいてログイン先のサーバ毎に管理される複数の仮想空間の相互の状態を反映して共通化することが可能となる。その際、反映制御を対象範囲に限定することで、反映制御に係る処理コストを低減することができる。
【0217】
〔変形例〕
以上、本発明を適用した実施形態の一例について説明したが、本発明を適用可能な形態は上記形態に限定されるものではなく適宜構成要素の追加・省略・変更を施すことができる。
【0218】
(変形例その1)
例えば、上記実施形態では、ゲームサーバシステム1100Gが各ユーザ端末1500に表示する画像(ゲーム画像)を生成することとして説明したが、画像生成は各ユーザ端末1500が実行することとしてもよい。その場合、各ユーザ端末1500がレンダリングを行うため、レンダリングのために必要なデータをゲームサーバシステム1100Gがユーザ端末1500に送信すればよい。
【0219】
(変形例その2)
また、オブジェクト状態情報617(図13参照)に含める情報は、上記実施形態以外にも適宜設定可能である。
例えば、仮想空間3の商店における商品オブジェクトの場合、商品に関する情報、例えば、商品種類・価格・消費期限などをオブジェクト状態情報617に含めてもよい。当該構成を採用すると、複数の仮想空間3(3a,3b,…)の所定位置に外観が同じ花屋が配置されていて、仮想空間3(3a,3b,…)別に異なる花の商品オブジェクトが販売されているケースでは、反映先の仮想空間3の花屋で売っている商品種類・価格・消費期限などへ、反映元の他の仮想空間の花屋で売っている商品種類・価格・消費期限などを反映することができる。
【0220】
また例えば、オブジェクトがアイテムの場合、アイテムに関する情報、例えば、作用効果を示す能力パラメータの種類、当該能力パラメータの値、能力発動の際に発動される演出表示やイベントの種類、適用されるスキンの種類、消費期限、などをオブジェクト状態情報617に含めてもよい。当該構成を採用すると、複数の仮想空間3(3a,3b,…)の所定位置に同じアイテムオブジェクトが配置されているケースでは、反映元の他の仮想空間に配置されている当該アイテムオブジェクトの状態を、反映先の仮想空間3に配置されている当該アイテムオブジェクトへ反映することができる。
【0221】
(変形例その3)
また、反映関係選択基準データ560(図10参照)の適用要件は、上記実施例に限らず適宜設定可能である。例えば、適用要件としてイベントの発動を用いることもできる。その場合、予めイベント別に設定されている固有のイベントIDを適用要件の一部に含め、当該イベントIDの発動が適用要件の一部を成すようにするとよい。
【0222】
例えば、適用要件として「自機(反映関係を選択しようとするゲームサーバシステム1100G)で管理する仮想空間3における特定イベントの発動」をサブ条件の1つに含めた上で、自機で管理する仮想空間3を反映先として、他の仮想空間3を反映元とする、反映関係選択基準データ560を用意することができる。
【0223】
この場合、仮想空間3bを管理するゲームサーバシステム1100Gbは、反映関係選択基準データ560の適用要件が満たされると、他の仮想空間3aの状態を自機の仮想空間3bに反映させることとなる。例えば、仮想空間3bにおいて魔法の湖が出現・配置されるイベントが発動した場合、それを契機として、他の仮想空間3aの状態を仮想空間3bに反映させることできる。
【0224】
更に、反映関係選択基準データ560の適用要件に、イベントの発動或いはイベントの発動タイミングをサブ条件として含めてもよい。
【0225】
具体的には、反映関係選択基準データ560の適用要件を、(1)同じイベントが発動したことを表す当該イベントのイベントIDについての第1サブ条件と、(2)同時期条件を満たす時間差の範囲を示す第2サブ条件と、(3)当該イベントが発動されるべき複数のゲームサーバシステム1100Gの組合せを示す第3サブ条件、をANDで組み合わせて記述する。
【0226】
この場合、反映関係選択基準データ560は、第3サブ条件が示す複数のゲームサーバシステム1100Gにて、第1サブ条件が示す同じイベントIDのイベントが、第2サブ条件が示す時間差で発動した場合の、反映先の仮想空間と反映元の仮想空間とを設定する基準データとなる。
【0227】
また、反映関係選択基準データ560の適用要件を、(1)異なるイベントが発動したことを表す当該異なるイベントそれぞれのイベントIDについての第1サブ条件と、(2)同時期条件を満たす時間差の範囲を示す第2サブ条件と、(3)当該イベントが発動されるべき複数のゲームサーバシステム1100Gの組合せを示す第3サブ条件、をANDで組み合わせて記述することもできる。
【0228】
この場合、反映関係選択基準データ560は、第3サブ条件が示す複数のゲームサーバシステム1100Gにて、第1サブ条件が示す異なるイベントIDのイベントが、第2サブ条件が示す時間差で発動した場合の、反映先の仮想空間と反映元の仮想空間とを設定する基準データとなる。
【0229】
更に、利用状況情報540に含まれる項目のパラメータ値を用いて、第3サブ条件で示すゲームサーバシステム1100Gが管理する仮想空間3それぞれの状況についての条件を記述した第4サブ条件を反映関係選択基準データ560の適用要件に含めるとしてもよい。この場合の反映関係選択基準データ560は、第1サブ条件から第3サブ条件を満たしたゲームサーバシステム1100Gの仮想空間3(3a,3b,…)のそれぞれの状況に応じて、反映先の仮想空間と反映元の仮想空間とを設定する基準データとなる。
【0230】
こうしたイベントの発動を切っ掛けとして様々な反映関係を用意することで、同じ世界観に設定された複数の仮想空間3(3a,3b,…)について、処理コストを抑制しながら仮想空間3別に生じる差異を共通化しつつも、イベントについて反映先の仮想空間・反映元の仮想空間の関係を多様に設定することができる。
【0231】
なお、イベントとしては、上記実施形態で説明した例以外に、特定アイテムの使用や、特定魔法の使用、などをイベントとみなしてもよい。
【0232】
(変形例その4)
また、利用状況情報540(図11参照)に、仮想空間ID543が示す仮想空間3にて発動したイベントの固有識別情報(イベントID)を含める構成も可能である。
【0233】
当該構成を採用し、反映関係選択基準データ560(図10参照)の適用要件として、「他利用状況情報540tにイベントIDが含まれる」ことをサブ条件に含めた上で、当該他利用状況情報540tの仮想空間ID543が示す仮想空間3を反映元とし、自機の仮想空間3を反映先とする、反映関係選択基準データ560を用意することができる。この場合、他利用状況情報540tの仮想空間ID543が示す仮想空間3で発動したイベントの状態を、自機の仮想空間3に反映させることが可能になる。
【0234】
具体的には、例えば、仮想空間3bを管理するゲームサーバシステム1100Gbは、他利用状況情報540tの送信元である仮想空間3aにて特定のダンスイベントが発生した場合に、当該仮想空間3aを反映元とし、反映先である自機の仮想空間3bでも当該ダンスイベントに係るオブジェクトを追加させる。仮に、反映元の仮想空間3aにおいて、あるユーザキャラクタ4がイベントキャラクタに石をぶつけて、当該イベントキャラクタが痛がる動作をしたとすると、仮想空間3bを管理するゲームサーバシステム1100Gbは、自機の仮想空間3bにおける同じイベントキャラクタにも同じように痛がらせる動作をさせることができる。
【符号の説明】
【0235】
3…仮想空間
4…ユーザキャラクタ
10…基礎オブジェクト
20…背景オブジェクト
21…任意設置オブジェクト
40…対象範囲
200g…処理部
200p…処理部
202…ユーザ管理部
220…仮想空間管理部
222…オブジェクト情報管理部
224…利用状況情報更新部
226…反映関係選択部
228…対象範囲設定部
230…反映制御部
501…ポータルサーバプログラム
503…ゲームサーバプログラム
510…ユーザ管理データ
530…仮想空間初期設定データ
540…利用状況情報
560…反映関係選択基準データ
600…仮想空間管理データ
603…ワールドタイム
605…基礎オブジェクト情報
610…背景オブジェクト情報
617…オブジェクト状態情報
619…反映可否情報
620…ユーザキャラクタ情報
625…位置座標
640…追加オブジェクト情報
649…反映率
670…反映関係設定データ
700…反映制御データ
1000…ゲームシステム
1010…運用システム
1100…運用システム
1100G…ゲームサーバシステム
1100P…ポータルサーバシステム
1500…ユーザ端末
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19