(57)【要約】【課題】違和感の少ない仮想視点画像を生成するための仮想視点の動きを容易に設定することのできる技術を提供する。【解決手段】仮想視点の動きを定義するカメラパスを編集する情報処理装置は、カメラパスを構成するための、任意の時刻のキーフレームの指定と、前記指定されたキーフレームに対応する仮想視点の状態の指定とを受け付け、指定されたキーフレームの前後における仮想視点の状態の変化量を取得し、指定されたキーフレームの前後において取得された変化量の差が小さくなるように、前記カメラパスを構成するフレーム列における前記指定されたキーフレームの位置を変更する。【選択図】  図２
2020144456.tif 000002
【特許請求の範囲】
【請求項１】
仮想視点の動きを定義するカメラパスを編集する情報処理装置であって、
前記カメラパスを構成するための、任意の時刻のキーフレームの指定と、前記指定されたキーフレームに対応する仮想視点の状態の指定とを受け付ける指定手段と、
前記指定手段により指定されたキーフレームの前後における仮想視点の状態の変化量を取得する取得手段と、
前記指定されたキーフレームの前後において前記取得手段により取得された変化量の差が小さくなるように、前記カメラパスを構成するフレーム列における前記指定されたキーフレームの位置を変更する変更手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記取得手段は、前記指定されたキーフレームの前後における、仮想視点の状態の時間当たりの変化量を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記取得手段は、前記指定されたキーフレームの時刻と状態、前記指定されたキーフレームの前後に隣接するキーフレームの時刻と状態に基づいて、仮想視点の状態の時間当たりの変化量を取得することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記取得手段は、前記指定されたキーフレームの所定時間前からの状態の変化量と、前記指定されたキーフレームから所定時間後までの状態の変化量を取得することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記変更手段は、前記指定されたキーフレームの時刻を変更することを特徴とする請求項２乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記変更手段は、前記指定されたキーフレームの前後において仮想視点の状態の時間当たりの変化量が等しくなるように、前記指定されたキーフレームの時刻を変更することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記取得手段は、前記指定されたキーフレームの前後における、仮想視点の状態のフレーム当たりの変化量を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記取得手段は、前記指定されたキーフレームの時刻と状態、前記指定されたキーフレームの前後に隣接するキーフレームとの間のフレーム数と前記隣接するキーフレームの状態に基づいて、仮想視点の状態のフレーム当たりの変化量を取得することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記変更手段は、前記指定されたキーフレームと前記隣接するキーフレームの間のフレーム数を変更することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記変更手段は、前記指定されたキーフレームの前後において仮想視点の状態のフレーム当たりの変化量が等しくなるように、前記フレーム数を変更することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記指定されたフレームの前後のうち、前記変化量の大きい方にフレームを追加することを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
キーフレーム間のカメラの位置および／または姿勢を補間する補間手段をさらに備えることを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記指定されたキーフレームの時刻と仮想視点の状態に対応する仮想視点画像を表示する表示手段をさらに備えることを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１４】
前記フレーム列と、前記フレーム列におけるキーフレームの位置とを模式的に表示する表示手段をさらに備えることを特徴とする請求項１乃至１３のいずれか１項に記載の情報処理装置。
【請求項１５】
前記変更手段は、前記変化量の差が所定値以上の場合に前記変更を実行することを特徴とする請求項１乃至１４のいずれか１項に記載の情報処理装置。
【請求項１６】
仮想視点の動きを定義するカメラパスを編集するための情報処理方法であって、
前記カメラパスを構成するための、任意の時刻のキーフレームの指定と、前記指定されたキーフレームに対応する仮想視点の状態の指定とを受け付ける指定工程と、
前記指定工程により指定されたキーフレームの前後における仮想視点の状態の変化量を取得する取得工程と、
前記指定されたキーフレームの前後において前記取得工程により取得された変化量の差が小さくなるように、前記カメラパスを構成するフレーム列における前記指定されたキーフレームの位置を変更する変更工程と、を備えることを特徴とする情報処理方法。
【請求項１７】
コンピュータを、請求項１乃至１５のいずれか１項に記載された情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想視点画像に係る仮想視点を設定する技術に関する。
【背景技術】
【０００２】
近年、複数台の実カメラを異なる位置に設置して多視点で同期撮影し、当該同期撮影により得られた複数視点画像を用いて、任意の視点から観察される仮想視点画像を生成する技術が注目されている。仮想視点画像を用いたサービスでは、例えば、サッカーやラグビーの試合を撮影した映像から、映像制作者によって迫力のあるコンテンツを制作できる。また、コンテンツを視聴しているユーザ自身が自由に視点を移動しながら、試合観戦したりすることができるようにもなる。従って、仮想視点画像を用いたサービスによれば、一般的な撮影画像と比較してユーザに高臨場感を与えることができる。
【０００３】
特許文献１では、３次元コンピュータグラフィックスによるアニメーションを表示するための方法として、キーフレーム法を用いることが記載されている。キーフレーム法においては、キーとなる表示状態を指定するキーフレームとキーフレームの間の中間フレームがスプライン関数により自動的に補間される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−０２５９７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
仮想視点画像に係る仮想視点の動きを表すカメラパスの設定において、ユーザはキーフレームの時刻と視点を指定することで、容易にカメラパスを設定できる。例えば、カメラパスにおける視点の移動速度は、指定された複数のキーフレーム間の時間間隔と視点の移動量に応じて決定される。しかしながら、ユーザが指定した複数のキーフレームの関係によっては、視点の移動速度がキーフレームの前後で大きく異なってしまい、カメラパスに従って得られる仮想視点画像が不自然になる。
【０００６】
本発明は、違和感の少ない仮想視点画像を生成するための仮想視点の動きを容易に設定することを可能にする技術を提供する。
【課題を解決するための手段】
【０００７】
本発明の一態様による情報処理装置は以下の構成を備える。すなわち、
仮想視点の動きを定義するカメラパスを編集する情報処理装置であって、
前記カメラパスを構成するための、任意の時刻のキーフレームの指定と、前記指定されたキーフレームに対応する仮想視点の状態の指定とを受け付ける指定手段と、
前記指定手段により指定されたキーフレームの前後における仮想視点の状態の変化量を取得する取得手段と、
前記指定されたキーフレームの前後において前記取得手段により取得された変化量の差が小さくなるように、前記カメラパスを構成するフレーム列における前記指定されたキーフレームの位置を変更する変更手段と、を備える。
【発明の効果】
【０００８】
本発明によれば、違和感の少ない仮想視点画像を生成するための仮想視点の動きを容易に設定することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】撮影システムの構成および情報処理装置のハードウェア構成例を示すブロック図。
【図２】情報処理装置の機能構成例を示すブロック図。
【図３】撮影システムにおける実カメラの配置および仮想カメラの設定を説明する図。
【図４】カメラパス編集のためのユーザインターフェースを説明する図。
【図５】カメラパス編集におけるユーザインターフェースの表示例を説明する図。
【図６】カメラパスの編集処理を説明するフローチャート。
【図７】時刻変更モードによるカメラパスの編集処理を説明するフローチャート。
【図８】キーフレームの時刻の変更によるカメラパスの編集例を説明する図。
【図９】フレーム数変更モードによるカメラパスの編集処理を説明するフローチャート。
【図１０】フレーム数の変更によるカメラパスの編集例を説明する図。
【図１１】仮想カメラの状態の変化量の算出を説明する図。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【００１１】
図１は、実施形態にかかる撮影システムの構成例を示す図である。撮影システムは、情報処理装置１００、サーバ装置１２０、複数の実カメラ３０１、ＵＩ部４００を有する。サーバ装置１２０は、複数の実カメラ３０１および情報処理装置１００と接続され、複数の実カメラ３０１の同期撮影により得られた撮影画像を収集、格納し、撮影画像を情報処理装置１００に提供する。また、図１は、情報処理装置のハードウェア構成例を示す。情報処理装置１００において、ＣＰＵ１０１は、ＲＡＭ１０２やＲＯＭ１０３に格納されているコンピュータプログラムやデータを用いて情報処理装置１００の全体を制御する。なお、情報処理装置１００がＣＰＵ１０１とは異なる専用の１又は複数のハードウェアやＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を有し、ＣＰＵ１０１による処理の少なくとも一部をＧＰＵや専用のハードウェアが行ってもよい。専用のハードウェアの例としては、ＡＳＩＣ（特定用途向け集積回路）、およびＤＳＰ（デジタルシグナルプロセッサ）などがある。
【００１２】
ＲＡＭ１０２は、ＲＯＭ１０３から読みだされたコンピュータプログラムやデータ、入出力部１０４を介して外部から供給されるデータなどを一時的に記憶する。ＲＯＭ１０３は、変更を必要としないコンピュータプログラムやデータを保持する。入出力部１０４は、カメラパスを編集するためのコントローラ、グラフィカルユーザインタフェース（以下、ＧＵＩ）を表示するディスプレイなどとデータの入出力を行う。本実施形態では、入出力部１０４は、サーバ装置１２０およびＵＩ部４００と接続されている。
【００１３】
図２は、実施形態にかかる情報処理装置１００により実現される機能構成例を説明するブロック図である。上述したように、各機能部はＣＰＵ１０１が所定のコンピュータプログラムを実行することにより実現されてもよいし、少なくとも一部が専用のハードウェアにより実現されてもよい。
【００１４】
画像生成部２０１は、多視点から同期撮影した複数枚の画像をもとに、仮想カメラの視点から見た仮想視点画像を生成する。仮想カメラとは、撮影空間内を自由に動ける仮想的なカメラである。実カメラの配置と仮想カメラの例を図３に示す。撮影空間を囲むように複数台の実カメラ３０１が配置される。これら複数台の実カメラ３０１は同期撮影するように設定されている。仮想カメラ３０２は、どの実カメラ３０１とも異なる任意の視点（仮想視点）を表す。なお、画像生成部２０１はサーバ装置１２０に設けられてもよい。
【００１５】
次に、画像生成部２０１が仮想視点画像を生成する方法の一例を説明する。以降、本実施形態では、選手やボールなどのような位置が変化する被写体を前景と呼ぶ。また、フィールド（芝生）などのような前景以外の被写体を背景と呼ぶ。まず、画像生成部２０１は、複数の実カメラ３０１が撮影した複数枚の撮影画像を前景と背景に分離する。画像生成部２０１は、分離した複数の前景から、選手やボールなどの前景の３次元形状（以下、３Ｄ形状）と位置を計算する。次に、画像生成部２０１は、計算した前景の３Ｄ形状と位置を用いて、仮想カメラ３０２の視点からの前景を再構成する。次に、画像生成部２０１は、分離した複数の背景から、仮想カメラ３０２の視点に対応する背景を生成する。なお、背景の３Ｄ形状を用いて仮想カメラ３０２の視点に対応した背景を生成するようにしてもよい。画像生成部２０１は、再構成した前景を生成した背景に合成して仮想視点画像を生成する。
【００１６】
なお、情報処理装置１００をコンピュータグラフィックス画像（ＣＧ画像）のカメラパスを編集するために使用することも可能である。その場合、画像生成部２０１の代わりにＣＧレンダラーが用いられ、仮想視点としての仮想カメラ３０２はＣＧ画像の視点を表し、ＣＧ空間内の任意の位置に移動できる。
【００１７】
カメラパス編集部２０２は、ユーザの操作に応じて、仮想視点の動きを定義するカメラパスを編集する。すなわち、カメラパスは、複数枚の仮想視点画像やＣＧ画像を順に再生することで作成される動画において、仮想カメラ３０２の動きを定義する。カメラパスはフレームとタイムラインで管理される。フレームは、動画を構成する各画像の生成に必要な情報、より具体的には、例えばシーンの時刻と仮想カメラの位置・姿勢の情報を保持する。シーンの時刻は、例えば、撮影対象の試合が開始された時刻を００時００分００秒００フレームとしたタイムコードで表す。仮想カメラの位置は、例えば、撮影空間内に原点を設定し、Ｘ、Ｙ、Ｚの３つの座標で表す。仮想カメラの姿勢は、例えば、パン、チルト、ロールの３つの角度で表す。タイムラインに含まれるフレームの枚数は、１秒当たりに再生する画像の枚数（フレームレート）によって決まる。例えば、フレームレートが６０フレーム／秒の場合、１秒当たり６０枚のフレームが、タイムラインに含まれる。なお、カメラパスが表す仮想視点（仮想カメラ）の状態としてズーム（画角）が含まれてもよい。
【００１８】
キーフレームを用いたカメラパス編集において、フレームはキーフレームと中間フレームの２種類に分かれる。キーフレームは、カメラパスを編集するユーザが明示的に情報を指定するフレームである。一方、中間フレームは、キーフレームとキーフレームとの間のフレームである。カメラパス編集部２０２は、キーフレームに指定されている仮想カメラの位置・姿勢を用いて、キーフレーム間における仮想カメラの位置・姿勢を補間により算出し、各フレームの情報を決定する。さらに、キーフレームは、始点、終点、中点の３種類に分かれる。カメラパスは、１枚のキーフレーム（始点）と１枚のキーフレーム（終点）、０枚以上のキーフレーム（中点）を含む。本実施形態の情報処理装置１００は、特にキーフレーム（中点）を１枚以上含むカメラパス、つまり３枚以上のキーフレームを含むカメラパスを対象とする。また、始点のキーフレームと終点のキーフレームとの間が編集対象のカメラパスである。
【００１９】
カメラパスを編集するためのユーザインターフェース（以下、ＵＩ）の例（ＵＩ部４００）を図４に示す。画像表示部４０１は、画像生成部２０１が生成した仮想視点画像、つまり、仮想カメラ３０２から見た画像を表示する。ＧＵＩ表示部４０２は、カメラパスやキーフレームに関する情報などを表示する。編集コントローラ４０３は、カメラパスを編集するためにユーザが使用するコントローラである。
【００２０】
ＧＵＩ表示部４０２の表示例を図５に示す。タイムライン５０１は、各フレームを一本の時間軸上に表示する。すなわち、タイムライン５０１は、仮想視点画像またはコンピュータグラフィックス画像のフレーム列と、そのフレーム列におけるキーフレームの位置とを模式的に表示するものである。図５では、キーフレーム５０２、キーフレーム５０３、キーフレーム５０４の３枚のキーフレームが示されている。キーフレーム５０２はカメラパス５０５の始点に対応するキーフレームである。キーフレーム５０３はカメラパス５０５の終点に対応するキーフレームである。キーフレーム５０４は中点のキーフレームである。一方、カメラパス５０５は、各フレームに対応する仮想カメラの位置・姿勢の動きを表したものである。５０６はキーフレーム５０２に対応する仮想カメラの位置・姿勢を含む状態を示す。５０７はキーフレーム５０３に対応する仮想カメラの位置・姿勢を含む状態を示す。５０８はキーフレーム５０４に対応する仮想カメラの位置・姿勢を含む状態を示す。また、モード表示部５０９は、実行中のカメラパス変更モードを示す。本実施形態では、カメラパス変更モードとして、時刻変更モードとフレーム数変更モードが用いられるが、これらのモードについては後述する。
【００２１】
なお、カメラパス編集部２０２は、ユーザの編集対象となっているフレームの情報を画像生成部２０１へ送信する。画像生成部２０１は受信したフレームの情報をもとに仮想視点画像を生成し、生成した仮想視点画像を、画像表示部４０１に表示させる。これにより、ユーザは、編集対象のフレームの仮想カメラから見た画像を確認しながら、カメラパスを編集することが可能である。
【００２２】
キーフレーム追加部２０３は、タイムライン５０１上で、ユーザが指定した時刻にキーフレームを追加する。ユーザは、編集コントローラ４０３を用いて、時刻を操作（進める、戻す）し、所望の時刻を指定する。ユーザが時刻を操作すると、対応する時刻の仮想視点画像が画像表示部４０１に表示される。ユーザは、画像表示部４０１に表示される仮想視点画像を見ながら操作することで、選手がパスしたなど、所望のシーンの時刻を、容易に指定することができる。ユーザが追加したキーフレーム５０２、５０３，５０４は、図５に示されるようにタイムライン５０１上に表示される。なお、ユーザは、マウスなどのポインティングデバイスを用いて、タイムライン５０１上の所望の位置を指定することで、その位置にキーフレームを追加することもできる。
【００２３】
位置・姿勢指定部２０４は、ユーザの操作に応じて、キーフレームの仮想カメラの状態（位置・姿勢）を指定する。ユーザは、編集コントローラ４０３を用いて、仮想カメラを前後、左右、上下へ移動し、所望の位置を指定する。また、編集コントローラ４０３を用いて、仮想カメラをパン、チルト、ロール方向へ回転し、所望の姿勢を指定する。ユーザが仮想カメラの位置・姿勢を操作すると、対応する位置・姿勢の仮想視点画像が画像表示部４０１に表示される。ユーザは、画像表示部４０１を見ながら操作することで、所望の仮想カメラの位置・姿勢を、容易に指定することができる。ユーザが指定したキーフレームに対応する仮想カメラの位置・姿勢は、状態５０６、５０７、５０８のように表示される。なお、仮想カメラの状態５０６はキーフレーム５０２における仮想カメラの位置・姿勢である。同様に、状態５０８はキーフレーム５０４における仮想カメラの位置・姿勢であり、状態５０７はキーフレーム５０３における仮想カメラの位置・姿勢である。
【００２４】
位置・姿勢補間部２０５は、キーフレーム間のカメラの位置・姿勢を補間する。まず、始点のキーフレームと終点のキーフレームの間を、中間のキーフレームにより分割する。図５の例では、２つの区間に分割される。１つ目の区間は、始点のキーフレーム５０２と中間のキーフレーム５０４の間である。２つ目の区間は、中間のキーフレーム５０４と終点のキーフレーム５０３の間である。分割されたそれぞれの区間について、カメラの位置・姿勢を曲線で補間する。カメラの位置を補間する方法としては、例えば、線形補間、ベジェ補間などを使用する。また、カメラの姿勢を補間する方法としては、例えば、線形補間、球面線形補間などを使用する。補間された曲線が、カメラパス５０５である。
【００２５】
変化量計算部２０６は、指定されたキーフレーム（追加されたキーフレーム）の前後における仮想視点（仮想カメラ）の状態の変化量を計算し、取得する。本実施形態では、変化量計算部２０６は、キーフレーム間のカメラの位置・姿勢の変化量を計算する。カメラの位置の変化量は、キーフレーム間を補間した曲線／直線の長さである。曲線／直線の長さは、例えば、曲線／直線を表す関数を積分することで計算できる。カメラの姿勢の変化量は、パン、チルト、ロール角の変化量である。パン、チルト、ロール角の変化量は、隣接するキーフレームにおけるパン、チルト、ロール角のそれぞれの差分として計算できる。また、キーフレーム間におけるパン、チルト、ロール角の変化量の平均を、カメラの姿勢の変化量としてもよい。また、本実施形態では、位置と姿勢の変化量を合成して（例えば、線形和による合成）状態の変化量とする。
【００２６】
変更モード管理部２０７は、カメラパスを変更するモードを管理する。カメラパス変更モードの１つは、キーフレームの時刻を変更する時刻変更モードである。また、別の１つのモードは、キーフレーム間に挿入する中間フレームの数を変更するフレーム数変更モードである。ユーザは、編集コントローラ４０３を用いて、時刻変更モードとフレーム数変更モードのうちの所望のモードに切り替えることができる。いずれのモードも、指定されたキーフレームの前後について変化量計算部２０６により取得された変化量の差が小さくなるように、仮想視点画像またはＣＧ画像のフレーム列における、指定されたキーフレームの位置が変更される。時刻変更部２０８は時刻変更モードにおいて動作し、追加されたキーフレームの前後の仮想視点の変化量が小さくなるように当該追加されたキーフレームの時刻を変更する。フレーム数変更部２０９は、フレーム数変更モードにおいて動作し、追加されたキーフレームの前後の仮想視点の変化量が小さくなるように当該追加されたキーフレームとこれに隣接するキーフレームとの間の中間フレームの数を変更する。以下、時刻変更部２０８とフレーム数変更部２０９の動作について説明する。
【００２７】
［時刻変更モード］
時刻変更部２０８は、キーフレーム間の仮想視点の状態の変化量（例えば、位置・姿勢の変化量）に応じて、追加されたキーフレームの前後で変化量の差が小さくなるように、当該キーフレームの時刻を変更する。より具体的には、時刻変更部２０８は、例えば、中間点のキーフレームの前後で、カメラの位置・姿勢の時間当たりの変化量が等しくなるように、当該中間点のキーフレームの時刻を変更する。なお、時刻変更部２０８は、キーフレームの時刻を変更する時刻変更モードの場合に動作する。
【００２８】
以下、図１１（ａ）の例を用いて時刻変更モードにおける中間点のキーフレームの時刻変更方法について説明する。図１１（ａ）は、仮想視点の状態の変化量の算出を説明する図である。図１１（ａ）において、キーフレーム５０２とキーフレーム５０４の間の仮想視点の状態（仮想カメラの位置・姿勢）の変化量をＬ１とする。つまり、Ｌ１は仮想カメラの状態５０６から状態５０８への変化量である。また、キーフレーム５０４とキーフレーム５０３の間の仮想視点の状態（仮想カメラの位置・姿勢）の変化量をＬ２とする。つまり、Ｌ２は仮想カメラの状態５０８から状態５０７への変化量である。また、キーフレーム５０２の時刻をＴ１、キーフレーム５０３の時刻をＴ２、キーフレーム５０４の変更後の時刻をＴ３ａとする。
【００２９】
キーフレーム５０４の前において、仮想カメラの位置・姿勢の時間当たりの変化量ΔＬ１はＬ１／（Ｔ３a−Ｔ１）となる。キーフレーム５０４の後で、仮想カメラの位置・姿勢の時間当たりの変化量ΔＬ２はＬ２／（Ｔ２−Ｔ３ａ）となる。よって、キーフレーム５０４の前後で仮想カメラの位置・姿勢の時間当たりの変化量ΔＬ１とΔＬ２を等しくするためには、Ｌ１／（Ｔ３ａ−Ｔ１）＝Ｌ２／（Ｔ２−Ｔ３ａ）を満足するようにキーフレーム５０４の時刻Ｔ３ａが設定されればよい。したがって、キーフレーム５０４の時刻Ｔ３ａ＝（Ｌ１×Ｔ２＋Ｌ２×Ｔ１）／（Ｌ１＋Ｌ２）となる。キーフレーム５０４の時刻が変更されると、キーフレーム５０４がタイムライン５０１上で移動することになる。なお、キーフレーム５０４における仮想カメラの状態５０８（位置・姿勢）は変化しない。なお、ΔＬ１とΔＬ２とは必ずしも一致しなくてよく、キーフレーム５０４の時刻を変更する前におけるΔＬ１とΔＬ２との差よりも変更後のΔＬ１とΔＬ２との差が小さくなっていればよい。
【００３０】
仮想カメラの位置の変化量は、仮想カメラの移動速度に等しい。上記処理によれば、キーフレーム５０４の前後で仮想カメラの移動速度の差が小さくなる、あるいは、等しくなる。これにより、ユーザが仮想カメラの移動速度を別途調整することなく、キーフレームの前後で仮想カメラの移動速度が変わることによる不自然さを軽減することが可能になる。
【００３１】
なお、仮想視点（仮想カメラ）の状態とは、仮想視点（仮想カメラ）の位置と姿勢の少なくとも何れかである。すなわち、仮想カメラの状態の変化量Ｌ１、Ｌ２として、仮想カメラの位置の変化量のみが用いられてもよいし、仮想カメラの姿勢の変化量のみが用いられてもよい。また、変化量Ｌ１、Ｌ２として仮想カメラの姿勢のパン、チルト、ロールのどれかひとつの変化量のみが用いられてもよい。また、変化量Ｌ１、Ｌ２として仮想カメラの位置と姿勢を合わせて使う場合は、例えば、それぞれの変化量を線形結合した値が用いられてもよい。
【００３２】
また、中間点のキーフレームの前後で、仮想カメラの状態（例えば、位置・姿勢）の時間当たりの変化量の差が所定値以上となる場合に、中間点のキーフレームの時刻を変更するようにしてもよい。例えば、中間点のキーフレームの前後におけるカメラの位置・姿勢の時間当たりの変化量の割合が０．８より大きい場合にキーフレーム（中点）の時刻を上記Ｔ３ａに変更する。この場合、以下の（式１）
０．８≦｛Ｌ１（Ｔ２−Ｔ３）｝／｛Ｌ２（Ｔ３−Ｔ１）｝≦１／０．８  ...（式１）
を用いてキーフレームの時刻を変更するか否かを判定する。ここで、Ｔ３は、キーフレーム５０４の変更前の時刻である。（式１）を満たさない場合、時刻変更部２０８は、上述した方法に従って追加された中間点のキーフレームの時刻をＴ３ａに変更する。
【００３３】
また、変化量計算部２０６は、中間点のキーフレームの前後の所定時間内のフレーム（中間フレームまたはキーフレーム）を用いて、当該中間点のキーフレームにおける仮想カメラの位置・姿勢の変化量Ｌ１、Ｌ２を算出してもよい。例えば、図１１（ｂ）に示されるように、変化量計算部２０６は、中間点のキーフレーム５０４より所定時間前（Ｔ３ａ−Ｔｘ）のフレーム１１０１における仮想視点の状態とキーフレーム５０４における仮想視点の状態とから変化量Ｌ１を計算する。また、変化量計算部２０６は、キーフレーム５０４より所定時間後（Ｔ３ａ＋Ｔｘ）のフレーム１１０２にける仮想視点の状態と当該キーフレームにおける仮想視点の状態とから状態の変化量Ｌ２を計算する。なお、フレーム１１０１，１１０２に対応する仮想視点の状態（仮想カメラの位置・姿勢）は、位置・姿勢補間部２０５により取得され得る。時刻変更部２０８は、このようにして計算されたＬ１とＬ２が等しくなるように、時刻Ｔ３ａを決定する。なお、上記例では、指定された中間点のキーフレーム５０４の前後で同一の所定時間Ｔｘを用いたが、キーフレーム５０４の前後で異なる時間が用いられてもよい。また、時刻Ｔ１、Ｔ２のキーフレーム０２、５０３をそれぞれ始点のキーフレーム、終点のキーフレームとしたが、これに限られるものではない。すなわち、追加されたキーフレーム５０４の両隣のキーフレームを用いて上述した時刻変更モードの処理が実行されてもよい。
【００３４】
［フレーム数変更モード］
フレーム数変更部２０９は、キーフレーム間の仮想カメラの状態（位置・姿勢）のフレーム当たりの変化量の差が小さくなるようにキーフレーム間の中間フレームの枚数を変更する。具体的には、本実施形態では、中間点のキーフレームの前後で、仮想カメラの状態（位置・姿勢）のフレーム当たりの変化量が等しくなるように、中間フレームの枚数を変更する。なお、フレーム数変更部２０９は、キーフレーム間における中間フレームの数を変更するフレーム数変更モードにおいて動作する。なお、仮想カメラの状態（仮想視点の状態）は上述したとおりである。
【００３５】
以下、図１１（ａ）の例を用いてフレーム数変更モードの動作を説明する。図１１（ａ）において、キーフレーム５０２とキーフレーム５０４の間の変更前の中間フレームの枚数をＮ１、キーフレーム５０４とキーフレーム５０３の間の変更前の中間フレームの枚数をＮ２とする。また、キーフレーム５０４の時刻をＴ３とする。変更前の中間フレームの枚数は、キーフレーム間の時刻の差とフレームレートによって決まる。例えば、フレームレートを６０フレーム／秒とすると、Ｎ１＝（Ｔ３−Ｔ１）×６０−１、Ｎ２＝（Ｔ２−Ｔ３）×６０−１である。
【００３６】
ここで、キーフレーム５０２とキーフレーム５０４の間の変更後の中間フレームの枚数をＮ１ａとする。また、キーフレーム５０４とキーフレーム５０３の間の変更後の中間フレームの枚数をＮ２ａとする。すると、キーフレーム５０４の前における仮想カメラの状態（位置・姿勢）のフレーム当たりの変化量はＬ１／Ｎ１ａである。また、キーフレーム５０４の後における仮想カメラの状態（位置・姿勢）のフレーム当たりの変化量はＬ２／Ｎ２ａである。よって、キーフレーム５０４の前後で、仮想カメラの状態（位置・姿勢）のフレーム当たりの変化量が等しくなるための条件は、Ｌ１／Ｎ１ａ＝Ｌ２／Ｎ２ａとなる。
【００３７】
次に、フレーム数変更部２０９は、キーフレーム５０４の前後のどちら側で中間フレームの枚数を変更するかを決める。本実施形態では、指定されたフレームの前後のうち、変化量の大きい方にフレームが追加される。より具体的には、フレーム数変更部２０９は、例えば、キーフレーム５０４の前後の時間当たりの変化量を比較し、変化量が大きい側の中間フレームの枚数を変更し、変化量が小さい側の中間フレームの枚数は変更しない。なお、フレーム数の変更は、中間点のキーフレームの前後で、仮想カメラの状態（例えば、位置・姿勢）のフレーム当たりの変化量の差が所定値以上となる場合に実行されるようにしてもよい。
【００３８】
以下具体的に説明する。キーフレーム５０４の前における仮想カメラの状態の時間当たりの変化量ΔＬ１はＬ１／（Ｔ３−Ｔ１）である。また、キーフレーム５０４の後における仮想カメラの状態の時間当たりの変化量ΔＬ２はＬ２／（Ｔ２−Ｔ３）である。ここで、例えば、キーフレーム５０４の前、つまり、キーフレーム５０２とキーフレーム５０４の間の時間当たりの変化量ΔＬ１の方がキーフレーム５０４の後の変化量ΔＬ２よりも大きいとする。この場合、フレーム数変更部２０９は、キーフレーム５０２とキーフレーム５０４の間の中間フレームの枚数を変更し、キーフレーム５０４とキーフレーム５０３の間の中間フレームの枚数は変更しない。したがって、Ｎ２ａ＝Ｎ２＝（Ｔ２−Ｔ３）×６０−１であり、Ｎ１ａ＝Ｌ１／Ｌ２×Ｎ２ａ＝Ｌ１／Ｌ２×｛（Ｔ２−Ｔ３）×６０−１｝となる。ここで、Ｎ１ａ＞Ｎ１となり、フレーム数変更部２０９は、キーフレーム５０２とキーフレーム５０４の間に「Ｎ１ａ−Ｎ１」枚の中間フレームを追加する。なお、ΔＬ１とΔＬ２とは必ずしも一致しなくてよく、中間フレーム数を変更する前におけるΔＬ１とΔＬ２との差よりも変更後のΔＬ１とΔＬ２との差が小さくなっていればよい。
【００３９】
なお、以上の処理によれば、中間フレームの枚数が変更されなかったキーフレーム５０４の後では動画が等倍で再生される一方、中間フレームが追加されたキーフレーム５０４の前では動画がスロー再生されることになる。しかし、フレーム当たりの仮想カメラの状態の変化量（例えば、移動速度）は、キーフレーム５０４の前後で等しく、又は差が小さくなる。これにより、ユーザが仮想カメラの移動速度などを別途調整することなく、追加されたキーフレームの前後でカメラの移動速度が変わることによる不自然さを軽減することが可能となる。なお、中間フレーム数の変更は、フレームの追加に限らずフレームの削減により行われてもよい。例えば、キーフレーム５０４の前における変化量ΔＬ１がキーフレーム５０４の後における変化量ΔＬ２より大きい場合に、フレーム数変更部２０９は、キーフレーム５０４とキーフレーム５０３の間の中間フレームを削減してもよい。
【００４０】
なお、中間フレームの追加方法は、例えば、キーフレーム間で任意の中間フレームを繰り返すことにより実現され得る。また、時刻変更モードと同様に、フレーム数変更モードにおいても、追加されたキーフレームの前後の所定時間に対応するフレームを用いて、当該キーフレームの前後の状態の変化量の差を減らすようにしてもよい。すなわち、図１１（ｂ）において、指定されたキーフレーム５０４の所定時間前の時刻（Ｔ３−Ｔｘ）をＴ１とし、キーフレーム５０４の所定時間後の時刻（Ｔ３＋Ｔｘ）をＴ２として用いることで実現され得る。また、この場合、フレーム数変更部２０９は、キーフレーム５０４とその所定時間前のフレーム１１０１との間のフレーム数、または、キーフレーム５０４とその所定時間後のフレーム１１０２との間のフレーム数を増減することで、変化量の差を低減する。また、上記では指定された中間点のキーフレーム５０４の前後で同一の所定時間Ｔｘを用いたが、キーフレーム５０４の前後で異なる時間が用いられてもよい。また、時刻Ｔ１、Ｔ２のキーフレーム０２、５０３をそれぞれ始点のキーフレーム、終点のキーフレームとしたが、これに限られるものではない。すなわち、追加されたキーフレーム５０４の両隣のキーフレームを用いて上述した時刻変更モードの処理が実行されてもよい。
【００４１】
［位置・姿勢の割り当て］
割り当て部２１０は、時刻変更部２０８またはフレーム数変更部２０９を経て確定された中間フレームにカメラの位置・姿勢を割り当てる。例えば、Ｎ１枚の中間フレームへの仮想カメラの状態（位置・姿勢）の割り当ては以下のように行われる。まず、割り当て部２１０は、キーフレーム５０２における仮想カメラの状態５０６とキーフレーム５０４における仮想カメラの状態５０８の間のカメラパス５０５をＮ１＋１個に等分割し、分割点における仮想カメラの状態をＮ１枚の中間フレームに順に割り当てる。キーフレーム５０４とキーフレーム５０３の間の中間フレームに対しても同様に仮想カメラの状態（位置・姿勢）を割り当ることができる。
【００４２】
また、キーフレーム間の中間フレーム数が変更された場合、割り当て部２１０は、中間フレームに時刻の再割り当ても行う。例えば、中間フレームの数がＮ１枚からＮ１ａ枚に変更された場合、割り当て部２１０は、Ｎ１ａ枚の中間フレームにカメラの位置・姿勢を割り当てるとともに、各中間フレームの時刻を以下のように再度割り当てる。まず、割り当て部２１０は、キーフレーム５０２とキーフレーム５０４の間の時刻をＮ１ａ＋１個に等分割する。そして、割り当て部２１０は、分割位置の時刻をＮ１ａ枚の中間フレームに順に割り当てる。一方、中間フレームの枚数が変更されていない区間については、時刻を再度割り当てる必要がない。
【００４３】
カメラパス出力部２１１は、キーフレームと中間フレームからなるカメラパスを出力する。画像生成部２０１は、カメラパス出力部２１１から出力されたカメラパスに従って仮想視点を移動し、仮想視点画像を生成する。
【００４４】
［時刻変更モードの動作］
図６は、本実施形態にかかる情報処理装置１００の処理手順を説明するフローチャートである。変更モード管理部２０７により時刻変更モードが選択されている場合の処理について説明する。
【００４５】
ステップＳ６０１で、キーフレーム追加部２０３は、ユーザの操作に応じて始点のキーフレームを追加する。例えば、ユーザが編集コントローラ４０３を用いてタイムライン５０１上で所望の時刻を選択すると、その時刻に始点のキーフレームが追加される。また、カメラパス編集部２０２が、追加された始点のキーフレーム（例えばキーフレーム５０２）をタイムライン５０１に表示する。
【００４６】
ステップＳ６０２で、位置・姿勢指定部２０４は、ユーザの操作に応じて始点のキーフレームにおける仮想カメラの状態としての位置・姿勢を指定する。例えば、ユーザは、編集コントローラ４０３を用いて、仮想カメラを前後・左右・上下に移動する、または、仮想カメラをパン・チルト・ロール方向に回転させることで、仮想カメラの位置・姿勢を指定する。ステップＳ６０３で、カメラパス編集部２０２が、始点のキーフレームの時刻とカメラの位置・姿勢の情報を画像生成部２０１へ送信する。画像生成部２０１は、受信したキーフレームの時刻と仮想カメラの位置・姿勢から仮想視点画像を生成する。生成された仮想視点画像は画像表示部４０１に送信され表示される。
【００４７】
ユーザは、画像表示部４０１に表示された仮想視点画像を確認し、始点のキーフレームのカメラの位置・姿勢に問題がないかを確認する。問題がない場合、ユーザは、編集コントローラ４０３を用いて、問題がないことをカメラパス編集部２０２へ指示する。問題がないことを指示されると、カメラパス編集部２０２は問題がないと判定し（ステップＳ６０４でＹＥＳ）、処理をステップＳ６０５へ進める。始点のキーフレームにおける仮想カメラの位置・姿勢に問題がある場合、ユーザは、編集コントローラ４０３を用いて、仮想カメラの位置・姿勢を再度指定する。編集コントローラ４０３により仮想カメラの位置・姿勢が再度指定されると、カメラパス編集部２０２は問題があると判定し（ステップＳ６０４でＮＯ）、処理をステップＳ６０２に戻す。
【００４８】
ステップＳ６０５で、キーフレーム追加部２０３は、ユーザの操作に応じて終点のキーフレームを追加する。具体的な手順はステップＳ６０１と同様である。ステップＳ６０６で、位置・姿勢指定部２０４は、ユーザの操作に応じて終点のキーフレームにおける仮想カメラの位置・姿勢を指定する。具体的な手順はステップＳ６０２と同様である。ステップＳ６０７では、ステップＳ６０３と同様の手順で、終点のキーフレームの時刻と仮想カメラの位置・姿勢に応じた仮想視点画像が生成され、画像表示部４０１に表示される。
【００４９】
ユーザは、画像表示部４０１に表示された仮想視点画像を確認し、終点のキーフレームにおける仮想カメラの位置・姿勢に問題がないかを確認し、編集コントローラ４０３を用いてその確認結果を指示する。ステップＳ６０４と同様、カメラパス編集部２０２によりユーザ操作に応じて問題がないと判断された場合（ステップＳ６０８でＹＥＳ）、処理はステップＳ６０９へ進み、問題があると判断された場合（ステップＳ６０８でＮＯ）、処理はステップＳ６０６に戻る。
【００５０】
ステップＳ６０９で、キーフレーム追加部２０３は、編集コントローラ４０３を用いたユーザ操作に応じて中間点のキーフレームの追加処理を行う。追加処理の詳細は図７のフローチャートにより後述する。ステップＳ６１０で、割り当て部２１０が、キーフレーム間の補間されたカメラパス５０５を、中間フレームの仮想カメラの位置・姿勢に割り当てる。ステップＳ６１１で、カメラパス出力部２１１が、キーフレームと中間フレームからなるカメラパスを出力する。
【００５１】
図７は、図６のステップＳ６１０の、時刻変更モードにおける処理手順を説明するフローチャートである。まず、ステップＳ７０１において、キーフレーム追加部２０３は、中間点のキーフレームが追加されたか否かを判定する。中間点のキーフレームが追加された場合（ステップＳ７０１でＹＥＳ）、処理はステップＳ７０２へ進む。中間点のキーフレームが追加されなかった場合（ステップＳ７０１でＮＯ）、本処理を終了する。ステップＳ７０２以降では、カメラパス編集部２０２が、キーフレーム（中点）の追加処理を行う。
【００５２】
ステップＳ７０２で、キーフレーム追加部２０３が、ユーザの操作に応じて中間点のキーフレームを追加する。具体的な手順はステップＳ６０１と同様である。ステップＳ７０３で、位置・姿勢指定部２０４が、ユーザの操作に応じて中間点のキーフレームにおける仮想カメラの状態としての位置・姿勢を指定する。具体的な手順はステップＳ６０２と同様である。ステップＳ７０４で、位置・姿勢補間部２０５が、キーフレーム間のカメラの位置・姿勢を補間する。また、カメラパス編集部２０２が、補間されたカメラの位置・姿勢をカメラパス５０５として、ＧＵＩ表示部４０２に表示する。
【００５３】
ステップＳ７０５で、変化量計算部２０６が、追加された中間点のキーフレームの前後について、キーフレーム間の仮想カメラの位置・姿勢の変化量を計算する。ステップＳ７０６で、時刻変更部２０８が、キーフレーム間のカメラの位置・姿勢の変化量に応じてキーフレーム（中点）の時刻を変更する。上述したように、時刻変更部２０８は、中間点のキーフレームの前後で、仮想カメラの位置・姿勢の時間当たりの変化量が等しく、又は差が小さくなるように、中間点のキーフレームの時刻を変更する。また、カメラパス編集部２０２は、中間点のキーフレームにおける時刻の変更に従って、タイムライン５０１の表示を更新する。
【００５４】
ステップＳ７０７で、ステップＳ６０３と同様の手順で、ステップＳ７０１で追加された中間点のキーフレームの時刻と仮想カメラの位置・姿勢に応じた仮想視点画像を画像生成部２０１が生成し、画像表示部４０１に表示する。ユーザは、画像表示部４０１に表示された仮想視点画像を確認し、問題がないかを確認する。ステップＳ７０８において、ステップＳ６０４と同様の手順で問題があるかないかを判定し、問題がないと判定された場合（ステップＳ７０８でＹＥＳ）、本処理を終了する。問題があると判定された場合（ステップＳ７０８でＮＯ）、処理はステップＳ７０２に戻る。
【００５５】
図８を用いて、カメラパス変更モードとして、キーフレームの時刻を変更する時刻変更モードが設定されている場合の動作例について説明する。なお、始点のキーフレームと終点のキーフレームについて、カメラの位置・姿勢の指定が終わっているとする。タイムライン５０１において、キーフレーム５０２が始点のキーフレームの時刻、キーフレーム５０３が終点のキーフレームの時刻である。また、状態５０６が始点のキーフレームにおける仮想カメラの位置と姿勢を表し、状態５０７が終点のキーフレームにおける仮想カメラの位置と姿勢を表す。また、モード表示部５０９には、時刻変更モードを表す「ｔｉｍｅ」が表示されている。
【００５６】
図８（ａ）は、中間点のキーフレーム５０４が新たに追加された状態（ステップＳ７０２）を示す。状態５０８は、中間点のキーフレーム５０４における仮想カメラの位置と姿勢である。この時点では、キーフレーム５０４における仮想カメラの位置・姿勢が指定されていないので、例えば、仮想カメラの位置・姿勢の初期値として始点のキーフレーム５０２の値を用いるとする。なお、追加されたキーフレームにおける仮想カメラの位置・姿勢として、左隣のキーフレームにおけるカメラの位置・姿勢を用いるようにしてもよいし、追加されたキーフレームに最も近いキーフレームにおける仮想カメラの位置・姿勢を用いるようにしてもよい。
【００５７】
図８（ｂ）は、キーフレーム５０４に対して仮想カメラの状態５０８が指定されたときの表示内容を示す（ステップＳ７０３）。図８（ｃ）は、ステップＳ７０４〜Ｓ７０６により、キーフレーム５０４の時刻が変更されたときの表示内容を示す。キーフレーム５０４に対する仮想カメラの状態５０８（位置・姿勢）が指定されると（ステップＳ７０３）、位置・姿勢補間部２０５がキーフレーム間の仮想カメラの位置・姿勢を補間し（ステップＳ７０４）、その結果をカメラパス５０５として表示する。次に、時刻変更部２０８が、キーフレーム間の仮想カメラの位置・姿勢の時間当たりの変化量が等しくなるように、キーフレーム５０４の時刻をＴ３からＴ３ａに変更する（ステップＳ７０５〜Ｓ７０６）。時刻が変更されることにより、キーフレーム５０４は、タイムライン５０１上において矢印８０１で示されるように移動する。すなわち、仮想視点画像のフレーム列におけるキーフレーム５０４の位置が変更される。但し、キーフレーム５０４に対応する仮想カメラの状態５０８（位置・姿勢）は変更されない。
【００５８】
なお、キーフレーム５０４の時刻が変更されると、撮影空間内の状態（被写体の位置など）が変化し、仮想カメラの位置・姿勢がユーザの最初の意図からずれてしまう場合がある。しかし、キーフレーム５０４の時刻の変更を短い周期（例えば６０分の１秒）で繰り返すことで、ユーザはリアルタイムに状態の変化を確認することができる。これにより、ユーザは、キーフレーム５０４の前後で仮想カメラの状態の変化量が一定範囲内である（移動速度が一定範囲内である）という制約の中で、自身の意図を適宜更新し、仮想カメラの状態５０８を効率的に、且つ容易に指定することができる。
【００５９】
［フレーム数変更モードの動作］
図９は、図６のステップＳ６１０の、フレーム数変更モードにおける処理手順を説明するフローチャートである。以下、図９を用いて、カメラパス変更モードが、キーフレーム間に挿入する中間フレームの数を変更するフレーム数変更モードの場合の動作について説明する。なお、始点および終点のキーフレームを設定する処理、中間点のキーフレームを設定後に中間フレームへカメラの位置・姿勢の割り当てる処理、カメラパスを出力する処理は、時刻変更モードの場合（図６）と同様である。
【００６０】
ユーザ操作に応じてキーフレーム追加部２０３が中間点のキーフレームを追加すると（ステップＳ９０１でＹＥＳ）、ステップＳ９０２で、キーフレーム追加部２０３が、ユーザの操作に応じて中間点のキーフレームを追加する。ステップＳ９０３で、位置・姿勢指定部２０４が、ユーザの操作に応じて中間点のキーフレームに対する仮想カメラの状態としての位置・姿勢を指定する。ステップＳ９０４で、位置・姿勢補間部２０５が、キーフレーム間の仮想カメラの位置・姿勢を補間する。また、カメラパス編集部２０２が、補間されたカメラの位置・姿勢をカメラパス５０５として、ＧＵＩ表示部４０２に表示する。以上のステップＳ９０１〜Ｓ９０４の処理は、図７で説明したステップＳ７０１〜Ｓ７０４と同様である。
【００６１】
ステップＳ９０５で、画像生成部２０１は、中間点のキーフレームの時刻と仮想カメラの位置・姿勢に応じた仮想視点画像を生成し、生成した仮想視点画像を画像表示部４０１に表示する。ステップＳ９０５の処理はステップＳ６０３と同様である。ステップＳ９０６で、ユーザが、画像表示部４０１に表示された仮想視点画像を確認し、問題がないかを確認する。ステップＳ６０４と同様の手順で問題があるかないかが判定され、問題がない場合（ステップＳ９０６でＹＥＳ）、処理はステップＳ９０７へ進み、問題がある場合（ステップＳ９０６でＮＯ）、処理はステップＳ９０３に戻る。
【００６２】
ステップＳ９０７で、変化量計算部２０６は、キーフレーム間の仮想カメラの位置・姿勢の変化量を計算する。ステップＳ９０８で、フレーム数変更部２０９が、キーフレーム間の仮想カメラの位置・姿勢の変化量に応じて挿入する中間フレームの枚数を変更する。上述したように、本実施形態のフレーム数変更部２０９は、中間点のキーフレームの前後で、仮想カメラの位置・姿勢のフレーム当たりの変化量が等しくなるように中間フレームの枚数を変更する。
【００６３】
図１０を用いて、キーフレーム間に挿入する中間フレームの数を変更するフレーム数変更モードが設定されている場合について具体例を説明する。なお、図１０（ａ）は追加したキーフレームに対応する仮想カメラの位置・姿勢を指定する前の状態であり、図８（ａ）と同様の表示状態を示している。また、図１０（ｂ）は追加したキーフレームに対応する仮想カメラの位置・姿勢を指定した直後の状態を示しており、図８（ｂ）と同様の表示状態である。図１０において、モード表示部５０９には、フレーム数変更モードを表す「ｆｒａｍｅ」が表示されている。
【００６４】
図１０（ｃ）は、キーフレーム間の中間フレームの枚数が変更された状態を示す。まず、キーフレーム５０４における仮想カメラの状態５０８（位置・姿勢）が指定されると、位置・姿勢補間部２０５はキーフレーム間の仮想カメラの位置・姿勢を補間し、補間により得られたカメラパス５０５を表示する。次に、フレーム数変更部２０９は、キーフレーム間の仮想カメラの位置・姿勢のフレーム当たりの変化量が等しく、又は差が小さくなるよう、中間フレームの枚数を変更する。この例では、キーフレーム５０２とキーフレーム５０４の間に中間フレームが追加される。中間フレームが追加されたことにより、キーフレーム５０４は、タイムライン５０１上を矢印１００１で示されるように移動する。すなわち、仮想視点画像のフレーム列におけるキーフレーム５０４の位置が変更される。結果、キーフレーム５０３が、タイムライン５０１上を矢印１００２で示されるように移動する。なお、始点のキーフレーム５０２、中間点のキーフレーム５０４、終点のキーフレーム５０３の時刻は変更されない。また、中間点のキーフレーム５０４と終点のキーフレーム５０３の間の中間フレームの枚数は変更されない。
【００６５】
（その他の実施形態）
上述した時刻変更モードとフレーム数変更モードは、組み合わせて用いることも可能である。すなわち、キーフレームにおける仮想視点の位置及び向きの指定に応じて、中間フレームの追加とキーフレームの時刻の変更との両方が実行されてもよい。
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００６６】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。
【符号の説明】
【００６７】
２０１：画像生成部、２０２：カメラパス編集部、２０３：キーフレーム追加部、２０４：位置・姿勢指定部、２０５：位置・姿勢補間部、２０６：変化量計算部、２０７：変更モード管理部、２０８：時刻変更部、２０９：フレーム数変更部、２１０：割り当て部、２１１：カメラパス出力部
【図１】
2020144456.tif 000003
【図２】
2020144456.tif 000004
【図３】
2020144456.tif 000005
【図４】
2020144456.tif 000006
【図５】
2020144456.tif 000007
【図６】
2020144456.tif 000008
【図７】
2020144456.tif 000009
【図８】
2020144456.tif 000010
【図９】
2020144456.tif 000011
【図１０】
2020144456.tif 000012
【図１１】
2020144456.tif 000013