アニメーション生成方法、プログラム、集積回路、記憶媒体、表示装置
【課題】オブジェクトの動作がユーザに自然に受け入れられるようにするとともに、汎用性の高いオブジェクトのアニメーション生成方法を提供することを目的とする。
【解決手段】オブジェクトのアニメーションを表示する表示部2を備えた表示装置1において、物理モデルの挙動を記述した数式を設定する数式設定部5と、物理モデルの挙動を記述した数式に、時間が経つに伴い出力値が収束するようなパラメータを設定するパラメータ設定部6と、前記パラメータが設定された物理モデルの挙動を記述した数式に基づいて、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成するアニメーション生成部7と、を備えている。
【解決手段】オブジェクトのアニメーションを表示する表示部2を備えた表示装置1において、物理モデルの挙動を記述した数式を設定する数式設定部5と、物理モデルの挙動を記述した数式に、時間が経つに伴い出力値が収束するようなパラメータを設定するパラメータ設定部6と、前記パラメータが設定された物理モデルの挙動を記述した数式に基づいて、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成するアニメーション生成部7と、を備えている。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デバイスのディスプレイ上に表示されたウィンドウ、文字、画像、映像等の表示オブジェクトのアニメーション生成方法、プログラム、記録媒体、集積回路、表示装置に関する技術である。
【背景技術】
【0002】
近年、タッチパネルを備えた多種多様なデバイスが商品化されるに伴い、ユーザインタフェースの重要性が増してきている。近年のユーザインタフェースでは、例えば、録画コンテンツをリスト表示することによって視認性を向上させた動画選択方法、本棚を摸した画面に電子書籍を表示し、現実の本の選択と同じような手順で書籍を閲覧できる書籍閲覧方法、利用者の日常の行動を写真や映像などで記録したライフログ情報を表示する閲覧方法などが提供されている。これらの閲覧方法では、リスト表示やグリッド表示といった表示方法だけではなく、表示オブジェクト、例えば、動画、書籍画像、書籍タイトル、画像等のアニメーション方法も重要視されている。
【0003】
例えば、特許文献1には、表示画面のスクロール時において、最大揺れ戻り値と最小揺れ戻り値との少なくともいずれかが設定された表示画面の揺れ戻りアニメーションと、スクロール速度に応じてスクロール速度の減速率が設定されるアニメーションとが開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表2010−515973号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、揺れ戻りアニメーションは、最大揺れ戻り値と最小揺れ戻り値の少なくともいずれかが設定されたとしても、設定した最大揺れ戻り値、若しくは、最小揺れ戻り値を満たすアニメーションが複数存在し、アニメーションの動作が一意に決まらなかった。このようなオブジェクトのアニメーションは、物理法則に従った揺れ戻りの動作ではなく、ユーザに不自然な印象を与える虞がある。また、アニメーションの動作が一意に決まらない為、任意の時間でアニメーションが終了することができず他の動作に転用し難かった。
【0006】
また、スクロール速度に応じてスクロール速度の減速率が設定されるアニメーションは、速度が0の位置でアニメーションが終了となるため、予め指定する任意の位置を終了位置とすることができず、他の動作に転用し難かった。
【0007】
本発明は、上述した実状に鑑みてなされたものであり、オブジェクトの動作がユーザに自然に受け入れられるようにするとともに、汎用性の高いオブジェクトのアニメーション生成方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明の第1の技術手段は、オブジェクトのアニメーション生成方法において、物理モデルの挙動を記述した数式を設定する数式設定ステップと、該数式に、時間が経つに伴い出力値が収束するようなパラメータを設定するパラメータ設定ステップと、該パラメータが設定された前記数式に基づいて、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成するアニメーション生成ステップと、を備えたことを特徴としたものである。
【0009】
第2の技術手段は、第1の技術手段において、前記物理モデルの挙動を記述した数式は、バネ・マス・ダンパモデルにおけるステップ応答についての時間領域の関数であることを特徴としたものである。
【0010】
第3の技術手段は、第1又は第2の技術手段において、前記アニメーション生成ステップは、前記パラメータが設定された数式の時刻0から正規化された時刻の終了値までの時刻と出力値との関係に基づいて、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成することを特徴としたものである。
【0011】
第4の技術手段は、第3の技術手段において、前記パラメータが設定された数式の時刻0から正規化された時刻の終了値までの時刻と出力値との関係は、予め計算されテーブル化されていることを特徴としたものである。
【0012】
第5の技術手段は、第2〜4のいずれか1の技術手段において、前記パラメータは、角周波数と減衰係数であることを特徴としたものである。
【0013】
第6の技術手段は、第2〜4のいずれか1の技術手段において、前記パラメータは、バネ係数と質量とダンパ係数であることを特徴としたものである。
【0014】
第7の技術手段は、第1〜6のいずれか1に記載の技術手段において、前記パラメータは、前記数式が入力値1のステップ応答に対して正規化された時間の終了値の出力値が1となるように設定されることを特徴としたものである。
【0015】
第8の技術手段は、第1〜7のいずれか1に記載の技術手段において、前記任意の値は、座標位置であることを特徴としたものである。
【0016】
第9の技術手段は、第1〜7のいずれか1に記載の技術手段において、前記任意の値は、エフェクト値であることを特徴としたものである。
【0017】
第10の技術手段は、第1〜9のいずれか1に記載の技術手段であるアニメーション生成方法の各ステップをコンピュータに実行させることを特徴としたプログラムである。
【0018】
第11の技術手段は、第10に記載の技術手段であるプログラムが格納されたことを特徴としたコンピュータ読み取り可能な記憶媒体である。
【0019】
第12の技術手段は、オブジェクトのアニメーションを生成する集積回路において、物理モデルの挙動を記述した数式を設定する数式設定手段と、該数式に、時間が経つに伴い出力値が収束するようなパラメータを設定するパラメータ設定手段と、該パラメータが設定された前記数式に基づいて、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成するアニメーション生成手段と、を備えたことを特徴とした集積回路である。
【0020】
第13の技術手段は、オブジェクトのアニメーションを表示する表示部を備えた表示装置において、物理モデルの挙動を記述した数式を設定する数式設定部と、該数式に、時間が経つに伴い出力値が収束するようなパラメータを設定するパラメータ設定部と、該パラメータが設定された前記数式に基づいて、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成するアニメーション生成部と、を備えたことを特徴とした表示装置である。
【発明の効果】
【0021】
本発明に係るアニメーション生成方法によれば、アニメーションの生成に物理モデルの挙動を再現する数式を用いることによりオブジェクトが物理法則に従った自然な動作を行い、これによりオブジェクトの動作に意味を与え易く、ユーザがその動作を自然に受け入れることができる。
【0022】
また、パラメータを変更することにより、多様なアニメーションを生成することができる。また、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成するため、種々の動作に転用でき、汎用性の高いオブジェクトのアニメーションを提供することができる。
【図面の簡単な説明】
【0023】
【図1】本実施形態に係る表示装置の概略構成を示す機能ブロック図である。
【図2】バネ・マス・ダンパ系の物理モデルを示す図である。
【図3】バネ・マス・ダンパ系の関数にパラメータの一例が設定された場合の出力を示す図である。
【図4】角周波数ωnを20.0に固定し、減衰係数ζを変更した場合のバネ・マス・ダンパ系の物理モデルの時間と出力を表すグラフである。
【図5】減衰係数ζを0.33に固定し、角周波数ωnを変更した場合のバネ・マス・ダンパ系の物理モデルの時間と出力を表すグラフである。
【図6】アニメーション生成方法の処理手順を示すフローチャートである。
【図7】バネ・マス・ダンパ系の関数をオブジェクトのX軸方向の座標値に適用した様子を示す図である。
【図8】バネ・マス・ダンパ系の関数をオブジェクトのX軸方向とY軸方向の座標値に適用した様子を示す図である。
【図9】バネ・マス・ダンパ系の関数をオブジェクトのZ軸方向の座標値に適用した様子を示す図である。
【図10】バネ・マス・ダンパ系の関数をオブジェクトの透明度のエフェクト値に適用した様子を示す図である。
【図11】角周波数ωnを20.0に、減衰係数ζを0.1に設定した関数を正規化した様子を表すグラフである。
【発明を実施するための形態】
【0024】
図1は、本実施形態に係る表示装置の概略構成を示す機能ブロック図である。図1に示すように、表示装置1は、表示部2と、入力部3と、記憶部4と、数式設定部5と、パラメータ設定部6と、アニメーション生成部7と、制御部8を備えている。
【0025】
表示部2は、表示オブジェクトのアニメーションを表示する。表示部2は、例えば、液晶パネルや有機ELパネルで構成される。
入力部3は、ユーザからの入力を受け付ける。入力部3は、例えば、タッチパネルや、キーや、マウス等によって構成される。
【0026】
記憶部4は、ROMやRAMといったメモリで構成されている。ROMは、フラッシュEEPROMを含み、各種のデータやプログラム等を記憶する。例えば、記憶部4は、物理モデルの挙動を記述した数式も記憶される。
【0027】
数式設定部5は、物理モデルの挙動を記述した数式を例えば、ROMから取り出して作業領域であるRAM上に設定する。図2を参照して、数式設定部5によって設定される物理モデルの挙動を記述した数式の一例であるバネ・マス・ダンパ系の数式を説明する。図2は、バネ・マス・ダンパ系を表した図である。
【0028】
数式設定部5は、物理モデルの挙動を記述した数式として、例えば、バネ・マス・ダンパ系の数式を設定する。バネ・マス・ダンパ系は、機械制御、電気回路解析に用いられる力学モデルであり、機械制御に用いられることが多く、バネ定数や質量(マス)、ダンパ係数をどのような値にすれば、安定して機械を制御することができるかといった機械制御の解析に利用されるものである。
【0029】
しかしながら、本発明のアニメーションの表示装置1では、機械制御の解析ではなく、この物理モデルが生成する時間に対する出力を、アニメーションの生成に利用する。このようにして生成されたアニメーションは、物理モデルが行う動作と同じになる。すなわち、人工的なアニメーションと異なり、重いものが動いている、軽いものが動いている、摩擦が発生するものが動いている、バネのようなものが動いているといったように、オブジェクトの動作に意味を与えることができる。
【0030】
バネ・マス・ダンパの物理モデルを運動方定式で表すと下記の式1で表される。
【数1】
なお、Fは力(ちから)、Mは質量、Bはダンパ係数、Kはバネ定数、xは変位を表している。(M>0、B>0、K>0)
【0031】
質量Mと時間tに対する変位xの2回微分(加速度)を乗算したものと、ダンパ係数Bと時間tに対する変位xの1回微分(速度)を乗算したものと、バネ定数と変位xとを乗算したものと、をそれぞれ足したものは、力(ちから)Fに等しいこと意味している。
【0032】
次に、式1の運動方程式を、ラプラス変換を施すことにより、下記の式2で表される伝達関数G(s)を得る。
【数2】
ここで、ωnは、角周波数を、ζは減衰係数を表す。なお、角周波数ωn及び減衰係数ζは、質量M、バネ定数K、ダンパ係数Bより算出することができる。
【0033】
式2は、ラプラス変換におけるs領域で記述されているため、そのままアニメーションの生成に用いることができない。このため、下記の式3に示す時間領域の関数を求める。
【0034】
式3は、バネ・マス・ダンパ系におけるステップ応答についての時間領域の関数である。
【数3】
数式設定部5は、物理モデルの挙動を記述した数式として、例えば、式3を設定する。
【0035】
パラメータ設定部6は、物理モデルの挙動を記述した関数(数式)に、時間が経つに伴い出力値が収束するようなパラメータを設定する。物理モデルの挙動を再現する数式は、時間が経つに伴い発散状態となるものも含むためである。具体的には、減衰係数ζを0<ζ<1の範囲の値で設定するとともにt=1の出力が1となるようなパラメータを設定することが望ましい。すなわち、パラメータ設定部6は、物理モデルの挙動を記述した関数が入力値1のステップ応答に対して正規化された時間の終了値(1秒)の出力値が1となるようなパラメータを設定することが望ましい。
【0036】
図3を参照して、バネ・マス・ダンパ系の関数にパラメータが設定される一例を説明する。図3は、バネ・マス・ダンパ系の関数にパラメータの一例が設定された場合の出力を示すグラフである。
図3のグラフは、例えば、角周波数ωnを20.0、減衰係数ζを0.33に設定した時の時間に対する出力のグラフである。出力は、時刻tが0から1秒になるに伴い、1を中心に大きな振動から次第に小さな振動となり1に収束していく。
本願発明は、この出力値をアニメーションの生成に利用することにより、バネ、マス、ダンパを伴った物理モデルが持つ動作をアニメーションとして再現する。
【0037】
図4及び図5を参照して、設定されるパラメータとアニメーションの変化との関係を説明する。図4は、角周波数ωnを20.0に固定し、減衰係数ζを変更した場合のバネ・マス・ダンパ系の物理モデルの時間と出力を表すグラフである。
減衰係数ζは、0.1、0.2、0.4、0.6、0.8と変更されると、F(t)=1を境に振動する大きさが小さくなり、F(t)=1に収束していく。すなわち、減衰係数ζが1に近づくに伴い振動が小さくなる。
【0038】
減衰係数ζが小さいということは、ダンパ係数Bに比べ、質量Mとバネ定数の積が大きいことを示唆し(式2参照)、振動が起こり易いことを示している。一方、減衰係数ζが1に近づくと、ダンパ係数Bに比べ、質量Mとバネ定数の積とが等しいことを示唆し、互いにつり合い、振動が起こり難いことを示している。
以上により、減衰係数ζを変更することで、アニメーション生成の際、オブジェクトの振動の大きさを制御することができる。
【0039】
図5は、減衰係数ζを0.33に固定し、角周波数ωnを変更した場合のバネ・マス・ダンパ系の物理モデルの時間と出力を表すグラフである。
角周波数ωnは、20.0、8.4、5.3、2.0と変更されると、F(t)=1を境に振動する大きさが不変で振動の周期が大きくなる。すなわち、角周波数ωnが小さくなるに伴い振動の周期が長くなる。
【0040】
角周波数ωnが小さいということは、質量Mに対するバネ定数Kの比が小さいことを示唆し、バネ定数Kに対する質量Mの比が大きくなるに伴いゆっくりとした動きになることを示している。
以上により、減衰振動ζを固定し、角周波数ωnを変更することで、アニメーション生成の際、オブジェクトの動作の機敏さを制御することができる。
【0041】
なお、本実施形態では、角周波数と減衰係数をパラメータとする方法で説明したが、質量とバネ定数とダンパ係数をパラメータとするようにしても良い。
例えば、バネ定数を小さく設定し、ダンパ係数を大きく設定した場合、振動しないで時間が経つにつれ動きが小さくなるようなアニメーションが生成できる。また、バネ定数を大きく設定し、ダンパ係数を小さく設定すると、長い時間振動を繰り返すアニメーションが生成できる。
【0042】
また、質量とバネ定数とダンパ係数をパラメータとした場合にバネ定数を0に設定すると、物理モデルは、ダンパと質量からなるモデル系とみなせる。この場合、時刻が0に近い部分は素早い立ち上がりとなり、急速にF(t)=1に近づく。その後、時刻が1に近づくに伴い緩やかにF(t)=1に近づくようなアニメーション(イーズアウトと呼ばれ一般的に用いられる)が実現可能となる。
以上に説明した通り、マス・バネ・ダンパ系の物理モデルの時間領域の関数のパラメータを変更することにより多様なアニメーションを生成することができる。
【0043】
次に、物理モデルの挙動を記述した関数に、時間が経つに伴い出力値が収束するようなパラメータの設定方法を説明する。ここでは、例えば、整定時間を用いたパラメータの設定方法で説明する。整定時間とは、応答が収束値の許容値内に入るまでの時間のことをいう。ここで、収束値の許容値内とは、例えば、収束値の±2%(2%整定時間)のことをいう。
【0044】
整定時間は、次式で計算する。Δには、0.02(2%)が入り、次のように近似できる。
【数4】
ここで、(0<ζ<1)とすると、式4より、以下の関係が得られる。
【数5】
【0045】
以上により、図4より、ζの値の違いによる応答を1つ選択した場合は、式5より、ωnを決定することができる。なお、例えば、4/ωn=ζとした場合は、時刻1で応答が2%の許容範囲に入る。この場合は、ζ=0.1を選択した場合、ωn=40.0が決定し、ζ=0.2を選択した場合、ωn=20.0が決定する。
【0046】
なお、図3に示す例(ωn=20.0、ζ=0.33)は、式5を満たしている。また、図5に示すように、ζが一定だとすると、ωnが小さくなると整定時間が長くなり、ωnが大きくなると整定時間が短くなっていく(応答が収束した時間、すなわち、アニメーション動作が収束した状態が続く)。以上の特性から、ωn及びζのパラメータは、整定時間を1により近づけることが好ましい。
なお、収束値の許容値内を±2%で説明したがこれに限定されるものではなく、±1%、±5%でも良い。
【0047】
アニメーション生成部7は、パラメータが設定された物理モデルの挙動を記述した数式に基づいて、任意の値から任意の値へ任意の時間で、オブジェクトを変化させるアニメーションを生成する。
パラメータが設定された物理モデルの挙動を記述した数式は、入力値1のステップ応答に対して正規化された時間の終了値(1秒)の出力値が1となることが望ましいが後述するように必須ではない。このパラメータが設定された物理モデルの挙動を記述した数式は、任意の値から任意の値へ任意の時間でオブジェクトを変化させる際、基となる動き(正規化された動き)を決定する値を出力する。
【0048】
式6は、任意の値から任意の値へ、任意の時間で行うアニメーションを生成するための式である。
【数6】
【0049】
前述した式3は、正規化された時間範囲(0≦t≦1)の値を使うため、式6により、任意の時間への変換と、任意の値への変換を行う。なお、tは時刻、dはアニメーション時間、t′は正規化された時刻、P´は時刻t′におけるアニメーション値、Pstartはオブジェクトの初期値(任意の値)、Pendはオブジェクトの終了値(任意の値)を示し、F(t′)は、式3のx(t)である。ここで、アニメーション値は、例えば、オブジェクトの座標値、透明度等のエフェクト値等である。
【0050】
具体的に式6を用いて時刻tにおけるアニメーション値P´を計算する方法を説明する。式6に示す通り、時刻tをアニメーション時間dによって除算することにより、時刻tを正規化し、正規化された時刻t′(0≦t′≦1)を用いて時刻t′におけるアニメーション値P´を計算する。そして、t=dt′より、正規化された時間t′からアニメーション時間dでの時刻tに変換する。これにより、アニメーション時間dでの時刻tにおけるアニメーション値P´を求めることができる。
【0051】
以上により、時刻tに応じたアニメーション値P´を求めることができ、オブジェクトを時刻毎のアニメーション値P´に基づいて変化させることによりアニメーションを生成することができる。
【0052】
制御部8は、以上に説明した各部を総括的に制御するものでCPU8aを有している。CPU8aは、表示装置1の本体を総括的に制御する制御手段として機能する中央処理装置である。CPU8aは、ROMに格納されたプログラムをRAMに読み込ませて実行させる一種のコンピュータである。
【0053】
図6を参照して、本発明のアニメーション生成方法の一例を説明する。図6は、アニメーション生成方法の処理手順を示すフローチャートである。
本発明に係るアニメーションの表示装置は、数式設定部5がバネ・マス・ダンパ系の関数(物理モデルの挙動を記述した数式)を設定し(ステップS1)、パラメータ設定部がバネ・マス・ダンパ系の関数のパラメータである角周波数ωnと減衰係数ζを設定する(ステップS2)。
【0054】
次に、アニメーション生成部7は、時刻tをアニメーション時間dで除算することにより、時刻tを正規化した正規化時刻t′(0≦t′≦1)を計算し(ステップS3)、正規化された時刻t′を初期化し(ステップS4)、ステップS5へ進む。ここでいう時刻tとは、0秒〜d秒の範囲の変数である。
【0055】
アニメーション生成部7は、正規化された時刻t′におけるアニメーション値P´を求める(ステップS5)とともにアニメーション時間dでの時刻tを求め(ステップS6)、t′が正規化された時間(0≦t′≦1)を終了したかどうかを判断する(ステップS7)。
【0056】
ステップS7において、アニメーション生成部7は、正規化された時刻である1秒を経過した場合、終了する。1秒を経過していない場合は、正規化された時刻t′に時間分解能値(例えば、0.1秒)を加算し(ステップS8)、再びステップS5へ戻る。
【0057】
図7乃至図9を参照して、バネ・マス・ダンパ系の関数のグラフと生成されるアニメーションとの関係を説明する。図7は、バネ・マス・ダンパ系の関数をオブジェクトのX軸方向の座標値に適用した様子を示す図である。
【0058】
図7を参照して、バネ・マス・ダンパ系の関数をオブジェクトのX軸方向の座標値に適用した様子を説明する。すわわち、P´(t′)は、正規化された時刻t′におけるオブジェクトのX軸の座標値を表す。
【0059】
アニメーションは、各々の箱が左へバネのような動きで移動する。移動後は、1番の箱の位置に2番の箱が移動し、2番の箱の位置に3番の箱が移動し、3番の箱の位置に4番の箱が移動する。なお、バネ・マス・ダンパ系の関数は、図3で示す角周波数ωnを20.0、減衰係数ζを0.33に設定した関数を用いる。また、アニメーション時間dは1秒とする。すなわち、それぞれの箱は、1秒間かけて移動するものとする。よって、ここでは、t′=tである。
【0060】
なお、X軸は、表示部の左右方向とする。そして、表示部の表示領域は、左端がX座標値0、右端がX座標値6である。そして、箱の幅が2、箱と箱の間隔が1であるとすると、図7に示す[1]において、それぞれの箱の座標位置は、1番の箱がX=−1、2番の箱がX=2、3番の箱がx=5、4番の箱がx=8である。ここで、オブジェクトである箱は、座標値0≦X≦6の間で表示され、0>X、6<Xで非表示となる。なお、座標値は、箱の左部分を基準とする。
【0061】
そして、それぞれの箱の時刻tにおけるX座標値P´は、以下の式で表される。
1番の箱のP´=−1−3*F(t) (t:[0,1])
2番の箱のP´= 1番の箱のP´+3 (t:[0,1])
3番の箱のP´= 2番の箱のP´+3 (t:[0,1])
4番の箱のP´= 3番の箱のP´+3 (t:[0,1])
なお、3*F(t)の係数3は、箱の幅が2、箱と箱の間隔が1であることから3となる。
【0062】
それぞれの箱は、時刻tが0から1になる間に左方向へ、X座標値がF(t)で再現される物理モデルに基づいて初期座標値から最終座標値へ図7の[1]〜[9]に示すように移動する。
なお、それぞれの箱に対して同じパラメータが設定されたバネ・マス・ダンパ系の関数を用いる態様で説明したが、箱ごとにパラメータの値を変えても良い。例えば、オブジェクトが映像データのサムネイルだった場合、短時間の映像は、ζを小さく、長時間の映像は、ζを大きく設定する。これにより、ユーザは、映像のサムネイルの動きから映像時間の長短を理解することができる。
【0063】
この場合におけるそれぞれの箱の時刻tにおけるX座標値P´を式6で表すと、以下の式で表される。F1(t)〜F4(t)のそれぞれには、映像時間に応じたζが設定される。
1番の箱のP´=−1+F1(t) *(−4−(−1)) (t:[0,1])
2番の箱のP´= 2+F2(t) *(−1− 2) (t:[0,1])
3番の箱のP´= 5+F3(t) *( 2− 5) (t:[0,1])
4番の箱のP´= 8+F4(t) *( 5− 8) (t:[0,1])
【0064】
図8を参照しながら、オブジェクトがX軸方向、Y軸方向の両軸に対して動く、すなわち画面の斜め方向に動くアニメーションを生成する場合について説明する。この場合、バネ・マス・ダンパ系の関数は、X軸方向とY軸方向の座標値に適用される。図8は、バネ・マス・ダンパ系の関数をオブジェクトのX軸方向とY軸方向の座標値に適用した様子を示す図である。
【0065】
図7で示したアニメーションと同様にバネ・マス・ダンパ系の関数は、図3で示す角周波数ωnを20.0、減衰係数ζを0.33のパラメータを設定した時の関数を用いた。また、アニメーション時間dは1秒、すなわち、t′=tとした。
オブジェクトの座標位置は、表示部の左右方向をX軸とし、上下方向をY軸とすると、座標位置(x、y)=(P´、P´)と表され、オブジェクトが図の[1]〜[9]に示すように画面表示される。
【0066】
図9を参照しながら、バネ・マス・ダンパ系の関数をZ軸方向の座標値とした場合を説明する。図9は、バネ・マス・ダンパ系の関数をオブジェクトのZ軸方向の座標値に適用した様子を示す図である。
【0067】
先と同様にバネ・マス・ダンパ系の関数は、図3で示す角周波数ωnを20.0、減衰係数ζを0.33のパラメータを設定した時の関数を用いた。また、アニメーション時間dは1秒、すなわち、t′=tとした。
オブジェクトは、表示部の表示領域に直交する方向をZ軸とすると、オブジェクトのZ軸の座標値がF(t)で再現される物理モデルに基づいて初期座標値から最終座標値へ[1]〜[9]に示すように移動する。
【0068】
また、バネ・マス・ダンパ系の関数をオブジェクトのX軸方向の座標値に適用する態様で説明したが、Y軸、Z軸方向にも同様にバネ・マス・ダンパ系の関数を適用し、X軸、Y軸、Z軸でオブジェクトを動かしても良い。各軸は、同じパラメータが設定されたバネ・マス・ダンパ系の関数でも良いし、パラメータを変化させたものでも良い。
【0069】
図10を参照しながら、バネ・マス・ダンパ系の関数をオブジェクトの透明度のエフェクト値に適用した場合を説明する。図10は、バネ・マス・ダンパ系の関数をオブジェクトの透明度のエフェクト値に適用した様子を示す図である。
バネ・マス・ダンパ系の関数は、図5で示す角周波数ωnを20.0、減衰係数ζを0.33のパラメータを設定した関数を用いた。また、アニメーション時間dは1秒、すなわち、t′=tとした。
【0070】
なお、図5で示す角周波数ωnを20.0、減衰係数ζを0.33のパラメータを設定した関数は、t=1のとき、出力値が1となっていない。しかし、出力値は、厳密に1である必要はなく、知覚上問題がないほど1に近い値(例えば、出力値1に対して2%以内の範囲の値)であれば、時刻毎にt=1のときの出力値で除算することにより、時刻t=1のときの出力値を1に正規化してアニメーションの生成に用いることができる。
オブジェクトは、透明度のエフェクト値がF(t)の出力値に基づいて設定され、オブジェクトが[1]〜[5]に示すように、透明な状態から見える状態へと画面表示される。
【0071】
以上に説明した通り本発明に係るアニメーションの表示装置1は、表示部に表示されたウィンドウ、文字、画像、映像の表示オブジェクトの動きに関して、物理モデルの挙動を再現する関数を用いることにより、重いものが動いている、軽いものが動いている、摩擦のあるものが動いている、バネのようなものが動いているといった、実際に物理的なものが動く現象を再現することができる。これにより、このアニメーションは、オブジェクトの動作に意味を与え易く、ユーザがその動作を理解し自然に受け入れることができる。
【0072】
また、物理モデルの挙動を再現する関数のパラメータを変更することにより、多様なアニメーションを生成することができる。
また、物理モデルの挙動を再現する関数は、t=1のとき、出力が1をとるようにパラメータが設定されることにより、この関数の時刻及び出力値が正規化値となり、この関数の時刻0から時刻1までの時刻と出力値との関係を基にして任意の値から任意の値へ任意の時間で変化するアニメーションを生成することができる。これにより、一度、パラメータを決定すれば、煩雑なパラメータ計算なしで任意の値から任意の時間で変化するアニメーションを生成することができる。
【0073】
なお、パラメータ設定部6は、物理モデルの挙動を記述した関数にt=1のとき、出力が1となるようなパラメータを設定する態様で説明したがこれに限定されるものではない。
例えば、パラメータが設定された物理モデルの挙動を記述した関数(ステップ応答)の0から任意の時間の動きをアニメーションの生成に用いても良い。この場合、任意の時間を1とする正規化を行うとともに任意の時間での出力値を1とする正規化を行う。この際、物理モデルの挙動を記述した関数は、その出力が時間の経過に伴い1近傍に収束しているようにパラメータ設定されていることが好ましく、オブジェクトがより自然な動きとなる。
例えば、図11は、角周波数ωnを20.0に、減衰係数ζを0.1に設定した関数の出力値を正規化した様子を示すグラフであり、実線が正規化前の関数の出力を示し、点線が正規化後の関数による出力を示す。
【0074】
また、例えば、あるパラメータが設定された数式が時間t2のとき、出力値が1であったとして(すなわち、この関数の値が出力1となる時間t1、t2、t3…の1つを選択する場合)、この時間t2のときの出力値が1である関数の時間と出力値との関係を用いて任意の値から任意の値へ、任意の時間でアニメーションを生成させても良い。このようなt2のときの出力値が1である関数をアニメーションの生成に用いると、アニメーション終了時に外部から何らかの作用によって動作が止められたような動きを再現することができる。
【0075】
また、所定のパラメータが設定された数式は、時刻0から正規化された時刻の終了値(1)まで逐次計算しても良いし、時刻0から正規化された時刻の終了値(1)までの時刻と出力値との関係を予め対応付けしてテーブル化させておいても良い。この場合は、数式を計算する計算コストを少なくすることができる。実際にこのテーブルを用いて計算する場合は、適宜テーブル化された値を省略、補間する。
【0076】
例えば、1秒で動作することを前提としたテーブルを利用して、2秒で動作するアニメーションを生成する場合は、テーブルに記述された隣り合う値を線形補完する。
また、例えば、1秒で動作することを前提としたテーブルを利用して、0.5秒で動作するアニメーションを生成する場合は、1つおきにテーブルの値を参照する。
【0077】
また、時間分解能値を0.1秒で説明したがこれに限定されるものではない。時間分解能値は、図6において、前回にステップS8の処理が行われてから、再度ステップS8の処理が行われるまでに経過した時間(画面更新の間隔、必要とされる時刻に応じた経過時間)であってもよい。
【0078】
また、実施の形態で説明した機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行なっても良い。なお、「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
【0079】
製品端末機器の有する制御プログラムとして、例えばJini対応の製品端末機器であれば、インタープリタであるJavaVM(Virtual Machine)(登録商標)により、製品端末機器上でJava(登録商標)プログラムとして、実行させることが可能である。
【0080】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また前記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0081】
また、上述した実施形態における表示装置1の一部、又は全部を典型的には集積回路であるLSI(Large Scale Integration)として実施しても良い。表示装置1の各機能ブロックは、個別にチップ化しても良いし、一部、又は全部を集積してチップ化しても良い。また、集積回路化の手法は、LSIに限らず専用回路、又は汎用プロセッサで実現しても良い。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いることも可能である。
【符号の説明】
【0082】
1…表示装置、2…表示部、3…入力部、4…記憶部、5…数式設定部(数式設定手段)、6…パラメータ設定部(パラメータ設定手段)、7…アニメーション生成部(アニメーション生成手段)、8…制御部、8a…CPU。
【技術分野】
【0001】
本発明は、デバイスのディスプレイ上に表示されたウィンドウ、文字、画像、映像等の表示オブジェクトのアニメーション生成方法、プログラム、記録媒体、集積回路、表示装置に関する技術である。
【背景技術】
【0002】
近年、タッチパネルを備えた多種多様なデバイスが商品化されるに伴い、ユーザインタフェースの重要性が増してきている。近年のユーザインタフェースでは、例えば、録画コンテンツをリスト表示することによって視認性を向上させた動画選択方法、本棚を摸した画面に電子書籍を表示し、現実の本の選択と同じような手順で書籍を閲覧できる書籍閲覧方法、利用者の日常の行動を写真や映像などで記録したライフログ情報を表示する閲覧方法などが提供されている。これらの閲覧方法では、リスト表示やグリッド表示といった表示方法だけではなく、表示オブジェクト、例えば、動画、書籍画像、書籍タイトル、画像等のアニメーション方法も重要視されている。
【0003】
例えば、特許文献1には、表示画面のスクロール時において、最大揺れ戻り値と最小揺れ戻り値との少なくともいずれかが設定された表示画面の揺れ戻りアニメーションと、スクロール速度に応じてスクロール速度の減速率が設定されるアニメーションとが開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表2010−515973号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、揺れ戻りアニメーションは、最大揺れ戻り値と最小揺れ戻り値の少なくともいずれかが設定されたとしても、設定した最大揺れ戻り値、若しくは、最小揺れ戻り値を満たすアニメーションが複数存在し、アニメーションの動作が一意に決まらなかった。このようなオブジェクトのアニメーションは、物理法則に従った揺れ戻りの動作ではなく、ユーザに不自然な印象を与える虞がある。また、アニメーションの動作が一意に決まらない為、任意の時間でアニメーションが終了することができず他の動作に転用し難かった。
【0006】
また、スクロール速度に応じてスクロール速度の減速率が設定されるアニメーションは、速度が0の位置でアニメーションが終了となるため、予め指定する任意の位置を終了位置とすることができず、他の動作に転用し難かった。
【0007】
本発明は、上述した実状に鑑みてなされたものであり、オブジェクトの動作がユーザに自然に受け入れられるようにするとともに、汎用性の高いオブジェクトのアニメーション生成方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明の第1の技術手段は、オブジェクトのアニメーション生成方法において、物理モデルの挙動を記述した数式を設定する数式設定ステップと、該数式に、時間が経つに伴い出力値が収束するようなパラメータを設定するパラメータ設定ステップと、該パラメータが設定された前記数式に基づいて、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成するアニメーション生成ステップと、を備えたことを特徴としたものである。
【0009】
第2の技術手段は、第1の技術手段において、前記物理モデルの挙動を記述した数式は、バネ・マス・ダンパモデルにおけるステップ応答についての時間領域の関数であることを特徴としたものである。
【0010】
第3の技術手段は、第1又は第2の技術手段において、前記アニメーション生成ステップは、前記パラメータが設定された数式の時刻0から正規化された時刻の終了値までの時刻と出力値との関係に基づいて、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成することを特徴としたものである。
【0011】
第4の技術手段は、第3の技術手段において、前記パラメータが設定された数式の時刻0から正規化された時刻の終了値までの時刻と出力値との関係は、予め計算されテーブル化されていることを特徴としたものである。
【0012】
第5の技術手段は、第2〜4のいずれか1の技術手段において、前記パラメータは、角周波数と減衰係数であることを特徴としたものである。
【0013】
第6の技術手段は、第2〜4のいずれか1の技術手段において、前記パラメータは、バネ係数と質量とダンパ係数であることを特徴としたものである。
【0014】
第7の技術手段は、第1〜6のいずれか1に記載の技術手段において、前記パラメータは、前記数式が入力値1のステップ応答に対して正規化された時間の終了値の出力値が1となるように設定されることを特徴としたものである。
【0015】
第8の技術手段は、第1〜7のいずれか1に記載の技術手段において、前記任意の値は、座標位置であることを特徴としたものである。
【0016】
第9の技術手段は、第1〜7のいずれか1に記載の技術手段において、前記任意の値は、エフェクト値であることを特徴としたものである。
【0017】
第10の技術手段は、第1〜9のいずれか1に記載の技術手段であるアニメーション生成方法の各ステップをコンピュータに実行させることを特徴としたプログラムである。
【0018】
第11の技術手段は、第10に記載の技術手段であるプログラムが格納されたことを特徴としたコンピュータ読み取り可能な記憶媒体である。
【0019】
第12の技術手段は、オブジェクトのアニメーションを生成する集積回路において、物理モデルの挙動を記述した数式を設定する数式設定手段と、該数式に、時間が経つに伴い出力値が収束するようなパラメータを設定するパラメータ設定手段と、該パラメータが設定された前記数式に基づいて、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成するアニメーション生成手段と、を備えたことを特徴とした集積回路である。
【0020】
第13の技術手段は、オブジェクトのアニメーションを表示する表示部を備えた表示装置において、物理モデルの挙動を記述した数式を設定する数式設定部と、該数式に、時間が経つに伴い出力値が収束するようなパラメータを設定するパラメータ設定部と、該パラメータが設定された前記数式に基づいて、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成するアニメーション生成部と、を備えたことを特徴とした表示装置である。
【発明の効果】
【0021】
本発明に係るアニメーション生成方法によれば、アニメーションの生成に物理モデルの挙動を再現する数式を用いることによりオブジェクトが物理法則に従った自然な動作を行い、これによりオブジェクトの動作に意味を与え易く、ユーザがその動作を自然に受け入れることができる。
【0022】
また、パラメータを変更することにより、多様なアニメーションを生成することができる。また、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成するため、種々の動作に転用でき、汎用性の高いオブジェクトのアニメーションを提供することができる。
【図面の簡単な説明】
【0023】
【図1】本実施形態に係る表示装置の概略構成を示す機能ブロック図である。
【図2】バネ・マス・ダンパ系の物理モデルを示す図である。
【図3】バネ・マス・ダンパ系の関数にパラメータの一例が設定された場合の出力を示す図である。
【図4】角周波数ωnを20.0に固定し、減衰係数ζを変更した場合のバネ・マス・ダンパ系の物理モデルの時間と出力を表すグラフである。
【図5】減衰係数ζを0.33に固定し、角周波数ωnを変更した場合のバネ・マス・ダンパ系の物理モデルの時間と出力を表すグラフである。
【図6】アニメーション生成方法の処理手順を示すフローチャートである。
【図7】バネ・マス・ダンパ系の関数をオブジェクトのX軸方向の座標値に適用した様子を示す図である。
【図8】バネ・マス・ダンパ系の関数をオブジェクトのX軸方向とY軸方向の座標値に適用した様子を示す図である。
【図9】バネ・マス・ダンパ系の関数をオブジェクトのZ軸方向の座標値に適用した様子を示す図である。
【図10】バネ・マス・ダンパ系の関数をオブジェクトの透明度のエフェクト値に適用した様子を示す図である。
【図11】角周波数ωnを20.0に、減衰係数ζを0.1に設定した関数を正規化した様子を表すグラフである。
【発明を実施するための形態】
【0024】
図1は、本実施形態に係る表示装置の概略構成を示す機能ブロック図である。図1に示すように、表示装置1は、表示部2と、入力部3と、記憶部4と、数式設定部5と、パラメータ設定部6と、アニメーション生成部7と、制御部8を備えている。
【0025】
表示部2は、表示オブジェクトのアニメーションを表示する。表示部2は、例えば、液晶パネルや有機ELパネルで構成される。
入力部3は、ユーザからの入力を受け付ける。入力部3は、例えば、タッチパネルや、キーや、マウス等によって構成される。
【0026】
記憶部4は、ROMやRAMといったメモリで構成されている。ROMは、フラッシュEEPROMを含み、各種のデータやプログラム等を記憶する。例えば、記憶部4は、物理モデルの挙動を記述した数式も記憶される。
【0027】
数式設定部5は、物理モデルの挙動を記述した数式を例えば、ROMから取り出して作業領域であるRAM上に設定する。図2を参照して、数式設定部5によって設定される物理モデルの挙動を記述した数式の一例であるバネ・マス・ダンパ系の数式を説明する。図2は、バネ・マス・ダンパ系を表した図である。
【0028】
数式設定部5は、物理モデルの挙動を記述した数式として、例えば、バネ・マス・ダンパ系の数式を設定する。バネ・マス・ダンパ系は、機械制御、電気回路解析に用いられる力学モデルであり、機械制御に用いられることが多く、バネ定数や質量(マス)、ダンパ係数をどのような値にすれば、安定して機械を制御することができるかといった機械制御の解析に利用されるものである。
【0029】
しかしながら、本発明のアニメーションの表示装置1では、機械制御の解析ではなく、この物理モデルが生成する時間に対する出力を、アニメーションの生成に利用する。このようにして生成されたアニメーションは、物理モデルが行う動作と同じになる。すなわち、人工的なアニメーションと異なり、重いものが動いている、軽いものが動いている、摩擦が発生するものが動いている、バネのようなものが動いているといったように、オブジェクトの動作に意味を与えることができる。
【0030】
バネ・マス・ダンパの物理モデルを運動方定式で表すと下記の式1で表される。
【数1】
なお、Fは力(ちから)、Mは質量、Bはダンパ係数、Kはバネ定数、xは変位を表している。(M>0、B>0、K>0)
【0031】
質量Mと時間tに対する変位xの2回微分(加速度)を乗算したものと、ダンパ係数Bと時間tに対する変位xの1回微分(速度)を乗算したものと、バネ定数と変位xとを乗算したものと、をそれぞれ足したものは、力(ちから)Fに等しいこと意味している。
【0032】
次に、式1の運動方程式を、ラプラス変換を施すことにより、下記の式2で表される伝達関数G(s)を得る。
【数2】
ここで、ωnは、角周波数を、ζは減衰係数を表す。なお、角周波数ωn及び減衰係数ζは、質量M、バネ定数K、ダンパ係数Bより算出することができる。
【0033】
式2は、ラプラス変換におけるs領域で記述されているため、そのままアニメーションの生成に用いることができない。このため、下記の式3に示す時間領域の関数を求める。
【0034】
式3は、バネ・マス・ダンパ系におけるステップ応答についての時間領域の関数である。
【数3】
数式設定部5は、物理モデルの挙動を記述した数式として、例えば、式3を設定する。
【0035】
パラメータ設定部6は、物理モデルの挙動を記述した関数(数式)に、時間が経つに伴い出力値が収束するようなパラメータを設定する。物理モデルの挙動を再現する数式は、時間が経つに伴い発散状態となるものも含むためである。具体的には、減衰係数ζを0<ζ<1の範囲の値で設定するとともにt=1の出力が1となるようなパラメータを設定することが望ましい。すなわち、パラメータ設定部6は、物理モデルの挙動を記述した関数が入力値1のステップ応答に対して正規化された時間の終了値(1秒)の出力値が1となるようなパラメータを設定することが望ましい。
【0036】
図3を参照して、バネ・マス・ダンパ系の関数にパラメータが設定される一例を説明する。図3は、バネ・マス・ダンパ系の関数にパラメータの一例が設定された場合の出力を示すグラフである。
図3のグラフは、例えば、角周波数ωnを20.0、減衰係数ζを0.33に設定した時の時間に対する出力のグラフである。出力は、時刻tが0から1秒になるに伴い、1を中心に大きな振動から次第に小さな振動となり1に収束していく。
本願発明は、この出力値をアニメーションの生成に利用することにより、バネ、マス、ダンパを伴った物理モデルが持つ動作をアニメーションとして再現する。
【0037】
図4及び図5を参照して、設定されるパラメータとアニメーションの変化との関係を説明する。図4は、角周波数ωnを20.0に固定し、減衰係数ζを変更した場合のバネ・マス・ダンパ系の物理モデルの時間と出力を表すグラフである。
減衰係数ζは、0.1、0.2、0.4、0.6、0.8と変更されると、F(t)=1を境に振動する大きさが小さくなり、F(t)=1に収束していく。すなわち、減衰係数ζが1に近づくに伴い振動が小さくなる。
【0038】
減衰係数ζが小さいということは、ダンパ係数Bに比べ、質量Mとバネ定数の積が大きいことを示唆し(式2参照)、振動が起こり易いことを示している。一方、減衰係数ζが1に近づくと、ダンパ係数Bに比べ、質量Mとバネ定数の積とが等しいことを示唆し、互いにつり合い、振動が起こり難いことを示している。
以上により、減衰係数ζを変更することで、アニメーション生成の際、オブジェクトの振動の大きさを制御することができる。
【0039】
図5は、減衰係数ζを0.33に固定し、角周波数ωnを変更した場合のバネ・マス・ダンパ系の物理モデルの時間と出力を表すグラフである。
角周波数ωnは、20.0、8.4、5.3、2.0と変更されると、F(t)=1を境に振動する大きさが不変で振動の周期が大きくなる。すなわち、角周波数ωnが小さくなるに伴い振動の周期が長くなる。
【0040】
角周波数ωnが小さいということは、質量Mに対するバネ定数Kの比が小さいことを示唆し、バネ定数Kに対する質量Mの比が大きくなるに伴いゆっくりとした動きになることを示している。
以上により、減衰振動ζを固定し、角周波数ωnを変更することで、アニメーション生成の際、オブジェクトの動作の機敏さを制御することができる。
【0041】
なお、本実施形態では、角周波数と減衰係数をパラメータとする方法で説明したが、質量とバネ定数とダンパ係数をパラメータとするようにしても良い。
例えば、バネ定数を小さく設定し、ダンパ係数を大きく設定した場合、振動しないで時間が経つにつれ動きが小さくなるようなアニメーションが生成できる。また、バネ定数を大きく設定し、ダンパ係数を小さく設定すると、長い時間振動を繰り返すアニメーションが生成できる。
【0042】
また、質量とバネ定数とダンパ係数をパラメータとした場合にバネ定数を0に設定すると、物理モデルは、ダンパと質量からなるモデル系とみなせる。この場合、時刻が0に近い部分は素早い立ち上がりとなり、急速にF(t)=1に近づく。その後、時刻が1に近づくに伴い緩やかにF(t)=1に近づくようなアニメーション(イーズアウトと呼ばれ一般的に用いられる)が実現可能となる。
以上に説明した通り、マス・バネ・ダンパ系の物理モデルの時間領域の関数のパラメータを変更することにより多様なアニメーションを生成することができる。
【0043】
次に、物理モデルの挙動を記述した関数に、時間が経つに伴い出力値が収束するようなパラメータの設定方法を説明する。ここでは、例えば、整定時間を用いたパラメータの設定方法で説明する。整定時間とは、応答が収束値の許容値内に入るまでの時間のことをいう。ここで、収束値の許容値内とは、例えば、収束値の±2%(2%整定時間)のことをいう。
【0044】
整定時間は、次式で計算する。Δには、0.02(2%)が入り、次のように近似できる。
【数4】
ここで、(0<ζ<1)とすると、式4より、以下の関係が得られる。
【数5】
【0045】
以上により、図4より、ζの値の違いによる応答を1つ選択した場合は、式5より、ωnを決定することができる。なお、例えば、4/ωn=ζとした場合は、時刻1で応答が2%の許容範囲に入る。この場合は、ζ=0.1を選択した場合、ωn=40.0が決定し、ζ=0.2を選択した場合、ωn=20.0が決定する。
【0046】
なお、図3に示す例(ωn=20.0、ζ=0.33)は、式5を満たしている。また、図5に示すように、ζが一定だとすると、ωnが小さくなると整定時間が長くなり、ωnが大きくなると整定時間が短くなっていく(応答が収束した時間、すなわち、アニメーション動作が収束した状態が続く)。以上の特性から、ωn及びζのパラメータは、整定時間を1により近づけることが好ましい。
なお、収束値の許容値内を±2%で説明したがこれに限定されるものではなく、±1%、±5%でも良い。
【0047】
アニメーション生成部7は、パラメータが設定された物理モデルの挙動を記述した数式に基づいて、任意の値から任意の値へ任意の時間で、オブジェクトを変化させるアニメーションを生成する。
パラメータが設定された物理モデルの挙動を記述した数式は、入力値1のステップ応答に対して正規化された時間の終了値(1秒)の出力値が1となることが望ましいが後述するように必須ではない。このパラメータが設定された物理モデルの挙動を記述した数式は、任意の値から任意の値へ任意の時間でオブジェクトを変化させる際、基となる動き(正規化された動き)を決定する値を出力する。
【0048】
式6は、任意の値から任意の値へ、任意の時間で行うアニメーションを生成するための式である。
【数6】
【0049】
前述した式3は、正規化された時間範囲(0≦t≦1)の値を使うため、式6により、任意の時間への変換と、任意の値への変換を行う。なお、tは時刻、dはアニメーション時間、t′は正規化された時刻、P´は時刻t′におけるアニメーション値、Pstartはオブジェクトの初期値(任意の値)、Pendはオブジェクトの終了値(任意の値)を示し、F(t′)は、式3のx(t)である。ここで、アニメーション値は、例えば、オブジェクトの座標値、透明度等のエフェクト値等である。
【0050】
具体的に式6を用いて時刻tにおけるアニメーション値P´を計算する方法を説明する。式6に示す通り、時刻tをアニメーション時間dによって除算することにより、時刻tを正規化し、正規化された時刻t′(0≦t′≦1)を用いて時刻t′におけるアニメーション値P´を計算する。そして、t=dt′より、正規化された時間t′からアニメーション時間dでの時刻tに変換する。これにより、アニメーション時間dでの時刻tにおけるアニメーション値P´を求めることができる。
【0051】
以上により、時刻tに応じたアニメーション値P´を求めることができ、オブジェクトを時刻毎のアニメーション値P´に基づいて変化させることによりアニメーションを生成することができる。
【0052】
制御部8は、以上に説明した各部を総括的に制御するものでCPU8aを有している。CPU8aは、表示装置1の本体を総括的に制御する制御手段として機能する中央処理装置である。CPU8aは、ROMに格納されたプログラムをRAMに読み込ませて実行させる一種のコンピュータである。
【0053】
図6を参照して、本発明のアニメーション生成方法の一例を説明する。図6は、アニメーション生成方法の処理手順を示すフローチャートである。
本発明に係るアニメーションの表示装置は、数式設定部5がバネ・マス・ダンパ系の関数(物理モデルの挙動を記述した数式)を設定し(ステップS1)、パラメータ設定部がバネ・マス・ダンパ系の関数のパラメータである角周波数ωnと減衰係数ζを設定する(ステップS2)。
【0054】
次に、アニメーション生成部7は、時刻tをアニメーション時間dで除算することにより、時刻tを正規化した正規化時刻t′(0≦t′≦1)を計算し(ステップS3)、正規化された時刻t′を初期化し(ステップS4)、ステップS5へ進む。ここでいう時刻tとは、0秒〜d秒の範囲の変数である。
【0055】
アニメーション生成部7は、正規化された時刻t′におけるアニメーション値P´を求める(ステップS5)とともにアニメーション時間dでの時刻tを求め(ステップS6)、t′が正規化された時間(0≦t′≦1)を終了したかどうかを判断する(ステップS7)。
【0056】
ステップS7において、アニメーション生成部7は、正規化された時刻である1秒を経過した場合、終了する。1秒を経過していない場合は、正規化された時刻t′に時間分解能値(例えば、0.1秒)を加算し(ステップS8)、再びステップS5へ戻る。
【0057】
図7乃至図9を参照して、バネ・マス・ダンパ系の関数のグラフと生成されるアニメーションとの関係を説明する。図7は、バネ・マス・ダンパ系の関数をオブジェクトのX軸方向の座標値に適用した様子を示す図である。
【0058】
図7を参照して、バネ・マス・ダンパ系の関数をオブジェクトのX軸方向の座標値に適用した様子を説明する。すわわち、P´(t′)は、正規化された時刻t′におけるオブジェクトのX軸の座標値を表す。
【0059】
アニメーションは、各々の箱が左へバネのような動きで移動する。移動後は、1番の箱の位置に2番の箱が移動し、2番の箱の位置に3番の箱が移動し、3番の箱の位置に4番の箱が移動する。なお、バネ・マス・ダンパ系の関数は、図3で示す角周波数ωnを20.0、減衰係数ζを0.33に設定した関数を用いる。また、アニメーション時間dは1秒とする。すなわち、それぞれの箱は、1秒間かけて移動するものとする。よって、ここでは、t′=tである。
【0060】
なお、X軸は、表示部の左右方向とする。そして、表示部の表示領域は、左端がX座標値0、右端がX座標値6である。そして、箱の幅が2、箱と箱の間隔が1であるとすると、図7に示す[1]において、それぞれの箱の座標位置は、1番の箱がX=−1、2番の箱がX=2、3番の箱がx=5、4番の箱がx=8である。ここで、オブジェクトである箱は、座標値0≦X≦6の間で表示され、0>X、6<Xで非表示となる。なお、座標値は、箱の左部分を基準とする。
【0061】
そして、それぞれの箱の時刻tにおけるX座標値P´は、以下の式で表される。
1番の箱のP´=−1−3*F(t) (t:[0,1])
2番の箱のP´= 1番の箱のP´+3 (t:[0,1])
3番の箱のP´= 2番の箱のP´+3 (t:[0,1])
4番の箱のP´= 3番の箱のP´+3 (t:[0,1])
なお、3*F(t)の係数3は、箱の幅が2、箱と箱の間隔が1であることから3となる。
【0062】
それぞれの箱は、時刻tが0から1になる間に左方向へ、X座標値がF(t)で再現される物理モデルに基づいて初期座標値から最終座標値へ図7の[1]〜[9]に示すように移動する。
なお、それぞれの箱に対して同じパラメータが設定されたバネ・マス・ダンパ系の関数を用いる態様で説明したが、箱ごとにパラメータの値を変えても良い。例えば、オブジェクトが映像データのサムネイルだった場合、短時間の映像は、ζを小さく、長時間の映像は、ζを大きく設定する。これにより、ユーザは、映像のサムネイルの動きから映像時間の長短を理解することができる。
【0063】
この場合におけるそれぞれの箱の時刻tにおけるX座標値P´を式6で表すと、以下の式で表される。F1(t)〜F4(t)のそれぞれには、映像時間に応じたζが設定される。
1番の箱のP´=−1+F1(t) *(−4−(−1)) (t:[0,1])
2番の箱のP´= 2+F2(t) *(−1− 2) (t:[0,1])
3番の箱のP´= 5+F3(t) *( 2− 5) (t:[0,1])
4番の箱のP´= 8+F4(t) *( 5− 8) (t:[0,1])
【0064】
図8を参照しながら、オブジェクトがX軸方向、Y軸方向の両軸に対して動く、すなわち画面の斜め方向に動くアニメーションを生成する場合について説明する。この場合、バネ・マス・ダンパ系の関数は、X軸方向とY軸方向の座標値に適用される。図8は、バネ・マス・ダンパ系の関数をオブジェクトのX軸方向とY軸方向の座標値に適用した様子を示す図である。
【0065】
図7で示したアニメーションと同様にバネ・マス・ダンパ系の関数は、図3で示す角周波数ωnを20.0、減衰係数ζを0.33のパラメータを設定した時の関数を用いた。また、アニメーション時間dは1秒、すなわち、t′=tとした。
オブジェクトの座標位置は、表示部の左右方向をX軸とし、上下方向をY軸とすると、座標位置(x、y)=(P´、P´)と表され、オブジェクトが図の[1]〜[9]に示すように画面表示される。
【0066】
図9を参照しながら、バネ・マス・ダンパ系の関数をZ軸方向の座標値とした場合を説明する。図9は、バネ・マス・ダンパ系の関数をオブジェクトのZ軸方向の座標値に適用した様子を示す図である。
【0067】
先と同様にバネ・マス・ダンパ系の関数は、図3で示す角周波数ωnを20.0、減衰係数ζを0.33のパラメータを設定した時の関数を用いた。また、アニメーション時間dは1秒、すなわち、t′=tとした。
オブジェクトは、表示部の表示領域に直交する方向をZ軸とすると、オブジェクトのZ軸の座標値がF(t)で再現される物理モデルに基づいて初期座標値から最終座標値へ[1]〜[9]に示すように移動する。
【0068】
また、バネ・マス・ダンパ系の関数をオブジェクトのX軸方向の座標値に適用する態様で説明したが、Y軸、Z軸方向にも同様にバネ・マス・ダンパ系の関数を適用し、X軸、Y軸、Z軸でオブジェクトを動かしても良い。各軸は、同じパラメータが設定されたバネ・マス・ダンパ系の関数でも良いし、パラメータを変化させたものでも良い。
【0069】
図10を参照しながら、バネ・マス・ダンパ系の関数をオブジェクトの透明度のエフェクト値に適用した場合を説明する。図10は、バネ・マス・ダンパ系の関数をオブジェクトの透明度のエフェクト値に適用した様子を示す図である。
バネ・マス・ダンパ系の関数は、図5で示す角周波数ωnを20.0、減衰係数ζを0.33のパラメータを設定した関数を用いた。また、アニメーション時間dは1秒、すなわち、t′=tとした。
【0070】
なお、図5で示す角周波数ωnを20.0、減衰係数ζを0.33のパラメータを設定した関数は、t=1のとき、出力値が1となっていない。しかし、出力値は、厳密に1である必要はなく、知覚上問題がないほど1に近い値(例えば、出力値1に対して2%以内の範囲の値)であれば、時刻毎にt=1のときの出力値で除算することにより、時刻t=1のときの出力値を1に正規化してアニメーションの生成に用いることができる。
オブジェクトは、透明度のエフェクト値がF(t)の出力値に基づいて設定され、オブジェクトが[1]〜[5]に示すように、透明な状態から見える状態へと画面表示される。
【0071】
以上に説明した通り本発明に係るアニメーションの表示装置1は、表示部に表示されたウィンドウ、文字、画像、映像の表示オブジェクトの動きに関して、物理モデルの挙動を再現する関数を用いることにより、重いものが動いている、軽いものが動いている、摩擦のあるものが動いている、バネのようなものが動いているといった、実際に物理的なものが動く現象を再現することができる。これにより、このアニメーションは、オブジェクトの動作に意味を与え易く、ユーザがその動作を理解し自然に受け入れることができる。
【0072】
また、物理モデルの挙動を再現する関数のパラメータを変更することにより、多様なアニメーションを生成することができる。
また、物理モデルの挙動を再現する関数は、t=1のとき、出力が1をとるようにパラメータが設定されることにより、この関数の時刻及び出力値が正規化値となり、この関数の時刻0から時刻1までの時刻と出力値との関係を基にして任意の値から任意の値へ任意の時間で変化するアニメーションを生成することができる。これにより、一度、パラメータを決定すれば、煩雑なパラメータ計算なしで任意の値から任意の時間で変化するアニメーションを生成することができる。
【0073】
なお、パラメータ設定部6は、物理モデルの挙動を記述した関数にt=1のとき、出力が1となるようなパラメータを設定する態様で説明したがこれに限定されるものではない。
例えば、パラメータが設定された物理モデルの挙動を記述した関数(ステップ応答)の0から任意の時間の動きをアニメーションの生成に用いても良い。この場合、任意の時間を1とする正規化を行うとともに任意の時間での出力値を1とする正規化を行う。この際、物理モデルの挙動を記述した関数は、その出力が時間の経過に伴い1近傍に収束しているようにパラメータ設定されていることが好ましく、オブジェクトがより自然な動きとなる。
例えば、図11は、角周波数ωnを20.0に、減衰係数ζを0.1に設定した関数の出力値を正規化した様子を示すグラフであり、実線が正規化前の関数の出力を示し、点線が正規化後の関数による出力を示す。
【0074】
また、例えば、あるパラメータが設定された数式が時間t2のとき、出力値が1であったとして(すなわち、この関数の値が出力1となる時間t1、t2、t3…の1つを選択する場合)、この時間t2のときの出力値が1である関数の時間と出力値との関係を用いて任意の値から任意の値へ、任意の時間でアニメーションを生成させても良い。このようなt2のときの出力値が1である関数をアニメーションの生成に用いると、アニメーション終了時に外部から何らかの作用によって動作が止められたような動きを再現することができる。
【0075】
また、所定のパラメータが設定された数式は、時刻0から正規化された時刻の終了値(1)まで逐次計算しても良いし、時刻0から正規化された時刻の終了値(1)までの時刻と出力値との関係を予め対応付けしてテーブル化させておいても良い。この場合は、数式を計算する計算コストを少なくすることができる。実際にこのテーブルを用いて計算する場合は、適宜テーブル化された値を省略、補間する。
【0076】
例えば、1秒で動作することを前提としたテーブルを利用して、2秒で動作するアニメーションを生成する場合は、テーブルに記述された隣り合う値を線形補完する。
また、例えば、1秒で動作することを前提としたテーブルを利用して、0.5秒で動作するアニメーションを生成する場合は、1つおきにテーブルの値を参照する。
【0077】
また、時間分解能値を0.1秒で説明したがこれに限定されるものではない。時間分解能値は、図6において、前回にステップS8の処理が行われてから、再度ステップS8の処理が行われるまでに経過した時間(画面更新の間隔、必要とされる時刻に応じた経過時間)であってもよい。
【0078】
また、実施の形態で説明した機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行なっても良い。なお、「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
【0079】
製品端末機器の有する制御プログラムとして、例えばJini対応の製品端末機器であれば、インタープリタであるJavaVM(Virtual Machine)(登録商標)により、製品端末機器上でJava(登録商標)プログラムとして、実行させることが可能である。
【0080】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また前記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0081】
また、上述した実施形態における表示装置1の一部、又は全部を典型的には集積回路であるLSI(Large Scale Integration)として実施しても良い。表示装置1の各機能ブロックは、個別にチップ化しても良いし、一部、又は全部を集積してチップ化しても良い。また、集積回路化の手法は、LSIに限らず専用回路、又は汎用プロセッサで実現しても良い。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いることも可能である。
【符号の説明】
【0082】
1…表示装置、2…表示部、3…入力部、4…記憶部、5…数式設定部(数式設定手段)、6…パラメータ設定部(パラメータ設定手段)、7…アニメーション生成部(アニメーション生成手段)、8…制御部、8a…CPU。
【特許請求の範囲】
【請求項1】
オブジェクトのアニメーション生成方法であって、
物理モデルの挙動を記述した数式を設定する数式設定ステップと、
該数式に、時間が経つに伴い出力値が収束するようなパラメータを設定するパラメータ設定ステップと、
該パラメータが設定された前記数式に基づいて、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成するアニメーション生成ステップと、を備えたことを特徴とするアニメーション生成方法。
【請求項2】
前記物理モデルの挙動を記述した数式は、バネ・マス・ダンパモデルにおけるステップ応答についての時間領域の関数であることを特徴とする請求項1に記載のアニメーション生成方法。
【請求項3】
前記アニメーション生成ステップは、前記パラメータが設定された数式の時刻0から正規化された時刻の終了値までの時刻と出力値との関係に基づいて、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成することを特徴とする請求項1又2に記載のアニメーション生成方法。
【請求項4】
前記パラメータが設定された数式の時刻0から正規化された時刻の終了値までの時刻と出力値との関係は、予め計算されテーブル化されていることを特徴とする請求項3に記載のアニメーション生成方法。
【請求項5】
前記パラメータは、角周波数と減衰係数であることを特徴とする請求項2乃至4のいずれか1項に記載のアニメーション生成方法。
【請求項6】
前記パラメータは、バネ係数と質量とダンパ係数であることを特徴とする請求項2乃至4のいずれか1項に記載のアニメーション生成方法。
【請求項7】
前記パラメータは、前記数式が入力値1のステップ応答に対して正規化された時間の終了値の出力値が1となるように設定されることを特徴とする請求項1乃至6のいずれか1項に記載のアニメーション生成方法。
【請求項8】
前記任意の値は、座標位置であることを特徴とする請求項1乃至7のいずれか1項に記載のアニメーション生成方法。
【請求項9】
前記任意の値は、エフェクト値であることを特徴とする請求項1乃至7のいずれか1項に記載のアニメーション生成方法。
【請求項10】
請求項1乃至9のいずれか1項に記載のアニメーション生成方法の各ステップをコンピュータに実行させるためのプログラム。
【請求項11】
請求項10に記載のプログラムが格納されたコンピュータ読み取り可能な記憶媒体。
【請求項12】
オブジェクトのアニメーションを生成する集積回路であって、
物理モデルの挙動を記述した数式を設定する数式設定手段と、
該数式に、時間が経つに伴い出力値が収束するようなパラメータを設定するパラメータ設定手段と、
該パラメータが設定された前記数式に基づいて、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成するアニメーション生成手段と、を備えたことを特徴とする集積回路。
【請求項13】
オブジェクトのアニメーションを表示する表示部を備えた表示装置であって、
物理モデルの挙動を記述した数式を設定する数式設定部と、
該数式に、時間が経つに伴い出力値が収束するようなパラメータを設定するパラメータ設定部と、
該パラメータが設定された前記数式に基づいて、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成するアニメーション生成部と、を備えたことを特徴とする表示装置。
【請求項1】
オブジェクトのアニメーション生成方法であって、
物理モデルの挙動を記述した数式を設定する数式設定ステップと、
該数式に、時間が経つに伴い出力値が収束するようなパラメータを設定するパラメータ設定ステップと、
該パラメータが設定された前記数式に基づいて、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成するアニメーション生成ステップと、を備えたことを特徴とするアニメーション生成方法。
【請求項2】
前記物理モデルの挙動を記述した数式は、バネ・マス・ダンパモデルにおけるステップ応答についての時間領域の関数であることを特徴とする請求項1に記載のアニメーション生成方法。
【請求項3】
前記アニメーション生成ステップは、前記パラメータが設定された数式の時刻0から正規化された時刻の終了値までの時刻と出力値との関係に基づいて、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成することを特徴とする請求項1又2に記載のアニメーション生成方法。
【請求項4】
前記パラメータが設定された数式の時刻0から正規化された時刻の終了値までの時刻と出力値との関係は、予め計算されテーブル化されていることを特徴とする請求項3に記載のアニメーション生成方法。
【請求項5】
前記パラメータは、角周波数と減衰係数であることを特徴とする請求項2乃至4のいずれか1項に記載のアニメーション生成方法。
【請求項6】
前記パラメータは、バネ係数と質量とダンパ係数であることを特徴とする請求項2乃至4のいずれか1項に記載のアニメーション生成方法。
【請求項7】
前記パラメータは、前記数式が入力値1のステップ応答に対して正規化された時間の終了値の出力値が1となるように設定されることを特徴とする請求項1乃至6のいずれか1項に記載のアニメーション生成方法。
【請求項8】
前記任意の値は、座標位置であることを特徴とする請求項1乃至7のいずれか1項に記載のアニメーション生成方法。
【請求項9】
前記任意の値は、エフェクト値であることを特徴とする請求項1乃至7のいずれか1項に記載のアニメーション生成方法。
【請求項10】
請求項1乃至9のいずれか1項に記載のアニメーション生成方法の各ステップをコンピュータに実行させるためのプログラム。
【請求項11】
請求項10に記載のプログラムが格納されたコンピュータ読み取り可能な記憶媒体。
【請求項12】
オブジェクトのアニメーションを生成する集積回路であって、
物理モデルの挙動を記述した数式を設定する数式設定手段と、
該数式に、時間が経つに伴い出力値が収束するようなパラメータを設定するパラメータ設定手段と、
該パラメータが設定された前記数式に基づいて、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成するアニメーション生成手段と、を備えたことを特徴とする集積回路。
【請求項13】
オブジェクトのアニメーションを表示する表示部を備えた表示装置であって、
物理モデルの挙動を記述した数式を設定する数式設定部と、
該数式に、時間が経つに伴い出力値が収束するようなパラメータを設定するパラメータ設定部と、
該パラメータが設定された前記数式に基づいて、任意の値から任意の値へ任意の時間で、前記オブジェクトを変化させるアニメーションを生成するアニメーション生成部と、を備えたことを特徴とする表示装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−68915(P2012−68915A)
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願番号】特願2010−213413(P2010−213413)
【出願日】平成22年9月24日(2010.9.24)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願日】平成22年9月24日(2010.9.24)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
[ Back to top ]