(57)【要約】【課題】  携帯電話機等の携帯デバイスのディスプレイに、ディスプレイを仮想透視した三次元画像を表示する三次元画像表示プログラム等を提供する。【解決手段】  地図情報サーバから携帯デバイスの周囲にある表示対象物のＧＰＳ情報を取得し、携帯デバイスのＧＰＳ情報を基準にした各々の対象物の相対座標を三次元データとして記憶する。この対象物の位置を示す三次元データを、三軸の加速度値と方位値から把握される携帯デバイスの姿勢に対応して変換するが、併せて、携帯デバイスのディスプレイに垂直な軸の加速度からディスプレイの地面に対する傾きを把握し、これに対応して対象物に対するユーザの視点を上方に移動させ、三次元データを変換することによって、ディスプレイを地面の方向に傾けた場合の視野を拡大する。携帯デバイスの姿勢をクォータニオンで表すことによって、姿勢の変化の判定や、画像を変化させる際の補間にかかる演算を効率化する。【選択図】        図３
2011070341.tif 000002
【特許請求の範囲】
【請求項１】
携帯電話機等の携帯デバイスのディスプレイに三次元画像を表示する三次元画像表示プログラムであって、携帯デバイスに、
前記携帯デバイスの位置を示すＧＰＳ情報をＧＰＳセンサーから検出する位置情報検出ステップと、
前記携帯デバイスの周囲にある各々の表示対象のＧＰＳ情報と、前記ＧＰＳセンサーから検出したＧＰＳ情報から、前記表示対象の前記携帯デバイスの位置からの相対座標を演算して、前記表示対象の各々に対応する三次元データを記憶する三次元データ記憶ステップと、
前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢に対応して前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成する姿勢変換行列生成ステップと、
前記三軸の加速度値のうち、前記携帯デバイスのディスプレイに垂直な軸の加速度値から、前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成する高さ変換行列生成ステップと、
前記表示対象の各々に対応する三次元データを前記姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換し、変換した三次元データをレンダリングして、前記ディスプレイに表示させる三次元画像データを生成する三次元画像データ生成ステップと、
前記三次元画像データを前記ディスプレイに出力する三次元画像データ出力ステップと、
を実行させることを特徴とする三次元画像表示プログラム。
【請求項２】
前記姿勢変換行列生成ステップでは、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第１のクォータニオンを生成し、前記第１のクォータニオンを変換することによって前記姿勢変換行列を生成し、
前記携帯デバイスに、
前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第２のクォータニオンを生成するクォータニオン生成ステップと、
前記第１のクォータニオンと前記第２のクォータニオンをＳｌｅｒｐ（球状線形補間）により補間し、補間された各々のクォータニオンから前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成し、前記表示対象の各々に対応する三次元データを前記姿勢変換行列を用いて変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成する第２の三次元画像データ生成ステップと、
補間された各々のクォータニオンに対応する前記三次元画像データを、順次前記ディスプレイに出力する第２の三次元画像データ出力ステップと、
を実行させることを特徴とする請求項１記載の三次元画像表示プログラム。
【請求項３】
前記携帯デバイスに、
前記第１のクォータニオンと前記第２のクォータニオンの内積を演算し、前記内積を所定の閾値と対比して、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定する姿勢変化判定ステップを実行させ、
前記姿勢変化判定ステップにおいて、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定された場合に、前記第２の三次元画像データ生成ステップ、及び前記第２の三次元画像データ出力ステップを実行させること
を特徴とする請求項２記載の三次元画像表示プログラム。
【請求項４】
前記高さ変換行列生成ステップでは、前記携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第１の高さを特定し、前記携帯デバイスの位置を前記第１の高さに対応して移動させるための前記高さ変換行列を生成し、
前記携帯デバイスに、
前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第２の高さを特定する第２の高さ特定ステップを実行させ、
前記第２の三次元画像データ生成ステップでは、前記第１の高さと前記第２の高さを所定のルールにより補間し、補間された各々の高さに対応する前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成して、前記表示対象の各々に対応する三次元データを、補間されたクォータニオンから生成された姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成すること
を特徴とする請求項２又は３記載の三次元画像表示プログラム。
【請求項５】
前記三次元データ記憶ステップでは、前記相対座標における高さを０とした三次元データを記憶すること
を特徴とする請求項１乃至４いずれかに記載の三次元画像表示プログラム。
【請求項６】
ディスプレイに三次元画像を表示する機能を備えた携帯電話機等の携帯デバイスであって、
前記携帯デバイスの位置を示すＧＰＳ情報をＧＰＳセンサーから検出する位置情報検出手段と、
前記携帯デバイスの周囲にある各々の表示対象のＧＰＳ情報と、前記ＧＰＳセンサーから検出したＧＰＳ情報から、前記表示対象の前記携帯デバイスの位置からの相対座標を演算して、前記表示対象の各々に対応する三次元データを記憶する三次元データ記憶手段と、
前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢に対応して前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成する姿勢変換行列生成手段と、
前記三軸の加速度値のうち、前記携帯デバイスのディスプレイに垂直な軸の加速度値から、前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成する高さ変換行列生成手段と、
前記表示対象の各々に対応する三次元データを前記姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換し、変換した三次元データをレンダリングして、前記ディスプレイに表示させる三次元画像データを生成する三次元画像データ生成手段と、
前記三次元画像データを前記ディスプレイに出力する三次元画像データ出力手段と、
を備えることを特徴とする携帯デバイス。
【請求項７】
前記姿勢変換行列生成手段は、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第１のクォータニオンを生成し、前記第１のクォータニオンを変換することによって前記姿勢変換行列を生成し、
前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第２のクォータニオンを生成するクォータニオン生成手段と、
前記第１のクォータニオンと前記第２のクォータニオンをＳｌｅｒｐ（球状線形補間）により補間し、補間された各々のクォータニオンから前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成し、前記表示対象の各々に対応する三次元データを前記姿勢変換行列を用いて変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成する第２の三次元画像データ生成手段と、
補間された各々のクォータニオンに対応する前記三次元画像データを、順次前記ディスプレイに出力する第２の三次元画像データ出力手段と、
を備えることを特徴とする請求項６記載の携帯デバイス。
【請求項８】
前記第１のクォータニオンと前記第２のクォータニオンの内積を演算し、前記内積を所定の閾値と対比して、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定する姿勢変化判定手段を備えていて、
前記姿勢変化判定手段によって、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定された場合に、前記第２の三次元画像データ手段による三次元画像データの生成、及び前記第２の三次元画像データ出力手段による三次元画像データの出力が実行されること
を特徴とする請求項７記載の携帯デバイス。
【請求項９】
前記高さ変換行列生成手段は、前記携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第１の高さを特定し、前記携帯デバイスの位置を前記第１の高さに対応して移動させるための前記高さ変換行列を生成し、
前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第２の高さを特定する第２の高さ特定手段を備えていて、
前記第２の三次元画像データ生成手段は、前記第１の高さと前記第２の高さを所定のルールにより補間し、補間された各々の高さに対応する前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成して、前記表示対象の各々に対応する三次元データを、補間されたクォータニオンから生成された姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成すること
を特徴とする請求項７又は８記載の携帯デバイス。
【請求項１０】
前記三次元データ記憶手段は、前記相対座標における高さを０とした三次元データを記憶すること
を特徴とする請求項６乃至９いずれかに記載の携帯デバイス。
【請求項１１】
携帯電話機等の携帯デバイスのディスプレイに三次元画像を表示する三次元画像表示方法であって、
前記携帯デバイスが、前記携帯デバイスの位置を示すＧＰＳ情報をＧＰＳセンサーから検出する位置情報検出ステップと、
前記携帯デバイスが、前記携帯デバイスの周囲にある各々の表示対象のＧＰＳ情報と、前記ＧＰＳセンサーから検出したＧＰＳ情報から、前記表示対象の前記携帯デバイスの位置からの相対座標を演算して、前記表示対象の各々に対応する三次元データを記憶する三次元データ記憶ステップと、
前記携帯デバイスが、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢に対応して前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成する姿勢変換行列生成ステップと、
前記携帯デバイスが、前記三軸の加速度値のうち、前記携帯デバイスのディスプレイに垂直な軸の加速度値から、前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成する高さ変換行列生成ステップと、
前記携帯デバイスが、前記表示対象の各々に対応する三次元データを前記姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換し、変換した三次元データをレンダリングして、前記ディスプレイに表示させる三次元画像データを生成する三次元画像データ生成ステップと、
前記携帯デバイスが、前記三次元画像データを前記ディスプレイに出力する三次元画像データ出力ステップと、
を有することを特徴とする三次元画像表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯電話機等の携帯デバイスのディスプレイに、ディスプレイを仮想透視した三次元画像を表示する三次元画像表示プログラム、三次元画像表示機能を備えた携帯電話機等の携帯デバイス、携帯電話機等の携帯デバイスのディスプレイに、ディスプレイを仮想透視した三次元画像を表示する三次元画像表示方法に関するものである。
【背景技術】
【０００２】
携帯電話機やＰＤＡなどの携帯デバイスにはＧＰＳ機能が備えられるものが多くなっており、ＧＰＳ機能によってユーザの現在地が表示される地図アプリケーションが提供されるようになっている。このうち、二次元の地図情報を表示するアプリケーションは、全体の位置関係を把握するのに便利であり、地図上におけるユーザの現在地を把握する用途に適している。これに対して、周辺にある建物などを三次元で表示する三次元の地図アプリケーションは、ユーザの視点から実際に見える周辺の状況を把握するのに便利であり、カーナビなどのナビゲーション用途に適している。
【０００３】
後者の三次元の地図アプリケーションについては、近時、様々な新しいサービスが提供されるようになっており、例えば、携帯電話機のディスプレイを仮想透視してユーザの前方に見える景色を三次元で表示する技術が提供されるようになっている（例えば、特許文献１、非特許文献１参照。）。
【０００４】
このような機能が搭載された携帯電話機等のユーザは、ディスプレイ上にあたかも実空間を透視したような映像を見ることが可能になっている。こうしたＧＰＳ機能を用いて三次元の地図情報を表示する技術はカーナビゲーションなどの分野でも利用されているが、地図情報を三次元表示する際に対象物を描写する基準となる視点は、実際のユーザの視点に近い位置に固定されることになる（例えば、特許文献２の請求項１、特許文献３の請求項１０、特許文献４の請求項１等参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２４３０２７号公報
【特許文献２】特開２００３−３３７０３３号公報
【特許文献３】特開２００５−０５６０７５号公報
【特許文献４】特開２００７−２５５９８９号公報
【非特許文献】
【０００６】
【非特許文献１】「ＫＤＤＩ研究所と東京大学、『実空間透視ケータイ』を共同開発、ＣＥＡＴＥＣに参考出展」、株式会社ＫＤＤＩ研究所プレスリリース、［２００９年９月４日検索]、インターネット＜http://www.kddilabs.jp/press/detail_102.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
携帯電話機等のディスプレイに三次元の地図情報を表示する場合、実際のユーザの視点に近い位置を基準として対象物を描画すると、図１に示したように、ユーザの視線の方向が地面に対して平行に近い状態、すなわち携帯電話機等のディスプレイを地面に対して垂直に近い状態で使用すれば、遠方まで広く見渡した状態が表示され、アプリケーションが意図する本来の機能を発揮することができる。しかしながら、ユーザが下（地面側）を向いた状態になると、視界が狭められ、殆ど足元の地面しか見えない状態となってしまう。このような制限は、下（地面側）を向く状態で利用されることが想定し難いカーナビゲーションであれば、特に問題になることはない。
【０００８】
ところが、この技術を前述のディスプレイを仮想透視した三次元の地図アプリケーションに適用しようとする場合、携帯電話機等のディスプレイを地面に対して平行に近い状態で使用すると地面しか表示されない状態となってしまい、携帯電話機等を地面に対して垂直に近い状態で利用しないと実用性が生じないため、二次元の地図アプリケーションのように地図上における全体の位置関係を確認するような利用には対応できないこととなってしまう。
【０００９】
これに対して、二次元の地図アプリケーションに三次元の表示機能を持たせて、携帯電話機等の携帯デバイスを水平にして使用した場合は二次元の地図アプリケーションのように地図を表示しながら、携帯デバイスの傾きを変えると対象物が立体表示される三次元の地図アプリケーションも提供されるようになっている。
【００１０】
こうしたアプリケーションでは、図２に示したように、あたかも航空写真を撮影するかのようにユーザの視点を高い位置に設定し、下を向いている場合（デバイスを水平にして使用した場合）の視界を広げることによって、広範囲の地図情報を表示することを可能にしているものである。そのため、この状態で携帯電話機等の携帯デバイスの傾きを変えると、視点が高い位置に固定されたままで視線の方向のみが変更されるため、ディスプレイに表示されるのは上空から見た映像のようになって、ユーザの始点から見える景色とは全く異なる画像が表示されることとなってしまい、三次元の地図アプリケーションの本来の特長が生かせるナビゲーション用途に利用することができない。
【００１１】
以上のように、ユーザの視点に合わせて対象物を描画する方法を採用すると、地図上における全体の位置関係を確認するような利用に対応できないし、ユーザの視点を高い位置に設定して対象物を描画すればこのような利用には対応できるものの、その場合はユーザの視点から見渡した周囲の景色を表示し、ディスプレイを仮想透視するような利用に対応できず、ナビゲーション用途に活用できないこととなってしまう。
【００１２】
こうした問題に加え、ディスプレイを仮想透視するように周囲の景色を表示しようとすると、携帯電話機等の携帯デバイスの姿勢が変化するたびに対象物の描画が行われることになるため、携帯デバイスの姿勢が急激に変化した際には、景色が滑らかに変化することなく突然他の景色に切り換わり、実際の目に見える映像とは異なる印象を与えてしまうおそれがある。また、少しの姿勢の変化が生じてもディスプレイの表示に反映することにすると、ディスプレイに表示される景色が常に細かく揺れているように見える状態となってしまうおそれがあるとともに、携帯デバイスの処理に過度の負荷がかかってしまうことも想定される。
【００１３】
本発明は、このような課題に対応するためになされたものであり、携帯電話機等の携帯デバイスのディスプレイに三次元画像を表示する三次元画像表示プログラム、三次元画像表示機能を備えた携帯電話機等の携帯デバイス、携帯電話機等の携帯デバイスのディスプレイに、ディスプレイを仮想透視した三次元画像を表示する三次元画像表示方法を提供することを目的とするものである。
【課題を解決するための手段】
【００１４】
このような課題に対応する本発明は、携帯電話機等の携帯デバイスのディスプレイに三次元画像を表示する三次元画像表示プログラムであって、携帯デバイスに、前記携帯デバイスの位置を示すＧＰＳ情報をＧＰＳセンサーから検出する位置情報検出ステップと、前記携帯デバイスの周囲にある各々の表示対象のＧＰＳ情報と、前記ＧＰＳセンサーから検出したＧＰＳ情報から、前記表示対象の前記携帯デバイスの位置からの相対座標を演算して、前記表示対象の各々に対応する三次元データを記憶する三次元データ記憶ステップと、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢に対応して前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成する姿勢変換行列生成ステップと、前記三軸の加速度値のうち、前記携帯デバイスのディスプレイに垂直な軸の加速度値から、前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成する高さ変換行列生成ステップと、前記表示対象の各々に対応する三次元データを前記姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換し、変換した三次元データをレンダリングして、前記ディスプレイに表示させる三次元画像データを生成する三次元画像データ生成ステップと、前記三次元画像データを前記ディスプレイに出力する三次元画像データ出力ステップと、を実行させること特徴とする三次元画像表示プログラムである。
【００１５】
本発明では、携帯デバイスの姿勢にあわせて視点を移動させる姿勢変換行列に加え、携帯デバイスのディスプレイの傾きにあわせて視点の高さを移動させる高さ変換行列で三次元データを変換して表示する画像を生成することによって、ディスプレイの傾きによってユーザの視点に近い位置から見た画像を表示したり、ユーザの視点より高い位置から見た画像を表示したりすることが可能になる。これによって、ディスプレイを地面に垂直に立てて見た場合にはユーザの視点から見渡した周囲の景色が立体表示され、ディスプレイを水平にして見た場合には全体の位置関係を確認できる地図が表示される、といった三次元画像の表示が実現される。
【００１６】
また、本発明は、前記姿勢変換行列生成ステップでは、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第１のクォータニオンを生成し、前記第１のクォータニオンを変換することによって前記姿勢変換行列を生成し、前記携帯デバイスに、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第２のクォータニオンを生成するクォータニオン生成ステップと、前記第１のクォータニオンと前記第２のクォータニオンをＳｌｅｒｐ（球状線形補間）により補間し、補間された各々のクォータニオンから前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成し、前記表示対象の各々に対応する三次元データを前記姿勢変換行列を用いて変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成する第２の三次元画像データ生成ステップと、補間された各々のクォータニオンに対応する前記三次元画像データを、順次前記ディスプレイに出力する第２の三次元画像データ出力ステップと、を実行させることを特徴とすることもできる。
【００１７】
このように、携帯デバイスの姿勢をクォータニオンで表すことによって、姿勢が変化した際には、各々の姿勢を表すクォータニオンをＳｌｅｒｐ（球状線形補間）により補間し、補間されたクォータニオンをそれぞれ姿勢変換行列に変換して画像を生成することにより、姿勢の変化に対応して切り換わる画像の変化を補間し、ディスプレイに表示される画像の変化を滑らかに表現することが可能になる。また、クォータニオンを用いることによって、こうした補間によってコンピュータにかかる演算処理の負担も抑制されることになる。
【００１８】
さらに、本発明は、前記携帯デバイスに、前記第１のクォータニオンと前記第２のクォータニオンの内積を演算し、前記内積を所定の閾値と対比して、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定する姿勢変化判定ステップを実行させ、前記姿勢変化判定ステップにおいて、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定された場合に、前記第２の三次元画像データ生成ステップ、及び前記第２の三次元画像データ出力ステップを実行させることを特徴としてもよい。
【００１９】
このように、携帯デバイスの姿勢が変化した際には、各々のクォータニオンの内積を演算することによって姿勢の変化の程度を比較的簡易な演算で把握することができるため、この内積が所定の条件に合致する場合にのみディスプレイに表示する画像を切り換えることとすれば、小さな姿勢の変化ではディスプレイの画像は切り換わらず、ディスプレイに表示される画像が細かく揺れて見えるような状態を回避することが可能になる。
【００２０】
さらに、本発明は、前記高さ変換行列生成ステップでは、前記携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第１の高さを特定し、前記携帯デバイスの位置を前記第１の高さに対応して移動させるための前記高さ変換行列を生成し、前記携帯デバイスに、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第２の高さを特定する第２の高さ特定ステップを実行させ、前記第２の三次元画像データ生成ステップでは、前記第１の高さと前記第２の高さを所定のルールにより補間し、補間された各々の高さに対応する前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成して、前記表示対象の各々に対応する三次元データを、補間されたクォータニオンから生成された姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成することを特徴としてもよい。
【００２１】
このように、携帯デバイスのディスプレイの傾きの変化についても、クォータニオンの補間に対応して、高さを示す値を補間して各々に対応する高さ変換行列を生成することにより、姿勢の変化に対応して画像を切り換える際には、これに対応して視点の高さも段階的に変化させ、ディスプレイに表示される画像の変化をより滑らかに表現することが可能になる。
【００２２】
さらに、本発明は、前記三次元データ記憶ステップでは、前記相対座標における高さを０とした三次元データを記憶することを特徴としてもよい。
【００２３】
一般に地図情報として提供されているＧＰＳ情報は、緯度及び経度に関する情報のみで高さの要素を持たないことや、高さの情報が不正確であることがあるので、このような場合には携帯デバイスの周囲にある各々の表示対象のＧＰＳ情報の高さと携帯デバイスのＧＰＳ情報の高さを０として三次元データを生成するか、あるいは表示対象の携帯デバイスの位置からの相対座標の高さを０とした三次元データを生成することによって、このような場合でも三次元データとして取扱うことが可能になる。
【００２４】
また、本発明は、本発明にかかる三次元画像表示プログラムに対応して、本発明にかかる三次元画像表示プログラムによって実現される三次元画像表示機能を備えた携帯電話機等の携帯デバイスとして特定することもできる。
【００２５】
本発明にかかる携帯デバイスは、ディスプレイに三次元画像を表示する機能を備えた携帯電話機等の携帯デバイスであって、前記携帯デバイスの位置を示すＧＰＳ情報をＧＰＳセンサーから検出する位置情報検出手段と、前記携帯デバイスの周囲にある各々の表示対象のＧＰＳ情報と、前記ＧＰＳセンサーから検出したＧＰＳ情報から、前記表示対象の前記携帯デバイスの位置からの相対座標を演算して、前記表示対象の各々に対応する三次元データを記憶する三次元データ記憶手段と、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢に対応して前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成する姿勢変換行列生成手段と、前記三軸の加速度値のうち、前記携帯デバイスのディスプレイに垂直な軸の加速度値から、前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成する高さ変換行列生成手段と、前記表示対象の各々に対応する三次元データを前記姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換し、変換した三次元データをレンダリングして、前記ディスプレイに表示させる三次元画像データを生成する三次元画像データ生成手段と、前記三次元画像データを前記ディスプレイに出力する三次元画像データ出力手段と、を備えることを特徴とする携帯デバイスである。
【００２６】
また、本発明にかかる携帯デバイスは、前記姿勢変換行列生成手段は、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第１のクォータニオンを生成し、前記第１のクォータニオンを変換することによって前記姿勢変換行列を生成し、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値と、前記携帯デバイスの方位センサーから検出した方位値から、前記携帯デバイスの姿勢を表す第２のクォータニオンを生成するクォータニオン生成手段と、前記第１のクォータニオンと前記第２のクォータニオンをＳｌｅｒｐ（球状線形補間）により補間し、補間された各々のクォータニオンから前記表示対象の各々に対応する三次元データを変換するための姿勢変換行列を生成し、前記表示対象の各々に対応する三次元データを前記姿勢変換行列を用いて変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成する第２の三次元画像データ生成手段と、補間された各々のクォータニオンに対応する前記三次元画像データを、順次前記ディスプレイに出力する第２の三次元画像データ出力手段と、を備えることを特徴とすることもできる。
【００２７】
さらに、本発明にかかる携帯デバイスは、前記第１のクォータニオンと前記第２のクォータニオンの内積を演算し、前記内積を所定の閾値と対比して、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定する姿勢変化判定手段を備えていて、前記姿勢変化判定手段によって、前記携帯デバイスの姿勢が所定の基準を超えて変化したかを判定された場合に、前記第２の三次元画像データ手段による三次元画像データの生成、及び前記第２の三次元画像データ出力手段による三次元画像データの出力が実行されることを特徴としてもよい。
【００２８】
さらに、本発明にかかる携帯デバイスは、前記高さ変換行列生成手段は、前記携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第１の高さを特定し、前記携帯デバイスの位置を前記第１の高さに対応して移動させるための前記高さ変換行列を生成し、前記携帯デバイスの三軸加速度センサーから検出した三軸の加速度値又は前記携帯デバイスの方位センサーから検出した方位値の変化を検出すると、前記携帯デバイスの三軸加速度センサーから検出した携帯デバイスのディスプレイに垂直な軸の加速度値に対応付けられた第２の高さを特定する第２の高さ特定手段を備えていて、前記第２の三次元画像データ生成手段は、前記第１の高さと前記第２の高さを所定のルールにより補間し、補間された各々の高さに対応する前記相対座標における前記携帯デバイスの高さの移動に対応して前記表示対象の各々に対応する三次元データを変換するための高さ変換行列を生成して、前記表示対象の各々に対応する三次元データを、補間されたクォータニオンから生成された姿勢変換行列と前記高さ変換行列を掛け合わせた行列により変換した三次元データをレンダリングして、補間された各々のクォータニオンに対応して前記ディスプレイに表示させる三次元画像データを生成することを特徴としてもよい。
【００２９】
さらに、本発明にかかる携帯デバイスは、前記三次元データ記憶手段は、前記相対座標における高さを０とした三次元データを記憶することを特徴としてもよい。
【００３０】
また、本発明は、本発明にかかる三次元画像表示プログラムに対応して、本発明にかかる三次元画像表示プログラム、又は本発明にかかる三次元画像表示機能を備えた携帯電話機等の携帯デバイスによって実現される三次元画像の表示方法として特定することもできる。
【発明の効果】
【００３１】
本発明によって、携帯電話機等の携帯デバイスのディスプレイに、ディスプレイを仮想透視した三次元画像を表示する際に、ディスプレイを地面に垂直に立てて見た場合にはユーザの視点から見渡した周囲にある対象物が三次元表示され、ディスプレイを水平にして見た場合には全体の位置関係を確認できる地図が表示されるので、従来のような地図アプリケーションの機能を併用したナビゲーション用途等の三次元アプリケーションが実現される。
【００３２】
また、携帯電話機等の携帯デバイスの姿勢が急激に変化した場合には、演算処理に過度の負担をかけることなく、表示される画像の変化を滑らかに表現することが可能になるとともに、少しの姿勢の変化によってディスプレイの表示も変更され、ディスプレイに表示される画像が常に細かく揺れているように見える状態が生じることを回避することも可能になる。
【図面の簡単な説明】
【００３３】
【図１】ユーザの視点からの視界を示す図である。
【図２】視点を上方に移動させた場合の視界を示す図である。
【図３】本発明にかかる携帯デバイスの構成を示すブロック図である。
【図４】本発明にかかる三次元画像表示プログラムの処理フローを示す第１のフローチャートである。
【図５】本発明にかかる三次元画像表示プログラムの処理フローを示す第２のフローチャートである。
【図６】本発明にかかる三次元画像表示プログラムの処理フローを示す第３のフローチャートである。
【図７】本発明にかかる三次元画像表示プログラムの処理フローを示す第４のフローチャートである。
【図８】本発明にかかる三次元画像表示プログラムの処理フローを示す第５のフローチャートである。
【図９】本発明において、携帯デバイスの姿勢の変化に応じて視点を移動させるイメージを示す図である。
【図１０】本発明において、携帯デバイスのディスプレイの傾きの変化に応じて視点を移動させるイメージを示す図である。
【図１１】本発明において、携帯デバイスのディスプレイの傾きが地面に対して垂直な場合の視界を示す図である。
【図１２】本発明において、携帯デバイスのディスプレイが地面に対して斜めに傾いた場合の視界と、視点を移動した後の視界を示す図である。
【図１３】本発明において、携帯デバイスのディスプレイの傾きが地面に対して水平な場合の視界と、視点を移動した後の視界を示す図である。
【図１４】本発明において、クォータニオンの補間等により画像の変化を表示する方法を示す図である。
【図１５】本発明において、携帯デバイスのディスプレイの傾きが地面に対して垂直に近い状態でディスプレイに表示される画像の一例を示す図である。
【発明を実施するための形態】
【００３４】
本発明を実施するための形態について、図面を用いて以下に詳細に説明する。尚、以下の説明は本発明の実施形態の一例を示したものであって、本発明はかかる実施形態に限定されるものではない。
【００３５】
図３は、本発明にかかる携帯デバイスの構成を示している。本発明にかかる携帯デバイスには、持ち運びが可能であり、アプリケーションプログラムにより演算処理を行う機能を備え、処理結果を出力するディスプレイを備えた、携帯電話機やＰＤＡなどのデバイスが用いられる。携帯デバイスへのデータの入力方法は特に限定されるものではなく、キーボードを備えるものであってもよいし、タッチパネル方式で入力を行うものであってもよい。インターネット等のネットワークへの接続機能の要否も特に限定されるものではないが、現在地を確認できるＧＰＳセンサーを備えていることが必要である。
【００３６】
図３において、携帯デバイス１０は、ＧＰＳセンサー１１、加速度センサー１２、方位センサー１３、地図情報取得部１４、三次元データ記憶部１５、三次元画像データ生成部１６、三次元画像データ出力部１７、ディスプレイ１８を含んで構成されている。このうち、地図情報取得部１４、三次元画像データ生成部１６、三次元画像データ出力部１７はいずれも機能的に特定されるものであって、各々の機能に対応するプログラムが携帯デバイス１０のＨＤＤからメインメモリに読み出され、ＣＰＵで演算処理を行うことによって各々の機能が実現される。三次元データ記憶部１５には、携帯デバイス１０のＨＤＤ又はメインメモリの所定の記憶領域が割り当てられる。
【００３７】
以上の構成を前提にして、本発明にかかる三次元画像表示プログラムの処理フローを、図４〜図８のフローチャートを用いて説明する。
【００３８】
図４のフローチャートは、携帯デバイス１０の周囲の地図情報を取得して、各々の対象物を三次元データとして記憶するフローを示している。携帯デバイス１０において、ユーザの入力操作によって、ディスプレイを仮想透視した三次元画像を表示するアプリケーションが選択されると、地図情報取得部１４が起動され、ＧＰＳセンサー１１から携帯デバイス１０の現在地を示すＧＰＳ情報を検出する（Ｓ０１）。続いて、地図情報サーバ２０にアクセスして（Ｓ０２）、携帯デバイス１０の周囲にあって表示対象となる対象物のＧＰＳ情報を取得する（Ｓ０３）。
【００３９】
ここで地図情報サーバ２０に地図情報をリクエストする際には、ＧＰＳセンサー１１から検出した携帯デバイス１０の現在地を示すＧＰＳ情報を送信することによって、地図情報サーバ２０では、携帯デバイス１０の周囲にある対象物のＧＰＳ情報が選択されて、これらのＧＰＳ情報が携帯デバイス１０に送信される。
【００４０】
地図情報取得部１４で取得するＧＰＳ情報は、携帯デバイス１０の周辺にあって地図上に表示される対象物のＧＰＳ情報であり、携帯デバイス１０ではＧＰＳセンサー１１から検出した携帯デバイス１０の現在地を示すＧＰＳ情報との相対座標を演算することによって、携帯デバイス１０と各々の対象物との相対的な位置関係を三次元データとして表すことができる。このように演算された各々の対象物の三次元データを、三次元データ記憶部１５に記憶させる（Ｓ０４）。
【００４１】
ここに記憶される三次元データは、三次元画像を描画する際のユーザの視点と表示される対象物の位置関係を示すものであるが、地図情報サーバ２０から正確な高さを含んだＧＰＳ情報が取得できる場合には、地図情報サーバ２０から取得した地図上に表示される対象物のＧＰＳ情報に含まれる高さと、ＧＰＳセンサー１１から検出した携帯デバイス１０のＧＰＳ情報に含まれる高さを反映した三次元データを生成すればよい。
【００４２】
しかしながら、一般には、インターネット上で提供される地図情報に含まれるＧＰＳ情報が緯度及び経度に関する二次元データであって高さの要素を持たないことや、高さの要素を持っていても不正確であることが多い。このような場合には、地図情報サーバ２０から取得した地図上に表示される対象物のＧＰＳ情報の高さと携帯デバイス１０のＧＰＳ情報の高さを０として三次元データを生成するか、あるいは地図上に表示される対象物のＧＰＳ情報と携帯デバイス１０の現在地を示すＧＰＳ情報との相対座標の高さを０とした三次元データを生成することとすればよい。
【００４３】
尚、以上のフローでは、表示対象となる対象物のＧＰＳ情報を地図情報サーバ２０から取得する例について説明したが、これらのＧＰＳ情報はあらかじめ携帯デバイス１０に格納されていて、ここからＧＰＳセンサー１１から検出したＧＰＳ情報の周囲にある対象物のＧＰＳ情報を読み出すよう構成されていてもよい。この場合も、各々の対象物の相対座標を演算して、三次元データが三次元データ記憶部１５に記憶された状態となることは同様である。
【００４４】
図５のフローチャートは、携帯デバイス１０の姿勢に対応して各々の対象物の三次元データを変換し、三次元画像データをディスプレイ１８に出力するフローを示している。各々の対象物の三次元データが三次元データ記憶部１５に記憶されると、三次元画像データ生成部１６が起動されて、以下の処理によりディスプレイ１８に出力する三次元画像データが生成される。
【００４５】
まず、携帯デバイス１０に備えられた加速度センサー１２から、各々が垂直に交わる三軸の加速度値を検出する（Ｓ０５）。これらの三軸の加速度値によって、携帯デバイス１０の傾きを特定することができる。
【００４６】
尚、携帯デバイス１０の加速度センサー１２は、これらの三軸以外を含むより多くの軸の加速度を検出可能なものであってもよいが、少なくとも各々が垂直に交わる三軸の加速度値を検出できることが必要であり、そのうちの一つの軸は携帯デバイス１０のディスプレイ１８に垂直な軸であることが好ましい。垂直に交わる三軸のいずれも携帯デバイス１０のディスプレイ１８に垂直な軸とならない場合は、そのうちの一つの軸が携帯デバイス１０のディスプレイ１８に垂直な軸となるように、加速度センサー１２から検出した加速度値を変換する。
【００４７】
次に、携帯デバイス１０に備えられた方位センサー１３から、方位値を検出する（Ｓ０６）。この方位値は、携帯デバイス１０が向けられている方向を、所定の方角（例えば北）に対する角度で表すものなので、加速度センサー１２から検出した三軸の加速度値と方位センサーから検出した方位値によって、携帯デバイス１０がどの方角に向かってどの程度傾いた状態となっているか、すなわち携帯デバイス１０の姿勢を特定することが可能になる。
【００４８】
本発明では、この姿勢を表すものとして、加速度センサー１２から検出した三軸の加速度値と方位センサーから検出した方位値から、クォータニオン（四元数）を生成する（Ｓ０７）。クォータニオンの生成には、まず、加速度センサーで得られた値から、携帯デバイス１０から見た重力方向ベクトルを得る。次に、その重力方向ベクトルと、三次元空間内における下向き（０，  −１，  ０）が一致するようなクォータニオンｑ１を求める。さらに、三次元空間内における例えば北（０，  ０，  −１）を基準に方位センサーから得た値の方角を向くようなクォータニオンｑ２を求め、ｑ１とｑ２を掛け合わせて、姿勢を表すクォータニオンｑを得る。このようにして生成されるクォータニオンｑは、例えば、（ｘ，ｙ，ｚ，ｗ）という形式で表すことができる。
【００４９】
さらに、このクォータニオンから、先に三次元データ記憶部１５に記憶させた各々の対象物の三次元データを変換して、携帯デバイス１０の姿勢の変化に対応して相対座標における各々の対象物の位置を移動させるための姿勢変換行列（行列Ｍ１）を生成する（Ｓ０８）。この姿勢変換行列は、図９の例に示したように、携帯デバイス１０の姿勢の変化によってディスプレイ１８からみたユーザの視点の方向が変化するため、これに対応して相対座標における軸の方向が移動することに対応して、各々の対象物の三次元データを変換するためのものである。
【００５０】
ここで生成される姿勢変換行列は、クォータニオンｑ＝（ｘ，ｙ，ｚ，ｗ）とすると、以下の行列Ｍ１と等しくなる。
2011070341.tif 000003
【００５１】
次に、加速度センサー１２から検出した三軸の加速度値のうち、携帯デバイス１０のディスプレイ１８に垂直な軸の加速度値から、先に三次元データ記憶部１５に記憶させた各々の対象物の三次元データを変換して、相対座標における携帯デバイス１０の高さを移動させ、これに対応して各々の対象物の位置を移動させるための高さ変換行列（行列Ｍ２）を生成する（Ｓ０９）。この高さ変換行列は、図１０の例に示したように、ディスプレイ１８の傾きに応じてユーザの視点の高さを移動させることに対応するのもので、相対座標における携帯デバイス１０の高さが移動することに対応して、各々の対象物の三次元データを変換するためのものである。
【００５２】
ここで生成される高さ変換行列は、ある三次元空間上の点ｐ＝（ｐ１，ｐ２，ｐ３）を点ｐ’＝（ｐ１＋ｄｘ，ｐ２＋ｄｙ，ｐ３＋ｄｚ）へ平行移動させる行列Ｍ２（ｐ’＝ｐＭ２となるＭ２)は以下のとおりである。尚、ここでは行列Ｍ１に対応して行列Ｍ２も４×４の行列で表すため、便宜上点ｐの座標を三次元ベクトルではなく、１という要素を最後に追加した四次元ベクトルで表すこととする。
2011070341.tif 000004
【００５３】
ここで、携帯デバイス１０のディスプレイ１８に垂直な軸の加速度値に応じてユーザの視点の高さを移動させることの意味について、図１１〜図１３を用いて説明する。携帯デバイス１０のディスプレイ１８に垂直な軸の加速度値は、携帯デバイス１０のディスプレイ１８の地面（重力方向に垂直な面）に対する傾きに対応するものであることから、携帯デバイス１０のディスプレイ１８の地面に対する傾きに応じて、本発明では以下のような考え方でユーザの視点の高さを移動させる。
【００５４】
図１１の例に示すように、携帯電話デバイス１０のディスプレイ１８を地面に対して垂直に近い状態（言い換えれば携帯デバイス１０のディスプレイ１８に垂直な軸が地面に平行に近い状態）で使用した場合には、ディスプレイ１０には遠方まで広く見渡した様子がディスプレイに表示されるので、携帯デバイス１０の高さ、すなわちユーザの視点をそのままに設定した状態（前述のように高さを０として三次元データを生成した場合は、ユーザの視点の高さを０とした状態）で対象物を描画すればよい。
【００５５】
しかしながら、図１２の例に示すように、携帯デバイス１０のディスプレイ１８が地面に対してある程度の傾きを持つようになると、ユーザの視点をそのままにして描画すると視界が制限されることとなり、さらに図１３の例のように、ユーザが下を向いた状態、すなわち携帯デバイス１０のディスプレイ１８を地面に対して平行に近い状態で使用した場合には、視界は一層狭まり、足元の地面しか見えない状態となってしまう。
【００５６】
そこで、図１２、図１３に示したように、携帯デバイス１０のディスプレイ１８を地面に垂直に近い状態で使用した場合以外においてもユーザの視界を確保するために、携帯デバイス１０の位置、すなわちユーザの視点を上方に移動させて、対象物を描画することとしている。このような方法によると、特に図１３のように、携帯デバイス１０のディスプレイ１８が地面に対して平行に近い状態となったには、一般的な地図アプリケーションのようにディスプレイ１８には上空から見た地図のように対象物が表示されるので、本発明によると、携帯デバイスのディスプレイに前方に見える景色等を立体的に表示するアプリケーションと、一般的な地図アプリケーションの双方の機能を併用したアプリケーションを提供することが可能になる。
【００５７】
尚、携帯デバイス１０のディスプレイ１８に垂直な軸の加速度値に対して、ユーザの視点をどの程度移動させる方法は特に限定されるものではなく、三次元画像データ生成部１６に対応するプログラムに、加速度値から所定の演算式によって移動させる高さを求めるよう設定しておいてもよいし、一定の範囲の加速度値に対して移動させる高さを関連付けて記憶しておくこととしてもよい。これらの演算式や関連付けのテーブルは、ユーザ等によって書換え可能なように設定しておいてもよい。
【００５８】
以上のように、姿勢変換行列（行列Ｍ１）と高さ変換行列（行列Ｍ２）が生成されると、先に三次元データ記憶部１５に記憶させた各々の対象物の三次元データを、これらの行列を掛け合わせた行列によって変換する。すなわち、各々の対象物の位置を示す三次元データは、携帯デバイス１０の姿勢、携帯デバイス１０のディスプレイ１８の地面に対する傾きに対応する高さを反映した相対座標における位置に変換される。
【００５９】
例えば、ある対象物を示す三次元データをｇ＝（ｘ，ｙ，ｚ）とするならば、この三次元データをｇ’＝（ｘ’，ｙ’，ｚ’）に変換することになるが、４×４の行列によって変換するために、便宜的にｇを（ｘ，ｙ，ｚ，１）と四次元データとして、行列Ｍ１と行列Ｍ２を掛け合わせた４×４の行列により変換し、変換された四次元データの（ｘ’，ｙ’，ｚ’，１）の最後の１の要素を取り除くことによって、ｇ’＝（ｘ’，ｙ’，ｚ’）を求めることができる。
【００６０】
このようにして変換された各々の対象物を示す三次元データをレンダリングすることによって、ユーザの視点から見てディスプレイ１８の前方を立体的に表示した景色等、さらにディスプレイ１８を地面の方向に傾けた場合にはユーザの視点を上方に移動させてユーザの周辺を示す地図を表示するための三次元画像データが生成され（Ｓ１０）、この三次元画像データを三次元画像データ出力部１７がディスプレイ１８に出力する（Ｓ１１）。
【００６１】
図６のフローチャートは、携帯デバイス１０の位置の移動に対応して、周囲にある対象物の三次元データを更新して、新たに三次元データ記憶部１５に記憶するフローを示している。携帯デバイス１０では、継続的にＧＰＳセンサー１１から携帯デバイス１０の現在地を示すＧＰＳ情報が検出されており（Ｓ１２）、地図情報取得部１４によって、このＧＰＳ情報が一定の値を超えて変化したことが検知される（Ｓ１３）。そうすると、地図情報取得部１４は、地図情報サーバ２０にアクセスして（Ｓ１４）、携帯デバイス１０の周囲にあって表示対象となる対象物のＧＰＳ情報を新たに取得する（Ｓ１５）。
【００６２】
ここでも先に説明したアプリケーションの起動時と同様に、地図情報サーバ２０にはＧＰＳセンサー１１から検出した携帯デバイス１０の現在地を示すＧＰＳ情報を付したリクエストを送信することによって、地図情報サーバ２０では、移動後の携帯デバイス１０の周囲にある対象物のＧＰＳ情報が選択されて、これらのＧＰＳ情報が携帯デバイス１０に送信される。
【００６３】
地図情報取得部１４で取得するＧＰＳ情報は、移動後の携帯デバイス１０の周辺にあって地図上に表示される対象物のＧＰＳ情報であり、携帯デバイス１０ではＧＰＳセンサー１１から検出した携帯デバイス１０の現在地を示すＧＰＳ情報との相対座標から、携帯デバイス１０と各々の対象物との相対的な位置関係を示す三次元データを演算し、三次元データ記憶部１５に記憶された三次元データを新たに演算した三次元データに更新する（Ｓ１６）。
【００６４】
尚、先にアプリケーション起動時のフローでも説明したとおり、表示対象となる対象物のＧＰＳ情報を地図情報サーバ２０から取得するのではなく、あらかじめ携帯デバイス１０に格納されたＧＰＳ情報を読み出すよう構成してもよく、この場合も、各々の対象物の相対座標を演算して、三次元データ記憶部１５に記憶された三次元データが更新されることは同様である。
【００６５】
図７のフローチャートは、携帯デバイス１０の姿勢の変化に対応して、ディスプレイ１８に出力された画像を変化させるかどうかを判断するフローを示している。携帯デバイス１０では、継続的に加速度センサー１２から各々が垂直に交わる三軸の加速度値を（Ｓ１７）、方位センサー１３からは方位値を検出している（Ｓ１８）。これらの値から、先にアプリケーション起動時のフローで説明したように、携帯デバイス１０の姿勢を表すクォータニオン（四元数）を生成する（Ｓ１９）。
【００６６】
ここで、先に生成した元の姿勢を表すクォータニオンと、新たな姿勢を表すのに生成されたクォータニオンの内積を演算する（Ｓ２０）。この内積から２つのクォータニオンの類似度、すなわち携帯デバイス１０の姿勢がどの程度変化したかを判定することができるので、ここで演算された内積が所定の閾値を超える場合には（Ｓ２１）、ディスプレイ１８には新たな画像を出力しないよう設定することによって、携帯デバイス１０の少しの姿勢の変化によってディスプレイ１８の表示が変更され、ディスプレイ１８に表示される地図等の画像が細かく揺れているように見える状態が生じることを回避することが可能になる。
【００６７】
図８のフローチャートは、携帯デバイス１０の姿勢の変化に対応してディスプレイ１８に出力された画像を変化させる際に、特に姿勢が急速に変化した場合に、対象物の移動が滑らかに表示されるように、画像の変化を補間するフローを示している。図１４は、このフローによる画像の変化の補間の仕組みを示したものである。
【００６８】
まず、先に内積を演算した２つのクォータニオンを、Ｓｌｅｒｐ（球状線形補間)を用いて補間する(Ｓ２２)。ここで補間されるクォータニオンの数は特に限定されるものではないが、これによって２つの姿勢に対応するクォータニオンについて、いくつかの中間値が設定される。例えば、図１４に示した例であれば、姿勢が変化する前のクォータニオン１と姿勢が変化した後のクォータニオン２に対して、３つのクォータニオン（１．１〜１．３）が補完されている。
【００６９】
次に、加速度センサー１２から検出した三軸の加速度値のうち、ディスプレイ１８に垂直な軸の加速度から、姿勢が変化した後にユーザの視点を移動させる高さを特定し、先のクォータニオンの補間に対応して、姿勢が変化する前にユーザの視点を移動させた高さとの間の高さの値を補間する（Ｓ２３）。高さを補間するための方法は特に限定されるものではなく、例えば、補間されたクォータニオンの中間値の数と同じ数で高さが均等に変化するように中間値を設定しても補間することとすればよい。高さの補間は高さを特定する前の段階で、加速度値の中間値を演算して、各々の加速度値に対応する高さを特定して補間することとしてもよい。
【００７０】
例えば、図１４に示した例であれば、姿勢が変化する前の加速度値１に対応する高さ１と姿勢が変化した後の加速度値２に対応する高さ２に対して、クォータニオンが３つの中間値（クォータニオン１．１〜１．３）によって補間されたことにあわせて、高さもが３つの中間値（高さ１．１〜１．３）によって補間されている。
【００７１】
尚、このような高さの補間については本発明において必須の要件ではなく、補間されるクォータニオンに対応する高さには、姿勢が変化する前の高さ（図１４の例では高さ１）を適用することとしてもよいが、より滑らかな表示を行うためには、高さについても補間する処理を行うことが好ましい。
【００７２】
以上のように、クォータニオンと高さの補間が行われると、アプリケーションの起動時に姿勢変換行列（行列Ｍ１、図１４の例では行列Ｍ１−１）と高さ変換行列（行列Ｍ２、図１４の例では行列Ｍ２−１）を生成した際の処理と同様に、補間したクォータニオンの最初の中間値から姿勢変換行列（図１４の例では行列Ｍ１−１．１）を（Ｓ２４）、補間した高さの最初の中間値から高さ変換行列（図１４の例では行列Ｍ２−１．１）を（Ｓ２５）、それぞれ生成する。
【００７３】
続いて、先に三次元データ記憶部１５に記憶させた各々の対象物の三次元データ（図１４の例では三次元データｇ、携帯デバイス１０の位置が移動して更新された場合は更新後の三次元データ）を、これらの行列（図１４の例では行列Ｍ１−１．１と行列Ｍ２−１．１）を掛け合わせた行列によって変換する。すなわち、各々の対象物の位置を示す三次元データは、姿勢が変化する過程における中間の携帯デバイス１０の姿勢、携帯デバイス１０のディスプレイ１８の地面に対する傾きに対応する高さを反映した相対座標における位置に変換される。
【００７４】
このようにして変換された各々の対象物を示す三次元データをレンダリングすることによって、姿勢が変化する過程において、ユーザの視点から見てディスプレイ１８の前方を立体表示した景色等、さらにディスプレイ１８を地面の方向に傾けた場合にはユーザの位置の周辺を示す地図を表示するための三次元画像データ（図１４の例では画面ｇ’１。１）が生成され（Ｓ２６）、この三次元画像データをディスプレイ１８に出力する（Ｓ２７）。
【００７５】
以上のように、ディスプレイ１８に新たに生成した三次元画像データを出力することによって、景色や地図の変化がディスプレイ１８上で表現されるが、補間されたクォータニオンに次の中間値がある場合（図１４の例ではクォータニオン１．２、１．３）には（Ｓ２８）、同様の処理を繰り返して、生成された三次元画像データ（図１４の例では画面ｇ’１。２、画面ｇ’１。３）を連続して出力する。
【００７６】
補間されたクォータニオンに次の中間値の全てに対応する三次元画像データ（図１４の例では画面ｇ’１。１〜画面ｇ’１。３）の出力処理が終了すると、姿勢が変化した後に検出した三軸の加速度値と方位値から生成したクォータニオン（図１４の例ではクォータニオン２）から姿勢変換行列（図１４の例では行列Ｍ１−２）を（Ｓ２９）、姿勢が変化した後のディスプレイ１８に垂直な軸の加速度値から高さ変換行列（図１４の例では行列Ｍ２−２）を（Ｓ３０）、それぞれ生成する。
【００７７】
続いて、先に三次元データ記憶部１５に記憶させた各々の対象物の三次元データ（図１４の例では三次元データｇ、携帯デバイス１０の位置が移動して更新された場合は更新後の三次元データ）を、これらの行列（図１４の例では行列Ｍ１−２と行列Ｍ２−２）を掛け合わせた行列によって変換する。すなわち、各々の対象物の位置を示す三次元データは、姿勢が変化した後の携帯デバイス１０の姿勢、携帯デバイス１０のディスプレイ１８の地面に対する傾きに対応する高さを反映した相対座標における位置に変換される。
【００７８】
このようにして変換された各々の対象物を示す三次元データをレンダリングすることによって、姿勢が変化した後における、ユーザの視点から見てディスプレイ１８の前方を立体表示した景色等、さらにディスプレイ１８を地面の方向に傾けた場合にはユーザの位置の周辺を示す地図を表示するための三次元画像データ（図１４の例では画面ｇ’２）が生成され（Ｓ３１）、この三次元画像データをディスプレイ１８に出力する（Ｓ３２）。以上の処理が、アプリケーションの終了操作が行われるまで継続される（Ｓ３３）。
【００７９】
尚、携帯電話デバイス１０のディスプレイ１８を地面に対して垂直に近い状態（携帯デバイス１０のディスプレイ１８に垂直な軸が地面に平行に近い状態）になると、ユーザの視点から見てディスプレイ１８の前方を立体的に表示した景色等が表示されるが、前述のように高さを０として三次元データを生成した場合には、各々の対象物は高さを持たない平面となり、平面的な地図を立体表示したような画像がディスプレイ１８に表示されることになる。この場合にも、どの方向にどの対象物があるかを了知することは可能であり、ナビゲーション用途にも利用し得るものであるが、例えば、図１５の例に示したように、実際の建物の形状とは別に対象物の目印となるような画像を表示することとしてもよい。
【００８０】
このような表示を行うためには、目印に該当する対象物の三次元データと表示する画像の画像データを関連付けて記憶しておき、ディスプレイ１８に出力する三次画像データに埋め込んで同時に出力することとしてもよいし、初期の表示状態では目印を表示せず、表示された画像上で対象物の選択操作が行われた場合に、目印と関連付けられた画像データを読み出して出力することとしてもよい。
【符号の説明】
【００８１】
１０  携帯デバイス
１１  ＧＰＳセンサー
１２  加速度センサー
１３  方位センサー
１４  地図情報取得部
１５  三次元データ記憶部
１６  三次元画像データ生成部
１７  三次元画像データ出力部
１８  ディスプレイ
２０  地図情報サーバ
【図１】
2011070341.tif 000005
【図２】
2011070341.tif 000006
【図３】
2011070341.tif 000007
【図４】
2011070341.tif 000008
【図５】
2011070341.tif 000009
【図６】
2011070341.tif 000010
【図７】
2011070341.tif 000011
【図８】
2011070341.tif 000012
【図９】
2011070341.tif 000013
【図１０】
2011070341.tif 000014
【図１１】
2011070341.tif 000015
【図１２】
2011070341.tif 000016
【図１３】
2011070341.tif 000017
【図１４】
2011070341.tif 000018
【図１５】
2011070341.tif 000019