<本発明について>
本発明は、例えば映像コンテンツ内のCGキャラクタの動作やカメラワークといった映像効果を、CGキャラクタやカメラ等の動作を行うオブジェクト単位でアドリブ的(補完的)に制御し、その結果をリアルタイムに映像として出力することを可能とするものである。
具体的には、本発明では、例えば映像コンテンツの今現在の状況に応じて、適切な演出を生成する適応型演出生成の仕組みを導入する。例えば、本実施形態では、適応型演出生成手段等を有して映像コンテンツの状態をリアルタイムに把握し、且つコンテンツを制作するための不可変情報等と共にコンテンツ情報として利用する。
また、これらのコンテンツ情報に基づいて、コンテンツの状況に応じた目的の演出を達成するための動作規則(ルール)を使用し、動作演出を生成するものとする。更に、本発明では、コンテンツの状況及びルールに、演出生成の回数を保持する仕組みを設けて、同一の状況が複数回発生した場合でも、異なる演出の生成を可能とする。また、上述した演出生成は、CGキャラクタやカメラ等の動作を行うオブジェクト単位で持たせる。
以下に、上述したような特徴を有する本発明における映像コンテンツ制作装置及び映像コンテンツ制作プログラムを好適に実施した形態について、図面を用いて詳細に説明する。
なお、本実施形態では、制作する映像コンテンツの一例として番組を用いることとし、また番組の制作や提示等に用いられるスクリプトの一例としてTVMLを用いることとするが、本発明においてはこれに限定されず、他の映像コンテンツやスクリプトを用いてもよい。
<番組制作装置(映像コンテンツ制作装置):概略構成例>
図1は、本実施形態における番組制作装置の機能構成の一例を示す図である。図1に示す番組制作装置10は、入力手段11と、アドリブ制御手段12と、番組制作手段13と、不可変情報データベース14と、再生手段15とを有するよう構成されている。また、番組制作手段13は、演出生成制御手段21と、第1の演出生成手段としての適応型演出生成手段22と、第2の演出生成手段としてのテンプレート演出生成手段23と、演出生成ルール24と、テンプレートTVMLスクリプト群25とを有するよう構成されている。なお、本実施形態では、適応型演出生成手段22と演出生成ルール24、及び、テンプレート演出生成手段23とテンプレートTVMLスクリプト群25を別体としているが、本発明においてはこれに限定されるものではなく、例えば、適応型演出生成手段22と演出生成ルール24とを一体とし、テンプレート演出生成手段23とテンプレートTVMLスクリプト群25とを一体としてもよい。
入力手段11は、例えば、番組制作装置10がPC等の汎用のコンピュータであれば、キーボード(Keyboard)やゲームパッド、マウス等の各種コントローラからなり、ユーザ等からの入力等により本実施形態における各構成の実行指示(アドリブ制御指示、演出生成指示、再生指示)等の入力や、CGキャラクタやカメラ等のオブジェクトに対する動作の入力(操作内容)を受け付ける。また、番組制作装置10が携帯端末等であれば、携帯端末等に設けられた各操作ボタン群やタッチパネル等により、上述の入力を行う。
また、入力手段11では、各種コントローラ等に設けられた1又は複数のボタン等を用い、そのボタンに対して予め割り当てられている台本(演出)の内容をアドリブ制御手段12に出力する。
アドリブ制御手段12は、入力手段11から入力されたユーザからの入力データに基づいてアドリブ用の台本等を生成する。また、アドリブ制御手段12は、例えば、映像コンテンツ内のCGキャラクタの動作やカメラワークについて、台本ではなく、動作に必要なパラメータやTVMLスクリプト(パラメータ/TVMLスクリプト)を生成する。
具体的には、アドリブ制御手段12は、入力手段11からの入力データの内容を解析し、データに予め設定されているフラグや単語、文字、マーク、記号等の識別情報に基づいて、アドリブ用台本、又は、再生手段15により番組を再生するためのパラメータやTVMLスクリプトを生成する。
また、アドリブ制御手段12は、識別情報等に対応させてアドリブ台本を生成した場合には、そのアドリブ台本を演出生成制御手段21に出力し、また識別情報に対応させてパラメータやTVMLスクリプトを生成した場合には、そのスクリプトを再生手段15に出力する。
番組制作手段13は、入力される台本情報と、不可変情報データベース14に蓄積された番組を生成するために必要なデータと、再生手段15からの内部情報等に基づいて番組を制作する。
ここで、不可変情報とは、例えば番組に使用されるCG小道具(壁、扉、机、椅子、テレビ、靴、帽子、おもちゃ等)に対する形状や特徴、用途、画像や映像等の素材等、どのような演出であっても変わることがない情報(メタデータ等)である。また、内部情報とは、例えば、番組におけるCGキャラクタの現在位置座標やCG小道具の現在位置、カメラ位置座標等がある。
具体的には、番組制作手段13における演出生成制御手段21は、演出生成処理用のコントローラであり、例えば外部からの台本(APEスクリプト)、又は、アドリブ制御手段12より得られるアドリブ用台本を解釈し、CGキャラクタやカメラワーク等の動作オブジェクトを制御するためのTVMLスクリプト生成を生成するため、台本内に記述される予め設定されたフラグや単語、文字、マーク、記号等に基づいて適応型演出生成手段22又はテンプレート型演出生成手段23の何れかに割り振って、そのデータを出力する。
また、演出生成制御手段21は、適応型演出生成手段22又はテンプレート型演出生成手段23により得られるTVMLスクリプトを再生手段15に出力する。
適応型演出生成手段22は、演出生成制御手段21から得られた台本を解釈する。具体的には、適応型演出生成手段22は、再生手段15の内部情報から映像コンテンツの現在の再生状態と、映像コンテンツ生成に用いているCGモデルに付加したメタデータとから、不可変情報データベース14であるCGモデルの形状や役割の情報を取得する。
また、適応型演出生成手段22は、演出生成制御手段21から得られた台本を解釈し、予め設定された演出生成ルール24により、コンテンツの状況に応じた演出を生成するTVMLスクリプトを生成する。また、適応型演出生成手段22は、生成されたTVMLスクリプトを演出生成制御手段21に出力する。
つまり、適応型演出生成手段22は、再生手段15からの内部情報及び不可変情報データベース14から得られる各種メタデータから、再生手段15により現時点で再生されているシーンの状況に適応したTVMLスクリプトを動作が達成されるまで予め設定された時間間隔等の所定のタイミングで繰り返し生成する。
テンプレート型演出生成手段23は、演出生成制御手段21から得られた台本を解釈し、予め設定された雛形のTVMLスクリプトが蓄積されたテンプレートTVMLスクリプト群25から、台本の内容に合ったスクリプト情報を取得し、目的の演出を生成するTVMLスクリプトを生成する。また、テンプレート型演出生成手段23は、生成されたTVMLスクリプトを演出生成制御手段21に出力する。
つまり、テンプレート型演出生成手段23は、入力される台本に対して、現時点で再生手段15により再生されているシーンの状態に関係なく台本に対応するTVMLスクリプトを1度生成して処理を終了する。なお、テンプレート型演出生成手段23は、その仕組みが単純であるため、高度な制御を必要としない演出動作は、テンプレート型演出生成処理により演出生成を行う。
ここで、本実施形態において、外部から入力される台本を、演出生成制御手段21から適応型演出生成手段22及びテンプレート型演出生成手段23に送信するタイミングは、予め設定された時間間隔であってもよく、またユーザからの割り込み制御情報や指示情報等の入力のタイミングであってもよく、また、ユーザにより指示された時間のタイミングであってもよい。
再生手段15は、TVMLプレイヤー等の専用のアプリケーション又はブラウザ等を用いて入力されるTVMLスクリプトに対応する番組制作エンジン(APE)や画像データ等の素材データを取得し、取得した各種情報を用いて番組を生成し、生成した番組を再生する。また、再生手段15は、現時点で再生されている番組の状況(CGキャラクタの位置、台詞、CG小道具のような物体オブジェクトの位置、カメラワーク等)を内部情報として、所定の時間間隔や台本の1つの演出の実行後に取得し、取得した内部情報を適応型演出生成手段22に出力する。
<データ例>
ここで、本実施形態における台本及びパラメータ/TVMLスクリプトのデータ例について図を用いて説明する。図2は、本実施形態における台本及びパラメータ/TVMLスクリプトの一例を示す図である。なお、図2(a)は、台本情報の一例を示し、図2(b)は、パラメータ/TVMLスクリプトの一例を示し、図2(c)は、演出生成ルール24の一例示し、図2(d)は、テンプレートTVMLスクリプト群25の一例を示している。なお、図2(a),(b)は、共にアドリブ制御手段12により生成されるデータ例である。
図2(a)の台本情報では、例えば、キャラクタAとキャラクタBの2人のCGキャラクタに対する動作を制御する台本例(例えば、A:(モニタ横へ歩く)、B:(モニタ横へ歩く)、A:(相手を見る)、・・・)が示されている。なお、台本情報としては、動作制御の他にも台詞や画像データ、音声データ、動画データ、テキストデータ等の読み出し制御、表示制御等も含まれる。アドリブ制御手段12は、入力手段11により入力される情報から図2(a)に示すフォーマットの台本情報を生成し、生成された台本情報を演出生成制御手段21に出力する。
また、図2(b)のパラメータ/TVMLスクリプトでは、カメラパラメータ(3次元(例えば、横、縦、奥行き等)のカメラ位置(xc,yc,zc),pan(水平向き角度),tilt(垂直向き角度),vangle(画角))やTVMLスクリプト(例えば、CGキャラクタが歩く座標(Xn=xo+△x,Zn=zo+△z)、character:walk(name=A,x=Xn,z=Zn)等が示されている。
アドリブ制御手段12は、入力手段11により入力された情報から予め設定されたフラグや単語、文字、記号、或いはユーザからの指示内容等により、入力データからパラメータ/TVMLスクリプトを生成する。
また、図2(c)に示す演出生成ルールは、一例として番組のスタジオに存在するモニタに対して、その横にCGキャラクタを歩かせる演出生成ルールが示されている。なお、図2(c)において「#」で始まる行は、ファイル内の記述内容を説明するためのコメント行を示しており、この行に対する処理は行われない。
図2(c)の例では、自分以外のCGキャラクタ(出演者)がdの位置にいた場合には、目的地をdからbに変更し、また自分以外のCGキャラクタ(出演者)がdの位置にいなかった場合には、目的地をdにする。このようにして、自分の目的地を取得したり、また予め固定の目的地を持っているような場合には、その目的地に向かって歩き、目的地についたら処理を終了する。
なお、本実施形態における演出生成ルールは、本発明においては、図2(c)に限定されるものではなく、様々な条件に応じて多数蓄積されている。したがって、適応型演出生成手段22は、所望する適用型演出生成に必要なルールを演出生成ルール24から取得し、取得したルールに基づいてTVMLスクリプトを生成することができる。
また、図2(d)に示すテンプレートTVMLスクリプト群の一例では、例えば、CGキャラクタである出演者Aに台詞を喋らせるテンプレートTVMLスクリプトが示されている。具体的には、図2(d)に示す<TALK_TEXT>の部分に記述されるデータを実際に出演者Aにが喋る台詞に置換することができる。なお、本実施形態におけるテンプレートTVMLスクリプトは、本発明においては、図2(d)に限定されるものではなく、様々な条件に応じて多数のスクリプトがテンプレートTVMLスクリプト群25に蓄積されている。したがって、テンプレート型演出生成手段23は、所望する演出生成に必要なテンプレートをテンプレートTVMLスクリプト群25から取得し、取得したテンプレートに基づいてTVMLスクリプトを生成することができる。
<番組制作処理手順の例>
次に、本実施形態における番組制作処理手順の例についてフローチャートを用いて説明する。図3は、本実施形態における制作処理手順の一例を示すフローチャートである。なお、以下に示す例では、台本データが入力された場合のフローチャートの一例について図を用いて説明する。
図3に示す番組制作処理手順では、まず、予め記述された台本を1行(各要素、処理単位)毎に、予め設定した時間間隔等の取得条件で取得する(S01)。
ここで、ユーザ等による一部のCGキャラクタの動作やカメラワークを手動で制御するための手動制御の台本であるか否かを判断し(S02)、手動制御の台本である場合(S02において、YES)、現時点の1行台本の内容に対応した操作内容を取得する(S03)。また、対応する動作を台本又はパラメータ等により出力し(S04)、出力された内容が台本による出力であるか否かを判断する(S05)。
ここで、S05の処理において、台本による出力である場合(S05において、YES)、又は、上述したS02の処理において、手動制御の台本でない場合(S02において、NO)、次に予めユーザ等からの指示やデータの内容から得られる予め設定された台本識別情報等により、出力された台本が適応型演出生成処理用台本であるか否かを判断する(S06)。ここで、適応型演出生成処理用台本である場合(S06において、YES)、上述した適応型演出生成手段22における適応型でのTVMLスクリプトを生成する(S07)。また、S06の処理において、適応型演出生成処理用台本でない場合(S06において、NO)、上述したテンプレート型演出生成手段23におけるテンプレート型でのTVMLスクリプトを生成する(S08)。なお、上述したS06の処理では、適応型演出生成処理用の台本であるか否かを判断したが、本発明においてはこれに限定されるものではなく、例えば、テンプレート型演出生成処理用の台本であるか否かを判断して後述する処理を行ってもよい。
また、上述したS05の処理において、台本による出力でない場合(S05において、NO)、上述した再生手段15にパラメータ値を出力する(S09)。
ここで、S07、S08、又はS09の処理が終了後、出力されるスクリプトやパラメータ値に基づいて対応する番組(シーン)を生成し(S10)、生成した内容を再生する(S11)。なお、S11の処理では、再生時における番組中のCGキャラクタ等の各コンテンツ情報毎の内部情報を取得しており、この情報は、上述適応型演出生成手段22に出力されている。したがって、上述した適応型演出生成手段22におけるTVMLスクリプトの生成処理では、その内部情報、上述した不可変情報、及び、演出生成ルール等を用いて、例えば所定時間間隔でその時点での内部情報に対応させた次の演出を行うTVMLスクリプトが生成される。
ここで、ユーザ等からの終了指示や台本データの全行に対する番組制作処理が終了した場合等により番組制作処理を終了するか否かを判断し(S12)、処理を終了しない場合(S12において、NO)、S01に戻り、次の台本1行(各要素、処理単位)に対して後続の処理を行う。また、処理を終了する場合(S12において、YES)、番組制作処理を終了する。
このような処理により、番組を制作する際に複数の異なる仕組みを用いて高度なアドリブ制御を実現することができる。
<各実施例について>
ここで、本実施形態を用いた各実施例について説明する。各実施例としては、全てが人手の場合、一部が人手、一部が自動(台本有り)の場合、一部が人手、一部が自動(台本なし)の場合、及び、全てが自動の場合が考えられる。
<実施例1:全てが人手の場合>
本実施形態を用いた実施例1として、例えば、映像コンテンツ上での動作オブジェクト(CGキャラクタの動作・カメラワーク等)毎の全てに人が割り当てられ、全ての動作オブジェクトを人手で操作する場合がある。
この場合には、台本が存在しない完全アドリブの場合と、参考情報としての台本が存在し、一応台本の流れに合わせてユーザが動作オブジェクトを操作し、映像コンテンツを生成する場合とがある。
<実施例2:一部が人手、一部が自動(台本有り)の場合>
本実施形態を用いた実施例2として、例えば、映像コンテンツ上での動作オブジェクトに対して、一部が人手で操作し、一部が自動(台本有り)の場合がある。この場合には、予め記述された台本に基づいて映像コンテンツを生成していく。
つまり、実施例2では、動作オブジェクトの一部に人が割り当てられ、その動作オブジェクトを手動で動かす。また、実施例2では、それ以外の動作オブジェクトは、台本に基づいて、演出生成処理により自動的に動作を生成する。
<実施例3:一部が人手、一部が自動(台本なし)の場合>
また、同様に実施例2として、例えば、映像コンテンツ上での動作オブジェクトに対して、一部が人手で操作し、一部が自動(台本なし)の場合がある。この場合には、予め設定されたユーザの動作オブジェクトを操作した内容に対し、これに対応する動作を演出生成制御手段21がオブジェクトに対して自動生成する。
<実施例4:全てが自動の場合>
本実施形態を用いた実施例3として、例えば、映像コンテンツ上での動作オブジェクトに対して、予め記述された台本に基づいて映像コンテンツを生成していく場合がある。この場合には、各々の動作オブジェクトの何れにも人が割り当てられておらず、全てを台本に従って演出生成制御手段21が自動的に動作を生成する。
ここで、上述した各実施例のうち、特に実施例2について図を用いて具体的に説明する。
<ユーザ操作(人手)によるミスを補正する>
図4は、実施例2に対応する映像コンテンツ制作時の第1の具体例を示す図である。また、図5は、第1の具体例に対応する各処理動作の一例を示すフローチャートである。図4においては、制作している番組のCGキャラクタである出演者A、出演者Bに対し、出演者Aを人手で制御し、出演者Bを演出生成処理が制御する例を示している。
台本の記述例として、例えば、上述した図2(a)に示すような台本例(例えば、A:(モニタ横へ歩く)、B:(モニタ横へ歩く)、A:(相手を見る)、・・・)を処理するものとする。
台本作成時には、人手(ユーザ)が出演者Aを、図4(ア)中の位置(a)から位置(b)へ歩かせることを想定して演出を作成している。したがって、出演者Bは図4(ア)中の位置(c)から位置(d)へ歩く動作を自動生成する。
ここで、ユーザが台本作成時の通りに出演者Aを操作した場合は、問題なく映像コンテンツが生成されるが、図4(イ)に示すように、ユーザが出演者Aを間違って(d)のところへ歩かせた場合、従来の技術では、出演者Bはそのまま(d)へ歩き、出演者Aと出演者Bが重なってしまい、映像コンテンツとして破たんすることになる。
そこで、実施例2では、出演者Bの動作生成に、上述した適応型演出生成処理を用いる。つまり、適応型演出生成処理において、出演者Bの動作を決定する演出生成ルールとして、予め「(d)の周辺に誰かがいれば、もう一方のモニタ横の位置(b)に歩く」と記述しておく。
例えば、図4(ウ)に示す適応型演出生成処理では、図5(a)に示すように、まず映像コンテンツ(番組)の内部情報を取得し、位置(d)の周辺に何かあるか(或いは誰かがいるか)を調べる(S21)。ここで、何かあるか否かを判断し(S22)、何かあると判断した場合(S22において、YES)、位置(b)へ歩くTVMLスクリプトを生成する(S23)。また、S22の処理において、何かあると判断しなかった場合(S22において、NO)、位置(d)へ歩くTVMLスクリプトを生成する。これにより、映像コンテンツは、図4(ウ)の状態となり、出演者A,Bが重なることなく映像コンテンツとしての破たんを回避することができる。
また、予め設定される動作決定ルールとして、図5(b)に示すように、位置(d)の周辺に誰かCGキャラクタ等がいるかを調べ(S31)、誰かいるか否かを判断し(S32)、誰かがいる場合(S32において,YES)、例えば予め「(d)の周辺に誰かがいれば、その誰かの横(例えば、(d'))に歩く」と記述しておくことで、位置(d')へ歩くTVMLスクリプトを生成する(S33)。また、S32の処理において、誰かがいると判断しなかった場合(S32において、NO)、位置(d)へ歩くTVMLスクリプトを生成する(S34)。これにより、映像コンテンツは図4(エ)の状態となり、出演者A,Bが重なることなく映像コンテンツとしての破たんを回避することができる。
なお、上述したように、出演者Aと反対型のモニタの横に行くか、出演者Aの隣に行くかは、ルールの記述によって変更が可能である。
<ユーザ操作(人手)によるブレを補正する>
次に、ユーザ操作(人手)によるミスではなく、操作上のブレを補正する例について具体的に説明する。
図6は、実施例2に対応する映像コンテンツ制作時の第2の具体例を示す図である。また、図7は、第2の具体例に対応する各処理動作を説明するための図である。なお、図6,7においても、上述したように、制作している番組のCGキャラクタである出演者A、出演者Bに対し、出演者Aを人手で制御し、出演者Bを演出生成処理が制御する例を示している。
図6,7の例では、上述した第1の具体例に示すようなコンテンツとしての明確な破たんではなく、ユーザが手動操作することによるブレの課題を解決する場合を示すものである。ここで、第2の具体例では、図7(a)に示す台本例(A:(中央に歩く)、B:(Aの横に歩く)、A:(相手を見る))を処理するものである。
ユーザが出演者Aを正確にセット中央に歩かせた場合は、図6(ア)に示すように、予め設定された位置まで歩かせる動作を生成することにより、出演者Bを出演者Aの横に歩かせることができる。
しかしながら、図6(イ)に示すように、ユーザ等がセットの中央からずれた位置に出演者Aを歩かせた場合でも、出演者Bは自動的に、予め設定された本来の出演者Aの横の位置へ歩いてしまい、出演者Aと出演者Bの位置がずれてしまう。
そこで、実施例2の第2具体例では、この課題を解決するために適応型演出生成処理を用いる。具体的には図7(b)に示すように、出演者Bを事前に決めた位置へ歩かせるのではなく、出演者Aの位置(x、z)(x:画面上の3次元空間の横座標、z:画面上の3次元空間の奥行き座標)を取得し(S41)、その横の位置として、例えば(x、z+Δz1)の座標へ出演者Bを歩かせるTVMLスクリプトを生成する(S42)。これにより、図6(ウ)に示すように出演者Aが正しい位置にいなくても、出演者Bの位置を出演者Aの位置に合わせて動的に変更することが可能となる。
<他の実施形態:演出に多様性を持たせる>
次に、本発明における他の実施形態として、生成する演出に多様性を持たせる仕組みを有する番組制作装置について以下に説明する。従来の技術では、ユーザにより動作オブジェクトを制御することは可能であったが、ユーザが制御する動作オブジェクトと、自動制御する動作オブジェクトとにより映像コンテンツを進行させていくには、事前に作成した台本が不可欠である。
そこで、本発明では、台本の代わりにシーンの状況及びユーザが動作オブジェクトに対して行った制御履歴、自動制御による動作オブジェクトへの制御履歴等を保持し、これらを適応型演出生成処理による自動制御の動作ルール(演出生成ルール)の条件として利用する。これにより、台本が存在しなくても、ユーザにより操作された動作オブジェクトと、自動制御する動作オブジェクトを組み合わせた、アドリブ動作による映像コンテンツ生成が可能となり、生成する演出に多様性を持たせることができる。
図8は、他の実施形態における番組制作装置の構成例を示す図である。図8に示す番組制作装置30において、上述した実施形態において同様の機能を有する構成部については、同一の名称及び番号を付するものとし、ここでの具体的な説明は省略する。
図8に示す番組制作装置30は、アドリブ制御手段12と、番組制作手段31と、不可変情報データベース14と、再生手段15とを有するよう構成されている。また、番組制作手段31は、演出生成制御手段32と、第1演出生成処理手段33と、第2演出生成処理手段34とを有するよう構成されている。
なお、第1演出生成処理手段33及び第2演出生成処理手段34は、共に、適応型演出生成処理及びテンプレート型演出生成処理を有するものとする。
また、図9は、他の実施形態における自動動作演出用の適応型演出生成処理内容を説明するための図である。ここで、図9(a)は第2演出生成処理手段34の機能構成例を示し、図9(b)は、動作ルール例を示し、図9(c)は、動作履歴例を示している。更に図9(a)に示す第2演出生成処理手段34は、コマンド解析手段41と、動作ルール設定手段42と、動作決定処理手段43と、動作履歴データベース44と、シーン情報解析手段45とを有するよう構成されている。
ここで、図8に示す実施形態では、台本が存在しないため、自動動作演出用の演出生成処理部には、担当する動作オブジェクト用の台本による動作入力はない。
つまり、この実施形態では、人手で制御される動作オブジェクト等に対する操作(コマンド)を台本の1行(1演出)として解析し、演出決定の際のパラメータとして利用する。なお、図1に示す実施形態における台本とは、ストーリー性のある1つの番組全体の台本を意味し、図8,9に示すコマンドとは、台本の1行に相当するものである。
演出生成制御手段32は、アドリブ制御手段12から入力されるコマンドを読み取り、コマンド等に予め設定された割り当て条件に基づいて、人手による第1演出生成処理手段33と、自動による第2演出生成処理手段34の何れか又は両方に割り当てて、1行分の台本データに相当するコマンドを出力する。
また、演出生成制御手段32は、第1演出生成処理手段33及び第2演出生成処理手段34により得られるTVMLスクリプトを入力される順序で再生手段15に出力し、再生手段15にて対応する番組を再生させる。
第1演出生成処理手段33は、ユーザ等の人手によりCGキャラクタ等を操作する場合の演出を行うTVMLスクリプトを生成する。つまり、第1演出生成処理手段33は、入力されたコマンドに対応させてユーザの設定した内容や入力された情報に基づいてTVMLスクリプトを生成する。また、第1演出生成処理手段33は、生成した情報を演出生成制御手段32に出力する。
また、第2演出生成処理手段34は、自動制御によりCGキャラクタを操作する場合の演出を行うTVMLスクリプトを生成する。つまり、第2演出生成処理手段34は、予め設定されたテンプレート情報等に基づいて入力されたコマンドに対応させたTVMLスクリプトを生成する。また、第2演出生成処理手段34は、生成した情報を演出生成制御手段32に出力する。
なお、第2演出生成処理手段34においては、図9(a)に示すように、コマンド解析手段41は、入力されたコマンドを解析し、どのデータに対してどのような動作を行うかを決定するための情報を抽出する。また、動作ルール設定手段42は、コマンドの指示に対する動作ルールを動作毎に設定しておく。また、動作決定処理手段43は、コマンド解析手段41により解析された指示データを取得し、取得した内容と動作ルール設定手段42により設定された動作ルールから、指示データに対応する動作ルールを取得する。
動作履歴データベース44は、今までその台本データの対象となっている各CGキャラクタの動作履歴が番組毎又はキャラクタ毎に蓄積されており、動作決定処理手段43から、例えばそのCGキャラクタに対する動作履歴の問い合わせがあった場合に、その動作履歴を出力する。
シーン情報解析手段45は、先に説明した適応型演出生成処理における再生手段15の内部情報から得られるシーンの現時点での状態を解析する。つまり、シーン情報解析手段45は、シーン情報として、再生手段15で現時点で再生されている番組に出演している出演者の位置や動作状態、小道具の位置等を内部情報から取得し、取得した結果を動作決定処理手段43に出力する。
したがって、動作決定処理手段43は、動作ルールに対応する動作履歴を動作履歴データベース44から取得し、取得した内容と、シーン情報解析手段45から得られる内部情報に対応した解析結果に基づいて自動演出動作を生成し、自動演出動作に対応するTVMLスクリプトを生成し、1行分の台本(自動制御)として出力する。
ここで、動作ルール(演出生成ルール)は、図9(b)に示すように、自動動作オブジェクトの動作を生成するための基本的なルールを、予め設定される動作に基づいて複数記述しておく。また、動作履歴は、図9(c)に示すように動作決定処理により生成された動作及び台本として入力された人手により動作制御する動作オブジェクトの動作を履歴として、それぞれ回数と動作名を記録してある。なお、図9(b),(c)に示す動作ルール及び動作履歴の内容については、本発明においてはこれに限定されるものではない。
ここで、上述した実施形態における処理動作について、ユーザ制御時の処理動作手順と自動制御時の処理動作手順とをフローチャートを用いて具体的に説明する。
<ユーザ制御時の処理動作手順>
図10は、ユーザ制御時の処理動作手順を示すフローチャートである。図10において、まずユーザからの操作内容を取得し(S51)、コマンド(台本1行分)による出力であるか否かを判断する(S52)。コマンドによる出力である場合(S52において、YES)、人手用演出生成処理及び自動用演出生成処理にコマンドを送信する(S53)。
また、送信したコマンドに基づいて人手用演出生成処理によりTVMLスクリプトを生成し(S54)、また自動用演出生成処理がコマンドを解析し、その対応する動作を動作履歴に保存する(S55)。
また、上述の処理により得られたTVMLスクリプトを再生手段15に出力する(S56)。なお、上述したS52の処理において、台本による出力でない場合(S52において、NO)、パラメータを再生手段15に出力する(S57)。
S56又はS57の処理が終了後、映像コンテンツを生成し(S58)、生成した映像コンテンツを再生する(S59)。このとき、所定時間間隔で再生中の番組の現時点でのCGキャラクタ情報や物体オブジェクトの位置、台詞等の番組の内部情報を取得する。
ここで、ユーザ等からの終了指示等により処理を終了するか否かを判断し(S60)、処理を終了しない場合(S60において、NO)、S51に戻りユーザからの次の操作内容に基づいて後続の処理を行う。また、処理を終了する場合(S60において、YES)、本実施形態における番組制作処理を終了する。
<自動制御時の処理動作手順>
図11は、自動制御時の処理動作手順を示すフローチャートである。また、図12は、自動制御時の処理動作の具体例を説明するための画面例を示し、図13は、自動制御時の各動作における処理内容を説明するためのフローチャートである。なお、図12では、画面例の横に、予め設定される動作ルールとその動作に対応するスクリプトを示している。
図11〜図13は、同一の動作例に対する自動制御時の処理動作手順を説明するものである。つまり、本動作例では、番組中の出演者A,Bに対して、人手により出演者Aを動かし、自動制御によりもう一体の出演者Bを動かした場合を示し、動作ルールにおける特定の動作を出演者Aが腕を挙げる動作とする。
まず、図11を用いて動作手順の概略を説明すると、まずユーザからの操作内容であるコマンドを取得し(S71)、特定のコマンドであるか否かを判断する(S72)。なお、特定のコマンドとは、例えば、CGキャラクタの手を挙げさせたり、おじぎをさせる等のように、回数情報が履歴として蓄積されるような所定の動作の前後や回数等により、その動作を異ならせたり関連性を持たせた動作用のTVMLスクリプトを生成する必要があるコマンド等である。
S72の処理において、取得したコマンドが特定のコマンドである場合(S72において、YES)、その動作回数が規定以上か否かを判断する(S73)。動作回数が所定以上である場合(S73において、YES)、既に所定回数時における動作が行われているものとして動作回数をリセットし(S74)、規定回数時の動作用TVMLスクリプトを生成し(S75)、生成したスクリプトに対する動作履歴を蓄積する(S76)。
また、S73の処理において、動作回数が規定回数以上でない場合(S73において、NO)、動作回数をカウントアップし(S77)、規定回数未満での動作用TVMLスクリプトを生成し(S78)、生成したスクリプトに対する動作履歴を蓄積する(S79)。
また、上述したS72の処理において、取得したコマンドが特定のコマンドでない場合(S72において、NO)、そのコマンドに対応するTVMLスクリプトを生成し(S80)、対応する履歴を蓄積する(S81)。
S76,S79,又はS81の処理が終了後、TVMLスクリプトに対応する番組のシーンを生成し(S82)、番組を再生する(S83)。このとき、所定時間間隔で再生中の番組の現時点でのCGキャラクタ情報や物体オブジェクトの位置、台詞等の番組の内部情報を取得する。
次に、ユーザ等からの終了指示等により処理を終了するか否かを判断し(S84)、処理を終了しない場合(S84において、NO)、S71に戻りユーザからの次の操作内容に基づいて後続の処理を行う。また、処理を終了する場合(S84において、YES)、本実施形態における番組制作処理を終了する。
図11に示す処理手順に基づき、具体的な処理動作について説明すると、図12(ア)では、出演者Bが出演者Aからの距離を一定に保つ動作を示している。具体的には、出演者Aをユーザが出演者Bから離す方向に移動させると、出演者AB間の実際の距離dが規定値(距離D)より大きくなる。その場合、少し間をおいて出演者Bが出演者Aに向けて歩き始める動作を行う。
また、出演者Bが出演者Aに向けて移動し、出演者AB間の距離が規定値(距離D)になると、出演者Bは立ち止まる。
更に、出演者AB間の距離Dが規定値(距離D)より小さくなると、出演者Bは出演者Aから離れる方向に移動する。これにより、出演者Bは常にほぼ一定の距離を保ちながら、出演者Aについて回る動作を生成することになる。ここで、図13(a)では、上述した場合の各動作ルールに対応する処理例を示している。
つまり、図13(a)において、出演者Bは、CGキャラクタ等からなる出演者Aとの距離dを取得し(S91)、その距離dが予め設定された距離Dより大きいか否かを判断する(S92)。距離dが距離Dより大きい場合(S92において、YES)、出演者Bが出演者Aに向かって歩いていく動作を行うTVMLスクリプト生成する(S93)。
また、S92の処理において、出演者AB間の距離dが、距離Dより大きくない場合(S92において、NO)、次に、距離dと距離Dとが同一距離であるか否かを判断し(S94)、同一距離である場合(S94において、YES)、立ち止まるTVMLスクリプトを生成する(S95)。また、同一距離でない場合(S94において、NO)、Aから離れるように歩くTVMLスクリプトを生成する(S96)。
また、図12(イ)に示すように、本実施形態では、動作ルールとして出演者Aが手を挙げる動作をしたら、出演者Bは3dの距離まで素早く走って(早歩きで)逃げると記述しておくことで、ユーザにより出演者Aが手を挙げる動作のコマンドが入力されると、その動作ルールにしたがい出演者Bは3dの距離まで遠ざかる。
これにより、出演者Bが出演者Aに怒られて逃げているような動作となる。ここで、図13(b)は、上述した場合の各動作ルールに対応する処理例を示している。なお、図13(b)では、動作履歴を用いて所定の動作回数に合わせて動作内容を変更する処理も含んでいる。
つまり、図13(b)において、CGキャラクタ等からなる出演者Bが手を挙げたか否かを判断し(S100)、手を挙げた場合(S100において、YES)、次に、手を挙げたのが所定回数(図13(b)の例では3回目)であるか否かを判断する(S101)。なお、上記の判断は、対応する動作の動作履歴を参照することで容易且つ正確に判断することができる。
ここで、3回目である場合(S101において、YES)、出演者Aがジャンプして逃げるTVMLスクリプトを生成する(S102)。また、3回目でない場合(S101において、NO)、走って逃げるTVMLスクリプトを生成する(S103)。これにより、出演者Aが3回目に手を挙げると出演者Bは出演者Aからジャンプして逃げる動作を生成することができる。
このように、幾つかの動作ルールを設定しておくことで、台本がなくても出演者Bの動作を、ユーザの操作による出演者Aの動作に応じて生成することができる。
また、本実施形態における動作ルールは、障害物があれば避ける記述となっているので、例えば図12(ウ)に示すように、出演者Aに近づく、或いは遠ざかる途中に障害物があれば、これを自動的によける動作を生成することができる。また、本実施形態では、出演者Bの前方に何かが存在するのか、また存在する場合には、それが障害物であるのかをシーン情報や内部情報等に基づいて判断することができる。また、本実施形態では、障害物の位置もシーン情報を解析することで得ることができる。
なお、何が障害物であるかは、CGモデルデータに付加したメタデータにより取得することができる。ここで、図13(c)は、上述した場合の各動作ルールに対応する処理例を示している。
つまり、図13(c)において、前方情報を取得し(S111)、何かあるか否かを判断する(S112)。何かある場合(S112において、YES)、それが障害物であるか否かを判断する(S113)。なお、上記の判断は、移動している途中に物体オブジェクト等の座標又はその領域が存在しているか否かにより判断することができる。また、これらの情報は、シーン情報からの座標データを読み取ることで取得することができる。
S113の処理において、障害物が存在している場合(S113において、YES)、障害物を回避するTVMLスクリプトを生成する(S114)。また、障害物でない場合(S113において、NO)、その他の何かに対して動作を補正するTVMLスクリプトを生成する(S115)。また、S112の処理において、何もない場合(S112において、NO)、何もしないでここでの処理を終了する。
更に、本実施形態における動作ルール例には、動作オブジェクトの動作履歴をパラメータとして利用することができる。図12(エ)の例では、動作ルール(動作Aを2回行った後は動作Aを動作Bに変更する)において、動作Aを「出演者Aから3dの距離へ逃げる」と記述してあるものとし、また動作Bを「出演者Bが出演者Aから2.5dの位置へジャンプして移動する」と記述してあるものとする。
このように、動作オブジェクトの動作履歴を演出生成処理内で保持し、動作決定に利用することで、台本が存在しない利用形態においても、演出に多様性を持たせたアドリブによる映像コンテンツを生成することができる。したがって、上述したような処理により、番組を制作する際に複数の異なる仕組みを用いて高度なアドリブ制御を実現することができる。
なお、上述した例では、番組に登場するCGキャラクタ(出演者)に対する動作例について説明したが、本発明においてはこれに限定されるものではなく、例えばカメラワーク等の動作においても上述した手法を適用してアドリブ制御を実現することができる。
<実行プログラム>
ここで、上述した番組制作装置(映像コンテンツ制作装置)10,30は、例えばCPU(Central Processing Unit)、RAM(Random Access Memory)等の揮発性の記憶媒体、ROM(Read Only Memory)等の不揮発性の記憶媒体、マウスやキーボード、ポインティングデバイス等の入力装置、画像やデータを表示する表示装置、並びに外部と通信するためのインタフェース装置を備えたコンピュータによって構成することができる。
したがって、番組制作装置10,30が有する上述した各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現可能となる。また、これらのプログラムは、磁気ディスク(フロッピィーディスク、ハードディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の記録媒体に格納して頒布することもできる。
つまり、上述した各構成における処理をコンピュータに実行させるための実行プログラム(番組制作プログラム(映像コンテンツ制作プログラム))を生成し、例えば汎用のパーソナルコンピュータやサーバ等にそのプログラムをインストールすることにより、番組制作処理を実現することができる。なお、本発明における実行プログラムによる処理については、例えば上述した各処理を実現することができる。
上述したように本発明によれば、番組を制作する際に複数の異なる仕組みを用いて高度なアドリブ制御を実現することができる。具体的には、本発明によれば、ユーザが動作オブジェクトの操作を誤った場合に、システム側でユーザの動作を修正するのではなく、他の動作オブジェクト等の動作を変更して、ユーザの誤りやブレを補完することで、映像コンテンツを破たんさせることなく映像コンテンツを生成することができる。また、その際出力される映像コンテンツは、ユーザの操作に適応して可変するものであり、より高度なアドリブ制御が可能となる。
また本発明によれば、従来の技術では実現できなかった、台本の存在しない手動制御と自動制御が混在したアドリブ制御が可能となる。これにより、台本がない状態でのアドリブ制御による映像コンテンツ生成が可能となり、適用範囲の拡大や、利用者へ要求するスキルレベルを下げることが可能となり、より多くの人がアドリブ制御を利用できるようになる。
以上本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。