JP2008097233A - カメラワーク制御装置およびカメラワーク制御方法 - Google Patents

カメラワーク制御装置およびカメラワーク制御方法 Download PDF

Info

Publication number
JP2008097233A
JP2008097233A JP2006277030A JP2006277030A JP2008097233A JP 2008097233 A JP2008097233 A JP 2008097233A JP 2006277030 A JP2006277030 A JP 2006277030A JP 2006277030 A JP2006277030 A JP 2006277030A JP 2008097233 A JP2008097233 A JP 2008097233A
Authority
JP
Japan
Prior art keywords
camera
distance
shot
work
unit
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
Application number
JP2006277030A
Other languages
English (en)
Inventor
Koichi Emura
恒一 江村
Terumasa Aoki
輝勝 青木
Hiroshi Yasuda
浩 安田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Tokyo NUC
Panasonic Holdings Corp
Original Assignee
University of Tokyo NUC
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Tokyo NUC, Matsushita Electric Industrial Co Ltd filed Critical University of Tokyo NUC
Priority to JP2006277030A priority Critical patent/JP2008097233A/ja
Publication of JP2008097233A publication Critical patent/JP2008097233A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

【課題】視覚連続性を保ち、かつユーザの意図を反映したカメラワークを決定することができるカメラワーク制御装置およびカメラワーク制御方法を構成すること。
【解決手段】カメラワーク制御装置を用いたアニメーション作成装置100において、カメラ方向制御部160は、カメラ方向保持部170に保持されている他のショットのカメラ方向を参照し、映画文法に基づいて、視覚連続性を保つようなカメラ方向候補を決定する。カメラ距離制御部200は、シナリオ要素入力部120で入力されたシナリオ要素に基づいて、ユーザの意図を反映するようなカメラ距離候補を決定する。カメラワーク決定部は、決定されたカメラ方向候補とカメラ距離候補からそれぞれ1つを選択して、現ショットのカメラワークを決定する。
【選択図】図1

Description

本発明は、たとえばコンピュータグラフィックスアニメーションなどの映像を生成する際のカメラワークを制御するカメラワーク制御装置およびカメラワーク制御方法に係り、特に、被写体を基準としたカメラ方向とカメラ距離との組み合わせにより定義されるカメラワークを制御するカメラワーク制御装置およびカメラワーク制御方法に関する。
近年、インターネットにおいても従来の雑誌や書籍と同様に専門知識を有する者が作成したコンテンツ(メディア)を視聴するだけであった一般の個人が、インターネットの急速な発展により、自ら積極的にコンテンツを作成して発信するようになっている。このような、いわゆるCGM(consumer generated media)は、ウエブログ(weblog)に投稿されるテキストや、メディア共有サイトにアップロードされて不特定多数のユーザによって共有される写真、ビデオ、CG(computer graphic)アニメーションなど、多種多様な形態へと進化してきている。
特に、CGアニメーション(以下単に「アニメーション」という)は、パーソナルコンピュータの演算処理能力、描画能力、およびデータ蓄積能力の向上や、アニメーション制作用ソフトウェアの低価格化により、個人でも制作できるようになってきている。
ところが、アニメーションの映像は、通常、仮想カメラで撮影した複数のショットを連結して作成することから、人間が自らの目で経験する連続した映像のような視覚連続性を持たせることが難しいという問題がある。各ショット間の視覚連続性を考慮されていない映像は、視聴者の理解に混乱をきたすことがある。したがって、カメラワークに関する専門的な知識や技術を持たないユーザにとっては、自らの表現したい内容を視聴者に伝えられるアニメーションを作成することは困難である。
そこで、一般的なカメラワークの規則である映画文法を用いて、カメラワークを自動で制御するシステムが、たとえば特許文献1に記載されている。映画文法とは、映画制作者などカメラワークに関する専門知識を持つ者が、経験から守るべきとするカメラワークの規則であり、映像の視覚連続性が確保されるようなカメラワークについての規定を含む。映画文法の詳細についは、たとえば非特許文献1に記載されている。
図74は、上記システムの構成を示す図である。システム10は、オンラインチャットやコンピュータビデオゲームとして機能するリアルタイムアプリケーションモジュール(以下「アプリケーションモジュール」という)20、カメラワークを制御するバーチャルシネマトグラフィアプリケーションモジュール(以下「シネマトグラフィモジュール」という)30、および映像の描画を行うレンダラーモジュール40を有する。また、シネマトグラフィモジュール30は、アプリケーションモジュール20で発生する各種イベントに対して適用すべき映画文法を記述したイディオム31と、カメラワークを定義するカメラパラメータを生成するためのカメラモジュール32とを有している。
アプリケーションモジュール20は、動作などのキャラクタの状態変化を基に、キャラクタの演技の種類などで構成されるイベントの記述50を生成し、シネマトグラフィモジュール30へ出力する。
シネマトグラフィモジュール30は、イディオム31を参照し、入力したイベントの記述50に対して適用すべき映画文法(変換規則)を抽出する。また、シネマトグラフィモジュール30は、抽出した映画文法をカメラモジュール32に適用することで、カメラパラメータ60を生成し、レンダラーモジュール40へ出力する。
レンダラーモジュール40は、入力したカメラパラメータ60に基づいて、3次元CGアニメーションを生成し、図示しない表示装置などへ出力する。
このように、システム10によれば、映画文法に基づいて映像の視覚連続性を考慮してカメラワークを制御することが可能となっている。
特表2000−516371号公報 D.Arijon,Grammar of the Film Language,Communication Arts Books, Hastings House Publishers(1976),P26〜P74
しかしながら、上記した従来の技術では、映画文法に沿って画一的にカメラワークが制御されてしまうため、一般的に守るべき規則に沿って映像を作成することができるものの、ユーザの意図、つまり、ユーザが表現したい感情や動作などに対応する時系列の映像の変化を、カメラワーク(カメラ方向およびカメラ距離)に反映することが難しいという問題がある。つまり、ユーザの意図を反映したカメラワークを実現することが困難である。
本発明は、かかる点に鑑みてなされたものであり、視覚連続性を保ち、かつユーザの意図を反映したカメラワークを決定することができるカメラワーク制御装置およびカメラワーク制御方法を提供することを目的とする。
本発明のカメラワーク制御装置は、映像のショットごとに、被写体を基準としたカメラ方向の候補を、映画文法に基づいて決定するカメラ方向制御部と、映像のショットごとに、被写体を基準としたカメラ距離の候補を、入力されたシナリオ情報に基づいて決定するカメラ距離制御部と、映像のショットごとに、前記カメラ方向の候補および前記カメラ距離の候補の中からそれぞれ1つを選択して、カメラ方向およびカメラ距離を決定するカメラワーク決定部とを具備する構成を採る。
本発明のカメラワーク制御方法は、映像のショットの1つに対して、被写体を基準としたカメラ方向およびカメラ距離を決定する第1のカメラワーク決定ステップと、前記ショットに連続する他のショットに対して、前記第1のカメラワーク決定ステップで決定されたカメラ方向および映画文法に基づいてカメラ方向を決定し、前記第1のカメラワーク決定ステップで決定されたカメラ距離および入力されたシナリオ情報に基づいてカメラ距離を決定する第2のカメラワーク決定ステップとを有するようにした。
本発明によれば、視覚連続性を保ち、かつシナリオ情報に含まれるユーザの意図を反映したカメラワークを決定することができる。すなわち、本発明によれば、カメラ方向の制御とカメラ距離の制御とを分離し、映画文法に基づいてカメラ方向を決定でき、ユーザの意図に基づいてカメラ距離を決定することができる。これにより、映画文法とユーザの意図の両方を反映させてカメラワークを決定することができる。すなわち、一般のユーザであっても、映画文法を意識することなく、視覚連続性を保ちつつオリジナリティのある映像表現を可能とするような映像制作支援を行うことができる。
以下、本発明の実施の形態について、図面を参照して詳細に説明する。なお、各図において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付してその説明は繰り返さない。また、以下、アニメーションの一続きの撮影単位を「ショット」といい、カメラワーク決定の直接の処理の対象となっているショットを「現ショット」、同一シーンおける現ショットの1つ前のショットを「前ショット」、同一シーンおける現ショットの1つ後のショットを「後ショット」という。
(実施の形態1)
図1は、本発明の実施の形態1に係るカメラワーク制御装置を用いたアニメーション作成装置の構成を示す図である。アニメーション作成装置は、カメラワークを制御してアニメーションを作成する装置であり、たとえば、パーソナルコンピュータ、携帯電話機、PDA(personal digital assistant)、ゲーム機などの情報処理端末に実装されるものである。
図1において、アニメーション作成装置100は、配置入力部110、シナリオ要素入力部120、配置算出部130、配置情報保持部140、配置分類判定部150、カメラ方向制御部160、カメラ方向保持部170、カメラ方向変化判定部180、シーン分類判定部190、カメラ距離制御部200、カメラ距離保持部210、カメラ距離変化判定部220、カメラワーク決定部230、カメラワーク推薦提示部240、カメラパラメータ算出部250、レンダリング部260、キャラクタデータベース(DB:database)261、アクションデータベース262、セットデータベース263、およびアニメーション出力部270を有する。また、アニメーション作成装置100は、図示しないが、液晶ディスプレイなどの表示装置と、キーボードやポインティングデバイスとしてのマウスなどの入力装置を有する。
配置入力部110は、アニメーションの登場人物であるキャラクタの種別や、キャラクタおよびセットを構成するオブジェクト(以下「オブジェクト」と総称する)の位置座標や基準軸に対する正面方向の角度(以下「配置情報」という)の初期値など、アニメーションを作成するのに必要な各種情報を、初期設定として入力する。具体的には、配置入力部110は、後に詳述する配置入力画面を表示装置に表示させ、入力装置のユーザ操作に基づいて初期設定を入力する。そして、配置入力部110は、入力した配置情報と、どのセット種別が選択されたかを示すセット情報とを含む初期設定情報を、配置情報保持部140へ出力する。
シナリオ要素入力部120は、「動作主」、動作主の「動作」、「表情」、「台詞」、「移動先」、および「向き先」、ならびに「カメラワーク」など、アニメーションのシナリオを構成する要素(以下「シナリオ要素」という)を入力する。具体的には、後に詳述するシナリオ入力画面を表示装置に表示させ、入力装置のユーザ操作に基づいてシナリオ要素を入力する。シナリオ要素入力部120は、シナリオ要素を入力するたびに、シナリオ要素「シーン名」、「動作主」、「移動先」、および「向き先」を配置算出部130へ、シナリオ要素「動作主」をカメラ方向制御部160およびカメラ距離制御部200へ、シナリオ要素「動作主」、「動作」、「表情」、および「台詞」をシーン分類判定部190へ、シナリオ要素「カメラワーク」をカメラワーク決定部230へ、シナリオ要素「動作主」、「動作」、「表情」、および「台詞」をレンダリング部260へ、それぞれ出力する。
配置算出部130は、シナリオ要素「動作主」、および「移動先/向き先」を入力するたびに、配置情報保持部140に保持されている配置情報に基づいて、該当するショットにおけるキャラクタの配置を算出し、配置情報として配置情報保持部140へ出力する。
配置情報保持部140は、配置入力部110から入力される初期設定情報をシーンごとに保持するとともに、配置算出部130から入力される配置情報およびセット情報をショットごとに保持する。そして、保持する配置情報が更新されるたびに、つまり新たな配置情報を入力するたびに、更新された配置情報を配置分類判定部150へ出力する。また、配置情報保持部140は、要求に応じて、配置情報をカメラパラメータ算出部250へ、どのセット種別が選択されたかを示すセット情報と配置情報とをレンダリング部260へ、それぞれ出力する。
配置分類判定部150は、配置情報を入力するたびに、その配置情報のショットの動作主と1つ前のショットの動作主の2人を被写体とした場合に、2人の被写体の配置がどの配置分類に当てはまるかを判定する。ただし、配置分類判定部150は、最初のショットの配置情報を入力した場合には、そのショットの動作主と他のキャラクタの2人の配置について判定を行う。そして、配置分類判定部150は、判定結果を、カメラ方向制御部160へ出力する。ここで、配置分類とは、複数のキャラクタが相対的にどのような配置関係にあるかを分類したものである。
カメラ方向制御部160は、シナリオ要素「動作主」、配置分類、後述するカメラ方向変化コマンド、および後述するカメラ距離変化コマンドのいずれかを入力すると、カメラ方向保持部170に対して情報の問い合わせを行い、カメラ方向に関する情報(以下単に「カメラ方向」という)の候補を、現ショットに対して決定する。そして、カメラ方向制御部160は、決定したカメラ方向の候補(以下「カメラ方向候補」という)、カメラワーク決定部230へ出力する。また、カメラ方向制御部160は、決定したカメラ方向候補のうち、後述する優先順位の最も高いものを、現ショットの仮のカメラ方向としてカメラ方向変化判定部180へ出力する。
シーン分類判定部190は、シナリオ要素「動作主」、および「動作/表情/台詞」を入力するたびに、入力したシナリオ要素に基づいて、該当するショットがどのシーン分類に当てはまるかを判定する。ここで、シーン分類とは、そのショットで視聴者に着目させるべき内容の分類である。
カメラ距離制御部200は、シーン分類、後述するカメラ方向変化コマンド、および後述するカメラ距離変化コマンドのいずれかを入力すると、カメラ距離保持部210に対して情報の問い合わせを行い、カメラ距離に関する情報(以下単に「カメラ距離」という)の候補を、現ショットに対して決定する。そして、カメラ距離制御部200は、決定したカメラ距離の候補(以下「カメラ距離候補」という)を、カメラワーク決定部230へ出力する。また、カメラ距離制御部200は、決定したカメラ距離候補のうち、後述する優先順位の最も高いものを、現ショットの仮のカメラ距離としてカメラ距離変化判定部220へ出力する。
カメラワーク決定部230は、カメラ方向候補およびカメラ距離候補に基づいて、ユーザに推薦するカメラワーク(以下「推薦カメラワーク」という)を決定し、カメラワーク推薦提示部240へ出力する。また、カメラワーク決定部230は、カメラ方向候補およびカメラ距離候補と、シナリオ要素「カメラワーク」とに基づいて、現ショットへの適用を設定するカメラワーク(以下「設定カメラワーク」という)を決定し、カメラパラメータ算出部250へ出力する。また、カメラワーク決定部230は、決定した設定カメラワークからカメラ方向とカメラ距離を抽出し、カメラ方向をカメラ方向保持部170へ出力するとともに、カメラ距離をカメラ距離保持部210へ出力する。
カメラ方向保持部170は、ショットごとに時系列で、カメラワーク決定部230から入力されるカメラ方向と動作主とを保持する。また、カメラ方向保持部170は、後述するカメラ方向遷移頻度テーブルを保持し、入力するカメラ方向に応じて、このテーブルの内容を更新する。さらに、カメラ方向保持部170は、カメラ方向制御部160およびカメラ方向変化判定部180からのクエリ(問い合わせ)に応じて、指定された情報を出力する。
カメラ方向変化判定部180は、カメラ方向制御部160からカメラ方向を入力されるたびに、そのショットと他のショットとの間におけるカメラ方向の変化(以下「カメラ方向変化」という)の有無を判定する。また、カメラ方向変化判定部180は、判定結果に応じて、カメラ方向制御部160またはカメラ距離制御部200を起動させるためのカメラ方向変化コマンドを出力する。
カメラ距離保持部210は、ショットごとに時系列で、カメラワーク決定部230から入力されるカメラ距離と動作主とを保持する。また、カメラ距離保持部210は、後述するカメラ距離遷移頻度テーブルを保持し、入力するカメラ方向に応じて、このテーブルの内容を更新する。さらに、カメラ距離保持部210は、カメラ距離制御部200およびカメラ距離変化判定部220からのクエリに応じて、指定された情報を出力する。
カメラ距離変化判定部220は、カメラ距離制御部200からカメラ距離を入力されるたびに、そのショットと他のショットとの間におけるカメラ距離の変化(以下「カメラ距離変化」という)の有無を判定する。また、カメラ距離変化判定部220は、判定結果に応じて、カメラ距離制御部200またはカメラ方向制御部160を起動させるためのカメラ距離変化コマンドを出力する。
カメラワーク推薦提示部240は、推薦カメラワークを、現ショットのカメラワークの選択肢としてユーザに対して提示する。具体的には、カメラワーク推薦提示部240は、シナリオ要素入力部120が表示するシナリオ入力画面に、推薦カメラワークに該当するカメラワークの種別を選択肢として提示するカメラワーク選択領域を追加表示する。
カメラパラメータ算出部250は、配置情報および設定カメラワークに基づいて、アニメーション空間における仮想カメラの物理パラメータ(以下「カメラパラメータ」という)を算出し、レンダリング部260へ出力する。
キャラクタデータベース261は、ポリゴンデータや画像データから成るキャラクタデータを、キャラクタ種別に対応付けて格納している。アクションデータベース262は、キャラクタのアクションに関するデータであるアクションデータを、動作種別に対応付けて格納している。セットデータベース263は、ポリゴンデータや画像データから成るセットデータを、セット種別に対応付けて格納している。
レンダリング部260は、シナリオ要素「動作主」、「動作/表情/台詞」、配置情報、セット情報、およびカメラパラメータに基づいて映像の描画(レンダリング)を行い、3次元CGアニメーションの映像データをアニメーション出力部270へ出力する。
アニメーション出力部270は、レンダリング部260から入力された映像データを、記憶媒体(図示せず)に格納したり、表示装置の画面上に3次元CGアニメーションとして表示させる。
また、アニメーション作成装置100は、図示しないが、CPU(central processing unit)、制御プログラムを格納したROM(read only memory)などの記憶媒体、RAM(random access memory)などの作業用メモリを備えている。CPUが制御プログラムを実行することで、上記した各部の機能は実現される。
以上のような構成を有するアニメーション作成装置100の各部について、以下、詳細に説明を行う。
まず、図1に示す配置入力部110について説明する。配置入力画面300は、図示しないが、キャラクタデータベース261、アクションデータベース262、およびセットデータベース263に接続されており、必要な情報を読み出して配置入力画面を生成し、表示装置に表示させる。
図2は、配置入力部110が表示させる配置入力画面の構成を示す図である。配置入力画面300は、シーン名入力領域301、セット選択領域302、キャラクタ選択領域303、使用チェックボックス304、表示チェックボックス305、数値配置設定領域306、平面図配置設定領域307、および姿勢選択領域308を有する。配置入力画面300では、アニメーションのシーンごとに、各種初期設定を入力することが可能となっている。
シーン名入力領域301では、アニメーションのシーン名を設定することができる。セット選択領域302は、セットデータベース263にデータが格納されているアニメーションのセットの種別を、選択肢としてドロップダウン表示する。キャラクタ選択領域303は、キャラクタデータベース261にデータが格納されているキャラクタ種別を、選択肢としてスクロール表示する。使用チェックボックス304では、キャラクタ選択領域303で選択されているキャラクタ種別に対して、シナリオのシーン内の登場キャラクタとして使用するか否かを設定することができる。表示チェックボックス305では、登場キャラクタを表示させるか否かを設定することができる。
数値配置設定領域306では、3次元空間の各座標軸における座標および角度を数値入力することにより、キャラクタの初期配置を設定することができる。平面図配置設定領域307では、セットの平面図309と、使用することが決定されたキャラクタの位置表示アイコン310および角度表示アイコン311が表示され、位置表示アイコン310および角度表示アイコン311の操作により、キャラクタの初期配置を設定することができる。姿勢選択領域308は、キャラクタの初期状態におけるポーズとして、アクションデータベース262にデータが格納されているアクション種別のうち「立っている」や「座っている」など姿勢に関するものを、選択肢としてドロップダウン表示する。上記各部における選択や決定および文字入力は、マウスによるドラック操作など、入力装置の操作によって可能となっている。
図2では、シーン名「scene0000」、セット「学校」、登場キャラクタ「男子学生、女性先生」が設定されるとともに、キャラクタ「男子学生」とキャラクタ「女性先生」が学校の校庭で向かい合って立っている状態が初期状態として設定された例を図示している。以下、このような初期設定が行われたシーンをアニメーション化するものとして、説明を行う。配置入力部110は、入力内容に応じて、セットを構成するオブジェクトの配置など必要な情報を各データベースから適宜読み出し、登場キャラクタを含む各オブジェクトの配置情報を、初期設定情報として配置情報保持部140へ出力する。
図1に示すシナリオ要素入力部120は、配置入力画面300での初期設定が完了すると、シナリオ入力画面を表示させ、ユーザ操作によるシナリオ要素の入力を受け付ける。
図3は、シナリオ要素入力部120が表示させるシナリオ入力画面の構成を示す図である。シナリオ入力画面350は、シーン名を選択するためのシーン名選択領域351、シナリオの編集レベルを選択するための編集レベル選択領域352、ショットごとにシナリオ要素を入力するためのシナリオライン353、およびシナリオライン353の構成の説明を表示する説明表示領域354を有する。また、シナリオ入力画面350は、アニメーション出力部270がアニメーションを表示させるためのプレビュー再生領域355と、各種コマンドを選択肢としてドロップダウン表示するメニューバー356とを有する。
シナリオライン353は、動作主選択領域361、台詞入力領域362、表情選択領域363、間接目的語選択領域364、直接目的語選択領域365、動作選択領域366、カメラワーク設定領域367をそれぞれ有する。これらは、説明表示領域354に表示されているように、順に、「誰」、「台詞」、「表情」、「何に」、「何を」、「どうする」、「カメラ」という意味に対応している。シナリオライン353は、さらに、プレビュー再生ボタン368、およびカメラワークロックチェックボックス369などをそれぞれ有する。上記各部における選択や決定および文字入力は、入力装置の操作によって行うことができる。
シーン名選択領域351には、シーンの選択肢として、配置入力画面300で過去に入力されたシーン名がドロップダウン表示される。動作主選択領域361には、動作主の選択肢として、シーン名選択領域351で選択されたシーン名に対して配置入力画面300で使用が決定されたキャラクタがドロップダウン表示される。具体的には、シナリオ要素入力部120は、たとえば、配置情報保持部140から該当するシーンの登場キャラクタの名称を取得し、リスト化して表示する。シナリオ要素入力部120は、いずれかのキャラクタが選択されると、そのキャラクタを示す情報を、該当するショットのシナリオ要素「動作主」として出力する。
シナリオライン353は、初期状態では1つのみ表示されるが、動作主選択領域361でいずれかのキャラクタが選択された状態となるごとに、新たなシナリオライン353が追加表示される。また、シナリオライン353の上方からの配置順序が、アニメーションの時間軸における映像の順序に対応している。図3では、5ライン目までシナリオ要素の入力が行われているときの状態を図示している。
台詞入力領域362では、任意の文字列を台詞として入力することができる。シナリオ要素入力部120は、台詞が入力されると、その台詞を示す情報を、該当するショットのシナリオ要素「台詞」として出力する。
表情選択領域363には、動作主の表情の選択肢として、「悲しそうな顔で」などのあらかじめ定められた表情の種別がドロップダウン表示される。シナリオ要素入力部120は、いずれかの表情種別が選択されると、その表情種別を示す情報を、シナリオ要素「表情」として出力する。
動作選択領域366には、動作主の動作の選択肢として、あらかじめ定められた動作の種別が表示される。図3では、動作選択領域366で動作の種別をドロップダウン表示させ、「歩いて移動する」という動作種別が選択されているときの状態を図示している。シナリオ要素入力部120は、いずれかの動作種別が選択されると、その動作種別を示す情報を、該当するショットのシナリオ要素「動作」として出力する。
間接目的語選択領域364には、キャラクタの台詞や表情あるいは動作の間接目的語と成り得るオブジェクトが、選択肢としてドロップダウン表示される。直接目的語選択領域365には、キャラクタの動作の直接目的語と成り得るオブジェクトが、選択肢としてドロップダウン表示される。具体的には、シナリオ要素入力部120は、たとえば、配置情報保持部140から各オブジェクトの配置情報を取得し、台詞や表情との関係で、どのオブジェクトが間接目的語および直接目的語となるかを判定し、該当するオブジェクトの名称をリスト化して表示する。
これら間接目的語選択領域364および直接目的語選択領域365に表示される選択肢は、動作主選択領域361、台詞入力領域362、表情選択領域363および動作選択領域366で入力される情報に応じて変化する。たとえば、シーン名選択領域351−2に示すように、動作主がキャラクタ「女性先生」であり、動作が自動詞の「向く」の場合には、直接目的語選択領域365には選択肢は表示されず、間接目的語選択領域364に「男子生徒」が表示される。たとえば、他の登場キャラクタとして「女子生徒」が存在している場合には、間接目的語選択領域364に「男子生徒」と「女子生徒」が表示されることになる。
シナリオ要素入力部120は、入力する各動作種別について、「歩く」などの移動動作であるか、「向く」などの方向変更動作であるかを判別する。そして、シナリオ要素入力部120は、たとえば、動作種別が移動動作である場合には、間接目的語が示すオブジェクトをシナリオ要素「移動先」として出力し、動作種別が方向変更動作である場合には、間接目的語が示すオブジェクトをシナリオ要素「向き先」として出力する。
カメラワーク設定領域367には、設定カメラワークや推薦カメラワークが選択肢として表示されるだけでなく、表示されるカメラワークの中からユーザ操作により任意のものを選択することができるが、これについては後に詳しく説明する。シナリオ要素入力部120は、いずれかのカメラワークが選択されると、選択されたカメラワークを示す情報を、該当するショットのシナリオ要素「カメラワーク」として出力する。
カメラワークロックチェックボックス369では、チェックの有無によって、カメラワーク設定領域367で設定されているカメラワークを固定するか否かを選択ことができる。また、シナリオ要素入力部120は、カメラワーク設定領域367でユーザ操作により、いずれかのカメラワークが選択された場合には、このカメラワークロックチェックボックス369に自動的にチェックを入れる。また、シナリオ要素入力部120は、カメラワークロックチェックボックス369にチェックが入っているショットに対応付けて、ロックフラグをカメラワーク決定部230へ出力する。
シナリオ要素入力部120は、いずれかのシナリオライン353のプレビュー再生ボタン368がクリックされると、そのシナリオライン353に対応する映像をプレビュー再生領域355で再生させるための処理を行う。具体的には、シナリオ要素入力部120は、先頭からプレビュー再生ボタン368がクリックされたシナリオライン353の直前までに入力あるいは選択されたシナリオ要素を、それぞれ対応する各部へ出力する。そして、プレビュー再生ボタン368がクリックされたシナリオライン353で入力あるいは選択されたシナリオ要素を、それぞれ対応する各部へ出力する。また、シナリオ要素入力部120は、図示しないが、カメラパラメータ算出部250に接続されており、カメラパラメータ算出部250に対してカメラパラメータの演算を指示する。
また、シナリオ要素入力部120は、メニューバー356でドロップダウン表示される再生コマンドが選択されると、シーン内の複数のシナリオライン353に対応する映像を時系列で連結した映像を、シナリオ入力画面350とは別の画面で再生させるための処理を行う。具体的には、シナリオ要素入力部120は、すべてのシナリオライン353で入力あるいは選択されたシナリオ要素を、それぞれ対応する各部へ順に出力し、カメラパラメータ算出部250に対してカメラパラメータの演算を指示する。
なお、編集レベル選択領域352において、他の編集レベルを選択することにより、アニメーション作成装置100による自動設定のレベルを変更し、シナリオ要素の入力の自由度や操作性を変更することが可能となっているが、ここでの説明を省略する。
図1に示す配置算出部130は、シナリオ要素入力部120から、シナリオ要素「動作主」および「移動先/向き先」を入力されると、配置情報保持部140に保持されている配置情報を基に、現ショットの終わりにおける動作主の位置座標および角度を算出する。
具体的には、配置算出部130は、シナリオ要素「移動先」が入力された場合には、該当するオブジェクトの位置座標を、配置情報保持部140またはセットデータベース263から取得する。そして、取得した位置座標を、動作主の現ショットの終わりにおける位置座標として、配置情報保持部140に保持させる。また、シナリオ要素「向き先」が入力された場合には、該当するオブジェクトの位置座標を、配置情報保持部140から取得する。そして、動作主の位置座標から取得した位置座標に向かう角度を、動作主の現ショットの終わりにおける角度として、配置情報保持部140に保持させる。
なお、配置情報保持部140は、一度算出した各キャラクタの位置座標および角度を、ショットごとに保持しておくようにしてもよい。これにより、配置算出部130は、たとえば、途中のショットについてシナリオが変更された場合に、その1つ前のショットに関する情報に基づいて以降の各ショットにおける位置座標および角度を算出することができ、処理を高速化することが可能となる。
次に、図1に示す配置分類判定部150の説明を行う前に、図1に示すアニメーション作成装置100において、カメラワークを制御する際の指標となる情報の1つとして用いる、7つの配置分類について説明する。
図4は、アニメーション作成装置100で用いられる配置分類を示す図である。配置分類「1」〜配置分類「7」は、2人のキャラクタが存在している場合において、順に、「対面配置」、「横並び配置」、「背向け配置」、「背中合せ配置」、「L型内向き配置」、「L型外向き配置」、「互い違い配置」、をそれぞれ示す。図4では、それぞれの配置分類について、平面図におけるキャラクタの省略記号と、アニメーション化されたときの映像の例を示している。ここで、キャラクタの省略記号は、半円の中心がキャラクタの位置と方向を表し、平らな面がキャラクタの正面の向いている方向を表す。
図1に示す配置分類判定部150は、配置情報保持部140から配置情報が入力されるたびに、配置情報から被写体となる各キャラクタの位置座標を取得し、最も外側に位置する2人のキャラクタを被写体として選択する。そして、これら2人のキャラクタの位置座標および方向に基づいて、キャラクタの配置関係が図4に示す配置分類のいずれに当てはまるかを判定する配置分類判定処理を実行する。
配置分類判定部150による配置分類判定処理について、図5および図6を用いて説明する。
ステップS1000において、配置分類判定部150は、配置情報保持部140から2つの被写体(2人のキャラクタ)の位置座標と方向を取得する。ここでは、アニメーション空間における高さ方向であるy軸を無視し、各被写体の位置座標は、x軸座標とz軸座標によって定義される。また、各被写体の方向は、x−z平面を上からみた状態における、z軸方向に対する被写体の正面方向の反時計回りの角によって定義される。
ステップS1100において、配置分類判定部150は、2つの被写体を結ぶ線の法線に対する相対角度を、2つの被写体のそれぞれについて求める。
図7は、2つの被写体の相対角度の算出を説明するための図である。ここで、図7に示すように、被写体400の座標が(x,z)、被写体400の座標が(x,z)であり、z軸方向に対する被写体400の正面方向の角がO、z軸方向に対する被写体400の正面方向の角がOであったとする。この場合、被写体400と被写体400とを結ぶ直線の法線の、z軸に対する角Oabは、以下の式(1)を用いて算出することができる。
Figure 2008097233
そして、被写体400の正面方向に対する被写体400の位置する方向の相対角度O'と、被写体400の正面方向に対する被写体400の位置する方向の相対角度O'は、それぞれ、以下の式(2)、(3)を用いて算出することができる。
Figure 2008097233
Figure 2008097233
図5および図6のステップS1200、S1300、S1400において、配置分類判定部150は、ステップS1100で求められた相対角度O'が、0度(°)から360度までのどの範囲にあるのかを順次判断する。
具体的には、配置分類判定部150は、相対角度O'が、45度以下または315度よりも大きい場合には(S1200:YES)、ステップS1210へ進み、45度よりも大きく135度以下の場合には(S1300:YES)、ステップS1310へ進み、135度よりも大きく225度以下の場合には(S1400:YES)、ステップS1410へ進む。一方、配置分類判定部150は、相対角度O'が、以上のいずれの角にも該当しない場合、つまり、225度よりも大きく315度以下の場合には(S1400:NO)、ステップS1510へ進む。
ステップS1210〜S1230、S1310〜S1330、S1410〜S1430、およびS1510〜S1530において、配置分類判定部150は、相対角度O'と相対角度O'との差の絶対値が、0度から360度までのどの範囲にあるのかをそれぞれ順次判断する。
具体的には、配置分類判定部150は、相対角度O'が45度以下または315度よりも大きい場合で、上記絶対値が、45度以下または315度よりも大きい場合には(S1210:YES)、ステップS1240へ進み、45度よりも大きく135度以下の場合には(S1220:YES)、ステップS1250へ進み、135度よりも大きく225度以下の場合には(S1230:YES)、ステップS1260へ進む。一方、配置分類判定部150は、相対角度O'が45度以下または315度よりも大きく、かつ上記絶対値が、以上のいずれの角にも該当しない場合、つまり、225度よりも大きく315度以下の場合には(S1230:NO)、ステップS1270へ進む。
また、配置分類判定部150は、相対角度O'が45度よりも大きく135度以下の場合で、上記絶対値が、45度以下または315度よりも大きい場合には(S1310:YES)、ステップS1340へ進み、45度よりも大きく135度以下の場合には(S1320:YES)、ステップS1350へ進み、135度よりも大きく225度以下の場合には(S1330:YES)、ステップS1360へ進む。一方、配置分類判定部150は、相対角度O'が45度よりも大きく135度以下であり、かつ上記絶対値が、以上のいずれの角にも該当しない場合、つまり、225度よりも大きく315度以下の場合には(S1330:NO)、ステップS1270へ進む。
また、配置分類判定部150は、相対角度O'が135度よりも大きく225度以下の場合で、上記絶対値が、45度以下または315度よりも大きい場合には(S1410:YES)、ステップS1440へ進み、45度よりも大きく135度以下の場合には(S1420:YES)、ステップS1450へ進み、135度よりも大きく225度以下の場合には(S1430:YES)、ステップS1460へ進む。一方、配置分類判定部150は、相対角度O'が135度よりも大きく225度以下であり、かつ上記絶対値が、以上のいずれの角にも該当しない場合、つまり、225度よりも大きく315度以下の場合には(S1430:NO)、ステップS1470へ進む。
また、配置分類判定部150は、相対角度O'が225度よりも大きく315度以下の場合で、上記絶対値が、45度以下または315度よりも大きい場合には(S1510:YES)、ステップS1540へ進み、45度よりも大きく135度以下の場合には(S1520:YES)、ステップS1550へ進み、135度よりも大きく225度以下の場合には(S1530:YES)、ステップS1560へ進む。一方、配置分類判定部150は、相対角度O'が225度よりも大きく315度以下であり、かつ上記絶対値が、以上のいずれの角にも該当しない場合、つまり、225度よりも大きく315度以下の場合には(S1530:NO)、ステップS1470へ進む。
配置分類判定部150は、ステップS1360において、配置分類「1」を決定し、ステップS1240、S1540において、配置分類「2」を決定し、ステップS1340、S1440において、配置分類「3」を決定し、ステップS1460において、配置分類「4」を決定する。また、配置分類判定部150は、ステップS1270、S1350、S1550において、配置分類「5」を決定し、ステップS1250、S1450、S1470において、配置分類「6」を決定し、ステップS1260、S1560において、配置分類「7」を決定する。そして、配置分類判定部150は、これらの各ステップで配置分類を決定すると、ステップS1600へ進む。
ステップS1600において、配置分類判定部150は、決定した配置分類を記録保持し、一連の処理を終了する。
このようにして、配置分類判定部150は、現ショットに当てはまる配置分類を判定する。
次に、図1に示すカメラ方向制御部160の説明を行う前に、図1に示すアニメーション作成装置100において定義されるカメラ方向およびカメラ距離について説明する。図1に示すカメラ方向制御部160は、被写体400を基準とした複数のカメラ方向をあらかじめ定義しており、定義されたカメラ方向の中から選択することによって、各ショットにおける仮想カメラの被写体400に対する撮影方向を制御する。一方、カメラ距離制御部200は、被写体400を基準とした複数のカメラ距離をあらかじめ定義しており、定義されたカメラ距離の中から選択することによって、各ショットにおける仮想カメラの被写体400に対する撮影距離を制御する。すなわち、被写体400を基準としたカメラ方向とカメラ距離との組み合わせはあらかじめ定義されており、定義された組み合わせの中から選択される形で、カメラワークが制御されるようになっている。
図8は、カメラ方向制御部160とカメラ距離制御部200によって定義されるカメラ方向とカメラ距離との組み合わせの一例を示す図である。カメラ方向制御部160は、被写体400の正面方向を基準として、「正面」、「右前」、「右横」、「右後」、「背面」、「左後」、「左横」、および「左前」を、カメラ方向として定義している。また、カメラ距離制御部200は、被写体400の位置を基準として、被写体400の顔部分のアップにして撮影する距離に相当する「CS(close-shot)」、被写体400のウェストから上部を撮影する距離に相当する「MS(medium-shot)」、および被写体全身を撮影する距離に相当する「FS(full-shot)」を、カメラ距離として定義している。この場合、図8に示す例では、被写体400を基準としたカメラ方向とカメラ距離との組み合わせは、24種類となる。
図9および図10は、図8に示すカメラ方向とカメラ距離との組み合わせごとの出力映像の例を示す図である。図9および図10に示すように、カメラ方向およびカメラ距離に応じて、被写体の映像が異なり、アニメーションの視聴者に与える視覚的効果が異なることがわかる。
また、図1に示すカメラ方向制御部160およびカメラ距離制御部200は、上記に加えて、カメラ方向の水平面となす角度(カメラアングル)と、他のカメラ距離とを、それぞれ定義している。
図11は、カメラ方向制御部160およびカメラ距離制御部200が定義するカメラ方向とカメラ距離との組み合わせの一覧の一例を示す図である。カメラ方向制御部160は、「水平」、「俯瞰」、および「あおり」を、カメラアングルとして定義しており、図8に示したカメラ方向と組み合わせることにより、より細分化された24種類のカメラ方向を定義している。また、カメラ距離制御部200は、2人の登場キャラクタが存在するときのためのカメラ方向として、ツーショットを撮影する距離に相当する「2S(2-shot)」を定義している。また、カメラ方向制御部160およびカメラ距離制御部200は、被写体400の動きを追うようなカメラワークとして「動きを追う」を、被写体400とは無関係にあらかじめ定められたカメラワークとして「定点P」と「定点P」を、カメラ方向およびカメラ距離としてそれぞれ定義している。
なお、説明の簡便化のため、以下、カメラ方向の垂直方向成分については適宜無視し、カメラ方向は水平のみとする。
図1に示すカメラ方向制御部160について説明する。カメラ方向制御部160は、配置分類ごとに、前ショットから現ショットへのカメラ方向の遷移パターン(以下「カメラ方向遷移」という)の優先順位を定めたカメラ方向遷移グラフを、あらかじめ保持している。カメラ方向制御部160は、現ショットの配置分類に該当するカメラ方向遷移グラフを参照し、カメラ方向候補を決定する。
ただし、登場キャラクタが2人の場合のカメラ方向遷移グラフの内容は、上記した映画文法に沿った内容となっている。ここで、カメラ方向遷移グラフの内容を説明する前に、各配置分類に適用されるカメラ方向遷移の具体例を説明する。
図12〜図18は、配置分類ごとに適用されるカメラ方向遷移の具体例を示す図である。図12〜図18は、順に、配置分類「1」〜配置分類「7」、つまり、対面配置、横並び配置、背向け配置、背中合せ配置、L型内向き配置、L型外向き配置、互い違い配置、にそれぞれ適用されるカメラ方向遷移を示している。各図では、仮想カメラの遷移前と遷移後のキャラクタに対する位置関係と、それぞれの仮想カメラ位置における映像例を示している。
配置分類「1」(対面配置)には、図12(A)〜図12(C)に順に示すように、外側から撮影する「External−External Reverse Shot」、内側から撮影する「Internal−Internal Reverse Shot」、および外側と内側から撮影する「External−Internal Reverse Shot」というカメラ方向遷移が適用される。配置分類「2」(横並び)には、図13(A)および図13(B)に順に示すように、「External−External Reverse Shot」と、遷移後と遷移前とで撮影方向を並行に保つ「Parallel Camera Positions」というカメラ方向遷移が適用される。配置分類「3」(背向け)には、図14(A)および図14(B)に順に示すように、「External−External Reverse Shot」、および「Parallel Camera Positions」が適用される。配置分類「4」(背中合せ)には、図15(A)および図15(B)に順に示すように、「External−External Reverse Shot」、および「Parallel Camera Positions」が適用される。
以上の配置分類「1」〜「4」に適用されるカメラ方向遷移において、仮想カメラは、両キャラクタを結ぶ線に対して同じ側で移動する。
配置分類「5」(L型内向き)には、図16(A)〜図16(C)に順に示すように、一方のキャラクタの正面を含むツーショットを切り返す「2 Shot−2 Shot」、一方のキャラクタのクローズショットとツーショットを切り返す「Close Shot−2 Shot」、および一方のキャラクタの背面を含むツーショットを切り返す「2 Shot−2 Shot」というカメラ方向遷移が適用される。配置分類「6」(L型外向き)には、図17(A)および図17(B)に順に示すように、一方のキャラクタの正面を含むツーショットを切り返す「2 Shot−2 Shot」、および「Close Shot−2 Shot」が適用される。
以上の配置分類「5」、「6」に適用されるカメラ方向遷移において、仮想カメラは、両キャラクタを結ぶ線に対して同じ側で移動する。
配置分類「7」(互い違い)には、図18(A)および図18(B)に順に示すように、「External−External Reverse Shot」、および「Parallel Camera Positions」が適用される。このカメラ方向遷移では、仮想カメラは、両キャラクタを結ぶ線に対して異なる側で移動する。
図19〜図27は、配置分類ごとのカメラ方向遷移グラフの内容の一例を示す図である。図19〜図27に示すカメラ方向遷移グラフ410−1〜410−7は、順に、配置分類「1」〜配置分類「7」、つまり、対面配置、横並び配置、背向け配置、背中合せ配置、L型内向き配置、L型外向き配置、互い違い配置、にそれぞれ対応している。
カメラ方向遷移グラフ410は、配置分類411、前ショットの方向412、および条件413という3つの情報の組み合わせごとに、現ショットの方向414として、図11に示したあらかじめ定義されているカメラ方向を指定する。この指定内容は、適用されるカメラ方向遷移に則ったものとなっている。また、現ショットの方向414として指定される各カメラ方向には優先順位が設定されており、図19〜図27では、図中の上方からの記述順序が、設定された優先順位に対応している。
たとえば、図19に示すカメラ方向遷移グラフ410−1において、配置分類411が「対面」であり、前ショットの方向412が「右前」であり、条件413が「動作主が異なる」となっている場合には、現ショットの方向414として、「左前」、「定点P」、および「定点P」が指定されている。このうち、最も優先順位の高い「左前」というカメラ方向が選択された場合、前ショットと現ショットとで被写体が切り替わる際に、2人のキャラクタを結ぶ直線に対して同じ側で、仮想カメラが移動することになる。これは、図12で説明した対面配置の場合のカメラ方向遷移に則ったカメラワークである。
なお、カメラ方向遷移グラフ410は、XML(extensible markup language)表記のデータとすることもできる。
図28〜図36は、XML表記のデータとした場合のカメラ方向遷移グラフの記述例を示す図であり、図19〜図27にそれぞれ対応するものである。たとえば、scene要素のtype属性によって配置分類411が指定され、rule要素のstate属性によって前ショットの方向412が指定され、condition要素のagent属性によって条件413が指定される。そして、transition要素のstate属性によって現ショットの方向414が指定される。このように、XMLなどの標準的な記述方式を採用することにより、カメラ方向遷移グラフに関する各種処理を、他のシステムと連携して行うことができる。具体的には、たとえば、既存の映画におけるカメラワークを解析するような装置で、カメラ方向遷移グラフを自動生成したり、カメラ方向遷移グラフを他の装置で共用するといったことが容易となる。
このように、各カメラ方向遷移グラフ410は、映画文法に基づくカメラ方向遷移に則った内容となっているため、カメラ方向制御部160は、カメラ方向遷移グラフ410を用いることにより、映画文法に則ったカメラワークを実現するカメラ方向を、カメラ方向候補として選択することができる。
ただし、図19〜図27に示すように、各カメラ方向遷移グラフ410では、同じ情報の組み合わせでも、複数のカメラ方向が現ショットの方向414として指定されている。過去にユーザが手動でカメラ遷移の選択を行っている場合には、その過去の選択頻度を、設定カメラワークの決定や、ユーザへの提示順序に反映させることが望ましい。そこで、カメラ方向保持部170は、ユーザの手動選択によって過去に決定されたカメラ方向遷移の頻度を記録するカメラ方向遷移頻度テーブルを備えている。
図37は、カメラ方向遷移頻度テーブルの構成の一例を示す図である。カメラ方向遷移頻度テーブル430は、配置分類ごとに用意されており、遷移前のカメラ方向と、遷移後のカメラ方向との組み合わせのパターンごとに、遷移の頻度を示す数値が記述されている。また、各組み合わせパターンを示すセルには、前ショットと現ショットとで動作主が変わる場合と変わらない場合とにそれぞれ対応する2つの値が記述されている。
たとえば、配置分類「1」に対応するカメラ方向遷移頻度テーブル430−1では、「左前」から「右前」へのカメラ方向遷移の頻度として、「11」と「9」の2つの値が記述されており、1つ目の値「11」は、他のいずれのカメラ方向に遷移する場合よりも高い値となっている。これは、過去のカメラワークにおいて、配置分類「1」で動作主が変わる場合で、遷移前のカメラ方向が「左前」であった場合には、「右前」のカメラ方向に遷移する頻度が最も高かったことを示している。カメラ方向遷移頻度テーブル430の更新については後述する。
カメラ方向制御部160は、上記したカメラ方向遷移グラフ410とカメラ方向遷移頻度テーブル430とを用いて、カメラワーク方向候補を選択して出力するカメラ方向制御処理を実行する。
次に、カメラ方向制御部160によるカメラ方向制御処理について、図38のフローチャートを用いて説明する。
ステップS2000において、カメラ方向制御部160は、シナリオ要素「動作主」、配置分類、カメラ距離変化コマンドのいずれかが入力されたか否かを判断する。カメラ方向制御部160は、シナリオ要素「動作主」、配置分類、カメラ距離変化コマンドのいずれかが入力された場合には(S2000:YES)、ステップS2010へ進み、いずれも入力されない場合には(S2000:NO)、ステップS2020へ進む。
ステップS2020において、カメラ方向制御部160は、カメラ方向変化コマンドが入力されたか否かを判断する。カメラ方向制御部160は、カメラ方向変化コマンドが入力された場合には(S2020:YES)、ステップS2030へ進み、カメラ方向変化コマンドが入力されない場合には(S2020:NO)、ステップS2000へ戻り、情報の入力を再び監視する。カメラ方向変化コマンドがどのような場合に入力されるかについては後述する。
ステップS2010において、カメラ方向制御部160は、ステップS2000で入力された情報が属するショット(現ショット)の動作主および配置分類と、前ショットの動作主およびカメラ方向のうち、入力していない情報を取得する。具体的には、カメラ方向制御部160は、シナリオ要素入力部120から現ショットのシナリオ要素「動作主」を、配置分類判定部150から現ショットの配置分類を、カメラ方向保持部170から前ショットの動作主およびカメラ方向を、それぞれ取得する。
次に、ステップS2040において、カメラ方向制御部160は、現ショットの配置分類に該当するカメラ方向遷移グラフ410で、前ショットの動作主、カメラ方向、および現ショットの動作主をクエリとして、現ショットの方向414を検索する。そして、カメラ方向制御部160は、検索した現ショットの方向414を、カメラ方向候補として抽出する。
次に、ステップS2050において、カメラ方向制御部160は、現ショットの配置分類に該当するカメラ方向遷移頻度テーブル430を参照し、前ショットのカメラ方向を遷移前カメラ方向としたときの遷移頻度の値に着目する。そして、カメラ方向制御部160は、ステップS2040で抽出したカメラ方向候補を遷移後カメラ方向とした場合について、カメラ方向候補を遷移頻度が高い順にソートし、優先順位を設定する。ただし、カメラ方向制御部160は、初期状態など、ユーザによってカメラワークの指定がまだ行われていない段階では、カメラ方向遷移頻度テーブル430に基づいて優先順位を設定することができない。このような場合には、カメラ方向制御部160は、カメラ方向遷移グラフ410における記述順を優先順位として採用する。
次に、ステップS2060において、カメラ方向制御部160は、ステップS2000で入力された情報がカメラ距離変化コマンドであったか否かを判断する。カメラ方向制御部160は、入力された情報がカメラ距離変化コマンド以外、つまりシナリオ要素「動作主」または配置情報であった場合には(S2060:NO)、ステップS2070へ進み、入力された情報がカメラ距離変化コマンドであった場合には(S2060:YES)、ステップS2080へ進む。カメラ距離変化コマンドがどのような場合に入力されるかについては後述する。
ステップS2070において、カメラ方向制御部160は、現ショットのカメラ方向候補のうち、最も高い優先順位が設定されたカメラ方向候補を、現ショットの仮のカメラ方向としてカメラ方向変化判定部180へ出力する。
次に、ステップS2090において、カメラ方向制御部160は、現ショットのカメラ方向候補を、設定された優先順位を付加した状態でカメラワーク決定部230へ出力し、一連の処理を終了する。
一方、ステップS2030において、カメラ方向制御部160は、現ショットに設定されたカメラ方向候補の優先順位を修正する。具体的には、カメラ方向制御部160は、現ショットのカメラ方向候補の優先順位「1」、「2」を入れ替える。そして、カメラ方向制御部160は、ステップS2070へ進む。すなわち、カメラ方向制御部160は、修正後の優先順位がもっとも高いカメラ方向候補がカメラ方向変化判定部180へ出力され、カメラワーク決定部230に出力されるカメラ方向候補には修正後の優先順位が付加される。なお、カメラ方向変化コマンドは、現ショットについてのカメラ方向候補の優先順位の設定を過去に既に行っている場合にのみ入力されるため、このような優先順位の修正が可能となっている。
また、ステップS2080において、カメラ方向制御部160は、ステップS2000で入力された情報がカメラ距離変化コマンドであることから、そのカメラ距離変化コマンドが「距離変化なし」を示すものか否かを判断する。カメラ方向制御部160は、カメラ距離変化コマンドが「距離変化なし」を示すものである場合には(S2080:YES)、ステップS2100へ進み、カメラ距離変化コマンドが「距離変化あり」を示すものである場合には(S2080:NO)、ステップS2100を経ずにそのままステップS2090へ進む。どのような場合に「距離変化なし」のカメラ距離変化コマンドが入力されるかについては後述する。
ステップS2100において、カメラ方向制御部160は、ステップS2030と同様に、現ショットに設定されたカメラ方向候補の優先順位を修正し、ステップS2090へ進む。
このようにして、カメラ方向制御部160は、現ショットに対してカメラ方向候補を決定する。そして、カメラ方向制御部160は、シナリオ要素「動作」、配置分類、または「距離変化あり」のカメラ距離変化コマンドを入力した場合には、カメラ方向遷移グラフ410およびカメラ方向遷移頻度テーブル430に記述される優先順位を、カメラ方向候補に設定する。一方で、カメラ方向制御部160は、カメラ方向変化コマンド、または「距離変化なし」のカメラ距離変化コマンドを入力した場合には、修正した優先順位をカメラ方向候補に設定する。
次に、図1に示すカメラ方向変化判定部180について説明する。カメラ方向変化判定部180は、カメラ方向制御部160から図38のステップS2070に対応して出力される現ショットのカメラ方向を入力するたびに、カメラ方向変化の有無を判別してカメラ方向変化コマンドを出力するカメラ方向変化判定処理を実行する。
カメラ方向変化判定部180によるカメラ方向変化判定処理について、図39のフローチャートを用いて説明する。ここで、添え字として、処理の対象となっているショットに関する情報であることを示すパラメータt、および処理の対象となっているショットと動作主を同じくするショットのうち1つ前のショットに関する情報であることを示すパラメータt−1を用いる。
ステップS2500において、カメラ方向変化判定部180は、カメラ方向制御部160から現ショットのカメラ方向Wを取得する。
次に、ステップS2510において、カメラ方向変化判定部180は、処理の対象となるショットを、同じ動作主についての1つ前のショットに遡ることができるか否かを判断する。たとえば、現ショットがシーンの最初のショットであった場合や、後述するショットを遡る処理を繰り返した結果、処理の対象となるショットがシーンの最初のショットとなった場合には、ショットを遡ることができない。カメラ方向変化判定部180は、ショットを遡ることができる場合には(S2510:YES)、ステップS2520へ進み、ショットを遡ることができない場合には(S2510:NO)、ステップS2530へ進む。
ステップS2520において、カメラ方向変化判定部180は、カメラ方向保持部170から、ショット(t−1)のカメラ方向W(t−1)を取得する。
次に、ステップS2540において、カメラ方向変化判定部180は、現ショットの動作主について、1つ前のショットとの間でのカメラ方向変化の有無、つまりカメラ方向W(t)とカメラ方向W(t−1)とが同一か否かを判断する。なお、初期状態では、ショット(t)は、現ショットである。カメラ方向変化判定部180は、カメラ方向変化が無い場合には(S2540:YES)、ステップS2550へ進み、カメラ方向変化が有る場合には(S2540:NO)、ステップS2530へ進む。
ステップS2550において、カメラ方向変化判定部180は、カメラ方向変化の無いショットの継続数が、あらかじめ定められた閾値を超えたか否かを判断する。カメラ方向変化判定部180は、カメラ方向変化の無いショットの継続数が閾値以下の場合には(S2550:NO)、ステップS2560へ進み、カメラ方向変化の無いショットの継続数が閾値を超えた場合には(S2550:YES)、ステップS2570へ進む。ここで、あらかじめ定められた閾値とは、カメラ方向変化の無いショットが継続したときに、映像が単調化していると認識されるショット継続数である。
ステップS2560において、カメラ方向変化判定部180は、処理の対象となるショットを同じ動作主についての1つ前のショットに遡り、つまりパラメータt−1をパラメータtに更新し、ステップS2510へ戻る。すなわち、カメラ方向変化判定部180は、現ショットから前のショットに遡っていき、前後のショット間でカメラ方向が変化するまで、ステップS2510〜S2560が繰り返される。そして、カメラ方向変化判定部180は、その間に、シーンの最初のショットまで遡るとステップS2530へ進み、カメラ方向変化の無いショットの継続数が閾値に達すると、ステップS2570へ進む。
ステップS2570において、カメラ方向変化判定部180は、現ショットについてまだカメラ方向変化コマンドを出力していないかを判断する。カメラ方向変化判定部180は、現ショットについてまだカメラ方向変化コマンドを出力していない場合には(S2570:YES)、ステップS2580へ進み、現ショットについて既にカメラ方向変化コマンドを出力している場合には(S2570:NO)、ステップS2590へ進む。
ステップS2580において、カメラ方向変化判定部180は、カメラ方向変化コマンドをカメラ方向制御部160へ出力し、一連の処理を終了する。
このステップS2580の処理に対応して、カメラ方向制御部160は、図38で説明したように、カメラ方向候補の優先順位を修正し、修正後の優先順位が最も高いカメラ方向候補を現ショットのカメラ方向として再びカメラ方向変化判定部180へ出力する。この結果、1回目とは異なるカメラ方向Wが入力されると、カメラ方向変化判定部180は、前ショットと現ショットとの間でカメラ方向Wが変化し、処理はステップS2530へと進む。
ステップS2530において、カメラ方向変化判定部180は、現ショットのカメラ距離候補を決定させるために、カメラ方向変化コマンドをカメラ距離制御部200へ出力し、一連の処理を終了する。ただし、カメラ方向変化判定部180は、カメラ方向変化の無いショットが継続していないこと(方向変化あり)を示すカメラ方向変化コマンドを出力する。
一方、ステップS2590において、カメラ方向変化判定部180は、現ショットのカメラ距離候補を決定させるために、カメラ方向変化コマンドをカメラ距離制御部200へ出力し、一連の処理を終了する。ただし、カメラ方向変化判定部180は、カメラ方向変化が無いことからカメラ方向変化コマンドを出力したものの、カメラ方向変化が無いままであったとして、カメラ方向変化の無いショットが継続していること(方向変化なし)を示すカメラ方向変化コマンドを出力する。このような事態は、たとえば、カメラ方向候補が1つしか存在せず、1回目と2回目で同じカメラ方向Wがカメラ方向制御部160から入力された場合に起こり得る。
このようにして、カメラ方向変化判定部180は、カメラ方向候補の優先順位を修正させるカメラ方向変化コマンドを出力するとともに、カメラ距離制御部200を起動させるカメラ方向変化コマンドをカメラ方向変化の有無を付加した状態で出力する。なお、カメラ方向制御部160に入力されたのがカメラ距離変化コマンドである場合には、カメラ方向変化判定処理は実行されず、カメラ距離制御部200にカメラ方向変化コマンドは入力されない。これは、現ショットについて、既にカメラ距離制御部200が起動しているためである。
一方、カメラ距離についても、シーン分類判定部190およびカメラ距離制御部200によって、カメラ距離候補が決定される。
まず、図1に示すシーン分類判定部190について説明する。シーン分類判定部190は、シナリオ要素に基づいて、現ショットがいずれのシーン分類に当てはまるかを判定するシーン分類判定処理を実行する。本実施例のアニメーション作成装置100では、カメラワークを制御する際の指標となる情報の1つとして、「対話」、「表情」、「ジェスチャー」、および「全身動作」の4つのシーン分類を用いている。
シーン分類判定部190によるシーン分類判定処理について、図40に示すフローチャートを用いて説明する。
ステップS3000において、シーン分類判定部190は、シナリオ要素「動作」として動作種別が入力されたか否かを判断する。動作種別が入力された場合には(S3000:YES)、ステップS3050へ進み、動作種別が入力されていない場合には(S3000:NO)、ステップS3100へ進む。
ステップS3050において、シーン分類判定部190は、動作種別に対応するアクションデータを、アクションデータベース262で検索する。アクションデータとしては、たとえば、Biovision社が考案した、人体のパーツを階層構造で管理するデータフォーマットであるBVH(Biovision hierarchy)のデータを用いるようにすればよい。
次に、ステップS3150において、シーン分類判定部190は、動作種別に対応するアクションデータが検索されたか否かを判別する。シーン分類判定部190は、該当するアクションデータが検索されない場合(S3150:YES)には、ステップS3200へ進む。
ステップS3200において、シーン分類判定部190は、動作種別に対応するアクションデータを取得し、全身動作か否かを分析して、その分析結果を取得したアクションデータに付加させる。そして、シーン分類判定部190は、取得したアクションデータが、頭、上腕、および腕に該当するパーツのみにおいて位置や向きの変化がある場合にはジェスチャーに該当する動作種別であると判別し、太もも、下肢、および腰に該当するパーツにおいても位置や向きの変化がある場合には全身動作に該当する動作種別であると判別する。
次に、ステップS3250において、シーン分類判定部190は、ステップS3200で取得したアクションデータを、アクションデータベース262に追加する。具体的には、シーン分類判定部190は、ステップS3200で分析された動作種別を対応付けた状態で、アクションデータをアクションデータベース262に保存する。
ステップS3300において、シーン分類判定部190は、動作種別が全身動作に該当するか否かを判断する。動作種別が全身動作に該当する場合には(S3300:YES)、ステップS3350へ進み、動作種別が全身動作に該当しない場合には(S3300:NO)、ステップS3450へ進む。
ステップS3350において、シーン分類判定部190は、シーン分類が「全身動作」であると判定する。
次に、ステップS3400において、シーン分類判定部190は、シーン分類についての判定結果を記録保持し、一連の処理を終了する。
一方、ステップS3150で、該当するアクションデータが検索された場合には、シーン分類判定部190は、そのままステップS3300へ進み、動作種別が全身動作に該当するか否かの判断を行う。
また、ステップS3450では、シーン分類判定部190は、動作種別が全身動作に該当せず、キャラクタの動作が主に上半身で行われるジェスチャーであるとして、シーン分類が「ジェスチャー」であると判定し、ステップS3400へ進んで判定結果を記録保持する。
一方、ステップS3100において、シーン分類判定部190は、シナリオ要素「表情」として表情種別が入力されたか否かを判断する。シーン分類判定部190は、表情種別が入力された場合には(S3100:YES)、ステップS3500へ進み、表情種別が入力されなかった場合には(S3100:NO)、ステップS3550へ進む。
ステップS3500において、シーン分類判定部190は、特に動作が行われていないもののキャラクタの表情に動きがあるとして、シーン分類が「表情」であると判定し、ステップS3400へ進んで判定結果を記録保持する。
ステップS3550において、シーン分類判定部190は、シナリオ要素「台詞」として文字列が入力されたか否かを判断する。シーン分類判定部190は、シナリオ要素「台詞」として文字列が入力された場合には(S3550:YES)、ステップS3600へ進み、シナリオ要素「台詞」として文字列が入力されなかった場合には(S3550:NO)、そのまま一連の処理を終了する。
ステップS3600において、シーン分類判定部190は、シーン分類が「対話」であると判定し、ステップS3400へ進み、カメラ距離制御処理を実行して一連の処理を終了する。
このようにして、シーン分類判定部190は、現ショットに当てはまるシーン分類を判定する。
次に、図1に示すカメラ距離制御部200について説明する。カメラ距離制御部200は、シーン分類判定部190の判定結果に基づいて、カメラ距離候補を決定する。
図41は、同じ動作主についてのカメラ距離の遷移パターンと初期状態における各遷移パターンの優先順位を示す図である。実線の矢印は、優先順位の高い遷移パターンであることを示し、破線の矢印は、優先順位の低い遷移パターンであることを示している。
カメラ距離には、既に説明したように、クローズアップショット(CS)、ウェストショット(MS)、フルショット(FS)、およびツーショット(2S)が存在している。初期状態では、図41に示すように、クローズアップショットとフルショットとの間の遷移と、クローズアップショットとツーショットとの間の遷移は、他の遷移パターンよりも優先順位が低く設定されている。これは、被写体との距離について視覚連続性を考慮し、映像の変化が最小限となる遷移パターンの優先度を高く、映像の変化が大きくなるにつれて優先度を低くするためである。すなわち、このような遷移パターンの優先度を設定しておくことによって、極端な映像の変化により視聴者の理解に混乱をきたすことを抑制し、適切な映像の変化により自然な映像を実現することが可能となる。
図1に示すカメラ距離制御部200は、シーン分類ごとに、前ショットから現ショットへのカメラ距離の遷移パターン(以下「カメラ距離遷移」という)の優先順位を定めたカメラ距離遷移グラフを、あらかじめ保持している。カメラ距離制御部200は、現ショットのシーン分類に該当するカメラ距離遷移グラフを参照し、カメラ距離候補を決定する。
図42〜図44は、シーン分類ごとのカメラ距離遷移グラフの内容の一例を示す図である。図42〜図44に示すカメラ距離遷移グラフ450−1〜450−3は、順に、シーン分類「対話」、シーン分類「表情」、シーン分類「ジェスチャー/全身動作」にそれぞれ対応している。
カメラ距離遷移グラフ450は、シーン分類451、前ショットの距離452、および条件453という3つの情報の組み合わせごとに、現ショットの距離454として、図11に示したカメラ距離を指定する。また、現ショットの距離454として指定される各カメラ距離には、優先順位が設定されており、図42〜図44では、図中の上方からの記述順序が、設定された優先順位に対応している。
たとえば、図43に示すカメラ距離遷移グラフ450−2において、シーン分類451が「表情」であり、前ショットの距離452が「MS」であり、条件453が「動作主が同じ」となっている場合には、現ショットの距離454として、「CS」、および「MS」が指定されている。このうち、最も優先順位の高い「CS」という現ショットの距離454が選択された場合、上半身のショットから、顔のアップのショットに変化し、視聴者に対して表情に着目させる映像効果が生み出される。
なお、カメラ距離遷移グラフ450も、カメラ方向遷移グラフ410と同様に、XML表記のデータとすることもできる。
図45〜図47は、XML表記のデータとした場合のカメラ距離遷移グラフの記述例を示す図であり、図42〜図44にそれぞれ対応するものである。たとえば、scene要素のtype属性によってシーン分類451が指定され、rule要素のstate属性によって前ショットの距離452が指定され、condition要素のagent属性によって条件453が指定される。そして、transition要素のstate属性によって現ショットの距離454が指定される。
図42〜図44に示すように、各カメラ距離遷移グラフ450でも、カメラ方向遷移グラフ410と同様に、同じ情報の組み合わせに対し、複数のカメラ距離が現ショットの距離454として指定されている。過去にユーザが手動でカメラ遷移の選択を行っている場合には、カメラ方向候補と同様に、その選択頻度を設定カメラワークの決定やユーザへの提示順序に反映させることが望ましい。そこで、カメラ距離保持部210は、ユーザの手動選択によって過去に決定されたカメラ距離遷移の頻度を記録するカメラ距離遷移頻度テーブルを備えている。
図48は、カメラ距離遷移頻度テーブルの構成の一例を示す図である。カメラ距離遷移頻度テーブル470は、シーン分類ごとに用意されており、遷移前のカメラ距離と、遷移後のカメラ距離との組み合わせパターンごとに、遷移の頻度を示す数値が記述されている。また、各組み合わせパターンを示すセルには、前ショットと現ショットとで動作主が変わる場合と変わらない場合とにそれぞれ対応する2つの値が記述されている。
たとえば、シーン分類「対話」に対応するカメラ距離遷移頻度テーブル470−1ではカメラ距離「2S」からカメラ距離「2S」へのカメラ距離遷移の頻度として、「9」と「5」の2つの値が記述されており、1つ目の値「9」は、他のいずれのカメラ距離に遷移する場合よりも高い値となっている。これは、過去のカメラワークにおいて、シーン分類「対話」で動作主が変わる場合で、遷移前のカメラ距離が「2S」であった場合には、「2S」のカメラ距離に遷移する頻度が最も高かったことを示している。カメラ距離遷移頻度テーブル470の更新については後述する。
カメラ距離制御部200は、上記したカメラ距離遷移グラフ450とカメラ距離遷移頻度テーブル470とを用いて、カメラワーク距離候補を選択して出力するカメラ距離制御処理を実行する。
次に、カメラ距離制御部200によるカメラ距離制御処理について、図49のフローチャートを用いて説明する。
ステップS4000において、カメラ距離制御部200は、シーン分類またはカメラ方向変化コマンドが入力されたか否かを判断する。カメラ距離制御部200は、シーン分類またはカメラ方向変化コマンドが入力された場合には(S4000:YES)、ステップS4010へ進み、いずれも入力されない場合には(S4000:NO)、ステップS4020へ進む。
ステップS4020において、カメラ距離制御部200は、カメラ距離変化コマンドが入力されたか否かを判断する。カメラ距離制御部200は、カメラ距離変化コマンドが入力された場合には(S4020:YES)、ステップS4030へ進み、カメラ距離変化コマンドが入力されない場合には(S4020:NO)、ステップS4000へ戻り、情報の入力を再び監視する。カメラ距離変化コマンドがどのような場合に入力されるかについては後述する。
ステップS4010において、カメラ距離制御部200は、ステップS4000で入力された情報が属するショット(現ショット)の動作主およびシーン分類と、前ショットの動作主およびカメラ距離のうち、入力していない情報を取得する。具体的には、カメラ距離制御部200は、シナリオ要素入力部120から現ショットのシナリオ要素「動作主」を、シーン分類判定部190から現ショットのシーン分類を、カメラ距離保持部210から前ショットの動作主およびカメラ距離を、それぞれ取得する。
次に、ステップS4040において、カメラ距離制御部200は、現ショットのシーン分類に該当するカメラ距離遷移グラフ450で、前ショットの動作主、カメラ距離、および現ショットの動作主をクエリとして、現ショットの距離454を検索する。そして、カメラ距離制御部200は、検索した現ショットの距離454を、カメラ距離候補として抽出する。
次に、ステップS4050において、カメラ距離制御部200は、現ショットのシーン分類に該当するカメラ距離遷移頻度テーブル470を参照し、前ショットのカメラ距離を遷移前カメラ距離としたときの遷移頻度の値に着目する。そして、カメラ距離制御部200は、ステップS4040で抽出したカメラ距離候補を遷移後カメラ距離とした場合について、カメラ距離候補を遷移頻度が高い順にソートし、優先順位を設定する。ただし、初期状態など、ユーザによってカメラワークの指定がまだ行われていない段階では、カメラ距離遷移頻度テーブル470に基づいて優先順位を設定することができない。このような場合には、カメラ距離制御部200は、カメラ距離遷移グラフ450における記述順を優先順位として採用する。
次に、ステップS4060において、カメラ距離制御部200は、ステップS4000で入力された情報がカメラ方向変化コマンドであったか否かを判断する。カメラ距離制御部200は、入力された情報がカメラ方向変化コマンド以外、つまりシーン分類であった場合には(S4060:NO)、ステップS4070へ進み、入力された情報がカメラ方向変化コマンドであった場合には(S4060:YES)、ステップS4080へ進む。カメラ方向変化コマンドは、図39で説明したように、図1に示すカメラ方向変化判定部180から入力される。
ステップS4070において、カメラ距離制御部200は、現ショットのカメラ距離候補のうち、最も高い優先順位が設定されたカメラ距離候補を、現ショットの仮のカメラ距離としてカメラ距離変化判定部220へ出力する。
次に、ステップS4090において、カメラ距離制御部200は、現ショットのカメラ距離候補を、設定された優先順位を付加した状態でカメラワーク決定部230へ出力し、一連の処理を終了する。
一方、ステップS4030において、カメラ距離制御部200は、現ショットに設定されたカメラ距離候補の優先順位を修正する。具体的には、カメラ距離制御部200は、現ショットのカメラ距離候補の優先順位「1」、「2」を入れ替える。そして、カメラ距離制御部200は、ステップS4070へ進む。すなわち、カメラ距離制御部200は、修正後の優先順位がもっとも高いカメラ距離候補がカメラ距離変化判定部220へ出力され、カメラワーク決定部230に出力されるカメラ距離候補には修正後の優先順位が付加される。なお、カメラ距離変化コマンドは、現ショットについてのカメラ距離候補の優先順位の設定を過去に既に行っている場合にのみ入力されるため、このような優先順位の修正が可能となっている。
また、ステップS4080において、カメラ距離制御部200は、ステップS4000で入力された情報がカメラ方向変化コマンドであることから、そのカメラ方向変化コマンドが「方向変化なし」を示すものか否かを判断する。カメラ距離制御部200は、カメラ方向変化コマンドが「方向変化なし」を示すものである場合には(S4080:YES)、ステップS4100へ進み、カメラ方向変化コマンドが「方向変化あり」を示すものである場合には(S4080:NO)、ステップS4100を経ずにそのままステップS4090へ進む。「方向変化なし」のカメラ方向変化コマンドが入力されるのは、図39で説明したように、カメラ方向変化が無いショットが継続した場合である。
ステップS4100において、カメラ距離制御部200は、ステップS4030と同様に、現ショットに設定されたカメラ距離候補の優先順位を修正し、ステップS4090へ進む。
このようにして、カメラ距離制御部200は、現ショットに対してカメラ距離候補を決定する。そして、カメラ距離制御部200は、シーン分類、または「方向変化あり」のカメラ方向変化コマンドを入力した場合には、カメラ距離遷移グラフ450およびカメラ距離遷移頻度テーブル470に記述される優先順位を、カメラ距離候補に設定する。一方で、カメラ距離制御部200は、カメラ距離変化コマンド、または「方向変化なし」のカメラ方向変化コマンドを入力した場合には、修正した優先順位をカメラ距離候補に設定する。
次に、図1に示すカメラ距離変化判定部220について説明する。カメラ距離変化判定部220は、カメラ距離制御部200から図49のステップS4070に対応して出力される現ショットのカメラ距離を入力するたびに、カメラ距離変化の有無を判別してカメラ距離変化コマンドを出力するカメラ距離変化判定処理を実行する。
カメラ距離変化判定部220によるカメラ距離変化判定処理について、図50のフローチャートを用いて説明する。ここで、添え字として、処理の対象となっているショットに関する情報であることを示すパラメータt、および処理の対象となっているショットと動作主を同じくするショットのうち1つ前のショットに関する情報であることを示すパラメータt−1を用いる。
ステップS4500において、カメラ距離変化判定部220は、カメラ距離制御部200から現ショットのカメラ距離Dを取得する。
次に、ステップS4510において、カメラ距離変化判定部220は、処理の対象となるショットを、同じ動作主についての1つ前のショットに遡ることができるか否かを判断する。たとえば、カメラ距離変化判定部220は、現ショットがシーンの最初のショットであった場合や、後述するショットを遡る処理を繰り返した結果、処理の対象となるショットがシーンの最初のショットとなった場合には、ショットを遡ることができない。カメラ距離変化判定部220は、ショットを遡ることができる場合には(S4510:YES)、ステップS4520へ進み、ショットを遡ることができない場合には(S4510:NO)、ステップS4530へ進む。
ステップS4520において、カメラ距離変化判定部220は、カメラ距離保持部210から、ショット(t−1)のカメラ距離D(t−1)を取得する。
次に、ステップS4540において、カメラ距離変化判定部220は、現ショットの動作主について、1つ前のショットとの間でのカメラ距離変化の有無、つまりカメラ距離D(t)とカメラ距離D(t−1)とが同一か否かを判断する。なお、初期状態では、ショット(t)は、現ショットである。カメラ距離変化判定部220は、カメラ距離変化が無い場合には(S4540:YES)、ステップS4550へ進み、カメラ距離変化が有る場合には(S4540:NO)、ステップS4530へ進む。
ステップS4550において、カメラ距離変化判定部220は、カメラ距離変化の無いショットの継続数が、あらかじめ定められた閾値を超えたか否かを判断する。カメラ距離変化判定部220は、カメラ距離変化の無いショットの継続数が閾値以下の場合には(S4550:NO)、ステップS4560へ進み、カメラ距離変化の無いショットの継続数が閾値を超えた場合には(S4550:YES)、ステップS4570へ進む。ここで、あらかじめ定められた閾値とは、カメラ距離変化の無いショットが継続したときに、映像が単調化していると認識されるショット継続数である。
ステップS4560では、カメラ距離変化判定部220は、処理の対象となるショットを同じ動作主についての1つ前のショットに遡り、つまりパラメータt−1をパラメータtに更新し、ステップS4510へ戻る。すなわち、現ショットから前のショットに遡っていき、前後のショット間でカメラ距離が変化するまで、ステップS4510〜S4560が繰り返される。そして、その間に、シーンの最初のショットまで遡ると、ステップS4530へ進み、カメラ距離変化の無いショットの継続数が閾値に達すると、ステップS4570へ進む。なお、ステップS4560で用いる閾値と、図39に示すカメラ方向制御処理のステップS2550で用いる閾値とは、同一の値であっても、異なる値であってもよい。
ステップS4570において、カメラ距離変化判定部220は、現ショットについてまだカメラ距離変化コマンドを出力していないかを判断する。カメラ距離変化判定部220は、現ショットについてまだカメラ距離変化コマンドを出力していない場合には(S4570:YES)、ステップS4580へ進み、現ショットについて既にカメラ距離変化コマンドを出力している場合には(S4570:NO)、ステップS4590へ進む。
ステップS4580において、カメラ距離変化判定部220は、カメラ距離変化コマンドをカメラ距離制御部200へ出力し、一連の処理を終了する。
このステップS4580の処理に対応して、カメラ距離制御部200は、図49で説明したように、カメラ距離候補の優先順位を修正し、修正後の優先順位が最も高いカメラ距離候補を現ショットのカメラ距離として再びカメラ距離変化判定部220へ出力する。この結果、1回目とは異なるカメラ距離Dが入力されると、カメラ距離変化判定部220は、前ショットと現ショットとの間でカメラ距離Dが変化し、処理はステップS4530へと進む。
ステップS4530において、カメラ距離変化判定部220は、現ショットのカメラ方向候補を決定させるために、カメラ距離変化コマンドをカメラ方向制御部160へ出力し、一連の処理を終了する。ただし、カメラ距離変化判定部220は、カメラ距離変化の無いショットが継続していないこと(距離変化あり)を示すカメラ距離変化コマンドを出力する。
一方、ステップS4590において、カメラ距離変化判定部220は、現ショットのカメラ方向候補を決定させるために、カメラ距離変化コマンドをカメラ方向制御部160へ出力し、一連の処理を終了する。ただし、カメラ距離変化判定部220は、カメラ距離変化が無いことからカメラ距離変化コマンドを出力したものの、カメラ距離変化が無いままであったとして、カメラ距離変化の無いショットが継続していること(距離変化なし)を示すカメラ距離変化コマンドを出力する。このような事態は、たとえば、カメラ距離候補が1つしか存在せず、1回目と2回目で同じカメラ距離Dがカメラ距離制御部200から入力された場合に起こり得る。
このようにして、カメラ距離変化判定部220は、カメラ距離候補の優先順位を修正させるカメラ距離変化コマンドを出力するとともに、カメラ方向制御部160を起動させるカメラ距離変化コマンドをカメラ距離変化の有無を付加した状態で出力する。なお、カメラ距離制御部200に入力されたのがカメラ方向変化コマンドである場合には、カメラ距離変化判定処理は実行されず、カメラ方向制御部160にカメラ距離変化コマンドは入力されない。これは、現ショットについて、既にカメラ方向制御部160が起動しているためである。
このようなカメラ距離制御部200およびカメラ距離変化判定部220の処理と、図38および図39で説明したカメラ方向制御部160およびカメラ方向変化判定部200の処理によって、カメラワークに変化を持たせることができる。すなわち、カメラ方向が単調なときには、カメラ方向の変更を試み、それでも変化しない場合にはカメラ距離を積極的に変化させることができる。逆に、カメラ距離が単調なときには、カメラ距離の変更を試み、それでも変化しない場合にはカメラ方向を積極的に変化させることができる。
次に、図1に示すカメラワーク決定部230について説明する。カメラワーク決定部230は、カメラ方向制御部160およびカメラ距離制御部200から入力するカメラ方向候補およびカメラ距離候補を用いて、カメラワークを決定するカメラワーク決定処理を実行する。
カメラワーク決定部230によるカメラワーク決定処理について、図51のフローチャートを用いて説明する。
ステップS5000において、カメラワーク決定部230は、設定カメラワークの決定を、カメラ方向候補およびカメラ距離に基づく自動選択で行うか、それともユーザの手動操作に基づく手動選択で行うか、を判断する。具体的には、カメラワーク決定部230は、シナリオ要素入力部120からシナリオ要素「カメラワーク」を入力された場合には、設定カメラワークの決定を手動選択で行うと判断し、その他の場合、すなわちカメラ方向候補およびカメラ距離候補が入力された場合には、設定カメラワークの決定を自動選択で行うと判断する。カメラワーク決定部230は、設定カメラワークの決定を、自動選択で行う場合には(S5000:NO)、ステップS5100へ進み、手動選択で行う場合には(S5000:YES)、ステップS5200へ進む。
ステップS5100において、カメラワーク決定部230は、カメラ方向制御部160から、優先順位が付加されたカメラ方向候補を取得する。
次に、ステップS5300において、カメラワーク決定部230は、カメラ距離制御部200から、優先順位が付加されたカメラ距離候補を取得する。
次に、ステップS5400において、カメラワーク決定部230は、カメラ方向候補の優先順位に、カメラ距離の優先順位を組み合わせて、ユーザに提示する際の優先順位(以下「提示順位」という)が付加された推薦カメラワークを決定する。具体的には、たとえば、カメラワーク決定部230は、カメラ方向の優先順位を一番目に優先されるキー、カメラ距離の優先順位を二番目に優先されるキーとして昇順にソートし、提示順位付きの推薦カメラワークとして決定する。なお、提示順位の決定はこの手法に限定されず、たとえば、カメラ方向の優先順位とカメラ距離の優先順位の和を算出し、算出結果が昇順となるように推薦カメラワークをソートしてもよい。
次に、ステップS5500において、カメラワーク決定部230は、決定した提示順位の最も高い推薦カメラワークを、設定カメラワークを決定する。
次に、ステップS5600において、カメラワーク決定部230は、決定した推薦カメラワークを、カメラワーク推薦提示部240へ出力する。
次に、ステップS5700において、カメラワーク決定部230は、決定した設定カメラワークを、カメラパラメータ算出部250へ出力し、一連の処理を終了する。
一方、ステップS5200において、カメラワーク決定部230は、手動選択で設定カメラワークの決定を行う手動設定処理を実行する。そして、カメラワーク決定部230は、ステップS5700へ進み、手動設定処理で決定した設定カメラワークを出力する。手動設定処理の詳細については、後に別図を用いて説明する。
次に、図1に示すカメラワーク推薦提示部240について説明する。カメラワーク推薦提示部240は、カメラワーク決定部230から推薦カメラワークを入力すると、既に説明したように、シナリオ入力画面350にカメラワーク選択領域を追加表示する。
図52は、カメラワーク選択領域が追加表示されたシナリオ入力画面350の一例を示す図である。カメラワーク推薦提示部240は、シナリオ入力画面350において、現ショットのカメラワーク設定領域367に隣接する領域に、カメラワーク選択領域500aをドロップダウン表示させる。カメラワーク選択領域500aの上位には、推薦カメラワークが、推薦リスト510aとして種別名で配置され、カメラワーク選択領域500aの下位には、選択し得る全てのカメラワークが、固定の候補リスト520aとして種別名で配置される。また、推薦リスト510a内において、各カメラワークは、カメラワーク決定部230で設定された提示順位が高いものほど、より上位に配置される。
カメラワーク選択領域500aに表示される推薦リスト510aまたは固定の候補リスト520aの中から任意のカメラワークを選択できるようになっている。カメラワーク推薦提示部240は、ユーザ操作により、いずれかのカメラワークが選択されると、選択されたカメラワークを、推薦カメラワークとしてカメラワーク決定部230へ出力する。
カメラワークの提示は、種別名ではなく、該当するカメラワークを適用した場合の映像を用いて行うことも可能である。
図53は、カメラワーク選択領域が追加表示されたシナリオ入力画面350の他の一例を示す図である。この例では、シナリオ入力画面350において、各ショットのカメラワーク設定領域367に、設定カメラワークを適用した場合の映像のサムネイルが、カメラワークの種別を示すアイコンとして表示されている。そして、カメラワーク選択領域500bには、現ショットの推薦カメラワークのアイコンが、提示順位に応じた順序で並べて表示されている。このようにカメラワークの提示をアイコンによって行うことにより、ユーザは推薦カメラワークを映像で確認しながら、カメラワークの手動選択を行うことができる。なお、固定の候補リストの提示についても、推薦カメラワークと同様にアイコンを用いてもよい。
ユーザ操作により選択されたカメラワーク(以下「ユーザ選択カメラワーク」という)は、シナリオ要素「カメラワーク」としてカメラワーク決定部230へ出力される。すると、図51で説明したように、カメラワーク決定部230は、手動選択で設定カメラワークの決定を行う手動設定処理を実行する。
次に、カメラワーク決定部230による手動設定処理について、図54のフローチャートを用いて説明する。ここで、添え字として、処理の対象となっているショットに関する情報であることを示すパラメータtを用いる。また、処理の対象となっているショットの1つ前のショットに関する情報であることを示すパラメータt−1、および処理の対象となっているショットの1つ後のショットに関する情報であることを示すパラメータt+1を用いる。なお、ここでは、図39、および図50での説明とは異なり、動作主が同一か否かは上記パラメータに関与しないものとする。
ステップS5201において、カメラワーク決定部230は、ショット(t+1)が存在するか否か、つまり、後ショットについて設定カメラワークが過去に決定されたか否かを、ショットを指定してカメラ方向保持部170およびカメラ距離保持部210に問い合わせる。カメラ方向保持部170およびカメラ距離保持部210は、該当するショットについて、動作主やカメラ方向またはカメラ距離などの情報を保持している場合には、その情報をカメラワーク決定部230に返す。カメラワーク決定部230は、問い合わせ結果に基づいてショット(t+1)の有無を判断し、ショット(t+1)が存在しない場合には(S5201:NO)、ステップS5202へ進み、ショット(t+1)が存在する場合には(S5201:YES)、ステップS5203へ進む。
ステップS5202において、カメラワーク決定部230は、現ショットの配置分類に対応するカメラ方向遷移頻度テーブル430を選択し、前ショットのカメラ方向から現ショットのカメラ方向へのカメラ方向遷移の頻度のうち、動作主が同じか否かで対応するカメラ方向遷移頻度の値を、「1」増加させる。
次に、ステップS5204において、カメラワーク決定部230は、現ショットのシーン分類に対応するカメラ距離遷移頻度テーブル470を選択し、前ショットのカメラ距離から現ショットのカメラ距離へのカメラ距離遷移の頻度のうち、動作主が同じか否かで対応するカメラ距離遷移頻度の値を、「1」増加させる。そして、図51に示すカメラワーク決定処理のステップS5700へ戻る。
一方、ステップS5203では、カメラワーク決定部230は、後ショット以降のカメラワークをユーザ選択カメラワークに適合するように変更しなければならない可能性があることから、まず、ショット(t+1)のカメラ方向W(t+1)を取得する。
次に、ステップS5205において、カメラワーク決定部230は、ショット(t+1)におけるカメラワークが変更不可となっているか否か、つまり「ロック状態」か「非ロック状態」かを判断する。具体的には、シナリオ入力画面350において、該当するシナリオライン353のカメラワークロックチェックボックス369にチェックが入っているか否か、つまり、シナリオ要素入力部120から、該当するショットに対応付けてフラグが入力されたか否かを判断する。カメラワーク決定部230は、ショット(t+1)におけるカメラワークが「非ロック状態」の場合には(S5205:YES)、ステップS5206へ進み、ショット(t+1)におけるカメラワークが「ロック状態」の場合には(S5205:NO)、ステップS5250へ進む。
ステップS5206において、カメラワーク決定部230は、ショット(t)の配置分類に該当するカメラ方向遷移グラフ410を選択し、ショット(t)のカメラ方向W(t)から遷移可能なカメラ方向を検索する。そして、カメラワーク決定部230は、カメラ方向遷移頻度テーブル430を参照し、検索したカメラ方向を、遷移頻度の高い順にソートする。ただし、初期状態など、カメラ方向遷移頻度テーブル430に基づいて遷移頻度の高い順にソートすることができない場合には、カメラワーク決定部230は、カメラ方向遷移グラフ410における記述順を優先順としてソートする。
次に、ステップS5207において、カメラワーク決定部230は、ステップS5206における検索結果に、ショット(t+1)のカメラ方向W(t+1)が含まれているか否か、つまり、カメラ方向W(t+1)を修正すべきか否かを判断する。カメラワーク決定部230は、検索結果にカメラ方向W(t+1)が含まれていない場合には(S5207:YES)、ステップS5208へ進み、含まれている場合には(S5207:NO)、ステップS5208を経ずに、その次のステップS5209へ進む。
ステップS5208において、カメラワーク決定部230は、ショット(t+1)のカメラ方向を、ステップS5207で検索されたカメラ方向のうち、ステップS5206におけるソート順位の最も高いカメラ方向に修正する。
次に、ステップS5209において、カメラワーク決定部230は、ショット(t+1)のカメラ距離D(t+1)を取得する。
次に、ステップS5210において、カメラワーク決定部230は、ショット(t)のシーン分類に該当するカメラ距離遷移グラフ450を選択し、ショット(t)のカメラ距離D(t)から遷移可能なカメラ距離候補を検索する。そして、カメラワーク決定部230は、カメラ距離遷移頻度テーブル470を参照し、検索したカメラ距離を、遷移頻度の高い順にソートする。ただし、初期状態など、カメラ距離遷移頻度テーブル470に基づいて遷移頻度の高い順にソートすることができない場合には、カメラワーク決定部230は、カメラ距離遷移グラフ450における記述順を優先順としてソートする。
次に、ステップS5211において、カメラワーク決定部230は、ステップS5210における検索結果に、ショット(t+1)のカメラ距離D(t+1)が含まれているか否か、つまり、カメラ距離D(t+1)を修正すべきか否かを判断する。カメラワーク決定部230は、検索結果にカメラ距離D(t+1)が含まれていない場合には(S5211:YES)、ステップS5212へ進み、含まれている場合には(S5211:NO)、ステップS5212を経ずに、その次のステップS5213へ進む。
ステップS5212において、カメラワーク決定部230は、ショット(t+1)のカメラ距離を、ステップS5210で検索されたカメラ距離候補のうち、ステップS5210におけるソート順位の最も高いカメラ距離に修正する。
ステップS5213において、カメラワーク決定部230は、処理の対象となるショットを1つ進めて、ステップS5201へ戻る。すなわち、カメラワーク決定部230は、カメラワークが「非ロック状態」のショットが連続する限り、ステップS5201、S5203、S5205〜S5213の処理は繰り返されるが、カメラワークが「ロック状態」となっているショットの1つ前のショットが処理の対象となったときに、ステップS5300へ進むことになる。
ステップS5250において、カメラワーク決定部230は、処理の対象となっているショットの1つ先のショットでカメラワークが「ロック状態」となっている場合の設定処理であるロック時設定処理を実行し、その後、ステップS5202へ進む。
次に、カメラワーク決定部230によるロック時設定処理について、図55のフローチャートを用いて説明する。
ステップS5251において、カメラワーク決定部230は、まず、ショット(t)の配置分類に対応するカメラ方向遷移グラフ410を選択し、ショット(t)のカメラ方向W(t)からショット(t+1)のカメラ方向W(t+1)へのカメラ方向遷移を、逆引きで検索する。すなわち、カメラワーク決定部230は、ショット(t+1)のカメラ方向W(t+1)に遷移可能なカメラ方向を、ショット(t)のカメラ方向候補として検索する。これは、ショット(t+1)のカメラワークが「ロック状態」となっていることから、ショット(t+1)のカメラワークに適合するように、ショット(t)以前のカメラワークを変更しなければならない可能性があるためである。
次に、ステップS5252において、カメラワーク決定部230は、ステップS5251における検索結果に、ショット(t)のカメラ方向W(t)が含まれているか否か、つまり、カメラ方向W(t)を修正すべきか否かを判断する。カメラワーク決定部230は、検索結果にカメラ方向W(t)が含まれていない場合には(S5252:YES)、ステップS5253へ進み、含まれている場合には(S5252:NO)、ステップS5253を経ずに、その次のステップS5254へ進む。
ステップS5253において、カメラワーク決定部230は、ステップS5251で検索されたショット(t)のカメラ方向候補のそれぞれについて、カメラ方向W(t+1)へ遷移する際の頻度を、対応するカメラ方向遷移頻度テーブル430を参照して調べる。そして、カメラワーク決定部230は、ショット(t)のカメラ方向W(t)を、最も高い頻度に該当するカメラ方向に修正する。ただし、初期状態など、カメラ方向遷移頻度テーブル430に基づいて最も高い頻度に該当するカメラ方向を特定できない場合には、カメラワーク決定部230は、カメラ方向遷移グラフ410を参照して、最も高い優先順位に該当するものの中から1つを選択する。
次に、ステップS5254において、カメラワーク決定部230は、ショット(t)のシーン分類に対応するカメラ距離遷移グラフ450を選択し、ショット(t)のカメラ距離D(t)からショット(t+1)のカメラ距離D(t+1)へのカメラ距離遷移を、逆引きで検索する。すなわち、カメラワーク決定部230は、ショット(t+1)のカメラ距離D(t+1)に遷移可能なカメラ距離を検索する。
次に、ステップS5255において、カメラワーク決定部230は、ステップS5254における検索結果に、ショット(t)のカメラ距離D(t)が含まれているか否か、つまり、カメラ距離D(t)を修正すべきか否かを判断する。カメラワーク決定部230は、検索結果にカメラ距離D(t)が含まれていない場合には(S5255:YES)、ステップS5256へ進み、含まれている場合には(S5255:NO)、ステップS5256を経ずに、その次のステップS5257へ進む。
ステップS5256において、カメラワーク決定部230は、ステップS5254で検索されたショット(t)のカメラ距離候補のそれぞれについて、カメラ距離D(t+1)へ遷移する際の頻度を、対応するカメラ距離遷移頻度テーブル470を参照して調べる。そして、カメラワーク決定部230は、ショット(t)のカメラ距離D(t)を、最も高い頻度に該当するカメラ距離に修正する。ただし、初期状態など、カメラ距離遷移頻度テーブル470に基づいて最も高い頻度に該当するカメラ距離を特定できない場合には、カメラワーク決定部230は、カメラ距離遷移グラフ450を参照して、最も高い優先順位に該当するものの中から1つを選択する。
ステップS5257において、カメラワーク決定部230は、ショット(t)のカメラワークの修正を行ったか否かを判断する。カメラワーク決定部230は、ショット(t)のカメラワークの修正を行っていない場合には(S5257:NO)、ショット(t)以前のショットのカメラワークを修正する必要が無いものとして、ステップS5202へ進む。一方、カメラワーク決定部230は、ショット(t)のカメラワークの修正を行った場合には(S5257:YES)、ステップS5258へ進む。
ステップS5258において、カメラワーク決定部230は、処理の対象となるショットを1つ遡って、ステップS5251へ戻る。すなわち、カメラワークを修正したショットが連続する限り、ステップS5251、S5252〜S5258の処理は繰り返されるが、カメラワークが修正されないショットが処理の対象となったときに、図54に示す手動設定処理のステップS5202へ進むことになる。
このようにして、各ショットのカメラワークを、自動選択と手動選択の両方で決定することができる。また、自動選択の場合だけでなく、手動選択の場合でも、他のショットとの関係で適切なカメラワークに修正したり、手動選択によって決定したカメラワークに他のショットのカメラワークを適合させることができる。決定された設定カメラワークは、カメラパラメータ算出部250へ出力される。
次に、図1に示すカメラパラメータ算出部250について説明する。カメラパラメータ算出部250は、シナリオ要素入力部120からカメラパラメータの算出を指示されると、設定カメラワークに基づいて、カメラパラメータ算出処理を実行する。カメラパラメータ算出処理の説明を行う前に、被写体が1人(1ショット)の場合のカメラパラメータの算出の原理の一例と、被写体が2人(2ショット)の場合のカメラパラメータの算出の原理の一例について説明する。
図56は、被写体が1人の場合のカメラパラメータ算出部250への入力パラメータを説明するための図である。図56(A)は、入力パラメータのうちの高さパラメータを説明するための図であり、図56(B)は、入力パラメータのうちの横/奥行き/角度パラメータを説明するための図である。
被写体が1人の場合の入力パラメータは、被写体となるキャラクタの目の高さ(y座標)Ychar_eyelevel、キャラクタのx−z座標(Xchar,Zchar)、x−z平面を上からみた状態におけるz軸方向に対するキャラクタの正面方向の反時計回りの角Ochar、およびカメラ方向とカメラ距離との組からなる設定カメラワークである。
カメラパラメータ算出部250は、入力パラメータに基づいて、キャラクタと仮想カメラとの水平距離Dcam、キャラクタの目の高さに対する仮想カメラの高さ比ω、およびキャラクタの正面方向に対する仮想カメラの位置する方向の相対角度Ocamという3つのパラメータを、それぞれ以下の式(4)〜(6)を用いて決定する。
Figure 2008097233
Figure 2008097233
Figure 2008097233
このとき、カメラパラメータである、x座標Xcam、y座標Ycam、x座標Zcam、横方向角度Pancam、縦方向角度Tiltcam、回転角度Rollcam、および画角Vanglecamは、それぞれ、以下の式(7)〜(13)で算出することができる。
Figure 2008097233
Figure 2008097233
Figure 2008097233
Figure 2008097233
Figure 2008097233
Figure 2008097233
Figure 2008097233
図57は、被写体が2人の場合のカメラパラメータ算出部250への入力パラメータを説明するための図である。図57(A)は、入力パラメータのうちの高さパラメータを説明するための図であり、図57(B)は、入力パラメータのうちの横/奥行き/角度パラメータを説明するための図である。
被写体が2人の場合の入力パラメータは、被写体となる動作主のキャラクタと他のキャラクタのそれぞれのx座標Xchar1、Xchar2、目の高さ(y座標)Ychar1_eyelevel、Ychar2_eyelevel、z座標Zchar1、Zchar2、x−z平面を上からみた状態におけるz軸方向に対する動作主となるキャラクタの正面方向の反時計回りの角Ochar1、およびカメラ方向とカメラ距離との組からなる設定カメラワークである。
カメラパラメータ算出部250は、入力パラメータに基づいて、2人のキャラクタの目の位置座標の中点(以下「仮想被写体位置」という)と仮想カメラとの水平距離Dcam、2人のキャラクタの水平距離Dchar、仮想被写体位置に対する仮想カメラの高さ比ω、および仮想被写体位置のx−z座標に動作主のキャラクタを配置した場合のキャラクタの正面方向に対する仮想カメラの位置する方向の相対角度Ocamという4つのパラメータを、それぞれ以下の式(14)、(15)、および上記した式(5)、(6)を用いて決定する。
Figure 2008097233
Figure 2008097233
このとき、仮想被写体位置のx座標Xtarget、y座標Ytarget_eyelevel、z座標Ztarget、x軸方向に対する動作主のキャラクタからみた他のキャラクタの位置の方向の角α、仮想カメラと仮想被写体位置とを結ぶ直線の法線方向における2人のキャラクタの距離Dprojは、それぞれ以下の式(16)〜(20)で算出することができる。
Figure 2008097233
Figure 2008097233
Figure 2008097233
Figure 2008097233
Figure 2008097233
なお、仮想カメラと仮想被写体位置とを結ぶ直線の法線方向における2人のキャラクタの距離Dprojを、式(20)のように設定するのは、2mに相当する値以下の場合には後述する画角Vanglecamを適切に得られないためである。カメラパラメータである、x座標Xcam、y座標Ycam、x座標Zcam、横方向角度Pancam、縦方向角度Tiltcam、回転角度Rollcam、および画角Vanglecamは、それぞれ、以下の式(21)〜(25)、および上記した式(11)、(12)で算出することができる。
Figure 2008097233
Figure 2008097233
Figure 2008097233
Figure 2008097233
Figure 2008097233
カメラパラメータ算出部250は、設定カメラワークに基づき、以上のような原理を用いて、カメラパラメータを算出するカメラパラメータ算出処理を実行する。
次に、カメラパラメータ算出部250によるカメラパラメータ算出処理について、図58のフローチャートを用いて説明する。
ステップS6000において、カメラパラメータ算出部250は、配置情報保持部140から動作主を含む各キャラクタの配置情報を取得し、カメラワーク決定部230から現ショットの設定カメラワークを取得する。
次に、ステップS6050において、カメラパラメータ算出部250は、カメラ方向パラメータである相対角度Ocamを、設定カメラワークに基づき、たとえば上記した式(6)を用いて設定する。
ステップS6100において、カメラパラメータ算出部250は、カメラ高さパラメータである高さ比ωを、設定カメラワークに基づき、たとえば上記した式(7)を用いて設定する。
ステップS6150において、カメラパラメータ算出部250は、カメラワーク決定部230から取得した配置情報と設定カメラワークに基づいて、1ショットのカメラワークか否か、つまり被写体が1つか複数かを判断する。カメラパラメータ算出部250は、1ショットのカメラワークである場合には(S6150:YES)、ステップS6200へ進み、1ショットのカメラワークではない場合には(S6150:NO)、ステップS6250へ進む。
ステップS6200において、カメラパラメータ算出部250は、カメラ距離パラメータである水平距離Dcamを、設定カメラワークに基づき、たとえば上記した式(4)を用いて設定する。
次に、ステップS6300において、カメラパラメータ算出部250は、配置情報保持部140から入力した配置情報から、被写体となるキャラクタの位置座標を取得するともに、キャラクタデータベース261を参照して、被写体となるキャラクタの目の高さを取得する。そして、仮想カメラの物理パラメータ(カメラパラメータ)を、入力パラメータと設定したパラメータとに基づいて、たとえば上記した式(7)〜(13)を用いて算出する。
次に、ステップS6350において、カメラパラメータ算出部250は、算出した仮想カメラの物理パラメータをレンダリング部260へ出力し、一連の処理を終了する。
一方、ステップS6250において、カメラパラメータ算出部250は、配置情報から被写体となる各キャラクタの位置座標を取得し、最も外側に位置する2人のキャラクタを被写体として選択する。
次に、ステップS6400において、カメラパラメータ算出部250は、ステップS6250で選択した2つの被写体の距離を、たとえば上記した式(15)を用いて算出する。
次に、ステップS6450において、カメラパラメータ算出部250は、カメラ距離パラメータである水平距離Dcamを、設定カメラワークおよび算出した2つの被写体の距離に応じて、たとえば上記した式(14)を用いて設定する。
次に、ステップS6500において、カメラパラメータ算出部250は、2つの被写体の中心、つまり被写体として選択された2人のキャラクタの3次元位置の中点を、仮想被写体位置とし、仮想被写体位置の座標を求める。具体的には、カメラパラメータ算出部250は、キャラクタデータベース261から、2人のキャラクタの3次元位置を取得し、仮想被写体位置の座標を、たとえば上記した式(16)〜(18)を用いて算出する。ここで各キャラクタの高さは目の高さとする。さらに、カメラパラメータ算出部250は、2つの被写体の位置関係を示すパラメータα、距離Dprojを、たとえば上記した式(19)、(20)を用いて算出する。
次に、ステップS6550において、カメラパラメータ算出部250は、仮想カメラの物理パラメータを、入力パラメータ、設定したパラメータ、および算出したパラメータに基づいて、たとえば上記した式(21)〜(25)を用いて算出する。そして、カメラパラメータ算出部250は、ステップS6350へ進み、1ショットの場合と同様に、算出した仮想カメラの物理パラメータを出力する。
このようにして、カメラパラメータ算出部250は、カメラパラメータを図1に示すレンダリング部260へ出力する。なお、被写体は、必ずしもキャラクタに限定されるものではない。たとえば、カメラパラメータ算出部250は、ショットの間接/直接目的語をシナリオ要素入力部120から入力するようにし、動作主と間接/直接目的語とを被写体として扱い、図57で説明した手法を用いてカメラワークパラメータを算出してもよい。
次に、図1に示すレンダリング部260について説明する。レンダリング部260は、配置情報保持部140が保持するセット情報および配置情報を取得し、取得した各情報に該当するデータを、セットデータベース263およびキャラクタデータベース261からそれぞれ読み出す。そして、レンダリング部260は、取得したデータと、配置情報に基づいて、セットにキャラクタを配置する。さらに、レンダリング部260は、シナリオ要素入力部120から入力されるシナリオ要素「動作主」、「動作」、「表情」、および「台詞」に該当するアクションデータをアクションデータベース262から読み出して、動作主に動きを付加する。そして、レンダリング部260は、カメラパラメータに基づいてセットおよびキャラクタを描画することにより3次元CGアニメーションを生成し、映像データとしてアニメーション出力部270へ出力する。
アニメーション出力部270は、シナリオ入力画面350のプレビュー再生領域355で、映像データに基づく映像を再生する。また、アニメーション出力部270は、複数ショットの映像データを連結し、シナリオに沿ったアニメーションを表示装置の画面に表示したり、他の外部装置に出力する。シーン全体のアニメーション化は、レンダリング部260が、プレビュー再生の際に入力される各ショットのカメラパラメータを記憶しておき、ショットの順序に従って順次レンダリングを行い、映像データを出力するようにしてもよい。
なお、本実施の形態では、連続するショットにおけるカメラ方向及びカメラ距離遷移について説明したが、定点カメラによる遠景や超アップによる体の部位や小物の映像など、カメラ方向及びカメラ距離の遷移に依存しない映像を間に挟むブリッジングショットが挿入される場合がある。このような場合には、ブリッジングショットをカメラ方向およびカメラ距離を持たないものとして扱い、前後ショットのカメラ方向遷移及びカメラ距離遷移を制御してもよい。
このようにして、シナリオ入力画面350で入力されたシナリオに沿って、カメラワークが制御され、アニメーションが生成される。しかも、カメラワークは、映画文法に則って制御されるだけでなく、ユーザが意図する表現を反映するように、かつ単調な映像とならないように制御される。
以下、具体的な例を用いて、アニメーション作成装置100においてカメラワークが制御される様子を説明する。
図59、図60は、映画文法に則ってカメラワークが制御される様子を説明するための図である。
図59に示すように、シナリオ入力画面350において、キャラクタ「女性先生」に対してキャラクタ「男子生徒」が背を向けて立ち、キャラクタ「男子生徒」の左前に仮想カメラを配置した映像が表示されているとする。また、新たなシナリオライン353で、キャラクタ「男子生徒」を動作主として、動作「向く」が選択されたとする。
この状態で、図60に示すように、シナリオライン353で、動作「向く」の間接目的語としてキャラクタ「女性先生」が選択されると、キャラクタ「男子生徒」は180度向きを変える。このとき、仮想カメラは、キャラクタ「男子生徒」の左前ではなく、右前に配置される。これは、たとえば、カメラ方向遷移グラフ410において、2つの被写体を結ぶ直線の同じ側で仮想カメラを移動するという映画文法に則った内容で、カメラ方向の指定が行われており、このカメラ方向指定に基づいてカメラワークを決定しているためである。このように、アニメーション作成装置100は、映画文法に則ったカメラワークを実現することができる。
図61〜図64は、ユーザが意図する表現を反映するようにカメラワークが制御される様子を説明するための図である。
図61に示すように、シナリオ入力画面350において、新たなシナリオライン353では、動作主として、キャラクタ「女性先生」とキャラクタ「男子生徒」のいずれかを選択できるようになっているとする。
この状態で、動作主としてキャラクタ「男子生徒」が選択されると、図62に示すように、まず、デフォルトで優先順位の最も高いウェストショット(MS)が、カメラ距離として自動設定されたとする。
シナリオライン353では、図63に示すように、さらに表情や動作などの他のシナリオ要素を選択することが可能である。
この状態で、図64に示すように、シナリオライン353で、表情「驚いた顔で」が選択されると、動作主であるキャラクタ「男子生徒」の顔は驚いた顔に描画される。このとき、仮想カメラは、ウェストショット(MS)ではなく、アップショット「CS」に対応するカメラ距離に配置される。これは、シーン分類が「表情」であり、たとえば、該当するカメラ距離遷移グラフ450における現ショットの距離454の中で、アップショット「CS」の優先順位が最も高いためである。
図65、図66は、ユーザが意図する表現を反映するようにカメラワークが制御される他の様子を説明するための図である。
図65に示すように、シナリオ入力画面350のシナリオライン353では、動作を選択することが可能である。
この状態で、図66に示すように、シナリオライン353で、動作「後ろに倒れる」が選択されると、動作主であるキャラクタ「男子生徒」が後ろに倒れる映像が描画される。このとき、仮想カメラは、ウェストショット(MS)ではなく、フルショット「FS」に対応するカメラ距離に配置される。これは、シーン分類が「全身動作」であり、たとえば、該当するカメラ距離遷移グラフ450における現ショットの距離454では、フルショット「FS」のみが指定されているためである。
アニメーションを作成するユーザは、たとえば、キャラクタに表情を指定する場合、視聴者がその表情に注目することを期待している。すなわち、ユーザは、キャラクタの表情や動作を指定することによって、特定の表現を意図している。したがって、このように、入力されたシナリオ要素に応じて適切なカメラ距離が決定されることにより、アニメーション作成装置100は、ユーザが意図する表現を反映したカメラワークを実現することができる。
図67〜図69は、単調な映像とならないようにカメラワークが制御される様子を説明するための図である。
図67は、従来のカメラワーク制御によるショットごとの映像遷移の一例を示す図である。矢印の方向は、シーンにおける時間の流れの方向を示している。また、シナリオでは、シナリオラインごとに、動作主がキャラクタ「男子生徒」(char1)とキャラクタ「女性先生」(char2)とで交互に入れ替わり、全てのシナリオラインで、動作主以外のシナリオ要素として相手を見る動作のみが入力されたものとする。各映像の横に付された文字は、上から順に、キャラクタ、カメラ方向、カメラ距離をそれぞれ示している。
この場合、従来のカメラワーク制御では、図67に示すように、映画文法に則って2人のキャラクタを結ぶ直線に対して同じ側で仮想カメラは移動するものの、その状態が継続することになる。その結果、シーン全体としては単調な映像が作成されてしまう。
図68は、実施の形態1に係るアニメーション作成装置100のカメラワーク制御によるショットごとの映像遷移の一例を示す図であり、図67に対応するものである。図68では、図67の映像と同一のシナリオを用い、カメラ方向制御処理で使用する閾値が「2」であり、カメラ距離制御処理で使用する閾値は「2」よりも大きい値であった場合の例を示している。
この場合、図68に示すように、同じキャラクタを動作主とするショットで、同じカメラ距離が2ショット連続すると、次に同じキャラクタを動作主とするショットでは、カメラ距離が変化することになる。その結果、シーン全体として、カメラ距離に変化が生まれ、図67に比べてより変化に富んだ表現豊かな映像が作成される。
図69は、実施の形態1に係るアニメーション作成装置100のカメラワーク制御によるショットごとの映像遷移の他の一例を示す図であり、図67および図68に対応するものである。図69では、図67および図68の映像と同一のシナリオを用い、カメラ距離制御処理で使用する閾値が「2」であり、カメラ方向制御処理で使用する閾値は「2」よりも大きい値であった場合の例を示している。
この場合、図69に示すように、同じキャラクタを動作主とするショットで、同じカメラ方向が2ショット連続すると、次に同じキャラクタを動作主とするショットでは、カメラ方向が変化することになる。その結果、シーン全体として、カメラ方向に変化が生まれ、図67に比べてより変化に富んだ表現豊かな映像が作成される。
また、図68と図69との比較から、カメラ方向制御処理で使用する閾値とカメラ距離制御処理で使用する閾値とを変化させることにより、カメラワークを変化させることができることが分かる。すなわち、上記2つの閾値をユーザが任意に設定することにより、ユーザの好みにより適合した映像表現を実現することが可能となる。
以上説明したように、実施の形態1によれば、映画文法に則ってカメラ方向を指定するカメラ方向遷移グラフと、シナリオ要素とユーザの表現意図との関係に則ってカメラ距離を指定するカメラ距離遷移グラフとを用いてカメラワークを決定する。これにより、視覚連続性を保ち、かつユーザの意図を反映したカメラワークを決定することができ、表現に富んだ映像を作成することができる。
また、実施の形態1によれば、カメラワークが変化しないショットの連続数が、あらかじめ定められたレベルに達すると、カメラ方向またはカメラ距離を変化させる。これにより、変化に富んだより表現豊かな映像を作成することができる。すなわち、時系列の映像の変化を考慮してカメラワークを制御することができる。
また、実施の形態1によれば、ユーザに対してカメラワークを推薦し、ユーザによるカメラワークの手動選択を受け付ける。これにより、シナリオを入力するユーザの表現意図を、映像により正確に反映させることができる。すなわち、ユーザ毎に異なるカメラワークの表現スタイルに適応するカメラワークを設定することができる。
また、実施の形態1によれば、ユーザによる過去の手動選択によるショット間のカメラワークの遷移頻度に基づいて、推薦カメラワークを順位付けて提示する。すなわち、ユーザが過去に指定したカメラワーク遷移の設定回数に応じて、推薦カメラワークの提示順位を更新する。これにより、カメラワークの選択操作の便宜を図ることができ、ユーザのアニメーション制作を、よりきめ細やかに支援することができる。すなわち、ユーザ毎に異なるカメラワークの表現スタイルに適応させて、カメラワーク候補を推薦することができる。
さらに、実施の形態1によれば、カメラ方向遷移グラフおよびカメラ距離遷移グラフに基づいて選択されたカメラワークのうち、ユーザによる過去の手動選択によるショット間のカメラワークの遷移頻度が高いものに該当するカメラワークを決定する。これにより、ユーザの表現スタイルにより適合したカメラワークを自動決定することができる。
(実施の形態2)
図70は、本発明の実施の形態2に係るカメラワーク制御装置を用いたアニメーション作成装置の構成を示す図であり、実施の形態1の図1に対応するものである。
図70において、アニメーション作成装置600は、図1のカメラワーク推薦提示部240に替えて、カメラワーク判定部635およびカメラワーク添削提示部645を有している。また、これに対応して、カメラワーク決定部230から出力される推薦カメラワークは、カメラワーク判定部635へ入力され、シナリオ要素入力部120から出力されるユーザ選択カメラワークは、カメラワーク判定部635へ入力される。
カメラワーク判定部635は、シナリオ要素入力部120からユーザ選択カメラワークを入力されると、ユーザ選択カメラワークが適切か否かを判定し、代替案として適切なカメラワーク(以下「添削カメラワーク」という)をカメラワーク添削提示部645へ適宜出力するカメラワーク判定処理を実行する。
カメラワーク添削提示部645は、シナリオ入力画面350のカメラワーク選択領域500に、選択し得る全てのカメラワークを選択肢としてドロップダウン表示させる。また、カメラワーク添削提示部645は、カメラワーク判定部635からユーザ選択カメラワークが不適切であり添削が必要である旨を通知されると、該当するショットに対して添削マークを表示する。さらに、カメラワーク添削提示部645は、カメラワーク判定部635から添削カメラワークを入力されると、今度は、添削カメラワークを、選択肢としてカメラワーク選択領域500に表示させる。なお、ユーザ選択カメラワークが不適切である旨の通知は、添削カメラワークの入力と兼ねてもよい。
次に、カメラワーク判定部635によるカメラワーク判定処理について、図71のフローチャートを用いて説明する。
ステップS7000において、カメラワーク判定部635は、入力されたユーザ選択カメラワークからユーザによって手動選択されたカメラ方向を取得する。
次に、ステップS7050において、カメラワーク判定部635は、入力されたユーザ選択カメラワークからユーザによって手動選択されたカメラ距離を取得する。
次に、ステップS7100において、カメラワーク判定部635は、入力された推薦カメラワークからカメラ方向候補を取得する。ここで入力される推薦カメラワークは、ユーザによってカメラワークが手動選択されたショットの推薦カメラワークである。
次に、ステップS7150において、カメラワーク判定部635は、入力された推薦カメラワークから、カメラ方向候補を取得する。
次に、ステップS7200において、カメラワーク判定部635は、ユーザ選択カメラワークが推薦カメラワークに含まれるか否かを判断する。具体的には、カメラワーク判定部635は、カメラ方向候補とカメラ距離候補を組み合わせて、ユーザによって手動選択されたカメラ方向とカメラ距離と同一の組み合わせをつくることが可能か否かを判断する。カメラワーク判定部635は、ユーザ選択カメラワークが推薦カメラワークに含まれる場合には(S7200:YES)、ステップS7250へ進み、含まれない場合には(S7200:NO)、ステップS7300へ進む。
ステップS7250において、カメラワーク判定部635は、カメラワークの添削が必要であることを示す添削マークが、現ショットに付加されている場合には、その添削マークを削除する。ただし、現ショットに添削マークが特に付加されていない場合には、そのままの状態とする。
次に、ステップS7350において、カメラワーク判定部635は、ユーザ選択カメラワークを、カメラワーク決定部230へ出力する。
一方、ステップS7300では、カメラワーク判定部635は、現ショットのカメラワークを添削する必要があるとして、入力された推薦カメラワークから代替案として提示するカメラワークを決定する。
次に、ステップS7400において、カメラワーク判定部635は、カメラワーク添削提示部645に対して、ユーザ選択カメラワークの添削が必要である旨を通知する。この結果、上記したように、カメラワーク添削提示部645によって、該当するショットに対して添削マークが表示される。
次に、ステップS7450において、カメラワーク判定部635は、カメラワーク添削提示部645に対して、代替案として提示すると決定したカメラワークを、添削カメラワークとしてカメラワーク添削提示部645へ出力する。この結果、上記したように、カメラワーク添削提示部645によって、添削カメラワークが選択肢として表示される。そして、ステップS7350へ進み、ユーザ選択カメラワークを出力する。この結果、ユーザに対して、ユーザが選択したカメラワークが不適切であることを通知することができるとともに、適切なカメラワークへの指定し直しを促すことができる。
図72は、以上説明したカメラワーク判定処理によって適切なカメラワークが決定される様子の一例を示す図である。図72(A)は、カメラワークの添削が行われる前のショットごとの映像遷移とカメラワーク選択領域の表示内容を示す図である。図72(B)は、図72(A)に示すカメラワークに対して添削が行われた後のショットごとの映像遷移を示す図である。矢印の方向は、シーンにおける時間の流れの方向を示している。
あるショットで推薦カメラワークに含まれないカメラワークが手動選択され、その結果、図72(A)に示すように、不適切な映像700aが作成されたとする。このとき、入力ショットに対して添削マーク701が表示され、添削カメラワークが表示される。図72(A)に示すように、たとえば、添削マーク701は、設定カメラワークを適用した場合の映像のサムネイルを囲む太枠として表示され、添削カメラワークは、該当するカメラワークを適用した場合の適切な映像700bのサムネイルを用いたアイコンとして表示される。そして、ユーザ操作により、適切なカメラワークである添削カメラワークが決定されると、図72(B)に示すように、該当するショットにおいて適切な映像700bが作成され、添削マーク701も除去される。図72では、推薦カメラワークのうち最も優先順位の高いものを、添削カメラワークとして決定した場合を示している。
図73は、以上説明したカメラワーク判定処理によって適切なカメラワークが決定される様子の他の一例を示す図であり、図72に対応するものである。図73では、映像の単調さを防ぐ観点からカメラワークの添削が必要であると判定し、現ショットの推薦カメラワークだけでなく、後ショットについて推薦カメラワークをも併せて提示した場合を示している。また、それぞれのショットについて、複数の推薦カメラワークを、添削カメラワークとして決定した場合を示している。この場合、カメラワーク判定部635は、現ショットの適切な映像700bを複数表示させ、これら複数の映像700bと連動して、後ショットに適切な映像700bを複数表示させる。これにより、複数の時系列ショットにおける大局的なカメラワークの添削を行うことができ、ユーザの学習効果を高めることができる。
このように、本発明の実施の形態2によれば、ユーザが手動選択したカメラワークが適切かどうか、つまり、映画文法に則っているか、ユーザの表現意図を反映したものとなっているか、単調ではないか、を判定する。そして、ユーザが手動選択したカメラワークが不適切な場合には、該当するショットの場所をユーザに通知し、適切なカメラワークと対比表示させ、適切なカメラワークの選択を促す。これにより、ユーザによる映像制作の添削を行うことができ、ユーザのカメラワークについての知識や技術の向上を促すことができる。
本発明に係るカメラワーク制御装置およびカメラワーク制御方法は、視覚連続性を保ち、かつユーザの意図を反映したカメラワークを決定することができるカメラワーク制御装置およびカメラワーク制御方法として有用である。
本発明の実施の形態1に係るカメラワーク制御装置を用いたアニメーション作成装置の構成を示すブロック図 実施の形態1における配置入力画面の構成を示す説明図 実施の形態1におけるシナリオ入力画面の構成を示す説明図 実施の形態1におけるアニメーション作成装置で用いられる配置分類を示す説明図 実施の形態1における配置分類判定処理の流れの前半部分を示すフローチャート 実施の形態1における配置分類判定処理の流れの後半部分を示すフローチャート 実施の形態1における2つの被写体の相対角度の算出を説明するための説明図 実施の形態1におけるカメラ方向制御部とカメラ距離制御部によって定義されるカメラ方向とカメラ距離との組み合わせの一例を示す説明図 実施の形態1におけるカメラ方向とカメラ距離との組み合わせごとの出力映像の例の前半部分を示す説明図 実施の形態1におけるカメラ方向とカメラ距離との組み合わせごとの出力映像の例の後半部分を示す説明図 実施の形態1におけるカメラ方向制御部およびカメラ距離制御部が定義するカメラ方向とカメラ距離との組み合わせの一覧の一例を示す説明図 実施の形態1におけるアニメーション作成装置で配置分類「対面」に適用されるカメラ方向遷移の具体例を示す説明図 実施の形態1におけるアニメーション作成装置で配置分類「横並び」に適用されるカメラ方向遷移の具体例を示す説明図 実施の形態1におけるアニメーション作成装置で配置分類「背向け」に適用されるカメラ方向遷移の具体例を示す説明図 実施の形態1におけるアニメーション作成装置で配置分類「背中合せ」に適用されるカメラ方向遷移の具体例を示す説明図 実施の形態1におけるアニメーション作成装置で配置分類「L型内向き」に適用されるカメラ方向遷移の具体例を示す説明図 実施の形態1におけるアニメーション作成装置で配置分類「L型外向き」に適用されるカメラ方向遷移の具体例を示す説明図 実施の形態1におけるアニメーション作成装置で配置分類「互い違い」に適用されるカメラ方向遷移の具体例を示す説明図 実施の形態1における配置分類「対面」のカメラ方向遷移グラフの内容の一例を示す説明図 実施の形態1における配置分類「横並び」のカメラ方向遷移グラフの内容の一例を示す説明図 実施の形態1における配置分類「背向け」のカメラ方向遷移グラフの内容の一例の前半部分を示す説明図 実施の形態1における配置分類「背向け」のカメラ方向遷移グラフの内容の一例の後半部分を示す説明図 実施の形態1における配置分類「背中合せ」のカメラ方向遷移グラフの内容の一例の前半部分を示す説明図 実施の形態1における配置分類「背中合せ」のカメラ方向遷移グラフの内容の一例の後半部分を示す説明図 実施の形態1における配置分類「L型内向き」のカメラ方向遷移グラフの内容の一例を示す説明図 実施の形態1における配置分類「L型外向き」のカメラ方向遷移グラフの内容の一例を示す説明図 実施の形態1における配置分類「互い違い」のカメラ方向遷移グラフの内容の一例を示す説明図 実施の形態1におけるXML表記のデータとした場合の配置分類「対面」のカメラ方向遷移グラフの記述例を示す説明図 実施の形態1におけるXML表記のデータとした場合の配置分類「横並び」のカメラ方向遷移グラフの記述例を示す説明図 実施の形態1におけるXML表記のデータとした場合の配置分類「背向け」のカメラ方向遷移グラフの記述例の前半部分を示す説明図 実施の形態1におけるXML表記のデータとした場合の配置分類「背向け」のカメラ方向遷移グラフの記述例の後半部分を示す説明図 実施の形態1におけるXML表記のデータとした場合の配置分類「背中合せ」のカメラ方向遷移グラフの記述例の前半部分を示す説明図 実施の形態1におけるXML表記のデータとした場合の配置分類「背中合せ」のカメラ方向遷移グラフの記述例の後半部分を示す説明図 実施の形態1におけるXML表記のデータとした場合の配置分類「L型内向き」のカメラ方向遷移グラフの記述例を示す説明図 実施の形態1におけるXML表記のデータとした場合の配置分類「L型外向き」のカメラ方向遷移グラフの記述例を示す説明図 実施の形態1におけるXML表記のデータとした場合の配置分類「互い違い」のカメラ方向遷移グラフの記述例を示す説明図 実施の形態1におけるカメラ方向遷移頻度テーブルの構成の一例を示す説明図 実施の形態1におけるカメラ方向制御処理の流れを示すフローチャート 実施の形態1におけるカメラ方向変化判定処理の流れを示すフローチャート 実施の形態1におけるシーン分類判定処理の流れを示すフローチャート 実施の形態1における同じ動作主についてのカメラ距離の遷移パターンと初期状態における各遷移パターンの優先順位を示す説明図 実施の形態1におけるシーン分類「対話」のカメラ距離遷移グラフの内容の一例を示す説明図 実施の形態1におけるシーン分類「表情」のカメラ距離遷移グラフの内容の一例を示す説明図 実施の形態1におけるシーン分類「ジェスチャー」およびシーン分類「全身動作」のカメラ距離遷移グラフの内容の一例を示す説明図 実施の形態1におけるXML表記のデータとした場合のシーン分類「対話」のカメラ距離遷移グラフの記述例を示す説明図 実施の形態1におけるXML表記のデータとした場合のシーン分類「表情」のカメラ距離遷移グラフの記述例を示す説明図 実施の形態1におけるXML表記のデータとした場合のシーン分類「ジェスチャー」およびシーン分類「全身動作」のカメラ距離遷移グラフの記述例を示す説明図 実施の形態1におけるカメラ距離遷移頻度テーブルの構成の一例を示す説明図 実施の形態1におけるカメラ距離制御処理の流れを示すフローチャート 実施の形態1におけるカメラ距離変化判定処理の流れを示すフローチャート 実施の形態1におけるカメラワーク決定処理の流れを示すフローチャート 実施の形態1におけるカメラワーク選択領域が追加表示されたシナリオ入力画面の一例を示す説明図 実施の形態1におけるカメラワーク選択領域が追加表示されたシナリオ入力画面の他の一例を示す説明図 実施の形態1における手動設定処理の流れを示すフローチャート 実施の形態1におけるロック時設定処理の流れを示すフローチャート 実施の形態1における被写体が1人の場合のカメラパラメータ算出部への入力パラメータを説明するための説明図 実施の形態1における被写体が2人の場合のカメラパラメータ算出部への入力パラメータを説明するための説明図 実施の形態1におけるカメラパラメータ算出処理の流れを示すフローチャート 実施の形態1において映画文法に則ってカメラワークが制御される様子を説明するための説明図 実施の形態1において映画文法に則ってカメラワークが制御される様子を説明するための説明図 実施の形態1においてユーザが意図する表現を反映するようにカメラワークが制御される様子を説明するための説明図 実施の形態1においてユーザが意図する表現を反映するようにカメラワークが制御される様子を説明するための説明図 実施の形態1においてユーザが意図する表現を反映するようにカメラワークが制御される様子を説明するための説明図 実施の形態1においてユーザが意図する表現を反映するようにカメラワークが制御される様子を説明するための説明図 実施の形態1においてユーザが意図する表現を反映するようにカメラワークが制御される他の様子を説明するための説明図 実施の形態1においてユーザが意図する表現を反映するようにカメラワークが制御される他の様子を説明するための説明図 実施の形態1において単調な映像とならないようにカメラワークが制御される様子を説明するための説明図 実施の形態1において単調な映像とならないようにカメラワークが制御される様子を説明するための説明図 実施の形態1において単調な映像とならないようにカメラワークが制御される様子を説明するための説明図 本発明の実施の形態2におけるアニメーション作成装置の構成を示すブロック図 実施の形態2におけるカメラワーク判定処理の流れを示すフローチャート 実施の形態2においてカメラワーク判定処理によって適切なカメラワークが決定される様子の一例を示す説明図 実施の形態2においてカメラワーク判定処理によって適切なカメラワークが決定される様子の他の一例を示す説明図 従来のシステムの構成を示すブロック図
符号の説明
100、600 アニメーション作成装置
110 配置入力部
120 シナリオ要素入力部
130 配置算出部
140 配置情報保持部
150 配置分類判定部
160 カメラ方向制御部
170 カメラ方向保持部
180 カメラ方向変化判定部
190 シーン分類判定部
200 カメラ距離制御部
210 カメラ距離保持部
220 カメラ距離変化判定部
230 カメラワーク決定部
240 カメラワーク推薦提示部
250 カメラパラメータ算出部
260 レンダリング部
261 キャラクタデータベース
262 アクションデータベース
263 セットデータベース
270 アニメーション出力部
635 カメラワーク判定部
645 カメラワーク添削提示部

Claims (17)

  1. 映像のショットごとに、被写体を基準としたカメラ方向の候補を、映画文法に基づいて決定するカメラ方向制御部と、
    映像のショットごとに、被写体を基準としたカメラ距離の候補を、入力されたシナリオ情報に基づいて決定するカメラ距離制御部と、
    映像のショットごとに、前記カメラ方向の候補および前記カメラ距離の候補の中からそれぞれ1つを選択して、カメラ方向およびカメラ距離を決定するカメラワーク決定部と、
    を有するカメラワーク制御装置。
  2. ユーザに対し、前記カメラ方向の候補および前記カメラ距離の候補を推薦し、選択肢として提示するカメラワーク推薦提示部、をさらに有し、
    前記カメラワーク決定部は、
    ユーザにより選択されたカメラ方向およびカメラ距離を決定する、
    請求項1記載のカメラワーク制御装置。
  3. 前記カメラワーク決定部によって決定されたカメラ方向に関する情報を保持するカメラ方向保持部、をさらに有し、
    前記カメラ方向制御部は、
    前記カメラ方向保持部が保持する情報のうち、動作主が同一のショットに対して決定されたカメラ方向に関する情報に基づいて、前記カメラ方向の候補を決定する、
    請求項1記載のカメラワーク制御装置。
  4. 前記カメラワーク決定部によって決定されたカメラ距離に関する情報を保持するカメラ距離保持部、をさらに有し、
    前記カメラ距離制御部は、
    前記カメラ距離保持部が保持する情報のうち、動作主が同一のショットに対して決定されたカメラ距離に関する情報を参照して、前記カメラ距離の候補を決定する、
    請求項1記載のカメラワーク制御装置。
  5. 前記カメラ方向制御部は、
    1つ前のショットに対してカメラ方向が既に決定されている場合に、前記カメラ方向保持部が保持する情報のうち、前記1つ前のショットに対して決定されたカメラ方向に関する情報に基づいて、前記カメラ方向の候補を決定する、
    請求項2記載のカメラワーク制御装置。
  6. 前記カメラ方向制御部は、
    1つ後のショットに対してカメラ方向が既に決定されている場合に、前記カメラ方向保持部が保持する情報のうち、前記1つ後のショットに対して決定されたカメラ方向に関する情報に基づいて、前記カメラ方向の候補を決定する、
    請求項2記載のカメラワーク制御装置。
  7. 前記映画文法は、映像の視覚連続性が確保されるショット間のカメラ方向遷移を規定するものである、
    請求項1記載のカメラワーク制御装置。
  8. ユーザの選択によって決定されたカメラ方向遷移のそれぞれの頻度を記録するカメラ方向遷移頻度テーブル、をさらに有し、
    前記カメラ方向制御部は、
    前記映画文法に則ったカメラ方向遷移を記述したカメラ方向遷移グラフに基づいてカメラ方向遷移を選択し、選択したカメラ方向遷移に対して前記カメラ方向遷移頻度テーブルに記述される頻度に応じた優先順位を設定し、
    前記カメラワーク決定部は、
    前記カメラ方向制御部で最も高い優先順位が設定されたカメラ方向遷移に該当するカメラ方向を決定する、
    請求項2記載のカメラワーク制御装置。
  9. 前記カメラ方向制御部は、
    同一のカメラワークのショット継続数が第1の閾値に達したとき、前記カメラ方向遷移に対して前記カメラ方向遷移頻度テーブルに記述される頻度に応じた優先順位を修正した優先順位を設定する、
    請求項8記載のカメラワーク制御装置。
  10. ユーザの選択によって決定されたカメラ距離遷移のそれぞれの頻度を記録するカメラ距離遷移頻度テーブル、をさらに有し、
    前記カメラ距離制御部は、
    入力されたシナリオ情報に基づいたカメラ距離遷移を記述したカメラ距離遷移グラフに基づいて参照してカメラ距離遷移を選択し、選択したカメラ距離遷移に対して前記カメラ距離遷移頻度テーブルに記述される頻度に応じた優先順位を設定し、
    前記カメラワーク決定部は、
    前記カメラ距離制御部で最も高い優先順位が設定されたカメラ距離遷移に該当するカメラ距離を決定する、
    請求項2記載のカメラワーク制御装置。
  11. 前記カメラ距離制御部は、
    同一のカメラワークのショット継続数が第2の閾値に達したとき、前記カメラ距離遷移に対して前記カメラ距離遷移頻度テーブルに記述される頻度に応じた優先順位を修正した優先順位を設定する、
    請求項10記載のカメラワーク制御装置。
  12. 前記カメラワーク推薦提示部は、
    前記カメラ方向候補を、前記カメラ方向制御部で設定された優先順位に応じた順序で推薦する、
    請求項8記載のカメラワーク制御装置。
  13. 前記カメラワーク推薦提示部は、
    前記カメラ距離候補を、前記カメラ距離制御部で設定された優先順位に応じた順序で推薦する、
    請求項10記載のカメラワーク制御装置。
  14. 動作主を含む少なくとも2人のキャラクタが登場するショットに対して、2人のキャラクタの配置が、前記映画文法に対応付けてあらかじめ定められた複数の配置分類のいずれに該当するかを判定する配置分類判定部、をさらに有し、
    前記カメラ方向制御部は、
    前記配置分類判定部による判定結果に基づいて前記カメラ方向の候補を決定する、
    請求項1記載のカメラワーク制御装置。
  15. ショットごとに各動作主の動作/表情/台詞を入力するシナリオ要素入力部と、
    前記シナリオ要素入力部が入力する情報に基づいて、ショットのシーンが前記シナリオ情報に対応付けてあらかじめ定められた複数のシーン分類のいずれに該当するかを判定するシーン分類判定部と、をさらに有し、
    前記カメラ距離制御部は、
    前記シーン分類判定部による判定結果に基づいて前記カメラ距離の候補を決定する、
    請求項1記載のカメラワーク制御装置。
  16. 映像のショットの1つに対して、被写体を基準としたカメラ方向およびカメラ距離を決定する第1のカメラワーク決定ステップと、
    前記ショットに連続する他のショットに対して、前記第1のカメラワーク決定ステップで決定されたカメラ方向および映画文法に基づいてカメラ方向を決定し、前記第1のカメラワーク決定ステップで決定されたカメラ距離および入力されたシナリオ情報に基づいてカメラ距離を決定する第2のカメラワーク決定ステップと、
    を有するカメラワーク制御方法。
  17. コンピュータに、
    映像のショットの1つに対して、被写体を基準としたカメラ方向およびカメラ距離を決定する第1のカメラワーク決定処理と、
    前記ショットに連続する他のショットに対して、前記第1のカメラワーク決定処理で決定されたカメラ方向および映画文法に基づいてカメラ方向を決定し、前記第1のカメラワーク決定処理で決定されたカメラ距離および入力されたシナリオ情報に基づいてカメラ距離を決定する第2のカメラワーク決定処理と、
    を実行させるカメラワーク制御プログラム。
JP2006277030A 2006-10-10 2006-10-10 カメラワーク制御装置およびカメラワーク制御方法 Pending JP2008097233A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006277030A JP2008097233A (ja) 2006-10-10 2006-10-10 カメラワーク制御装置およびカメラワーク制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006277030A JP2008097233A (ja) 2006-10-10 2006-10-10 カメラワーク制御装置およびカメラワーク制御方法

Publications (1)

Publication Number Publication Date
JP2008097233A true JP2008097233A (ja) 2008-04-24

Family

ID=39380030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006277030A Pending JP2008097233A (ja) 2006-10-10 2006-10-10 カメラワーク制御装置およびカメラワーク制御方法

Country Status (1)

Country Link
JP (1) JP2008097233A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009100167A (ja) * 2007-10-16 2009-05-07 Casio Comput Co Ltd 撮影装置及びそのプログラム
US8297754B2 (en) 2008-09-18 2012-10-30 Samsung Electronics Co., Ltd. Apparatus and method of controlling camera work based on direction rule
JP2021005319A (ja) * 2019-06-27 2021-01-14 株式会社ドワンゴ 制御サーバ、配信システム、制御方法及びプログラム
JP2021007213A (ja) * 2019-06-27 2021-01-21 株式会社ドワンゴ 制御サーバ、配信システム、制御方法及びプログラム
KR20220005255A (ko) * 2020-07-06 2022-01-13 한국전자통신연구원 인식 모델 학습 장치, 촬영본 영상 분석 장치 및 촬영본 검색 서비스 제공 장치
JP7011363B1 (ja) 2021-10-07 2022-01-26 毅 曹 絵コンテ制作装置、絵コンテ制作方法及び絵コンテ制作プログラム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009100167A (ja) * 2007-10-16 2009-05-07 Casio Comput Co Ltd 撮影装置及びそのプログラム
US8297754B2 (en) 2008-09-18 2012-10-30 Samsung Electronics Co., Ltd. Apparatus and method of controlling camera work based on direction rule
JP2021005319A (ja) * 2019-06-27 2021-01-14 株式会社ドワンゴ 制御サーバ、配信システム、制御方法及びプログラム
JP2021007213A (ja) * 2019-06-27 2021-01-21 株式会社ドワンゴ 制御サーバ、配信システム、制御方法及びプログラム
JP7360989B2 (ja) 2019-06-27 2023-10-13 株式会社ドワンゴ 制御サーバ、端末、配信システム、制御方法、情報処理方法、及びプログラム
KR20220005255A (ko) * 2020-07-06 2022-01-13 한국전자통신연구원 인식 모델 학습 장치, 촬영본 영상 분석 장치 및 촬영본 검색 서비스 제공 장치
KR102605070B1 (ko) * 2020-07-06 2023-11-24 한국전자통신연구원 인식 모델 학습 장치, 촬영본 영상 분석 장치 및 촬영본 검색 서비스 제공 장치
US11886499B2 (en) 2020-07-06 2024-01-30 Electronics And Telecommunications Research Institute Apparatus for training recognition model, apparatus for analyzing video, and apparatus for providing video search service
JP7011363B1 (ja) 2021-10-07 2022-01-26 毅 曹 絵コンテ制作装置、絵コンテ制作方法及び絵コンテ制作プログラム
JP2023056121A (ja) * 2021-10-07 2023-04-19 毅 曹 絵コンテ制作装置、絵コンテ制作方法及び絵コンテ制作プログラム

Similar Documents

Publication Publication Date Title
US12020380B2 (en) Systems, methods, and graphical user interfaces for modeling, measuring, and drawing using augmented reality
US12079942B2 (en) Augmented and virtual reality
JP5087532B2 (ja) 端末装置、表示制御方法および表示制御プログラム
US9367942B2 (en) Method, system and software program for shooting and editing a film comprising at least one image of a 3D computer-generated animation
KR100827241B1 (ko) 동적 영상물을 생성하기 위한 템플릿을 편집하는 장치 및방법
JP2008097233A (ja) カメラワーク制御装置およびカメラワーク制御方法
US20100208033A1 (en) Personal Media Landscapes in Mixed Reality
WO2017002505A1 (ja) 情報処理装置、情報処理方法及びプログラム
JPWO2013136792A1 (ja) コンテンツ処理装置、コンテンツ処理方法およびプログラム
JP5897250B2 (ja) 情報処理装置、情報処理システム、および情報処理プログラム
JP6054330B2 (ja) 画像レイアウト生成装置、画像商材作成システム、画像レイアウト生成方法ならびに画像レイアウト生成プログラムおよび記録媒体
JP2013046151A (ja) プロジェクタ、投影システム及び情報検索表示方法
US20220068036A1 (en) Image editing and sharing in an augmented reality system
CN112823528B (zh) 信息处理装置、信息处理方法和信息处理程序
KR101694303B1 (ko) 편집형 영상 객체 생성 장치 및 방법
US20140168256A1 (en) Information processing apparatus and information processing method
JP2005196298A (ja) 情報処理装置および画像データ表示制御方法およびプログラムおよび記録媒体
JP2011198135A (ja) 漫画作成支援装置、漫画作成支援方法およびプログラム
JP2011198138A (ja) 漫画作成支援装置、漫画作成支援方法およびプログラム
US11120638B2 (en) Director hint based auto-cinematography
JP7011363B1 (ja) 絵コンテ制作装置、絵コンテ制作方法及び絵コンテ制作プログラム
JP2012014392A (ja) 漫画作成支援装置、漫画作成支援方法およびプログラム
JP5792404B1 (ja) 表示システム
JP2023082808A (ja) 生成システム、及び、生成方法
JP2008299493A (ja) コンテンツ作成支援システム及びコンピュータプログラム