三次元画像表示プログラム、三次元画像表示機能を備えた携帯電話機等の携帯デバイス、及び三次元画像の表示方法
【課題】 携帯電話機等の携帯デバイスのディスプレイに、ディスプレイを仮想透視した三次元画像を表示する三次元画像表示プログラム等を提供する。
【解決手段】 地図情報サーバから携帯デバイスの周囲にある表示対象物のGPS情報を取得し、携帯デバイスのGPS情報を基準にした各々の対象物の相対座標を三次元データとして記憶する。この対象物の位置を示す三次元データを、三軸の加速度値と方位値から把握される携帯デバイスの姿勢に対応して変換するが、併せて、携帯デバイスのディスプレイに垂直な軸の加速度からディスプレイの地面に対する傾きを把握し、これに対応して対象物に対するユーザの視点を上方に移動させ、三次元データを変換することによって、ディスプレイを地面の方向に傾けた場合の視野を拡大する。携帯デバイスの姿勢をクォータニオンで表すことによって、姿勢の変化の判定や、画像を変化させる際の補間にかかる演算を効率化する。
【解決手段】 地図情報サーバから携帯デバイスの周囲にある表示対象物のGPS情報を取得し、携帯デバイスのGPS情報を基準にした各々の対象物の相対座標を三次元データとして記憶する。この対象物の位置を示す三次元データを、三軸の加速度値と方位値から把握される携帯デバイスの姿勢に対応して変換するが、併せて、携帯デバイスのディスプレイに垂直な軸の加速度からディスプレイの地面に対する傾きを把握し、これに対応して対象物に対するユーザの視点を上方に移動させ、三次元データを変換することによって、ディスプレイを地面の方向に傾けた場合の視野を拡大する。携帯デバイスの姿勢をクォータニオンで表すことによって、姿勢の変化の判定や、画像を変化させる際の補間にかかる演算を効率化する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、携帯電話機等の携帯デバイスのディスプレイに、ディスプレイを仮想透視した三次元画像を表示する三次元画像表示プログラム、三次元画像表示機能を備えた携帯電話機等の携帯デバイス、携帯電話機等の携帯デバイスのディスプレイに、ディスプレイを仮想透視した三次元画像を表示する三次元画像表示方法に関するものである。
【背景技術】
【0002】
携帯電話機やPDAなどの携帯デバイスにはGPS機能が備えられるものが多くなっており、GPS機能によってユーザの現在地が表示される地図アプリケーションが提供されるようになっている。このうち、二次元の地図情報を表示するアプリケーションは、全体の位置関係を把握するのに便利であり、地図上におけるユーザの現在地を把握する用途に適している。これに対して、周辺にある建物などを三次元で表示する三次元の地図アプリケーションは、ユーザの視点から実際に見える周辺の状況を把握するのに便利であり、カーナビなどのナビゲーション用途に適している。
【0003】
後者の三次元の地図アプリケーションについては、近時、様々な新しいサービスが提供されるようになっており、例えば、携帯電話機のディスプレイを仮想透視してユーザの前方に見える景色を三次元で表示する技術が提供されるようになっている(例えば、特許文献1、非特許文献1参照。)。
【0004】
このような機能が搭載された携帯電話機等のユーザは、ディスプレイ上にあたかも実空間を透視したような映像を見ることが可能になっている。こうしたGPS機能を用いて三次元の地図情報を表示する技術はカーナビゲーションなどの分野でも利用されているが、地図情報を三次元表示する際に対象物を描写する基準となる視点は、実際のユーザの視点に近い位置に固定されることになる(例えば、特許文献2の請求項1、特許文献3の請求項10、特許文献4の請求項1等参照。)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−243027号公報
【特許文献2】特開2003−337033号公報
【特許文献3】特開2005−056075号公報
【特許文献4】特開2007−255989号公報
【非特許文献】
【0006】
【非特許文献1】「KDDI研究所と東京大学、『実空間透視ケータイ』を共同開発、CEATECに参考出展」、株式会社KDDI研究所プレスリリース、[2009年9月4日検索]、インターネット<http://www.kddilabs.jp/press/detail_102.html>
【発明の概要】
【発明が解決しようとする課題】
【0007】
携帯電話機等のディスプレイに三次元の地図情報を表示する場合、実際のユーザの視点に近い位置を基準として対象物を描画すると、図1に示したように、ユーザの視線の方向が地面に対して平行に近い状態、すなわち携帯電話機等のディスプレイを地面に対して垂直に近い状態で使用すれば、遠方まで広く見渡した状態が表示され、アプリケーションが意図する本来の機能を発揮することができる。しかしながら、ユーザが下(地面側)を向いた状態になると、視界が狭められ、殆ど足元の地面しか見えない状態となってしまう。このような制限は、下(地面側)を向く状態で利用されることが想定し難いカーナビゲーションであれば、特に問題になることはない。
【0008】
ところが、この技術を前述のディスプレイを仮想透視した三次元の地図アプリケーションに適用しようとする場合、携帯電話機等のディスプレイを地面に対して平行に近い状態で使用すると地面しか表示されない状態となってしまい、携帯電話機等を地面に対して垂直に近い状態で利用しないと実用性が生じないため、二次元の地図アプリケーションのように地図上における全体の位置関係を確認するような利用には対応できないこととなってしまう。
【0009】
これに対して、二次元の地図アプリケーションに三次元の表示機能を持たせて、携帯電話機等の携帯デバイスを水平にして使用した場合は二次元の地図アプリケーションのように地図を表示しながら、携帯デバイスの傾きを変えると対象物が立体表示される三次元の地図アプリケーションも提供されるようになっている。
【0010】
こうしたアプリケーションでは、図2に示したように、あたかも航空写真を撮影するかのようにユーザの視点を高い位置に設定し、下を向いている場合(デバイスを水平にして使用した場合)の視界を広げることによって、広範囲の地図情報を表示することを可能にしているものである。そのため、この状態で携帯電話機等の携帯デバイスの傾きを変えると、視点が高い位置に固定されたままで視線の方向のみが変更されるため、ディスプレイに表示されるのは上空から見た映像のようになって、ユーザの始点から見える景色とは全く異なる画像が表示されることとなってしまい、三次元の地図アプリケーションの本来の特長が生かせるナビゲーション用途に利用することができない。
【0011】
以上のように、ユーザの視点に合わせて対象物を描画する方法を採用すると、地図上における全体の位置関係を確認するような利用に対応できないし、ユーザの視点を高い位置に設定して対象物を描画すればこのような利用には対応できるものの、その場合はユーザの視点から見渡した周囲の景色を表示し、ディスプレイを仮想透視するような利用に対応できず、ナビゲーション用途に活用できないこととなってしまう。
【0012】
こうした問題に加え、ディスプレイを仮想透視するように周囲の景色を表示しようとすると、携帯電話機等の携帯デバイスの姿勢が変化するたびに対象物の描画が行われることになるため、携帯デバイスの姿勢が急激に変化した際には、景色が滑らかに変化することなく突然他の景色に切り換わり、実際の目に見える映像とは異なる印象を与えてしまうおそれがある。また、少しの姿勢の変化が生じてもディスプレイの表示に反映することにすると、ディスプレイに表示される景色が常に細かく揺れているように見える状態となってしまうおそれがあるとともに、携帯デバイスの処理に過度の負荷がかかってしまうことも想定される。
【0013】
本発明は、このような課題に対応するためになされたものであり、携帯電話機等の携帯デバイスのディスプレイに三次元画像を表示する三次元画像表示プログラム、三次元画像表示機能を備えた携帯電話機等の携帯デバイス、携帯電話機等の携帯デバイスのディスプレイに、ディスプレイを仮想透視した三次元画像を表示する三次元画像表示方法を提供することを目的とするものである。
【課題を解決するための手段】
【0014】
このような課題に対応する本発明は、携帯電話機等の携帯デバイスのディスプレイに三次元画像を表示する三次元画像表示プログラムであって、携帯デバイスに、前記携帯デバイスの位置を示すGPS情報をGPSセンサーから検出する位置情報検出ステップと、前記携帯デバイスの周囲にある各々の表示対象のGPS情報と、前記GPSセンサーから検出したGPS情報から、前記表示対象の前記携帯デバイスの位置からの相対座標を演算して、前記表示対象の各々に対応する三次元データを記憶する三次元データ記憶ステップと、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢に対応して前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成する姿勢変換行列生成ステップと、前記三軸の加速度値のうち、前記携帯デバイスのディスプレイに垂直な軸の加速度値から、前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成する高さ変換行列生成ステップと、前記表示対象の各々に対応する三次元データを前記姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換し、変換した三次元データをレンダリングして、前記ディスプレイに表示させる三次元画像データを生成する三次元画像データ生成ステップと、前記三次元画像データを前記ディスプレイに出力する三次元画像データ出力ステップと、を実行させること特徴とする三次元画像表示プログラムである。
【0015】
本発明では、携帯デバイスの姿勢にあわせて視点を移動させる姿勢変換行列に加え、携帯デバイスのディスプレイの傾きにあわせて視点の高さを移動させる高さ変換行列で三次元データを変換して表示する画像を生成することによって、ディスプレイの傾きによってユーザの視点に近い位置から見た画像を表示したり、ユーザの視点より高い位置から見た画像を表示したりすることが可能になる。これによって、ディスプレイを地面に垂直に立てて見た場合にはユーザの視点から見渡した周囲の景色が立体表示され、ディスプレイを水平にして見た場合には全体の位置関係を確認できる地図が表示される、といった三次元画像の表示が実現される。
【0016】
また、本発明は、前記姿勢変換行列生成ステップでは、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第1のクォータニオンを生成し、前記第1のクォータニオンを変換することによって前記姿勢変換行列を生成し、前記携帯デバイスに、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第2のクォータニオンを生成するクォータニオン生成ステップと、前記第1のクォータニオンと前記第2のクォータニオンをSlerp(球状線形補間)により補間し、補間された各々のクォータニオンから前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成し、前記表示対象の各々に対応する三次元データを前記姿勢変換行列を用いて変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成する第2の三次元画像データ生成ステップと、補間された各々のクォータニオンに対応する前記三次元画像データを、順次前記ディスプレイに出力する第2の三次元画像データ出力ステップと、を実行させることを特徴とすることもできる。
【0017】
このように、携帯デバイスの姿勢をクォータニオンで表すことによって、姿勢が変化した際には、各々の姿勢を表すクォータニオンをSlerp(球状線形補間)により補間し、補間されたクォータニオンをそれぞれ姿勢変換行列に変換して画像を生成することにより、姿勢の変化に対応して切り換わる画像の変化を補間し、ディスプレイに表示される画像の変化を滑らかに表現することが可能になる。また、クォータニオンを用いることによって、こうした補間によってコンピュータにかかる演算処理の負担も抑制されることになる。
【0018】
さらに、本発明は、前記携帯デバイスに、前記第1のクォータニオンと前記第2のクォータニオンの内積を演算し、前記内積を所定の閾値と対比して、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定する姿勢変化判定ステップを実行させ、前記姿勢変化判定ステップにおいて、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定された場合に、前記第2の三次元画像データ生成ステップ、及び前記第2の三次元画像データ出力ステップを実行させることを特徴としてもよい。
【0019】
このように、携帯デバイスの姿勢が変化した際には、各々のクォータニオンの内積を演算することによって姿勢の変化の程度を比較的簡易な演算で把握することができるため、この内積が所定の条件に合致する場合にのみディスプレイに表示する画像を切り換えることとすれば、小さな姿勢の変化ではディスプレイの画像は切り換わらず、ディスプレイに表示される画像が細かく揺れて見えるような状態を回避することが可能になる。
【0020】
さらに、本発明は、前記高さ変換行列生成ステップでは、前記携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第1の高さを特定し、前記携帯デバイスの位置を前記第1の高さに対応して移動させるための前記高さ変換行列を生成し、前記携帯デバイスに、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第2の高さを特定する第2の高さ特定ステップを実行させ、前記第2の三次元画像データ生成ステップでは、前記第1の高さと前記第2の高さを所定のルールにより補間し、補間された各々の高さに対応する前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成して、前記表示対象の各々に対応する三次元データを、補間されたクォータニオンから生成された姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成することを特徴としてもよい。
【0021】
このように、携帯デバイスのディスプレイの傾きの変化についても、クォータニオンの補間に対応して、高さを示す値を補間して各々に対応する高さ変換行列を生成することにより、姿勢の変化に対応して画像を切り換える際には、これに対応して視点の高さも段階的に変化させ、ディスプレイに表示される画像の変化をより滑らかに表現することが可能になる。
【0022】
さらに、本発明は、前記三次元データ記憶ステップでは、前記相対座標における高さを0とした三次元データを記憶することを特徴としてもよい。
【0023】
一般に地図情報として提供されているGPS情報は、緯度及び経度に関する情報のみで高さの要素を持たないことや、高さの情報が不正確であることがあるので、このような場合には携帯デバイスの周囲にある各々の表示対象のGPS情報の高さと携帯デバイスのGPS情報の高さを0として三次元データを生成するか、あるいは表示対象の携帯デバイスの位置からの相対座標の高さを0とした三次元データを生成することによって、このような場合でも三次元データとして取扱うことが可能になる。
【0024】
また、本発明は、本発明にかかる三次元画像表示プログラムに対応して、本発明にかかる三次元画像表示プログラムによって実現される三次元画像表示機能を備えた携帯電話機等の携帯デバイスとして特定することもできる。
【0025】
本発明にかかる携帯デバイスは、ディスプレイに三次元画像を表示する機能を備えた携帯電話機等の携帯デバイスであって、前記携帯デバイスの位置を示すGPS情報をGPSセンサーから検出する位置情報検出手段と、前記携帯デバイスの周囲にある各々の表示対象のGPS情報と、前記GPSセンサーから検出したGPS情報から、前記表示対象の前記携帯デバイスの位置からの相対座標を演算して、前記表示対象の各々に対応する三次元データを記憶する三次元データ記憶手段と、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢に対応して前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成する姿勢変換行列生成手段と、前記三軸の加速度値のうち、前記携帯デバイスのディスプレイに垂直な軸の加速度値から、前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成する高さ変換行列生成手段と、前記表示対象の各々に対応する三次元データを前記姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換し、変換した三次元データをレンダリングして、前記ディスプレイに表示させる三次元画像データを生成する三次元画像データ生成手段と、前記三次元画像データを前記ディスプレイに出力する三次元画像データ出力手段と、を備えることを特徴とする携帯デバイスである。
【0026】
また、本発明にかかる携帯デバイスは、前記姿勢変換行列生成手段は、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第1のクォータニオンを生成し、前記第1のクォータニオンを変換することによって前記姿勢変換行列を生成し、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第2のクォータニオンを生成するクォータニオン生成手段と、前記第1のクォータニオンと前記第2のクォータニオンをSlerp(球状線形補間)により補間し、補間された各々のクォータニオンから前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成し、前記表示対象の各々に対応する三次元データを前記姿勢変換行列を用いて変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成する第2の三次元画像データ生成手段と、補間された各々のクォータニオンに対応する前記三次元画像データを、順次前記ディスプレイに出力する第2の三次元画像データ出力手段と、を備えることを特徴とすることもできる。
【0027】
さらに、本発明にかかる携帯デバイスは、前記第1のクォータニオンと前記第2のクォータニオンの内積を演算し、前記内積を所定の閾値と対比して、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定する姿勢変化判定手段を備えていて、前記姿勢変化判定手段によって、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定された場合に、前記第2の三次元画像データ手段による三次元画像データの生成、及び前記第2の三次元画像データ出力手段による三次元画像データの出力が実行されることを特徴としてもよい。
【0028】
さらに、本発明にかかる携帯デバイスは、前記高さ変換行列生成手段は、前記携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第1の高さを特定し、前記携帯デバイスの位置を前記第1の高さに対応して移動させるための前記高さ変換行列を生成し、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第2の高さを特定する第2の高さ特定手段を備えていて、前記第2の三次元画像データ生成手段は、前記第1の高さと前記第2の高さを所定のルールにより補間し、補間された各々の高さに対応する前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成して、前記表示対象の各々に対応する三次元データを、補間されたクォータニオンから生成された姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成することを特徴としてもよい。
【0029】
さらに、本発明にかかる携帯デバイスは、前記三次元データ記憶手段は、前記相対座標における高さを0とした三次元データを記憶することを特徴としてもよい。
【0030】
また、本発明は、本発明にかかる三次元画像表示プログラムに対応して、本発明にかかる三次元画像表示プログラム、又は本発明にかかる三次元画像表示機能を備えた携帯電話機等の携帯デバイスによって実現される三次元画像の表示方法として特定することもできる。
【発明の効果】
【0031】
本発明によって、携帯電話機等の携帯デバイスのディスプレイに、ディスプレイを仮想透視した三次元画像を表示する際に、ディスプレイを地面に垂直に立てて見た場合にはユーザの視点から見渡した周囲にある対象物が三次元表示され、ディスプレイを水平にして見た場合には全体の位置関係を確認できる地図が表示されるので、従来のような地図アプリケーションの機能を併用したナビゲーション用途等の三次元アプリケーションが実現される。
【0032】
また、携帯電話機等の携帯デバイスの姿勢が急激に変化した場合には、演算処理に過度の負担をかけることなく、表示される画像の変化を滑らかに表現することが可能になるとともに、少しの姿勢の変化によってディスプレイの表示も変更され、ディスプレイに表示される画像が常に細かく揺れているように見える状態が生じることを回避することも可能になる。
【図面の簡単な説明】
【0033】
【図1】ユーザの視点からの視界を示す図である。
【図2】視点を上方に移動させた場合の視界を示す図である。
【図3】本発明にかかる携帯デバイスの構成を示すブロック図である。
【図4】本発明にかかる三次元画像表示プログラムの処理フローを示す第1のフローチャートである。
【図5】本発明にかかる三次元画像表示プログラムの処理フローを示す第2のフローチャートである。
【図6】本発明にかかる三次元画像表示プログラムの処理フローを示す第3のフローチャートである。
【図7】本発明にかかる三次元画像表示プログラムの処理フローを示す第4のフローチャートである。
【図8】本発明にかかる三次元画像表示プログラムの処理フローを示す第5のフローチャートである。
【図9】本発明において、携帯デバイスの姿勢の変化に応じて視点を移動させるイメージを示す図である。
【図10】本発明において、携帯デバイスのディスプレイの傾きの変化に応じて視点を移動させるイメージを示す図である。
【図11】本発明において、携帯デバイスのディスプレイの傾きが地面に対して垂直な場合の視界を示す図である。
【図12】本発明において、携帯デバイスのディスプレイが地面に対して斜めに傾いた場合の視界と、視点を移動した後の視界を示す図である。
【図13】本発明において、携帯デバイスのディスプレイの傾きが地面に対して水平な場合の視界と、視点を移動した後の視界を示す図である。
【図14】本発明において、クォータニオンの補間等により画像の変化を表示する方法を示す図である。
【図15】本発明において、携帯デバイスのディスプレイの傾きが地面に対して垂直に近い状態でディスプレイに表示される画像の一例を示す図である。
【発明を実施するための形態】
【0034】
本発明を実施するための形態について、図面を用いて以下に詳細に説明する。尚、以下の説明は本発明の実施形態の一例を示したものであって、本発明はかかる実施形態に限定されるものではない。
【0035】
図3は、本発明にかかる携帯デバイスの構成を示している。本発明にかかる携帯デバイスには、持ち運びが可能であり、アプリケーションプログラムにより演算処理を行う機能を備え、処理結果を出力するディスプレイを備えた、携帯電話機やPDAなどのデバイスが用いられる。携帯デバイスへのデータの入力方法は特に限定されるものではなく、キーボードを備えるものであってもよいし、タッチパネル方式で入力を行うものであってもよい。インターネット等のネットワークへの接続機能の要否も特に限定されるものではないが、現在地を確認できるGPSセンサーを備えていることが必要である。
【0036】
図3において、携帯デバイス10は、GPSセンサー11、加速度センサー12、方位センサー13、地図情報取得部14、三次元データ記憶部15、三次元画像データ生成部16、三次元画像データ出力部17、ディスプレイ18を含んで構成されている。このうち、地図情報取得部14、三次元画像データ生成部16、三次元画像データ出力部17はいずれも機能的に特定されるものであって、各々の機能に対応するプログラムが携帯デバイス10のHDDからメインメモリに読み出され、CPUで演算処理を行うことによって各々の機能が実現される。三次元データ記憶部15には、携帯デバイス10のHDD又はメインメモリの所定の記憶領域が割り当てられる。
【0037】
以上の構成を前提にして、本発明にかかる三次元画像表示プログラムの処理フローを、図4〜図8のフローチャートを用いて説明する。
【0038】
図4のフローチャートは、携帯デバイス10の周囲の地図情報を取得して、各々の対象物を三次元データとして記憶するフローを示している。携帯デバイス10において、ユーザの入力操作によって、ディスプレイを仮想透視した三次元画像を表示するアプリケーションが選択されると、地図情報取得部14が起動され、GPSセンサー11から携帯デバイス10の現在地を示すGPS情報を検出する(S01)。続いて、地図情報サーバ20にアクセスして(S02)、携帯デバイス10の周囲にあって表示対象となる対象物のGPS情報を取得する(S03)。
【0039】
ここで地図情報サーバ20に地図情報をリクエストする際には、GPSセンサー11から検出した携帯デバイス10の現在地を示すGPS情報を送信することによって、地図情報サーバ20では、携帯デバイス10の周囲にある対象物のGPS情報が選択されて、これらのGPS情報が携帯デバイス10に送信される。
【0040】
地図情報取得部14で取得するGPS情報は、携帯デバイス10の周辺にあって地図上に表示される対象物のGPS情報であり、携帯デバイス10ではGPSセンサー11から検出した携帯デバイス10の現在地を示すGPS情報との相対座標を演算することによって、携帯デバイス10と各々の対象物との相対的な位置関係を三次元データとして表すことができる。このように演算された各々の対象物の三次元データを、三次元データ記憶部15に記憶させる(S04)。
【0041】
ここに記憶される三次元データは、三次元画像を描画する際のユーザの視点と表示される対象物の位置関係を示すものであるが、地図情報サーバ20から正確な高さを含んだGPS情報が取得できる場合には、地図情報サーバ20から取得した地図上に表示される対象物のGPS情報に含まれる高さと、GPSセンサー11から検出した携帯デバイス10のGPS情報に含まれる高さを反映した三次元データを生成すればよい。
【0042】
しかしながら、一般には、インターネット上で提供される地図情報に含まれるGPS情報が緯度及び経度に関する二次元データであって高さの要素を持たないことや、高さの要素を持っていても不正確であることが多い。このような場合には、地図情報サーバ20から取得した地図上に表示される対象物のGPS情報の高さと携帯デバイス10のGPS情報の高さを0として三次元データを生成するか、あるいは地図上に表示される対象物のGPS情報と携帯デバイス10の現在地を示すGPS情報との相対座標の高さを0とした三次元データを生成することとすればよい。
【0043】
尚、以上のフローでは、表示対象となる対象物のGPS情報を地図情報サーバ20から取得する例について説明したが、これらのGPS情報はあらかじめ携帯デバイス10に格納されていて、ここからGPSセンサー11から検出したGPS情報の周囲にある対象物のGPS情報を読み出すよう構成されていてもよい。この場合も、各々の対象物の相対座標を演算して、三次元データが三次元データ記憶部15に記憶された状態となることは同様である。
【0044】
図5のフローチャートは、携帯デバイス10の姿勢に対応して各々の対象物の三次元データを変換し、三次元画像データをディスプレイ18に出力するフローを示している。各々の対象物の三次元データが三次元データ記憶部15に記憶されると、三次元画像データ生成部16が起動されて、以下の処理によりディスプレイ18に出力する三次元画像データが生成される。
【0045】
まず、携帯デバイス10に備えられた加速度センサー12から、各々が垂直に交わる三軸の加速度値を検出する(S05)。これらの三軸の加速度値によって、携帯デバイス10の傾きを特定することができる。
【0046】
尚、携帯デバイス10の加速度センサー12は、これらの三軸以外を含むより多くの軸の加速度を検出可能なものであってもよいが、少なくとも各々が垂直に交わる三軸の加速度値を検出できることが必要であり、そのうちの一つの軸は携帯デバイス10のディスプレイ18に垂直な軸であることが好ましい。垂直に交わる三軸のいずれも携帯デバイス10のディスプレイ18に垂直な軸とならない場合は、そのうちの一つの軸が携帯デバイス10のディスプレイ18に垂直な軸となるように、加速度センサー12から検出した加速度値を変換する。
【0047】
次に、携帯デバイス10に備えられた方位センサー13から、方位値を検出する(S06)。この方位値は、携帯デバイス10が向けられている方向を、所定の方角(例えば北)に対する角度で表すものなので、加速度センサー12から検出した三軸の加速度値と方位センサーから検出した方位値によって、携帯デバイス10がどの方角に向かってどの程度傾いた状態となっているか、すなわち携帯デバイス10の姿勢を特定することが可能になる。
【0048】
本発明では、この姿勢を表すものとして、加速度センサー12から検出した三軸の加速度値と方位センサーから検出した方位値から、クォータニオン(四元数)を生成する(S07)。クォータニオンの生成には、まず、加速度センサーで得られた値から、携帯デバイス10から見た重力方向ベクトルを得る。次に、その重力方向ベクトルと、三次元空間内における下向き(0, −1, 0)が一致するようなクォータニオンq1を求める。さらに、三次元空間内における例えば北(0, 0, −1)を基準に方位センサーから得た値の方角を向くようなクォータニオンq2を求め、q1とq2を掛け合わせて、姿勢を表すクォータニオンqを得る。このようにして生成されるクォータニオンqは、例えば、(x,y,z,w)という形式で表すことができる。
【0049】
さらに、このクォータニオンから、先に三次元データ記憶部15に記憶させた各々の対象物の三次元データを変換して、携帯デバイス10の姿勢の変化に対応して相対座標における各々の対象物の位置を移動させるための姿勢変換行列(行列M1)を生成する(S08)。この姿勢変換行列は、図9の例に示したように、携帯デバイス10の姿勢の変化によってディスプレイ18からみたユーザの視点の方向が変化するため、これに対応して相対座標における軸の方向が移動することに対応して、各々の対象物の三次元データを変換するためのものである。
【0050】
ここで生成される姿勢変換行列は、クォータニオンq=(x,y,z,w)とすると、以下の行列M1と等しくなる。
【0051】
次に、加速度センサー12から検出した三軸の加速度値のうち、携帯デバイス10のディスプレイ18に垂直な軸の加速度値から、先に三次元データ記憶部15に記憶させた各々の対象物の三次元データを変換して、相対座標における携帯デバイス10の高さを移動させ、これに対応して各々の対象物の位置を移動させるための高さ変換行列(行列M2)を生成する(S09)。この高さ変換行列は、図10の例に示したように、ディスプレイ18の傾きに応じてユーザの視点の高さを移動させることに対応するのもので、相対座標における携帯デバイス10の高さが移動することに対応して、各々の対象物の三次元データを変換するためのものである。
【0052】
ここで生成される高さ変換行列は、ある三次元空間上の点p=(p1,p2,p3)を点p’=(p1+dx,p2+dy,p3+dz)へ平行移動させる行列M2(p’=pM2となるM2)は以下のとおりである。尚、ここでは行列M1に対応して行列M2も4×4の行列で表すため、便宜上点pの座標を三次元ベクトルではなく、1という要素を最後に追加した四次元ベクトルで表すこととする。
【0053】
ここで、携帯デバイス10のディスプレイ18に垂直な軸の加速度値に応じてユーザの視点の高さを移動させることの意味について、図11〜図13を用いて説明する。携帯デバイス10のディスプレイ18に垂直な軸の加速度値は、携帯デバイス10のディスプレイ18の地面(重力方向に垂直な面)に対する傾きに対応するものであることから、携帯デバイス10のディスプレイ18の地面に対する傾きに応じて、本発明では以下のような考え方でユーザの視点の高さを移動させる。
【0054】
図11の例に示すように、携帯電話デバイス10のディスプレイ18を地面に対して垂直に近い状態(言い換えれば携帯デバイス10のディスプレイ18に垂直な軸が地面に平行に近い状態)で使用した場合には、ディスプレイ10には遠方まで広く見渡した様子がディスプレイに表示されるので、携帯デバイス10の高さ、すなわちユーザの視点をそのままに設定した状態(前述のように高さを0として三次元データを生成した場合は、ユーザの視点の高さを0とした状態)で対象物を描画すればよい。
【0055】
しかしながら、図12の例に示すように、携帯デバイス10のディスプレイ18が地面に対してある程度の傾きを持つようになると、ユーザの視点をそのままにして描画すると視界が制限されることとなり、さらに図13の例のように、ユーザが下を向いた状態、すなわち携帯デバイス10のディスプレイ18を地面に対して平行に近い状態で使用した場合には、視界は一層狭まり、足元の地面しか見えない状態となってしまう。
【0056】
そこで、図12、図13に示したように、携帯デバイス10のディスプレイ18を地面に垂直に近い状態で使用した場合以外においてもユーザの視界を確保するために、携帯デバイス10の位置、すなわちユーザの視点を上方に移動させて、対象物を描画することとしている。このような方法によると、特に図13のように、携帯デバイス10のディスプレイ18が地面に対して平行に近い状態となったには、一般的な地図アプリケーションのようにディスプレイ18には上空から見た地図のように対象物が表示されるので、本発明によると、携帯デバイスのディスプレイに前方に見える景色等を立体的に表示するアプリケーションと、一般的な地図アプリケーションの双方の機能を併用したアプリケーションを提供することが可能になる。
【0057】
尚、携帯デバイス10のディスプレイ18に垂直な軸の加速度値に対して、ユーザの視点をどの程度移動させる方法は特に限定されるものではなく、三次元画像データ生成部16に対応するプログラムに、加速度値から所定の演算式によって移動させる高さを求めるよう設定しておいてもよいし、一定の範囲の加速度値に対して移動させる高さを関連付けて記憶しておくこととしてもよい。これらの演算式や関連付けのテーブルは、ユーザ等によって書換え可能なように設定しておいてもよい。
【0058】
以上のように、姿勢変換行列(行列M1)と高さ変換行列(行列M2)が生成されると、先に三次元データ記憶部15に記憶させた各々の対象物の三次元データを、これらの行列を掛け合わせた行列によって変換する。すなわち、各々の対象物の位置を示す三次元データは、携帯デバイス10の姿勢、携帯デバイス10のディスプレイ18の地面に対する傾きに対応する高さを反映した相対座標における位置に変換される。
【0059】
例えば、ある対象物を示す三次元データをg=(x,y,z)とするならば、この三次元データをg’=(x’,y’,z’)に変換することになるが、4×4の行列によって変換するために、便宜的にgを(x,y,z,1)と四次元データとして、行列M1と行列M2を掛け合わせた4×4の行列により変換し、変換された四次元データの(x’,y’,z’,1)の最後の1の要素を取り除くことによって、g’=(x’,y’,z’)を求めることができる。
【0060】
このようにして変換された各々の対象物を示す三次元データをレンダリングすることによって、ユーザの視点から見てディスプレイ18の前方を立体的に表示した景色等、さらにディスプレイ18を地面の方向に傾けた場合にはユーザの視点を上方に移動させてユーザの周辺を示す地図を表示するための三次元画像データが生成され(S10)、この三次元画像データを三次元画像データ出力部17がディスプレイ18に出力する(S11)。
【0061】
図6のフローチャートは、携帯デバイス10の位置の移動に対応して、周囲にある対象物の三次元データを更新して、新たに三次元データ記憶部15に記憶するフローを示している。携帯デバイス10では、継続的にGPSセンサー11から携帯デバイス10の現在地を示すGPS情報が検出されており(S12)、地図情報取得部14によって、このGPS情報が一定の値を超えて変化したことが検知される(S13)。そうすると、地図情報取得部14は、地図情報サーバ20にアクセスして(S14)、携帯デバイス10の周囲にあって表示対象となる対象物のGPS情報を新たに取得する(S15)。
【0062】
ここでも先に説明したアプリケーションの起動時と同様に、地図情報サーバ20にはGPSセンサー11から検出した携帯デバイス10の現在地を示すGPS情報を付したリクエストを送信することによって、地図情報サーバ20では、移動後の携帯デバイス10の周囲にある対象物のGPS情報が選択されて、これらのGPS情報が携帯デバイス10に送信される。
【0063】
地図情報取得部14で取得するGPS情報は、移動後の携帯デバイス10の周辺にあって地図上に表示される対象物のGPS情報であり、携帯デバイス10ではGPSセンサー11から検出した携帯デバイス10の現在地を示すGPS情報との相対座標から、携帯デバイス10と各々の対象物との相対的な位置関係を示す三次元データを演算し、三次元データ記憶部15に記憶された三次元データを新たに演算した三次元データに更新する(S16)。
【0064】
尚、先にアプリケーション起動時のフローでも説明したとおり、表示対象となる対象物のGPS情報を地図情報サーバ20から取得するのではなく、あらかじめ携帯デバイス10に格納されたGPS情報を読み出すよう構成してもよく、この場合も、各々の対象物の相対座標を演算して、三次元データ記憶部15に記憶された三次元データが更新されることは同様である。
【0065】
図7のフローチャートは、携帯デバイス10の姿勢の変化に対応して、ディスプレイ18に出力された画像を変化させるかどうかを判断するフローを示している。携帯デバイス10では、継続的に加速度センサー12から各々が垂直に交わる三軸の加速度値を(S17)、方位センサー13からは方位値を検出している(S18)。これらの値から、先にアプリケーション起動時のフローで説明したように、携帯デバイス10の姿勢を表すクォータニオン(四元数)を生成する(S19)。
【0066】
ここで、先に生成した元の姿勢を表すクォータニオンと、新たな姿勢を表すのに生成されたクォータニオンの内積を演算する(S20)。この内積から2つのクォータニオンの類似度、すなわち携帯デバイス10の姿勢がどの程度変化したかを判定することができるので、ここで演算された内積が所定の閾値を超える場合には(S21)、ディスプレイ18には新たな画像を出力しないよう設定することによって、携帯デバイス10の少しの姿勢の変化によってディスプレイ18の表示が変更され、ディスプレイ18に表示される地図等の画像が細かく揺れているように見える状態が生じることを回避することが可能になる。
【0067】
図8のフローチャートは、携帯デバイス10の姿勢の変化に対応してディスプレイ18に出力された画像を変化させる際に、特に姿勢が急速に変化した場合に、対象物の移動が滑らかに表示されるように、画像の変化を補間するフローを示している。図14は、このフローによる画像の変化の補間の仕組みを示したものである。
【0068】
まず、先に内積を演算した2つのクォータニオンを、Slerp(球状線形補間)を用いて補間する(S22)。ここで補間されるクォータニオンの数は特に限定されるものではないが、これによって2つの姿勢に対応するクォータニオンについて、いくつかの中間値が設定される。例えば、図14に示した例であれば、姿勢が変化する前のクォータニオン1と姿勢が変化した後のクォータニオン2に対して、3つのクォータニオン(1.1〜1.3)が補完されている。
【0069】
次に、加速度センサー12から検出した三軸の加速度値のうち、ディスプレイ18に垂直な軸の加速度から、姿勢が変化した後にユーザの視点を移動させる高さを特定し、先のクォータニオンの補間に対応して、姿勢が変化する前にユーザの視点を移動させた高さとの間の高さの値を補間する(S23)。高さを補間するための方法は特に限定されるものではなく、例えば、補間されたクォータニオンの中間値の数と同じ数で高さが均等に変化するように中間値を設定しても補間することとすればよい。高さの補間は高さを特定する前の段階で、加速度値の中間値を演算して、各々の加速度値に対応する高さを特定して補間することとしてもよい。
【0070】
例えば、図14に示した例であれば、姿勢が変化する前の加速度値1に対応する高さ1と姿勢が変化した後の加速度値2に対応する高さ2に対して、クォータニオンが3つの中間値(クォータニオン1.1〜1.3)によって補間されたことにあわせて、高さもが3つの中間値(高さ1.1〜1.3)によって補間されている。
【0071】
尚、このような高さの補間については本発明において必須の要件ではなく、補間されるクォータニオンに対応する高さには、姿勢が変化する前の高さ(図14の例では高さ1)を適用することとしてもよいが、より滑らかな表示を行うためには、高さについても補間する処理を行うことが好ましい。
【0072】
以上のように、クォータニオンと高さの補間が行われると、アプリケーションの起動時に姿勢変換行列(行列M1、図14の例では行列M1−1)と高さ変換行列(行列M2、図14の例では行列M2−1)を生成した際の処理と同様に、補間したクォータニオンの最初の中間値から姿勢変換行列(図14の例では行列M1−1.1)を(S24)、補間した高さの最初の中間値から高さ変換行列(図14の例では行列M2−1.1)を(S25)、それぞれ生成する。
【0073】
続いて、先に三次元データ記憶部15に記憶させた各々の対象物の三次元データ(図14の例では三次元データg、携帯デバイス10の位置が移動して更新された場合は更新後の三次元データ)を、これらの行列(図14の例では行列M1−1.1と行列M2−1.1)を掛け合わせた行列によって変換する。すなわち、各々の対象物の位置を示す三次元データは、姿勢が変化する過程における中間の携帯デバイス10の姿勢、携帯デバイス10のディスプレイ18の地面に対する傾きに対応する高さを反映した相対座標における位置に変換される。
【0074】
このようにして変換された各々の対象物を示す三次元データをレンダリングすることによって、姿勢が変化する過程において、ユーザの視点から見てディスプレイ18の前方を立体表示した景色等、さらにディスプレイ18を地面の方向に傾けた場合にはユーザの位置の周辺を示す地図を表示するための三次元画像データ(図14の例では画面g’1。1)が生成され(S26)、この三次元画像データをディスプレイ18に出力する(S27)。
【0075】
以上のように、ディスプレイ18に新たに生成した三次元画像データを出力することによって、景色や地図の変化がディスプレイ18上で表現されるが、補間されたクォータニオンに次の中間値がある場合(図14の例ではクォータニオン1.2、1.3)には(S28)、同様の処理を繰り返して、生成された三次元画像データ(図14の例では画面g’1。2、画面g’1。3)を連続して出力する。
【0076】
補間されたクォータニオンに次の中間値の全てに対応する三次元画像データ(図14の例では画面g’1。1〜画面g’1。3)の出力処理が終了すると、姿勢が変化した後に検出した三軸の加速度値と方位値から生成したクォータニオン(図14の例ではクォータニオン2)から姿勢変換行列(図14の例では行列M1−2)を(S29)、姿勢が変化した後のディスプレイ18に垂直な軸の加速度値から高さ変換行列(図14の例では行列M2−2)を(S30)、それぞれ生成する。
【0077】
続いて、先に三次元データ記憶部15に記憶させた各々の対象物の三次元データ(図14の例では三次元データg、携帯デバイス10の位置が移動して更新された場合は更新後の三次元データ)を、これらの行列(図14の例では行列M1−2と行列M2−2)を掛け合わせた行列によって変換する。すなわち、各々の対象物の位置を示す三次元データは、姿勢が変化した後の携帯デバイス10の姿勢、携帯デバイス10のディスプレイ18の地面に対する傾きに対応する高さを反映した相対座標における位置に変換される。
【0078】
このようにして変換された各々の対象物を示す三次元データをレンダリングすることによって、姿勢が変化した後における、ユーザの視点から見てディスプレイ18の前方を立体表示した景色等、さらにディスプレイ18を地面の方向に傾けた場合にはユーザの位置の周辺を示す地図を表示するための三次元画像データ(図14の例では画面g’2)が生成され(S31)、この三次元画像データをディスプレイ18に出力する(S32)。以上の処理が、アプリケーションの終了操作が行われるまで継続される(S33)。
【0079】
尚、携帯電話デバイス10のディスプレイ18を地面に対して垂直に近い状態(携帯デバイス10のディスプレイ18に垂直な軸が地面に平行に近い状態)になると、ユーザの視点から見てディスプレイ18の前方を立体的に表示した景色等が表示されるが、前述のように高さを0として三次元データを生成した場合には、各々の対象物は高さを持たない平面となり、平面的な地図を立体表示したような画像がディスプレイ18に表示されることになる。この場合にも、どの方向にどの対象物があるかを了知することは可能であり、ナビゲーション用途にも利用し得るものであるが、例えば、図15の例に示したように、実際の建物の形状とは別に対象物の目印となるような画像を表示することとしてもよい。
【0080】
このような表示を行うためには、目印に該当する対象物の三次元データと表示する画像の画像データを関連付けて記憶しておき、ディスプレイ18に出力する三次画像データに埋め込んで同時に出力することとしてもよいし、初期の表示状態では目印を表示せず、表示された画像上で対象物の選択操作が行われた場合に、目印と関連付けられた画像データを読み出して出力することとしてもよい。
【符号の説明】
【0081】
10 携帯デバイス
11 GPSセンサー
12 加速度センサー
13 方位センサー
14 地図情報取得部
15 三次元データ記憶部
16 三次元画像データ生成部
17 三次元画像データ出力部
18 ディスプレイ
20 地図情報サーバ
【技術分野】
【0001】
本発明は、携帯電話機等の携帯デバイスのディスプレイに、ディスプレイを仮想透視した三次元画像を表示する三次元画像表示プログラム、三次元画像表示機能を備えた携帯電話機等の携帯デバイス、携帯電話機等の携帯デバイスのディスプレイに、ディスプレイを仮想透視した三次元画像を表示する三次元画像表示方法に関するものである。
【背景技術】
【0002】
携帯電話機やPDAなどの携帯デバイスにはGPS機能が備えられるものが多くなっており、GPS機能によってユーザの現在地が表示される地図アプリケーションが提供されるようになっている。このうち、二次元の地図情報を表示するアプリケーションは、全体の位置関係を把握するのに便利であり、地図上におけるユーザの現在地を把握する用途に適している。これに対して、周辺にある建物などを三次元で表示する三次元の地図アプリケーションは、ユーザの視点から実際に見える周辺の状況を把握するのに便利であり、カーナビなどのナビゲーション用途に適している。
【0003】
後者の三次元の地図アプリケーションについては、近時、様々な新しいサービスが提供されるようになっており、例えば、携帯電話機のディスプレイを仮想透視してユーザの前方に見える景色を三次元で表示する技術が提供されるようになっている(例えば、特許文献1、非特許文献1参照。)。
【0004】
このような機能が搭載された携帯電話機等のユーザは、ディスプレイ上にあたかも実空間を透視したような映像を見ることが可能になっている。こうしたGPS機能を用いて三次元の地図情報を表示する技術はカーナビゲーションなどの分野でも利用されているが、地図情報を三次元表示する際に対象物を描写する基準となる視点は、実際のユーザの視点に近い位置に固定されることになる(例えば、特許文献2の請求項1、特許文献3の請求項10、特許文献4の請求項1等参照。)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−243027号公報
【特許文献2】特開2003−337033号公報
【特許文献3】特開2005−056075号公報
【特許文献4】特開2007−255989号公報
【非特許文献】
【0006】
【非特許文献1】「KDDI研究所と東京大学、『実空間透視ケータイ』を共同開発、CEATECに参考出展」、株式会社KDDI研究所プレスリリース、[2009年9月4日検索]、インターネット<http://www.kddilabs.jp/press/detail_102.html>
【発明の概要】
【発明が解決しようとする課題】
【0007】
携帯電話機等のディスプレイに三次元の地図情報を表示する場合、実際のユーザの視点に近い位置を基準として対象物を描画すると、図1に示したように、ユーザの視線の方向が地面に対して平行に近い状態、すなわち携帯電話機等のディスプレイを地面に対して垂直に近い状態で使用すれば、遠方まで広く見渡した状態が表示され、アプリケーションが意図する本来の機能を発揮することができる。しかしながら、ユーザが下(地面側)を向いた状態になると、視界が狭められ、殆ど足元の地面しか見えない状態となってしまう。このような制限は、下(地面側)を向く状態で利用されることが想定し難いカーナビゲーションであれば、特に問題になることはない。
【0008】
ところが、この技術を前述のディスプレイを仮想透視した三次元の地図アプリケーションに適用しようとする場合、携帯電話機等のディスプレイを地面に対して平行に近い状態で使用すると地面しか表示されない状態となってしまい、携帯電話機等を地面に対して垂直に近い状態で利用しないと実用性が生じないため、二次元の地図アプリケーションのように地図上における全体の位置関係を確認するような利用には対応できないこととなってしまう。
【0009】
これに対して、二次元の地図アプリケーションに三次元の表示機能を持たせて、携帯電話機等の携帯デバイスを水平にして使用した場合は二次元の地図アプリケーションのように地図を表示しながら、携帯デバイスの傾きを変えると対象物が立体表示される三次元の地図アプリケーションも提供されるようになっている。
【0010】
こうしたアプリケーションでは、図2に示したように、あたかも航空写真を撮影するかのようにユーザの視点を高い位置に設定し、下を向いている場合(デバイスを水平にして使用した場合)の視界を広げることによって、広範囲の地図情報を表示することを可能にしているものである。そのため、この状態で携帯電話機等の携帯デバイスの傾きを変えると、視点が高い位置に固定されたままで視線の方向のみが変更されるため、ディスプレイに表示されるのは上空から見た映像のようになって、ユーザの始点から見える景色とは全く異なる画像が表示されることとなってしまい、三次元の地図アプリケーションの本来の特長が生かせるナビゲーション用途に利用することができない。
【0011】
以上のように、ユーザの視点に合わせて対象物を描画する方法を採用すると、地図上における全体の位置関係を確認するような利用に対応できないし、ユーザの視点を高い位置に設定して対象物を描画すればこのような利用には対応できるものの、その場合はユーザの視点から見渡した周囲の景色を表示し、ディスプレイを仮想透視するような利用に対応できず、ナビゲーション用途に活用できないこととなってしまう。
【0012】
こうした問題に加え、ディスプレイを仮想透視するように周囲の景色を表示しようとすると、携帯電話機等の携帯デバイスの姿勢が変化するたびに対象物の描画が行われることになるため、携帯デバイスの姿勢が急激に変化した際には、景色が滑らかに変化することなく突然他の景色に切り換わり、実際の目に見える映像とは異なる印象を与えてしまうおそれがある。また、少しの姿勢の変化が生じてもディスプレイの表示に反映することにすると、ディスプレイに表示される景色が常に細かく揺れているように見える状態となってしまうおそれがあるとともに、携帯デバイスの処理に過度の負荷がかかってしまうことも想定される。
【0013】
本発明は、このような課題に対応するためになされたものであり、携帯電話機等の携帯デバイスのディスプレイに三次元画像を表示する三次元画像表示プログラム、三次元画像表示機能を備えた携帯電話機等の携帯デバイス、携帯電話機等の携帯デバイスのディスプレイに、ディスプレイを仮想透視した三次元画像を表示する三次元画像表示方法を提供することを目的とするものである。
【課題を解決するための手段】
【0014】
このような課題に対応する本発明は、携帯電話機等の携帯デバイスのディスプレイに三次元画像を表示する三次元画像表示プログラムであって、携帯デバイスに、前記携帯デバイスの位置を示すGPS情報をGPSセンサーから検出する位置情報検出ステップと、前記携帯デバイスの周囲にある各々の表示対象のGPS情報と、前記GPSセンサーから検出したGPS情報から、前記表示対象の前記携帯デバイスの位置からの相対座標を演算して、前記表示対象の各々に対応する三次元データを記憶する三次元データ記憶ステップと、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢に対応して前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成する姿勢変換行列生成ステップと、前記三軸の加速度値のうち、前記携帯デバイスのディスプレイに垂直な軸の加速度値から、前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成する高さ変換行列生成ステップと、前記表示対象の各々に対応する三次元データを前記姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換し、変換した三次元データをレンダリングして、前記ディスプレイに表示させる三次元画像データを生成する三次元画像データ生成ステップと、前記三次元画像データを前記ディスプレイに出力する三次元画像データ出力ステップと、を実行させること特徴とする三次元画像表示プログラムである。
【0015】
本発明では、携帯デバイスの姿勢にあわせて視点を移動させる姿勢変換行列に加え、携帯デバイスのディスプレイの傾きにあわせて視点の高さを移動させる高さ変換行列で三次元データを変換して表示する画像を生成することによって、ディスプレイの傾きによってユーザの視点に近い位置から見た画像を表示したり、ユーザの視点より高い位置から見た画像を表示したりすることが可能になる。これによって、ディスプレイを地面に垂直に立てて見た場合にはユーザの視点から見渡した周囲の景色が立体表示され、ディスプレイを水平にして見た場合には全体の位置関係を確認できる地図が表示される、といった三次元画像の表示が実現される。
【0016】
また、本発明は、前記姿勢変換行列生成ステップでは、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第1のクォータニオンを生成し、前記第1のクォータニオンを変換することによって前記姿勢変換行列を生成し、前記携帯デバイスに、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第2のクォータニオンを生成するクォータニオン生成ステップと、前記第1のクォータニオンと前記第2のクォータニオンをSlerp(球状線形補間)により補間し、補間された各々のクォータニオンから前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成し、前記表示対象の各々に対応する三次元データを前記姿勢変換行列を用いて変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成する第2の三次元画像データ生成ステップと、補間された各々のクォータニオンに対応する前記三次元画像データを、順次前記ディスプレイに出力する第2の三次元画像データ出力ステップと、を実行させることを特徴とすることもできる。
【0017】
このように、携帯デバイスの姿勢をクォータニオンで表すことによって、姿勢が変化した際には、各々の姿勢を表すクォータニオンをSlerp(球状線形補間)により補間し、補間されたクォータニオンをそれぞれ姿勢変換行列に変換して画像を生成することにより、姿勢の変化に対応して切り換わる画像の変化を補間し、ディスプレイに表示される画像の変化を滑らかに表現することが可能になる。また、クォータニオンを用いることによって、こうした補間によってコンピュータにかかる演算処理の負担も抑制されることになる。
【0018】
さらに、本発明は、前記携帯デバイスに、前記第1のクォータニオンと前記第2のクォータニオンの内積を演算し、前記内積を所定の閾値と対比して、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定する姿勢変化判定ステップを実行させ、前記姿勢変化判定ステップにおいて、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定された場合に、前記第2の三次元画像データ生成ステップ、及び前記第2の三次元画像データ出力ステップを実行させることを特徴としてもよい。
【0019】
このように、携帯デバイスの姿勢が変化した際には、各々のクォータニオンの内積を演算することによって姿勢の変化の程度を比較的簡易な演算で把握することができるため、この内積が所定の条件に合致する場合にのみディスプレイに表示する画像を切り換えることとすれば、小さな姿勢の変化ではディスプレイの画像は切り換わらず、ディスプレイに表示される画像が細かく揺れて見えるような状態を回避することが可能になる。
【0020】
さらに、本発明は、前記高さ変換行列生成ステップでは、前記携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第1の高さを特定し、前記携帯デバイスの位置を前記第1の高さに対応して移動させるための前記高さ変換行列を生成し、前記携帯デバイスに、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第2の高さを特定する第2の高さ特定ステップを実行させ、前記第2の三次元画像データ生成ステップでは、前記第1の高さと前記第2の高さを所定のルールにより補間し、補間された各々の高さに対応する前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成して、前記表示対象の各々に対応する三次元データを、補間されたクォータニオンから生成された姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成することを特徴としてもよい。
【0021】
このように、携帯デバイスのディスプレイの傾きの変化についても、クォータニオンの補間に対応して、高さを示す値を補間して各々に対応する高さ変換行列を生成することにより、姿勢の変化に対応して画像を切り換える際には、これに対応して視点の高さも段階的に変化させ、ディスプレイに表示される画像の変化をより滑らかに表現することが可能になる。
【0022】
さらに、本発明は、前記三次元データ記憶ステップでは、前記相対座標における高さを0とした三次元データを記憶することを特徴としてもよい。
【0023】
一般に地図情報として提供されているGPS情報は、緯度及び経度に関する情報のみで高さの要素を持たないことや、高さの情報が不正確であることがあるので、このような場合には携帯デバイスの周囲にある各々の表示対象のGPS情報の高さと携帯デバイスのGPS情報の高さを0として三次元データを生成するか、あるいは表示対象の携帯デバイスの位置からの相対座標の高さを0とした三次元データを生成することによって、このような場合でも三次元データとして取扱うことが可能になる。
【0024】
また、本発明は、本発明にかかる三次元画像表示プログラムに対応して、本発明にかかる三次元画像表示プログラムによって実現される三次元画像表示機能を備えた携帯電話機等の携帯デバイスとして特定することもできる。
【0025】
本発明にかかる携帯デバイスは、ディスプレイに三次元画像を表示する機能を備えた携帯電話機等の携帯デバイスであって、前記携帯デバイスの位置を示すGPS情報をGPSセンサーから検出する位置情報検出手段と、前記携帯デバイスの周囲にある各々の表示対象のGPS情報と、前記GPSセンサーから検出したGPS情報から、前記表示対象の前記携帯デバイスの位置からの相対座標を演算して、前記表示対象の各々に対応する三次元データを記憶する三次元データ記憶手段と、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢に対応して前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成する姿勢変換行列生成手段と、前記三軸の加速度値のうち、前記携帯デバイスのディスプレイに垂直な軸の加速度値から、前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成する高さ変換行列生成手段と、前記表示対象の各々に対応する三次元データを前記姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換し、変換した三次元データをレンダリングして、前記ディスプレイに表示させる三次元画像データを生成する三次元画像データ生成手段と、前記三次元画像データを前記ディスプレイに出力する三次元画像データ出力手段と、を備えることを特徴とする携帯デバイスである。
【0026】
また、本発明にかかる携帯デバイスは、前記姿勢変換行列生成手段は、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第1のクォータニオンを生成し、前記第1のクォータニオンを変換することによって前記姿勢変換行列を生成し、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第2のクォータニオンを生成するクォータニオン生成手段と、前記第1のクォータニオンと前記第2のクォータニオンをSlerp(球状線形補間)により補間し、補間された各々のクォータニオンから前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成し、前記表示対象の各々に対応する三次元データを前記姿勢変換行列を用いて変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成する第2の三次元画像データ生成手段と、補間された各々のクォータニオンに対応する前記三次元画像データを、順次前記ディスプレイに出力する第2の三次元画像データ出力手段と、を備えることを特徴とすることもできる。
【0027】
さらに、本発明にかかる携帯デバイスは、前記第1のクォータニオンと前記第2のクォータニオンの内積を演算し、前記内積を所定の閾値と対比して、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定する姿勢変化判定手段を備えていて、前記姿勢変化判定手段によって、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定された場合に、前記第2の三次元画像データ手段による三次元画像データの生成、及び前記第2の三次元画像データ出力手段による三次元画像データの出力が実行されることを特徴としてもよい。
【0028】
さらに、本発明にかかる携帯デバイスは、前記高さ変換行列生成手段は、前記携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第1の高さを特定し、前記携帯デバイスの位置を前記第1の高さに対応して移動させるための前記高さ変換行列を生成し、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第2の高さを特定する第2の高さ特定手段を備えていて、前記第2の三次元画像データ生成手段は、前記第1の高さと前記第2の高さを所定のルールにより補間し、補間された各々の高さに対応する前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成して、前記表示対象の各々に対応する三次元データを、補間されたクォータニオンから生成された姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成することを特徴としてもよい。
【0029】
さらに、本発明にかかる携帯デバイスは、前記三次元データ記憶手段は、前記相対座標における高さを0とした三次元データを記憶することを特徴としてもよい。
【0030】
また、本発明は、本発明にかかる三次元画像表示プログラムに対応して、本発明にかかる三次元画像表示プログラム、又は本発明にかかる三次元画像表示機能を備えた携帯電話機等の携帯デバイスによって実現される三次元画像の表示方法として特定することもできる。
【発明の効果】
【0031】
本発明によって、携帯電話機等の携帯デバイスのディスプレイに、ディスプレイを仮想透視した三次元画像を表示する際に、ディスプレイを地面に垂直に立てて見た場合にはユーザの視点から見渡した周囲にある対象物が三次元表示され、ディスプレイを水平にして見た場合には全体の位置関係を確認できる地図が表示されるので、従来のような地図アプリケーションの機能を併用したナビゲーション用途等の三次元アプリケーションが実現される。
【0032】
また、携帯電話機等の携帯デバイスの姿勢が急激に変化した場合には、演算処理に過度の負担をかけることなく、表示される画像の変化を滑らかに表現することが可能になるとともに、少しの姿勢の変化によってディスプレイの表示も変更され、ディスプレイに表示される画像が常に細かく揺れているように見える状態が生じることを回避することも可能になる。
【図面の簡単な説明】
【0033】
【図1】ユーザの視点からの視界を示す図である。
【図2】視点を上方に移動させた場合の視界を示す図である。
【図3】本発明にかかる携帯デバイスの構成を示すブロック図である。
【図4】本発明にかかる三次元画像表示プログラムの処理フローを示す第1のフローチャートである。
【図5】本発明にかかる三次元画像表示プログラムの処理フローを示す第2のフローチャートである。
【図6】本発明にかかる三次元画像表示プログラムの処理フローを示す第3のフローチャートである。
【図7】本発明にかかる三次元画像表示プログラムの処理フローを示す第4のフローチャートである。
【図8】本発明にかかる三次元画像表示プログラムの処理フローを示す第5のフローチャートである。
【図9】本発明において、携帯デバイスの姿勢の変化に応じて視点を移動させるイメージを示す図である。
【図10】本発明において、携帯デバイスのディスプレイの傾きの変化に応じて視点を移動させるイメージを示す図である。
【図11】本発明において、携帯デバイスのディスプレイの傾きが地面に対して垂直な場合の視界を示す図である。
【図12】本発明において、携帯デバイスのディスプレイが地面に対して斜めに傾いた場合の視界と、視点を移動した後の視界を示す図である。
【図13】本発明において、携帯デバイスのディスプレイの傾きが地面に対して水平な場合の視界と、視点を移動した後の視界を示す図である。
【図14】本発明において、クォータニオンの補間等により画像の変化を表示する方法を示す図である。
【図15】本発明において、携帯デバイスのディスプレイの傾きが地面に対して垂直に近い状態でディスプレイに表示される画像の一例を示す図である。
【発明を実施するための形態】
【0034】
本発明を実施するための形態について、図面を用いて以下に詳細に説明する。尚、以下の説明は本発明の実施形態の一例を示したものであって、本発明はかかる実施形態に限定されるものではない。
【0035】
図3は、本発明にかかる携帯デバイスの構成を示している。本発明にかかる携帯デバイスには、持ち運びが可能であり、アプリケーションプログラムにより演算処理を行う機能を備え、処理結果を出力するディスプレイを備えた、携帯電話機やPDAなどのデバイスが用いられる。携帯デバイスへのデータの入力方法は特に限定されるものではなく、キーボードを備えるものであってもよいし、タッチパネル方式で入力を行うものであってもよい。インターネット等のネットワークへの接続機能の要否も特に限定されるものではないが、現在地を確認できるGPSセンサーを備えていることが必要である。
【0036】
図3において、携帯デバイス10は、GPSセンサー11、加速度センサー12、方位センサー13、地図情報取得部14、三次元データ記憶部15、三次元画像データ生成部16、三次元画像データ出力部17、ディスプレイ18を含んで構成されている。このうち、地図情報取得部14、三次元画像データ生成部16、三次元画像データ出力部17はいずれも機能的に特定されるものであって、各々の機能に対応するプログラムが携帯デバイス10のHDDからメインメモリに読み出され、CPUで演算処理を行うことによって各々の機能が実現される。三次元データ記憶部15には、携帯デバイス10のHDD又はメインメモリの所定の記憶領域が割り当てられる。
【0037】
以上の構成を前提にして、本発明にかかる三次元画像表示プログラムの処理フローを、図4〜図8のフローチャートを用いて説明する。
【0038】
図4のフローチャートは、携帯デバイス10の周囲の地図情報を取得して、各々の対象物を三次元データとして記憶するフローを示している。携帯デバイス10において、ユーザの入力操作によって、ディスプレイを仮想透視した三次元画像を表示するアプリケーションが選択されると、地図情報取得部14が起動され、GPSセンサー11から携帯デバイス10の現在地を示すGPS情報を検出する(S01)。続いて、地図情報サーバ20にアクセスして(S02)、携帯デバイス10の周囲にあって表示対象となる対象物のGPS情報を取得する(S03)。
【0039】
ここで地図情報サーバ20に地図情報をリクエストする際には、GPSセンサー11から検出した携帯デバイス10の現在地を示すGPS情報を送信することによって、地図情報サーバ20では、携帯デバイス10の周囲にある対象物のGPS情報が選択されて、これらのGPS情報が携帯デバイス10に送信される。
【0040】
地図情報取得部14で取得するGPS情報は、携帯デバイス10の周辺にあって地図上に表示される対象物のGPS情報であり、携帯デバイス10ではGPSセンサー11から検出した携帯デバイス10の現在地を示すGPS情報との相対座標を演算することによって、携帯デバイス10と各々の対象物との相対的な位置関係を三次元データとして表すことができる。このように演算された各々の対象物の三次元データを、三次元データ記憶部15に記憶させる(S04)。
【0041】
ここに記憶される三次元データは、三次元画像を描画する際のユーザの視点と表示される対象物の位置関係を示すものであるが、地図情報サーバ20から正確な高さを含んだGPS情報が取得できる場合には、地図情報サーバ20から取得した地図上に表示される対象物のGPS情報に含まれる高さと、GPSセンサー11から検出した携帯デバイス10のGPS情報に含まれる高さを反映した三次元データを生成すればよい。
【0042】
しかしながら、一般には、インターネット上で提供される地図情報に含まれるGPS情報が緯度及び経度に関する二次元データであって高さの要素を持たないことや、高さの要素を持っていても不正確であることが多い。このような場合には、地図情報サーバ20から取得した地図上に表示される対象物のGPS情報の高さと携帯デバイス10のGPS情報の高さを0として三次元データを生成するか、あるいは地図上に表示される対象物のGPS情報と携帯デバイス10の現在地を示すGPS情報との相対座標の高さを0とした三次元データを生成することとすればよい。
【0043】
尚、以上のフローでは、表示対象となる対象物のGPS情報を地図情報サーバ20から取得する例について説明したが、これらのGPS情報はあらかじめ携帯デバイス10に格納されていて、ここからGPSセンサー11から検出したGPS情報の周囲にある対象物のGPS情報を読み出すよう構成されていてもよい。この場合も、各々の対象物の相対座標を演算して、三次元データが三次元データ記憶部15に記憶された状態となることは同様である。
【0044】
図5のフローチャートは、携帯デバイス10の姿勢に対応して各々の対象物の三次元データを変換し、三次元画像データをディスプレイ18に出力するフローを示している。各々の対象物の三次元データが三次元データ記憶部15に記憶されると、三次元画像データ生成部16が起動されて、以下の処理によりディスプレイ18に出力する三次元画像データが生成される。
【0045】
まず、携帯デバイス10に備えられた加速度センサー12から、各々が垂直に交わる三軸の加速度値を検出する(S05)。これらの三軸の加速度値によって、携帯デバイス10の傾きを特定することができる。
【0046】
尚、携帯デバイス10の加速度センサー12は、これらの三軸以外を含むより多くの軸の加速度を検出可能なものであってもよいが、少なくとも各々が垂直に交わる三軸の加速度値を検出できることが必要であり、そのうちの一つの軸は携帯デバイス10のディスプレイ18に垂直な軸であることが好ましい。垂直に交わる三軸のいずれも携帯デバイス10のディスプレイ18に垂直な軸とならない場合は、そのうちの一つの軸が携帯デバイス10のディスプレイ18に垂直な軸となるように、加速度センサー12から検出した加速度値を変換する。
【0047】
次に、携帯デバイス10に備えられた方位センサー13から、方位値を検出する(S06)。この方位値は、携帯デバイス10が向けられている方向を、所定の方角(例えば北)に対する角度で表すものなので、加速度センサー12から検出した三軸の加速度値と方位センサーから検出した方位値によって、携帯デバイス10がどの方角に向かってどの程度傾いた状態となっているか、すなわち携帯デバイス10の姿勢を特定することが可能になる。
【0048】
本発明では、この姿勢を表すものとして、加速度センサー12から検出した三軸の加速度値と方位センサーから検出した方位値から、クォータニオン(四元数)を生成する(S07)。クォータニオンの生成には、まず、加速度センサーで得られた値から、携帯デバイス10から見た重力方向ベクトルを得る。次に、その重力方向ベクトルと、三次元空間内における下向き(0, −1, 0)が一致するようなクォータニオンq1を求める。さらに、三次元空間内における例えば北(0, 0, −1)を基準に方位センサーから得た値の方角を向くようなクォータニオンq2を求め、q1とq2を掛け合わせて、姿勢を表すクォータニオンqを得る。このようにして生成されるクォータニオンqは、例えば、(x,y,z,w)という形式で表すことができる。
【0049】
さらに、このクォータニオンから、先に三次元データ記憶部15に記憶させた各々の対象物の三次元データを変換して、携帯デバイス10の姿勢の変化に対応して相対座標における各々の対象物の位置を移動させるための姿勢変換行列(行列M1)を生成する(S08)。この姿勢変換行列は、図9の例に示したように、携帯デバイス10の姿勢の変化によってディスプレイ18からみたユーザの視点の方向が変化するため、これに対応して相対座標における軸の方向が移動することに対応して、各々の対象物の三次元データを変換するためのものである。
【0050】
ここで生成される姿勢変換行列は、クォータニオンq=(x,y,z,w)とすると、以下の行列M1と等しくなる。
【0051】
次に、加速度センサー12から検出した三軸の加速度値のうち、携帯デバイス10のディスプレイ18に垂直な軸の加速度値から、先に三次元データ記憶部15に記憶させた各々の対象物の三次元データを変換して、相対座標における携帯デバイス10の高さを移動させ、これに対応して各々の対象物の位置を移動させるための高さ変換行列(行列M2)を生成する(S09)。この高さ変換行列は、図10の例に示したように、ディスプレイ18の傾きに応じてユーザの視点の高さを移動させることに対応するのもので、相対座標における携帯デバイス10の高さが移動することに対応して、各々の対象物の三次元データを変換するためのものである。
【0052】
ここで生成される高さ変換行列は、ある三次元空間上の点p=(p1,p2,p3)を点p’=(p1+dx,p2+dy,p3+dz)へ平行移動させる行列M2(p’=pM2となるM2)は以下のとおりである。尚、ここでは行列M1に対応して行列M2も4×4の行列で表すため、便宜上点pの座標を三次元ベクトルではなく、1という要素を最後に追加した四次元ベクトルで表すこととする。
【0053】
ここで、携帯デバイス10のディスプレイ18に垂直な軸の加速度値に応じてユーザの視点の高さを移動させることの意味について、図11〜図13を用いて説明する。携帯デバイス10のディスプレイ18に垂直な軸の加速度値は、携帯デバイス10のディスプレイ18の地面(重力方向に垂直な面)に対する傾きに対応するものであることから、携帯デバイス10のディスプレイ18の地面に対する傾きに応じて、本発明では以下のような考え方でユーザの視点の高さを移動させる。
【0054】
図11の例に示すように、携帯電話デバイス10のディスプレイ18を地面に対して垂直に近い状態(言い換えれば携帯デバイス10のディスプレイ18に垂直な軸が地面に平行に近い状態)で使用した場合には、ディスプレイ10には遠方まで広く見渡した様子がディスプレイに表示されるので、携帯デバイス10の高さ、すなわちユーザの視点をそのままに設定した状態(前述のように高さを0として三次元データを生成した場合は、ユーザの視点の高さを0とした状態)で対象物を描画すればよい。
【0055】
しかしながら、図12の例に示すように、携帯デバイス10のディスプレイ18が地面に対してある程度の傾きを持つようになると、ユーザの視点をそのままにして描画すると視界が制限されることとなり、さらに図13の例のように、ユーザが下を向いた状態、すなわち携帯デバイス10のディスプレイ18を地面に対して平行に近い状態で使用した場合には、視界は一層狭まり、足元の地面しか見えない状態となってしまう。
【0056】
そこで、図12、図13に示したように、携帯デバイス10のディスプレイ18を地面に垂直に近い状態で使用した場合以外においてもユーザの視界を確保するために、携帯デバイス10の位置、すなわちユーザの視点を上方に移動させて、対象物を描画することとしている。このような方法によると、特に図13のように、携帯デバイス10のディスプレイ18が地面に対して平行に近い状態となったには、一般的な地図アプリケーションのようにディスプレイ18には上空から見た地図のように対象物が表示されるので、本発明によると、携帯デバイスのディスプレイに前方に見える景色等を立体的に表示するアプリケーションと、一般的な地図アプリケーションの双方の機能を併用したアプリケーションを提供することが可能になる。
【0057】
尚、携帯デバイス10のディスプレイ18に垂直な軸の加速度値に対して、ユーザの視点をどの程度移動させる方法は特に限定されるものではなく、三次元画像データ生成部16に対応するプログラムに、加速度値から所定の演算式によって移動させる高さを求めるよう設定しておいてもよいし、一定の範囲の加速度値に対して移動させる高さを関連付けて記憶しておくこととしてもよい。これらの演算式や関連付けのテーブルは、ユーザ等によって書換え可能なように設定しておいてもよい。
【0058】
以上のように、姿勢変換行列(行列M1)と高さ変換行列(行列M2)が生成されると、先に三次元データ記憶部15に記憶させた各々の対象物の三次元データを、これらの行列を掛け合わせた行列によって変換する。すなわち、各々の対象物の位置を示す三次元データは、携帯デバイス10の姿勢、携帯デバイス10のディスプレイ18の地面に対する傾きに対応する高さを反映した相対座標における位置に変換される。
【0059】
例えば、ある対象物を示す三次元データをg=(x,y,z)とするならば、この三次元データをg’=(x’,y’,z’)に変換することになるが、4×4の行列によって変換するために、便宜的にgを(x,y,z,1)と四次元データとして、行列M1と行列M2を掛け合わせた4×4の行列により変換し、変換された四次元データの(x’,y’,z’,1)の最後の1の要素を取り除くことによって、g’=(x’,y’,z’)を求めることができる。
【0060】
このようにして変換された各々の対象物を示す三次元データをレンダリングすることによって、ユーザの視点から見てディスプレイ18の前方を立体的に表示した景色等、さらにディスプレイ18を地面の方向に傾けた場合にはユーザの視点を上方に移動させてユーザの周辺を示す地図を表示するための三次元画像データが生成され(S10)、この三次元画像データを三次元画像データ出力部17がディスプレイ18に出力する(S11)。
【0061】
図6のフローチャートは、携帯デバイス10の位置の移動に対応して、周囲にある対象物の三次元データを更新して、新たに三次元データ記憶部15に記憶するフローを示している。携帯デバイス10では、継続的にGPSセンサー11から携帯デバイス10の現在地を示すGPS情報が検出されており(S12)、地図情報取得部14によって、このGPS情報が一定の値を超えて変化したことが検知される(S13)。そうすると、地図情報取得部14は、地図情報サーバ20にアクセスして(S14)、携帯デバイス10の周囲にあって表示対象となる対象物のGPS情報を新たに取得する(S15)。
【0062】
ここでも先に説明したアプリケーションの起動時と同様に、地図情報サーバ20にはGPSセンサー11から検出した携帯デバイス10の現在地を示すGPS情報を付したリクエストを送信することによって、地図情報サーバ20では、移動後の携帯デバイス10の周囲にある対象物のGPS情報が選択されて、これらのGPS情報が携帯デバイス10に送信される。
【0063】
地図情報取得部14で取得するGPS情報は、移動後の携帯デバイス10の周辺にあって地図上に表示される対象物のGPS情報であり、携帯デバイス10ではGPSセンサー11から検出した携帯デバイス10の現在地を示すGPS情報との相対座標から、携帯デバイス10と各々の対象物との相対的な位置関係を示す三次元データを演算し、三次元データ記憶部15に記憶された三次元データを新たに演算した三次元データに更新する(S16)。
【0064】
尚、先にアプリケーション起動時のフローでも説明したとおり、表示対象となる対象物のGPS情報を地図情報サーバ20から取得するのではなく、あらかじめ携帯デバイス10に格納されたGPS情報を読み出すよう構成してもよく、この場合も、各々の対象物の相対座標を演算して、三次元データ記憶部15に記憶された三次元データが更新されることは同様である。
【0065】
図7のフローチャートは、携帯デバイス10の姿勢の変化に対応して、ディスプレイ18に出力された画像を変化させるかどうかを判断するフローを示している。携帯デバイス10では、継続的に加速度センサー12から各々が垂直に交わる三軸の加速度値を(S17)、方位センサー13からは方位値を検出している(S18)。これらの値から、先にアプリケーション起動時のフローで説明したように、携帯デバイス10の姿勢を表すクォータニオン(四元数)を生成する(S19)。
【0066】
ここで、先に生成した元の姿勢を表すクォータニオンと、新たな姿勢を表すのに生成されたクォータニオンの内積を演算する(S20)。この内積から2つのクォータニオンの類似度、すなわち携帯デバイス10の姿勢がどの程度変化したかを判定することができるので、ここで演算された内積が所定の閾値を超える場合には(S21)、ディスプレイ18には新たな画像を出力しないよう設定することによって、携帯デバイス10の少しの姿勢の変化によってディスプレイ18の表示が変更され、ディスプレイ18に表示される地図等の画像が細かく揺れているように見える状態が生じることを回避することが可能になる。
【0067】
図8のフローチャートは、携帯デバイス10の姿勢の変化に対応してディスプレイ18に出力された画像を変化させる際に、特に姿勢が急速に変化した場合に、対象物の移動が滑らかに表示されるように、画像の変化を補間するフローを示している。図14は、このフローによる画像の変化の補間の仕組みを示したものである。
【0068】
まず、先に内積を演算した2つのクォータニオンを、Slerp(球状線形補間)を用いて補間する(S22)。ここで補間されるクォータニオンの数は特に限定されるものではないが、これによって2つの姿勢に対応するクォータニオンについて、いくつかの中間値が設定される。例えば、図14に示した例であれば、姿勢が変化する前のクォータニオン1と姿勢が変化した後のクォータニオン2に対して、3つのクォータニオン(1.1〜1.3)が補完されている。
【0069】
次に、加速度センサー12から検出した三軸の加速度値のうち、ディスプレイ18に垂直な軸の加速度から、姿勢が変化した後にユーザの視点を移動させる高さを特定し、先のクォータニオンの補間に対応して、姿勢が変化する前にユーザの視点を移動させた高さとの間の高さの値を補間する(S23)。高さを補間するための方法は特に限定されるものではなく、例えば、補間されたクォータニオンの中間値の数と同じ数で高さが均等に変化するように中間値を設定しても補間することとすればよい。高さの補間は高さを特定する前の段階で、加速度値の中間値を演算して、各々の加速度値に対応する高さを特定して補間することとしてもよい。
【0070】
例えば、図14に示した例であれば、姿勢が変化する前の加速度値1に対応する高さ1と姿勢が変化した後の加速度値2に対応する高さ2に対して、クォータニオンが3つの中間値(クォータニオン1.1〜1.3)によって補間されたことにあわせて、高さもが3つの中間値(高さ1.1〜1.3)によって補間されている。
【0071】
尚、このような高さの補間については本発明において必須の要件ではなく、補間されるクォータニオンに対応する高さには、姿勢が変化する前の高さ(図14の例では高さ1)を適用することとしてもよいが、より滑らかな表示を行うためには、高さについても補間する処理を行うことが好ましい。
【0072】
以上のように、クォータニオンと高さの補間が行われると、アプリケーションの起動時に姿勢変換行列(行列M1、図14の例では行列M1−1)と高さ変換行列(行列M2、図14の例では行列M2−1)を生成した際の処理と同様に、補間したクォータニオンの最初の中間値から姿勢変換行列(図14の例では行列M1−1.1)を(S24)、補間した高さの最初の中間値から高さ変換行列(図14の例では行列M2−1.1)を(S25)、それぞれ生成する。
【0073】
続いて、先に三次元データ記憶部15に記憶させた各々の対象物の三次元データ(図14の例では三次元データg、携帯デバイス10の位置が移動して更新された場合は更新後の三次元データ)を、これらの行列(図14の例では行列M1−1.1と行列M2−1.1)を掛け合わせた行列によって変換する。すなわち、各々の対象物の位置を示す三次元データは、姿勢が変化する過程における中間の携帯デバイス10の姿勢、携帯デバイス10のディスプレイ18の地面に対する傾きに対応する高さを反映した相対座標における位置に変換される。
【0074】
このようにして変換された各々の対象物を示す三次元データをレンダリングすることによって、姿勢が変化する過程において、ユーザの視点から見てディスプレイ18の前方を立体表示した景色等、さらにディスプレイ18を地面の方向に傾けた場合にはユーザの位置の周辺を示す地図を表示するための三次元画像データ(図14の例では画面g’1。1)が生成され(S26)、この三次元画像データをディスプレイ18に出力する(S27)。
【0075】
以上のように、ディスプレイ18に新たに生成した三次元画像データを出力することによって、景色や地図の変化がディスプレイ18上で表現されるが、補間されたクォータニオンに次の中間値がある場合(図14の例ではクォータニオン1.2、1.3)には(S28)、同様の処理を繰り返して、生成された三次元画像データ(図14の例では画面g’1。2、画面g’1。3)を連続して出力する。
【0076】
補間されたクォータニオンに次の中間値の全てに対応する三次元画像データ(図14の例では画面g’1。1〜画面g’1。3)の出力処理が終了すると、姿勢が変化した後に検出した三軸の加速度値と方位値から生成したクォータニオン(図14の例ではクォータニオン2)から姿勢変換行列(図14の例では行列M1−2)を(S29)、姿勢が変化した後のディスプレイ18に垂直な軸の加速度値から高さ変換行列(図14の例では行列M2−2)を(S30)、それぞれ生成する。
【0077】
続いて、先に三次元データ記憶部15に記憶させた各々の対象物の三次元データ(図14の例では三次元データg、携帯デバイス10の位置が移動して更新された場合は更新後の三次元データ)を、これらの行列(図14の例では行列M1−2と行列M2−2)を掛け合わせた行列によって変換する。すなわち、各々の対象物の位置を示す三次元データは、姿勢が変化した後の携帯デバイス10の姿勢、携帯デバイス10のディスプレイ18の地面に対する傾きに対応する高さを反映した相対座標における位置に変換される。
【0078】
このようにして変換された各々の対象物を示す三次元データをレンダリングすることによって、姿勢が変化した後における、ユーザの視点から見てディスプレイ18の前方を立体表示した景色等、さらにディスプレイ18を地面の方向に傾けた場合にはユーザの位置の周辺を示す地図を表示するための三次元画像データ(図14の例では画面g’2)が生成され(S31)、この三次元画像データをディスプレイ18に出力する(S32)。以上の処理が、アプリケーションの終了操作が行われるまで継続される(S33)。
【0079】
尚、携帯電話デバイス10のディスプレイ18を地面に対して垂直に近い状態(携帯デバイス10のディスプレイ18に垂直な軸が地面に平行に近い状態)になると、ユーザの視点から見てディスプレイ18の前方を立体的に表示した景色等が表示されるが、前述のように高さを0として三次元データを生成した場合には、各々の対象物は高さを持たない平面となり、平面的な地図を立体表示したような画像がディスプレイ18に表示されることになる。この場合にも、どの方向にどの対象物があるかを了知することは可能であり、ナビゲーション用途にも利用し得るものであるが、例えば、図15の例に示したように、実際の建物の形状とは別に対象物の目印となるような画像を表示することとしてもよい。
【0080】
このような表示を行うためには、目印に該当する対象物の三次元データと表示する画像の画像データを関連付けて記憶しておき、ディスプレイ18に出力する三次画像データに埋め込んで同時に出力することとしてもよいし、初期の表示状態では目印を表示せず、表示された画像上で対象物の選択操作が行われた場合に、目印と関連付けられた画像データを読み出して出力することとしてもよい。
【符号の説明】
【0081】
10 携帯デバイス
11 GPSセンサー
12 加速度センサー
13 方位センサー
14 地図情報取得部
15 三次元データ記憶部
16 三次元画像データ生成部
17 三次元画像データ出力部
18 ディスプレイ
20 地図情報サーバ
【特許請求の範囲】
【請求項1】
携帯電話機等の携帯デバイスのディスプレイに三次元画像を表示する三次元画像表示プログラムであって、携帯デバイスに、
前記携帯デバイスの位置を示すGPS情報をGPSセンサーから検出する位置情報検出ステップと、
前記携帯デバイスの周囲にある各々の表示対象のGPS情報と、前記GPSセンサーから検出したGPS情報から、前記表示対象の前記携帯デバイスの位置からの相対座標を演算して、前記表示対象の各々に対応する三次元データを記憶する三次元データ記憶ステップと、
前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢に対応して前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成する姿勢変換行列生成ステップと、
前記三軸の加速度値のうち、前記携帯デバイスのディスプレイに垂直な軸の加速度値から、前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成する高さ変換行列生成ステップと、
前記表示対象の各々に対応する三次元データを前記姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換し、変換した三次元データをレンダリングして、前記ディスプレイに表示させる三次元画像データを生成する三次元画像データ生成ステップと、
前記三次元画像データを前記ディスプレイに出力する三次元画像データ出力ステップと、
を実行させることを特徴とする三次元画像表示プログラム。
【請求項2】
前記姿勢変換行列生成ステップでは、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第1のクォータニオンを生成し、前記第1のクォータニオンを変換することによって前記姿勢変換行列を生成し、
前記携帯デバイスに、
前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第2のクォータニオンを生成するクォータニオン生成ステップと、
前記第1のクォータニオンと前記第2のクォータニオンをSlerp(球状線形補間)により補間し、補間された各々のクォータニオンから前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成し、前記表示対象の各々に対応する三次元データを前記姿勢変換行列を用いて変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成する第2の三次元画像データ生成ステップと、
補間された各々のクォータニオンに対応する前記三次元画像データを、順次前記ディスプレイに出力する第2の三次元画像データ出力ステップと、
を実行させることを特徴とする請求項1記載の三次元画像表示プログラム。
【請求項3】
前記携帯デバイスに、
前記第1のクォータニオンと前記第2のクォータニオンの内積を演算し、前記内積を所定の閾値と対比して、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定する姿勢変化判定ステップを実行させ、
前記姿勢変化判定ステップにおいて、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定された場合に、前記第2の三次元画像データ生成ステップ、及び前記第2の三次元画像データ出力ステップを実行させること
を特徴とする請求項2記載の三次元画像表示プログラム。
【請求項4】
前記高さ変換行列生成ステップでは、前記携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第1の高さを特定し、前記携帯デバイスの位置を前記第1の高さに対応して移動させるための前記高さ変換行列を生成し、
前記携帯デバイスに、
前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第2の高さを特定する第2の高さ特定ステップを実行させ、
前記第2の三次元画像データ生成ステップでは、前記第1の高さと前記第2の高さを所定のルールにより補間し、補間された各々の高さに対応する前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成して、前記表示対象の各々に対応する三次元データを、補間されたクォータニオンから生成された姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成すること
を特徴とする請求項2又は3記載の三次元画像表示プログラム。
【請求項5】
前記三次元データ記憶ステップでは、前記相対座標における高さを0とした三次元データを記憶すること
を特徴とする請求項1乃至4いずれかに記載の三次元画像表示プログラム。
【請求項6】
ディスプレイに三次元画像を表示する機能を備えた携帯電話機等の携帯デバイスであって、
前記携帯デバイスの位置を示すGPS情報をGPSセンサーから検出する位置情報検出手段と、
前記携帯デバイスの周囲にある各々の表示対象のGPS情報と、前記GPSセンサーから検出したGPS情報から、前記表示対象の前記携帯デバイスの位置からの相対座標を演算して、前記表示対象の各々に対応する三次元データを記憶する三次元データ記憶手段と、
前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢に対応して前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成する姿勢変換行列生成手段と、
前記三軸の加速度値のうち、前記携帯デバイスのディスプレイに垂直な軸の加速度値から、前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成する高さ変換行列生成手段と、
前記表示対象の各々に対応する三次元データを前記姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換し、変換した三次元データをレンダリングして、前記ディスプレイに表示させる三次元画像データを生成する三次元画像データ生成手段と、
前記三次元画像データを前記ディスプレイに出力する三次元画像データ出力手段と、
を備えることを特徴とする携帯デバイス。
【請求項7】
前記姿勢変換行列生成手段は、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第1のクォータニオンを生成し、前記第1のクォータニオンを変換することによって前記姿勢変換行列を生成し、
前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第2のクォータニオンを生成するクォータニオン生成手段と、
前記第1のクォータニオンと前記第2のクォータニオンをSlerp(球状線形補間)により補間し、補間された各々のクォータニオンから前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成し、前記表示対象の各々に対応する三次元データを前記姿勢変換行列を用いて変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成する第2の三次元画像データ生成手段と、
補間された各々のクォータニオンに対応する前記三次元画像データを、順次前記ディスプレイに出力する第2の三次元画像データ出力手段と、
を備えることを特徴とする請求項6記載の携帯デバイス。
【請求項8】
前記第1のクォータニオンと前記第2のクォータニオンの内積を演算し、前記内積を所定の閾値と対比して、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定する姿勢変化判定手段を備えていて、
前記姿勢変化判定手段によって、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定された場合に、前記第2の三次元画像データ手段による三次元画像データの生成、及び前記第2の三次元画像データ出力手段による三次元画像データの出力が実行されること
を特徴とする請求項7記載の携帯デバイス。
【請求項9】
前記高さ変換行列生成手段は、前記携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第1の高さを特定し、前記携帯デバイスの位置を前記第1の高さに対応して移動させるための前記高さ変換行列を生成し、
前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第2の高さを特定する第2の高さ特定手段を備えていて、
前記第2の三次元画像データ生成手段は、前記第1の高さと前記第2の高さを所定のルールにより補間し、補間された各々の高さに対応する前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成して、前記表示対象の各々に対応する三次元データを、補間されたクォータニオンから生成された姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成すること
を特徴とする請求項7又は8記載の携帯デバイス。
【請求項10】
前記三次元データ記憶手段は、前記相対座標における高さを0とした三次元データを記憶すること
を特徴とする請求項6乃至9いずれかに記載の携帯デバイス。
【請求項11】
携帯電話機等の携帯デバイスのディスプレイに三次元画像を表示する三次元画像表示方法であって、
前記携帯デバイスが、前記携帯デバイスの位置を示すGPS情報をGPSセンサーから検出する位置情報検出ステップと、
前記携帯デバイスが、前記携帯デバイスの周囲にある各々の表示対象のGPS情報と、前記GPSセンサーから検出したGPS情報から、前記表示対象の前記携帯デバイスの位置からの相対座標を演算して、前記表示対象の各々に対応する三次元データを記憶する三次元データ記憶ステップと、
前記携帯デバイスが、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢に対応して前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成する姿勢変換行列生成ステップと、
前記携帯デバイスが、前記三軸の加速度値のうち、前記携帯デバイスのディスプレイに垂直な軸の加速度値から、前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成する高さ変換行列生成ステップと、
前記携帯デバイスが、前記表示対象の各々に対応する三次元データを前記姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換し、変換した三次元データをレンダリングして、前記ディスプレイに表示させる三次元画像データを生成する三次元画像データ生成ステップと、
前記携帯デバイスが、前記三次元画像データを前記ディスプレイに出力する三次元画像データ出力ステップと、
を有することを特徴とする三次元画像表示方法。
【請求項1】
携帯電話機等の携帯デバイスのディスプレイに三次元画像を表示する三次元画像表示プログラムであって、携帯デバイスに、
前記携帯デバイスの位置を示すGPS情報をGPSセンサーから検出する位置情報検出ステップと、
前記携帯デバイスの周囲にある各々の表示対象のGPS情報と、前記GPSセンサーから検出したGPS情報から、前記表示対象の前記携帯デバイスの位置からの相対座標を演算して、前記表示対象の各々に対応する三次元データを記憶する三次元データ記憶ステップと、
前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢に対応して前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成する姿勢変換行列生成ステップと、
前記三軸の加速度値のうち、前記携帯デバイスのディスプレイに垂直な軸の加速度値から、前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成する高さ変換行列生成ステップと、
前記表示対象の各々に対応する三次元データを前記姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換し、変換した三次元データをレンダリングして、前記ディスプレイに表示させる三次元画像データを生成する三次元画像データ生成ステップと、
前記三次元画像データを前記ディスプレイに出力する三次元画像データ出力ステップと、
を実行させることを特徴とする三次元画像表示プログラム。
【請求項2】
前記姿勢変換行列生成ステップでは、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第1のクォータニオンを生成し、前記第1のクォータニオンを変換することによって前記姿勢変換行列を生成し、
前記携帯デバイスに、
前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第2のクォータニオンを生成するクォータニオン生成ステップと、
前記第1のクォータニオンと前記第2のクォータニオンをSlerp(球状線形補間)により補間し、補間された各々のクォータニオンから前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成し、前記表示対象の各々に対応する三次元データを前記姿勢変換行列を用いて変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成する第2の三次元画像データ生成ステップと、
補間された各々のクォータニオンに対応する前記三次元画像データを、順次前記ディスプレイに出力する第2の三次元画像データ出力ステップと、
を実行させることを特徴とする請求項1記載の三次元画像表示プログラム。
【請求項3】
前記携帯デバイスに、
前記第1のクォータニオンと前記第2のクォータニオンの内積を演算し、前記内積を所定の閾値と対比して、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定する姿勢変化判定ステップを実行させ、
前記姿勢変化判定ステップにおいて、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定された場合に、前記第2の三次元画像データ生成ステップ、及び前記第2の三次元画像データ出力ステップを実行させること
を特徴とする請求項2記載の三次元画像表示プログラム。
【請求項4】
前記高さ変換行列生成ステップでは、前記携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第1の高さを特定し、前記携帯デバイスの位置を前記第1の高さに対応して移動させるための前記高さ変換行列を生成し、
前記携帯デバイスに、
前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第2の高さを特定する第2の高さ特定ステップを実行させ、
前記第2の三次元画像データ生成ステップでは、前記第1の高さと前記第2の高さを所定のルールにより補間し、補間された各々の高さに対応する前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成して、前記表示対象の各々に対応する三次元データを、補間されたクォータニオンから生成された姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成すること
を特徴とする請求項2又は3記載の三次元画像表示プログラム。
【請求項5】
前記三次元データ記憶ステップでは、前記相対座標における高さを0とした三次元データを記憶すること
を特徴とする請求項1乃至4いずれかに記載の三次元画像表示プログラム。
【請求項6】
ディスプレイに三次元画像を表示する機能を備えた携帯電話機等の携帯デバイスであって、
前記携帯デバイスの位置を示すGPS情報をGPSセンサーから検出する位置情報検出手段と、
前記携帯デバイスの周囲にある各々の表示対象のGPS情報と、前記GPSセンサーから検出したGPS情報から、前記表示対象の前記携帯デバイスの位置からの相対座標を演算して、前記表示対象の各々に対応する三次元データを記憶する三次元データ記憶手段と、
前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢に対応して前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成する姿勢変換行列生成手段と、
前記三軸の加速度値のうち、前記携帯デバイスのディスプレイに垂直な軸の加速度値から、前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成する高さ変換行列生成手段と、
前記表示対象の各々に対応する三次元データを前記姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換し、変換した三次元データをレンダリングして、前記ディスプレイに表示させる三次元画像データを生成する三次元画像データ生成手段と、
前記三次元画像データを前記ディスプレイに出力する三次元画像データ出力手段と、
を備えることを特徴とする携帯デバイス。
【請求項7】
前記姿勢変換行列生成手段は、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第1のクォータニオンを生成し、前記第1のクォータニオンを変換することによって前記姿勢変換行列を生成し、
前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第2のクォータニオンを生成するクォータニオン生成手段と、
前記第1のクォータニオンと前記第2のクォータニオンをSlerp(球状線形補間)により補間し、補間された各々のクォータニオンから前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成し、前記表示対象の各々に対応する三次元データを前記姿勢変換行列を用いて変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成する第2の三次元画像データ生成手段と、
補間された各々のクォータニオンに対応する前記三次元画像データを、順次前記ディスプレイに出力する第2の三次元画像データ出力手段と、
を備えることを特徴とする請求項6記載の携帯デバイス。
【請求項8】
前記第1のクォータニオンと前記第2のクォータニオンの内積を演算し、前記内積を所定の閾値と対比して、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定する姿勢変化判定手段を備えていて、
前記姿勢変化判定手段によって、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定された場合に、前記第2の三次元画像データ手段による三次元画像データの生成、及び前記第2の三次元画像データ出力手段による三次元画像データの出力が実行されること
を特徴とする請求項7記載の携帯デバイス。
【請求項9】
前記高さ変換行列生成手段は、前記携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第1の高さを特定し、前記携帯デバイスの位置を前記第1の高さに対応して移動させるための前記高さ変換行列を生成し、
前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第2の高さを特定する第2の高さ特定手段を備えていて、
前記第2の三次元画像データ生成手段は、前記第1の高さと前記第2の高さを所定のルールにより補間し、補間された各々の高さに対応する前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成して、前記表示対象の各々に対応する三次元データを、補間されたクォータニオンから生成された姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成すること
を特徴とする請求項7又は8記載の携帯デバイス。
【請求項10】
前記三次元データ記憶手段は、前記相対座標における高さを0とした三次元データを記憶すること
を特徴とする請求項6乃至9いずれかに記載の携帯デバイス。
【請求項11】
携帯電話機等の携帯デバイスのディスプレイに三次元画像を表示する三次元画像表示方法であって、
前記携帯デバイスが、前記携帯デバイスの位置を示すGPS情報をGPSセンサーから検出する位置情報検出ステップと、
前記携帯デバイスが、前記携帯デバイスの周囲にある各々の表示対象のGPS情報と、前記GPSセンサーから検出したGPS情報から、前記表示対象の前記携帯デバイスの位置からの相対座標を演算して、前記表示対象の各々に対応する三次元データを記憶する三次元データ記憶ステップと、
前記携帯デバイスが、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢に対応して前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成する姿勢変換行列生成ステップと、
前記携帯デバイスが、前記三軸の加速度値のうち、前記携帯デバイスのディスプレイに垂直な軸の加速度値から、前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成する高さ変換行列生成ステップと、
前記携帯デバイスが、前記表示対象の各々に対応する三次元データを前記姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換し、変換した三次元データをレンダリングして、前記ディスプレイに表示させる三次元画像データを生成する三次元画像データ生成ステップと、
前記携帯デバイスが、前記三次元画像データを前記ディスプレイに出力する三次元画像データ出力ステップと、
を有することを特徴とする三次元画像表示方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2011−70341(P2011−70341A)
【公開日】平成23年4月7日(2011.4.7)
【国際特許分類】
【出願番号】特願2009−220027(P2009−220027)
【出願日】平成21年9月25日(2009.9.25)
【出願人】(506066548)株式会社ユビキタスエンターテインメント (11)
【Fターム(参考)】
【公開日】平成23年4月7日(2011.4.7)
【国際特許分類】
【出願日】平成21年9月25日(2009.9.25)
【出願人】(506066548)株式会社ユビキタスエンターテインメント (11)
【Fターム(参考)】
[ Back to top ]