(57)【要約】【解決手段】３Ｄアイコン及びシーンを含む３Ｄモデルと、３Ｄモデルのアニメーションとを定義するアセットを含む装置が提供される。ターゲット組込デバイスのグラフィックエンジンによって動作するデータを処理する、オフライン最適化エンジンが提供される。ターゲット組込デバイスのハードウェアレベルＡＰＩのＡＰＩ機能を直接コールするＡＰＩコールを含むグラフィックエンジンを実行するターゲット組込デバイスの選択機能を、ターゲット組込デバイス以外のコンピュータプラットフォーム上でシミュレートするグラフィックエンジンシミュレータが提供される。【選択図】      図６
2009500750.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、
ターゲットモバイルデバイス以外のコンピュータプラットフォーム内のコンピュータ読取可能媒体組込式３Ｄアプリケーションと、
前記ターゲットモバイルデバイスのグラフィックエンジンに従うデータを、前記コンピュータプラットフォーム上で処理するオフラインエンジンと
を備える装置。
【請求項２】
前記３Ｄアプリケーションは、３Ｄユーザインタフェースアプリケーションを含む請求項１に記載の装置。
【請求項３】
前記オフラインエンジンは、前記ターゲットモバイルデバイスのグラフィックエンジンに従うデータ構造を生成し、準備するデータ構造メカニズムを含む請求項１に記載の装置。
【請求項４】
前記ターゲットモバイルデバイスのハードウェアレベルＡＰＩのＡＰＩ機能を直接コールするＡＰＩコールを含むグラフィックエンジンを実行する前記ターゲットモバイルデバイスの選択機能を、前記コンピュータプラットフォーム上で、  シミュレートするグラフィックエンジンシミュレータを更に備える請求項２に記載の装置。
【請求項５】
装置であって、
グラフィックエンジンを含むモバイルデバイスと、
オフラインコンピュータプラットフォームから生成されたアセットを前記グラフィックエンジンにロードするモバイルデバイスアセットロードメカニズムとを備え、
前記モバイルデバイスアセットロードメカニズムは、使用するデータを準備するために、単一の割当を用いる装置。
【請求項６】
前記アセットは、３Ｄアイコンを含む３Ｄモデルと、前記３Ｄモデルのアニメーションとを定義するアセットを含む請求項５に記載の装置。
【請求項７】
装置であって、
３Ｄアイコン及びシーンを含む３Ｄモデルと、前記３Ｄモデルのアニメーションとを定義するアセットと、
ターゲット組込デバイスのグラフィックエンジンに従うデータを、前記ターゲット組込デバイス以外のコンピュータプラットフォーム上で処理するオフライン最適化エンジンと、
前記ターゲット組込デバイスのハードウェアレベルＡＰＩのＡＰＩ機能を直接コールするＡＰＩコールを含むグラフィックエンジンを実行する前記ターゲット組込デバイスの選択機能を、前記コンピュータプラットフォーム上で、シミュレートするグラフィックエンジンシミュレータと
を備える装置。
【請求項８】
前記３Ｄモデルと、前記３Ｄモデルのアニメーションとを定義するアセットは、システムを定義する３Ｄイメージからエクスポートされたエクスポート済アセットである請求項７に記載の装置。
【請求項９】
前記オフライン最適化エンジンは、パイプラインを含む請求項８に記載の装置。
【請求項１０】
３Ｄユーザインタフェースを定義するスクリプトステートメントを、コンピュータスクリーン入力を介して受け取り、前記３Ｄユーザインタフェースを定義するスクリプトステートメントを表すスクリプトファイルのセットを生成するスクリプト言語インタフェースを更に備える請求項９に記載の装置。
【請求項１１】
与えられた３Ｄオブジェクトを、モバイル電話のインタフェースツールにおいてシーンに関連付け、前記与えられた３Ｄオブジェクトを操作することによって、前記モバイル電話に関する信号の入力及び出力のうちの少なくとも一方を行わせるアイコン関連付けメカニズムを更に備える請求項１０に記載の装置。
【請求項１２】
前記グラフィックエンジンシミュレータは、Ｏｐｅｎ  ＧＬ−ＥＳ、Ｄｉｒｅｃｔ  ３Ｄ  ｍｏｂｉｌｅ、及びＳＫＴ  ＧＩＧＡのうちの１つと互換性を持つグラフィックエンジンをシミュレートする請求項７に記載の装置。
【請求項１３】
前記コンピュータプラットフォームにおいて動作可能であり、与えられたシーンアニメーションについて、ノード位置、方向、及び回転データを含み、前記アニメーションシーンがレンダリングされると表示される各ディスプレイフレームの全てのノードに関連している全てのアニメーションデータを、前記ターゲット組込デバイスのグラフィックエンジンにロードされるアニメーションデータ構造へベーキング（baking）するベーキングメカニズムを更に備える請求項７に記載の装置。
【請求項１４】
前記ベーキングメカニズムは、方向及び回転データを四元数に変換する変換メカニズムと、値のグループをクラスタ化するクラスタメカニズムと、四元数値のグループをパックするパックメカニズムとを含む請求項１３に記載の装置。
【請求項１５】
３Ｄモデルツリー内のノードの処理の順番を確立し、空間を有する処理済ノードを、前記ターゲット組込デバイスへエクスポートするために、ツリーデータバッファ内に配列する階層更新事前処理メカニズムを更に備える請求項７に記載の装置。
【請求項１６】
前記確立されたノードの処理の順番は、前記３Ｄモデルツリーの幅優先横断（breadth-first traversal）順である請求項１５に記載の装置。
【請求項１７】
前記空間を有する処理済ノードはそれぞれ、フォーマットを変更せずに前記ノードの情報を保持するために必要とされるメモリ空間量と関連する空間を有したまま圧縮される請求項１６に記載の装置。
【請求項１８】
事前割当メカニズムを前記コンピュータプラットフォーム内に更に備え、前記事前割当メカニズムは、
エンジンデータ構造を構築するエンジンデータ構造ビルダと、
シミュレートされたエンジンと、
前記シミュレートされたエンジンによってアクセスされ生成されたデータをパックし、構築済エンジンデータ構造をパックするシミュレーションデータパッカと、
パック合計判定部と
を含む請求項７に記載の装置。
【請求項１９】
方法であって、
ターゲットモバイルデバイス以外のコンピュータプラットフォームに３Ｄアプリケーションを格納することと、
前記ターゲットモバイルデバイスのグラフィックエンジンに従うデータを、前記コンピュータプラットフォーム上でオフラインで処理することと
を備える方法。
【請求項２０】
前記３Ｄアプリケーションは、３Ｄユーザインタフェースアプリケーションを含む請求項１９に記載の方法。
【請求項２１】
前記処理することは、前記ターゲットモバイルデバイスのグラフィックエンジンに従うデータ構造を生成し、準備することを含む請求項１９に記載の方法。
【請求項２２】
前記ターゲットモバイルデバイスのハードウェアレベルＡＰＩのＡＰＩ機能を直接コールするＡＰＩコールを含むグラフィックエンジンを実行する前記ターゲットモバイルデバイスの選択機能を、前記コンピュータプラットフォーム上で  シミュレートすることを更に備える請求項２０に記載の方法。
【請求項２３】
方法であって、
グラフィックエンジンを含むモバイルデバイスを準備することと、
オフラインコンピュータプラットフォームから生成されたアセットを前記グラフィックエンジンにロードすることとを備え、
前記ロードすることは、使用するデータを準備するために、単一の割当を用いる方法。
【請求項２４】
前記アセットは、３Ｄアイコンを含む３Ｄモデルと、前記３Ｄモデルのアニメーションとを定義するアセットを含む請求項２３に記載の方法。
【請求項２５】
方法であって、
３Ｄアイコン及びシーンを含む３Ｄモデルと、前記３Ｄモデルのアニメーションとを定義するアセットを格納することと、
ターゲット組込デバイスのグラフィックエンジンに従うデータを、前記ターゲット組込デバイス以外のコンピュータプラットフォーム上で処理することと、
前記ターゲット組込デバイスのハードウェアレベルＡＰＩのＡＰＩ機能を直接コールするＡＰＩコールを含むグラフィックエンジンを実行する前記ターゲット組込デバイスの選択機能を、前記コンピュータプラットフォーム上でシミュレートすることと
を備える方法。
【請求項２６】
前記３Ｄモデルと、前記３Ｄモデルのアニメーションとを定義するアセットは、システムを定義する３Ｄイメージからエクスポートされたエクスポート済アセットである請求項２５に記載の方法。
【請求項２７】
前記コンピュータプラットフォームにおいてベーキングすることを含み、
前記ベーキングすることは、与えられたシーンアニメーションについて、ノード位置、方向、及び回転データを含み、前記アニメーションシーンがレンダリングされると表示される各ディスプレイフレームの全てのノードに関連している全てのアニメーションデータを、前記ターゲット組込デバイスのグラフィックエンジンにロードされるアニメーションデータ構造へベーキングすることを含む請求項２５に記載の方法。
【請求項２８】
前記ベーキングすることは、方向及び回転データを四元数に変換することと、値のグループをクラスタ化することと、四元数値のグループをパックすることとを含む請求項２７に記載の方法。
【請求項２９】
３Ｄモデルツリー内のノードの処理の順番を確立し、空間を有する処理済ノードを、前記ターゲット組込デバイスへエクスポートするために、ツリーデータバッファ内に配列する階層更新事前処理を実行することを更に備える請求項２５に記載の方法。
【請求項３０】
前記確立されたノードの処理の順番は、前記３Ｄモデルツリーの幅優先横断順である請求項２９に記載の方法。
【請求項３１】
前記空間を有する処理済ノードはそれぞれ、フォーマットを変更せずに前記ノードの情報を保持するために必要とされるメモリ空間量と関連する空間を有したまま圧縮される請求項３０に記載の方法。
【請求項３２】
前記コンピュータプラットフォーム内で事前割当を更に実行し、前記事前割当は、
エンジンデータ構造を構築することと、
エンジンをシミュレートすることと、
前記シミュレートされたエンジンによってアクセスされ生成されたデータをパックし、構築済エンジンデータ構造をパックすることと、
パック合計を判定することと
を含む請求項２５に記載の方法。
【請求項３３】
データで符号化された計算機読取可能媒体であって、前記符合化されたデータは、
ターゲットモバイルデバイス以外のコンピュータプラットフォームに３Ｄアプリケーションを格納させ、
前記ターゲットモバイルデバイスのグラフィックエンジンに従うデータを、前記コンピュータプラットフォーム上でオフラインで処理させる
計算機と用いることが可能である計算機読取可能媒体。
【請求項３４】
前記３Ｄアプリケーションは、３Ｄユーザインタフェースアプリケーションを含む請求項３３に記載の計算機読取可能媒体。
【請求項３５】
前記符号化されたデータは、前記ターゲットモバイルデバイスのグラフィックエンジンに従うデータ構造を生成し、準備する処理を更に行わせる計算機と用いることが可能である請求項３３に記載の計算機読取可能媒体。
【請求項３６】
前記符号化されたデータは、前記ターゲットモバイルデバイスのハードウェアレベルＡＰＩのＡＰＩ機能を直接コールするＡＰＩコールを含むグラフィックエンジンを実行する前記ターゲットモバイルデバイスの選択機能を、前記コンピュータプラットフォーム上でシミュレートすることを更にさせる
計算機と用いることが可能である請求項３４に記載の計算機読取可能媒体。
【請求項３７】
データで符号化された計算機読取可能媒体であって、
前記符号化されたデータは、
グラフィックエンジンを含むモバイルデバイスを準備することと、
オフラインコンピュータプラットフォームから生成されたアセットを前記グラフィックエンジンにロードすることと
を更にさせる計算機と用いることが可能であり、
前記ロードすることは、使用するデータを準備するために、単一の割当を用いる計算機読取可能媒体。
【請求項３８】
前記アセットは、３Ｄアイコンを含む３Ｄモデルと、前記３Ｄモデルのアニメーションとを定義するアセットを含む請求項３７に記載の計算機読取可能媒体。
【請求項３９】
データで符号化された計算機読取可能媒体であって、前記符号化されたデータは、
３Ｄアイコン及びシーンを含む３Ｄモデルと、前記３Ｄモデルのアニメーションとを定義するアセットを格納することと、
ターゲット組込デバイスのグラフィックエンジンに従うデータを、前記ターゲット組込デバイス以外のコンピュータプラットフォーム上で処理することと、
前記ターゲット組込デバイスのハードウェアレベルＡＰＩのＡＰＩ機能を直接コールするＡＰＩコールを含むグラフィックエンジンを実行する前記ターゲット組込デバイスの選択機能を、前記コンピュータプラットフォーム上でシミュレートすることと
をさせる計算機と用いることが可能である計算機読取可能媒体。
【請求項４０】
前記３Ｄモデルと、前記３Ｄモデルのアニメーションとを定義するアセットは、システムを定義する３Ｄイメージからエクスポートされたエクスポート済アセットである請求項３９に記載の計算機読取可能媒体。
【請求項４１】
前記符号化されたデータは、前記コンピュータプラットフォームにおいてベーキングさせる計算機と用いることが可能であり、
前記ベーキングすることは、与えられたシーンアニメーションについて、ノード位置、方向、及び回転データを含み、前記アニメーションシーンがレンダリングされると表示される各ディスプレイフレームの全てのノードに関連している全てのアニメーションデータを、前記ターゲット組込デバイスのグラフィックエンジンにロードされるアニメーションデータ構造へベーキングすることを含む請求項３９に記載の計算機読取可能媒体。
【請求項４２】
前記符合化されたデータは、前記ベーキングすることに対して、方向及び回転データを四元数に変換することと、値のグループをクラスタ化することと、四元数値のグループをパックすることと
を更にさせる計算機と用いることが可能である請求項４１に記載の計算機読取可能媒体。
【請求項４３】
前記符合化されたデータは、３Ｄモデルツリー内のノードの処理の順番を確立し、空間を有する処理済ノードを、前記ターゲット組込デバイスへエクスポートするために、ツリーデータバッファ内に配列する 階層更新事前処理を実行させる
計算機と用いることが可能である請求項３９に記載の計算機読取可能媒体。
【請求項４４】
前記確立されたノードの処理の順番は、前記３Ｄモデルツリーの幅優先横断順である請求項４３に記載の計算機読取可能媒体。
【請求項４５】
前記符合化されたデータは、更に、前記空間を有する処理済ノードがそれぞれ、フォーマットを変更せずに前記ノードの情報を保持するために必要とされるメモリ空間量と関連する空間を有したまま圧縮されるようにする計算機と用いることが可能である請求項４４に記載の計算機読取可能媒体。
【請求項４６】
前記符合化されたデータは、前記コンピュータプラットフォーム内で事前割当を更に実行させる計算機と用いることが可能であり、前記事前割当は、
エンジンデータ構造を構築することと、
エンジンをシミュレートすることと、
前記シミュレートされたエンジンによってアクセスされ生成されたデータをパックし、構築済エンジンデータ構造をパックすることと、
パック合計を判定することと
を含む請求項３９に記載の計算機読取可能媒体。
【請求項４７】
装置であって、
ターゲットモバイルデバイス以外のコンピュータプラットフォームに３Ｄアプリケーションを格納する手段と、
前記ターゲットモバイルデバイスのグラフィックエンジンに従うデータを、前記コンピュータプラットフォーム上でオフラインで処理する手段と
を備える装置。
【請求項４８】
前記３Ｄアプリケーションは、３Ｄユーザインタフェースアプリケーションを含む請求項４７に記載の装置。
【請求項４９】
前記処理する手段は、前記ターゲットモバイルデバイスのグラフィックエンジンに従うデータ構造を生成し、準備する手段を含む請求項４７に記載の装置。
【請求項５０】
前記ターゲットモバイルデバイスのハードウェアレベルＡＰＩのＡＰＩ機能を直接コールするＡＰＩコールを含むグラフィックエンジンを実行する前記ターゲットモバイルデバイスの選択機能を、前記コンピュータプラットフォーム上でシミュレートする手段を更に備える請求項４８に記載の装置。
【請求項５１】
装置であって、
グラフィックエンジンを含むモバイルデバイスを準備する手段と、
オフラインコンピュータプラットフォームから生成されたアセットを前記グラフィックエンジンにロードする手段とを備え、
前記ロードすることは、使用するデータを準備するために、単一の割当を用いる装置。
【請求項５２】
前記アセットは、３Ｄアイコンを含む３Ｄモデルと、前記３Ｄモデルのアニメーションとを定義するアセットを含む請求項５１に記載の装置。
【請求項５３】
装置であって、
３Ｄアイコン及びシーンを含む３Ｄモデルと、前記３Ｄモデルのアニメーションとを定義するアセットを格納する手段と、
ターゲット組込デバイスのグラフィックエンジンに従うデータを、前記ターゲット組込デバイス以外のコンピュータプラットフォーム上で処理する手段と、
前記ターゲット組込デバイスのハードウェアレベルＡＰＩのＡＰＩ機能を直接コールするＡＰＩコールを含むグラフィックエンジンを実行する前記ターゲット組込デバイスの選択機能を、前記コンピュータプラットフォーム上でシミュレートする手段と
を備える装置。
【請求項５４】
前記３Ｄモデルと、前記３Ｄモデルのアニメーションとを定義するアセットは、システムを定義する３Ｄイメージからエクスポートされたエクスポート済アセットである請求項５３に記載の装置。
【請求項５５】
前記コンピュータプラットフォームにおいてベーキングすることを更に備え、
前記ベーキングすることは、与えられたシーンアニメーションについて、ノード位置、方向、及び回転データを含み、前記アニメーションシーンがレンダリングされると表示される各ディスプレイフレームの全てのノードに関連している全てのアニメーションデータを、前記ターゲット組込デバイスのグラフィックエンジンにロードされるアニメーションデータ構造へベーキングすることを含む請求項５３に記載の装置。
【請求項５６】
前記ベーキングする手段は、方向及び回転データを四元数に変換する手段と、値のグループをクラスタ化する手段と、四元数値のグループをパックする手段とを含む請求項５５に記載の装置。
【請求項５７】
３Ｄモデルツリー内のノードの処理の順番を確立し、空間を有する処理済ノードを、前記ターゲット組込デバイスへエクスポートするために、ツリーデータバッファ内に配列する階層更新事前処理を実行する手段を更に備える請求項５３に記載の装置。
【請求項５８】
前記確立されたノードの処理の順番は、   前記３Ｄモデルツリーの幅優先横断順である請求項５７に記載の装置。
【請求項５９】
前記空間を有する処理済ノードがそれぞれ、フォーマットを変更せずに前記ノードの情報を保持するために必要とされるメモリ空間量と関連する 空間を有したまま圧縮される請求項５８に記載の装置。
【請求項６０】
前記コンピュータプラットフォーム内で事前割当を実行する手段を更に備え、前記事前割当は、
エンジンデータ構造を構築することと、
エンジンをシミュレートすることと、
前記シミュレートされたエンジンによってアクセスされ生成されたデータをパックし、構築済エンジンデータ構造をパックすることと、
パック合計を判定することと
を含む請求項５３に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の局面は、組込デバイス内で使用される３Ｄコンテンツの開発及び実施を容易にするツールに関連する。本開示の他の局面は、そのような３Ｄコンテンツを最適化するツールに関連する。組込デバイスは、音声、データ、テキスト、及び／又はイメージをキャプチャし、受信し、及び／又は送信するモバイルデバイスでありうる。
【著作権表示】
【０００２】
本特許文献は、著作権保護に従う情報を含んでいる。本特許文献又は特許は、米国特許商標局出願又は記録として現れるし、そうでない場合も、全ての著作権を保持しているので、本著作権所有者は、本特許文献又は特許の如何なる者による複写再生に対しても異議を唱えない。
【関連出願との相互参照】
【０００３】
それぞれ２００５年６月２９日に出願された米国仮出願番号60/696,347、60/696,185、60/696,488、60/696,346、及び60/696,186に対する優先権が主張される。
【背景技術】
【０００４】
組込デバイス内で使用される３Ｄコンテンツの開発及び実施を容易にする様々なシステムが存在する。そのような組込デバイスは、一般に、３Ｄコンテンツを表示するディスプレイを含む。この点に関し、クオルコム株式会社は、ＢＲＥＷ（登録商標）の名の下で多くのソフトウェアを販売している。それは例えば、モバイル電話のような組込デバイス内に３Ｄコンテンツを提供するプログラムを開発するために、与えられたコンピュータプラットフォーム上で動作するＳＤＫを含む。
【発明の開示】
【０００５】
１つの実施形態に従って、３Ｄアイコン及びシーンを含む３Ｄモデルと、３Ｄモデルのアニメーションとを定義するアセット含む装置が提供される。ターゲット組込デバイスのグラフィックエンジンに従うデータを処理する、オフライン最適化エンジンが提供される。ターゲット組込デバイスのハードウェアレベルＡＰＩのＡＰＩ機能を直接コールするＡＰＩコールを含むグラフィックエンジンを実行するターゲット組込デバイスの選択機能を、ターゲット組込デバイス以外のコンピュータプラットフォーム上でシミュレートするグラフィックエンジンシミュレータが提供される。
【発明を実施するための最良の形態】
【０００６】
本開示の限定しない例である実施形態が、図面を参照して、下記詳細説明において記述される。ここでは、同一の参照番号が、幾つかの図面を通じて同一部位を示す。
【０００７】
図面を用いて詳細に説明するように、図１は、３Ｄコンテンツ開発システム９を例示している。図示するシステム９は、１又は複数のデバイスコンテンツ開発プラットフォーム１０と、モバイルデバイス１１とを含む。図示するモバイルデバイス１１は、ディスプレイ１２とキー１３とを含む。図示するディスプレイ１２は、３Ｄアイコン及び３Ｄシーンを含む３Ｄグラフィック仮想インタフェースを表示する。この点に関し、シーン内の所与の３Ｄオブジェクトをモバイルデバイスインタフェースツールに関連付け、所与の３Ｄオブジェクトを操作することによって、モバイルデバイスに関連する情報又は信号の入力か出力のうちの少なくとも１つを起こさせる、アイコン関連付けメカニズムを含む３Ｄアイコンアプリケーションが開発される。モバイルデバイスは、例えばモバイル電話でありうる。その入力は、モバイルデバイスの制御機能、モバイルデバイスの切換状態変化、又は、モバイルデバイスのテキスト入力を含みうる。出力は、モバイルデバイスに関連する状態表示、デバイスの状態、又は、情報表示を含む。３Ｄアイコンを含む３Ｄグラフィック仮想インタフェースを用いた入力又は出力であるこれら情報は、モバイルデバイス１１の状態、イベント、設定、及び／又は動作に関連しうる。
【０００８】
図示するモバイルデバイス１１は、組込デバイスのうちの１つのタイプであり、音声、データ、テキスト、及び／又はイメージをキャプチャ、受信、及び／又は送信する。図示するモバイルデバイス１１は、ディスプレイ１２及びキー１３を含んでおり、モバイルデバイス１１の制御や、モバイルデバイス１１への情報の入力を可能にする。
【０００９】
図示するデバイスコンテンツ開発プラットフォーム１０は、単一又は分散型のプラットフォームであるか、あるいは多数のプラットフォームを含んでいる。図示するプラットフォームセットは、コンピュータプラットフォーム上の対応するウィンドウやスクリーンとの対話及び提供を行う多くのソフトウェアインタフェースを含む。これらは、スクリプトウィンドウ１４ａと、対応するスクリプト言語インタフェース１４ｂとを含む。ソースコードインタフェース１６ｂに対応するソースコードウィンドウ１６ａも提供される。インタフェース１４ｂ，１６ｂの各々は、コンピュータスクリーンを介して制御及び情報を受け取り、かつ、ユーザに情報を表示するための、対応するウィンドウ１４ａ，１６ａを用いることによって操作可能である。
【００１０】
図示するプラットフォームセット１０は更に、ターゲットシミュレータ１９を含むオフライン最適化エンジン１８を備えている。
【００１１】
スクリプト言語インタフェース１４ｂは、ターゲット組込デバイス上の３Ｄユーザインタフェースの構築に資する１又は複数のスクリプトファイル２０を生成し、接続されている。これらスクリプトファイル２０は、定義された３Ｄアイコン及び３Ｄシーンのアニメーションのプログラミングのみならず、３Ｄアイコン及び３Ｄシーン定義のための情報を定義する。
【００１２】
ソースコードインタフェース１６ｂは、ソースコードウィンドウ１６ａとともに、一般に、オリジナル機器製造者（ＯＥＭ）のために与えられたコードで提供されたコマンドを用いて、ソースコードを用いたプログラムの生成を可能にする。
【００１３】
３Ｄモデルシステム３２は、技術者が、３Ｄモデリング及び／又はイメージ処理を実行して、３Ｄユーザインタフェースアセットを生成し、かつ、各フォームに対して、ユーザインタフェースレイアウトを定義し、最終的に３Ｄユーザインタフェースを定義することを可能にするために提供される。エクスポータ３０は、ターゲット組込デバイスへエクスポートされる特定のタイプの３Ｄユーザインタフェースにするために、ファイルのエクスポート、すなわち、３Ｄモデルシステム３２からのファイルを、コンパイル済スクリプト及び／又はソースコード２４によって利用可能なあるタイプのファイルへ変換するために提供される。エクスポータ３０によって実行される「エクスポート」は、結果として得られたコード及びデータを、モバイルデバイス１１のようなターゲット組込デバイスへエクスポートするために提供されているデバイスエクスポートインタフェース４１によって実行されるエクスポートとは異なる。エクスポータ３０は、情報を、コンパイル済スクリプト及び／又はソースコード２４と互換性のある（また、コンパイル済コードに従うグラフィックエンジンによっても利用可能な）ファイルに変換する。一方、デバイスエクスポートインタフェース４１は、コンパイル済スクリプト及び／又はソースコードと、関連するユーザインタフェースアセットと、ユーザインタフェースレイアウトファイルとの、モバイルデバイス１１への物理的なエクスポートを容易にする。
【００１４】
図示する実施形態では、エクスポータ３０は、３Ｄモデリングシステム３２からの情報を、ユーザインタフェースアセット２５，２６，２７を定義するファイルのセット、及び、ユーザインタフェースレイアウト２８を定義するファイルのセットへエクスポートする。具体的には、ユーザインタフェースアセットは、３Ｄモデル２５、アニメーション２６、及びテクスチャ２７を含む。
【００１５】
オフライン最適化エンジン１８は、例えば、図２に例示するようなグラフィックエンジン上で動作するターゲット組込デバイスの選択機能を、ターゲット組込デバイス（すなわち、プラットフォーム１０）以外のコンピュータプラットフォーム上でシミュレートするグラフィックエンジンをシミュレートするターゲットシミュレータ１９を含む。
【００１６】
図２は、例えばモバイルデバイス１１のようなターゲット組込デバイスへ一旦エクスポートされて存在するソフトウェアのアーキテクチャ図を与える。このアーキテクチャは、コンパイル済スクリプト及び／又はソースコード４０（ＡＰＩコールを含む）、管理ＡＰＩ４４、ベース構造及びＡＰＩ４６、及び、ハードウェアレベルＡＰＩ６４を含む。コンパイル済スクリプト及び／又はソースコードは、管理ＡＰＩ４４とベース構造ＡＰＩ４６との各々と直接的に通信する。すなわち、管理ＡＰＩ４４及びベース構造ＡＰＩ４６内のＡＰＩ機能に対してＡＰＩコールを実行する。管理ＡＰＩ４４は、レンダリングＡＰＩ４８、リソース管理ＡＰＩ５０、及び、カメラ管理ＡＰＩ５２を含む。レンダリングＡＰＩ４８は、メモリ管理、レンダ状態、及びその他のブックキーピング（bookkeeping）タスクを担当する。
【００１７】
ベース構造及びＡＰＩ４６は、テクスチャ５４、メッシュ５６、アニメーション５８、カメラ６０、数学及びーティリティ６２を含む。これら構造及びＡＰＩは、すべての幾何、アニメーションストリーム、及びその他の根本的エンジンデータタイプへのフルアクセスを与える。更に、エンジンの残りと独立して使用可能な固定小数点数学及びコンテナ構造が提供されうる。アプリケーションは、幾つか又は全ての機能について、管理ＡＰＩ４４を通じてインタフェースできるように、コンパイル済スクリプト及び／又はソースコード４０内に組み込まれ実現される。それらは、それら自身のリソース管理と、メモリインスタンシエーション技術とを実施し、もって、ベース構造及びＡＰＩ４６と直接的にインタフェースする。更に、ＯＥＭ開発者が、エクスポータとメッシュ最適化ツールとを活用するソースコードを書き込むことを希望するか、そうでない場合には、より高いレベルの機能がどのようにして実現されるかに関する制御を維持することを希望するイベントにおいて、管理ＡＰＩ４４を完全にバイパスすることが可能である。
【００１８】
ベース構造及びＡＰＩ４６は、管理ＡＰＩ４４とともに、最適化エンジンレイヤ４２を備える。ハードウェアレベルＡＰＩ６４は、例えば、Ｏｐｅｎ  ＧＬ−ＥＳソフトウェア、Ｄｉｒｅｃｔ  ３Ｄモバイルソフトウェア、又はＳＫＴ  ＧＩＧＡソフトウェアを含みうる。
【００１９】
図３は、３Ｄモデルファイル７０のデータ構造の１つの実施形態を示す。与えられた３つのモデルファイル７０は、モデル７２を識別する識別子７２と、そのモデルの幾何を描く方式を定義するマテリアルパラメータ７４ａ，７４ｂ，・・・，７４ｃのセットとを含む。例えば、特定のマテリアル７４ａは、特定のテクスチャ及びメッシュのマッピングカラー、特定の透明値、及び特定の白熱値（incandescence value）を有しうる。マテリアル情報７４ａは、これらレンダリングパラメータを含む。マテリアルパラメータ７４ａの与えられたセットに対応したレンダメッシュ７６が提供される。図示した構成では、レンダメッシュ７６は、頂点アレイ７８、テクスチャ座標アレイ８０、及び、レンダグループ８２を含む。レンダグループ８２は、レンダ原始関数のグループ（三角形ストライプ、三角形リスト等）を含む。１又は複数の最新階層８４が提供されうる。これは、ローカル空間からワールド空間へのレンダグループの変換及びアニメーションのために使用される。
【００２０】
図４は、ユーザインタフェースレイアウトファイル９０のデータ構造を概略的に示す。ＵＩレイアウトファイル９０は、ＵＩ定義ファイル９２及びシーンファイル９４を含む。ＵＩ定義ファイル９２は、アセットリンク情報と、ＵＩ状態、状態管理、ある状態遷移の発生に関するコマンド、ＵＩイベントのようなその他の情報とを含む。シーンファイル９４は、リンクノード情報及びシーンノード情報を含む。
【００２１】
シーンノードは、３Ｄモデルにリンクされない全てのノードである。リンクノードは、関連する３Ｄモデルを持つ。リンクノードに関連するこのモデルは、自身のファイルにエクスポートされ、そのリンクノード関連性が、ＵＩ定義ファイル９２内に指定される。スクリプト言語は、ユーザインタフェースアセットとも称される外部生成された３Ｄアセットとともに使用されうるタグのセットを提供するために使用され、図１に示す３Ｄモデルシステム３２のような他のソフトウェアのセットによって生成されうる。この外部ソフトウェアによって生成されたファイルは、エクスポータ３０によってエクスポートされ、その後、スクリプトファイル２０及び／又はソースコード２２からコンパイルされた３Ｄユーザインタフェース開発コード２４と互換性のあるフォーマットに変換される。
【００２２】
図５は、オフライン最適化パイプライン９９の例を示すブロック図である。これは、図１に示すオフライン最適化エンジン１８を実現するために使用することができる。図５に示すオフライン最適化パイプライン９９は、スタートステージ１００で始まる。スタートステージでは、データ検証及び一般的なセットアップが実行され、最適処理の残りの処理が容易になる。スタートステージ１００後、パイプラインは、シーン抽出ステージ１０２に移る。シーン抽出ステージ１０２では、パイプラインは、３Ｄユーザインタフェース内の特定のシーンのためにパイプライン内で使用されるデータを抽出する。その後のステージは、アニメーションベーキング(baking)ステージ１０４、オフラインセットアップステージ１０６、階層更新事前処理ステージ１０８、及び、事前割当ステージ１１０を連続的に含む。
【００２３】
アニメーションベーキングステージ１０４では、抽出されたシーンのアニメーションがベーキング（baking）され、ターゲット組込デバイス内で３Ｄアニメーション更新を実行する際における処理時間が低減される。また、ベーキングされたアニメーションが圧縮され、ターゲット組込デバイス内のアニメーションデータによって占められる空間が低減される。オフラインセットアップステージ１０６では、例えば、ブックキーピング、インデクス構造、データ準備、及びメモリ割当等を含む様々な処理ステップが実行される。
【００２４】
次に続く階層更新事前処理ステージ１０８では、ローカル座標からワールド座標への変換を含む階層更新が、階層ツリーの幅優先横断（breadth first traversal）を実行することによる非再帰的ツリー横断を含むように、抽出されたシーンの階層の各々が（３Ｄモデルやアニメーションについて）、ターゲット組込デバイス内で再配列される。更に、このステージでは、ツリーのノードが圧縮され、ターゲット組込デバイスが、処理中の階層更新を実行することを可能にするために存在する必要があるノードを含む単一の隣接バッファに階層がパックされる。図示する実施形態では、このバッファは、ターゲットデバイスへ一旦エクスポートされると、（図６に示すような）ツリーデータバッファ１２９の形態をとるだろう。
【００２５】
事前割当ステージ１１０では、抽出されたシーンに要求される全てのデータ構造が識別され、ターゲット組込デバイス内で必要とされるメモリ割当が決定される。これは、メモリ割当の全体像（本明細書では、しばしば、パック合計とも称される）となり、単一のメモリ割当コールではない場合に必要とされる多くのメモリ割当コールと比較して、（例えば、ＡＮＳＩ  ＣのＭＡＬＬＯＣコールを用いて）単一のメモリ割当コールを実行するためにターゲット組込デバイス内で使用される。
【００２６】
図７及び図８は、アニメーションベーキング及び圧縮の処理のフローチャートを示す。
【００２７】
図７及び図８に示すフローチャートは、オフラインステップにおいてアニメーション曲線を事前評価することによって、ターゲット組込デバイス上のアニメーション更新を最適化するために提供される。図７及び図８に示す実施形態は（図６に示すように）、ベーキング済アニメーションルックアップテーブル（ＬＵＴ）１２４を生成する。これは、最終的には、ターゲット組込デバイス１２０内のコード及びデータ１２２の一部となる。
【００２８】
図７及び図８に示すベーキング処理では、初期動作２００において、抽出されたシーンから、アニメーションが階層的に抽出される。次の動作２０２では、抽出された階層の各ノードについて、アニメーションストリームが生成される。動作２０４では、生成された全てのアニメーションストリームに対して、サンプリングレートが決定される。この点に関し、ユーザは、具体的なサンプリングレートを選択することができる。一般に、サンプリングレートは、アニメーションフレームが、図１に示すようにエクスポータ３０によってエクスポートされ、アニメーションファイル２６内に格納される標準的なフレームレートよりもはるかに高い。サンプリングレートは、反復処理を用いて調節することができる。例えば、オーサ（author）は、選択された具体的なサンプリングレートを用いて、３Ｄユーザインタフェースアプリケーションのスクリプト結果をシミュレートすることができる。結果として得られるグラフィックの品質が、オーサの予想に対して十分でない場合には、サンプルレートが変更される。
【００２９】
動作２０６では、アニメーション曲線の全て（あるいは、代替実施例ではサブセット）が、選択されたサンプルレートで評価される。この時点で、生のアニメーションデータストリームが得られる。それは、決定されたサンプルレートにおいてベーキングされる。このデータは、オフラインプラットフォームに格納される。
【００３０】
一例として、この生のアニメーションデータを、インデクスアレイ（図示せず）内に格納することができる。インデクスアレイ内の各ロウには、例えば、インデクスルックアップテーブル（ＬＵＴ）（図示せず）を用いて決定されたインデクス値をアレイ内に入力することによりアクセスすることができる。インデクスアレイは、各ロウ内に、属性のセットを格納する。各ロウは、特定のノード及びフレームに関連付けられる。これらの属性は、例えば、ｘ，ｙ，ｚ，ｒ１１、ｒ１２，ｒ１３，ｒ２１，ｒ２２，ｒ２３，ｒ３１，ｒ３２，ｒ３３、及び色でありうる。ｘ属性，ｙ属性、及びｚ属性は、シーンのローカル座標であるか、シーンの一部でありうる。属性ｒ１１，ｒ１２，ｒ１３，ｒ２１，ｒ２２，ｒ２３，ｒ３１，ｒ３２，ｒ３３は、例えば３×３行列に対応する回転値及び方向値である。
【００３１】
次の動作２０８では、（ベーキングされた生のアニメーションデータストリームから）各フレーム／ノード組み合わせのための回転値及び方向値が、四元数に変換される。四元数は、例えば、オイラー角及び行列を用いる代わりに、回転と方向とを表す別の方法である。四元数は、４つの値（α、β、γ、ω）によって表わされる。従って、この例では、９つの回転値及び方向値が、４つの四元数値に変換される。
【００３２】
次の動作２１０では、ベーキングされた生のアニメーションデータストリームの回転及び方向から変換された四元数内で、各ユニーク値についてクラスタが生成される。例示する実施形態では、クラスタは、座標（ｘ，ｙ，ｚ）と四元数値（α、β、γ、ω）とのローカルセットを用いて生成される７つの要素からなる値である。１つの局面では、７つの要素からなる値がユニークである場合、クラスタが生成される。従って、ベーキングされた生のアニメーションデータ内に、（異なるフレーム値とノード値との各組み合わせに対応して）Ｍ個のロウからなるデータが存在するのであれば、Ｎ個のクラスタが存在する。ここでＮは、ユニークではない７個の要素からなる値であるので、Ｍよりも小さい。クラスタは、クラスタベクトル（ｘ、ｙ、ｚ）及びクラスタ四元数（α、β、γ、ω）からなる。
【００３３】
次の動作２１２では、与えられたクラスタのペアについて、これらクラスタ間のエラーが、与えられたしきい値よりも小さいかに関して判定がなされる。各クラスタには、エラー値が提供される。一例として、このエラー値は、各クラスタの中点値でありうる。
【００３４】
例えば、クラスタペアは、２つの空間、すなわち、（１）  直交（cartesian）空間（ｘ，ｙ，ｚ）、及び（２）四元数空間内の７つの要素に関する演算によって識別されうる。直交空間では、任意の２つのクラスタベクトル間の中間点の大きさは、中点値ｍｐｖ１となる。同様に、四元数空間では、任意の２つのクラスタ四元数間の中点アーク（arc）距離の大きさは、中点値ｍｐｖ２となる。
【００３５】
動作２１２において、エラーがしきい値よりも小さいと判定された場合には、動作２１４に進み、クラスタのペアが新たなクラスタに合成され、新たな最小エラー値（すなわち、中点値）が、その新たに合成されたクラスタのために計算される。処理は、別のペアのクラスタを評価する動作２１２に戻る。
【００３６】
このクラスタリング処理は、ユニークなフレーム−ノードペアに対応するデータのロウの数を低減する方法と考えることができる。これによって、アニメーションデータを有する複数のユニークなフレーム−ノードペア（一般に、変換情報、方向及び回転情報）が、同じセットのクラスタデータを持つことができる。
【００３７】
どのクラスタのペアも、動作２１２の条件を満足しなくなった場合には、処理は動作２１６に進む。この時点では、与えられたクラスタのための与えられたアニメーション値のセットについて、四元数値（一般に、４つの異なる値）が、（例えば３２ビットのようなＮビットからなる）単一のバイナリワードにパックされる。
【００３８】
動作２１６の後、圧縮処理が終了する。
【００３９】
クラスタは、アニメーション再生精度を高めるために、あるいはファイルサイズを低減するために、大きくされることも、小さくされることもある。一旦ストリームが圧縮されると、アニメーションストリーム内の個々の値が、単一の隣接メモリバッファ内にバッファされる。このメモリバッファイは、モバイルデバイスのキャッシュライン特性のために配列され最適化される。
【００４０】
一旦アニメーションストリームが圧縮されると、アニメーションストリーム内の個々の値が、単一の隣接アニメーション値メモリバッファ１２８内にパックされる。これは最終的には、図６に示すように、ターゲット組込デバイス１２０へエクスポートされる。
【００４１】
図６に示すように、ターゲットデバイスの与えられた処理が、アニメーション値バッファ１２８内のデータにアクセスするために、各ユニークなフレーム−ノード組み合わせについて、バッファ１２８内の対応するアニメーションデータを見つけ出すオフセット値を出力するアニメーションルックアップテーブル（ＬＵＴ）１２４が提供される。
【００４２】
図９は、３Ｄオブジェクト階層２２０の概略図である。図示するオブジェクト階層２２０は、二本足（biped）であり、ルートノードであるウエスト（waist)含む。右上（ＵＲ）レッグ（leg）、左上（ＵＬ）レッグ、及びチェスト(chest)はそれぞれウエストに接続されている。これらノードの各々は、ウエストノードの子ノードである。ＵＲレッグには、右下（ＬＲ）レッグと右下（ＬＲ）フット(foot)とがそれぞれ接続されている。これら各ノードは、ＵＲレッグノードの子コードであり、ウエストノードの孫ノードである。ＵＬレッグには、左下（ＬＬ）レッグと左下（ＬＬ）フットとがそれぞれ接続されている。これら各ノードは、ＵＬレッグの子ノードであり、ウエストノードの孫ノードである。チェストノードの子ノードであり、ウエストノードの孫ノードであるヘッド、右上（ＵＲ）アーム、及び左上（ＵＬ）アームの各ノードが提供される。
【００４３】
図９に例示される階層が、幅優先横断順でノードが処理される再帰的アルゴリズムを用いて更新されるのであれば、これらノードは、第１に、ウエストノード、第２に、ＵＲレッグノード、第３に、ＵＬレッグノード、第４に、ＬＲレッグノード、第５に、ＬＬレッグノード等の順に処理されるだろう。対照的に、図９に示す実施形態では、幅優先横断の順番が使用される。ここでは、第１にウエストノードが処理され、第２にＵＲレッグノードが処理され、第３にＵＬレッグノードが処理され、第４にチェストノードが処理される。ノードが処理される順番は、関連するノードの各々の左側の数字によって示されている。従って、次の深さレベルに下がってノードが処理される前に、ウエストノード、ＵＲレッグノード、ＵＬレッグノード、及びチェストノードが、第１、第２、第３、及び第４番目にそれぞれ処理される。これらノードの処理は、最終的には、ターゲット組込デバイス内でなされるが、これらノードが処理される順番は、ターゲット組込デバイスのヒープメモリ内に最終的に形成されるツリーデータバッファ１２９（図６に示す）の隣接部分に格納される順番を制御することによって制御することができる。従って、連続したメモリ量と、ノードをメモリ内にターゲット組込デバイス内で最終的に処理される特定の順番で格納することとを考慮したデータ構造２２１が、（図５に示すような階層更新事前処理ステージ１０８によってオフラインで）提供される。
【００４４】
図示するように、特定階層の、処理中の階層を更新するために、ターゲット組込デバイス１２０内のコード及びデータ１２２の一部として、幅優先階層更新メカニズム１３０が提供される。階層に関連付けられたデータが、アニメーションデータバッファ１２８のどこにあるかを判定するために、幅優先階層更新メカニズム１３０が、ベーキング済アニメーションＬＵＴ１２４によって与えられるオフセット値に従ってデータを見つける。
【００４５】
幅優先階層更新メカニズム１３０が一旦、アニメーションデータバッファ１２８内のデータを見つけると、復号メカニズム１２６（データを均質な変換マトリクスに変換すること）によってデータが復号され、ノードが、ツリーデータバッファ１２９内に格納されたように、ツリーの構造毎、すなわち、図９の例において、第１にウエストノード、第２にＵＲレッグノード、第３にＵＬレッグノード等のように連続して処理される。更新されたアニメーションデータはその後、ツリーデータバッファ１２９内にデータのために備えられた保持空間内に、ノード毎に格納される。
【００４６】
幅優先アプローチは、与えられたツリーのノードを、最初にルートノード、次に子１、子２、・・・子Ｎ、孫１、孫２、・・・孫Ｍ、ひ孫１、・・・の順に処理する。
【００４７】
図９に示す例では、キャッシュライン境界が、少なくとも、２つの隣接するノードのために必要なメモリ量に及んでいる。従って、ターゲット組込デバイス内に提供されたキャッシュが２つのラインを持っているのであれば、１つのキャッシュミスのみが、図９に示す例における第１乃至第４のノードの階層を処理、すなわち更新することが要求されよう。１つのキャッシュライン境界の空間内に２つのノードを格納する能力を容易にするために、個々のノードは、例えば、図５に示すようなベーキングアニメーションステージ１０４によって提供されるベーキングアニメーションの結果である圧縮を用いて圧縮されうる。
【００４８】
深さ優先横断順を含む階層更新は、一般に、多くのキャッシュミスをもたらすだろう。この理由の中には、階層のノードが、隣接したメモリ内に格納されないという事実がある。更に、この横断（traversal）は、各ノード、その親ノードのそれぞれのためのデータについて再帰的であるので、そのノードの処理及び更新のために、最終的なルートノードに対する全ての経路が必要とされる。
【００４９】
例えば、図９に示される例に関連して、階層を更新することに関する議論の目的のために、更新とは、ターゲット組込デバイスのディスプレイ上にレンダする前に、そのローカル座標からワールド座標へノードを変換することを称する。
【００５０】
図９に示す例において、ノードデータを体系化するアプローチの長所は、階層情報を更新するためにターゲットデバイス内のスタックを用いる必要がないことである。更に、ターゲット組込デバイスのヒープメモリのスタックをエミュレートする必要も無い。更に、ターゲット組込デバイスのヒープメモリで使用される全体空間が最小化され、もって、より大きな階層ツリーを収納することができる。
【００５１】
図６に示すように、幅優先階層更新メカニズム１３０によってノードデータが一旦更新されると、レンダメカニズム１３５によるレンダリングの準備ができる。
【００５２】
図１０は、事前割当処理のフローチャートを示す。第１の動作２５０では、オフライン最適化パイプライン９９において、各アセット、及び、生成された各データ構造に対して、この点までメモリが割り当てられる。動作２５２では、ターゲット組込デバイス内にある任意のエンジンデータ構造が、スクリプトを実行し必要な全ての動作を実行する場合に、構築される。動作２５４では、ターゲットシミュレータ１９が、ターゲットデバイスをシミュレートする。これは例えば、シミュレートされたターゲット組込デバイス内のキャッシュメモリ、スタック、及びヒープのエミュレーションを含む。ターゲットシミュレータ１９は更に、３Ｄプログラム内のアセットの各々について、エンジンの全てのデータ構造をシミュレートする。
【００５３】
動作２５６では、シミュレートされたエンジンによってアクセスされた、あるいは、シミュレートされたエンジンによって生成されたデータの全てが、エンジンアクセス又は生成の順に、「シミュレートされた」ヒープメモリの隣接部分にパックされる。動作２５８では、ターゲット組込デバイス内のエンジンに役立つメタデータ構造が生成されうる。更に、事前割当処理の結果生じる割当データが格納される。一般に、割当データは、動作２５６においてパックされた隣接メモリのサイズと、合計メモリ空間とを含む。
【００５４】
図５に示すようなオフライン最適化パイプライン９９の事前割当ステージ１１０で実行される図１０に示す割当処理によって、最終的には、事前割当処理の結果として生成されるメタデータ及びパック合計データ１３８に従って、ターゲット組込デバイス１２０において、メモリ割当及びコピーメカニズム１３６によるメモリ割当及びコピー動作が行われる。具体的には、３Ｄアプリケーションの実行開始時に、事前割当処理におけるパック動作２５６中にパックされた全データの単一のメモリコピーと同様に、単一のメモリ割当が、ターゲット組込デバイス１２０のメモリ１３４内でなされる。その後、オフラインで構築された任意のエンジンデータ構造がメモリにコピーされ、ターゲット組込デバイスで用いられるデータの準備に必要な単一のメモリコピー、及び、単一の割当が得られる。これは、ターゲット組込デバイスに必要な割当を最小化する。更に、ターゲット組込デバイスの起動及び初期化の時間が最小化される。なぜなら、パックされたデータの全てが、ターゲット組込デバイスのメモリに一度にロードされるからである。
【００５５】
本明細書の図面で示す構成要素の各々によって実行される処理は、汎用コンピュータ、及び／又は、専用の処理コンピュータによって実行されうる。そのような処理は、単一のプラットフォーム、分散処理プラットフォーム、あるいは個別のプラットフォームによって実行されうる。更に、そのような処理は、特別目的のハードウェアの形態で、あるいは、汎用コンピュータによって実行されるソフトウェアの形態で実施することができる。そのような処理で取り扱われるか、あるいは、そのような処理の結果として生成されるあらゆるデータは、任意のタイプのメモリに格納することができる。一例として、そのようなデータは、例えば、与えられたコンピュータシステム又はサブシステムのＲＡＭ内のテンポラリメモリに格納されうる。更に、あるいはその代替例として、そのようなデータは、例えば磁気ディスク、再書込可能光ディスク等のような長期的な記憶デバイスに格納されうる。本明細書の開示の目的として、コンピュータ読取可能媒体が、そのような構造及びデータのハードウェアや回路の代表例のみならず、そのようなメモリ技術を含む任意の形態のデータ記憶メカニズムを備えることができる。処理は、任意の計算機読取可能媒体及び／又は集積回路内で行われうる。
【００５６】
最初に提示された請求項、及び、補正されうる請求項は、変形、代替、修正、改良、等価物を含む。また、例えば、現在予期されていないか、価値を認められていないもの、更には、出願人／特許権者及びその他の人によって想起されうるものを含む本明細書で開示された実施形態及び教示の実質的な等価物をも含む。
【図面の簡単な説明】
【００５７】
【図１】図１は、１又は複数のデバイスコンテンツ開発プラットフォームのブロック図である。
【図２】図２は、ターゲット組込デバイス内のソフトウェアアーキテクチャの実施形態を例示するブロック図である。
【図３】図３は、３Ｄモデルファイルのデータ構造の一例を示す概略図である。
【図４】図４は、ユーザインタフェース（ＵＩ）レイアウトファイルのデータ構造の一例を示す概略図である。
【図５】図５は、オフライン最適化パイプラインのブロック図である。
【図６】図６は、ターゲット組込デバイス内においてコード及びデータを選択する概略図である。
【図７】図７は、アニメーションを作成する処理のフローチャートを図示する。
【図８】図８は、アニメーションをベーキング（baking）する処理のフローチャートを図示する。
【図９】図９は、３Ｄモデル及びアニメーションデータについて階層更新前処理を行なう処理を例示するブロック図である。
【図１０】図１０は、組込デバイス内で要求されるメモリ空間を決定する事前割当処理のフローチャートである。
【図１】
2009500750.tif 000003
【図２】
2009500750.tif 000004
【図３】
2009500750.tif 000005
【図４】
2009500750.tif 000006
【図５】
2009500750.tif 000007
【図６】
2009500750.tif 000008
【図７】
2009500750.tif 000009
【図８】
2009500750.tif 000010
【図９】
2009500750.tif 000011
【図１０】
2009500750.tif 000012
【国際調査報告】
2009500750.tif 000013
2009500750.tif 000014
2009500750.tif 000015