オーサリング・ツールおよびこれを実装するための方法
本願の原理は、ブルーレイ・ディスクおよび他のメディアのオーサリングにおいて使用するための新しいツール(すなわちアプリケーション)であって、BD-Jiveプレーヤーとともに用いられたときに、作者が、XMLやJava(登録商標)のコーディングを必要としないユーザー・インターフェース(UI)を使って任意の必要とされる追加的情報を提供できるものを提供する。本ユーザー・インターフェース(UI)は、作者が情報をより一般的に(すなわち、Java(登録商標)コーディングやXMLの知識をもつことなく)表現することを許容し、するとオーサリング・ツールが関連するXMLファイルやJava(登録商標)コードを必要に応じて生成してくれる。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本願は米国特許法第119条(e)により、2007年4月11日に出願された米国仮特許出願第60/922,978号の優先権を主張する。該仮出願の教示は本明細書に組み込まれる。
【0002】
技術分野
本願の原理はブルーレイ・ディスクに関する。より詳細には、本願の原理はブルーレイ・ディスクおよび他のデジタル・メディアのオーサリングに関する。
【背景技術】
【0003】
ブルーレイ・ディスクは映画またはゲームのような何らかのコンテンツを含むが、多くの追加的情報およびタイトル、メニュー、テキスト…等を与えるプログラミングをも含む。伝統的に、この追加的情報の多くならびにそれが表す書式および編成はJava(登録商標)コードの形で与えられていた。つまり、作者は、たとえば映画中の適切な場所にメニューおよびタイトルを挿入したり、ゲーム中の適切な場所にグラフィックを挿入したりするJava(登録商標)コードを書く。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示から明白となるように、ブルーレイ・タイトルをJava(登録商標)で手動でコーディングするのは効率的ではない。
【課題を解決するための手段】
【0005】
本願の原理は、ブルーレイ・ディスクをオーサリングする際に使うための新しいツール(すなわちアプリケーション)を提供する。BD-Jiveプレーヤーと一緒に使われるとき、作者は任意の要求される追加的情報を、XMLやJava(登録商標)コーディングを必要としないユーザー・インターフェース(UI)を使って提供できる。むしろ、UIは作者が情報をより一般的に表現することを許容し、次いでエンジンが関連するXMLファイルおよびJava(登録商標)コードを必要に応じて生成してくれる。
【0006】
ある実装によれば、本稿で開示される新しいツール(アプリケーション)は、JiveScript〔ジャイブスクリプト〕、JiveAuthor〔ジャイブオーサー〕およびBD-J ScriptingModule〔BD-Jスクリプティング・モジュール〕と称される。これらのアプリケーションは、BD-Jive(本稿では同義でBD-Jiveプレーヤーとも称される)とともに、ブルーレイ・ディスクのオーサリングの際に以下の利点を提供する:
1.作者はJava(登録商標)やXMLの経験をもつ必要がない;
2.BD-Jアプリケーションの開発をスピードアップする;
3.すべての生成されるコードはテストされ、作者は非常に詳細なユニット・テストを実行する必要がないので、テスト期間を短縮した;
4.ユーザー・フレンドリーなUI環境を提供した。
【0007】
そのようなイニシアチブを取ることの背後にある動機は、ブルーレイ規格とともに機能するそのような環境を提供するツールが市場にないことである。
【0008】
アニメーション・エンジン(たとえばBD-Jive)の使用により、作者はメニュー位置、アニメーション型および他の情報のような必要な情報を、XML言語の形で提供する。次いで、必要なメニュー項目またはゲーム・グラフィックまたはその他の特徴を再生するために、プレーヤーにおいてそのXMLがレンダリングされる。
【0009】
作者はまた、java(登録商標)プログラムを追加することによってアニメーション・エンジンの機能性を拡張する選択肢をもつ。これらのプログラムは、映画を通じてナビゲートする〔映画内を行き来する〕、ブックマークを保存する、リアルタイムでアニメーション・オブジェクトと対話するといった追加的なタスクを実行する。これらの機能のいくつかは、本稿でBD-Jとも称されるブルーレイ・アプリケーション・プログラミング・インターフェース(API)とのインターフェースをもつことを要求する。よって、この型のインターフェースを簡単にし、作者にとってよりフレンドリーにするために、スクリプティング・ライブラリが導入された。
【0010】
これらおよびその他の側面は、ある実装に基づいて達成される。該実装では、コンテンツ記憶媒体をオーサリングする方法が、前記媒体をオーサリングするために作者から入力を受け付ける段階と、作者の入力に応答して前記媒体をオーサリングするための命令の組を、前記媒体からの前記コンテンツのその後の再生と互換な言語で生成する段階と、生成された命令の組を前記媒体上に記憶する段階と、コンテンツを前記媒体上に記憶する段階とを含む。本方法はさらに、前記命令の組の中に含まれる一つまたは複数の命令に応答して前記媒体上に記憶されたライブラリ・ルーチンを呼び出す段階を含むことができる。
【0011】
一つまたは複数の実装の詳細が付属の図面および以下の記述において記載される。たとえ一つの特定の仕方で記述されていても、実装がさまざまな仕方で構成または具現されてもよいことは明らかなはずである。たとえば、実装は、方法として実行されてもよいし、あるいは一組の動作を実行するよう構成された装置または一組の動作を実行するための命令を記憶する装置として具現されてもよい。他の側面および特徴は、付属の図面および請求項と一緒に考慮される以下の詳細な記述から明白になるであろう。
【0012】
図面において、各図を通じて同様の参照符号は同様の要素を指す。
【図面の簡単な説明】
【0013】
【図1】ライブラリ・パッケージ(JiveScript)を表すブロック図である。
【図2】BD-Jオーサリング環境における本願の原理の例示的な実施形態のブロック図である。
【図3】本願の原理の例示的な実施形態に基づく、BD-Jアニメーション・エンジンにおける単一のアニメーション・ユニットの例を示す図である。
【図4】本願の原理の例示的な実施形態に基づくオーサリング・ツール(JiveAuthor)の、例としてのプレビュー・パネルを示す図である。
【図5】本願の原理の例示的な実施形態に基づく宣言ファイルの図的な表現である。
【図6】本願の原理の例示的な実施形態に基づくキー・エディタ画面の、例としての図である。
【図7】本願の原理の例示的な実施形態に基づくメッセージ画面の、例としての図である。
【図8】本願の原理の例示的な実施形態に基づくプロパティ・パネルの、例としての図である。
【図9】本願の原理の例示的な実施形態に基づくBDJOイメージ・ジェネレータ・インターフェースの、例としての図である。
【図10】本願の原理の例示的な実施形態に基づく、BD-Jクラス・メソッドおよび各メソッド内の追加されたコマンド/論理ブロックの、例としてのツリー・ビューである。
【図11】本願の原理の例示的な実施形態に基づくネストされた論理ブロックの、例としての図である。
【図12】本願の原理の例示的な実施形態に基づく論理文の、例としてのインターフェース・ビューである。
【図13】本願の原理の例示的な実施形態に基づく、条件フィールドにおいて作者に呈示される変数の、例としての図である。
【図14】本願の原理の例示的な実施形態に基づく、1パラメータをもつ第一のサンプルの、例としての図である。
【図15】本願の原理の例示的な実施形態に基づく、複数パラメータをもつ第二のサンプルの、例としての図である。
【図16】本願の原理の例示的な実施形態に基づく、特定のノード上に作者のオプションを示す、例としての図である。
【図17】本願の原理の例示的な実施形態に基づくJiveScript作者インターフェースの、例としての図である。
【図18】JiveTree内のすべてのオブジェクトのツリー・ビューを作者に提供するJive Nodeセレクタの例としての図である。
【図19】本願の原理の例示的な実施形態に基づくスクリプティング・モジュールによって実行されるスクリプト生成タスクの高レベルのブロック図である。
【図20】本願の原理の例示的な実施形態に基づくスクリプティング・モジュール・ダイアログ・インターフェースの、例としての図である。
【図21】本願の原理の例示的な実施形態に基づく、記憶媒体上にコンテンツをオーサリングする方法を示す、例としての高レベルの流れ図である。
【発明を実施するための形態】
【0014】
ここで本願の原理について述べる。本願の原理の諸適用の間の分離を維持するため、複数のセクションにおいて述べる。
【0015】
JiveScript
本願の原理の実装の例示的な実施形態によれば、新しいアプリケーション・プログラミング・インターフェース(API)が開発された。このAPIは本稿ではJiveScriptと称される。JiveScriptの一つの特定の実装の開発は、java(登録商標)ベースのブルーレイROMオーサリング機能を高めたいという望みから出てきた。この開発は、プログラマによって使用されるより簡単でより記述的なインターフェース/ファサードを提供することによって、BD-J APIとインターフェースをもつjava(登録商標)コードを書くプロセスを効率化し、簡単にする。
【0016】
当業者は、BD-Jがブルーレイのための進んだコンテンツをサポートする対話的プラットフォームであることを認識するであろう。BD-Jは、ブルーレイ・ディスク・タイトル上のボーナス・コンテンツが、標準的なDVDによって提供されるボーナス・コンテンツよりずっと洗練されたものとなることを許容する。たとえば、ネットワーク・アクセス(更新された予告編をダウンロードする、あるいはライブ・スタジオ・イベントにアクセスするためなど)、ピクチャー・イン・ピクチャーおよびローカル記憶へのアクセスが含まれる。BD-Jはブルーレイ・ディスク協会(Blu-ray Disc Association)によって開発された。ビデオ・コンテンツをサポートするすべてのブルーレイ・ディスク・プレーヤーはBD-Jをサポートすることが要求されるが、初期のプレーヤーは、一つを例外として(ソニーPS3)いずれも、拡張されたローカル記憶(持続性メモリ)、ピクチャー・イン・ピクチャーまたはインターネット・アクセスといった進んだ機能をサポートしていない。まとめて、これらの機能(インターネット・アクセス以外)は「ボーナス・ビュー」と称され、インターネット・アクセスの追加は「BDライブ」と称される。
【0017】
BD-J APIを使ってある種のタスクを実行することは、非常に大量の冗長な手動コード生成を必要とする。JiveScriptの使用を通じて、本願の原理は、BD-J APIの詳細すべてをカプセル化するJava(登録商標)コードのライブラリを提供し、ブルーレイ作者にとって非常に有用かつフレンドリーな方法および通知プロセスを提供する。
【0018】
本願の原理のJiveScript適用は、ブルーレイBDROMを制作する際に作者が生成するタスクをスクリプト化することの複雑さを著しく簡略化する。JiveScriptは、BD-J APIとインターフェースをもち、該APIの複雑さをカプセル化する一切の必要なjava(登録商標)コードおよび論理を提供(すなわち生成)し、作者に、頻繁に使用されるオーサリング機能の扱いに対するより有意味なアプローチを提供する。
【0019】
本願の原理のある実装によれば、JiveScript APIが提供する機能のいくつかは次のものがある。
【0020】
1.JMFプレーヤーの使用を抽象化して、より簡略化され、簡単に理解できるインターフェースにする(当業者は、JMFプレーヤーがブルーレイ環境に存在するデフォルトのjava(登録商標)メディア・プレーヤーであることを認識するであろう)。
【0021】
2.プレーヤーがメイン・フィーチャー、メイン・メニューまたは他のHDもしくは標準精細度クリップのいずれを再生しているかのプレイバック・モードの概念を導入する。
【0022】
3.作者はプレイリストをより有意味な名前にマッピングするオプションをもつ。たとえば、作者はプレイリスト「00001」を「メイン・フィーチャー」に、あるいは「00002」を「予告編1」にマッピングでき、その後、プレイリストをその番号ではなく名前により参照できる。番号が変わる場合、作者は、コード内の多くの場所ではなく、一箇所におけるマッピングを変更するだけでよい。
【0023】
4.オーディオおよび字幕ストリームを簡単に管理する。JiveScriptはストリームをより有意味な名前にマッピングする機構を提供し、すべての必要な論理が置かれる単一の場所において作者スクリプト(author script)に通知する通知機構を用いる。これは、簡単にメンテナンス可能なコードを提供する。例として、このセクションでは、オーディオまたは字幕ストリームが、「注釈1」およびメイン字幕ストリームといったより有意味な名前にマッピングされる。これらの字幕がコードの任意のセクションから変更されるとき、通知が単一のモジュールに送られる。そのような条件のもとで実行されるために必要とされるすべての論理は、一つの領域に置かれることができ、よって簡単にメンテナンスできる。
【0024】
5.サウンドを再生するすべての詳細のアブストラクトを一つのライブラリ内にもつことによる、サウンドを再生するためのより簡単なアプローチ。作者はそれらのアブストラクトをUIから使うことができる。
【0025】
6.作者のスクリプトに対して簡単に送達されるメディア通知機構。たとえば、作者は、メディアの終わりに達したときなどに通知される。
【0026】
7.作者に対して、メディア時間通知を追加するためのより簡単なアプローチを提供する。
【0027】
上述したように、JiveScriptが提供する一つの利点は、BD-J APIの複雑さを隠し(すなわちカプセル化し)、作者に対して、我々の制作フィーチャーとより整合する、より有意味なインターフェースを提供することである。この概念の若干の例は次のようなものがある。
【0028】
1.作者がメイン・フィーチャーを再生したい場合、作者は次のスクリプトをコード中に入れるだけでよい:
【0029】
【表1】
JiveScriptなしで作者がこれをする(すなわちメイン・フィーチャーを再生する)ことを要求されたとすると、作者は次のコードを書かねばならないであろう:
【0030】
【表2】
このように、JiveScriptはそのような諸機能をライブラリにおいてカプセル化し、そのようなライブラリをコールするためのコードを動的に生成する。
【0031】
2.JiveScriptが提供する利点のもう一つの例は、ストリーム・マネージャ(StreamManager)のマッピングおよび通知機能である。JiveScriptはすべてのマッピングを孤立させ、オーディオまたは字幕ストリームが単一の場所に変化したときに、普通なら作者が実行することを要求されるすべての論理を実行する。JiveScriptは初期化時にBDJiveアプリケーションに通知し、よって、作者はストリーム・マッピングを行うコマンドを置くことができる。すると作者は、アプリケーション・コードを通じて、マッピングされた名前を使用できる。例として、JiveScriptは、ストリーム・マッピングを初期化するために作者のスクリプトに基づいて、次のメソッドを呼び出す:
【0032】
【表3】
初期化完了後、コードのどのセクションがストリームを変えたかにかかわらず、作者は同じスクリプト中への下記の通知を受け取る。これは、作者の観点からは必要である。作者は選択されたストリームをレジストリ中に保存したり、あるいはメイン字幕が変わるときに注釈ストリームを修正したりするなどしなければならないことがありうるからである。
【0033】
【表4】
たとえば、作者は、アプリケーションのどこからでも、ストリームを英語に変えるために、次の行を使うだけでよい。
【0034】
【表5】
引き続いて、streamInfoMainAudioLanguageChanged〔ストリーム情報メイン・オーディオ言語変更〕メソッドをコールし、変更後の言語を渡すことによって、作者のスクリプトに通知が送られる。
【0035】
3.JiveScriptを使って、作者に検索するオプションを提供することによって、作者は、再生モード型が何であるかを知る手段をもつ。これは、異なる型のコンテンツについて異なるメニューがある場合に非常に重要である。たとえば、JiveScriptでは、作者はそのような論理を非常に簡単に実行できる。これは、BD-Jではできないことである。
if(MediaPlayer.get().getPlaybackMode()==MediaPlayer.FEATURE-PLAYBACK){
//ここで論理を実行
}
図1は、本願の原理の例示的な実施形態に基づく、JiveScriptを構成するライブラリ・パッケージ104を要約するブロック図100を示している。作者スクリプト102はJiveScriptライブラリ104とのインターフェースを提供する。JiveScriptライブラリでは、作者は制作環境において上で議論した、より有意味な名前にアクセスできる。スクリプティング・モジュール204(図2参照)が作者スクリプト102を生成し、JiveScriptにおいて利用可能なAPIを使用する。JiveScriptライブラリ104は作者入力に応答し、BD-J API106への適切なJava(登録商標)コードおよび論理を生成する。JiveScriptライブラリ104のいくつかの例は、これに限られないが、デバッグ(Debug)、ストリーム・マネージャ(StreamManager)、メディア・プレーヤー通知器(MediaPlayerNotifier)、プレイリスト・マネージャ(PlaylistManager)、レジストリ・アクセス(RegistryAccess)、メディア・プレーヤー(MediaPlayer)およびブックマーカー(Bookmarker)を含む。
【0036】
当業者は、本願の原理のJiveScript適用が、Java(登録商標)コードおよび対応する論理の生成において作者を支援することを認識するであろう。しかしながら、それぞれのプロジェクトのためのXMLファイル(たとえばデータベース)の生成が残っている。さらなる実装によれば、本稿で「JiveAuthor」と称されるもう一つのオーサリング・ツールがBDJiveプロジェクトのために必要なXMLファイルを生成することにおいて作者を支援する。
【0037】
本稿での用法では、用語「JiveAuthor」は、本稿で開示されるような出願人のオーサリング・ツールを指す。「JiveScript」はBD-JのAPIを使って構築された諸ライブラリである。「BDJive」は、画面上の描画を扱う、出願人によって開発されたアニメーション・エンジンである。BDJiveはまたBD-JグラフィックAPIを使って開発された。
【0038】
JiveAuthor―BDJive XML生成器
本願の原理のある例示的な実施形態によれば、JiveAuthorと称されるシステムが、作者に、BDJiveプロジェクトについての必要なXMLファイルを生成することを許容する。より特定的には、JiveAuthorシステムは必要なXMLファイルを生成でき、作者がXML言語および/またはこれにまつわるあらゆる複雑な詳細に通じていることを要求することはない。
【0039】
このJiveAuthorシステムは、グラフィカル・ユーザー・インターフェースからあらゆるBDJiveエレメントを定義することにおいて作者を支援する。これらのエレメントは、たとえば、タイムライン、レイヤー、ボタン、グラフィック、テキストおよび宣言された資源〔リソース〕を含む。
【0040】
本願の原理に基づくJiveAuthor XML生成器は、BD-Jディスク・オーサリングのプロセスを促進する。このJiveAuthor XML生成器は、JiveAuthorツールのようなツールのセットと、作者が資源を宣言する、グラフィックを配置する、アニメーションを宣言するなどといったことを許容する少なくとも一つのグラフィカル・ユーザー・インターフェースとを提供する。するとJiveAuthor生成器がBDJive準拠XMLを生成する。このように、作者はJava(登録商標)プログラミングを全く理解する必要がない。Java(登録商標)プログラミングは、より簡単な作業フローを許容するよう抽象化されるからである。JiveAuthorツールのいくつかの例示的な機能は次のとおり。
【0041】
1.作者は画像、サウンドおよびフォントを宣言でき、ツールが対応する宣言タグを生成する;
2.作者はタイムライン、レイヤー、ボタン、グラフィック、テキストおよびパンチ(Punch)といったBDJiveエレメントを生成でき、これらのエレメントをUIから操作できる。すべての対応するXMLエレメントが生成される;
3.作者はキー・フレームを作成し、各フレームにおける各エレメントについて異なる属性を割り当てることができ、すべての対応するXMLタグが生成される;
4.ツールはエレメントのグラフィックな表現を表示する。
【0042】
当業者は、BD-Jオーサリング環境の典型的な実装には4つの部分があることを認識するであろう。図2を参照すると、これらの部分はブロック202、204、206および208によって表されている。BDJiveプレーヤー206はJiveScriptライブラリ208とともに、作者の生成したコンテンツとともに最終的なディスクに含められる。JiveAuthor202およびスクリプティング・モジュール204は、作者がディスクに載るコンテンツを生成するのを助けるために、作者にユーザー・インターフェースを提供する。
【0043】
JiveScript208は、作者が使うためのAPIを提供するクラス/ライブラリのセットである(すなわち、MediaPlayer.playMainFeature(...))。JiveAuthor202は、BDJiveアニメーション・エンジンが理解するXMLフォーマットで情報を生成するユーザー・インターフェース(UI)を作者に提供する。Jiveツリー210およびJiveオブジェクト214は、BDJiveアニメーション・エンジンに関係した概念である。
【0044】
少なくとも一つの実装を見るための追加的なレンズとして、以下の要約は、図2に示される例に基づく一つの実装における諸構成要素の相互作用を記述する。この図は、本願の原理によって実装される実際のインターフェースではなく、むしろ制作フローを提供する。
【0045】
1.BDJiveプレーヤー206はBD-J環境のためのアニメーションを提供し、諸アニメーション機能を呼び出すためのXML入力(単数または複数)を受け付ける。BDJiveは、生成されたXML/コードとともにJARファイル上に置かれ、BD-Jアプリケーションとして走る。
【0046】
2.JiveAuthor202は、BDJiveプレーヤー206へのXMLから解放された(XML-free)ユーザー・インターフェース(UI)を提供し、作者が、BDJiveプレーヤーの諸アニメーション機能を呼び出すことを許容する。作者はXMLスクリプトを明示的に書くことはない。むしろ、作者はより便利なユーザー・インターフェース・ツールを使用し、JiveAuthor202が対応するXMLスクリプト(単数または複数)210を生成する。
【0047】
3.JiveScriptは、BD-J環境において提供されるさまざまな機能性を簡略化し、カプセル化するJava(登録商標)オブジェクト214を提供する。これらのオブジェクトは、Java(登録商標)コードを使って呼び出される。作者は、BDJiveプレーヤーの諸アニメーション機能を別個に使うとともに、典型的にはこれらの機能を呼び出してもよい。
【0048】
4.BD-Jスクリプティング・モジュール204は、JiveScriptへのJava(登録商標)から解放された(Java(登録商標)-free)インターフェースを提供し、作者がJiveScriptオブジェクトを呼び出すことを許容する。作者はJava(登録商標)コードを明示的に書くことはない。むしろ、作者はより便利なユーザー・インターフェース・ツールを使用し、BD-Jスクリプティング・モジュールが対応するJava(登録商標)コードを生成する。
【0049】
まとめると、下記のさらなる記述からも明白であろうように、スクリプティング・モジュール204は、スクリプト212の生成を可能にする作者インターフェースを提供する。JiveAuthor202はJiveツリーXML210を生成し、JiveツリーXML210はJiveツリーJava(登録商標)オブジェクト214に変換される。次いで、BDJive206およびJiveScriptライブラリ208がJiveツリーJava(登録商標)オブジェクト214、スクリプト212および資源218と一緒に、JAR/BDJO 216中にパッケージングされる。
【0050】
JiveTree(アニメーション・ツリー):
スクリプティング・モジュール204は、(XMLから変換された)アニメーション・ツリーをツリー・ビューで作者に呈示する。本稿での用法では、用語Jiveツリー(JiveTree)は、このアニメーション・ツリーをいう。ノードのあらゆる可能な属性が隣り合わせに表示される。(たとえば図18のJiveノード・セレクタ参照。)作者はノードの任意の属性を選択でき、するとそのツリーをナビゲートする(最短経路)ために、下記と同様のJava(登録商標)コードが生成される。
例1:
【0051】
【表6】
過去においては、作者は上記のコードを手動で書かなければならなかった。これは時間のかかるプロセスであった。それは、1)作者はJiveツリー・ビューのツリー表現をもたなかったため、および2)作者はいずれかの項目を誤記し、コードが正しくコンパイルされないまたは機能しないことつながる可能性があったためである。
【0052】
BDJive216は、いくつかのスクリプト・オブジェクトとともにXMLフォーマットでアニメーション情報を受け入れる。スクリプト・オブジェクトはボタン・フォーカス獲得、レイヤー・フォーカス獲得……などといったイベントを通知されるjava(登録商標)オブジェクトである。この際、作者は、必要な機能を実行するために何らかのjava(登録商標)コードを書くことになる。
【0053】
図3は、BDJiveアニメーション・エンジンにおける単一のアニメーション・ユニット300の例を示している。各Jiveブロック302はメイン・タイムライン(main timeline)304からなり、各タイムライン304は一つまたは複数のレイヤー(layer)306をもつことができる。ここで、各レイヤーは複数のグラフィック(Graphics)208、ボタン(Button)310およびネストされたタイムライン(Nested Timeline)312および/または追加的なタイムライン314を有することができる。
【0054】
例として、図4は、本願の原理のオーサリング・ツール(JiveAuthor)のある実装に基づくプレビュー・パネル400を示している。このパネルにおいて、作者は、メニューまたは他のグラフィック・エレメントを作成するためにすべてのタイムライン、レイヤーおよび他のエレメントをパネル中に載せていくにつれて、自分の作業の進行を見ることができる。その際、すべての位置情報および使用される資産(assets)は、のちにBD-Jiveアニメーション・エンジンによってレンダリングされることになる最終的なXMLに保存されることになる。このパネルにおいて使用されるすべての画像は、最初に次のページに記載される宣言パネルにおいて宣言されるべきである。
【0055】
たとえば、いくつかのエレメントをもつ簡単なタイムラインを保存すると、次のようなXMLコードが生成される:
【0056】
【表7】
図5は、本願の原理の例示的な実施形態に基づく宣言ファイル500のグラフィックな表現を示している。作者は、資源218(たとえば図2に描かれている画像、サウンドおよびフォント)を上のダイアログから宣言(たとえばインポート)できる。これらの資源は最終的なXMLにおいて宣言タグとして保存される。作者は、メニュー、グラフィック・エレメントを生成する、サウンドを再生するまたはテキストを表示するためにこれらの資源を使うことができる。
【0057】
まず、作者は、プロジェクト・パスにおけるサブディレクトリを表す画像パス502を加える。次いで、作者はUIを介してIDを生成する。このIDは、追加される画像のセットを識別するために使用されることになる。最後に、作者は画像をこのフォルダ内にドラッグ・アンド・ドロップする。
【0058】
あらゆる単一の画像は提供されたIDおよびリスト内のインデックスによって参照される。作者によるこれらの単純な動作の結果として生成されるXMLの例が下記に与えられる:
【0059】
【表8】
図6は、本願の原理のある例示的な実施形態に基づくキー・エディタ画面600の例を示している。このキー・エディタは、タイムライン・エレメントおよび定義されたキー・フレームのツリー・ビューを作者に呈示するセレクタ・ダイアログである。各タイムラインは複数のキー・フレームを有することができる。各キー・フレームは種々の属性をもつことができ、アニメーション・エンジン(たとえばBD-J)が、BD-Jiveアニメーション・エンジンにおいて走っている間に、レンダリングされたアニメーション・パスを決定する。サンプルXMLコードは次のようになる:
【0060】
【表9】
このサンプルは、二つのキー・フレーム(key frame)をもつグラフィック・エレメントの例である。各キー・フレームについて複数の「<key>」タグを含むグラフィックの使用毎について、一つの「<graphic>」を定義できる。フレームの数は、タイムライン・タグによって定義され、これらのタグはキー・フレーム・タグを含むのみである。
【0061】
図7は、本願の原理のある例示的な実施形態に基づく、例としてのメッセージ画面700を示している。あらゆる情報またはエラー・メッセージはメッセージ・パネル702に表示される。これらのメッセージのいくつかは、単に情報を与えるのみであり、他のものは警告およびエラーである。作者は、作者の注意を要求する発生したいかなるエラーまたは検証問題も見ることができ、そうしたエラーまたは検証問題は最終的には修正されることができる。
【0062】
図8は、本願の原理のある例示的な実施形態に基づく例としての属性(properties)パネル800を示す。このパネルは、選択されたノードのタイムライン属性を修正し、その何らかの検証を提供することを作者に許容する。各属性型は、その型に依存して異なる入力機構を有する。属性パネル800は、作者に対するタイムライン属性表示の例を示している。この例において、さまざまな属性がある(すなわち、フレーム、ID、フレーム・ステップ、有効化、フレーム・カウント、開始フレーム等)。
【0063】
たとえば、作者がグラフィックを追加したいとすると、グラフィック属性表示をもつことになり、そこで、そのグラフィックのオブジェクトに関連付けられる画像宣言を入力するよう促される。そのような属性を選択するために、ダイアログが現れて、作者にリストから画像を選択することを許容する。属性ダイアログは作者にブール値のためのチェックボックスまたはテキスト値のための通常のフィールドを呈示する。次いで、これらの属性がXMLに保存される。
【0064】
当業者は、BDJタイトルをオーサリングすることにおける最も困難な課題の一つは、BDJO(タイトル情報ファイル)および付属のJARファイル(アプリケーション・ファイル)を含む最終的なタイトル・ファイルを作成することであることを認識するであろう。図9は、本願の原理のある例示的な実施形態に基づくBDJOイメージ・ジェネレータ・インターフェースの例を示している。この生成ツールは、必要なオプションを選択し(たとえば、「タイトル属性」タブまたは「グローバル属性」タブの下で)、BD-JアプリのためのBDJOおよびJARファイルのセットを生成することを作者に許容する入力パネルを含む。作者は、タイトル番号、ORG ID、ディスクIDおよび出力ディレクトリを他のオプションとともに入力し、「イメージを生成」を押すことができ、するとソフトウェアが必要なコードを生成して対応するイメージを生成する。
【0065】
BD-Jスクリプティング・モジュール
本願の原理のもう一つの例示的な実施形態によれば、スクリプティング・モジュール204(図2参照)がJiveAuthorのユーザーを、手動でJava(登録商標)コードを書くことから解放し、Java(登録商標)経験のない作者にBD-Jタイトルを開発することを許容する。
【0066】
BD-Jスクリプティング・モジュール204は、非常に直観的でユーザーフレンドリーなグラフィカル・ユーザー・インターフェース(UI)のセットと、背景におけるすべての必要な論理および処理要素とからなるモジュールである。スクリプティング・モジュールUIは、作者が上で論じられたようなBDJiveおよびJiveScriptと対話することを許容する。本モジュールはすべての必要なJava(登録商標)コードを生成し、コンテンツのXMLデータベースをディスク上に保存する。
【0067】
当業者は、ブルーレイ・タイトルをJava(登録商標)で手動でコーディングするのは効率的ではないことを認識するであろう。BD-Jスクリプティング・モジュールは、その目標の一つとして、ブルーレイJava(登録商標)コード生成の効率を著しく向上させることをもつ。こうして、このスクリプティング・モジュールの適用により、作者は、BD-JディスクをオーサリングするためにJava(登録商標)の経験や理解を全くもつ必要がない。
【0068】
現在知られている市場で入手可能な製品で、BD-J開発のために100%UI駆動(UI driven)であるものはない。既知の既存の製品はこの問題を、Java(登録商標)開発IDEのためのプラグインを提供することによって解決しようとしてきたが、そうした製品はいまだ作者がJava(登録商標)プログラミングおよび該IDEの使用の経験があることを要求する。BD-Jタイトルをオーサリングする過程で相変わらず作者がJava(登録商標)コードを書くことを要求するからである。
【0069】
本願の原理によるBD-Jスクリプティング・モジュール204は、作者がJiveScriptおよびBDJiveプレーヤー206(すなわちツリー・インタープリタ)内のすべての利用可能なJava(登録商標)オブジェクトとのインターフェースをもつことを許容する、必要なすべての論理およびUIを提供する。JiveScriptはBD-J APIとインターフェースをもち、BDJiveがメニューのすべてのグラフィックおよびアニメーションを扱う。
【0070】
いくつかのBDJiveノードは、メニューを隠す、プレイリストにジャンプする、ツリー・ノード属性を修正するなどのような論理を実行するためにそれらのノードに関連付けられたJava(登録商標)クラスを有する。スクリプティング・モジュールは作者がUIからこれらのクラスを生成し、すべての必要な機能性を追加/更新することができるようにする。作者がスクリプトの追加または更新を終えたのち、保存動作が:(i)すべての必要なJava(登録商標)クラスおよび関連するXMLデータベースを生成または更新し;(ii)スクリプトをコンパイルし;(iii)エラーがあればそれを作者に呈示する。UIは以下の機能をサポートする。
【0071】
1.BDJiveクラスのメソッドおよび各メソッド内の追加されたコマンド/論理ブロックのツリー・ビューを呈示する(図10参照)。
【0072】
2.作者には、ネストされた論理ブロック(logic block)をいくつ埋め込むことができるかについて制限がない(図11参照)。こうして、スクリプティング・モジュールは無制限の量の論理ブロックのネストを許容する。当業者は、論理ブロックが表式の評価の結果としてブール値に基づいて実行されるブロックであることを認識するであろう。こうして、作者は、表式が真であると評価される場合にのみ実行される論理ブロック内に何らかの機能性を置くことができる。作者は、論理ブロック内に制限なしに多くの論理ブロックを入れる(すなわち、論理ブロックをネストする)オプションをもつ。これまで、この概念は、伝統的なDVDオーサリングにおいて使用されていた以前の製品においては利用可能ではなかった。無制限のネストされたブロックは、複雑な論理ブロックの生成を許容するために望まれる。本願の原理のこの側面は、ネストされたオブジェクトを再帰的にナビゲートし、必要なブロックJava(登録商標)コードを生成することによって達成される。
【0073】
3.作者は変数に値を割り当てることができ、変数の名前を変更することができる。
【0074】
4.作者は、図12に示されるように、多くの論理文からなる複雑な論理条件を生成できる。
【0075】
5.スコープ内のあらゆる変数は条件フィールドにおいて作者に対して表示され、簡単に選択できる(図13参照)。
【0076】
6.作者は、条件フィールドの隣にあるボタンをクリックすることによって値を返すメソッドを選択することもできる。
【0077】
7.スクリプティング・モジュールはまた、コマンドがパラメータをいくつもつかを自動的に決定し、JiveScriptライブラリにおいて利用可能な各メソッドについてフィールドを表示し、各メソッドをそのJava(登録商標)型に基づいて型に変換し、属性が提供されている場合、各引数(argument)の隣に説明を呈示する。上述したように、前記メソッドは、ある種の機能を実行するためにコールされることのできるJava(登録商標)オブジェクト/クラスのメンバーであり、前記引数は、処理のために前記メソッドに渡される、値または別のオブジェクトの参照である。図14は一つのパラメータをもつ第一の見本を示し、図15は複数のパラメータをもつ第二の見本を示す。
【0078】
8.作者は、便利に、ノードを右クリックして、より多くのコマンドまたは論理ブロックを追加し、コマンドまたは論理ブロックを除去、コピー、切り取りまたは貼り付けすることができる(図16参照)。
【0079】
9.スクリプティング・モジュールは、JiveScriptから一つ、JiveTree属性からもう一つで二組のコマンド・セレクタを提供する。各ウィンドウが異なるインターフェースを提供する。図17に示されるJiveScriptSelectorは、JiveScript APIへのインターフェースを提供し、スコープ内のメソッドおよびオブジェクトに渡されるパラメータへのアクセスを許容する。図18のダイアログに示されるJiveNodePropertySelectorは作者に、JiveTree内のすべてのオブジェクトのツリー・ビューを呈示し、作者が、それらのメソッドの任意のものをコマンドとして含められるよう選択することを許容し、それらの戻り値が変数に保存される。ツリー・ビューは、BDJiveオブジェクトから何らかの情報を読むことによってXMLから生成される。しかしながら、JiveScriptはまた、これに加えて何らかの機能性を、よって本願の原理のインターフェースを提供する。
【0080】
本願の原理のある例示的な実施形態によれば、スクリプティング・モジュールは動的にすべての「JiveScript」または「TreeNodes」ライブラリを読み、なされることのできる可能な属性またはメソッド・コールを生成し、対応するオプションをUIにおいて作者に呈示する。JiveScriptまたはTreeNodeライブラリは、新しい機能性を加えることによって拡張されることができ、これらの追加も、スクリプティング・モジュール・コードを修正するUIにおいて作者に呈示されることになる。
【0081】
10.ひとたびJiveTree Nodeがその属性とともに選択されると、スクリプティング・モジュールはそのツリーをナビゲートし、生成されるスクリプトによってナビゲートされるべき最短経路を決定することができる。たとえば、下記はUI選択から生成されたコードから生成された見本コードである:
【0082】
【表10】
11.スクリプティング・モジュールは、すべての作者選択コマンドをXMLデータベースに、あるフォーマットで保存する。下記はXMLデータベースの例である。
【0083】
【表11】
12.スクリプティング・モジュールは、自動的にJava(登録商標)コードを生成し、それをJava(登録商標)コンパイラを使ってコンパイルする。見本の自動生成コードは次のとおり:
【0084】
【表12】
図19は、まとまってスクリプト生成タスクを実行する種々のソフトウェア・モジュール/パッケージの高レベルのビューを呈示するクラス図1900である。換言すれば、これは本願の原理のある例示的な実施形態に基づく、BDJスクリプティング・モジュール204についての高レベルの設計図である。手短に言うと、ClassBuilderFactory 1902は使用される各クラスの一つのインスタンスを初期化するために使われる。ClassBuilder 1904は作者の機能性に基づいてJava(登録商標)コードを生成する役割を担うオブジェクトである。Java(登録商標)CodeGenerator 1906は、コード生成において使用されるユーティリティである。Java(登録商標)TreeConverter 1920は保存されたXMLをナビゲートし、メモリ内の諸オブジェクトのツリー・ビューを生成するオブジェクトである。JiveTreeNavigator 1918は、作者がコマンドを実行する対象である他のオブジェクトへのリンクを確立するために、メモリ内のツリーをナビゲートするオブジェクトである。他のクラス1908、1910、1912、1914、1916、1922および1924は、作者とインターフェースをもつためにユーザー・インターフェース(UI)によって使用される。
【0085】
図20は、本願の原理のある例示的な実施形態に基づくメイン・スクリプティング・モジュール・ダイアログ・インターフェースの例を示している。このダイアログ・インターフェースは、スクリプト・タイムライン(timeline)およびユーザーへのツリー・ビューの例を示している。この例から見て取れるように、ユーザーは各モジュール(たとえばonPush()-void)およびこれに応答して生成された関連する論理ブロックの完全なビューをもつ。
【0086】
図21は、本願の原理のある例示的な実施形態に基づくメソッド2100の高レベルの流れ図を示している。最初、媒体をオーサリングするために作者から入力が受け入れられる(2102)。作者入力に応答して、前記媒体からのコンテンツのその後の再生のために互換である言語で命令の組が生成される(2104)。本開示を通じて述べているように、この命令の組はスクリプティング・モジュールによって生成される。このスクリプティング・モジュールは、命令の組を入力するために作者によって使用されるJive Authorインターフェースとインターフェースをもつ。ひとたび命令の組が生成されたら、それらの命令は前記媒体に保存され(2106)、それとともに前記コンテンツが前記媒体上に記憶される(2108)。
【0087】
スクリプティング・モジュールによって生成される命令の組は、しばしば:1)やはり前記媒体上に記憶されている(JiveScriptによって生成された)一つまたは複数のライブラリを呼び出し;および/または2)やはり前記媒体上に記憶されているアニメーション・エンジン(たとえばBDJive)中に入力される。
【0088】
当業者は、本願の原理のスクリプティング・モジュールのUIから生成されるあらゆる可能なJava(登録商標)構造体を予期し、カバーすることが難しいことを認識するであろう。しかしながら、本願の原理のスクリプティング・モジュールはリストを絞り込み、Java(登録商標)コード・エレメントのサブセットが含められることを許容する。たとえば、この実装において、「if/else」論理ブロックはスクリプティング・モジュールによってサポートされる。他の考えられている実装では、スクリプティング・モジュールは、たとえば「for」または「while」ループのような他のJava(登録商標)コード・エレメントをサポートできる。
【0089】
追加的な実装および特徴
記載された例示的な実施形態の特徴および側面はまた、他の実装のために適応されることもできる。たとえば、オーサリング環境は、たとえば高精細度DVDのようなブルーレイ・ディスク以外のデジタル・メディアをオーサリングするために、あるいはDVD以外のメディアをオーサリングするために提供されていてもよい。さらに、記載された機能の一つまたは複数は、他の点で本稿で記載または示唆された環境のいずれとも異なるオーサリング環境中に含められてもよい。
【0090】
したがって、本稿で記載された実装はブルーレイ・ディスク実装のコンテキストで記載されていることがありうるが、そのような記載は決して、本願の特徴および概念をそのような実装またはコンテキストに限定するものと解釈すべきではない。さらに、本稿の多くの実装はxmlおよび/またはJava(登録商標)コードを受け取るまたは提供するが、たとえばHD DVDフォーマットにおけるJava(登録商標)Script/XMLのような他の型の構造化されたコードが使用されてもよいことは明らかなはずである。
【0091】
本稿で記載された実装はたとえば、方法もしくはプロセス、装置またはソフトウェア・プログラムにおいて実装されうる。たとえ単一の形の実装のコンテキストでのみ論じられていたとしても(たとえば方法としてのみ論じられていたとしても)、論じられている実装または特徴は他の形(たとえば装置またはプログラム)においても実装されうる。装置は、たとえば、適切なハードウェア、ソフトウェアおよびファームウェアにおいて実装されうる。方法はたとえば、コンピュータまたは他の処理装置などのような装置において実装されてもよい。さらに、方法は、処理装置または他の装置によって実行される命令によって実装されてもよく、そのような命令は、たとえばDVDまたは他のコンピュータ可読記憶デバイスのようなコンピュータ可読媒体上、あるいは集積回路上に記憶されてもよい。
【0092】
当業者には明白なはずであるが、実装はまた、たとえば記憶または伝送されうる情報を担持するようフォーマットされた信号を生成してもよい。該情報はたとえば、方法を実行するための命令、あるいは記載された実装の一つによって生成されるデータを含んでもよい。たとえば、信号はオーサリングされたブルーレイ・ディスクの内容をデータとして担持するようフォーマットされてもよい。
【0093】
さらに、本開示によって他の実装が考えられている。たとえば、開示されている実装のさまざまな特徴を削除、修正または補足することによって、追加的な実装が作り出されてもよい。
【0094】
付属のリストはさまざまな実装の短いリストを提供する。該リストは網羅的であることは意図されておらず、単に数多くの可能な実装のうちの少数の短い記述を提供するものである。
【技術分野】
【0001】
関連出願への相互参照
本願は米国特許法第119条(e)により、2007年4月11日に出願された米国仮特許出願第60/922,978号の優先権を主張する。該仮出願の教示は本明細書に組み込まれる。
【0002】
技術分野
本願の原理はブルーレイ・ディスクに関する。より詳細には、本願の原理はブルーレイ・ディスクおよび他のデジタル・メディアのオーサリングに関する。
【背景技術】
【0003】
ブルーレイ・ディスクは映画またはゲームのような何らかのコンテンツを含むが、多くの追加的情報およびタイトル、メニュー、テキスト…等を与えるプログラミングをも含む。伝統的に、この追加的情報の多くならびにそれが表す書式および編成はJava(登録商標)コードの形で与えられていた。つまり、作者は、たとえば映画中の適切な場所にメニューおよびタイトルを挿入したり、ゲーム中の適切な場所にグラフィックを挿入したりするJava(登録商標)コードを書く。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示から明白となるように、ブルーレイ・タイトルをJava(登録商標)で手動でコーディングするのは効率的ではない。
【課題を解決するための手段】
【0005】
本願の原理は、ブルーレイ・ディスクをオーサリングする際に使うための新しいツール(すなわちアプリケーション)を提供する。BD-Jiveプレーヤーと一緒に使われるとき、作者は任意の要求される追加的情報を、XMLやJava(登録商標)コーディングを必要としないユーザー・インターフェース(UI)を使って提供できる。むしろ、UIは作者が情報をより一般的に表現することを許容し、次いでエンジンが関連するXMLファイルおよびJava(登録商標)コードを必要に応じて生成してくれる。
【0006】
ある実装によれば、本稿で開示される新しいツール(アプリケーション)は、JiveScript〔ジャイブスクリプト〕、JiveAuthor〔ジャイブオーサー〕およびBD-J ScriptingModule〔BD-Jスクリプティング・モジュール〕と称される。これらのアプリケーションは、BD-Jive(本稿では同義でBD-Jiveプレーヤーとも称される)とともに、ブルーレイ・ディスクのオーサリングの際に以下の利点を提供する:
1.作者はJava(登録商標)やXMLの経験をもつ必要がない;
2.BD-Jアプリケーションの開発をスピードアップする;
3.すべての生成されるコードはテストされ、作者は非常に詳細なユニット・テストを実行する必要がないので、テスト期間を短縮した;
4.ユーザー・フレンドリーなUI環境を提供した。
【0007】
そのようなイニシアチブを取ることの背後にある動機は、ブルーレイ規格とともに機能するそのような環境を提供するツールが市場にないことである。
【0008】
アニメーション・エンジン(たとえばBD-Jive)の使用により、作者はメニュー位置、アニメーション型および他の情報のような必要な情報を、XML言語の形で提供する。次いで、必要なメニュー項目またはゲーム・グラフィックまたはその他の特徴を再生するために、プレーヤーにおいてそのXMLがレンダリングされる。
【0009】
作者はまた、java(登録商標)プログラムを追加することによってアニメーション・エンジンの機能性を拡張する選択肢をもつ。これらのプログラムは、映画を通じてナビゲートする〔映画内を行き来する〕、ブックマークを保存する、リアルタイムでアニメーション・オブジェクトと対話するといった追加的なタスクを実行する。これらの機能のいくつかは、本稿でBD-Jとも称されるブルーレイ・アプリケーション・プログラミング・インターフェース(API)とのインターフェースをもつことを要求する。よって、この型のインターフェースを簡単にし、作者にとってよりフレンドリーにするために、スクリプティング・ライブラリが導入された。
【0010】
これらおよびその他の側面は、ある実装に基づいて達成される。該実装では、コンテンツ記憶媒体をオーサリングする方法が、前記媒体をオーサリングするために作者から入力を受け付ける段階と、作者の入力に応答して前記媒体をオーサリングするための命令の組を、前記媒体からの前記コンテンツのその後の再生と互換な言語で生成する段階と、生成された命令の組を前記媒体上に記憶する段階と、コンテンツを前記媒体上に記憶する段階とを含む。本方法はさらに、前記命令の組の中に含まれる一つまたは複数の命令に応答して前記媒体上に記憶されたライブラリ・ルーチンを呼び出す段階を含むことができる。
【0011】
一つまたは複数の実装の詳細が付属の図面および以下の記述において記載される。たとえ一つの特定の仕方で記述されていても、実装がさまざまな仕方で構成または具現されてもよいことは明らかなはずである。たとえば、実装は、方法として実行されてもよいし、あるいは一組の動作を実行するよう構成された装置または一組の動作を実行するための命令を記憶する装置として具現されてもよい。他の側面および特徴は、付属の図面および請求項と一緒に考慮される以下の詳細な記述から明白になるであろう。
【0012】
図面において、各図を通じて同様の参照符号は同様の要素を指す。
【図面の簡単な説明】
【0013】
【図1】ライブラリ・パッケージ(JiveScript)を表すブロック図である。
【図2】BD-Jオーサリング環境における本願の原理の例示的な実施形態のブロック図である。
【図3】本願の原理の例示的な実施形態に基づく、BD-Jアニメーション・エンジンにおける単一のアニメーション・ユニットの例を示す図である。
【図4】本願の原理の例示的な実施形態に基づくオーサリング・ツール(JiveAuthor)の、例としてのプレビュー・パネルを示す図である。
【図5】本願の原理の例示的な実施形態に基づく宣言ファイルの図的な表現である。
【図6】本願の原理の例示的な実施形態に基づくキー・エディタ画面の、例としての図である。
【図7】本願の原理の例示的な実施形態に基づくメッセージ画面の、例としての図である。
【図8】本願の原理の例示的な実施形態に基づくプロパティ・パネルの、例としての図である。
【図9】本願の原理の例示的な実施形態に基づくBDJOイメージ・ジェネレータ・インターフェースの、例としての図である。
【図10】本願の原理の例示的な実施形態に基づく、BD-Jクラス・メソッドおよび各メソッド内の追加されたコマンド/論理ブロックの、例としてのツリー・ビューである。
【図11】本願の原理の例示的な実施形態に基づくネストされた論理ブロックの、例としての図である。
【図12】本願の原理の例示的な実施形態に基づく論理文の、例としてのインターフェース・ビューである。
【図13】本願の原理の例示的な実施形態に基づく、条件フィールドにおいて作者に呈示される変数の、例としての図である。
【図14】本願の原理の例示的な実施形態に基づく、1パラメータをもつ第一のサンプルの、例としての図である。
【図15】本願の原理の例示的な実施形態に基づく、複数パラメータをもつ第二のサンプルの、例としての図である。
【図16】本願の原理の例示的な実施形態に基づく、特定のノード上に作者のオプションを示す、例としての図である。
【図17】本願の原理の例示的な実施形態に基づくJiveScript作者インターフェースの、例としての図である。
【図18】JiveTree内のすべてのオブジェクトのツリー・ビューを作者に提供するJive Nodeセレクタの例としての図である。
【図19】本願の原理の例示的な実施形態に基づくスクリプティング・モジュールによって実行されるスクリプト生成タスクの高レベルのブロック図である。
【図20】本願の原理の例示的な実施形態に基づくスクリプティング・モジュール・ダイアログ・インターフェースの、例としての図である。
【図21】本願の原理の例示的な実施形態に基づく、記憶媒体上にコンテンツをオーサリングする方法を示す、例としての高レベルの流れ図である。
【発明を実施するための形態】
【0014】
ここで本願の原理について述べる。本願の原理の諸適用の間の分離を維持するため、複数のセクションにおいて述べる。
【0015】
JiveScript
本願の原理の実装の例示的な実施形態によれば、新しいアプリケーション・プログラミング・インターフェース(API)が開発された。このAPIは本稿ではJiveScriptと称される。JiveScriptの一つの特定の実装の開発は、java(登録商標)ベースのブルーレイROMオーサリング機能を高めたいという望みから出てきた。この開発は、プログラマによって使用されるより簡単でより記述的なインターフェース/ファサードを提供することによって、BD-J APIとインターフェースをもつjava(登録商標)コードを書くプロセスを効率化し、簡単にする。
【0016】
当業者は、BD-Jがブルーレイのための進んだコンテンツをサポートする対話的プラットフォームであることを認識するであろう。BD-Jは、ブルーレイ・ディスク・タイトル上のボーナス・コンテンツが、標準的なDVDによって提供されるボーナス・コンテンツよりずっと洗練されたものとなることを許容する。たとえば、ネットワーク・アクセス(更新された予告編をダウンロードする、あるいはライブ・スタジオ・イベントにアクセスするためなど)、ピクチャー・イン・ピクチャーおよびローカル記憶へのアクセスが含まれる。BD-Jはブルーレイ・ディスク協会(Blu-ray Disc Association)によって開発された。ビデオ・コンテンツをサポートするすべてのブルーレイ・ディスク・プレーヤーはBD-Jをサポートすることが要求されるが、初期のプレーヤーは、一つを例外として(ソニーPS3)いずれも、拡張されたローカル記憶(持続性メモリ)、ピクチャー・イン・ピクチャーまたはインターネット・アクセスといった進んだ機能をサポートしていない。まとめて、これらの機能(インターネット・アクセス以外)は「ボーナス・ビュー」と称され、インターネット・アクセスの追加は「BDライブ」と称される。
【0017】
BD-J APIを使ってある種のタスクを実行することは、非常に大量の冗長な手動コード生成を必要とする。JiveScriptの使用を通じて、本願の原理は、BD-J APIの詳細すべてをカプセル化するJava(登録商標)コードのライブラリを提供し、ブルーレイ作者にとって非常に有用かつフレンドリーな方法および通知プロセスを提供する。
【0018】
本願の原理のJiveScript適用は、ブルーレイBDROMを制作する際に作者が生成するタスクをスクリプト化することの複雑さを著しく簡略化する。JiveScriptは、BD-J APIとインターフェースをもち、該APIの複雑さをカプセル化する一切の必要なjava(登録商標)コードおよび論理を提供(すなわち生成)し、作者に、頻繁に使用されるオーサリング機能の扱いに対するより有意味なアプローチを提供する。
【0019】
本願の原理のある実装によれば、JiveScript APIが提供する機能のいくつかは次のものがある。
【0020】
1.JMFプレーヤーの使用を抽象化して、より簡略化され、簡単に理解できるインターフェースにする(当業者は、JMFプレーヤーがブルーレイ環境に存在するデフォルトのjava(登録商標)メディア・プレーヤーであることを認識するであろう)。
【0021】
2.プレーヤーがメイン・フィーチャー、メイン・メニューまたは他のHDもしくは標準精細度クリップのいずれを再生しているかのプレイバック・モードの概念を導入する。
【0022】
3.作者はプレイリストをより有意味な名前にマッピングするオプションをもつ。たとえば、作者はプレイリスト「00001」を「メイン・フィーチャー」に、あるいは「00002」を「予告編1」にマッピングでき、その後、プレイリストをその番号ではなく名前により参照できる。番号が変わる場合、作者は、コード内の多くの場所ではなく、一箇所におけるマッピングを変更するだけでよい。
【0023】
4.オーディオおよび字幕ストリームを簡単に管理する。JiveScriptはストリームをより有意味な名前にマッピングする機構を提供し、すべての必要な論理が置かれる単一の場所において作者スクリプト(author script)に通知する通知機構を用いる。これは、簡単にメンテナンス可能なコードを提供する。例として、このセクションでは、オーディオまたは字幕ストリームが、「注釈1」およびメイン字幕ストリームといったより有意味な名前にマッピングされる。これらの字幕がコードの任意のセクションから変更されるとき、通知が単一のモジュールに送られる。そのような条件のもとで実行されるために必要とされるすべての論理は、一つの領域に置かれることができ、よって簡単にメンテナンスできる。
【0024】
5.サウンドを再生するすべての詳細のアブストラクトを一つのライブラリ内にもつことによる、サウンドを再生するためのより簡単なアプローチ。作者はそれらのアブストラクトをUIから使うことができる。
【0025】
6.作者のスクリプトに対して簡単に送達されるメディア通知機構。たとえば、作者は、メディアの終わりに達したときなどに通知される。
【0026】
7.作者に対して、メディア時間通知を追加するためのより簡単なアプローチを提供する。
【0027】
上述したように、JiveScriptが提供する一つの利点は、BD-J APIの複雑さを隠し(すなわちカプセル化し)、作者に対して、我々の制作フィーチャーとより整合する、より有意味なインターフェースを提供することである。この概念の若干の例は次のようなものがある。
【0028】
1.作者がメイン・フィーチャーを再生したい場合、作者は次のスクリプトをコード中に入れるだけでよい:
【0029】
【表1】
JiveScriptなしで作者がこれをする(すなわちメイン・フィーチャーを再生する)ことを要求されたとすると、作者は次のコードを書かねばならないであろう:
【0030】
【表2】
このように、JiveScriptはそのような諸機能をライブラリにおいてカプセル化し、そのようなライブラリをコールするためのコードを動的に生成する。
【0031】
2.JiveScriptが提供する利点のもう一つの例は、ストリーム・マネージャ(StreamManager)のマッピングおよび通知機能である。JiveScriptはすべてのマッピングを孤立させ、オーディオまたは字幕ストリームが単一の場所に変化したときに、普通なら作者が実行することを要求されるすべての論理を実行する。JiveScriptは初期化時にBDJiveアプリケーションに通知し、よって、作者はストリーム・マッピングを行うコマンドを置くことができる。すると作者は、アプリケーション・コードを通じて、マッピングされた名前を使用できる。例として、JiveScriptは、ストリーム・マッピングを初期化するために作者のスクリプトに基づいて、次のメソッドを呼び出す:
【0032】
【表3】
初期化完了後、コードのどのセクションがストリームを変えたかにかかわらず、作者は同じスクリプト中への下記の通知を受け取る。これは、作者の観点からは必要である。作者は選択されたストリームをレジストリ中に保存したり、あるいはメイン字幕が変わるときに注釈ストリームを修正したりするなどしなければならないことがありうるからである。
【0033】
【表4】
たとえば、作者は、アプリケーションのどこからでも、ストリームを英語に変えるために、次の行を使うだけでよい。
【0034】
【表5】
引き続いて、streamInfoMainAudioLanguageChanged〔ストリーム情報メイン・オーディオ言語変更〕メソッドをコールし、変更後の言語を渡すことによって、作者のスクリプトに通知が送られる。
【0035】
3.JiveScriptを使って、作者に検索するオプションを提供することによって、作者は、再生モード型が何であるかを知る手段をもつ。これは、異なる型のコンテンツについて異なるメニューがある場合に非常に重要である。たとえば、JiveScriptでは、作者はそのような論理を非常に簡単に実行できる。これは、BD-Jではできないことである。
if(MediaPlayer.get().getPlaybackMode()==MediaPlayer.FEATURE-PLAYBACK){
//ここで論理を実行
}
図1は、本願の原理の例示的な実施形態に基づく、JiveScriptを構成するライブラリ・パッケージ104を要約するブロック図100を示している。作者スクリプト102はJiveScriptライブラリ104とのインターフェースを提供する。JiveScriptライブラリでは、作者は制作環境において上で議論した、より有意味な名前にアクセスできる。スクリプティング・モジュール204(図2参照)が作者スクリプト102を生成し、JiveScriptにおいて利用可能なAPIを使用する。JiveScriptライブラリ104は作者入力に応答し、BD-J API106への適切なJava(登録商標)コードおよび論理を生成する。JiveScriptライブラリ104のいくつかの例は、これに限られないが、デバッグ(Debug)、ストリーム・マネージャ(StreamManager)、メディア・プレーヤー通知器(MediaPlayerNotifier)、プレイリスト・マネージャ(PlaylistManager)、レジストリ・アクセス(RegistryAccess)、メディア・プレーヤー(MediaPlayer)およびブックマーカー(Bookmarker)を含む。
【0036】
当業者は、本願の原理のJiveScript適用が、Java(登録商標)コードおよび対応する論理の生成において作者を支援することを認識するであろう。しかしながら、それぞれのプロジェクトのためのXMLファイル(たとえばデータベース)の生成が残っている。さらなる実装によれば、本稿で「JiveAuthor」と称されるもう一つのオーサリング・ツールがBDJiveプロジェクトのために必要なXMLファイルを生成することにおいて作者を支援する。
【0037】
本稿での用法では、用語「JiveAuthor」は、本稿で開示されるような出願人のオーサリング・ツールを指す。「JiveScript」はBD-JのAPIを使って構築された諸ライブラリである。「BDJive」は、画面上の描画を扱う、出願人によって開発されたアニメーション・エンジンである。BDJiveはまたBD-JグラフィックAPIを使って開発された。
【0038】
JiveAuthor―BDJive XML生成器
本願の原理のある例示的な実施形態によれば、JiveAuthorと称されるシステムが、作者に、BDJiveプロジェクトについての必要なXMLファイルを生成することを許容する。より特定的には、JiveAuthorシステムは必要なXMLファイルを生成でき、作者がXML言語および/またはこれにまつわるあらゆる複雑な詳細に通じていることを要求することはない。
【0039】
このJiveAuthorシステムは、グラフィカル・ユーザー・インターフェースからあらゆるBDJiveエレメントを定義することにおいて作者を支援する。これらのエレメントは、たとえば、タイムライン、レイヤー、ボタン、グラフィック、テキストおよび宣言された資源〔リソース〕を含む。
【0040】
本願の原理に基づくJiveAuthor XML生成器は、BD-Jディスク・オーサリングのプロセスを促進する。このJiveAuthor XML生成器は、JiveAuthorツールのようなツールのセットと、作者が資源を宣言する、グラフィックを配置する、アニメーションを宣言するなどといったことを許容する少なくとも一つのグラフィカル・ユーザー・インターフェースとを提供する。するとJiveAuthor生成器がBDJive準拠XMLを生成する。このように、作者はJava(登録商標)プログラミングを全く理解する必要がない。Java(登録商標)プログラミングは、より簡単な作業フローを許容するよう抽象化されるからである。JiveAuthorツールのいくつかの例示的な機能は次のとおり。
【0041】
1.作者は画像、サウンドおよびフォントを宣言でき、ツールが対応する宣言タグを生成する;
2.作者はタイムライン、レイヤー、ボタン、グラフィック、テキストおよびパンチ(Punch)といったBDJiveエレメントを生成でき、これらのエレメントをUIから操作できる。すべての対応するXMLエレメントが生成される;
3.作者はキー・フレームを作成し、各フレームにおける各エレメントについて異なる属性を割り当てることができ、すべての対応するXMLタグが生成される;
4.ツールはエレメントのグラフィックな表現を表示する。
【0042】
当業者は、BD-Jオーサリング環境の典型的な実装には4つの部分があることを認識するであろう。図2を参照すると、これらの部分はブロック202、204、206および208によって表されている。BDJiveプレーヤー206はJiveScriptライブラリ208とともに、作者の生成したコンテンツとともに最終的なディスクに含められる。JiveAuthor202およびスクリプティング・モジュール204は、作者がディスクに載るコンテンツを生成するのを助けるために、作者にユーザー・インターフェースを提供する。
【0043】
JiveScript208は、作者が使うためのAPIを提供するクラス/ライブラリのセットである(すなわち、MediaPlayer.playMainFeature(...))。JiveAuthor202は、BDJiveアニメーション・エンジンが理解するXMLフォーマットで情報を生成するユーザー・インターフェース(UI)を作者に提供する。Jiveツリー210およびJiveオブジェクト214は、BDJiveアニメーション・エンジンに関係した概念である。
【0044】
少なくとも一つの実装を見るための追加的なレンズとして、以下の要約は、図2に示される例に基づく一つの実装における諸構成要素の相互作用を記述する。この図は、本願の原理によって実装される実際のインターフェースではなく、むしろ制作フローを提供する。
【0045】
1.BDJiveプレーヤー206はBD-J環境のためのアニメーションを提供し、諸アニメーション機能を呼び出すためのXML入力(単数または複数)を受け付ける。BDJiveは、生成されたXML/コードとともにJARファイル上に置かれ、BD-Jアプリケーションとして走る。
【0046】
2.JiveAuthor202は、BDJiveプレーヤー206へのXMLから解放された(XML-free)ユーザー・インターフェース(UI)を提供し、作者が、BDJiveプレーヤーの諸アニメーション機能を呼び出すことを許容する。作者はXMLスクリプトを明示的に書くことはない。むしろ、作者はより便利なユーザー・インターフェース・ツールを使用し、JiveAuthor202が対応するXMLスクリプト(単数または複数)210を生成する。
【0047】
3.JiveScriptは、BD-J環境において提供されるさまざまな機能性を簡略化し、カプセル化するJava(登録商標)オブジェクト214を提供する。これらのオブジェクトは、Java(登録商標)コードを使って呼び出される。作者は、BDJiveプレーヤーの諸アニメーション機能を別個に使うとともに、典型的にはこれらの機能を呼び出してもよい。
【0048】
4.BD-Jスクリプティング・モジュール204は、JiveScriptへのJava(登録商標)から解放された(Java(登録商標)-free)インターフェースを提供し、作者がJiveScriptオブジェクトを呼び出すことを許容する。作者はJava(登録商標)コードを明示的に書くことはない。むしろ、作者はより便利なユーザー・インターフェース・ツールを使用し、BD-Jスクリプティング・モジュールが対応するJava(登録商標)コードを生成する。
【0049】
まとめると、下記のさらなる記述からも明白であろうように、スクリプティング・モジュール204は、スクリプト212の生成を可能にする作者インターフェースを提供する。JiveAuthor202はJiveツリーXML210を生成し、JiveツリーXML210はJiveツリーJava(登録商標)オブジェクト214に変換される。次いで、BDJive206およびJiveScriptライブラリ208がJiveツリーJava(登録商標)オブジェクト214、スクリプト212および資源218と一緒に、JAR/BDJO 216中にパッケージングされる。
【0050】
JiveTree(アニメーション・ツリー):
スクリプティング・モジュール204は、(XMLから変換された)アニメーション・ツリーをツリー・ビューで作者に呈示する。本稿での用法では、用語Jiveツリー(JiveTree)は、このアニメーション・ツリーをいう。ノードのあらゆる可能な属性が隣り合わせに表示される。(たとえば図18のJiveノード・セレクタ参照。)作者はノードの任意の属性を選択でき、するとそのツリーをナビゲートする(最短経路)ために、下記と同様のJava(登録商標)コードが生成される。
例1:
【0051】
【表6】
過去においては、作者は上記のコードを手動で書かなければならなかった。これは時間のかかるプロセスであった。それは、1)作者はJiveツリー・ビューのツリー表現をもたなかったため、および2)作者はいずれかの項目を誤記し、コードが正しくコンパイルされないまたは機能しないことつながる可能性があったためである。
【0052】
BDJive216は、いくつかのスクリプト・オブジェクトとともにXMLフォーマットでアニメーション情報を受け入れる。スクリプト・オブジェクトはボタン・フォーカス獲得、レイヤー・フォーカス獲得……などといったイベントを通知されるjava(登録商標)オブジェクトである。この際、作者は、必要な機能を実行するために何らかのjava(登録商標)コードを書くことになる。
【0053】
図3は、BDJiveアニメーション・エンジンにおける単一のアニメーション・ユニット300の例を示している。各Jiveブロック302はメイン・タイムライン(main timeline)304からなり、各タイムライン304は一つまたは複数のレイヤー(layer)306をもつことができる。ここで、各レイヤーは複数のグラフィック(Graphics)208、ボタン(Button)310およびネストされたタイムライン(Nested Timeline)312および/または追加的なタイムライン314を有することができる。
【0054】
例として、図4は、本願の原理のオーサリング・ツール(JiveAuthor)のある実装に基づくプレビュー・パネル400を示している。このパネルにおいて、作者は、メニューまたは他のグラフィック・エレメントを作成するためにすべてのタイムライン、レイヤーおよび他のエレメントをパネル中に載せていくにつれて、自分の作業の進行を見ることができる。その際、すべての位置情報および使用される資産(assets)は、のちにBD-Jiveアニメーション・エンジンによってレンダリングされることになる最終的なXMLに保存されることになる。このパネルにおいて使用されるすべての画像は、最初に次のページに記載される宣言パネルにおいて宣言されるべきである。
【0055】
たとえば、いくつかのエレメントをもつ簡単なタイムラインを保存すると、次のようなXMLコードが生成される:
【0056】
【表7】
図5は、本願の原理の例示的な実施形態に基づく宣言ファイル500のグラフィックな表現を示している。作者は、資源218(たとえば図2に描かれている画像、サウンドおよびフォント)を上のダイアログから宣言(たとえばインポート)できる。これらの資源は最終的なXMLにおいて宣言タグとして保存される。作者は、メニュー、グラフィック・エレメントを生成する、サウンドを再生するまたはテキストを表示するためにこれらの資源を使うことができる。
【0057】
まず、作者は、プロジェクト・パスにおけるサブディレクトリを表す画像パス502を加える。次いで、作者はUIを介してIDを生成する。このIDは、追加される画像のセットを識別するために使用されることになる。最後に、作者は画像をこのフォルダ内にドラッグ・アンド・ドロップする。
【0058】
あらゆる単一の画像は提供されたIDおよびリスト内のインデックスによって参照される。作者によるこれらの単純な動作の結果として生成されるXMLの例が下記に与えられる:
【0059】
【表8】
図6は、本願の原理のある例示的な実施形態に基づくキー・エディタ画面600の例を示している。このキー・エディタは、タイムライン・エレメントおよび定義されたキー・フレームのツリー・ビューを作者に呈示するセレクタ・ダイアログである。各タイムラインは複数のキー・フレームを有することができる。各キー・フレームは種々の属性をもつことができ、アニメーション・エンジン(たとえばBD-J)が、BD-Jiveアニメーション・エンジンにおいて走っている間に、レンダリングされたアニメーション・パスを決定する。サンプルXMLコードは次のようになる:
【0060】
【表9】
このサンプルは、二つのキー・フレーム(key frame)をもつグラフィック・エレメントの例である。各キー・フレームについて複数の「<key>」タグを含むグラフィックの使用毎について、一つの「<graphic>」を定義できる。フレームの数は、タイムライン・タグによって定義され、これらのタグはキー・フレーム・タグを含むのみである。
【0061】
図7は、本願の原理のある例示的な実施形態に基づく、例としてのメッセージ画面700を示している。あらゆる情報またはエラー・メッセージはメッセージ・パネル702に表示される。これらのメッセージのいくつかは、単に情報を与えるのみであり、他のものは警告およびエラーである。作者は、作者の注意を要求する発生したいかなるエラーまたは検証問題も見ることができ、そうしたエラーまたは検証問題は最終的には修正されることができる。
【0062】
図8は、本願の原理のある例示的な実施形態に基づく例としての属性(properties)パネル800を示す。このパネルは、選択されたノードのタイムライン属性を修正し、その何らかの検証を提供することを作者に許容する。各属性型は、その型に依存して異なる入力機構を有する。属性パネル800は、作者に対するタイムライン属性表示の例を示している。この例において、さまざまな属性がある(すなわち、フレーム、ID、フレーム・ステップ、有効化、フレーム・カウント、開始フレーム等)。
【0063】
たとえば、作者がグラフィックを追加したいとすると、グラフィック属性表示をもつことになり、そこで、そのグラフィックのオブジェクトに関連付けられる画像宣言を入力するよう促される。そのような属性を選択するために、ダイアログが現れて、作者にリストから画像を選択することを許容する。属性ダイアログは作者にブール値のためのチェックボックスまたはテキスト値のための通常のフィールドを呈示する。次いで、これらの属性がXMLに保存される。
【0064】
当業者は、BDJタイトルをオーサリングすることにおける最も困難な課題の一つは、BDJO(タイトル情報ファイル)および付属のJARファイル(アプリケーション・ファイル)を含む最終的なタイトル・ファイルを作成することであることを認識するであろう。図9は、本願の原理のある例示的な実施形態に基づくBDJOイメージ・ジェネレータ・インターフェースの例を示している。この生成ツールは、必要なオプションを選択し(たとえば、「タイトル属性」タブまたは「グローバル属性」タブの下で)、BD-JアプリのためのBDJOおよびJARファイルのセットを生成することを作者に許容する入力パネルを含む。作者は、タイトル番号、ORG ID、ディスクIDおよび出力ディレクトリを他のオプションとともに入力し、「イメージを生成」を押すことができ、するとソフトウェアが必要なコードを生成して対応するイメージを生成する。
【0065】
BD-Jスクリプティング・モジュール
本願の原理のもう一つの例示的な実施形態によれば、スクリプティング・モジュール204(図2参照)がJiveAuthorのユーザーを、手動でJava(登録商標)コードを書くことから解放し、Java(登録商標)経験のない作者にBD-Jタイトルを開発することを許容する。
【0066】
BD-Jスクリプティング・モジュール204は、非常に直観的でユーザーフレンドリーなグラフィカル・ユーザー・インターフェース(UI)のセットと、背景におけるすべての必要な論理および処理要素とからなるモジュールである。スクリプティング・モジュールUIは、作者が上で論じられたようなBDJiveおよびJiveScriptと対話することを許容する。本モジュールはすべての必要なJava(登録商標)コードを生成し、コンテンツのXMLデータベースをディスク上に保存する。
【0067】
当業者は、ブルーレイ・タイトルをJava(登録商標)で手動でコーディングするのは効率的ではないことを認識するであろう。BD-Jスクリプティング・モジュールは、その目標の一つとして、ブルーレイJava(登録商標)コード生成の効率を著しく向上させることをもつ。こうして、このスクリプティング・モジュールの適用により、作者は、BD-JディスクをオーサリングするためにJava(登録商標)の経験や理解を全くもつ必要がない。
【0068】
現在知られている市場で入手可能な製品で、BD-J開発のために100%UI駆動(UI driven)であるものはない。既知の既存の製品はこの問題を、Java(登録商標)開発IDEのためのプラグインを提供することによって解決しようとしてきたが、そうした製品はいまだ作者がJava(登録商標)プログラミングおよび該IDEの使用の経験があることを要求する。BD-Jタイトルをオーサリングする過程で相変わらず作者がJava(登録商標)コードを書くことを要求するからである。
【0069】
本願の原理によるBD-Jスクリプティング・モジュール204は、作者がJiveScriptおよびBDJiveプレーヤー206(すなわちツリー・インタープリタ)内のすべての利用可能なJava(登録商標)オブジェクトとのインターフェースをもつことを許容する、必要なすべての論理およびUIを提供する。JiveScriptはBD-J APIとインターフェースをもち、BDJiveがメニューのすべてのグラフィックおよびアニメーションを扱う。
【0070】
いくつかのBDJiveノードは、メニューを隠す、プレイリストにジャンプする、ツリー・ノード属性を修正するなどのような論理を実行するためにそれらのノードに関連付けられたJava(登録商標)クラスを有する。スクリプティング・モジュールは作者がUIからこれらのクラスを生成し、すべての必要な機能性を追加/更新することができるようにする。作者がスクリプトの追加または更新を終えたのち、保存動作が:(i)すべての必要なJava(登録商標)クラスおよび関連するXMLデータベースを生成または更新し;(ii)スクリプトをコンパイルし;(iii)エラーがあればそれを作者に呈示する。UIは以下の機能をサポートする。
【0071】
1.BDJiveクラスのメソッドおよび各メソッド内の追加されたコマンド/論理ブロックのツリー・ビューを呈示する(図10参照)。
【0072】
2.作者には、ネストされた論理ブロック(logic block)をいくつ埋め込むことができるかについて制限がない(図11参照)。こうして、スクリプティング・モジュールは無制限の量の論理ブロックのネストを許容する。当業者は、論理ブロックが表式の評価の結果としてブール値に基づいて実行されるブロックであることを認識するであろう。こうして、作者は、表式が真であると評価される場合にのみ実行される論理ブロック内に何らかの機能性を置くことができる。作者は、論理ブロック内に制限なしに多くの論理ブロックを入れる(すなわち、論理ブロックをネストする)オプションをもつ。これまで、この概念は、伝統的なDVDオーサリングにおいて使用されていた以前の製品においては利用可能ではなかった。無制限のネストされたブロックは、複雑な論理ブロックの生成を許容するために望まれる。本願の原理のこの側面は、ネストされたオブジェクトを再帰的にナビゲートし、必要なブロックJava(登録商標)コードを生成することによって達成される。
【0073】
3.作者は変数に値を割り当てることができ、変数の名前を変更することができる。
【0074】
4.作者は、図12に示されるように、多くの論理文からなる複雑な論理条件を生成できる。
【0075】
5.スコープ内のあらゆる変数は条件フィールドにおいて作者に対して表示され、簡単に選択できる(図13参照)。
【0076】
6.作者は、条件フィールドの隣にあるボタンをクリックすることによって値を返すメソッドを選択することもできる。
【0077】
7.スクリプティング・モジュールはまた、コマンドがパラメータをいくつもつかを自動的に決定し、JiveScriptライブラリにおいて利用可能な各メソッドについてフィールドを表示し、各メソッドをそのJava(登録商標)型に基づいて型に変換し、属性が提供されている場合、各引数(argument)の隣に説明を呈示する。上述したように、前記メソッドは、ある種の機能を実行するためにコールされることのできるJava(登録商標)オブジェクト/クラスのメンバーであり、前記引数は、処理のために前記メソッドに渡される、値または別のオブジェクトの参照である。図14は一つのパラメータをもつ第一の見本を示し、図15は複数のパラメータをもつ第二の見本を示す。
【0078】
8.作者は、便利に、ノードを右クリックして、より多くのコマンドまたは論理ブロックを追加し、コマンドまたは論理ブロックを除去、コピー、切り取りまたは貼り付けすることができる(図16参照)。
【0079】
9.スクリプティング・モジュールは、JiveScriptから一つ、JiveTree属性からもう一つで二組のコマンド・セレクタを提供する。各ウィンドウが異なるインターフェースを提供する。図17に示されるJiveScriptSelectorは、JiveScript APIへのインターフェースを提供し、スコープ内のメソッドおよびオブジェクトに渡されるパラメータへのアクセスを許容する。図18のダイアログに示されるJiveNodePropertySelectorは作者に、JiveTree内のすべてのオブジェクトのツリー・ビューを呈示し、作者が、それらのメソッドの任意のものをコマンドとして含められるよう選択することを許容し、それらの戻り値が変数に保存される。ツリー・ビューは、BDJiveオブジェクトから何らかの情報を読むことによってXMLから生成される。しかしながら、JiveScriptはまた、これに加えて何らかの機能性を、よって本願の原理のインターフェースを提供する。
【0080】
本願の原理のある例示的な実施形態によれば、スクリプティング・モジュールは動的にすべての「JiveScript」または「TreeNodes」ライブラリを読み、なされることのできる可能な属性またはメソッド・コールを生成し、対応するオプションをUIにおいて作者に呈示する。JiveScriptまたはTreeNodeライブラリは、新しい機能性を加えることによって拡張されることができ、これらの追加も、スクリプティング・モジュール・コードを修正するUIにおいて作者に呈示されることになる。
【0081】
10.ひとたびJiveTree Nodeがその属性とともに選択されると、スクリプティング・モジュールはそのツリーをナビゲートし、生成されるスクリプトによってナビゲートされるべき最短経路を決定することができる。たとえば、下記はUI選択から生成されたコードから生成された見本コードである:
【0082】
【表10】
11.スクリプティング・モジュールは、すべての作者選択コマンドをXMLデータベースに、あるフォーマットで保存する。下記はXMLデータベースの例である。
【0083】
【表11】
12.スクリプティング・モジュールは、自動的にJava(登録商標)コードを生成し、それをJava(登録商標)コンパイラを使ってコンパイルする。見本の自動生成コードは次のとおり:
【0084】
【表12】
図19は、まとまってスクリプト生成タスクを実行する種々のソフトウェア・モジュール/パッケージの高レベルのビューを呈示するクラス図1900である。換言すれば、これは本願の原理のある例示的な実施形態に基づく、BDJスクリプティング・モジュール204についての高レベルの設計図である。手短に言うと、ClassBuilderFactory 1902は使用される各クラスの一つのインスタンスを初期化するために使われる。ClassBuilder 1904は作者の機能性に基づいてJava(登録商標)コードを生成する役割を担うオブジェクトである。Java(登録商標)CodeGenerator 1906は、コード生成において使用されるユーティリティである。Java(登録商標)TreeConverter 1920は保存されたXMLをナビゲートし、メモリ内の諸オブジェクトのツリー・ビューを生成するオブジェクトである。JiveTreeNavigator 1918は、作者がコマンドを実行する対象である他のオブジェクトへのリンクを確立するために、メモリ内のツリーをナビゲートするオブジェクトである。他のクラス1908、1910、1912、1914、1916、1922および1924は、作者とインターフェースをもつためにユーザー・インターフェース(UI)によって使用される。
【0085】
図20は、本願の原理のある例示的な実施形態に基づくメイン・スクリプティング・モジュール・ダイアログ・インターフェースの例を示している。このダイアログ・インターフェースは、スクリプト・タイムライン(timeline)およびユーザーへのツリー・ビューの例を示している。この例から見て取れるように、ユーザーは各モジュール(たとえばonPush()-void)およびこれに応答して生成された関連する論理ブロックの完全なビューをもつ。
【0086】
図21は、本願の原理のある例示的な実施形態に基づくメソッド2100の高レベルの流れ図を示している。最初、媒体をオーサリングするために作者から入力が受け入れられる(2102)。作者入力に応答して、前記媒体からのコンテンツのその後の再生のために互換である言語で命令の組が生成される(2104)。本開示を通じて述べているように、この命令の組はスクリプティング・モジュールによって生成される。このスクリプティング・モジュールは、命令の組を入力するために作者によって使用されるJive Authorインターフェースとインターフェースをもつ。ひとたび命令の組が生成されたら、それらの命令は前記媒体に保存され(2106)、それとともに前記コンテンツが前記媒体上に記憶される(2108)。
【0087】
スクリプティング・モジュールによって生成される命令の組は、しばしば:1)やはり前記媒体上に記憶されている(JiveScriptによって生成された)一つまたは複数のライブラリを呼び出し;および/または2)やはり前記媒体上に記憶されているアニメーション・エンジン(たとえばBDJive)中に入力される。
【0088】
当業者は、本願の原理のスクリプティング・モジュールのUIから生成されるあらゆる可能なJava(登録商標)構造体を予期し、カバーすることが難しいことを認識するであろう。しかしながら、本願の原理のスクリプティング・モジュールはリストを絞り込み、Java(登録商標)コード・エレメントのサブセットが含められることを許容する。たとえば、この実装において、「if/else」論理ブロックはスクリプティング・モジュールによってサポートされる。他の考えられている実装では、スクリプティング・モジュールは、たとえば「for」または「while」ループのような他のJava(登録商標)コード・エレメントをサポートできる。
【0089】
追加的な実装および特徴
記載された例示的な実施形態の特徴および側面はまた、他の実装のために適応されることもできる。たとえば、オーサリング環境は、たとえば高精細度DVDのようなブルーレイ・ディスク以外のデジタル・メディアをオーサリングするために、あるいはDVD以外のメディアをオーサリングするために提供されていてもよい。さらに、記載された機能の一つまたは複数は、他の点で本稿で記載または示唆された環境のいずれとも異なるオーサリング環境中に含められてもよい。
【0090】
したがって、本稿で記載された実装はブルーレイ・ディスク実装のコンテキストで記載されていることがありうるが、そのような記載は決して、本願の特徴および概念をそのような実装またはコンテキストに限定するものと解釈すべきではない。さらに、本稿の多くの実装はxmlおよび/またはJava(登録商標)コードを受け取るまたは提供するが、たとえばHD DVDフォーマットにおけるJava(登録商標)Script/XMLのような他の型の構造化されたコードが使用されてもよいことは明らかなはずである。
【0091】
本稿で記載された実装はたとえば、方法もしくはプロセス、装置またはソフトウェア・プログラムにおいて実装されうる。たとえ単一の形の実装のコンテキストでのみ論じられていたとしても(たとえば方法としてのみ論じられていたとしても)、論じられている実装または特徴は他の形(たとえば装置またはプログラム)においても実装されうる。装置は、たとえば、適切なハードウェア、ソフトウェアおよびファームウェアにおいて実装されうる。方法はたとえば、コンピュータまたは他の処理装置などのような装置において実装されてもよい。さらに、方法は、処理装置または他の装置によって実行される命令によって実装されてもよく、そのような命令は、たとえばDVDまたは他のコンピュータ可読記憶デバイスのようなコンピュータ可読媒体上、あるいは集積回路上に記憶されてもよい。
【0092】
当業者には明白なはずであるが、実装はまた、たとえば記憶または伝送されうる情報を担持するようフォーマットされた信号を生成してもよい。該情報はたとえば、方法を実行するための命令、あるいは記載された実装の一つによって生成されるデータを含んでもよい。たとえば、信号はオーサリングされたブルーレイ・ディスクの内容をデータとして担持するようフォーマットされてもよい。
【0093】
さらに、本開示によって他の実装が考えられている。たとえば、開示されている実装のさまざまな特徴を削除、修正または補足することによって、追加的な実装が作り出されてもよい。
【0094】
付属のリストはさまざまな実装の短いリストを提供する。該リストは網羅的であることは意図されておらず、単に数多くの可能な実装のうちの少数の短い記述を提供するものである。
【特許請求の範囲】
【請求項1】
コンテンツ記憶媒体をオーサリングする方法であって:
前記媒体をオーサリングするための入力を受け入れる段階と;
前記入力に応答して、前記媒体からのコンテンツのその後の再生にとって互換な言語で、前記媒体の前記オーサリングのための命令の組を生成する段階と;
生成された命令の組を前記媒体上に記憶する段階と;
前記媒体上にコンテンツを記憶する段階とを有する、
方法。
【請求項2】
命令の組を生成する前記段階が、前記命令に応答してJava(登録商標)コードまたはXMLスクリプトの少なくとも一つを生成することを含む、請求項1記載の方法。
【請求項3】
入力を受け入れる前記段階が:前記媒体上のコンテンツをフォーマットする、該コンテンツを編成する、該コンテンツを表示するおよび該コンテンツを通じてナビゲートするからなる動作の群から選択される少なくとも一つの動作を記述する入力を受け取ることを含む、請求項1記載の方法。
【請求項4】
前記命令の組の中の少なくとも一つの命令に応答して、前記媒体上に記憶されているライブラリ・ルーチンを呼び出す段階をさらに有する、請求項1記載の方法。
【請求項5】
前記媒体上に記憶されているアニメーション・エンジン中に前記命令の組の少なくとも一つの命令を入力する段階をさらに有する、請求項1記載の方法。
【請求項6】
前記アニメーション・エンジンとのユーザー・インターフェースを提供することをさらに有する、請求項5記載の方法。
【請求項7】
ユーザー入力を受け入れる前記段階がさらに:
前記コンテンツに対応するユーザー宣言された資源についての宣言タグを生成および保存することを含む、
請求項1記載の方法。
【請求項8】
請求項7記載の方法であって、命令の組を生成する前記段階がさらに:
ユーザー・インターフェースを介した前記資源のユーザー操作に応答して、所定のファイル・フォーマットで、保存された前記宣言タグによって特定されるような前記資源の表示のための備えをすることのできるエレメントを生成する段階と;
前記所定のファイル・フォーマットを、再生の際のメディア・プレーヤーによる実行のためにコンパイルする段階とを有する、
方法。
【請求項9】
請求項1記載の方法であって、さらに:
前記生成された命令の組に対応する定義されたタイムライン・エレメントおよびキー・フレームのツリー・ビューを作者に対して表示する段階と;
前記命令の組を記憶する前記段階に先立って、作者が前記タイムラインおよびキー・フレームに変更を施すことを可能にする段階とを有する、
方法。
【請求項10】
前記命令の組に関係するエラーを示すメッセージ画面を表示する段階をさらに有する、請求項9記載の方法。
【請求項11】
構造化されたフォーマットを使って呼び出されることのできる機能を提供する、オーサリングのためのアニメーション・エンジンと;
作者が前記アニメーション・エンジンの少なくとも一つの機能を作者の入力を使って呼び出すことを可能にするアニメーション・エンジン・インターフェースとを有するオーサリング・システムであって、
前記オーサリング・エンジン・インターフェースは前記作者の入力を、前記アニメーション・エンジンによって要求される前記構造化されたフォーマットに変換する、
オーサリング・システム。
【請求項12】
請求項11記載のオーサリング・システムであって:
諸機能をカプセル化するよう構成されたオブジェクトの組であって、前記オブジェクトは前記構造化されたフォーマットを使って呼び出される、オブジェクトの組と
作者が標準的なインターフェース入力を使って前記組における少なくとも一つのオブジェクトを呼び出すことを可能にするオブジェクト・インターフェースとを有し、
前記オブジェクト・インターフェースは作者の前記標準的なインターフェース入力をオブジェクトによって要求される構造化されたフォーマットに変換する、
オーサリング・システム。
【請求項13】
BD-J環境において動作する、請求項11記載のオーサリング・システム。
【請求項14】
前記構造化されたフォーマットが、スクリプトまたはコードの一方を含む、請求項12記載のコンテンツ記憶媒体オーサリング・システム。
【請求項15】
前記スクリプトがJava(登録商標)コードを含み、前記コードがXMLスクリプトを含む、請求項14記載のコンテンツ記憶媒体。
【請求項16】
メディア制作および頒布環境において使用するためのコンピュータ可読プログラム・コードが具現されているコンピュータ使用可能な媒体であって:
前記媒体をオーサリングするために作者から入力を受け入れるためのプログラム・コードと;
前記作者の入力に応答して、前記媒体からのコンテンツのその後の再生と互換な言語で、前記媒体の前記オーサリングのための命令の組を生成するためのプログラム・コードと;
生成された命令の組を前記媒体上に記憶するためのプログラム・コードと;
前記媒体上にコンテンツを記憶するためのプログラム・コードとを有する、
コンピュータ使用可能な媒体。
【請求項17】
命令の組を生成するための前記プログラム・コードがさらに、受け取られたユーザー命令に応答してJava(登録商標)コードまたはXMLスクリプトの少なくとも一つを生成するためのプログラム・コードを含む、請求項16記載のコンピュータ使用可能な媒体。
【請求項18】
入力を受け入れるための前記プログラム・コードがさらに:前記媒体上のコンテンツをフォーマットする、該コンテンツを編成する、該コンテンツを表示するおよび該コンテンツを通じてナビゲートするからなる動作の群から選択される少なくとも一つの動作を記述する入力を受け取るためのプログラム・コードを含む、請求項16記載のコンピュータ使用可能な媒体。
【請求項19】
前記命令の組の中の少なくとも一つの命令に応答して、前記媒体上に記憶されているライブラリ・ルーチンを呼び出すためのプログラム・コードをさらに有する、請求項16記載のコンピュータ使用可能な媒体。
【請求項20】
前記媒体上に記憶されているアニメーション・エンジン中に少なくとも一つの命令を入力するためのプログラム・コードをさらに有する、請求項16記載のコンピュータ使用可能な媒体。
【請求項21】
前記アニメーション・エンジンとの作者インターフェースを提供するためのプログラム・コードをさらに有する、請求項20記載のコンピュータ使用可能な媒体。
【請求項22】
作者入力を受け入れるための前記プログラム・コードがさらに、前記コンテンツに対応する作者宣言された資源についての宣言タグを生成および保存するためのプログラム・コードを含む、請求項16記載のコンピュータ使用可能な媒体。
【請求項23】
請求項22記載のコンピュータ使用可能な媒体であって、命令の組を生成するための前記プログラム・コードがさらに:
作者インターフェースを介した前記資源の作者操作に応答して、所定のファイル・フォーマットで、保存された前記宣言タグによって特定されるような前記資源の表示のための備えをすることのできるエレメントを生成するためのプログラム・コードと;
前記所定のファイル・フォーマットを、再生の際のメディア・プレーヤーによる実行のためにコンパイルするためのプログラム・コードとを有する、
コンピュータ使用可能な媒体。
【請求項24】
請求項16記載のコンピュータ使用可能な媒体であって、さらに:
前記生成された命令の組に対応する定義されたタイムライン・エレメントおよびキー・フレームのツリー・ビューを作者に対して表示するためのプログラム・コードと;
前記命令の組の前記記憶に先立って、作者が前記タイムラインおよびキー・フレームに変更を施すことを可能にするためのプログラム・コードとを有する、
コンピュータ使用可能な媒体。
【請求項1】
コンテンツ記憶媒体をオーサリングする方法であって:
前記媒体をオーサリングするための入力を受け入れる段階と;
前記入力に応答して、前記媒体からのコンテンツのその後の再生にとって互換な言語で、前記媒体の前記オーサリングのための命令の組を生成する段階と;
生成された命令の組を前記媒体上に記憶する段階と;
前記媒体上にコンテンツを記憶する段階とを有する、
方法。
【請求項2】
命令の組を生成する前記段階が、前記命令に応答してJava(登録商標)コードまたはXMLスクリプトの少なくとも一つを生成することを含む、請求項1記載の方法。
【請求項3】
入力を受け入れる前記段階が:前記媒体上のコンテンツをフォーマットする、該コンテンツを編成する、該コンテンツを表示するおよび該コンテンツを通じてナビゲートするからなる動作の群から選択される少なくとも一つの動作を記述する入力を受け取ることを含む、請求項1記載の方法。
【請求項4】
前記命令の組の中の少なくとも一つの命令に応答して、前記媒体上に記憶されているライブラリ・ルーチンを呼び出す段階をさらに有する、請求項1記載の方法。
【請求項5】
前記媒体上に記憶されているアニメーション・エンジン中に前記命令の組の少なくとも一つの命令を入力する段階をさらに有する、請求項1記載の方法。
【請求項6】
前記アニメーション・エンジンとのユーザー・インターフェースを提供することをさらに有する、請求項5記載の方法。
【請求項7】
ユーザー入力を受け入れる前記段階がさらに:
前記コンテンツに対応するユーザー宣言された資源についての宣言タグを生成および保存することを含む、
請求項1記載の方法。
【請求項8】
請求項7記載の方法であって、命令の組を生成する前記段階がさらに:
ユーザー・インターフェースを介した前記資源のユーザー操作に応答して、所定のファイル・フォーマットで、保存された前記宣言タグによって特定されるような前記資源の表示のための備えをすることのできるエレメントを生成する段階と;
前記所定のファイル・フォーマットを、再生の際のメディア・プレーヤーによる実行のためにコンパイルする段階とを有する、
方法。
【請求項9】
請求項1記載の方法であって、さらに:
前記生成された命令の組に対応する定義されたタイムライン・エレメントおよびキー・フレームのツリー・ビューを作者に対して表示する段階と;
前記命令の組を記憶する前記段階に先立って、作者が前記タイムラインおよびキー・フレームに変更を施すことを可能にする段階とを有する、
方法。
【請求項10】
前記命令の組に関係するエラーを示すメッセージ画面を表示する段階をさらに有する、請求項9記載の方法。
【請求項11】
構造化されたフォーマットを使って呼び出されることのできる機能を提供する、オーサリングのためのアニメーション・エンジンと;
作者が前記アニメーション・エンジンの少なくとも一つの機能を作者の入力を使って呼び出すことを可能にするアニメーション・エンジン・インターフェースとを有するオーサリング・システムであって、
前記オーサリング・エンジン・インターフェースは前記作者の入力を、前記アニメーション・エンジンによって要求される前記構造化されたフォーマットに変換する、
オーサリング・システム。
【請求項12】
請求項11記載のオーサリング・システムであって:
諸機能をカプセル化するよう構成されたオブジェクトの組であって、前記オブジェクトは前記構造化されたフォーマットを使って呼び出される、オブジェクトの組と
作者が標準的なインターフェース入力を使って前記組における少なくとも一つのオブジェクトを呼び出すことを可能にするオブジェクト・インターフェースとを有し、
前記オブジェクト・インターフェースは作者の前記標準的なインターフェース入力をオブジェクトによって要求される構造化されたフォーマットに変換する、
オーサリング・システム。
【請求項13】
BD-J環境において動作する、請求項11記載のオーサリング・システム。
【請求項14】
前記構造化されたフォーマットが、スクリプトまたはコードの一方を含む、請求項12記載のコンテンツ記憶媒体オーサリング・システム。
【請求項15】
前記スクリプトがJava(登録商標)コードを含み、前記コードがXMLスクリプトを含む、請求項14記載のコンテンツ記憶媒体。
【請求項16】
メディア制作および頒布環境において使用するためのコンピュータ可読プログラム・コードが具現されているコンピュータ使用可能な媒体であって:
前記媒体をオーサリングするために作者から入力を受け入れるためのプログラム・コードと;
前記作者の入力に応答して、前記媒体からのコンテンツのその後の再生と互換な言語で、前記媒体の前記オーサリングのための命令の組を生成するためのプログラム・コードと;
生成された命令の組を前記媒体上に記憶するためのプログラム・コードと;
前記媒体上にコンテンツを記憶するためのプログラム・コードとを有する、
コンピュータ使用可能な媒体。
【請求項17】
命令の組を生成するための前記プログラム・コードがさらに、受け取られたユーザー命令に応答してJava(登録商標)コードまたはXMLスクリプトの少なくとも一つを生成するためのプログラム・コードを含む、請求項16記載のコンピュータ使用可能な媒体。
【請求項18】
入力を受け入れるための前記プログラム・コードがさらに:前記媒体上のコンテンツをフォーマットする、該コンテンツを編成する、該コンテンツを表示するおよび該コンテンツを通じてナビゲートするからなる動作の群から選択される少なくとも一つの動作を記述する入力を受け取るためのプログラム・コードを含む、請求項16記載のコンピュータ使用可能な媒体。
【請求項19】
前記命令の組の中の少なくとも一つの命令に応答して、前記媒体上に記憶されているライブラリ・ルーチンを呼び出すためのプログラム・コードをさらに有する、請求項16記載のコンピュータ使用可能な媒体。
【請求項20】
前記媒体上に記憶されているアニメーション・エンジン中に少なくとも一つの命令を入力するためのプログラム・コードをさらに有する、請求項16記載のコンピュータ使用可能な媒体。
【請求項21】
前記アニメーション・エンジンとの作者インターフェースを提供するためのプログラム・コードをさらに有する、請求項20記載のコンピュータ使用可能な媒体。
【請求項22】
作者入力を受け入れるための前記プログラム・コードがさらに、前記コンテンツに対応する作者宣言された資源についての宣言タグを生成および保存するためのプログラム・コードを含む、請求項16記載のコンピュータ使用可能な媒体。
【請求項23】
請求項22記載のコンピュータ使用可能な媒体であって、命令の組を生成するための前記プログラム・コードがさらに:
作者インターフェースを介した前記資源の作者操作に応答して、所定のファイル・フォーマットで、保存された前記宣言タグによって特定されるような前記資源の表示のための備えをすることのできるエレメントを生成するためのプログラム・コードと;
前記所定のファイル・フォーマットを、再生の際のメディア・プレーヤーによる実行のためにコンパイルするためのプログラム・コードとを有する、
コンピュータ使用可能な媒体。
【請求項24】
請求項16記載のコンピュータ使用可能な媒体であって、さらに:
前記生成された命令の組に対応する定義されたタイムライン・エレメントおよびキー・フレームのツリー・ビューを作者に対して表示するためのプログラム・コードと;
前記命令の組の前記記憶に先立って、作者が前記タイムラインおよびキー・フレームに変更を施すことを可能にするためのプログラム・コードとを有する、
コンピュータ使用可能な媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【公表番号】特表2010−525429(P2010−525429A)
【公表日】平成22年7月22日(2010.7.22)
【国際特許分類】
【出願番号】特願2010−503023(P2010−503023)
【出願日】平成20年4月4日(2008.4.4)
【国際出願番号】PCT/US2008/004397
【国際公開番号】WO2008/127573
【国際公開日】平成20年10月23日(2008.10.23)
【出願人】(501263810)トムソン ライセンシング (2,848)
【氏名又は名称原語表記】Thomson Licensing
【住所又は居所原語表記】1−5, rue Jeanne d’Arc, 92130 ISSY LES MOULINEAUX, France
【Fターム(参考)】
【公表日】平成22年7月22日(2010.7.22)
【国際特許分類】
【出願日】平成20年4月4日(2008.4.4)
【国際出願番号】PCT/US2008/004397
【国際公開番号】WO2008/127573
【国際公開日】平成20年10月23日(2008.10.23)
【出願人】(501263810)トムソン ライセンシング (2,848)
【氏名又は名称原語表記】Thomson Licensing
【住所又は居所原語表記】1−5, rue Jeanne d’Arc, 92130 ISSY LES MOULINEAUX, France
【Fターム(参考)】
[ Back to top ]