(57)【特許請求の範囲】
【請求項１】
ａ）最初のコンピュータの生み出したシーンに対し最初の視線ベクトルＬ、上方向ベクトルＵ、および垂直ベクトルＶの方向を設定するステップを含み、前記ベクトルＬはユーザの視線方向として定義され、前記ベクトルＵは真上方向として定義され、前記ベクトルＶは水平方向ベクトルＨと前記ベクトルＬとのベクトルクロス乗積であり、前記ベクトルＨは前記ベクトルＬと前記ベクトルＵとのベクトルクロス乗積であり、
ｂ）ユーザの入力に基づいて現在の視線ベクトルＬ′の方向を決定するステップと、
ｃ）αが０から１の間の予め定められた値である。αＵ＋（１−α）Ｖに従って上および垂直の方向の加重平均を決定するステップと、
ｄ）Ｈ′＝Ｌ′×［αＵ＋（１−α）Ｖ］に従って新しい水平方向ベクトルＨ′を設定するステップとを含み、前記×は、ベクトルクロス乗積を表わし、
ｅ）Ｖ′＝Ｈ′×Ｌ′に従って新しい垂直ベクトルＶ′方向を設定するステップと、
ｆ）前記新しい水平方向ベクトルＨ’および垂直方向ベクトルＶ′に従いコンピュータの生み出したシーンを書直すステップとを含む、コンピュータアニメーションにおいて垂直の方向づけを円滑に維持するための方法。
【請求項２】
ｇ）視線方向の各変化に対しｂ）からｆ）のステップを繰返すステップを、さらに含む、請求項１に記載の方法。
【請求項３】
α＝０．５である、請求項１または２に記載の方法。
【発明の詳細な説明】
発明の背景
この発明は、ユーザがコンピュータの生み出すグラフィックの視点を決定する双方向コンピュータ視覚化システムに関し、特に、コンピュータアニメーションにおいて垂直の方向づけを円滑に維持するための方法に関する。
コンピュータアニメーションの仕事が始まって以来、垂直の方向づけを維持することは運動制御の鍵となる局面であった。見る人が真上または真下を見ようとしない限りは、垂直の方向づけを維持することは容易に達成される。しかしながら、もし見る人が真上または真下を見ようとすると、すぐさま方向感覚が狂いかねず、円滑に見る人を再び正しく方向づけることは困難になり得る。
この方向づけの問題の原因は、人間の上下知覚および見る人の運動のモデル化におけるその現われ方にある。人はしばしば特定の方向を見るようにと言われるのだが、そのとき人の頭の方向づけは垂直であって横向きではないものと通常考えられている。したがって人の頭の方向づけは垂直であって横向きではないはずなのである。したがってコンピュータアニメーションにおいて見る人の運動を特定する時は、ただ視線の方向だけを特定しある垂直の方向づけをとるのが自然な傾向である。
図１を参照すると、上述のことが、見る人の方向づけを示す以下の方程式で表わされる。
Ｌ＝現在の視線の方向
Ｈ＝Ｌ＾Ｕ
Ｖ＝Ｈ＾Ｌ
ここでシンボル＾はベクトルクロス乗積を示し、Ｕは上方向、Ｈは水平方向、そしてＶは垂直方向である。
この定義の問題が生じるのは、Ｌ＝±Ｕであるとき、すなわち人が真上または真下を見るときである。この場合には、ＨおよびＶはともに等しくゼロである。これは人が真上または真下を見るときには定義される垂直方向が欠落するためであり、このために一般にめまいと呼ばれることが起こる。
この問題を解決するために、常に視線の方向と同様に垂直の方向を特定するか、または、めまいを回避するような方法を発明することができる。多くの市販のアニメーションパッケージはユーザに頼って、一連のキーフレームにおける垂直および視線の方向を特定させている。しかしながら、ウォークスルーシステムと同様に、アニメーションシーケンスをオンザフライで（on the fly）定義するシステムにおいては、ユーザに立ち止まって垂直方向を示させることは望ましくない。
したがって、めまいを回避する案を発展させなければならない。
既知の方法の１つにおいては、古い垂直方向が上方向の新しい定義として使用されてきた。すなわち、
Ｌ＝現在の視線の方向
Ｈ′＝Ｌ＾Ｖ
Ｖ′＝Ｈ＾Ｌ
ここでＨ′およびＶ′はそれぞれＨおよびＶの新しい値である。この方法では、めまいの特異性は回避されるが、自然で全体的な上方向の感じを強めることは決してない。このために、垂直方向はすぐに回転して上方向から離れてしまい、見る人の方向感覚は狂いかねない。
上述の２つの方法を組合せて、見る人が真上または真下を見ていないときは第１の案を使用し、見る人が真上または真下を見るときには第２の案を使用することができる。この方法の問題点が起こるのは、第２の案から第１の案に切換えるとき、たとえば、見る人が真上または真下を見るのをやめるときである。この時点で、垂直方向が急激に変化しそれによって円滑な運動が妨げられる。
第４の案は視線方向、垂直方向、および水平方向の基礎を、３つの回転角すなわち、横転（roll）、縦揺れ（pitch）、および偏揺れ（yaw）（または機首方位（heading））に置くことである。これらの３つの角は、通常、飛行機および船を方向づけるため、およびこれらの乗物のシミュレーションにおいて使用される。機首方位は、垂直方向またはＺ軸についての回転を表わし、縦揺れは水平方向またはＸ軸についての回転を表わし、横転は視線方向またはＹ軸についての回転を表わす（飛行機１８およびそれと関連する位置の角度を示す図２を参照）。方向づけは、まずＹ軸、次にＸ軸、そしてＺ軸について回転することによって決定され、すなわち全体の回転マトリックスＲは、
Ｒ＝ＲｏｔＹ（横転）*ＲｏｔＸ（縦揺れ）*ＲｏｔＺ（機首方位）によって与えられる。
新しい水平方向を見つけるためには、Ｘ軸をＲによって変換し、新しい垂直方向を見つけるためにはＺ軸を変換し、そして新しい視線方向を見つけるためにはＹ軸を変換する。
この案において上方感覚を維持するためには、単純に横転を取り除く（横転をゼロに等しくする）。機首方位および縦揺れはユーザの入力（しばしばマウスのｘおよびｙの位置によって）によって与えられる。これによって上方感覚は確かに維持されるが、他の案と同様に、これがうまく働くのは、見る人が真上または真下を見ない限りにおいてである。これを示すため、横転＝０のときの変換された垂直方向を考えると、
Ｖ＝（sin（縦揺れ）sin（機首方位），-sin（縦揺れ）cos（機首方位），cos（縦揺れ））
縦揺れが０から９０へと変化していく間は、Ｖのｚ成分は正であり、見る人は適切な上方感覚を保つ。縦揺れが９０度に達すると、Ｖのｚ成分はゼロとなり、見る人は上方感覚を失うが、視線の方向が真上を指しているのでこれは予想される。しかしながら縦揺れが９０°を超えると、Ｖのｚ成分は負になり、見る人の上方感覚は頻繁に変わるので、見る人の方向感覚は狂ってしまう。これはまさにローラーコースターの輪で経験する感覚である。
これらの４つの案すべてが、視線の方向が上方向を通って動くとき、見る人の方向感覚を狂わしてしまうか、または、見る人を正しく方向づけされた位置へ「スナップ」する方向づけの急激な変化を引き起こす。
要約すると、コンピュータアニメーション技術において、めまいまたは急激な変化という問題を回避しつつコンピュータアニメーションにおいて垂直の方向づけを円滑に維持するための方法が明らかに必要とされている。
発明の概要
この発明の目的は、したがって、めまいおよび知覚される「上」方向の急激な変化を回避しつつ、コンピュータアニメーションにおいて垂直の方向づけを円滑に維持するための方法を提供することである。
簡潔には、この発明による、コンピュータアニメーションにおいて垂直の方向づけを円滑に維持するための方法は、
Ａ）  最初のコンピュータの生み出したシーンに対し最初の視線Ｌ、上Ｕ、および垂直Ｖの方向を設定するステップと、
Ｂ）  ユーザの入力に基づいて現在の視線Ｌ′の方向を決定するステップと、
Ｃ）  アルファが０から１の間の予め定められた値である、
αＵ＋（１−α）Ｖ
に従い上および垂直の方向の加重平均を決定するステップと、
Ｄ）  Ｈ′＝Ｌ′＾［αＵ＋（１−α）Ｖ］
に従って新しい水平Ｈ′の方向を設定するステップと、
Ｅ）  Ｖ′＝Ｈ′＾Ｌ′
に従って新しい垂直Ｖ′の方向を設定するステップと、
Ｆ）  新しい水平および垂直の方向、それぞれＨ′およびＶ′に従ってコンピュータの生み出したシーンを書直すステップとを含む。
この発明のさらなる局面においては、上述の方法はさらに、
Ｇ）  Ｂ）からＦ）までのステップを視線方向の各変化に対し繰返すステップを含む。
そしてこの発明のまたさらなる局面においては、αの値は０．５が選択される。
【図面の簡単な説明】
図１はコンピュータアニメーションのユーザおよびその視線方向Ｌ、垂直方向Ｖ、水平方向Ｈおよび上方向Ｕを示す。
図２は３つの回転角に基づいた別の方向づけ案を示す。
図３はコンピュータアニメーションにおいて垂直の方向づけを円滑に維持するための好ましい方法を示す詳細な論理フロー図である。
詳細な説明
図１はコンピュータの生み出すアニメーションを見ている過程にあるユーザ１０を示す。このユーザは、ウォークスループログラムなどのコンピュータの動かすシーケンスを見ているユーザによって設定される視点の象徴である。ユーザ１０はユーザの視線方向Ｌを定義するベクトル１２に沿って見ている。水平方向Ｈはベクトル１４によって、そして垂直方向Ｖはベクトル１６によって決定される。見る人１０の方向づけは、したがって、数字的には、
Ｈ＝Ｌ＾Ｕ
Ｖ＝Ｈ＾Ｌ
と表わされ、ここで＾はベクトルクロス乗積を示す。上述のように、この定義の問題が生じるのは、Ｌ＝＋／−Ｕであるときすなわち、人が真上または真下を見るときである。この場合、ＨおよびＶはともに等しくゼロである。これは人が真上または真下を見るときには定義される垂直方向が存在しないという事実から生じることであり、これによって通常めまいとと呼ばれる効果が生じる。
この発明はめまいの問題を解決し、図２に示す好ましい方法によりコンピュータアニメーションにおける円滑な垂直の方向づけを提供する。さて、この方法はステップ２０で始まる。ステップ２２で、最初のコンピュータの生み出したシーンに対し最初の視線Ｌ、上Ｕ、および垂直Ｖの方向が設定される。
次に、ステップ２４において、このシステムは、ユーザの提供する入力に基づいて現在の視線の方向および目の位置を決定する。通常の態様においては、ユーザの入力は、マウスまたは操縦桿タイプの入力装置などのユーザコントロールを通じて、または市販の頭部および目を位置づけるセンサを通じて決定され与えられ得る。
次に、ステップ２６において、このシステムは、
αＵ＋（１−α）Ｖ
に従って上および垂直の方向の加重平均を計算する。
ここでαは予め定められた０から１までの間の定数である。この発明の好ましい実施例においては、α＝０．５である。
次に、ステップ２８において、このシステムは、
Ｈ′＝Ｌ′＾［αＵ＋（１−α）Ｖ］
に従って視線方向と計算された加重平均とのクロス乗積を新しい水平方向として設定する。
ステップ３０において、新しい垂直方向は、
Ｖ′＝Ｈ′＾Ｌ′
に従い水平方向と視線方向とのクロス乗積に等しく設定される。
次にステップ３２において、新しい水平および垂直方向、それぞれＨ′およびＶ′に従いコンピュータの生み出したシーンが書直される。
このプロセスはそしてフィードバックループ３４を通じて繰返され、上述のシーケンスにおいてステップ２４、２６、２８、３０、および３２を通じ新しい視線、水平、および垂直の方向を決定する。
式Ｈ′＝Ｌ′＾［αＵ＋（１−α）Ｖ］においては、αが１に設定されるとき上述のめまいの問題が生じることを留意されたい。しかしながら、αがゼロに設定されるときは、上述の第２の案においては、全体的な上方向が存在せずしたがって、方向づけが欠如する。αが０と１の間のいずれかの数に設定されると、めまいを引き起こすような方向づけの欠如は起こらない。見る人が真上または真下を見ると、古い垂直方向がクロス乗積を支配する。見る人が真上または真下から離れた方向へ視線を動かすと、αの値に応じた速度において、上方向は滑らはに垂直方向へと徐々に動かされる。αが１に近ければ近いほど、見る人が上方向に再び方向づけられるのも速くなる。
要約すると、上述の方法は、めまい、方向づけの欠如、および急激な変化を回避する、コンピュータアニメーションにおいて垂直の方向づけを円滑に維持する方法である。
この発明の好ましい実施例が詳細に説明されてきたが、多くの修正および変形が可能でありそれらすべてがこの発明の真の精神および範囲内にあることは明らかである。
【図１】
0003780304.tif 000002
【図２】
0003780304.tif 000003
【図３】
0003780304.tif 000004