(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】アニメーション生成装置、アニメーション生成方法及びプログラム
(51)【国際特許分類】
G06T 13/40 20110101AFI20240918BHJP
A63B 69/00 20060101ALI20240918BHJP
G06T 19/00 20110101ALI20240918BHJP
【FI】
G06T13/40
A63B69/00 A
G06T19/00 A
(21)【出願番号】P 2022032516
(22)【出願日】2022-03-03
(62)【分割の表示】P 2020053112の分割
【原出願日】2020-03-24
【審査請求日】2022-04-01
(73)【特許権者】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】100095407
【氏名又は名称】木村 満
(72)【発明者】
【氏名】東 侑之介
(72)【発明者】
【氏名】佐々木 雅昭
【審査官】鈴木 圭一郎
(56)【参考文献】
【文献】特開平10-113343(JP,A)
【文献】特開2016-077346(JP,A)
【文献】米国特許出願公開第2020/0005670(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 13/40
A63B 69/00
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
ユーザが行なった運動又は前記ユーザが行なっている前記運動に関する第一の運動データを取得し、
前記取得された第一の運動データに基づいて、前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動の特徴点を検出し、
前記検出された前記特徴点に対応する原因情報を取得し、
前記取得された前記第一の運動データ及び前記原因情報に基づいた表示形式で、前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動を示すアニメーションを生成し、
前記生成されたアニメーションを出力部に出力させる制御部を有し、
前記制御部は、
前記出力部にアニメーションを出力させた後、ユーザが行なった運動又は前記ユーザが行なっている前記運動に関する第二の運動データを再度取得し、
前記再度取得された第二の運動データに基づいて、前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動の特徴点を検出し、
前記第一の運動データに基づいて検出された特徴点、及び第二の運動データに基づいて検出された特徴点のそれぞれに対して、予め用意された前記運動の手本データとの差分に基づいてスコアを算出し、
前記第二の運動データに基づいて検出された特徴点のスコアが、前記第一の運動データに基づいて検出された特徴点のスコアから改善されていないと判定された場合、前記アニメーション生成に用いた原因情報とは異なる原因情報を、前記第二の運動データに基づいて再度検出する、
ことを特徴とするアニメーション生成装置。
【請求項2】
前記制御部は、前記取得された第一の運動データと予め用意された前記運動の手本データとの差分に基づいて取得されたスコアが、所定の閾値未満となる特徴点を検出することを特徴とする請求項1
に記載のアニメーション生成装置。
【請求項3】
前記スコアが所定の閾値未満となる複数の特徴点が検出された場合、前記複数の特徴点の中で最低の特徴点を選択し、
前記選択された特徴点に対応する原因情報を取得する、
ことを特徴とする請求項
2に記載のアニメーション生成装置。
【請求項4】
前記制御部は、前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動を示すアニメーション、及び、前記手本データに基づくアニメーションを夫々識別可能な表示形態となるよう生成することを特徴とする請求項
2又は
3に記載のアニメーション生成装置。
【請求項5】
前記生成されたアニメーションを出力する出力部を更に備えることを特徴とする請求項1から
4のいずれか1項に記載のアニメーション生成装置。
【請求項6】
前記制御部は、
前記特徴点に対応して記憶される複数の相異なる原因情報から1つの原因情報を取得し、
前記取得された前記第一の運動データ及び前記1つの原因情報に基づいて、前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動を示すアニメーションを生成する、
ことを特徴とする請求項1から
5のいずれか1項に記載のアニメーション生成装置。
【請求項7】
アニメーション生成装置が実行するアニメーション生成方法であって、
ユーザが行なった運動又は前記ユーザが行なっている前記運動に関する第一の運動データを取得する運動データ取得ステップと、
前記運動データ取得ステップにて取得された第一の運動データに基づいて、前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動の特徴点を検出する検出ステップと、
前記検出された前記特徴点に対応する原因情報を取得する原因情報取得ステップと、
前記取得された前記第一の運動データ及び前記原因情報に基づいた表示形式で、前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動を示すアニメーションを生成し、前記生成されたアニメーションを出力部に出力させる制御ステップと、
を含み、
前記制御ステップは、
前記出力部にアニメーションを出力させた後、ユーザが行なった運動又は前記ユーザが行なっている前記運動に関する第二の運動データを再度取得し、
前記再度取得された第二の運動データに基づいて、前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動の特徴点を検出し、
前記第一の運動データに基づいて検出された特徴点、及び第二の運動データに基づいて検出された特徴点のそれぞれに対して、予め用意された前記運動の手本データとの差分に基づいてスコアを算出し、
前記第二の運動データに基づいて検出された特徴点のスコアが、前記第一の運動データに基づいて検出された特徴点のスコアから改善されていないと判定された場合、前記アニメーション生成に用いた原因情報とは異なる原因情報を、前記第二の運動データに基づいて再度検出する、
ことを特徴とするアニメーション生成方法。
【請求項8】
コンピュータを、
ユーザが行なった運動又は前記ユーザが行なっている前記運動に関する第一の運動データを取得する運動データ取得手段、
前記運動データ取得手段が取得した第一の運動データに基づいて、前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動の特徴点を検出する検出手段、
前記検出された前記特徴点に対応する原因情報を取得する原因情報取得手段、
前記取得された前記第一の運動データ及び前記原因情報に基づいた表示形式で、前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動を示すアニメーションを生成し、前記生成されたアニメーションを出力部に出力させる制御手段、
として機能させ、
前記制御手段は、
前記出力部にアニメーションを出力させた後、ユーザが行なった運動又は前記ユーザが行なっている前記運動に関する第二の運動データを再度取得し、
前記再度取得された第二の運動データに基づいて、前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動の特徴点を検出し、
前記第一の運動データに基づいて検出された特徴点、及び第二の運動データに基づいて検出された特徴点のそれぞれに対して、予め用意された前記運動の手本データとの差分に基づいてスコアを算出し、
前記第二の運動データに基づいて検出された特徴点のスコアが、前記第一の運動データに基づいて検出された特徴点のスコアから改善されていないと判定された場合、前記アニメーション生成に用いた原因情報とは異なる原因情報を、前記第二の運動データに基づいて再度検出する、
ためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、アニメーション生成装置、アニメーション生成方法及びプログラムに関する。
【背景技術】
【0002】
運動している様子をアニメーションで表現するシステムとして、例えば特許文献1には、ユーザのフォームを再現したアニメーションと手本のアニメーションとを比較し、手本と異なっている部位を強調して伝える、という運動支援システムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に開示されている運動支援システムは、手本と異なっている部位を強調して伝えることにより、運動を支援するということであるが、実際にはユーザにとっては、手本と異なっている部位がわかっただけでは、改善方法まではわからないという問題がある。例えば、ユーザが「ランニング中の歩幅(ストライド)が手本と比べて小さいです」と提示されただけでは、その具体的な直し方(ストライドの広げ方)まではわからない。また、ストライドを広げたいときにユーザが知らなくてはいけない部位は、手本との差が生じている部位だけではなく、それを直すために意識しなくてはいけない部位、である。
【0005】
本発明は、上記実情に鑑みてなされたものであり、運動における改善ポイント等をわかりやすく提示することができるアニメーション生成装置、アニメーション生成方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明に係るアニメーション生成装置は、
ユーザが行なった運動又は前記ユーザが行なっている前記運動に関する第一の運動データを取得し、
前記取得された第一の運動データに基づいて、前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動の特徴点を検出し、
前記検出された前記特徴点に対応する原因情報を取得し、
前記取得された前記第一の運動データ及び前記原因情報に基づいた表示形式で、前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動を示すアニメーションを生成し、
前記生成されたアニメーションを出力部に出力させる制御部を有し、
前記制御部は、
前記出力部にアニメーションを出力させた後、ユーザが行なった運動又は前記ユーザが行なっている前記運動に関する第二の運動データを再度取得し、
前記再度取得された第二の運動データに基づいて、前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動の特徴点を検出し、
前記第一の運動データに基づいて検出された特徴点、及び第二の運動データに基づいて検出された特徴点のそれぞれに対して、予め用意された前記運動の手本データとの差分に基づいてスコアを算出し、
前記第二の運動データに基づいて検出された特徴点のスコアが、前記第一の運動データに基づいて検出された特徴点のスコアから改善されていないと判定された場合、前記アニメーション生成に用いた原因情報とは異なる原因情報を、前記第二の運動データに基づいて再度検出する。
【発明の効果】
【0007】
本発明に従うと、運動における改善ポイント等をわかりやすく提示することができる。
【図面の簡単な説明】
【0008】
【
図1】第1実施形態に係るアニメーション生成システムの構成例を示す図である。
【
図2】第1実施形態に係るアニメーション生成処理のフローチャートである。
【
図3】(a)はユーザのフォームと手本のフォームのそれぞれの例を説明する図であり、(b)は腰の回転を真上から見たアニメーションの例を説明する図である。
【
図4】(a)は腰の回転を真上から見たアニメーションの例を説明する図であり、(b)は腰と軸足の関係を真横から見たアニメーションの例を説明する図である。
【
図5】第1実施形態の変形例に係るアニメーション生成処理のフローチャートである。
【
図6】(a)は腕の振りを真横から見たアニメーションの例を説明する図であり、(b)は腕の振りを真上から見たアニメーションの例を説明する図である。
【
図7】第2実施形態に係るアニメーション生成システムの構成例を示す図である。
【
図8】第2実施形態に係るアニメーション生成処理のフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について、図面を参照して説明する。なお、図中同一または相当部分には同一符号を付す。
【0010】
(第1実施形態)
本発明の第1実施形態に係るアニメーション生成システム1000は、ユーザの体の動き(運動フォーム等)を表現するアニメーションを生成するシステムである。アニメーション生成システム1000は、
図1に示すように、データ送信装置100と、アニメーション生成装置200と、を備える。
【0011】
データ送信装置100は、例えば、ユーザの体幹に沿った腰付近に装着する小型のウェアラブル機器である。データ送信装置100は、
図1に示すように、制御部110と、記憶部120と、通信部131と、入力部132と、出力部133と、センサ部134と、を備える。データ送信装置100は、センサ部134で検出したユーザの体の動きを示すデータをアニメーション生成装置200に通信部131を介して送信する。
【0012】
制御部110は、CPU(Central Processing Unit)等を備える。制御部110は、記憶部120に記憶されたプログラムを実行することにより、後述する運動データ送信部111として機能する。
【0013】
記憶部120は、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等を備え、制御部110のCPUが実行するプログラム及び必要なデータを記憶する。なお、データ送信装置100の電源OFFの後も保存しておきたいデータに関しては、フラッシュメモリ等の不揮発性メモリに保存される。
【0014】
通信部131は、無線通信モジュールやアンテナを備え、アニメーション生成装置200と無線によりデータ通信する。また、通信部131は、アニメーション生成装置200とのデータ通信において無線方式に限定されず、USB(Universal Serial Bus)等の有線によるインターフェースを使用して、データ通信を行ってもよい。
【0015】
入力部132は、押しボタンスイッチ等を備え、例えば「計測開始」、「データ送信」等の、ユーザからの入力指示を受け付ける。
【0016】
出力部133は、LED(Light Emitting Diode)、液晶表示パネル、有機EL(Electro-Luminescence)表示パネル等を備え、データ送信装置100の動作状態(電源ON、計測中、データ送信中等)等を表示する。また出力部133は、スピーカー等の音声出力デバイスを備え、データ送信装置100の動作状態等を示す情報を音声情報として出力する。
【0017】
センサ部134は、加速度センサ、ジャイロ(角速度)センサ、GPS(Global Positioning System)受信機等を備え、データ送信装置100を装着しているユーザの体の動きやユーザの現在位置等を検出する。センサ部134は、加速度センサで検出した加速度データ、ジャイロセンサで検出した角速度データ、並びにGPS受信機で受信した時刻データ及び位置データ等(以後、これらをまとめて「運動データ」と称する)を、制御部110に送信する。なお、データ送信装置100は、例えば腰に装着されるセンサ部134A、手首に装着されるセンサ部134B、足首に装着されるセンサ部134C等、複数のセンサ部134を備えてもよい。また、制御部110、記憶部120、通信部131、入力部132、出力部133及びセンサ部134は、バスラインBLを介して相互に接続されている。
【0018】
次に、制御部110の機能について説明する。制御部110は、記憶部120に記憶されたプログラムを実行することにより、運動データ送信部111として機能する。
【0019】
運動データ送信部111は、センサ部134で検出した運動データ(ユーザの動きを示す、加速度データ、角速度データ、時刻データ、位置データ等)を、通信部131を介して、アニメーション生成装置200に送信する。運動データ送信部111は、さらに、位置データから算出される移動距離データ、時刻データと位置データとから算出される速度データ、加速度データ等も、運動データとしてアニメーション生成装置200に送信してもよい。
【0020】
データ送信装置100において、センサ部134で運動データを検出するタイミングや、運動データ送信部111が運動データをアニメーション生成装置200に送信するタイミングは任意である。例えば、データ送信装置100は、入力部132を介してユーザから「計測開始」の入力指示を受け付けるとセンサ部134での運動データの検出を開始し、ユーザから「計測終了」の入力指示を受け付けるとセンサ部134での運動データの検出を終了してもよい。また、ユーザからの入力指示によらず、データ送信装置100は、電源が入っている間は継続してセンサ部134で運動データを検出し続けてもよい。
【0021】
運動データの送信に関しては、例えば、データ送信装置100は、入力部132を介してユーザから「データ送信」の入力指示を受け付けると、運動データ送信部111が運動データを、通信部131を介して、アニメーション生成装置200に送信してもよい。また、例えば、アニメーション生成装置200から送信された運動データ送信要求パケットを受信することにより、運動データ送信部111は、運動データを、通信部131を介して、アニメーション生成装置200に送信してもよい。
【0022】
次に、アニメーション生成装置200について説明する。アニメーション生成装置200は、例えばPC(Personal Computer)、タブレット端末、スマートフォン、スマートウォッチ等である。アニメーション生成装置200は、
図1に示すように、制御部210と、記憶部220と、通信部231と、入力部232と、出力部233と、を備える。アニメーション生成装置200は、データ送信装置100が送信した運動データに基づき、ユーザの体の動きを表現するアニメーションを生成し、ユーザに提示する。
【0023】
制御部210は、CPU等を備える。制御部210は、記憶部220に記憶されたプログラムを実行することにより、後述する各部(運動データ取得部211、特徴点検出部212、原因取得部213、アニメーション生成部214)として機能する。
【0024】
記憶部220は、ROM、RAM、フラッシュメモリ等を備え、制御部210のCPUが実行するプログラム及び必要なデータを記憶する。なお、アニメーション生成装置200の電源OFFの後も保存しておきたいデータに関しては、フラッシュメモリ等の不揮発性メモリに保存される。また、記憶部220は、手本DB(DataBase)221及び原因DB222を記憶している。
【0025】
手本DB221は、各種運動(ランニング、野球・テニス・ゴルフ等におけるスイング、サッカーにおけるキック、ボクシングにおけるパンチ等)の正しいフォームの手本となる運動データ(手本データ)を多数集めたデータベースである。手本DB221に記憶されている各手本データは、予め各運動のコーチ等から(例えば、当該コーチにデータ送信装置100を装着してランニング等をしてもらう等して)取得した運動データによって構成される。また、手本DB221に格納される各手本データの生成に関しては、必ずしもコーチ等にランニング等をしてもらう必要はなく、科学的に手本となる値に基づいて人工的に生成された手本データ、又は、例えば一般的な運動者から多数集めた運動データを解析することにより得られた運動データを手本データとしてもよい。
【0026】
原因DB222は、ユーザの運動(運動におけるフォーム等)の特徴点(ウィークポイント又はストロングポイント)が生じる原因のデータ(原因データ)を多数集めたデータベースである。原因DB222に記憶されている各原因データは、予め各運動のコーチ等から(例えば、当該コーチが各特徴点について指導している内容に基づいて)取得した情報、又は、運動データを解析することで得られた各特徴点に対する原因の情報によって構成される。原因DB222に格納される各原因データの生成に関しても、必ずしもコーチ等から指導内容を教示してもらう必要はなく、科学的に特徴点の生じる原因と考えられる内容に基づいて人工的に生成されてもよい。制御部210は、原因DB222を参照することにより、運動毎及び特徴点毎に、その特徴点が生じる原因を取得することができる。
【0027】
通信部231は、無線通信モジュールやアンテナを備え、データ送信装置100と無線によりデータ通信する。また、通信部231は、データ送信装置100とのデータ通信において無線方式に限定されず、USB等の有線によるインターフェースを使用して、データ通信を行ってもよい。
【0028】
入力部232は、スイッチ、タッチパネル、キーボード、マウス等を備え、例えば「アニメーション生成」等の、ユーザからの入力指示を受け付ける。
【0029】
出力部233は、液晶表示パネルや有機EL(Electro-Luminescence)表示パネル等を備え、例えば後述するアニメーション生成処理で生成されたアニメーションを表示する。また出力部233は、スピーカー等の音声出力デバイスを備え、アニメーション生成処理で生成されたアニメーションに関する音声等を出力する。
また、制御部210、記憶部220、通信部231、入力部232及び出力部233は、バスラインBLを介して相互に接続されている。
【0030】
次に、制御部210の機能について説明する。制御部210は、記憶部220に記憶されたプログラムを実行することにより、運動データ取得部211、特徴点検出部212、原因取得部213、アニメーション生成部214として機能する。
【0031】
運動データ取得部211は、通信部231を介して、データ送信装置100からユーザーの動きを示す運動データ(加速度データ、角速度データ、時刻データ、位置データ、移動距離データ、速度データ等)を取得する。これにより、運動データ取得部211は、ユーザが行なった運動又はユーザが行なっている運動に関する運動データを取得することができる。運動データ取得部211は、運動データ取得手段として機能する。
【0032】
特徴点検出部212は、ユーザによる運動に基づいて運動データ取得部211が取得した運動データと、手本DB221に記憶されている手本データと、に基づいて当該運動における当該ユーザの特徴点(ウィークポイント又はストロングポイント)を検出する。例えば、特徴点検出部212は、運動データ及び手本データのそれぞれから速度とストライド(ランニング中の歩幅)の比率を算出し、算出したそれぞれの比率を比較することにより、「速度に対してストライドが狭い」といったユーザの特徴点を検出する。
【0033】
より詳細には、特徴点検出部212は、様々な観点(ストライドの大きさ、腕の振りの大きさ、体の左右の揺れの大きさ、体の上下動の大きさ等)について、運動データから算出した値と手本データから算出した値に基づいて、当該観点のスコア(例えば、両者の値が完全に一致していればスコアの値が100になり、両者の値の差分が大きくなるほどスコアの値が小さくなる)を算出する。そして、算出したスコアが所定の閾値(例えば60)未満となる場合に、特徴点検出部212は、運動データから算出した値を当該観点におけるユーザの特徴点として検出する。
【0034】
原因取得部213は、特徴点検出部212が検出した特徴点が生じる原因(原因データ)を、原因DB222を参照して取得する。例えば、原因取得部213は、「速度に対してストライドが狭い」という特徴点に対して、その特徴点が生じる原因である「腰の水平回転が小さい」、「軸足のバランスが悪い」等の原因データを取得する。原因取得部213は、原因取得手段として機能する。
【0035】
アニメーション生成部214は、ユーザの運動データからユーザが行なった運動又はユーザが行なっている運動のアニメーション(ユーザアニメーション)を生成する。その際、アニメーション生成部214は、原因取得部213が取得した原因データに基づき、その原因が、ユーザに対して、わかりやすく提示されるようなユーザアニメーションを生成する。例えば、「腰の水平回転が小さい」という原因データに対しては、腰の水平回転を見やすくするために、腰の回転動作を容易に把握することができる真上から見下ろした視線方向でのアニメーションを生成する。また、アニメーション生成部214は、手本DB221に記憶されている手本データから運動の手本となるアニメーション(手本アニメーション)を生成する。アニメーション生成部214は、生成手段として機能する。
【0036】
次に、アニメーション生成装置200が実行するアニメーション生成処理について、
図2を参照して説明する。この処理は、ユーザが入力部232を介して「アニメーション生成」の指示を入力すると実行が開始される。ただし、ユーザはデータ送信装置100を装着し、事前に運動しておくか、または現在運動中であることにより、データ送信装置100が運動データを送信可能な状態である必要がある。
【0037】
まず、運動データ取得部211は、通信部231を介して、データ送信装置100から運動データを取得する(ステップS101)。例えば、アニメーション生成装置200がデータ送信装置100に運動データ送信要求パケットを送信することにより、データ送信装置100から運動データが送信され、それを受信することにより、運動データ取得部211は運動データを取得する。ここで取得される運動データは、ユーザが行なった運動又はユーザが行なっている運動に関する運動データである。ステップS101は、運動データ取得ステップとも呼ばれる。なお、データ送信装置100が常時運動データをアニメーション生成装置200に送信している等、運動データ取得部211が既に運動データを取得済みであるなら、ステップS101はスキップしてもよい。
【0038】
次に、特徴点検出部212は、運動データ取得部211が取得した運動データと、手本DB221に記憶されている手本データと、に基づき、ユーザによる当該運動の特徴点を検出し、当該特徴点のスコアを算出する(ステップS102)。具体的には、特徴点検出部212は、様々な観点(ストライドの大きさ、腕の振りの大きさ、体の左右の揺れの大きさ、体の上下動の大きさ等)において、運動データと手本データとに基づいて、当該観点におけるスコアを算出し、算出したスコアが所定の閾値未満となる場合に、運動データから算出した値を当該観点におけるユーザの特徴点として検出し、当該スコアを当該特徴点のスコアとする。
【0039】
各観点におけるスコアの値によっては、特徴点検出部212は、特徴点を複数検出する場合もあるし、1つも検出しない場合もある。
図2では示されていないが、もしステップS102で特徴点検出部212が1つも特徴点を検出しなかった場合は、制御部210は例えば出力部233に「あなたの運動フォームに問題はありません。」等を表示して、アニメーション生成処理を終了してもよい。また、特徴点が1つも検出されなかった場合は、特徴点検出部212は、スコアが最低となる観点において、運動データから算出された値をユーザの特徴点として検出して、以降の処理を進めてもよい。
【0040】
そして、特徴点検出部212は、スコアが最低の特徴点を着目する特徴点として選定する(ステップS103)。次に、制御部210は、着目する特徴点の原因の数をカウントする変数iを1に初期化する(ステップS104)。そして、原因取得部213は、着目する特徴点の原因の中からi番目の原因を取得する(ステップS105)。
【0041】
次に、アニメーション生成部214は、原因取得部213が取得した原因(i番目の原因)を示すために、当該原因がわかりやすく見える視線方向から見たアニメーションを生成し、出力部233に表示する(ステップS106)。ステップS106におけるアニメーションを生成する処理は、生成ステップとも呼ばれる。また、アニメーション生成部214は、生成したアニメーションを出力部233に表示する際、表示手段として機能する。
【0042】
ここで表示されるアニメーションについて補足説明する。例えば、
図3(a)には、運動データ取得部211が取得した運動データから得られるユーザのフォームの一例が実線で、手本データから得られる手本のフォームの一例が点線で、それぞれ示されている。そして、例えば、特徴点検出部212が検出した「速度に対してストライドが狭い」という着目する特徴点に対して、原因取得部213が取得した第1の原因が「腰の水平回転が小さい」である場合、アニメーション生成部214は、
図3(b)に示すように、腰の回転を真上(第1の視線方向)から見た実線によるユーザアニメーション(第1のユーザアニメーション)と点線による手本アニメーションを生成し、それぞれ出力部233に表示する。
【0043】
なお、
図3(b)では、ユーザアニメーションと手本アニメーションとがそれぞれ実線と点線とで表示されているが、これは一例である。アニメーション生成部214は、ユーザアニメーションと手本アニメーションとをそれぞれ色別(例えば青と赤等)や、表示形態別(例えばワイヤフレームモデルとサーフェイスモデル等)等、区別できるように任意の態様で表示してもよい。
【0044】
水平回転が小さいことは、真上から見た視線方向で表現されるアニメーションで提示することにより、ユーザに理解しやすく示すことができる。
図3(b)では、さらに、腰の部分を一点鎖線の楕円で囲うことにより、ユーザが腰の回転に容易に着目できるようにしている。このように、ユーザが着目すべきユーザの部位を特定するために強調表示を行い、ユーザによりわかりやすく特徴点の原因を示してもよい。また、このような表示方法としては、強調表示だけでなく、アニメーション生成部214は、ユーザの運動データによる当該部位の動きと手本データによる当該部位の動きとの違いを際立たせるように、両者の動きが異なるアニメーションを生成してもよい。
【0045】
本実施形態では、ステップS106でアニメーションを提示した後、ユーザは、提示されたアニメーションを参考にして、再度運動を行うことが想定されている。
図2では記載を省略しているが、例えば、制御部210は、ステップS106でアニメーションを提示したら、一定時間(例えば3分間)待機し、ステップS107以降の処理に進んでもよい。また、ユーザが再度運動を行った後に、入力部232から「運動データ取得」等の指示を入力することにより、制御部210はステップS107以降の処理に進むことにしてもよい。
【0046】
そして、運動データ取得部211は、通信部231を介して、データ送信装置100から運動データを取得し(ステップS107)、特徴点検出部212は、運動データ取得部211が取得した運動データと、手本DB221に記憶されている手本データと、に基づき、ユーザによる当該運動の特徴点を検出し、当該特徴点のスコアを算出する(ステップS108)。これらの処理は、ステップS101及びステップS102の処理と同様である。
【0047】
次に、制御部210は、ステップS103で選定された着目する特徴点について、ステップS108で算出されたスコアが、当初の(ステップS102で算出された)スコアに比べて改善されたか否かを判定する(ステップS109)。もし、ステップS108では着目する特徴点が特徴点として検出されなかった場合も、スコアが改善されているなら、ステップS109での判定はYes(改善された)となる。
【0048】
スコアが改善された場合(ステップS109;Yes)、ステップS103に戻る。スコアが改善されなければ(ステップS109;No)、制御部210は、変数iの値を1増やす(ステップS110)。
【0049】
そして、制御部210は、変数iの値が、着目する特徴点に対する原因の数よりも大きいか否かを判定する(ステップS111)。変数iの値が着目する特徴点に対する原因の数よりも大きければ(ステップS111;Yes)、着目する特徴点に対する全ての原因について、ステップS106で、その原因をわかりやすく提示するアニメーションを表示したことになるので、ステップS104に戻って最初の原因からやり直す。
【0050】
変数iの値が着目する特徴点に対する原因の数以下なら(ステップS111;No)、ステップS105に戻り、次の原因を取得して、ステップS106で、その原因をわかりやすく提示するアニメーションを表示する。
【0051】
例えば、特徴点検出部212が検出した「速度に対してストライドが狭い」という特徴点に対して、原因取得部213が取得した第1の原因が「腰の水平回転が小さい」である場合、アニメーション生成部214は、
図4(a)に示すように、腰の回転を真上(第1の視線方向)から見たアニメーションを生成して表示する。しかし、スコアが改善されなかった場合は、ステップS105で、原因取得部213は第2の原因を取得する。例えば、第2の原因が「腰が軸足にしっかり乗っていない」である場合、ステップS106で、アニメーション生成部214は、
図4(b)に示すように、腰と軸足との位置関係を真横(第2の視線方向)から見た実線によるユーザアニメーション(第2のユーザアニメーション)と点線による手本アニメーションを生成し、それぞれ出力部233に表示する。
【0052】
腰が軸足に乗っていないことは、真横から見た視線方向で表現されるアニメ-ションで提示することにより、ユーザに理解しやすく示すことができる。
図4(b)では、さらに、腰の部分に大きな矢印を表示することによって、腰と軸足との関係性を目立たせるようにすることで、ユーザによりわかりやすく特徴点の原因を示している。
【0053】
以上、アニメーション生成処理について説明した。このアニメーション生成処理により、運動におけるユーザの特徴点の原因が複数ある場合、それぞれの原因について、ユーザに理解しやすいアニメーションを表示するので、アニメーション生成装置200は、運動における改善ポイント等をわかりやすく提示することができる。
【0054】
(第1実施形態の変形例)
上述の第1実施形態では、運動におけるユーザの特徴点の原因が複数ある場合に、それぞれの原因について、その原因を理解しやすい視線方向から見たアニメーションを生成する。しかし、1つの原因について、その原因を理解しやすい視線方向が複数存在する場合も考えられる。このような場合に対応する変形例について説明する。
【0055】
第1実施形態の変形例の機能構成は第1実施形態と同様であり、
図1に示される。第1実施形態の変形例に係るアニメーション生成処理は、
図5に示すように第1実施形態に係るアニメーション生成処理のステップS109とステップS110の間にステップS115を追加した処理となる。
【0056】
ステップS115では、制御部210は、i番目の原因を理解しやすい視線方向として、ステップS106でアニメーションを生成した時の視線方向(第1の視線方向)とは別の視線方向(第3の視線方向)が存在するか否かを判定する。別の視線方向(第3の視線方向)が存在しない場合(ステップS115;No)、ステップS110に進む。
【0057】
別の視線方向(第3の視線方向)が存在する場合(ステップS115;Yes)、ステップS106に戻り、アニメーション生成部214は、その別の視線方向(第3の視線方向)から見た(i番目の原因をわかりやすく提示する)アニメーションを生成し、出力部233に表示する。
【0058】
例えば、ステップS103で特徴点検出部212が「腕の振りが悪い」という特徴点を着目する特徴点として選定し、ステップS105で原因取得部213がこの着目する特徴点に対して取得した第1の原因が「腕の振りが小さい」であるとする。そして、この原因をわかりやすく提示する視線方向として、真横から見た視線方向と、真上から見た視線方向の2つが存在する場合を説明する。
【0059】
まず、ステップS106で、アニメーション生成部214は、
図6(a)に示すように、腕の振りを真横(第1の視線方向)から見たユーザアニメーション(第1のユーザアニメーション)と手本アニメーションを生成し、それぞれ出力部233に表示する。
図6(a)では、さらに、ひじの部分に曲がった大きな矢印を表示することによって、腕が後ろまで戻りきっていないことを目立たせるようにしている。
【0060】
同様に、制御部210は、ステップS106でアニメーションを提示したら、一定時間待機し、ステップS107で運動データ取得部211は、通信部231を介して運動データを取得し、ステップS108で再度スコアを算出する。ステップS109でスコアが改善されなかった場合、2回目のステップS106で、アニメーション生成部214は、
図6(b)に示すように、腕の振りを真上(第3の視線方向)から見た実線によるユーザアニメーション(第3のユーザアニメーション)と点線による手本アニメーションとを生成し、それぞれ出力部233に表示する。
図6(b)では、さらに、左右の腕の周囲に一点鎖線の曲線で示した矢印を表示することによって、腕をもっと振る必要があることを目立たせるようにしている。
【0061】
このように、第1実施形態の変形例では、同じ原因に対しても、複数の視線方向からのアニメーションを生成して表示することにより、その原因について、ユーザにより理解しやすく示すことができる。
【0062】
(第2実施形態)
第1実施形態では、ユーザは、運動する場所にアニメーション生成装置200を持ち出し、その場で生成されたアニメーションを確認しては、運動するということを繰り返す、いわゆるオンライン使用が想定されていた。しかし、ユーザは運動する場所にはデータ送信装置100のみを持ち出して、アニメーションの確認は後で自宅等に戻ってから行うというような、いわゆるオフライン使用をしたい場合も考えられる。このようなオフライン使用に対応した第2実施形態について説明する。
【0063】
第2実施形態に係るアニメーション生成システム1001は、
図7に示すように、アニメーション生成装置201が、記憶部220に前回着目特徴点記憶部223を備える点が第1実施形態と異なる。
【0064】
前回着目特徴点記憶部223は、前回(最後にアニメーションを生成した時に)選定された着目する特徴点とそのスコアを記憶する。これはフラッシュメモリ等の不揮発性メモリに記憶される。
【0065】
これ以外は、第1実施形態に係るアニメーション生成システム1000と同様の構成なので、説明を省略する。
【0066】
次に、アニメーション生成装置201が実行するアニメーション生成処理について、
図8を参照して説明する。この処理は、第1実施形態と同様、ユーザが入力部232を介して「アニメーション生成」の指示を入力すると実行が開始される。
【0067】
ステップS201からステップS203までの処理は、第1実施形態に係るアニメーション生成処理のステップS101からステップS103までの処理と同様なので説明を省略する。
【0068】
ステップS204では、制御部210は、ステップS203で選定された着目する特徴点が、前回着目特徴点記憶部223に記憶されている着目する特徴点と同じか否かを判定する。着目する特徴点が前回と異なる場合(ステップS204;No)、ステップS205に進む。ステップS205からステップS207までの処理は、第1実施形態に係るアニメーション生成処理のステップS104からステップS106までの処理と同様なので説明を省略する。そして、ステップS207でアニメーションの生成と表示を行ったら、アニメーション生成処理を終了する。
【0069】
一方、着目する特徴点が前回と同じ場合(ステップS204;Yes)、制御部210は、その着目する特徴点についてステップS202で算出されたスコアが、前回着目特徴点記憶部223に記憶されている前回のスコアに比べて改善されたか否かを判定する(ステップS208)。
【0070】
スコアが改善された場合(ステップS208;Yes)、前回提示したアニメーションによりスコア改善が図れたということになるので、同じアニメーションを提示するためにステップS206に進む。スコアが改善されなければ(ステップS208;No)、制御部210は、変数iの値を1増やす(ステップS209)。なお、アニメーション生成装置201では、変数iは前回着目特徴点記憶部223と同様に不揮発性メモリに記憶されており、前回アニメーション生成時の変数iの値が保持されるようになっている。
【0071】
そして、制御部210は、変数iの値が、着目する特徴点に対する原因の数よりも大きいか否かを判定する(ステップS210)。変数iの値が着目する特徴点に対する原因の数よりも大きければ(ステップS210;Yes)、着目する特徴点に対する全ての原因について、ステップS207で、その原因をわかりやすく提示するアニメーションを表示したことになるので、ステップS205に進み、最初の原因を取得して、その原因をわかりやすく提示するアニメーションを表示する。
【0072】
変数iの値が着目する特徴点に対する原因の数以下の場合(ステップS210;No)、ステップS206に進み、原因取得部213は、着目する特徴点の原因の中からi番目の原因を取得する。そして、ステップS207で、その原因をわかりやすく提示するアニメーションを表示し、アニメーション生成処理を終了する。
【0073】
以上のように、第2実施形態に係るアニメーション生成処理は、アニメーション生成装置201の前回着目特徴点記憶部223に、前回の着目する特徴点を記憶しているので、データ送信装置100のみを持ち出してランニング等の運動を行うことができる。そして、ユーザが自宅等に戻った後に、データ送信装置100の記憶部120に記憶されている運動データを、通信部131を介して、アニメーション生成装置201に送信する。そして、アニメーション生成装置201は、前回着目特徴点記憶部223に記憶されている前回の着目する特徴点に対するスコアと、通信部231を介して取得した今回の運動データに基づいて算出されたスコアを比較し、特徴点に対する原因を理解しやすい視線方向から見たアニメーションを提示することができる。
【0074】
(第2実施形態の変形例)
1つの原因に対して、その原因を理解しやすい視線方向が複数存在する場合、第1実施形態の変形例と同様に、その複数の視線方向を順次提示するアニメーションを生成する変形例を構成することができる。これは、アニメーション生成処理(
図8)のステップS208とステップS209の間で、第1実施形態の変形例におけるステップS115と同様の処理を追加すればよい。このステップS115における処理は、制御部210が、i番目の原因を理解しやすいアニメーションに対する視線方向として、ステップS207でアニメーションを生成した時の視線方向とは別の視線方向が存在するか否かを判定する処理である。
【0075】
別の視線方向が存在しない場合にはステップS209に進むが、別の視線方向が存在する場合はステップS207に進む。そして、アニメーション生成部214は、その別の視線方向から見た(i番目の原因をわかりやすく提示する)アニメーションを生成し、出力部233に表示する。なお、どの視線方向についてアニメーションを生成済みかについては、前回着目特徴点記憶部223と同様に、記憶部220の不揮発性メモリに記憶するようにしておいてもよい。
【0076】
このような処理を行うことにより、オフライン使用時においても、同じ原因に対して複数の視線方向からのアニメーションを生成して表示することができ、その原因について、ユーザによりわかりやすくアニメーションを表示することができる。
【0077】
なお、本発明は、上述の実施形態に限られるものではなく、様々な変更が可能である。例えば、上述の実施形態では、データ送信装置100は、運動データを送信するだけの装置であった。しかし、データ送信装置は、アニメーション生成装置200,201の構成を取り込んで、アニメーション生成まで行い、生成したアニメーションのデータを他の装置(PC、タブレット、スマートフォン、スマートウォッチ等)に送信する構成であってもよい。この場合、特別な装置(例えばアニメーション生成装置200,201)を用意しなくても、当該他の装置によって、ユーザはデータ送信装置が生成したアニメーションを見ることができる。
【0078】
逆に、アニメーション生成装置200,201がセンサ部134を備えることによって、データ送信装置100がなくても、アニメーション生成装置200、201のみで、ユーザアニメーションを生成可能な構成であってもよい。
【0079】
なお、アニメーション生成装置200,201の各機能は、通常のPC等のコンピュータによっても実施することができる。具体的には、上記実施形態では、アニメーション生成装置200,201が行うアニメーション生成処理のプログラムが、記憶部220のROMに予め記憶されているものとして説明した。しかし、プログラムを、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、MO(Magneto-Optical disc)、メモリカード、USB(Universal Serial Bus)メモリ等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータに読み込んでインストールすることにより、上述の各機能を実現することができるコンピュータを構成してもよい。
【0080】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【0081】
(付記1)
ユーザが行なった運動又は前記ユーザが行なっている前記運動に関する運動データを取得する運動データ取得手段と、
前記運動データ取得手段が取得した運動データに基づいて検出された、前記運動における前記ユーザの特徴的な点の原因が複数存在する場合、前記特徴的な点の第1の原因を示すために、前記運動データから前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動のアニメーションである第1の視線方向で表現される第1のユーザアニメーションを生成し、前記第1の原因と異なる、前記特徴的な点の第2の原因を示すために、前記第1の視線方向で表現される前記第1のユーザアニメーションと異なるアニメーションであって、前記運動データから前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動のアニメーションである第2の視線方向で表現される第2のユーザアニメーションを生成する生成手段と、
を備えるアニメーション生成装置。
【0082】
(付記2)
さらに、前記生成手段が生成したユーザアニメーションを表示する表示手段を備える、
付記1に記載のアニメーション生成装置。
【0083】
(付記3)
前記生成手段は、前記運動の手本となる手本データから手本アニメーションを生成し、
前記表示手段は、前記ユーザアニメーションと前記手本アニメーションを表示する、
付記2に記載のアニメーション生成装置。
【0084】
(付記4)
前記表示手段は、前記ユーザアニメーションに、前記原因を特定するための表示を行う、
付記2又は3に記載のアニメーション生成装置。
【0085】
(付記5)
さらに、前記運動データ取得手段が取得した運動データと、前記運動の手本となる手本データと、に基づいて検出された前記特徴的な点の原因を取得する原因取得手段を備え、
前記生成手段は、前記原因取得手段が取得した原因が複数存在する場合、前記特徴的な点の第1の原因を示すために前記第1のユーザアニメーションを生成し、前記特徴的な点の第2の原因を示すために前記第2のユーザアニメーションを生成する、
付記1から4のいずれか1つに記載のアニメーション生成装置。
【0086】
(付記6)
前記原因取得手段は、前記運動データと前記手本データとの差異に基づいて検出された前記特徴的な点の原因を取得する、
付記5に記載のアニメーション生成装置。
【0087】
(付記7)
前記第1の視線方向は、前記ユーザが前記第1の原因を理解しやすい方向であり、
前記第2の視線方向は、前記ユーザが前記第2の原因を理解しやすい方向である、
付記1から6のいずれか1つに記載のアニメーション生成装置。
【0088】
(付記8)
前記生成手段は、前記第1の原因を理解しやすい方向として、前記第1の視線方向以外の方向である第3の視線方向が存在する場合、前記特徴的な点の第1の原因を示すために、前記第1のユーザアニメーションと異なるアニメーションであって、前記運動データから前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動のアニメーションである第3の視線方向で表現される第3のユーザアニメーションを生成する、
付記7に記載のアニメーション生成装置。
【0089】
(付記9)
ユーザが行なった運動又は前記ユーザが行なっている前記運動に関する運動データを取得する運動データ取得ステップと、
前記運動データ取得ステップで取得した運動データに基づいて検出された、前記運動における前記ユーザの特徴的な点の原因が複数存在する場合、前記特徴的な点の第1の原因を示すために、前記運動データから前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動のアニメーションである第1の視線方向で表現される第1のユーザアニメーションを生成し、前記第1の原因と異なる、前記特徴的な点の第2の原因を示すために、前記第1の視線方向で表現される前記第1のユーザアニメーションと異なるアニメーションであって、前記運動データから前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動のアニメーションである第2の視線方向で表現される第2のユーザアニメーションを生成する生成ステップと、
を備えるアニメーション生成方法。
【0090】
(付記10)
コンピュータに、
ユーザが行なった運動又は前記ユーザが行なっている前記運動に関する運動データを取得する運動データ取得ステップ、及び、
前記運動データ取得ステップで取得した運動データに基づいて検出された、前記運動における前記ユーザの特徴的な点の原因が複数存在する場合、前記特徴的な点の第1の原因を示すために、前記運動データから前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動のアニメーションである第1の視線方向で表現される第1のユーザアニメーションを生成し、前記第1の原因と異なる、前記特徴的な点の第2の原因を示すために、前記第1の視線方向で表現される前記第1のユーザアニメーションと異なるアニメーションであって、前記運動データから前記ユーザが行なった前記運動又は前記ユーザが行なっている前記運動のアニメーションである第2の視線方向で表現される第2のユーザアニメーションを生成する生成ステップ、
を実行させるためのプログラム。
【符号の説明】
【0091】
100…データ送信装置、110,210…制御部、111…運動データ送信部、120,220…記憶部、131,231…通信部、132,232…入力部、133,233…出力部、134…センサ部、200,201…アニメーション生成装置、211…運動データ取得部、212…特徴点検出部、213…原因取得部、214…アニメーション生成部、221…手本DB、222…原因DB、223…前回着目特徴点記憶部、1000,1001…アニメーション生成システム、BL…バスライン