JP2019150137A - ゲームプログラム、方法、および情報処理装置 - Google Patents

ゲームプログラム、方法、および情報処理装置 Download PDF

Info

Publication number
JP2019150137A
JP2019150137A JP2018035824A JP2018035824A JP2019150137A JP 2019150137 A JP2019150137 A JP 2019150137A JP 2018035824 A JP2018035824 A JP 2018035824A JP 2018035824 A JP2018035824 A JP 2018035824A JP 2019150137 A JP2019150137 A JP 2019150137A
Authority
JP
Japan
Prior art keywords
game
contact point
user
screen
game screen
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018035824A
Other languages
English (en)
Inventor
太雄 深谷
Takeo Fukaya
太雄 深谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Colopl Inc
Original Assignee
Colopl Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Colopl Inc filed Critical Colopl Inc
Priority to JP2018035824A priority Critical patent/JP2019150137A/ja
Publication of JP2019150137A publication Critical patent/JP2019150137A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • User Interface Of Digital Computer (AREA)

Abstract

【課題】ゲームにおけるユーザの操作性を向上する。【解決手段】基準点特定部は、矩形領域(50)の右辺(53)を構成する複数の点のうちの、ゲーム画面において第2接触点(42)に最も近い位置に配置される基準点(44)を特定する。方向算出部は、ゲーム画面における基準点(44)から第2接触点(42)に向かう方向(45)を算出する。距離算出部は、ゲーム画面における基準点(44)と第2接触点(42)との距離(46)を算出する。ゲーム実行部は、方向(45)および距離(46)の少なくともいずれか一方に応じたゲーム処理を実行する。【選択図】図7

Description

本開示はゲームプログラム、ゲームプログラムを実行する方法および情報処理装置に関する。
特許文献1に、スマートフォンのタッチパネルに操作ボタン(十字キー、ジョイスティックなど)を表示する技術の一例が開示される。ユーザは、当該操作ボタンを使用して、ゲームキャラクタの移動などを行うことができる。
特開2012−168931号公報
特許文献1の技術では、ユーザが意図した入力方向に応じたゲーム処理が必ずしも実行されるとは限らないため、ゲームにおけるユーザの操作性が低いという問題がある。
本開示の一態様は、ゲームにおけるユーザの操作性を向上することを目的とする。
本開示に係るゲームプログラムは、プロセッサ、メモリ、およびタッチスクリーンを備えるコンピュータにより実行される。ゲームプログラムは、プロセッサに、タッチスクリーンにゲーム画面を表示するステップと、タッチスクリーンに対する第1接触点から第2接触点までの移動操作を検出するステップと、第1接触点を内部に含む多角形領域を、ゲーム画面に設定するステップと、多角形領域の辺を構成する複数の点のうちの、第2接触点に最も近い位置に配置される基準点を特定するステップと、ゲーム画面における基準点から第2接触点に向かう方向を算出するステップと、ゲーム画面における基準点と第2接触点との距離を算出するステップと、方向および距離の少なくともいずれか一方に応じたゲーム処理を実行するステップとを実行させる。
本開示の一態様によれば、ゲームにおけるユーザの操作性を向上することができる効果を奏する。
ゲームシステムのハードウェア構成を示す図である。 ユーザ端末の機能的構成を示すブロック図である。 操作受付部が入力操作の種類を検知する処理を説明する図である。 ユーザ端末が、ゲームプログラムに基づいて実行する処理の流れを示すフローチャートである。 ある実施の形態に係るゲーム画面を示す図である。 ある実施の形態に係るゲーム画面を示す図である。 ある実施の形態に係る矩形領域の詳細を示す図である。 ある実施の形態に係るゲーム画面を示す図である。 ある実施の形態に係るゲーム画面を示す図である。 ある実施の形態に係る矩形領域を示す図である。 ある実施の形態に係るゲーム画面を示す図である。 ある実施の形態に係るゲーム画面を示す図である。 ある実施の形態に係る矩形領域を示す図である。 ある実施の形態に係る矩形領域を示す図である。 ある実施の形態に係る正六角形領域および正三角形領域を示す図である。
〔実施形態1〕
本開示に係るゲームシステムは、複数のユーザにゲームを提供するためのシステムである。以下、ゲームシステムについて図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が本発明に含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を繰り返さない。
<ゲームシステム1のハードウェア構成>
図1は、ゲームシステム1のハードウェア構成を示す図である。ゲームシステム1は図示の通り、複数のユーザ端末100と、サーバ200とを含む。各ユーザ端末100は、サーバ200とネットワーク2を介して接続する。ネットワーク2は、インターネットおよび図示しない無線基地局によって構築される各種移動通信システム等で構成される。この移動通信システムとしては、例えば、所謂3G、4G移動通信システム、LTE(Long Term Evolution)、および所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク(例えばWi-Fi(登録商標))等が挙げられる。
サーバ200(コンピュータ、情報処理装置)は、ワークステーションまたはパーソナルコンピュータ等の汎用コンピュータであってよい。サーバ200は、プロセッサ20と、メモリ21と、ストレージ22と、通信IF23と、入出力IF24とを備える。サーバ200が備えるこれらの構成は、通信バスによって互いに電気的に接続される。
ユーザ端末100(コンピュータ、情報処理装置)は、スマートフォン、フィーチャーフォン、PDA(Personal Digital Assistant)、またはタブレット型コンピュータ等の携帯端末であってよい。ユーザ端末100は、ゲームプレイに適したゲーム装置であってもよい。ユーザ端末100は図示の通り、プロセッサ10と、メモリ11と、ストレージ12と、通信インターフェース(IF)13と、入出力IF14と、タッチスクリーン15(表示部)と、カメラ17と、測距センサ18とを備える。ユーザ端末100が備えるこれらの構成は、通信バスによって互いに電気的に接続される。なお、ユーザ端末100は、タッチスクリーン15に代えて、または、加えて、ユーザ端末100本体とは別に構成されたディスプレイ(表示部)を接続可能な入出力IF14を備えていてもよい。
また、図1に示すように、ユーザ端末100は、1つ以上のコントローラ1020と通信可能に構成されることとしてもよい。コントローラ1020は、例えば、Bluetooth(登録商標)等の通信規格に従って、ユーザ端末100と通信を確立する。コントローラ1020は、1つ以上のボタン等を有していてもよく、該ボタン等に対するユーザの入力操作に基づく出力値をユーザ端末100へ送信する。また、コントローラ1020は、加速度センサ、および、角速度センサ等の各種センサを有していてもよく、該各種センサの出力値をユーザ端末100へ送信する。
なお、ユーザ端末100がカメラ17および測距センサ18を備えることに代えて、または、加えて、コントローラ1020がカメラ17および測距センサ18を有していてもよい。
ユーザ端末100は、例えばゲーム開始時に、コントローラ1020を使用するユーザに、該ユーザの名前またはログインID等のユーザ識別情報を、該コントローラ1020を介して入力させることが望ましい。これにより、ユーザ端末100は、コントローラ1020とユーザとを紐付けることが可能となり、受信した出力値の送信元(コントローラ1020)に基づいて、該出力値がどのユーザのものであるかを特定することができる。
ユーザ端末100が複数のコントローラ1020と通信する場合、各コントローラ1020を各ユーザが把持することで、ネットワーク2を介してサーバ200などの他の装置と通信せずに、該1台のユーザ端末100でマルチプレイを実現することができる。また、各ユーザ端末100が無線LAN(Local Area Network)規格等の無線規格により互いに通信接続する(サーバ200を介さずに通信接続する)ことで、複数台のユーザ端末100によりローカルでマルチプレイを実現することもできる。1台のユーザ端末100によりローカルで上述のマルチプレイを実現する場合、ユーザ端末100は、さらに、サーバ200が備える後述する種々の機能の少なくとも一部を備えていてもよい。また、複数のユーザ端末100によりローカルで上述のマルチプレイを実現する場合、複数のユーザ端末100は、サーバ200が備える後述する種々の機能を分散して備えていてもよい。
なお、ローカルで上述のマルチプレイを実現する場合であっても、ユーザ端末100はサーバ200と通信を行ってもよい。例えば、あるゲームにおける成績または勝敗等のプレイ結果を示す情報と、ユーザ識別情報とを対応付けてサーバ200に送信してもよい。
また、コントローラ1020は、ユーザ端末100に着脱可能な構成であるとしてもよい。この場合、ユーザ端末100の筐体における少なくともいずれかの面に、コントローラ1020との結合部が設けられていてもよい。該結合部を介して有線によりユーザ端末100とコントローラ1020とが結合している場合は、ユーザ端末100とコントローラ1020とは、有線を介して信号を送受信する。
図1に示すように、ユーザ端末100は、外部のメモリカード等の記憶媒体1030の装着を、入出力IF14を介して受け付けてもよい。これにより、ユーザ端末100は、記憶媒体1030に記録されるプログラム及びデータを読み込むことができる。記憶媒体1030に記録されるプログラムは、例えばゲームプログラムである。
ユーザ端末100は、サーバ200等の外部の装置と通信することにより取得したゲームプログラムをユーザ端末100のメモリ11に記憶してもよいし、記憶媒体1030から読み込むことにより取得したゲームプログラムをメモリ11に記憶してもよい。
以上で説明したとおり、ユーザ端末100は、該ユーザ端末100に対して情報を入力する機構の一例として、通信IF13、入出力IF14、タッチスクリーン15、カメラ17、および、測距センサ18を備える。入力する機構としての上述の各部は、ユーザの入力操作を受け付けるように構成された操作部と捉えることができる。
例えば、操作部が、カメラ17および測距センサ18の少なくともいずれか一方で構成される場合、該操作部が、ユーザ端末100の近傍の物体1010を検出し、当該物体の検出結果から入力操作を特定する。一例として、物体1010としてのユーザの手、予め定められた形状のマーカーなどが検出され、検出結果として得られた物体1010の色、形状、動き、または、種類などに基づいて入力操作が特定される。より具体的には、ユーザ端末100は、カメラ17の撮影画像からユーザの手が検出された場合、該撮影画像に基づき検出されるジェスチャ(ユーザの手の一連の動き)を、ユーザの入力操作として特定し、受け付ける。なお、撮影画像は静止画であっても動画であってもよい。
あるいは、操作部がタッチスクリーン15で構成される場合、ユーザ端末100は、タッチスクリーン15の入力部151に対して実施されたユーザの操作をユーザの入力操作として特定し、受け付ける。あるいは、操作部が通信IF13で構成される場合、ユーザ端末100は、コントローラ1020から送信される信号(例えば、出力値)をユーザの入力操作として特定し、受け付ける。あるいは、操作部が入出力IF14で構成される場合、該入出力IF14と接続されるコントローラ1020とは異なる入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
<各装置のハードウェア構成要素>
プロセッサ10は、ユーザ端末100全体の動作を制御する。プロセッサ20は、サーバ200全体の動作を制御する。プロセッサ10および20は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、およびGPU(Graphics Processing Unit)を含む。
プロセッサ10は後述するストレージ12からプログラムを読み出し、後述するメモリ11に展開する。プロセッサ20は後述するストレージ22からプログラムを読み出し、後述するメモリ21に展開する。プロセッサ10およびプロセッサ20は展開したプログラムを実行する。
メモリ11および21は主記憶装置である。メモリ11および21は、ROM(Read Only Memory)およびRAM(Random Access Memory)等の記憶装置で構成される。メモリ11は、プロセッサ10が後述するストレージ12から読み出したプログラムおよび各種データを一時的に記憶することにより、プロセッサ10に作業領域を提供する。メモリ11は、プロセッサ10がプログラムに従って動作している間に生成した各種データも一時的に記憶する。メモリ21は、プロセッサ20が後述するストレージ22から読み出した各種プログラムおよびデータを一時的に記憶することにより、プロセッサ20に作業領域を提供する。メモリ21は、プロセッサ20がプログラムに従って動作している間に生成した各種データも一時的に記憶する。
本実施形態においてプログラムとは、ゲームをユーザ端末100により実現するためのゲームプログラムであってもよい。あるいは、該プログラムは、該ゲームをユーザ端末100とサーバ200との協働により実現するためのゲームプログラムであってもよい。なお、ユーザ端末100とサーバ200との協働により実現されるゲームは、一例として、ユーザ端末100において起動されたブラウザ上で実行されるゲームであってもよい。あるいは、該プログラムは、該ゲームを複数のユーザ端末100の協働により実現するためのゲームプログラムであってもよい。また、各種データとは、ユーザ情報およびゲーム情報などのゲームに関するデータ、ならびに、ユーザ端末100とサーバ200との間または複数のユーザ端末100間で送受信する指示または通知を含んでいる。
ストレージ12および22は補助記憶装置である。ストレージ12および22は、フラッシュメモリまたはHDD(Hard Disk Drive)等の記憶装置で構成される。ストレージ12およびストレージ22には、ゲームに関する各種データが格納される。
通信IF13は、ユーザ端末100における各種データの送受信を制御する。通信IF23は、サーバ200における各種データの送受信を制御する。通信IF13および23は例えば、無線LAN(Local Area Network)を介する通信、有線LAN、無線LAN、または携帯電話回線網を介したインターネット通信、ならびに近距離無線通信等を用いた通信を制御する。
入出力IF14は、ユーザ端末100がデータの入力を受け付けるためのインターフェースであり、またユーザ端末100がデータを出力するためのインターフェースである。入出力IF14は、USB(Universal Serial Bus)等を介してデータの入出力を行ってもよい。入出力IF14は、例えば、ユーザ端末100の物理ボタン、カメラ、マイク、または、スピーカ等を含み得る。サーバ200の入出力IF24は、サーバ200がデータの入力を受け付けるためのインターフェースであり、またサーバ200がデータを出力するためのインターフェースである。入出力IF24は、例えば、マウスまたはキーボード等の情報入力機器である入力部と、画像を表示出力する機器である表示部とを含み得る。
ユーザ端末100のタッチスクリーン15は、入力部151と表示部152とを組み合わせた電子部品である。入力部151は、例えばタッチセンシティブなデバイスであり、例えばタッチパッドによって構成される。表示部152は、例えば液晶ディスプレイ、または有機EL(Electro-Luminescence)ディスプレイ等によって構成される。
入力部151は、入力面に対しユーザの操作(主にタッチ操作、スライド操作、スワイプ操作、およびタップ操作等の物理的接触操作)が入力された位置を検知して、位置を示す情報を入力信号として送信する機能を備える。入力部151は、図示しないタッチセンシング部を備えていればよい。タッチセンシング部は、静電容量方式または抵抗膜方式等のどのような方式を採用したものであってもよい。
図示していないが、ユーザ端末100は、該ユーザ端末100の保持姿勢を特定するための1以上のセンサを備えていてもよい。このセンサは、例えば、加速度センサ、または、角速度センサ等であってもよい。ユーザ端末100がセンサを備えている場合、プロセッサ10は、センサの出力からユーザ端末100の保持姿勢を特定して、保持姿勢に応じた処理を行うことも可能になる。例えば、プロセッサ10は、ユーザ端末100が縦向きに保持されているときには、縦長の画像を表示部152に表示させる縦画面表示としてもよい。一方、ユーザ端末100が横向きに保持されているときには、横長の画像を表示部に表示させる横画面表示としてもよい。このように、プロセッサ10は、ユーザ端末100の保持姿勢に応じて縦画面表示と横画面表示とを切り替え可能であってもよい。
カメラ17は、イメージセンサ等を含み、レンズから入射する入射光を電気信号に変換することで撮影画像を生成する。
測距センサ18は、測定対象物までの距離を測定するセンサである。測距センサ18は、例えば、パルス変換した光を発する光源と、光を受ける受光素子とを含む。測距センサ18は、光源からの発光タイミングと、該光源から発せられた光が測定対象物にあたって反射されて生じる反射光の受光タイミングとにより、測定対象物までの距離を測定する。測距センサ18は、指向性を有する光を発する光源を有することとしてもよい。
ここで、ユーザ端末100が、カメラ17と測距センサ18とを用いて、ユーザ端末100の近傍の物体1010を検出した検出結果を、ユーザの入力操作として受け付ける例をさらに説明する。カメラ17および測距センサ18は、例えば、ユーザ端末100の筐体の側面に設けられてもよい。カメラ17の近傍に測距センサ18が設けられてもよい。カメラ17としては、例えば赤外線カメラを用いることができる。この場合、赤外線を照射する照明装置および可視光を遮断するフィルタ等が、カメラ17に設けられてもよい。これにより、屋外か屋内かにかかわらず、カメラ17の撮影画像に基づく物体の検出精度をいっそう向上させることができる。
プロセッサ10は、カメラ17の撮影画像に対して、例えば以下の(1)〜(5)に示す処理のうち1つ以上の処理を行ってもよい。(1)プロセッサ10は、カメラ17の撮影画像に対し画像認識処理を行うことで、該撮影画像にユーザの手が含まれているか否かを特定する。プロセッサ10は、上述の画像認識処理において採用する解析技術として、例えばパターンマッチング等の技術を用いてよい。(2)また、プロセッサ10は、ユーザの手の形状から、ユーザのジェスチャを検出する。プロセッサ10は、例えば、撮影画像から検出されるユーザの手の形状から、ユーザの指の本数(伸びている指の本数)を特定する。プロセッサ10はさらに、特定した指の本数から、ユーザが行ったジェスチャを特定する。例えば、プロセッサ10は、指の本数が5本である場合、ユーザが「パー」のジェスチャを行ったと判定する。また、プロセッサ10は、指の本数が0本である(指が検出されなかった)場合、ユーザが「グー」のジェスチャを行ったと判定する。また、プロセッサ10は、指の本数が2本である場合、ユーザが「チョキ」のジェスチャを行ったと判定する。(3)プロセッサ10は、カメラ17の撮影画像に対し、画像認識処理を行うことにより、ユーザの指が人差し指のみ立てた状態であるか、ユーザの指がはじくような動きをしたかを検出する。(4)プロセッサ10は、カメラ17の撮影画像の画像認識結果、および、測距センサ18の出力値等の少なくともいずれか1つに基づいて、ユーザ端末100の近傍の物体1010(ユーザの手など)とユーザ端末100との距離を検出する。例えば、プロセッサ10は、カメラ17の撮影画像から特定されるユーザの手の形状の大小により、ユーザの手がユーザ端末100の近傍(例えば所定値未満の距離)にあるのか、遠く(例えば所定値以上の距離)にあるのかを検出する。なお、撮影画像が動画の場合、プロセッサ10は、ユーザの手がユーザ端末100に接近しているのか遠ざかっているのかを検出してもよい。(5)カメラ17の撮影画像の画像認識結果等に基づいて、ユーザの手が検出されている状態で、ユーザ端末100とユーザの手との距離が変化していることが判明した場合、プロセッサ10は、ユーザが手をカメラ17の撮影方向において振っていると認識する。カメラ17の撮影範囲よりも指向性が強い測距センサ18において、物体が検出されたりされなかったりする場合に、プロセッサ10は、ユーザが手をカメラの撮影方向に直交する方向に振っていると認識する。
このように、プロセッサ10は、カメラ17の撮影画像に対する画像認識により、ユーザが手を握りこんでいるか否か(「グー」のジェスチャであるか、それ以外のジェスチャ(例えば「パー」)であるか)を検出する。また、プロセッサ10は、ユーザの手の形状とともに、ユーザがこの手をどのように移動させているかを検出する。また、プロセッサ10は、ユーザがこの手をユーザ端末100に対して接近させているのか遠ざけているのかを検出する。このような操作は、例えば、マウスまたはタッチパネルなどのポインティングデバイスを用いた操作に対応させることができる。ユーザ端末100は、例えば、ユーザの手の移動に応じて、タッチスクリーン15においてポインタを移動させ、ユーザのジェスチャ「グー」を検出する。この場合、ユーザ端末100は、ユーザが選択操作を継続中であると認識する。選択操作の継続とは、例えば、マウスがクリックされて押し込まれた状態が維持されること、または、タッチパネルに対してタッチダウン操作がなされた後タッチされた状態が維持されることに対応する。また、ユーザ端末100は、ユーザのジェスチャ「グー」が検出されている状態で、さらにユーザが手を移動させると、このような一連のジェスチャを、スワイプ操作(またはドラッグ操作)に対応する操作として認識することもできる。また、ユーザ端末100は、カメラ17の撮影画像によるユーザの手の検出結果に基づいて、ユーザが指をはじくようなジェスチャを検出した場合に、当該ジェスチャを、マウスのクリックまたはタッチパネルへのタップ操作に対応する操作として認識してもよい。
<ゲームシステム1の機能的構成>
図2は、ゲームシステム1に含まれるサーバ200およびユーザ端末100の機能的構成を示すブロック図である。サーバ200およびユーザ端末100のそれぞれは、図示しない、一般的なコンピュータとして機能する場合に必要な機能的構成、および、ゲームにおける公知の機能を実現するために必要な機能的構成を含み得る。
ユーザ端末100は、ユーザの入力操作を受け付ける入力装置としての機能と、ゲームの画像や音声を出力する出力装置としての機能を有する。ユーザ端末100は、プロセッサ10、メモリ11、ストレージ12、通信IF13、および入出力IF14等の協働によって、制御部110および記憶部120として機能する。
サーバ200は、各ユーザ端末100と通信して、ユーザ端末100がゲームを進行させるのを支援する機能を有する。例えば、有価データの販売、サービスの提供などを実行する。ゲームがマルチプレイゲームである場合には、サーバ200は、ゲームに参加する各ユーザ端末100と通信して、ユーザ端末100同士のやりとりを仲介する機能を有していてもよい。サーバ200は、プロセッサ20、メモリ21、ストレージ22、通信IF23、および入出力IF24等の協働によって、制御部210および記憶部220として機能する。
記憶部120および記憶部220は、ゲームプログラム131、ゲーム情報132およびユーザ情報133を格納する。ゲームプログラム131は、ユーザ端末100およびサーバ200で実行するゲームプログラムである。ゲーム情報132は、制御部110および制御部210がゲームプログラム131を実行する際に参照するデータである。ユーザ情報133は、ユーザのアカウントに関するデータである。記憶部220において、ゲーム情報132およびユーザ情報133は、ユーザ端末100ごとに格納されている。
(ユーザ端末100の機能的構成)
制御部110は、記憶部120に格納されたゲームプログラム131を実行することにより、ユーザ端末100を統括的に制御する。例えば、制御部110は、ゲームプログラム131およびユーザの操作にしたがって、ゲームを進行させる。また、制御部110は、ゲームを進行させている間、必要に応じて、サーバ200と通信して、情報の送受信を行う。
制御部110は、ゲームプログラム131の記述に応じて、操作受付部111、領域設定部112、基準点特定部113、方向算出部114、距離算出部115、ゲーム実行部116、および表示制御部117として機能する。制御部110は、実行するゲームの性質に応じて、ゲームを進行させるために、図示しないその他の機能ブロックとしても機能することができる。
操作受付部111は、タッチスクリーン15(入力部151)の出力に基づいて、ユーザの入力操作を受け付ける。具体的には、操作受付部111は、ユーザの指などがタッチスクリーン15に接近したことを、タッチスクリーン15を構成する面の横軸及び縦軸からなる座標系の座標として検出する。例えば、操作受付部111は、入力部151に対する入力操作を受け付け、該入力操作の入力位置の座標を検出し、該入力操作の種類を特定する。操作受付部111は、入力操作の種類として、例えばタッチ操作、スライド操作、スワイプ操作、およびタップ操作等を特定する。また、操作受付部111は、連続して検知されていた入力が途切れると、タッチスクリーン15から接触入力が解除されたことを検知する。
操作受付部111は、タッチスクリーン15に対するユーザの操作を判別する。操作受付部111は、例えば、(1)「接近操作」、(2)「リリース操作」、(3)「タップ操作」、(4)「ダブルタップ操作」、(5)「長押し操作(ロングタッチ操作)」、(6)「ドラッグ操作(スワイプ操作)」、(7)「ムーブ操作」、(8)「フリック操作」、その他のユーザの操作を判別する。操作受付部111が判別するユーザの操作は、上記に限られない。例えば、タッチスクリーン15が、ユーザがタッチスクリーン15に対して押下する圧力の大きさを検出可能な機構を有する場合、操作受付部111は、ユーザにより押下された圧力の大きさを判別する。
(1)「接近操作」とは、ユーザが指などをタッチスクリーン15に接近させる操作である。タッチスクリーン15は、ユーザの指などが接近したこと(ユーザの指などがタッチスクリーン15に接触したことを含む)をタッチスクリーン15により検出し、検出したタッチスクリーン15の座標に応じた信号を制御部110へ出力する。制御部110は、タッチスクリーン15へのユーザの指などの接近を検出しない状態から、接近を検出したときに、状態が「タッチオン状態」になったと判別する。
(2)「リリース操作」とは、ユーザがタッチスクリーン15を接近操作している状態を止める操作である。操作受付部111は、例えば、ユーザが指などをタッチスクリーン15に接触させている状態から、指を離す操作をしたときに、ユーザの操作を「リリース操作」と判別する。制御部110は、タッチスクリーン15へのユーザの指などの接近を検出している状態から、接近を検出しない状態になったときに、状態が「タッチオン状態」から「タッチオフ状態」になったと判別する。
(3)「タップ操作」とは、ユーザがタッチスクリーン15に対して指などを接近させる接近操作をした後に、接近操作をした位置でリリース操作を行うことである。操作受付部111は、接近操作が検出されない状態(ユーザの指などがタッチスクリーン15から離れており、タッチスクリーン15がユーザの指などの接近を検出していない状態)から、タッチスクリーン15の出力に基づいて、ユーザの指などが接近したことを検出した場合に、その検出した座標を「初期タッチ位置」として保持する。操作受付部111は、初期タッチ位置の座標と、リリース操作をした座標とがほぼ同一である場合(接近操作が検出された座標から一定範囲内の座標においてリリース操作の座標が検出された場合)に、ユーザの操作を「タップ操作」と判別する。
(4)「ダブルタップ操作」とは、ユーザがタップ操作を一定時間内に2回行う操作である。操作受付部111は、例えば、ユーザの操作をタップ操作と判別してから一定時間内に、タップ操作にかかる座標で再びタップ操作を判別した場合に、ユーザの操作を「ダブルタップ操作」と判別する。
(5)「長押し操作」とは、ユーザがタッチスクリーン15を押し続ける操作である。タッチスクリーン15は、ユーザの操作を検出して接近操作を判別してから、接近操作が検出された座標において接近操作が継続している時間が一定時間を超えた場合に、ユーザの操作を「長押し操作」(「長押し操作」を、「ロングタッチ操作」と称することもある)と判別する。
(6)「ドラッグ操作」とは、ユーザがタッチスクリーン15に指などを接近させた接近状態を維持したまま、指をスライドさせる操作である。
(7)「ムーブ操作」とは、ユーザがタッチスクリーン15において、接近操作を維持しつつ、タッチスクリーン15に指などを接近させている位置を移動させてリリース操作を行う一連の操作をいう。
(8)「フリック操作」は、ユーザがムーブ操作を予め定められた時間よりも短い時間で行う操作をいう。フリック操作は、ユーザがタッチスクリーン15で指を弾くような操作である。
図3は、操作受付部111が入力操作の種類を検知する処理を説明する図である。図3の例では、ユーザ情報133を記憶する記憶部120の配列fp[0]〜配列fp[10]までの11個の配列のそれぞれに、タッチスクリーン15により検知されたタッチスクリーン15上の位置を示す履歴情報が格納されている。履歴情報は、所定の期間毎(例えば、フレームレート毎)に履歴情報テーブルに格納される。履歴情報が格納される配列の個数は限定されず、任意の個数であってよい。また、履歴情報テーブルでは、タッチオフからタッチオンになった場合に検知された履歴情報を、初期位置座標として記憶部120に記憶してもよい。
図3に示されるように、例えば、配列fp[0]〜配列fp[9]に、履歴情報(x0、y0)が格納されており、配列fp[10]にnull値が格納された場合、操作受付部111は、入力操作はタップ操作であると判別する。また、例えば、タッチナウ状態において履歴情報が変化した後に、null値が格納された場合、操作受付部111はnull値が格納された配列fp[5]の直前の配列fp[3]および配列fp[4]に格納されている履歴情報を参照する。そして、操作受付部111は、配列fp[3]および配列fp[4]の履歴情報がそれぞれ示す位置の間の距離が予め設定された閾値以上である場合、入力操作はフリック操作であると判別する。また、操作受付部111は、タッチナウ状態において履歴情報が変化した後に、例えば配列fp[4]〜fp[10]に履歴情報(x15、y15)が格納された場合、入力操作はスライド操作(移動操作)であると判別する。
領域設定部112は、タッチスクリーン15に対するユーザの第1接触点を内部に含む矩形領域を、表示部152に表示されるゲーム画面に設定する。矩形領域は、互いに平行な一対の縦辺および一対の横辺を有する矩形の多角形領域である。矩形領域の詳細は後述する。
基準点特定部113は、矩形領域の辺を構成する複数の点のうちの、第2接触点に最も近い位置に配置される基準点を特定する。基準点特定部113は、矩形領域を構成する複数の辺のうちの第1辺を特定することもできる。この場合、基準点特定部113は、さらに、特定した第1辺を構成する複数の点のうちの、ゲーム画面においてユーザの第2接触点に最も近い位置に配置される基準点を特定する。
方向算出部114は、基準点から第2接触点に向かう方向を算出する。
距離算出部115は、基準点と第2接触点との距離を算出する。
ゲーム実行部116は、ユーザの操作に応じて、各種のプログラムを呼び出すなどによりゲームを進行させる処理を行う。例えば、ゲーム実行部116は、サーバ200と通信し、ゲームの進行に応じてサーバ200にデータを送信する処理、サーバ200からゲームに関連するデータを受信する処理、ゲームの進行に応じてユーザに報酬を付与する処理、時間の経過を計測する処理、その他の処理を行う。
表示制御部117は、タッチスクリーン15の表示部152に対して、上述の各要素によって実行された処理結果が反映されたゲーム画面を出力する。表示制御部117は、各種オブジェクトのモーションを示すアニメーションを含むゲーム画面を、表示部152に表示してもよい。また、表示制御部117は、UI(User Interface)オブジェクトを、ゲーム画面に重畳して描画してもよい。
図2に示すユーザ端末100の機能は、一例にすぎない。サーバ200は、ユーザ端末100が備える機能の少なくとも一部を備えていてもよい。また、ユーザ端末100は、サーバ200が備える機能の少なくとも一部を備えていてもよい。さらに、ユーザ端末100およびサーバ200以外の他の装置をゲームシステム1の構成要素とし、該他の装置にゲームシステム1における処理の一部を実行させてもよい。すなわち、本実施形態においてゲームプログラムを実行するコンピュータは、ユーザ端末100、サーバ200、および他の装置の何れであってもよいし、これらの複数の装置の組み合わせにより実現されてもよい。
<処理フロー>
図4は、ユーザ端末100が、ゲームプログラム131に基づいて実行する処理の流れを示すフローチャートである。図5は、ある実施の形態に係るゲーム画面30Aを示す図である。
ステップS1において、表示制御部117は、例えば図5に示すゲーム画面30Aを表示部152に表示する。ゲーム画面30Aは、ゲームプログラム131に基づくゲームに登場する一場面を表す。ゲーム画面30Aの中央に、キャラクタ31が配置される。キャラクタ31は、ゲームオブジェクトの一種であり、タッチスクリーン15に対するユーザの操作に応じて、ゲーム画面30A内を移動することができる。ゲーム画面30Aには、ゲームに関する背景画像も含まれる。
図6は、ある実施の形態に係るゲーム画面30Aを示す図である。ユーザは、ゲーム中にキャラクタ31を移動させるために、タッチスクリーン15に対して、移動操作を入力する。移動操作は、例えば、タッチスクリーン15に対するスライド操作である。ユーザは、キャラクタ31をゲーム画面30Aの右側に真っ直ぐに移動させることを目的として、ゲーム画面30Aの右側に真っ直ぐに向かうスライド操作を入力するように、タッチスクリーン15において指を滑らせる。しかし、ユーザの意図とは異なり、横方向に真っ直ぐではなく、実際にはわずかに斜め上側にずれながらゲーム画面30Aの右側に向かうスライド操作が、タッチスクリーン15に対して入力される。ステップS2において、操作受付部111は、ゲーム画面30Aにおける第1接触点41から第2接触点42までのユーザのスライド操作を検出する。図6において、ユーザのスライド操作の方向43は、ゲーム画面30Aの斜め上側にわずかにずれながら、ゲーム画面30Aの右側に向かっている。
ステップS3において、領域設定部112は、第1接触点41を中心に含む矩形領域50を、ゲーム画面30Aに設定する。領域設定部112は、タッチスクリーン15の画面サイズ(言い換えれば、ゲーム画面30Aのサイズ)に応じた大きさの矩形領域50を、設定することができる。領域設定部112は、ゲームの実行中における如何なる時点で設定された場合にも常に同一の大きさである矩形領域50を、設定することができる。領域設定部112は、あるいは、スライド操作が受け付けられた時点でのゲームの進行状況に応じて異なる大きさの矩形領域50を、設定することもできる。領域設定部112は、さらに、ユーザの指の大きさに応じた大きさの矩形領域50を設定することもできる。
図6では、矩形領域50が含まれるゲーム画面30Aに図示している。これは説明の便宜のためであり、ゲーム画面30Aに矩形領域50が必ず表示されることを意図するものではない。言い換えれば、ゲーム画面30Aに矩形領域50を設定することは、ゲーム画面30Aに矩形領域50を表示することと必ずしも同義ではない。表示制御部117は、ゲーム画面30Aに矩形領域50を表示してもよいし、しなくてもよい。言い換えれば、表示制御部117は、ゲーム画面30Aに表示されない矩形領域50をゲーム画面30Aに設定することができる。表示制御部117がゲーム画面30Aに矩形領域50を表示しない場合、矩形領域50がユーザに視認されないので、ユーザをゲームにより集中させることができる。
図7は、ある実施の形態に係る矩形領域50の詳細を示す図である。図7では、矩形領域50は、上辺51(横辺)、下辺52(横辺)、右辺53(縦辺)、および左辺54(縦辺)を含む4つの辺を有する。上辺51および下辺52は、互いに平行であり、かつ、ゲーム画面30Aの横方向にも平行である。右辺53および左辺54は、互いに平行であり、かつ、ゲーム画面30Aの縦方向にも平行である。図7では、矩形領域50の内部の中心に、第1接触点41が位置する。第2接触点42は、矩形領域50の外部に位置する。図7では、第2接触点42のy座標は、上辺51のy座標よりも小さく、かつ、下辺52のy座標よりも大きい。言い換えれば、第2接触点42は、ゲーム画面30Aにおいて、上辺51を延伸した第1線と、下辺52を延伸した第2線との間に位置する。
ステップS4において、基準点特定部113は、矩形領域50を構成する複数の辺51〜54のうち、ゲーム画面30Aにおいて第1接触点41と第2接触点42との間に位置する右辺53(第1辺)を特定する。基準点特定部113は、例えば、右辺53を構成するすべての点のx座標が、第1接触点41のx座標よりも大きいことに基づいて、第1接触点41と第2接触点42との間に位置する右辺53を特定する。ステップS5において、基準点特定部113は、特定した右辺53を構成する複数の点のうちの、ゲーム画面30Aにおいて第2接触点42に最も近い位置に配置される基準点44を、特定する。第2接触点42のy座標が、上辺51のy座標よりも小さくかつ下辺52のy座標よりも大きいことから、図7において特定される基準点44は、第2接触点42のy座標と同一のy座標を有し、かつ、右辺53のx座標と同一のx座標を有する。
ステップS6において、方向算出部114は、ゲーム画面30Aにおいて基準点44から第2接触点42に向かう方向45を算出する。方向算出部114は、基準点44のy座標と第2接触点42のy座標とが同一であることから、ゲーム画面30Aの横方向と平行でありかつゲーム画面30Aの右端に向かう方向を、方向45として算出する。
ステップS7において、距離算出部115は、基準点44と第2接触点42との距離46を算出する。ステップS8において、ゲーム実行部116は、算出された方向45および距離46の少なくともいずれかに応じたゲーム処理を実行する。ゲーム実行部116は、例えば、ゲーム画面30Aにおいて方向45と平行であり、かつキャラクタ31を起点とする方向62に沿って、キャラクタ31を移動させるゲーム処理を、実行する。
図8は、ある実施の形態に係るゲーム画面30Bを示す図である。表示制御部117は、距離46に応じたゲーム処理が実行された結果、図8に示すゲーム画面30Bを生成し、表示部152に表示する。ゲーム画面30Bでは、キャラクタ31は、方向62に沿って、言い換えれば、ゲーム画面30Aの右側に向かって、ゲーム画面30Aの横方向に沿って真っ直ぐに歩いている。
図8の例では、表示制御部117は、基準点44を中心とする弾性体61をゲーム画面30Bに表示する。表示制御部117は、ゲーム画面30Aにおいて基準点44から第2接触点42に向かって、弾性体61の一部を伸ばすように、弾性体61を弾性変形させる。ゲーム画面30Bにおいて弾性体61が伸びる方向は、キャラクタ31が移動する方向62と同一である。ユーザは、弾性変形された弾性体61を視認することによって、ゲーム画面30Aにおけるキャラクタ31の移動方向をより正確に認識することができる。
表示制御部117は、基準点44ではなく第1接触点41を中心に含む弾性体61をゲーム画面30Bに表示することもできる。この場合、表示制御部117は、ゲーム画面30Bにおいて第1接触点41から第2接触点42に向かって、弾性体61の一部を伸ばすように、弾性体61を弾性変形させる。ゲーム画面30Bにおいて弾性体61が伸びる方向は、スライド操作の方向43と同一である。弾性体61の伸びる方向と、キャラクタ31が移動する方向62とは、完全には一致しないが、両者のずれはそれほど大きくないので、ユーザに大きな違和感を与えることはない。言い換えれば、ユーザは、わずかにゲーム画面30Bの上側にずれるようにゲーム画面30Bの右側に向かって伸びる弾性体61を視認することによって、キャラクタ31がゲーム画面30Bの右側に向かって真っ直ぐに移動することを、十分に理解することができる。
表示制御部117は、第1接触点41のx座標と同一のx座標と、第1接触点41のy座標と基準点44のy座標との間に位置するいずれかのy座標とを有する基点を選択し、この基点を中心に含む弾性体61をゲーム画面30Bに表示することもできる。基点のy座標が基準点44のy座標に近ければ近いほど、弾性体61が伸びる方向と、キャラクタ31が移動する方向62とのずれを、より少なくすることができる。基点のy座標が基準点44のy座標に一致すれば、弾性体61が伸びる方向と、キャラクタ31が移動する方向62と完全に一致させる(平行にする)ことができる。
図6〜図8に示すように、方向算出部114は、ユーザのスライド操作の方向が、ゲーム画面30Aにおける完全な横方向ではなくある程度斜めにずれた方向であったとしても、ゲーム画面30Aの横方向に平行な方向45を算出することができる。これにより、ユーザのスライド操作が上下にある程度ずれたとしても、キャラクタ31の移動方向を常に横方向にすることができる。図6に示すように、ユーザがタッチスクリーン15に入力したスライド操作の方向43は、ユーザの意図と異なり、ゲーム画面30Aの横方向からずれた斜め方向になっている。しかし、図8に示すように、スライド操作の方向43が斜め方向であるにも関わらず、キャラクタ31はゲーム画面30Bの斜め方向に移動しない。言い換えれば、キャラクタ31は、ユーザの意図した通りに、ゲーム画面30Bの横方向に真っ直ぐに移動している。したがって、ユーザは、キャラクタ31を横方向に移動させるために、完全な横方向のスライド操作を必ず入力すること求められずに済み、ある程度の指の動きのずれを許容してもらえる。このように、ゲームプログラム131は、ゲームにおけるユーザによるキャラクタ31の操作性を高めることができる。
図9は、ある実施の形態に係るゲーム画面30Cを示す図である。図9の例では、ユーザは、キャラクタ31をゲーム画面30Cの右斜め下に向かって移動させるために、意図的に、ゲーム画面30Cの右斜め下に向かうスライド操作をタッチスクリーン15に対して入力する。したがって、第2接触点42は、第1接触点41よりもゲーム画面30Cの下側に向かって十分に遠く離れた場所に位置する。図9において設定される矩形領域50の大きさは、図6と同一である。第2接触点42は、矩形領域50の右斜め下の外部に位置する。
図10は、ある実施の形態に係る矩形領域50を示す図である。基準点特定部113は、矩形領域50を構成する複数の辺51〜54のうち、ゲーム画面30Cにおいて第1接触点41と第2接触点42との間に位置する右辺53(第1辺)を特定する。基準点特定部113は、特定した右辺53に含まれ、かつ、ゲーム画面30Cにおいて第2接触点42に最も近い位置に配置される基準点44を特定する。図10では、第2接触点42のy座標が、右辺53の下端に位置する点のy座標よりも小さいことから、図10において特定される基準点44は、右辺53の下端に位置する点である。
方向算出部114は、ゲーム画面30Cにおいて基準点44から第2接触点42に向かう方向45を算出する。方向算出部114は、図10において第2接触点42のy座標が基準点44のy座標よりも小さいことから、ゲーム画面30Cの右斜め下方向に平行な方向を、方向45として算出する。距離算出部115は、基準点44と第2接触点42との距離46を算出する。ゲーム実行部116は、算出された方向45および距離46の少なくともいずれかに応じたゲーム処理を実行する。ゲーム実行部116は、例えば、ゲーム画面30Aにおいて方向45と平行であり、かつキャラクタ31を起点とする方向63に沿って、キャラクタ31を移動させるゲーム処理を、実行する。
図11は、ある実施の形態に係るゲーム画面30Dを示す図である。表示制御部117は、図10に示す方向45に応じたゲーム処理が実行された結果、図12に示すゲーム画面30Dを生成し、表示部152に表示する。ゲーム画面30Dでは、キャラクタ31は、方向63に沿って、ゲーム画面30Dの右斜め下に向かって真っ直ぐに歩いている。
図11の例では、表示制御部117は、基準点44を中心とする弾性体61をゲーム画面30Dに表示する。表示制御部117は、ゲーム画面30Dにおいて基準点44から第2接触点42に向かって、弾性体61の一部を伸ばすように、弾性体61を弾性変形させる。ゲーム画面30Dにおいて弾性体61が伸びる方向は、キャラクタ31が移動する方向63と平行である。ユーザは、弾性変形された弾性体61を視認することによって、ゲーム画面30Dにおけるキャラクタ31の移動方向をより正確に認識することができる。
図9〜図11に示すように、方向算出部114は、ユーザのスライド操作の方向が、ゲーム画面30Cにおいて矩形領域50よりも下側に第2接触点42が位置するほど十分に斜めに傾いている場合、ゲーム画面30Cの右斜め下方向に平行な方向45を算出することができる。これにより、ゲーム実行部116は、ユーザが意図的に斜め方向のスライド操作を入力した場合、ユーザの意図通りにキャラクタ31をゲーム画面30Dにおける斜め移動方向に移動させることができる。このように、ゲームプログラム131によれば、キャラクタ31の移動方向がゲーム画面30Dにおける横方向に限定されることがないので、キャラクタ31の操作性の自由度を損ねずに済む。
ゲーム実行部116は、基準点44と第2接触点42との距離46に応じたゲーム処理を実行することもできる。ゲーム実行部116は、例えば、算出された距離46が第1閾値を超えるか否かを判定する。ゲーム実行部116は、距離46が第1閾値を超える場合、第1ゲーム処理を実行し、距離46が第1閾値を超えない場合、第1ゲーム処理とは異なる第2ゲーム処理を実行する。第1ゲーム処理は、例えばキャラクタ31を第1速度で移動させることであり、より詳細には、例えばキャラクタ31を走らせることである。第2ゲーム処理は、例えばキャラクタ31を第1速度よりも遅い第2速度で移動させることであり、より詳細には、例えばキャラクタ31を歩かせることである。
図8の例では、算出された距離46は第1閾値を超えない。ゲーム実行部116は、算出された距離46が第1距離を超えないことに応じて、キャラクタ31を歩かせる第2ゲーム処理を実行する。表示制御部117は、第2ゲーム処理が実行されたことに応じて、キャラクタ31が歩く様子を描いたゲーム画面30Bを生成し、表示部152に表示する。
図12は、ある実施の形態に係るゲーム画面30Eを示す図である。ユーザは、ゲーム画面30Eの表示時に、図6の場合に比べてよりより長い距離のスライド操作をタッチスクリーン15に入力する。スライド操作の方向は、図6の場合とほぼ同様に、基本的にはゲーム画面30Eの右側に向かっているが、ゲーム画面30Eの上側に向かうようにわずかに斜めにずれている。図12の例では、矩形領域50に基づいて算出された方向45は、図8と同様に、ゲーム画面30Eの右側に真っ直ぐに向かう。矩形領域50に基づいて算出された距離46は、図8と異なり、第1閾値を超える。ゲーム実行部116は、算出された距離46が第1距離を超えることに応じて、キャラクタ31を走らせる第1ゲーム処理を実行する。表示制御部117は、第1ゲーム処理が実行されたことに応じて、キャラクタ31が走る様子を描いたゲーム画面30Eを生成し、表示部152に表示する。表示制御部117は、さらに、図8の場合に比べてより長く伸びた弾性体61を、ゲーム画面30Eに表示する。図12に示すように、ユーザは、十分に長い距離のスライド操作をタッチスクリーン15に入力することによって、キャラクタ31をゲーム画面30Eの横方向に真っ直ぐに走らせることができる。
図8および図12に示すように、ユーザは、スライド操作の距離を適宜異ならせることによって、ゲーム画面30Bにおいてキャラクタ31を歩かせたり、ゲーム画面30Eにおいてキャラクタ31を走らせたりすることができる。このように、ゲームプログラム131は、ユーザによるキャラクタ31の操作性を高めることができる。
距離算出部115は、第1接触点41と基準点44との距離をさらに算出することができる。この場合、ゲーム実行部116は、第1接触点41と第2接触点42との距離と、基準点44と第2接触点42との距離との合計に応じたゲーム処理を、実行する。その場合、ユーザがタッチスクリーン15において動かした指の移動距離により近い算出距離に応じたゲーム処理が、実行される。したがって、スライド操作の結果として行われたゲーム処理に対してユーザの違和感を覚える可能性を、より低減することができる。
図13は、ある実施の形態に係る矩形領域50を示す図である。図13の例では、タッチスクリーン15における第1接触点41および第2接触点42の位置は、図7の場合と同一である。さらに、ゲーム画面30Aにおいて矩形領域50が設定される位置も、矩形領域50の大きさも、図7の例と同一である。図13の例では、基準点特定部113は、図7の例とは異なり、矩形領域50を構成する4つの辺のうち、ゲーム画面30Aにおいて第1接触点41を挟んで第2接触点42の反対側に位置する左辺54を特定する。基準点特定部113は、例えば、左辺54を構成するすべての点のx座標が、第1接触点41のx座標よりも小さいことに基づいて、第1接触点41を挟んで第2接触点42と反対側に位置する辺として、左辺54を特定する。基準点特定部113は、さらに、特定した左辺54を構成する複数の点のうちの、ゲーム画面30Aにおいて第2接触点42に最も近い位置に配置される基準点47を特定する。第2接触点42のy座標が、上辺51のy座標よりも小さくかつ下辺52のy座標よりも大きいことから、図13において特定される基準点47は、第2接触点42のy座標と同一のy座標を有し、かつ、左辺54のx座標と同一のx座標を有する。
方向算出部114は、ゲーム画面30Aにおいて基準点44から第2接触点42に向かう方向48を算出する。方向算出部114は、基準点47のy座標と第2接触点42のy座標とが同一であることから、ゲーム画面30Aの横方向と平行でありかつゲーム画面30Aの右側に向かう方向を、方向48として算出する。距離算出部115は、基準点47と第2接触点42との距離49を算出する。ゲーム実行部116は、算出された方向48および距離49の少なくともいずれかに応じたゲーム処理を実行する。
図13に示す方向48は、図7に示す基準点47から第2接触点42に向かう方向45と、同一である。したがって、ゲーム実行部116が方向48に応じて実行するゲーム処理は、ゲーム実行部116が方向44に応じて実行するゲーム処理と、結果的に同一になる。言い換えれば、ゲーム実行部116は、方向48が算出された場合、ゲーム画面30Aにおいて方向48と平行であり、かつキャラクタ31を起点とする方向62に沿って、キャラクタ31を移動させるゲーム処理を実行する。
図7および図13によれば、右辺53および左辺54のいずれが特定される場合であっても、ユーザが意図した入力方向に一致する方向45または方向48が特定される。したがって、ユーザが意図した方向にキャラクタ31が移動するゲーム処理を実行できることに代わりはない。言い換えれば、右辺53が特定される場合と同様の効果を、左辺54が特定される場合にも奏することができる。
図14は、ある実施の形態に係る矩形領域50を示す図である。上述した矩形領域50の設定、基準点の特定、ならびに方向および距離の算出は、図14の各例に示すように、タッチスクリーン15に対するユーザの任意の方向のスライド操作が受け付けられた場合に、等しく実行される。
図14(A)では、ユーザは、ゲーム画面30Aの左側に向かって、ゲーム画面30Aの左斜め下方向に僅かにずれるスライド操作を入力する。第2接触点42は、矩形領域50の左側の外部に位置する。図14(A)では、第2接触点42のy座標は、上辺51のy座標よりも小さく、かつ、下辺52のy座標よりも大きい。言い換えれば、第2接触点42は、ゲーム画面30Aにおいて、上辺51を延伸した第1線と、下辺52を延伸した第2線との間に位置する。
基準点特定部113は、矩形領域50を構成する複数の辺51〜54のうち、ゲーム画面30Aにおいて第1接触点41と第2接触点42との間に位置する左辺54を特定する。基準点特定部113は、特定した左辺54に含まれ、かつ、ゲーム画面30Aにおいて第2接触点42に最も近い位置に配置される基準点71を特定する。第2接触点42のy座標が、上辺51のy座標よりも小さくかつ下辺52のy座標よりも大きいことから、図14において特定される基準点71は、第2接触点42のy座標と同一のy座標を有し、かつ、左辺54のx座標と同一のx座標を有する。
方向算出部114は、ゲーム画面30Aにおいて基準点71から第2接触点42に向かう方向72を算出する。方向算出部114は、基準点71のy座標と第2接触点42のy座標とが同一であることから、ゲーム画面30Aの横方向と平行でありかつゲーム画面30Aの左側に向かう方向を、方向72として算出する。距離算出部115は、基準点71と第2接触点42との距離73を算出する。ゲーム実行部116は、算出された方向72および距離73の少なくともいずれかに応じたゲーム処理を実行する。ゲーム実行部116は、例えば、ゲーム画面30Aにおいて方向72と平行であり、かつキャラクタ31を起点としてゲーム画面30Aの左側に向かう水平方向に沿って、キャラクタ31を真っ直ぐ左方向に移動させるゲーム処理を、実行する。
図14(B)では、ユーザは、ゲーム画面30Aの上側に向かって、ゲーム画面30Aの右斜め上方向に僅かにずれるスライド操作を入力する。第2接触点42は、矩形領域50の上側の外部に位置する。図14(B)では、第2接触点42のx座標は、右辺53のx座標よりも小さく、かつ、左辺54のx座標よりも大きい。言い換えれば、第2接触点42は、ゲーム画面30Aにおいて、右辺53を延伸した第1線と、左辺54を延伸した第2線との間に位置する。
基準点特定部113は、矩形領域50を構成する複数の辺51〜54のうち、ゲーム画面30Aにおいて第1接触点41と第2接触点42との間に位置する上辺51を特定する。基準点特定部113は、特定した上辺51に含まれ、かつ、ゲーム画面30Aにおいて第2接触点42に最も近い位置に配置される基準点74を特定する。第2接触点42のx座標が、右辺53のx座標よりも小さくかつ左辺54のx座標よりも大きいことから、図14(B)において特定される基準点74は、第2接触点42のx座標と同一のx座標を有し、かつ、上辺51のy座標と同一のy座標を有する。
方向算出部114は、ゲーム画面30Aにおいて基準点74から第2接触点42に向かう方向75を算出する。方向算出部114は、基準点74のx座標と第2接触点42のx座標とが同一であることから、ゲーム画面30Aの縦方向と平行でありかつゲーム画面30Aの上側に向かう方向を、方向75として算出する。距離算出部115は、基準点74と第2接触点42との距離76を算出する。ゲーム実行部116は、算出された方向75および距離76の少なくともいずれかに応じたゲーム処理を実行する。ゲーム実行部116は、例えば、ゲーム画面30Aにおいて方向75と平行であり、かつキャラクタ31を起点としてゲーム画面30Aの上側に向かう垂直方向に沿って、キャラクタ31を真っ直ぐ上方向に移動させるゲーム処理を、実行する。
図14(C)では、ユーザは、ゲーム画面30Aの下側に向かって、ゲーム画面30Aの左斜め下方向に僅かにずれるスライド操作を入力する。第2接触点42は、矩形領域50の下側の外部に位置する。図14(C)では、第2接触点42のx座標は、右辺53のx座標よりも小さく、かつ、左辺54のx座標よりも大きい。言い換えれば、第2接触点42は、ゲーム画面30Aにおいて、右辺53を延伸した第1線と、左辺54を延伸した第2線との間に位置する。
基準点特定部113は、矩形領域50を構成する複数の辺51〜54のうち、ゲーム画面30Aにおいて第1接触点41と第2接触点42との間に位置する下辺52を特定する。基準点特定部113は、特定した下辺52に含まれ、かつ、ゲーム画面30Aにおいて第2接触点42に最も近い位置に配置される基準点77を特定する。第2接触点42のx座標が、右辺53のx座標よりも小さくかつ左辺54のx座標よりも大きいことから、図14(C)において特定される基準点77は、第2接触点42のx座標と同一のx座標を有し、かつ、下辺52のy座標と同一のy座標を有する。
方向算出部114は、ゲーム画面30Aにおいて基準点77から第2接触点42に向かう方向78を算出する。距離算出部115は、基準点77のx座標と第2接触点42のx座標とが同一であることから、ゲーム画面30Aの縦方向と平行でありかつゲーム画面30Aの下側に向かう方向を、方向78として算出する。距離算出部115は、基準点77と第2接触点42との距離79を算出する。ゲーム実行部116は、算出された方向78および距離79の少なくともいずれかに応じたゲーム処理を実行する。ゲーム実行部116は、例えば、ゲーム画面30Aにおいて方向78と平行であり、かつキャラクタ31を起点としてゲーム画面30Aの下側に向かう垂直方向に沿って、キャラクタ31を真っ直ぐ下方向に移動させるゲーム処理を、実行する。
図15は、ある実施の形態に係る正六角形領域81および正三角形領域82を示す図である。領域設定部112がゲーム画面30Aに設定する領域は、矩形領域50に限らず、図15(A)に示すような中心に第1接触点41を含む正六角形領域81でもよく、図15(B)に示すような中心に第1接触点41を含む正三角形領域82でもよい。このように、領域設定部112は、第1接触点41を中心に含む任意の形状の多角形領域を、ゲーム画面30Aに設定することができる。また、領域設定部112は、第1接触点41を中心以外の任意の箇所に含む多角形領域を設定することもできる。
基準点特定部113は、矩形領域50などの、互いに平行な一対の辺を有する多角形領域を設定することが好ましい。この場合、方向算出部114は、これらの一対の辺に直交しかつ互いに反対側に向かう第1方向および第2方向を、いずれも容易に算出することができる。
(変形例)
操作受付部111は、第1接触点41および第2接触点42がいずれも矩形領域50内に位置する場合、タッチスクリーン15に対するユーザの操作をスライド操作ではなくタップ操作として受け付ける。この場合、ゲーム実行部116は、タップ操作に応じたゲーム処理を実行する。
領域設定部112は、必ずしも多角形領域を設定する必要はない。領域設定部112は、例えば、方向45および距離46を算出するために用いられる領域として、円または楕円などの円形領域をゲーム画面30Aに設定することができる。
基準点特定部113は、矩形領域50を構成する複数の辺のうちの第1辺を特定することなく、基準点44を特定することもできる。基準点特定部113は、例えば、矩形領域50の形状を規定する線全体を構成する複数の点のうちの、ゲーム画面30Aにおいて第2接触点42に最も近い位置に配置される点を、基準点44として特定する。これにより、図7の例では、右辺53を特定することなく、結果的に右辺53に含まれる基準点44を特定することができる。
領域設定部112は、例えば、ゲームプログラム131に基づくゲームが、キャラクタ31をゲーム画面30Aの縦方向に比べて横方向の方により頻繁に移動させるゲームである場合、横辺(上辺51および下辺52)よりも長い縦辺(右辺53および左辺54)を有する矩形領域50を、ゲーム画面30Aに設定する。これにより、タッチスクリーン15に対するユーザの横方向のスライド操作が、横方向に対してある程度大きく斜めにずれた場合であっても、キャラクタ31をゲーム画面30Aにおいて横方向に真っ直ぐに移動させることができる。したがって、ユーザにゲームを快適にプレイさせることができる。
領域設定部112は、例えば、ゲームプログラム131に基づくゲームが、キャラクタ31をゲーム画面30Aの横方向に比べて縦方向の方により頻繁に移動させるゲームである場合、縦辺(右辺53および左辺54)よりも長い横辺(上辺51および下辺52)を有する矩形領域50を、ゲーム画面30Aに設定する。これにより、タッチスクリーン15に対するユーザの縦方向のスライド操作が、縦方向に対してある程度大きく斜めにずれた場合であっても、キャラクタ31をゲーム画面30Aにおいて横方向に真っ直ぐに移動させることができる。したがって、ユーザにゲームを快適にプレイさせることができる。
領域設定部112は、例えば、ゲームの進行状況に応じて、矩形領域50の縦辺と横辺との比率を異ならせることができる。領域設定部112は、例えば、キャラクタ31をゲーム画面30Aの横方向に移動させる必要がある第1シーンがゲームに登場した場合、横辺(上辺51および下辺52)よりも長い縦辺(右辺53および左辺54)を有する矩形領域50を、ゲーム画面30Aに設定する。領域設定部112は、さらに、キャラクタ31をゲーム画面30Aの縦方向に移動させる必要がある第2シーンが同じゲームに登場した場合、縦辺(右辺53および左辺54)よりも長い横辺(上辺51および下辺52)を有する矩形領域50を、ゲーム画面30Aに設定する。これらにより、第1シーンおよび第2シーンのいずれにおいても、ユーザにゲームを快適にプレイさせることができる。
領域設定部112は、例えば、正確な横方向のスライド操作の入力が不要な第1シーンがゲームに登場した場合、より長い縦辺(右辺53および左辺54)を有する矩形領域50をゲーム画面30Aに設定する。領域設定部112は、例えば、正確な横方向のスライド操作の入力が必要な第2シーンがゲームに登場した場合、より短い縦辺(右辺53および左辺54)を有する矩形領域50をゲーム画面30Aに設定する。第2シーンは、例えば、ゲーム画面30の横方向に配置された細長いオブジェクト(丸太橋など)上をキャラクタ31に真っ直ぐ横方向にに移動させる必要があり、かつ、キャラクタ31が移動中にオブジェクトから転落するとペナルティがユーザに与えられるシーンである。ペナルティは、例えば、オブジェクト上のキャラクタ31の移動をやり直す必要があること、または、キャラクタ31に設定される体力パラメータが減少することである。第2シーンにおいて、より短い縦辺を有する矩形領域50が設定される場合、ペナルティを受けないようにキャラクタ31にオブジェクト上を正確に移動させるために、できるだけ厳密な横方向のスライド操作をタッチスクリーン15に対して入力することが、ユーザに求められる。このように、シーンに応じてユーザに求められるスライド操作の厳密さを変更することによって、ゲームの興趣性を高めることができる。
〔ソフトウェアによる実現例〕
制御部110の制御ブロックは、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、制御部110、もしくはその両方を備えた情報処理装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
〔付記事項〕
本発明の一側面に係る内容を列記すると以下のとおりである。
(項目1) ゲームプログラム(131)について説明した。本開示のある局面によると、ゲームプログラムは、プロセッサ(10)、メモリ(11)、およびタッチスクリーン(15)を備えるコンピュータ(ユーザ端末100)により実行される。ゲームプログラムは、プロセッサに、タッチスクリーンにゲーム画面を表示するステップS1と、タッチスクリーンに対する第1接触点41から第2接触点42までの移動操作を検出するステップS2と、第1接触点を内部に含む多角形領域(矩形領域50)を、ゲーム画面に設定するステップS3と、多角形領域の辺を構成する複数の点のうちの、第2接触点に最も近い位置に配置される基準点44を特定するステップS5と、ゲーム画面における基準点から第2接触点に向かう方向45を算出するステップS6と、ゲーム画面における基準点と第2接触点との距離46を算出するステップS7と、方向および距離の少なくともいずれか一方に応じたゲーム処理を実行するステップS8とを実行させる。
(項目2) (項目1)において、ゲームプログラムは、プロセッサに、前記多角形領域を構成する複数の辺(上辺51、下辺52、右辺53、および左辺54)のうちの第1辺(右辺53)を特定するステップS4をさらに実行させ、前記基準点は、前記第1辺を構成する複数の点のうちの、前記ゲーム画面において前記第2接触点に最も近い位置に配置される点である。
(項目3) (項目2)において、第1辺を特定するステップにおいて、複数の辺のうちの、ゲーム画面において第1接触点と第2接触点との間に位置する辺(右辺53)を、第1辺として特定する。
(項目4) (項目2)において、第1辺を特定するステップにおいて、複数の辺のうちの、ゲーム画面において第1接触点を挟んで第2接触点の反対側に位置する辺(左辺54)を、第1辺として特定する。
(項目5) (項目4)において、多角形領域を設定するステップにおいて、互いに平行な一対の辺を少なくとも有する多角形領域を設定する。
(項目6) (項目5)において、多角形領域を設定するステップにおいて、ゲーム画面の縦方向および横方向にそれぞれ平行な一対の横辺および一対の縦辺を有する矩形の多角形領域を設定する。
(項目7) (項目1)〜(項目6)のいずれかにおいて、多角形領域を設定するステップにおいて、第1接触点を中心に含む多角形領域を設定する。
(項目8) (項目1)〜(項目8)のいずれかにおいて、ゲームプログラムは、プロセッサに、距離が第1閾値を超えるか否かを判定するステップをさらに実行させ、ゲーム処理を実行するステップにおいて、距離が第1閾値を超える場合は第1ゲーム処理を実行し、距離が第1閾値を超えない場合は第1ゲーム処理とは異なる第2ゲーム処理を実行する。
(項目9) (項目1)〜(項目8)のいずれかにおいて、ゲーム処理を実行するステップにおいて、ゲーム画面において方向と平行な方向にキャラクタ31を移動させるゲーム処理を実行する。
(項目10) (項目1)〜(項目9)のいずれかにおいて、ゲームプログラムは、プロセッサに、基準点から第2接触点に向かって弾性変形する弾性体61を、ゲーム画面に表示するステップをさらに実行させる。
(項目11) ゲームプログラム(131)を実行する方法を説明した。本開示のある局面によると、ゲームプログラムは、プロセッサ(10)、メモリ(11)、およびタッチスクリーン(15)を備えるコンピュータ(ユーザ端末100)により実行される。該方法は、プロセッサが(項目1)に記載の各ステップを実行する。
(項目12) 情報処理装置を説明した。本開示のある局面によると、該情報処理装置は、タッチスクリーン(15)と、(項目1)に係るゲームプログラムを記憶する記憶部(120)と、該ゲームプログラムを実行することにより、情報処理装置(ユーザ端末100)の動作を制御する制御部(110)とを備える。
1 ゲームシステム、2 ネットワーク、10,20 プロセッサ、11,21 メモリ、12,22 ストレージ、13,23 通信IF(操作部)、14,24 入出力IF(操作部)、15 タッチスクリーン(表示部)、17 カメラ(操作部)、18 測距センサ(操作部)、41 第1接触点、42 第2接触点、43 方向、44 基準点、45 方向、46 距離、47 方向、48距離、50 矩形領域、51 上辺、52 下辺、53 右辺、54 左辺、61 弾性体、62 方向、63 方向、71,74 基準点、72,75 方向、76,79 距離、81 正六角形領域、82 正三角形領域、100 ユーザ端末(情報処理装置)、110,210 制御部、111 操作受付部、112 領域設定部、113 基準点特定部、114 方向算出部、115 距離算出部、116 ゲーム実行部、117 表示制御部、120,220 記憶部、131 ゲームプログラム、132 ゲーム情報、133 ユーザ情報、151 入力部(操作部)、152 表示部、200 サーバ

Claims (12)

  1. ゲームプログラムであって、
    前記ゲームプログラムは、プロセッサ、メモリ、およびタッチスクリーンを備えるコンピュータにより実行され、
    前記ゲームプログラムは、前記プロセッサに、
    前記タッチスクリーンにゲーム画面を表示するステップと、
    前記タッチスクリーンに対する第1接触点から第2接触点までの移動操作を検出するステップと、
    前記第1接触点を内部に含む多角形領域を、前記ゲーム画面に設定するステップと、
    前記多角形領域の辺を構成する複数の点のうちの、前記第2接触点に最も近い位置に配置される基準点を特定するステップと、
    前記ゲーム画面における前記基準点から前記第2接触点に向かう方向を算出するステップと、
    前記ゲーム画面における前記基準点と前記第2接触点との距離を算出するステップと、
    前記方向および前記距離の少なくともいずれか一方に応じたゲーム処理を実行するステップとを実行させる、ゲームプログラム。
  2. 前記ゲームプログラムは、前記プロセッサに、前記多角形領域を構成する複数の辺のうちの第1辺を特定するステップをさらに実行させ、
    前記基準点は、前記第1辺を構成する複数の点のうちの、前記ゲーム画面において前記第2接触点に最も近い位置に配置される点である、請求項1に記載のゲームプログラム。
  3. 前記第1辺を特定するステップにおいて、前記複数の辺のうちの、前記ゲーム画面において前記第1接触点と前記第2接触点との間に位置する辺を、前記第1辺として特定する、請求項2に記載のゲームプログラム。
  4. 前記第1辺を特定するステップにおいて、前記複数の辺のうちの、前記ゲーム画面において前記第1接触点を挟んで前記第2接触点の反対側に位置する辺を、前記第1辺として特定する、請求項2に記載のゲームプログラム。
  5. 前記多角形領域を設定するステップにおいて、互いに平行な一対の辺を少なくとも有する前記多角形領域を設定する、請求項1〜4のいずれか1項に記載のゲームプログラム。
  6. 前記多角形領域を設定するステップにおいて、前記ゲーム画面の縦方向および横方向にそれぞれ平行な一対の横辺および一対の縦辺を有する矩形の前記多角形領域を設定する、請求項5に記載のゲームプログラム。
  7. 前記多角形領域を設定するステップにおいて、前記第1接触点を中心に含む前記多角形領域を設定する、請求項1〜6のいずれか1項に記載のゲームプログラム。
  8. 前記ゲームプログラムは、前記プロセッサに、前記距離が第1閾値を超えるか否かを判定するステップをさらに実行させ、
    前記ゲーム処理を実行するステップにおいて、前記距離が前記第1閾値を超える場合は第1ゲーム処理を実行し、前記距離が前記第1閾値を超えない場合は前記第1ゲーム処理とは異なる第2ゲーム処理を実行する、請求項1〜7のいずれか1項に記載のゲームプログラム。
  9. 前記ゲーム処理を実行するステップにおいて、前記ゲーム画面において前記方向と平行な方向にキャラクタを移動させるゲーム処理を実行する、請求項1〜8のいずれか1項に記載のゲームプログラム。
  10. 前記ゲームプログラムは、前記プロセッサに、前記基準点から前記第2接触点に向かって弾性変形する弾性体を、前記ゲーム画面に表示するステップをさらに実行させる、請求項1〜9のいずれか1項に記載のゲームプログラム。
  11. コンピュータがゲームプログラムを実行する方法であって、
    前記コンピュータは、プロセッサ、メモリ、およびタッチスクリーンを備え、
    前記プロセッサが請求項1に記載の各ステップを実行する、方法。
  12. 情報処理装置であって、
    前記情報処理装置は、
    タッチスクリーンと、
    請求項1に記載のゲームプログラムを記憶する記憶部と、
    該ゲームプログラムを実行することにより、情報処理装置の動作を制御する制御部とを備えている、情報処理装置。
JP2018035824A 2018-02-28 2018-02-28 ゲームプログラム、方法、および情報処理装置 Pending JP2019150137A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018035824A JP2019150137A (ja) 2018-02-28 2018-02-28 ゲームプログラム、方法、および情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018035824A JP2019150137A (ja) 2018-02-28 2018-02-28 ゲームプログラム、方法、および情報処理装置

Publications (1)

Publication Number Publication Date
JP2019150137A true JP2019150137A (ja) 2019-09-12

Family

ID=67946366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018035824A Pending JP2019150137A (ja) 2018-02-28 2018-02-28 ゲームプログラム、方法、および情報処理装置

Country Status (1)

Country Link
JP (1) JP2019150137A (ja)

Similar Documents

Publication Publication Date Title
US11755137B2 (en) Gesture recognition devices and methods
CN107533373B (zh) 虚拟现实中经由手与对象的场境敏感碰撞的输入
KR101809636B1 (ko) 컴퓨터 장치의 원격 제어
KR101872426B1 (ko) 깊이 기반 사용자 인터페이스 제스처 제어
WO2014137838A1 (en) Providing a gesture-based interface
CN102033702A (zh) 影像显示装置及其显示控制方法
US20160209968A1 (en) Mapping touch inputs to a user input module
JP6514376B1 (ja) ゲームプログラム、方法、及び情報処理装置
JP6483556B2 (ja) 操作認識装置、操作認識方法及びプログラム
US9400575B1 (en) Finger detection for element selection
KR20130092074A (ko) 제어 기기를 이용한 전자기기의 제어 방법 및 장치
US9235338B1 (en) Pan and zoom gesture detection in a multiple touch display
JP7244249B2 (ja) ゲームプログラム、および情報処理装置
JP2019205514A (ja) プログラム、方法、および情報端末装置
JP2019150137A (ja) ゲームプログラム、方法、および情報処理装置
JP6523509B1 (ja) ゲームプログラム、方法、および情報処理装置
JP6815359B2 (ja) ゲームプログラム、方法、および情報処理装置
JP7256627B2 (ja) ゲームプログラム
JP2019181214A (ja) ゲームプログラム、方法、および情報処理装置
JP2020058668A (ja) ゲームプログラム、方法、および情報処理装置
JP6469784B1 (ja) プログラム、方法、および情報処理装置
KR101595229B1 (ko) 캐드 어플리케이션에서 객체를 제어하기 위한 장치 및 이를 위한 방법이 기록된 컴퓨터 판독 가능한 기록매체
KR20230105601A (ko) 전자 장치 및 그 제어 방법
JP2019079562A (ja) プログラム、方法、および情報処理装置
WO2003071411A1 (en) Multiple input modes in overlapping physical space