(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-15
(45)【発行日】2024-03-26
(54)【発明の名称】プログラム
(51)【国際特許分類】
A63F 13/216 20140101AFI20240318BHJP
A63F 13/54 20140101ALI20240318BHJP
A63F 13/55 20140101ALI20240318BHJP
A63F 13/577 20140101ALI20240318BHJP
A63F 13/655 20140101ALI20240318BHJP
A63F 13/79 20140101ALI20240318BHJP
G06F 3/01 20060101ALI20240318BHJP
G06T 19/00 20110101ALI20240318BHJP
A63F 13/812 20140101ALN20240318BHJP
【FI】
A63F13/216
A63F13/54
A63F13/55
A63F13/577
A63F13/655
A63F13/79
G06F3/01 510
G06T19/00 600
A63F13/812 B
(21)【出願番号】P 2018228502
(22)【出願日】2018-12-05
【審査請求日】2021-12-01
(73)【特許権者】
【識別番号】518427904
【氏名又は名称】有限会社Sol Entertainment
(74)【代理人】
【識別番号】100094525
【氏名又は名称】土井 健二
(74)【代理人】
【識別番号】100094514
【氏名又は名称】林 恒徳
(72)【発明者】
【氏名】神江 豊
【審査官】柳 重幸
(56)【参考文献】
【文献】特開2015-132957(JP,A)
【文献】特開2016-174893(JP,A)
【文献】特開2017-176635(JP,A)
【文献】特表2018-516615(JP,A)
【文献】国際公開第2017/145552(WO,A1)
【文献】国際公開第2018/199196(WO,A1)
【文献】米国特許出願公開第2003/0077556(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00-13/98
G06F 3/01
G06T 19/00
A63B 1/00-26/00
69/00-69/40
71/00-71/16
(57)【特許請求の範囲】
【請求項1】
自装置の位置検出機能と、画像を表示する表示部を有するデバイスが有するプログラムであって、
ユーザに運動を促す処理であり、
仮想空間を生成し、
前記仮想空間の位置座標を実空間の基準となる位置座標に対応付けて前記仮想空間と
前記実空間を合成した合成空間を生成する第1処理と、
前記ユーザに要求する運動量に基づきターゲットの変化を決定し、前記仮想空間上に
前記ターゲットを出現させ、前記ターゲットを変化させる第2処理と、
前記ターゲットの変化に応じて
前記ユーザが移動
させた前記デバイスの前記実空間の位置に応じて、所定範囲を占めるヒット範囲を前記仮想空間に設ける第3処理と、
前記ターゲットが前記ヒット範囲内に位置する否かを判定する第4処理と、
を前記デバイスが有するプロセッサに実行させるプログラム。
【請求項2】
前記第2処理は、前記ターゲットと前記合成空間とを合成した合成画像を、前記表示部に表示する処理を含む
請求項1記載のプログラム。
【請求項3】
前記第2処理は、前記ターゲットの変化が開始してから前記ターゲットの変化が終了するまでの変化時間を、前記デバイスのユーザに対して要求する運動量に基づいて決定する
請求項1又は2記載のプログラム。
【請求項4】
前記ターゲットの変化は、前記ターゲットが移動元地点から移動先地点まで移動することであり、
前記変化時間は前記ターゲットの前記移動元地点から移動を開始してから、前記移動先地点までの移動が終了するまでの時間であり、
前記要求する運動量が第1量である場合、前記変化時間を第1時間とし、
前記要求する運動量が前記第1量より大きい第2量である場合、前記変化時間を前記第1時間より短い第2時間にする
請求項3記載のプログラム。
【請求項5】
前記デバイスを基準として、前記移動元地点は、前記移動先地点より奥に位置し、
前記移動先地点は、前記デバイスを含む面上であって、水平面と垂直の垂直面上、又は前記デバイスより後ろの前記水平面と垂直の垂直面上のいずれかに位置する
請求項4記載のプログラム。
【請求項6】
前記ターゲットを複数出現させる場合、第1ターゲットの第1移動先地点と、前記第1ターゲットより後に移動先地点に移動する第2ターゲットの第2移動先地点との地点間距離を、前記要求する運動量に基づいて決定する
請求項4記載のプログラム。
【請求項7】
前記ターゲットの変化は、前記ターゲットが表示され始めてから、所定時間後に表示されなくなることであり、
前記変化時間は、前記所定時間であり、
前記要求する運動量が第1量である場合、前記変化時間を第1時間とし、
前記要求する運動量が前記第1量より大きい第2量である場合、前記変化時間を前記第1時間より短い第2時間にする
請求項3記載のプログラム。
【請求項8】
前記ターゲットを複数出現させる場合、第1ターゲットの位置する第1位置と、第2ターゲットの位置する第2位置との、位置間距離を、前記要求する運動量に基づいて決定する
請求項7記載のプログラム。
【請求項9】
前記ターゲットを複数出現させる場合、前記複数のターゲットの表示開始タイミング及び表示終了タイミングを、前記要求する運動量に基づいて決定する
請求項8記載のプログラム。
【請求項10】
前記ターゲットの変化は、前記ターゲットの形状及び色彩の少なくとも1つが、所定時間後に変化することであり、
前記変化時間は、前記所定時間であり、
前記要求する運動量が第1量である場合、前記変化時間を第1時間とし、
前記要求する運動量が前記第1量より大きい第2量である場合、前記変化時間を前記第1時間より短い第2時間にする
請求項3記載のプログラム。
【請求項11】
前記ターゲットを複数出現させる場合、第1ターゲットの位置する第1位置と、第2ターゲットの位置する第2位置との、位置間距離を、前記要求する運動量に基づいて決定する
請求項10記載のプログラム。
【請求項12】
前記第4処理において、前記ターゲットが前記ヒット範囲内に位置すると判定した場合、前記ターゲットの確保に成功したと判定し、成功したことを示す判定結果画像を前記表示部に表示する
請求項1又は2記載のプログラム。
【請求項13】
前記第4処理において、さらに、前記ターゲットが第3時間内に前記ヒット範囲に位置しないと判定した場合、前記ターゲットの確保に失敗したと判定し、失敗したことを示す判定結果画像を前記表示部に表示する
請求項12記載のプログラム。
【請求項14】
前記第4処理において、さらに、前記ターゲットが第3時間内に前記ヒット範囲に位置しないと判定した場合、前記ターゲットからの回避に成功したと判定し、成功したことを示す判定結果画像を前記表示部に表示する
請求項1又は2記載のプログラム。
【請求項15】
前記第4処理において、前記ターゲットが前記ヒット範囲内に位置すると判定した場合、前記ターゲットからの回避に失敗したと判定し、失敗したことを示す判定結果画像を前記表示部に表示する
請求項14記載のプログラム。
【請求項16】
前記第1処理において、前記仮想空間を生成するとき、前記デバイスの位置より所定距離下方の水平面に前記仮想空間の地面を設定する
請求項1又は2記載のプログラム。
【請求項17】
前記所定距離は、前記デバイスを使用する操作者の身長に基づき決定される
請求項16記載のプログラム。
【請求項18】
自装置の位置検出機能と、画像を表示する表示部を有するデバイスが有するプログラムであって、
仮想空間を生成し、前記仮想空間と実空間を合成した合成空間を生成する第1処理と、
前記仮想空間上にターゲットを出現させ、前記ターゲットを変化させる第2処理と、
前記ターゲットの変化に応じて移動した前記デバイスの前記実空間の位置に応じて、所定範囲を占めるヒット範囲を前記仮想空間に設ける第3処理と、
前記ターゲットが前記ヒット範囲内に位置する否かを判定する第4処理と、
を前記デバイスが有するプロセッサに実行させ、
前記第2処理は、前記ターゲットと前記合成空間とを合成した合成画像を、前記表示部に表示する処理を含み、
前記第2処理は、前記ターゲットの変化が開始してから前記ターゲットの変化が終了するまでの変化時間を、前記デバイスのユーザに対して要求する運動量に基づいて決定し、
前記ターゲットの変化は、前記ターゲットが移動元地点から移動先地点まで移動することであり、
前記変化時間は前記ターゲットの前記移動元地点から移動を開始してから、前記移動先地点までの移動が終了するまでの時間であり、
前記要求する運動量が第1量である場合、前記変化時間を第1時間とし、
前記要求する運動量が前記第1量より大きい第2量である場合、前記変化時間を前記第1時間より短い第2時間とし、
前記第2処理において、前記デバイスの傾きが傾き閾値以内である場合、押下可能な開始ボタンを表示し、前記開始ボタンが押下されたことを検出したとき、前記移動元地点を決定する
、プログラム。
【請求項19】
前記第4処理において、前記ターゲットの変化に応じて移動した前記デバイスの移動距離に基づき、前記デバイスのユーザの消費カロリーを算出し、前記算出した消費カロリーを前記判定結果画像に含め、前記表示部に表示する
請求項13又は請求項15記載のプログラム。
【請求項20】
前記第4処理において、前記移動距離に係数を乗じた値を、前記ユーザが消費した消費カロリーとして算出する
請求項19記載のプログラム。
【請求項21】
さらに、前記第4処理の終了後、前記第4処理において算出したカロリーを集計時間ごとに累積した累積カロリーを算出し、前記集計時間ごとの累積カロリーを含む累積カロリー表示画像を、前記表示部に表示する処理を、
前記デバイスが有するプロセッサに実行させる請求項19記載のプログラム。
【請求項22】
前記集計時間は、24時間である
請求項21記載のプログラム。
【請求項23】
自装置の位置検出機能と、画像を表示する表示部を有するデバイスが有するプログラムであって、
仮想空間を生成し、前記仮想空間と実空間を合成した合成空間を生成する第1処理と、
前記仮想空間上にターゲットを出現させ、前記ターゲットを変化させる第2処理と、
前記ターゲットの変化に応じて移動した前記デバイスの前記実空間の位置に応じて、所定範囲を占めるヒット範囲を前記仮想空間に設ける第3処理と、
前記ターゲットが前記ヒット範囲内に位置する否かを判定する第4処理と、
を前記デバイスが有するプロセッサに実行させ、
前記第2処理は、前記ターゲットと前記合成空間とを合成した合成画像を、前記表示部に表示する処理を含み、
前記第1処理において、前記実空間の映像を解析することで前記実空間に存在する物体を認定し、前記認定した物体が障害物であるか否かを判定し、前記障害物と判定した場合、前記認定した物体が前記障害物であると理解できる形式で前記認定した物体を前記合成画像に含める
、プログラム。
【請求項24】
前記障害物であるか否かの判定は、前記認定した物体の大きさ、形状、及び動きの少なくとも1つに基づいて判定する
請求項23記載のプログラム。
【請求項25】
さらに、前記ターゲットの移動を開始させる前に、前記ターゲットと前記デバイスの前記仮想空間における距離を算出し、前記算出した距離が第2閾値以内である場合、前記ターゲットの変化を開始しない処理を、
前記デバイスが有するプロセッサに実行させる請求項4記載のプログラム。
【請求項26】
さらに、前記ターゲットの移動を開始させる前に、前記ターゲットと前記デバイスの前記仮想空間における距離を算出し、前記算出した距離が第2閾値以内である場合、前記第4処理の判定において、前記ターゲットの確保に失敗したと判定する
前記デバイスが有するプロセッサに実行させる請求項4記載のプログラム。
【請求項27】
前記デバイスは、さらに音声出力部を有し、
前記第2処理は、前記ターゲットの位置を示す音声を、前記音声出力部に出力する
請求項1記載のプログラム。
【請求項28】
前記第2処理は、さらに、前記デバイスのユーザの身体的特徴に基づいて、前記ターゲットの移動先の位置、前記ターゲットの変化量、前記ターゲットの変化の開始及び終了のタイミング、前記ターゲットの変化前及び変化後の位置、前記ターゲットの移動元地点及び移動先地点、のいずれかを決定する
請求項1又は2記載のプログラム。
【請求項29】
さらに、前記仮想空間上のターゲットの変化に応じて前記デバイスのユーザが移動させたデバイスの移動距離に基づき、前記デバイスのユーザが消費したカロリーを算出し、前記算出したカロリーを前記表示部に表示する第1表示処理を、
前記デバイスが有するプロセッサに実行させる請求項1、2、3乃至11のいずれかに記載のプログラム。
【請求項30】
さらに、前記第1表示処理において算出したカロリーを、集計時間ごとに累積した累積カロリーを算出し、前記集計時間ごとの累積カロリーを含む累積カロリー表示画像を、前記表示部に表示する第2表示処理を、
前記デバイスが有するプロセッサに実行させる請求項29に記載のプログラム。
【請求項31】
前記第2処理は、前記ターゲットの移動開始から移動終了までの移動距離を、前記デバイスのユーザに対して要求する運動量に基づいて決定する
請求項1又は2に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラムに関する。
【背景技術】
【0002】
現実環境に情報を付加・削除・強調・減衰させ、人間が知覚する現実世界を拡張する技術を、拡張現実(Augmented Reality:AR)と呼ぶ場合がある。
【0003】
例えば、コンピュータによって生成された仮想空間と、現実空間を融合した空間をAR空間と呼び、AR空間を画像化したもの(現実空間と仮想空間とを合成した画像)をAR画像(合成画像)と呼ぶ。
【0004】
AR空間の仮想空間の位置座標は、現実空間上の基準となる位置座標と対応づけて設定される。また、生成されるAR画像は、例えば、視聴するユーザの動きに追従し、随時変更される。これにより、ユーザは、現実空間上に仮想物体が存在するかのような感覚を得ることができる。
【0005】
ARに関する技術は、以下の特許文献1に記載されている。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
ARは、例えば、ゲーム分野で活用されている。ARをゲームに使用することで、ユーザは現実感を得られ、よりゲームに集中し、没頭することができる。このように、ARの活用分野は多岐にわたるが、いまだ活用されていない分野も存在する。
【0008】
そこで、一開示は、ARをヘルスケア分野で活用するプログラムを提供することにある。
【課題を解決するための手段】
【0009】
自装置の位置検出機能と、画像を表示する表示部を有するデバイスが有するプログラムであって、仮想空間を生成し、前記仮想空間と実空間を合成した合成空間を生成する第1処理と、前記仮想空間上にターゲットを出現させ、前記ターゲットを変化させる第2処理と、前記ターゲットの変化に応じて移動した前記デバイスの前記実空間の位置を中心に、所定範囲を占めるヒット範囲を前記仮想空間に設ける第3処理と、前記ターゲットが前記ヒット範囲内に位置する否かを判定する第4処理と、を前記デバイスが有するプロセッサに実行させる。
【発明の効果】
【0010】
ARをヘルスケア分野で活用することができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、デバイス100の構成例を表す図である。
【
図2】
図2は、ヘルスケア処理S10の処理フローチャートの例を示す図である。
【
図4】
図4は、ゲーム処理S104において行われるゲーム画面の例を示す図である。
【
図5】
図5は、ユーザがターゲットT1に追従して動く場合のゲーム画面の例を示す図である。
【
図6】
図6は、
図5におけるゲーム画面が表示されているときのユーザの動作の例を示す図である。
【
図7】
図7は、ゲーム処理S104の処理フローチャートの例を示す図である。
【
図8】
図8は、実空間に障害物が存在する場合のAR画像の例を示す図である。
【
図9】
図9は、ゲーム終了時に表示される画面の例を示す図である。
【
図10】
図10は、仮想空間地面位置決定処理S1030の処理フローチャートの例を示す図である。
【
図11】
図11は、ターゲット開始位置決定処理S1031の処理フローチャートの例を示す図である。
【
図12】
図12は、反則判定処理S105の処理フローチャートの例を示す図である。
【
図13】
図13は、仮想空間上のターゲットが表示されない領域に移動した場合の例を示す図である。
【
図14】
図14は、ゲーム処理がエアロビクスである場合の例を示す図である。
【
図15】
図15は、ターゲットT1以外の表示物を含む例を示す図である。
【
図16】
図16は、ターゲットを回避するゲームの例を示す図である。
【発明を実施するための形態】
【0012】
[第1の実施の形態]
第1の実施の形態について説明する。
【0013】
<デバイスの構成例>
図1は、デバイス100の構成例を表す図である。デバイス100は、ヘルスケアを実行する装置であり、例えば、スマートフォンである。
【0014】
デバイス100は、CPU(Central Processing Unit)110、ストレージ120、メモリ130、表示装置150、位置検出装置140、及びカメラ160を有する。
【0015】
ストレージ120は、プログラムやデータを記憶する、フラッシュメモリ、HDD(Hard Disk Drive)、又はSSD(Solid State Drive)などの補助記憶装置である。ストレージ120は、ヘルスケアプログラム121及び位置検出プログラム124を記憶する。
【0016】
メモリ130は、ストレージ120に記憶されているプログラムをロードする領域である。また、メモリ130、プログラムがデータを記憶する領域としても使用される。
【0017】
表示装置150は、静止画や動画を表示するモニタであり、例えば、液晶ディスプレイや有機EL(electro-luminescence)ディスプレイである。表示装置150は、例えば、実行されるプログラムに応じて、画像が表示される。また、表示装置150は、ユーザ(デバイス100の操作者)がデバイスに対して操作を行う操作部としても動作する。ユーザは、表示装置の所定位置(例えば、表示されているボタンなど)に触れることで、デバイスに対して操作を行うことができる。また、ユーザの行った操作は、各プログラムでも認識することができる。
【0018】
位置検出装置140は、デバイス100の位置や傾き検出(測定)する位置検出機能を有する装置であって、例えば、ジャイロセンサやGPS(Global Positioning System)である。位置検出装置140が検出するデバイス100の位置は、例えば、デバイス100の位置する高さ(例えば、海抜)、緯度、経度などである。また、位置検出装置140は、前回測定したデバイス100の位置からの変化量を測定してもよい。
【0019】
位置検出装置140が検出するデバイスの傾きは、例えば、デバイス100の基準姿勢からの前方向(例えば、表示装置150の画面方向)への傾き、及びデバイス100の横方向(例えば、表示装置150の画面に対して垂直方向)への傾きである。
【0020】
位置検出装置140が検出する位置及び傾きによって、デバイス100の現実空間における位置及び姿勢が確定される。以降、現実空間におけるデバイス100の位置を、現実位置(Xn、Yn、Zn)(nは整数)と示すことがある。nは、測定タイミングを示すものとし、n=0を初期測定タイミングとする。また、現実位置(Xn、Yn、Zn)は、現実位置(Xn-1、Yn-1、Zn-1)からの、X成分(例えば緯度)、Y成分(例えば経度)、Z成分(例えば、高さ)の変化量を示すものとする。また、現実位置(Xn、Yn、Zn)は、X成分、Y成分、Z成分の変化量ではなく、絶対的な数値であってもよい。
【0021】
カメラ160は、周辺の環境の映像(実空間の映像)を撮影する撮影装置である。カメラ160は、例えば、静止画や動画を撮影する。撮影した静止画は、例えば、AR画像に使用される。
【0022】
CPU110は、ストレージ120に記憶されているプログラムを、メモリ130にロードし、ロードしたプログラムを実行し、各処理を実現するプロセッサである。
【0023】
CPU110は、ヘルスケアプログラム121を実行することで、ヘルスケア処理を行う。ヘルスケア処理は、デバイス100のユーザにゲームを実行させることで運動をさせ、運動によって消費カロリー及びその累積したカロリーを表示することで、ユーザの健康管理を行う処理である。ヘルスケア処理において提供するゲームは、例えば、デバイス100をユーザに移動させることで、AR画面に表示された移動するターゲットを確保するゲームである。
【0024】
CPU110は、ゲームモジュール122を実行することで、ゲーム処理を行う。ゲーム処理は、ユーザにデバイス100を移動させることでユーザに運動をさせるゲームである。ゲーム処理は、例えば、仮想空間上に存在するターゲットを変化(例えば移動)させ、変化するターゲットをユーザがデバイス100を動かして確保するゲームを実行する処理である。ゲーム処理は、仮想空間と現実空間とを合成した合成空間の生成、及び合成空間の映像(仮想空間の映像と実空間の映像を合成したAR画像)を生成し、表示する処理を含む。また、ゲーム処理は、仮想空間上を変化するターゲットを表示する処理を含む。さらに、ゲーム処理は、デバイス100の移動した位置に応じて、所定範囲を示すヒット範囲(ヒットボックス)を仮想空間上に設定する処理と、ターゲットがヒットボックス内に位置するか否かを判定する処置を含む。また、ゲーム処理は、ユーザに行わせたい運動量(ユーザに対して要求する運動量)に応じて、ターゲットの変化時間(例えば移動時間)や、変化距離(例えば移動距離)を決定する処理を含む。
【0025】
以下、第1の実施の形態においては、ターゲットの変化は、ターゲットが移動元地点から移動先地点まで移動する場合について説明する。
【0026】
CPU110は、反則判定サブモジュール1221を実行することで、反則判定処理を行う。反則判定処理は、ターゲットの開始位置とデバイス100の仮想空間上の位置との距離が、所定範囲内であれば、なんらかのペナルティを科す処理である。反則判定処理は、距離を算出する処理を含む。
【0027】
CPU110は、仮想空間地面位置決定サブモジュール1222を実行することで、仮想空間地面位置決定処理を行う。仮想空間地面位置決定処理は、仮想空間を生成するとき、デバイス100の位置に基づいて仮想空間の地面の位置を決定する処理である。
【0028】
CPU110は、ターゲット開始位置決定サブモジュール1223を実行することで、ターゲット開始位置決定処理を行う。ターゲット開始位置決定処理は、ターゲットの移動を開始する位置(移動元地点)を決定する処理であり、デバイス100の傾きやユーザ操作に基づいて開始位置を決定する。
【0029】
CPU110は、カロリー関連モジュール123を実行することで、カロリー関連処理を行う。カロリー関連処理は、消費カロリーの算出、累積カロリーの算出、及び算出したカロリーの表示を行う処理である。カロリー関連処理は、累積カロリー表示処理や、判定処理を含む。
【0030】
CPU110は、累積カロリー表示サブモジュール1231を実行することで、累積カロリー表示処理を行う。累積カロリー表示処理は、所定時間(集計時間)の間に消費した累積カロリーを算出し、過去の実績を含め集計時間ごとに累積カロリーを表示する処理である。
【0031】
CPU110は、消費カロリー表示サブモジュール1232を実行することで、消費カロリー表示処理を行う。消費カロリー表示処理は、ゲームを1回実行する間の消費カロリーを算出し、算出した消費カロリーをゲーム終了時に表示する処理である。
【0032】
CPU110は、位置検出プログラム124を実行することで、位置検出処理を行う。位置検出処理は、デバイス100の位置を検出する処理であり、例えば、位置検出装置140の出力するデータを受領し、受領したデータをヘルスケア処理で使用する形式に変更する。また、デバイス位置検出処理は、必要に応じて位置検出装置140に対して、デバイス100の位置を出力するよう制御する。
【0033】
<ヘルスケア処理>
図2は、ヘルスケア処理S10の処理フローチャートの例を示す図である。ヘルスケア処理S10は、デバイス100のユーザがヘルスケアプログラムを起動することで実行される処理である。ヘルスケア処理は、ユーザにゲームを実行させることで運動させ、ユーザが運動により消費したカロリーを表示する処理である。
【0034】
なお、第1の実施の形態におけるAR空間は、AR画像を伴うものであるが、AR空間は、例えば、音声で構成されてもよい。例えば、AR空間を音声で構成する場合、仮想空間上の物体が発する音声を、仮想空間上の物体の位置に対応する現実空間の位置から発する。これにより、ユーザは、現実空間で発せられた音声を聞き取り、音声の発せられた方向に仮想空間上の物体が位置することを認識することができる。
【0035】
デバイス100は、例えば、表示部(操作部)に表示されているヘルスケアプログラムのアイコンをユーザにタップされるなどのユーザ動作を検出すると、ヘルスケアプログラムを実行し、ヘルスケア処理S10を起動する(S100)。
【0036】
デバイス100は、ヘルスケア処理S10が起動されると、メイン画面を表示部に表示する(S101)。メイン画面は、過去にユーザが消費したカロリーのグラフが表示される。
【0037】
図3は、メイン画面の例を示す図である。メイン画面(累積カロリー表示画像)には、カロリーのグラフP1、本日の消費カロリーP2、開始ボタンP3が表示される。カロリーのグラフP1は、例えば、一日ごとの消費カロリーのグラフであり、本日を含め過去数日間の消費カロリーが表示される。
【0038】
本日の消費カロリーP2は、本日、ユーザが消費したカロリーの累計(累積カロリー)である。なお、ヘルスケア処理S10では、午前0時から次の午前0時までを1日(24時間)として扱い、本日の基準となるタイミングは、例えば、ゲーム処理の開始時刻、ゲーム処理の終了時刻、あるいは、メイン画面の表示時刻である。
【0039】
開始ボタンP3は、ゲーム処理を開始するボタンである。開始ボタンP3をタップされることで、ゲーム処理は開始される。
【0040】
メイン画面は、ゲームを起動してから実行するまでの間に、必ず表示される画面である。メイン画面に累積カロリーを表示することで、ユーザはゲーム開始時に必ず過去の累積カロリーを見る機会を得るため、より運動に対する意欲が増大する効果がある。
【0041】
図2の処理フローチャートに戻り、デバイス100は、開始ボタンが押下されるのを待ち受ける(S102のNo)。デバイス100は、開始ボタンが押下されたことを検出すると(S102のYes)、ゲーム処理の事前処理である仮想空間地面位置決定処理S1030を行う。仮想空間地面位置決定処理S1030は、仮想空間における地面を決定する処理である。デバイス100は、仮想空間地面位置決定処理S1030において、無限又は所定範囲の仮想空間上の地面を決定する。仮想空間地面位置決定処理S1030の処理の詳細については、後述する。
【0042】
デバイス100は、仮想空間地面位置決定処理S1030の実行後、ゲーム処理の事前処理であるターゲット開始位置決定処理S1031を行う。ターゲット開始位置決定処理S1031は、仮想空間上のターゲットの開始位置(初期位置:移動元地点)を決定し、同時にゲームフィールドも決定する処理である。例えば、以下に説明するサッカーゲームの場合、ターゲットはサッカーボールであり、ゲームフィールドは、サッカーのコートである。また、ターゲットの仮想空間上の初期位置は、ペナルティキックにおける、蹴り出す前のボールの設置地点である。ターゲット開始位置決定処理S1031の処理の詳細については、後述する。
【0043】
デバイス100は、ターゲットの初期位置が決定すると、ゲーム処理S104を実行する。ゲーム処理S104は、例えば、ユーザに運動させるためのゲームである。ゲーム処理S104で行われるゲームは、例えば、ある地点(移動元地点)から他の地点(移動先地点)に向かって、ターゲットが移動するゲームである。ユーザは、ゲームにおいて、デバイス100を動かして移動するターゲットを追従、あるいは移動先地点に移動する。これにより、ユーザは運動を行う。ゲームの詳細については、後述する。
【0044】
デバイス100は、ゲーム処理S104が終了すると、再度メイン画面を表示する(S101)。メイン画面のカロリーのグラフは、前回ゲーム処理を行ったときに消費したカロリーが加算されて表示される。以降、ヘルスケアプログラムを終了されるまで、各処理を繰り返す。
【0045】
<ゲーム処理>
図4は、ゲーム処理S104において行われるゲーム画面の例を示す図である。ゲームは、例えば、サッカーゲームである。ゲーム画面は、時間の経過に応じて、
図4(A)、
図4(B)、
図4(C)と遷移する。なお、
図4は、デバイス100を持っているユーザが、実空間の位置を移動しない(ユーザの立ち位置が変化しない)場合の画面の例である。
【0046】
ゲームは、サッカーにおけるペナルティキックを想定しており、キッカーがサッカーボール(ターゲット)を蹴り出し、ユーザがキーパーとなって、蹴り出されたサッカーボールをキャッチするために、デバイス100を動かす。
【0047】
ゲームが開始されるとき、すでに仮想空間上の地面、ターゲットの開始位置、及びゲームフィールドが構築されている。また、ターゲットの移動方向や移動先(移動先地点)が決定されていてもよい。
【0048】
図4(A)において、線L1は、地平線を示し、線L1より上部(以降、背景部と呼ぶ場合がある)が背景や空中を示す映像であり、線L1より下部(以降、地面部と呼ぶ場合がある)が地面を示す画像である。例えば、
図4(A)において、背景部は実際にデバイス100のカメラで撮影した画像を表示し、地面部は仮想空間上の地面及びゲームフィールドを表示する。また、人H1は、サッカーにおけるペナルティキックのキッカーである。さらに、ターゲットT1は、サッカーボールであり、
図4(A)においては初期位置(移動元地点)に位置する。
【0049】
所定時間が経過すると、
図4(B)の画面に遷移する。
図4は、ユーザが動かない場合を想定しているため、背景部及び地面部の映像は同じである。人H1に蹴り出されたターゲットT1は、例えば、仮想空間の奥から、ユーザの手前の右上(移動先地点)に向かって飛翔する。そのため、ターゲットT1は、
図4(A)と比べ、右上に位置し、少し大きく表示される。
【0050】
さらに、所定時間が経過すると、
図4(C)の画面に遷移する。ターゲットT1は、さらに仮想空間上を移動し、ターゲットT1は、
図4(B)と比べ、さらに右上に位置し、さらに大きく表示される。
【0051】
このようにして、仮想空間上をターゲットT1が、ユーザの手前右上方向に移動しているかのように、ターゲットT1を表示する。
【0052】
図5は、ユーザがターゲットT1に追従して動く場合のゲーム画面の例を示す図である。
図6は、
図5におけるゲーム画面が表示されているときのユーザの動作の例を示す図である。以下、
図5及び
図6について説明する。
【0053】
図5(A)は、ゲーム開始時のゲーム画面であり、
図4(A)と同じである。このときのユーザは、
図6(A)の状態となる。
図6(A)によると、ユーザU1は、デバイス100を両手で保持している。デバイス100の位置は、およそユーザU1の顔の正面である。ユーザは、
図6(A)の状態でゲームを開始することが想定される。
【0054】
所定時間が経過すると、
図5(B)のゲーム画面に遷移し、ユーザは
図6(B)の状態となる。ユーザU1は、手前の右上方向にターゲットであるボールが飛翔してくることを認識するため、ボールの動きに追従し、
図6(B)に示すように、やや右上にデバイス100を動かす。また、デバイス100は、ユーザによりやや右上に動かされるため、
図6(B)に示すように、斜めに傾く場合もある。この時のゲーム画面は、
図5(B)に示すように、線L1がデバイス100の傾きや移動後の位置に応じて、斜めに傾いたり上下に移動したりする。また、この時のゲーム画面は、
図5(B)に示すように、ターゲットT1の位置がデバイス100の位置に応じて移動する。
【0055】
さらに、所定時間が経過すると、
図5(C)の画面に遷移する。ゲーム画面は、
図5(C)に示すように、デバイス100の移動に応じて、さらに線L1の位置や、ターゲットの位置を移動する。ユーザU1は、
図6(C)に示すように、さらに右上にデバイス100を移動させる。
【0056】
なお、
図6(A)から(C)のユーザU1は、同じ位置に立っており、手だけを動かしてデバイス100を移動させてもよいし、全身の位置(立ち位置)を移動しながら、手も動かしてデバイス100を移動させてもよい。位置を移動するか否かは、例えば、ターゲットの左右の移動距離によって決定され、移動距離が大きければ、ユーザは自身の立ち位置の移動を伴った運動を行う。このように、ゲームをユーザに実行させることで、ユーザに運動をさせることができる。
【0057】
また、デバイス100は、ターゲットの移動先(移動先地点)の位置を、ユーザに行わせたい運動量(デバイスの移動量が増大すると運動量も増大するとみなす)に応じて決定する(
図7における処理S104-0の一例)。例えば、デバイス100は、ゲーム内のターゲットの移動先(移動先地点)を、初期位置(移動元地点)より左右方向や上下方向に大きく隔離させることで、ユーザがデバイス100を移動させる距離が増大し、ユーザの運動量を増大させることができる。言い換えれば、ターゲットの移動先を変更することで、ユーザの運動量を調整することができる。
【0058】
また、デバイス100は、ターゲットの移動元地点から移動先地点までの移動時間を、ユーザに行わせたい運動量(デバイスの移動速度が速くなると運動量が増大するとみなす)に応じて決定する。例えば、デバイス100は、ターゲットを、速い速度で移動させることで、ユーザ(デバイス100)を速く移動させることで、ユーザの運動量を増大させることができる。
【0059】
また、さらに、デバイス100は、連続して又は同時期に、複数のターゲットを移動させる場合、ターゲットの移動開始タイミング(サッカーゲームにおいては、サッカーボールを蹴り出すタイミング)や、連続するターゲットの移動先の位置を、ユーザに行わせたい運動量(ユーザに要求する運動量)に応じて決定してもよい。すなわち、デバイスは、第1ターゲットが移動し終えてから、第2ターゲットの移動が開始するまでの時間(間隔時間)と、第1ターゲットが到達する位置(第1ターゲットの移動先地点:第1移動先地点)と、第2ターゲットが到達する位置(第2ターゲットの移動先地点:第2移動先地点)を、ユーザに行わせたい運動量に応じて決定する。デバイス100は、例えば、より多くの運動をユーザに行わせたい場合、間隔時間を短くする、又は、第1移動先地点と、第2移動先地点の距離(地点間距離)を長くする、又はその両方を行う。また、デバイス100は、例えば、より少ない運動をユーザに行わせたい場合、間隔時間を長くする、又は、第1移動先地点と、第2移動先地点の距離(地点間距離)を短くする、又はその両方を行う。
【0060】
また、さらに、デバイス100は、ユーザの身長や体重などの身体的な特徴も加味してもよい。例えば、高身長であるユーザは、低身長であるユーザに比べ、同じ距離を動いても運動量が少ないと想定できる。そのため、例えば、デバイス100は、高身長のユーザに対しては、低身長のユーザに対するターゲットの移動先位置より、より左右方向により大きく隔離した移動先位置を設定する。これにより、デバイス100は、高身長や低身長などのユーザの身体的な特徴に適合したターゲットの変化を提供することができる。
【0061】
図7は、ゲーム処理S104の処理フローチャートの例を示す図である。デバイス100は、要求する運動量に基づき、ターゲットの変化を決定する、(S104-0)。デバイス100は、例えば、デバイス100がデバイス100を使用するユーザに対して要求する運動量(ユーザに運動させたい運動量、又はユーザが運動したい運動量)に基づき、ターゲットの変化の量、変化の開始及び終了のタイミング、又は、ターゲットの変化前及び変化後の位置などを決定する。なお、第1の実施の形態においては、ターゲットの移動先地点及び移動元地点や、複数ターゲット送出時は、ターゲットの送出間隔や、それぞれのターゲットの移動先地点などを決定する。デバイス100は、ユーザに対して要求する運動量に加え、さらに、ユーザの身体的な特徴を加味してもよい。
【0062】
デバイス100は、ゲーム処理S104において、デバイス位置を検出する(S104-1)。デバイス位置は、例えば、デバイス100の傾きやデバイス100の現実位置(Xn、Yn、Zn)である。
【0063】
デバイス100は、デバイス位置に基づき、消費カロリーを算出する(S104-2)。消費カロリーは、例えば、以下の式(1)で算出される。
【0064】
Sn=Dn×C ・・・式(1)
【0065】
Snは、位置検出タイミングがnの時の消費カロリーを示す。Dnは、タイミングn-1からタイミングnまでの間に、デバイス100が移動した距離を示す。また、Cは、係数を示す。消費カロリーは、デバイスの移動距離に係数を乗じた値とする。
【0066】
なお、処理S104-2においては、タイミングn-1からタイミングnまでの間に消費されたカロリーを算出するが、例えば、タイミング0からタイミングnまでの間の合計消費カロリー(各タイミング間の消費カロリーの合計)を算出してもよい。処理S104-2において合計消費カロリーを算出する場合、以降で説明する処理S104-12における消費カロリーの合計の算出は行わなくてもよい。
【0067】
デバイス100は、デバイス位置に応じて、仮想空間画像を生成する(S104-3)。デバイス100が移動すると、ユーザの視点も変化するため、デバイス100は、カメラで撮影した映像に応じた仮想空間画像を生成する。
【0068】
また、デバイス100は、デバイス位置に応じて、ターゲット画像を生成する(S104-4)。
【0069】
また、デバイス100は、デバイス100のカメラで撮影した画像を使用し、実空間の解析を行う(S104-5)。実空間の解析とは、例えば、実空間の画像から実空間に存在する物体を解析し、解析結果として実空間に存在する物体を認定する。さらに、実空間の解析の結果に基づき、ユーザの移動や動作に影響を与える障害物となるか否かを判定する処理である。デバイス100は、例えば、実空間に存在する椅子や机、又はユーザ以外の人物などを、障害物であると判定する。また、デバイス100は、実空間に存在する物体の大きさ、動き、形状、もしくはこれらの組み合わせに基づき、障害物であるか否かを判定してもよい。デバイス100は、例えば、物体の高さが所定以上の高さである場合、障害物であると判定する。
【0070】
なお、実空間の解析は、上述した実空間の画像のみならず、他のセンサ等を利用して行ってもよい。デバイス100が、例えば、赤外線やレーダー等で実空間上の物体の形状、大きさ、材質などの情報を取得するサンサを備える場合、当該センサで取得した情報に基づき、実空間の解析を行ってもよい。
【0071】
そして、デバイス100は、解析結果に基づき、AR画像を生成する(S104-6)。デバイス100は、例えば、生成した仮想空間の画像、ターゲット画像、及び撮影した映像を合成した画像を生成する。そして、デバイス100は、解析結果として障害物と判定した物を、障害物とユーザが理解できる形式で、合成した画像に反映し、AR画像を生成する。障害物とユーザが理解できる形式とは、障害物を強調表示した映像や、ユーザが危険であると認識できる仮想物体などの映像である。また、障害物とユーザが理解できる形式とは、ユーザが障害物の方に移動しないようにするための警告メッセージの表示であってもよい。
【0072】
図8は、実空間に障害物が存在する場合のAR画像(合成画像)の例を示す図である。
図8(A)は、実空間の画像(映像)である。デバイス100は、例えば、右端に位置する椅子(範囲X1内に存在)を、障害物と認定する。そして、デバイス100は、
図8(B)に示すように、範囲X1にユーザが動かないように、ターゲットT1を矢印A2の方向に移動させる(蹴り出す)。また、デバイス100は、範囲X1に障害物があることや、範囲X1に移動しないように促すようなメッセージを、表示部に表示してもよい。
【0073】
デバイス100は、デバイス位置に応じて、仮想空間上にヒットボックスを生成する(S104-7)。ヒットボックスは、ユーザがターゲットを確保することが可能な領域であって、例えば、直方体や球で囲まれる範囲である。
【0074】
なお、第1の実施の形態においては、AR画像にてAR空間をユーザに認識させているが、他の手段によってユーザにAR空間を認識させてもよい。デバイス100は、音声を用いて、AR空間を表現してもよい。デバイス100は、例えば、ターゲットが右上方向に動くAR画像を表示することに代替し、右上方向に移動するよう指示する音声を、デバイス100が有する音声出力部(例えばスピーカ、イヤホンなど:図示しない)を通じて出力することで、ユーザに指示してもよい。また、デバイス100は、ターゲットが右上にある(又は移動する)ことがわかるよう、右上方向から聞こえるように音声を出力してもよい。例えば、右上方向から聞こえるように音声を出力することは、実際に右上方向から音声を出力してもよいし、音を特殊加工(例えば、音の強弱や周波数の加工、又は複数の音声出力部の組み合わせによる効果など)することで実現してもよい。
【0075】
デバイス100は、ターゲットがヒットボックス内に位置するか否かを判定する(S104-8)。デバイス100は、例えば、ターゲットの仮想空間上の中心位置が、ヒットボックスの座標の範囲内に位置するか否かを判定する。
【0076】
デバイス100は、ターゲットがヒットボックス内に位置すると判定すると(S104-8のYes)、成功と判定する(S104-9)。成功とは、例えば、ユーザによるターゲットの確保が成功したことを示し、例えば、サッカーゲームにおいてキーパーがサッカーボールのキャッチに成功したことを示す。
【0077】
一方、デバイス100は、ターゲットがヒットボックス内に位置しないと判定すると(S104-8のNo)、失敗条件を満たすか否かを判定する(S104-10)。失敗条件とは、ユーザがターゲットの確保に失敗したことを満たすための条件である。失敗条件は、今後成功には転じえない条件であり、例えば、所定時間(第3時間)が経過していること、あるいは、ターゲットが所定の位置(点、平面範囲、立体範囲)(例えば、下記で説明する垂直面)を通過していることである。
【0078】
デバイス100は、例えば、当該サッカーゲームにおいては、移動先地点を、デバイス100を含む垂直面、又はデバイス100より後ろ(移動元地点からデバイス100を挟んで移動先地点となる)の垂直面に設定する。垂直面とは、水平面と90度の面であり、デバイス100の正面向きの面である。サッカーゲーム(特にペナルティキック)の特性として、ユーザ(キーパー)は前に動くことはせず、上下左右方向に移動する。そのため、移動先地点を上述した垂直面に設定することで、デバイス100は、より適切にユーザの移動先を想定し、ユーザを左右上下に動かすよう促すことができる。
【0079】
デバイス100は、失敗条件を満たすと判定すると(S104-10のYes)、失敗と判定する(S104-11)。失敗とは、例えば、ユーザによるターゲットの確保が失敗したことを示し、例えば、サッカーゲームにおいてキーパーがサッカーボールをキャッチできず、相手にゴールを許したことを示す。
【0080】
一方、デバイス100は、失敗条件を満たさないと判定すると(S104-10のNo)、再度デバイスの位置検出を行い、消費カロリーを算出し(S104-2)、AR画像の再生成(処理S104-3~処理S104-7)を行う。このように、デバイス100は、成功又は失敗が確定するまで、消費カロリーの算出、及びAR画像の再生成を繰り替える。この繰り返し処理は、例えば、1秒間に所定回数(例えば、30回)行われる。
【0081】
デバイス100は、成功又は失敗が決定すると、消費カロリーの合計を算出し、画面上に表示し(S104-12)、ゲーム処理S104を終了する。ここで算出する消費カロリーの合計は、ゲームを1回実行する間で消費されるカロリーである。
【0082】
図9は、ゲーム終了時に表示される画面の例を示す図である。
図9(A)は、ゲームが成功したことを示す成功画面である。成功画面(判定結果画像)では、例えば、中央部分ゲームが成功した旨の「GOOD!」を表示する。
図9(B)は、ゲームが失敗したことを示す失敗画面である。失敗画面(判定結果画像)では、例えば、中央部分ゲームが失敗した旨の「MISS」を表示する。また、成功画面及び失敗画面の両方において、右上に当該ゲーム実施のよりユーザが消費した消費カロリーが表示される。
【0083】
<仮想空間地面位置決定処理>
図10は、仮想空間地面位置決定処理S1030の処理フローチャートの例を示す図である。デバイス100は、仮想空間地面位置決定処理S1030において、デバイス位置検出を行う(S1030-1)。デバイス位置検出は、デバイス100の位置や傾きを検出する処理であり、例えば、ゲーム処理S104における処理S104-1と同じである。
【0084】
デバイス100は、検出したデバイス100の位置から所定距離(例えば、130cm)だけ下方の位置の水平面に、仮想空間の地面を生成(設定)し(S1030-2)、仮想空間地面位置決定処理S1030を終了する。この時生成する仮想空間の地面は、範囲は無限(地面の範囲を設定しない)であってもよいし、ユーザが実空間上を所定時間内に移動可能である距離に基づき算出した範囲であってもよい。
【0085】
仮想空間の地面を生成(設定)する処理としては、例えば、平面認識処理を行い実際の地面や床を検出し、検出した地面や床を仮想空間の地面とする処理がある。しかし、平面認識は、一般に時間がかかったり、地面の状態によっては、所定時間経過しても地面や床を検出できなかったりする場合がある。
【0086】
ヘルスケア処理において平面認識処理による仮想空間の地面生成を行う場合、ユーザがゲームを開始できなかったり、ゲーム開始までに時間がかかったりする場合があり、ユーザビリティが低下する。そこで、本実施の形態において、デバイス100は、仮想空間地面位置決定処理S1030で仮想空間の地面を生成することで、早期に仮想空間の地面を生成することができ、ユーザビリティの低下を防止することができる。
【0087】
なお、所定距離下方における所定距離は、デバイス100がユーザの目の前に位置することを仮定した、目より下から足元までのユーザの長さを想定した距離である。所定距離は、例えば、ユーザの身長に応じて変更することで、より現実空間の地面や床に近い位置に、仮想空間の地面を生成することができる。
【0088】
<ターゲット開始位置決定処理>
図11は、ターゲット開始位置決定処理S1031の処理フローチャートの例を示す図である。デバイス100は、ターゲット開始位置決定処理S1031において、デバイス位置検出を行う(S1031-1)。デバイス位置検出は、デバイス100の位置や傾きを検出する処理であり、例えば、ゲーム処理S104における処理S104-1と同じである。
【0089】
デバイス100は、デバイス100の傾きが閾値(傾き閾値)以内か否かを確認する(S1031-2)。デバイス100は、デバイス100の傾きが閾値より大きい場合(S1031-2のNo)、ユーザがデバイス100を目の前に移動させ、デバイス100のゲーム画面を視聴している状態ではないとみなし、ゲームを開始させずに、デバイス100の傾きが閾値以内になるのを待ち受ける。
【0090】
一方、デバイス100は、デバイス100の傾きが閾値以内になると(S1031-2のYes)、ユーザがゲームを開始する準備が整ったとみなし、開始ボタンを押下可能状態にし、画面上に表示する(S1031-3)。
【0091】
そして、デバイス100は、開始ボタンが押下されるのを待ち受ける(S1031-4のNo)。デバイス100は、開始ボタンが押下されたことを検出すると(S1031-4のYes)、開始ボタン押下時(または現在)のデバイス100の正面位置に、ターゲットの開始位置を決定する(S1031-5)。すなわち、デバイス100は、デバイスの正面方向を決定することで、仮想空間上のターゲットの位置する方向(方角)を決定することができる。
【0092】
つまり、デバイス100は、開始ボタン押下時のデバイス位置に基づいてゲーム空間を生成することで、ターゲットの開始位置や、ターゲットが移動しない場合のターゲットの位置、又は、ターゲットの移動範囲など、ターゲットの変化の起点や度合いを決定することができる。
【0093】
そして、デバイス100は、仮想空間の地面以外のオブジェクトを生成し、表示し(S1031-6)、ターゲット開始位置決定処理を終了する。仮想空間の地面以外のオブジェクトは、例えばサッカーゲームの場合、背景となる実空間の映像、サッカーボール、キッカー、サッカーのフィールド(ペナルティキックのラインなど)である。また、ゲームを開始する旨のメッセージ等を表示してもよい。
【0094】
ターゲットの開始位置を決定する方法として、例えば、仮想空間の地面生成と同時に行う方法もある。しかし、仮想空間の地面生成時には、ユーザがどの方向に向いてゲームを開始するかは確定しておらず、ゲームの狙いとは異なる位置にターゲット開始位置が設定されてしまう場合がある。そこで、ターゲット開始位置決定処理S1031において、デバイス100は、デバイス100の傾きが閾値以内になるまで、開始ボタンを押下不可にすることで、ある程度ユーザの正面にデバイス100が向くまでは、ゲームを開始させないようにする。さらに、デバイス100は、ユーザが開始ボタンを押下するまでターゲットの開始位置を決定しないことで、確実にユーザのゲーム開始の準備が整ったタイミングでターゲットの開始位置を決定することができる。すなわち、ユーザは、例えば、西日の方向を向いてプレイするとまぶしい場合や、横方向に狭い場所でプレイ開始すると壁に衝突してしまう場合など、ユーザがゲームを行うのに快適でない場所や方角を、プレビューしながら回避し、より快適なゲーム環境を選択することができる。
【0095】
[第2の実施の形態]
次に、第2の実施の形態について説明する。
【0096】
第2の実施の形態では、ゲーム処理S104において、さらに、反則判定処理S105を行う。反則判定処理S105は、例えば、ゲームの開始前(ターゲットの移動が開始される前)からゲーム開始時(ターゲットの移動が開始された時)までの間に実行される処理であって、デバイス100とターゲットの距離が所定距離より短くなっている場合に、なんらかのペナルティを科す処理である。
【0097】
<反則判定処理>
図12は、反則判定処理S105の処理フローチャートの例を示す図である。デバイス100は、反則判定処理S105において、デバイス位置を検出する(S105-1)。デバイス位置検出は、デバイス100の位置や傾きを検出する処理であり、例えば、ゲーム処理S104における処理S104-1と同じである。
【0098】
デバイス100は、デバイス100とターゲット開始位置(移動元地点)との距離を算出する(S105-2)。デバイス100は、例えば、デバイス100の仮想空間内の座標のX、Y、Z成分からターゲット開始位置の座標のX、Y、Z成分をそれぞれ減算し、減算した値をそれぞれ二乗し、それぞれ二乗した値を加算し、加算した値の平方根を距離として算出する。
【0099】
デバイス100は、算出した距離が閾値(第2閾値)以内か否かを判定する(S105-3)。デバイス100は、算出した距離が閾値以内である場合(S105-3のYes)、ペナルティを実施し(S105-4)、再度デバイス位置検出S105-1から処理を繰り返す。ペナルティは、ユーザに対して不利な効果を与える制御であり、例えば、ターゲットの移動を開始しないことや、デバイス100の位置に関わらずターゲットの確保を失敗した状態にすることである。距離が閾値以内の場合にペナルティを科す理由は、デバイス100がターゲットにある程度近くなると、デバイス100を動かさなくてもターゲットを確保できるため、ユーザはターゲットの確保にほぼ確実に成功し、ゲーム性が失われるためである。
【0100】
一方、デバイス100は、算出した距離が閾値以内でない場合(S105-3のNo)、ペナルティを解除し(S105-5)、再度デバイス位置検出S105-1から処理を繰り返す。
【0101】
[その他の実施の形態]
次に、その他の実施の形態について説明する。
【0102】
図13は、仮想空間上のターゲットが表示されない領域に移動した場合の例を示す図である。
図13において、点線で囲まれる領域V1は、合成空間である。表示部150には表示される範囲は限度があり、ターゲットが大きく移動した場合、
図12に示すように表示部150内にターゲットが表示されない場合がある。この場合、デバイス100は、AR画像の一部に、
図12に示すように、矢印A1を表示する。矢印A1は、表示されていないターゲットの位置を指し示すものである。デバイス100は、矢印A1を示すことで、ターゲットが表示部に表示されなくなっても、ユーザにターゲットを追従させることができる。
【0103】
図14は、ゲーム処理がエアロビクスである場合の例を示す図である。第1の実施の形態においては、ターゲットが仮想空間の奥から手前方向に移動したが、例えば、上下左右方向など様々な方向に移動したり、仮想空間内を回転したりしてもよい。デバイス100は、例えば、
図14に示すように、ターゲットを矢印A3にし、矢印A3の方向を変化させたり、矢印A3を動かしたりすることで、ユーザに矢印の移動方向又は矢印の向きにデバイス100を動かすよう促す。また、ユーザに対して、全身(又は腰)を回転させたり、後ろに向かせたりなど、ターゲットを用いて指示をしてもよい。なお、
図14において、矢印A3の一部が表示部150の範囲外に位置するが、ユーザがデバイス100を動かすことで、表示部の範囲外の矢印A3を表示部に表示することができる。
【0104】
また、ターゲットは、
図14における音符の絵M1であってもよい。音符の絵M1は、所定時間表示され、削除(非表示)される。ユーザは、デバイス100を音符の絵が表示されている間に、音符の絵の方向に動かすことで、運動を行う。音符の絵M13は、ターゲットの一例であって、音符の絵に限定されない。また、音符の絵M1は、例えば、所定時間の間、特定の色に変化してもよいし、光るなどの特殊効果を帯びてもよい。ユーザは、音符の絵M1が特定の色の間、又は特殊効果を帯びている間に、デバイス100を音符の絵の方向に動かすことで、運動を行うことができる。なお、ターゲットの表示が開始されるタイミングを、表示開始タイミングと呼び、ターゲットの表示終了し、非表示となるタイミングを、表示終了タイミングと呼ぶ場合がある。
【0105】
さらに、音符の絵M1の出現する位置は、ユーザに要求する運動量に基づいて、他の音符絵M1の位置との関係で決まってもよい。デバイス100は、例えば、ユーザに要求する運動量が多いほど、ある音符の絵の位置(第1位置)と、別の音符の絵の位置(第2位置)間の距離(位置間距離)を長くする。デバイス100は、例えば、ユーザに要求する運動量が少ないほど、ある音符の絵の位置(第1位置)と、別の音符の絵の位置(第2位置)間の距離(位置間距離)を短くする。
【0106】
また、音符の絵M1の表示(色彩の変化の開始)、非表示(色彩の変化の終了)のタイミングを調整することで、ユーザを速く動くよう促したり、逆に遅く動くように促したりすることができ、ユーザの運動量を調整することができる。
【0107】
図15は、ターゲットT1以外の表示物を含む例を示す図である。
図15において、ターゲットT1は、ディフェンダーDF1である。ディフェンダーDF1は、例えば、サッカーゲームにおけるディフェンダーである。ユーザは、ディフェンダーDF1とは逆方向、又はディフェンダーDF1とぶつからない方向に、デバイス100を移動させる。第1の実施の形態に記載したターゲットT1の例は、サッカーボールであり、ユーザはキーパーの動きを行うことから、ヒットボックス内にターゲットT1が位置する場合に成功と判定したが、ディフェンダーDF1をターゲットとした場合、ヒットボックス内にディフェンダーDF1が位置した場合に失敗と判定する。判定の成功、失敗は、ターゲットを確保するゲームであるか、ターゲットを回避することを目的としたゲームであってもよい。また、判定の成功、失敗は、複数のターゲットが存在する場合、ターゲットごとに異なる判定であってもよい。
【0108】
図16は、ターゲットを回避するゲームの例を示す図である。例えば、ターゲットは、幽霊G1である。幽霊G1は、仮想空間上を動き回り、ユーザは、幽霊G1にぶつからないように仮想空間に対応する現実空間を移動する(逃げる)。この場合、ターゲットがヒットボックス内に位置する場合、失敗判定(幽霊に捕まったと判定)となってもよい。さらに、デバイス100は、デバイス100の移動速度が所定速度以上ある場合、幽霊G1に見つかったとみなし、幽霊G1がデバイス100を追ってくるようにしてもよい。これにより、デバイス100は、ユーザが幽霊G1に追われないように、ユーザにデバイス100をゆっくり(所定速度より低速で)動かすように促すことができる。
【0109】
なお、例えば、
図16において、ターゲットが幽霊G2に位置する場合、仮想空間上の幽霊G2の位置に対応する現実空間の幽霊G2の位置の方向から特殊音を鳴らし、幽霊G2の位置を聴覚でユーザに教えてもよい。また、
図13に示すように、幽霊G2の位置を示す矢印等を表示してもよい。
【0110】
さらに、幽霊が消えたり現れたりすることを表現する場合、幽霊G1が非表示である場合がある。この場合も、幽霊G2の例と同様に、特殊音を使用することで、幽霊G1の位置をユーザに通知してもよい。
【0111】
また、複数ユーザで同時にゲームをプレイする場合、他ユーザが幽霊G1に確保された時、仮想空間上の幽霊G1の位置に対応する現実空間の幽霊G1の位置の方向から特殊音を鳴らすことで、他ユーザが幽霊G1に確保されたことを、ユーザに通知してもよい。
【0112】
また、第1の実施の形態においては、成功又は失敗判定を1回行うと、ゲーム処理を終了するが、成功又は失敗判定を複数回行ってもよい。例えば、上述したように矢印をデバイス100が追従するゲームでは、追従できている間は成功(又は追従成功中)と判定し、追従できていない間は失敗(又は追従失敗中)と判定してもよい。この場合、ゲーム終了の条件は、例えば、所定時間が経過することや、所定時間以上失敗が継続することなどである。
【0113】
また、第1の実施の形態においては、ターゲットの例としてサッカーボールを使用したが、例えば、ターゲットは風船のようにある不規則に移動する物体であってもよい。また、ターゲットは、例えば、ボクシングのグローブであり、ユーザはデバイスをミットと見立ててもよい。
【0114】
また、第1の実施の形態においては、1回の成功又は失敗でゲームを終了するが、ゲームを複数回行ってもよい。例えば、N回(例えば5回)失敗するまで、ゲームを繰り返してもよい。また、例えば、失敗及び成功に関わらず、合計M回だけゲームを繰り返してもよい。
【0115】
さらに、例えば、ゲームの成功又は失敗に基づきゲームの実行結果をスコア化し、サーバでスコアを一括管理するなどし、ユーザ同士でスコアを競わせてもよい。また、例えば、赤外線やブルートゥース(登録商標)などを使用して近距離通信し、同じAR空間(AR画像やターゲットを含む)を共有してもよい。さらに、サーバを介して、遠隔地で同じAR空間を共有してもよい。これにより、ユーザがゲームを実行する意欲が増進し、より運動を促すことができる。なお、スコアに代えて消費カロリーや累積カロリーをユーザに競わせてもよい。
【符号の説明】
【0116】
100 :デバイス
110 :CPU
120 :ストレージ
121 :ヘルスケアプログラム
122 :ゲームモジュール
1221 :反則判定サブモジュール
1222 :仮想空間地面位置決定サブモジュール
1223 :ターゲット開始位置決定サブモジュール
123 :カロリー関連モジュール
1231 :累積カロリー表示サブモジュール
1232 :消費カロリー表示サブモジュール
124 :位置検出プログラム
130 :メモリ
140 :位置検出装置
150 :表示装置(表示部)
160 :カメラ