説明

漫画作成支援装置、漫画作成支援方法およびプログラム

【課題】コマ画像として用いる画像を映し出す視点にキャラクタの顔を向けることができる漫画作成支援装置、漫画作成支援方法およびプログラムを提供する。
【解決手段】発話順判定処理(S4)によってキャラクタの顔が発話順に並ぶ画像を撮影可能と判定された第1候補の中から、未選択の仮想カメラを順に選択し(S6)、選択した仮想カメラの撮影方向と、キャラクタの顔方向とがなす角Hを求める(S11)。なす角Hが所定の角度範囲内になければ(S12:NO)、キャラクタの頭部を回転させ(S22)、回転後のキャラクタの顔方向とがなす角Iを求める(S23)。さらに胸部や下半身の回転も行うことで(S27、S32)、セリフのあるすべてのキャラクタの顔を撮影可能となった仮想カメラを第2候補とし(S42)、第2候補カメラで撮影した画像をコマ画像の候補として提示する(S44)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、三次元仮想空間内の一場面を撮影した画像をコマに用いた漫画の作成を支援する漫画作成支援装置、漫画作成支援方法およびプログラムに関する。
【背景技術】
【0002】
従来、映画やアニメーション、ゲーム、漫画、写真集など様々なコンテンツの作成に、三次元コンピュータグラフィックス(CG)が用いられている。CGでは、例えば、三次元仮想空間内の様子が、同空間内に配置された仮想的なカメラであたかも撮影されたかのように、静止画(二次元画像)に変換される。
【0003】
ところで、漫画は動画とは異なり、動きや音声等による表現を付加できない。このため、漫画のコマ(漫画における場面の一単位)において、例えばキャラクタの喜怒哀楽を表現するには、キャラクタの顔を撮影できるようにすることが望ましい。ここで、キャラクタの動作や表情、セリフなどのシナリオ要素に応じてカメラ距離が選択され、映画文法に基づく優先度に従って使用するカメラを決定するカメラワークが提案されている(例えば特許文献1参照)。特許文献1は動画を対象とするものではあるが、特許文献1のように、場面に応じたカメラワークによってキャラクタの顔を映し出すことができるカメラを選択できれば、キャラクタの喜怒哀楽を容易に表現することができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−97233号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、キャラクタの顔が映し出されるようにカメラを切り換えると、もとのカメラとは撮影方向が変わってしまう場合がある。この場合、例えばキャラクタの背景や立ち位置、並び順など、キャラクタを取り巻く周囲の構図が変更されてしまう恐れがある。このため、場面の設定がユーザの想定するものとは異なってしまい、ユーザの所望するコマ画像を得ることができなかった。
【0006】
本発明は、上記課題を解決するためになされたものであり、コマ画像として用いる画像を映し出す視点にキャラクタの顔を向けることができる漫画作成支援装置、漫画作成支援方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1態様によれば、少なくとも一コマ以上のコマを含む漫画の作成を支援する漫画作成支援装置であって、三次元仮想空間内の所定の位置に、少なくとも顔と身体とを含む複数のオブジェクトを配置する配置手段と、前記配置手段により配置された前記オブジェクトの顔が向く顔方向を示す顔方向情報と、前記オブジェクトの身体が向く身体方向を示す身体方向情報とを取得する第1取得手段と、三次元仮想空間内の複数の所定の位置に配置された前記視点の視線方向を示す視線方向情報を取得する第2取得手段と、前記配置された前記オブジェクトの前記顔方向と、前記視点の前記視線方向とがなす第1角度が、所定の第2角度範囲内にあるか否かを判定する第1判定手段と、前記第1判定手段により前記第1角度が前記第2角度範囲内にないと判定された前記オブジェクトの前記顔方向を変更し、前記顔方向と前記視線方向とがなす前記第1角度を前記第2角度範囲内にする第1変更手段と、前記第1変更手段により前記顔方向および前記身体方向が変更された前記オブジェクトを含む、前記複数のオブジェクトを映し出した画像を、前記視点から取得して、前記コマの画像の候補として提示する提示信号を発生する信号発生手段と、を備える漫画作成支援装置が提供される。
【0008】
第1態様では、オブジェクトの顔方向と視点の視線方向とがなす角が所定の角度範囲内になければ、オブジェクトの顔方向を変更することで、オブジェクトの顔方向と視線方向とがなす角を所定の角度範囲内にすることができる。このため、オブジェクトの顔が確実に含まれる画像を、コマ画像の候補として得ることができる。
【0009】
第1態様の前記第1取得手段は、前記オブジェクトの顔の位置を示す顔位置情報をさらに取得し、前記第2取得手段は、三次元仮想空間内の複数の所定の位置に配置されたそれぞれの視点の位置を示す視点位置情報をさらに取得してもよい。第1態様は、少なくとも1以上の前記オブジェクトに、前記オブジェクトが発話する内容と前記発話の発話順とを設定する第1設定手段と、前記視点位置情報と前記視線方向情報と前記顔位置情報とに基づいて、それぞれの前記視点から取得した画像内で、予め決められた方向に沿って、前記第1設定手段により設定された前記発話順に前記オブジェクトの顔が配置されているか否かを判定する第2判定手段と、をさらに備えてもよい。第1態様において、前記信号発生手段は、前記第2判定手段によって前記オブジェクトの顔が前記発話順に配置されていると判定された画像を、前記コマの画像の候補として提示する提示信号を発生してもよい。
【0010】
第1態様では、発話のあるオブジェクトの顔が含まれ、かつ、予め決められた方向に沿って、オブジェクトの顔が発話順に配置された画像を、コマの画像の候補として提示することができる。オブジェクトの発話の内容は、コマの画像内にて、通常、フキダシと呼ばれる枠に納められ、オブジェクトの近傍に配置される。このため、オブジェクトが画像内で発話順に配置されていれば、フキダシも、発話順に配置されやすい。したがって、第1態様に係る漫画作成支援装置によって作成される漫画の読者は、予め決められた方向に沿ってフキダシを読み進めるだけで、発話内容を発話順に読み進めることができる。また、フキダシが発話順に並んで配置されれば、そのままコマとして使用することができるので、漫画作成支援装置の利用者がフキダシの配置位置を再調整する手間を省くことができる。さらに、発話のあるオブジェクトの顔が画像内に含まれることで、漫画の読者はオブジェクトの顔の表情を確認することができ、発話内容とともに物語の内容が理解しやすくなるので、感情移入しやすい。
【0011】
第1態様において、前記複数のオブジェクトのうち、少なくとも、前記第1設定手段によって前記発話する内容と前記発話順とが設定されたオブジェクトの前記顔方向と前記視線方向とがなす前記第1角度が、前記第2角度範囲内にあってもよい。オブジェクトの配置位置や顔方向の都合でコマ画像内にすべてのオブジェクトの顔を含むことが難しい場合には、少なくとも、発話のあるオブジェクトの顔が画像内に含まれればよい。漫画の読者は、発話内容とともに、その発話をしたオブジェクトの顔の表情を確認することができ、感情移入しやすい。
【0012】
第1態様において、前記オブジェクトは、前記顔方向と前記身体方向とを独立に変更可能であってもよい。第1態様は、前記第1判定手段により、前記第1角度が前記第2角度範囲内にないと判定された前記オブジェクトに対し、前記身体方向は変更せずに前記顔方向を変更し、前記オブジェクトの前記顔方向と前記視線方向とがなす前記第1角度を前記第2角度範囲内にする第2変更手段をさらに備えてもよい。オブジェクトの顔方向と視線方向とがなす角が所定の角度範囲内となるように顔方向を変更する際に、オブジェクトの身体方向は変更せずに顔方向を変更すれば、姿勢に不自然さを生ずることなく、オブジェクトの顔方向を視点側に向けることができる。
【0013】
第1態様は、前記第2変更手段が前記顔方向を変更可能な範囲を示す第3角度範囲を設定する第2設定手段をさらに備えてもよい。オブジェクトの顔方向の変更可能な範囲に制限を設けることで、変更後のオブジェクトの姿勢が、不自然な状態となることを防止することができる。
【0014】
第1態様において、前記オブジェクトはさらに上半身を含み、前記上半身が向く上半身方向と、前記顔方向と、前記身体方向とをそれぞれ所定の方向に変更可能であり、第1取得手段は、前記オブジェクトの前記上半身方向を示す上半身方向情報をさらに取得するものであってもよい。第1態様は、前記第1判定手段により、前記第1角度が前記第2角度範囲内にないと判定された前記オブジェクトの前記顔方向が、前記第2変更手段によって前記第3角度範囲内において変更された場合に、前記顔方向と前記視線方向とがなす前記第1角度が前記第2角度範囲内にあるか否かを判定する第3判定手段と、前記第3判定手段により、前記第2変更手段によって前記第3角度範囲内において変更された前記オブジェクトの前記顔方向と前記視線方向とがなす前記第1角度が、前記第2角度範囲内にないと判定された場合に、前記オブジェクトに対し、前記身体方向は変更せずに前記上半身方向を前記顔方向とともに変更し、前記オブジェクトの前記顔方向と前記視線方向とがなす前記第1角度を前記第2角度範囲内にする第3変更手段と、をさらに備えてもよい。オブジェクトの身体方向は変更せずに顔方向を変更しても、顔方向と視線方向とがなす角が所定の角度範囲内とならなかった場合でも、上半身が向く方向を変更することで、顔方向をさらに変更することができる。しかも姿勢に不自然さを生ずることなく、オブジェクトの顔方向を視点側に向けることができる。
【0015】
第1態様の前記第1変更手段は、前記オブジェクトの前記顔方向を、前記身体方向とともに変更してもよい。オブジェクトの顔方向を変更する際に、顔方向とともに身体方向を変更すれば、変更後のオブジェクトの姿勢が、不自然な状態となることを防止することができる。
【0016】
本発明の第2態様によれば、少なくとも一コマ以上のコマを含む漫画が作成されるコンピュータで実行され、前記漫画の作成を支援する漫画作成支援方法であって、三次元仮想空間内の所定の位置に、少なくとも顔と身体とを含む複数のオブジェクトを配置する配置ステップと、前記配置ステップにより配置された前記オブジェクトの顔が向く顔方向を示す顔方向情報と、前記オブジェクトの身体が向く身体方向を示す身体方向情報とを取得する第1取得ステップと、三次元仮想空間内の複数の所定の位置に配置された前記視点の視線方向を示す視線方向情報を取得する第2取得ステップと、前記配置された前記オブジェクトの前記顔方向と、前記視点の前記視線方向とがなす第1角度が、所定の第2角度範囲内にあるか否かを判定する第1判定ステップと、前記第1判定ステップにより前記第1角度が前記第2角度範囲内にないと判定された前記オブジェクトの前記顔方向を変更し、前記オブジェクトの前記顔方向と前記視線方向とがなす前記第1角度を前記第2角度範囲内にする第1変更ステップと、前記第1変更ステップにより前記顔方向および前記身体方向が変更された前記オブジェクトを含む、前記複数のオブジェクトを映し出した画像を、前記視点から取得して、前記コマの画像の候補として提示する提示信号を発生する信号発生ステップと、を含む漫画作成支援方法が提供される。
【0017】
本発明の第3態様によれば、少なくとも一コマ以上のコマを含む漫画の作成を支援する漫画作成支援装置として機能させるためのプログラムであって、コンピュータに、三次元仮想空間内の所定の位置に、少なくとも顔と身体とを含む複数のオブジェクトを配置する配置ステップと、前記配置ステップにより配置された前記オブジェクトの顔が向く顔方向を示す顔方向情報と、前記オブジェクトの身体が向く身体方向を示す身体方向情報とを取得する第1取得ステップと、三次元仮想空間内の複数の所定の位置に配置された前記視点の視線方向を示す視線方向情報を取得する第2取得ステップと、前記配置された前記オブジェクトの前記顔方向と、前記視点の前記視線方向とがなす第1角度が、所定の第2角度範囲内にあるか否かを判定する第1判定ステップと、前記第1判定ステップにより前記第1角度が前記第2角度範囲内にないと判定された前記オブジェクトの前記顔方向を変更し、前記オブジェクトの前記顔方向と前記視線方向とがなす前記第1角度を前記第2角度範囲内にする第1変更ステップと、前記第1変更ステップにより前記顔方向および前記身体方向が変更された前記オブジェクトを含む、前記複数のオブジェクトを映し出した画像を、前記視点から取得して、前記コマの画像の候補として提示する提示信号を発生する信号発生ステップと、を実行させるプログラムが提供される。
【0018】
第2態様に係る漫画作成支援方法に従う処理をコンピュータで実行することによって、あるいは、第3態様に係るプログラムを実行してコンピュータを漫画作成支援装置として機能させることで、第1態様と同様の効果を得ることができる。
【図面の簡単な説明】
【0019】
【図1】PC1の電気的な構成を示すブロック図である。
【図2】漫画作成支援プログラムを実行して表示される操作画面20を示す図である。
【図3】三次元仮想空間60を模式的に示す図である。
【図4】アフィン変換による座標変換について説明するための図である。
【図5】撮影対象が撮影範囲内に含まれるか否かを判定する方法について説明するための図である。
【図6】顔方向と撮影方向とがなす角について説明するための図である。
【図7】コマ画像生成処理のフローチャートである。
【図8】発話順判定処理のフローチャートである。
【発明を実施するための形態】
【0020】
以下、本発明を具体化した一実施の形態について、漫画作成支援プログラムがインストールされたパーソナルコンピュータ(PC)1を漫画作成支援装置の一例とし、図面を参照して説明する。なお、参照する図面は、本発明が採用しうる技術的特徴を説明するために用いられるものであり、記載されている装置の構成、各種処理のフローチャートなどは、それのみに限定する趣旨ではなく、単なる説明例である。
【0021】
まず、図1を参照し、PC1の電気的な構成について説明する。PC1は周知のパーソナルコンピュータであり、PC1の制御を司るCPU2を備えている。CPU2には、バス3を介して、ROM4、RAM5、入出力(I/O)インタフェイス6が接続されている。ROM4は、CPU2が実行するBIOS等のプログラムを記憶する読出し専用の記憶装置である。RAM5は、データを一時的に記憶する読み書き可能な記憶装置である。
【0022】
入出力インタフェイス6には、ハードディスクドライブ(HDD)7、マルチディスクドライブ8、表示制御部9、キーボード10、マウス11が接続されている。マルチディスクドライブ8は、例えばCD−ROMやDVD−ROMなど、データが記憶された記憶媒体であるディスクROM12が挿入されると、ディスクROM12からデータやプログラム等の読み込みを行うものである。記憶装置であるHDD7には、ディスクROM12から読み出されたプログラムがインストールされ、また、データ等が記憶される。なお、本実施の形態では、後述する漫画作成支援プログラムがディスクROM12に記憶されて提供されるが、フラッシュROMなど、その他の記憶媒体に記憶されて提供されてもよい。あるいは、図示しないネットワークインタフェイスを介して接続されるネットワーク上のサーバから、ダウンロードにより、提供されてもよい。表示制御部9は、後述する漫画作成支援プログラムの実行に伴い、操作画面20(図2参照)をモニタ13に表示するための描画処理を行う。キーボード10、マウス11は、漫画作成支援プログラムにおいては、操作画面20上での各種操作や文字等の入力に用いられる。
【0023】
次に、図2を参照して、モニタ13に表示される操作画面20について説明する。操作画面20は、漫画作成支援プログラムが起動され、後述するメイン処理が開始されるとモニタ13に表示される画面である。ユーザは、操作画面20を見ながらキーボード10やマウス11を用いて、編集や設定のためのデータや指示の入力を行うことができる。
【0024】
図2に示すように、操作画面20は、コマ表示領域21とキャラクタ設定領域31との2つの表示領域に分かれている。操作画面20の左側のコマ表示領域21には、コマ画像表示領域22が設けられている。コマ表示領域21の下部には、新規コマ作成ボタン25が設けられている。また、コマ画像表示領域22の下部には、コマ番号26が表示される。操作画面20の右側のキャラクタ設定領域31には、セリフ入力ボックス32が設けられ、セリフ入力ボックス32の右側に、発話順設定リスト33が設けられている。キャラクタ設定領域31の下部には、新規キャラクタ作成ボタン35が設けられている。また、セリフ入力ボックス32の上部左側には、キャラクタ選択リスト36が設けられている。なお、セリフ入力ボックス42,52、発話順設定リスト43,53、キャラクタ選択リスト46,56については後述する。
【0025】
コマ画像表示領域22には、後述する三次元仮想空間60(図3参照)内を、仮想カメラで映しだした画像が表示される。新規コマ作成ボタン25は、新たなコマが作成される場合に操作されるボタンである。新規コマ作成ボタン25が操作された場合には、コマ表示領域21に、新たなコマ画像表示領域22が、新たなコマ番号26とともに、既に表示されているコマ画像表示領域22等の下部に追加で表示される。なお、コマ数が増えた場合には、スクロールバー27でコマ表示領域21を上下にスクロールさせることができる。
【0026】
キャラクタ設定領域31のキャラクタ選択リスト36は、三次元仮想空間60内に配置するキャラクタの容姿(CG)を選択するためのリストボックスである。あらかじめインストールされた複数のキャラクタから任意のキャラクタを、そのキャラクタに対応付けられた名称(例えば後述するフィギュアA、フィギュアBなど)で、リストボックスにより指定することができる。キャラクタ選択リスト36には選択されたキャラクタの名称が表示される。セリフ入力ボックス32は、三次元仮想空間60(図3参照)内に配置されるキャラクタのセリフを入力可能なテキストボックスである。セリフの入力がなければ、コマ画像にセリフは表示されない。発話順設定リスト33は、キャラクタがセリフを有する場合にセリフの発話順を設定するためのドロップダウンリストボックスである。ユーザが、リストボックスの右隅にある逆三角形のマークをマウス11のカーソルでクリックして押下すると、キャラクタのセリフの発話順として、順位(数字)の選択候補が表示される。同一の順位を選択できないように、排他的なリストボックスとして構成されている。また、セリフが入力されていないキャラクタには順位を付けることができず、さらに、順位の飛ばしが生じないようにも制御されている。ゆえに、未入力のセリフ入力ボックス32にセリフが入力されると、その時点での最も早い順位が発話順として表示されるように制御されており、発話順設定リスト33は、主に、発話順を変更したい場合に操作される。
【0027】
新規キャラクタ作成ボタン35は三次元仮想空間60(図3参照)内に新たなキャラクタが配置される場合に操作されるボタンである。新規キャラクタ作成ボタン35が操作された場合には、キャラクタ設定領域31に、新たなキャラクタ用(ここではフィギュアB)の項目が表示される。新たなキャラクタ用の項目とは、具体的に、セリフ入力ボックス42、発話順設定リスト43およびキャラクタ選択リスト46である。これらの項目が、既に表示されているキャラクタ用(ここではフィギュアA)のセリフ入力ボックス32等の下部に追加される。キャラクタ数はさらに追加することができる。再度、新規キャラクタ作成ボタン35が操作されれば、3体目のキャラクタ用(ここではフィギュアC)のセリフ入力ボックス52、発話順設定リスト53およびキャラクタ選択リスト56が、セリフ入力ボックス42等の下部に追加される。なお、上記同様、キャラクタ数が増えた場合には、スクロールバー37でキャラクタ設定領域31を上下にスクロールさせることができる。上記のメニューの選択結果やテキストボックスに入力された情報は、漫画作成支援プログラムの実行により指定されたRAM5の所定の記憶エリアに記憶される。
【0028】
次に、図3を参照し、三次元仮想空間60について説明する。三次元仮想空間60は、漫画作成支援プログラムの実行に伴いCPU2がRAM5に確保した所定の記憶エリアに記憶される座標データ等によって構成されるものである。本実施の形態では、理解を容易にするため、座標データ等に基づき定義される仮想的な空間を、三次元仮想空間60として、例えば図3に示すように、模式的に図に表して説明する。この三次元仮想空間60内のあらゆるオブジェクトは、XYZ座標軸に基づく座標データとして定義される。
【0029】
三次元仮想空間60内の所定の座標に、キャラクタの一例としてのフィギュアA、フィギュアBおよびフィギュアCと、背景の一例としての部屋63とが配置される。部屋63は、背景を構成するオブジェクトとして配置される6つの壁面からなる。さらに、キャラクタの配置位置(座標)を取り巻く24カ所の定位置(ここでは部屋63の壁面の定位置)に、視点(図中黒丸で示す。)が設けられるものとする。説明を容易にするため、各視点には、あらかじめ撮影方向62(視線方向)および画角(垂直画角R1、水平画角R2(図4参照)(0°<R1<180°、0°<R2<180°))が設定された仮想カメラ61(図3ではそのうちの3つを示す。)が配置されたものとする。
【0030】
なお、撮影方向62は、方向ベクトルを示すデータとして設定される。すなわち、始点の座標を原点(x,y,z)=(0,0,0)とし、終点の座標(Q1,Q2,Q3)が設定されることにより、三次元の方向ベクトルの向きが、始点から終点へ向かう方向として与えられる。そして方向ベクトルの大きさが、始点と終点との間の距離として与えられる。本実施の形態では、ベクトルの方向が得られれば足るので、撮影方向62および後述する顔方向の方向ベクトルの大きさについては、便宜上、1となるように設定される。
【0031】
そして、仮想カメラ61で三次元仮想空間60内を撮影した画像が、後述するコマ画像として用いられることとする。なお、三次元仮想空間60内に配置されるキャラクタ数や視点数は一例であり、任意に増減可能である。また、キャラクタと視点の配置位置の関係についても任意に設定可能である。
【0032】
ここで、仮想カメラ61で三次元仮想空間60内が撮影され、二次元の画像が生成される過程について、簡単に説明する。本実施の形態において、三次元仮想空間60内に配置されたオブジェクト(キャラクタのみならず背景等もオブジェクトの一つである。)を二次元の画像に変換する処理は、アフィン変換に基づく一連の座標変換処理によって行われる。アフィン変換とは、二次元の座標変換に使用され、拡大、縮小、反転などの線形変換と平行移動が結合された変換方法である。アフィン変換を用いることで、三次元仮想空間60内に配置した個々のオブジェクトごとに設定された座標(ローカル座標)を、ワールド座標、ビュー座標、スクリーン座標、デバイス座標に順に変換して二次元の座標とすることができる。これにより、視点からオブジェクトを見た画像が生成される。このアフィン変換による座標変換の具体的な処理については公知である。ゆえに、以下では、三次元仮想空間60内に配置したオブジェクトの一例としてのフィギュアAのローカル座標がデバイス座標に変換されるまでの一連の過程の概要を説明する。
【0033】
図4に示すように、フィギュアAは、頭、胸、手、足など、要所となる身体部位(図中黒丸で示す。)が、それぞれ、XYZ座標軸に基づく座標データとして定義されている。これらの各身体部位の座標は、オブジェクトの基準とする座標(例えば頭の座標)を原点とする位置座標(ローカル座標系64の座標)で、それぞれ定義されている。なお、身体の細部については、さらにこれらの各身体部位を基準にした座標データで定義され、公知のテクスチャマッピング等によって表現されるが、ここでは簡略化のため、細部についての説明は省略する。
【0034】
フィギュアAの各身体部位のローカル座標系64の座標が、三次元仮想空間60に設定された基準の位置を原点に、三次元仮想空間60の全体をXYZ座標軸に基づく座標データで定義されたワールド座標系65の座標に変換される。また、三次元仮想空間60内に、フィギュアAを見る視点(仮想カメラ61)が設置され、視点の位置がワールド座標系65の座標で定義される。
【0035】
三次元仮想空間60を定義したワールド座標系65の座標が、視点の位置座標を原点とするビュー座標系66の座標に変換される。そして、ビュー座標系66の座標として定義された三次元仮想空間60内に、平面状の仮想スクリーン68が定義され、仮想カメラ61から仮想スクリーン68を透過させてフィギュアAを見た画像が、仮想スクリーン68上に形成される。具体的に、ビュー座標系66において、フィギュアAの各身体部位の座標が、仮想カメラ61(視点)とフィギュアAの各身体部位とを結ぶ仮想線(図中一点鎖線で示す。)が仮想スクリーン68と交わる点の座標(スクリーン座標)に変換される。
【0036】
こうして仮想スクリーン68上の座標に変換されたフィギュアAの各身体部位の座標は、この時点ではまだビュー座標系66において三次元の座標として定義されているので、次に二次元平面の座標に変換される。すなわち、ビュー座標系66で示される仮想スクリーン68上の座標(スクリーン座標)が、上記した操作画面20のコマ画像表示領域22(図2参照)に表示する大きさの、デバイス座標系67で示される二次元の仮想画面69上の座標(デバイス座標)に変換される。以上のアフィン変換によるローカル座標からデバイス座標に変換する一連の座標変換によって、三次元仮想空間60内に配置された視点から見た、仮想スクリーン68上にフィギュアAが映しだされた画像を、仮想画面69として得ることができる。背景も含め、三次元仮想空間60内に配置されるすべてのオブジェクトについても同様である。アフィン変換による座標変換処理は、後述の漫画作成支援プログラムの実行に伴うCPU2による行列演算によって行われ、形成された仮想画面69は、RAM5の所定の記憶エリアに記憶される。
【0037】
また、後述する漫画作成支援プログラムでは、仮想画面69に、撮影対象が映し出されているか否かについての判定を行っている。この判定は、アフィン変換による座標変換処理の過程において行われる。具体的には、フィギュアAの各身体部位の座標が仮想スクリーン68上のスクリーン座標に変換される際に、判定対象となる部位(例えば頭)の座標が、仮想スクリーン68上の座標として取りうる座標の範囲内に含まれるか否かによって判定される。
【0038】
ここで、図5を参照し、説明を容易にするため、仮想スクリーン68の垂直方向において、撮影対象が撮影範囲内に含まれるか否かを判定する方法について、簡単に説明する。上記したように、仮想カメラ61には撮影方向62および画角(垂直画角R1、水平画角R2)が設定されている。図5は、仮想カメラ61の設置位置、すなわち視点をP1とし、P1の座標を原点(x,y,z)=(0,0,0)とするビュー座標系66において、Z軸方向の座標を0としたものである。また、仮想カメラ61の撮影方向62をX軸方向とし、仮想スクリーン68は、垂直方向(Y軸方向)の中央の点P2が、座標(a,0,0)に配置されている。
【0039】
例えば、ビュー座標系66に変換されたフィギュアAの頭P5の座標を(b,c,0)としたとき、視点P1と頭P5とを結ぶ仮想線と、仮想スクリーン68とが交差する点P6が、仮想スクリーン68上に映し出されるフィギュアAの頭の位置座標となる。よって、P6の座標は、(a,ac/b,0)となる。仮想カメラ61の垂直画角がR1であるので、仮想スクリーン68の垂直方向における両端の点P3,P4の座標は、それぞれ、P3(a,a・tan(R1/2),0)、P4(a,−a・tan(R1/2),0)となる。よって、仮想スクリーン68上に映し出されるフィギュアAの頭P6のY座標、ac/bが、−a・tan(R1/2)≦ac/b≦a・tan(R1/2)を満たせば、フィギュアAの頭P5は、仮想スクリーン68の垂直方向において、撮影範囲内にあると判定することができる。
【0040】
仮想スクリーン68の水平方向についても、水平画角R2に基づく同様の判定を行うことで、撮影対象が撮影範囲内にあるか否かを判定することができる。そして、垂直方向および水平方向において共に撮影範囲内にあると判定されれば、フィギュアAの頭P5を仮想スクリーン68内に映し出すことができる。すなわち仮想カメラ61がフィギュアAの頭P5を撮影可能である判定することができる。
【0041】
また、後述する漫画作成支援プログラムでは、仮想画面69に映し出されたキャラクタの並び順が、発話順となっているか否かについての判定を行っている。この判定も、上記同様、アフィン変換による座標変換処理の過程において行われる。具体的に、仮想画面69上の座標(デバイス座標)に変換された、並び順の比較対象となる2つの撮影対象(例えばフィギュアAとフィギュアB)の顔の配置位置の座標を比較することによって行われる。本実施の形態では、キャラクタの顔が、所定の方向に向けて発話順に並んで配置された画像が、コマ画像として用いることのできる画像を絞り込むための第1候補(後述)として使用される。本実施形態では、所定の方向とは、画像内の右側から左側へ向けての方向をいう。仮想画面69は、画面の左下角を原点とし、右方向を、X軸方向の正方向とし、上方向を、Y軸方向の正方向としている。ゆえに、デバイス座標に変換された2体のキャラクタの顔の配置位置の座標のX座標の値を比較した場合、値の大きい方のキャラクタの顔が、値の小さい方のキャラクタの顔よりも、仮想画面69内の右側に配置されている。
【0042】
キャラクタの顔が、画像内の左側から右側へ向けて発話順に並んで配置された画像を得たい場合がある。この場合には、発話順の早いキャラクタの顔のX座標の値が、発話順の遅いキャラクタの顔のX座標の値よりも小さければよい。キャラクタの顔が、画像内の上側から下側へ向けて発話順に並んで配置された画像を得たい場合がある。この場合には、発話順の早いキャラクタの顔のY座標の値が、発話順の遅いキャラクタの顔のY座標の値よりも大きければよい。キャラクタの顔が、画像内の右上側から左下側へ向けて発話順に並んで配置された画像を得たい場合がある。この場合には、発話順の早いキャラクタの顔のX座標の値とY座標の値が、ともに、発話順の遅いキャラクタの顔のX座標の値とY座標の値よりも大きければよい。なお、上記並び順の判定は、理解を容易にするため、仮想画面69における座標(デバイス座標)を用いて説明したが、仮想スクリーン68における座標(スクリーン座標)を用いて判定してもよい(例えば上記説明した図5の例の場合はZ軸座標で判定すればよい。)。
【0043】
さらに、後述する漫画作成支援プログラムでは、コマ画像に、三次元仮想空間60内に配置されたキャラクタ(例えばフィギュアA)の顔が含まれるように、仮想カメラ61(視点)にキャラクタの顔を向ける処理が行われる。本実施の形態では、各フィギュアA,B,Cの頭部75、胸部(ここでは頭部75を除く上半身を指すものとする。)76、下半身77(図6参照)を、それぞれ独立に回転することができる。頭部75、胸部76、下半身77の回転可能な角度はあらかじめ設定されており、それぞれ、角度M1、M2、M3としている。また、キャラクタの顔方向と仮想カメラ61の撮影方向62とがなす角を、条件に応じてなす角H,I,J,Kとして求めている。そして、なす角H,I,J,Kの大きさに応じて(具体的には、なす角H,I,J,Kが所定の角度範囲内にあるか否かによって)、仮想カメラ61により撮影される画像をコマ画像として用いることが可能であるか否か判断している。
【0044】
より詳細には、キャラクタの顔方向と仮想カメラ61の撮影方向62とがなす角Hが求められ、なす角Hが所定の角度範囲内(後述するが、90°以上180°以下の範囲)にあれば、その仮想カメラ61によって撮影された画像がコマ画像として用いられる。なす角Hが所定の角度範囲内になければ、キャラクタの頭部75が角度M1回転されて顔方向が変更され、変更後のキャラクタの顔方向と撮影方向62とがなす角Iが求められる。なす角Iが所定の角度範囲内になければ、次はキャラクタの胸部76が角度M2回転されて顔方向が変更され、変更後のキャラクタの顔方向と撮影方向62とがなす角Jが求められる。なす角Jが所定の角度範囲内になければ、キャラクタの下半身77が角度M3回転されて顔方向が変更され、変更後のキャラクタの顔方向と撮影方向62とがなす角Kが求められる。そして、なす角Kが所定の角度範囲内になければ、その仮想カメラ61では、コマ画像として用いることのできる画像を撮影できないと判定されるのである。
【0045】
なお、図6に示す、顔方向ベクトル71Aは、フィギュアAの顔が向く方向を回転によって変更する前(初期状態)におけるフィギュアAの顔方向ベクトルである。顔方向ベクトル71B、顔方向ベクトル71C、顔方向ベクトル71Dは、フィギュアAの頭部75、胸部76、下半身77をそれぞれ回転させた後の顔方向ベクトルである。同様に、顔方向ベクトル73Aは、フィギュアCの初期状態における顔方向ベクトルであり、顔方向ベクトル73Bは、フィギュアCの頭部75回転させた後の顔方向ベクトルである。
【0046】
まず、なす角H,I,J,Kについて説明する。なす角H,I,J,Kは、キャラクタの顔方向と、仮想カメラ61の撮影方向62とをパラメータとするベクトル演算によって求められる。ここで、説明を容易にするため、図6に示すように、ワールド座標系65におけるY軸方向に沿って三次元仮想空間60内をみながら、なす角H(またはI,J,K)を求める方法について簡単に説明する。ただし、0°≦H(またはI,J,K)≦180°とする。また、図3の三次元仮想空間60内に設けた仮想カメラ61の1つを、便宜上、仮想カメラ61Aとし、その仮想カメラ61Aの撮影方向62が示すベクトルを、撮影方向ベクトル62Aとする。同様に、仮想カメラ61の他の1つを、仮想カメラ61Bとし、その仮想カメラ61Bの撮影方向62が示すベクトルを、撮影方向ベクトル62Bとする。また、フィギュアBの顔方向が示すベクトルを、顔方向ベクトル72とする。
【0047】
以下では、具体例として、フィギュアBの顔方向ベクトル72と仮想カメラ61Aの撮影方向ベクトル62Aとがなす角H2を求める方法について説明する。顔方向ベクトル72と、撮影方向ベクトル62Aとを移動させ、顔方向ベクトル72の始点と、撮影方向ベクトル62Aの始点とを重ね合わせた場合を想定する。より具体的には、例えば、顔方向ベクトル72の向く方向と、撮影方向ベクトル62Aの向く方向とが交差する交点に、顔方向ベクトル72を表す矢印の始点と、撮影方向ベクトル62Aを表す矢印の始点とを重ねる。このときに、顔方向ベクトル72が向く方向と、撮影方向ベクトル62Aが向く方向との間において形成される角度が、なす角H2に相当する。
【0048】
ここで、ベクトルがなす角(ただし、0°≦なす角≦180°)は、方向ベクトルの内積を求めることによって得ることができる。具体的に、[顔方向ベクトル72と撮影方向ベクトル62Aの内積]={(顔方向ベクトル72の大きさ)・(撮影方向ベクトル62Aの大きさ)}・cosH2で与えられる。また、顔方向ベクトル72が(B1,B2,B3)で与えられ、撮影方向ベクトル62Aが(Q1,Q2,Q3)で与えられた場合、[顔方向ベクトル72と撮影方向ベクトル62Aの内積]は{B1・Q1+B2・Q2+B3・Q3}によって求まる。ここで、方向ベクトルの大きさは、便宜上、1とされている。よって、cosH2={B1・Q1+B2・Q2+B3・Q3}を解くことで、顔方向ベクトル72と撮影方向ベクトル62Aとがなす角H2を求めることができる。なお、フィギュアA,Cの顔方向ベクトル71A,73Aと、撮影方向ベクトル62Aとのそれぞれがなす角H1,H3についても、同様に求めることができる。また、詳細については後述するが、フィギュアAの顔方向ベクトル71B,71C,71Dと、撮影方向ベクトル62Aとのそれぞれがなす角I1,J1,K1を求める方法について、同様である。さらに、フィギュアCの顔方向ベクトル73Bと、撮影方向ベクトル62Aとがなす角I3を求める方法についても、同様である。
【0049】
次に、所定の角度範囲について説明する。仮想カメラ61が、キャラクタの顔を側方または前方から撮影する位置に配置されれば、キャラクタの顔を撮影することができる。例えば、仮想カメラ61Aは、フィギュアBを正面側から撮影可能な位置に配置されており、フィギュアBの顔方向ベクトル72と、仮想カメラ61Aの撮影方向ベクトル62Aとがなす角H2は90°より大きく、鈍角を示す。フィギュアBの前方から撮影する仮想カメラ61Aは、フィギュアBの顔と向き合うので、フィギュアBの顔を撮影することができる。また、図示しないが、キャラクタの顔方向と撮影方向とがなす角が90°(直角)となる場合、仮想カメラ61は、キャラクタを顔の側方から撮影する配置となるので、キャラクタの顔を撮影することができる。一方、仮想カメラ61Bは、フィギュアAを背面側から撮影可能な位置に配置されており、フィギュアAの顔方向ベクトル71Aと、仮想カメラ61Bの撮影方向ベクトル62Bとがなす角H4は、90°より小さく、鋭角を示す。フィギュアAの後方から撮影する仮想カメラ61Bでは、フィギュアAの後頭部は撮影できても顔を撮影することはできない。よって、後述する漫画作成支援プログラムでは、キャラクタの顔方向と仮想カメラ61の撮影方向62とがなす角H,I,J,Kが、90°以上180°以下の範囲にある場合(すなわち直角または鈍角を示す場合)を、所定の角度範囲内にある場合としている。よって、なす角H,I,J,Kが、0°以上90°未満の範囲、すなわち鋭角であれば、所定の角度範囲外であるとする。そして、上記条件を満たす仮想カメラ61を、キャラクタの顔を撮影可能な仮想カメラ61の候補(第2候補)としている。
【0050】
次に、角度Mについて説明する。上記したように、本実施の形態では、図6に示す、各フィギュアA,B,Cの頭部75、胸部76、下半身77を、それぞれ独立に回転することができる。説明を容易にするため、後述する漫画作成支援プログラムでは、頭部75、胸部76、下半身77それぞれの回転が可能か不可能かをユーザが選択するものとする。回転が可能に設定された場合、頭部75は角度M1(例えば30°)の回転が可能であり、胸部76は角度M2(例えば15°)の回転が可能であり、下半身77は角度M3(例えば25°)の回転が可能である。キャラクタの初期状態における顔方向と撮影方向とがなす角Hが90°未満(鋭角)の場合、頭部75の回転が可能に設定されていれば、なす角Hが大きくなる方向に頭部75が回転される。このときの回転角度は角度M1である。頭部75の回転後のキャラクタの顔方向と撮影方向とがなす角Iが鋭角のままである場合、胸部76の回転が可能に設定されていれば、なす角Iが大きくなる方向に胸部76が回転される。このときの回転角度は角度M2である。また、このとき、頭部75は、胸部76に対して角度M1分だけ回転された状態が維持される。胸部76の回転後のキャラクタの顔方向と撮影方向とがなす角Jが鋭角のままである場合、下半身77の回転が可能に設定されていれば、なす角Jが大きくなる方向に下半身77が回転される。このときの回転角度は角度M3である。また、このとき、頭部75は胸部76に対し角度M1分だけ回転された状態が維持される。さらに胸部76は下半身77に対し角度M2分だけ回転された状態が維持される。すなわち、キャラクタの顔方向は、最大で、角度(M1+M2+M3)分の変更をすることができる。
【0051】
次に、図2の操作画面20を適宜参照しながら、図7、図8を参照し、PC1にインストールされた漫画作成支援プログラムの動作について説明する。以下、フローチャートの各ステップを「S」と略記する。
【0052】
本実施の形態のPC1は、漫画作成支援プログラムが実行されることにより、漫画作成支援装置として機能するものである。漫画作成支援装置は、三次元仮想空間内に配置したオブジェクトを、三次元仮想空間内の視点から映しだした画像をコマの画像とする漫画の作成を支援する装置である。モニタ13に上記した操作画面20が表示され、その操作画面20において各種設定が行われることで、コマ画像表示領域22に表示される画像が変化し、ユーザの求めるコマ画像が作成される。
【0053】
図7に示すフローチャートは、操作画面20におけるユーザの操作に応じ、コマ画像表示領域22に表示するコマ画像の生成を行う、コマ画像生成処理のフローチャートである。コマ画像生成処理は、漫画作成支援プログラムのモジュールの一つとして組み込まれ、PC1にインストールされて、HDD7に記憶されている。ユーザが漫画作成支援プログラムの実行ファイルを起動させると、CPU2が、漫画作成支援プログラムのメインプログラム(図示外)に従い、コマ画像生成処理を含む各モジュールを呼び出して実行する。また、RAM5やHDD7には、漫画作成支援プログラムの各処理に応じた記憶エリアが確保される。なお、以下の処理はCPU2により実行される。
【0054】
漫画作成支援プログラムのメインプログラムでは、初期設定において、プログラム内で使用される変数やフラグ、カウンタ等の初期化が行われる。また、三次元仮想空間60内にオブジェクトとして配置する背景やキャラクタ等に関する各設定や、オブジェクトを構成するポリゴン、テクスチャ等のグラフィックスデータ(以下、総称して「CGデータ」ともいう。)として、HDD7からデフォルトの設定が読み込まれ、RAM5に書き込まれる。
【0055】
メインプログラムから、図7のコマ画像生成処理のモジュールが呼び出されると、まず、配置設定処理が行われ、三次元仮想空間60内のオブジェクトの一つとして設ける背景のデータが設定される(S1)。本実施の形態では、背景として部屋63の壁面(図3参照)が設定されるものとする。なお、背景として、屋外や、屋内であっても部屋63とは異なる様々な部屋など、任意の舞台を選択できるように、操作画面20にリストボックス等を設けてもよい。
【0056】
また、配置設定処理では、ワールド座標系65において、背景やキャラクタなどのオブジェクトのローカル座標系64における基準(原点)を三次元仮想空間60内で配置する位置が設定される。また、視点、光源(図示外)等の配置位置の座標(ワールド座標データ)も設定される。各視点には、それぞれ仮想カメラ61(図3参照)が配置され、仮想カメラ61ごとに、視線方向(撮影方向62(図3参照))や画角(垂直画角R1、水平画角R2(図4参照))が設定される。なお、本実施の形態では、視点ごとの仮想カメラ61の視線方向および画角は、あらかじめ定められているものとする。メインプログラム(図示外)の初期設定において、HDD7にインストールされた視線方向や画角のデータが初期値として読み出され、RAM5に書き込まれる。上記同様、各視点の位置や各仮想カメラ61の視線方向、画角についても、操作画面20から、ユーザが任意に設定できるようにしてもよい。
【0057】
さらに、配置設定処理では、三次元仮想空間60内にキャラクタを配置する処理が行われる。図3に示すように、本実施の形態では、三次元仮想空間60内に3体のキャラクタ(フィギュアA、フィギュアBおよびフィギュアC)が配置されている。初期設定では、三次元仮想空間60内にキャラクタは配置されておらず、前述した新規キャラクタ作成ボタン35の操作によって、1体目のキャラクタ(フィギュアA)が配置される。さらに新規キャラクタ作成ボタン35が操作されることによって、2体目、3体目のキャラクタ(フィギュアB、フィギュアC)が追加される。もちろん、三次元仮想空間60内に任意の数のキャラクタを配置できるようにしてもよい。
【0058】
キャラクタの配置は、具体的には以下のように行われる。まず、キャラクタ選択リスト36で設定されたキャラクタ(ここではデフォルトのフィギュアA)のCGデータがHDD7から読み込まれ、RAM5に書き込まれる。より詳細には、キャラクタ選択リスト36で設定されたキャラクタ(フィギュアA)の各身体部位のローカル座標データ、各身体部位に対応した細部のローカル座標データ、細部に対応したテクスチャデータなどが読み込まれる。
【0059】
次に、キャラクタの立ち位置、すなわち、三次元仮想空間60内においてキャラクタ(フィギュアA)を配置する位置が選択される。キャラクタの配置位置は、上記のように、ワールド座標データが設定されている。本実施の形態では、キャラクタを配置可能な位置があらかじめ決められており、各キャラクタの設定順(たとえば操作画面20のキャラクタ設定領域31において上からの順)に、各配置位置へ割り当てられるものとする。キャラクタの配置位置のワールド座標データが、上記したキャラクタのCGデータと対応づけられ、RAM5に書き込まれる。もちろん、三次元仮想空間60内の任意の位置に任意のキャラクタを配置できるように、操作画面20からユーザが設定できるようにしてもよい。
【0060】
さらに、キャラクタ(フィギュアA)の顔が向く向き(顔方向)が、ワールド座標系65のデータとして設定される。本実施の形態では、すべての配置位置について、配置されるキャラクタの顔方向は、あらかじめ定められているものとする。なお、顔方向も、撮影方向62と同様に、方向ベクトルを示すデータとして設定される。もちろん、三次元仮想空間60内の任意の向きにキャラクタの顔を向けられるように、操作画面20からキャラクタごとの顔方向をユーザが設定できるようにしてもよい。新規キャラクタ作成ボタン35の操作によって追加される2体目、3体目のキャラクタ(フィギュアB、フィギュアC)の配置についても同様である。
【0061】
そして、各データが揃ったキャラクタ(フィギュアA)が、三次元仮想空間60内に配置される。具体的には、上記したアフィン変換に基づき、キャラクタの基準の座標(ここでは頭の座標)がローカル座標系64の座標からワールド座標系65の座標に変換される。次いで顔方向や各身体部位の座標がワールド座標系65において設定される。さらに、各身体部位に応じた細部の座標がローカル座標系64からワールド座標系65の座標に変換され、また、テクスチャデータの大きさや貼り付ける座標がワールド座標系65で設定される。これにより、図3に示すように、三次元仮想空間60内に、キャラクタ(フィギュアA)が、仮想的に配置された状態となる。新規キャラクタ作成ボタン35の操作によって追加される2体目、3体目のキャラクタ(フィギュアB、フィギュアC)の配置についても同様である。
【0062】
次にキャラクタ設定処理が行われる(S2)。ここでは、三次元仮想空間60に配置されたキャラクタのセリフや発話順の設定が行われる。配置されたすべてのキャラクタについて、セリフおよび発話順と、キャラクタのCGデータとが対応づけられ、RAM5に書き込まれる。セリフは、図2に示す、操作画面20のセリフ入力ボックス32に入力されたものである。発話順は、発話順設定リスト33で設定された、キャラクタのセリフの発話順を示す順位である。デフォルトの状態ではセリフはなく、よって発話順も設定されない。上記したように、三次元仮想空間60はRAM5に確保された記憶エリアにおいて座標データ等により定義される不可視の空間であり、この処理において直接的な画像生成がなされるわけではない。
【0063】
次のキャラクタ回転設定処理では、三次元仮想空間60に配置されたキャラクタの頭部75、胸部76、下半身77のそれぞれについて、回転可能とするか回転不可とするかについて、設定がなされる(S3)。上記したように、本実施の形態では、キャラクタの頭部75、胸部76、下半身77のそれぞれについて、回転可能な場合には、それぞれ、角度M1分、角度M2分、角度M3分の回転を行うことができる。回転不可能であれば、回転することができない。角度M1、角度M2、角度M3の値はそれぞれあらかじめ設定されているが、ユーザが任意に値を入力できるようにしてもよい。あるいはユーザが大・中・小などのメニューを選び、選択されたメニューに応じた角度の回転が可能となるよう設定してもよい。S3では、頭部75、胸部76、下半身77のそれぞれの回転について、可・不可の設定状態がRAM5に読み込まれる。
【0064】
次に発話順判定処理のサブルーチンがコールされる(S4)。図8に示す、発話順判定処理では、セリフが入力されているキャラクタの個体数(人数)が計数される。また、キャラクタの発話順が取得され(読み込まれ)、RAM5の作業用の記憶エリアに書き込まれる(S51)。発話人数が1体(1人)以下の場合(S52:NO)、キャラクタの並び順について考慮する必要がない。三次元仮想空間60の24カ所に配置されたすべての仮想カメラ61が第1候補カメラ(後述する回転の処理が行われる際に処理の対象となるカメラ)として設定され、RAM5の所定の記憶エリアに記録される(S69)。図7のコマ画像生成処理に戻り、S6に進む。
【0065】
一方、図8のS52において、発話人数が1より大きければ(S52:YES)、キャラクタの情報として、配置されたすべてのキャラクタ(すなわちフィギュアA、B、C)の顔の位置の座標が取得され、RAM5の作業用の記憶エリアに書き込まれる(S53)。未選択の仮想カメラ61(視点)の1つが選択され(S54)、選択された仮想カメラ61の情報が取得される(S56)。仮想カメラ61の情報とは、すなわち、配置位置の座標(ワールド座標データ)、視線方向(撮影方向62)、画角(垂直画角R1、水平画角R2)の情報である。
【0066】
取得された各情報に基づき、上記したアフィン変換が行われる(S57)。S53で取得されたすべてのキャラクタの顔の位置の座標に対し、アフィン変換によるワールド座標からビュー座標への座標変換が行われる。そして、すべてのキャラクタの顔の位置の座標が、選択された仮想カメラ61の撮影範囲内(仮想スクリーン68内)に含まれるか否か、前述のように判定される(S58)。S58では、複数のキャラクタの顔の位置の座標について、1体ずつ順に、撮影範囲内に含まれるか否か判定され、顔の位置の座標が撮影範囲内に含まれないキャラクタが1体でもあれば(S58:NO)、S59に進む。S59では、仮想カメラ61の配置位置について再計算が行われ、撮影方向62に沿って撮影向きに対しマイナス方向(キャラクタから遠ざかる方向)に、所定距離(所定値)、仮想カメラ61の配置位置が移動される(S59)。仮想カメラ61の画角は変更されないので、移動後の仮想カメラ61による撮影画像はズームアウトした状態となる。もちろん、仮想カメラ61の配置位置を固定したまま画角を所定値分、大きくすることで、同様にズームアウトした状態の撮影画像を得てもよい。S57に戻り、再度、アフィン変換が行われ(S57)、すべてのキャラクタの顔の位置の座標が、仮想カメラ61の撮影範囲内に含まれるか否か判定される(S58)。
【0067】
すべてのキャラクタの顔の位置の座標が撮影範囲内に含まれると判定されたら(S58:YES)、変数として定義されるnに0が代入され(S61)、さらに変数nがインクリメントされて(S62)、S63に進む。そして、発話順がn番目(例えば1番目)のキャラクタの顔のX座標(デバイス座標)の値と、発話順がn+1番目(例えば2番目)キャラクタの顔のX座標(デバイス座標)の値とが比較される(S63)。発話順がn番目のキャラクタの顔のX座標の値が、n+1番目のキャラクタの顔のX座標の値以下である場合(S63:NO)、キャラクタの顔が撮影画像内で右側から左側へ向けて発話順に並んでいないので、S67に進む。発話順がn番目のキャラクタの顔のX座標の値が、n+1番目のキャラクタの顔のX座標の値より大きい場合(S63:YES)、発話順がn番目とn+1番目のキャラクタの顔については、撮影画像内で右側から左側へ向けて発話順に並んでいる。n+1が発話人数未満であれば(S64:NO)、発話順がn+2番目以降のキャラクタがいるので、S62に戻り、変数nがインクリメントされて、同様の判定が行われる。よって、発話順が最後のキャラクタの顔の並び順について判定が行われるまでの間に、発話順と顔の並び順が一致しないキャラクタがあれば(S63:NO)、S67に進む。そして、n+1が発話人数以上となれば(S64:YES)、セリフのあるすべてのキャラクタの顔の並び順が発話順と一致する。よって、選択されている仮想カメラ61を第1候補(第1候補カメラ)とし、配置位置の座標(S59で移動された場合には移動後の座標)、視線方向、画角の各情報がRAM5の所定の記憶エリアに記録される(S66)。そしてS67に進む。
【0068】
S54〜S66の処理は、三次元仮想空間60内に配置されたすべての仮想カメラ61に対して行われる。よって、未選択の仮想カメラ61があれば、S54に戻る(S67:NO)。すべての仮想カメラ61が選択され、それぞれに対しS54〜S66の処理が行われると(S67:YES)、S68に進む。
【0069】
S68において、S54〜S66の処理によって選択された第1候補カメラが1以上あれば(S68:YES)、図7のコマ画像生成処理に戻り、S6に進む。一方、選択された第1候補カメラが1つもなければ(S68:NO)、図7のコマ画像生成処理に戻り、S6に進む。キャラクタの顔が発話順に並ぶ画像を撮影できる仮想カメラ61がないので、すべての仮想カメラ61が第1候補カメラとして設定され(S69)、図7のコマ画像生成処理に戻り、S6に進む。
【0070】
図7のS6では、発話順判定処理において設定された第1候補カメラを対象に、未選択の仮想カメラ61(視点)の1つが選択される(S6)。選択された仮想カメラ61の情報(S66で記録された配置位置の座標、視線方向、画角の各情報)が取得される(S7)。次にS2のキャラクタ設定処理でセリフが設定されたキャラクタのうち、未選択のキャラクタの1体(例えばフィギュアA)が選択される(S8)。選択されたキャラクタの顔の位置の座標(ワールド座標データ)と、顔方向(顔方向ベクトル)と、胸部76の向く胸部方向と、下半身77の向く下半身方向とが取得される(S9)。そして、S9で取得されたキャラクタの顔方向(フィギュアAの場合、図6に示す顔方向ベクトル71A)と、S7で取得された、第1候補から選択された仮想カメラ61の撮影方向62(例えば図6に示す仮想カメラ61Aの撮影方向ベクトル62A)とをパラメータとするベクトル演算が行われる。これにより、キャラクタの顔方向と撮影方向62とがなす角H(顔方向ベクトル71Aと撮影方向ベクトル62Aの場合、なす角H1)が、前述したように、算出される(S11)。
【0071】
そしてなす角Hが、所定の角度範囲内か否か、判定される(S12)。なす角Hが直角または鈍角を示し、所定の角度範囲(90°以上180°以下)内に含まれれば(S12:YES)、S41に進む。図6のなす角H1のように、なす角Hが鋭角を示し、所定の角度範囲内に含まれなければ(S12:NO)、キャラクタの頭部75が回転可能であるか否かについて(S3参照)確認される(S21)。
【0072】
頭部75が回転不可に設定されていれば、S26に進む(S21:NO)。頭部75が回転可能に設定されていれば(S21:YES)、頭部75を、なす角Hが大きくなる方向へ、あらかじめ定められた角度M1(例えば30°)分の回転が行われる、頭部回転処理が行われる(S22)。そして頭部75の回転後のキャラクタの顔方向(フィギュアAの顔方向ベクトル71B)が取得され、選択中の仮想カメラ61の撮影方向62(撮影方向ベクトル62A)とがなす角I(図6に示す、なす角I1)が算出される(S23)。なす角Iが直角または鈍角を示し、所定の角度範囲内に含まれれば(S24:YES)、S41に進む。図6のなす角I1のように、なす角Iが鋭角を示し、所定の角度範囲内に含まれなければ(S24:NO)、次はキャラクタの胸部76が回転可能であるか否かについて(S3参照)確認される(S26)。
【0073】
胸部76が回転不可に設定されていれば、S31に進む(S26:NO)。胸部76が回転可能に設定されていれば(S26:YES)、S9で取得された胸部76の向く胸部方向を、なす角Iが大きくなる方向へ、あらかじめ定められた角度M2(例えば15°)分の回転が行われる胸部回転処理が行われる(S27)。このとき、S22で回転された、キャラクタの頭部75は、胸部76と共に回転される。すなわち、胸部76に対する頭部75の向きが固定されたまま、胸部76が回転される。そして胸部76の回転後のキャラクタの顔方向(フィギュアAの顔方向ベクトル71C)が取得され、選択中の仮想カメラ61の撮影方向62(撮影方向ベクトル62A)とがなす角J(図6に示す、なす角J1)が算出される(S28)。なす角Jが直角または鈍角を示し、所定の角度範囲(90°以上180°以下)内に含まれれば(S29:YES)、S41に進む。図6のなす角J1のように、なす角Jが鋭角を示し、所定の角度範囲内に含まれなければ(S29:NO)、次はキャラクタの軸、すなわち下半身77が回転可能であるか否かについて(S3参照)確認される(S31)。
【0074】
下半身77が回転不可に設定されていれば、選択中の仮想カメラ61はキャラクタの顔を撮影可能なカメラの第2候補に相当しないとして、S43に進む(S31:NO)。下半身77が回転可能に設定されていれば(S31:YES)、S9で取得された下半身77の向く下半身方向を、なす角Jが大きくなる方向へ、あらかじめ定められた角度M3(例えば25°)分の回転が行われる軸回転処理が行われる(S32)。このとき、S22で回転された頭部75と、S27で回転された胸部76は、下半身77に対する向きが固定されたまま、下半身77と共に回転される。そして下半身77の回転後のキャラクタの顔方向(フィギュアAの顔方向ベクトル71D)が取得され、選択中の仮想カメラ61の撮影方向62(撮影方向ベクトル62A)とがなす角K(図6に示す、なす角K1)が算出される(S33)。図6のなす角K1のように、なす角Kが直角または鈍角を示し、所定の角度範囲内に含まれれば(S34:YES)、S41に進む。なす角Kが鋭角を示し、所定の角度範囲内に含まれなければ(S34:NO)、選択中の仮想カメラ61を第2候補とはせず、S43に進む(S34:NO)。
【0075】
S8〜S12の処理は、セリフが設定されたキャラクタすべてに対して行われる。よって、セリフが設定されていて未選択のキャラクタ(例えばフィギュアB,C)があれば、S8に戻る(S41:NO)。例えば図6に示すように、フィギュアBの場合、顔方向ベクトル72と撮影方向ベクトル62Aとのなす角H2が鈍角であり、所定の角度範囲(90°以上180°以下)内にある(S12:YES)。よって、フィギュアBの頭部75、胸部76、下半身77は回転されず、S41に進む。また、例えばフィギュアCの場合、顔方向ベクトル73Aと撮影方向ベクトル62Aとのなす角H3が鋭角であり、所定の角度範囲内にない(S12:NO)。よって、頭部75が角度M1回転される(S21:YES、S22)。そして、頭部75の回転後のフィギュアBの顔方向ベクトル73Bと撮影方向ベクトル62Aとのなす角I3が鈍角となって、所定の角度範囲内となるので(S24:YES)、フィギュアCの胸部76や下半身77は回転されず、S41に進む。
【0076】
すべてのセリフが設定されたキャラクタに対し、S8〜S12の処理を行うことができれば(S41:YES)、第1候補カメラの中から現在選択されている仮想カメラ61であれば、セリフが設定されたすべてのキャラクタを撮影することができる。よって、選択中の仮想カメラ61を第2候補(第2候補カメラ)とし、配置位置の座標、視線方向、画角の各情報がRAM5の所定の記憶エリアに記録される(S42)。このとき、キャラクタの頭部75、胸部76、下半身77それぞれの回転の有無についても記録される。そしてS43に進む。
【0077】
さらに、S6〜S42の処理は、すべての第1候補の仮想カメラ61に対して行われる。よって、未選択の第1候補の仮想カメラ61があれば、S6に戻る(S43:NO)。すべての第1候補の仮想カメラ61が選択され、それぞれに対しS6〜S42の処理が行われると(S43:YES)、S44に進む。RAM5に第2候補カメラとして記憶されたすべての仮想カメラ61で、上記したアフィン変換に基づく一連の座標変換処理によって、三次元仮想空間60内が撮影され、二次元の画像が生成される。撮影の際には、S42で記録された回転の有無に基づき、キャラクタの頭部75、胸部76、下半身77が回転(または非回転)される。生成されたすべての画像が、コマ画像の候補として、図示しない提示画面に並べて表示される(S44)。提示画面に表示された複数の画像から1つの画像がユーザによって選択されるのを待つ(S46:NO)。1つの画像が選択されたら(S46:YES)、選択された画像がコマ画像として決定され、コマ画像表示領域22に表示される(S47)。このように、コマ画像の候補として複数の画像が提示画面で提示され、ユーザにより選択された1つの画像が、コマ画像として用いられることとなる。コマ画像表示領域22へのコマ画像の表示が完了すると、コマ画像生成処理は終了され、図示外のメインプログラムに戻る。
【0078】
以上のように、漫画作成支援装置として機能する本実施の形態のPC1では、コマ画像を生成するにあたり、全キャラクタの顔の座標が撮影範囲内に含まれ、セリフの設定されたキャラクタの顔の座標が発話順に並ぶ画像を撮影可能な仮想カメラ61を第1候補とする。そして第1候補の仮想カメラ61の中から、撮影方向とキャラクタの顔方向とがなす角が所定の角度範囲内にあり、セリフの設定されたすべてのキャラクタの顔を撮影可能な仮想カメラ61を、第2候補とする。その際、撮影方向とキャラクタの顔方向とがなす角が所定の角度範囲内になく、キャラクタの顔を撮影できない場合には、キャラクタの頭部75、胸部76あるいは下半身77を回転させることができる。第2候補の仮想カメラ61により撮影された画像が、コマ画像の候補として提示される。このように、キャラクタが発話順に並び、セリフのあるキャラクタの顔が前方より撮影された画像を、確実に、コマ画像の候補として得ることができる。
【0079】
なお、上記の実施形態に示される漫画作成支援装置の構成は例示であり、本発明は各種の変形が可能なことはいうまでもない。例えば、本実施の形態では、仮想カメラ61の配置位置あるいは画角はあらかじめ定められた値に設定されるが、任意に変更できるようにしてもよい。また、第2候補カメラによる撮影画像は、図示しない提示画面に並べて表示され、ユーザによるコマ画像の選択が行われたが、第2候補カメラが1つの場合は、提示画面への表示が行われず、直接、コマ画像表示領域22に表示されるようにしてもよい。
【0080】
また、S4の発話順判定処理を行い、キャラクタの顔の座標が発話順に並ぶ画像を撮影可能な仮想カメラ61を第1候補としたが、S4を省き、すべての仮想カメラ61を第1候補としてもよい。また、セリフのあるキャラクタを対象に、仮想カメラ61側を向くように頭部75、胸部76、下半身77の回転処理を行ったが、セリフの有無にかかわらず、すべてのキャラクタが仮想カメラ61側を向くようにしてもよい。
【0081】
また、頭部75、胸部76、下半身77の回転処理では、なす角H1が所定の角度範囲内にない場合に頭部75を角度M1分回転させ、回転後のなす角I1が所定の角度範囲内になければ、胸部76に対する頭部75の回転を維持したまま、さらに胸部76を角度M2回転させた。例えば、頭部75の回転後のなす角I1が所定の角度範囲内になければ、胸部76に対する頭部75の回転を元に戻し、頭部75と胸部76とを共に角度(M1+M2)回転させてもよい。下半身77についても同様である。
【0082】
また、頭部75、胸部76、下半身77の回転角度M1、M2、M3は、本実施の形態では、あらかじめ設定された角度としたが、ユーザが任意の角度を設定できるようにしてもよい。あるいは、頭部回転処理(S22)、胸部回転処理(S27)、軸回転処理(S32)の際に、ユーザが回転の角度M1、M2、M3を指示(入力)できるようにしてもよい。
【0083】
頭部75、胸部76、下半身77の回転角度比率をあらかじめ定めておく(例えば5:2:3)。初期状態における顔方向と撮影方向とのなす角Hが鋭角(例えば30°)であれば、鈍角(例えば100°)にするのに必要な角度を求める(この場合70°)。そして、上記の回転角度比率に応じて頭部75、胸部76、下半身77をそれぞれ回転させてもよい(例えば35°、14°、21°)。
【0084】
また、S12、S24、S29、S34では、所定の角度範囲を90°以上180°以下の範囲とし、なす角H、I、J、Kがそれぞれ直角または鈍角である場合に所定の角度範囲内にあると判断した。所定の角度範囲は、必ずしも90°以上180°以下の範囲でなくともよい。例えば、任意の角度(例えば120°)を設定し、その角度を基準に所定の角度範囲(例えば120°〜180°)を設定してもよい。
【0085】
なお、本実施の形態においては、PC1が「漫画作成支援装置」に相当する。S1の配置設定処理を実行するCPU2が、「配置手段」に相当する。S9で、キャラクタの顔の座標(顔位置情報に相当する。)、顔方向(顔方向情報に相当する。)、胸部76の向く胸部方向(上半身方向情報に相当する。)、下半身77の向く下半身方向(身体方向情報に相当する。)を取得するCPU2が、「第1取得手段」に相当する。S7で、仮想カメラ61の配置位置の座標(視点位置情報に相当する。)、撮影方向62(視線方向情報に相当する。)を取得するCPU2が、「第2取得手段」に相当する。S12で、オブジェクト(キャラクタ)の顔方向と仮想カメラ61の撮影方向62とがなす角Hが所定の角度範囲内に含まれるか否かを判定するCPU2が、「第1判定手段」に相当する。S32で、下半身77を回転させることによって、オブジェクト(キャラクタ)の顔方向と仮想カメラ61の撮影方向62とがなす角Kを所定の角度範囲内とするCPU2が、「第1変更手段」に相当する。S44で、候補の仮想カメラ61により撮影された画像を提示画面(図示外)に提示するため、表示制御部9から出力される映像信号(提示信号に相当する。)を発生させるCPU2が、「信号発生手段」に相当する。漫画作成支援プログラムのメインプログラム(図示外)に従い、操作画面20のセリフ入力ボックス32,42,52に入力されたセリフと、発話順設定リスト33,43,53で設定された発話順とをS2において取得するCPU2が、「第1設定手段」に相当する。S63で、キャラクタの配置位置の座標が発話順に予め決められた方向に沿って(例えば画面の右側から左側へ向けて)配置されているか否かを判定するCPU2が、「第2判定手段」に相当する。S22で、頭部75を回転させることによって、オブジェクト(キャラクタ)の顔方向と仮想カメラ61の撮影方向62とがなす角Iを所定の角度範囲内とするCPU2が、「第2変更手段」に相当する。S3で、オブジェクト(キャラクタ)の頭部75について、あらかじめ設定された角度M1の回転を可能または不可能に設定するCPU2が、「第2設定手段」に相当する。S24で、オブジェクト(キャラクタ)の顔方向と仮想カメラ61の撮影方向62とがなす角Iが所定の角度範囲内に含まれるか否かを判定するCPU2が、「第3判定手段」に相当する。S27で、胸部76を回転させることによって、オブジェクト(キャラクタ)の顔方向と仮想カメラ61の撮影方向62とがなす角Jを所定の角度範囲内とするCPU2が、「第3変更手段」に相当する。
【符号の説明】
【0086】
1 PC
2 CPU
5 RAM
20 操作画面
22 コマ画像表示領域
32 セリフ入力ボックス
33,43,53 発話順設定リスト
60 三次元仮想空間
61 仮想カメラ
62 撮影方向

【特許請求の範囲】
【請求項1】
少なくとも一コマ以上のコマを含む漫画の作成を支援する漫画作成支援装置であって、
三次元仮想空間内の所定の位置に、少なくとも顔と身体とを含む複数のオブジェクトを配置する配置手段と、
前記配置手段により配置された前記オブジェクトの顔が向く顔方向を示す顔方向情報と、前記オブジェクトの身体が向く身体方向を示す身体方向情報とを取得する第1取得手段と、
三次元仮想空間内の複数の所定の位置に配置された前記視点の視線方向を示す視線方向情報を取得する第2取得手段と、
前記配置された前記オブジェクトの前記顔方向と、前記視点の前記視線方向とがなす第1角度が、所定の第2角度範囲内にあるか否かを判定する第1判定手段と、
前記第1判定手段により前記第1角度が前記第2角度範囲内にないと判定された前記オブジェクトの前記顔方向を変更し、前記顔方向と前記視線方向とがなす前記第1角度を前記第2角度範囲内にする第1変更手段と、
前記第1変更手段により前記顔方向および前記身体方向が変更された前記オブジェクトを含む、前記複数のオブジェクトを映し出した画像を、前記視点から取得して、前記コマの画像の候補として提示する提示信号を発生する信号発生手段と、
を備えることを特徴とする漫画作成支援装置。
【請求項2】
前記第1取得手段は、前記オブジェクトの顔の位置を示す顔位置情報をさらに取得し、
前記第2取得手段は、三次元仮想空間内の複数の所定の位置に配置されたそれぞれの視点の位置を示す視点位置情報をさらに取得し、
少なくとも1以上の前記オブジェクトに、前記オブジェクトが発話する内容と前記発話の発話順とを設定する第1設定手段と、
前記視点位置情報と前記視線方向情報と前記顔位置情報とに基づいて、それぞれの前記視点から取得した画像内で、予め決められた方向に沿って、前記第1設定手段により設定された前記発話順に前記オブジェクトの顔が配置されているか否かを判定する第2判定手段と、
をさらに備え、
前記信号発生手段は、前記第2判定手段によって前記オブジェクトの顔が前記発話順に配置されていると判定された画像を、前記コマの画像の候補として提示する提示信号を発生することを特徴とする請求項1に記載の漫画作成支援装置。
【請求項3】
前記複数のオブジェクトのうち、少なくとも、前記第1設定手段によって前記発話する内容と前記発話順とが設定されたオブジェクトの前記顔方向と前記視線方向とがなす前記第1角度が、前記第2角度範囲内にあることを特徴とする請求項2に記載の漫画作成支援装置。
【請求項4】
前記オブジェクトは、前記顔方向と前記身体方向とを独立に変更可能であり、
前記第1判定手段により、前記第1角度が前記第2角度範囲内にないと判定された前記オブジェクトに対し、前記身体方向は変更せずに前記顔方向を変更し、前記オブジェクトの前記顔方向と前記視線方向とがなす前記第1角度を前記第2角度範囲内にする第2変更手段をさらに備えることを特徴とする請求項1から3のいずれかに記載の漫画作成支援装置。
【請求項5】
前記第2変更手段が前記顔方向を変更可能な範囲を示す第3角度範囲を設定する第2設定手段をさらに備えることを特徴とする請求項4に記載の漫画作成支援装置。
【請求項6】
前記オブジェクトはさらに上半身を含み、前記上半身が向く上半身方向と、前記顔方向と、前記身体方向とをそれぞれ所定の方向に変更可能であり、
第1取得手段は、前記オブジェクトの前記上半身方向を示す上半身方向情報をさらに取得するものであり、
前記第1判定手段により、前記第1角度が前記第2角度範囲内にないと判定された前記オブジェクトの前記顔方向が、前記第2変更手段によって前記第3角度範囲内において変更された場合に、前記第1角度が前記第2角度範囲内にあるか否かを判定する第3判定手段と、
前記第3判定手段により、前記第2変更手段によって変更された前記オブジェクトの前記顔方向と前記視線方向とがなす前記第1角度が、前記第2角度範囲内にないと判定された場合に、前記オブジェクトに対し、前記身体方向は変更せずに前記上半身方向を前記顔方向とともに変更し、前記オブジェクトの前記顔方向と前記視線方向とがなす前記第1角度を前記第2角度範囲内にする第3変更手段と、
をさらに備えることを特徴とする請求項5に記載の漫画作成支援装置。
【請求項7】
前記第1変更手段は、前記オブジェクトの前記顔方向を、前記身体方向とともに変更することを特徴とする請求項1から3のいずれかに記載の漫画作成支援装置。
【請求項8】
少なくとも一コマ以上のコマを含む漫画が作成されるコンピュータで実行され、前記漫画の作成を支援する漫画作成支援方法であって、
三次元仮想空間内の所定の位置に、少なくとも顔と身体とを含む複数のオブジェクトを配置する配置ステップと、
前記配置ステップにより配置された前記オブジェクトの顔が向く顔方向を示す顔方向情報と、前記オブジェクトの身体が向く身体方向を示す身体方向情報とを取得する第1取得ステップと、
三次元仮想空間内の複数の所定の位置に配置された前記視点の視線方向を示す視線方向情報を取得する第2取得ステップと、
前記配置された前記オブジェクトの前記顔方向と、前記視点の前記視線方向とがなす第1角度が、所定の第2角度範囲内にあるか否かを判定する第1判定ステップと、
前記第1判定ステップにより前記第1角度が前記第2角度範囲内にないと判定された前記オブジェクトの前記顔方向を変更し、前記オブジェクトの前記顔方向と前記視線方向とがなす前記第1角度を前記第2角度範囲内にする第1変更ステップと、
前記第1変更ステップにより前記顔方向および前記身体方向が変更された前記オブジェクトを含む、前記複数のオブジェクトを映し出した画像を、前記視点から取得して、前記コマの画像の候補として提示する提示信号を発生する信号発生ステップと、
を含む漫画作成支援方法。
【請求項9】
少なくとも一コマ以上のコマを含む漫画の作成を支援する漫画作成支援装置として機能させるためのプログラムであって、
コンピュータに、
三次元仮想空間内の所定の位置に、少なくとも顔と身体とを含む複数のオブジェクトを配置する配置ステップと、
前記配置ステップにより配置された前記オブジェクトの顔が向く顔方向を示す顔方向情報と、前記オブジェクトの身体が向く身体方向を示す身体方向情報とを取得する第1取得ステップと、
三次元仮想空間内の複数の所定の位置に配置された前記視点の視線方向を示す視線方向情報を取得する第2取得ステップと、
前記配置された前記オブジェクトの前記顔方向と、前記視点の前記視線方向とがなす第1角度が、所定の第2角度範囲内にあるか否かを判定する第1判定ステップと、
前記第1判定ステップにより前記第1角度が前記第2角度範囲内にないと判定された前記オブジェクトの前記顔方向を変更し、前記オブジェクトの前記顔方向と前記視線方向とがなす前記第1角度を前記第2角度範囲内にする第1変更ステップと、
前記第1変更ステップにより前記顔方向および前記身体方向が変更された前記オブジェクトを含む、前記複数のオブジェクトを映し出した画像を、前記視点から取得して、前記コマの画像の候補として提示する提示信号を発生する信号発生ステップと、
を実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−14392(P2012−14392A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−149853(P2010−149853)
【出願日】平成22年6月30日(2010.6.30)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】