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

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

▶ 株式会社ポケモンの特許一覧

特開2022-11314シミュレーションシステム、シミュレーション方法、及びシミュレーションプログラム
<>
  • 特開-シミュレーションシステム、シミュレーション方法、及びシミュレーションプログラム 図1
  • 特開-シミュレーションシステム、シミュレーション方法、及びシミュレーションプログラム 図2
  • 特開-シミュレーションシステム、シミュレーション方法、及びシミュレーションプログラム 図3
  • 特開-シミュレーションシステム、シミュレーション方法、及びシミュレーションプログラム 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022011314
(43)【公開日】2022-01-17
(54)【発明の名称】シミュレーションシステム、シミュレーション方法、及びシミュレーションプログラム
(51)【国際特許分類】
   A63F 13/55 20140101AFI20220107BHJP
   A63F 13/69 20140101ALI20220107BHJP
【FI】
A63F13/55
A63F13/69
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2020112357
(22)【出願日】2020-06-30
(71)【出願人】
【識別番号】504440133
【氏名又は名称】株式会社ポケモン
(74)【代理人】
【識別番号】100151688
【弁理士】
【氏名又は名称】今 智司
(72)【発明者】
【氏名】押野 洋介
(57)【要約】      (修正有)
【課題】仮想空間内においてキャラクタを動作させる場合に、ユーザがキャラクタの動作の変化を想定して楽しむことができる。
【解決手段】仮想空間に配置可能なキャラクタに、1つ以上の命令を設定可能であり、複数の命令が設定された場合に命令の実行順序を設定する命令設定部14と、キャラクタに対して設定された命令及び実行順序に基づいて、キャラクタを仮想空間内で動作させる動作制御部18とを備え、命令設定部14が、一のキャラクタと他のキャラクタとのそれぞれについて命令及び実行順序を設定可能であり、動作制御部18が、一のキャラクタ及び他のキャラクタそれぞれを仮想空間内で動作させ、一のキャラクタの存在位置と他のキャラクタの存在位置との少なくとも一部が共通する場合、命令設定部14が設定した命令に基づく動作に優先し、一のキャラクタ及び他のキャラクタの少なくともいずれか一方に所定の動作を実行させる。
【選択図】図2
【特許請求の範囲】
【請求項1】
複数の仮想単位空間により構成される仮想空間に配置可能なキャラクタに、1つ以上の命令を設定可能であり、複数の命令が設定された場合に前記命令の実行順序を設定する命令設定部と、
前記キャラクタに対して設定された前記命令及び前記実行順序に基づいて、前記キャラクタを前記仮想空間内で動作させる動作制御部と
を備え、
前記命令設定部が、一のキャラクタと他のキャラクタとのそれぞれについて前記命令及び前記実行順序を設定可能であり、
前記動作制御部が、前記一のキャラクタ及び前記他のキャラクタそれぞれを前記仮想空間内で動作させ、前記一のキャラクタの存在位置と前記他のキャラクタの存在位置との少なくとも一部が共通する場合、前記命令設定部が設定した前記命令に基づく動作に優先し、前記一のキャラクタ及び前記他のキャラクタの少なくともいずれか一方に所定の動作を実行させるシミュレーションシステム。
【請求項2】
前記命令が、到達位置の指定なしに前記キャラクタを移動させる命令、及び前記仮想単位空間のいずれかにおいて所定の動作を実行させる命令を含む請求項1に記載のシミュレーションシステム。
【請求項3】
前記動作制御部が、前記キャラクタの特徴と、前記キャラクタの存在位置に対応する前記仮想単位空間の特徴とに基づいて、前記キャラクタの動作を制御する請求項1又は2に記載のシミュレーションシステム。
【請求項4】
前記動作制御部は、ユーザの一の操作に応じて、前記一のキャラクタと前記他のキャラクタに対してそれぞれ設定された前記命令及び前記実行順序に基づいた前記仮想空間内での動作を開始する請求項1~3のいずれか1項に記載のシミュレーションシステム。
【請求項5】
前記動作制御部が、前記一のキャラクタの特徴と前記他のキャラクタの特徴との組み合わせ、前記一のキャラクタの前記同一の前記仮想単位空間に位置する前における前記命令、及び前記他のキャラクタの前記同一の前記仮想単位空間に位置する前における前記命令からなる群から選択される少なくとも1つに基づいて、前記一のキャラクタ及び前記他のキャラクタの少なくともいずれか一方の動作を制御する請求項4に記載のシミュレーションシステム。
【請求項6】
前記命令が、前記キャラクタの存在位置である前記仮想単位空間に隣接する他の仮想単位空間に前記キャラクタの存在に起因する派生オブジェクトを発生させる命令を含み、
前記動作制御部が、前記仮想単位空間に前記キャラクタが存在し、前記派生オブジェクトが発生する前記他の仮想単位空間に他のキャラクタが存在する場合、前記他のキャラクタの特徴と前記派生オブジェクトの特徴とに基づいて、前記他のキャラクタの動作を制御する請求項1~5のいずれか1項に記載のシミュレーションシステム。
【請求項7】
前記動作制御部が、前記キャラクタの存在位置若しくは移動先である前記仮想単位空間において、前記命令設定部が設定した前記命令の実行ができないと判断した場合、予め定められた動作を実行する請求項1~6のいずれか1項に記載のシミュレーションシステム。
【請求項8】
キャラクタを動作させるシミュレーションシステムのシミュレーション方法であって、
複数の仮想単位空間により構成される仮想空間に配置可能なキャラクタに、1つ以上の命令を設定可能であり、複数の命令が設定された場合に前記命令の実行順序を設定する命令設定工程と、
前記キャラクタに対して設定された前記命令及び前記実行順序に基づいて、前記キャラクタを前記仮想空間内で動作させる動作制御工程と
を備え、
前記命令設定工程において、一のキャラクタと他のキャラクタとのそれぞれについて前記命令及び前記実行順序を設定可能であり、
前記動作制御工程において、前記一のキャラクタ及び前記他のキャラクタそれぞれを前記仮想空間内で動作させ、前記一のキャラクタの存在位置と前記他のキャラクタの存在位置との少なくとも一部が共通する場合、前記命令設定工程において設定された前記命令に基づく動作に優先し、前記一のキャラクタ及び前記他のキャラクタの少なくともいずれか一方に所定の動作を実行させるシミュレーション方法。
【請求項9】
キャラクタを動作させるシミュレーションシステム用のシミュレーションプログラムであって、
コンピュータに、
複数の仮想単位空間により構成される仮想空間に配置可能なキャラクタに、1つ以上の命令を設定可能であり、複数の命令が設定された場合に前記命令の実行順序を設定する命令設定機能と、
前記キャラクタに対して設定された前記命令及び前記実行順序に基づいて、前記キャラクタを前記仮想空間内で動作させる動作制御機能と
を実現させ、
前記命令設定機能において、一のキャラクタと他のキャラクタとのそれぞれについて前記命令及び前記実行順序を設定可能であり、
前記動作制御機能において、前記一のキャラクタ及び前記他のキャラクタそれぞれを前記仮想空間内で動作させ、前記一のキャラクタの存在位置と前記他のキャラクタの存在位置との少なくとも一部が共通する場合、前記命令設定機能において設定された前記命令に基づく動作に優先し、前記一のキャラクタ及び前記他のキャラクタの少なくともいずれか一方に所定の動作を実行させるミュレーションプログラム。
【請求項10】
複数の仮想単位空間により構成される仮想空間に配置可能なキャラクタに、1つ以上の命令を設定可能であり、複数の命令が設定された場合に前記命令の実行順序を設定する命令設定部と、
前記キャラクタに対して設定された前記命令及び前記実行順序に基づいて、前記キャラクタを前記仮想空間内で動作させる動作制御部と
を備え、
前記命令設定部が、一のキャラクタと他のキャラクタとのそれぞれについて前記命令及び前記実行順序を設定可能であり、
前記動作制御部が、前記一のキャラクタ及び前記他のキャラクタそれぞれを前記仮想空間内で動作させ、前記一のキャラクタの存在位置と前記他のキャラクタの存在位置との少なくとも一部が共通する場合、前記命令設定部が設定した前記命令に基づく動作に優先し、前記一のキャラクタ及び前記他のキャラクタの少なくともいずれか一方に所定の動作を実行させるシミュレーションサーバ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シミュレーションシステム、シミュレーション方法、及びシミュレーションプログラムに関する。特に、本発明は、仮想空間においてキャラクタが動作するシミュレーションシステム、シミュレーション方法、及びシミュレーションプログラムに関する。
【背景技術】
【0002】
従来、操作手段と演算手段と記憶手段とを少なくとも備え、演算手段が、操作手段からゲームプレイヤが入力する情報、並びに、記憶手段に記憶されているゲームプログラム及びデータに基づいて演算することでゲームを進行させるゲームシステムであって、演算手段が、ゲームプレイヤが自分に割り当てられたキャラクタの行動を指示することにより、シナリオをこなしていく形式のロール・プレイング・ゲームと、ゲームプレイヤが任意に編集することにより、ゲームプレイヤ独自の世界を造り上げていく形式のシミュレーション・ゲームとを並行して進行させ、これら2つのゲームを関連付けるゲームシステムが知られている(例えば、特許文献1参照)。特許文献1に記載のゲームシステムによれば、ゲームプレイヤ独自の世界をロール・プレイング・ゲームの世界に設けることで、数多くのロール・プレイング・ゲームを体験したゲームプレイヤであっても、飽きずにゲームを楽しめることができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2001-079269号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1に記載のゲームシステムにおいては、キャラクタの行動をユーザが設定できるものの、当該キャラクタはユーザの設定どおり忠実に行動し、行動範囲に制限がないことからキャラクタの行動に意外性を持たせることは困難である。また、特許文献1に記載のゲームシステムにおいては、キャラクタと他のキャラクタやオブジェクト等との間でいかなる相互作用が発生するかについてユーザは想定する余地がない。
【0005】
したがって、本発明の目的は、仮想空間内においてキャラクタを動作させる場合に、ユーザがキャラクタの動作の変化を想定して楽しむことができるシミュレーションシステム、シミュレーション方法、及びシミュレーションプログラムを提供することにある。
【課題を解決するための手段】
【0006】
本発明は、上記目的を達成するため、複数の仮想単位空間により構成される仮想空間に配置可能なキャラクタに、1つ以上の命令を設定可能であり、複数の命令が設定された場合に命令の実行順序を設定する命令設定部と、キャラクタに対して設定された命令及び実行順序に基づいて、キャラクタを仮想空間内で動作させる動作制御部とを備え、命令設定部が、一のキャラクタと他のキャラクタとのそれぞれについて命令及び実行順序を設定可能であり、動作制御部が、一のキャラクタ及び他のキャラクタそれぞれを仮想空間内で動作させ、一のキャラクタの存在位置と他のキャラクタの存在位置との少なくとも一部が共通する場合、命令設定部が設定した命令に基づく動作に優先し、一のキャラクタ及び他のキャラクタの少なくともいずれか一方に所定の動作を実行させるシミュレーションシステムが提供される。
【発明の効果】
【0007】
本発明に係るシミュレーションシステム、シミュレーション方法、及びシミュレーションプログラムによれば、仮想空間内においてキャラクタを動作させる場合に、ユーザがキャラクタの動作の変化を想定して楽しむことができるシミュレーションシステム、シミュレーション方法、及びシミュレーションプログラムを提供できる。
【図面の簡単な説明】
【0008】
図1】本実施形態に係るシミュレーションシステムの概要図である。
図2】本実施形態に係るシミュレーションシステムの機能構成ブロック図である。
図3】本実施形態に係る格納ユニットが有する各格納部のデータ構成図である。
図4】本実施形態に係るシミュレーションシステムにおける処理のフロー図である。
【発明を実施するための形態】
【0009】
[実施の形態]
<シミュレーションシステム1の概要>
本実施形態に係るシミュレーションシステム1は、仮想空間(フィールド)にキャラクタを配置し、当該キャラクタに仮想空間において実行して欲しい1つ以上のお願いと、お願いの実行順序とを設定する。そして、シミュレーションシステム1は、仮想空間において実行順序に沿ってキャラクタにお願いを実行させる。また、シミュレーションシステム1は、仮想空間に複数のキャラクタを配置し、各キャラクタそれぞれにお願い及びその実行順序を設定することができる。そして、シミュレーションシステム1は、各キャラクタが仮想空間において動作し、同一位置に一のキャラクタと他のキャラクタ若しくは所定のオブジェクト等とが存在することになる場合、一のキャラクタの特徴と他のキャラクタの特徴若しくは所定のオブジェクト等の特徴との組み合わせ、及び/又は当該位置に存在する前において一のキャラクタ及び/又は他のキャラクタが実行したお願い等に基づいて、設定したお願いと共に、若しくは設定したお願いに優先し、一のキャラクタ及び/又は他のキャラクタに所定の動作を実行させる。
【0010】
更に、シミュレーションシステム1は、仮想空間を複数の仮想単位空間から構成する。そして、各仮想単位空間には固有の特徴を対応付けることができる。シミュレーションシステム1は、キャラクタが仮想空間において動作する場合において、キャラクタの特徴と当該キャラクタが存在している仮想単位空間の特徴との組み合わせ、及び/又は当該位置に存在する前において当該キャラクタが実行したお願い等に基づいて、設定したお願いと共に若しくは設定したお願いに優先し、当該キャラクタに所定の動作を実行させることもできる。
【0011】
図1は、本実施形態に係るシミュレーションシステムの概要の一例を示す。
【0012】
具体的に、シミュレーションシステム1は、ユーザが設定したお願い(以下、「命令」という。)及び命令の実行順序に基づいて、仮想空間内でキャラクタに所定の動作を実行させるシステムである。そして、本実施形態において仮想空間は、複数の構成単位(以下、「仮想単位空間」と呼ぶ。)が連結して構成される。一例として、図1(a)に示すように、仮想空間100は、複数の仮想単位空間110の集合体で構成される。図1(a)では、立方体形状の複数の仮想単位空間110(つまり、仮想的な立体マス)が集合し、立方体形状の仮想空間100が構成される例を示す(一例として、5×5×5の仮想単位空間の集合体により仮想空間100が構成される例を示すが、集合体のサイズはこれに限定されない。例えば、仮想空間は、m×n×oの仮想単位空間の集合体であってよい。ただし、m、n、oはそれぞれ同一の若しくは異なる正の整数である。)。なお、仮想空間100の形状は立方体形状に限られず、複数の仮想単位空間110の集合体であればいかなる形状であってもよい。このように仮想単位空間110で仮想空間100を構成することにより、仮想的な立体マス間でのキャラクタの移動指定(つまり、仮想単位空間110単位での移動指定)や、立体マス中でのキャラクタの所定の動作の指定が可能になるので、キャラクタの移動や動作について自由度が高いにも関わらず、操作が容易なシミュレーションシステム1を提供できる。
【0013】
また、仮想単位空間110の形状に特に限定はない。ただし、仮想単位空間110は、仮想空間100の構成の容易性等の確保等の観点から、例えば、立方体形状を有して構成されることが好ましい。また、複数の仮想空間100を連結させてもよい。なお、仮想単位空間110は、直方体形状や球状等、他の形状を有して構成されてもよい。また、仮想単位空間110は、同一若しくは互いに異なる形状の複数の仮想単位空間をつなぎ合わせ、つなぎ合わされた部分(接合部分)を存在しないものとして扱い、つなぎ合わされた複数の仮想単位空間を1つの仮想単位空間として扱ってもよい。本実施形態では、仮想単位空間110が立方体形状であり、仮想空間100も立方体形状である例を説明する。
【0014】
まず、シミュレーションシステム1は、ユーザからの指示に応じ若しくは予め、仮想空間100に所定のキャラクタを配置する。一例として、図1(b)に示すように、仮想単位空間110aにキャラクタ50が、仮想単位空間110bにキャラクタ52が、仮想単位空間110cにキャラクタ54が、仮想単位空間110dにオブジェクト60が、仮想単位空間110eにキャラクタ56が、仮想単位空間110fにキャラクタ58が配置される。ここで、キャラクタ50、キャラクタ52、及びキャラクタ54は同一種類のキャラクタであり、キャラクタ56はキャラクタ58よりもサイズが小さいキャラクタである。また、オブジェクト60は、キャラクタの干渉により破壊可能なオブジェクトである。図1(b)では複数のキャラクタ及びオブジェクトを仮想空間100に配置している例を示すが、仮想空間100に配置するキャラクタは1以上であればよい。
【0015】
なお、図1(b)においては、説明の簡略化のため、各仮想単位空間の下面のみ示す(よって、図1(b)においては、仮想空間100の下面102のみが示されている。)。したがって、シミュレーションシステム1は、仮想空間100の下面102だけではなく、下面102より上方の仮想単位空間(図示しない)にキャラクタやオブジェクトを設置することもできる。また、図1(b)においては、仮想単位空間110aから仮想単位空間110bに向かう方向を「前方」として設定する。
【0016】
ここで、キャラクタとは、シミュレーションシステム1に登場可能なキャラクタであって仮想空間100に配置可能であり、仮想空間100内における動作についてユーザが命令を設定できるキャラクタである。また、オブジェクトとは、仮想空間100を構成する所定の仮想単位空間110にユーザの指示に応じて設置可能なオブジェクトであって、キャラクタによる干渉が可能な、若しくは不可能な配置物等を表すオブジェクトである。また、仮想単位空間110には、仮想単位空間の地形や天候等の特徴が設定されてもよい。なお、オブジェクトには、仮想空間100内で実質的に動作しないキャラクタや、キャラクタの動作に付随するオブジェクトである派生オブジェクト、及び仮想単位空間110の地形や天候等に付随する環境に特有なオブジェクト(環境オブジェクト)も含まれる。
【0017】
更に、干渉とは、一のキャラクタが他のキャラクタ及び/又はオブジェクトと同一の若しくは近傍の仮想単位空間に存在する場合、及び/又は一のキャラクタが所定の仮想単位空間若しくは所定の仮想単位空間の近傍の仮想単位空間に存在する場合に、一のキャラクタが他のキャラクタ及び/又はオブジェクトに所定の影響を与えること、及び/又は一のキャラクタが所定の仮想単位空間に所定の影響を与え得ることを意味する。所定の影響には様々な影響が挙げられる。例えば、一のキャラクタを他の仮想単位空間に押し出す影響や同一の仮想単位空間内のオブジェクトを破壊する等の影響、更には仮想単位空間の状況を変化させる影響等、様々な影響を設定できる。
【0018】
例えば、図1(b)において、キャラクタ50、キャラクタ54、及びキャラクタ56のそれぞれにユーザは命令を設定する。一例として、キャラクタ50及びキャラクタ54に、「前に進む」ことを示す命令(第1の命令)と、「前にジャンプする」ことを示す命令(第2の命令)とが設定され、第1の命令の後に第2の命令が実行される実行順序が設定される。また、図1(b)の下図に示すように、キャラクタ56にも第1の命令と第2の命令とが設定され、更に、第1の命令300aを2回繰り返す命令300bと、その後に第2の命令300cを実行し、これらを1セットとして3回繰り返す命令300d(つまり、第1の命令を2回繰り返した後に第2の命令を実行することを1セットとし、これを3回繰り返す命令)が設定される。一方、キャラクタ52、及びキャラクタ58については命令を設定しない(若しくは、その場に「留まる」命令を設定する。)。なお、オブジェクト60は仮想単位空間110dに配置されるだけである。
【0019】
ここで、シミュレーションシステム1は、ユーザが設定した命令及び命令の実行順序をユーザに知覚可能に出力できる。例えば、シミュレーションシステム1は情報端末において実行可能であり、仮想空間100と共に若しくは別に、ユーザが設定した命令及び実行順序を情報端末の表示部に表示させることができる。例えば、図1(b)の下図のようなテキスト及び図形を用いて命令内容とその実行順序が命令300として表示される(図1(b)の下図の例では、キャラクタ56に設定された命令内容が表示されている。)。そして、シミュレーションシステム1は、ユーザが設定した命令をユーザが設定した実行順序で実行することにより、仮想空間100内でキャラクタを動作させる。
【0020】
なお、シミュレーションシステム1においては、命令及び命令の実行順序をキャラクタに設定した後、当該キャラクタの一の仮想単位空間から他の仮想単位空間に移る動作(移動動作)について、ユーザの指示による変更や停止の指示は原則として禁止される。ただし、シミュレーションシステム1は、キャラクタが存在する仮想単位空間内で実行する動作(例えば、技の発動、その場でジャンプする等の動作)については、シミュレーションシステム1がキャラクタの動作を実行中であってもユーザの指示に応じて動作可能にしてもよい。
【0021】
(キャラクタ50とキャラクタ52との例)
例えば、図1(b)及び図1(c)に示すように、キャラクタ50は第1の命令後に第2の命令を実行する。つまり、キャラクタ50は、仮想単位空間110aから前に進み(第1の命令の実行)、次に前にジャンプして(第2の命令の実行)仮想単位空間110bに到達する。ここで、第2の命令を実行した場合、キャラクタ50とキャラクタ52とは同一の仮想単位空間110bに存在することになる。この場合、シミュレーションシステム1は、キャラクタ50の特徴とキャラクタ52の特徴との組み合わせ、及びキャラクタ50が仮想単位空間110bに到達する直前の命令に基づいて、キャラクタ50の仮想単位空間110bにおける動作を制御する。つまり、シミュレーションシステム1は、ユーザの設定によらずに(若しくは優先し)、予め定められた条件に基づいてキャラクタ50の動作を制御する。
【0022】
例えば、シミュレーションシステム1は、同一の仮想単位空間に存在する複数のキャラクタが同一種類のキャラクタであり、一のキャラクタが当該仮想単位空間に隣接する仮想単位空間から「ジャンプ」により当該仮想単位空間に到達した場合、仮想単位空間に存在する他のキャラクタの上に一のキャラクタを乗せる動作を実行させることを予め設定しておく。そして、キャラクタ50とキャラクタ52とは同一種類のキャラクタであり、キャラクタ50は仮想単位空間110bに到達する直前に第2の命令(前にジャンプする命令)を実行したので、シミュレーションシステム1は図1(c)に示すように、キャラクタ52の上にキャラクタ50が乗るようにキャラクタ50を動作させる。なお、シミュレーションシステム1は、同一の仮想単位空間に存在する複数のキャラクタが同一種類のキャラクタであり、一のキャラクタが当該仮想単位空間に隣接する仮想単位空間から「前に進む」により当該仮想単位空間に到達した場合、仮想単位空間に存在する他のキャラクタに衝突し、一のキャラクタがその場(他のキャラクタが存在する仮想単位空間に隣接する仮想単位空間)に留まる動作、又は一のキャラクタ及び他のキャラクタ双方が互いに逆向きに跳ね飛ばされる動作等を実行させることを予め設定しておくこともできる。
【0023】
(キャラクタ54とオブジェクト60との例)
また、例えば、図1(b)及び図1(c)に示すように、キャラクタ54は第1の命令後に第2の命令を実行する。つまり、キャラクタ54は、仮想単位空間110cから前に進み(第1の命令の実行)、次に前にジャンプして(第2の命令の実行)仮想単位空間110dに到達する。ここで、第2の命令を実行した場合、キャラクタ54とオブジェクト60とは同一の仮想単位空間110dに存在することになる。この場合、シミュレーションシステム1は、キャラクタ54の特徴とオブジェクト60の特徴との組み合わせ、及びキャラクタ54が仮想単位空間110dに到達する直前の命令に基づいて、キャラクタ54の仮想単位空間110dにおける動作を制御する。
【0024】
例えば、シミュレーションシステム1は、同一の仮想単位空間に一のキャラクタと所定のオブジェクトとが存在する場合において、所定のオブジェクトがキャラクタからの所定の干渉が可能であることを予め設定しておく。ここでの干渉は、一例として、キャラクタによる所定のオブジェクトの破壊が可能であることを示す。そして、シミュレーションシステム1は、一のキャラクタが当該仮想単位空間に隣接する仮想単位空間から「前にジャンプ」により当該仮想単位空間に到達した場合、当該仮想単位空間に存在するオブジェクトを破壊する動作を実行させることを予め設定しておく。そうすると、キャラクタ54は仮想単位空間110dに到達する直前に第2の命令(前にジャンプする命令)を実行したので、シミュレーションシステム1は図1(c)に示すように、キャラクタ54によりオブジェクト60が破壊され、オブジェクト60の破片である複数のオブジェクト60aが仮想単位空間110dの周囲に散らばるように、キャラクタ54を動作させる。なお、同一の仮想単位空間に一のキャラクタと所定のオブジェクトとが存在する場合において、所定のオブジェクトがキャラクタからの所定の干渉が不可能であることを予め設定した場合であって、一のキャラクタが当該仮想単位空間に隣接する仮想単位空間から「前にジャンプ」若しくは「前に進む」により当該仮想単位空間に到達した場合、仮想単位空間に存在するオブジェクトを破壊せず、オブジェクトにより一のキャラクタが弾かれて元の仮想単位空間に戻る動作を実行させることを予め設定しておくこともできる。
【0025】
(キャラクタ56とキャラクタ58との例)
更に、例えば、図1(b)及び図1(c)に示すように、キャラクタ56は2回の第1の命令実行後に第2の命令を実行する。つまり、キャラクタ56は、仮想単位空間110eから前に2マス進み(第1の命令の2回の実行)、次にジャンプして(第2の命令の実行)仮想単位空間110fに到達する。ここで、第2の命令を実行した場合、キャラクタ56とキャラクタ58とが同一の仮想単位空間110fに存在することになる。この場合、シミュレーションシステム1は、キャラクタ56の特徴とキャラクタ58の特徴との組み合わせ、及びキャラクタ56が仮想単位空間110fに到達する直前の命令に基づいて、キャラクタ56の仮想単位空間110fにおける動作を制御する。
【0026】
例えば、シミュレーションシステム1は、同一の仮想単位空間に存在する複数のキャラクタが互いに異なる種類のキャラクタであり、当該仮想単位空間に到達する一のキャラクタのサイズが、当該仮想単位空間に既に存在する他のキャラクタのサイズより小さい場合であって、一のキャラクタが当該仮想単位空間に隣接する仮想単位空間から「ジャンプ」により当該仮想単位空間に到達した場合、仮想単位空間に存在する他のキャラクタに衝突し、一のキャラクタが移動してきた元の仮想単位空間より更に後方の仮想単位空間に後退する動作を一のキャラクタに実行させることを予め設定しておく。また、この場合、サイズがより大きいキャラクタ(この場合、他のキャラクタ)は、当該仮想単位空間に存在したままの動作を実行させることを予め設定しておく。
【0027】
そして、キャラクタ56とキャラクタ58とは互いに異なる種類のキャラクタであり、キャラクタ58のサイズがキャラクタ56のサイズより大きい。そこで、シミュレーションシステム1は、キャラクタ56が仮想単位空間110fに到達する直前に第2の命令(ジャンプする命令)を実行したので、図1(c)に示すように、キャラクタ58によってキャラクタ56が弾かれ、移動してきた元の経路を後退して仮想単位空間110gに戻るように動作させる。その後、シミュレーションシステム1は、キャラクタ56に設定した命令が、2回の第1の動作と1回の第2の動作を1セットにして3回繰り返す内容であるので、キャラクタ56に次のセットの第1の動作を実行させる。
【0028】
この場合、キャラクタ56は、2回目の第1の命令において仮想単位空間110fにおいてキャラクタ58と同一の仮想単位空間に位置することになる。ここで、例えば、シミュレーションシステム1は、同一の仮想単位空間に存在する複数のキャラクタが互いに異なる種類のキャラクタであり、当該仮想単位空間に到達する一のキャラクタのサイズが、当該仮想単位空間に既に存在する他のキャラクタのサイズより小さい場合であって、一のキャラクタが当該仮想単位空間に隣接する仮想単位空間から「前に進む」により当該仮想単位空間に到達した場合、当該仮想単位空間に存在する他のキャラクタに衝突し、一のキャラクタが移動してきた仮想単位空間であって他のキャラクタが存在する仮想単位空間に隣接する仮想単位空間に留まる動作を実行させることを予め設定しておく。また、この場合、サイズがより大きいキャラクタ(この場合、他のキャラクタ)は、当該仮想単位空間に存在したままの動作を実行させることを予め設定しておく。したがって、この場合、キャラクタ56は、仮想単位空間110hに留まる動作を実行する。
【0029】
なお、キャラクタ及びオブジェクトは複数の仮想単位空間110を占めるサイズであってもよい。例えば、2×2×2の8つの仮想単位空間110を占めるサイズのキャラクタ及び/又はオブジェクトや、2×2×1の4つの仮想単位空間110を占めるサイズのキャラクタ及び/又はオブジェクト等、複数の仮想単位空間110を占める様々なサイズのキャラクタ及び/又はオブジェクトを用いることができる。そして、この場合、「干渉」とは、一のキャラクタ及び/又はオブジェクトが占める1以上の仮想単位空間110と他のキャラクタ及び/又はオブジェクトが占める1以上の仮想単位空間110とが一致する場合だけではなく、少なくとも一部が共通する場合に、一のキャラクタが他のキャラクタ及び/又はオブジェクトに所定の影響を与えること、及び/又は一のキャラクタが所定の仮想単位空間に所定の影響を与え得ることを指す。例えば、一のキャラクタが複数の仮想単位空間110を占めており、他のキャラクタが当該複数の仮想単位空間110の全て若しくは一部と重なる場合(つまり、一のキャラクタの存在位置と他のキャラクタの存在位置との少なくとも一部が共通する場合)、「干渉」が発生するとしてよい。また、一のキャラクタ及び/又はオブジェクトが占める1以上の仮想単位空間110と他のキャラクタ及び/又はオブジェクトが占める1以上の仮想単位空間110とが一致する場合、一部が共通する場合とは異なり、特別な干渉として認識し、予め定められた所定の干渉処理を実行してもよい。
【0030】
このようにシミュレーションシステム1においては、まず、キャラクタに対する命令の設定、及び当該命令の実行順序の設定を、ユーザは自由にできる。そして、シミュレーションシステム1においては、ユーザが設定した命令及び命令の実行順序に従ってキャラクタの動作の実行が開始され、所定の場合にキャラクタと他のキャラクタ等との間で干渉が発生する。干渉が発生した場合、シミュレーションシステム1は、キャラクタと他のキャラクタ等との関係やキャラクタの直前の動作等に基づいて、キャラクタが実行する動作を制御できる。
【0031】
なお、仮想空間100は複数の仮想単位空間110から構成され、命令が設定されたキャラクタは、一の仮想単位空間110から他の仮想単位空間110へと仮想単位空間ごとに移動できる。したがって、キャラクタ同士、及び/又はキャラクタとオブジェクト等との間の干渉の発生を仮想単位空間ごとに制御できるので、キャラクタへの移動命令を厳密に制御することなく(つまり、キャラクタ同士やキャラクタとオブジェクトとの接触判定を厳密に設定することなく)、ユーザは、干渉の発生自体について容易に想定できる(ただし、いかなる干渉が発生するかについてはユーザに干渉内容を通知することはないので、実際に干渉が発生するまでユーザは容易には想定できない。)。
【0032】
つまり、シミュレーションシステム1においては、ユーザが設定した命令及び/又は命令の順序がユーザの設定どおりに実行されるとは限らず、仮想空間100に配置するキャラクタの特徴、オブジェクトの特徴、及び/又は仮想単位空間110の特徴の組み合わせにより、キャラクタの動作に様々な変化が生じる。したがって、シミュレーションシステム1によれば、ユーザは、複数のキャラクタを用いる場合、あるキャラクタにどのようなキャラクタを用いると興味深い挙動を観察することができるかや、仮想空間100に配置するオブジェクトによってキャラクタの動作がどのように変化するのか等、様々な動作や動作の変化を検討・想定・想像しつつシミュレーションを実行できる。これにより、シミュレーションシステム1においては、ユーザはキャラクタやオブジェクト、及び/又は仮想単位空間の様々な組み合わせを試行し、キャラクタ同士の挙動やキャラクタの仮想空間100内での挙動を観察して楽しむことができる。
【0033】
なお、シミュレーションシステム1は、携帯電話やスマートフォン、ノートパソコン、タブレット型PC、PC、携帯用ゲーム機、及び/又は家庭用ゲーム機等の情報端末等で実現できる。そして、以下において本実施形態に係るシミュレーションシステム1の詳細を説明するが、上記説明及び下記説明における名称や数値等はあくまで例示であり、これらの固有名や数値に本発明が限定されることはないこと、及びこれら固有名や数値は実在の固有名や数値とは必ずしも関係するとは限らないことを付言する。
【0034】
<シミュレーションシステム1の詳細>
図2は、本実施形態に係るシミュレーションシステムの機能構成の一例を示す。また、図3は、本実施形態に係る格納ユニットが有する各格納部のデータ構成の一例を示す。
【0035】
[シミュレーションシステム1の構成の概要]
本実施形態に係るシミュレーションシステム1は、所定の指示や情報の入力を受け付ける入力部10と、キャラクタ等を仮想空間100に配置する配置部12と、キャラクタに実行させる命令を設定する命令設定部14と、命令の実行を受け付ける実行受付部16と、キャラクタの動作を制御する動作制御部18と、キャラクタの動作等を出力する出力部20と、各種の情報を格納する格納ユニット22と、仮想単位空間やオブジェクト等に変形等を加える編集部24と、キャラクタに経験値を付与する経験値付与部26と、ユーザに命令のヒントを提示するヒント提示部28とを備える。
【0036】
格納ユニット22は、キャラクタに関する情報を格納するキャラクタ情報格納部220と、仮想単位空間に関する情報を格納する単位空間情報格納部221と、命令に関する情報を格納する命令情報格納部222と、キャラクタに対する干渉に関する情報を格納するキャラクタ干渉情報格納部223と、仮想空間に対する干渉に関する情報を格納する空間干渉情報格納部224と、オブジェクトに関する情報を格納するオブジェクト情報格納部225と、オブジェクトに対する干渉に関する情報を格納するオブジェクト干渉情報格納部226と、キャラクタの一連の動作に関する情報を格納する動作シーケンス情報格納部227とを有する。
【0037】
シミュレーションシステム1は、上記複数の構成要素を物理的に同一の装置や場所に有するだけでなく、上記複数の構成要素の一部を物理的に離れた位置に設置してもよい。例えば、シミュレーションシステム1は、構成要素の機能の一部を外部のサーバに担わせてもよい。また、シミュレーションシステム1は、一以上のサーバとして構成してもよい。この場合、情報端末、並びに一のサーバの構成要素及び他のサーバの構成要素を組み合わせることで、シミュレーションシステム1が構成される。また、本実施形態において、所定の構成要素の集合体を1つの「情報処理装置」として把握することができ、シミュレーションシステム1を複数の情報処理装置の集合体として形成してもよい。1つ又は複数のハードウェアに対して本実施形態に係るシミュレーションシステム1を実現することに要する複数の機能の配分の仕方は、各ハードウェアの処理能力及び/又はシミュレーションシステム1に求められる仕様等に鑑みて適宜決定することができる。更に、格納ユニット22が格納する各種の情報は、入力部10を介して受け付けるユーザの指示や情報により更新されてもよく、シミュレーションシステム1の外部に存在する所定のサーバから所定の情報を取得して、随時、更新されてもよい。
【0038】
[シミュレーションシステム1の構成の詳細]
以下の説明においては、シミュレーションシステム1により提供されるシミュレーションを、主としてユーザが情報端末を用いて実行する場合を例として説明する。
【0039】
(入力部10、出力部20)
入力部10は、ユーザからの所定の指示等の入力を受け付ける。入力部10は、例えば、情報端末のタッチパネル、キーボード、マウス、マイク、モーションセンサ等である。入力部10は、シミュレーションシステム1の所定の構成要素に当該指示を供給する。当該指示を受け付けた各構成要素はそれぞれ所定の機能を発揮する。
【0040】
出力部20は、シミュレーションシステム1においてキャラクタによる動作の実行前、実行中、及び/又は実行後の各種の処理結果、並びに仮想空間100の様子を出力する。出力部20は、各種の処理結果や格納ユニット22が格納している情報、仮想空間100の様子等をユーザが知覚可能に出力する。具体的に出力部20は、各種処理結果や格納している情報等を、所定形式のデータ、静止画像、動画像、音声、テキスト、及び/又は振動等の物理現象等として出力する。例えば、出力部20は、情報端末の表示部、スピーカー、振動部(情報端末内に設けられ、所定の電気信号により振動を発生させる装置)、発光部、又はデータ出力部等である。そして、出力部20は、ユーザの指示に応じ、ユーザが設定した仮想空間100へのキャラクタやオブジェクト等の配置に関する情報、キャラクタやオブジェクトに設定した命令及び命令順序を示す情報、及び/又は干渉により所定の動作を実行したキャラクタの当該動作に関する情報等を所定のデータ形式で外部に出力することもできる。また、出力部20は、外部のサーバから受け取る情報も出力できる。
【0041】
(格納ユニット22)
格納ユニット22は、シミュレーションシステム1に関連する各種の情報を格納する。格納ユニット22が有する各格納部は、シミュレーションシステム1の他の構成要素からの要求に応じ、所定の情報を所定の構成要素に供給する。
【0042】
(格納ユニット22:キャラクタ情報格納部220)
キャラクタ情報格納部220は、シミュレーションに用いられるキャラクタに関する情報を格納する。具体的に、キャラクタ情報格納部220は、キャラクタを識別するキャラクタIDに対応付けて、キャラクタ情報等を格納する。キャラクタ情報はキャラクタの特徴であって、例えば、キャラクタの属性、キャラクタの種類、キャラクタの名称、キャラクタの性別、キャラクタの能力、キャラクタの技、キャラクタのサイズ、キャラクタの重量(体重)、経験値、レベル等を示す情報である。
【0043】
なお、属性とは、各キャラクタに設定される情報であり、例えば、キャラクタの種類、状態、性質、若しくは能力等に応じて設定されるキャラクタが有する特徴である。属性としては特に限定されないが、例えば、ノーマル、ほのお、みず、くさ、こおり、でんき、ゴースト等の名称の属性が挙げられる。なお、一のキャラクタには複数の属性が設定されてもよい。また、属性は、キャラクタが覚えている「技」や有しているアイテムに設定される「スキル」等の属性であってもよい。この場合、例えば、キャラクタは、キャラクタ自身の属性と、キャラクタが覚えている「技」の属性(キャラクタ自身の属性と同一でも異なっていてもよい)との双方を有していてもよい。
【0044】
(格納ユニット22:単位空間情報格納部221)
単位空間情報格納部221は、仮想単位空間を識別する仮想単位空間IDに対応付けて、仮想空間内における仮想単位空間の位置を示す位置情報、及び仮想単位空間に対応付けられる地形や天候等に関する情報であって、仮想単位空間の特徴を示す情報である仮想単位空間情報を格納する。仮想単位空間情報としては、地形情報、天候情報、干渉可否情報等が挙げられる。
【0045】
地形情報としては、具体的に、草原、海岸、水辺、山岳、岩場、街、墓地等を示す情報が挙げられ、仮想単位空間は、対応付けられている地形情報に基づいて当該地形情報に対応する地形を示す仮想単位空間として出力部20から出力される。例えば、仮想単位空間として、草原、岩場、水辺等の複数種類それぞれの地形に特徴的なオブジェクト(このオブジェクトはユーザが配置することも、シミュレーションシステム1が予め配置することもできるオブジェクトであってよい)等を含む仮想単位空間が予め準備されていてよい。また、天候情報としては、仮想単位空間ごとに設定可能な天候に関する情報であって、例えば、晴天、曇天、雨天、雷雨、雪等を示す情報である。天候情報が対応付けられた仮想単位空間は、対応付けられている天候情報に基づいて当該天候情報に対応する天候を示す仮想単位空間として出力部20から出力される。
【0046】
また、干渉可否情報とは、ユーザ及び/又はキャラクタによる仮想単位空間に対する干渉が可能か否かを示す情報である。例えば、干渉可否情報が干渉可能であることを示す情報である場合、編集部24は、干渉可能である仮想単位空間についてはユーザによる所定の指示を入力部10を介して受け付けて、当該指示を仮想単位空間に反映させることができる。例えば、仮想単位空間の地形を変形する干渉が可能である場合、ユーザの指示に応じ、編集部24は、仮想単位空間の地形を変形することができる(一例として、山岳地形を崩す変形や平らな地面に土等をもって隆起させる変形、沼地等を埋め立てる変形等)。また、干渉可否情報が干渉可能であることを示す情報である場合、干渉可能である仮想単位空間については、キャラクタによる破壊等の干渉も有効にしてよい。一方、干渉可否情報が干渉不可能であることを示す情報である場合、干渉不可能である仮想単位空間についてはユーザ及びキャラクタによる干渉が禁止される。
【0047】
(格納ユニット22:命令情報格納部222)
命令情報格納部222は、命令を識別する命令IDに対応付けてキャラクタに実行させる命令内容を示す命令情報を格納する。命令情報格納部222は、複数の命令情報を格納する。
【0048】
ここで、命令は、仮想空間内の到達位置の指定なしに仮想空間内でキャラクタを移動させる命令(つまり、移動先の仮想単位空間が仮想空間内のいずれの仮想単位空間であるかを指定せず、キャラクタが位置する仮想単位空間を変える動作命令;以下、「第1動作命令」という。)、及び仮想単位空間のいずれかにおいて所定の動作を実行させる命令(つまり、キャラクタが所定の仮想単位空間に位置し、当該キャラクタが当該所定の仮想単位空間で所定の動作を実行する動作命令:以下、「第2動作命令」という。)の少なくともいずれか一方を含む。また、命令は、第1動作命令、及び/又は第2動作命令を所定回数、繰り返す動作命令を含むこともできる。
【0049】
第1動作命令としては、所定の仮想単位空間からの移動(つまり、所定の仮想単位空間に隣接する仮想単位空間にキャラクタの位置を変更する動作)方向や移動量、及び移動方法に関する命令が挙げられ、例えば、前に進む、後ろに戻る、右若しくは左に進む、前にジャンプする、後ろにジャンプする、右若しくは左にジャンプする、飛ぶ、転がる、這う等の命令が挙げられる。また、第2動作命令としては、所定の仮想単位空間から移動せずに所定の動作を実行する命令が挙げられ、キャラクタの向きを所定方向に変える、その場でジャンプする、その場に留まる(待機する)、所定の技(パンチ、キック、電気ショック、その他のキャラクタに特有の技・行動等)を出す、命令を1回休む等の命令が挙げられる。なお、その場に留まる命令としては、キャラクタが座った状態を維持する命令、立った状態を維持する命令、仮想単位空間内を飛行した状態を維持する命令等、当該所定の仮想単位空間に到達する直前の命令若しくは当該所定の仮想単位空間に到達時の命令内容を維持する命令(つまり、「休止」命令)であってよい。
【0050】
また、命令は、キャラクタの存在位置である仮想単位空間に隣接する他の仮想単位空間に当該キャラクタの存在及び技等に起因する派生オブジェクトを発生させる命令を含むこともできる。例えば、キャラクタが所定の技として「火を吐く」技を有しているとする。この場合に、派生オブジェクトを発生させる命令としては、当該キャラクタが所定の仮想単位空間に位置し、かつ、「火を吐く」技を発動した場合、当該仮想単位空間に隣接する他の仮想単位空間に「吐かれた火」を表す派生オブジェクトを発生させる命令である。
【0051】
更に、命令は、キャラクタが所定の条件を満たした場合に所定のキャラクタに変化する(以下、「進化」という。)命令であってもよい。なお、「進化」とは、一のキャラクタが所定の条件を満たした場合に進化先の他のキャラクタに変わることを指す。
【0052】
(格納ユニット22:キャラクタ干渉情報格納部223)
キャラクタ干渉情報格納部223は、一のキャラクタの他のキャラクタに対する干渉が発生した場合における一のキャラクタ及び/又は他のキャラクタの動作を示す動作情報を格納する。すなわち、キャラクタ干渉情報格納部223は、一のキャラクタと他のキャラクタとが同一の仮想単位空間に存在することになった場合に、一のキャラクタ及び/又は他のキャラクタが実行する動作の動作情報を格納する。
【0053】
具体的に、キャラクタ干渉情報格納部223は、一のキャラクタを識別する一のキャラクタID及び他のキャラクタを識別する他のキャラクタIDに対応付けて動作情報を格納する。また、キャラクタ干渉情報格納部223は、一のキャラクタID及び他のキャラクタIDと、当該一のキャラクタが他のキャラクタと同一の仮想単位空間に存在することになる前(好ましくは直前)の命令を示す命令情報(以下、「一のキャラクタの直前の命令情報」という。)及び/又は当該他のキャラクタが一のキャラクタと同一の仮想単位空間に存在することになる前(好ましくは直前)の命令を示す命令情報(以下、「他のキャラクタの直前の命令情報」という。)とに対応付けて動作情報を格納してもよい。
【0054】
動作情報は、例えば、一のキャラクタと他のキャラクタとの組み合わせ、一のキャラクタのキャラクタ情報と他のキャラクタのキャラクタ情報との組み合わせ等によって設定される。また、動作情報は、一のキャラクタが他のキャラクタと同一の仮想単位空間に至るまでに実行した命令、若しくは同一の仮想単位空間に至る直前に実行した命令によって設定することもできる。
【0055】
なお、キャラクタ干渉情報格納部223は、キャラクタを特徴づける情報(例えば、キャラクタの属性、サイズ、重量等)に対応付けて、デフォルトの動作情報を格納することもできる。すなわち、キャラクタ干渉情報格納部223は、一のキャラクタIDや他のキャラクタIDに対応付けずに動作情報を格納することもできる。例えば、複数のキャラクタが存在し、複数の命令が存在する場合、キャラクタの組み合わせ及び/又は命令の組み合わせの全てについて動作情報を設定できない場合がある。この場合、キャラクタ干渉情報格納部223は、例えば、一のキャラクタの特徴と他のキャラクタの特徴とを比較することで把握できる同一点や差異点に対応付けて、デフォルトの動作情報を格納する。デフォルトの動作情報としては、例えば、一のキャラクタのサイズと他のキャラクタのサイズとが異なる場合において、両キャラクタが同一の仮想単位空間において衝突した場合、よりサイズの小さいキャラクタが他方のキャラクタによって跳ね飛ばされる動作を設定する情報等が挙げられる。
【0056】
<キャラクタの種類に基づく動作情報の例:種類が同一の場合>
例えば、一のキャラクタの種類と他のキャラクタの種類とに基づいて決定される動作情報を説明する。まず、一のキャラクタの種類と他のキャラクタの種類とが同一である場合であって、一のキャラクタと他のキャラクタとが同一の仮想単位空間に存在することになる場合、一のキャラクタの直前の命令及び他のキャラクタの直前の命令に基づいて動作情報を設定できる。
【0057】
例えば、一のキャラクタの直前の命令が「前に進む」であり、他のキャラクタの直前の命令も「前に進む」である場合、動作情報としては、一のキャラクタと他のキャラクタとが同一の仮想単位空間において「衝突」し、一のキャラクタ及び他のキャラクタのいずれも、直前に存在していた仮想単位空間に後退する動作を示す情報を設定できる。また、一のキャラクタの直前の命令が「前にジャンプする」であり、他のキャラクタの直前の命令が「停止する」である場合(ただし、一のキャラクタが「前にジャンプする」ことで他のキャラクタが「停止」している仮想単位空間に到達するとする。)、動作情報としては、一のキャラクタと他のキャラクタとが同一の仮想単位空間において重なる動作、すなわち、他のキャラクタの上に一のキャラクタが乗る動作を示す情報を設定できる。
【0058】
更に、一のキャラクタの直前の命令が「前に進む」であり、他のキャラクタが所定の仮想単位空間において一のキャラクタに対して背を向けており、他のキャラクタの直前の命令が「停止する」である場合(なお、一のキャラクタが「前に進む」ことで他のキャラクタが「停止」している所定の仮想単位空間に到達するとする。)、動作情報としては、他のキャラクタが一のキャラクタの進行方向に沿って所定の仮想単位空間に隣接する他の仮想単位空間に押し出される動作を示す情報を設定できる。
【0059】
<キャラクタの種類に基づく動作情報の例:種類が同一で、サイズが所定以上の場合>
なお、キャラクタの種類が同一である場合であっても、上記とは異なり、キャラクタの特徴に応じて特殊な動作情報を設定することもできる。例えば、一のキャラクタの種類と他のキャラクタの種類とが同一であり、両キャラクタのサイズ及び/又は重量が所定値以上である場合であって、一のキャラクタと他のキャラクタとが同一の仮想単位空間に存在することになる場合、一のキャラクタの直前の命令及び他のキャラクタの直前の命令に基づいて所定の動作情報を設定できる。
【0060】
例えば、一のキャラクタの直前の命令が「前にジャンプする」であり、他のキャラクタの直前の命令が「停止する」である場合(ただし、一のキャラクタが「前にジャンプする」ことで他のキャラクタが「停止」している仮想単位空間に到達するとする。)、動作情報としては、両キャラクタのサイズが所定値以上であるので(一のキャラクタは高くはジャンプできず)、上記と異なり他のキャラクタに一のキャラクタが乗るのではなく、一のキャラクタが同一の仮想単位空間において他のキャラクタに「衝突」し、一のキャラクタが、直前に存在していた仮想単位空間において佇む動作を示す情報を設定できる。
【0061】
<キャラクタの種類に基づく動作情報の例:種類が相違する場合(その1)>
一のキャラクタの種類と他のキャラクタの種類とが異なるである場合であって、一のキャラクタと他のキャラクタとが同一の仮想単位空間に存在することになる場合、一のキャラクタの特徴及び他のキャラクタの特徴と、一のキャラクタの直前の命令及び他のキャラクタの直前の命令に基づいて動作情報を設定できる。
【0062】
例えば、一のキャラクタの特徴として一のキャラクタの重量が設定され、他のキャラクタの特徴として他のキャラクタの重量が設定されており、一のキャラクタの重量が他のキャラクタの重量より小さい場合であって、一のキャラクタの直前の命令が「前に進む」であり、他のキャラクタの直前の命令も「前に進む」である場合、動作情報としては、一のキャラクタと他のキャラクタとが同一の仮想単位空間(衝突位置の仮想単位空間)で衝突し、一のキャラクタが直前に存在していた仮想単位空間に後退する動作をし、他のキャラクタが衝突位置の仮想単位空間に留まる動作をすることを示す情報を設定できる。
【0063】
<キャラクタの種類に基づく動作情報の例:種類が相違する場合(その2)>
一のキャラクタの種類と他のキャラクタの種類とが異なるである場合であって、一のキャラクタと他のキャラクタとが同一の仮想単位空間に存在することになる場合、一のキャラクタが有する特殊な特徴に基づいて動作情報を設定できる。
【0064】
例えば、一のキャラクタが、自身が存在する仮想単位空間に隣接する仮想単位空間であって、一のキャラクタの正面に位置する仮想単位空間に存在する他のキャラクタの特徴をコピーできる能力を有する特徴を備えている場合を説明する。この場合、一のキャラクタの直前の命令が「前に進む」であり、他のキャラクタの直前の命令が「停止する」若しくはその場で所定の動作を実行する内容である場合、動作情報としては、一のキャラクタの正面に他のキャラクタが位置しているので、一のキャラクタが他のキャラクタの能力をコピーした上で前進し、他のキャラクタに衝突する動作を示す情報を設定できる。この場合、動作情報として、他のキャラクタが驚く動作を示す情報を同時に設定してもよい。
【0065】
<キャラクタのサイズに基づく動作情報の例>
例えば、一のキャラクタのサイズと他のキャラクタのサイズとが異なる場合を説明する。ここで、一のキャラクタのサイズが他のキャラクタのサイズより小さいとする。この場合、動作情報としては、他のキャラクタが存在する仮想単位空間に一のキャラクタが到達したときの動作が設定される。この動作は、例えば、一のキャラクタが他のキャラクタに衝突し、当該仮想単位空間へ一のキャラクタが至った経路を逆方向に向かって一のキャラクタが跳ね返る動作であってよい。
【0066】
<キャラクタの直前の命令に基づく動作情報の例(その1)>
また、一のキャラクタの種類と他のキャラクタの種類とが異なるである場合であって、一のキャラクタのサイズと他のキャラクタのサイズとが異なり、一のキャラクタが進化可能である場合を説明する。ここで、一のキャラクタのサイズが他のキャラクタのサイズより小さいとする。そして、一のキャラクタと他のキャラクタとが同一の仮想単位空間に存在することになる場合、一のキャラクタの直前の命令及び他のキャラクタの直前の命令に基づいて動作情報を設定できる。
【0067】
例えば、進化していない一のキャラクタが所定の仮想単位空間に至る場合の直前の命令が「前に進む」であり、他のキャラクタの直前の命令が所定の仮想単位空間において「眠る」である場合、動作情報としては、一のキャラクタが他のキャラクタに衝突し、当該仮想単位空間へ一のキャラクタが至った経路を逆方向に向かって跳ね返る動作を設定でき、他のキャラクタはそのまま「眠る」を継続する動作を設定できる。
【0068】
一方、例えば、一のキャラクタが所定の仮想単位空間に至る前において所定の条件を満たして「進化」しており、進化後の一のキャラクタの直前の命令が「前に進む」であり、他のキャラクタの直前の命令が「眠る」である場合、動作情報としては、一のキャラクタが他のキャラクタと同一の仮想単位空間(衝突位置の仮想単位空間)で衝突し、他のキャラクタが「目覚め」、一のキャラクタと他のキャラクタとが衝突位置の仮想単位空間において共に目覚めている状態で停止する動作を示す情報を設定できる。
【0069】
<キャラクタの直前の命令に基づく動作情報の例(その2)>
また、一のキャラクタの種類と他のキャラクタの種類とが異なるである場合であって、一のキャラクタのサイズと他のキャラクタのサイズとが異なり、一のキャラクタのサイズが他のキャラクタのサイズより小さい場合を説明する。更に、他のキャラクタが存在している仮想単位空間の上方の仮想単位空間に一のキャラクタが存在しているとする。
【0070】
ここで、一のキャラクタが他のキャラクタが存在する所定の仮想単位空間に至る場合の直前の命令が「落ちる」等であり(若しくは、所定の仮想単位空間の上方にキャラクタの落下を遮るオブジェクト等がない場合、いかなる命令であっても一のキャラクタは所定の仮想単位空間に向けて落下するようにしてもよい。)、他のキャラクタの直前の命令が所定の仮想単位空間において「留まる」である場合、動作情報としては、一のキャラクタが他のキャラクタに衝突し、跳ねつつ当該仮想単位空間に隣接する仮想単位空間に着地する動作を示す情報を設定できる。一方、他のキャラクタが存在する所定の仮想単位空間と同一平面に沿って一のキャラクタが当該所定の仮想単位空間に到達した場合、動作情報としては、一のキャラクタが他のキャラクタに衝突し、移動方向と逆方向に跳ね返される動作を示す情報を設定できる。
【0071】
また、一のキャラクタの種類と他のキャラクタの種類とが異なるである場合であって、一のキャラクタが所定の技(例えば、電気ショック)を使用可能である場合を説明する。
【0072】
ここで、他のキャラクタが存在する所定の仮想単位空間に一のキャラクタが至る場合の直前の命令が「前に進む」であり、かつ、「前に進む」の後に「電気ショック」を発動する命令が設定されており、他のキャラクタの直前の命令が所定の仮想単位空間において「眠る」である場合、動作情報としては、一のキャラクタが他のキャラクタに衝突した時に、一のキャラクタが「電気ショック」を発動し、他のキャラクタが「電気ショック」に驚いて飛び起きる動作を示す情報を設定できる。
【0073】
(格納ユニット22:空間干渉情報格納部224)
空間干渉情報格納部224は、一のキャラクタの仮想単位空間に対する干渉が発生した場合における一のキャラクタの動作を示す動作情報を格納する。すなわち、空間干渉情報格納部224は、一のキャラクタが所定の仮想単位空間に存在することになった場合に、一のキャラクタが実行する動作の動作情報を格納する。なお、動作情報は、一のキャラクタの干渉により、一のキャラクタが存在する仮想単位空間の状態を変化させる情報も含む。
【0074】
具体的に、空間干渉情報格納部224は、キャラクタIDと所定の仮想単位空間を識別する仮想単位空間IDとに対応付けて動作情報を格納する。また、空間干渉情報格納部224は、キャラクタID及び仮想単位空間IDと、当該キャラクタが当該仮想単位空間IDで識別される仮想単位空間に存在することになる前(好ましくは直前)の命令を示す命令情報(以下、「キャラクタの直前の命令情報」という。)とに対応付けて動作情報を格納してもよい。
【0075】
動作情報は、例えば、キャラクタの特徴等と仮想単位空間情報との組み合わせ等によって設定される。また、動作情報は、キャラクタが所定の仮想単位空間に至るまでに実行した命令、若しくは当該所定の仮想単位空間に至る直前に実行した命令によって設定することもできる。
【0076】
<仮想単位空間の地形に基づく動作情報の例>
例えば、キャラクタが所定の地形の仮想単位空間に到達した場合を説明する。一例として、仮想単位空間が「川」の地形を有しており、命令設定部14が設定した命令によってキャラクタが「川」を有する当該仮想単位空間に到達した例を挙げる。
【0077】
この場合において、キャラクタの直前の命令が「前に進む」であり、キャラクタの属性が「みずタイプ」である場合、動作情報としては、キャラクタが「川」を有する仮想単位空間を「川」を有さない仮想単位空間と同様に進む動作をすることを示す情報を設定できる。また、キャラクタの直前の命令が「前に進む」であり、キャラクタの属性が「みずタイプ」である場合であって水中で遊泳可能なキャラクタである場合、動作情報としては、キャラクタが「川」を有する仮想単位空間において「川」の中で泳ぎだす動作をすることを示す情報を設定できる。一方、キャラクタの直前の命令が「前に進む」であり、キャラクタの属性が「ほのおタイプ」である場合、動作情報としては、キャラクタが「川」を有する仮想単位空間に進むことができずに後退する動作を示す情報を設定できる。また、キャラクタの直前の命令が「前に進む」であり、キャラクタの属性が「いわタイプ」である場合、動作情報としては、キャラクタが「川」に流されて、「川」を有する仮想単位空間に隣接する他の仮想単位空間に移動する動作を示す情報を設定してもよい。更に、キャラクタの直前の命令が「前に進む」であり、キャラクタの属性が「いわタイプ」であって、当該キャラクタのサイズが所定の大きさ以上である場合、動作情報としては、キャラクタが「川」に嵌まる動作を示す情報を設定すると共に「川」から水が溢れる様子を出力する情報を設定してもよい。
【0078】
<仮想単位空間の天候に基づく動作情報の例>
例えば、キャラクタが所定の天候の仮想単位空間に到達した場合、及び/又は存在する場合を説明する。一例として、仮想単位空間の天候が「雨天」であり、命令設定部14が設定した命令によってキャラクタが当該仮想単位空間に到達する例を挙げる。
【0079】
この場合において、キャラクタに対する直前の命令、及び/又は「雨天」の仮想単位空間内での命令が「走って1マス進む」である場合、動作情報としては、キャラクタが「雨天」の仮想単位空間を進む場合に所定の確率で(例えば、ランダムに)、キャラクタがスリップして1マス以上余計に進む動作を示す情報を設定できる。また、キャラクタの直前の命令、及び/又は「雨天」の仮想単位空間での命令が「天候を変える技」である場合、動作情報としては、当該技によって当該キャラクタが存在する仮想単位空間の天候を変更することを示す情報を設定することもできる。
【0080】
<仮想単位空間とキャラクタの属性に基づく動作情報の例>
例えば、キャラクタが所定の地形の仮想単位空間に到達した場合を説明する。一例として、仮想単位空間が「壁」を有する地形を有しており、命令設定部14が設定した命令によってキャラクタが「壁」を有する当該仮想単位空間に到達した例を挙げる。
【0081】
この場合において、キャラクタの直前の命令が「前に進む」であり、キャラクタの属性が「ノーマルタイプ」である場合、動作情報としては、キャラクタが「壁」を有する仮想単位空間を進むことができず、当該仮想単位空間に到達する直前の仮想単位空間に留まる動作をすることを示す情報を設定できる。また、キャラクタの直前の命令が「前に進む」であり、キャラクタの属性が「ゴーストタイプ」である場合、動作情報としては、キャラクタが「壁」を有する仮想単位空間をすり抜けて進む動作をすることを示す情報を設定できる。
【0082】
(格納ユニット22:オブジェクト情報格納部225)
オブジェクト情報格納部225は、仮想単位空間に配置可能なオブジェクトに関する情報(オブジェクト情報)を格納する。具体的に、オブジェクト情報格納部225は、オブジェクトを識別するオブジェクトIDに対応付けて、オブジェクト情報等を格納する。オブジェクト情報は、例えば、オブジェクトの属性、オブジェクトの種類、オブジェクトの名称、オブジェクトのサイズ、オブジェクトの破壊可否等を示す情報である。なお、属性とは、各オブジェクトに設定される情報であり、例えば、オブジェクトの種類、状態、若しくは性質等に応じて設定されるオブジェクトが有する特徴である。なお、一のオブジェクトには複数の属性が設定されてもよい。
【0083】
また、オブジェクトは、仮想単位空間に配置可能なオブジェクトであって、仮想単位空間の地形等の環境を設定若しくは変形可能なオブジェクト(以下、「環境オブジェクト」という。)を含むことができる。環境オブジェクトには、地形を表すオブジェクト(例えば、木、岩、川等)、構造物を表すオブジェクト(例えば、壁、建物、床等)、及び/又は命令設定部14による命令の設定が不可能なキャラクタ(例えば、所定の仮想単位空間で睡眠しているか、目覚めていても移動しないキャラクタ等)等が含まれていてよい。そして、環境オブジェクトは、キャラクタによる干渉が可能なオブジェクト及びキャラクタによる干渉が不可能なオブジェクトが含まれていてよい。干渉が可能なオブジェクトは、キャラクタの動作(例えば、所定の技や突進等)により破壊可能なオブジェクト(例えば、破壊可能な木や岩等)である。一方、干渉が不可能なオブジェクトは、キャラクタの動作によっては破壊不可能なオブジェクト(例えば、破壊不可能な床や壁等)である。更に、オブジェクトは、所定のキャラクタに固有の派生オブジェクトを含んでいてもよい。派生オブジェクトは、例えば、所定のキャラクタの動作(一例として、当該所定のキャラクタの技)の発動に応じて発生するオブジェクトである。
【0084】
(格納ユニット22:オブジェクト干渉情報格納部226)
オブジェクト干渉情報格納部226は、キャラクタのオブジェクトに対する干渉が発生した場合における当該キャラクタ及び/又は当該オブジェクトの動作を示す動作情報を格納する。すなわち、オブジェクト干渉情報格納部226は、キャラクタとオブジェクトとが同一の仮想単位空間に存在することになった場合に、キャラクタが実行する動作及び/又はオブジェクトが受ける影響に関する動作情報を格納する。
【0085】
具体的に、オブジェクト干渉情報格納部226は、キャラクタID及びオブジェクトIDに対応付けて動作情報を格納する。また、オブジェクト干渉情報格納部226は、キャラクタID及びオブジェクトIDと、当該キャラクタが当該オブジェクトと同一の仮想単位空間に存在することになる前(好ましくは直前)の命令を示す命令情報(以下、「キャラクタの直前の命令情報」という。)とに対応付けて動作情報を格納してもよい。
【0086】
動作情報は、例えば、キャラクタとオブジェクトとの組み合わせ、キャラクタのキャラクタ情報とオブジェクトのオブジェクト情報との組み合わせ等によって設定される。また、動作情報は、キャラクタがオブジェクトと同一の仮想単位空間に至るまでに実行した命令、若しくは同一の仮想単位空間に至る直前に実行した命令に応じて設定することもできる。
【0087】
<オブジェクトの種類に基づく動作情報の例>
例えば、キャラクタが所定のオブジェクトが配置されている仮想単位空間に到達した場合を説明する。
【0088】
一例として、仮想単位空間に「岩」を表す環境オブジェクトが配置されており、この環境オブジェクトが干渉可能なオブジェクトであるとする。そして、キャラクタがこの仮想単位空間に到達した場合であって、キャラクタの直前の命令が「技を出す」であり、当該技において「岩」の環境オブジェクトが破壊可能である場合、動作情報としては、キャラクタが「岩」を「技」で破壊する動作をすることを示す情報を設定できる。また、仮想単位空間に「岩」を表す環境オブジェクトが配置されており、この環境オブジェクトが干渉不可能なオブジェクトであるとする。そして、キャラクタがこの仮想単位空間に到達した場合、キャラクタの直前の命令がいかなる命令であっても、動作情報としては、キャラクタが「岩」によって跳ね返され、当該仮想単位空間に到達する直前の仮想単位空間に後退する動作をすることを示す情報を設定できる。
【0089】
また、オブジェクトとして、所定のキャラクタが当該オブジェクトを取得することにより進化可能なオブジェクトを用意できる。例えば、配置部12が所定の仮想単位空間に所定のキャラクタの進化に必要なオブジェクト(進化用オブジェクト)を配置する。そして、進化用オブジェクトが配置されている仮想単位空間に命令設定部14が設定した命令によって所定のキャラクタが到達した場合、当該キャラクタの直前の命令がいかなる命令であっても、動作情報としては、当該キャラクタが進化する動作を示す情報を設定できる。
【0090】
(格納ユニット22:動作シーケンス情報格納部227)
動作シーケンス情報格納部227は、動作シーケンス情報を識別する動作シーケンス情報IDに対応付けて、動作シーケンス情報を格納する。動作シーケンス情報とは、キャラクタの動作に用いられた仮想空間100、配置部12による配置結果、命令設定部14が所定のキャラクタに設定した1以上の命令及び当該命令の実行順序、並びに後述する動作制御部18によって制御されたキャラクタの動作を含む情報である。すなわち、動作シーケンス情報とは、仮想空間100内へのキャラクタ及び又はオブジェクトの配置、並びに仮想空間100内でのキャラクタの動作開始から動作終了までの一連の動作を、シミュレーションシステム1を含む任意のシステムにおいて任意のタイミングで再現することを可能にする情報である。
【0091】
出力部20は、動作シーケンス情報に基づいて、任意のタイミングで仮想空間100内においてキャラクタの動作を実行すること、典型的には、ユーザの指示に応じ、情報端末の表示部等において仮想空間100内におけるキャラクタの動作を動画として再生することができる。動作シーケンス情報は、例えば、当該動作シーケンス情報が生成されたシミュレーションシステム1外の情報端末やサーバ等に通信網や記録媒体等を介して提供されてもよい。動作シーケンス情報が提供された情報端末やサーバ等は、当該動作シーケンス情報を用いて仮想空間100内においてキャラクタの動作を実行させることができる。これにより、一のユーザがシミュレーションシステム1で作成した動作シーケンス情報を、他のユーザのシミュレーションシステム1に供給することができる。
【0092】
(配置部12)
配置部12は、仮想空間100を構成する仮想単位空間110に、キャラクタ及び/又はオブジェクトを配置する。配置部12は、キャラクタ及び/又はオブジェクトを仮想単位空間110に予め配置することもできる。また、配置部12は、入力部10が受け付けたユーザの指示に応じ、所定のキャラクタ及び/又は所定のオブジェクトをユーザが指定した仮想単位空間110に配置することができる。配置部12は、複数の仮想単位空間110それぞれに、キャラクタ及び/又はオブジェクトを配置することもできる。つまり、配置部12は、1以上のキャラクタを1以上の仮想単位空間110それぞれに配置すること、及び/又は1以上のオブジェクトを1以上の仮想単位空間110それぞれに配置することができる。なお、仮想空間100は仮想の3次元で構成されているので、配置部12は、仮想空間100の下面102のみならず、下面102より上方の仮想単位空間110にキャラクタ及び/又はオブジェクトを配置することもできる。
【0093】
具体的に、出力部20は、情報端末の表示部に、キャラクタ情報格納部220に格納されているキャラクタ及び/又はオブジェクト情報格納部225に格納されているオブジェクトの情報(例えば、ユーザがシミュレーションシステム1において使用可能なキャラクタ及び/又はオブジェクトの一覧情報)を出力する。そして、配置部12は、入力部10を介してユーザによるキャラクタ及び/又はオブジェクトの選択指示を受け付けて、キャラクタ情報格納部220に格納されているユーザに選択されたキャラクタの情報、及び/又はオブジェクト情報格納部225に格納されているユーザに選択されたオブジェクトの情報を取得する。また、出力部20は、情報端末の表示部に仮想単位空間110からなる仮想空間100を出力する。配置部12は、ユーザによる仮想単位空間110の選択指示をユーザが選択したキャラクタ及び/又はオブジェクト毎に入力部10を介して受け付ける。そして、配置部12は、ユーザが選択指示した仮想単位空間に、取得したキャラクタの情報が示すキャラクタ及び/又はオブジェクトの情報が示すオブジェクトを配置する。出力部20は、配置部12がキャラクタ及び/又はオブジェクトを仮想単位空間に配置した状態を示す画像を出力することができる。配置部12は、仮想空間100に配置されたキャラクタ及び/又はオブジェクトに関する情報を動作制御部18に供給する。
【0094】
(命令設定部14)
命令設定部14は、仮想空間100内でキャラクタが実行する1つ以上の命令を設定し、複数の命令が設定された場合には、複数の命令の実行順序をキャラクタに設定する。命令設定部14は、複数のキャラクタがユーザにより選択された場合、一のキャラクタと他のキャラクタとのそれぞれについて命令及び実行順序を設定する。すなわち、命令設定部14は、入力部10を介し、ユーザによる命令の選択及び選択された命令の実行順序を受け付けて、受け付けた命令及び命令の実行順序をユーザが選択したキャラクタに対応付ける。具体的に、出力部20は、命令情報格納部222に格納されているキャラクタに対する命令に関する情報をユーザに知覚可能に出力する。そして、命令設定部14は、入力部10を介し、命令に関する情報を参照したユーザによる命令及び命令の実行順序の設定指示を受け付けて、受け付けた命令及び命令の実行順序をユーザが選択したキャラクタに対応付ける。また、出力部20は、命令設定部14が設定した命令及び命令の実行順序をテキストや所定の図形等によってユーザが知覚可能に出力することができる。命令設定部14は、キャラクタに対応付けられた命令及び命令の実行順序を示す情報を動作制御部18に供給する。
【0095】
なお、命令設定部14は、ユーザによる命令の選択及び命令の実行順序の指示を受けずに、自動で命令及び命令の実行順序を設定することもできる。この場合、命令設定部14は、例えば、ランダムに命令及び命令の実行順序を設定することも、予め決められた命令及び命令の実行順序を設定することもできる。一例として、命令設定部14は、チュートリアルとして、所定のキャラクタに、予め決められた命令及び実行順序を設定してもよい。
【0096】
具体的に、命令設定部14が設定する命令は、命令情報格納部222に格納されている命令である。命令設定部14が設定する命令としては、上述した第1動作命令、第2動作命令、繰り返す動作命令、派生オブジェクトを発生させる命令、及び進化させる命令等が挙げられる。なお、命令設定部14は、第1動作命令に含まれる所定の仮想単位空間からの移動量を、仮想単位空間の数を単位として設定することができる。つまり、仮想単位空間を仮想のマスとして捉えることで、キャラクタに「2マス前に進む」等の命令を設定できる。仮想単位空間を仮想のマスとして扱うことで、キャラクタの移動の設定が容易になる。また、命令設定部14が設定する命令の実行順序はユーザの所望に応じて自由に設定できる。
【0097】
<キャラクタが仮想空間100内で動作中に進化する場合を含む命令の例>
ここで、命令設定部14が一のキャラクタに「進化する」命令を設定した場合を例に挙げて説明する。例えば、命令設定部14は、一のキャラクタに「前に進む」、「技を出す」、「前に進む」、「進化する」、「前に進む」、「技を出す」という命令をこの順に設定したと想定する。この場合、命令設定部14は、進化前の「技を出す」命令と、進化後の「技を出す」命令とについて、キャラクタの進化前後によって異ならせてもよい。すなわち、ユーザは単に「技を出す」という命令を設定するだけでよく、「技」の内容については、命令設定部14が設定された命令の内容及び実行順序に基づいて適宜設定してよい。この例では、進化前のキャラクタの技と進化後のキャラクタの技とは異なることを前提にする。そのため、命令設定部14は、進化後のキャラクタに対してユーザが「技を出す」命令を設定した場合、当該「技」が進化後のキャラクタの「技」であると判断し、進化前ではなく、進化後のキャラクタの「技」が出るように設定してもよい。
【0098】
(実行受付部16)
実行受付部16は、命令設定部14が設定した命令の実行指示を受け付ける。具体的に、実行受付部16は、入力部10を介してユーザからの命令の実行指示を受け付ける。実行受付部16は、ユーザが複数のキャラクタに命令を設定している場合、例えば、以下の各パターンのいずれかで命令の実行を受け付けることができる。
【0099】
(パターン1)複数のキャラクタ全てに対する命令の実行指示を一括で受け付ける。
(パターン2)複数のキャラクタを複数のグループに分け、各グループそれぞれに異なるタイミング若しくは一部は同一のタイミングで命令の実行指示を受け付ける。
(パターン3)複数のキャラクタからユーザが選択したキャラクタごとに命令の実行指示を受け付ける。
【0100】
実行受付部16は、所定のキャラクタに対する命令の実行指示を受け付けたことを示す情報を動作制御部18に供給する。
【0101】
(動作制御部18)
動作制御部18は、実行受付部16から受け付けた情報に応じ、命令設定部14が設定した命令及び実行順序に基づいて、配置部12が仮想空間100に配置したキャラクタを仮想空間100内で動作させる。また、動作制御部18は、一のキャラクタ及び他のキャラクタのそれぞれに命令及び命令の実行順序が設定されている場合、ユーザの一の操作(例えば、入力部10を介して受け付ける命令実行の指示)に応じ、一のキャラクタ及び他のキャラクタのそれぞれについて、各命令の実行順序に沿った命令の実行を開始させる。更に、動作制御部18は、仮想空間100内で他のキャラクタ、所定の仮想単位空間に配置されたオブジェクト、及び/又は所定の仮想単位空間と、命令の実行が開始されたキャラクタとの間で干渉が発生した場合、命令設定部14が設定した命令及び命令の実行順序に優先し、干渉に応じた動作をキャラクタに実行させる。つまり、この場合、動作制御部18は、予め定められたルールに則って、キャラクタが実行する動作を決定できる。そして、動作制御部18は、命令を実行中のキャラクタの様子を出力部20に出力させる。
【0102】
なお、動作制御部18は、命令設定部14が設定した命令が、キャラクタとキャラクタが存在している仮想空間との関係により実行できない場合、予め定められた動作をキャラクタに実行させることもできる。例えば、配置部12によりキャラクタが仮想空間100の空中に配置されており、かつ、当該キャラクタは空中を飛ぶことや浮遊することができないキャラクタであり、命令設定部14が設定した命令が「前に進む」等の移動命令である場合、動作制御部18は、当該移動命令を実行できないと判断する。そして、動作制御部18は、当該移動命令の実行を停止し、例えば、物理法則に則って当該キャラクタを動作させる(この場合、キャラクタの存在位置から下方にキャラクタを落下させる。)。続いて、動作制御部18は、命令設定部14が設定した命令の実行が可能になった段階で(この場合、当該キャラクタが仮想空間の床に着地した段階で)、命令設定部14が設定した命令の実行を継続する。
【0103】
ここで、動作制御部18は、命令設定部14が設定した命令及び実行順序に基づいて、キャラクタを仮想空間100内で移動させる場合において、一の仮想単位空間から当該一の仮想単位空間に隣接する他の仮想単位空間へとキャラクタを移動させる。仮想単位空間を「マス」として捉えるとすれば、動作制御部18は、「マス」毎にキャラクタを移動させる。なお、動作制御部18は、所定時間ごとにキャラクタを移動させてもよい。つまり、動作制御部18は、キャラクタを所定時間ごとに複数の仮想単位空間をシームレスに移動させてもよい(一例として、1秒間に1つの仮想単位空間を移動させる等を設定できる。)。
【0104】
なお、動作制御部18は、命令設定部14が設定した命令及び命令の実行順序に基づいて動作するキャラクタと他のキャラクタ又はオブジェクトとが干渉した場合や、命令及び命令の実行順序に基づいて動作するキャラクタと所定の仮想単位空間とが干渉した場合、物理演算に基づいて決定される動作も用いてキャラクタの動作を制御してもよい。例えば、キャラクタと他のキャラクタやオブジェクトとが衝突する場合、キャラクタの形状やサイズ、重量等、他のキャラクタの形状やサイズ、重量等、及び衝突スピード等に基づいて、物理演算により、キャラクタ及び他のキャラクタやオブジェクトの動作を算出し、算出した動作をキャラクタに実行させてもよい。
【0105】
更に、動作制御部18は、キャラクタの仮想空間100内での一連の動作(命令設定部14が設定した命令による動作、及び干渉が発生した場合における動作を含む)を示す動作シーケンス情報を生成し、生成した動作シーケンス情報を当該動作シーケンス情報の動作シーケンス情報IDに対応付けて動作シーケンス情報格納部227に格納する。なお、動作制御部18は、動作シーケンス情報として、キャラクタの仮想空間100内での一連の動作の一部を示す動作シーケンス情報を生成することもできる。つまり、動作制御部18は、命令設定部14が設定した命令の実行順序によって命令が実行されることによるキャラクタの動作、及び干渉が発生した場合におけるキャラクタの動作の全て若しくは一部を含む動作シーケンス情報を生成できる。
【0106】
具体的に、動作制御部18は、キャラクタの特徴と、キャラクタの存在位置に対応する仮想単位空間の特徴とに基づいて、キャラクタの動作を制御することができる。一例として、動作制御部18は、命令を実行しているキャラクタのキャラクタIDと当該キャラクタが存在する仮想単位空間の仮想単位空間IDに対応付けて空間干渉情報格納部224に格納されている動作情報を取得する。そして、動作制御部18は、取得した動作情報を参照し、当該動作情報の内容が示す動作をキャラクタに実行させる。また、動作制御部18は、命令を実行しているキャラクタのキャラクタIDと当該キャラクタが存在する仮想単位空間の仮想単位空間IDと当該キャラクタが当該仮想単位空間に至る直前に実行した命令(直前の命令情報)とに対応付けて空間干渉情報格納部224に格納されている動作情報を取得し、当該動作情報に基づいてキャラクタに所定の動作を実行させてもよい。
【0107】
また、動作制御部18は、一のキャラクタ及び他のキャラクタそれぞれを仮想空間100内で動作させ、一のキャラクタの存在位置と他のキャラクタの存在位置とが同一の仮想単位空間になる場合、命令設定部14が設定した命令及び実行順序に優先し、一のキャラクタ及び他のキャラクタの少なくともいずれか一方に所定の動作を実行させることができる。この場合、動作制御部18は、一のキャラクタの特徴と他のキャラクタの特徴との組み合わせ、一のキャラクタが他のキャラクタと同一の仮想単位空間に位置する前に実行した命令、及び他のキャラクタが一のキャラクタと同一の仮想単位空間に位置する前に実行した命令からなる群から選択される少なくとも1つに基づいて、一のキャラクタ及び他のキャラクタの少なくともいずれか一方の動作を制御することができる。
【0108】
例えば、動作制御部18は、一のキャラクタと他のキャラクタとが同一の仮想単位空間に存在する場合、命令を実行している一のキャラクタのキャラクタIDと他のキャラクタの他のキャラクタIDとに対応付けてキャラクタ干渉情報格納部223に格納されている動作情報を参照し、当該動作情報の内容が示す動作を一のキャラクタ及び/又は他のキャラクタに実行させる。また、動作制御部18は、命令を実行している一のキャラクタの一のキャラクタIDと他のキャラクタの他のキャラクタIDと、一のキャラクタが存在する仮想単位空間に至る直前に実行した命令(一のキャラクタの直前の命令情報)及び/又は他のキャラクタが当該仮想単位空間に至る直前に実行した命令(他のキャラクタの直前の命令情報)とに対応付けてキャラクタ干渉情報格納部223に格納されている動作情報を取得し、当該動作情報に基づいて一のキャラクタ及び/又は他のキャラクタに所定の動作を実行させてもよい。
【0109】
また、動作制御部18は、キャラクタの特徴と、キャラクタの存在位置に配置されているオブジェクトの特徴とに基づいて、キャラクタの動作を制御することができる。一例として、動作制御部18は、命令を実行しているキャラクタのキャラクタIDと当該キャラクタが存在する仮想単位空間に配置されているオブジェクトのオブジェクトIDとに対応付けてオブジェクト干渉情報格納部226に格納されている動作情報を取得する。そして、動作制御部18は、取得した動作情報を参照し、当該動作情報の内容が示す動作をキャラクタに実行させる。また、動作制御部18は、命令を実行しているキャラクタのキャラクタIDと当該キャラクタが存在する仮想単位空間に配置されているオブジェクトのオブジェクトIDと当該キャラクタが当該仮想単位空間に至る直前に実行した命令(直前の命令情報)とに対応付けてオブジェクト干渉情報格納部226に格納されている動作情報を取得し、当該動作情報に基づいてキャラクタに所定の動作を実行させてもよい。
【0110】
なお、動作制御部18は、一の仮想単位空間に一のキャラクタが存在し、当該一の仮想単位空間に隣接し、派生オブジェクトの発生が対応付けられた他の仮想単位空間に他のキャラクタが存在する場合、他のキャラクタの特徴と派生オブジェクトの特徴とに基づいて、他のキャラクタの動作を制御することもできる。例えば、動作制御部18は、一のキャラクタが存在する一の仮想単位空間に隣接する他の仮想単位空間に他のキャラクタが存在し、命令設定部14によって一のキャラクタが一の仮想単位空間において所定の動作(例えば、他の仮想単位空間に向けて所定の作用を及ぼす動作)を実行する命令が設定されている場合、他のキャラクタに所定の動作を実行させる。すなわち、動作制御部18は、他のキャラクタIDと派生オブジェクトのオブジェクトIDとに対応付けてオブジェクト干渉情報格納部226に格納されている動作情報を取得し、取得した動作情報に基づいて他のキャラクタに所定の動作を実行させてもよい。
【0111】
<派生オブジェクトとキャラクタとの関係に基づく動作の例1>
例えば、命令設定部14が、一の仮想単位空間に到達した場合、この一の仮想単位空間に隣接する他の仮想単位空間に一のキャラクタに固有の派生オブジェクトを発生させる命令を一のキャラクタに設定した場合を例に挙げる。この場合において、一のキャラクタが一の仮想単位空間に到達し、かつ、他のキャラクタが他の仮想単位空間に到達した場合、動作制御部18は、他のキャラクタの種類と派生オブジェクトの種類とに応じ、他のキャラクタに設定されている命令に優先し、所定の動作を実行させる。つまり、動作制御部18は、他のキャラクタの他のキャラクタIDと他のキャラクタが存在する仮想単位空間に配置されている派生オブジェクトのオブジェクトIDとに対応付けてオブジェクト干渉情報格納部226に格納されている動作情報を取得する。この動作情報は、一例として、一のキャラクタに固有の派生オブジェクトが一のキャラクタの技である「電気ショック」に対応する「電撃」を表す派生オブジェクトであり、他のキャラクタが、この「電撃」の派生オブジェクトにより痺れる動作を実行する内容を含む情報である。したがって、動作制御部18は、他のキャラクタに痺れる動作を実行させる。
【0112】
<派生オブジェクトとオブジェクトとの関係に基づく動作の例2>
例えば、命令設定部14が、一のキャラクタが一の仮想単位空間に到達した場合、この一の仮想単位空間に隣接する他の仮想単位空間に一のキャラクタに固有の派生オブジェクトを発生させる命令を、一のキャラクタに設定した場合を例に挙げる。この場合において、一のキャラクタが一の仮想単位空間に到達し、かつ、他の仮想単位空間に所定のオブジェクトが存在している場合、動作制御部18は、所定のオブジェクトの種類と派生オブジェクトの種類とに応じ、所定のオブジェクトに所定の影響を与える。
【0113】
この場合、オブジェクト干渉情報格納部226は、一のキャラクタの一のキャラクタIDと派生オブジェクトのオブジェクトIDとに対応付けて、所定のオブジェクトに与える影響を含む動作情報を格納することができる。そして、動作制御部18は、オブジェクト干渉情報格納部226に格納されている当該動作情報を取得する。当該動作情報は、一例として、一のキャラクタに固有の派生オブジェクトが一のキャラクタの技である「火を吐く」に対応する「炎」を表す派生オブジェクトであり、所定のオブジェクトが、この「炎」の派生オブジェクトにより燃える内容を含む情報である。したがって、動作制御部18は、所定のオブジェクトが燃える状態を発生させる。
【0114】
また、動作制御部18は、キャラクタの存在位置若しくは移動先である仮想単位空間において、命令設定部14が設定した命令の実行ができないと判断した場合、予め定められた動作を実行してもよい。例えば、仮想空間100の外部にキャラクタは移動できない。すなわち、仮想空間100の外縁は、仮想空間100内のキャラクタにとっては「見えない壁」若しくは「見えない床・天井」として機能している。そこで、動作制御部18は、命令設定部14が設定した命令によってキャラクタが仮想空間100内を移動し、仮想空間100の外縁や破壊不可能なオブジェクトが配置されている仮想単位空間等、キャラクタによる干渉が不可能な状況が発生した場合、キャラクタに予め定められた動作を実行させる。予め定められた動作としては、一例として、その場に留まる動作、移動してきた経路を逆に進む動作、進行方向を変化させる動作等が挙げられる。
【0115】
(経験値付与部26)
経験値付与部26は、キャラクタに経験値を付与する。経験値は、キャラクタが獲得した値であり、レベルは、付与される経験値の累計に応じて決定される数値であり、キャラクタのランクを表す数値である。なお、キャラクタが獲得した経験値が所定の条件を達成した場合(例えば、予め定められた閾値を超えた場合。)、キャラクタのレベルを段階的に上げることができる。経験値付与部26は、例えば、動作制御部18がキャラクタに実行させたキャラクタの命令実行数、及び/又はキャラクタが他のキャラクタ等と干渉した回数等に基づいて経験値を算出し、キャラクタに付与できる。なお、動作制御部18は、キャラクタが所定レベルに達した場合、及び/又は所定値以上の経験値を獲得した場合、当該キャラクタを進化させてよい。また、動作制御部18は、キャラクタのレベルに応じ、当該キャラクタが使用可能な技の内容、及び/又は技の効力を変化させてもよい。例えば、当該キャラクタが所定の技を発動した場合に発生する派生オブジェクトが一の仮想単位空間に対応付けられているとする。この場合、動作制御部18は、この派生オブジェクトが発生する仮想単位空間を当該一の仮想単位空間から他の仮想単位空間に代えることや、当該一の仮想単位空間を含む複数の仮想単位空間にこの派生オブジェクトを発生させてもよい(つまり、複数の仮想単位空間のそれぞれに派生オブジェクトを発生させてもよい。)。
【0116】
(ヒント提示部28)
ヒント提示部28は、ユーザがこれまで選択していない命令及び/又は命令の実行順序をユーザに提示する。ヒント提示部28は、ユーザがこれまで選択していない命令及び/又は命令の実行順序を出力部20にユーザに知覚可能に出力させる。具体的に、ヒント提示部28は、命令情報格納部222に格納されている命令のうち、命令設定部14が設定した命令に対して所定のフラグを設定する。そして、ヒント提示部28は、未だフラグが設定されていない命令をユーザに提示する。ヒント提示部28がユーザに提示するタイミングは任意のタイミング(ユーザによる指示に応じたタイミングを含む。)であってよい。
【0117】
[シミュレーションシステム1の処理の流れ]
図4は、本実施形態に係るシミュレーションシステムにおける処理の流れの一例を示す。
【0118】
まず、出力部20は、キャラクタ情報格納部220及び/又はオブジェクト情報格納部225を参照し、キャラクタ及び/又はオブジェクトをユーザに知覚可能に出力する(例えば、情報端末の表示部に表示することを指す。以下同じ。)。そして、入力部10は、出力されたキャラクタ及び/又はオブジェクトのうち、仮想空間100で動作させる1以上のキャラクタ及び/又はオブジェクトの選択指示をユーザから受け付ける。また、出力部20は、仮想空間100及び仮想空間100を構成する複数の仮想単位空間110をユーザに知覚可能に出力する。そして、入力部10は、出力された複数の仮想単位空間110のうち、キャラクタ及び/又はオブジェクトを配置する仮想単位空間110の選択指示をユーザから受け付ける。この場合に、入力部10は、複数のキャラクタ及び/又は複数のオブジェクトが存在する場合、複数のキャラクタ及び/又は複数のオブジェクト毎に、それらを配置すべき仮想単位空間110の位置の指定を受け付ける。そして、配置部12は、入力部10が受け付けた1以上のキャラクタ及び/又はオブジェクトの選択指示、並びに1以上のキャラクタ及び/又はオブジェクトを配置する仮想単位空間110の位置の指定に応じ、1以上のキャラクタ及び/又はオブジェクトのそれぞれを所定の仮想単位空間110に配置する(ステップ10。以下、ステップを「S」と表す。)。
【0119】
続いて、命令設定部14は、命令情報格納部222に格納されている各種の命令を出力部20からユーザに知覚可能に出力させる。命令設定部14は、出力された命令を参照しているユーザからの指示に応じ、仮想単位空間110に配置された1以上のキャラクタそれぞれに対し、仮想空間100で実行する1つ以上の命令と命令の実行順序とを設定する(S12)。そして、実行受付部16がユーザからの命令の実行指示を入力部10を介して受け付けた場合(S14のYes)、動作制御部18は、命令設定部14がキャラクタに設定した命令及び命令の実行順序に応じ、キャラクタの動作を開始する(S16)。一方、実行受付部16がユーザからの命令の実行指示を入力部10を介して受け付けていない場合、当該実行指示を受け付けるまで待機する(S14のNo)。
【0120】
そして、命令に応じて仮想空間100内で動作するキャラクタと、他のキャラクタ、オブジェクト、及び/又は所定の仮想単位空間110との間で干渉が発生した場合(S18のYes)、動作制御部18は、キャラクタと、他のキャラクタ、オブジェクト、及び/又は所定の仮想単位空間110との間の関係に基づいて、キャラクタに所定の動作を実行させる(S20)。動作制御部18は、キャラクタ干渉情報格納部223、空間干渉情報格納部224、及び/又はオブジェクト干渉情報格納部226に格納されている動作情報に基づいて、キャラクタに所定の動作を実行させる。所定の動作としては、例えば、上記で説明した各種の動作が挙げられる。
【0121】
そして、動作制御部18は、干渉に基づく動作をキャラクタに実行させた後、命令設定部14が設定した命令をキャラクタに続行させる(S22)。なお、動作制御部18は、干渉に基づく動作をキャラクタに実行させた後、命令設定部14が設定した命令をキャンセルし、所定の動作をキャラクタに実行させてもよい。一方、命令に応じて仮想空間100内で動作するキャラクタと、他のキャラクタ、オブジェクト、及び/又は所定の仮想単位空間110との間で干渉が発生しない場合(S18のNo)、動作制御部18は、命令設定部14が設定した命令をキャラクタに続行させる(S22)。そして、動作制御部18は、仮想空間100内でキャラクタが実行した一連の動作を、動作シーケンス情報として構成し、動作シーケンス情報格納部227に格納する(S24)。
【0122】
[シミュレーションプログラム]
図1図4に示した本実施形態に係るシミュレーションシステム1が備える各構成要素は、中央演算処理装置(Central Processing Unit:CPU)等の演算処理装置にプログラム(すなわち、シミュレーションプログラム)を実行させること、つまり、ソフトウェアによる処理により実現できる。また、集積回路(Integrated Circuit:IC)等の電子部品としてのハードウェアにプログラムを予め書き込むことで実現することもできる。なお、ソフトウェアとハードウェアとを併用することもできる。
【0123】
本実施形態に係るシミュレーションプログラムは、例えば、ICやROM等に予め組み込むことができる。また、シミュレーションプログラムは、インストール可能な形式、又は実行可能な形式のファイルで、磁気記録媒体、光学記録媒体、半導体記録媒体等のコンピュータで読み取り可能な記録媒体に記録し、コンピュータプログラムとして提供することもできる。プログラムを格納している記録媒体は、CD-ROMやDVD等の非一過性の記録媒体であってよい。更に、シミュレーションプログラムを、インターネット等の通信ネットワークに接続されたコンピュータに予め格納させ、通信ネットワークを介してダウンロードによる提供ができるようにすることもできる。
【0124】
本実施形態に係るシミュレーションプログラムは、CPU等に働きかけて、シミュレーションプログラムを、図1図4にかけて説明した入力部10、配置部12、命令設定部14、実行受付部16、動作制御部18、出力部20、格納ユニット22、編集部24、経験値付与部26、ヒント提示部28、キャラクタ情報格納部220、単位空間情報格納部221、命令情報格納部222、キャラクタ干渉情報格納部223、空間干渉情報格納部224、オブジェクト情報格納部225、オブジェクト干渉情報格納部226、動作シーケンス情報格納部227として機能させる。
【0125】
[実施の形態の効果]
本実施形態に係るシミュレーションシステム1は、仮想空間100内において動作可能なキャラクタに対し、キャラクタの動作についての命令の設定及び命令の実行順序の設定をユーザが自由にできる。そして、シミュレーションシステム1においては、仮想空間内で当該キャラクタと、他のキャラクタやオブジェクト及び/又は仮想単位空間110との間で干渉が発生した場合、ユーザが設定した命令に優先し、所定の動作をキャラクタに実行させることができる。これにより、従来は一度設定した命令はそのまま忠実に実行されるところ、シミュレーションシステム1においてはキャラクタと他のキャラクタ等との相互作用に応じ、命令とは異なる動作をキャラクタに実行させることができる。したがって、シミュレーションシステム1によれば、ユーザは、自身が設定した命令とは異なる動作をキャラクタが実行する様子を観察して楽しむことができる。
【0126】
また、シミュレーションシステム1においては、一のキャラクタと他のキャラクタとの組み合わせ、一のキャラクタとオブジェクトとの組み合わせ、及び/又は一のキャラクタと仮想単位空間との組み合わせ等、様々な組み合わせによって、ユーザには想定外の様々な動作をキャラクタに実行させることができる。したがって、シミュレーションシステム1においては、ユーザはいかなる動作をキャラクタが実行するのかについて楽しむこと、つまり、上記様々な組み合わせを試行錯誤することで、キャラクタの動作のシミュレーションを楽しむことができる。
【0127】
更に、シミュレーションシステム1においては、ユーザが命令及び命令の実行順序を設定して、命令の実行指示がなされた後は、ユーザはキャラクタの動作を観察するだけでよく、命令の実行中は、キャラクタの仮想空間100内における移動に関与する必要がない。したがって、シミュレーションシステム1においては、キャラクタの操作性(ユーザによるキャラクタの操作に対する熟練度)は不要であり、キャラクタの動作を観察して楽しむことができる。
【0128】
なお、シミュレーションシステム1は、例えば、所定のストーリー形式でキャラクタに命令を実行させること、一のキャラクタと他のキャラクタとを対戦させる形式で一のキャラクタ及び/又は他のキャラクタに命令を実行させること、又は特定のキャラクタを仮想空間100内の所定の場所に追い詰めて捕獲する動作を所定のキャラクタに命令して実行させること等、様々な形式で実行できる。
【0129】
以上、本発明の実施形態を説明したが、上記に記載した実施の形態は特許請求の範囲に係る発明を限定するものではない。また、実施の形態の中で説明した特徴の組み合わせの全てが発明の課題を解決するための手段に必須であるとは限らない点に留意すべきである。更に、上記した実施形態の技術的要素は、単独で適用されてもよいし、プログラム部品とハードウェア部品とのような複数の部分に分割されて適用されるようにすることもできる。
【符号の説明】
【0130】
1 シミュレーションシステム
10 入力部
12 配置部
14 命令設定部
16 実行受付部
18 動作制御部
20 出力部
22 格納ユニット
24 編集部
26 経験値付与部
28 ヒント提示部
50、52、54、56、58 キャラクタ
60、60a オブジェクト
100 仮想空間
102 下面
110、110a、110b、110c、110d、110e、110f、110g、110h 仮想単位空間
220 キャラクタ情報格納部
221 単位空間情報格納部
222 命令情報格納部
223 キャラクタ干渉情報格納部
224 空間干渉情報格納部
225 オブジェクト情報格納部
226 オブジェクト干渉情報格納部
227 動作シーケンス情報格納部
300、300a、300b、300c、300d 命令
図1
図2
図3
図4