(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-07-10
(45)【発行日】2024-07-19
(54)【発明の名称】プログラム、方法、およびシステム
(51)【国際特許分類】
G06T 19/00 20110101AFI20240711BHJP
H04N 21/4402 20110101ALI20240711BHJP
【FI】
G06T19/00 C
H04N21/4402
(21)【出願番号】P 2023038082
(22)【出願日】2023-03-10
【審査請求日】2024-02-15
【早期審査対象出願】
(73)【特許権者】
【識別番号】519120525
【氏名又は名称】カバー株式会社
(74)【代理人】
【識別番号】100142365
【氏名又は名称】白井 宏紀
(72)【発明者】
【氏名】回 凱
(72)【発明者】
【氏名】井上 翔一朗
【審査官】中田 剛史
(56)【参考文献】
【文献】中国特許出願公開第113289348(CN,A)
【文献】特表2018-524665(JP,A)
【文献】特開2012-088777(JP,A)
【文献】米国特許出願公開第2015/0091906(US,A1)
【文献】中国特許出願公開第113158320(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
H04N 21/4402
(57)【特許請求の範囲】
【請求項1】
ユーザに対し仮想空間を提供することができるコンピュータを、
他のオブジェクトとの衝突を判定するための衝突情報が関連付けられている面オブジェクトを前記仮想空間内において表示する手段と、
前記面オブジェクトのうち空洞にする領域を前記ユーザからの操作に応じて指定する領域指定手段と、
前記領域指定手段によって指定されることにより、当該指定された領域の衝突情報を空洞となる衝突情報に更新するための更新手段として機能させ、
前記表示する手段は、前記更新手段による前記衝突情報の更新に応じて、前記領域指定手段によって指定された領域が空洞となる面オブジェクトに更新表示し、
前記領域指定手段は、前記面オブジェクトのうち空洞にする領域を、第1の領域と、当該第1の領域と一部が重畳する第2の領域とを含む複数種類の領域のうちから指定可能である、プログラム。
【請求項2】
前記コンピュータを、
前記領域指定手段において、前記ユーザからの操作に応じて空洞にする領域として指定しようとする領域にガイド画像を表示するガイド画像表示手段として機能させ、
前記面オブジェクトは、空洞にすることができない空洞不能領域を含み、
前記ガイド画像表示手段は、前記ユーザからの操作に応じて空洞にする領域として指定しようとする領域に、前記空洞不能領域が含まれているときには、指定しようとする領域に前記空洞不能領域が含まれていないときとは異なる態様で前記ガイド画像を表示する、請求項1に記載のプログラム。
【請求項3】
前記表示する手段は、前記更新手段により空洞となる衝突情報に更新された領域に対応する配置オブジェクトの画像を表示し、
前記ガイド画像は、前記配置オブジェクトの外周部と形状が同じ枠オブジェクトの画像を含む、請求項2に記載のプログラム。
【請求項4】
前記面オブジェクトは、壁オブジェクトであり、
前記枠オブジェクトは、窓オブジェクトであり、
前記表示する手段は、前記壁オブジェクトのうち前記ガイド画像として表示される前記窓オブジェクトの枠内に対応する領域に、前記壁オブジェクトの奥側に配置されている他のオブジェクトを含む画像であって当該枠内から視認可能となる画像を表示する、請求項3に記載のプログラム。
【請求項5】
前記面オブジェクトのうち前記領域指定手段によって指定された領域であって前記更新手段により空洞に更新された領域
は、空洞にすることができない空洞不能領域である、請求項1に記載のプログラム。
【請求項6】
前記面オブジェクトのうち当該面オブジェクトの外縁に沿った領域
は、空洞にすることができない空洞不能領域である、請求項1に記載のプログラム。
【請求項7】
前記表示する手段は、前記仮想空間において第1の面オブジェクトと第2の面オブジェクトとが、当該第1の面オブジェクトの面の延長方向に沿って連なるように当該第2の面オブジェクトを接続させた接続態様で表示可能であり、
前記領域指定手段は、前記接続態様で表示されている前記第1の面オブジェクトと前記第2の面オブジェクトとに跨る領域を空洞にする領域として指定可能である、請求項1に記載のプログラム。
【請求項8】
前記衝突情報は、前記面オブジェクトの形状に対応するコライダであり、
前記領域指定手段により指定される領域は、方形状の領域であり、
前記更新手段は、前記面オブジェクトのうち前記領域指定手段によって指定された領域を除いた領域を埋め合わせるコライダであって、当該面オブジェクトを当該指定された領域の4辺のいずれか1辺と接する少なくとも2つ以上のコライダに分割するように更新することにより、当該指定された方形状の領域を空洞にする、請求項1に記載のプログラム。
【請求項9】
前記衝突情報は、前記面オブジェクトの形状に対応するコライダであり、
前記領域指定手段により指定される領域は、方形状とは異なる予め定められた非方形状の領域であり、
前記コンピュータの記憶部は、前記非方形状の領域を囲み込む方形状の領域のうち前記非方形状の領域を除いた領域を埋め合わせるスペーサコライダを予め記憶し、
前記更新手段は、前記面オブジェクトのうち前記領域指定手段によって指定された非方形状の領域を囲む方形状の領域を除いた領域を埋め合わせるコライダであって、当該面オブジェクトを当該方形状の領域の4辺のいずれか1辺と接する少なくとも2つ以上のコライダに分割するとともに、当該方形状の領域に前記スペーサコライダを配置するように更新することにより、当該指定された非方形状の領域を空洞にする、請求項1に記載のプログラム。
【請求項10】
前記更新手段は、空洞にした領域を空洞ではない領域に復旧させるためのユーザからの復旧操作に応じて、前記面オブジェクトの衝突情報を当該領域が空洞ではない衝突情報に更新し、
前記表示する手段は、前記復旧操作に応じて前記更新手段により空洞ではない衝突情報に更新された領域に対する面オブジェクトを復旧させて表示する、請求項1に記載のプログラム。
【請求項11】
前記表示する手段は、所定の視点からの前記仮想空間内の画像を表示可能であり、
前記コンピュータを、
前記ユーザからの操作に応じて視点を変化させる視点変化手段と、
前記領域指定手段により領域を指定するための補助になるガイドラインを表示するガイドライン表示手段として機能させ、
前記ガイドライン表示手段は、前記面オブジェクトの面との交差角度が所定角度以上となる向きの視点からの前記面オブジェクトが表示されているときに前記ガイドラインを表示する一方で、前記面オブジェクトの面に沿った向きであり前記面オブジェクトの面との交差角度が所定角度未満となる向きの視点からの前記面オブジェクトが表示されているときには前記ガイドラインを表示しない、請求項1に記載のプログラム。
【請求項12】
前記表示する手段は、所定の視点からの前記仮想空間内の画像を表示可能であり、
前記コンピュータを、
前記ユーザからの操作に応じて視点を変化させる視点変化手段と、
前記面オブジェクトの面との交差角度が所定角度以上となる向きの視点からの前記面オブジェクトが表示されているときに、前記領域指定手段により領域を指定するための補助になるガイドラインを表示するガイドライン表示手段として機能させ、
前記視点変化手段は、前記ガイドライン表示手段により前記ガイドラインが表示されているときには、視点の変化を抑制する、請求項1に記載のプログラム。
【請求項13】
前記表示する手段は、他のオブジェクトとの衝突を判定するための衝突情報が関連付けられているオブジェクトであって、前記仮想空間内において移動可能な可動オブジェクトを表示可能であり、
前記可動オブジェクトは、前記面オブジェクトのうち前記更新手段によって空洞となる衝突情報に更新された領域を通過可能である、請求項1に記載のプログラム。
【請求項14】
前記可動オブジェクトは、ユーザからの操作に応じた方向に移動させて他のオブジェクトに衝突させることにより当該他のオブジェクトに作用を及ぼす作用オブジェクトを含み、
前記作用オブジェクトは、前記更新手段によって空洞となる衝突情報に更新された領域を通過させることにより、前記面オブジェクトの手前側から前記面オブジェクトの奥側に配置されている他のオブジェクトに作用を及ぼすことができる、請求項13に記載のプログラム。
【請求項15】
ユーザに対し仮想空間を提供することができるコンピュータを制御する方法であって、
他のオブジェクトとの衝突を判定するための衝突情報が関連付けられている面オブジェクトを前記仮想空間内において表示するステップと、
前記面オブジェクトのうち空洞にする領域を前記ユーザからの操作に応じて指定する領域を指定するステップと、
前記面オブジェクトの衝突情報を前記領域を指定するステップによって指定された領域が空洞となる衝突情報に更新するステップとを備え、
前記表示するステップは、前記更新するステップによる前記衝突情報の更新に応じて、前記領域を指定するステップによって指定された領域が空洞となる面オブジェクトに更新表示し、
前記領域を指定するステップは、前記面オブジェクトのうち空洞にする領域を、第1の領域と、当該第1の領域と一部が重畳する第2の領域とを含む複数種類の領域のうちから指定可能とする
、方法。
【請求項16】
ユーザに対し仮想空間を提供する処理をコンピュータに実行させるシステムであって、
他のオブジェクトとの衝突を判定するための衝突情報が関連付けられている面オブジェクトを前記仮想空間内において表示する手段と、
前記面オブジェクトのうち空洞にする領域を前記ユーザからの操作に応じて指定する領域指定手段と、
前記面オブジェクトの衝突情報を前記領域指定手段によって指定された領域が空洞となる衝突情報に更新する更新手段として機能させ、
前記表示する手段は、前記更新手段による前記衝突情報の更新に応じて、前記領域指定手段によって指定された領域が空洞となる面オブジェクトに更新表示し、
前記領域指定手段は、前記面オブジェクトのうち空洞にする領域を、第1の領域と、当該第1の領域と一部が重畳する第2の領域とを含む複数種類の領域のうちから指定可能である、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、方法、およびシステムに関する。
【背景技術】
【0002】
従来より、ユーザからの操作に応じて、仮想空間において複数のオブジェクトを配置させて組み合わせることなどにより、ユーザの好みの街や建築物などを生成するゲームが知られている。また、このようなゲームにおいて、所定のオブジェクト(例えば、壁オブジェクトや床オブジェクトなど)に対してユーザが指定した位置に開口部を形成して空洞にできるものがあった(例えば、非特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】“フォートナイト|建築のやり方を1から解説。意外と簡単だから覚えておいて損なし”、[online]、[令和5年2月23日検索]、インターネット<https://www.otaku-haiken.com/entry/2018/03/22/200000>
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来のゲームにおいて、開口部を形成して空洞にする際には、実質的に、ユーザが指定した位置に予め開口部が形成され空洞化されている他のオブジェクトを差し替えて配置させる処理を行っていた。このため、同じ種類のオブジェクトであるにもかかわらず、開口部としてユーザが指定できる位置の数だけオブジェクトのデータを予め準備して記憶させておく必要があった。よって、従来のゲームでは、所定のオブジェクトを予め定められた位置で分割してなる複数の領域(例えば、縦3×横3の9区画の領域)のうちからでしか、開口部を形成する位置を指定することができなかった。その結果、所定のオブジェクトに対して開口部を形成して空洞にできる位置が制限されてしまい、ユーザの自由な創作を阻害してしまう虞があった。
【0005】
本発明は、かかる実情に鑑み考え出されたものであり、空洞にする位置についてユーザの自由度を向上させることができるプログラム、方法、およびシステムを提供するものである。
【課題を解決するための手段】
【0006】
(1)本発明のある局面にしたがうプログラムは、ユーザに対し仮想空間を提供することができるコンピュータを、
他のオブジェクトとの衝突を判定するための衝突情報(例えば、コライダ)が関連付けられている面オブジェクト(例えば、壁オブジェクト4)を前記仮想空間内において表示する手段(例えば、
図3の表示制御部354)と、
前記面オブジェクトのうち空洞にする領域を前記ユーザからの操作に応じて指定する領域指定手段(例えば、
図11のステップS12~ステップS17)と、
前記領域指定手段によって指定されることにより、当該指定された領域の衝突情報を空洞となる衝突情報に更新するための更新手段(例えば、
図11のステップS19)として機能させ、
前記表示する手段は、前記更新手段による前記衝突情報の更新に応じて、前記領域指定手段によって指定された領域が空洞となる面オブジェクトに更新表示(例えば、ステップS20)し、
前記領域指定手段は、前記面オブジェクトのうち空洞にする領域を、第1の領域と、当該第1の領域と一部が重畳する第2の領域(例えば、領域50aと領域50abが重畳している領域50b)とを含む複数種類の領域のうちから指定可能である(例えば、
図6参照)。
【0007】
このような構成によれば、空洞にする領域がユーザからの操作に応じて指定されることにより、当該領域が空洞となる衝突情報および表示に更新される。このため、空洞にする領域を、第1の領域と第2の領域といった互いに重畳し合う領域を含む複数種類の領域から指定できる。その結果、ユーザの指定に応じて空洞にする位置の自由度を向上させることができる。
【0008】
(2)上記(1)において、前記コンピュータを、
前記領域指定手段において、前記ユーザからの操作に応じて空洞にする領域として指定しようとする領域にガイド画像(例えば、ガイド画像500)を表示するガイド画像表示手段(例えば、
図11のステップS11)として機能させ、
前記面オブジェクトは、空洞にすることができない空洞不能領域(例えば、壁オブジェクト4の外縁に沿った枠状の領域401a、および、すでに空洞化されており窓オブジェクト5などが配置されている領域401b)を含み、
前記ガイド画像表示手段は、前記ユーザからの操作に応じて空洞にする領域として指定しようとする領域に、前記空洞不能領域が含まれているときには、指定しようとする領域に前記空洞不能領域が含まれていないとき(例えば、
図8の(a)のガイド画像500)とは異なる態様(例えば、
図8の(b)~(d)のガイド画像500)で前記ガイド画像を表示する。
【0009】
このような構成によれば、空洞にできるかできないかをユーザにわかりやすく報知できる。
【0010】
(3)上記(2)において、前記表示する手段は、前記更新手段により空洞となる衝突情報に更新された領域に対応する配置オブジェクト(例えば、窓オブジェクト5)の画像を表示し、
前記ガイド画像は、前記配置オブジェクトの外周部と形状が同じ枠オブジェクトの画像を含む。
【0011】
このような構成によれば、配置オブジェクトが実際に配置されたときの態様をユーザがイメージした上で配置位置を検討できる。
【0012】
(4)上記(3)において、前記面オブジェクトは、壁オブジェクト(例えば、壁オブジェクト4)であり、
前記枠オブジェクトは、窓オブジェクト(例えば、窓オブジェクト5)であり、
前記表示する手段は、前記壁オブジェクトのうち前記ガイド画像として表示される前記窓オブジェクトの画像の枠内に対応する領域に、前記壁オブジェクトの奥側(壁オブジェクト4の屋外側)に配置されている他のオブジェクト(例えば、他のキャラクタなど)を含む画像であって当該枠内から視認可能となる画像を表示する。
【0013】
このような構成によれば、窓オブジェクトを実際に配置したときに、窓オブジェクトの枠内から視認できる画像をユーザが確認することができるため、窓オブジェクトが実際に配置されたときの態様をユーザがよりイメージしやすくなる。
【0014】
(5)上記(1)によれば、
前記面オブジェクトのうち前記領域指定手段によって指定された領域であって前記更新手段により空洞に更新された領域(例えば、
図8(d)の401
b)は、空洞にすることができない空洞不能領域である。
【0015】
このような構成によれば、すでに空洞にした領域と重畳する領域が空洞にする領域として指定されてしまうことを防止できる。
【0016】
(6)上記(1)によれば、
前記面オブジェクトのうち当該面オブジェクトの外縁に沿った領域(例えば、
図8の領域401a)
は、空洞にすることができない空洞不能領域である。
【0017】
このような構成によれば、面オブジェクトの外縁の形状を変化させてしまうことを防止できる。
【0018】
(7)上記(1)によれば、前記表示する手段は、前記仮想空間において第1の面オブジェクトと第2の面オブジェクトと(例えば、
図9の左側の壁オブジェクト4aと、右側の壁オブジェクト4b)が、当該第1の面オブジェクトの面の延長方向に沿って連なるように当該第2の面オブジェクトを接続させた接続態様で表示可能であり、
前記領域指定手段は、前記接続態様で表示されている前記第1の面オブジェクトと前記第2の面オブジェクトとに跨る領域(例えば、
図9の左側の壁オブジェクト4aと、右側の壁オブジェクト4bとに跨る空洞化領域402)を空洞にする領域として指定可能である。
【0019】
このような構成によれば、複数の面オブジェクトが連なっている場合には、複数の面オブジェクトに跨るように空洞にする領域を指定することができる。これにより、ユーザの指定に応じて空洞にする位置の自由度を向上させることができる。
【0020】
(8)上記(1)によれば、前記衝突情報は、前記面オブジェクトの形状に対応するコライダ(例えば、コライダ40)であり、
前記領域指定手段により指定される領域は、方形状の領域であり、
前記更新手段は、前記面オブジェクトのうち前記領域指定手段によって指定された領域(例えば、
図7(b)の空洞化領域402)を除いた領域を埋め合わせるコライダ(例えば、
図7(c)のコライダ40a~40d)であって、当該面オブジェクトを当該指定された領域の4辺のいずれか1辺と接する少なくとも2つ以上のコライダに分割するように更新する(
図11のステップS19)ことにより、当該指定された方形状の領域を空洞にする。
【0021】
このような構成によれば、ユーザの操作に応じて、空洞にする領域として指定された方形状の領域以外を埋め合わせるように当該方形状の辺に沿ってコライダを分割させることにより、コライダについて指定された領域を空洞にできる。これにより、処理負担を増大させることなく、ユーザの指定に応じて空洞にする位置の自由度の向上を実現できる。
【0022】
(9)上記(1)によれば、前記衝突情報は、前記面オブジェクトの形状に対応するコライダ(例えば、
図6の壁オブジェクト4の形状に対応するコライダ40)であり、
前記領域指定手段により指定される領域は、方形状とは異なる予め定められた非方形状の領域(例えば、
図10の非方形状の空洞化領域402´)であり、
前記コンピュータの記憶部は、前記非方形状の領域を囲み込む方形状の領域のうち前記非方形状の領域を除いた領域を埋め合わせるスペーサコライダ(例えば、
図10のスペーサコライダ41)を予め記憶し、
前記更新手段は、前記面オブジェクトのうち前記領域指定手段によって指定された非方形状の領域を囲む方形状の領域を除いた領域を埋め合わせるコライダであって、当該面オブジェクトを当該方形状の領域の4辺のいずれか1辺と接する少なくとも2つ以上のコライダ(例えば、
図10のコライダ40a~40d)に分割するとともに、当該方形状の領域に前記スペーサコライダを配置するように更新することにより、当該指定された非方形状の領域を空洞にする。
【0023】
このような構成によれば、スペースコライダを予め記憶し、ユーザの操作に応じて、空洞にする領域として指定された領域を囲む方形状の領域を除いた領域以外を埋め合わせるように当該方形状の辺に沿ってコライダを分割させ、スペースコライダを配置することにより、コライダについて指定された領域を空洞にできる。これにより、記憶容量および処理負担を増大させることなく、ユーザの指定に応じて空洞にする位置の自由度の向上を実現できる。
【0024】
(10)上記(1)によれば、前記更新手段は、空洞にした領域を空洞ではない領域に復旧させるためのユーザからの復旧操作に応じて、前記面オブジェクトの衝突情報を当該領域が空洞ではない衝突情報に更新し、
前記表示する手段は、前記復旧操作に応じて前記更新手段により空洞ではない衝突情報に更新された領域に対する面オブジェクトを復旧させて表示する。
【0025】
このような構成によれば、記憶容量および処理負担を増大させることなく、復旧操作に応じて面オブジェクトの衝突情報および表示を更新することにより面オブジェクトを復旧できる。
【0026】
(11)上記(1)によれば、前記表示する手段は、所定の視点からの前記仮想空間内の画像を表示可能であり、
前記コンピュータを、
前記ユーザからの操作に応じて視点を変化させる視点変化手段と、
前記領域指定手段により領域を指定するための補助になるガイドライン(例えば、ガイドライン501)を表示するガイドライン表示手段として機能させ、
前記ガイドライン表示手段は、前記面オブジェクトの面との交差角度が所定角度以上となる向きの視点(例えば、
図12の(a)および(b)の視点)からの前記面オブジェクトが表示されているときに前記ガイドラインを表示する一方で、前記面オブジェクトの面に沿った向きであり前記面オブジェクトの面との交差角度が所定角度未満となる向きの視点(例えば、
図12の(c)の視点)からの前記面オブジェクトが表示されているときには前記ガイドラインを表示しない。
【0027】
このような構成によれば、面オブジェクトを視認しやすいときにガイドラインが表示されるため、効果的に領域の指定を補助できる。
【0028】
(12)上記(1)によれば、前記表示する手段は、所定の視点からの前記仮想空間内の画像を表示可能であり、
前記コンピュータを、
前記ユーザからの操作に応じて視点を変化させる視点変化手段と、
前記面オブジェクトの面との交差角度が所定角度以上となる向きの視点(例えば、
図12の(a)および(b)の視点)からの前記面オブジェクトが表示されているときに、前記領域指定手段により領域を指定するための補助になるガイドライン(例えば、ガイドライン501)を表示するガイドライン表示手段として機能させ、
前記視点変化手段は、前記ガイドライン表示手段により前記ガイドラインが表示されているときには、視点の変化を抑制する。
【0029】
このような構成によれば、ガイドラインが表示されているときに視点が変化してガイドラインが非表示となることを防止できる。
【0030】
(13)上記(1)によれば、前記表示する手段は、他のオブジェクトとの衝突を判定するための衝突情報(例えば、コライダ)が関連付けられているオブジェクトであって、前記仮想空間内において移動可能な可動オブジェクト(例えば、可動オブジェクト6)を表示可能であり、
前記可動オブジェクトは、前記面オブジェクトのうち前記更新手段によって空洞となる衝突情報に更新された領域を通過可能である(例えば、
図13において可動オブジェクト6が、壁オブジェクト4の中央の空洞を通過)。
【0031】
このような構成によれば、可動オブジェクトを通過させたい位置を考慮しながら、空洞にする領域を指定できるため、興趣を向上させることができる。
【0032】
(14)上記(13)によれば、前記可動オブジェクトは、ユーザからの操作に応じた方向に移動させて他のオブジェクトに衝突させることにより当該他のオブジェクトに作用を及ぼす作用オブジェクトを含み、
前記作用オブジェクトは、前記更新手段によって空洞となる衝突情報に更新された領域を通過させることにより、前記面オブジェクトの手前側(例えば、
図13における壁オブジェクト4の手前)から前記面オブジェクトの奥側に配置されている他のオブジェクトに作用を及ぼすことができる。
【0033】
このような構成によれば、面オブジェクトの奥側に配置されている他のオブジェクトに作用を及ぼすことを考慮しながら、戦略的に空洞にする領域を指定できるため、より一層興趣を向上させることができる。
【0034】
(15)ユーザに対し仮想空間を提供することができるコンピュータを制御する方法であって、
他のオブジェクトとの衝突を判定するための衝突情報(例えば、コライダ)が関連付けられている面オブジェクト(例えば、壁オブジェクト4)を前記仮想空間内において表示するステップ(例えば、
図3の表示制御部354)と、
前記面オブジェクトのうち空洞にする領域を前記ユーザからの操作に応じて指定する領域を指定するステップ(例えば、
図11のステップS12~ステップS17)と、
前記領域を指定するステップによって指定されることにより、当該指定された領域の衝突情報を空洞となる衝突情報に更新するステップ(例えば、
図11のステップS19)とを備え、
前記表示するステップは、前記更新するステップによる前記衝突情報の更新に応じて、前記領域を指定するステップによって指定された領域が空洞となる面オブジェクトに更新表示(例えば、ステップS20)し、
前記領域を指定するステップは、前記面オブジェクトのうち空洞にする領域を、第1の領域と、当該第1の領域と一部が重畳する第2の領域(例えば、領域50aと領域50abが重畳している領域50b)とを含む複数種類の領域のうちから指定可能とする(例えば、
図6参照)。
【0035】
このような構成によれば、空洞にする領域がユーザからの操作に応じて指定されることにより、当該領域が空洞となる衝突情報および表示に更新される。このため、空洞にする領域を、第1の領域と第2の領域といった互いに重畳し合う領域を含む複数種類の領域から指定できる。その結果、ユーザの指定に応じて空洞にする位置の自由度を向上させることができる。
【0036】
(16)ユーザに対し仮想空間を提供する処理をコンピュータに実行させるシステムであって、
他のオブジェクトとの衝突を判定するための衝突情報(例えばコライダ)が関連付けられている面オブジェクト(例えば、壁オブジェクト4)を前記仮想空間内において表示する手段(例えば、
図3の表示制御部354)と、
前記面オブジェクトのうち空洞にする領域を前記ユーザからの操作に応じて指定する領域指定手段(例えば、
図11のステップS12~ステップS17)と、
前記領域指定手段によって指定されることにより、当該指定された領域の衝突情報を空洞となる衝突情報に更新するための更新手段(例えば、
図11のステップS19)として機能させ、
前記表示する手段は、前記更新手段による前記衝突情報の更新に応じて、前記領域指定手段によって指定された領域が空洞となる面オブジェクトに更新表示(例えば、ステップS20)し、
前記領域指定手段は、前記面オブジェクトのうち空洞にする領域を、第1の領域と、当該第1の領域と一部が重畳する第2の領域(例えば、領域50aと領域50abが重畳している領域50b)とを含む複数種類の領域のうちから指定可能である(例えば、
図6参照)。
【0037】
このような構成によれば、空洞にする領域がユーザからの操作に応じて指定されることにより、当該領域が空洞となる衝突情報および表示に更新される。このため、空洞にする領域を、第1の領域と第2の領域といった互いに重畳し合う領域を含む複数種類の領域から指定できる。その結果、ユーザの指定に応じて空洞にする位置の自由度を向上させることができる。
【図面の簡単な説明】
【0038】
【
図1】通信システムのハードウェア構成例を示す図である。
【
図3】ユーザ端末の構成を説明するための図である。
【
図4】資材オブジェクト管理テーブルの一例を示す図である。
【
図5】壁オブジェクトの構成を説明するための図である。
【
図6】空洞にする領域として指定可能な領域の一例を示す図である。
【
図7】資材オブジェクト配置処理によるコライダの分割態様の一例を示す図である。
【
図8】空洞にすることができない空洞不能領域の一例を示す図である。
【
図9】資材オブジェクト配置処理によるコライダの分割態様の別の一例を示す図である。
【
図10】資材オブジェクト配置処理によるコライダの分割態様であって、スペーサコライダを用いた一例を示す図である。
【
図11】資材オブジェクト配置処理の一例を示すフローチャートである。
【
図12】ガイドラインが表示、非表示となる場合の一例を示す図である。
【
図13】資材オブジェクト配置処理によって空洞化された空洞から可動オブジェクトを通過させる一例を示す図である。
【発明を実施するための形態】
【0039】
以下、図面を参照しつつ本発明に係る通信システムについての実施の形態について説明する。なお、本発明は以下の例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が本発明に含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を繰り返さない。
【0040】
図1は、通信システム1のハードウェア構成例を示す図である。通信システム1は、配信サーバ100と、複数のユーザ端末300a、300b、300c…とを含む。複数のユーザ端末300a、300b、300c…は、複数のユーザ各々が所有する端末であって、以下ではまとめてユーザ端末300ともいう。
【0041】
配信サーバ100、およびユーザ端末300は、各々、ネットワーク2を介して通信接続可能であり、双方向に情報(データ)を送受信できる。ネットワーク2は、例えばインターネットであり、LAN(Local Area Network)、WAN(Wide Area Network)、移動通信網(例えば、5G、無線ネットワークなど)、有線電話網、FTTH(Fiber To The Home)、CATV(Cable Television)網等のアクセス網などで構成される。
【0042】
配信サーバ100は、例えば、通信機能を有するワークステーションまたはパーソナルコンピュータなどのコンピュータである。配信サーバ100は、コンピュータ上に構築される仮想的な世界である仮想空間(例えば、メタバース空間を含む)を複数管理し、ネットワーク2を介してユーザが選択した仮想空間を用いたサービス(コンテンツ)を提供する。
【0043】
本実施の形態におけるユーザは、ユーザ端末300への操作に応じて、配信サーバ100により提供される仮想空間に参加し、ユーザキャラクタなどを介して活動、行動、発言等をすることができる。
【0044】
仮想空間を用いて提供するコンテンツは、コンテンツの種類毎に管理・設定されている。提供可能なコンテンツには、例えば、ゲーム、ライブ、イベント、番組などを視聴・体験可能なコンテンツや、ユーザ間におけるチャットやエモートなどを利用して交流やコミュニケーションを図るコンテンツなどが含まれるが、これに限るものではない。ユーザは、ユーザ端末300を用いて配信サーバ100にアクセスし、所望するコンテンツを選択することにより、当該コンテンツへシームレスに参加(回遊)して、当該コンテンツに応じた仮想空間を視聴・体験等が可能となる。
【0045】
仮想空間には、コンテンツの種類に応じて、CG(Computer Graphics)によって生成される3次元の空間(3次元データに基づき構築される空間)や、2次元の空間(2次元データに基づき構築される空間)が含まれる。また、仮想空間には、仮想キャラクタ(アバターオブジェクト)や、コンテンツの種類に応じた背景・仮想的な物体を示すオブジェクト、ユーザが選択可能なメニューオブジェクトなどが配置される。仮想空間に配置される仮想キャラクタには、当該仮想空間に参加しているユーザ各々に対応して予め設定されておりユーザからの操作等に応じて動作可能なユーザキャラクタや、プログラムに基づいて動作するノンプレイヤキャラクタなどが含まれる。
【0046】
仮想空間に配置されるオブジェクトの例として、ゲームコンテンツの場合には、ゲームフィールドに応じたフィールドオブジェクト上に、当該ゲームに応じたアイテムオブジェクトや、キャラクタオブジェクト、あるいは、当該ゲームコンテンツをプレイしているユーザのユーザキャラクタなどが配置される。また、ライブコンテンツの場合には、例えば、舞台オブジェクト・観客席オブジェクト・照明オブジェクトなどが配置されるとともに、舞台オブジェクト上にライブを進行するタレントのユーザキャラクタなどが配置され、観客席オブジェクト上に参加するユーザのユーザキャラクタなどが配置される。また、コミュニケーションを図るコンテンツの場合には、例えば、参加する複数のユーザ各々のユーザキャラクタや、コミュニケーションに利用可能なアイテムオブジェクトなどが配置される。
【0047】
配信サーバ100は、配信可能なコンテンツに応じた複数の仮想空間内の画像をユーザ端末において表示するための情報や音を出力するための音情報を記憶部120に記憶している。また、配信サーバ100は、ユーザ端末300からのアクセスに応じて、対応するコンテンツの仮想空間内の画像を表示するための表示情報や音を出力するための音情報を含むコンテンツデータを配信することにより、ユーザにコンテンツ(サービス)を提供する。
【0048】
コンテンツデータには、例えば、仮想空間内に配置されるオブジェクトなどに関する情報(例えば、オブジェクトの種類、配置位置、向き、姿勢、態様など)を特定するための情報や、当該仮想空間に参加しているユーザ各々のユーザキャラクタなどに関する情報(例えば、ユーザキャラクタの種類、配置位置、向き、姿勢、態様、モーションデータ、音声データなど)、コンテンツの種類に応じた背景・仮想的な物体を示すオブジェクト、ユーザにより選択されるメニューオブジェクトなどを特定するための情報を含む。
【0049】
仮想空間内のオブジェクトは、ユーザ端末からの操作等に応じて姿勢や、位置、表情などが変化したり、時間経過などに応じて配置されているオブジェクトの態様が変化したりする。このため、コンテンツデータは、所定時間毎(例えば、約60fpsとなる0.016秒毎など)に配信されることにより、時々刻々と変化する仮想空間内の画像をユーザ端末において表示可能となる。
【0050】
また、配信サーバ100は、ユーザ端末300においてゲームコンテンツを進行(プレイ)可能となるプログラムおよびデータを管理し、ユーザによりゲームコンテンツが選択されたときに、当該ゲームコンテンツの仮想空間を用いたサービスを提供するためのプログラムおよびデータをユーザ端末300に配信する。なお、配信サーバ100からゲームコンテンツを進行するためのプログラムおよびデータの配信タイミングは、ユーザによりゲームコンテンツが選択されたときに限らず、配信サーバ100にログインしたときや、所定の達成条件が成立したときなどであってもよい。
【0051】
なお、本実施の形態における配信サーバ100は、1台のコンピュータによって実現されていてもよいし、また、複数台のコンピュータ(例えば、複数台のサーバ)によって実現されているものであってもよい。
【0052】
ユーザ端末300は、コンテンツを視聴・体験等するユーザによって使用される。ユーザ端末300は、例えば、パーソナルコンピュータ、タブレット端末、スマートフォン等の操作入力機能や通信機能を有するコンピュータであってもよい。
【0053】
ユーザ端末300は、当該端末への操作に応じて、配信サーバ100と通信してユーザが選択したコンテンツのコンテンツデータを受信する。また、ユーザ端末300は、受信したコンテンツデータに基づいて、配信サーバ100において構築されている仮想空間のうちユーザが選択したコンテンツの仮想空間をユーザ端末300の記憶領域内において構築し、当該仮想空間内の画像を表示するとともに音を出力する。これにより、ユーザ端末300を介して、コンテンツの仮想空間を視聴・体験等が可能となる。
【0054】
また、ユーザ端末300は、表示される仮想空間やオブジェクトに対する操作を受け付ける。ユーザ端末300は、当該端末への操作に応じた情報を配信サーバ100に送信して、参加しているコンテンツの仮想空間内において当該ユーザのユーザキャラクタを動作・移動等させることができる。前述したように所定時間毎に配信サーバ100から送信されるコンテンツデータに基づいて、同じコンテンツに参加しているユーザの各ユーザ端末300における仮想空間においても当該ユーザキャラクタの移動等を反映(同期)させることができる。
【0055】
また、ユーザ端末300は、ユーザによりゲームコンテンツが選択されたときに配信サーバ100から配信されるプログラムおよびデータを記憶し、当該プログラムおよびデータに基づいて、選択したゲームコンテンツの仮想空間を表示するとともに、当該ゲームコンテンツを進行(プレイ)可能となる。
【0056】
<配信サーバの構成>
次に、配信サーバ100の構成を説明する。
図2に示すように、配信サーバ100は、他のコンピュータと通信を行う通信部110と、各種データを記憶する記憶部120と、コンピュータ全体の制御を行う制御部130とを備える。通信部110、記憶部120、および、制御部130は、バスラインによって相互に接続される。
【0057】
通信部110は、有線通信又は無線通信を行うためのNIC(Network Interface Card controller)を備える通信インターフェースである。通信部110は、ネットワーク2を介して、他のコンピュータと通信を行う。
【0058】
記憶部120は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等から構成される。記憶部120は、各種制御処理を実行するためのプログラム(例えば、仮想空間を用いたコンテンツを管理・提供するためのプログラムなど)、各種データ等を記憶する。記憶部120に記憶される各種データには、コンテンツ(例えばゲームコンテンツ)の種類毎に設けられている仮想空間の画像を特定するための情報を含むゲームプログラム121、仮想空間に配置されるオブジェクトを管理するオブジェクト管理テーブル122や、ユーザに関するユーザ情報123などが含まれる。
【0059】
ゲームプログラム121は、ゲームコンテンツの仮想空間を用いたサービスをユーザ端末300において提供するためのプログラムである。ゲームプログラム121は、ユーザ端末300に配信されるとユーザ端末300の記憶部320に記憶されかつ制御部350によって実行される。
【0060】
オブジェクト管理テーブル122は、ユーザに提供するコンテンツの仮想空間において配置される各種オブジェクトを管理する。オブジェクト管理テーブル122には、各種オブジェクトの形状や模様や、各種オブジェクトの生成に必要なキャッシュや仮想通貨の額など情報が記憶されている。
【0061】
ユーザ情報123は、ユーザを識別するためのユーザID、ユーザ毎のコンテンツの進行に関する情報や、ユーザ毎の各種オブジェクトの保有状況などが記憶されている。
【0062】
制御部130は、CPU(Central Processing Unit)等から構成される。制御部130は、記憶部120に記憶されているプログラムを実行することにより、配信サーバ100の全体の動作を制御する。
【0063】
以下、制御部130の機能的な構成を説明する。制御部140は、少なくとも、データ送受信部131、コンテンツ管理部132、および、ユーザ管理部133として機能する。
【0064】
データ送受信部131は、ユーザ端末300から送信される各種情報の受信や、ユーザ端末300に対して各種情報の送信を行う。データ送受信部131は、記憶部120に格納されている各種管理テーブルを参照する。データ送受信部131が送受信を行う各種情報には、例えば、コンテンツ管理部132において管理されている仮想空間内に配置されるオブジェクトに関する情報(例えば、ユーザに関連付けられるオブジェクトを仮想空間内に配置する操作、削除する操作、移動する操作など)や、ゲーム情報、各種通知などが含まれる。また、データ送受信部131は、アクセス元のユーザ端末に対して、各端末において選択されているコンテンツの仮想空間であってコンテンツ管理部132において管理されている仮想空間内の画像を表示等するためのコンテンツデータを所定時間毎に配信する。
【0065】
また、データ送受信部131は、ゲームコンテンツが選択されたときに、当該ゲームコンテンツのゲーム情報として、当該ゲームコンテンツをユーザ端末300にて進行可能とするためのプログラムおよびデータなどを配信する。さらに、データ送受信部131は、当該ゲームコンテンツ進行中のユーザ端末300から送信されるゲーム進行情報(例えば、ユーザキャラクタの位置・動作内容、オブジェクトの位置・態様などを特定するための情報を含む)を受信し、例えば同じ仮想空間でプレイしている他のユーザに共有するために当該ゲーム進行情報を配信する。これにより、同じ仮想空間内において各ユーザのユーザキャラクタの位置・動作内容や、オブジェクトの位置・態様などを同期させることができる。他のユーザに共有するために配信するゲーム進行情報としては、同じ仮想空間で対戦・協力などするゲームコンテンツにおいては各ユーザの操作などに応じたユーザ毎のゲーム状況(例えば、ユーザ毎のユーザキャラクタの位置・動作内容など)を他のユーザのユーザ端末300の仮想空間内に反映させて同期させるための情報や、特定のユーザ(例えばタレントなど)のゲームの進行状況(例えば、特定のユーザのゲーム進行画面、ゲーム空間全体における特定のユーザのゲーム進行状況など)を他のユーザ(例えば、観戦する一般のユーザなど)が参加する仮想空間内にて視聴などするゲームコンテンツにおいては、当該特定のユーザの操作などに応じた当該特定のユーザのゲーム状況を、仮想空間に参加する他のユーザの各ユーザ端末300に反映させて視聴可能とするための情報などであってもよい。なお、特定のユーザのゲームの進行状況を他のユーザが参加する仮想空間内にて視聴などするゲームコンテンツの場合、他のユーザに共有するために配信するゲーム進行情報は、特定のユーザのユーザ端末300において表示される視点に基づいた映像(例えば特定のユーザと同一の画面や、特定のユーザと同一の画面を含む映像など)を特定するための情報であってもよく、特定のユーザのユーザ端末300において表示される視点に限らず他のユーザが見やすい視点に当該他のユーザ自身が調整できるようにするために、ゲーム空間全体を特定するための情報であって、当該ゲーム空間内において他のユーザが調整した視点から特定のユーザのゲーム進行状況を視聴できるようにするための情報であってもよい。
【0066】
コンテンツ管理部132は、通信部110を介して、予め設定されたコンテンツに応じた仮想空間内の画像を特定するための情報を記憶部120において記憶・更新する。コンテンツ管理部132は、例えば、予め設定されたコンテンツ(例えば、ゲーム)の種類を特定するための情報や、コンテンツ毎の仮想空間内の画像を特定するための情報、予め定められた日時に配信するコンテンツ(番組)については当該配信の日時を特定するための情報などを記憶部120において記憶する。また、仮想空間内の画像を特定するための情報には、当該仮想空間内に配置されているオブジェクトや、当該仮想空間に参加しているユーザに対応するユーザキャラクタなどに関する情報を含む。
【0067】
ユーザ管理部133は、ユーザに関するユーザ情報を記憶部120において記憶・更新する。ユーザに関するユーザ情報には、例えば、ユーザを識別するためのIDや、ユーザ名などを含む。
【0068】
<ユーザ端末の構成>
次に、ユーザ端末300の構成を詳細に説明する。
図3に示すように、ユーザ端末は、配信サーバ100を含む他のコンピュータと通信を行う通信部310と、各種データを記憶する記憶部320と、操作などを入力するための入力部330と、画像などを出力するための出力部340と、コンピュータ全体の制御を行う制御部350とを備える。通信部310、記憶部320、入力部330、出力部340、および、制御部350は、バスラインによって相互に接続される。
【0069】
通信部310は、有線通信又は無線通信を行うためのNICを備える通信インターフェースである。通信部310は、ネットワーク2を介して、配信サーバ100を含む他のコンピュータと通信を行う。記憶部320は、RAM、ROM等から構成される。記憶部320は、各種制御処理を実行するためのプログラム(例えば、仮想空間を用いたコンテンツを視聴等するためのプログラム、配信ユーザ端末においては仮想空間を用いたコンテンツを配信サーバ100を介して配信するためのプログラムなど)、各種データ等を記憶する。
【0070】
入力部330は、ユーザからの入力操作・音声を受け付けるための入力装置(例えば、タッチパネル、タッチパッド、マウス等のポインティングデバイス、キーボード、マイクロフォン等)を含む。本実施形態におけるユーザ操作とは、これらの入力部330に対するユーザからの操作をいう。例えば、タッチパネルに対するタッチ操作、スライド操作、フリック操作、あるいは、ボタン操作や、ドラッグ(スワイプ)操作、ユーザ端末300の表示部に表示されるアイコンに対する操作や、ポインティングデバイス、キーボードに対する操作、マイクロフォンに対する音声入力などが含まれる。
【0071】
出力部340は、ユーザに対し情報(テキスト、画像、音声等)を提示・出力するための出力装置(ディスプレイなどの表示部、スピーカ等)を含む。制御部350は、CPU等から構成される。制御部350は、記憶部320に記憶されているプログラムを実行することにより、ユーザ端末300の全体の動作を制御する。
【0072】
以下、制御部350の機能的な構成を説明する。制御部350は、少なくとも、情報取得部351、仮想カメラ制御部352、入力情報送信部353、表示制御部354、衝突情報管理部355、および、ユーザ管理部356として機能する。
【0073】
情報取得部351は、通信部310を介して配信サーバ100からのコンテンツデータおよびコメント情報などを取得し、コンテンツデータに基づいて各種オブジェクトが配置された仮想空間内の画像を表示するための情報を記憶部320に記憶するとともに、コメント情報に基づいて投稿されたコメントを表示するための情報を記憶部320に記憶する。また、コンテンツデータのうちゲームコンテンツのゲーム情報を取得したときには、ゲーム情報に基づいて、ユーザ端末300においてゲームコンテンツを進行可能となるプログラムおよびデータを記憶部320に記憶する。
【0074】
仮想カメラ制御部352は、記憶部320に記憶した仮想空間内に配置されて、当該仮想空間内の画像のうちユーザ端末300に表示する領域(視界領域)を特定するための仮想カメラを制御する。仮想カメラ制御部352は、入力部330への操作に応じて、仮想カメラの位置や、向き、傾きなどを制御する。
【0075】
入力情報送信部353は、入力部330において取得した音声情報や、操作入力情報など配信サーバ100に送信する。操作入力情報には、表示される仮想空間内のオブジェクトや当該仮想空間内に配置されているユーザキャラクタに対する操作を特定するための操作情報や、仮想空間にオブジェクトを配置するためのユーザからの選択操作、あるいは、指定操作などの各種の情報が含まれる。
【0076】
表示制御部354は、情報取得部351が取得したコンテンツデータに基づいて記憶部320に記憶されている仮想空間のうち、仮想カメラからの視界(視点)である視界領域に対応する画像を表示部(ディスプレイなど)に表示させる。つまり、ユーザは、入力部330への操作に応じて仮想空間内に配置されている仮想カメラの位置や、向き、傾きなどを変更することにより、仮想空間内の画像のうち仮想カメラの視界領域内の画像をユーザ端末300に表示させて視認することができる。また、仮想カメラからの視界(視点)は、ユーザキャラクタの視点や動作に応じて変化させるようにしてもよい。
【0077】
本実施の形態においては、コンテンツデータに基づいて仮想空間内の画像を表示するための情報を記憶部320に記憶し、当該記憶部320に記憶した仮想空間内に仮想カメラを配置して、当該仮想カメラを制御することによりユーザ端末300に表示する視界領域を変動させる例を示したが、これに限らず、例えば、配信サーバ100の記憶部120に記憶した仮想空間内に当該ユーザの仮想カメラを配置して、仮想カメラ制御部352により当該仮想カメラを制御して当該仮想カメラの視界領域を変動させて、当該視界領域内の画像を特定するためのデータを受信してユーザ端末300に表示するようにしてもよい。
【0078】
また、表示制御部354は、情報取得部351が取得したコンテンツデータに基づいて配信されているコンテンツに応じた態様のUI(User Interface)画像(例えば、ユーザが選択可能なメニュー画像や操作を受け付ける操作画像を含む)や、仮想空間内において配置するオブジェクトなどを表示する。仮想空間内において配置するオブジェクトは、例えば、オブジェクトの形状を表す情報(メッシュにより表される)と、オブジェクトの見た目である外観を表す情報とを組み合わせた表示情報により、仮想空間内においてユーザが視認できるように表示可能となる。表示情報のうちオブジェクトの見た目である外観を表す情報には、オブジェクトの陰影、表面の質感や色などの視覚的な情報が含まれるものであってもよい。
【0079】
衝突情報管理部355は、情報取得部351が取得したコンテンツデータに基づき、仮想空間内に配置されるオブジェクトの衝突情報を管理する。本実施の形態に係るオブジェクトは、仮想空間内に配置される仮想的な物体である。オブジェクトの少なくとも一部には、コライダが関連付けられている。コライダとは、オブジェクト同士の衝突を判定するために用いられる衝突情報である。また、衝突情報とは、例えば、他のオブジェクトとの衝突(当り)を判定する面の位置座標などを含む情報(コンポーネント、要素)である。コライダは、関連付けられるオブジェクトの形状に重ね合わせるように配置されている。すなわち、コライダは、オブジェクトの形状を表す情報に応じた形状に設定されている。
【0080】
さらに衝突情報管理部355は、オブジェクト同士の衝突を検出する。例えば、仮想空間内おけるオブジェクト同士の衝突判定は、オブジェクトに関連付けられたコライダ同士が衝突することにより、オブジェクト同士の衝突を検出する。コライダ同士の衝突は、例えば、コライダが有する、線形、球体、あるいは平面の形状同士が衝突することにより、衝突の測定がされる。これにより、仮想空間内に配置された撮像画像内のオブジェクト同士の衝突時の感触の表現や、跳ね返り等の表現が可能となる。
【0081】
なお、コライダの形状は、関連付けられるオブジェクトに応じて直方体、球体、あるいは線形など種々の形状のタイプのコライダを採用することができる。例えば、面を有する平板状のオブジェクト(例えば壁オブジェクト)であれば、直方体のボックスコライダを適用することができる。また、プロセッサーへの処理負荷が小さい単純な形状のコライダ、あるいは、単純な形状のコライダを複合させたコライダに限らず、メッシュコライダを適用し、コライダをオブジェクトの表示情報に含まれる表面のメッシュの形状と同じあるいは同等の形状にすることで、複雑なオブジェクトの形状に対応できるようにしてもよい。
【0082】
ユーザ管理部356は、ユーザに関するユーザ情報を記憶部320において記憶・更新する。ユーザに関するユーザ情報には、例えば、ユーザを識別するためのIDや、ユーザ名などを含む。
【0083】
<ゲームコンテンツの一例>
本実施の形態のゲームコンテンツにおけるゲームには、ユーザキャラクタを用いて敵キャラクタと対戦する対戦ゲーム(戦闘ゲーム)、複数のユーザキャラクタによりパーティを組んで敵キャラクタと対戦する対戦ゲーム、ユーザキャラクタ同士で対戦する対戦ゲーム等や、キャラクタが保有するアイテムを育成する(例えば、アイテムのパラメータを変化させる)ゲーム、アクションゲーム、クイズゲーム、カードゲーム、仮想空間内において資材オブジェクトを配置・組み合わせることにより好みの施設、建築物を生成するクラフトゲーム、サンドボックスゲーム、ハウジングゲーム(以下、建築ゲームともいう)など種々のゲームを含む。以下では、ゲームコンテンツにおけるゲームとして、特に建築ゲームの一部分について説明するが、当該建築ゲームのみを行うものに限らず、例えば、対戦ゲームやアクションゲームなど他のゲームの進行中において建築ゲームを行うものであってもよい。
【0084】
<資材オブジェクト管理テーブル>
建築ゲームでは、ユーザからの操作に応じて、仮想空間内に複数種類の資材オブジェクトを配置・組み合わせることにより、ユーザが所望する建築物(例えば、家屋、施設、基地、陣地、城など)を構築できる。
図4は、記憶部120に記憶されるオブジェクト管理テーブル122によって管理されるオブジェクトのうち、建築ゲームに用いられる資材オブジェクトの一例を示す図である。ユーザによりゲームコンテンツが選択されると、当該ゲームコンテンツに応じたオブジェクトデータが読み出されて、ユーザ端末300に配信されて記憶部320に格納される。なお、
図4に示すように、オブジェクト管理テーブル122には、建築ゲームに用いられる資材オブジェクトについて、資材グループ、種別、素材、および、バリエーションに関する情報が関連付けられている。資材オブジェクトの一例としては、資材グループ建材に属する、種別が壁であって、素材が木の壁の、バリエーションが正方形の壁Aである壁オブジェクトや、資材グループ建材に属する、種別が窓であって、素材が木枠の、バリエーションが正方形の窓Aである窓オブジェクトなどが示されている。
【0085】
資材オブジェクトの配置は、例えば、
図4の資材オブジェクト管理テーブルに関連付けられている資材オブジェクトの一部あるいはすべてが、ユーザ端末300の表示部に一覧として選択できるように表示され、ユーザは所望の資材オブジェクトを選択することにより仮想空間内に資材オブジェクトを配置可能となる。なお、ユーザが選択可能な資材オブジェクトは、ユーザが購入した資材、ユーザに特典として付与された資材、ユーザがゲーム内において資材を集めることにより選択可能あるいは追加されたものや、ゲーム内でのユーザのレベル等に応じて選択可能あるいは追加されるか否かが変動する資材などであってもよい。
【0086】
図4における資材グループとは、仮想空間内に配置可能な資材オブジェクトを大分類の属性に振り分けたグループである。例えば、建築物を組み立てる際に必要となる資材は、建材グループに分類され、建築物内に配置する資材は、家具グループに分類され、その他壁・天井装飾、施設に関する資材などに分類されている。
【0087】
種別とは、資材グループを更に細分化させたものであって、具体的には、建築物の土台、床、壁、窓、扉、階段・梯子、屋根、柱などの種別に分類されている。素材とは、各資材オブジェクトの素材に関する情報である。例えば、種別が窓の場合は、木枠、石の枠などの素材が含まれる。バリエーションとは、各資材オブジェクトの、色や模様、形状などのバリエーションに関する情報である。例えば、種別が窓であって、素材が木枠の資材は、正方形の窓A、長方形の窓A、円形の窓A、雲形の窓Aといったバリエーションに分類されている。
【0088】
<資材オブジェクトの構成>
図5を参照し、資材オブジェクトの基本構成を説明する。
図5では、資材オブジェクトのうち壁オブジェクト4を例に説明する。壁オブジェクト4は、例えば建築物の壁に相当しており、面を有するオブジェクトである。壁オブジェクト4には、表示情報42と、コライダ40とが関連付けられている。表示情報42には、壁オブジェクト4の形状の情報や、外観の色や柄、質感などの情報などが含まれる。壁オブジェクト4は、表示情報42に基づいて、仮想空間内において視覚的に認識することができるように表示される。また、コライダ40は、表示情報42の形状に重ね合わせるように配置されている。コライダ40により、例えば、他のコライダが関連付けられているオブジェクトを含む他のコライダが壁オブジェクト4に当たったことを判定可能となる。これにより、例えば、他のオブジェクトが壁オブジェクト4をすり抜けてしまうことなく衝突した演出表示などが可能となる。このように、資材オブジェクトには、各々に表示情報とコライダとが関連付けられており、表示や当たり判定が可能となる。
【0089】
ところで、従来の建築ゲームにおいて、壁オブジェクトなどに開口部を形成して空洞にするものがあり、空洞にする際には、実質的にユーザが指定した位置に予め開口部が形成され空洞化されている他の壁オブジェクトを差し替えて配置させる処理を行っていた。このため、同じ壁オブジェクトであるにもかかわらず、開口部としてユーザが指定できる位置の数だけ壁オブジェクトのデータを予め準備して記憶させておく必要があった。一方で、壁オブジェクトのデータを準備し記憶させる数には、記憶容量や設計時間などを考慮すると限界がある。よって、従来の建築ゲームでは、壁オブジェクトを予め定められた位置で分割してなる複数の領域(例えば、縦3×横3の9区画の領域)のうちからでしか、開口部を形成する位置を指定できず、予め定められている複数の領域からずれた位置を指定できなかった。その結果、壁オブジェクトに対して開口部を形成して空洞にできる位置が制限されてしまい、ユーザの自由な創作を阻害してしまう虞があった。
【0090】
一方、本実施の形態においては、壁オブジェクトに対して開口部を形成して空洞にする際に、他の壁オブジェクトに差し替えるのではなく、後述する
図7で示すように配置されている壁オブジェクトの表示情報とともにコライダを分割させて更新する手法を採用した。これにより、後述する
図6に示すようにユーザは所望の領域を空洞にする領域として指定することができる。その結果、空洞にする位置についてユーザの自由度を向上させることができる。
【0091】
<空洞にする領域の指定方法>
まず、空洞にする領域の指定方法について説明する。
図6は、空洞にする領域を指定する際のユーザ端末300の表示部における表示態様の一例を示す図である。本実施の形態においては、ユーザにより例えば窓オブジェクト5の配置操作がされると、表示制御部354は、
図6(a)に示すように、ユーザ端末300の表示部における壁オブジェクト4に重畳するようにガイド画像500を表示する。配置操作とは、例えば、配信サーバ100から配信されたゲームコンテンツデータに基づいて記憶部320に記憶された資材オブジェクトテーブルに基づいて、ユーザ端末300の表示部に表示した建材アイテム一覧から窓オブジェクト5が選択される操作などである。
【0092】
窓オブジェクト5は、外周部において窓枠に相当する枠オブジェクトを有している。このため、本実施の形態におけるガイド画像500としては、ユーザ操作によって選択された窓オブジェクト5が有する枠オブジェクトの形状と同一の形状であるが表示色が異なる枠オブジェクトの画像が表示されるものとする。ガイド画像500が表示されている領域は、窓オブジェクト5を配置しようとしている領域を示している。
【0093】
ユーザは、ガイド画像500に対する移動操作により、当該ガイド画像500を移動表示させることができる。移動操作とは、例えば、ポインティングデバイスによってガイド画像500を選択してドラッグ移動させる操作などである。
図6では、壁オブジェクト4の面内であれば、いずれの位置であってもガイド画像500を移動表示させて、空洞にする領域として指定可能である例を示す。すなわち、壁オブジェクト4の面内の領域であれば第1の領域も、当該第1の領域と一部が重畳(重複)する第2の領域も、ガイド画像500を移動表示させて空洞にする領域として指定可能である。空洞にする領域の一例として、例えば、
図6(a)に示すガイド画像500により指定されている領域50aや、
図6(b)に示すように、領域50aからユーザ操作により左上方向の位置に移動させたときであって領域50aと一部(領域50ab)が重畳(重複)する領域50b、
図6(c)に示すように、領域50aからユーザ操作により右方向の位置に移動させたときであって領域50aと一部(領域50ac)が重畳(重複)する領域50c、
図6(d)に示すように、領域50aから大きく右下方向の位置に移動させたときであって領域50aと重畳(重複)していない領域50dなどが含まれる。
【0094】
また、ユーザは、壁オブジェクト4に対して窓オブジェクト5を設置したい位置にガイド画像500を移動させて、窓オブジェクトの配置領域指定の確定操作を行うことにより、当該ガイド画像500により指定されている領域に窓オブジェクト5を設置させることができる。具体的には、確定操作によって当該ガイド画像500により指定されている領域が空洞にする空洞化領域として特定されて、当該空洞化領域が空洞化されることで窓オブジェクト5が配置されることになる。なお、確定操作とは、ガイド画像500が表示されている状況において、例えばユーザ端末300の表示部に仮想空間と共に表示される確定アイコンに対する操作、入力装置の所定のボタンやキーを押下する操作などである。確定操作が行われて窓オブジェクト5を配置するときの配置処理の内容については、
図7を用いて説明する。
【0095】
<窓オブジェクト5の配置処理について>
図7を参照して、ガイド表示500が表示されている状態でユーザにより確定操作が行われて、空洞化領域に窓オブジェクト5を配置するときの配置処理の概要を説明する。窓オブジェクト5を配置するときの配置処理では、まず、壁オブジェクト4に関連付けられている表示情報42およびコライダ40が更新される。
図7(a)~
図7(c)では、壁オブジェクト4の中央部を空洞化させて窓オブジェクト5を配置する領域として指定(確定操作)されたときのコライダが更新される様子を示している。
【0096】
図7(a)に示すように壁オブジェクト4に関連付けられている1つのコライダ40は、
図7(b)に示すように壁オブジェクト4の中央部が窓オブジェクト5を配置する領域として指定(確定操作)されることにより、
図7(c)に示すように、コライダ40a~コライダ40dの4つのコライダ(例えばボックスコライダ)に分割される。具体的には、ユーザによる確定操作が検出されると、衝突情報管理部355は、1枚のコライダ40を、空洞化領域402を除いた領域を埋め合わせるコライダであって、方形状の空洞にする領域の4辺のいずれか1辺(辺の延長線を含む)と接する複数のコライダ40a~40dに分割するように更新する。例えば、コライダ40aは、空洞化領域の上辺(延長線)に接するコライダであり、コライダ40bは、空洞化領域の左側の辺に接するコライダであり、コライダ40cは、空洞化領域の右側の辺に接するコライダであり、コライダ40dは、空洞化領域の下辺(延長線)に接するコライダである。
【0097】
また、空洞化領域402が方形状の領域であるため、空洞化領域402の各辺はいずれも直線となる。このため、1枚のコライダ40は、空洞化領域402の辺と接する直線あるいは延長線に沿って分割される。その結果、曲線や規則性のない境界線上でコライダを分割する場合と比較して、コライダを分割して更新するための処理負担を軽減しつつ、単純な形状のコライダの組み合わせによって空洞を形成できる。
【0098】
図7(d)は、コライダ40が分割されたあとの仮想空間内における壁オブジェクト4の表示態様の一例である。コライダ40が分割されると、当該分割に伴い、壁オブジェクト4に関連付けられた表示情報42についても、表示画像管理部354によって、指定された領域が空洞化され、かつ、窓オブジェクト5が壁オブジェクト4に配置されている表示態様に更新して表示される。
図7(d)に示すように、コライダ40が分割されていても、ユーザ端末300の表示部においては、コライダ40a~コライダ40dに対応する領域はひとつの面で表示されている(コライダが分割されていることは視認できない)。なお、窓オブジェクト5が配置されるタイミングは、コライダの分割と同じタイミングであってもよく、コライダが分割された後の所定タイミングであってもよい。
【0099】
図7(b´)~(d´)では、壁オブジェクト4の外周部(下辺)に接する領域が、空洞化して窓オブジェクト5を配置する領域として指定(確定操作)されたときのコライダが更新される様子を示している。
【0100】
図7(a)に示すように壁オブジェクト4に関連付けられている1つのコライダ40は、
図7(b´)に示すように壁オブジェクト4の下辺に接する領域が窓オブジェクト5を配置する領域として指定されることにより、
図7(c´)に示すように、コライダ40e~コライダ40gの3つのコライダ(例えばボックスコライダ)に分割される。具体的には、ユーザによる確定操作が検出されると、衝突情報管理部355は、1枚のコライダ40を、空洞化領域402を除いた領域を埋め合わせるコライダであって、方形状の空洞にする領域の4辺のいずれか1辺と接する複数の40e~40gに分割するように更新する。例えば、コライダ40eは、空洞化領域402の上辺(延長線)に接するコライダであり、コライダ40fは、空洞化領域402の左側の辺に接するコライダであり、コライダ40gは、空洞化領域402の右側の辺に接するコライダである。これにより、コライダを分割して更新することにより、指定された領域を空洞にすることができる。
図7(d´)は、コライダ40が分割されたあとの仮想空間内における壁オブジェクト4の表示態様の一例である。
【0101】
なお、空洞化領域402が壁オブジェクト4の外周部の上下の辺のいずれかと、左右の辺のいずれかとの両方(2辺)に接していた場合には、空洞化402領域を除いた領域を埋め合わせるコライダであって、方形状の空洞にする領域の4辺のいずれか1辺と接する2つのコライダに分割するように更新することにより、空洞化領域402を空洞にすることができる。
【0102】
<空洞不能領域>
図6および
図7では、壁オブジェクト4の面内であればいずれの位置であってもガイド画像500を移動表示させて、空洞にする領域として指定可能である例を示したが、これに限らず、壁オブジェクト4の面内において空洞にする領域として指定できない領域が定められているものであってもよい。
図8を参照して、壁オブジェクト4の面内のうち空洞にすることができない空洞不能領域が定められている例について説明する。
図8では、空洞不能領域として、例えば
図8(a)などで示すように、壁オブジェクト4の外縁に沿った枠状の領域401aと、
図8(d)の左上の領域に示すように、すでに空洞化されており窓オブジェクト5などが配置されている領域401bとが定められている。
【0103】
また、空洞不能領域が定められている場合、前述したガイド画像500は、空洞不能領域に重畳しているときと、空洞不能領域に重畳していないときとで、異なる態様で表示される。例えば、
図8(a)に示すように、ガイド画像500が空洞不能領域に重畳していないときには、ガイド画像500を表示態様G1(例えば緑色)で表示するのに対し、
図8(b)および
図8(c)に示すように、ガイド画像500が壁オブジェクト4の外縁に沿った枠状の領域401aに重畳しているときには、ガイド画像500を表示態様G2(例えば赤色)で表示する。また、
図8(d)に示すように、ガイド画像500が窓オブジェクト5など配置されている領域401bに重畳しているときにも、ガイド画像500を表示態様G2(例えば赤色)で表示する。なお、ガイド画像500が空洞不能領域に重畳しているか否かを報知するものであればこれに限らず、ガイド画像500の輝度を異ならせるものや、警告音などの音声や、バイブレーションなどユーザ端末300の表示部に表示する以外の方法によって報知するものであってもよい。
【0104】
<複数のオブジェクトに跨って空洞化する場合>
次に、複数のオブジェクトに跨る領域が空洞にする領域として指定された場合を例示する。
図9を参照して、壁オブジェクト4が複数連なっていた場合のコライダ40の分割態様の一例について説明する。
図9においては、
図9(a)に示すように、壁オブジェクト4の面が横方向に連結されている。すなわち、面を横方向に延長するように、横向きの延長方向に沿って壁オブジェクト4が連なっている。この場合であっても、
図9(b)に示すように、例えば2つの壁オブジェクト4aと壁オブジェクト4bとを跨った領域に対しても、窓オブジェクト5を配置することができる。つまり、複数の壁オブジェクト4に跨る領域を空洞にする領域として指定することができる。この場合、壁オブジェクト4単体であったときにはその外縁が空洞不能領域に定められているときであっても、壁オブジェクト4aおよび4bの接合部に接する外縁を空洞にする領域として指定可能にすることで、外縁が含まれていても空洞化させることができる。
【0105】
図9(c)に示すように、壁オブジェクト4aと壁オブジェクト4bとに跨った領域で確定操作があったときには、壁オブジェクト4aおよび4b各々のコライダ40が、コライダ40h~コライダ40mに分割される。これにより、空洞にする領域として指定された領域に空洞を形成することができ、
図9(d)に示すように、2つの壁オブジェクト4aと壁オブジェクト4bとに跨った領域に窓オブジェクト5を配置・表示することができる。なお、
図9(c)では、1つの壁オブジェクト4のコライダ40につき、3つのコライダに分割される例について説明したが、例えば、コライダ40hと、コライダ40iを一つのコライダとし、コライダ40kとコライダ40lを1つのコライダとして生成することで、2つの壁オブジェクト4aおよび4b各々のコライダ40が合わさって4つのコライダになるようにしてもよい。
【0106】
<非方形状の空洞を生成する場合>
図7等では、壁オブジェクトに対して方形状の空洞を形成する例について示したが、空洞の形状はこれに限らず、非方形状であってもよい。この場合には、例えば、空洞とする非方形状の領域を囲み込む方形状の領域のうち非方形状の領域を除いた領域を埋め合わせるスペーサコライダを予め準備して記憶しておくことにより、記憶容量および処理負担を増大させることなく、ユーザの指定に応じて空洞にする位置の自由度の向上を実現できる。
図10を参照して、壁オブジェクト4に配置される窓オブジェクトとして、長方形や正方形といった方形状以外の形状の窓オブジェクト(非方形状領域)が選択されていた場合のコライダ40の分割態様の一例について説明する。非方形状領域とは、円や三角、あるいは雲や星など複雑な形状まで、方形状以外の種々の形状を含む。
【0107】
図10においては、壁オブジェクト4に配置する窓オブジェクトとして、例えば建材アイテム一覧からユーザにより円形の窓オブジェクト5´が選択されているものとする。
図7と同様に、ユーザ端末300の表示部において、円形の窓オブジェクト5´の形状に対応する円形のガイド画像が表示されている状態でユーザにより確定操作が行われたことで、空洞化領域402´に円形の窓オブジェクト5´を配置する処理が行われる。なお、当該円形のガイド画像は、上述したガイド画像500と同様の機能を有するものとする。
【0108】
図10(a)に示すように壁オブジェクト4に関連付けられている1つのコライダ40は、
図10(b)に示すように、壁オブジェクト4の中央部が、窓オブジェクト5´を配置する領域として指定(確定操作)されることにより、
図10(c)に示すように
図7(c)と同様にコライダ40a~コライダ40dの4つのボックスコライダに分割される。
図7(c)と異なる点としては、分割された4つのボックスコライダの中央に形成された方形状の領域と、円形の窓オブジェクト5´の形状に対応する非方形状の空洞化領域402´との隙間を埋めるスペーサコライダ41が配置されることで、窓オブジェクト5´の形状に対応した空洞が形成される。スペーサコライダ41は、サーバ100の記憶部120に予め記憶されており、ゲームコンテンツのデータとしてユーザ端末300に配信される。また、スペーサコライダ41は、ユーザにより窓オブジェクトの配置領域指定の確定操作があると、配信サーバ100から配信され記憶部320に記憶されたゲーム情報のスペーサコライダ41のデータに基づいて、衝突情報管理部355によって生成される。
【0109】
<補助ガイドライン表示>
図12を参照して、窓オブジェクト5を、壁オブジェクト4に配置する際に補助となるガイドライン501の表示、および、表示制限について説明する。ガイドライン501は、例えば、窓オブジェクト5を配置しようとする際に、すでに配置されている窓オブジェクト5と上下左右の位置を合わせることや、複数の窓オブジェクト5を等間隔に整列させることなどを容易にするものである。例えば、
図12(a)に示すように、すでに配置されている窓オブジェクト5の上のラインに合わせてガイドライン501を表示させ、当該ガイドライン501にガイド画像500を近づけることで、ガイド画像500の上辺の位置がガイドライン501と揃う位置補正(スナップ機能ともいう)ができるものであってもよい。これにより、例えば
図12(b)に示すように、すでに配置されている窓オブジェクト5と、ガイド画像500の上辺のラインを揃えることが可能となる。なお、ガイドライン501は、ユーザが所定のメニューアイコンを選択することなどによりオンオフの切替操作ができるものであってもよく、すでに配置されているオブジェクトに沿って表示されるもの、補助ツールとしてユーザが任意で選択可能となるものや、ゲーム画面上の端に定規を表示させ、当該定規からガイドを表示させたい位置にまでスライド操作(あるいはカーソル移動など)を行うことなどにより、ユーザが所望する位置に表示させるようにできるものであってもよい。また、縦軸、あるいは横軸に表示されるラインに限らず、斜めに延びるラインや、曲線のラインであってもよい。
【0110】
また、ガイドライン501は、ユーザの目線となる仮想空間を表示する視点(例えば、仮想カメラの視点)の方向を、壁オブジェクト4の面に対して交差させた際に、交差角度が所定角度以上(例えば30°以上)となる場合に表示可能となる一方で、交差角度が所定角度未満(例えば30°未満)となった場合に非表示となる。また、当該視点は、仮想空間内において、ユーザが操作するユーザキャラクタ6を配置し、ユーザキャラクタ6の移動操作に伴い視点が変わるものであってもよい。例えば、ユーザキャラクタ6が、
図12(a)および
図12(b)に示すように壁オブジェクト4の正面に立っている場合には、ガイドライン501を表示し、
図12(c)に示すようにユーザキャラクタ6が移動操作されることにより、視点が切り替えられた場合には、ガイドライン501を非表示としてもよい。また、仮想空間内のユーザキャラクタ6の表示・非表示を管理者側(サーバ側)、あるいは、ユーザによる切替アイコンへの操作によって切替られるものとしてもよい。ユーザキャラクタ6を非表示とすることで、より建築ゲームに特化したUIをユーザに提供することができる。
【0111】
<資材オブジェクト配置処理>
図11を参照して、本実施の形態における建築ゲームにおける、資材オブジェクト配置処理の一例を説明する。資材オブジェクト配置処理は、例えば、ゲームコンテンツ進行中においてユーザ操作によって建築ゲームに移行された際に、配信サーバ100から配信され格納されたプログラムに基づきユーザ端末300の制御部120により所定時間ごとに繰り返し実行される。
【0112】
ステップS10では、窓オブジェクトが選択されたか否かが判定される。例えば、仮想空間内に配置されている壁オブジェクトに対して窓オブジェクトを配置するために、建材アイテム一覧から窓オブジェクト5がユーザ操作により選択されたか否かが判定される。ステップS10において窓オブジェクトが選択されたと判定されたときには、ステップS11に進む。
【0113】
ステップS11では、ユーザ端末300の表示部に表示されている壁オブジェクトに重畳するように、選択された窓オブジェクトに対応するガイド画像が表示される。例えば、
図6(a)に示すように、壁オブジェクト4に重畳するように、窓オブジェクト5の外形に対応したガイド画像500が表示される。
【0114】
ステップS12では、ガイド画像が移動操作されたか否かが判定される。ステップS12において、ガイド画像が操作されたと判定されたときは、ステップS13に進み、当該移動操作に応じてガイド画像を移動表示させる。例えば、
図6(b)~(d)に示すように、ユーザ操作に応じてガイド画像500を移動表示する。
【0115】
ステップS14では、ガイド画像が移動された領域に、空洞不能領域が含まれているか否かが判定される。ガイド画像が移動された領域(指定された領域)に空洞不能領域が含まれていると判定されなかったときには、ステップS15に進みガイド画像を表示態様G1で表示し、ステップS12に戻る。一方、ステップS14において、ガイド画像が移動された領域(指定されている領域)に、空洞不能領域が含まれていると判定されたときには、ステップS16に進み、ガイド画像を表示態様G2で表示して、ステップS12に戻る。例えば、
図8(a)に示すように、ガイド画像500が表示されている領域に空洞不能領域が含まれていなかったときには、ガイド画像500を表示態様G1(例えば緑色)で表示する。一方、
図8(b)~(d)に示すように、ガイド画像500が表示されている領域に空洞不能領域が含まれていたときには、ガイド画像500を表示態様G2(例えば赤色)で表示する。なお、本実施の形態における資材オブジェクト配置処理の説明では、
図8で示したように空洞不能領域が定められているものとして説明するが、空洞不能領域が定められていない場合には、ステップS13の後はステップS12に移行させて、ステップS14~S16が行われないものとしてもよい。
【0116】
ステップS12において、ガイド画像が操作されたと判定されなかったときには、ステップS17に進み、ユーザによる窓オブジェクトの配置領域指定の確定操作があったか否かが判定される。ステップS17において、窓オブジェクトの配置領域指定の確定操作があったと判定されなかったときには、ステップS21に進み、キャンセル操作があったか否かが判定される。キャンセル操作とは、窓オブジェクトの配置指定操作をキャンセルし、例えばユーザ端末300の表示部に表示される、キャンセルアイコンあるいは戻るアイコンに対する操作、入力装置の所定のボタンやキーの押下があることなどにより、他の建材オブジェクトを選択できる画面に戻る操作などが含まれる。ステップS21においてキャンセル操作があったと判定されたときには、資材オブジェクト配置処理を終了する。一方、ステップS21においてキャンセル操作があったと判定されなかったときには、ステップS12に戻る。
【0117】
ステップS17に戻り、ユーザによる窓オブジェクトの配置領域指定の確定操作があったと判定されたときには、ステップS18に進む。ステップS18では、ガイド画像が表示されている領域に、空洞不能領域が含まれているか否かが判定される。ガイド画像が表示されている領域に空洞不能領域が含まれているか否かの判断は、ステップS14と同様に、
図8に示すように、ガイド画像500が表示されている領域に空洞不能領域が含まれているか否かにより判断される。ステップS18において空洞不能領域が含まれていると判定されたときには、ステップS21に進み、上述した流れと同様の処理がなされる。一方、ステップS18において空洞不能領域が含まれていると判定されなかったときには、ステップS19に進む。なお、空洞不能領域が定められていない場合には、ステップS17でYESの後はステップS19に移行させるようにしてもよい。
【0118】
ステップS19においては、壁オブジェクトのコライダを、確定操作があった指定されている領域を空洞にするコライダに更新し、ステップS20に進む。例えば、
図7に示すように、壁オブジェクト4のコライダ40を、確定操作があった空洞化領域402を空洞にするコライダ40a~コライダ40dに分割することで、指定された領域に対応する空洞が形成される。
【0119】
ステップS20では、確定操作があった空洞化領域402に応じて、壁オブジェクトの空洞化表示、および、窓オブジェクトを配置する処理が行われ、資材オブジェクト配置処理を終了する。例えば、
図7に示すように、
図7(b)に表示される空洞化領域402で確定操作があった場合に、
図7(d)に示すように、壁オブジェクト4に関連付けられた表示情報42を、空洞化領域402が空洞化された表示画像に更新して表示するとともに、空洞化領域402に窓オブジェクト5が配置されて表示されるように更新する。
【0120】
ステップS10に戻り、窓オブジェクトが選択されたと判定されなかったときには、ステップS22に進み、その他の操作があったか否かが判定される。その他の操作とは、建築ゲーム中において、ユーザにより窓オブジェクト以外が選択される操作があった場合などが含まれる。ステップS22において、その他の操作がされたと判定されたときには、ステップS23に進み、その他の操作に応じた処理がなされ、処理を終了する。例えば、土台オブジェクトが選択されたときには、土台オブジェクトを配置するための処理が行われる。一方、ステップS22でその他の操作がされたと判定されなかったときには、資材オブジェクト配置処理を終了する。
【0121】
<空洞化された領域を通過可能な可動オブジェクト>
図13を参照して、上述した資材オブジェクト配置処理によって空洞化された壁オブジェクト4の空洞化領域402を通過させることができるオブジェクトについて説明する。本実施の形態においては、仮想空間内に、衝突情報(コライダ)が関連付けられたオブジェクトであって、当該仮想空間内を移動可能な可動オブジェクトを表示(配置)させることができる。可動オブジェクトとは、例えば、銃の弾、弓矢、レーザー光線などの戦闘ゲームにおいて長距離攻撃に用いられる飛び道具や、雨水などの流体物などの、重力の影響を受ける情報が関連付けられていることにより動きを伴うものや、キャラクタなどの動作を伴うものなど種々のオブジェクトが含まれる。資材オブジェクト配置処理によって、壁オブジェクト4のコライダ40が空洞化されると、壁オブジェクト4の当該空洞化された領域において当該可動オブジェクトに関連付けられたコライダと、壁オブジェクト4に関連付けられたコライダ40とが衝突することがなくなる。そのため、例えば可動オブジェクトが球体オブジェクト7であった場合、
図13に示すように球体オブジェクト7は、壁オブジェクト4の空洞化領域402を通過可能となる。
【0122】
また、可動オブジェクトには、仮想空間内に配置(動作を伴う表示がされているものを含む)されている他のオブジェクトに作用を及ぼすことができる作用オブジェクトが含まれる。作用オブジェクトとは、例えば、上述した飛び道具などの武器などが含まれる。当該作用オブジェクトは、壁オブジェクト4の手前から空洞化領域402を通過させることなどにより、壁オブジェクト4の奥側に配置されている他のオブジェクトに作用を及ぼすことができる。例えば、建築物の内側(屋内)から、壁オブジェクト4に配置した窓オブジェクト5の開口部を介して弓矢を放つことにより、建築物の外側(屋外)に配置されている敵キャラクタに攻撃をすることが可能であるため、ユーザは戦闘ゲームの戦略に応じて窓オブジェクト5を自由に配置することが可能となる。その結果、建築ゲームにおける自由度の向上のみならず、建築ゲーム要素以外のゲームについての戦略性を高めることができる。なお、建物の屋外から作用を及ぼす(あるいは、及ぼされる)ようにしてもよく、例えば、建築物の屋内において火災(炎オブジェクトが表示されている)が起こっている場合に、建築物の屋外から、窓オブジェクト5の開口部を介して消火作業を行うことができる。
【0123】
<空洞化後復旧操作>
また、上述した資材オブジェクト配置処理によって壁オブジェクト4の空洞化された領域は、例えばユーザからの復旧操作に応じて、空洞ではない領域に復旧させることができる。すなわち、壁オブジェクト4の空洞化領域402にコライダ40が関連付けられるようにする。例えば、
図7(c)を参照して、壁オブジェクト4のコライダ40が分割されることで、空洞化領域402にはコライダ40が関連付けられていない状態となっていれば、
図7(a)のように、壁オブジェクト4全体のコライダ40を1つに戻すことで、空洞が埋められるようにしてもよい。
【0124】
あるいは、例えば、
図7(c)の空洞化領域402に対応するコライダを衝突情報管理部355によって生成し、空洞2を埋めるようにしてもよい。空洞化領域402が方形状であるため、空洞に対応するコライダを生成するための処理負担を軽減できる。また、空洞化領域402にコライダ40が関連付けられるときに、表示画像管理部354により、壁オブジェクト4の表示情報42も、空洞化されていた領域が空洞化されていない表示画像となるように生成される。例えば、窓オブジェクト5の表示画像を削除するととともに、1枚の壁オブジェクト4の表示画像に戻す。
【0125】
なお、壁オブジェクト4の復旧後の表示画像は、復旧操作直後に表示されるものに限らず、例えば、復旧操作がされたときに、空洞化領域402に半透明の壁オブジェクト4の画像が表示され、所定時間(例えば、3秒)をかけて壁オブジェクト4の復旧後の画像が完全に表示されるものとしてもよい。あるいは、
図6(a)に示すような、窓オブジェクト5の配置確定操作がされる前の状態である、壁オブジェクト4にガイド画像500が重畳して表示されたステップS11の表示状態に戻るようにしてもよい。
【0126】
また、ユーザからの復旧操作とは、例えば、窓オブジェクト5が配置されていた場合に、窓オブジェクト5を削除するためのアイコンがユーザにより選択される操作によるものであってもよい。また、ユーザ操作、あるいは、ユーザが操作するキャラクタ6によって、窓オブジェクト5を壁オブジェクト4の外側へ叩き落とすことで、窓オブジェクト5が外されるものであってもよい。この場合、窓オブジェクト5が外されるとともに、復旧させるようにしてもよい。なお、叩き落とされた窓オブジェクト5は、落とされることで仮想空間から削除されてもよく、あるいは、例えばキャラクタ6によって拾うことが可能なものとしてもよい。また、ユーザキャラクタ6が窓オブジェクト5を持つことで、窓オブジェクト5の再配置のための移動操作を
図6に示すガイド画像500に代わって行われるものとしてもよい。
【0127】
<具体的構成および効果の例>
【0128】
(1)上述した実施の形態では、
図11のステップS12~ステップS17において、壁オブジェクト4のうち空洞にする領域がユーザからの操作に応じて指定されることにより、
図11のステップS19、S20において、指定された領域が空洞となるように壁オブジェクト4のコライダ40および表示情報42が更新される。つまり、空洞にする領域として指定可能な領域を予め空洞にした壁オブジェクトのデータを予め複数準備して記憶することなく、ユーザからの操作に応じて指定された領域を空洞化することができる。このため、空洞にする領域を
図6(b)などで示したように、領域50aと、領域50aと一部が重畳する領域50bとを含む複数種類の領域から指定できる。その結果、ユーザの指定に応じて空洞にする位置の自由度を向上させることができる。
【0129】
(2)上述した実施の形態では、ユーザ端末300の表示部において、
図6および
図11のステップS11などに示すようにユーザからの操作に応じて空洞にする領域として指定しようとする領域にガイド画像500が表示される。また、
図8および
図11のステップS14~S16などに示すように、指定しようとする領域に、空洞にすることができない領域として定められている空洞不能領域が含まれているか否かに応じて、ガイド画像500の態様が異ならせて表示される。これにより、ガイド画像500の態様によって、空洞にできるかできないかをユーザにわかりやすく報知できる。
【0130】
(3)上述した実施の形態では、ガイド画像として、窓オブジェクト5の外周部と形状が同じ枠オブジェクトの画像が表示される。これにより、ユーザは、空洞とする領域に配置されることとなる窓オブジェクト5が実際に配置されたときの態様をイメージした上で配置位置を検討できる。
【0131】
(4)上述した実施の形態では、
図8(d)に示すように、空洞にすることができない領域として定められている空洞不能領域に、すでに指定されて空洞にされている領域401bが含まれる。これにより、すでに空洞にした領域と重畳する領域が空洞にする領域として指定されてしまい、例えば空洞にした領域がユーザの意図と異なる形状となってしまうことなどを防止できる。なお、空洞にした領域の形状とは、例えば、配置した窓オブジェクトの形状である。
【0132】
また、
図8(b)などに示すように、空洞にすることができない領域として定められている空洞不能領域に、壁オブジェクト4の外縁に沿った領域401aが含まれる。これにより、壁オブジェクトの外縁の形状を変化させてしまうことにより、例えば壁オブジェクト自体がユーザの意図と異なる形状となってしまうことなどを防止できる。
【0133】
(5)上述した実施の形態では、
図9(a)に示すように、壁オブジェクト4aに対して、当該壁オブジェクト4aの面の延長方向に沿って連なるように壁オブジェクト4bを接続させて表示可能である。また、連なるように複数の壁オブジェクト4を接続させている場合には、
図9(b)などで示すように、壁オブジェクト4aと壁オブジェクト4bとに跨る領域(壁オブジェクト4が単体であるときには空洞不能領域401aとなる領域)を空洞にする領域として指定できる。これにより、ユーザの指定に応じて空洞にする位置の自由度をより一層向上させることができる。
【0134】
(6)上述した実施の形態の
図7および
図9では、空洞にする領域が方形状の領域であり、壁オブジェクト4のうち指定された空洞化領域402を除いた領域を埋め合わせるコライダであって、当該壁オブジェクト4を当該領域50の4辺のいずれか1辺と接する少なくとも2つ以上のコライダ(例えば、
図7(c)のコライダ40a~40d)に分割するように更新させて(例えば、
図11のステップS19)、指定された方形状の領域を空洞にする。これにより、処理負担を増大させることなく、ユーザの指定に応じて空洞にする位置の自由度の向上を実現できる。
【0135】
(7)上述した実施の形態の
図10では、空洞にする領域が非方形状の一例として円形の領域であり、当該円形の領域を囲み込む方形状の領域のうち円形の領域を除いた領域を埋め合わせるスペーサコライダ41を予め記憶し、オブジェクト4のうち指定された円形の領域を囲む方形状の領域を除いた領域を埋め合わせるコライダであって、当該壁オブジェクト4を当該方形状の領域の4辺のいずれか1辺と接する少なくとも2つ以上のコライダ(例えば、
図10(c)のコライダ40a~40d)に分割するとともに、スペーサコライダ41を配置するように更新させて(例えば、
図11のステップS19)、当該指定された円形の領域を空洞にする。これにより、スペーサコライダ41を準備・記憶させておくことにより記憶容量および処理負担を増大させることなく、ユーザの指定に応じて非方形状の領域を空洞にすることができるとともに当該空洞にする位置の自由度の向上を実現できる。
【0136】
(8)上述した実施の形態では、空洞にした領域を空洞ではない領域に復旧させるためのユーザからの復旧操作に応じて、壁オブジェクト4のコライダ40を当該領域が空洞ではないコライダ40に更新するとともに、壁オブジェクト4の表示情報42も復旧させて表示する。これにより、記憶容量および処理負担を増大させることなく、復旧操作に応じて壁オブジェクト4のコライダ40および表示情報42を更新することにより壁オブジェクト4を復旧できる。
【0137】
(9)上述した実施の形態では、
図12(a)などに示すように、壁オブジェクト4の面との交差角度が所定角度以上となる向きの視点からの壁オブジェクト4が表示されているときに、空洞にする領域を指定する際の補助となるガイドライン501が表示される一方で、
図12(c)に示すように、壁オブジェクト4の面に沿った向きであり壁オブジェクト4の面との交差角度が所定角度未満となる向きの視点からの壁オブジェクト4が表示されているときにはガイドライン501が表示されない。これにより、壁オブジェクト4を略正面から視認しやすいときにガイドライン501が表示されるため、効果的に空洞にする領域の指定を補助・サポートできる。
【0138】
(10)上述した実施の形態では、
図12(a)などに示すように、壁オブジェクト4の面との交差角度が所定角度以上となる向きの視点からの壁オブジェクト4が表示されているときに、空洞にする領域を指定する際の補助となるガイドライン501が表示される一方で、当該ガイドライン501が表示されているときには視点の変化が抑制される。視点の変化の抑制としては、例えば、視点を変更できない制御や、視点を変更できるものの壁オブジェクト4の面に沿った向きであり壁オブジェクト4の面との交差角度が所定角度未満となる向きの視点への変更を規制する制御などである。これにより、ガイドライン501が表示されているときに視点が変化してガイドライン501が非表示となることや、壁オブジェクト4を略正面から視認できずガイドライン501の補助・サポートが効果的に発揮されないような状況となることを防止できる。
【0139】
(11)上述した実施の形態では、
図13に示すように、ユーザからの指定に応じて空洞となった空洞化領域402内に、壁オブジェクト4の手前側から壁オブジェクト4の奥側に向けて可動オブジェクト6を通過させることができ、壁オブジェクト4の奥側に配置されている他のオブジェクトに作用を及ぼすことができる。これにより、可動オブジェクト6を通過させたい位置を考慮しながら、空洞にする領域を指定できるため、興趣を向上させることができる。また、戦略的に空洞にする領域を指定できるため、より一層興趣を向上させることができる。
【0140】
<変形例>
以上説明した実施の形態に対する変形例などを以下に列挙する。
【0141】
上記実施の形態において、壁オブジェクト4に関連付けられたコライダ40は、ボックスコライダであって、資材オブジェクト配置処理によって複数のボックスコライダに分割される例について説明した。しかしこれに限らず、壁オブジェクト4にメッシュコライダを関連付け、ステップS17における配置領域指定の確定操作に応じて、壁オブジェクト4に関連付けられたメッシュコライダ自体を変形させ(壁オブジェクト4の表示情報42の形状のメッシュに応じて可変)更新することで、空洞を形成するようにしてもよい。
【0142】
上記実施の形態においては、ガイド画像500として、ユーザ操作によって選択された窓オブジェクト5が有する枠オブジェクトの形状と同一の形状であるが表示色が異なる枠オブジェクトの画像が表示される例について説明した。しかしこれに限らず、窓オブジェクト5と表示色が同一のものであってもよい。例えば、表示態様G1を窓オブジェクト5と同一の表示色とし、表示態様G2を窓オブジェクト5とは異なる表示色にしてもよい。また、枠オブジェクトとは、
図12の窓オブジェクト5やガイド画像500に示すように厚みがあるものに限らず、厚みがない平面状の画像であってもよい。
【0143】
また、窓オブジェクト5は、例えば窓オブジェクト5が壁オブジェクト4に設置された際に壁オブジェクト4の手前や奥側から突出する部分を有するものであってもよい。また、ガイド画像500を、当該突出する部分を有した窓オブジェクト5と同一の表示画像(窓オブジェクト5と同一の表示情報)としてもよい。突出する部分とは、例えば、窓オブジェクト5の厚みが壁オブジェクト4の厚みよりも分厚いことによりはみ出た部分や、窓オブジェクト5に開閉部(開閉扉)や、ひさしが形成されていることなどによりはみ出た部分などが含まれる。これにより、例えば、ユーザは、壁オブジェクト4の奥側(屋外側)からの見え方などを考慮して窓オブジェクト5の配置位置を検討することができる。
【0144】
また、窓オブジェクト5が壁オブジェクト5に配置されたときに、窓オブジェクト5の枠内から視認できる画像を、ガイド画像500の枠内から視認できるようにしてもよい。すなわち、壁オブジェクト5の奥側(屋外)の仮想空間の画像であって、当該屋外に配置されている他のオブジェクトをも視認可能にすることができる。この場合、例えば、ガイド画像500の画像自体の枠内に、ガイド画像500が表示されている領域に対応する壁オブジェクト4の屋外の画像と同一の画像を表示するようにしてもよい。あるいは、ガイド画像500の枠内の画像自体を透明にし、枠内に対応する壁オブジェクト4自体の画像を透明にすることで、屋外の画像が視認できるようにしてもよい。これにより、窓オブジェクト5を実際に配置したときに、窓の枠内から視認できる画像をユーザが確認することができるため、窓オブジェクトが5実際に配置されたときの態様をユーザがよりイメージしやすくなる。
【0145】
また、ガイド画像500は、窓オブジェクト5の外周部と同一の大きさの線、あるいは窓オブジェクト5と同一の大きさの模様のない平面画像であってもよい。これにより、より処理負担少なくガイド画像500を移動操作させることができる。
【0146】
上記実施の形態においては、空洞にする領域として指定しようとする領域に、壁オブジェクト4の外縁、あるいは、空洞化済みである領域が含まれる場合は、空洞不能領域が指定されているものとして、窓オブジェクト5を配置することができない例について説明した。しかしこれに限らず、指定された領域に壁オブジェクト4の外縁、あるいは、空洞化済みである領域が含まれていても、窓オブジェクト5を配置できるようにしてもよい。これにより、例えば既に配置されている窓オブジェクト5の一部と重畳するようにさらに窓オブジェクト5をつなげることで、窓オブジェクト5の形状に自由度をもたせることができる。この場合のコライダ40の処理は、例えば複数の窓オブジェクトを配置する指定がされた領域が空洞となるように、コライダを分割させる。例えば、
図8(d)に示すように、すでに空洞化がされている領域に一部が重畳するガイドライン500が表示されている領域で、窓オブジェクト5の配置領域指定の確定操作があったとする。その場合、例えば6つのボックスコライダを生成することで空洞を形成する。
【0147】
また、窓オブジェクト5は、空洞にする指定がされた領域の形状に応じて都度生成されるようにしてもよい。例えば、すでに配置されている窓オブジェクトの一部に重畳するようにさらに窓オブジェクトを配置する指定がされた場合、2つの窓オブジェクトの重複する部分が窓の空洞部として合体した形状などの窓オブジェクトを都度生成してもよい。
【0148】
また、窓オブジェクト5の配置は、空洞化後に窓オブジェクト5が配置される表示にしてもよく、あるいは、空洞化と同時に配置される表示がされてもよい。例えば、窓オブジェクト5を施工する演出がされてから窓オブジェクト5を配置することなどにより、興趣が向上する。
【0149】
また、窓オブジェクト5はコライダが関連付けられたものに限らず、コライダが関連付けられていないものとしてもよい。例えば、窓オブジェクト5の枠内のみ空洞となるように壁オブジェクト4のコライダ40を分割し、窓オブジェクト5の表示情報は、壁オブジェクト4のコライダ40に重畳するようにしてもよい。
【0150】
上記実施の形態においては、
図8において、壁オブジェクト4の外縁、あるいは、空洞化済みである領域は空洞不能領域401bとして窓オブジェクト5を配置することができない例について説明した。しかしこれに限らず、壁オブジェクト4の外縁、あるいは、空洞化済みである領域についても、窓オブジェクト5を配置できるようにしてもよい。これにより、例えばすでに配置されている窓オブジェクト5の一部と重畳するようにさらに窓オブジェクト5をつなげることで、窓オブジェクト5の形状に自由度をもたせることができる。この場合のコライダ40の処理は、例えば複数の窓オブジェクトの配置が指定された領域が空洞となるように、ボックスコライダを生成する。
【0151】
上記実施の形態においては、
図6に示すようにユーザは壁オブジェクト4の所望の領域を空洞にする領域として指定することができる例を説明した。しかし、空洞化の対象となるオブジェクトと同種別のオブジェクト(例えば
図4に示す種別が壁のオブジェクト)には、オブジェクトの種類(例えば壁オブジェクトのバリエーション)によって、自由に空洞化ができるオブジェクトや、空洞化できる領域が固定(制限)されているオブジェクト、空洞化できないオブジェクトなどが含まれるようにしてもよい。これにより、オブジェクトの種類によって空洞化がされると明らかに違和感が生じてしまう領域が空洞化されてしまうことなどを防止することができる。
【0152】
上記実施の形態においては、
図9において横向きの延長方向(仮想空間内における水平方向)に壁オブジェクト4が連なる例について説明した。しかしこれに限らず、例えば面を縦方向に延長するように、縦向きの延長方向(仮想空間内における鉛直方向)に沿って壁オブジェクト4が連なるようにしてもよい。あるいは斜め方向に連なるようになっていてもよい。縦向き、あるいは、斜め方向に壁オブジェクト4が連なる場合であっても、壁オブジェクト4同士に跨るように窓オブジェクト5を配置することができる。また、窓オブジェクト5の大きさに応じて、2つの壁オブジェクト4に限らず、3つ以上の壁オブジェクトに跨るように、窓オブジェクト5が配置されるようにしてもよい。また、壁オブジェクト4の形状は、面が直線状に延長されるものに限らず、例えばカーブ形状の面を有し、カーブに沿って延長されるものでもよい。
【0153】
上記実施の形態においては、
図9において複数の壁オブジェクト4に跨った領域についても窓オブジェクト5が配置できる例について説明したが、これに限らず複数の壁オブジェクトに跨った領域については配置できないようにしてもよい。また、1枚の壁オブジェクト4には、複数の窓オブジェクトを配置することができるが、これに限らず、1つの窓オブジェクトのみ配置することができるようにしてもよい。
【0154】
上記実施の形態においては、
図12(c)に示すように、仮想カメラの視点の方向が、壁オブジェクト4の面に対して交差させた際に、交差角度が所定角度未満となるとガイドライン501を非表示とする例について説明した。しかしこれに限らず、壁オブジェクト4の面に対する交差角度が所定角度以上でありガイドライン501が表示されているときには、仮想カメラの視点を抑制するようにしてもよい。例えば、視点を変更できない制御や、視点を変更できるものの壁オブジェクト4の面に対する交差角度が所定角度以上となる範囲でのみ、仮想カメラの視点を移動(変更)させることが可能とし、交差角度が所定角度未満となる範囲には仮想カメラの視点を移動(変更)できないようにしてもよい。あるいは、壁オブジェクト4の面に対する交差角度が所定角度以上でありガイドライン501が表示されているときには、交差角度にかかわらず、仮想カメラの視点を一切移動(変更)できないようにしてもよい。これにより、ガイドライン501が表示されているときに視点が変化してガイドライン501が非表示となることや、壁オブジェクト4を略正面から視認できずガイドライン501の補助・サポートが効果的に発揮されないような状況となることを防止できる
【0155】
上記実施の形態においては、壁オブジェクト4に空洞部を有するオブジェクト(窓オブジェクト5)を配置する際にコライダ40を空洞化させる例について説明した。しかしこれに限らず、仮想空間に配置されコライダが関連付けられたオブジェクトの一部を事後的に空洞化させるものであれば、本発明を適用可能である。例えば、山や岩のオブジェクトの一部に穴をあけるものや、床オブジェクトの一部に穴を開け落とし穴を作る場合などに適用することができる。この場合、例えば、山や岩に穴をあける場合には、ドリルなどの道具をガイド画像として表示し、ドリルの先端が示す領域を空洞化する演出をしてもよい。コライダを分割させる処理は、
図10に示すスペーサコライダとの組み合わせによって、円形の穴があけられるようにしてもよい。また、岩などの外縁が複雑な形状のオブジェクトの場合には、外縁部分を空洞不能領域とし、外縁より内側をボックスコライダによって分割することで、一部を空洞化できるようにしてもよい。床オブジェクトに穴をあける場合には、床オブジェクトのコライダを、落とし穴として指定された領域が空洞化するように分割してもよい。
【0156】
上記実施の形態において説明したゲーム(建築ゲーム)は、配信サーバ100からゲームコンテンツのゲーム情報を一括でユーザ端末300にダウンロードし、当該ゲーム情報に含まれるデータに基づいて、すべての処理をユーザ端末で完結されるものであってもよい。あるいは、同一のゲームプログラムが記録された記録媒体に基づいてユーザ端末で、すべての処理が実行されるものであってもよい。また、上記実施の形態においては、配信サーバ100から取得したゲーム情報に含まれるデータに基づいて、ユーザ端末300において
図11に示した一連の処理を実行する例について説明したが、これに限らず、
図11に示した一連の処理の一部あるいは全部に相当する処理を配信サーバ100で実行し、処理結果を特定する情報をユーザ端末300に配信するものであってもよい。例えば、ユーザ端末300の衝突情報管理部355によってコライダの分割・更新するための処理について、空洞にする対象オブジェクトと空洞にする領域とを特定するための情報をユーザ端末300から配信サーバ100に送信し、配信サーバ100において当該対象オブジェクトのコライダを空洞にする領域に基づいて分割・更新したコライダのデータなどをユーザ端末300に送信することにより、分割されたコライダの情報をユーザ端末300が取得することにより、ユーザ端末300に表示される仮想空間におけるオブジェクトのコライダの情報が更新されるようにしてもよい。
【0157】
〔ソフトウェアによる実現例〕
前述した実施の形態におけるサーバ、端末などのコンピュータが備える制御部の各種の制御ブロックは、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。CPUを用いてソフトウェアによって実現している場合、制御部を備えたコンピュータは、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【0158】
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0159】
1 通信システム、2 ネットワーク、100 配信サーバ、300 ユーザ端末、110 通信部、120 記憶部、121 ゲームプログラム、122 オブジェクト管理テーブル、123 ユーザ情報、130 制御部、131 データ送受信部、132 コンテンツ管理部、133 ユーザ管理部、310 通信部、320 記憶部、330 入力部、340 出力部、350 制御部、351 情報取得部、352 仮想カメラ制御部、353 入力情報送信部、354 表示制御部、355 衝突情報管理部、356 ユーザ管理部、4 壁オブジェクト、40 コライダ、41 スペーサコライダ、42 表示情報、400 指定可能領域、5 窓オブジェクト、500 ガイド画像、501 ガイドライン、6 ユーザキャラクタ、7 球体オブジェクト
【要約】
【課題】空洞にする位置についてユーザの自由度を向上させることができるプログラム、方法、およびシステムを提供する。
【解決手段】ユーザに対し仮想空間を提供することができるコンピュータを、他のオブジェクトとの衝突を判定するための衝突情報が関連付けられている面オブジェクトを仮想空間内において表示する手段と、面オブジェクトのうち空洞にする領域をユーザからの操作に応じて指定する領域指定手段と、領域指定手段によって指定されることにより、指定された領域の衝突情報を空洞となる衝突情報に更新するための更新手段として機能させ、表示する手段は、更新手段による衝突情報の更新に応じて、領域指定手段によって指定された領域が空洞となる面オブジェクトに更新表示し、領域指定手段は、面オブジェクトのうち空洞にする領域を、第1の領域と、第1の領域と一部が重畳する第2の領域とを含む複数種類の領域のうちから指定可能であるプログラム。
【選択図】
図11