(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-08
(45)【発行日】2024-07-17
(54)【発明の名称】処理装置、処理方法及びプログラム
(51)【国際特許分類】
G06F 3/0484 20220101AFI20240709BHJP
A63F 13/245 20140101ALI20240709BHJP
A63F 13/40 20140101ALI20240709BHJP
G06F 3/0488 20220101ALI20240709BHJP
【FI】
G06F3/0484
A63F13/245
A63F13/40
G06F3/0488
(21)【出願番号】P 2019190700
(22)【出願日】2019-10-18
【審査請求日】2022-10-14
【審判番号】
【審判請求日】2023-12-18
(73)【特許権者】
【識別番号】511249637
【氏名又は名称】株式会社Cygames
(74)【代理人】
【識別番号】100110928
【氏名又は名称】速水 進治
(74)【代理人】
【識別番号】100127236
【氏名又は名称】天城 聡
(72)【発明者】
【氏名】江口 幸男
【合議体】
【審判長】山澤 宏
【審判官】北元 健太
【審判官】富澤 哲生
(56)【参考文献】
【文献】特開平10-254616(JP,A)
【文献】特開2012-252661(JP,A)
【文献】特開2012-249914(JP,A)
【文献】特許第6389581(JP,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/033-3/039
G06F 3/048-3/04895
A63F 9/24
A63F13/00-13/98
(57)【特許請求の範囲】
【請求項1】
コンピュータを、
プレイヤ入力に基づき移動する操作対象オブジェクトの位置を示す位置情報を記憶する記憶部、
前記操作対象オブジェクトの移動開始タイミングを検出し、前記移動開始タイミングからの経過時間を監視する監視部、
プレイヤが入力した入力データを取得する取得部、
前記入力データに基づき、入力方向を決定する制御内容決定部、
前記操作対象オブジェクトが移動していない時、及び、前記操作対象オブジェクトが移動中であって前記経過時間が基準時間以内の時は、前記入力方向を予め定められたM個(Mは2以上)の基準方向のいずれかに変換し、変換後の前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定し、前記操作対象オブジェクトが移動中であって前記経過時間が前記基準時間を超えている時は、前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定する移動制御部、
として機能させるプログラム。
【請求項2】
前記制御内容決定部は、前記入力データに基づき、前記操作対象オブジェクトの移動状態を決定し、
前記移動制御部は、
前記移動状態が歩く状態である場合、
前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定し、
前記移動状態が走る状態である場合、
前記操作対象オブジェクトが移動していない時、及び、前記操作対象オブジェクトが移動中であって前記経過時間が基準時間以内の時は、前記入力方向を予め定められたM個の基準方向のいずれかに変換し、変換後の前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定し、前記操作対象オブジェクトが移動中であって前記経過時間が前記基準時間を超えている時は、前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定する、請求項1に記載のプログラム。
【請求項3】
前記取得部は、
タッチパネルへのプレイヤの操作により発生したタッチイベントに基づき取得される第1の軸の値及び第2の軸の値により示される前記入力データを取得して保持し、保持されている前記入力データのうち既定の保持時間を超えた前記入力データの保持を終了し、
前記制御内容決定部は、
保持されている前記入力データに基づき回帰直線の傾きを決定し、保持されている前記入力データの集合としての変位方向に基づき前記回帰直線の傾きを回転させる回転量を決定し、前記回帰直線の傾き及び前記回転量に基づき前記操作対象オブジェクトを制御するための角度を決定し、前記角度に基づき前記入力方向を決定する、請求項1又は2に記載のプログラム。
【請求項4】
前記取得部は、
タッチパネルへのプレイヤの操作により発生したタッチイベントに基づき取得される第1の軸の値及び第2の軸の値により示される前記入力データを取得し、フレームレートに対応する既定の処理時間ごとに、入力データ列として保持し、
前記制御内容決定部は、
一のフレームの時間内に保持されている前記入力データ列における前記入力データの変位に基づき、該フレームにおけるプレイヤの指の移動速度に対応する変位速さを決定し、最新のフレームにおける該変位速さの、該最新のフレームより前のフレームにおける該変位速さの平均値に対する偏差に基づき速度因子を決定し、前記速度因子に基づき前記操作対象オブジェクトの前記移動状態を決定する、請求項2に記載のプログラム。
【請求項5】
前記取得部は、
タッチパネルへのプレイヤの操作により発生したタッチイベントに基づき取得される第1の軸の値及び第2の軸の値により示される前記入力データを取得し、
前記制御内容決定部は、
基準位置から前記入力データで示されるタッチ位置に向かう方向に基づき、前記入力方向を決定する、請求項1又は2に記載のプログラム。
【請求項6】
前記取得部は、
タッチパネルへのプレイヤの操作により発生したタッチイベントに基づき取得される第1の軸の値及び第2の軸の値により示される前記入力データを取得し、
前記制御内容決定部は、
基準位置と前記入力データで示されるタッチ位置との距離に基づき、前記操作対象オブジェクトの前記移動状態を決定する、請求項2に記載のプログラム。
【請求項7】
コンピュータが、
プレイヤ入力に基づき移動する操作対象オブジェクトの位置を示す位置情報を記憶し、
前記操作対象オブジェクトの移動開始タイミングを検出し、前記移動開始タイミングからの経過時間を監視し、
プレイヤが入力した入力データを取得し、
前記入力データに基づき、入力方向を決定し、
前記操作対象オブジェクトが移動していない時、及び、前記操作対象オブジェクトが移動中であって前記経過時間が基準時間以内の時は、前記入力方向を予め定められたM個(Mは2以上)の基準方向のいずれかに変換し、変換後の前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定し、前記操作対象オブジェクトが移動中であって前記経過時間が前記基準時間を超えている時は、前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定する処理方法。
【請求項8】
プレイヤ入力に基づき移動する操作対象オブジェクトの位置を示す位置情報を記憶する記憶部と、
前記操作対象オブジェクトの移動開始タイミングを検出し、前記移動開始タイミングからの経過時間を監視する監視部と、
プレイヤが入力した入力データを取得する取得部と、
前記入力データに基づき、入力方向を決定する制御内容決定部と、
前記操作対象オブジェクトが移動していない時、及び、前記操作対象オブジェクトが移動中であって前記経過時間が基準時間以内の時は、前記入力方向を予め定められたM個(Mは2以上)の基準方向のいずれかに変換し、変換後の前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定し、前記操作対象オブジェクトが移動中であって前記経過時間が前記基準時間を超えている時は、前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定する移動制御部と、
を有する処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、処理装置、処理方法及びプログラムに関する。
【背景技術】
【0002】
特許文献1、非特許文献1及び非特許文献2は、アナログスティック等で入力された値を所定数の方向(例:8方向)の中のいずれかに変換する技術を開示している。
【0003】
特許文献2は、タッチパネルで所定時間内に検出されたスクリーン座標上の点群データを記憶し、当該点群データからベクトルを算出し、当該ベクトルに基づき操作対象オブジェクトを制御する技術を開示している。
【0004】
特許文献3は、タッチパネルで所定時間内に検出されたスクリーン座標上の点群データを記憶し、当該点群データから操作対象オブジェクトの移動状態(歩く/走る)を決定する技術を開示している。
【先行技術文献】
【特許文献】
【0005】
【文献】特許第4767200号
【文献】特許第6389581号
【文献】特許第6560801号
【非特許文献】
【0006】
【文献】“Unity アナログスティックの入力値を8方向にスナップする”、[Online]、2018年5月10日、[2019年9月26日検索]、インターネット<URL: http://toriden.hatenablog.com/entry/2018/05/10/063000>
【文献】司隆、“Steam豆知識4・Steamコントローラ設定「4.8方向操作」編”、[Online]、2017年10月22日、[2019年9月26日検索]、インターネット<URL: http://19xx-s-rank.seesaa.net/article/454354672.html>
【発明の概要】
【発明が解決しようとする課題】
【0007】
アナログスティック等の入力装置や特許文献2に記載の入力技術を用いた場合、入力できる方向の選択肢を多くすることができる。そして、入力できる方向の選択肢が多い程、操作象オブジェクトの移動方向を細かく制御することが可能となる。しかし、入力できる方向の選択肢が多くなる程、所望の方向を一発で正確に入力することは難しくなる。このため、一般的に、プレイヤは、停止している操作対象オブジェクトを動かし始めた直後、すなわち方向の入力を開始した直後は、入力したい所望の方向(操作対象オブジェクトを移動させたい方向)等に合わせて大まかに方向を入力し、その後、画面に表示された操作対象オブジェクトの様子(移動方向)を見ながら入力する方向を細かく微調整していく。
【0008】
本発明は、このような背景に鑑み、ゲームの操作性を向上させることを課題とする。
【課題を解決するための手段】
【0009】
本発明によれば、
コンピュータを、
プレイヤ入力に基づき移動する操作対象オブジェクトの位置を示す位置情報を記憶する記憶部、
前記操作対象オブジェクトの移動開始タイミングを検出し、前記移動開始タイミングからの経過時間を監視する監視部、
プレイヤが入力した入力データを取得する取得部、
前記入力データに基づき、入力方向を決定する制御内容決定部、
前記操作対象オブジェクトが移動していない時、及び、前記操作対象オブジェクトが移動中であって前記経過時間が基準時間以内の時は、前記入力方向を予め定められたM個(Mは2以上)の基準方向のいずれかに変換し、変換後の前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定し、前記操作対象オブジェクトが移動中であって前記経過時間が前記基準時間を超えている時は、前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定する移動制御部、
として機能させるプログラムが提供される。
【0010】
また、本発明によれば、
コンピュータが、
プレイヤ入力に基づき移動する操作対象オブジェクトの位置を示す位置情報を記憶し、
前記操作対象オブジェクトの移動開始タイミングを検出し、前記移動開始タイミングからの経過時間を監視し、
プレイヤが入力した入力データを取得し、
前記入力データに基づき、入力方向を決定し、
前記操作対象オブジェクトが移動していない時、及び、前記操作対象オブジェクトが移動中であって前記経過時間が基準時間以内の時は、前記入力方向を予め定められたM個(Mは2以上)の基準方向のいずれかに変換し、変換後の前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定し、前記操作対象オブジェクトが移動中であって前記経過時間が前記基準時間を超えている時は、前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定する処理方法が提供される。
【0011】
また、本発明によれば、
プレイヤ入力に基づき移動する操作対象オブジェクトの位置を示す位置情報を記憶する記憶部と、
前記操作対象オブジェクトの移動開始タイミングを検出し、前記移動開始タイミングからの経過時間を監視する監視部と、
プレイヤが入力した入力データを取得する取得部と、
前記入力データに基づき、入力方向を決定する制御内容決定部と、
前記操作対象オブジェクトが移動していない時、及び、前記操作対象オブジェクトが移動中であって前記経過時間が基準時間以内の時は、前記入力方向を予め定められたM個(Mは2以上)の基準方向のいずれかに変換し、変換後の前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定し、前記操作対象オブジェクトが移動中であって前記経過時間が前記基準時間を超えている時は、前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定する移動制御部と、
を有する処理装置が提供される。
【発明の効果】
【0012】
本発明によれば、ゲームの操作性が向上する。
【図面の簡単な説明】
【0013】
【
図1】本実施形態の処理装置のハードウエア構成の一例を示す図である。
【
図2】本実施形態の処理装置の機能ブロック図の一例である。
【
図3】本実施形態の処理装置が処理する情報の一例を模式的に示す図である。
【
図4】本実施形態の処理装置の処理の流れの一例を示すフローチャートである。
【
図5】本実施形態の処理装置が検出する入力方向を説明するための図である。
【
図6】本実施形態の処理装置が検出する入力方向を説明するための図である。
【
図7】本実施形態の処理装置が検出する入力方向を説明するための図である。
【
図8】入力方向を基準方向に変換する処理を説明するための図である。
【
図9】本実施形態の処理装置の処理の流れの一例を示すフローチャートである。
【
図10】本実施形態の処理装置の処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0014】
<<第1の実施形態>>
<概要>
まず、本実施形態の処理装置の概要を説明する。処理装置は、プログラムを実行し、ゲームを提供する。処理装置が提供するゲームは、少なくとも「ゲーム空間に存在する操作対象オブジェクトがプレイヤ入力に基づきゲーム空間内で移動する」という前提を有する。ゲームのその他の設計内容は特段制限されない。
【0015】
そして、処理装置は、プレイヤ入力に基づく操作対象オブジェクトの移動を特徴的な方法で制御することで、ゲームの操作性を向上させる。具体的には、処理装置は、プレイヤが入力した入力データに基づき、N個の選択肢(方向)の中の1つを入力方向として決定する。Nの数は設計的事項であるが、ある程度大きい数とすることが好ましい。入力方向の選択肢が増えることで、操作象オブジェクトの移動方向を細かく制御することが可能となる。
【0016】
そして、処理装置は、操作対象オブジェクトが移動し始めた数フレーム間は、上記入力方向をM個(N>M)の基準方向のいずれかに変換し、変換後の入力方向に基づき操作対象オブジェクトの移動を制御する。Mの数は設計的事項であるが、例えば4~12程度としてもよい。一方、操作対象オブジェクトが移動し始めてから数フレーム経過後は、処理装置は、上記入力方向に基づき操作対象オブジェクトの移動を制御する。
【0017】
このような処理装置によれば、上述した「一般的に、プレイヤは、停止している操作対象オブジェクトを動かし始めた直後、すなわち方向の入力を開始した直後は、入力したい所望の方向(操作対象オブジェクトを移動させたい方向)等に合わせて大まかに方向を入力し、その後、画面に表示された操作対象オブジェクトの様子(移動方向)を見ながら入力する方向を細かく微調整していく。」という実態に合った制御が実現される。結果、ゲームの操作性が向上する。
【0018】
<ハードウエア構成>
次に、処理装置のハードウエア構成の一例を説明する。処理装置は、スマートフォン、タブレット端末、スマートウォッチ、PC(personal computer)、携帯電話等の汎用的な装置であってもよいし、ゲーム専用の装置であってもよい。
【0019】
処理装置の各機能部は、任意のコンピュータのCPU(Central Processing Unit)、メモリ、メモリにロードされるプログラム、そのプログラムを格納するハードディスク等の記憶ユニット(あらかじめ装置を出荷する段階から格納されているプログラムのほか、CD(Compact Disc)等の記憶媒体やインターネット上のサーバ等からダウンロードされたプログラムをも格納できる)、ネットワーク接続用インターフェイスを中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。
【0020】
図1は、処理装置のハードウエア構成を例示するブロック図である。
図1に示すように、処理装置は、プロセッサ1A、メモリ2A、入出力インターフェイス3A、周辺回路4A、バス5Aを有する。周辺回路4Aには、様々なモジュールが含まれる。処理装置は周辺回路4Aを有さなくてもよい。なお、処理装置は物理的及び/又は論理的に分かれた複数の装置で構成されてもよいし、物理的及び/又は論理的に一体となった1つの装置で構成されてもよい。処理装置が物理的及び/又は論理的に分かれた複数の装置で構成される場合、複数の装置各々が上記ハードウエア構成を備えることができる。
【0021】
バス5Aは、プロセッサ1A、メモリ2A、周辺回路4A及び入出力インターフェイス3Aが相互にデータを送受信するためのデータ伝送路である。プロセッサ1Aは、例えばCPU、GPU(Graphics Processing Unit)などの演算処理装置である。メモリ2Aは、例えばRAM(Random Access Memory)やROM(Read Only Memory)などのメモリである。入出力インターフェイス3Aは、入力装置、外部装置、外部サーバ、外部センサ、カメラ等から情報を取得するためのインターフェイスや、出力装置、外部装置、外部サーバ等に情報を出力するためのインターフェイスなどを含む。入力装置は、例えばキーボード、マウス、マイク、物理ボタン、タッチパネル、ゲームコントローラ(ジョイスティック、アナログスティック等)等である。出力装置は、例えばディスプレイ、スピーカ、プリンター、メーラ等である。プロセッサ1Aは、各モジュールに指令を出し、それらの演算結果をもとに演算を行うことができる。
【0022】
<機能構成>
次に、処理装置の機能構成を説明する。
図2に、処理装置10の機能ブロック図の一例を示す。図示するように、処理装置10は、記憶部11と、監視部12と、取得部13と、制御内容決定部14と、移動制御部15と、更新部16とを有する。処理装置10が所定のプログラムを実行することで、これら機能部が処理装置10内で実現される。
【0023】
記憶部11は、プレイヤが操作する対象である操作対象オブジェクトに関する各種情報(操作対象オブジェクト情報)を記憶する。
【0024】
操作対象オブジェクトは、人、動物、仮想生物等のキャラクタであってもよいし、車、戦車、飛行機等のキャラクタ以外の移動体であってもよいし、その他であってもよい。操作対象オブジェクトは、プレイヤ入力に基づきゲーム空間内で移動し、各種行動(戦闘、他のキャラクタとの会話等)を行う。
【0025】
図3に、記憶部11が記憶する操作対象オブジェクト情報の一例を模式的に示す。図示する操作対象オブジェクト情報は、位置情報と、移動/停止情報と、経過時間情報とを含む。
【0026】
「位置情報」は、ゲーム空間内における操作対象オブジェクトの位置を示す。例えば、2次元座標系における座標でゲーム空間内における操作対象オブジェクトの位置が示される。位置情報は、後述する更新部16により更新される。位置情報は、現在の操作対象オブジェクトの位置のみを示してもよいし、現在の操作対象オブジェクトの位置を含む直近所定数のフレーム各々における操作対象オブジェクトの位置(位置情報の履歴)を示してもよい。
【0027】
「移動/停止情報」は、操作対象オブジェクトが移動中か、停止中かを示す情報である。例えば、直近nフレーム(nは2以上の整数)の間、連続して操作対象オブジェクトの位置の変化(位置情報の変化)がない状態を「停止中」と定義し、その他の状態を「移動中」と定義することができる。移動/停止情報は、後述する監視部12により更新される。
【0028】
「経過時間情報」は、操作対象オブジェクトが移動を継続している時間を示す。経過時間情報は、移動/停止情報が「移動中」となっている状態が連続的に(停止中を挟まずに)継続している時間と表現することもできる。また、経過時間情報は、操作対象オブジェクトの直近の移動開始タイミングから移動を継続している時間と表現することもできる。
【0029】
経過時間情報は、
図3に示すようにフレーム数で示されてもよいし、時間、分、秒等の時間の単位で示されてもよい。一般的なゲームのフレームレートは、30fps又は60fpsである。経過時間情報は、後述する監視部12により更新される。
【0030】
なお、操作対象オブジェクト情報は、ヒットポイント、戦闘力、守備力等のその他の操作対象オブジェクトに関する情報を含んでもよい。
【0031】
図2に戻り、監視部12は、操作対象オブジェクトが移動中であること、操作対象オブジェクトが停止中であること、及び、停止中の操作対象オブジェクトが移動を開始したことを検出する。また、監視部12は、検出結果に基づき、操作対象オブジェクトが移動を開始したタイミング(移動開始タイミング)からの経過時間を監視する。
【0032】
上記検出を実現する手段は特段制限されないが、以下、実現手段の一例を説明する。例えば、操作対象オブジェクト情報(
図3参照)の位置情報の履歴に基づき、上記検出を実現することができる。例えば、監視部12は、nフレーム(nは2以上の整数)連続して操作対象オブジェクトの位置の変化がない場合、すなわち直近のnフレーム連続して
図3の位置情報の変化がない場合、「停止中」と判断してもよい。そして、監視部12は、その他の場合、すなわち直近のnフレームの間に
図3の位置情報の変化がある場合、「移動中」と判断してもよい。また、監視部12は、移動/停止情報が「停止中」となった後に初めて操作対象オブジェクトの位置が変化したタイミング(移動/停止情報が「移動中」となったタイミング)を、移動開始タイミングと判断してもよい。
【0033】
監視部12は、フレーム毎に上記検出を行い、検出結果に基づき
図3の移動/提示情報、及び、経過時間情報を更新することができる。ここで、
図4のフローチャートを用いて、監視部12の処理の流れの一例を説明する。なお、以下の処理の流れはあくまで一例であり、これに限定されない。
【0034】
まず、監視部12は、フレーム毎に、直近のnフレームの位置情報に基づき、操作対象オブジェクトが移動中か停止中かを判断する(S10)。
【0035】
判断結果が「移動中」であり(S11の「移動中」)、その時の移動/停止情報が「停止中」である場合(S12の「停止中」)、監視部12は、移動/停止情報を「停止中」から「移動中」に変更する更新を行い(S13)、経過時間情報のフレーム数を1つカウントアップする(S14)。
【0036】
一方、判断結果が「移動中」であり(S11の「移動中」)、その時の移動/停止情報が「移動中」である場合(S12の「移動中」)、監視部12は、移動/停止情報の更新は行わず、経過時間情報のフレーム数を1つカウントアップする(S14)。
【0037】
また、判断結果が「停止中」であり(S11の「停止中」)、その時の移動/停止情報が「移動中」である場合(S15の「移動中」)、監視部12は、移動/停止情報を「移動中」から「停止中」に変更する更新を行い(S16)、経過時間情報のフレーム数を「0」にする(S17)。
【0038】
一方、判断結果が「停止中」であり(S11の「停止中」)、その時の移動/停止情報が「停止中」である場合(S15の「停止中」)、監視部12は、移動/停止情報及び経過時間情報の更新は行わない。
【0039】
図2に戻り、取得部13は、プレイヤが入力した入力データを取得する。取得部13は、タッチパネルやゲームコントローラ(ジョイスティック、アナログスティック等)等の入力装置を介して入力された入力データを取得する。
【0040】
制御内容決定部14は、取得部13が取得した入力データに基づき、プレイヤが入力した方向(以下、「入力方向」)を決定する。入力方向は、例えば0°~360°の角度で示される。以下、入力方向を決定する処理の一例を説明するが、これに限定されない。
【0041】
“第1の例”
第1の例では、取得部13は、ゲームコントローラ(ジョイスティック、アナログスティック等)を介して入力された入力データを取得する。
図5に、ゲームコントローラの一例を示す。当該例の場合、取得部13は、スティックSの傾きの状態(倒した方向及び倒した量等)を示すデータを、入力データとして取得する。スティックSを倒した方向は、例えば、
図5に示すように、ゲームコントローラの上方向を0°、右方向を90°、下方向を180°、左方向を270°とする角度で表現される。
【0042】
当該例の場合、制御内容決定部14は、スティックSを倒した方向に基づき、入力方向を決定する。例えば、倒した方向を、そのまま入力方向として決定してもよい。その他、制御内容決定部14は、倒した方向を所定数の方向の中のいずれかに変換してもよい。この場合の所定数は設計的事項であるが、ある程度大きい数とすることが好ましい。入力方向の選択肢が増えることで、操作象オブジェクトの移動方向を細かく制御することが可能となる。
【0043】
“第2の例”
第2の例では、取得部13は、タッチパネルを介して入力された入力データを取得する。具体的には、取得部13は、タッチパネルへのプレイヤの操作により発生したタッチイベントに基づき取得される第1の軸の値及び第2の軸の値により示される入力データを取得して保持する。そして取得部13は、保持されている入力データのうち既定の保持時間を超えた入力データの保持を終了する。
【0044】
制御内容決定部14は、保持されている入力データに基づき回帰直線の傾きを決定し、保持されている入力データの集合としての変位方向に基づき回帰直線の傾きを回転させる回転量を決定する。次いで、制御内容決定部14は、回帰直線の傾き及び回転量に基づき操作対象オブジェクトを制御するための角度を決定し、角度に基づき入力方向を決定する。この「角度に基づく入力方向を決定する処理」は、特許文献2(特許第6389581号)の段落0040に開示されている「角度決定部24から送出された角度を用いてタッチパネル上のプレイヤのタッチ操作に対応するベクトル(角度及び大きさ)を決定する処理」に対応する。
【0045】
当該例の場合、制御内容決定部14は、決定された上記ベクトルが示す方向を入力方向として決定してもよい。その他、制御内容決定部14は、決定された上記ベクトルが示す方向を所定数の方向の中のいずれかに変換してもよい。この場合の所定数は設計的事項であるが、ある程度大きい数とすることが好ましい。入力方向の選択肢が増えることで、操作象オブジェクトの移動方向を細かく制御することが可能となる。
【0046】
なお、第2の例における取得部13及び制御内容決定部14の処理の詳細は、特許文献2(特許第6389581号)に開示されているので、ここでの説明は省略する。
【0047】
“第3の例”
第3の例では、取得部13は、タッチパネルを介して入力された入力データを取得する。具体的には、取得部13は、タッチパネルへのプレイヤの操作により発生したタッチイベントに基づき取得される第1の軸の値及び第2の軸の値により示される入力データを取得する。
【0048】
制御内容決定部14は、タッチパネル上の基準位置から入力データで示されるタッチ位置に向かう方向に基づき、入力方向を決定する。基準位置は、予め定められた固定値であってもよいし、プレイヤによるタッチ位置に基づき決定されてもよい。後者の場合、例えば、プレイヤはタッチパネル上のある位置をタッチした後、タッチ位置をスライドさせるタッチ操作を行ってもよい。この場合、最初にタッチしたタッチ位置が基準位置となり、基準位置からスライド後のタッチ位置に向かう方向が、入力方向として入力される。
【0049】
基準位置からタッチ位置に向かう方向は、例えば、
図6及び7に示すように、タッチパネルの上方向を0°、右方向を90°、下方向を180°、左方向を270°とする角度で表現される。なお、タッチパネルの上下左右方向は、
図6及び
図7に示すように、その時のタッチパネルの姿勢に応じて変化する。
【0050】
当該例の場合、制御内容決定部14は、基準位置からタッチ位置に向かう方向を入力方向として決定してもよい。その他、制御内容決定部14は、基準位置からタッチ位置に向かう方向を所定数の方向の中のいずれかに変換してもよい。この場合の所定数は設計的事項であるが、ある程度大きい数とすることが好ましい。入力方向の選択肢が増えることで、操作象オブジェクトの移動方向を細かく制御することが可能となる。
【0051】
図2に戻り、移動制御部15は、制御内容決定部14が決定した入力方向に基づき、操作対象オブジェクトの移動方向を決定する。そして、移動制御部15は、決定した移動方向に基づき操作対象オブジェクトの新たな位置(移動後の位置)を決定する。
【0052】
具体的には、移動制御部15は、操作対象オブジェクトが移動していない時、及び、操作対象オブジェクトが移動中であって上記経過時間情報(
図3参照)で示される経過時間が基準時間以内の時は、制御内容決定部14が決定した入力方向を予め定められたM個(Mは2以上)の基準方向のいずれかに変換し、変換後の入力方向に基づき操作対象オブジェクトの移動方向を決定する。一方、操作対象オブジェクトが移動中であって上記経過時間情報で示される経過時間が上記基準時間を超えている時は、移動制御部15は、制御内容決定部14が決定した入力方向に基づき操作対象オブジェクトの移動方向を決定する。
【0053】
まず、入力方向をM個の基準方向のいずれかに変換する処理を説明する。
図8に示すように予めM個の基準方向が定義される。図示する例では、0°(360°)、45°、90°、135°、180°、225°、270°、315°の8個の方向が基準方向として定義されている。そして、入力方向は、最も近い基準方向に変換される。例えば、M2で示される22.5°以上67.5°未満の範囲に含まれる入力方向は、基準方向45°に変換される。また、M3で示される67.5°以上112.5°未満の範囲に含まれる入力方向は、基準方向90°に変換される。その他も同様である。
【0054】
次に、
図9のフローチャートを用いて、移動制御部15の処理の流れの一例を説明する。取得部13が新たな入力データを取得し、制御内容決定部14が当該入力データに基づき新たな入力方向を決定すると、
図9のフローが実行される。
【0055】
まず、移動制御部15は、操作対象オブジェクトが移動中か停止中かを判断する(S20)。例えば、移動制御部15は、記憶部11が記憶する操作対象オブジェクト情報(
図3参照)の移動/停止情報に基づき、操作対象オブジェクトが移動中か停止中かを判断する。
【0056】
操作対象オブジェクトが移動中である場合(S20のYes)、移動制御部15は、直近の移動開始タイミングからの経過時間が基準時間以内か判断する(S21)。例えば、移動制御部15は、記憶部11が記憶する操作対象オブジェクト情報(
図3参照)の経過時間情報と予め定められた基準時間との比較により、当該判断を行う。
【0057】
上記経過時間が基準時間以内である場合(S21のYes)、移動制御部15は、制御内容決定部14が決定した新たな入力方向を、M個の基準方向のいずれかに変換する(S22)。そして、移動制御部15は、変換後の入力方向に基づき操作対象オブジェクトの移動方向を決定し、決定した移動方向に基づき操作対象オブジェクトの新たな位置を決定する(S23)。
【0058】
例えば、予め、入力方向と操作対象オブジェクトの移動方向との関係(例:「入力方向0°-画面の上方向に向かって移動」、「入力方向90°-画面の右方向に向かって移動」、「入力方向180°-画面の下方向に向かって移動」、「入力方向270°-画面の左方向に向かって移動」等)が定められていてもよい。そして、移動制御部15は、当該関係に基づき、変換後の入力方向から操作対象オブジェクトの移動方向を決定してもよい。
【0059】
そして、移動制御部15は、現在の操作対象オブジェクトの位置から決定した移動方向に所定の移動量離れた位置を、操作対象オブジェクトの新たな位置として決定してもよい。移動量は、予め定められた固定値であってもよいし、入力データに基づき決定されてもよい。
【0060】
なお、移動制御部15は、操作対象オブジェクトの新たの位置の決定において、コリジョン判定や制限判定等の従来の技術を利用することができる。
【0061】
例えば、移動制御部15は、決定した移動方向に向かう所定の移動量の移動を妨げる障害物(例:他のキャラクタ、山や建物など)が存在しないか判定し(コリジョン判定)、障害物が存在しない場合に、上記手法で操作対象オブジェクトの新たな位置を決定してもよい。そして、障害物が存在する場合、移動制御部15は、操作対象オブジェクトの新たな位置を決定しなくてもよい(すなわち、操作対象オブジェクトはその場に居続ける)。
【0062】
また、予め操作対象オブジェクト毎に移動可能な方向が定義されている場合、移動制御部15は、決定した移動方向が許可されている方向か判定し(制限判定)、許可されている方向である場合に、上記手法で操作対象オブジェクトの新たな位置を決定してもよい。そして、決定した移動方向が許可されていない方向である場合、移動制御部15は、操作対象オブジェクトの新たな位置を決定しなくてもよい(すなわち、操作対象オブジェクトはその場に居続ける)。
【0063】
なお、操作対象オブジェクトが移動中でない場合(S20のNo)も同様に、上述したS22及びS23の処理が行われる。
【0064】
一方、上記経過時間が基準時間を超えている場合(S21のNo)、移動制御部15は、制御内容決定部14が決定した新たな入力方向に基づき移動方向を決定する。そして、移動制御部15は、決定した移動方向に基づき操作対象オブジェクトの新たな位置を決定する(S24)。操作対象オブジェクトの新たな位置を決定する処理は、上述の通りであるので、ここでの説明は省略する。
【0065】
図2に戻り、更新部16は、移動制御部15が決定した操作対象オブジェクトの新たな位置に基づき、記憶部11が記憶する位置情報(
図3参照)を更新する。なお、処理装置10は、位置情報が更新されると、それに応じてゲーム画面を更新する。具体的には、ゲーム画面で示されるゲーム空間における操作対象オブジェクトの位置を、更新後の位置情報に基づき変更する。
【0066】
<作用効果>
以上説明した本実施形態の処理装置10によれば、上述した「一般的に、プレイヤは、停止している操作対象オブジェクトを動かし始めた直後、すなわち方向の入力を開始した直後は、入力したい所望の方向(操作対象オブジェクトを移動させたい方向)等に合わせて大まかに方向を入力し、その後、画面に表示された操作対象オブジェクトの様子(移動方向)を見ながら入力する方向を細かく微調整していく。」という実態に合った制御が実現される。結果、ゲームの操作性が向上する。
【0067】
<<第2の実施形態>>
本実施形態の処理装置10は、入力データに基づき操作対象オブジェクトの移動状態(走る/歩く)を決定し、決定した移動状態に応じて、移動方向の決定の仕方を調整する。以下、詳細に説明する。
【0068】
本実施形態の処理装置10の機能ブロック図の一例は、第1の実施形態同様、
図2で示される。
【0069】
制御内容決定部14は、取得部13が取得した入力データに基づき、操作対象オブジェクトの移動状態を決定する。移動状態は、「歩く」及び「走る」のいずれかである。以下、移動状態を決定する処理の一例を説明するが、これに限定されない。
【0070】
“第1の例”
第1の例では、取得部13は、ゲームコントローラ(ジョイスティック、アナログスティック等)を介して入力された入力データを取得する。
図5に、ゲームコントローラの一例を示す。当該例の場合、取得部13は、スティックSの傾きの状態(倒した方向及び倒した量等)を示すデータを、入力データとして取得する。スティックSを倒した量は、例えば、定常状態からの傾斜角で示される。
【0071】
当該例の場合、制御内容決定部14は、スティックSを倒した量に基づき、移動状態を決定する。例えば、制御内容決定部14は、倒した量が閾値以上である場合に移動状態「走る」を決定し、倒した量が閾値未満である場合に移動状態「歩く」を決定してもよい。
【0072】
“第2の例”
第2の例では、取得部13は、タッチパネルを介して入力された入力データを取得する。具体的には、取得部13は、タッチパネルへのプレイヤの操作により発生したタッチイベントに基づき取得される第1の軸の値及び第2の軸の値により示される入力データを取得し、フレームレートに対応する既定の処理時間ごとに、入力データ列として保持する。
【0073】
そして、制御内容決定部14は、一のフレームの時間内に保持されている入力データ列における入力データの変位に基づき、該フレームにおけるプレイヤの指の移動速度に対応する変位速さを決定し、最新のフレームにおける該変位速さの、該最新のフレームより前のフレームにおける該変位速さの平均値に対する偏差に基づき速度因子を決定し、当該速度因子に基づき操作対象オブジェクトの移動状態を決定する。
【0074】
なお、第2の例における取得部13及び制御内容決定部14の処理の詳細は、特許文献3(特許第6560801号)に開示されているので、ここでの説明は省略する。
【0075】
“第3の例”
第3の例では、取得部13は、タッチパネルを介して入力された入力データを取得する。具体的には、取得部13は、タッチパネルへのプレイヤの操作により発生したタッチイベントに基づき取得される第1の軸の値及び第2の軸の値により示される入力データを取得する。
【0076】
制御内容決定部14は、タッチパネル上の基準位置と入力データで示されるタッチ位置との距離に基づき、操作対象オブジェクトの移動状態を決定する。例えば、制御内容決定部14は、当該距離が閾値以上である場合に移動状態「走る」を決定し、当該距離が閾値未満である場合に移動状態「歩く」を決定してもよい。基準位置は、予め定められた固定値であってもよいし、プレイヤによるタッチ位置に基づき決定されてもよい。その詳細は、上述の通りである。
【0077】
移動制御部15は、制御内容決定部14が決定した入力方向及び移動状態に基づき、操作対象オブジェクトの移動方向を決定する。そして、移動制御部15は、決定した移動方向に基づき操作対象オブジェクトの新たな位置(移動後の位置)を決定する。
【0078】
具体的には、移動制御部15は、決定された移動状態が歩く状態である場合、決定された入力方向に基づき操作対象オブジェクトの移動方向を決定する。一方、移動状態が走る状態である場合、移動制御部15は、操作対象オブジェクトが移動していない時、及び、操作対象オブジェクトが移動中であって経過時間が基準時間以内の時は、決定された入力方向を予め定められたM個の基準方向のいずれかに変換し、変換後の入力方向に基づき操作対象オブジェクトの移動方向を決定する。そして、操作対象オブジェクトが移動中であって経過時間が基準時間を超えている時は、移動制御部15は、入力方向に基づき操作対象オブジェクトの移動方向を決定する。
【0079】
次に、
図10のフローチャートを用いて、移動制御部15の処理の流れの一例を説明する。取得部13が新たな入力データを取得し、制御内容決定部14が当該入力データに基づき新たな入力方向及び移動状態を決定すると、
図10のフローが実行される。
【0080】
まず、移動制御部15は、操作対象オブジェクトが移動中か停止中かを判断する(S30)。例えば、移動制御部15は、記憶部11が記憶する操作対象オブジェクト情報(
図3参照)の移動/停止情報に基づき、操作対象オブジェクトが移動中か停止中かを判断する。
【0081】
操作対象オブジェクトが移動中であり(S30のYes)、かつ、制御内容決定部14が新たに決定した移動状態が「走る」である場合(S31の走る)、移動制御部15は、直近の移動開始タイミングからの経過時間が基準時間以内か判断する(S32)。例えば、移動制御部15は、記憶部11が記憶する操作対象オブジェクト情報(
図3参照)の経過時間情報に基づき、当該判断を行う。
【0082】
上記経過時間が基準時間以内である場合(S32のYes)、移動制御部15は、制御内容決定部14が決定した新たな入力方向を、M個の基準方向のいずれかに変換する(S33)。そして、移動制御部15は、変換後の入力方向に基づき移動方向を決定し、決定した移動方向に基づき操作対象オブジェクトの新たな位置を決定する(S34)。
【0083】
例えば、移動制御部15は、現在の操作対象オブジェクトの位置から決定した移動方向に所定の移動量離れた位置を、操作対象オブジェクトの新たな位置として決定してもよい。所定の移動量は、制御内容決定部14が決定した移動状態に基づき決定されてもよい。例えば、移動状態が「走る」の場合の移動量の方が、移動状態「歩く」の場合の移動量より大きくてもよい。なお、移動制御部15は、上記操作対象オブジェクトの新たの位置の決定において、コリジョン判定や制限判定等の従来の技術を利用することができる。これらについては上述の通りであるので、ここでの説明は省略する。
【0084】
なお、操作対象オブジェクトが移動中でない場合(S30のNo)も同様に、上述したS33及びS34の処理が行われる。
【0085】
一方、制御内容決定部14が決定した移動状態が「歩く」である場合(S31の歩く)、また、上記経過時間が基準時間を超えている場合(S32のNo)、移動制御部15は、制御内容決定部14が決定した新たな入力方向に基づき移動方向を決定する。そして、移動制御部15は、決定した移動方向に基づき操作対象オブジェクトの新たな位置を決定する(S35)。操作対象オブジェクトの新たな位置を決定する処理は、上述の通りであるので、ここでの説明は省略する。
【0086】
処理装置10のその他の構成は、第1の実施形態と同様である。
【0087】
以上説明した本実施形態の処理装置10によれば、第1の実施形態の処理装置10と同様の作用効果が実現される。また、本実施形態の処理装置10によれば、操作対象オブジェクトの移動状態(走る/歩く)に応じて、移動方向の決定の仕方を調整することができる。すなわち、移動状態が「走る」であり、操作対象オブジェクトの移動スピードが相対的に速い場合は、移動状態が「歩く」であり、操作対象オブジェクトの移動スピードが相対的に遅い場合に比べて、操作対象オブジェクトの移動方向の調整が難しくなる。このような背景に鑑み、移動状態が「走る」である場合、処理装置10は、入力方向を基準方向に変換し、変換後の入力方向に基づき移動方向を決定する。そして、移動状態が「歩く」である場合、処理装置10は、入力方向に基づき移動方向を決定する。結果、実態に合った制御が実現され、ゲームの操作性が向上する。
【0088】
なお、本明細書において、「取得」とは、プレイヤ入力に基づき、又は、プログラムの指示に基づき、「自装置が他の装置や記憶媒体に格納されているデータを取りに行くこと(能動的な取得)」、たとえば、他の装置にリクエストまたは問い合わせして受信すること、他の装置や記憶媒体にアクセスして読出すこと等、および、プレイヤ入力に基づき、又は、プログラムの指示に基づき、「自装置に他の装置から出力されるデータを入力すること(受動的な取得)」、たとえば、外部装置から送信されたデータを受信できる状態で待機しており、外部装置から送信されたデータを受信すること、外部装置から配信(または、送信、プッシュ通知等)されるデータを受信すること、また、受信したデータまたは情報の中から選択して取得すること、及び、「データを編集(テキスト化、データの並び替え、一部データの抽出、ファイル形式の変更等)などして新たなデータを生成し、当該新たなデータを取得すること」の少なくともいずれか一方を含む。
【0089】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限定されない。
1. コンピュータを、
プレイヤ入力に基づき移動する操作対象オブジェクトの位置を示す位置情報を記憶する記憶部、
前記操作対象オブジェクトの移動開始タイミングを検出し、前記移動開始タイミングからの経過時間を監視する監視部、
プレイヤが入力した入力データを取得する取得部、
前記入力データに基づき、入力方向を決定する制御内容決定部、
前記操作対象オブジェクトが移動していない時、及び、前記操作対象オブジェクトが移動中であって前記経過時間が基準時間以内の時は、前記入力方向を予め定められたM個(Mは2以上)の基準方向のいずれかに変換し、変換後の前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定し、前記操作対象オブジェクトが移動中であって前記経過時間が前記基準時間を超えている時は、前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定する移動制御部、
として機能させるプログラム。
2. 前記制御内容決定部は、前記入力データに基づき、前記操作対象オブジェクトの移動状態を決定し、
前記移動制御部は、
前記移動状態が歩く状態である場合、
前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定し、
前記移動状態が走る状態である場合、
前記操作対象オブジェクトが移動していない時、及び、前記操作対象オブジェクトが移動中であって前記経過時間が基準時間以内の時は、前記入力方向を予め定められたM個の基準方向のいずれかに変換し、変換後の前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定し、前記操作対象オブジェクトが移動中であって前記経過時間が前記基準時間を超えている時は、前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定する1に記載のプログラム。
3. 前記取得部は、
タッチパネルへのプレイヤの操作により発生したタッチイベントに基づき取得される第1の軸の値及び第2の軸の値により示される前記入力データを取得して保持し、保持されている前記入力データのうち既定の保持時間を超えた前記入力データの保持を終了し、
前記制御内容決定部は、
保持されている前記入力データに基づき回帰直線の傾きを決定し、保持されている前記入力データの集合としての変位方向に基づき前記回帰直線の傾きを回転させる回転量を決定し、前記回帰直線の傾き及び前記回転量に基づき前記操作対象オブジェクトを制御するための角度を決定し、前記角度に基づき前記入力方向を決定する1又は2に記載のプログラム。
4. 前記取得部は、
タッチパネルへのプレイヤの操作により発生したタッチイベントに基づき取得される第1の軸の値及び第2の軸の値により示される前記入力データを取得し、フレームレートに対応する既定の処理時間ごとに、入力データ列として保持し、
前記制御内容決定部は、
一のフレームの時間内に保持されている前記入力データ列における前記入力データの変位に基づき、該フレームにおけるプレイヤの指の移動速度に対応する変位速さを決定し、最新のフレームにおける該変位速さの、該最新のフレームより前のフレームにおける該変位速さの平均値に対する偏差に基づき速度因子を決定し、前記速度因子に基づき前記操作対象オブジェクトの前記移動状態を決定する2に記載のプログラム。
5. 前記取得部は、
タッチパネルへのプレイヤの操作により発生したタッチイベントに基づき取得される第1の軸の値及び第2の軸の値により示される前記入力データを取得し、
前記制御内容決定部は、
基準位置から前記入力データで示されるタッチ位置に向かう方向に基づき、前記入力方向を決定する項1又は2に記載のプログラム。
6. 前記取得部は、
タッチパネルへのプレイヤの操作により発生したタッチイベントに基づき取得される第1の軸の値及び第2の軸の値により示される前記入力データを取得し、
前記制御内容決定部は、
基準位置と前記入力データで示されるタッチ位置との距離に基づき、前記操作対象オブジェクトの前記移動状態を決定する2に記載のプログラム。
7. コンピュータが、
プレイヤ入力に基づき移動する操作対象オブジェクトの位置を示す位置情報を記憶し、
前記操作対象オブジェクトの移動開始タイミングを検出し、前記移動開始タイミングからの経過時間を監視し、
プレイヤが入力した入力データを取得し、
前記入力データに基づき、入力方向を決定し、
前記操作対象オブジェクトが移動していない時、及び、前記操作対象オブジェクトが移動中であって前記経過時間が基準時間以内の時は、前記入力方向を予め定められたM個(Mは2以上)の基準方向のいずれかに変換し、変換後の前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定し、前記操作対象オブジェクトが移動中であって前記経過時間が前記基準時間を超えている時は、前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定する処理方法。
8. プレイヤ入力に基づき移動する操作対象オブジェクトの位置を示す位置情報を記憶する記憶部と、
前記操作対象オブジェクトの移動開始タイミングを検出し、前記移動開始タイミングからの経過時間を監視する監視部と、
プレイヤが入力した入力データを取得する取得部と、
前記入力データに基づき、入力方向を決定する制御内容決定部と、
前記操作対象オブジェクトが移動していない時、及び、前記操作対象オブジェクトが移動中であって前記経過時間が基準時間以内の時は、前記入力方向を予め定められたM個(Mは2以上)の基準方向のいずれかに変換し、変換後の前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定し、前記操作対象オブジェクトが移動中であって前記経過時間が前記基準時間を超えている時は、前記入力方向に基づき前記操作対象オブジェクトの移動方向を決定する移動制御部と、
を有する処理装置。
【0090】
以上、実施形態(及び実施例)を参照して本願発明を説明したが、本願発明は上記実施形態(及び実施例)に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0091】
1A プロセッサ
2A メモリ
3A 入出力I/F
4A 周辺回路
5A バス
10 処理装置
11 記憶部
12 監視部
13 取得部
14 制御内容決定部
15 移動制御部
16 更新部