(57)【特許請求の範囲】
【請求項１】
バイナリー遷移ファイルを生成するコンピューターにより実施される方法であって、
プロセッサー及びメモリーを有するコンピューターが、３次元メッシュのシーケンスを定義する複数のアニメーション構造をバイナリー遷移ファイル内に生成し、
前記コンピューターが、スライド間の遷移を生成するために前記３次元メッシュに適用される、前記スライドを定義するヘッダー部を生成し、
前記コンピューターが、前記バイナリー遷移ファイルを用いてプレゼンテーションプログラムアプリケーションを変更し、前記プレゼンテーションプログラムアプリケーションは前記変更の際に前記遷移を提供するように構成される
ためのコンピューターにより実施される動作を含む方法。
【請求項２】
前記バイナリー遷移ファイル内に複数のアニメーション構造を生成することは、
前記コンピューターが、３次元メッシュのシーケンス内の第１の３次元メッシュを定義する第１のアニメーション構造を前記バイナリー遷移ファイル内に生成するためのコンピューターにより実施される動作を含む、請求項１に記載のコンピューターにより実施される方法。
【請求項３】
前記バイナリー遷移ファイル内に第１のアニメーション構造を生成することは、
前記コンピューターが、前記第１の３次元メッシュ内のインデックスの量を指定するインデックスカウントを前記第１のアニメーション構造内に生成し、
前記コンピューターが、各々の要素が前記インデックスのうちの１つを格納する複数の要素を含むインデックスアレイを、前記第１のアニメーション構造内に生成する
ためのコンピューターにより実施される動作を含む、請求項２に記載のコンピューターにより実施される方法。
【請求項４】
前記バイナリー遷移ファイル内に第１のアニメーション構造を生成することは、
前記コンピューターが、前記第１の３次元メッシュ内の頂点の量を指定する頂点カウントを前記第１のアニメーション構造内に生成し、
前記コンピューターが、各々の頂点データ構造が前記頂点のうちの１つを格納する複数の頂点データ構造を含む頂点データアレイを、前記第１のアニメーション構造内に生成する
ためのコンピューターにより実施される動作をさらに含む、請求項３に記載のコンピューターにより実施される方法。
【請求項５】
前記頂点データ構造の各々は、前記頂点のうちの１つのｘ軸値及び前記頂点のうちの１つのｙ軸値を含む請求項４に記載のコンピューターにより実施される方法。
【請求項６】
前記バイナリー遷移ファイル内に第１のアニメーション構造を生成することは、
前記コンピューターが、前記第１の３次元メッシュが存在する前記遷移のアニメーションフレームの量を指定するフレームカウントを、前記第１のアニメーション構造内に生成し、
前記コンピューターが、前記第１のアニメーション構造内にデルタ構造アレイを生成し、前記デルタ構造アレイは、各々のデルタデータ構造が前記アニメーションフレームのうちの１つに対応する、複数のデルタデータ構造を含む
ためのコンピューターにより実施される動作をさらに含む、請求項５に記載のコンピューターにより実施される方法。
【請求項７】
前記複数のデルタデータ構造の各々は、前記アニメーションフレームのうちの１つにおける頂点にわたって複数のデルタ値における最小デルタ値を指定する最小値、前記アニメーションフレームのうちの１つにおける頂点にわたって前記複数のデルタ値の範囲を指定するレンジ値、及びデルタデータ構造アレイを含む、請求項６に記載のコンピューター実施方法。
【請求項８】
前記デルタデータ構造アレイは複数のデルタデータデータ構造を含み、前記複数のデルタデータデータ構造の各々は前記頂点のうちの１つに対応し、前記複数のデルタデータデータ構造の各々は、ｘ軸デルタ値、ｙ軸デルタ値及びｚ軸デルタ値を含む、請求項７に記載のコンピューターにより実施される方法。
【請求項９】
コンピューターによって実行されると、前記コンピューターに、
バイナリー遷移ファイル内に複数のアニメーション構造を生成させ、前記複数のアニメーション構造は３次元メッシュのシーケンスを定義し、前記複数のアニメーション構造は前記３次元メッシュを形成する頂点及びインデックスを指定し、
前記バイナリー遷移ファイル内にヘッダー部を生成させ、前記ヘッダー部は、スライド間の遷移を生成するために前記３次元メッシュに適用されるスライドを定義し、
前記バイナリー遷移ファイルを用いてプレゼンテーションプログラムアプリケーションを変更させ、前記プレゼンテーションプログラムアプリケーションは前記変更の際に前記遷移を提供する
コンピューター実行可能命令を格納するコンピューター読み取り可能な記憶媒体。
【請求項１０】
プロセッサーと、
前記プロセッサーと通信可能に結合されるメモリーと、
前記メモリーからの、前記プロセッサーにおいて実行されるプログラムモジュールであって、前記プロセッサーによって実行されると、コンピューターシステムに、
バイナリー遷移ファイル内にアニメーション構造を生成させ、前記複数のアニメーション構造は３次元メッシュのシーケンスを定義し、前記複数のアニメーション構造は前記３次元メッシュを形成する頂点及びインデックスを指定し、
前記バイナリー遷移ファイル内にヘッダー部を生成させ、前記ヘッダー部は、スライド間の遷移を生成するために前記３次元メッシュに適用されるスライドを定義し、前記バイナリー遷移ファイルは前記遷移におけるフレーム間の頂点のデルタ値を格納し、
前記バイナリー遷移ファイルを用いてプレゼンテーションプログラムアプリケーションを変更させ、前記プレゼンテーションプログラムアプリケーションは前記変更の際に前記遷移を提供する
プログラムモジュールと
を備えるコンピューターシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メッシュシーケンスファイルフォーマットに関する。
【背景技術】
【０００２】
[0001]一般に、電子プレゼンテーションプログラムアプリケーションは、ユーザーが、テキスト、イメージ、サウンド、ビデオ、及び／又は他のタイプのマルチメディアを含むインパクトの大きな動的スライドプレゼンテーションを作成することを可能にする。いくつかのプレゼンテーションプログラムアプリケーションは、いくつかある特徴の中でも特に、プレゼンテーション内のスライドの間での遷移を提供することができる。スライド遷移は、プレゼンテーションを提供する間にユーザーが１つのスライドから次のスライドに移動するときに生じるアニメーションのような効果を指す。ユーザーは、プレゼンテーションに視覚的な能力を追加するためにプレゼンテーション内のスライド遷移を含めてもよい。
【０００３】
[0002]プレゼンテーションプログラムアプリケーションは、プレゼンテーションに含める複数の利用可能な遷移から所定の遷移をユーザーが選択することを可能にする機能を含んでもよい。所定の遷移を作成するための従来のリバースエンジニアリングワークフローでは、デザイナーは、遷移のコンセプトについてブレインストーミングを行い、次いで遷移のコンセプトの視覚的表現（例えば、ビデオ）を作成することができる。視覚的表現を基準として使用して、プログラマーは、遷移のコンセプトにおけるスライドの動きを表す数学的表現のセットを作成することができる。数学的表現のセットを作成する際に、プログラマーは、数学的表現のセットを、プレゼンテーションプログラムアプリケーションに組み込むことができるプログラムコードへ変換することができる。テスターは、プレゼンテーションプログラムアプリケーションをテストし、プログラムのコードに対応する実行される遷移が満足のいくものであるか否かを判定することができる。実行された遷移が満足のいくものではない場合には、プログラマーは数学的表現を再作成してプログラムコードを再変換する必要があることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
[0003]時が経つにつれて、従来のリバースエンジニアリングワークフローは時間がかかり、面倒なものであることが証明されてきた。プログラマーは、実行される遷移が満足のいくものであるとテスターが判断するまでに、数学的表現の複数のセットを作成して、各セットをプログラムコードに変換することを複数回繰り返す必要がある場合がある。数学的表現の新しいセットに対応する各プログラムコードは、広範なテストが必要になる場合がある。さらに、複雑な動きを含むいくつかの遷移は、数学的表現によって簡便に表現されない場合がある。
【０００５】
[0004]本明細書中でなされる開示はこの検討などに関して提示される。
【課題を解決するための手段】
【０００６】
[0005]バイナリー遷移ファイルを生成する技術が本明細書に記載される。バイナリー遷移ファイルは、遷移を表す３次元メッシュのシーケンスを定義することができる。３次元メッシュは、情報のなかでも特に、いくつかの３次元形状を規定する頂点の集合や３次元形状の面を規定する指標（indices）の集合を含むことができる。遷移ファイルのサイズは、スライド遷移について行うことができる様々な仮定に基づいて大きく低減することができる。
【０００７】
[0006]いくつかの例示的な技術では、方法は、バイナリー遷移ファイルを生成するように構成される。当該方法によれば、技術は、バイナリー遷移ファイルに複数のアニメーション構造を生成することができる。アニメーション構造は、３次元メッシュのシーケンスを定義してもよい。技術はまた、バイナリー遷移ファイルのヘッダー部を生成することができる。ヘッダー部は、スライド間の遷移を生成するために３次元メッシュに適用されるスライドを定義することができる。技術はさらに、バイナリー遷移ファイルによってプレゼンテーションプログラムアプリケーションを修正することができる。プレゼンテーションプログラムアプリケーションは、バイナリー遷移ファイルを介して修正の際に遷移を提供するように構成されてもよい。
【０００８】
[0007]上述した主題はまた、コンピューター制御装置、コンピュータープロセス、コンピューティングシステム、又はコンピューター読み取り可能な記憶媒体などの製品として実施されてもよいことが理解されるべきである。これら及び他の様々な特徴は、以下の詳細な説明を読み関連する図面を検討することから明らかになるであろう。
【０００９】
[0008]この概要は、詳細な説明で以下にさらに説明される概念の選択を簡略化された形で紹介するために設けられる。この概要は、特許請求される主題の重要な特徴又は不可欠な特徴を特定することを意図しておらず、また、この概要は、特許請求される主題の範囲を限定するために使用されることも意図していない。さらに、特許請求される主題は、本開示の任意の部分に記載される任意の又はすべての欠点を解決する実施例に限定されるものではない。
【図面の簡単な説明】
【００１０】
【図１】[0009]いくつかの実施例による、バイナリー遷移ファイルを生成するように構成されるコンピューティングシステムを示すブロック図を示すブロック図である。
【図２】[0010]いくつかの実施例による、バイナリー遷移ファイルの例示的なデータフォーマットに含まれる例示的な遷移情報を記述するテーブルを示す図である。
【図３】[0011]いくつかの実施例による、バイナリー遷移ファイルを生成する方法を示すフロー図である。
【図４】[0012]本明細書に提示される実施例を実施することが可能なコンピューティングシステムの例示的なコンピューターハードウェアアーキテクチャーを示すコンピューターアーキテクチャー図である。
【発明を実施するための形態】
【００１１】
[0013]以下の詳細な説明は、遷移のデザインを、プレゼンテーションプログラムアプリケーションにおける遷移を実施するために利用することができるバイナリー遷移ファイルへと変換する技術に関するものである。本明細書に提示される技術及び概念の利用により、バイナリー遷移ファイルは、デザインを数学的表現のセットへとリバースエンジニアリングする必要なく生成することができる。結果として、新しい遷移を開発するための開発コストが大幅に低減される。さらに、可能でなかったか又は数学的表現として実施するにはあまりにも困難であった特定の遷移が開発可能となる。
【００１２】
[0014]バイナリー遷移ファイルは、遷移を表す３次元メッシュのシーケンスを定義することができる。３次元メッシュは、いくつかの３次元形状を規定する頂点の集合や３次元形状の面を規定する指標の集合を含んでもよい。３次元メッシュがシーケンスに示される場合に遷移（すなわち、アニメーション）を生成することができる。プレゼンテーションは複数のスライドを含むことができる。プレゼンテーションにおける１つ又は複数のスライドは、シーケンスにおける３次元メッシュのそれぞれに対するテクスチャーとして適用することができる。すなわち、スライド内の位置は、３次元メッシュ内の対応する位置にマッピングすることができる。このように、スライドは、遷移の実行中に３次元メッシュのシーケンスに従ってアニメートすることができる。
【００１３】
[0015]一般に、３次元アニメーションを定義するファイルは比較的大きい。ユーザーが、通常、より小さくなることを期待するプレゼンテーションファイルに組み込まれる場合、このようなファイルは実現困難となり得る。たとえば、ユーザーは、ファイルサイズ転送制限を有し得る電子メールにより容易に転送することができ、及び／又は限られた記憶容量を有する携帯型のフラッシュメモリーデータ記憶デバイスに格納することができるように、プレゼンテーションファイルが十分小さいことを求めることがある。この目的のために、遷移ファイルのサイズは、スライド遷移についてなされ得る様々な仮定に基づいて、大幅に低減することができる。バイナリー遷移ファイルは、さらに、適切なデータ圧縮技術を利用して圧縮することができる。
【００１４】
[0016]本明細書に記載の主題は、コンピューターシステム上でのオペレーティングシステム及びアプリケーションプログラムの実行に関連して実行されるプログラムモジュールの一般的な文脈で提示されるが、当業者であれば、他の実施例が他のタイプのプログラムモジュールと組み合わせて実施されてもよいことを認識するであろう。一般に、プログラムモジュールは、特定のタスクを実行し又は特定の抽象データ型を実施するルーチン、プログラム、コンポーネント、データ構造、及び他のタイプの構造を含む。さらに、当業者であれば、本明細書に記載の主題が、ハンドヘルドデバイス、マルチプロセッサーシステム、マイクロプロセッサーベース又はプログラム可能な家庭用電化製品、ミニコンピューター、メインフレームコンピューターなどを含む他のコンピューターシステム構成を用いて実施できることを理解するであろう。
【００１５】
[0017]以下の詳細な説明では、本明細書の一部を形成する添付の図面に対して参照がなされ、実例、特定の実施例、又は例によって示される。いくつかの図面にわたって同様の数字が同様の要素を表す図面を参照して、遷移を実施するためにプレゼンテーションプログラムアプリケーションによって読み取り可能である遷移ファイルへの遷移のデザインの変換をするためのコンピューティングシステム及び方法が示される。図１は、いくつかの実施例による、バイナリー遷移ファイルを生成するように構成されるコンピューティングシステム１００を示すブロック図である。コンピューティングシステム１００は、アニメーションアプリケーション１０２、アニメーションパッケージエンジン１０４、変換アプリケーション１０６、及びプレゼンテーションプログラムアプリケーション１０８を含むことができる。
【００１６】
[0018]遷移デザイナーは、所与の遷移を表す３次元アニメーション１１０を作成するためにアニメーションアプリケーション１０２を利用することができる。様々な実施例において、アニメーションアプリケーション１０２は、任意の適切な３次元コンピューターグラフィックスアニメーションプログラムであってもよい。３次元アニメーション１１０は、１つ又は複数のファイルに具現化することができる。いくつかの実施例では、３次元アニメーション１１０は、ＷＡＶＥＦＲＯＭＴ  ＴＥＣＨＮＯＬＯＧＩＥＳのＯＢＪ形状定義ファイルフォーマットで具現化することができる。例えば、３次元アニメーション１１０の各フレームは、対応するＯＢＪファイルによって表されてもよい。他の実施例では、３次元アニメーション１１０は、任意の適切な３次元モデルフォーマットで具現化することができる。
【００１７】
[0019]３次元アニメーション１１０を作成する際に、遷移デザイナーは、３次元アニメーション１１０をアニメーションパッケージ１１２にエクスポートするためにアニメーションパッケージエンジン１０４を利用することができる。アニメーションパッケージ１１２は、３次元アニメーション１１０（例えば、ＯＢＪファイル）及び遷移テンプレート１１４を含むことができる。遷移テンプレート１１４は、遷移の初期状態と終了状態を定義する情報を含むことができる。一般的には、プレゼンテーションのスライドは、同じ幾何学的空間を占有する。その結果、初期状態と終了状態は、多くの他のアニメーションとは異なり、同一であってもよい。
【００１８】
[0020]遷移テンプレート１１４はまた、スライドを定義する情報を含むことができる。例えば、スライドは、単一の多角形平面（polygonal plane）として表すことができる。遷移テンプレート１１４は、さらに、スライドに関連付けられた座標系（例えば、右手座標系）に関する情報を含んでもよい。遷移テンプレート１１４は、さらに、スライドの位置を含むことができる（例えば、スライドの中心が座標系の原点（０，０，０）に配置されてもよい）。
【００１９】
[0021]遷移テンプレート１１４は、さらに、スライドに関連付けられるスライドの回転を含むことができる（例えば、スライドは、ｘ軸の周りに９０度回転されてもよく、それによって、ｘ軸とｙ軸によって規定される平面上に平らにスライドを配置し、ｚ軸がスライドの前面から正方向へ外向きに示してもよい）。遷移テンプレート１１４は、さらに、スライドに関連付けられるスライドスケールを含むことができる（例えば、スライドの寸法は、１３．３３×１０ＯＢＪユニットにマッピングする１０”×７．５”スライドとして構成されてもよい）。遷移テンプレート１１４は、さらに、プレゼンテーションプログラムアプリケーションのユーザーが照明設定（lightning configuration）を定義しない場合にデフォルトのスライド照明（slide lighting）（例えば、１．０の強度を有する負のｚ軸に向かう単一方向の照明ポイント）を含むことができる。
【００２０】
[0022]遷移デザイナーはアニメーションパッケージ１１２を変換アプリケーション１０６に入力してもよい。変換アプリケーション１０６は、変換処理のパラメーターとしてアニメーションパッケージ１１２により変換処理を実行するように構成されてもよい。変換プロセスは、３次元アニメーション１１０及び遷移テンプレート１１４に基づいて、アニメーションパッケージ１１２をバイナリー遷移ファイル１１６へと変換することができる。変換プロセスは、３次元アニメーション１１０から遷移情報を抽出することができる。遷移情報は、プレゼンテーションプログラムアプリケーション１０８における遷移を実現するための関連する情報を含むことができる。次いで、変換プロセスは、遷移テンプレート１１４に従って遷移情報を構成し、それによってバイナリー遷移ファイル１１６を生成することができる。
【００２１】
[0023]バイナリー遷移ファイル１１６はバイナリーフォーマットでデータを格納することができる。いくつかの実施例では、変換アプリケーション１０６はまた、適切なデータ圧縮技術によってバイナリー遷移ファイル１１６を圧縮する圧縮処理を行うように構成することができる。例えば、変換アプリケーション１０６は、バイナリー遷移ファイル１１６をＺＩＰファイルコンテナへと圧縮することができる。バイナリー遷移ファイル１１６のファイルフォーマットの例を図２を参照してより詳細に説明する。ファイルフォーマットは、バイナリー遷移ファイル１１６に含めることができる遷移情報のさまざまな例を含む。
【００２２】
[0024]バイナリー遷移ファイル１１６を生成する際に、遷移デザイナーはバイナリー遷移ファイル１１６を含むようにプレゼンテーションプログラムアプリケーション１０８を更新することができる。例えば、遷移デザイナーは、プレゼンテーションプログラムアプリケーション１０８における動的リンクライブラリーリソースファイル１１８又は他の共有リソースファイルを、新しい遷移を含むように更新することができる。遷移デザイナーはまた、新しい遷移を含むように、プレゼンテーションプログラムアプリケーション１０８のユーザーインターフェイス１２０を更新することができる。このように、ユーザーは、プレゼンテーションプログラムアプリケーション１０８のユーザーインターフェイスから新しい遷移を選択することができる。
【００２３】
[0025]図２は、いくつかの実施例による、バイナリー遷移ファイル１１６のための例示的なデータフォーマットに含まれる例示的な遷移情報を記述するテーブル２００を示す図である。バイナリー遷移ファイルにおけるこの遷移情報は遷移に対応することができる。様々な実施例では、データフォーマットは、テーブル２００に含まれる情報の一部又はすべての組み合わせを含むことができる。テーブル２００は、識別子の列２０２及びデータ型の列２０４を含む。識別子の列２０２は、バイナリー遷移ファイル１１６に含まれる例示的な情報の種類の識別子を指定することができる。データ型の列２０４は、対応する情報の種類の例示的なデータ型を指定することができる。
【００２４】
[0026]バイナリー遷移ファイル１１６はヘッダー部２０８を含むことができる。ヘッダー部２０８は、アニメーションカウント２１０を含むことができる。アニメーションカウント２１０は、遷移における、スライドなどのオブジェクトの数（量）を格納する３２ビットの符号なしの整数として構成することができる。例えば、アニメーションカウント２１０は、バイナリー遷移ファイル１１６に対応する遷移において利用されるスライドの数を格納することができる。典型的な遷移は、２つのスライド（つまり、以前のスライドと次のスライド）を含むことができる。この場合には、アニメーションカウント２１０は、値２を格納することができる。他の遷移は、２つより多くのスライドを利用することができる。
【００２５】
[0027]ヘッダー部２０８は、さらに、アニメーションアレイ２１２を含むことができる。アニメーションアレイ２１２は、複数のアニメーションデータ構造を有するアレイとして構成することができる。アレイ内のアニメーションデータ構造の数は、アニメーションカウント２１０に対応してもよい。各アニメーションデータ構造は、遷移において利用されるプレゼンテーションの異なるスライドに関してアニメーションデータを格納することができる。アニメーションデータは、プレゼンテーションプログラムアプリケーション１０８が各スライドをレンダリングすることを可能にする、適切なイメージデータ（例えば、さまざまなテキスト、形状、色などの位置及び内容）を含むことができる。
【００２６】
[0028]たとえば、アニメーションカウント２１０が２である場合、アニメーションアレイ２１２は２つのアニメーションデータ構造を含んでもよい。アニメーションアレイ２１２内の第１のアニメーションデータ構造は、第１のスライドに対応するアニメーションデータを格納してもよく、アニメーションアレイ２１２内の第２ののアニメーションデータ構造は、第２のスライドに対応するアニメーションデータを格納してもよい。アニメーションアレイ２１２は、スライドの順序に対応する連続した順序でアニメーションデータ構造を格納するように構成されてもよい（例えば、アニメーション［０］はシーケンスの第１のスライドに対応してもよく、アニメーション［１］はシーケンスの第２のスライドに対応してもよい）。
【００２７】
[0029]バイナリー遷移ファイル１１６は、さらに、アニメーション構造２１４の複数のインスタンスを含んでもよい。アニメーション構造２１４の各インスタンスは、遷移における３次元メッシュに対応してもよい。例えば、遷移が３つの３次元メッシュを含む場合、バイナリー遷移ファイル１１６は、アニメーション構造２１４の３つのインスタンスを含むことができる。アニメーション構造２１４は、スライド識別子２１６、フラグ値２１８、周囲照明値２２０、フレームカウント２２２、インデックスカウント２２４、インデックスアレイ２２６、頂点カウント２２８、頂点データアレイ２３０、ｘ軸値２３４とｙ軸値２３６を含む頂点データ構造２３２、デルタ構造アレイ２３８、最小値２４２、レンジ値２４４及びデルタデータ構造アレイ２４６を含むデルタデータ構造２４０、並びに／又はデルタデータ構造２４８を含んでもよい。
【００２８】
[0030]スライド識別子２１６は、対応する３次元メッシュに適用されるスライドの識別子を指定する３２ビットの符号なし整数（例えば、ＤＷＯＲＤ）として構成することができる。前述したように、スライドをレンダリングするためのアニメーションデータは、アニメーションアレイ２１２に格納することができる。スライドは、プレゼンテーションのスライドの順序に対応する連続した識別子に従って識別されてもよい。例えば、第１のスライドがゼロの識別子を有してもよく、第２のスライドが１の識別子であってもよく、第３のスライドが２の識別子を有してもよい。
【００２９】
[0031]フラグ値２１８は、対応する３次元メッシュ及び／又は遷移に関するさらなる情報を提供するために利用することができる一連のオン／オフフラグを指定する３２ビットの符号なし整数として構成することができる。３２ビットの符号なし整数内の各ビットは、ゼロの値又は１の値を有する異なるフラグに対応してもよい。例示的なフラグは、対応する３次元メッシュが片面３次元メッシュ又は両面３次元メッシュとしてレンダリングされるかどうかを指定することができる。この例では、ゼロの値が片面３次元メッシュに対応してもよいし、１の値が両面３次元メッシュに対応してもよい。
【００３０】
[0032]周囲照明値２２０は、対応する３次元メッシュに適用される周囲照明の量を指定する浮動小数点値として設定されてもよい。例えば、周囲照明値２２０は、０．０から１．０の範囲とすることができる。フレームカウント２２２は、対応する３次元メッシュが存在する遷移のアニメーションフレームの数を指定する３２ビットの符号なし整数として構成することができる。バイナリー遷移ファイル１１６内の各３次元メッシュは、異なる数のアニメーションフレームに存在してもよい。すなわち、遷移は、１つ又は複数のアニメーションフレームに対して同じ３次元メッシュを利用することができる。
【００３１】
[0033]インデックスカウント２２４は、対応する３次元メッシュにおけるインデックスの数を指定する３２ビットの符号なし整数として構成することができる。インデックスアレイ２２６は、多くの要素を有するアレイとして構成することができる。各要素は、対応する３次元メッシュ内のインデックスを連続して格納する１６ビットの符号なし整数（例えば、ＷＯＲＤ）として構成することができる。インデックスアレイ２２６内の要素の数は、インデックスカウント２２４で指定されたインデックスの数に対応してもよい。いくつかの実施例では、インデックスは、３つのグループ（例えば、３つの点が三角形を定義する）内の１６ビット値として記憶することができる。例えば、０から４の番号を付された４つの頂点がある場合、次いで、インデックスはそれらの４つの頂点から２つの三角形を作ることができる。第１の三角形は、頂点０，１，２を利用してもよく、第２の三角形は頂点０，２，３を利用してもよい（頂点０及び２は共有される）。インデックスは、三角形が頂点を共有することを可能にすることができる。
【００３２】
[0034]いくつかの実施例では、第１のアニメーションフレームの３次元メッシュ内のインデックスのみが、インデックスアレイ２２６に格納される。これは、第１のアニメーションフレームの３次元メッシュ内のインデックスが、追加のアニメーションフレームの他の３次元メッシュの遷移にわたって一定のままであってもよいからである。結果として、バイナリー遷移ファイル１１６のサイズを、追加のアニメーション構造２１４に対して同じ情報を格納する必要なく、大幅に低減することができる。
【００３３】
[0035]頂点カウント２２８は対応する３次元メッシュ内の頂点の数を指定する３２ビットの符号なし整数として構成することができる。頂点データアレイ２３０は、複数の頂点データ構造２３２を有するアレイとして構成することができる。各頂点データ構造２３２は、対応する３次元メッシュ内の頂点を連続して格納する軸ごとの１６ビットの符号なし整数として構成することができる。頂点データ構造２３２は、ｘ軸値２３４とｙ軸値２３６を含むことができる。頂点データアレイ２３０内の頂点データ構造２３２の数は、頂点カウント２２８で指定された頂点の数に対応することができる。
【００３４】
[0036]いくつかの実施例では、第１のアニメーションフレームの３次元メッシュ内の頂点のみが頂点データ構造２３２に格納される。バイナリー遷移ファイル１１６内の様々な３次元メッシュの頂点の数は、遷移の過程で変化しないことがある。頂点の位置の変化（本明細書において「デルタ値」とも呼ぶ）は、以下でより詳細に説明するデルタ構造アレイ２３８によって定義することができる。１つのアニメーションフレームから次のアニメーションフレームへの頂点の位置の変化は一般的に小さい。頂点の完全な座標値ではなく、位置に対する変化のみを格納することによって、バイナリー遷移ファイル１１６のサイズを大幅に低減することができる。
【００３５】
[0037]さらに、いくつかの実施例では、第１のアニメーションフレームの３次元メッシュ内の頂点の、ｚ軸座標ではなく、ｘ軸座標及びｙ軸座標のみが、頂点データ構造２３２に格納される。これは、遷移の第１のフレームにおいて、対応する３次元メッシュが、通常、平坦である（すなわち、ｚ軸の値がゼロになる）ためである。第１のアニメーションフレームの３次元メッシュ内の頂点の、ｚ軸座標ではなく、ｘ軸座標及びｙ軸座標のみを格納することによって、バイナリー遷移ファイル１１６のサイズを大幅に低減することができる。
【００３６】
[0038]デルタ構造アレイ２３８は、複数のデルタデータ構造２４０を有するアレイとして構成することができる。デルタ構造アレイ２３８内のデルタデータ構造２４０の数は、フレームカウント２２２に対応してもよい。デルタデータ構造２４０の各々は、最小値２４２、レンジ値２４４、及びデルタデータ構造アレイ２４６を格納することができる。最小値２４２は、対応するフレームについての対応する３次元メッシュの頂点にわたって最小デルタ値を格納する軸ごとの３２ビットの浮動小数点値（例えば、浮動小数）として構成することができる。レンジ値２４４は、対応するフレームについての対応する３次元メッシュにおける頂点にわたるデルタ値の範囲を格納する軸ごとの３２ビットの浮動小数点値として構成することができる。
【００３７】
[0039]デルタデータ構造アレイ２４６は複数のデルタデータデータ構造２４８を有するアレイとして構成されてもよい。デルタデータ構造アレイ２４６内のデルタデータデータ構造２４８の数は、対応する３次元メッシュの頂点カウント２２８に対応してもよい。すなわち、デルタデータデータ構造２４８の各々は、対応する３次元メッシュの頂点の１つに対応することができる。デルタデータデータ構造２４８の各々は１６ビットの符号付き整数として構成することができる。１６ビットの符号付き整数の様々な部分は、現在のフレームの３次元メッシュと以前のフレームの３次元メッシュとの間の対応する頂点の、ｘ軸に対する変化、ｙ軸に対する変化、及びｚ軸に対する変化を定義するように割り当てられてもよい。例えば、最初の６ビットがｘ軸に対する変化を定義してもよく、次の５ビットがｙ軸に対する変化を定義してもよく、最後の５ビットがｚ軸に対する変化を定義してもよい。
【００３８】
[0040]３つの別個の値を格納するのとは対照的に、単一の１６ビットの符号付き整数のｘ軸、ｙ軸、ｚ軸についてのデルタ値を格納することによって、バイナリー遷移ファイル１１６のサイズは大幅に低減することができる。アニメーションフレームの観測面（view plane）が遷移にわたって比較的一定のままである（すなわち、ｚ軸に対する変化が比較的小さい）場合、次いで、もともとｚ軸に割り当てられていたビットを、ｘ軸及び／又はｙ軸に再割り当てすることができる。最初のものの後の各フレームの頂点の位置を計算するために、次の計算を用いることができる（この例はｘ軸のみであるが、同じ計算を他の軸に使用することができる）：ｘ’＝ｄｅｌｔａ．ｘ＊ｒａｎｇｅ．ｘ＋ｍｉｎ．ｘ、ここで記号「．ｘ」は各項のｘ成分を意味する。次のフレームは以前のフレームの計算された位置に対する差分を用いて生成される。
【００３９】
[0041]バイナリー遷移ファイル１１６の上記の実施例は、遷移にわたる３次元メッシュの各々における各頂点の法線（normal）を格納しない。いくつかの実施例では、プレゼンテーションプログラムアプリケーション１０８は、法線が事前に計算されてバイナリー遷移ファイル１１６に格納される必要がない十分な精度で、「オンザフライ（on the fly）」で各頂点の法線を計算することができる。これは、三角形の定義が方向を示し、標準的な法線の計算が使用されるためである。遷移にわたって３次元メッシュの各々における各頂点の法線の格納を排除することによって、バイナリー遷移ファイル１１６のサイズを大幅に低減することができる。
【００４０】
[0042]図３を参照すると、変換アプリケーション１０６の動作に関する追加の詳細が提供される。図３は、いくつかの実施例による、バイナリー遷移ファイルを生成する方法を示す流れ図である。本明細書に記載の論理動作は、（１）コンピューターにより実施される行為のシーケンス又はコンピューティングシステム上で動作するプログラムモジュールとして及び／又は（２）コンピューティングシステム内の相互接続されたマシン論理回路又は回路モジュールとして実施されることが理解されるべきである。実施例は、コンピューティングシステムの性能及び他の要件に依存する選択の問題である。従って、本明細書に記載の論理動作は、状態動作（states operations）、構造的デバイス（structural devices）、行為（acts）、又はモジュールと様々に呼ばれる。これらの動作、構造的デバイス、行為、及びモジュールは、ソフトウェア、ファームウェア、特殊目的デジタルロジック、これらの任意の組み合わせで実施されてもよい。図面に示され本明細書で説明されるものよりもより多くの又はより少ない動作が実行されてもよいことができることを理解されたい。これらの動作はまた、本明細書に記載されたものとは異なる順序で実行することができる。
【００４１】
[0043]図３では、ルーチン３００は、動作３０２において開始し、変換アプリケーション１０６は、バイナリー遷移ファイル１１６などのバイナリー遷移ファイルにおいて、アニメーション構造２１４などの複数のアニメーション構造を生成する。バイナリー遷移ファイルは、３次元メッシュのシーケンスを定義することができる。例えば、複数のアニメーション構造は３次元メッシュを定義するアニメーション構造を含んでもよい。いくつかの実施例では、アニメーション構造は、３次元メッシュにおけるインデックスの量を指定するインデックスカウント２２４などの、インデックスカウントを含むことができる。アニメーション構造はまた、複数の要素を含むインデックスアレイ２２６などのインデックスアレイを含むことができる。要素の各々はインデックスのうちの１つを記憶することができる。
【００４２】
[0044]いくつかの実施例では、アニメーション構造は、３次元メッシュにおける頂点の量を指定する頂点カウント２２８などの頂点カウントを含むことができる。アニメーション構造はまた、頂点データ構造２３２などの複数の頂点のデータ構造を含む、頂点データアレイ２３０などの頂点データアレイを含むことができる。頂点データ構造の各々は、頂点のうちの１つを記憶することができる。例えば、頂点データ構造の各々は、対応する頂点のｘ軸値と、対応する頂点のｙ軸値を格納することができる。頂点データ構造の各々は、対応する頂点のｚ軸値を格納しなくてもよい。
【００４３】
[0045]いくつかの実施例では、アニメーション構造は、３次元メッシュが存在する遷移のアニメーションフレームの量を指定する、フレームカウント２２２などのフレームカウントを含むことができる。アニメーション構造はまた、デルタデータ構造２４０などの複数のデルタデータ構造を含む、デルタ構造アレイ２３８などのデルタ構造アレイを含むことができる。デルタデータ構造の各々は、アニメーションフレームのうちの１つに対応してもよい。デルタデータ構造の各々は、最小値、レンジ値、及びデルタデータ構造アレイを格納することができる。最小値２４２などの最小値は、頂点にわたって最小デルタ値量の複数のデルタ値を指定することができる。レンジ値２４４などの範囲値は、頂点にわたってデルタ値の範囲を指定することができる。
【００４４】
[0046]デルタデータ構造アレイ２４６などのデルタデータ構造アレイは、デルタデータデータ構造（deltadata data structure）２４８などの複数のデルタデータデータ構造を含むことができる。デルタデータデータ構造の各々は、頂点のうちの１つに対応することができる。デルタデータデータ構造の各々は、ｘ軸デルタ値、ｙ軸デルタ値、及びｚ軸デルタ値を格納することができる。いくつかの実施例では、ｘ軸デルタ値、ｙ軸デルタ値、及びｚ軸デルタ値は、単一の整数に格納することができる。
【００４５】
[0047]いくつかの実施例では、アニメーション構造は、３次元メッシュに適用されるスライドのうちの１つを指定する、スライド識別子２１６などのスライド識別子を含むことができる。アニメーション構造はまた、３次元メッシュに関する追加情報を提供する、フラグ値２１８などのフラグ値を含むことができる。フラグ値２１８の各ビットは異なるフラグを表すことができる。例えば、フラグ値は、３次元メッシュが両面３次元メッシュ又は片面３次元メッシュとしてレンダリングされるかどうかを定義するビットを含むことができる。アニメーション構造は、さらに、３次元メッシュに適用される周囲照明の量を指定する周囲照明値２２０などの周囲照明値を含むことができる。変換アプリケーション１０６がバイナリー遷移ファイル内のアニメーション構造を生成すると、ルーチン３００は動作３０４に進んでもよい。
【００４６】
[0048]動作３０４において、変換アプリケーション１０６はバイナリー遷移ファイルにおいてヘッダー部を生成してもよい。いくつかの実施例では、ヘッダー部は、遷移におけるスライドの量を指定する、アニメーションカウント２１０などのアニメーションカウントを含むことができる。ヘッダー部はまた、アニメーションアレイ２１２などのアニメーションアレイを含むことができる。アニメーションアレイ２１２は複数のアニメーションデータ構造を含んでもよい。アニメーションデータ構造の各々は、プレゼンテーションプログラムアプリケーション１０８などのプレゼンテーションプログラムがアニメーションデータに対応するスライドをレンダリングすることを可能にするアニメーションデータを指定することができる。変換アプリケーション１０６がバイナリー遷移ファイルのヘッダー部を生成する場合、ルーチン３００は動作３０６に進んでもよい。
【００４７】
[0049]動作３０６において、変換アプリケーション１０６は、バイナリー遷移ファイルを含むようにプレゼンテーションプログラムアプリケーションを変更することができる。たとえば、変換アプリケーション１０６は、新しい遷移を含むように、プレゼンテーションプログラムアプリケーション内の、動的リンクライブラリーリソースファイル（dynamic linked library resource file）１１８などの共有リソースファイルを更新することができる。変換アプリケーション１０６はまた、新しい遷移を含むように、プレゼンテーションプログラムアプリケーションのユーザーインターフェイス１２０などのユーザーインターフェイスを更新することができる。変換アプリケーション１０６がバイナリー遷移ファイルを含むようにプレゼンテーションプログラムアプリケーションを変更すると、ルーチン３００は、（例えば、定期的に、継続的に、又は必要に応じてオンデマンドで）繰り返してもよいし、終了してもよい。
【００４８】
[0050]図４を参照すると、コンピューター４００を示す例示的なコンピューターアーキテクチャーの図が示される。コンピューター４００の例は、コンピューティングシステム１００を含むことができる。コンピューター４００は、中央処理ユニット４０２、システムメモリー４０４、及び中央処理ユニット４０２にメモリー４０４を結合するシステムバス４０６を含むことができる。コンピューター４００はさらに、１つ又は複数のプログラムモジュール４１４及びデータストア４１６を記憶する大容量記憶デバイス４１２を含むことができる。プログラムモジュール４１４の例は、変換アプリケーション１０６及びプレゼンテーションプログラムアプリケーション１０８を含むことができる。データストア４１６は、アニメーションパッケージ１１２及びバイナリー遷移ファイル１１６を格納することができる。大容量記憶デバイス４１２は、バス４０６に接続された大容量記憶コントローラー（図示せず）を介して処理ユニット４０２に接続することができる。大容量記憶デバイス４１２及びその関連するコンピューター記憶媒体は、コンピューター４００のための不揮発性ストレージを提供することができる。本明細書に含まれるコンピューター記憶媒体の説明は、ハードディスク又はＣＤ−ＲＯＭドライブなどの大容量記憶デバイスを指すが、コンピューター記憶媒体がコンピューター４００によってアクセスできる任意のコンピューター記憶媒体とすることができることが当業者によって理解されるべきである。
【００４９】
[0051]限定ではなく、例として、コンピューター記憶媒体は、コンピューター記憶命令、データ構造、プログラムモジュール、又は他のデータなどの情報の一時的でない記憶のための任意の方法又は技術で実施される、揮発性及び不揮発性の、取り外し可能及び取り外し不能な媒体を含むことができる。例えば、コンピューター記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリー又は他のソリッドステートメモリー技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（「ＤＶＤ」）、ＨＤ−ＤＶＤ、ＢＬＵ−ＲＡＹ（登録商標）、又は他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶デバイス、あるいは所望の情報を格納するのに用いることができコンピューター４００によってアクセスできる任意の他の媒体を含むが、これらに限定されない。
【００５０】
[0052]様々な実施例によれば、コンピューター４００は、ネットワーク４１８を介したリモートコンピューターへの論理接続を使用するネットワーク化された環境で動作することができる。コンピューター４００は、バス４０６に接続されたネットワークインターフェイスユニット４１０を介してネットワーク４１８に接続することができる。ネットワークインターフェイスユニット４１０はまた、他のタイプのネットワーク及びリモートコンピューターシステムに接続するために利用され得ることが理解されるべきである。コンピューター４００はまた、キーボード、マウス、マイクロホン、及びゲームコントローラーを含む、多数の入力デバイス（図示せず）から入力を受信して処理するための入出力コントローラー４０８を含むことができる。同様に、入出力制御コントローラー４０８は、ディスプレイ又は他のタイプの出力デバイス（図示せず）に出力を提供することができる。
【００５１】
[0053]バス４０６は、処理ユニット４０２が、大容量記憶デバイス４１２又は他のコンピューター記憶媒体にコード及び／もしくはデータを読み出し、並びに／又は大容量記憶デバイス４１２又は他のコンピューター記憶媒体からコード及び／もしくはデータを読み取ることを可能にすることができる。コンピューター記憶媒体は、半導体、磁性材料、光学素子などを含むがこれらに限定されない、任意の適切な技術を用いて実施される記憶素子の形の装置を表してもよい。コンピューター記憶媒体は、ＲＡＭ、ＲＯＭ、フラッシュ、又は他のタイプの技術として特徴付けられようとなかろうと、メモリーコンポーネントを表すことができる。コンピューター記憶媒体はまた、ハードディスクドライブ又はその他として実施されようとなかろうと、２次記憶装置を表すことができる。ハードディスクドライブの実施例は、ソリッドステートとして特徴付けることができ、又は磁気的に符号化された情報を格納する回転媒体を含むことができる。
【００５２】
[0054]プログラムモジュール４１４は、処理部４０２にロードされて実行されるとコンピューター４００にバイナリー遷移ファイルを生成させる、ソフトウェア命令を含むことができる。プログラムモジュール４１４はまた、本明細書の全体にわたって説明したコンポーネント、フロー、及びデータ構造を使用する全体的なシステム又はオペレーティング環境内にコンピューター４００が参加することができる、様々なツールや技術を提供することができる。たとえば、プログラムモジュール４１４は、バイナリー遷移ファイルを生成するためのインターフェイスを実施することができる。
【００５３】
[0043]一般に、プログラムモジュール４１４は、処理ユニット４０２にロードされて実行されると、処理ユニット４０２及び全体的なコンピューター４００を、汎用コンピューティングシステムからバイナリー遷移ファイルを生成するようにカスタマイズされた特殊目的のコンピューティングシステムへと変換することができる。処理ユニット４０２は、個別に又は集合的に任意の数の状態をとることができる、任意の数のトランジスター又は他の個別の回路素子から構築することができる。より具体的には、処理ユニット４０２は、プログラムモジュール４１４内に含まれる実行可能な命令に応答して、有限状態マシンとして動作することができる。これらのコンピューター実行可能な命令は、処理ユニット４０２が状態間でどのように遷移するかを指定し、それによって処理ユニット４０２を構成するトランジスター又は他の個別のハードウェア素子を変換することによって、処理ユニット４０２を変換することができる。
【００５４】
[0056]プログラムモジュール４１４の符号化はまた、コンピューター記憶媒体の物理的構造を変換することができる。物理的構造の特定の変換は、本明細書の異なる実施例において、様々な要因に依存し得る。このような要因の例は、コンピューター記憶媒体が一次的な又は二次的な記憶装置として特徴付けられようとなかろうと、コンピューター記憶媒体を実施するために使用される技術を含むが、これに限定されない。例えば、コンピューター記憶媒体が半導体ベースのメモリーとして実施される場合、プログラムモジュール４１４は、ソフトウェアがその中で符号化されるときに、半導体メモリーの物理的状態を変換することができる。たとえば、プログラムモジュール４１４は、半導体メモリーを構成するトランジスター、キャパシター、又は他の個別の回路素子の状態を変換することができる。
【００５５】
[0057]別の例として、コンピューター記憶媒体は、磁気又は光学技術を用いて実施することができる。このような実施例では、プログラムモジュール４１４は、ソフトウェアがその中に符号化されるときに、磁気媒体又は光媒体の物理的状態を変換することができる。これらの変換は、所与の磁気媒体内の特定の位置の磁気特性を変更することを含んでもよい。これらの変換はまた、所与の光媒体内の特定の位置の物理的特徴又は特性を変更して、これらの位置の光学特性を変更することを含んでもよい。物理媒体の他の変換が本明細書の範囲から逸脱することなく可能であり、上述の例は本明細書の説明を容易にするために提供されるにすぎない。
【００５６】
[0058]上記に基づいて、プレゼンテーションプログラムアプリケーション内の遷移を実施するために利用することができるバイナリー遷移ファイルへと遷移のデザインを変換する技術が本明細書において提示されることが理解されるべきである。本明細書に提示される主題は、コンピューターの構造的特徴、方法論的な動作、及びコンピューター読み取り可能な媒体に特有の言葉で説明してきたが、添付の特許請求の範囲で定義される本発明は、必ずしも、本明細書に記載される特定の特徴、行為、又は媒体に限定されるものではないことを理解すべきである。そのようなものではなく、特定の特徴、行為、媒体は、特許請求の範囲を実施する例示的な形式として開示される。
【００５７】
[0059]上述した主題は、例示としてのみ提供され、限定するものとして解釈されるべきではない。図示されて説明された例示的な実施例及び応用に従うことなく、以下の特許請求の範囲に記載される本発明の真の趣旨及び範囲から逸脱することなく、本明細書に記載の主題に対して様々な修正や変更をなすことができる。
【図１】
0005932986.tif 000002
【図２】
0005932986.tif 000003
【図３】
0005932986.tif 000004
【図４】
0005932986.tif 000005