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

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

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

特開2023-51598プログラム、コンピュータシステムおよびゲームマップ生成方法
<>
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図1
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図2
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図3
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図4
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図5
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図6
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図7
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図8
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図9
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図10
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図11
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図12
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図13
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図14
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図15
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図16
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図17
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図18
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図19
  • 特開-プログラム、コンピュータシステムおよびゲームマップ生成方法 図20
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023051598
(43)【公開日】2023-04-11
(54)【発明の名称】プログラム、コンピュータシステムおよびゲームマップ生成方法
(51)【国際特許分類】
   A63F 13/655 20140101AFI20230404BHJP
   A63F 13/213 20140101ALI20230404BHJP
   A63F 13/79 20140101ALI20230404BHJP
   A63F 13/58 20140101ALI20230404BHJP
   A63F 13/67 20140101ALI20230404BHJP
【FI】
A63F13/655
A63F13/213
A63F13/79
A63F13/58
A63F13/67
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2021162415
(22)【出願日】2021-09-30
(71)【出願人】
【識別番号】000134855
【氏名又は名称】株式会社バンダイナムコエンターテインメント
(74)【代理人】
【識別番号】100124682
【弁理士】
【氏名又は名称】黒田 泰
(74)【代理人】
【識別番号】100104710
【弁理士】
【氏名又は名称】竹腰 昇
(74)【代理人】
【識別番号】100090479
【弁理士】
【氏名又は名称】井上 一
(72)【発明者】
【氏名】會津 卓也
(72)【発明者】
【氏名】河内 厚典
(72)【発明者】
【氏名】宍戸 哲広
(72)【発明者】
【氏名】吉岡 一
(72)【発明者】
【氏名】塚中 健介
(57)【要約】
【課題】移動体オブジェクトが移動するゲームに用いるゲームマップを、画像を元に生成する技術であって、適切なゲームマップを生成可能とする技術を提供すること。
【解決手段】マップ要素が配置されたゲームマップ中を移動体オブジェクトが移動するゲームに用いるゲームマップをコンピュータシステムに生成させる。その際、所与のマップ生成用画像を取得し、記マップ要素の配置構成の下地とする画像部分をマップ生成用画像から抽出する所定の画像解析処理を行う。そして、抽出結果を用いて取捨選択したマップ要素の配置構成を決定することでゲームマップを生成する。
【選択図】図2
【特許請求の範囲】
【請求項1】
マップ要素が配置されたゲームマップ中を移動体オブジェクトが移動するゲームに用いる前記ゲームマップをコンピュータシステムに生成させるためのプログラムであって、
所与のマップ生成用画像を取得する画像取得手段、
前記マップ要素の配置構成の下地とする画像部分を前記マップ生成用画像から抽出する所定の画像解析処理を行い、抽出結果を用いて取捨選択した前記マップ要素の配置構成を決定することで前記ゲームマップを生成するゲームマップ生成制御手段、
として前記コンピュータシステムを機能させるためのプログラム。
【請求項2】
前記ゲームマップ生成制御手段は、
前記画像解析処理の処理結果に基づいて、ゲームプレイに不適切な配置構成の条件である所与の不適切条件を満たす箇所を検索する検索手段と、
前記マップ要素の配置構成を前記画像解析処理の処理結果に基づいて決定する配置構成決定処理を、前記検索手段の検索結果を参照して実行することで前記マップ要素の配置構成を決定して前記ゲームマップを生成する生成制御手段と、
を有する、
請求項1に記載のプログラム。
【請求項3】
前記ゲームマップ生成制御手段は、
前記抽出された画像部分に対応する前記マップ要素を編集する編集手段、
を有する、
請求項2に記載のプログラム。
【請求項4】
前記編集手段は、前記抽出された画像部分に対応する前記マップ要素を、前記検索手段の検索結果に基づいて編集する、
請求項3に記載のプログラム。
【請求項5】
前記ゲームマップには、前記移動体オブジェクトの移動目標が設定され、
前記検索手段は、前記抽出された画像部分に対応する前記マップ要素のうち、前記移動目標への前記移動体オブジェクトの移動を阻害する箇所を検索する、
請求項4に記載のプログラム。
【請求項6】
前記検索手段は、前記抽出された画像部分に対応する前記マップ要素のうちの冗長箇所を検索する、
請求項4又は5に記載のプログラム。
【請求項7】
前記編集手段は、ユーザのプレイ情報に基づいて前記編集を行う、
請求項3から6の何れか一項に記載のプログラム。
【請求項8】
前記編集手段は、前記移動体オブジェクトのパラメータ値に基づいて前記編集を行う、
請求項3から7の何れか一項に記載のプログラム。
【請求項9】
前記編集手段は、当該ゲームマップの攻略難易度、当該ゲームのプレイ人数、及び、当該ゲームのゲーム種別、のうちの何れかに基づいて前記編集を行う、
請求項3から8の何れか一項に記載のプログラム。
【請求項10】
前記編集手段は、配置する前記マップ要素の量を調整するように前記編集を行う、
請求項3から9の何れか一項に記載のプログラム。
【請求項11】
前記ゲームマップ生成制御手段は、
前記画像解析処理を行って前記マップ要素の仮の配置構成を作成する仮作成手段、
を有し、
前記検索手段は、前記仮の配置構成において前記所与の不適切条件を満たす箇所を検索し、
前記生成制御手段は、前記マップ要素の配置構成を前記仮の配置構成に基づいて決定することで前記配置構成決定処理を実行する、
請求項2から10の何れか一項に記載のプログラム。
【請求項12】
前記仮作成手段は、
前記画像解析処理に用いるパラメータ値を前記検索手段の検索結果に基づいて変更して、前記仮の配置構成を再作成する第1再作成手段、
を有する、
請求項11に記載のプログラム。
【請求項13】
前記仮作成手段は、
前記マップ生成用画像から所与の画像範囲を前記検索手段の検索結果に基づいて選択し、当該画像範囲から前記抽出を行って前記仮の配置構成を再作成する第2再作成手段、
を有する、
請求項11又は12に記載のプログラム。
【請求項14】
前記仮作成手段は、
前記マップ生成用画像を前記検索手段の検索結果に基づいて補正した上で前記画像解析処理を行って前記仮の配置構成を再作成する第3再作成手段、
を有する、
請求項11から13の何れか一項に記載のプログラム。
【請求項15】
前記仮作成手段は、
前記抽出した画像部分を前記検索手段の検索結果に基づいて複製配置して前記仮の配置構成を再作成する第4再作成手段、
を有する、
請求項11から14の何れか一項に記載のプログラム。
【請求項16】
前記検索手段の検索結果をユーザに通知する制御を行う検索結果通知制御手段、
として前記コンピュータシステムを更に機能させるための請求項1から15の何れか一項に記載のプログラム。
【請求項17】
マップ要素が配置されたゲームマップ中を移動体オブジェクトが移動するゲームに用いる前記ゲームマップを生成するコンピュータシステムであって、
所与のマップ生成用画像を取得する画像取得手段と、
前記マップ要素の配置構成の下地とする画像部分を前記マップ生成用画像から抽出する所定の画像解析処理を行い、抽出結果を用いて取捨選択した前記マップ要素の配置構成を決定することで前記ゲームマップを生成するゲームマップ生成制御手段と、
を備えるコンピュータシステム。
【請求項18】
マップ要素が配置されたゲームマップ中を移動体オブジェクトが移動するゲームに用いる前記ゲームマップをコンピュータシステムが生成するためのゲームマップ生成方法であって、
所与のマップ生成用画像を取得することと、
前記マップ要素の配置構成の下地とする画像部分を前記マップ生成用画像から抽出する所定の画像解析処理を行い、抽出結果を用いて取捨選択した前記マップ要素の配置構成を決定することで前記ゲームマップを生成することと、
を含むゲームマップ生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームマップをコンピュータシステムに生成させるためのプログラム等に関する。
【背景技術】
【0002】
ビデオゲームにおけるゲームマップは、プレーヤが操作する移動体オブジェクト(例えば、プレーヤキャラクタ、NPC(Non-Player Character)、動く背景物など)を移動させるための領域を定義する必須要素である。ゲームマップには、複数のマップ要素が配置される。マップ要素は、ゲーム内容に応じてその役割が変わるが、例えば、移動体オブジェクトが移動するための足場や、移動範囲を制限する障壁、などの役割を担う。そして、マップ要素そのものや、マップ要素の配置は、ゲームマップを使ってプレイしたときの面白さを左右する要因の1つといっても過言ではない。
【0003】
ゲームマップにおけるマップ要素の配置は、ゲームメーカが攻略難易度を考慮して決定する場合が多いが、カメラ等で実世界を撮影した画像を元にして作成する技術もある。
【0004】
例えば、特許文献1には、読み込んだ画像の輝度情報を用いてゲームマップを生成する技術が開示されている。具体的には、ピクセルの輝度情報に基づいて画像を二値化処理し、予め区分された領域(グリッド)毎に二値化処理された1又は0を使ってマップピースを配置することでゲームマップを生成する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2013-59546号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記の様な従来技術で作成されたゲームマップは、マップ要素の配置がゲームマップとして不適切な配置になることが十分考えられる。
【0007】
例えば、マップ要素が、移動体キャラクタが移動するための足場としての役割を担うゲームの場合を考える。マップ要素の配置密度が高すぎる過密状態のゲームマップになると、移動体オブジェクトが自由に移動できるスペースが少なくなり、プレイしても面白くない不適切なゲームマップになることが考えられる。また、マップ要素の配置密度が少なすぎるスカスカ状態のゲームマップになると、移動体オブジェクトの移動できるルートが単純に過ぎてプレイしても面白くなかったり、移動するルートが途切れて移動目標位置までたどり着けないといったことが考えられる。
【0008】
本発明が解決しようとする課題は、移動体オブジェクトが移動するゲームに用いるゲームマップを、画像を元に生成する技術であって、適切なゲームマップを生成可能とする技術を提供すること、である。
【課題を解決するための手段】
【0009】
上記した課題を解決するための第1の発明は、マップ要素が配置されたゲームマップ中を移動体オブジェクトが移動するゲームに用いる前記ゲームマップをコンピュータシステムに生成させるためのプログラムであって、
所与のマップ生成用画像を取得する画像取得手段(例えば、図12のサーバ処理部200s、画像取得部212、図14のマップ生成用画像データ613、図17のステップS12)、
前記マップ要素の配置構成の下地とする画像部分を前記マップ生成用画像から抽出する所定の画像解析処理を行い、抽出結果を用いて取捨選択した前記マップ要素の配置構成を決定することで前記ゲームマップを生成するゲームマップ生成制御手段(例えば、図12のサーバ処理部200s、ゲームマップ生成制御部214、図15のユーザ作成ゲームマップデータ640、図17のステップS40から図18のステップS128)、
として前記コンピュータシステムを機能させるためのプログラムである。
【0010】
また、 第2の発明は、前記ゲームマップ生成制御手段が、
前記画像解析処理の処理結果に基づいて、ゲームプレイに不適切な配置構成の条件である所与の不適切条件を満たす箇所を検索する検索手段(例えば、図12のサーバ処理部200s、仮作成部220、図14の仮配置構成データ632、図17のステップS40)と、
前記マップ要素の配置構成を前記画像解析処理の処理結果に基づいて決定する配置構成決定処理を、前記検索手段の検索結果を参照して実行することで前記マップ要素の配置構成を決定して前記ゲームマップを生成する生成制御手段(例えば、図12のサーバ処理部200s、生成制御部240、図15のユーザ作成ゲームマップデータ640、図18のステップS128)と、
を有する、第1の発明のプログラムである。
【0011】
「マップ生成用画像」は、例えば、実世界を撮影した画像でもよいし、3DCG(3-Dimensions Computer Graphics)の画像であってもよい。複数の画像が合成された画像や、複数の画像が一体的に連結・接続された画像であってもよい。その場合、合成・連結・接続される画像は、元の画像の部分であってもよい。
【0012】
第1又は第2の発明によれば、コンピュータシステムは、マップ生成用画像を画像処理した結果に基づいてマップ要素の配置構成を決定してゲームマップを生成することができる。よって、移動体オブジェクトが移動するゲームに用いるゲームマップを、画像を元に生成する技術であって、適切なゲームマップを生成する技術を提供することができる。
【0013】
第3の発明は、前記ゲームマップ生成制御手段が、前記抽出された画像部分に対応する前記マップ要素を編集する編集手段(例えば、図12のサーバ処理部200s、編集部242、図18のステップS124)、を有する、第2の発明のプログラムである。
【0014】
また、第4の発明は、前記編集手段が、前記抽出された画像部分に対応する前記マップ要素を、前記検索手段の検索結果に基づいて編集する、第3の発明のプログラムである。
【0015】
第3又は第4の発明によれば、コンピュータシステムは、抽出された画像部分に対応するマップ要素を編集できる。
【0016】
第5の発明は、前記ゲームマップには、前記移動体オブジェクトの移動目標が設定され、前記検索手段は、前記抽出された画像部分に対応する前記マップ要素のうち、前記移動目標への前記移動体オブジェクトの移動を阻害する箇所(例えば、図9における不適切箇所とされるゲームマップ6を横断する列状の密集)を検索する、第4の発明のプログラムである。
【0017】
第5の発明によれば、コンピュータシステムは、移動体オブジェクトを移動目標に移動させることを目的の1つとしたゲームにとって適切なゲームマップを生成できる。
【0018】
第6の発明は、前記検索手段が、前記抽出された画像部分に対応する前記マップ要素のうちの冗長箇所(例えば、図7における不適切箇所とされる塊状の密集)を検索する、第4又は第5の発明のプログラムである。
【0019】
第6の発明によれば、コンピュータシステムは、マップ要素の冗長箇所、例えばマップ要素が密集或いは囲いを形成することで移動体オブジェクトが進入できないようなデッドスペースをゲームマップ内に生じせている箇所や、ゲームマップの外枠との間に移動体オブジェクトが進入できないようなデッドスペースを作っているマップ要素の配列箇所、などを検索できる。
【0020】
第7の発明は、前記編集手段が、ユーザのプレイ情報に基づいて前記編集を行う、第3から第6の何れかの発明のプログラムである。
【0021】
「プレイ情報」は、ユーザによるゲームプレイした履歴、ゲームプレイの過去の成績、使用するプレーヤキャラクタ(プレーヤが操作する移動体オブジェクト)の種類、所有しているアイテムの種類や数、などである。
【0022】
第7の発明によれば、コンピュータシステムは、ユーザのプレイ情報に基づいて編集できる。
【0023】
第8の発明は、前記編集手段が、前記移動体オブジェクトのパラメータ値に基づいて前記編集を行う、第3から第7の何れかの発明のプログラムである。
【0024】
第8の発明によれば、コンピュータシステムは、移動体オブジェクトのパラメータ値に基づいて編集できる。
【0025】
第9の発明は、前記編集手段が、当該ゲームマップの攻略難易度、当該ゲームのプレイ人数、及び、当該ゲームのゲーム種別、のうちの何れかに基づいて前記編集を行う、第3から第8の何れかの発明のプログラムである。
【0026】
「ゲーム種別」は、移動体オブジェクトを使ってどのようなプレイをするかや、ゲームプレイの目的、に着目した分類である。ゲームの種別としては、例えば(1)ゲームマップ内の移動開始位置から移動目標位置まで、マップ要素を足場として移動体オブジェクトが移動可能なアクションゲームやパズルゲーム、(2)移動体オブジェクトをできるだけマップ要素に接触させないようにしながらゲームマップ内の移動開始位置から移動目標位置まで移動させる所要時間を競うレースゲーム、(3)物理法則又は擬似物理法則に則って移動制御される移動オブジェクトを、マップ要素に着地させるように投擲・投射・打ち出しすることを繰り返して、移動開始位置から移動目標位置まで移動させるゲームであって投擲・投射・打ち出しの回数を競うゲーム、などのゲームジャンルもこれに該当する。
【0027】
第9の発明によれば、コンピュータシステムは、ゲームマップの攻略難易度、当該ゲームのプレイ人数、及び、当該ゲームのゲーム種別、のうちの何れかに基づいて編集できる。
【0028】
第10の発明は、前記編集手段が、配置する前記マップ要素の量を調整するように前記編集を行う、第3から第9の何れかの発明のプログラムである。
【0029】
第10の発明によれば、コンピュータシステムは、マップ要素の量を増減できる。
【0030】
第11の発明は、前記ゲームマップ生成制御手段が、前記画像解析処理を行って前記マップ要素の仮の配置構成を作成する仮作成手段(例えば、図12のサーバ処理部200s、仮作成部220、図14の仮配置構成データ632、図17のステップS40)、を有し、前記検索手段は、前記仮の配置構成において前記所与の不適切条件を満たす箇所を検索し、前記生成制御手段は、前記マップ要素の配置構成を前記仮の配置構成に基づいて決定することで前記配置構成決定処理を実行する、第2から第10の何れかの発明のプログラムである。
【0031】
第11の発明によれば、コンピュータシステムは、マップ生成用画像を画像解析処理した結果に基づいてマップ要素の仮の配置構成を決定し、仮の配置構成の中から、ゲームプレイに不適切な箇所を検索する。そして、検索件結果を参照して仮の配置構成から最終的な配置構成を決定してゲームマップを生成することができる。よって、移動体オブジェクトが移動するゲームに用いるゲームマップを、画像を元に生成する技術であって、適切なゲームマップを生成する技術を提供することができる。
【0032】
第12の発明は、前記仮作成手段が、前記画像解析処理に用いるパラメータ値を前記検索手段の検索結果に基づいて変更して、前記仮の配置構成を再作成する第1再作成手段(例えば、図12の第1再作成部221、図18のステップS102からステップS104への処理の流れ)、を有する、第11の発明のプログラムである。
【0033】
第12の発明によれば、コンピュータシステムは、画像解析処理に用いるパラメータ値を変更して仮の配置構成を再作成できる。
【0034】
第13の発明は、前記仮作成手段が、前記マップ生成用画像から所与の画像範囲を前記検索手段の検索結果に基づいて選択し、当該画像範囲から前記抽出を行って前記仮の配置構成を再作成する第2再作成手段(例えば、図12の第2再作成部222、図18のステップS110からステップS112への処理の流れ)、を有する、第11又は第12の発明のプログラムである。
【0035】
第13の発明によれば、コンピュータシステムは、仮の配置構成を作成するためにマップ生成用画像を画像解析処理する画像範囲を変更して仮の配置構成を再作成できる。
【0036】
第14の発明は、前記仮作成手段が、前記マップ生成用画像を前記検索手段の検索結果に基づいて補正した上で前記画像解析処理を行って前記仮の配置構成を再作成する第3再作成手段(例えば、図12の第3再作成部223、図18のステップS106からステップS108への処理の流れ)、を有する、第11から第13の何れかの発明のプログラムである。
【0037】
第14の発明によれば、コンピュータシステムは、マップ生成用画像を補正して仮の配置構成を再作成できる。
【0038】
第15の発明は、前記仮作成手段が、前記抽出した画像部分を前記検索手段の検索結果に基づいて複製配置して前記仮の配置構成を再作成する第4再作成手段(例えば、図12の第4再作成部224、図18のステップS114からステップS116への処理の流れ)、を有する、第11から第14の何れかの発明のプログラムである。
【0039】
第15の発明によれば、コンピュータシステムは、マップ要素を配置する下地となる画像部分を複製配置して仮の配置構成を再作成できる。
【0040】
第16の発明は、前記検索手段の検索結果をユーザに通知する制御を行う検索結果通知制御手段(例えば、図12のサーバ処理部200s、検索結果通知制御部232、図17のステップS62)、として前記コンピュータシステムを更に機能させるための第1から第15の何れかの発明のプログラムである。
【0041】
第16の発明によれば、コンピュータシステムは、仮の配置構成の中のゲームプレイに不適切な箇所をユーザに通知できる。
【0042】
第17の発明は、マップ要素が配置されたゲームマップ中を移動体オブジェクトが移動するゲームに用いる前記ゲームマップを生成するコンピュータシステムであって、所与のマップ生成用画像を取得する画像取得手段と、前記マップ要素の配置構成の下地とする画像部分を前記マップ生成用画像から抽出する所定の画像解析処理を行い、抽出結果を用いて取捨選択した前記マップ要素の配置構成を決定することで前記ゲームマップを生成するゲームマップ生成制御手段と、を備えるコンピュータシステムである。
【0043】
第17の発明によれば、第1の発明と同様の効果が得られるコンピュータシステムを実現できる。
【0044】
第18の発明は、マップ要素が配置されたゲームマップ中を移動体オブジェクトが移動するゲームに用いる前記ゲームマップをコンピュータシステムが生成するためのゲームマップ生成方法であって、所与のマップ生成用画像を取得することと、前記マップ要素の配置構成の下地とする画像部分を前記マップ生成用画像から抽出する所定の画像解析処理を行い、抽出結果を用いて取捨選択した前記マップ要素の配置構成を決定することで前記ゲームマップを生成することと、を含むゲームマップ生成方法である。
【0045】
第18の発明によれば、第1の発明と同様の効果をもたらすゲームマップ生成方法を実現できる。
【図面の簡単な説明】
【0046】
図1】ゲームシステムの構成例を示す図。
図2】オンラインゲームのゲーム画面例を示す図。
図3】ゲームマップ生成機能の概要を説明するための図(その1)。
図4】ゲームマップ生成機能の概要を説明するための図(その2)。
図5】ゲームマップ生成機能の概要を説明するための図(その3)。
図6】ゲームマップ生成機能の概要を説明するための図(その4)。
図7】不適切箇所の一例であるマップ要素の過度な塊状の密集の例を示す図。
図8】塊状の密集を解消する自動編集について説明するための図。
図9】不適切箇所の一例であるマップ要素の列状の密集の例を示す図。
図10】列状の密集を解消する自動編集について説明するための図。
図11】不適切箇所の一例としてマップ要素の過度な粗の例を示す図。
図12】サーバシステムの機能構成例を示す機能ブロック図。
図13】サーバ記憶部が記憶するプログラムやデータの例を示す図。
図14】ゲームマップ生成制御データのデータ構成例を示す図。
図15】ユーザ作成ゲームマップデータのデータ構成例を示す図。
図16】ユーザ端末の機能構成例を示す機能ブロック図。
図17】ゲームマップ生成に係る処理の流れを説明するためのフローチャート。
図18図17より続くフローチャート。
図19】第2実施形態におけるユーザ端末の機能構成例を示す機能ブロック図。
図20】第2実施形態における端末記憶部が記憶するプログラムやデータの例を示す図。
【発明を実施するための形態】
【0047】
以下、本発明の実施形態の例を説明するが、本発明を適用可能な形態が以下の実施形態に限られないことは勿論である。
【0048】
〔第1実施形態〕
図1は、ゲームシステム1000の構成例を示す図である。
ゲームシステム1000は、サーバシステム1100と、ユーザ別のユーザ端末1500とを具備し、ユーザ端末1500をマン・マシン・インターフェース(Man Machine Interface:MMIF)とするコンピュータシステムである。図1では、ユーザ端末1500を1台のみ描いているが、実際のシステム運用においては、ユーザ端末1500の台数は問わない。サーバシステム1100とユーザ端末1500とは、互いにネットワーク9を介してデータ通信が可能であり、ユーザ端末1500同士もネットワーク9を介してデータ通信が可能である。
【0049】
ネットワーク9は、データ通信が可能な通信路を意味する。すなわち、ネットワーク9とは、直接接続のための専用線(専用ケーブル)やイーサネット(登録商標)等によるLAN(Local Area Network)の他、電話通信網やケーブル網、インターネット等の通信網を含む意味であり、また、通信方法については有線/無線を問わない。
【0050】
サーバシステム1100は、本体装置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)により実現するとしてもよい。
【0051】
そして、サーバシステム1100は、制御基板1150が所定のプログラムおよびデータに基づいて演算処理することにより、(1)ユーザ登録等に係る情報を管理するユーザ管理機能と、(2)ユーザにプレーヤとしてオンラインゲームをプレイさせるゲーム管理機能と、(3)オンラインゲームで使用するゲームマップの作成機能と、を実現する。
【0052】
なお、サーバシステム1100を、1台のサーバ装置であるかのように描いているが、複数の装置で実現する構成であってもよい。例えば、サーバシステム1100は、各機能を分担する複数のブレードサーバを搭載して相互に内部バスを介してデータ通信可能に接続した構成であってもよい。また、サーバシステム1100を構成するハードウェアの設置場所は問わない。離れた場所に設置された独立した複数のサーバを、ネットワーク9を介してデータ通信させることで、全体としてサーバシステム1100として機能させる構成であってもよい。
【0053】
ユーザ端末1500は、ユーザがゲームシステム1000を利用するために使用するコンピュータシステムである。ユーザ端末1500は、ゲームシステム1000におけるマン・マシン・インターフェースの機能を担っている。そのため、ゲームシステム1000は、ユーザ端末1500を具備する、ということもできる。
【0054】
図1では、ユーザ端末1500を、いわゆるスマートフォンと呼ばれる装置として表しているが、コンピュータシステムであれば、スマートウォッチ、スマートグラスなどのウェアラブルコンピュータや、携帯型ゲーム装置、家庭用ゲーム装置、タブレット型コンピュータ、パソコン、などでもよい。スマートフォンと、当該スマートフォンに通信接続されたスマートウォッチとの組み合わせといった複数の電子機器が通信可能に接続することで1つの機能を果たす場合にはこれらの複数の電子機器を1つのユーザ端末1500とみなすことができる。
【0055】
ユーザ端末1500は、操作入力デバイス(例えば、タッチパネル1506、キーボード、ゲームコントローラ、マウスなど)と、カメラ1521と、画像表示デバイス(例えば、タッチパネル1506、ビデオモニタ、ヘッドマウントディスプレイなど)と、制御基板1550と、を備える。
【0056】
制御基板1550は、CPU1551や、GPU,DSPなどの各種マイクロプロセッサ、VRAMやRAM,ROM等の各種ICメモリ1552、ネットワーク9に接続する通信モジュール1553、などを搭載する。制御基板1550に搭載されているこれらの要素は、バス回路などを介して電気的に接続され、データの読み書きや信号の送受信が可能に接続されている。制御基板1550の一部又は全部をASICやFPGA、SoCにて構成してもよい。そして、制御基板1550は、ユーザ端末としての機能を実現させるためのプログラムや各種データをICメモリ1552に記憶する。
【0057】
ユーザ端末1500は、所定のアプリケーションプログラムを実行することにより、ゲームシステム1000のMMIFとしての機能を実現することができる。また、ユーザ端末1500は、基本機能として、タッチパネル1506をファインダーとしてカメラ1521で実世界を撮影するデジタルカメラとしての機能を有しており、撮影した画像をICメモリ1552に記憶することができる。
【0058】
なお、ユーザ端末1500は、アプリケーションプログラムやその実行に必要な各種データをゲームシステム1000からダウンロードする構成としているが、別途入手したメモリカードなどの記憶媒体から読み出す構成としてもよい。
【0059】
ゲームシステム1000は、複数のゲーム種類のオンラインゲームを提供できる。
図2は、ある1つのゲーム種類のオンラインゲームのゲーム画面例を示す図である。
ゲーム画面W2は、ユーザ端末1500のタッチパネル1506に表示される。
図2の例のゲームは、移動体オブジェクトであるプレーヤキャラクタ4を、ゲームマップ6内に設定されたマップ要素8(ゲームマップ6に描かれた横長の白四角)を足場として、移動開始位置10から移動目標位置12まで無事に到達させることを目的としたゲームである。
【0060】
フラグ5が設定されたマップ要素8を経由することで、ユーザはそのフラグ5を獲得することができる。移動開始位置10から移動目標位置12までの移動所要時間と、獲得したフラグ5の数とが、プレイ成績となる。
【0061】
そして、プレーヤキャラクタ4は、マップ要素8の上から外れると、ゲームマップ6内を「落ちる」。具体的には、画面の上から下へ、プレーヤキャラクタ4が下方の別のマップ要素8又はゲームマップ6の底に達するまで自由落下のように移動制御される。落ちるとそれだけ移動目標位置12への移動距離が増えることになる。よって、できるだけ多くのフラグ5を獲得できる最短ルートを見つけ出し、できるだけプレーヤキャラクタ4をマップ要素8から落とさずに、マップ要素8の間のジャンプを失敗しないように操作するのが、ゲーム攻略の要諦となる。
【0062】
プレーヤキャラクタ4の移動は、マップ要素8の上を画面左右方向へ横移動するか、今いるマップ要素8から他のマップ要素8へジャンプするか、の2通りである。横移動は横移動操作アイコン14(14a,14b)へのタッチ操作で行う。ジャンプはジャンプ操作アイコン16へのタッチ操作で行う。タッチしている時間の長さでジャンプ力を調整できる。タッチパネル1506が操作力を検出できるタイプであれば、検出した操作力でジャンプ力を調整できるとしてもよい。ジャンプ操作は、プレーヤキャラクタ4を起点にしてジャンプさせる方向へ行うフリック操作であってもよい。
【0063】
ゲームマップ6は、ゲームメーカ(或いはゲーム提供者)により用意されるが、ユーザ自らがゲームマップ生成機能を利用して新たに自作することもできる。
【0064】
図3から図6は、ゲームマップ生成機能の概要を説明するための図である。
ゲームマップ生成機能では、図3に示すように、ユーザがマップ生成用画像20を提供する。
【0065】
マップ生成用画像20は、ユーザがユーザ端末1500のデジタルカメラ機能を利用して実世界を撮影した画像データでもよいし、CGペイントで作成したデジタルイラスト、3Dモデルを配置してレンダリングさせた3DCG画像であってもよい。マップ生成用画像20の提供は、ユーザ端末1500に記憶されているデータや、ユーザ端末1500でアクセス可能なオンラインストレージに記憶されているデータを、ユーザが指定するとしてもよい。
また、マップ生成用画像20は、複数の素材となる画像の全部又は一部を重ね合わせて1つにした合成画像や、複数の画像を並べて1つに連結した合成画像であってもよい。
【0066】
マップ生成用画像20が提供されたならば、図4に示すように、サーバシステム1100がマップ生成用画像20を画像解析処理し、マップ生成用画像20に写っている被写体の輪郭線22(図4中では破線で表示;「エッジ」とも言う)を抽出し、抽出された輪郭線22のなかからマップ要素8を配置する下地画像部分24(図4中では太線で表示)を抽出する。
【0067】
輪郭線22の抽出のアルゴリズムは適宜選択可能であるが、例えば、マップ生成用画像20の隣り合うピクセルの輝度値の差を算出し、所定の閾値(画像解析用のパラメータ値)で二値化処理をして輪郭線22を認識するとしてもよい。なお、輝度値の差は、ピクセルの色情報のRGB値の合算値の差としても良いし、RGBのうち1つの色相の値の差として算出してもよい。
【0068】
下地画像部分24は、マップ生成用画像20に写っている被写体の外形や配色などの特徴から、本実施形態のゲームの特性に合った位置や形状であると判定された特徴部分である。マップ要素8は、足場の役割を担うので外形や配色の輪郭線22が水平又は略水平に見える部分を、下地画像部分24として抽出する。
【0069】
「水平又は略水平に見える部分」とは、所定のピクセルの連なりを単位として着目した場合に、全体として画面の左右方向に並んでいるように見える部分、という意味である。
【0070】
下地画像部分24を抽出する画像解析処理の内容は、下地画像部分24として認識するピクセル単位の設定に合わせて、適宜設定可能である。
例えば、マップ生成用画像20の隣り合うピクセルの輝度値の差を算出し、所定の閾値(画像解析用のパラメータ値)で二値化処理をして輪郭線22を認識する。そして、輪郭線22と認識されたピクセル群を、所定数のピクセル(1から数ピクセル)の連なりで1つの抽出単位として分ける。そして、抽出単位の傾きが水平又は略水平と見なされる所定角度範囲内ならば、当該抽出単位を1つの下地画像部分24として抽出する。隣り合う複数の下地画像部分24は統合して1つにしてもよい。勿論、輪郭線22や下地画像部分24を、これ以外のアルゴリズムで抽出してもよい。
【0071】
なお、抽出単位とする輪郭線22のピクセルの連なりは、上下左右斜めの合計8方向の1ピクセルから2ピクセル程度のズレを許容するとしてもよい。
また、マップ要素8の端が傾斜面でもよいケースや、ゲーム内容が異なりマップ要素8が障害物や壁としての役割を担うのであれば、下地画像部分24は外形や配色の輪郭線22が水平又は略水平に見える部分に限らずに設定してもよい。例えば、輪郭線22が水平又は略水平に見える部分の端部に、数ピクセル分の傾斜部分を含めるとしてもよい。
【0072】
下地画像部分24が抽出されたならば、サーバシステム1100は、図5に示すように、マップ要素8を仮配置する。具体的には、抽出された下地画像部分24の位置にマップ要素8(図5の例では、左右に平たい白色四角形;画面左右に平たい足場)を設定する。
【0073】
仮配置されたマップ要素8は、マップ生成用画像20の内容や画像解析処理に適用されたパラメータ値の設定によって粗密が生じている。
マップ要素8が密な部分は、プレーヤキャラクタ4の移動可能範囲を狭めて、ゲームマップ6の有効面積を下げ得る。過密部分を残したままだと、そのゲームマップ6で実際にプレイしてみると楽しくない場合が多い。また、マップ要素8が粗な部分は、プレーヤキャラクタ4のジャンプ能力を超える間隙となり、結果的にプレーヤキャラクタ4が移動できずにプレーヤキャラクタ4の移動可能範囲を狭めてしまい、ゲームマップ6の有効面積を下げ得る。
【0074】
そこで、サーバシステム1100は、マップ要素8の仮配置構成のなかからそうしたマップ要素8の不都合な粗密の箇所を、ゲームプレイの不適切な配置構成箇所(以下、「不適切箇所」という)として検索する。そして、不適切箇所を解消するように配置構成を補正編集して、図6に示すような、ゲームマップ6の最終的なマップ要素8の配置構成を決定する。
【0075】
ゲームマップ6は、マップ生成用画像20を背景とし、その背景の上に、マップ要素8が半透明オブジェクトとして合成表示される。つまり、ゲームマップ生成機能を利用することで、ユーザは、自分が用意したマップ生成用画像20を元にしたゲームマップ6を舞台にしてプレーヤキャラクタ4を移動させて楽しむことが可能になる。
【0076】
「不適切箇所」を検索するためにマップ要素8の仮の配置構成が満たすべき要件である不適切条件は、ゲーム種別や、移動体キャラクタの大きさ、ゲームルールなどにより適宜設定される。
【0077】
図7は、不適切箇所の一例であるマップ要素8の過度な塊状の密集の例を示す図である。
塊状の密集を不適切箇所として検索するための不適切条件は「上下に隣り合うマップ要素8間の上下方向の相対距離が、所与の上下方向通路確保距離Lv未満となるマップ要素8が、所与の密集基準値を超える集まり」として記述される。上下方向通路確保距離Lvは、プレーヤキャラクタ4が左右方向に移動するための通路として確保されるべきマップ要素8同士の上下方向の隙間の限界値(下限値)を示している。
【0078】
例えば、あるマップ要素8から上下方向の相対距離が所与の上下方向通路確保距離Lv未満となるように連なる他のマップ要素8(図7中、網掛けされた横長の長方形)を、連なりが途絶えるまで辿った数をカウントして、それが密集基準値を超えると、それらをまとめて過度な密集による不適切箇所として認識する。つまり、塊状の密集による不適切箇所は「仮の配置構成におけるマップ要素8の冗長箇所」である。
【0079】
密集の不適切箇所を補正する編集は、自動で行うか手動で行うかをユーザが選択できる。
手動で編集を行う場合は、通知画面W4がユーザ端末1500にて表示される。通知画面W4では、仮の配置構成におけるマップ要素8のうち不適切箇所に該当するマップ要素8を、特別な表示形態で表示する(図7の例では、斜めハッチングで表示されている)。ユーザは、特別な表示形態のマップ要素8を適当に削除する操作をして、密集を解消するように仮の配置構成を補正・編集する。
【0080】
自動で編集を行う場合は、図8に示すように、不適切箇所に該当する複数のマップ要素8のうち、最も上にあるマップ要素8(図8の例ではマップ要素8a,8b)を残し、それから下方の上下方向通路確保距離Lv内に位置するマップ要素8(図8の例ではマップ要素8c、8dなど;図8中の破線横長四角形)を削除する。削除後に残ったマップ要素8が依然として不適切箇所として認識されるならば、上下方向通路確保距離Lvの外に有って削除を逃れたマップ要素8のうち、最も上にあるマップ要素8(図8の例では、マップ要素8e、8fなど)を残し、それから下方の上下方向通路確保距離Lv内のマップ要素8を削除する。以下、これを繰り返す。勿論、これ以外のアルゴリズムで自動編集するとしてもよい。
【0081】
図9は、不適切箇所の一例であるマップ要素8の列状の密集の例を示す図である。
列状密集の不適切箇所を検索するための不適切条件は「左右に隣り合うマップ要素8間の左右方向の相対距離が、所与の左右方向通路確保距離Lh未満のマップ要素8による、所与の密集基準値を超える集まり」であり且つ「ゲームマップ6を横断する集まり」として記述される。左右方向通路確保距離Lhは、プレーヤキャラクタ4が上下方向に移動するための通路として確保されるべきマップ要素8同士の左右方向の隙間の限界値を示している。
【0082】
例えば、画面左右方向の相対距離が左右方向通路確保距離Lh未満で連なるマップ要素8を、連なりが途絶えるまで辿った数をカウントして、カウント数が密集基準値を超えると、カウントされたマップ要素8を過度な密集による不適切箇所として1次認識する。そして、1次認識したマップ要素8のうち、画面左右方向の両端のマップ要素8がどちらもゲームマップ6の外縁から左右方向通路確保距離Lh以上離れていなければ、プレーヤキャラクタ4の移動を阻害する列状密集の不適正箇所として最終認識する。つまり、列状密集の不適切箇所は、「移動目標位置12への移動体オブジェクト(プレーヤキャラクタ4)の移動を阻害する箇所」である。
【0083】
列状密集の不適切箇所を補正する編集は、自動で行うか手動で行うかをユーザが選択できる。手動で編集を行う場合は、通知画面W6がユーザ端末1500にて表示される。通知画面W6では、不適切箇所として認識されたマップ要素8が特別な表示形態で表示される。ユーザは、左右方向通路確保距離Lh以上の隙間ができるように特別な表示形態のマップ要素8を適当に削除操作して、密集を解消するように仮の配置構成を補正編集する。
【0084】
自動で編集を行う場合は、図10に示すように、不適切箇所に該当する複数のマップ要素8を消去する。削除後でも左右方向通路確保距離Lhの隙間ができず、当該不適切箇所で残ったマップ要素8が依然として不適切箇所として認識されるならば、同じことを繰り返す。図10の例では、破線の四角形が消去されたマップ要素8を示している。
【0085】
図11は、不適切箇所の一例として、マップ要素8の過度な粗の例を示す図である。
過度な粗の不適切箇所を検索するための不適切条件は「移動体オブジェクトの移動能力を超えた断絶領域があること」として記述される。
【0086】
具体的には、サーバシステム1100は、次の様に移動体オブジェクト(プレーヤキャラクタ4)の移動シミュレーショをする。先ず、移動体オブジェクト(プレーヤキャラクタ4)が移動開始位置10から左右に移動可能な範囲で左右に移動するようにして移動体オブジェクト(プレーヤキャラクタ4)の移動能力範囲Mを左右に移動させる。そして、移動させている間に当該移動能力範囲Mに入るマップ要素8を検索する。該当するマップ要素8があれば、移動体オブジェクト(プレーヤキャラクタ4)の位置を当該マップ要素8上に転移させるようにして、移動能力範囲Mを転移させる。転移後、転移先のマップ要素8の範囲で移動体オブジェクト(プレーヤキャラクタ4)を左右に移動させるようにして移動能力範囲Mを左右に移動させ、当該移動能力範囲Mに入るマップ要素8を検索する。これを繰り返す。以降、転移後の移動能力範囲Mに移動目標位置12が入るか、移動能力範囲Mに入るマップ要素8が無くなるまで、これを繰り返す。最終的に、移動能力範囲Mに移動目標位置12が入れば、過度な粗の不適切箇所は無いことになる。移動目標位置12が入らず転移が止まってしまう場合には、そこに移動体オブジェクトの移動能力を超えた断絶領域(マップ要素8が不足している領域)があると認識される。
【0087】
断絶領域の不適切箇所を補正する編集は、自動で行うか手動で行うかをユーザが選択できる。
手動で編集を行う場合は、通知画面W8がユーザ端末1500にて表示される。通知画面W8では、移動能力範囲Mの転移履歴が重ね表示される。ユーザは、転移が止まった最後の移動能力範囲M(図11の例では、移動能力範囲Ma)又はその1つ2つ前の転移位置の移動能力範囲M(図11の例では移動能力範囲Mb)の中に、新たなマップ要素8を追加する操作をして、断絶を解消するように仮の配置構成を補正・編集する。
【0088】
自動で編集を行う場合は、サーバシステム1100が、転移が止まった移動能力範囲M又はその1つ2つ前の転移位置の移動能力範囲Mの中に、新たなマップ要素8を自動的に追加する。
【0089】
なお、移動能力範囲Mは、初期サイズが予め設定されている。初期サイズは、ユーザが希望する攻略難易度が「高」である場合に適合するように設定されており、ユーザが希望する攻略難易度が下がるほど、当該範囲の大きさを小さく変更してから使用するとしてもよい。
【0090】
また、移動能力範囲Mは、ユーザのプレイ技量を間接的に示し得るプレーヤ情報(例えば、プレーヤの過去のプレイ成績、過去のプレイ回数、過去のプレイ成績やプレイ回数に応じて自動的に設定されるプレーヤレベル或いはプレーヤキャラクタレベルなど)に応じて、当該範囲の大きさを変更してから使用するとしてもよい。
また、プレーヤキャラクタの移動能力パラメータ値(例えば、パラメータ値が大きいほど移動可能距離が大きい)に応じて移動能力範囲Mの大きさを広くするように変更してから使用するとしてもよい。
【0091】
次に、機能構成について説明する。
図12は、サーバシステム1100の機能構成例を示す機能ブロック図である。
サーバシステム1100は、操作入力部100sと、サーバ処理部200sと、音出力部390sと、画像表示部392sと、通信部394sと、サーバ記憶部500sとを備える。
【0092】
操作入力部100sは、サーバシステム1100の管理のための各種操作を入力するための手段である。例えば、キーボード、タッチパネル、マウス、などがこれに該当する。
【0093】
サーバ処理部200sは、例えばCPUやGPU、ASIC、FPGA等の演算回路となるプロセッサの他、ICメモリなどの電子部品によって実現され、操作入力部100sやサーバ記憶部500sを含む各機能部との間でデータの入出力制御を行う。そして、所定のプログラムやデータ、操作入力部100sからの操作入力信号、ユーザ端末1500などから受信したデータ、等に基づいて各種の演算処理を実行して、サーバシステム1100の動作を統合的に制御する。
【0094】
サーバ処理部200sは、ユーザ管理部202と、ゲーム管理部204と、ゲームマップ生成管理部210と、計時部280sと、音生成部290sと、画像生成部292sと、通信制御部294sとを含む。勿論、これら以外の機能部も適宜含めることができる。
【0095】
ユーザ管理部202は、ユーザ登録手続きに係る処理およびユーザアカウントに紐付けられる各種情報の記憶管理を行う。
【0096】
ゲーム管理部204は、ユーザ端末1500にてゲームマップ6を用いた所与のゲームをプレイさせるための各種制御を行う。具体的には、ゲーム管理部204は、ゲームメーカが用意したゲームマップ6と、プレーヤであるユーザがゲームマップ生成機能を利用して作成したゲームマップ6とを、選択肢として提示する。そして、選択されたゲームマップ6を用いたゲームを進行制御する。ゲームプレイ後には、プレイ成績やプレイした日時などのプレイ情報をプレイ履歴として保存する制御をする。
【0097】
ゲームマップ生成管理部210は、ユーザが提供したマップ生成用画像20に基づく新たなゲームマップ6の生成に係る機能を有する。ゲームマップ生成管理部210は、画像取得部212と、ゲームマップ生成制御部214と、を有する。
【0098】
ゲームマップ生成制御部214は、マップ要素の配置構成の下地とする画像部分をマップ生成用画像から抽出する所定の画像解析処理を行い、抽出結果を用いて取捨選択したマップ要素の配置構成を決定することでゲームマップを生成する。
【0099】
具体的には、ゲームマップ生成制御部214は、仮作成部220と、不適切箇所検索部230と、検索結果通知制御部232と、生成制御部240と、を有する。
【0100】
画像取得部212は、所与のマップ生成用画像20を取得するための制御をする。
【0101】
仮作成部220は、マップ要素8の配置構成の下地とする画像部分をマップ生成用画像20から抽出する所定の画像解析処理を行ってマップ要素8の仮の配置構成を作成する。
そして、仮作成部220は、第1再作成部221と、第2再作成部222と、第3再作成部223と、第4再作成部224とを有する。
【0102】
第1再作成部221は、マップ生成用画像20の画像解析処理に用いるパラメータ値(例えば、二値化処理をする際の閾値)を、不適切箇所検索部230による検索結果に基づいて変更した上で、仮の配置構成を再作成する。
【0103】
第2再作成部222は、マップ生成用画像20から所与の画像範囲を不適切箇所検索部230の検索結果に基づいて選択し、当該画像範囲から下地画像部分24の抽出を行って仮の配置構成を再作成する。
【0104】
第3再作成部223は、マップ生成用画像20を不適切箇所検索部230の検索結果に基づいて補正した上で画像解析処理を行って仮の配置構成を再作成する。
【0105】
第4再作成部224は、抽出した下地画像部分24を不適切箇所の検索結果に基づいて複製配置して仮の配置構成を再作成する。
【0106】
不適切箇所検索部230は、仮の配置構成において、ゲームプレイに不適切な配置構成の条件である所与の不適切条件を満たす箇所を検索する。具体的には、不適切箇所検索部230は、仮の配置構成におけるマップ要素8が、(1)移動目標への移動体オブジェクトの移動を阻害する箇所、(2)仮の配置構成におけるマップ要素8の冗長箇所、を検索する。
【0107】
検索結果通知制御部232は、不適切箇所検索部230の検索結果をユーザに通知する制御を行う。
【0108】
生成制御部240は、マップ要素の配置構成を仮の配置構成に基づいて決定する配置構成決定処理を、不適切箇所検索部230の検索結果を参照して実行することでゲームマップを生成する。生成制御部240は編集部242を有する。
【0109】
編集部242は、配置構成決定処理において、(1)ユーザのプレイ情報、(2)移動体オブジェクトのパラメータ値、(3)ゲームマップの攻略難易度、(4)ゲームのプレイ人数、(5)ゲームのゲーム種別、のうちの何れかに基づいて仮の配置構成を編集する。具体的には、配置するマップ要素8の量を調整する編集をする。
【0110】
つまり、ゲームマップ生成制御部214は、仮作成部220にて、マップ要素8の配置構成の下地とする画像部分をマップ生成用画像20から抽出する所定の画像解析処理を行い、不適切箇所検索部230と生成制御部240とによって、抽出結果を用いて取捨選択したマップ要素8の配置構成を決定することでゲームマップ6を生成する。
【0111】
計時部280sは、システムクロックを利用して現在日時や制限時間等の各種計時を行う。
【0112】
音生成部290sは、音声データの生成やデコードをするICやソフトウェアの実行により実現され、サーバシステム1100のシステム管理や、オンラインゲームの提供に係る操作音や効果音、BGM、音声通話、などの音声データを生成或いはデコードする。そして、システム管理に関する音声信号は音出力部390sへ出力する。
【0113】
音出力部390sは、スピーカ等により実現され、音声信号に基づいて放音する。
【0114】
画像生成部292sは、サーバシステム1100のシステム管理のための各種管理画面の画像生成を行い、画像データを画像表示部392sに出力する。画像表示部392sは、フラットパネルディスプレイや、ヘッドマウントディスプレイ、プロジェクターなど、画像を表示させる装置で実現される。
【0115】
また、画像生成部292sは、ゲームプレイ及びゲームマップ6の生成に係る画像の生成を行う。例えば、各ユーザ端末1500に表示させるゲーム画像の元になる仮想3次元空間を仮想カメラで撮影したゲーム空間画像のレンダリングも実行する。
【0116】
通信制御部294sは、データ通信に係るデータ処理を実行し、通信部394sを介して外部装置とのデータのやりとりを実現する。
【0117】
通信部394sは、ネットワーク9と接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現される。図1の例では通信装置1153がこれに該当する。
【0118】
サーバ記憶部500sは、サーバ処理部200sにサーバシステム1100を統合的に制御させるための諸機能を実現するためのプログラムや各種データ等を記憶する。また、サーバ処理部200sの作業領域として用いられ、サーバ処理部200sが各種プログラムに従って実行した演算結果などを一時的に記憶する。この機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD-ROMやDVDなどの光学ディスク、オンラインストレージなどによって実現される。図1の例では本体装置1101が搭載するICメモリ1152やハードディスクなどの記憶媒体がこれに該当する。オンラインストレージをサーバ記憶部500sに含めてもよい。
【0119】
図13は、サーバ記憶部500sが記憶するプログラムやデータの例を示す図である。本実施形態におけるサーバ記憶部500sは、サーバプログラム501と、配信用クライアントプログラム503と、ゲーム初期設定データ510と、不適切条件定義データ514と、ユーザ管理データ600と、ゲームマップ生成制御データ610と、ユーザ作成ゲームマップデータ640と、プレイデータ700と、現在日時900と、を記憶する。サーバ記憶部500sは、その他のプログラムやデータ(例えばタイマーや、カウンタ、各種フラグなど)も適宜記憶する。
【0120】
サーバプログラム501は、サーバ処理部200sが読み出して実行することで、サーバシステム1100をゲームマップ生成管理部210として機能させるためのプログラムである。
【0121】
配信用クライアントプログラム503は、ユーザ端末1500へ提供されて実行されるクライアントプログラムのオリジナルである。
【0122】
ゲーム初期設定データ510は、ゲームタイトル別に用意され、当該ゲームを実行するための各種の定義データや初期設定データを格納する。そして、ゲーム初期設定データ510は、メーカ提供ゲームマップデータ512を格納する。
【0123】
メーカ提供ゲームマップデータ512は、ゲームメーカ(またはゲーム提供者)が作成したゲームマップ6毎に用意される。1つのメーカ提供ゲームマップデータ512は、固有のゲームマップIDと、背景画像データと、マップ要素8の配置位置を定義する配置構成データと、攻略難易度設定と、を含む。
【0124】
不適切条件定義データ514は、マップ要素8の仮の配置構成の中から不適切箇所を検索するための条件を定義するデータであって、ゲームタイトル別に用意されている。1つの不適切条件定義データ514は、固有の不適切条件IDと、当該定義データが適用されるゲームタイトルと、同ゲームタイトルのゲーム種別と、条件を記述する本体データと、を含む。
【0125】
ユーザ管理データ600は、ユーザ登録を済ませたユーザ毎に作成され、当該ユーザに紐付けられる各種データを格納する。1つのユーザ管理データ600は、例えば固有のユーザアカウントと、プレーヤ情報と、プレイ履歴情報と、を格納する。プレーヤ情報としては、例えば、過去のプレイ成績に応じて自動的に付与されるプレーヤレベル(又はプレーヤキャラクタレベル)、セーブデータ(プレーヤキャラクタのセーブ時点の能力パラメータ値、保有アイテムリスト、などを含む)、などの情報を含む。プレイ履歴情報としては、プレイ毎の日時、プレイ成績、プレイしたゲームマップID、プレイしたゲームの攻略難易度、などを含む。
【0126】
ゲームマップ生成制御データ610は、ゲームマップ生成機能を利用する毎に作成され、当該生成制御に係る各種データを格納する。1つのゲームマップ生成制御データ610は、例えば図14に示すように、当該生成制御がどのユーザ向けに実行されているかを示す生成者ユーザアカウント611と、ユーザ希望設定データ612と、マップ生成用画像データ613と、背景画像データ614と、移動開始位置座標615と、移動目標位置座標616と、抽出条件620と、下地画像部分抽出結果データ630と、仮配置構成データ632と、不適切箇所データ636と、を含む。勿論、これら以外の情報も適宜含めることができる。
【0127】
ユーザ希望設定データ612は、これから生成しようとするゲームマップ6についてのユーザ希望の選択受け付け結果を格納する。例えば、生成するゲームマップ6をどのゲームタイトル用に作るかを指定する用途ゲームタイトル、そのゲームタイトルのゲーム種別、プレイ人数、希望攻略難易度、などの情報を格納する。勿論、ゲーム内容に応じてこれら以外の希望内容を受け付け、格納するとしてもよい。
【0128】
マップ生成用画像データ613は、ゲームマップ生成のためにその元になる画像データとして、ユーザが提供した画像データのコピーである。なお、マップ生成用画像データ613は、不適切箇所の補正に伴う編集過程において各種の変更が施される。
【0129】
背景画像データ614は、新たに生成されるゲームマップ6の背景となる画像のデータであって、マップ生成用画像データ613を取得した直後にコピーされる。
【0130】
移動開始位置座標615及び移動目標位置座標616は、新たに生成されるゲームマップ6における移動体キャラクタの移動開始位置と、移動目標位置とを示すゲームマップ座標系の位置座標である。
【0131】
抽出条件620は、マップ要素8を設定する下地画像部分をマップ生成用画像20から抽出する画像解析処理に適用される各種制限や、パラメータ値を格納する。例えば、マップ生成用画像20の特定範囲に抽出対象範囲を限定するための設定である抽出対象画像範囲設定データ621、抽出用パラメータ値622、を格納する。勿論、これら以外のデータも適宜格納することができる。抽出対象画像範囲設定データ621の初期値は、マップ生成用画像20の全体とする。
【0132】
抽出用パラメータ値622は、輪郭線22の抽出アルゴリズムに応じて適宜設定可能である。例えば、所定の閾値(画像解析用のパラメータ値)で二値化処理をして輪郭線22を認識するアルゴリズムを採用した場合、抽出用パラメータ値622は、輝度値の差の閾値を示す。輝度値を、ピクセルの色情報のRGB値の合算値ではなく、RGBのうち選択された色相の値とする場合、抽出条件620にRGBの何れの色相の値を参照するかの情報も含める。
【0133】
輝度値をRGBのうち選択された色相の値として輝度値の差を算出する場合、どの色相の値で輝度値の差を算出するかを、ユーザが設定するとしてもよい。その場合、RGBのうちどの色相の値を参照するかを、ユーザ希望の設定項目の1つとして、ユーザ希望設定612に含める。
【0134】
また、RGBのうち選択された色相の値として輝度値の差を算出する場合、どの色相の値で輝度値の差を算出するかを、プレーヤキャラクタ4の属性やプレーヤキャラクタ4の色(キャラクタの外観配色のうち面積が最も多い主たる色、など)に基づいて決定するとしてもよい。
【0135】
例えば、「火」属性やキャラクタ色が「赤」ならば、「R」値を輝度値として輝度値の差を算出する。「光」属性やキャラクタの色が「黄」ならば、「R」と「G」の値の合算値を輝度値として輝度値の差を算出する、としてもよい。
【0136】
基準となるプレーヤキャラクタ4の属性やキャラクタ色は、ユーザが希望として設定するとしてもよい。その場合、属性種類又はプレーヤキャラク4の種類をユーザ希望の設定項目の1つとし、ユーザ希望設定612に含める。或いは、生成者ユーザアカウント611の示すユーザユーザ管理データ600(図15参照)のプレイ情報に含まれるプレーヤキャラク4の種類や属性の情報を参照するとしてもよい。
【0137】
下地画像部分抽出結果データ630は、マップ生成用画像20から抽出された下地画像部分毎に作成される。1つの下地画像部分抽出結果データ630は、固有の下地画像部分IDと、当該部分を定義する部分範囲情報と、下地画像部分のコピーである部分画像データと、を含む。勿論、これら以外の情報も適宜含めることができる。
【0138】
仮配置構成データ632は、マップ要素8の仮の配置構成に係る各種データを格納する。具体的には、仮配置されたマップ要素8別の仮マップ要素設定データ634を格納する。
1つの仮マップ要素設定データ634は、固有のマップ要素ID、下地画像部分ID、当該マップ要素8をゲームマップ6の何処に配置するかを示す設定位置座標(ゲームマップ座標系の位置座標)、当該マップ要素8のサイズを示す要素サイズ、当該マップ要素8の表示形態設定(例えば、表示カラー、表示モーション、透明度設定、など)を含む。勿論、これら以外の情報も適宜含めることができる。
【0139】
不適切箇所データ636は、仮配置構成のうち不適切条件を満たす範囲、つまり不適切箇所毎に作成され、当該不適切箇所に関する各種データを格納する。1つの不適切箇所データ636は、固有の不適切箇所IDと対応づけて、不適切箇所範囲や、当該不適切箇所を構成するマップ要素8のIDリスト、などを格納する。
【0140】
図13に戻って、ユーザ作成ゲームマップデータ640は、ゲームマップ生成機能を使ってユーザによって作成されたゲームマップ6別に用意され、新たに作成されるゲームマップ6におけるマップ要素8の配置構成を決定するためのデータとして、ゲームマップ生成制御データ610の各種データがコピーされて格納される。
【0141】
具体的には、1つのユーザ作成ゲームマップデータ640は、例えば図15に示すように、固有のゲームマップID641と、作成者ユーザアカウント642と、用途ゲームタイトル643と、プレイ人数644と、攻略難易度645と、背景画像データ660と、移動開始位置座標661と、移動目標位置座標662と、マップ要素8別のマップ要素設定データ663(仮マップ要素設定データ634のコピー)と、マップサムネイル画像データ664と、を含む。勿論、これら以外の情報も適宜含めることができる。
【0142】
プレイデータ700は、ユーザによるゲームプレイ毎に作成され、そのゲーム進行状況を記述する各種データを格納する。
【0143】
図16は、ユーザ端末1500の機能構成例を示す機能ブロック図である。ユーザ端末1500は、操作入力部100と、端末処理部200と、音出力部390と、画像表示部392と、通信部394と、端末記憶部500と、を備える。
【0144】
操作入力部100は、ユーザによってなされた各種の操作入力に応じた操作入力信号を端末処理部200に出力する。例えば、プッシュスイッチや、ジョイスティック、タッチパッド、トラックボール、加速度センサ、ジャイロ、などによって実現できる。
【0145】
端末処理部200は、例えばCPUやGPU等のマイクロプロセッサや、ICメモリなどの電子部品によって実現され、操作入力部100や端末記憶部500を含む各機能部との間でデータの入出力制御を行う。そして、所定のプログラムやデータ、操作入力部100からの操作入力信号、サーバシステム1100から受信した各種データに基づいて各種の演算処理を実行して、ユーザ端末1500の動作を制御する。
【0146】
そして、本実施形態における端末処理部200は、クライアント制御部260と、計時部280と、音生成部290と、画像生成部292と、通信制御部294と、を有する。
【0147】
クライアント制御部260は、ゲームシステム1000におけるクライアントとしての制御として、ユーザ端末1500をMMIF(マン・マシン・インターフェース)として機能させる各種制御を行う。具体的には、クライアント制御部260は、操作入力情報提供部261と、表示制御部262と、を有する。
【0148】
操作入力情報提供部261は、操作入力部100からの入力に応じて操作入力情報をゲームシステム1000へ送信する制御を行う。
【0149】
表示制御部262は、ゲームシステム1000から受信したデータに基づいて各種画像を表示させるための制御を行う。
【0150】
計時部280は、システムクロックを利用して現在日時や制限時間等の計時を行う。
【0151】
音生成部290は、例えばデジタルシグナルプロセッサ(DSP)や、音声合成ICなどのプロセッサ、音声ファイルを再生可能なオーディオコーデック等によって実現され、楽曲や効果音、各種操作音の音信号を生成し、音出力部390に出力する。
【0152】
音出力部390は、スピーカなど音生成部290から入力される音信号に基づいて音出力(放音)する装置によって実現される。
【0153】
画像生成部292は、クライアント制御部260の制御に基づく画像を画像表示部392へ表示させる画像信号を生成・出力する。図1の例では、制御基板1550に搭載されるGPU(Graphics Processing Unit)や、グラフィックコントローラ、グラフィックボード、などがこれに該当する。
【0154】
画像表示部392は、フラットパネルディスプレイや、ヘッドマウントディスプレイ、プロジェクターなど、画像を表示させる装置で実現される。
【0155】
通信制御部294は、データ通信に係るデータ処理を実行し、通信部394を介して外部装置とのデータのやりとりを実現する。
【0156】
通信部394は、ネットワーク9と接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現される。図1の例では通信モジュール1553がこれに該当する。
【0157】
端末記憶部500は、端末処理部200に所与の機能を実現させるためのプログラムや、各種データ等を記憶する。また、端末処理部200の作業領域として用いられ、端末処理部200が各種プログラムに従って実行した演算結果や操作入力部100から入力される入力データ等を一時的に記憶する。こうした機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD-ROMやDVDなどの光学ディスクなどによって実現される。図1の例では、制御基板1550が搭載するICメモリ1552がこれに該当する。
【0158】
具体的には、端末記憶部500は、ユーザ端末1500をクライアント制御部260として機能させるためのクライアントプログラム502(アプリケーションプログラム)と、現在日時900と、を記憶する。勿論、これら以外のデータも適宜記憶できる。
【0159】
図17及び図18は、ゲームマップ生成に係る処理の流れを説明するためのフローチャートである。なお、マップ生成用画像20の画像データは、ユーザ端末1500に記憶されているものとする。
【0160】
図17に示すように、サーバシステム1100は、先ず新たに生成するゲームマップ6に係るユーザ希望の各項目の設定を受け付ける(ステップS10)。サーバシステム1100は、ユーザ端末1500にて用途ゲームタイトル、ゲーム種別、プレイ人数、攻略難易度設定の入力欄を表示させ、その入力結果を取得し、ユーザ希望設定データ612を生成する(図14参照)。
【0161】
次に、サーバシステム1100は、マップ生成用画像20の指定を受け付ける(ステップS12)。サーバシステム1100は、ユーザ端末1500にてマップ生成用画像20の画像データを指定する操作を受け付けさせる。ユーザが、該当する画像データの保存先、ファイル名を指定すると、ユーザ端末1500が指定された画像データをサーバシステム1100へ送信する。サーバシステム1100は、これを受信してマップ生成用画像データ613として記憶する。
【0162】
次に、サーバシステム1100は、マップ生成用画像データ613を背景画像データ614にコピーする(ステップS14)。
【0163】
次に、サーバシステム1100は、新たに生成するゲームマップ6における移動開始位置と、移動目標位置の設定を受け付ける(ステップS16)。サーバシステム1100は、ユーザ端末1500にてマップ生成用画像20全体を表示させ、ユーザに、画像範囲内で希望する移動開始位置と移動目標位置のそれぞれをタッチ操作させる。ユーザ端末1500はタッチ操作されたそれぞれの位置座標をサーバシステム1100へ送信し、サーバシステム1100は、それらを移動開始位置座標615、移動目標位置座標616として記憶する(図14参照)。
【0164】
次に、サーバシステム1100は、抽出条件620(図14参照)を初期化して(ステップS20)、マップ生成用画像20を画像解析処理して下地画像部分を抽出する(ステップS30)。抽出結果は、下地画像部分抽出結果データ630として記憶される(図14参照)。
【0165】
次に、サーバシステム1100は、抽出された下地画像部分のそれぞれにマップ要素8を設定し、仮配置構成データ632に抽出された下地画像部分毎に仮マップ要素設定データ634(図14参照)として記憶する(ステップS40)。
【0166】
このとき、マップ要素8のサイズは、ユーザ希望設定の攻略難易度設定に応じて設定する。例えば、ユーザが希望する攻略難易度が「低」であれば、足場となるマップ要素8の左右の長さを、設定先となる下地画像部分の左右長さと同じにする。攻略難易度が「中」であれば、設定先となる下地画像部分の左右長さの70%の長さに設定し、攻略難易度が「高」であれば、設定先となる下地画像部分の左右長さの50%の長さに設定する。つまり、ユーザのプレイ情報に基づいて仮の配置構成を編集する。
【0167】
なお、マップ要素8の設定に関しては、攻略難易度に限らず、ユーザのプレイ情報や、ユーザが希望した用途ゲームタイトル(つまりはゲーム種別)、プレイ人数などに基づいて、マップ要素8のサイズや1つの下地画像部分に対して設定するマップ要素8の数を変更して、初回の仮の配置構成を編集するとしてもよい。
【0168】
「70%」「50%」と例示した攻略難易度に応じたサイズ決定に係る比率は、例えば、ユーザのユーザ管理データ600に格納されているプレイ情報やプレイ履歴に基づいて変更するとしてもよい。一例として、プレーヤレベルが高いほど、或いは過去のプレイ成績が優れる程、比率を例示より下げるとしてもよい。プレイ回数が多いほど比率を例示よりも下げるとしてもよい。
【0169】
また例えば、ユーザが希望する用途ゲームタイトルのゲーム種別が、マップ要素8を障害物や壁として、移動体オブジェクトをマップ要素8に衝突させないように移動開始位置から移動目標位置へ移動させるレースゲームであれば、障害物が大きい程ゲームの難易度が高くなる。よって、攻略難易度に応じたサイズ決定に係る比率は、攻略難易度が高い程大きくなるように設定するとしてもよい。一例として、攻略難易度が「中」であれば、設定先となる下地画像部分の左右長さの120%の長さに設定し、攻略難易度が「高」であれば、設定先となる下地画像部分の左右長さの150%の長さに設定する、としてもよい。
【0170】
また更に、プレイ人数が複数の場合、サイズ決定に係る比率を例示のそれよりも、更に大きく設定するとしてもよい。例えば、1つのゲームマップ6をマルチプレイで使用する場合、1つのマップ要素8の足場に複数のプレーヤキャラクタ4が同時にのる可能性があるので、マップ要素8のサイズを人数に応じて大きくすると、ゲームプレイがし易くなって好適である。なお、マップ要素8のサイズをプレイ人数に応じて大きくする代わりに、プレイ人数に応じてマップ要素8を付近に追加すること、つまり1つの下地画像部分に対して設定するマップ要素8の数を増やすとしてもよい。
【0171】
ステップS40にてマップ要素8の初回の仮配置を行ったならば、サーバシステム1100は、次に、ユーザ希望の用途ゲームタイトルのゲーム種別に適合する不適切条件定義データ514(図13参照)を参照して、仮の配置構成におけるマップ要素8の仮の配置構成の中から不適切箇所を検索し、不適切箇所データ636(図14参照)を作成する(ステップS60)。
そして、サーバシステム1100は、ユーザ端末1500にてマップ要素8の仮の配置構成及びその不適切箇所をユーザに通知する通知画面を表示させる(ステップS62)。
【0172】
図18に移って、次に、サーバシステム1100は、現在の仮の配置構成の補正編集操作の受け付けをする(ステップS100)。例えば、通知画面内に編集内容別の操作アイコンを表示させて受け付けをするとしてもよい。
【0173】
編集操作内容は適宜設定可能であるが、「下地画像部分の抽出用パラメータ値の調整」「マップ生成用画像の補正」「抽出対象画像範囲の変更」「下地部分画像の複製配置」「マップ要素単位の手動編集」「自動編集」を用意すると好適である。
【0174】
補正編集操作の受け付けにおいて、もし、ユーザが「下地画像部分の抽出用パラメータ値の調整」を選択したならば(ステップS102のYES)、サーバシステム1100は抽出用パラメータ値の調整入力部(例えば、スライドバーなど)をユーザ端末1500に表示させ、操作結果をユーザ端末1500から取得し、抽出用パラメータ値622を変更する(ステップS104)。そして、ステップS30に戻って、下地画像部分の抽出からやり直す。つまり、仮の配置構成が再作成されることになる。
【0175】
もし、ユーザが「マップ生成用画像の補正」を選択したならば(ステップS106のYES)、サーバシステム1100は、ユーザ端末1500にてマップ生成用画像20とともに、輝度調整スライドバー、コントラスト調整スライドバー、消しゴムツール、などの画像補正を可能にする各種操作アイコンを表示させ、画像補正操作を受け付ける(ステップS108)。そして、それらの画像補正操作アイコンへの操作入力に応じて、マップ生成用画像20を画像補正し、ステップS30に戻って、下地画像部分の抽出からやり直す。つまり、仮の配置構成が再作成されることになる。
【0176】
もし、ユーザが「抽出対象画像範囲の変更」を選択したならば(ステップS110のYES)、サーバシステム1100は、ユーザ端末1500にてマップ生成用画像20に、現在の抽出対象画像範囲を合成表示させるとともに、範囲の変更操作を受け付ける(ステップS112)。サーバシステム1100は、範囲の変更操作を受け付けると、抽出対象画像範囲設定データ621(図14参照)を変更する。そして、ステップS30に戻って、下地画像部分の抽出からやり直す。つまり、仮の配置構成が再作成されることになる。
【0177】
もし、ユーザが「下地画像部分の複製配置」を選択したならば(ステップS114のYES)、サーバシステム1100は、ユーザ端末1500にてマップ生成用画像20と現在抽出されている下地画像部分を表示させ、何れかの下地画像部分の指定と、それをマップ生成用画像20への複製配置(スタンプ操作)を受け付ける(ステップS116)。そして、サーバシステム1100は、それらの複製配置操作に応じて、マップ生成用画像20を画像補正し、ステップS30に戻って、下地画像部分の抽出からやり直す。つまり、仮の配置構成が再作成されることになる。なお、複製配置の際には、サイズ変更を可能な構成としてもよい。
【0178】
もし、ユーザが「マップ要素単位の手動編集」を選択したならば(ステップS118のYES)、サーバシステム1100は、ユーザ端末1500にてマップ生成用画像20と現在の仮の配置構成のマップ要素8とを表示させ、マップ要素8の移動・削除・追加などの編集操作を受け付け、編集操作に応じて仮配置構成データ632を変更して、仮の配置構成を再生成する(ステップS120)。そして、ステップS60に戻る。
【0179】
もし、ユーザが「自動編集」を選択したならば(ステップS122のYES)、サーバシステム1100は、自動補正編集処理(図5図7図9参照)を実行して(ステップS124)、ステップS60に戻る。なお、自動補正編集処理には「下地部分画像の複製配置」を自動で行う処理を含めてもよい。
【0180】
もし、所定の編集終了操作又は仮の配置構成を最終的な配置構成として確定する操作がなされたならば(ステップS126のYES)、サーバシステム1100は、新たなユーザ作成ゲームマップデータ640(図15参照)を作成して(ステップS128)、一連の処理を終了する。
【0181】
以上、本実施形態によれば、移動体オブジェクトが移動するゲームに用いるゲームマップを、画像を元に生成する技術であって、適切なゲームマップを生成する技術を提供することができる。
【0182】
〔第2実施形態〕
次に、第2実施形態について説明する。本実施形態では、主に第1実施形態との差異について述べることとし、第1実施形態と同様の構成要素については第1実施形態と同じ符号を付与して重複する説明は省略する。
【0183】
第2実施形態におけるゲームシステム1000のシステム構成は、第1実施形態と同様である。
【0184】
図19は、本実施形態のユーザ端末1500Bの機能構成例を示す機能ブロック図である。ユーザ端末1500Bは、ユーザ管理部202と、ゲーム管理部204と、ゲームマップ生成管理部210と、を有する。ゲーム管理部204によりユーザ端末1500Bにてプレイ可能になるゲームは、スタンドアローンでプレイ可能なゲームである。勿論、オンラインゲームでもよい。
【0185】
図20は、ユーザ端末1500Bの端末記憶部500が記憶するプログラムやデータの例を示す図である。ユーザ端末1500Bの端末記憶部500は、ゲームマップ生成プログラム504と、ゲーム初期設定データ510と、不適切条件定義データ514と、ユーザ管理データ600と、ゲームマップ生成制御データ610と、ユーザ作成ゲームマップデータ640と、プレイデータ700と、現在日時900と、を記憶する。これらのオリジナルは、本実施形態のサーバシステム1100にて保存されており、適宜ユーザ端末1500Bにダウンロードするとしてもよい。
【0186】
ゲームマップ生成プログラム504は、ユーザ端末1500Bを、ゲームマップ生成管理部210として機能させるためのプログラムである。
【0187】
本実施形態におけるゲームシステム1000の動作は、図17及び図18のフローチャートにおける各ステップの実行主体を、サーバシステム1100からユーザ端末1500Bに読み替えた処理となる。すなわち、ユーザ端末1500Bがスタンドアローンでゲームマップを生成する。
【0188】
本実施形態においても、第1実施形態と同様の作用効果が得られる。
【0189】
〔変形例〕
以上、本発明を適用した実施形態の一例について説明したが、本発明を適用可能な形態は上記形態に限定されるものではなく適宜構成要素の追加・省略・変更を施すことができる。
【0190】
(変形例その1)
マップ要素8の編集内容は、上記の例に限らず適宜設定可能である。
例えば、画面左右方向に並んだ複数のマップ要素8の上下位置を揃える処理を、自動補正編集処理(図18のステップS124)に加えてもよい。また別の例として、マップ生成用画像20に、図形や文字を手書きして追加したり、所定の図形をスタンプツールで追加するといった画像補正処理を編集内容の1つとしてもよい。また別の例として、マップ要素8のサイズを、攻略難易度や用途ゲームのゲーム種別、プレイ人数に応じて設定する処理を、マップ要素8の仮配置ではなく、自動補正編集処理にて実行するとしもよい。つまり、攻略難易度や用途ゲームのゲーム種別、プレイ人数に応じて仮の配置構成を編集する、としてもよい。
【0191】
(変形例その2)
上記実施形態では、下地画像部分の抽出を行う画像解析処理の一例としてピクセルの輝度値に基づく二値化処理・エッジ検出処理を実行する例を示したが、ユーザ端末1500がカメラ1521の被写体までの距離を計測できる測距センサ、例えばLiDAR(Light Detection and Ranging)センサなどを搭載している場合は、マップ生成用画像20の画像データに含まれる測距値(又はマップ生成用画像20の画像データとともに取得した当該画像データに紐付けられた測距データ)に基づく二値化処理・エッジ検出処理を実行するとしてもよい。
【0192】
(変形例その3)
「不適切箇所」を検索するために、マップ要素8の仮の配置構成が満たすべき要件である不適切条件は、ゲーム種別や、移動体キャラクタの大きさ、ゲームルールなどにより適宜設定される。
【0193】
もし、マップ生成用画像20を用いた新たなゲームマップ6を使用するゲーム種別の設定が、マップ要素8に囲まれたコースを、移動体オブジェクトで如何に早く移動開始位置から移動目標位置へ移動させるかを競うレースゲームであれば、次のようにしてもよい。すなわち、上下方向通路確保距離Lv(図7参照)や左右方向通路確保距離Lh(図9参照)を、ユーザ希望する攻略難易度の設定が高いほど小さくして、マップ要素8の仮の配置構成を編集する。この場合、移動体オブジェクト(プレーヤキャラクタ4)の移動ルートを見つけ難く編集することになる。逆に、攻略難易度が低いほど上下方向通路確保距離Lvや左右方向通路確保距離Lhを大きく変更してから編集するのであれば、移動体オブジェクト(プレーヤキャラクタ4)の移動ルートを簡単に見つけられるようになる。
【0194】
こうした作用効果を鑑みれば、上下方向通路確保距離Lvや左右方向通路確保距離Lhの変更は、ユーザ希望の攻略難易度に基づく場合に限らず、ユーザのプレイ技量を間接的に示し得るプレーヤ情報(例えば、プレーヤの過去のプレイ成績、過去のプレイ回数、過去のプレイ成績やプレイ回数に応じて自動的に設定されるプレーヤレベル或いはプレーヤキャラクタレベルなど)に基づいて行うとしてもよい。
【0195】
つまり、こうした上下方向通路確保距離Lvや左右方向通路確保距離Lhの変更により、新たに生成されるゲームマップ6の用途ゲームのゲーム種別や、ゲームマップの攻略難易度、ユーザのプレイ情報に基づいて仮の配置構成を編集することとなる。
【0196】
(変形例その4)
マップ要素8の仮配置構成を補正する方法は、上記実施形態に限らない。
例えば、ゲームマップ6をマップ生成用画像20の複数のピクセルを包含できるサイズのグリッド(例えば、16ピクセルで1つのグリッドなど、難易度設定が高いほどピクセル数を小さくする)に分ける。そして、グリッド毎に、当該グリッドに含まれる下地画像部分24(又は輪郭線22)のピクセル数をカウントし、カウント値が所定基準値(例えば「6」)以上であれば、当該グリッド全体を1つのマップ要素8として仮配置する、としてもよい。こうして設定するマップ要素8を「グリッド型マップ要素」と言う。
【0197】
そして、グリッド型マップ要素を仮配置して、塊状の密集の不適切箇所を自動で解消する場合には、次の様なアルゴリズムを適用してもよい。ゲーム種別が第1実施形態と同様であると特に好適である。
【0198】
(1)プレーヤキャラクタ4のゲームマップ6での大まかな移動方向を判定する。移動開始位置10が左端で、移動目標位置12が右端に設定されている場合、移動方向は「左から右」と判定する。移動開始位置10が下端で、移動目標位置12が上端に設定されている場合、移動方向は「下から上」と判定する。
【0199】
(2)塊状の密集を成しているグリッド型マップ要素のうち、移動方向上流側から1つのグリッド型マップ要素について着目し、移動方向下流側のグリッドにグリッド型マップが仮配置されていないかを判定する。
【0200】
(3)着目しているグリッド型マップ要素から見て、移動方向下流側に1つ隣のグリッドに、グリッド型マップが仮配置されている場合は、着目しているグリッド型マップを消去し、グリッド型マップが仮配置されていない場合は、着目しているグリッド型マップを残す。
【0201】
(4)上記(2)と上記(3)とを、不適切箇所に該当するグリッド型マップ全てについて実行する。
【0202】
或いは、ゲームマップ6の全グリッドについて、次のチェックアルゴリズムを適用してもよい。ゲーム種別が第1実施形態と同様であると特に好適である。
【0203】
(a)プレーヤキャラクタ4のゲームマップ6での大まかな移動方向を判定する。
(b)ゲームマップ6の全グリッドから、判定した移動方向の最上流側のグリッドの1つを、着木先のグリッドに選定し、そこにグリッド型マップが仮配置されていないか判定する。
(c)着目先のグリッドにグリッド型マップが仮設定されていなければ、未チェックの隣りのグリッドを次の着目先とする。
(d)着目先のグリッドにグリッド型マップが仮配置されていて、且つ、移動方向下流側に1つ隣のグリッドにグリッド型マップが仮配置されていなければ、当該グリッド型マップを残して、未チェックの隣のグリッドを次の着目先とする。
(e)着目先のグリッドにグリッド型マップが仮配置されていて、且つ、移動方向下流側に1つ隣のグリッドにもグリッド型マップが仮配置されていれば、当該グリッド型マップの仮配置を解除して(当該グリッド型マップを間引きして)、未チェックの隣のグリッドを次の着目先とする。
(f)ゲームマップ6の全グリッドについて上記(c)から上記(e)を実行する。
【0204】
(変形例その5)
上記実施形態から、ユーザがマップ要素8の仮配置構成を手動で変更する仕組みを省略してもよい。具体的には、図18の処理の流れにおいて、ステップS100からステップS122及びステップS126を省略し、ステップS124とステップS128とを残した処理の流れとしてもよい。
【0205】
(変形例その6)
上記実施形態から、マップ要素8の仮配置構成と、不適切箇所を検索と、を省略した構成も可能である。例えば、ユーザ希望設定として想定される内容別に対応する複数種類の抽出条件620(図14参照)を予め用意しておく。そして、処理の流れでは、図17のステップS20に代えて、ユーザが選択した希望設定、或いは、ユーザに該当すると判断した希望設定に応じた抽出条件620を読み出すステップを設ける。また、図17のステップS40で決定された仮配置構成を最終的なマップ要素8の配置構成とみなして、ステップS60からステップS126を省略して、ステップS128を実行する、としてもよい。
【0206】
当該構成では、抽出条件620の抽出用パラメータ値622は、ステップS40を終えた時に、参照した抽出条件620に対応するユーザ希望設定に適当なマップ要素8が設定されるように、多くのテスト画像を用いた実証テストを経て適当な値を予め設定しておくとよい。なお、当該構成において、抽出用パラメータ値622を設定する際に着目すべきは、ユーザ希望設定の攻略難易度、プレーヤキャラクタ4の移動能力、プレイ人数、である。例えば、抽出用パラメータ値622を設定する際には、攻略難易度が高いほど、移動能力が高いほど、プレイ人数が多いほど、ステップS40で設定されるマップ要素8の数が多くなるように、設定するとしてもよい。
【0207】
(変形例その7)
上記実施形態に、マップ生成用画像20から輪郭線22を抽出する際に、明度に基づいて輪郭線22を抽出する構成を追加してもよい。
【0208】
具体的には、マップ生成用画像20の各ピクセルの色情報として、RGB値の他に明度を含めるか、或いはRGB値の合計を明度とみなす。そして、マップ生成画像20を、複数の所定形状の領域でN個に分割する。例えば、四角形で16個の領域に分割する。或いは、六角形を基本形として32個に分割する、などである。形状や個数は適宜設定可能である。
【0209】
また、抽出条件620(図17参照)を、複数の明度範囲別に用意しておく。各種類の抽出条件620は、その明度範囲が示す明るさや暗さの範囲において、輪郭線22が抽出されるような抽出用パラメータ値222が設定されているものとする。そして、領域毎に、当該領域に含まれる各ピクセルの明度の統計値(例えば、中央値、平均値、など)を求め、統計値が明度範囲に収まる抽出条件620を参照して、輪郭線22を抽出する、としてもよい。
【符号の説明】
【0210】
4…プレーヤキャラクタ
6…ゲームマップ
8…マップ要素
10…移動開始位置
12…移動目標位置
20…マップ生成用画像
22…輪郭線
24…下地画像部分
100…操作入力部
200s…サーバ処理部
210…ゲームマップ生成管理部
212…画像取得部
214…ゲームマップ生成制御部
220…仮作成部
221…第1再作成部
222…第2再作成部
223…第3再作成部
224…第4再作成部
230…不適切箇所検索部
232…検索結果通知制御部
240…生成制御部
242…編集部
500s…サーバ記憶部
501…サーバプログラム
504…ゲームマップ生成プログラム
514…不適切条件定義データ
610…ゲームマップ生成制御データ
612…ユーザ希望設定データ
613…マップ生成用画像データ
614…背景画像データ
615…移動開始位置座標
616…移動目標位置座標
622…抽出用パラメータ値
630…下地画像部分抽出結果データ
632…仮配置構成データ
634…仮マップ要素設定データ
636…不適切箇所データ
640…ユーザ作成ゲームマップデータ
663…マップ要素設定データ
1000…ゲームシステム
1100…サーバシステム
1500…ユーザ端末
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20