(57)【要約】【課題】  人間の呼気をＣＧ生成に用いることにより、より自然なマンマシンインターフェイスを提供する。【解決手段】  操作者の呼気を呼気計測手段によって測定し得られた呼気値を入力する入力工程と、コンピュータグラフィックスオブジェクトを生成する生成工程とを有し、前記呼気値に応じてコンピュータグラフィックスオブジェクトの生成を制御する。【選択図】  図１
2005115463.tif 000002
【特許請求の範囲】
【請求項１】
操作者の呼気を呼気計測手段によって測定し得られた呼気値を入力する入力工程と、
コンピュータグラフィックスオブジェクトを生成する生成工程とを有し、
前記呼気値に応じてコンピュータグラフィックスオブジェクトの生成を制御することを特徴とする画像生成方法。
【請求項２】
前記呼気値に応じて、生成するコンピュータグラフィックスオブジェクトの数量を制御することを特徴とする請求項１記載の画像生成方法。
【請求項３】
前記呼気値に応じて、生成するコンピュータグラフィックスオブジェクトのサイズを制御することを特徴とする請求項１記載の画像生成方法。
【請求項４】
前記呼気値に応じて、生成するコンピュータグラフィックスの種類を制御することを特徴とする請求項１記載の画像生成方法。
【請求項５】
前記呼気値と前記呼気値の時間履歴とに応じて、生成するコンピュータグラフィックスオブジェクトのふるまいを制御することを特徴とする請求項１記載の画像生成方法。
【請求項６】
前記呼気値と前記呼気値の時間履歴とに応じて、生成するコンピュータグラフィックスオブジェクトのふるまいの種類を制御することを特徴とする請求項１記載の画像生成方法。
【請求項７】
前記呼気値に応じて、生成するコンピュータグラフィックスの初期速度ベクトルを決定することを特徴とする請求項１記載の画像生成方法。
【請求項８】
前記呼気値に一定以上の入力があるときは、コンピュータグラフィックスの種類の変更を行わないことを特徴とする請求項１記載の画像生成方法。
【請求項９】
前記現実世界の映像を撮影し得られた撮影画像と前記生成されたコンピュータグラフィックスオブジェクトを合成することを特徴とする請求項１記載の画像生成方法。
【請求項１０】
請求項１乃至９のいずれかに記載の画像生成方法をコンピュータを用いて実現するためのプログラム。
【請求項１１】
操作者の呼気を測定し呼気値を求める呼気計測手段と、
コンピュータグラフィックスオブジェクトを生成する生成手段とを有し、
前記呼気値に応じてコンピュータグラフィックスオブジェクトの生成を制御することを特徴とする画像生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、呼気に応じてＣＧ（コンピュータグラフィックス）を生成するものに関する。
【背景技術】
【０００２】
従来より、コンピュータグラフィックスによる映像を画面に表示し、マウスなどのデバイスによってＣＧ（コンピュータグラフィックスの形状や位置などをリアルタイムに変更操作することが行われている。
【０００３】
また、従来より、現実世界の映像と、三次元モデリングされたＣＧによる映像を重畳して表示し、あたかも現実の世界中にＣＧで描かれた物体（仮想物体）が存在しているかのように見せることができるような複合現実感（ＭＲ：Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）提示装置が存在する。これは、現実の映像を撮影するための現実映像撮影手段（たとえばビデオカメラ）と、現実の映像を撮影している位置から見たようにＣＧ映像を作り出すＣＧ映像生成手段と、両者を合成して表示することのできる映像合成表示（たとえばＨＭＤ（ヘッドマウントディスプレイ）またはモニタ）からなる装置である。ここで、現実映像撮影手段の視線の位置が変わった場合であってもＣＧと現実映像との位置関係が正しくなるようになっており、現実映像撮影手段（ビデオカメラ）の視線位置・視線方向を検出するための、視線位置姿勢検出手段（たとえば位置姿勢センサ）を備えている。ＣＧ映像生成手段は、三次元モデリングされたＣＧを、現実空間と同じスケールの仮想空間に置き、視線位置姿勢検出手段によって検出された視線位置、視線方向から観察されたものとしてＣＧをレンダリングする。このようにして生成されたＣＧ映像と現実の映像とを重畳すると、結果として、現実映像撮影手段がどの視線位置・視線方向から観察した場合でも、現実空間の中に正しくＣＧで生成された映像が置かれているような映像を表示ことができる。ＣＧの種類や配置の変更、アニメーションなどは、一般的なＣＧと同様に、自由に行える。
【０００４】
現実空間の映像を撮影する現実映像撮影手段は、たとえばビデオカメラであり、カメラの視線方向にある映像を撮影し、メモリ中にキャプチャする手段である。
【０００５】
現実空間の映像とＣＧとを合成して表示する映像表示装置としては、たとえばＨＭＤ（ヘッドマウントディスプレイ）が用いられる。通常のモニタでなくＨＭＤを用いて、さらに上記ビデオカメラをＨＭＤの視線方向に装着することで、観察者が向いている方向の映像をＨＭＤに映し出すことができ、かつ、その方向を向いたときのＣＧの描画も行えるため、観察者の没入感を高めることができる。
【０００６】
位置姿勢検出手段としては磁気方式による位置姿勢センサなどが用いられ、これを上記ビデオカメラ（またはビデオカメラが取り付けられているＨＭＤ）に取り付ることによって、ビデオカメラの視線の位置姿勢の値を検出する。磁気方式の位置姿勢センサとは、磁気発生装置（発信機）と磁気センサ（受信機）との間の相対位置・姿勢を検出するものであり、米国ポヒマス（Ｐｏｌｈｅｍｕｓ）社の製品ＦＡＳＴＲＡＫなどがあげられる。これは特定の領域内で、センサの３次元位置（Ｘ，Ｙ，Ｚ）と姿勢（Ｒｏｌｌ，Ｐｉｔｃｈ，Ｙａｗ）をリアルタイムに検出する装置である。
【０００７】
上記の構成により、観察者はＨＭＤを通じて、現実映像とＣＧ映像が重畳された世界を観察することができるようになる。観察者が周囲を見回すと、ＨＭＤに備え付けられた現実映像撮影装置（ビデオカメラ）が現実の映像を撮影し、ＨＭＤに備え付けられた視線位置姿勢検出手段（位置姿勢センサ）がビデオカメラの位置視線方向を検出し、これに応じてＣＧ映像生成手段がその視線位置・姿勢から見たＣＧ映像を生成（レンダリング）し、これを現実映像に重畳して表示する。
【特許文献１】特開平１１−０８８９１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来のＣＧ映像生成システムでは、マウスなどのデバイスや位置センサによるジェスチャなどでＣＧオブジェクトを操作することが可能であったが、呼気によってＣＧの生成や操作を行うことはできなかった。
【０００９】
また、従来の複合現実感提示を行うＣＧ映像生成システムにおいては、人間の振舞いを自然にＣＧの操作に反映させるものが提案されてきたが、人間の呼気をＣＧ生成に用いたものはなかった。
【００１０】
本発明はこれらの課題を解決するものである。
【課題を解決するための手段】
【００１１】
本発明の画像処理方法は、操作者の呼気を呼気計測手段によって測定し得られた呼気値を入力する入力工程と、コンピュータグラフィックスオブジェクトを生成する生成工程とを有し、前記呼気値に応じてコンピュータグラフィックスオブジェクトの生成を制御することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、気によってＣＧオブジェクトを生成し、さまざまな操作をすることが可能になる、という効果がある。
【００１３】
また、呼気による操作方法は実世界の人間の振舞いを自然に使ったものであるため、複合現実感提示に用いることにより、より自然なマンマシンインターフェイスを実現できるという効果がある。
【発明を実施するための最良の形態】
【００１４】
以下、本発明にかかる実施例について説明する。
【実施例１】
【００１５】
図１は、本実施例を説明する構成図である。
【００１６】
コンピュータ１０１に、ＨＭＤ１０２とビデオカメラ１０３と位置姿勢センサコントローラ１０４とメモリ１０５，１０６と肺活量計コントローラ１０７がそれぞれのインターフェイスを介して接続されている。ビデオカメラ１０３はＨＭＤ１０２に取り付けられている。メモリ１０５，１０６は通常コンピュータ１０１内部にあるものであるが、説明の便宜のために外部に描いている。また、１０５と１０６のメモリは機能上同等のものである。肺活量計コントローラ１０７にはマウスピース部１０８が接続される。位置姿勢センサコントローラ１０４には位置姿勢センサ１０９ａ，１０９ｂが接続される。１０９ａはビデオカメラ１０３に取り付けられ、１０９ｂはマウスピース部１０８にとりつけてそれぞれの位置姿勢を計測する。複合現実感を体験するプレイヤはＨＭＤ１０２を頭部に装着し、マウスピース部１０８を手に持つ。
【００１７】
まず、本実施例の処理のおおまかな流れを説明する。
【００１８】
図２はシステム全体の処理の流れを説明するフローチャートである。
【００１９】
まず、ステップｓ２０１で、現実映像撮影手段によって現実の風景をキャプチャし、メモリ１０６の現実映像１２０に格納する。
【００２０】
ステップｓ２０２で現実映像撮影手段の撮影位置姿勢は位置姿勢センサ１０９ａによって計測され、メモリ１０６の視点位置姿勢１２１に格納する。
【００２１】
ステップｓ２０３では位置姿勢センサ１０９ｂによって計測される位置姿勢をメモリ１０６のＣＧ位置姿勢１２４に格納する。本実施例では、マウスピース部１０９に位置姿勢センサ１０９ｂを取り付けて位置姿勢を計測し、後段のＣＧ映像生成手段ではマウスピース部の先端位置をもとにＣＧの位置を計算することにする。
【００２２】
次に、ステップｓ２０４で、ＣＧ生成種類切替手段１１１に応じてＣＧオブジェクト生成手段を選択する。ＣＧオブジェクト生成手段は複数用意されており、ここでは後述するＡ，Ｂ，Ｃの３種類用意されているものとするが、いくつであってもかまわない。選択されたＣＧオブジェクト生成手段を指定するＩＤはメモリ１０６のＣＧ生成種別１２３に格納される。ＣＧ生成種類切替手段１１１の詳細は後述する。
【００２３】
次に、ステップｓ２０５で、ＣＧ生成種別１２２によってＣＧオブジェクト生成手段を選択し、ステップｓ２０６，ｓ２０７，ｓ２０８では、選ばれたＣＧオブジェクト生成手段Ａ１１２または同Ｂ１１３または同Ｃ１１４によってＣＧオブジェクトを生成する。それぞれのＣＧオブジェクト生成手段の詳細は後述する。
【００２４】
ステップＳ２０９のＣＧ映像生成手段１１７は、前段で生成されたＣＧを、視点位置姿勢１２１に格納されている位置姿勢を視点としてレンダリングする。生成されたＣＧ映像はメモリ１０６中のＣＧ映像１２３に格納される。ＣＧ映像生成手段はＣＧ位置姿勢１２４の位置にＣＧを生成する。
【００２５】
つぎに、ステップｓ２１０で、映像合成表示１１５によって現実映像１２０とＣＧ映像１２３を合成してＨＭＤ１０２などの表示装置に表示する。これは従来から実現されている処理と同様のものである。
【００２６】
以上の処理で、１フレーム分の複合現実映像が表示される。以降、この処理をくり返し行うことによって複合現実映像を動画として体験することが可能になる。
【００２７】
以上で本実施例の処理のおおまかな流れを説明した。
【００２８】
本実施例においては、ＣＧオブジェクト生成手段Ａ，Ｂ，Ｃが、それぞれ、呼気計測手段１１０によって計測する呼気値１２０に応じた動作をするのが特徴である。また、複数のＣＧ映像生成手段を擁しており、ＣＧ生成種類切替手段１１１これらを切り替えて使うことができるという特徴もある。よって、以下ではそれらの部分を詳しく説明する。
【００２９】
まず、呼気計測手段１１６について説明する。
【００３０】
これは、吹き込まれた息の量を計測するものであり、ここでは電子式の肺活量計を使用する。電子式の肺活量計は、計測用の筒（マウスピース）を通過した息の量を計測することができるもので、コンピュータに接続して値を取得することができるものが販売されている。
【００３１】
なお、本実施例のように肺活量計を利用する方法以外にも、息によって風車を回転させ、ロータリーエンコーダや光センサによって回転数を計測する方法や、回転音や風音などを音センサで計測することなども考えられる。その場合計測された息量の精度は悪くなる。
【００３２】
呼気計測手段１１６は、肺活量計コントローラ１０７を駆動してある時間間隔にマウスピースを通過した呼気の量を計測し、その値をメモリ１０６の呼気値１２５に格納するものである。この値は計測開始を指示してから計測が終了するまでの計測時間間隔における呼気量である。時間間隔の指定は長くすることも短くすることも可能であるが、システムのレスポンスの観点からは、短く設定するのが好ましい。
【００３３】
以上で呼気計測手段１１６の説明を終了する。
【００３４】
次に、ＣＧオブジェクト生成手段のそれぞれについて説明する。
【００３５】
まず、ＣＧオブジェクト生成手段Ａ１１１について説明する。ＣＧオブジェクト生成手段Ａ１１１のフローチャートを図３に示す。
【００３６】
ＣＧオブジェクト生成手段Ａは、呼気計測手段１１６によって計測された呼気値１２５に応じて風船状のＣＧをひとつ生成するものである。風船の体積は呼気値１２５によって計算し、徐々に膨らませていく。呼気の量は肺活量計によって計測を行っている間にマウスピースを通過した呼気量であり、計測をしていない間の呼気は測られていないから、計測していない間もその値の呼気が流入しているとして扱っている。また、息の流入がある一定レベル以下になれば入力が終わったとみなして、ＣＧ風船の膨張処理を終了して、風船ＣＧを宙に浮かせる処理をする。
【００３７】
以下、フローチャートの説明をする。
【００３８】
はじめてＣＧオブジェクト生成手段Ａの処理に入る際には、変数ＴＯＴＡＬは０に初期化されているものとする。
【００３９】
はじめに、ステップＳ３０１で、変数Ｔｏｌｄに変数Ｔｎｏｗを代入する。Ｔｎｏｗは以前に呼気計測をはじめた時の時刻が入っている。
【００４０】
次に、ステップＳ３０２で、変数Ｔｎｏｗに現在時刻を代入する。なお、はじめてＣＧオブジェクト生成手段Ａの処理を行う際にはＴｏｌｄにも現在時刻の値を入れておく。
【００４１】
次に、ステップｓ３０３で、呼気計測手段１１６を用いて、Ｎ秒間のあいだ呼気を計測し、結果を呼気値１２５に格納する。図中では呼気値１２５を変数Ｂと記述した。本システムは項フレームレートでリアルタイムの映像を生成ものであるから、計測時間Ｎはきわめて短い時間になるのが普通である。
【００４２】
次にステップｓ３０４では呼気値１２５が、あらかじめ定めておいた呼気の最小量ＭＩＮを超えているかどうかを判定する。これは、プレイヤの意思に反して微小な空気の流入があったり、計測のノイズを避けるための処理である。ＭＩＮの値以下の計測値はノイズとみなされ呼気流入は無かったものとする。
【００４３】
もし、ＭＩＮ以上の計測値があればステップＳ３０５に進む。
【００４４】
ステップＳ３０５では、その時点で変数ＴＯＴＡＬが０かどうか判定する。変数ＴＯＴＡＬは、その時点までの連続した呼気流入の積算量を示す変数である。もしＴＯＴＡＬが０なら、この時はじめて呼気流入が始まったことになる。ステップＳ３０６に進み、新規にＣＧオブジェクトをひとつ生成する。もしＴＯＴＡＬが０でなければ、直前のフレームまでにすでにＣＧオブジェクトが生成されているはずであるので、以降ではこの（直前のフレームまでに生成されている）ＣＧオブジェクトを操作する。
【００４５】
次に、ステップＳ３０７では、
ＴＯＴＡＬ＝ＴＯＴＡＬ＋Ｂ＊（Ｔｎｏｗ−Ｔｏｌｄ）／Ｎ
の計算によって得られる値を変数ＴＯＴＡＬに代入する。すなわち、呼気値１２５に示される入力が、以前の計測時刻から今回の計測時刻までの間ずっと入力されていたとみなしている。
【００４６】
つぎに、ステップｓ３０８で、ＣＧのサイズを設定する。ここでは描画するＣＧは風船状のものとしている。ＣＧのサイズは、変数ＴＯＴＡＬに格納されている値を風船（球体）の体積とみなしてそのサイズを計算する。なお、このとき、ＴＯＴＡＬの値が０であってもよい。その場合は体積０の物体であるので、後の描画処理において何も描画しない処理が可能である。
【００４７】
ステップＳ３０９ではＣＧ位置姿勢１２４を用いてＣＧオブジェクトの描画位置を設定する。
【００４８】
一方、ステップＳ３０４で、計測された呼気値がＭＩＮを下回っていた場合は、呼気が途絶えていると判定され、ステップＳ３１２に進む。
【００４９】
ステップＳ３１２では、その時点でＴＯＴＡＬの値が０かどうか判定する。すなわち、直前のフレームにおける本処理で、ゼロを超えるサイズのＣＧが描画されていたかどうかを判定する。
【００５０】
もしＴＯＴＡＬがゼロであれば、直前のフレームでＣＧが描画されていないことになる。この場合は何もせずに終了する。
【００５１】
もしＴＯＴＯＡＬがゼロでなければ、直前のフレームでＣＧが描画されていることになる。この場合はステップＳ３１３に進み、直前のフレームでＣＧ位置姿勢１２４の位置に描画していたＣＧをＣＧ位置姿勢１２４の位置から浮かび上がらせる（リリースする）処理を行う。この処理のためには、ＣＧオブジェクトのサイズをＴＯＴＡＬで固定し、ＣＧの初期速度ベクトルを設定し、ＣＧ位置姿勢１２４の位置を初期位置として設定する。そのＣＧオブジェクトは枚フレームごとに初期位置と速度ベクトルによって徐々に上に上っていくように位置移動を繰り返していけばよい。
【００５２】
ステップＳ３１４ではＴＯＴＡＬの値をゼロに初期化し、終了する。
【００５３】
生成され、サイズ・位置・速度の設定をされたＣＧオブジェクトは、このあと、図２に示すフローチャートのＳ２０９のＣＧ映像生成手段１１７によって実際に描画されることになる。
【００５４】
なお、この例では息の流入がある限り風船ＣＧが膨らんでいくだけだが、流入する息が弱い、または流入が無いときには風船がしぼんでいくようにすることも容易である。その場合には、呼気値がある規定値以下であればＴＯＴＡＬの値を減算して風船が徐々にしぼみ、ある規定値以上ならＴＯＴＡＬの値を加算して呼気量に応じて膨らんでいくようにできる。
【００５５】
以上でＣＧオブジェクト生成手段Ａ１１２の説明を終える。
【００５６】
次に、ＣＧオブジェクト生成手段Ｂ１１３の説明をする。
【００５７】
ＣＧオブジェクト生成手段Ｂは、呼気計測手段１１６によって計測された呼気値１２５に応じた数の風船状のＣＧを多数生成するものである。風船の数と初速度は呼気値１２５によって決定する。また、息の流入がある一定レベル以下ならば入力がないとみなして、ＣＧの生成を行わない。
【００５８】
ＣＧオブジェクト生成手段Ｂ１１３のフローチャートを図４に示す。
【００５９】
はじめに、ステップＳ４０１で変数ＴｏｌｄにＴｎｏｗを代入する。この時点では、Ｔｎｏｗには直前のフレームにおいて本処理を開始した時の時刻が格納されている。
【００６０】
次に、ステップＳ４０２で、変数Ｔｎｏｗに現在時刻を代入する。なお、初めてＣＧオブジェクト生成手段の処理を行う前には変数Ｔｏｌｄにも現在時刻を代入するものとする。
【００６１】
ステップＳ４０３では、呼気計測手段１１６を用いてＮ秒間呼気を計測し、呼気値１２５に格納する。図中では呼気値はＢと記述した。
【００６２】
ステップＳ４０４では、呼気値１２５があらかじめ決めておいた呼気の最小値ＭＩＮを越えているかどうかを判定する。もしＭＩＮを下回っていれば、入力は無かったものとして何もせずに終了する。ＭＩＮを上回っていれば、ステップＳ４０５にすすむ。
【００６３】
ステップＳ４０５では、
ＢＢ＝Ｂ＊（Ｔｎｏｗ−Ｔｏｌｄ）／Ｎ
の式のとおりに計算をする。すなわち、以前の計測時から現在の計即時までの間おなじ呼気入力があったとする。
【００６４】
ステップＳ４０６では、ＢＢの値に応じた数の新規ＣＧオブジェクトを生成する。
【００６５】
ステップＳ４０７では、ＢＢの値に応じてＣＧオブジェクトの初期速度ベクトルを設定する。すべてが同じである必要はなく、ランダムな値を掛け合わせて、それぞれが異なる初期速度と方向をもたせるようにすることも可能である。
【００６６】
ステップＳ４０８では、メモリ１０６のＣＧ位置姿勢を用いてＣＧの初期位置を設定する。
【００６７】
以上で生成処理は終わる。ここで生成されたＣＧは、図２のステップｓ２０９においてＣＧ映像生成手段によって描画される。
【００６８】
以上でＣＧオブジェクト生成手段Ｂ１１３の説明を終了する。
【００６９】
次に、ＣＧオブジェクト生成手段Ｃ１１４の説明をする。
【００７０】
ＣＧオブジェクト生成手段Ｃは、呼気計測手段１１６によって計測された呼気値１２５に応じて、生成するＣＧの振舞いコントロールするものである。風船の挙動は呼気値１２５によって判定し２つに分けられる。一つ目の振舞いは初期位置からゆっくり上に昇っていく振舞いである。二つ目の振舞いは、初期位置から勢いよく前方に飛び出し飛んでいく振舞いである。吹き込んだ息の総量がある定められた値を超えればＣＧが生成されるが、その値に達するまでの時間が長ければ第一のふるまいをし、短ければ第二のふるまいをする。
【００７１】
ＣＧオブジェクト生成手段Ｃ１１４のフローチャートを図５に示す。初めてこの処理に入るときには変数ＴＯＴＡＬはゼロに初期化されているものとする。
【００７２】
はじめに、ステップＳ５０１で変数ＴｏｌｄにＴｎｏｗを代入する。Ｔｎｏｗには、前回ＣＧ生成処理をしたときの時刻が格納されている。
【００７３】
次にステップＳ５０２で変数Ｔｎｏｗに現在時刻を代入する。初めてこの処理を行うときにはＴｏｌｄにも現在時刻を代入することにする。
【００７４】
次にステップＳ５０３で、呼気計測手段１１６を用いてＮ秒間呼気を測定し、測定値を呼気値１２５に格納する。図中では呼気値をＢという記号で表している。
【００７５】
次にステップｓ５０４では呼気値１２５があらかじめ定めた呼気の最小量ＭＩＮを超えているかどうかを判定する。これは、プレイヤの意思に反して微小な空気の流入があったり、計測のノイズを避けるための処理である。ＭＩＮの値以下の計測値はゼロとみなされる。
【００７６】
もし、ＭＩＮ以上の計測値がなければ呼気の流入が無かったとして、ステップＳ５０５に進む。ステップＳ５０５ではそれまで積算してきた呼気量を示す変数ＴＯＴＡＬの値をゼロにリセットして終了する。
【００７７】
もし、ステップＳ５０４で、ＭＩＮ以上の計測値があったと判断されれば、ステップＳ５０６に進む。
【００７８】
ステップＳ５０６では、変数ＴＯＴＡＬがゼロであるかどうかを判定する。ＴＯＴＡＬがゼロであった場合は、その時点が呼気を初めて検知した時刻である。その場合はステップＳ５０７にすすみ、この時刻をＴ０とし、現在時刻Ｔｎｏｗを変数Ｔ０に記録しておく。ステップＳ５０６でＴＯＴＡＬがゼロでない場合は、すでに直前のフレームまでに呼気流入が検知されている（ある時点から現在にいたるまで一連の呼気流入が連続している）ことになる。何もせずにステップＳ５０８にすすむ。
【００７９】
ステップＳ５０８では、呼気が検知されてから現在に至るまでの呼気の積算量ＴＯＴＡＬを次の式で計算する。
ＴＯＴＡＬ＝ＴＯＴＡＬ＋Ｂ＊（Ｔｎｏｗ−Ｔｏｌｄ）／Ｎ
【００８０】
ステップＳ５０９では、積算呼気量ＴＯＴＡＬが、あらかじめ定めておいた閾値Ｂｇｅｎを超えているかどうかを判定する。Ｂｇｅｎは、ＣＧオブジェクトを生成するのに必要な積算呼気量である。ある連続した呼気流入によってＢｇｅｎを越えればＣＧが生成されるものとしている。ステップＳ５０９で積算呼気量ＴＯＴＡＬがＢｇｅｎを超えていない場合は、まだＣＧを生成しないと判断し、終了する。もし積算呼気量ＴＯＴＡＬがＢｇｅｎを超えていたらステップＳ５１０に進む。
【００８１】
ステップＳ５１０ではＣＧオブジェクトをひとつ生成する。
【００８２】
ステップＳ５１１では、連続した呼気の流入が始まった時刻Ｔ０と現在時刻Ｔｎｏｗとの差分を、あらかじめ定めておいた閾値Ｔｓｈｏｒｔと比較する。Ｔｓｈｏｒｔは、積算呼気量ＴＯＴＡＬが前述のＢｇｅｎを超えるまでに要した時間が短かったか、長かったかを判断するために用いられている。（Ｔｎｏｗ−Ｔ０）の値が短ければ、比較的強い息（単位時間当たりにして多い呼気流入）があったと判定できる。また（Ｔｎｏｗ−Ｔ０）の値が長ければ、比較的弱い息を長い時間かけて流入させたことによってＢｇｅｎを超えたと判定することが出来る。
【００８３】
ステップＳ５１１で（Ｔｎｏｗ−Ｔ０）がＴｓｈｏｒｔより小さい値であれば短い時間に強い息が流入したと判定され、ステップＳ５１２でＣＧオブジェクトに初期速度ベクトルＶ１が設定される。Ｖ１はマウスピース部の向いている方向に、速い速度で飛び出すものである。
【００８４】
もしステップ５１１で（Ｔｎｏｗ−Ｔ０）がＴｓｈｏｒｔより大きい値であれば、長い時間をかけて弱い息が流入したと判定され、ステップＳ５１３でＣＧオブジェクトに初期速度ベクトルＶ２が設定される。Ｖ２はマウスピース部からゆっくりした速度で浮かび上がるものである。
【００８５】
Ｓ５１４ではＣＧ位置姿勢１２４によってＣＧオブジェクトの初期位置姿勢を設定する。
【００８６】
以上でＣＧオブジェクト生成手段Ｃ１１４の説明を終了する。
【００８７】
図７は、ここまで説明してきたＣＧオブジェクト生成手段Ａ，Ｂ，Ｃの概要図である。それぞれの生成手段が呼気入力に応じてどのようなＣＧを生成するのかを、図を使って説明する。
【００８８】
ＣＧオブジェクト生成手段Ａは、図７−１に示すグラフのような呼気入力があった場合、それぞれの時間ＴＡ１，ＴＡ２，ＴＡ３において図中の絵のようにＣＧを生成する。ＴＡ１ではＣＧオブジェクトが生成されてサイズが増加しているところである。ＴＡ２に至ってもまだサイズが増加中であり、位置はマウスピース部の位置（メモリ１０６のＣＧ位置姿勢１２４）にある。ＴＡ３の時点で呼気入力が検知されなくなったのでＣＧオブジェクトの位置は上方へ向かう。
【００８９】
ＣＧオブジェクト生成手段Ｂは、図７−２に示すグラフのような呼気入力があった場合、それぞれの時間ＴＢ１，ＴＢ２，ＴＢ３において図中の絵のようにＣＧを生成する。ＴＢ１においては呼気入力が開始され、これに応じてＣＧがつぎつぎと生成されている。ＣＧの初速度はその時点での呼気の強さに応じている。ＴＢ２時点でも呼気入力があり、ＣＧは生成されつづけているため、ＣＧの数が増えている。ＴＢ３時点では呼気入力が終了しているため新たにＣＧは生成されておらず、以前に生成されていたＣＧは与えられた速度で移動中である。
【００９０】
ＣＧオブジェクト生成手段Ｃは、図７−３に示すグラフのような呼気入力があった場合、それぞれの時間ＴＣ１，ＴＣ２，ＴＣ３において図中の絵のようにＣＧを生成する。ＴＣ１においては呼気入力が開始されしばらくたっているが、まだ呼気の積算量がＢｇｅｎ（図５参照）を超えていないため、ＣＧは生成されていない。ＴＣ２の時点でＢｇｅｎを超えたためＣＧがせいせいされる。ただし、Ｂｇｅｎを超えるまでにＴｓｈｏｒｔ（図５参照）以上の時間がかかったため、生成されたＣＧにはゆっくりと上に浮かび上がる振舞いが与えられる。この後ＴＣ３の時点で呼気入力がなくなり、呼気積算量はクリアされる。さらに、ＴＣ４の時点で再び呼気積算量がＢｇｅｎを越え、新たなＣＧが生成される。このときはＢｇｅｎを超えるまでの時間がＴｓｈｏｒｔより短かったため、ＣＧには遠くに飛ぶ振舞いが与えられている。
【００９１】
以上でそれぞれのＣＧオブジェクト生成手段が呼気入力に対してどのようなＣＧを生成するのかの説明を終える。
【００９２】
次に、ＣＧ生成種類切替手段１１１について説明する。ＣＧ生成種類切替手段は、上に説明した複数のＣＧオブジェクト生成手段を切り替えるものである。
【００９３】
なお、呼気の流入中は、その時点で選択されているＣＧオブジェクト生成手段が一連の処理を行っている可能性がある。それを中断しないようにするため、ここで説明するＣＧ生成種類切替手段１１１は、呼気流入中は選択処理をできなくする、という特徴をもっている。
【００９４】
ＣＧオブジェクト生成手段の切替の指示は、例えば、それぞれのＣＧオブジェクト生成手段の選択用に複数のボタンを設けても良いし、ＧＵＩから操作して指定する方法もある。ここではひとつのボタンを用意し、その押下を検知するものとする。切替処理は、ボタンが押されるたびにＡ→Ｂ→Ｃ→Ａ…．の順に次々とＣＧオブジェクト生成手段を切り替えていけばよい。
【００９５】
ＣＧ生成種類切替手段１１１のフローチャートを図６に示す。
【００９６】
はじめに、ステップＳ６０１で、ボタン押下の有無を判定する。ボタン押下がなければ終了する。
【００９７】
ボタン押下があれば、ステップＳ６０２に進み、呼気値１２５が０であるかどうかを判定する。呼気値１２５には直前のフレームにおけるＣＧオブジェクト生成処理によって、直前のフレーム描画時における呼気の測定値が格納されている。もし呼気値１２５が０でなければ、ＣＧオブジェクト生成手段によって一連の呼気を扱うような処理が行われているため、切替処理は行わずに終了する。
【００９８】
呼気値１２５が０であれば、ステップＳ６０３において、切替処理を行う。メモリ１０６中のＣＧ生成種別１２２の現在の値をひとつ進め（現在値がＡならＢへ、ＢならＣへ、ＣならＡへ）、更新して格納する。
【００９９】
以上で、ＣＧ生成種類切替手段１１１の説明を終える。
【０１００】
なお、マウスピース部の位置姿勢は常に計測されており、呼気値も常に計測されているため、操作者がどの位置からどの方向に向けてどの強さで息を吹き込んでいるのかは常に検知できる。これを利用して、空間内に存在するＣＧオブジェクトを吹き飛ばすような操作を追加することも可能である。
【図面の簡単な説明】
【０１０１】
【図１】実施例のシステム構成図
【図２】実施例のフローチャート
【図３】ＣＧオブジェクト生成手段Ａのフローチャート
【図４】ＣＧオブジェクト生成手段Ｂのフローチャート
【図５】ＣＧオブジェクト生成手段Ｃのフローチャート
【図６】ＣＧ生成種類切替手段のフローチャート
【図７】各ＣＧオブジェクト生成手段の動作説明図
【図１】
2005115463.tif 000003
【図２】
2005115463.tif 000004
【図３】
2005115463.tif 000005
【図４】
2005115463.tif 000006
【図５】
2005115463.tif 000007
【図６】
2005115463.tif 000008
【図７】
2005115463.tif 000009