JP2006252558A - 拡張コンテンツビルドパイプラインのためのシステムおよび方法 - Google Patents
拡張コンテンツビルドパイプラインのためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2006252558A JP2006252558A JP2006064581A JP2006064581A JP2006252558A JP 2006252558 A JP2006252558 A JP 2006252558A JP 2006064581 A JP2006064581 A JP 2006064581A JP 2006064581 A JP2006064581 A JP 2006064581A JP 2006252558 A JP2006252558 A JP 2006252558A
- Authority
- JP
- Japan
- Prior art keywords
- content
- build
- format
- metadata
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
Abstract
【課題】拡張コンテンツビルドパイプラインのためのシステムおよび方法を提供する。
【解決手段】例示的なコンテンツビルドパイプラインは、様々なゲームコンテンツエディタおよびツールを使用して生成されるゲームコンテンツへの参照を含む標準XIFファイルファーマットを使用するコードビルド処理に基づいている。この標準ファイルフォーマットは、コンテンツビルドが必要とする情報をメタデータとして含むことができ、それにより、標準コンテンツビルドパイプラインが可能になる。これは、複数のゲーム専用フォーマットに基づき、したがってエクスポータを使用する必要のあるのものとは異なる。ただし、ゲームエンジン開発者は、その後、XIFファイルを、それらの特定のゲームエンジンフォーマットに最適化することができる。
【選択図】図3
【解決手段】例示的なコンテンツビルドパイプラインは、様々なゲームコンテンツエディタおよびツールを使用して生成されるゲームコンテンツへの参照を含む標準XIFファイルファーマットを使用するコードビルド処理に基づいている。この標準ファイルフォーマットは、コンテンツビルドが必要とする情報をメタデータとして含むことができ、それにより、標準コンテンツビルドパイプラインが可能になる。これは、複数のゲーム専用フォーマットに基づき、したがってエクスポータを使用する必要のあるのものとは異なる。ただし、ゲームエンジン開発者は、その後、XIFファイルを、それらの特定のゲームエンジンフォーマットに最適化することができる。
【選択図】図3
Description
本発明は一般に、ソフトウェア開発に関し、より詳細には、コンピュータゲームなどの対話式マルチメディアソフトウェア向けコンテンツの開発、統合、および編集に関する。
コンピュータゲームの推進力は、ゲームコンテンツそれ自体、すなわち、レベル設計、3Dモデル、サウンド、アニメーション、映画、テクスチャ、ゲーム脚本(ゲームがどのように振舞うか)などに向かっている。ゲームコンテンツはまた、より巨大化し複雑化し続けている。これは、どんな対話式マルチメディアアプリケーションに対しても当てはまる。ゲームが成功するには、一流のコンテンツを提供する必要があり、それを提供する最も良い方法は、アーティストおよび設計者が新しい資産を可能な限り容易かつ迅速に作成し、プレビューし、追加し、手直しすることができるように、コンテンツパイプラインを最適化することである。
コンテンツパイプラインとは、構想から始まってゲームに投入できるようになるまでにすべてのゲーム資産がたどる経路である。ゲーム資産(またはコンテンツ)には、コード以外のすべてのもの、すなわち、モデル、テクスチャ、マテリアル、サウンド、アニメーション、映画、脚本などが含まれる。パイプラインを通る過程で、資産は、変換され、最適化され、粉々に切り刻まれ、あるいは組み合わされたりする可能性がある。最終的に、その資産は、ゲームの最終バージョンとして出荷される形になる。
コンテンツパイプラインを定義する際に考慮すべき第1の問題は、その効率性である。アーティストおよび設計者の大編成チームがゲームコンテンツを絶えず作成し手直しするにあたり、コンテンツパイプラインがクリティカルパスとなる。プロジェクトの過程で、パイプライン内でわずかに効率が下がっても、会社にはすぐに数千時間もの無駄な工数のコストがかかる。あるいは、コンテンツ作成者が自分たちの仕事を頻繁にプレビューしないと、ゲームの品質全体が悪影響を受ける。
考慮すべき他の主要な点は、強靭性(robustness)である。コンテンツパイプラインが破断した場合、すぐにプロジェクト全体が危うくなり得る。パイプラインが修繕されるのを待って30人の人員を遊ばせておくことも、あるいはそれに対処し、その結果、作業の半分を無駄にすることもできない。何が起ころうと、パイプラインは常に正しく働かなければならない。
コンテンツビルドパイプラインがどのように見えるかは、しばしばプロジェクトによって異なる。極端な場合、一部のプロジェクトでは、パイプラインは最小限で非公式なものである。すなわち、資産はツールからエクスポートされ、直接ゲームにロードされる。単純なゲームの場合はそれで十分なことがあるが、通常大きなプロジェクトにおいては、それではうまくいかない。次のようないくつかの事項を考慮する必要がある。例えば、多数の人員が作業できるようにするためにファイルをどこに格納するか、複数プラットフォーム用の資産をどのように扱うか、リソースのフォーマットをどのようにすれば簡単に変更することができるか、追加処理をリソースにどのように適用することができるか、についてである。
他方では、パイプラインは、非常に奥深く手の込んだものであり得る。ゲーム向けの現在のコンテンツビルドシステムを形にするのに伴う大きな問題は、そのシステムが通常、いくつかのゲーム専用ファイルフォーマットに基づいていることである。ゲームエンジンが専用ファイルフォーマットを必要とするので、ゲームでは、そのコンテンツビルドシステム全体を、この専用ファイルフォーマットを使用するように適合させている。ゲームファイルフォーマットに対してどんな変更があっても、パイプライン内に大きな混乱が起こり、それによってターンアラウンドタイムが大きな影響を受けてしまう。
この点に関連して、より効率的で、強靭で、拡張可能で、標準化されたコンテンツビルド処理を提供するシステムおよび方法が求められている。
当技術分野の上記の欠点に鑑みて、本発明では、拡張コンテンツビルドパイプライン(extensive content build pipeline)用のシステムおよび方法を提供する。対話式マルチメディアソフトウェアアプリケーションのコンテンツ用のソフトウェアビルドを可能にする方法が提供される。この方法は、標準化ファイルフォーマットに従って、前記コンテンツに関する情報を含む少なくとも1つのファイルを作成することを含む。前記情報は、同じ前記コンテンツを使用する、異なる複数の対話式マルチメディアソフトウェアアプリケーションに対して、前記コンテンツのソフトウェアビルドを実施するために必要なものである。また、対話式マルチメディアソフトウェアアプリケーションのコンテンツ用のビルドでは、コンテンツを、複数の対話式マルチメディアソフトウェアアプリケーションのそれぞれが受け入れることのできるように、複数の対話式マルチメディアソフトウェアアプリケーションのそれぞれに専用のフォーマットに変換する。さらに、コンテンツを、前記コンテンツに関する標準化ファイルフォーマットの前記情報を使用して、複数の対話式マルチメディアソフトウェアアプリケーションのうちの少なくとも1つに最適化された少なくとも1つのフォーマットに変換することもできる。本発明のその他の利点および特徴については、以下に説明する。
本発明の様々な実施形態の完全な理解が得られるように、特定のいくつかの詳細について、以下の説明および図面に記述する。コンピューティングおよびソフトウェア技術にしばしば関連する、周知のいくつかの詳細については、本発明の様々な諸実施形態を不必要にわかりにくくするのを避けるために、以下の開示では記述しない。さらに、以下に述べる詳細の1つまたは複数がなくても、本発明の他の諸実施形態を実施できることが、当業者には理解されよう。最後に、以下の開示におけるステップおよび順序を参照して様々な方法を説明するが、そのような説明は、本発明の諸実施形態を明確に実装するためのものであり、これらのステップおよびステップの順序は、この発明を実施するのに必要なものと見なすべきではない。
(概要)
拡張コンテンツビルドパイプラインのためのシステムおよび方法が提供される。例示的なコンテンツビルドパイプラインは、様々なゲームコンテンツエディタおよびツールを使用して作成されたゲームコンテンツに関連し、かつ、それを参照するメタデータを含む標準XIFファイルフォーマットを使用するコードビルド処理に基づいている。メタデータは、たとえば、様々なバイナリコンテンツファイル用の、ルーティング、コンテキスト、および適切な読取り機構を含むことができる。したがって、標準XIFファイルは、バイナリコンテンツデータ自体を含む必要がない。この標準化ファイルフォーマットは、コンテンツビルドで必要とされる情報を含むことができるので、このフォーマットによって標準コンテンツビルドパイプラインが可能になる。これは、複数のゲーム専用フォーマットに基づくのとは異なる。しかし、ゲームエンジン開発者はその後、XIFファイルをその特定のゲームエンジンフォーマットに合わせて最適化することができる。
拡張コンテンツビルドパイプラインのためのシステムおよび方法が提供される。例示的なコンテンツビルドパイプラインは、様々なゲームコンテンツエディタおよびツールを使用して作成されたゲームコンテンツに関連し、かつ、それを参照するメタデータを含む標準XIFファイルフォーマットを使用するコードビルド処理に基づいている。メタデータは、たとえば、様々なバイナリコンテンツファイル用の、ルーティング、コンテキスト、および適切な読取り機構を含むことができる。したがって、標準XIFファイルは、バイナリコンテンツデータ自体を含む必要がない。この標準化ファイルフォーマットは、コンテンツビルドで必要とされる情報を含むことができるので、このフォーマットによって標準コンテンツビルドパイプラインが可能になる。これは、複数のゲーム専用フォーマットに基づくのとは異なる。しかし、ゲームエンジン開発者はその後、XIFファイルをその特定のゲームエンジンフォーマットに合わせて最適化することができる。
第1に、様々なコンテンツ開発エディタおよびゲーム開発ツール、ならびにそれらの相互関係および様々なゲームエンジンとの関係を説明し、併せて、現在、コンテンツビルドが一般に複数のゲーム専用フォーマットに基づき「エクスポート」処理を使用してどのように実施されるかを説明する。これについては、以下のセクション「ゲームコンテンツおよび典型的なビルドパイプライン」に示す。第2に、様々なゲームエンジン用の標準コンテンツビルドパイプラインを可能にするための、拡張コンテンツビルドパイプラインおよびそこで使用する標準化ファイルフォーマットに関する説明および例を、セクション「拡張コンテンツビルドパイプラインおよび標準化ファイルフォーマット」に示す。第3に、2つの代替実施形態を、セクション「代替実施形態」に記載する。そのセクションでは、特定の必要性のためにある種のトランスフォーマを再使用または省略する特定のパイプラインを提供するために、標準コンテンツパイプラインがパイプラインの開始点で分岐している。最後に、本明細書に記載するシステムおよび方法と共に使用するのに一般に適していると認められるコンピューティングおよびネットワーク環境に関して説明する。例示的なコンピューティングおよびネットワーク化された環境に関連する図面のマテリアルは一般に例示のためのものであるので、対応する説明は、この明細書の最後の「例示的なコンピューティングおよびネットワーク環境」と題するセクションに委ねる。
(ゲームコンテンツおよび典型的なビルドパイプライン)
まず図1を参照すると、様々なコンテンツ開発エディタおよびゲーム開発ツール、ならびにそれらの相互関係および様々なゲームエンジンとの関係を一例として示すブロック図が示してある。
まず図1を参照すると、様々なコンテンツ開発エディタおよびゲーム開発ツール、ならびにそれらの相互関係および様々なゲームエンジンとの関係を一例として示すブロック図が示してある。
例示の目的で「ゲーム」および「ゲームコンテンツ」について言及しているが、本明細書に記載するコンテンツおよびビルド処理は、従来のビデオゲームアプリケーションに限定される必要はなく、どんな対話式マルチメディアプログラムまたはアプリケーションにも適用可能である。したがって、「ゲーム」を、コンピューティング環境における任意の対話式マルチメディアプログラムまたはアプリケーションとして定義する。
様々なゲームエンジン2を表すブロック、およびゲーム用のコンテンツ作成ツール、エディタ、およびビルドツールを表す様々なブロックが示してある。これらは、アニメーションコンテンツツール3、3Dエディタ4、コンバータ6、メッシュ/マテリアルコンテンツ8、映画コンテンツツール10、ゲーム資産変換ツール12、ユーザインターフェース(UI)作成/メニューツール14、オーディオコンテンツツール16、リアルタイムレンダラ18、ワールド/レベルエディタ19およびシミュレーションテクノロジーツール20、マルチプレーヤテクノロジーツール22、およびビルド処理ツール24を含んでいる。ゲームエンジン2、たとえばValve Half Life 2(登録商標)またはEpic Unreal(登録商標)は、入力として、様々なエディタおよびツールから出力されるコンテンツおよび資産を受け取る。しかし、コンテンツビルド処理がこのコンテンツを受け取る任を負い、それをゲームエンジン2で実行することが可能なフォーマットに変換する。一部のコンテンツは、追加のツールまたはエディタによって処理してから、コンテンツビルド処理を介してゲームエンジンで受け取ることができる。たとえば、Alias Maya(登録商標)またはDiscreet 3D Studio Max(登録商標)などの3Dエディタ4からのコンテンツを、メッシュ/マテリアルコンテンツ8、たとえばPixologic Z−Brush(登録商標)に入力して細部を追加し、その後、Adobe Photoshop(登録商標)で作成されたテクスチャを適用することができる。また、3Dエディタ4からのコンテンツを、ゲーム資産変換ステップ12を通過させてから、ビルド処理を施し、ゲームエンジン2で実行することもできる。同様に、映画コンテンツでは、Kaydra MotionBuilder(登録商標)、またはOC3 Impersonator(登録商標)からのアニメーションコンテンツ3を、AVID Xpress(登録商標)またはPixar PRMan(登録商標)などの映画コンテンツツールを介して渡すことができる。その後、これをたとえばBINK(登録商標)を使用して映画に圧縮する。この場合、ビデオカード(ATI(登録商標)またはNVidia(登録商標))またはPixomatic(登録商標)を使用してゲームエンジン2用の映画をレンダリングする。
次に図2を参照すると、ゲーム専用の中間ファイルフォーマットおよびカスタムエクスポータを必要とする、図1に記載したコンテンツのビルドが可能な、コンテンツビルドパイプラインを示すブロック図が示してある。一例として、コンテンツ作成者を示す。モデル作成者26、アニメーション作成者28、およびオーディオコンテンツ作成者30はそれぞれ、おそらくいくつかの様々なコンテンツ作成ツールおよびエディタを用いて、コンテンツを作成する。たとえば、モデル作成者はDiscreet 3D Studio Max(登録商標)を使用し、アニメーション作成者もDiscreet 3D Studio Max(登録商標)を使用することがあり、オーディオコンテンツ作成者はSonic Foundry SoundForge(登録商標)を使用することがある。各コンテンツ作成ツールは、独自の専用ネイティブファイルフォーマットを生成する。たとえば、Discreet 3D Studio Max(登録商標)は、.maxフォーマット38、40でファイルを生成する。また、オーディオコーデック36は、そのネイティブフォーマットでファイルを生成し、そのファイルは、Sonic Foundry SoundForge(登録商標)などのオーディオコーデックを使用する任意の様々なツールを使用して生成することができる。ビルドパイプライン44は、様々なフォーマット38、40、42でこのコンテンツを受け取り、たとえばMicrosoft Xbox(登録商標)47またはMicrosoft Windows(登録商標)オペレーティングシステム48を実行するPCなど特定のゲームプラットフォーム上で実行する、特定のゲームエンジン46で実行することが可能なフォーマットに変換する任を負う。
ゲームエンジン46が専用ファイルフォーマットを必要とするので、ゲームでは、そのコンテンツビルドシステム全体を、この専用フォーマットを使用できるように適合させる。ゲームファイルフォーマットに対してどんな変更があっても、ビルドパイプライン44に大きな混乱が起こる。コンテンツ作成者26、28、30は、当然ながらその仕事にとって最良のツールを使用するつもりである。これらのツールにはその独自の専用ファイルフォーマットがあるので、現在ゲームスタジオでは、コンテンツ作成ツールから情報を取り出し、その情報を自分独自のゲーム専用フォーマットにエクスポートする「エクスポート」処理49を作成する必要がある。これらのエクスポート処理の例が、Discreet 3D Studio Max(登録商標)エクスポータ50、52およびオーディオコーデックエクスポータ54として図2に示してある。
ゲーム専用中間ファイルフォーマットが確立された後、ゲームコンテンツビルドシステムでは、実際にビルドを実施できるようにパイプライン62を構築する。ここでは、様々なコンテンツ(または資産)タイプに対して個々に、たとえばテクスチャ圧縮トランスフォーマ56、詳細レベル(LOD)トランスフォーマ58、およびサウンドトランスフォーマ60など、各ゲーム専用フォーマット用のトランスフォーマを使用して、エクスポータ50、52、54から生成されたゲーム専用中間ファイルフォーマットを操作する。トランスフォーマは基本的に、ゲーム用に作成されるようにゲームデータを操作する1本のコードである。トランスフォーマの数およびタイプは非常に様々であり、ビルドパイプライン44には任意の数のトランスフォーマがあってよい。その後、ゲームエンジンBLOBクリエータトランスフォーマ66が、そのコンテンツを、専用ゲームエンジン46が受け入れることになる最終入力フォーマットに変換する。ゲームエンジン46は、専用入力フォーマットで動作し、このフォーマットは、ツール32、34、36に送り返される。現在、これらのビルドシステムはゲームごとに開発される傾向にあり、通常は小さなユーティリティと組み合わされ、コードビルドの機能のいくつか(たとえば、ロギング、プロファイル作成、およびデバッグ)が欠落している。
(拡張コンテンツビルドパイプラインおよび標準化ファイルフォーマット)
次に図3を参照すると、本発明による、図1に記載したコンテンツのビルドが可能な、標準化され拡張可能なコンテンツビルドパイプラインを示すブロック図を示してある。図3に示すように、コンテンツビルド68は、コードビルドと同様に扱われ、現システムにおけるぜい弱性の一部を解消する。
次に図3を参照すると、本発明による、図1に記載したコンテンツのビルドが可能な、標準化され拡張可能なコンテンツビルドパイプラインを示すブロック図を示してある。図3に示すように、コンテンツビルド68は、コードビルドと同様に扱われ、現システムにおけるぜい弱性の一部を解消する。
この解決方法に対して、2つの主要部分が存在する。第1に、コンテンツビルドに関するファイルフォーマットが標準化される。これは、コンテンツビルド68が必要とする情報を含むことが可能であり、標準コンテンツビルドパイプライン68を作成できるようにするファイルフォーマットである。たとえば、様々なフォーマットのうちでもとりわけ、このファイルは、ゲームコンテンツの主要部分を記述することが可能なゲーム専用スキーマを有する埋込み拡張可能マークアップ言語(XML)を用いたXNA中間フォーマット(XIF)のファイルとすることができる。重要なことに、標準化ファイルは、必ずしも標準化ファイル内にコンテンツデータを含む必要はなく、バイナリコンテンツデータを参照するメタデータを含むことができる。メタデータは、たとえば、様々なバイナリコンテンツファイル用のルーティング、コンテキスト、および適切な読取り機構を含むことができる。この場合、バイナリデータファイルの作成者が、訂正処理の識別を可能にする標準化ファイル「読取り」サービスを提供することができる。この標準ファイルフォーマットにより、ゲームエンジン開発者は、コンテンツビルド中間フォーマットを作成する必要なく、ゲーム専用バイナリファイルの作成を最適化することができる。ゲームエンジン開発者は、バイナリフォーマットの最適化に集中することができる。ただし、これは、ツール32、34、36によって生成されたネイティブファイルフォーマット38、40、42を置き換えるものではないことに留意されたい。
次に図4を参照すると、本発明による、図3のコンテンツビルドパイプラインに関連する標準化ファイルフォーマットのアーキテクチャを示す図が示してある。一例として、Level.xif 86という名前の標準化XIFファイルが示してある。ただし、本明細書に記載するXIFファイルと同様に使用することが可能な同様の特性を有する、XIF以外の他の標準化フォーマットを使用することもできる。Level.xif 86には、ゲームコンテンツの主要部分を記述することができる、ゲーム専用スキーマを定義するXML(または他の宣言型プログラミング言語)を埋め込むことができる。これらのスキーマはたとえば、グラフィックス、オーディオなど周知のゲーム資産(コンテンツ)タイプに使用することができ、ゲーム開発者により全面的に拡張可能である。
また、XIFファイルは、ゲームコンテンツの他の部分を含むか、または参照する、他のXIFファイルを参照することができ、バイナリコンテンツデータ自体を実際に含む必要はない。図示した例では、Level.xif 86は、Mushroom.xif 88、Gun.xif 90、およびCharacter.xif 92を参照する。これらは、他のXIFファイルを参照することもできる。たとえば、Character.xif 92は、CharacterMesh.xif 94、CharacterSound.xif 96、CharacterTextures.xif 98、およびCharacterAnimations.xif 100を参照する。また、Level.xif 86などのXIFファイルは、埋込みバイナリファイルを有すること、および/または他のバイナリファイルを参照することもできる。このように他のXIFおよびバイナリファイルを参照することにより、コンポーネント化、再使用、および依存性のチェックが可能になる。
図4に示すような標準化XIFファイルにより、ゲームスタジオが専用エクスポータを作成せずに済むようにすることが可能になる。ゲームスタジオが必要とするようなデータのすべてが、XIFフォーマットおよび関連バイナリに格納される。これらのバイナリは、XMLファイル中のテキストに変換しても意味がない、単なるビットマップであるテクスチャ、またはサウンドWAVEファイルのようなゲームコンテンツでよい。また、標準化ファイルフォーマットにより、ビルドシステムが、コンテンツの「オーバーライド」を参照できるようになる。これは、複数のプラットフォームに対して1本のコンテンツの1つのバージョンが存在することはできるが、ある特定のプラットフォームはそのプラットフォーム向けに個別化された専用バージョンを必要とすることを意味している。個別化バージョンは、一般バージョンを「オーバーライド」する。これは、標準化ファイルメタデータで表現される。
図3に関して上述したように、データはその後、アプリケーションにとって理想的なフォーマットに変換される。この作業は、図2のエクスポート段階49とは異なり、変換段階68で行われる。必要とされるデータのすべてが、そのゲーム用のXIFフォーマット中にあるからである。このため、変換作業がエクスポートの一部ではなくなるので、専用アートパッケージおよびエクスポータに対する依存性が断たれ、開発者がこれらバイナリをより容易に完全に変更することができるようになる。
第2に、実証済みのコードビルド技術を使用して、コンテンツビルド用の基礎基盤が提供される。たとえば、図3を再び参照すると、図3のコンテンツビルド用の基礎基盤を提供する適切なコードビルド技術は、Microsoft MSBuild(登録商標)エンジンを含むMicrosoft Visual Studio(登録商標)統合開発環境(IDE)とすることができる。MSBuild(登録商標)は、公開されているXMLスキーマ定義によってうまく文書化され支援されたファイルフォーマットを提供し、その結果、MSBuild(登録商標)エンジンは、.NET Framework再配付可能(redistributable)の不可欠な部分となっている。これにより、開発者は、ビルド処理をカスタマイズし、または強化し、または完全に再定義することができ、Microsoft Visual Studio(登録商標)IDEとのシームレスな統合が提供される。
MSBuild(登録商標)は、理解が簡単で拡張が容易なXMLベースのファイルフォーマットを有している。MSBuild(登録商標)ファイルフォーマットにより、開発者は、どんな人工物(artifacts)を作成する必要があるか、また異なる構成の下でどのようにビルドする必要があるかについて完全に記述することができる。さらに、このファイルフォーマットにより、開発者は、製品に含まれる様々なプロジェクトにまたがってビルドを一貫して行えるように、個々のファイルに盛り込むことのできる再使用可能ルールを記述することができる。MSBuild(登録商標)は、.NET Framework再配付可能の中核部分である。これにより開発者は、IDEの存在およびライセンスの問題とは無関係に、MSBuild(登録商標)基盤を利用することができる。さらに、MSBuild(登録商標)クラスライブラリを.NET Frameworkの中核部分として提供することにより、開発者は、自分の選択した使い慣れた言語を使用して、カスタマイズされたMSBuild(登録商標)処理のコンポーネントを作成しデバッグすることが可能となる。第3に、MSBuild(登録商標)は、ソフトウェアをどのように処理し構築するかに関して、完全に透過的である。すべてのビルドステップは、手で記述されたにせよ、それともMicrosoft Visual Studio(登録商標)IDEで自動生成されたにせよ、XMLプロジェクトファイル中で明示的に表現される。これはまた、ユーザが、ビルド処理の任意の部分を、理解し、複製し、編集し、除去し、または強化することができることも意味する。最後に、MSBuild(登録商標)は、Microsoft Visual Studio(登録商標)IDEに完全に統合されている。この緊密な統合により、開発者は、Microsoft Visual Studio(登録商標)の提供する、組み込まれたすべての生産性向上機能を利用することができ、それと同時に開発者は、ビルドシステムをスケーリングし、カスタマイズし、自分の独自の基盤ニーズに適合させることができるようになる。MSBuild(登録商標)エンジンを備えるMicrosoft Visual Studio(登録商標)IDEを、図3のコンテンツビルド用の基礎基盤を提供するのに適したコードビルド技術を用いるIDEの一例として示したが、類似の機能を用いる他のIDEを使用することもできる。
図3に示した例では、Discreet 3D Studio Max(登録商標)コンテンツに対応するXIFファイル70、72、およびSonic Foundry SoundForge(登録商標)コンテンツに対応するXIFファイル74はどちらも、ゲームコンテンツの主要部分を記述することが可能なゲーム専用スキーマを含んでおり、単一の標準パイプライン68に直接入力される。図2で必要とされたエクスポート層49が存在しないことに留意されたい。上述したような標準ファイルフォーマットがあるということは、ゲームスタジオが、使用するコンテンツ作成ツールごとに専用のエクスポータを作成する必要がなくなることを意味する。重要なことに、ゲームスタジオは、自分のビルドパイプラインに影響を与えずに、コンテンツ作成ツールのバージョン間を移動することができる。
単一パイプライン68は、マージトランスフォーマ76、サウンドトランスフォーマ78、テクスチャ圧縮トランスフォーマ80、LODトランスフォーマ82、および最後にXIF/ゲームエンジントランスフォーマ84など、様々なトランスフォーマを含むことができる。これらのトランスフォーマ76、78、80、82は、標準化XIFファイル70、72、74を介して処理を行う。単一パイプライン68では、トランスフォーマ76、78、80、82は、処理しないファイルを単に通過させる。他の様々なトランスフォーマをこのパイプラインに含めることができ、それらを作成し、再使用するのも簡単である。
標準化ファイルフォーマットは、コンテンツ作成ツール32、34、36およびゲームエンジン46を抽象化したものであるので、たとえばMSbuild(登録商標)エンジンを含むMicrosoft Visual Studio(登録商標)IDEなど、コンテンツ用の基礎ビルド基盤を提供する既存のコードビルド処理を再使用することができる。ゲームコンテンツを構築するためにコードビルドシステムを使用できるということは、ロギング、デバッグ、プロファイル作成など、より良い基本サービスを自動的に受けられることを意味する。
また、プログラマは、コンテンツビルドに手を加えることもできる。現在、各ゲームでは互いに異なるビルドシステムを使用している。その結果、そのシステムがコードビルドとは異なる技術を使用しているので、ゲームプログラマはコンテンツビルドをほとんど変更することができず、あるいは変更したいと望んでいない。コンテンツビルドをコードビルドに基づくようにすれば、この問題は解消される。また、コードビルドシステムに基づいた図3のコンテンツビルドパイプライン68により、トランスフォーマの開発が容易になる。コードビルドシステムは、一般にプラグ可能(pluggable)なように構築される。コードビルドシステムを使用するということは、新規のトランスフォーマを迅速に記述し、それをコンテンツビルドシステムに迅速かつ容易にプラグできることを意味する。基本ビルド処理によって一般的な基盤が提供されるので、異なるパイプライン(たとえば、ゲームビルドとプレビュービルド)および異なるゲームにまたがってトランスフォーマを用い、それらを再使用するのは簡単である。
(代替実施形態)
次に図5を参照すると、本発明の一代替実施形態による、異なるゲームプラットフォームごとにパイプラインの開始点で分岐する、標準化され拡張可能なコンテンツビルドパイプラインを示すブロック図が示してある。この分岐は、ネイティブファイルフォーマットのゲームコンテンツおよび標準化XIFファイル104が作成された後に行われる。そのXIFファイルから、異なるゲームプラットフォーム47、48に基づくゲームエンジン46ごとに、1つまたは複数のコピー102が作成される。XIFファイルの各コピーは、特定のゲームエンジン46に対応する別個の標準パイプライン68を通って進む。2つのコピーおよびパイプラインしか図5に示していないが、多数の異なるタイプのゲームエンジンおよびフォーマットに対応した多数のコピーおよびパイプラインを作成することもできる。
次に図5を参照すると、本発明の一代替実施形態による、異なるゲームプラットフォームごとにパイプラインの開始点で分岐する、標準化され拡張可能なコンテンツビルドパイプラインを示すブロック図が示してある。この分岐は、ネイティブファイルフォーマットのゲームコンテンツおよび標準化XIFファイル104が作成された後に行われる。そのXIFファイルから、異なるゲームプラットフォーム47、48に基づくゲームエンジン46ごとに、1つまたは複数のコピー102が作成される。XIFファイルの各コピーは、特定のゲームエンジン46に対応する別個の標準パイプライン68を通って進む。2つのコピーおよびパイプラインしか図5に示していないが、多数の異なるタイプのゲームエンジンおよびフォーマットに対応した多数のコピーおよびパイプラインを作成することもできる。
次に図6を参照すると、本発明の一代替実施形態による、別個のプレビューパイプラインおよびゲームパイプラインを作成するためにパイプラインの開始点で分岐する、標準化され拡張可能なコンテンツビルドパイプラインを示すブロック図が示してある。図5の場合と同様に、ネイティブファイルフォーマットのゲームコンテンツおよび標準化XIFファイル104が作成された後に分岐が行われる。この場合は、そのXIFファイルから、プレビューパイプライン用のコピーが作成される。このプレビューパイプラインは、通常のコンテンツビルドのコンテンツのすべてを含んではいない限定ビルドでよい。
図6に示した例では、プレビューの場合、開発者がおそらくゲームのビデオコンテンツをプレビューできさえすればよいか、またはそれを望むだけであるので、プレビュービルドはオーディオ部分を含んでいない。ただし、プレビューの目的では、オーディオの代わりにまたはオーディオに加えて、ゲームコンテンツの他の諸側面を除外することもできる。次いで、XIF/エンジントランスフォーマは、そのコンテンツを、特定のゲームエンジンが受け取る最終入力フォーマットに変換する。標準化され拡張可能なビルド処理によって、一般的な基盤が提供されので、トランスフォーマを用い、図6のプレビューパイプラインおよび図5の個別のゲームパイプラインの場合のように、異なるパイプラインにまたがってそれらを再使用するのは簡単である。
(例示的なコンピューティングおよびネットワーク環境)
図7を参照すると、本発明の様々な諸態様と共に使用するのに適した、1つの例示的なコンピューティング装置を表すブロック図が示してある。たとえば、上述の標準化され拡張可能なビルド処理を行うための処理および方法を実施するコンピュータ実行可能命令を、図7に示すようなコンピューティング環境に常駐させ、かつ/または実行することができる。コンピューティングシステム環境220は、適切なコンピューティング環境の単なる一例に過ぎず、本発明の使用または機能の範囲に関してどんな制限を示唆するものでもない。コンピューティングシステム環境220は、例示的な動作環境220に示されている構成要素の任意の1つまたはその組合せに関して、どんな依存性も必要性も有するものと解釈されるべきではない。
図7を参照すると、本発明の様々な諸態様と共に使用するのに適した、1つの例示的なコンピューティング装置を表すブロック図が示してある。たとえば、上述の標準化され拡張可能なビルド処理を行うための処理および方法を実施するコンピュータ実行可能命令を、図7に示すようなコンピューティング環境に常駐させ、かつ/または実行することができる。コンピューティングシステム環境220は、適切なコンピューティング環境の単なる一例に過ぎず、本発明の使用または機能の範囲に関してどんな制限を示唆するものでもない。コンピューティングシステム環境220は、例示的な動作環境220に示されている構成要素の任意の1つまたはその組合せに関して、どんな依存性も必要性も有するものと解釈されるべきではない。
本発明の諸態様は、他の多数の汎用または専用コンピューティングシステム環境または構成で動作する。本発明で使用するのに適し得る周知のコンピューティングシステム、環境、および/または構成の例には、それだけには限らないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な民生電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、任意の上述のシステムまたは装置を含む分散コンピューティング環境などが含まれる。
本発明の諸態様は、コンピュータで実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈において実施することができる。一般に、プログラムモジュールには、特定のタスクを実行し、または特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。また、本発明の諸態様は、通信ネットワークを介してリンクされたリモートの処理装置でタスクが実行される分散コンピューティング環境において実施することもできる。分散コンピューティング環境では、プログラムモジュールは、記憶装置を含む、ローカルの記憶媒体にもリモートのコンピュータ記憶媒体にも配置することができる。
本発明の諸態様を実装するための1つの例示的なシステムは、コンピュータ241の形の汎用コンピューティング装置を含む。コンピュータ241の構成要素には、それだけには限らないが、処理装置259、システムメモリ222、およびシステムメモリを含めた様々なシステム構成要素を処理装置259に結合するシステムバス221が含まれる。システムバス221は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのどれかを使用するローカルバスを含む、いくつかのタイプのバス構造のうちのどれでもよい。例を挙げると、それだけには限らないが、そのようなアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、MezzanineバスおよびPCI Expressとも呼ばれるPCI(Peripheral Component Interconnect)バスが含まれる。
コンピュータ241は通常、様々なコンピュータ読取り可能記憶媒体を含んでいる。コンピュータ読取り可能記憶媒体は、コンピュータ241がアクセスできるどんな利用可能な媒体でもよく、それには揮発性媒体および不揮発性媒体、取外し可能な媒体および取外し不可能な媒体が含まれる。例を挙げると、それだけには限らないが、コンピュータ読取り可能記憶媒体には、コンピュータ記憶媒体および通信媒体が含まれる。コンピュータ記憶媒体には、コンピュータ読取り可能命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための任意の方法または技術で実装される、揮発性および不揮発性の、取外し可能および取外し不可能な媒体が含まれる。コンピュータ記憶媒体には、それだけには限らないが、RAM、ROM、EEPROM、フラッシュメモリまたはその他のメモリ技術、CD−ROM、DVD(digital versatile disk)またはBlu−ray、HD DVD、およびその他の青色レーザフォーマットの光媒体を含む、その他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶装置、あるいは所望の情報を記憶するために使用でき、コンピュータ241がアクセスできる任意のその他の媒体が含まれる。通信媒体は通常、コンピュータ読取り可能命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波やその他の搬送機構などの被変調データ信号として実施し、それには任意の情報送達媒体が含まれる。用語「被変調データ信号」とは、信号の1組の特性のうちの1つまたは複数の特性を有する信号、あるいは信号中の情報を符号化するように変更された信号を意味する。例を挙げると、それだけには限らないが、通信媒体には、有線ネットワークや直接配線接続などの有線媒体、ならびに音響、RF、赤外、およびその他の無線媒体などの無線媒体が含まれる。上記の任意の組合せも、コンピュータ読取り可能記憶媒体の範囲内に含まれるものとする。
システムメモリ222には、読取り専用メモリ(ROM)223やランダムアクセスメモリ(RAM)260などの揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体が含まれる。起動時などに、コンピュータ241内の要素間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム224(BIOS)は、一般にROM223に記憶されている。RAM 260は通常、即座にアクセス可能な、かつ/または現在、処理装置259により操作されているデータおよび/またはプログラムモジュールを含む。限定ではなく例として、図7には、オペレーティングシステム225、アプリケーションプログラム226、その他のプログラムモジュール227、およびプログラムデータ228を示す。
コンピュータ241はまた、その他の取外し可能/取外し不可能な、揮発性/不揮発性コンピュータ記憶媒体も含むことができる。単に例として、図7には、取外し不可能な不揮発性磁気媒体を読み書きするハードディスクドライブ238、取外し可能な不揮発性磁気ディスク254を読み書きする磁気ディスクドライブ239、およびCD−ROMやその他の光媒体などの取外し可能な不揮発性光ディスク253を読み書きする光ディスクドライブ240を示す。例示の動作環境で使用できるその他の取外し可能/取外し不可能な揮発性/不揮発性コンピュータ記憶媒体には、それだけには限らないが、磁気テープカセット、フラッシュメモリカード、DVD、デジタルビデオテープ、固体RAM、固体ROMなどが含まれる。ハードディスクドライブ238は一般に、インターフェース234などの取外し不可能な記憶装置インターフェースを介してシステムバス221に接続され、磁気ディスクドライブ239および光ディスクドライブ240は一般に、インターフェース235などの取外し可能な記憶装置インターフェースによってシステムバス221に接続される。
上述し図7に示したドライブおよびそれに関連するコンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、およびコンピュータ241用のその他のデータを記憶する。たとえば図7では、ハードディスクドライブ238は、オペレーティングシステム258、アプリケーションプログラム257、その他のプログラムモジュール256、およびプログラムデータ255を記憶するものとして示してある。これらの構成要素は、オペレーティングシステム225、アプリケーションプログラム226、その他のプログラムモジュール227、およびプログラムデータ228と同じでも、異なっていてもよいことに留意されたい。オペレーティングシステム258、アプリケーションプログラム257、その他のプログラムモジュール256、およびプログラムデータ255には、少なくともそれらが異なるコピーであることを示すために、ここでは異なる番号を付与している。ユーザは、キーボード251およびマウス、トラックボール、またはタッチパッドと一般に呼ばれるポインティング装置252などの入力装置を介して、コマンドおよび情報をコンピュータ241に入力することができる。その他の入力装置(図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどが含まれ得る。以上その他の入力装置は、しばしばシステムバスに結合されているユーザ入力インターフェース236を介して処理装置259に接続されるが、パラレルポート、ゲームポート、またはUSB(universal serial bus)など他のインターフェースおよびバス構造で接続されてもよい。また、モニタ242またはその他のタイプの表示装置も、ビデオインターフェース232などのインターフェースを介してシステムバス221に接続することができる。モニタに加えて、コンピュータは、スピーカ244やプリンタ243など他の周辺出力装置を含むこともでき、それらは出力周辺インターフェース233を介して接続することができる。
コンピュータ241は、たとえばリモートコンピュータ246など1台または複数台のリモートコンピュータへの論理接続を使用して、ネットワーク環境において動作することができる。リモートコンピュータ246は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置、またはその他の一般的なネットワークノードでよく、一般にコンピュータ241に関して上記で述べた要素の多くまたはすべてを含んでいるが、図7には記憶装置247だけが示してある。図7に示す論理接続は、ローカルエリアネットワーク(LAN)245および広域ネットワーク(WAN)249を含んでいるが、他のネットワークを含むこともできる。そのようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットでは一般的である。
LANネットワーク環境において使用する場合、コンピュータ241は、ネットワークインターフェースまたはアダプタ237を介してLAN245に接続される。WANネットワーク環境において使用する場合、コンピュータ241は一般に、インターネットなどのWAN249上で通信を確立するために、モデム250またはその他の手段を含む。モデム250は、内蔵でも外付けでもよいが、ユーザ入力インターフェース236、またはその他の適切な機構を介して、システムバス221に接続することができる。ネットワーク環境では、コンピュータ241に関して示したプログラムモジュール、またはその一部分を、リモート記憶装置に記憶することができる。限定ではなく例として、図7では、リモートアプリケーションプログラム248を記憶装置247に常駐するものとして示す。図示したネットワーク接続は例であり、コンピュータ間で通信リンクを確立する他の手段を使用することもできることが理解されよう。
ハードウェアまたはソフトウェアで、あるいは適切な場合は両者の組合せで、本明細書に記載した様々な技術を実施できることを理解されたい。したがって、本発明の方法および装置、あるいはいくつかの態様またはその一部分は、フロッピー(登録商標)ディスク、CD−ROM,ハードドライブ、または任意のその他の機械読取り可能記憶媒体など、有形の媒体で実施されるプログラムコード(たとえば命令)の形をとることができ、その場合、プログラムコードをコンピュータなどのマシンにロードし、そこで実行する場合、そのマシンが本発明を実施するための装置となる。プログラム可能なコンピュータ上でプログラムコードを実行する場合、コンピューティング装置は一般に、プロセッサ、プロセッサによって読取り可能な記憶媒体(揮発性および不揮発性メモリおよび/または記憶装置要素を含む)、少なくとも1台の入力装置、および少なくとも1台の出力装置を含む。1つまたは複数のプログラムは、たとえばAPI、再使用可能コントロールなどを利用して、本発明に関して述べた処理を実装または使用することができる。そのようなプログラムは、好ましくは、コンピュータシステムと通信するために、手続き形のまたはオブジェクト指向の高級プログラミング言語で実装する。しかし、プログラムは、望むであれば、アセンブリ言語または機械語で実装することもできる。いずれにせよ、言語はコンパイル式またはインタプリタ式言語でよく、ハードウェア実装と組み合わせてもよい。
例示的な諸実施形態は、1台または複数台のスタンドアロンコンピュータシステムのコンテキストにおいて、本発明の諸態様を利用することに関するものであるが、本発明はそれだけには限定されず、ネットワークまたは分散コンピューティング環境など任意のコンピューティング環境と共に実装することもできる。さらに、本発明の諸態様は、複数の処理チップまたは装置において、あるいはそれらにまたがって実施することができ、記憶装置も同様に、複数の装置にまたがって実施することができる。そのような装置には、パーソナルコンピュータ、ネットワークサーバ、ハンドヘルド装置、スーパーコンピュータ、または自動車や飛行機など他のシステムに統合されたコンピュータが含まれ得る。
1つの例示的なネットワークコンピューティング環境が、図8に示してある。ネットワークは、任意のコンピュータまたはその他のクライアントもしくはサーバ装置を接続することができ、あるいは分散コンピューティング環境において接続を行うことができることが、当業者には理解できよう。この点に関連して、任意の数の処理装置、メモリ装置、または記憶装置、ならびに同時に実行される任意の数のアプリケーションおよびプロセスを有するどんなコンピュータシステムまたは環境も、図示したシステムおよび方法と共に使用するのに適しているものと見なされる。
分散コンピューティングでは、コンピューティング装置およびシステム間でのやりとりによって、コンピュータ資源およびサービスが共用される。これらの資源およびサービスには、情報の交換、キャッシュ記憶装置、およびファイル用のディスク記憶装置が含まれる。分散コンピューティングでは、ネットワーク接続を利用するので、クライアントに、その集合的な力を活用させ、全社的に利益が得られるようにすることができる。この点において、様々な装置が、本明細書に記載した処理に関与し得るアプリケーション、オブジェクト、または資源を有することができる。
図8は、1つの例示的なネットワークコンピューティング環境または分散コンピューティング環境の概略図を示す。この環境は、コンピューティング装置271、272、276、および277と、オブジェクト273、274、および275と、データベース278とを含んでいる。これらのエンティティ271、272、273、274、275、276、277、および278はそれぞれ、プログラム、メソッド、データ記憶装置、プログラマブルロジックなどを含むか、または使用することができる。エンティティ271、272、273、274、275、276、277、および278は、PDA、オーディオ/ビデオ装置、MP3プレーヤ、パーソナルコンピュータなど、同じまたは異なる装置の複数部分にまたがってよい。各エンティティ271、272、273、274、275、276、277、および278は、通信ネットワーク270を介して他のエンティティ271、272、273、274、275、276、277、および278と通信することができる。なお、どのエンティティが、データベース278またはその他の記憶装置要素の維持および更新の任を負ってもよい。
このネットワーク270は、それ自体、図8のシステムにサービスを提供する他のコンピューティングエンティティを含むことができ、またそれ自体、複数の相互接続ネットワークを表すことができる。本発明の一態様によれば、各エンティティ271、272、273、274、275、276、277、および278は、APIまたはその他のオブジェクト、ソフトウェア、ファームウェア、および/またはハードウェアを使用して、他のエンティティ271、272、273、274、275、276、277、および278のうちの1つまたは複数のエンティティのサービスを要求することのできる、別個の機能プログラムモジュールを含むことができる。
275などのオブジェクトは、別のコンピューティング装置276上でホストできることも理解できよう。したがって、図示した物理環境では接続されている装置をコンピュータとして示していようが、そうした図は単なる例示であり、代わりに物理環境を、PDA、テレビ、MP3プレーヤなどの様々なデジタル機器、およびインターフェース、COMオブジェクトなどのソフトウェアオブジェクトを含むものとして示し、または記述することもできる。
分散コンピューティング環境をサポートする様々なシステム、構成要素、およびネットワーク構成が存在する。たとえば、コンピューティングシステムは、有線または無線システムによって、ローカルネットワークまたは広域分散ネットワークによって互いに接続することができる。現在、多くのネットワークがインターネットに接続されており、インターネットは、広く分散されたコンピューティング用の基盤を提供し、異なる多くのネットワークを含んでいる。そのようないかなる基盤も、インターネットに結合されているにせよ、いないにせよ、図示したシステムおよび方法と共に使用することができる。
ネットワーク基盤は、クライアント/サーバ、ピアツーピア、または混成(hybrid)アーキテクチャなど多数のネットワークトポロジを可能にし得る。「クライアント」とは、関係のない別のクラスまたはグループのサービスを使用する、あるクラスまたはグループのメンバーである。コンピューティングにおいて、クライアントは、他のプログラムが提供するサービスを要求するプロセス、すなわち大まかに言って、1組の命令またはタスクである。クライアントプロセスは、他のプログラムまたはサービス自体についての実際の詳細を「知る」必要なしに、要求したサービスを使用する。クライアント/サーバアーキテクチャ、特にネットワークシステムでは、クライアントは通常、別のコンピュータ、たとえばサーバが提供する共有ネットワークリソースにアクセスするコンピュータである。図8の例では、状況に応じて、どのエンティティ271、272、273、274、275、276、277、および278も、クライアント、サーバ、またはその両方と見なすことができる。
サーバは、必ずしもそうとは限らないが、一般にインターネットなどのリモートまたはローカルネットワークを介してアクセス可能な、リモートコンピュータシステムである。クライアントプロセスを第1のコンピュータシステムでアクティブにし、サーバプロセスを第2のコンピュータシステムでアクティブにし、通信媒体を介して互いに通信し、それにより、分散機能を提供し、複数のクライアントがサーバの情報収集能力を利用できるようにすることができる。任意のソフトウェアオブジェクトを、複数のコンピューティング装置またはオブジェクトにまたがって分散させることができる。
クライアントおよびサーバは、プロトコル層(1つまたは複数)が提供する機能を利用して、互いに通信する。たとえば、HTTP(HyperText Transfer Protocol)は、ワールドワイドウェブ(WWW)、すなわちウェブと共に使用する一般的なプロトコルである。一般に、インターネットプロトコル(IP)アドレスなどのコンピュータネットワークアドレス、またはURL(Universal Resource Locator)などの他の参照を使用して、サーバコンピュータまたはクライアントコンピュータを互いに識別することができる。ネットワークアドレスは、URLアドレスと呼ばれるともある。通信は、通信媒体を介して提供することができ、たとえばクライアントおよびサーバを、大容量通信用のTCP/IP接続を介して互いに結合することができる。
図7に示した一般的なフレームワークに従って構築できる様々なコンピューティング環境、ならびに図8のようなネットワーク環境におけるコンピューティングの際に生じ得るさらなる多様性に鑑みて、本明細書で示すシステムおよび方法は、特定のコンピューティングアーキテクチャに限定されるものと解釈してはならない。代わりに、本発明は、どんな一実施形態にも限定されず、添付の特許請求の範囲による幅および範囲で解釈されるものとする。
Claims (20)
- 対話式マルチメディアソフトウェアアプリケーションのコンテンツ用のソフトウェアビルドを可能にする方法であって、
標準化ファイルフォーマットに従って、前記コンテンツに関するメタデータを含む少なくとも1つのファイルを作成することを含み、前記メタデータは、同じ前記コンテンツを使用する、複数の異なる対話式マルチメディアソフトウェアアプリケーションに対して、前記コンテンツのソフトウェアビルドを実施するために必要なメタデータであることを特徴とする方法。 - 対話式マルチメディアソフトウェアアプリケーションのコンテンツ用の前記ビルドは、前記コンテンツを、前記複数の対話式マルチメディアソフトウェアアプリケーションのそれぞれが受け入れることのできるように、前記複数の対話式マルチメディアソフトウェアアプリケーションのそれぞれに専用のフォーマットに変換することを特徴とする請求項1に記載の方法。
- 前記標準化ファイルフォーマットの前記コンテンツに関する前記メタデータを使用して、前記コンテンツを、前記複数の対話式マルチメディアソフトウェアアプリケーションのうちの少なくとも1つに最適化された少なくとも1つのフォーマットに変換することをさらに含むことを特徴とする請求項2に記載の方法。
- 前記標準化ファイルフォーマットに従って、前記ファイルの少なくとも1つのコピーを作成することと、
前記ファイルの各コピーに関する前記コンテンツを、別々のソフトウェアコンテンツビルドパイプラインで使用される、互いに異なるトランスフォーマを介して、異なる方法で変換することと
をさらに含むことを特徴とする請求項3に記載の方法。 - 前記メタデータは、追加の情報に基づいて1本の前記コンテンツのある特定のバージョンを使用するために、前記ソフトウェアビルドが、前記1本のコンテンツの一般的なバージョンを使用してオーバーライドすることを可能にする、前記追加の情報を含むことを特徴とする請求項1に記載の方法。
- 前記標準化ファイルフォーマットに従って作成され、前記コンテンツに関するメタデータを含むことのできる前記ファイルは、前記ソフトウェアコンテンツビルドを実施するために、ファイルをコンテンツ作成ツールにネイティブなフォーマットで前記複数の対話式マルチメディアソフトウェアアプリケーションのそれぞれに専用のフォーマットにエクスポートするためのエクスポート処理を必要ないようにする、メタデータを含むことを特徴とする請求項1に記載の方法。
- 前記標準化ファイルフォーマットに従って作成される前記ファイルは、バイナリコンテンツファイルを参照する前記メタデータを含むが、前記バイナリコンテンツファイルを直接含まないことを特徴とする請求項1に記載の方法。
- 前記メタデータは、XMLフォーマットであることを特徴とする請求項7に記載の方法。
- 対話式マルチメディアソフトウェアアプリケーションのコンテンツ用のソフトウェアビルドを可能にするコンピュータ読取り可能命令を記憶したコンピュータ読取り可能記憶媒体であって、前記コンピュータ読取り可能命令は、
標準化ファイルフォーマットに従って、前記コンテンツに関するメタデータを含む少なくとも1つのファイルを作成する命令を含み、前記メタデータは、同じ前記コンテンツを使用する、複数の異なる対話式マルチメディアソフトウェアアプリケーションに対して、前記コンテンツのソフトウェアビルドを実施するために必要なメタデータであること
を特徴とするコンピュータ読取り可能記憶媒体。 - 対話式マルチメディアソフトウェアアプリケーションのコンテンツ用の前記ビルドは、前記コンテンツを、前記複数の対話式マルチメディアソフトウェアアプリケーションのそれぞれが受け入れることのできるように、前記複数の対話式マルチメディアソフトウェアアプリケーションのそれぞれに専用のフォーマットに変換することを特徴とする請求項9に記載のコンピュータ読取り可能記憶媒体。
- 前記標準化ファイルフォーマットの前記コンテンツに関する前記メタデータを使用して、前記コンテンツを、前記複数の対話式マルチメディアソフトウェアアプリケーションのうちの少なくとも1つに最適化された少なくとも1つのフォーマットに変換するコンピュータ読取り可能命令をさらに含むことを特徴とする請求項9に記載のコンピュータ読取り可能記憶媒体。
- 前記コンピュータ読取り可能命令は、
前記標準化ファイルフォーマットに従って、前記ファイルの少なくとも1つのコピーを作成する命令と、
前記ファイルの各コピーに関する前記コンテンツを、別々のソフトウェアコンテンツビルドパイプラインで使用される、互いに異なるトランスフォーマを介して、異なる方法で変換する命令と
をさらに含むことを特徴とする請求項10に記載のコンピュータ読取り可能記憶媒体。 - 対話式マルチメディアソフトウェアアプリケーションのコンテンツ用のソフトウェアビルドを可能にするシステムであって、
標準化ファイルフォーマットに従って、前記コンテンツに関するメタデータを含む少なくとも1つのファイルを作成する手段を含み、前記メタデータは、同じ前記コンテンツを使用する、複数の異なる対話式マルチメディアソフトウェアアプリケーションに対して、前記コンテンツのソフトウェアビルドを実施するために必要なメタデータであること
を特徴とするシステム。 - 対話式マルチメディアソフトウェアアプリケーションのコンテンツ用の前記ビルドは、前記コンテンツを、前記複数の対話式マルチメディアソフトウェアアプリケーションのそれぞれが受け入れることのできるように、前記複数の対話式マルチメディアソフトウェアアプリケーションのそれぞれに専用のフォーマットに変換することを特徴とする請求項13に記載のシステム。
- 前記標準化ファイルフォーマットの前記コンテンツに関する前記メタデータを使用して、前記コンテンツを、前記複数の対話式マルチメディアソフトウェアアプリケーションのうちの少なくとも1つに最適化された少なくとも1つのフォーマットに変換する手段をさらに含むことを特徴とする請求項13に記載のシステム。
- 前記標準化ファイルフォーマットに従って、前記ファイルの少なくとも1つのコピーを作成する手段と、
前記ファイルの各コピーに関する前記コンテンツを、別々のソフトウェアコンテンツビルドパイプラインで使用される、互いに異なるトランスフォーマを介して、異なる方法で変換する手段と
をさらに含むことを特徴とする請求項15に記載のシステム。 - 前記メタデータは、追加の情報に基づいて1本の前記コンテンツのある特定のバージョンを使用するために、前記ソフトウェアビルドが、前記1本のコンテンツの一般的なバージョンを使用してオーバーライドすることを可能にする、前記追加の情報を含むことを特徴とする請求項13に記載のシステム。
- 前記標準化ファイルフォーマットに従って作成され、前記コンテンツに関するメタデータを含むことのできる前記ファイルは、前記ソフトウェアコンテンツビルドを実施するために、ファイルをコンテンツ作成ツールにネイティブなフォーマットで前記複数の対話式マルチメディアソフトウェアアプリケーションのそれぞれに専用のフォーマットにエクスポートするためのエクスポート処理を必要ないようにする、メタデータを含むことを特徴とする請求項13に記載のシステム。
- 前記標準化ファイルフォーマットに従って作成される前記ファイルは、バイナリコンテンツファイルを参照する前記メタデータを含むが、前記バイナリコンテンツファイルを直接含まないことを特徴とする請求項13に記載のシステム。
- 前記メタデータは、XMLフォーマットであることを特徴とする請求項19に記載のシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/078,936 US7904877B2 (en) | 2005-03-09 | 2005-03-09 | Systems and methods for an extensive content build pipeline |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006252558A true JP2006252558A (ja) | 2006-09-21 |
Family
ID=36570650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006064581A Pending JP2006252558A (ja) | 2005-03-09 | 2006-03-09 | 拡張コンテンツビルドパイプラインのためのシステムおよび方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7904877B2 (ja) |
EP (1) | EP1701257A1 (ja) |
JP (1) | JP2006252558A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130090621A (ko) * | 2012-02-06 | 2013-08-14 | 한국전자통신연구원 | 사전 시각화 영상 생성 장치 및 방법 |
KR101651979B1 (ko) * | 2015-08-12 | 2016-08-29 | 동서대학교 산학협력단 | 유니티 게임엔진의 동영상 파일포맷 변환 기반 모션데이터 입력방법 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8458661B2 (en) | 2006-03-31 | 2013-06-04 | Ebay Inc. | Distributed parallel build system |
US8843881B2 (en) * | 2007-01-12 | 2014-09-23 | Microsoft Corporation | Transporting and processing foreign data |
US8473897B2 (en) | 2008-10-03 | 2013-06-25 | Microsoft Corporation | Common intermediate representation for data scripting language |
EP2418576A1 (en) * | 2010-08-11 | 2012-02-15 | Sony Computer Entertainment Europe Ltd. | Multi-platform development tool and method |
US9037957B2 (en) | 2011-07-29 | 2015-05-19 | Adobe Systems Incorporated | Prioritizing asset loading in multimedia application |
US10725816B2 (en) | 2017-01-13 | 2020-07-28 | International Business Machines Corporation | Optimizing pipeline execution scheduling based on commit activity trends, priority information, and attributes |
US10754755B2 (en) * | 2018-09-28 | 2020-08-25 | Cotiviti, Inc. | Automatically validating data incorporated into a computer program |
CN111078392B (zh) * | 2019-11-04 | 2023-08-29 | 珠海西山居数字科技有限公司 | 一种基于Unity的场景物件Mipmap Level统计方法及其系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004057634A (ja) * | 2002-07-31 | 2004-02-26 | Shuji Sonoda | ゲーム装置及びそれを実現するプログラム |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6226785B1 (en) * | 1994-09-30 | 2001-05-01 | Apple Computer, Inc. | Method and apparatus for storing and replaying creation history of multimedia software or other software content |
US5659793A (en) * | 1994-12-22 | 1997-08-19 | Bell Atlantic Video Services, Inc. | Authoring tools for multimedia application development and network delivery |
US6061696A (en) * | 1997-04-28 | 2000-05-09 | Computer Associates Think, Inc. | Generating multimedia documents |
US6549922B1 (en) * | 1999-10-01 | 2003-04-15 | Alok Srivastava | System for collecting, transforming and managing media metadata |
US20030110234A1 (en) * | 2001-11-08 | 2003-06-12 | Lightsurf Technologies, Inc. | System and methodology for delivering media to multiple disparate client devices based on their capabilities |
US20040153968A1 (en) * | 2002-10-24 | 2004-08-05 | Jennie Ching | Method and system for user customizable asset metadata generation in a web-based asset management system |
AU2003302559A1 (en) | 2002-12-03 | 2004-06-23 | Electronics And Telecommunications Research Institute | Apparatus and method for adapting graphics contents and system therefor |
-
2005
- 2005-03-09 US US11/078,936 patent/US7904877B2/en not_active Expired - Fee Related
-
2006
- 2006-03-09 JP JP2006064581A patent/JP2006252558A/ja active Pending
- 2006-03-09 EP EP06110884A patent/EP1701257A1/en not_active Ceased
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004057634A (ja) * | 2002-07-31 | 2004-02-26 | Shuji Sonoda | ゲーム装置及びそれを実現するプログラム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130090621A (ko) * | 2012-02-06 | 2013-08-14 | 한국전자통신연구원 | 사전 시각화 영상 생성 장치 및 방법 |
KR101713772B1 (ko) * | 2012-02-06 | 2017-03-09 | 한국전자통신연구원 | 사전 시각화 영상 생성 장치 및 방법 |
KR101651979B1 (ko) * | 2015-08-12 | 2016-08-29 | 동서대학교 산학협력단 | 유니티 게임엔진의 동영상 파일포맷 변환 기반 모션데이터 입력방법 |
Also Published As
Publication number | Publication date |
---|---|
EP1701257A1 (en) | 2006-09-13 |
US7904877B2 (en) | 2011-03-08 |
US20060206596A1 (en) | 2006-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006252558A (ja) | 拡張コンテンツビルドパイプラインのためのシステムおよび方法 | |
Vanderdonckt | Model-driven engineering of user interfaces: Promises, successes, failures, and challenges | |
US8769482B2 (en) | Method and system for building an application | |
CN102449598B (zh) | 包设计和生成 | |
US8448132B2 (en) | Systems and methods for modifying code generation templates | |
US10331423B1 (en) | Utilizing cross platform streamable user interfaces to reduce software deployment frequency caused by user interface improvements | |
US20060259386A1 (en) | Building digital assets for use with software applications | |
US20160004516A1 (en) | Code Generation Framework for Application Program Interface for Model | |
TWI528288B (zh) | 一種跨平臺轉換應用代碼的方法及裝置 | |
US20070203956A1 (en) | Metadata Customization Using Diffgrams | |
JP2015534145A (ja) | 宣言テンプレートを使用してコントロールをスタンプアウトするためのユーザインターフェイスコントロールフレームワーク | |
JP2011501297A (ja) | ソフトウェアファクトリ仕様化及び実行モデル | |
WO2006056985A2 (en) | System and method for managing content of rich media | |
US8739120B2 (en) | System and method for stage rendering in a software authoring tool | |
US8645489B1 (en) | Systems and methods for the developing content and applications in hosted and non-hosted development environments | |
JP2022022205A (ja) | ビデオをカスタマイズするシステム及び方法 | |
US20180121396A1 (en) | Automatic generation of assent indication in a document approval function for collaborative document editing | |
TWI467481B (zh) | 層級式程式源碼管理方法、系統及電腦程式產品 | |
TWI473017B (zh) | 用於不同目標平台之媒體可攜性及相容性的裝置及電腦實施程序 | |
US8161389B1 (en) | Authoring tool sharable file format | |
Born et al. | SUPER-raising business process management back to the business level | |
Anwar et al. | Blended modeling applied to the portable test and stimulus standard | |
US8972927B2 (en) | Method and system for providing modeled components | |
KR102206019B1 (ko) | 시뮬레이션 모델 연동을 위한 어댑터 개발 지원 장치 및 방법 | |
US8635586B1 (en) | Method and system for providing services in modeled components |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120224 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120523 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120608 |