(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-20
(45)【発行日】2025-01-28
(54)【発明の名称】ゲームプログラム、情報処理装置、高さ制御方法
(51)【国際特許分類】
A63F 13/56 20140101AFI20250121BHJP
A63F 13/803 20140101ALI20250121BHJP
A63F 13/58 20140101ALI20250121BHJP
【FI】
A63F13/56
A63F13/803
A63F13/58
(21)【出願番号】P 2021102396
(22)【出願日】2021-06-21
【審査請求日】2023-12-25
(73)【特許権者】
【識別番号】595000427
【氏名又は名称】株式会社コーエーテクモゲームス
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】篠崎 翔
【審査官】池田 剛志
(56)【参考文献】
【文献】特開2007-301040(JP,A)
【文献】特開2003-038851(JP,A)
【文献】特開2018-114198(JP,A)
【文献】特開平11-066342(JP,A)
【文献】Unityの重力設定について質問があります。,Yahoo!知恵袋 [online],2017年05月19日,<URL:https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14174328869>,[2024年10月9日検索]
【文献】[Unity]重力を変更する,Qiita [online],2020年08月23日,<URL:https://qiita.com/kaku07/items/fdf5bab18b65f6f9dcb4>,[2024年10月9日検索]
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00-13/98,
9/24
(57)【特許請求の範囲】
【請求項1】
情報処理装置を、
仮想空間を複数の層に区分して、任意の層に他の層と異なる重力加速度を設定する重力設定部と、
前記仮想空間をオブジェクトが移動する場合、前記オブジェクトの高さに対応する前記層に設定された重力加速度に基づいて前記オブジェクトの高さを制御する高さ制御部、
として機能させ
、
前記オブジェクトの高さは、前記仮想空間における前記オブジェクトの高さ方向の座標と、前記オブジェクトの直下のステージオブジェクトの高さ方向の座標との差であり、前記差により前記オブジェクトの高さに対応する前記層が判定され、
前記オブジェクトはプレイヤキャラクタであり、前記重力設定部は、前記プレイヤキャラクタの強さを表すレベルによって異なる重力加速度を設定する、
ゲームプログラム。
【請求項2】
前記複数の層のうち、少なくとも1つの層は、前記オブジェクトの
高さが高くなるほど前記重力加速度が大きくなる層である請求項1に記載のゲームプログラム。
【請求項3】
前記複数の層のうち、最も地面に近い第1層は、前記オブジェクトの
高さに関係なく前記重力加速度が一定であり、
前記第1層よりも地面から高い第2層は、前記オブジェクトの
高さが高くなるほど前記重力加速度が大きくなる層であり、
前記第2層よりも地面から高い第3層は、オブジェクトの
高さに関係なく前記重力加速度が一定である請求項1又は2に記載のゲームプログラム。
【請求項4】
前記複数の層のうち、地面に近い側の1つ以上の層は、前記重力加速度が負値であり、
前記1つ以上の層よりも地面から高い1つ以上の層は、前記重力加速度が正値である請求項1又は2に記載のゲームプログラム。
【請求項5】
前記重力加速度が、前記オブジェクトの
高さに比例して大きくなる層を有し、前記層では、負値の前記重力加速度から正値の前記重力加速度に切り替わる請求項4に記載のゲームプログラム。
【請求項6】
前記複数の層のうち、少なくとも1つの層は、前記オブジェクトの
高さが高くなるほど前記重力加速度が小さくなる層である請求項1に記載のゲームプログラム。
【請求項7】
地面から離れた層であるほど重力加速度が大きい請求項1に記載のゲームプログラム。
【請求項8】
前記オブジェクトの高さに対応する前記層が、前記オブジェクトの
高さに応じて前記重力加速度が変化する層である場合、
前記高さ制御部は、前記重力加速度と高さの対応に基づいて前記オブジェクトの高さに対応する前記重力加速度を算出する請求項2又は6に記載のゲームプログラム。
【請求項9】
前記仮想空間が地上の場合、
前記高さ制御部は、前記オブジェクトの高さに対応する前記層の前記重力加速度を前記オブジェクトに作用させて前記オブジェクトの高さを制御し、
前記第3層では前記第1層又は前記第2層よりも速く前記オブジェクトを下降させ、前記第2層では徐々に前記オブジェクトの下降速度を遅くし、前記第1層では前記第2層よりも緩やかに下降させる請求項3に記載のゲームプログラム。
【請求項10】
前記仮想空間が水中の場合、
前記複数の層のうち、少なくとも1つの層は、水面からの前記オブジェクトの深さが深くなるほど前記重力加速度が大きくなる層である請求項1に記載のゲームプログラム。
【請求項11】
前記複数の層のうち、最も水面に近い第1層は、前記オブジェクトの水面からの深さに関係なく前記重力加速度が一定であり、
前記第1層よりも水面から深い第2層は、前記オブジェクトの水面からの深さが深くなるほど前記重力加速度が大きくなる層であり、
前記第2層よりも水面から深い第3層は、前記オブジェクトの水面からの深さに関係なく前記重力加速度が一定である請求項
10に記載のゲームプログラム。
【請求項12】
前記重力設定部は、前記オブジェクトの種類に応じて異なる重力加速度を設定する請求項1~
11のいずれか1項に記載のゲームプログラム。
【請求項13】
ゲームプログラムを実行する情報処理装置であって、
仮想空間を複数の層に区分して、任意の層に他の層と異なる重力加速度を設定する重力設定部と、
前記仮想空間をオブジェクトが移動する場合、前記オブジェクトの高さに対応する前記層に設定された重力加速度に基づいて前記オブジェクトの高さを制御する高さ制御部と、
を有
し、
前記オブジェクトの高さは、前記仮想空間における前記オブジェクトの高さ方向の座標と、前記オブジェクトの直下のステージオブジェクトの高さ方向の座標との差であり、前記差により前記オブジェクトの高さに対応する前記層が判定され、
前記オブジェクトはプレイヤキャラクタであり、前記重力設定部は、前記プレイヤキャラクタの強さを表すレベルによって異なる重力加速度を設定する、
情報処理装置。
【請求項14】
ゲームプログラムを実行する情報処理装置が行う高さ制御方法であって、
重力設定部が、仮想空間を複数の層に区分して、任意の層に他の層と異なる重力加速度を設定するステップと、
高さ制御部が、前記仮想空間をオブジェクトが移動する場合、前記オブジェクトの高さに対応する前記層に設定された重力加速度に基づいて前記オブジェクトの高さを制御するステップと、
を有
し、
前記オブジェクトの高さは、前記仮想空間における前記オブジェクトの高さ方向の座標と、前記オブジェクトの直下のステージオブジェクトの高さ方向の座標との差であり、前記差により前記オブジェクトの高さに対応する前記層が判定され、
前記オブジェクトはプレイヤキャラクタであり、前記重力加速度を設定するステップは、前記プレイヤキャラクタの強さを表すレベルによって異なる重力加速度を設定するステップを含む、
高さ制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームプログラム、情報処理装置、及び、高さ制御方法に関する。
【背景技術】
【0002】
プレイヤーキャラクターなどのオブジェクトが空間をY軸方向の移動を含む立体的な移動が可能なゲームが知られている。プレイヤーキャラクターは例えばグライダー等で空中を滑空して遠方に移動できる。あるいは、鳥などの飛翔キャラクターが空中を飛んだり、潜水艦などのオブジェクトが水中を立体的に移動したりする。
【0003】
立体的に移動するオブジェクトに作用する重力を変更する技術が知られている(例えば、特許文献1、2参照。)。特許文献1には、プレイヤーからの指示入力に応じて、キャラクターに作用する重力の方向を変更し、重力の方向にキャラクターを落下させるゲーム装置が開示されている。特許文献2には、落下するプレイヤーキャラクターが風船を含ませると落下速度を低下させ、滞空時間を延長できるゲームプログラムが開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特許第5846767号公報
【文献】特開2007-202695号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献2に記載された技術では、風船の大きさ等に基づいて重力加速度を求める処理の負荷が大きいという問題があった。
【0006】
本発明は、上記課題に鑑み、オブジェクトに作用する重力を変更できるゲームプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題に鑑み本発明は、仮想空間を複数の層に区分して、任意の層に他の層と異なる重力加速度を設定する重力設定部と、前記仮想空間をオブジェクトが移動する場合、前記オブジェクトの高さに対応する前記層に設定された重力加速度に基づいて前記オブジェクトの高さを制御する高さ制御部、として機能させるゲームプログラムを提供する。
【発明の効果】
【0008】
オブジェクトに作用する重力を変更できるゲームプログラムを提供することができる。
【図面の簡単な説明】
【0009】
【
図1】本実施形態のゲームシステムにおける重力加速度の設定例を説明する図である。
【
図3】情報処理装置のハードウェア構成図の一例である。
【
図4】情報処理装置の機能をブロック状に分けて説明する機能ブロック図の一例である。
【
図5】重力データ記憶部に記憶されている重力データを模式的に示す図である。
【
図6】プレイヤーキャラクターの地面からの高さに対する重力加速度の設定例を示す図である。
【
図7】地面からのプレイヤーキャラクターの高さに対する重力加速度の別の設定例を示す図である。
【
図8】飛翔キャラクターが重力で降下しないように逆向きに(負値)設定された重力加速度の一例を示す図である。
【
図9】
図7の設定例におけるプレイヤーキャラクターの高さに対する重力加速度の別の設定例を示す図である。
【
図10】坂路(下り坂)の上空をプレイヤーキャラクターが滑空する場合の重力加速度の作用を説明する図である。
【
図11】坂路(登り坂)の上空をプレイヤーキャラクターが滑空する場合の重力加速度の作用を説明する図である。
【
図12】情報処理装置がプレイヤーキャラクターの高さを制御する手順を示すフローチャート図の一例である。
【
図13】水中における重力加速度の設定例を示す図である。
【
図14】水面からのオブジェクトの深さに対する重力加速度の設定例を示す図である。
【発明を実施するための形態】
【0010】
以下、本開示のゲームプログラムを実施するための形態、及び、ゲームプログラムによるオブジェクトの高さ制御方法について図面を参照して説明する。なお、本明細書及び図面において、実質的に同一の構成については、同一の符号を付することにより重複した説明を省く。
【0011】
<本実施形態のゲームシステムの概略>
図1は、本実施形態のゲームシステムにおける重力加速度の設定例を説明する図である。本実施形態では、プレイヤーキャラクター4(以下、PC4という)がグライダー11のようなアイテムを使って空中を滑空することができる。
【0012】
本実施形態では、PC4が空中を滑空できる空間に重力加速度が異なる層が設定される。層とは重なることであるが、本実施形態では、重力加速度が異なる空間が重なる。層と層の境界や層の違いはプレイヤーには視認されないが、プレイヤー操作などで目視可能にしてもよい。
【0013】
図1では一例として、空間に3つの層が設定されている。第1層101は、PC4が敵キャラクターと交戦したり、移動したりする層であるため、通常の重力加速度(以下、1Gという)が作用する層である。通常の重力加速度は実世界では約9.8[m/s
2]であるが、仮想空間(例えばゲームが進行される三次元空間)の重力加速度はいくつでもよい。
【0014】
第2層102は、地面からの高さが高いほど重力加速度が徐々に大きくなる層である。例えば、第1層101と第2層102との境界を1Gとすれば、第2層102と第3層103の境界を2Gとする。第2層102(境界と境界の間)では、重力加速度が高さに比例して大きくなる。第3層103は第2層102の最大の重力加速度(2G)が作用する層である。
【0015】
このような空間をPC4がグライダー11で滑空する場合、第3層103では2Gの重力加速度が作用して急激に高度が下がる。第2層102では、PC4の高度が低くなるほど重力加速度が小さくなるので、徐々に下降速度が緩やかになる。第1層101では、PC4は1Gの重力加速度で緩やかに下降する。
【0016】
仮想空間には、崖、高い建物、又は、プレイヤーがブロックなどで生成した台等、が用意されており、本来、プレイヤーはこれらの場所から、グライダー11などを利用してPC4が移動する距離を稼いだり(高いところから滑空した方が、地面に着地するまでの時間が長くなるため、長距離を移動することになる)、上空からの景色を楽しんだりすることができる。しかし、崖の上など比較的高い場所からPC4が滑空すると、PC4が遠くに行きすぎてしまう場合があった。すなわち、高すぎるところからPC4が滑空すると長時間滞空するため、遠くに行き過ぎるという不都合がある。本実施形態では、PC4が遠くに行き過ぎるのをプレイヤーに違和感を与えずに防ぐことができる。
【0017】
このように、本実施形態のゲームプログラムは、層ごとに重力加速度の大きさを変更するという簡易な処理で、PC4の滞空時間等を制御できる。また、高さによって重力加速度が変化することをプレイヤーに意識させにくいので、プレイヤーに違和感を生じさせにくい。
【0018】
<用語について>
オブジェクトとは対象という意味であるが、本実施形態では主に仮想空間の人や物をまとめてオブジェクトという。例えば、PC4、敵キャラクター、岩、建物等、およそ仮想空間に登場するものはオブジェクトである。
【0019】
重力加速度は、重力がオブジェクトに生じさせる加速度である。立体的に移動するとは、仮想空間(例えば仮想的な三次元空間)の地面に対し、オブジェクトが接していない状態で移動することをいう。つまり、空中に浮かんだ状態の移動である。主に、平面に対し垂直な方向(Y軸方向)の移動を含む場合が多いが、Y軸方向へは移動していない場合も含む。Y軸方向へは移動していない場合、オブジェクトは空中でXZ平面を移動する。また、オブジェクトがY軸方向へ移動している場合、オブジェクトはXZ平面に対し移動してもよいし、留まっていてもよい。立体的な移動は物理エンジンにより処理されてよい。
【0020】
<ゲームシステム>
まず、
図2を参照して、ゲームシステムの構成例を説明する。
図2は、本実施形態のゲームシステム1の構成を示す図である。ゲームシステム1は、情報処理装置3と、ゲームコントローラ5と、表示装置7とを有する。ゲームコントローラ5及び表示装置7の各々は、情報処理装置3と有線又は無線により通信可能に接続されている。
【0021】
情報処理装置3は、例えば据え置き型のゲーム専用機である。但し、これに限定されるものではなく、情報処理装置3は、例えば入力部や表示部等を一体に備えた携帯型のゲーム機でもよい。
【0022】
また、情報処理装置3はゲーム専用機でなくてよく、例えば、コンピュータ、デスクトップ型コンピュータ、ノート型コンピュータ、タブレット型コンピュータ等のように、コンピュータとして製造、販売等されているものや、スマートフォン、携帯電話、ファブレット等のように、電話機として製造、販売等されているものでもよい。これらの装置は、普段は汎用的な情報処理端末として利用されるが、プレイヤーがインストールされたゲームプログラムを実行すると、ゲーム専用機と同様、プレイヤーがゲームを進行できるようになる。
【0023】
情報処理装置3には、本実施形態のゲームプログラムがインストールされる。ゲームプログラムはCD-ROMなどの光記憶媒体やUSBメモリなどの半導体メモリに記憶された状態で配布されたり、サーバーからダウンロードされたりする形態で配布される。
【0024】
プレイヤーは、ゲームコントローラ5を用いて各種の操作入力を行う。
図2に示す例では、ゲームコントローラ5は例えば十字キー9、及び複数のボタン8等を有する。なお、ゲームコントローラ5は上記に代えて又は加えて、例えばジョイスティックやタッチパッド等を有してもよい。また、ゲームコントローラ5がマイクを備え、音声操作が可能でもよい。ゲームコントローラ5がジャイロセンサや加速度センサ等を備え、プレイヤーがゲームコントローラ5の姿勢を変えることで操作が可能でもよい。
【0025】
また、情報処理装置3が更にネットワーク上のサーバーと通信してもよい。この場合、同じゲームプログラムを実行する複数の情報処理装置3がサーバーに接続するので、いわゆるオンラインゲームが可能になる。オンラインゲームとは、例えば、多人数で同じゲームプログラムを協調して操作できるゲームをいう。オンラインゲームのサーバーは、他のプレイヤーの位置や操作コマンドを受け付け、他のプレイヤーの情報処理装置3に送信するという最低限の処理を行う。情報処理装置3は各プレイヤーの描画や操作コマンドの反映処理など実際のゲーム処理を行う。
【0026】
また、ゲームシステム1は、情報処理装置3が別の情報処理装置3と通信するいわゆるP2P(Peer To Peer)方式でもよい。
【0027】
また、ゲームシステム1はいわゆるクラウドゲームでもよい。以下では、主に
図2の構成を用いて本実施形態のゲームシステム1について説明する。
【0028】
<情報処理装置のハードウェア構成例>
図3は、情報処理装置3のハードウェア構成図の一例である。
図3に示すように、情報処理装置3は、例えば、CPU501と、ROM502と、RAM503と、GPU504と、例えばASIC又はFPGA等の特定の用途向けに構築された専用集積回路505と、入力装置506と、出力装置507と、記録装置508と、ドライブ509と、接続ポート510と、通信装置511を有する。これらの構成は、バス513や入出力インターフェース514等を介し相互に信号を伝達可能に接続されている。
【0029】
ゲームプログラムは、例えば、ROM502やRAM503、記録装置508等に記録しておくことができる。
【0030】
CPU501は、例えば、上記記録装置508からゲームプログラムを、直接読み出して実行してもよく、RAM503に一旦ロードした上で実行してもよい。更にCPU501は、例えば、ゲームプログラムを通信装置511やドライブ509、接続ポート510を介し受信する場合、受信したゲームプログラムを記録装置508に記録せずに直接実行してもよい。
【0031】
また、CPU501は、必要に応じて、前述のゲームコントローラ5を含む、例えばマウス、キーボード、マイク等(図示せず)の入力装置506から入力する信号や情報に基づいて各種の処理を行ってもよい。
【0032】
GPU504は、CPU501からの指示に応じて例えばレンダリング処理などの画像表示のための処理を行う。
【0033】
そして、CPU501及びGPU504は、上記の処理を実行した結果を、例えば前述の表示装置7や音声出力部を含む、出力装置507から出力する。CPU501及びGPU504は、必要に応じてこの処理結果を通信装置511や接続ポート510を介し送信してもよく、上記記録装置508や記録媒体512に記録させてもよい。
【0034】
なお、サーバー又は汎用的な情報処理装置のハードウェア構成は、情報処理装置3と同様か、又は、異なっても本実施形態の説明の都合上、支障がないものとする。
【0035】
<機能について>
図4は、情報処理装置3の機能をブロック状に分けて説明する機能ブロック図の一例である。
図4に示すように、情報処理装置3は、重力設定部31、高さ算出部32、高さ制御部33、操作受付部34、画像データ生成部35、及び、表示制御部36、を有している。情報処理装置3が有するこれら各機能部は、
図3に示したCPU501が、RAM503に展開されたゲームプログラムを実行することで実現される機能又は手段である。
【0036】
重力設定部31は、重力データ記憶部39に記憶された重力データに基づいて、仮想空間を複数の層に区分して、任意の層に他の層と異なる重力加速度を設定する。PC4が地面を移動する場合の重力加速度は1Gで一定なので、重力設定部31はPC4が空中、水中、又は地中等を立体的に移動している場合のみ、第2層102以上に重力加速度を設定してもよい。
【0037】
図5は、重力データ記憶部39に記憶されている重力データを模式的に示す図である。以下、重力データの各項目を説明する。
・エリアIDは、PC4が移動する仮想空間をデザインや座標範囲で区分けた場合の各区画(エリア)の識別情報である。例えば、草原エリア、町エリア、海エリア、砂漠エリアなど、ゲームの世界観に応じたエリアがあってよい。
・第1層101、第2層102、及び、第3層103の項目は、それぞれの層の高さ方向の範囲を定義する。
図5の範囲はあくまで一例であり、ゲーム内容に応じて実現される仮想空間等によって種々設定される。
・第1層重力加速度、第2層重力加速度、及び、第3層重力加速度は、第1層101、第2層102、及び、第3層103の重力加速度の値である。
【0038】
エリアID=001と002のエリアでは、
図1にて説明したように、高さが高いほど、重力加速度が大きくなっている。一方、エリアID=003のエリアでは、高さが高いほど、重力加速度が小さくなっている。エリアID=003のエリアのような重力加速度は、PC4が滑空して遠距離を移動しなければならない(例えば海を渡るような)エリア等で有効である。つまり、PC4がより高い位置から滑空を開始するという条件を満たすと、他のエリア等に移動できる。
【0039】
なお、
図5では、層が3つしかないが、層の数は4つ以上でもよいし2つでもよい。また、層を1つにして、地上からの高さが高くなるにつれて、線形又は非線形に重力加速度が大きくなってもよい。
【0040】
また、同じエリアに存在するオブジェクトに一律に同じ重力加速度を設定するのでなく、オブジェクトの種類によって異なる重力加速度が設定されてよい。例えば、PC4と敵キャラクター、男性キャラクターと女性キャラクターとその他の性、大人キャラクターと子供キャラクター、王様と兵士等、重力設定部31はオブジェクトによって異なる重力加速度を設定できる。あるいは、キャラクターの強さを表すレベルによって異なる重力加速度が設定されてよい。レベルが上がるとキャラクターが遠くまで滑空できる。あるいは、キャラクターが有するHP(ヒットポイント)やMP(マジックポイント)に応じて異なる重力加速度が設定されてよい。HPが高いキャラクターは遠くまで滑空できる。
【0041】
また、重力加速度が作用するのはキャラクターに限らず、遠距離攻撃の武器、各種のアイテムなどにも重力加速度が作用するので、これらのオブジェクトの違いで異なる重力加速度が設定されてよい。
【0042】
オブジェクトの種類によって異なる重力加速度が設定された場合、異なる種類のオブジェクトの地面からの高さが同じであり、高さに対応する層が同じでも、オブジェクトの種類に応じて異なる重力加速度が作用する。例えば、敵キャラクターとPC4の滞空時間を異ならせるように制御することができる。
【0043】
図4に戻って説明する。高さ算出部32は、各オブジェクトの地面からの高さを算出する。この高さは、オブジェクトの直下の地面からの高さであり、仮想空間のY座標とは異なる場合がある。高さ算出部32が算出する地面からの高さは、仮想空間におけるPC4のY座標と(高さ方向の座標)、PC4の直下の地面のY座標(正確には、PC4のX,Z座標を有する地面のポリゴンの平面の式とX,Z座標から求めたY座標)との差である。
【0044】
高さ算出部32は、重力加速度が1Gの層では、例えば予め設定された「1フレームあたりY座標方向に移動する任意の値」だけ、オブジェクトを移動する。2Gや3Gなどの層では、1Gでの落下速度に対して、上記「任意の値」に重力加速度に応じた値が加算される。
【0045】
図1の第2層102のように地面からの高さが高いほど重力加速度が徐々に大きくなる層では、「層内のどの高さに位置するか」、「層内にどのくらいの時間滞在しているか」などに応じて算出された値が、Y軸方向の移動量に加算される。
【0046】
操作受付部34は、ゲームコントローラ5に対するプレイヤーからの操作を受け付ける。操作受付部34は、ゲームプログラム内で可能な操作であれば受け付けられるが、例えばPC4の移動や攻撃操作等を受け付ける。
【0047】
画像データ生成部35は、仮想空間に配置された仮想カメラを視点とした仮想空間のオブジェクトを画像データに変換する。仮想空間に配置されたオブジェクトを仮想カメラが撮影した画像が得られる。オブジェクトは三次元の立体物である。コンピュータグラフィックでは、三次元のオブジェクトはポリゴン(又は三次元点の集まり)で構成される。ポリゴンとは、3点以上の頂点を結んでできた多角形データであり、曲面を構成する最小単位である。
【0048】
表示制御部36は、画像データ生成部35が生成した画像データを表示装置7に表示する。
【0049】
<PCの高さに対する重力加速度の設定例>
図6は、PC4の地面からの高さに対する重力加速度の設定例を示す図である。
図6は横軸を高さ、縦軸を重力加速度の大きさとする。
図6は、重力データ記憶部39のエリアID=001のエリアにおける重力加速度の設定例である。
図6に示すように、第1層101では高さに関係なく1G一定、第2層102では高さに比例して重力加速度が2Gまで増大し、第3層103では高さに関係なく2G一定である。
【0050】
第2層102の重力加速度は、比例的に増大するのでなく、点線121で示すように、PC4の高さが高いほど急に重力加速度が大きくなってもよいし、点線122で示すようにPC4の高さが低いほど急に重力加速度が小さくなってもよい。また、第3層103の重力加速度を2G一定に設定するのでなく、第2層102のように高さに対し徐々に大きくしてもよい。
【0051】
図7は、地面からのPC4の高さに対する重力加速度の別の設定例を示す図である。
図7は、エリアID=003のエリアにおける重力加速度の設定例である。
図7に示すように、第1層101では高さに関係なく1G一定、第2層102では高さに比例して重力加速度が0.5Gまで減少し、第3層103では高さに関係なく0.5G一定である。
【0052】
第2層102の重力加速度は、
図6の点線121,122に示したように、比例的に減少しなくてもよい。また、第3層103の重力加速度を0.5G一定に設定するのでなく、第2層102のように高さに対し徐々に小さくしてもよい。
【0053】
<飛翔キャラクターに対する重力加速度の設定例>
次に、
図8を参照して、飛翔キャラクター12に対する重力加速度の設定例を説明する。例えば、鳥のように飛翔する飛翔キャラクター12にも重力が作用する。仮想空間における飛翔キャラクター12の動作をよりリアルにするという観点では、ゲームシステム1が飛翔キャラクター12に羽ばたきによる浮力を与えることで、飛翔キャラクター12が重力加速度で下降することを抑制する方法がある。しかし、羽ばたきによる浮力を算出することは処理負荷が高い。より処理負荷が低い方法として、ゲームシステム1が飛翔キャラクター12に負値の重力加速度を与える方法がある。
【0054】
図8は、飛翔キャラクター12が重力で降下しないように逆向きに(負値)設定された重力加速度を示す。逆向きの重力加速度は、オブジェクトが浮かぶ方向に重力が作用する。
図8では、6つの層にそれぞれ異なる重力加速度が設定されている。6つの層のうち、地面に近い側の1つ以上の層は、重力加速度が負値であり、1つ以上の層よりも地面から高い1つ以上の層は、重力加速度が正値である。
【0055】
第1層101には高さに関係なく-2G一定の重力加速度が設定され、第2層102には-2Gから-1Gに比例増大する重力加速度が設定され、第3層103には高さに関係なく-1Gの重力加速度が設定されている。
【0056】
負値の重力加速度は、飛翔キャラクター12の高さを高くする。例えば、第1層101から羽ばたいた飛翔キャラクター12は、-2Gの重力加速度で急激に上昇し、第2層102では徐々に上昇が緩やかになる。次いで、飛翔キャラクター12は、第3層103を-1Gの重力加速度で緩やかに上昇しながら通過し、第4層に到達する。したがって、
図8の第1層101から第3層103のように重力加速度が設定されることで、飛翔キャラクター12が軽快に飛び立つ様子を仮想空間で実現できる。なお、第1層から第3層の重力加速度は-1G一定でもよいし、-2Gから-1Gまで徐々に大きくなってもよい。
【0057】
一方、第4層104には高さに関係なく1G一定の重力加速度が設定され、第5層105には1Gから2Gに比例増大する重力加速度が設定され、第6層106には高さに関係なく2G一定の重力加速度が設定されている。正値の重力加速度は、飛翔キャラクター12の高さを低くする。例えば、崖の上など第6層106から飛翔を開始した飛翔キャラクター12は、2Gの重力加速度で急激に下降し、第5層105では徐々に下降が緩やかになる。次いで、飛翔キャラクター12は、第4層104を1Gの重力加速度で緩やかに下降しながら通過し、第3層103に到達する。したがって、飛翔キャラクター12が早期に高度を下げ、プレイヤーからも視認しやすくなる。
【0058】
第3層103と第4層104の境界では、重力加速度の方向が切り替わるので、第3層103では飛翔キャラクター12の高さを低くする力が作用し、第4層では高くする力が作用する。この結果、飛翔キャラクター12は第3層103と第4層104の境界を安定して飛行できるし、飛翔キャラクター12の第3層103又は第4層104への進入速度が大きいと、第3層103と第4層104の間を行き来し、鳥が羽ばたくような態様で移動できる。
【0059】
なお、仮に第1層101にPC4が存在する場合、PC4には第1層101で1Gの重力加速度が作用するので、PC4と飛翔キャラクター12とで異なる重力加速度が設定されていることになる。
【0060】
図9は、
図7の設定例におけるPC4の高さに対する重力加速度の別の設定例を示す図である。
図9に示すように、第1層101では-2G一定、第2層102では高さに比例して重力加速度が-1Gまで増大し、第3層103では-1G一定である。第4層104では1G一定、第5層105では高さに比例して重力加速度が2Gまで増大し、第6層106では2G一定である。
【0061】
なお、
図9のように、第3層103と第4層104の境界で負値の重力加速度が正値に変わると、飛翔キャラクター12の挙動に違和感が生じるおそれがある。つまり、第3層103と第4層104が切り替わる高さの1点で-1Gから1G(又はその逆)に切り替わるので、この1点の下側では飛翔キャラクター12が自然に上昇し、1点より上側では自然に下降する。このため、飛翔キャラクター12が高さ方向にハンチングしたり、飛翔キャラクター12の高さが一定に維持されたりする状況が生じてしまう。そこで、例えば点線123に示すように、第3層103から第4層104まで重力加速度が連続的に変化する(高さに比例)ように重力加速度が設定されてもよい。
【0062】
<坂路における効果>
次に、
図10等を参照して、坂路における重力加速度の作用効果について説明する。
図10は、坂路13の上空をPC4が滑空する場合の重力加速度の作用を説明する図である。仮想空間では、下り坂の上空をPC4が滑空する場合もある。PC4が同じ高さを滑空しても(あるいは1Gで徐々に高度が下がっても)、PC4の直下に対する高さH1~H3は徐々に高くなる。高さが高いとPC4が遠くに行きすぎてしまう場合があり、好ましくない。
【0063】
本実施形態の重力加速度の設定は、坂路上をPC4が遠くに行き過ぎることを抑制する場合にも有効である。すなわち、仮に、
図10(a)のPC4の高さが第1層101又は第2層102に対応するとしても、
図10(b)(c)のPC4の高さが第3層103に相当する場合には、2Gの重力加速度がPC4の高さを急激に低くできる。したがって、坂路が続いても、高さが高いPC4には2Gの重力加速度が作用するため、坂路の間は、PC4の高さが低くなる傾向を生じさせることができる。
【0064】
なお、仮に、PC4の高さが直下の地面からの高さでなく、Y座標だとすると、地面からの距離が短くてもY座標が大きければ(高地のエリアなど)、2Gなどの大きい重力加速度がPC4に作用するので、PC4の高さが急に低くなり、滑空する距離が短くなるなど違和感がある挙動になるおそれがある。
【0065】
また、
図11に示すように、PC4が上り坂の上を滑空した場合も層ごとに重力加速度が設定されていることが有効になる。
図11は、上り坂の坂路13の上空をPC4が滑空する場合の重力加速度の作用を説明する図である。PC4が同じ高さを滑空しても(あるいは1Gで徐々に高度が下がっても)、PC4の直下に対する高さH1~H3は徐々に低くなる。仮に
図11(a)のPC4の高さに対応する層が第3層103だとするとPC4の高さは急激に低くなる。しかし、
図11(b)(c)のPC4の高さが第1層101又は第2層102に相当することで、下降速度を緩やかにでき、PC4が適切な(短すぎない)距離を滑空できる。
【0066】
<処理手順>
図12は、情報処理装置がPC4の高さを制御する手順を示すフローチャート図の一例である。なお、PC4以外の飛翔キャラクター12など他のオブジェクトの場合も処理の流れは同様でよい。
【0067】
まず、重力設定部31が重力データ記憶部39に記憶されている重力データに基づいて、層ごとに重力加速度を設定する(S1)。設定するタイミングはエリアが切り替わったタイミング、空中における立体的な移動が始まったタイミングなどでよい。
【0068】
高さ算出部32は、PC4の地面からの高さを算出する(S2)。PC4の高さは、仮想空間のPC4の最も地面に近い部分(立位では足裏、腹ばいではお腹)のY座標と、PC4からXZ平面に向けて垂直に照射したレイキャストが衝突するステージオブジェクト(岩や建物等、キャラクターの足場になることができるオブジェクト)とのY座標の差である。PC4の高さは、仮想空間のPC4の腰などのY座標でもよい。
【0069】
高さ制御部33は、PC4が立体的に移動しているかどうかを判定する(S3)。この判定は、ステップS2で求めた高さが閾値以上かどうかにより判定できる。PC4が立体的に移動していても、第1層101では1Gで一定なので、重力加速度の設定は必要ない。このため、ステップS3では、第1層101より高い位置でPC4が立体的に移動するかどうかを判定してもよい。別の判定方法の例として、モーションごとに設定されている、重力加速度の設定が必要か否かの情報に基づいて判定してもよい。例えば、PC4が走るモーションをしているときには、高さ制御部33は重力加速度の設定を行わず、PC4がジャンプする、又は飛行するなどのモーションをしているときには重力加速度の設定を行う。
【0070】
ステップS3の判定がYesの場合、高さ制御部33は、PC4の高さに対応する層とこの層の重力加速度を重力データ記憶部39から取得する(S4)。PC4の高さに対応する層が、高さに応じて重力加速度が変化する層の場合、高さ制御部33は高さに対応する重力加速度を計算する。高さ制御部33は、例えば
図6の第2層におけるPC4の高さと重力加速度の対応(傾き)に基づいてPC4に作用する重力加速度を計算できる。
【0071】
そして、高さ制御部33は、PC4の高さに対応する層の重力加速度に応じてPC4の高さを更新する(S5)。
【0072】
ステップS3の判定がNoの場合、高さ制御部33は、PC4に1Gの重力加速度を作用させる(S6)。
【0073】
<水中における重力加速度の設定例>
本実施形態で説明した層ごとに異なる重力加速度を設定することは空中だけでなく水中でも有効である。
【0074】
図13は、水中における重力加速度の設定例を示す図である。水面14のすぐ下の第1層101は、高さに関係なく1Gである。第1層101より深い第2層102は、水面14から深いほど重力加速度が徐々に大きくなる層である。例えば、第1層101と第2層102との境界を1Gとすれば、第2層102と第3層103の境界を2Gとする。第2層102(境界と境界の間)は、重力加速度が深さに比例して大きくなる。第3層103は高さに関係なく第2層102の最大の重力加速度(2G)が作用する層である。
【0075】
このような水中を例えば潜水艦のようなオブジェクト15が立体的に移動する場合、第1層101では、1Gの重力加速度で緩やかに沈降する。第2層102では、オブジェクト15の深さが深くなるほど重力加速度が大きくなるので、徐々に沈降速度が速くなる。第3層103では2Gの重力加速度が作用して急激にオブジェクト15の深さが深くなる。
【0076】
したがって、本実施形態によれば、水中に物が沈む様子を重力加速度の設定で容易に表現できる。
【0077】
図14は、水面からのオブジェクト15の深さに対する重力加速度の設定例を示す図である。
図14は横軸を深さ方向、縦軸を重力加速度の大きさとする。
図14に示すように、第1層101では1G一定、第2層102では深さに比例して重力加速度が2Gまで増大し、第3層103では2G一定である。
【0078】
第2層102の重力加速度は、比例的に増大するのでなく、
図6の点線121,122で説明したように、深いほど急に重力加速度が大きくなってもよいし、浅いほど急に重力加速度が小さくなってもよい。第2層102などの中間層は、第1層、第3層などと同じく一定の重力加速度でもよい。また、第3層103の重力加速度を2G一定に設定するのでなく、第2層102のように深さに対し徐々に大きくしてもよい。
【0079】
また、
図13、
図14とは逆に、浅い層では重力加速度を大きくし、深い層では重力加速度を小さくしてもよい。重力加速度の大小を上下逆にすれば、オブジェクトが急に沈む様子を表現できる。
【0080】
したがって、オブジェクト15が急速潜行するような場面で水中に物が沈む様子を重力加速度の設定で容易に表現できる。オブジェクトが水中でも、オブジェクトの深さの制御は
図12のフローチャートと同様になる。
【0081】
<主な効果>
以上説明したように、本実施形態のゲームプログラムは、層ごとに重力加速度の大きさを変更するという簡易な処理で、PC4の滞空時間等を制御できる。また、高さによって重力加速度が変化することをプレイヤーに意識させにくいので、PC4等の動きに違和感を生じさせにくい。
【0082】
<その他の適用例等>
なお、本発明は、上記の実施形態に限られるものではなく、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。
【0083】
例えば、本実施形態では、エリアに応じて層ごとに重力加速度が設定されると説明したが、プレイヤーが各層の重力加速度を変更できてもよい。あるいは、プレイヤーが層の数を指定したり、各層の重力加速度を設定したりしてもよい。
【0084】
また、本実施形態では、高い方から低い方へPC4が移動する場合の重力加速度について説明したが、PC4が低い方から高い方へ移動する場合にも重力加速度が作用する。例えば、PCがポールをよじ登る場合、階段や坂道を上る場合、高さに応じて重力加速度を大きくしたり小さくしたりできる。あるいは、PCが高い方から低い方へ移動しているのか、低い方から高い方へ移動しているのかによって、PC4に作用する重力加速度を変更してもよい。
【0085】
また、本実施形態では、PC4がグライダー11で滑空する場合の重力加速度の作用を説明したが、PC4が滑空のために使用するのはパラグライダー、ハンググライダー、などでもよい。また、動力の付いた飛行機、ドローンなどに適用してもよい。
【0086】
また、プレイヤーが、オブジェクトごと(PC4、敵キャラクター、各種のキャラクター、アイテム等)に異なる重力加速度を設定できてよい。
【0087】
また、空中と水中に限らず、地中等でも層ごとに異なる重力加速度が設定されてよい。
【0088】
また、
図4などの構成例は、情報処理装置3による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。情報処理装置3の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、1つの処理単位が更に多くの処理を含むように分割することもできる。
【0089】
また、本実施形態ではゲームプログラムが行うとした処理の一部又は全体を、ASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)等のハード的な処理回路が行ってもよい。
【符号の説明】
【0090】
1 ゲームシステム
3 情報処理装置
5 ゲームコントローラ
7 表示装置