(57)【要約】  本技術は、音像を適切な位置に設定することができるようにする情報処理装置、情報処理方法、並びにプログラムに関する。音像定位により現実空間に存在するよう知覚させる仮想物体の音像の位置と、ユーザの位置とに基づいて、ユーザに対する仮想物体の音源の相対的な位置を算出する算出部と、算出された定位位置に音像を定位させるよう音源の音声信号処理を行う音像定位部と、音像の位置を保持する音像位置保持部とを備え、算出部は、音像の位置を、前記仮想物体が発する音声を切り替えるとき、切り替え後の音声の音像の位置を、切り替え前の音声の音像の位置を引き継いだ位置に設定する場合、音像位置保持部に保持されている音像の位置を参照して、音像の位置を算出する。本技術は、例えば、仮想キャラクタと会話するエンタテインメントを提供する情報処理装置に適用できる。
2019026597.tif 000002
【特許請求の範囲】
【請求項１】
音像定位により現実空間に存在するよう知覚させる仮想物体の音像の位置と、ユーザの位置とに基づいて、前記ユーザに対する前記仮想物体の音源の相対的な位置を算出する算出部と、
前記算出された定位位置に音像を定位させるよう前記音源の音声信号処理を行う音像定位部と、
音像の位置を保持する音像位置保持部と
を備え、
前記算出部は、前記仮想物体が発する音声を切り替えるとき、切り替え後の音声の音像の位置を、切り替え前の音声の音像の位置を引き継いだ位置に設定する場合、前記音像位置保持部に保持されている音像の位置を参照して、前記音像の位置を算出する
情報処理装置。
【請求項２】
前記ユーザの位置は、前記音声の切り替え前後に前記ユーザが移動した移動量であり、前記算出部は、前記仮想物体の音像の位置と、前記移動量とに基づいて、前記音源の位置を算出する
請求項１に記載の情報処理装置。
【請求項３】
前記算出部は、前記仮想物体の音声が切り替わるとき、切り替わる音声の発話を開始する位置を、切り替わる前の音声の発話が行われていた位置を引き継いだ位置に設定する場合、前記音像位置保持部に保持されている音像の位置を参照して、前記音像の位置を算出する
請求項１に記載の情報処理装置。
【請求項４】
前記現実空間に固定された座標上で前記音像の位置を設定する場合、前記音像位置保持部に保持されている前記音像の位置が参照される
請求項１に記載の情報処理装置。
【請求項５】
前記算出部は、
音声再生処理における処理単位であるノードに、前記仮想物体の音像の位置に関する音像位置情報が含まれる場合、前記音像位置情報と、ユーザの位置とに基づいて、前記ユーザに対する前記仮想物体の音源の相対的な位置を算出し、
前記ノードに、他の音像位置情報を参照する指示が含まれている場合、前記音像位置保持部に保持されている音像の位置を参照し、前記音像位置情報を生成し、生成された音像位置情報と、ユーザの位置とに基づいて、前記ユーザに対する前記仮想物体の音源の相対的な位置を算出する
請求項１に記載の情報処理装置。
【請求項６】
処理対処とされている前記ノードが他のノードに遷移するとき、前記他のノードに前記音像位置情報が含まれているか否かが判定される
請求項５に記載の情報処理装置。
【請求項７】
前記音声の切り替わりは、前記ユーザからの指示に応じて異なる処理が行われるときに発生する
請求項３に記載の情報処理装置。
【請求項８】
前記ユーザからの指示に応じて、遷移するノードを変更する
請求項７に記載の情報処理装置。
【請求項９】
前記仮想物体は、仮想キャラクタであり、前記音声は、前記仮想キャラクタのセリフであり、前記切り替わる前の音声と前記切り替わる音声は、前記仮想キャラクタの一連のセリフである
請求項３に記載の情報処理装置。
【請求項１０】
音像定位の音声信号処理を施した音声を出力する複数のスピーカと、
前記複数のスピーカを搭載し、かつ前記ユーザの体に装着可能に構成された筐体を有する
請求項１に記載の情報処理装置。
【請求項１１】
音像定位により現実空間に存在するよう知覚させる仮想物体の音像の位置と、ユーザの位置とに基づいて、前記ユーザに対する前記仮想物体の音源の相対的な位置を算出し、
前記算出された定位位置に音像を定位させるよう前記音源の音声信号処理を行い、
保持されている音像の位置を更新する
ステップを含み、
前記仮想物体が発する音声を切り替えるとき、切り替え後の音声の音像の位置を、切り替え前の音声の音像の位置を引き継いだ位置に設定する場合、前記保持されている音像の位置が参照されて、前記音像の位置が算出される
情報処理方法。
【請求項１２】
コンピュータに、
音像定位により現実空間に存在するよう知覚させる仮想物体の音像の位置と、ユーザの位置とに基づいて、前記ユーザに対する前記仮想物体の音源の相対的な位置を算出し、
前記算出された定位位置に音像を定位させるよう前記音源の音声信号処理を行い、
保持されている音像の位置を更新する
ステップを含み、
前記仮想物体が発する音声を切り替えるとき、切り替え後の音声の音像の位置を、切り替え前の音声の音像の位置を引き継いだ位置に設定する場合、前記保持されている音像の位置が参照されて、前記音像の位置が算出される
処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は情報処理装置、情報処理方法、並びにプログラムに関し、例えば、ＡＲ（Augmented Reality）ゲームなどに適用して好適な情報処理装置、情報処理方法、並びにプログラムに関する。
【背景技術】
【０００２】
情報処理および情報通信技術の発展に伴い、コンピュータが広く普及し、日常生活の支援や娯楽にも積極的に利用されている。最近では、エンタテインメントの分野においてもコンピュータ処理が利用させるようになり、このようなエンタテインメントはオフィスや家庭内など特定の場所で作業するユーザに利用されるだけでなく、移動中のユーザにおいても必要とされる。【０００３】
移動中のエンタテインメントに関し、例えば下記特許文献１では、移動中のユーザの身体のリズムに応じて画面に表示するキャラクタのインタラクションを制御することでユーザの親密感を得て、移動そのものをエンタテインメントとして楽しませる情報処理装置が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３０５２７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１では、表示画面にキャラクタの画像が表示されるため、歩行中や走行中に画面を見ることが困難な場合はエンタテインメントを楽しむことができない。また、エンタテインメントとして楽しませる情報処理装置で、より多くの時間、ユーザを楽しませるようにすることが望まれている。【０００６】
本技術は、このような状況に鑑みてなされたものであり、ユーザを楽しませることができるようにするものである。
【課題を解決するための手段】
【０００７】
本技術の一側面の情報処理装置は、音像定位により現実空間に存在するよう知覚させる仮想物体の音像の位置と、ユーザの位置とに基づいて、前記ユーザに対する前記仮想物体の音源の相対的な位置を算出する算出部と、前記算出された定位位置に音像を定位させるよう前記音源の音声信号処理を行う音像定位部と、音像の位置を保持する音像位置保持部とを備え、前記算出部は、前記音像の位置を、前記仮想物体が発する音声を切り替えるとき、切り替え後の音声の音像の位置を、切り替え前の音声の音像の位置を引き継いだ位置に設定する場合、前記音像位置保持部に保持されている音像の位置を参照して、前記音像の位置を算出する。【０００８】
本技術の一側面の情報処理方法は、音像定位により現実空間に存在するよう知覚させる仮想物体の音像の位置と、ユーザの位置とに基づいて、前記ユーザに対する前記仮想物体の音源の相対的な位置を算出し、前記算出された定位位置に音像を定位させるよう前記音源の音声信号処理を行い、保持されている音像の位置を更新するステップを含み、前記仮想物体が発する音声を切り替えるとき、切り替え後の音声の音像の位置を、切り替え前の音声の音像の位置を引き継いだ位置に設定する場合、前記保持されている音像の位置が参照されて、前記音像の位置が算出される。【０００９】
本技術の一側面のプログラムは、コンピュータに、音像定位により現実空間に存在するよう知覚させる仮想物体の音像の位置と、ユーザの位置とに基づいて、前記ユーザに対する前記仮想物体の音源の相対的な位置を算出し、前記算出された定位位置に音像を定位させるよう前記音源の音声信号処理を行い、保持されている音像の位置を更新するステップを含み、前記仮想物体が発する音声を切り替えるとき、切り替え後の音声の音像の位置を、切り替え前の音声の音像の位置を引き継いだ位置に設定する場合、前記保持されている音像の位置が参照されて、前記音像の位置が算出される処理を実行させる。【００１０】
本技術の一側面の情報処理装置、情報処理方法、並びにプログラムにおいては、音像定位により現実空間に存在するよう知覚させる仮想物体の音像の位置と、ユーザの位置とに基づいて、ユーザに対する仮想物体の音源の相対的な位置が算出され、算出された定位位置に音像を定位させるよう音源の音声信号処理が行われ、保持されている音像の位置が更新される。また音像の位置を、仮想物体が発する音声を切り替えるとき、切り替え後の音声の音像の位置を、切り替え前の音声の音像の位置を引き継いだ位置に設定する場合、保持されている音像の位置が参照されて、音像の位置が算出される。【００１１】
なお、情報処理装置は、独立した装置であっても良いし、１つの装置を構成している内部ブロックであっても良い。【００１２】
また、プログラムは、伝送媒体を介して伝送することにより、または、記録媒体に記録して、提供することができる。
【発明の効果】
【００１３】
本技術の一側面によれば、ユーザを楽しませることができる。【００１４】
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００１５】
【図１】本技術を適用した情報処理装置の概要について説明する図である。
【図２】本技術を適用した情報処理装置の外観構成の一例を示す斜視図である。
【図３】情報処理装置の内部構成の一例を示すブロック図である。
【図４】ユーザの体格データについて説明する図である。
【図５】情報処理装置の動作について説明するためのフローチャートである。
【図６】音像について説明するための図である。
【図７】音像アニメーションについて説明するための図である。
【図８】音像アニメーションについて説明するための図である。
【図９】音像アニメーションについて説明するための図である。
【図１０】音像アニメーションについて説明するための図である。
【図１１】コンテンツについて説明するための図である。
【図１２】ノードの構成について説明するための図である。
【図１３】キーフレームの構成について説明するための図である。
【図１４】キーフレーム間の補間について説明するための図である。
【図１５】音像アニメーションについて説明するための図である。
【図１６】音像アニメーションについて説明するための図である。
【図１７】音声の引き継ぎについて説明するための図である。
【図１８】音声の引き継ぎについて説明するための図である。
【図１９】音声の引き継ぎについて説明するための図である。
【図２０】制御部の構成について説明するための図である。
【図２１】制御部の動作について説明するためのフローチャートである。
【図２２】制御部の動作について説明するためのフローチャートである。
【図２３】記録媒体について説明するための図である。
【発明を実施するための形態】
【００１６】
以下に、本技術を実施するための形態（以下、実施の形態という）について説明する。
【００１７】
＜本開示の一実施の形態による情報処理装置の概要＞
まず、本開示の一実施の形態による情報処理装置の概要について、図１を参照して説明する。図１に示すように、本実施の形態による情報処理装置１は、例えばユーザＡの首に掛けられるネックバンド型の情報処理端末であって、スピーカおよび各種センサ（加速度センサ、ジャイロセンサ、地磁気センサ、絶対位置測位部等）を有する。かかる情報処理装置１は、音声情報を空間的に配置する音像定位技術により、現実空間に仮想キャラクタ２０が本当に存在しているようユーザに知覚させる機能を有する。なお仮想キャラクタ２０は仮想物体の一例である。仮想物体としては、仮想ラジオ、仮想楽器などの物体や、街中の雑音（例えば、車の音、踏切の音、人混みの雑話音など）を発する物体などでも良い。
【００１８】
そこで、本実施の形態による情報処理装置１は、ユーザの状態と仮想キャラクタの情報に基づいて、仮想キャラクタを知覚させる音を定位させる相対的な３次元位置を適切に算出し、現実空間における仮想物体の存在感をよりリアルに提示することを可能とする。具体的には、例えば情報処理装置１は、ユーザＡの身長や状態（立っている、座っている等）と仮想キャラクの身長情報に基づいて、仮想キャラクタの声を定位させる相対的な高さを算出し、音像定位することで、仮想キャラクタの大きさをユーザに実感させることができる。
【００１９】
また、情報処理装置１は、ユーザＡの状態や動きに応じて仮想キャラクタの音を変化させることで、仮想キャラクタの動きにリアリティを持たせることができる。この際、情報処理装置１は、仮想キャラクタの声の音は仮想キャラクタの口元（頭部）に定位させ、仮想キャラクタの足音は仮想キャラクタの足元に定位する等、音の種別に基づいて対応する仮想キャラクタの部位に定位させるよう制御する。
【００２０】
以上、本実施の形態による情報処理装置１の概要について説明した。続いて、本実施の形態による情報処理装置１の構成について図２および図３を参照して説明する。
【００２１】
＜情報処理装置の外観の構成＞
図２は、本実施の形態による情報処理装置１の外観構成の一例を示す斜視図である。情報処理装置１は、いわゆるウェアラブル端末である。図２に示すように、ネックバンド型の情報処理装置１は、首の両側から後ろ側（背中側）にかけて半周回するような形状の装着ユニット（装着可能に構成された筐体）を有し、ユーザの首にかけられることでユーザに装着される。図２では、装着ユニットをユーザが装着した状態における斜視図を示す。
【００２２】
なお、本明細書では、上下左右前後といった方向を示す言葉を用いるが、これらの方向はユーザの直立姿勢における、ユーザの体の中心（例えば鳩尾の位置）からみた方向を示すものとする。例えば、「右」とはユーザの右半身側の方向を示し、「左」とはユーザの左半身側の方向を示し、「上」とはユーザの頭側の方向を示し、「下」とはユーザの足側の方向を示すものとする。また、「前」とはユーザの体が向く方向を示し、「後」とはユーザの背中側の方向を示すものとする。
【００２３】
図２に示すように、装着ユニットは、ユーザの首に密着して装着されてもよいし、離間して装着されてもよい。なお首かけ型の装着ユニットの他の形状としては、例えば首下げ紐によりユーザに装着されるペンダント型や、頭にかけるヘッドバンドの代わりに首の後ろ側を通るネックバンドを有するヘッドセット型が考えられる。
【００２４】
また、装着ユニットの使用形態は、人体に直接的に装着されて使用される形態であってもよい。直接的に装着されて使用される形態とは、装着ユニットと人体との間に何らの物体も存在しない状態で使用される形態を指す。例えば、図２に示す装着ユニットがユーザの首の肌に接するように装着される場合は本形態に該当する。他にも、頭部に直接的に装着されるヘッドセット型やメガネ型等の多様な形態が考えられる。
【００２５】
若しくは、装着ユニットの使用形態は、人体に間接的に装着されて使用される形態であってもよい。間接的に装着されて使用される形態とは、装着ユニットと人体との間に何らかの物体が存在する状態で使用される形態を指す。例えば、図２に示した装着ユニットが、シャツの襟の下に隠れるように装着される等、服の上からユーザに接するように装着される場合は、本形態に該当する。他にも、首下げ紐によりユーザに装着されるペンダント型や、衣服に留め具等で留められるブローチ型等の多様な形態が考えられる。
【００２６】
また、情報処理装置１は、図２に示すように、複数のマイクロフォン１２（１２Ａ、１２Ｂ）、カメラ１３（１３Ａ、１３Ｂ）、スピーカ１５（１５Ａ、１５Ｂ）を有している。マイクロフォン１２は、ユーザ音声又は周囲の環境音等の音声データを取得する。カメラ１３は、周囲の様子を撮像し撮像データを取得する。また、スピーカ１５は、音声データの再生を行う。特に本実施の形態によるスピーカ１５は、現実空間に実際に存在しているかのようにユーザに知覚させる仮想キャラクタの音像定位処理された音声信号を再生する。
【００２７】
このように、情報処理装置１は、音像定位処理された音声信号を再生する複数のスピーカが搭載され、ユーザの体の一部に装着可能に構成された筐体を、少なくとも有する構成とされている。
【００２８】
なお図２では、情報処理装置１にマイクロフォン１２、カメラ１３、およびスピーカ１５がそれぞれ２つ設けられる構成を示したが、本実施の形態はこれに限定されない。例えば、情報処理装置１は、マイクロフォン１２およびカメラ１３をそれぞれ１つ有していてもよいし、マイクロフォン１２、カメラ１３、およびスピーカ１５をそれぞれ３つ以上有していてもよい。
【００２９】
＜情報処理装置の内部構成＞
続いて、本実施の形態による情報処理装置１の内部構成について図３を参照して説明する。図３は、本実施の形態による情報処理装置１の内部構成の一例を示すブロック図である。図３に示すように、情報処理装置１は、制御部１０、通信部１１、マイクロフォン１２、カメラ１３、９軸センサ１４、スピーカ１５、位置測位部１６、および記憶部１７を有する。
【００３０】
制御部１０は、演算処理装置および制御装置として機能し、各種プログラムに従って情報処理装置１内の動作全般を制御する。制御部１０は、例えばＣＰＵ（Central  Processing  Unit）、マイクロプロセッサ等の電子回路によって実現される。また、制御部１０は、使用するプログラムや演算パラメータ等を記憶するＲＯＭ（Read  Only  Memory）、及び適宜変化するパラメータ等を一時記憶するＲＡＭ（Random  Access  Memory）を含んでいてもよい。
【００３１】
また、本実施の形態による制御部１０は、図３に示すように、状態・行動検出部１０ａ、仮想キャラクタ行動決定部１０ｂ、シナリオ更新部１０ｃ、相対位置算出部１０ｄ、音像定位部１０ｅ、音声出力制御部１０ｆ、および再生履歴・フィードバック記憶制御部１０ｇとして機能する。
【００３２】
状態・行動検出部１０ａは、ユーザの状態の検出、また、検出した状態に基づく行動の認識を行い、検出した状態や認識した行動を仮想キャラクタ行動決定部１０ｂに出力する。具体的には、状態・行動検出部１０ａは、位置情報、移動速度、向き、耳（または頭部）の高さといった情報を、ユーザの状態に関する情報として取得する。ユーザ状態は、検出したタイミングで一意に特定可能であって、各種センサから数値として算出・取得できる情報である。
【００３３】
例えば位置情報は、位置測位部１６から取得される。また、移動速度は、位置測位部１６、９軸センサ１４に含まれる加速度センサ、またはカメラ１３等から取得される。向きは、９軸センサ１４に含まれるジャイロセンサ、加速度センサ、および地磁気センサ、若しくはカメラ１３により取得される。耳（または頭部）の高さは、ユーザの体格データ、加速度センサ、およびジャイロセンサから取得される。また、移動速度および向きは、カメラ１３により継続的に周囲を撮像した映像における特徴点の変化をベースに動きを算出するSLAM（Simultaneous Localization and Mapping）を用いて取得してもよい。
【００３４】
また、耳（または頭部）の高さは、ユーザの体格データに基づいて算出され得る。ユーザの体格データとしては、例えば図４左に示すように、身長Ｈ１、座高Ｈ２、および耳から頭頂までの距離Ｈ３が設定され、記憶部１７に記憶される。状態・行動検出部１０ａは、例えば以下のように耳の高さを算出する。なお『Ｅ１（頭の傾き）』は、図４右に示すように、上半身の傾きとして加速度センサやジャイロセンサ等により検出され得る。
【００３５】
（式１）  ユーザが立っている場合：
耳の高さ＝身長−座高＋（座高−耳から頭頂までの距離）×Ｅ１（頭の傾き）
【００３６】
（式２）  ユーザが座っている／寝転んでいる場合：
耳の高さ＝（座高−耳から頭頂までの距離）×Ｅ１（頭の傾き）
【００３７】
他の計算式により、ユーザの体格データが生成されるようにしても良い。
【００３８】
状態・行動検出部１０ａは、前後の状態を参照することでユーザ行動を認識することも可能である。ユーザ行動としては、例えば「立ち止まっている」、「歩いている」、「走っている」、「座っている」、「寝転んでいる」、「車に乗っている」、「自転車を漕いでいる」、「キャラクタの方を向いている」等が想定される。状態・行動検出部１０ａは、９軸センサ１４（加速度センサ、ジャイロセンサ、地磁気センサ）により検出された情報や、位置測位部１６により検出された位置情報に基づいて、所定の行動認識エンジンを用いてユーザ行動を認識することも可能である。
【００３９】
仮想キャラクタ行動決定部１０ｂは、状態・行動検出部１０ａにより認識されたユーザ行動に応じて、仮想キャラクタ２０の現実空間における仮想的な行動を決定し（またはシナリオの選択も含む）、決定した行動に対応する音コンテンツをシナリオから選択する。
【００４０】
例えば仮想キャラクタ行動決定部１０ｂは、ユーザが歩いている時は仮想キャラクタ２０も歩かせ、ユーザが走っている時は仮想キャラクタ２０もユーザの後を追いかけるよう走らせる等、ユーザと同じ行動を仮想キャラクタに取らせることで、仮想キャラクタの存在感を提示することができる。
【００４１】
また、仮想キャラクタ行動決定部１０ｂは、仮想キャラクタの行動が決定すると、コンテンツのシナリオとして予め記憶している音源リスト（音コンテンツ）の中で、仮想キャラクタの行動に対応する音源を選択する。この際、再生回数に制限がある音源については、仮想キャラクタ行動決定部１０ｂは再生ログに基づいて再生可否を判断する。また、仮想キャラクタ行動決定部１０ｂは、仮想キャラクタの行動に対応する音源であって、かつユーザの嗜好に合う音源（好きな仮想キャラクターの音源等）や、現在地（場所）に紐付けられた特定の仮想キャラクタの音源を選択してもよい。
【００４２】
例えば仮想キャラクタ行動決定部１０ｂは、決定された仮想キャラクタの行動が立ち止まっている場合は声の音コンテンツ（例えばセリフや呼吸）を選択し、歩いている場合は声の音コンテンツと足音の音コンテンツを選択する。また、仮想キャラクタ行動決定部１０ｂは、決定された仮想キャラクタの行動が走っている場合は声の音コンテンツとして息切れの音などを選択する。このように、仮想キャラクタの行動に応じて、音コンテンツを選択し、行動に応じた鳴らし分けを実行する（すなわち、行動に対応しない音コンテンツは選択せず、再生しない）。
【００４３】
シナリオ更新部１０ｃは、仮想キャラクタ行動決定部１０ｂにより決定された仮想キャラクタの行動に対応する音コンテンツがシナリオから選択されることで、シナリオが進むため、シナリオの更新を行う。当該シナリオは、例えば記憶部１７に記憶されている。
【００４４】
相対位置算出部１０ｄは、仮想キャラクタ行動決定部１０ｂにより選択された仮想キャラクタの音源（音コンテンツ）を定位する相対的な３次元位置（ｘｙ座標位置および高さ）を算出する。具体的には、まず相対位置算出部１０ｄは、音源の種別に対応する仮想キャラクタの部位の位置を、仮想キャラクタ行動決定部１０ｂにより決定された仮想キャラクタの行動を参照して設定する。相対位置算出部１０ｄは、算出した音コンテンツ毎の音像定位位置（３次元位置）を、音像定位部１０ｅに出力する。
【００４５】
音像定位部１０ｅは、相対位置算出部１０ｄにより算出された音コンテンツ毎の音像定位位置に、仮想キャラクタ行動決定部１０ｂにより選択された対応する音コンテンツ（音源）を定位させるよう、音コンテンツの音声信号処理を行う。
【００４６】
音声出力制御部１０ｆは、音像定位部１０ｅにより処理された音声信号をスピーカ１５で再生するよう制御する。これにより、本実施の形態による情報処理装置１は、ユーザの状態・行動に応じた仮想キャラクタの動きに対応する音コンテンツを、ユーザに対して適切な位置、距離、高さで音像定位し、仮想キャラクタの動きや大きさのリアリティを提示し、現実空間における仮想キャラクタの存在感を増すことができる。
【００４７】
再生履歴・フィードバック記憶制御部１０ｇは、音声出力制御部１０ｆで音声出力された音源（音コンテンツ）を履歴（再生ログ）として記憶部１７に記憶するよう制御する。また、再生履歴・フィードバック記憶制御部１０ｇは、音声出力制御部１０ｆで音声出力された際に、ユーザが声の方向に振り向いたり、立ち止まって話を聞いたりといったユーザの反応をフィードバックとして記憶部１７に記憶するよう制御する。これにより制御部１０はユーザ嗜好を学習することが可能となり、上述した仮想キャラクタ行動決定部１０ｂにおいてユーザ嗜好に応じた音コンテンツを選択することができる。
【００４８】
通信部１１は、有線／無線により他の装置との間でデータの送受信を行うための通信モジュールである。通信部１１は、例えば有線ＬＡＮ（Local Area Network）、無線ＬＡＮ、Ｗｉ−Ｆｉ（Wireless Fidelity、登録商標）、赤外線通信、Bluetooth（登録商標）、近距離／非接触通信等の方式で、外部機器と直接、またはネットワークアクセスポイントを介して無線通信する。
【００４９】
例えば、上述した制御部１０の各機能がスマートフォン又はクラウド上のサーバ等の他の装置に含まれる場合、通信部１１は、マイクロフォン１２、カメラ１３、および９軸センサ１４により取得されたデータを送信してもよい。この場合、他の装置により、仮想キャラクタの行動決定や、音コンテンツの選択、音像定位位置の算出、音像定位処理等が行われる。他にも、例えばマイクロフォン１２、カメラ１３、または９軸センサ１４が別箇の装置に設けられる場合には、通信部１１は、それらにより取得されたデータを受信して制御部１０に出力してもよい。また、通信部１１は、制御部１０により選択される音コンテンツを、クラウド上のサーバ等の他の装置から受信してもよい。
【００５０】
マイクロフォン１２は、ユーザの音声や周囲の環境を収音し、音声データとして制御部１０に出力する。
【００５１】
カメラ１３は、撮像レンズ、絞り、ズームレンズ、及びフォーカスレンズ等により構成されるレンズ系、レンズ系に対してフォーカス動作やズーム動作を行わせる駆動系、レンズ系で得られる撮像光を光電変換して撮像信号を生成する固体撮像素子アレイ等を有する。固体撮像素子アレイは、例えばＣＣＤ（Charge Coupled Device）センサアレイや、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサアレイにより実現されてもよい。
【００５２】
例えば、カメラ１３は、情報処理装置１（装着ユニット）がユーザに装着された状態で、ユーザの前方を撮像可能に設けられてもよい。この場合、カメラ１３は、例えばユーザの動きに応じた周囲の景色の動きを撮像することが可能となる。また、カメラ１３は、情報処理装置１がユーザに装着された状態で、ユーザの顔を撮像可能に設けられてもよい。この場合、情報処理装置１は、撮像画像からユーザの耳の位置や表情を特定することが可能となる。また、カメラ１３は、デジタル信号とされた撮像画像のデータを制御部１０へ出力する。
【００５３】
９軸センサ１４は、３軸ジャイロセンサ（角速度（回転速度）の検出）、３軸加速度センサ（Ｇセンサとも称す。移動時の加速度の検出）、および３軸地磁気センサ（コンパス、絶対方向（方位）の検出）を含む。９軸センサ１４は、情報処理装置１を装着したユーザの状態または周囲の状態をセンシングする機能を有する。なお９軸センサ１４は、センサ部の一例であって、本実施の形態はこれに限定されず、例えば速度センサまたは振動センサ等をさらに用いてもよいし、加速度センサ、ジャイロセンサ、および地磁気センサのうち少なくともいずれかを用いてもよい。
【００５４】
また、センサ部は、情報処理装置１（装着ユニット）とは別の装置に設けられていてもよいし、複数の装置に分散して設けられていてもよい。例えば、加速度センサ、ジャイロセンサ、および地磁気センサが頭部に装着されたデバイス（例えばイヤホン）に設けられ、速度センサや振動センサがスマートフォンに設けられてもよい。９軸センサ１４は、センシング結果を示す情報を制御部１０へ出力する。
【００５５】
スピーカ１５は、音声出力制御部１０ｆの制御に従って、音像定位部１０ｅにより処理された音声信号を再生する。また、スピーカ１５は、任意の位置／方向の複数の音源をステレオ音声に変換して出力することも可能である。
【００５６】
位置測位部１６は、外部からの取得信号に基づいて情報処理装置１の現在位置を検知する機能を有する。具体的には、例えば位置測位部１６は、ＧＰＳ（Global Positioning System）測位部により実現され、ＧＰＳ衛星からの電波を受信して、情報処理装置１が存在している位置を検知し、検知した位置情報を制御部１０に出力する。また、情報処理装置１は、ＧＰＳの他、例えばＷｉ−Ｆｉ（登録商標）、Bluetooth（登録商標）、携帯電話・ＰＨＳ・スマートフォン等との送受信、または近距離通信等により位置を検知するものであってもよい。
【００５７】
記憶部１７は、上述した制御部１０が各機能を実行するためのプログラムやパラメータを格納する。また、本実施の形態による記憶部１７は、シナリオ（各種音コンテンツ）、仮想キャラクタの設定情報（形状、身長等）、ユーザ情報（氏名、年齢、自宅、職業、職場、体格データ、趣味・嗜好等）を格納する。なお記憶部１７に格納される情報の少なくとも一部は、クラウド上のサーバ等の別装置に格納されていてもよい。
【００５８】
以上、本実施の形態による情報処理装置１の構成について具体的に説明した。
【００５９】
＜情報処理装置の動作＞
続いて、本実施の形態による情報処理装置１の音声処理について図５を参照して説明する。図５は、本実施の形態による音声処理を示すフローチャートである。
【００６０】
図５に示すように、まず、ステップＳ１０１において、情報処理装置１の状態・行動検出部１０ａは、各種センサ（マイクロフォン１２、カメラ１３、９軸センサ１４、または位置測位部１６）により検出された情報に基づいて、ユーザ状態および行動を検出する。
【００６１】
ステップＳ１０２において、仮想キャラクタ行動決定部１０ｂは、検出されたユーザの状態、行動に応じて、再生する仮想キャラクタの行動を決定する。例えば仮想キャラクタ行動決定部１０ｂは、検出されたユーザの行動と同じ行動（ユーザが歩いていれば一緒に歩く、走っていれば一緒に走る、座っていれば一緒に座る、寝ていれば一緒に寝る等）に決定する。
【００６２】
ステップＳ１０３において、仮想キャラクタ行動決定部１０ｂは、決定した仮想キャラクタの行動に対応する音源（音コンテンツ）をシナリオから選択する。
【００６３】
ステップＳ１０４において、相対位置算出部１０ｄは、選択された音源の相対位置（３次元位置）を、検出されたユーザ状態、ユーザ行動、予め登録されたユーザの身長等の体格データ、決定された仮想キャラクタの行動、および予め登録された仮想キャラクタの身長等の設定情報に基づいて算出する。
【００６４】
ステップＳ１０５において、シナリオ更新部１０ｃは、決定された仮想キャラクタの行動や選択された音コンテンツに応じてシナリオを更新する（すなわち、次のイベントに進める）。
【００６５】
ステップＳ１０６において、音像定位部１０ｅは、算出された音像の相対位置に当該音像を定位させるよう、対応の音コンテンツに対して音像定位処理を行う。
【００６６】
ステップＳ１０７において、音声出力制御部１０ｆは、音像定位処理された音声信号をスピーカ１５から再生するよう制御する。
【００６７】
ステップＳ１０８において、再生履歴・フィードバック記憶制御部１０ｇにより、再生された（すなわち音声出力された）音コンテンツの履歴、および当該音コンテンツに対するユーザのフィードバックを、記憶部１７に記憶する。
【００６８】
ステップＳ１０９において、シナリオのイベントが終了するまで上記Ｓ１０３〜Ｓ１２４が繰り返される。例えば１ゲームが終了するとシナリオが終了する。
【００６９】
上述したように、本開示の実施の形態による情報処理システムでは、ユーザの状態と仮想キャラクタの情報に基づいて、仮想キャラクタ（仮想物体の一例）を知覚させる音を定位させる相対的な３次元位置を適切に算出し、現実空間における仮想キャラクタの存在感をよりリアルに提示することを可能とする。
【００７０】
また、本実施の形態による情報処理装置１は、スピーカ１５が設けられたヘッドホン（またはイヤホン、アイウェア等）と、主に制御部１０の機能を有するモバイル端末（スマートフォン等）を含む情報処理システムにより実現されていてもよい。この際、モバイル端末は、音像定位処理した音声信号をヘッドホンに送信して再生させる。また、スピーカ１５は、ユーザに装着される装置に搭載される場合に限定されず、例えばユーザの周囲に設置された環境スピーカにより実現されてもよく、この場合環境スピーカは、ユーザの周囲の任意の位置に音像定位することが可能である。
【００７１】
次に、上記した処理が実行されることで、発せられる音声について、説明を加える。まず、図６を参照し、ｘｙ座標位置および高さを含む３次元位置の一例について説明する。
【００７２】
図６は、本実施の形態による仮想キャラクタ２０の行動および身長とユーザの状態に応じた音像定位の一例について説明する図である。ここでは、例えばユーザＡが学校や勤務先から自宅近くの駅に帰ってきて自宅に向かって歩いている場合に仮想キャラクタ２０がユーザＡを見つけて声を掛け、一緒に帰るといったシナリオを想定する。
【００７３】
仮想キャラクタ行動決定部１０ｂは、状態・行動検出部１０ａにより、ユーザＡが自宅近くの最寄駅に到着し、改札を出て歩き出したことが検出されたことをトリガとしてイベント（音コンテンツの提供）を開始する。
【００７４】
まずは仮想キャラクタ２０が、図６に示すように、歩いているユーザＡを見つけて声を掛けるといったイベントが行われる。具体的には、相対位置算出部１０ｄは、図６上に示すように、最初に再生する声の音コンテンツＶ１（「あ！」）の音源のｘｙ座標位置としてユーザＡの数メートル後方であってユーザの耳に対して角度Ｆ１の定位方向を算出する。
【００７５】
次いで相対位置算出部１０ｄは、ユーザＡを追いかける足音の音コンテンツＶ２の音源のｘｙ座標位置としてユーザＡに徐々に近付くよう算出する（ユーザの耳に対して角度Ｆ２の定位方向）。そして相対位置算出部１０ｄは、声の音コンテンツＶ３（「おかえりなさい！」）の音源のｘｙ座標位置としてユーザＡのすぐ後ろの位置であってユーザの耳に対して角度Ｆ３の定位方向を算出する。
【００７６】
このように仮想キャラクタ２０が実際に現実空間に存在して行動していると想定した場合に違和感の無いよう、仮想キャラクタ２０の行動とセリフに合わせて音像定位位置（ユーザに対する定位方向および距離）を算出することで、仮想キャラクタ２０の動きをよりリアルに感じさせることができる。
【００７７】
また、相対位置算出部１０ｄは、音コンテンツの種別に対応する仮想キャラクタ２０の部位に応じて音像定位位置の高さを算出する。例えばユーザの耳の高さが仮想キャラクタ２０の頭部より高い場合、図６下に示すように、仮想キャラクタ２０の声の音コンテンツＶ１、Ｖ３の音源の高さはユーザの耳の高さより下になる（ユーザの耳に対して角度Ｇ１下方）。
【００７８】
また、仮想キャラクタ２０の足音の音コンテンツＶ２の音源は仮想キャラクタ２０の足元であるため、声の音源よりも下になる（ユーザの耳に対して角度Ｇ２下方）。このように仮想キャラクタ２０が実際に現実空間に存在していると想定した場合に仮想キャラクタ２０の状態（立っている、座っている等）と大きさ（身長）を考慮して音像定位位置の高さを算出することで、仮想キャラクタ２０の存在感をよりリアルに感じさせることができる。
【００７９】
このように、ユーザに提供される音が動くことで、あたかも、そこに仮想キャラクタ２０が存在しているような動作を行い、その動作がユーザに伝わるような音が、ユーザに提供される。ここでは、このような音の移動、換言すれば、音によるアニメーションを、音像アニメーションと適宜記載する。
【００８０】
音像アニメーションは、上記したように、音像の位置に動き（アニメ−ション）を与えることで、音により、ユーザに仮想キャラクタ２０の存在を認識させるための表現であり、その実現手段としては、キーフレームアニメーションなどと称される技術を適用することができる。
【００８１】
音像アニメーションにより、図６に示したように、ユーザの後方（角度Ｆ１）から、徐々に仮想キャラクタ２０が近づいてきて、角度Ｆ３のところで、「お帰りなさい」というセリフが発せられるという一連のアニメーションが、ユーザに提供される。
【００８２】
以下に音像アニメーションについて説明を加えるが、以下の説明においては、ｘｙ座標に関してのアニメーションについて説明を加え、高さ方向に関するアニメーションについては説明を省略するが、ｘｙ座標と同様に高さ方向に関しても処理することができる。
【００８３】
図７を参照し、音像アニメーションについてさらに説明を加える。図７以降の説明においては、ユーザＡの正面を角度０度とし、ユーザＡの左側をマイナス側とし、ユーザＡの右側をプラス側として説明を続ける。
【００８４】
時刻t＝０において、仮想キャラクタ２０は、−４５度、距離１ｍの所に位置し、所定の音（セリフなど）を発している。時刻t＝０から時刻t＝３において、仮想キャラクタ２０は、円弧を描くように、ユーザＡの正面に移動する。時刻t＝３において、仮想キャラクタ２０は、０度、距離１ｍの所に位置し、所定の音（セリフなど）を発している。
【００８５】
時刻t＝３から時刻t＝５において、仮想キャラクタ２０は、ユーザＡの右側に移動する。時刻t＝５において、仮想キャラクタ２０は、４５度、距離１．５ｍの所に位置し、所定の音（セリフなど）を発している。
【００８６】
このような音像アニメーションがユーザＡに提供される場合、各時刻ｔにおける仮想キャラクタ２０の位置に関する情報が、キーフレームとして記述されている。キーフレームとは、ここでは、仮想キャラクタ２０の位置に関する情報（音像位置情報）であるとして説明を続ける。
【００８７】
すなわち、図７に示したように、キーフレーム［０］＝｛ｔ＝０，−４５度，距離１ｍ｝、キーフレーム［１］＝｛ｔ＝３，０度，距離１ｍ｝、キーフレーム［２］＝｛ｔ＝５，＋４５度，距離１．５ｍ｝という情報が設定され、補間処理されることで、図７に例示した音像アニメーションが実行される。
【００８８】
図７に示した音像アニメーションは、セリフＡが発せられるときのアニメーションであるとし、その後、セリフＢが発せられるときについて、図８を参照して説明する。
【００８９】
図８左側に示した図は、図７に示した図と同様であり、セリフＡが発せられるときの音像アニメーションの一例を示している。セリフＡが発せられた後、連続して、または、所定の時間が経過した後、セリフＢが発せられる。セリフＢの開始時点（時刻ｔ＝０）において、キーフレーム［０］＝｛ｔ＝０，＋４５度，距離１．５ｍ｝との情報が処理されることで、ユーザの右４５度、距離１．５ｍに仮想キャラクタ２０が存在し、セリフＢの発話が開始される。
【００９０】
セリフＢの終了時点（時刻ｔ＝１０）において、キーフレーム［１］＝｛ｔ＝１０，＋１３５度，距離３ｍ｝との情報が処理されることで、ユーザの右１３５度、距離３ｍに仮想キャラクタ２０が存在し、セリフＢの発話が終了される。このような音像アニメーションが実行されることで、ユーザＡの右前から、右後ろ側に、仮想キャラクタ２０が移動しつつ、セリフＢを発話している仮想キャラクタ２０を表現することができる。
【００９１】
ところで、ユーザＡが移動していなければ、特に、この場合、頭部が動いていなければ、音像アニメーションを作成した作成者の意図通りに、音像が動き、セリフＡの終了位置からセリフＢの発話が開始され、仮想キャラクタ２０が動いているような感覚を、ユーザＡに与えることができる。ここで、図１、図２を再度参照するに、本技術を適用した情報処理装置１は、ユーザＡの頭部（首）に装着され、ユーザＡとともに移動することで、ユーザＡに、情報処理装置１で、より多くの時間を、一緒に広範囲を探索しながらエンタテイメントを楽しむといったようなことを、実現することができる構成とされている。
【００９２】
よって、情報処理装置１が装着されているときに、ユーザの頭部が動くことが想定され、ユーザの頭部が動くことで、図７や図８を参照して説明した音像アニメーションを、作成者の意図通りに提供できない可能性がある。このことについて、図９、図１０を参照して説明する。
【００９３】
図９の左上図に示したように、セリフＡの終了時に、音像が、ユーザＡに対して、角度Ｆ１０（＋４５度）の位置にある状態から、ユーザＡの頭部が角度Ｆ１１だけ、左方向に動いたときに、セリフＢが開始されたとする。この場合、図９の右上図に示すように、キーフレーム［０］の情報に基づき、ユーザＡの正面を０度として＋４５度の方向に音像が定位し、セリフＢが開始される。
【００９４】
このことを、仮想キャラクタ２０が現実空間（ユーザが実際に居る空間）にいるとして、現実空間における仮想キャラクタ２０の位置について、図９の下図を参照して説明する。なお、以下の説明おいては、仮想キャラクタ２０のユーザに対する位置を、相対位置と記述し、仮想キャラクタ２０の現実空間における位置を絶対位置と記述する。
【００９５】
相対位置の座標系（以下、適宜、相対座標系と記述する）は、ユーザＡの頭部の中心をｘ＝ｙ＝０（以下、中心点と記述する）とし、ユーザＡが正面方向（鼻がある方向）をｙ軸とした座標系であり、ユーザＡの頭部に固定されている座標系であるとして説明を続ける。よって、相対座標系においては、ユーザＡが頭部を動かしても、常に、ユーザＡの正面方向は、角度０度とされている座標系である。
【００９６】
絶対位置の座標系（以下、適宜、絶対座標系と記述する）は、ある時点におけるユーザＡの頭部の中心をｘ＝ｙ＝０（以下、中心点と記述する）とし、そのときのユーザＡの正面方向（鼻がある方向）をｙ軸とした座標系であるが、ユーザＡの頭部に固定されていない座標系で、現実空間に固定された座標系であるとして説明を続ける。よって、絶対座標系においては、ある時点で設定された絶対座標系は、ユーザＡが頭部を動かしても、その移動に合わせて軸方向が変わることなく、現実空間に固定されている座標系である。
【００９７】
図９左下図を参照するに、セリフＡの終了時の仮想キャラクタ２０の絶対位置は、ユーザＡの頭部を中心点としたときに、角度Ｆ１０の方向となる。図９右下図を参照するに、セリフＢの開始時の仮想キャラクタ２０の絶対位置は、セリフＡの終了時の座標系と同一絶対座標系上で、中心点（ｘ＝ｙ＝０）から、角度Ｆ１２の方向となる。
【００９８】
例えば、角度Ｆ１０を＋４５度とし、ユーザの頭部が動いた角度Ｆ１１を７０度とした場合、図９右下図から、絶対座標系における仮想キャラクタ２０の位置（角度Ｆ１２）は、差分の３５度であり、マイナス側であるため、−３５度となる。
【００９９】
この場合、仮想キャラクタ２０は、セリフＡの終了時には、絶対座標系において、角度Ｆ１０（＝４５度）の所に居たが、セリフＢの開始時には、絶対座標系において、角度Ｆ１２（＝−３５度）に居ることになる。よってユーザＡは、仮想キャラクタ２０が、角度Ｆ１０（＝４５度）から角度Ｆ１２（＝−３５度）に瞬間的に移動したように認識する。
【０１００】
さらに、セリフＢの発話時に、音像アニメーションが設定されていた場合、例えば、図８を参照して説明したようなセリフＢに対する音像アニメーションが設定されていた場合、図９の左上図に示すように、相対位置での角度Ｆ１０（絶対位置での角度Ｆ１２）から、キーフレーム［１］で規定されている相対位置まで、仮想キャラクタ２０が移動する音像アニメーションが実行される。
【０１０１】
このように、音像アニメーションの作成者が、ユーザＡの顔の方向にかかわらず、セリフＢは、ユーザＡの右＋４５度の方向から発せられることを意図していた場合、このような処理が行われる。換言すれば、音像アニメーションの作成者は、相対位置で意図した位置に音像が位置するように、プログラムを作成することができる。
【０１０２】
一方で、セリフＡの終了地点から、仮想キャラクタ２０が動くこと無く、セリフＢが発せられるような認識をユーザＡに与えたい場合、換言すれば、現実空間で、仮想キャラクタ２０が固定された（動いていない）状態で、セリフＢが発せられるような認識をユーザＡに与えたい場合、図１０を参照して説明するように、ユーザＡの頭部の動きに追従した処理が行われる。
【０１０３】
図１０の左上図に示したように、セリフＡの終了時に、音像が、ユーザＡに対して、角度Ｆ１０（＋４５度）の位置にある状態から、ユーザＡの頭部が角度Ｆ１１だけ、左方向に動いたときに、セリフＢが開始されたとする。セリフＡの終了時から、セリフＢの開始時までの間（セリフＡからセリフＢへと音声が切り替わる間）、ユーザＡの頭部の移動は検知され、その移動量や方向が検知されている。なお、セリフＡやセリフＢの発話中も、ユーザＡの移動量は検知されている。
【０１０４】
セリフＢの発話開始時には、その時点でのユーザＡの移動量とキーフレーム［０］の情報に基づき、仮想キャラクタ２０の音像の位置が設定される。図１０の右上図を参照するに、ユーザＡが角度Ｆ１１だけ向きを変えた場合、相対位置において、角度Ｆ１３の位置に仮想キャラクタ２０が居るような音像位置の設定が行われる。角度Ｆ１３は、ユーザＡの移動量である角度Ｆ１１を打ち消す角度に、キーフレーム［０］で規定されている角度を加えた値となる。
【０１０５】
図１０の右下図を参照するに、仮想キャラクタ２０は、現実空間（実座標系）においては、角度Ｆ１０の位置に居る。この角度Ｆ１０は、ユーザＡの移動量をキャンセルするための値が、加算された結果、図１０の左下図に示したセリフＡの終了時点の位置と同位置となる。この場合、角度Ｆ１３―角度Ｆ１１＝角度Ｆ１０との関係が成り立つ。
【０１０６】
このように、ユーザＡの移動量を検知し、その移動量をキャンセルする処理を行うことで、仮想キャラクタ２０が、現実空間に固定されているような感覚を、ユーザＡに提供できる。なお、詳細は後述するが、このように、セリフＡの終了位置がセリフＢの開始位置になるようにしたい場合、セリフＢの時刻ｔ＝０におけるキーフレーム［０］は、図１０に示すように、キーフレーム［０］＝｛ｔ＝０，（セリフＡの終了位置）｝と規定される。
【０１０７】
セリフＢの開始時の時刻ｔ＝０後に、キーフレームが設定されていない場合、仮想キャラクタ２０は、セリフＢの開始時の位置で、セリフＢの発話と続ける。
【０１０８】
セリフＢの開始時の時刻ｔ＝０後に、キーフレームが設定されていた場合、換言すれば、セリフＢの発話時に、音像アニメーションが設定されていた場合、例えば、図８を参照して説明したようなセリフＢに対する音像アニメーションと同一の音像アニメーションが設定されていた場合、図１０の左上図に示すように、相対位置での角度Ｆ１３（絶対位置での角度Ｆ１０）から、キーフレーム［１］で規定されている相対位置まで、仮想キャラクタ２０が移動する音像アニメーションが実行される。
【０１０９】
このように、音像アニメーションの作成者が、ユーザＡの顔の方向によらず、仮想キャラクタ２０の現実空間の位置を固定し、セリフＢが発せられることを意図していた場合、このような処理が行われる。換言すれば、音像アニメーションの作成者は、絶対位置で意図した位置に音像が位置するように、プログラムを作成することができる。
【０１１０】
＜コンテンツについて＞
ここで、コンテンツについて説明を加える。図１１は、コンテンツの構成を示す図である。
【０１１１】
コンテンツは、複数のシーンが含まれている。図１１では、説明のため、１シーンのみが含まれているように示しているが、複数のシーンが、シーン毎に用意されている。
【０１１２】
所定の発火条件が満たされたとき、シーンが開始される。シーンは、ユーザの時間を占有する、一連の処理フローである。１シーンには、１以上のノードが含まれる。図１１に示したシーンでは、４つのノードＮ１乃至Ｎ４が含まれている例を示している。ノードは、音声再生処理における最小実行処理単位である。
【０１１３】
発火条件が満たされると、ノードＮ１による処理が開始される。例えば、ノードＮ１は、セリフＡを発する処理を行うノードである。ノードＮ１が実行された後、遷移条件が設定されており、満たされた条件により、ノードＮ２またはノードＮ３に処理は進められる。例えば、遷移条件が、ユーザが右を向いたという遷移条件であり、その条件が満たされた場合、ノードＮ２に遷移し、遷移条件が、ユーザが左を向いたという遷移条件であり、その条件が満たされた場合、ノードＮ３に遷移する。
【０１１４】
例えば、ノードＮ２は、セリフＢを発する処理を行うノードであり、ノードＮ３は、セリフＣを発する処理を行うノードである。この場合、ノードＮ１により、セリフＡが発せられた後、ユーザからの指示待ち（ユーザが遷移条件を満たすまでの待機状態）となり、ユーザからの指示があった場合、その指示に基づき、ノードＮ２またはノードＮ３による処理が実行される。このように、ノードが切り替わるときに、セリフ（音声）の切り替わりが発生する。
【０１１５】
ノードＮ２またはノードＮ３による処理が終了されると、ノードＮ４へと遷移し、ノードＮ４による処理が実行される。このように、ノードを遷移しつつ、シーンが実行される。
【０１１６】
ノードは、内部に実行要素としてエレメントを有し、そのエレメントとしては、例えば、“音声を再生する”、“フラグをセットする”、“プログラムを制御する（終了させるなど）”が用意されている。
【０１１７】
ここでは、音声を再生するエレメントを例に挙げて説明を続ける。
【０１１８】
図１２は、ノードを構成するパラメータなどの設定方法について説明するための図である。ノード（Ｎｏｄｅ）には、パラメータとして、“ｉｄ”、“ｔｙｐｅ”、“element”、および“branch”が設定されている。
【０１１９】
“ｉｄ”は、ノードを識別するために割り振られた識別子であり、データ型として、“string”が設定されている情報である。データ型が“string”である場合、パラメータの型が文字型であることを示している。
【０１２０】
“element”は、“DirectionalSoundElement”や、フラグをセットするエレメントなどが設定され、データ型として、“Element”が設定されている情報である。データ型が“Element”である場合、Elementという名称で定義されたデータ構造であることを示している。“branch”は、遷移情報のリストが記載され、データ型として、“Transition[]”が設定されている情報である。
【０１２１】
この“Transition[]”には、パラメータとして“target id ref”と“condition”が設定されている。“target id ref”は、遷移先のノードのＩＤが記載され、データ型として、“string”が設定されている情報である。“condition”は、遷移条件、例えば、“ユーザが右方向を向く”といった条件が記載され、データ型として“Condition”が設定されている情報である。
【０１２２】
ノードの“element”が、“DirectionalSoundElement”である場合、“DirectionalSoundElement（extends Element）”が参照される。なおここでは、“DirectionalSoundElement”を図示し、説明を加えるが、“DirectionalSoundElement”以外にも、例えば、フラグを操作する“FlagElement”などもあり、ノードの“element”が、“FlagElement”である場合、“FlagElement”が参照される。
【０１２３】
“DirectionalSoundElement”は、音声に関するエレメントであり、“stream id”、“sound id ref”、“keyframes ref”、“stream id ref”といったパラメータが設定される。
【０１２４】
“stream id”は、エレメントのＩＤ（“DirectionalSoundElement”を識別するための識別子）であり、データ型として“string”が設定されている情報である。
【０１２５】
“sound id ref”は、参照する音声データ（音声ファイル）のＩＤであり、データ型として“string”が設定されている情報である。
【０１２６】
“keyframes ref”は、アニメーションキーフレームのＩＤであり、図１３を参照して説明する“Animations”内のキーを表し、データ型として“string”が設定されている情報である。
【０１２７】
“stream id ref”は、別の“DirectionalSoundElement”に指定された“stream id”であり、データ型として“string”が設定されている情報である。
【０１２８】
“DirectionalSoundElement”には、“keyframes ref”、“stream id ref”のどちらか一方、または両方が指定されることが必須とされている。すなわち、“keyframes ref”のみが指定されている場合、“stream id ref”のみが指定されている場合、または、“keyframes ref”と“stream id ref”が指定されている場合の３パターンがある。このパターン毎に、ノードが遷移したときの音像位置の設定の仕方が異なる。
【０１２９】
詳細は、再度後述するが、“keyframes ref”のみが指定されている場合、例えば、図８や図９を参照して説明したように、セリフ開始時の音像の位置は、ユーザの頭部に固定された相対座標において設定される。
【０１３０】
また、“stream id ref”のみが指定されている場合、例えば、図１０を参照して説明したように、セリフ開始時の音像の位置は、現実空間に固定されている絶対座標において設定される。
【０１３１】
また、“keyframes ref”と“stream id ref”が指定されている場合、図１０を参照して説明したように、セリフ開始時の音像の位置は、現実空間に固定されている絶対座標において設定され、その後音像アニメーションが提供される。
【０１３２】
これらの音像の位置については後述するとし、先に、“Animations”について説明を加える。図１３を参照し、キーフレームアニメーションの設定方法について説明する。
【０１３３】
キーフレームアニメーションは、“Animation ID”というパラメータを含む“Animations”で規定され、“Animation ID”は、アニメーションIDをキーとしたkeyframes配列を表し、データ型として“keyframe[]”が設定されている。この“keyframe[]”は、パラメータとして、“time”、“interpolation”、“distance”、“azimuth”、“elevation”、“pos x”、“pos y”、“pos z”が設定されている。
【０１３４】
“time”は、経過時間［ms］を表し、データ型として“number”が設定されている情報である。“interpolation”は、次のKeyFrameへの補間方法を表し、例えば、図１４に示すような方法が設定される。図１４を参照するに、“interpolation”には、“NONE”、“LINEAR”、“EASE IN QUAD”、“EASE OUT QUAD”、“EASE IN OUT QUAD”などが設定される。
【０１３５】
“NONE”は、補間しない場合に設定される。補間しないとは、次のキーフレームの時刻まで、現キーフレームの値を変化させないという設定である。“LINEAR”は、線形補間する場合に設定される。
【０１３６】
“EASE IN QUAD”は、二次関数により、冒頭がスムーズになるように補間するときに設定される。“EASE OUT QUAD”は、二次関数により、終端がスムーズになるように補間するときに設定される。“EASE IN OUT QUAD”は、二次関数により、冒頭と終端がスムーズになるように補間するときに設定される。
【０１３７】
この他にも、“interpolation”には、種々の補間方法が設定されている。
【０１３８】
図１３に示したKeyFrameについての説明に戻り、“distance”、“azimuth”、および“elevation”は、極座標を用いるときに記載される情報である。“distance”は、自身（情報処理装置１）からの距離［m］を表し、データ型として“number”が設定されている情報である。
【０１３９】
“azimuth”は、自身（情報処理装置１）からの相対方位［deg］を表し、正面が０度、右側が＋９０度、左側が−９０度に設定されている座標であり、データ型として“number”が設定されている情報である。“elevation” 耳元からの仰角［deg］を表し、上が正、下が負に設定されている座標であり、データ型として“number”が設定されている情報である。
【０１４０】
“pos x”、“pos y”、“pos z”は、デカルト座標を用いるときに記載される情報である。“pos x”は、自身（情報処理装置１）を０とし、右方を正とした、左右位置［m］を表し、データ型として“number”が設定されている情報である。“pos y”は、自身（情報処理装置１）を０とし、前方を正とした、前後位置［m］を表し、データ型として“number”が設定されている情報である。“pos z”は、自身（情報処理装置１）を０とし、上方を正とした、上下位置［m］を表し、データ型として“number”が設定されている情報である。
【０１４１】
例えば、図１０を再度参照するに、セリフＡの時刻ｔ＝５の所に示したキーフレームは、“time”が“５”、“azimuth”が“＋４５”、“distance”が“１”に設定されている例を示している。なお、上記したように、ここでは、高さ方向などに関しては説明を省略しているだけであり、実際には、高さ方向などに関する情報もキーフレームには記載されている。
【０１４２】
KeyFrameにおいては、“distance”、“azimuth”、“elevation”で示される極座標、または“pos x”、“pos y”、“pos z”で示されるデカルト座標のどちらか一方が、必ず指定されている。
【０１４３】
次に、図７乃至１０を参照して説明したことを含め、“keyframes ref”のみが指定されている場合、“stream id ref”のみが指定されている場合、または、“keyframes ref”と“stream id ref”が指定されている場合の３パターンについて説明を加える。
【０１４４】
＜１再生区間における音像位置について＞
まず、１再生区間における音像位置について説明する。１再生区間とは、例えば、セリフＡが再生される区間であり、１ノードが処理されたときの区間であるとする。
【０１４５】
まず、図１５を参照して、キーフレームで指定される動きについて説明する。図１５に示したグラフの横軸は、時刻ｔを表し、縦軸は、左右方向の角度を表す。時刻ｔ０において、セリフＡの発話が開始される。
【０１４６】
時刻ｔ１に、keyframes［０］が設定されている。このkeyframes［０］より以前の時刻、ここでは、時刻ｔ０から時刻ｔ１までの間は、先頭KeyFrame、この場合、keyframes［０］の値が適用される。図１５にしめした例では、keyframes［０］では角度が０度と設定されている。よって、時刻ｔ０のときの角度を基準として、０度だけ、方向を変化させた位置に、音像が定位するような設定が行われる。
【０１４７】
時刻ｔ２に、keyframes［１］が設定されている。このkeyframes［１］では角度が＋３０度と設定されている。よって、時刻ｔ０のときの角度を基準として、＋３０度だけ、方向を変化させた位置に、音像が定位するような設定が行われる。
【０１４８】
このkeyframes［０］からkeyframes［１］の間は、“interpolation”に基づき、補間される。図１５に示した例において、keyframes［０］からkeyframes［１］の間に設定されている“interpolation”は、“LINEAR”である場合を示している。
【０１４９】
時刻ｔ３に、keyframes［２］が設定されている。このkeyframes［２］では角度が−３０度と設定されている。よって、時刻ｔ０のときの角度を基準として、−３０度だけ、方向を変化させた位置に、音像が定位するような設定が行われる。
【０１５０】
このkeyframes［１］からkeyframes［２］の間は、図１５では、“interpolation”が、“EASE IN QUAD”である場合を示している。
【０１５１】
最終KeyFrame、この場合、keyframes［２］以降の時刻においては、最終KeyFrameの値が適用される。
【０１５２】
このように、キーフレームにより、仮想キャラクタ２０の位置（音像位置）が設定され、このような設定に基づき、音像の位置が動くことで、音像アニメーションが実現される。
【０１５３】
図１６を参照してさらに音像位置について説明を加える。図１６の上図に示したグラフは、指定した動きを表すグラフであり、中図に示したグラフは、姿勢変化の補正量を表すグラフであり、下図に示したグラフは、相対的な動きを表すグラフである。
【０１５４】
図１６に示したグラフの横軸は、時間経過を表し、セリフＡの再生区間を表している。縦軸は、仮想キャラクタ２０の位置、換言すれば、音像が定位する位置を表し、左右方向の角度、上下方向の角度、距離などである。ここでは、左右方向の角度であるとして説明を続ける。
【０１５５】
図１６の上図を参照するに、指定した動きは、セリフＡの再生開始時から、終了時にかけて徐々に＋方向に移動するという動きである。この動きは、キーフレームにより指定されている。
【０１５６】
仮想キャラクタ２０の位置は、キーフレームで設定される位置だけではなく、ユーザの頭部の動きも考慮して、最終的な位置が設定される。図９、図１０を参照して説明したように、情報処理装置１は、自己の移動量（ユーザＡの移動量、主にここでは、頭部の左右方向の移動とする）を検知する。
【０１５７】
図１６の中図は、ユーザＡの姿勢変化の補正量を表すグラフであり、情報処理装置１が、ユーザＡの頭部の動きとして検出した動きの一例を示すグラフである。図１６の中図に示した例では、ユーザＡは、初めに左方向（−方向）を向き、次に、右方向（＋方向）を向き、再度左方向（−方向）を向いたため、その補正量は、初めに＋方向、次に−方向、再度＋方向となっているグラフである。
【０１５８】
仮想キャラクタ２０の位置は、キーフレームで設定されている位置と、ユーザの姿勢変化の補正量（姿勢変化の正負を逆にした値）を加算した位置とされる。よって、セリフＡが再生されている間の仮想キャラクタ２０の位置、この場合、ユーザＡとの相対的な位置（の動き）は、図１６の下図に示したようになる。
【０１５９】
次に、セリフＡが再生され、次のノードに遷移し、セリフＢが再生される場合（セリフＡからセリフＢに切り替えられる場合）を考える。このとき、“keyframes ref”のみが指定されている場合、“stream id ref”のみが指定されている場合、または、“keyframes ref”と“stream id ref”が指定されている場合のそれぞれにおいて、セリフＢの再生が開始されるときの仮想キャラクタ２０の位置や、開始後の位置が異なるため、そのことについて説明を加える。
【０１６０】
＜“keyframes ref”のみが指定されている場合＞
まず、セリフＢの再生を行うときのノードにおいて、“keyframes ref”のみが指定されている場合について説明を加える。
【０１６１】
“keyframes ref”のみが指定されている場合とは、図１２を参照して説明したノードの構成において、ノード（Node）の“element”というパラメータが、“DirectionalSoundElement”であり、“DirectionalSoundElement”の“keyframes ref”というパラメータに、アニメーションキーフレームのIDが記載されているが、“stream id ref”というパラメータは設定されていない場合である。
【０１６２】
図１７は、セリフＡを発話させるノードからセリフＢを発話させるノードに切り替わるとき（音声が切り替わるとき）、セリフＢのノードに“keyframes ref”のみが指定されている場合の、仮想キャラクタ２０のユーザＡとの相対的な動きについて説明するための図である。
【０１６３】
図１７の左図は、図１６の下図と同じであり、セリフＡが生成されている区間における仮想キャラクタ２０の相対的な動きを表したグラフである。セリフＡの終了時ｔＡ１の相対位置を相対位置ＦＡ１とする。図１７の右図は、図１６の上図と同じく、セリフＢが再生されている区間における仮想キャラクタ２０の時間経過（横軸）と指定された動き（縦軸）を表したグラフであり、キーフレームで規定される動きの一例を表している。
【０１６４】
セリフＢの開始時ｔＢ０の相対位置は、時刻ｔＢ１に設定されている最初のキーフレームであるKeyFrame［０］により規定されている位置に設定される。この場合、セリフＢのノードが、“DirectionalSoundElement”を参照し、この“DirectionalSoundElement”の“keyframes ref”というパラメータに、アニメーションキーフレームのIDが記載されているため、このIDのアニメーションキーフレームが参照される。
【０１６５】
アニメーションキーフレームについては、図１３を参照して説明したように、極座標またはデカルト座標（以下の説明では、座標と記述する）で規定される仮想キャラクタ２０の位置が記載されている。
【０１６６】
すなわちこの場合、セリフＢの開始時ｔＢ０の相対位置は、アニメーションキーフレームで規定されている座標に設定される。図１７の右図に示したように、時刻ｔＢ０の相対位置は、相対位置ＦＢ０に設定される。
【０１６７】
この場合、セリフＡの終了時の位置ＦＡ１と、セリフＢの開始時の位置ＦＢ０は、図１７に示したように、異なる場合がある。これは、図９を参照して説明したような場合であり、ユーザＡと仮想キャラクタ２０の相対的な位置関係において、作成者が意図した位置に仮想キャラクタ２０が居るようにすることができる。
【０１６８】
このように、“keyframes ref”という仮想キャラクタ２０の音像の位置を設定するための音像位置情報が、ノードに含まれている場合、そのノードに含まれている音像位置情報に基づいて、音像の位置を設定することができる。また、このような設定ができるようにすることで、作成者の意図した位置に、仮想キャラクタ２０の音像を設定することができる。
【０１６９】
このように、セリフＢの再生を行うときのノードにおいて、“keyframes ref”のみが指定されている場合、ユーザＡと仮想キャラクタ２０との相対位置が、作成者の意図通りになるように仮想キャラクタ２０の位置を設定することができる。また、セリフＢの再生後は、キーフレームに基づき、音像アニメーションが、ユーザＡに提供される。
【０１７０】
＜“stream id ref”のみが指定されている場合＞
次にセリフＢの再生を行うときのノードにおいて、“stream id ref”のみが指定されている場合について説明を加える。
【０１７１】
“stream id ref”のみが指定されている場合とは、図１２を参照して説明したノードの構成において、ノード（Node）の“element”というパラメータが、“DirectionalSoundElement”であり、“DirectionalSoundElement”の“stream id ref”というパラメータに、別の“DirectionalSoundElement”に指定されたstream iDが記載されているが、“keyframes ref”というパラメータは設定されていない場合である。
【０１７２】
図１８は、セリフＡを発話させるノードからセリフＢを発話させるノードに切り替わるとき、セリフＢのノードに“stream id ref”のみが指定されている場合の、ユーザＡに対する仮想キャラクタ２０の相対的な動きについて説明するための図である。図１８の右図は、図１６の上図と同じく、セリフＢが再生されている区間における仮想キャラクタ２０の時間経過（横軸）と指定された動き（縦軸）を表したグラフであり、キーフレームで規定される動きの一例を表している。
【０１７３】
図１８の左図は、図１７の左図と同じであり、セリフＡが生成されている区間における仮想キャラクタ２０の相対的な動きを表したグラフである。セリフＡの終了時ｔＡ１の相対位置を相対位置ＦＡ１とする。
【０１７４】
セリフＢの開始時ｔＢ０’の相対位置は、“DirectionalSoundElement”の“stream id ref”というパラメータに、別の“DirectionalSoundElement”に指定されたstream iDを有する“DirectionalSoundElement”が参照される。そして、その“DirectionalSoundElement”内の“keyframes”で指定されている位置と、ユーザＡの移動量（姿勢変化）とから、セリフＢの開始時の位置ＦＢ０’が設定される。
【０１７５】
例えば、別の“DirectionalSoundElement”に指定されたstream iDが、セリフＡを参照するＩＤであった場合、セリフＢの開始時点での、ユーザＡから見た仮想キャラクタ２０の位置は、「セリフＡで指定した動き（＝keyframe）」と、「セリフＡの姿勢変化」の結果得られる位置が、セリフＢの開始時ｔＢ０’の位置ＦＢ０’として設定される。
【０１７６】
より具体的には、「セリフＡで指定した動き（＝keyframe）」と、「セリフＡの姿勢変化」の結果得られる「セリフＡ中のユーザＡから見た相対的な音源位置」において、セリフＢが開始した時点での位置を、時刻ｔ＝０の位置とするようなキーフレームが生成され、そのキーフレームに基づき、位置ＦＢ０’が設定される。「セリフＡで指定した動き（＝keyframe）」は、後述するように、保持部に保持させ、その保持されている情報を参照することで、取得することが可能である。
【０１７７】
すなわち、セリフＡの終了時の位置と、セリフＡの終了時からセリフＢの開始時までにユーザＡが動いた量をキャンセルする位置が基づき、セリフＡの終了時の位置が、セリフＢの開始時の位置となるような相対位置が算出される。そして、その算出された位置情報を含むキーフレームが生成される。そして、その生成されたキーフレームに基づき、セリフＢの開始時における位置ＦＢ０’が設定される。
【０１７８】
このような設定がなされることで、セリフＢの開始時ＦＢ０’の仮想キャラクタ２０が位置ＦＢ０’は、セリフＡの終了時ｔＡ１の仮想キャラクタ２０の位置ＦＡ１と、同一位置となる。すなわち、図１０を参照して説明したように、セリフＡの終了時の仮想キャラクタ２０の位置とセリフＢの仮想キャラクタ２０の位置が一致する。
【０１７９】
このように、セリフＢの再生を行うときのノードにおいて、“stream id ref”のみが指定されている場合、ユーザＡと仮想キャラクタ２０との絶対位置が、作成者の意図通りになるように仮想キャラクタ２０の位置を設定することができる。換言すれば、セリフＡからセリフＢに切り替わるようなとき、ユーザＡの移動量にかかわらず、仮想キャラクタ２０が、現実空間で、移動せずに、同一位置からセリフを発するようにすることができる。
【０１８０】
例えば、セリフＡからセリフＢに切り替わるような例として、ユーザからの指示により異なる処理がなされるときがある。例えば、図１１を参照して説明した遷移条件が満たされるか否かの判定処理がなされるときであり、ユーザが右を向いたときにはノードＮ２による処理が実行され、ユーザが左を向いたときにはノードＮ３による処理が実行されるという場合であり、このような場合には、ユーザからの指示（動作）により、異なる処理（例えば、ノードＮ２またはノードＮ３に基づく処理）がなされる。
【０１８１】
このようなときは、ユーザからの指示待ちの時間があり、セリフＡとセリフＢとの間に時間が空いてしまうときがある。このようなときに、セリフＡが発せられた位置と、セリフＢが発せられた位置が異なる場合、ユーザは、仮想キャラクタ２０が急に移動したと感じ、違和感を生じる可能性がある。しかしながら、本実施の形態によれば、セリフＡからセリフＢに切り替わるようなとき、仮想キャラクタ２０が、現実空間で、移動せずに、同一位置からセリフを発するようにすることができるため、ユーザが違和感を生じるようなことを防ぐことが可能となる。
【０１８２】
換言すれば、セリフＡからセリフＢに切り替わるとき、セリフＢの発話が開始される位置を、セリフＡの発話がされた位置を引き継いだ位置に設定することができる。このような設定は、セリフＢの再生を行うときのノードにおいて、“stream id ref”を指定することで可能となる。この“stream id ref”は、他のノードを参照し、そのノードに記載されている仮想キャラクタ２０の位置情報（音像位置情報）を用いて、仮想キャラクタ２０の位置を設定するときに、ノードに含まれる情報であり、このような情報をノードに含ませることで、上記したような処理を実行することが可能となる。
【０１８３】
セリフＢの再生後は、図１８の右図に示したように、仮想キャラクタ２０は、セリフＢの開始位置から動くことなく、セリフＢが再生される。この場合、“keyframes ref”というパラメータは設定されていないため、キーフレームに基づく音像アニメーションは実行されず、音像の位置は変化しない状態で、セリフＢは再生される。
【０１８４】
なお、セリフＢの再生中も、ユーザＡの姿勢変化は検出されており、その姿勢変化に応じて、仮想キャラクタ２０の位置が設定されることで、現実空間では、仮想キャラクタ２０が動いていないような音像アニメーションが実行される。
【０１８５】
さらに、セリフＢの再生中にも、仮想キャラクタ２０が動いているような音像アニメーションを提供したい場合、“keyframes ref”も指定される。
【０１８６】
＜“keyframes ref”と“stream id ref”が指定されている場合＞
次にセリフＢの再生を行うときのノードにおいて、“keyframes ref”と“stream id ref”が指定されている場合について説明を加える。“keyframes ref”と“stream id ref”が指定されていることで、図１０を参照して説明したような音像アニメ−ションが実現される。
【０１８７】
“keyframes ref”と“stream id ref”が指定されている場合、まず、“keyframes ref”が指定されているため、図１２を参照して説明したノードの構成において、ノード（Node）の“element”というパラメータが、“DirectionalSoundElement”であり、“DirectionalSoundElement”の“keyframes ref”というパラメータに、アニメーションキーフレームのIDが記載されている。
【０１８８】
また、“keyframes ref”と“stream id ref”が指定されている場合、“stream id ref”が指定されているため、図１２を参照して説明したノードの構成において、ノード（Node）の“element”というパラメータが、“DirectionalSoundElement”であり、“DirectionalSoundElement”の“stream id ref”というパラメータに、別の“DirectionalSoundElement”に指定されたstream iDが記載されている。
【０１８９】
図１９は、セリフＡを発話させるノードからセリフＢを発話させるノードに切り替わるとき、セリフＢのノードに“keyframes ref”と“stream id ref”が指定されている場合の、ユーザＡに対する仮想キャラクタ２０の相対的な動きについて説明するための図である。
【０１９０】
図１９の左図は、図１７の左図と同じであり、セリフＡが生成されている区間における仮想キャラクタ２０の相対的な動きを表したグラフである。セリフＡの終了時ｔＡ１の相対位置を相対位置ＦＡ１とする。図１９の右図は、図１６の上図と同じく、セリフＢが再生されている区間における仮想キャラクタ２０の時間経過（横軸）と指定された動き（縦軸）を表したグラフであり、キーフレームで規定される動きの一例を表している。
【０１９１】
セリフＢの開始時ｔＢ０’の相対位置は、図１８を参照して説明した場合、すなわち、“stream id ref”のみが指定されている場合と同様の設定が行われることで、設定される。すなわち、“DirectionalSoundElement”の“stream id ref”というパラメータに、別の“DirectionalSoundElement”に指定されたstream iDを有する“DirectionalSoundElement”が参照され、さらに、その“DirectionalSoundElement”内の“keyframes”で指定されている位置と、ユーザＡの移動量（姿勢変化）とから、セリフＢの開始時の位置ＦＢ０”が設定される。
【０１９２】
よって、図１９に示したように、セリフＢの開始時ｔＢ０”の仮想キャラクタ２０の位置ＦＢ０”は、セリフＡの終了時ｔＡ１の仮想キャラクタ２０の位置ＦＡ１と、同一位置となる。
【０１９３】
その後、時刻ｔＢ１”に設定されているkeyframes［０］で設定されている位置と補間方法により、音像アニメーションが実行される。図１７を参照して説明した場合と同様に、セリフＢの時刻ｔＢ１”の相対位置ＦＢ１”は、時刻ｔＢ１”に設定されているキーフレームであるKeyFrame［０］により規定されている位置に設定される。
【０１９４】
この場合、セリフＢのノードが、“DirectionalSoundElement”を参照し、この“DirectionalSoundElement”の“keyframes ref”というパラメータに、アニメーションキーフレームのIDが記載されているため、このIDのアニメーションキーフレームが参照される。
【０１９５】
時刻ｔＢ１”における仮想キャラクタ２０の相対位置は、参照されたアニメーションキーフレームで設定されている座標に設定される。時刻ｔＢ１”以降は、キーフレームで規定されている位置が設定されることで、音像アニメーションが実行される。
【０１９６】
時刻ｔｂ０”の仮想キャラクタ２０の位置ＦＢ０”の設定についてさらに説明を加える。この位置ＦＢ０”の設定は、以下の２パターンある。１つ目のパターンは、keyframes［０］のｔｉｍｅがｔｉｍｅ＝０の場合であり、２つめのパターンは、keyframes［０］のｔｉｍｅがｔｉｍｅ＞０以降である場合である。
【０１９７】
keyframes［０］のｔｉｍｅがｔｉｍｅ＝０の場合、keyframes［０］で指定されていた位置自体が、位置ＦＢ０”に置き換えられる。keyframes［０］で指定されていた位置自体が、位置ＦＢ０”に置き換えられることで、上記したように、セリフＢの開始時ｔＢ０’の仮想キャラクタ２０の位置は、位置ＦＢ０”となる。
【０１９８】
keyframes［０］のｔｉｍｅがｔｉｍｅ＞０以降の場合、セリフＢの開始時ｔＢ０’の仮想キャラクタ２０の位置は、位置ＦＢ０”であるというキーフレームが、既に設定されているキーフレームの冒頭に挿入される。
【０１９９】
すなわち、セリフＢの開始時ｔＢ０’のkeyframes［０］として、仮想キャラクタ２０の位置を位置ＦＢ０”に規定するkeyframes［０］が生成され、既に設定されているキーフレームの冒頭に挿入される。このように、位置ＦＢ０”に規定するkeyframes［０］が生成され、挿入されることで、上記したように、セリフＢの開始時ｔＢ０’の仮想キャラクタ２０の位置は、位置ＦＢ０”となる。
【０２００】
このように、冒頭にキーフレームが挿入された場合、既に設定されているkeyframes［ｎ］は、keyframes［ｎ＋１］に変更される。
【０２０１】
このように、“keyframes ref”と“stream id ref”が指定されている場合、まず、“stream id ref”に基づき、セリフの開始時における仮想キャラクタ２０の位置が設定される。このとき、上記したように、キーフレームの書き換え、または新たなキーフレームが生成される。このキーフレームには、仮想キャラクタ２０の位置だけでなく、“interpolation”で規定される次KeyFrameへの補間方法も設定される。図１９に示した例では、“LINEAR”が設定されていた場合を示している。
【０２０２】
その後、設定されているキーフレームに基づき、音像アニメーションが実行される。
【０２０３】
＜制御部の機能について＞
このような処理を行う情報処理装置１の制御部１０（図３）の機能について説明を加える。
【０２０４】
図２０は、上記した処理を行う情報処理装置１の制御部１０の機能について説明するための図である。制御部１０は、キーフレーム補間部１０１、音像位置保存部１０２、相対位置算出部１０３、姿勢変化量算出部１０４、音像定位サウンドプレイヤ１０５、およびノード情報解析部１０６を備える。
【０２０５】
また、制御部１０は、加速度センサ１２１、ジャイロセンサ１２２、ＧＰＳ１２３、および音声ファイル記憶部１２４からの情報やファイルなどが供給されるように構成されている。また、制御部１０で処理された音声信号は、スピーカ１２５で出力されるように構成されている。
【０２０６】
キーフレーム補間部１０１は、キーフレーム情報（音像位置情報）に基づき、時刻ｔにおける音源位置を算出し、相対位置算出部１０３に供給する。相対位置算出部１０３には、音像位置保持部１０２からの位置情報と、姿勢変化量算出部１０４からの姿勢変化量も供給される。
【０２０７】
音像位置保持部１０２は、“stream id ref”で参照される音像の現在位置の保持と更新を行う。この保持と更新は、図２１、図２２を参照して説明するフローチャートに基づく処理とは独立して、常に行われる。
【０２０８】
姿勢変化量算出部１０４は、加速度センサ１２１、ジャイロセンサ１２２、ＧＰＳ１２３などからの情報に基づき、情報処理装置１の姿勢、例えば傾きを推定し、所定の時刻ｔ＝０を基準とした相対的な姿勢変化量を算出する。加速度センサ１２１、ジャイロセンサ１２２、ＧＰＳ１２３などは、９軸センサ１４や位置測位部１６（いずれも図３）を構成している。
【０２０９】
相対位置算出部１０３は、キーフレーム補間部１０１からの時刻ｔにおける音像位置、音像位置保持部１０２からの音像の現在位置、および姿勢変化量算出部１０４からの情報処理装置１の姿勢情報に基づき、相対的な音源位置を算出し、算出結果を、音像定位サウンドプレイヤ１０５に供給する。
【０２１０】
キーフレーム補間部１０１、相対位置算出部１０３、姿勢変化量算出部１０４は、図３に示した制御部１０の状態・行動検出部１０ａ、相対位置算出部１０ｄ、音像定位部１０ｅを構成している。音像位置保持部１０２は、記憶部１７（図３）とし、記憶部１７に現時点での音像位置を保持し、更新する構成とすることができる。
【０２１１】
音像定位サウンドプレイヤ１０５は、音声ファイル記憶部１２４に記憶されている音声ファイルを読み込み、特定の相対位置から音が鳴っているように聞こえるように、音声信号を加工したり、加工した音声信号の再生を制御したりする。
【０２１２】
音像定位サウンドプレイヤ１０５は、図３の制御部１０の音声出力制御部１０ｆとすることができる。また、音声ファイル記憶部１２４は、記憶部１７（図３）とし、記憶部１７に記憶されている音声ファイルが読み出される構成とすることができる。
【０２１３】
音像定位サウンドプレイヤ１０５による制御により、スピーカ１２５で音声が再生される。スピーカ１２５は、図３における情報処理装置１の構成においては、スピーカ１５に該当する。
【０２１４】
ノード情報解析部１０６は、供給されるノード内の情報を解析し、制御部１０内の各部（この場合、主に音声を処理する部分）を制御する。
【０２１５】
＜制御部の動作について＞
このような構成を有する情報処理装置１（制御部１０）によれば、上記したように、セリフＡやセリフＢを再生することができる。図２１、図２２のフローチャートを参照し。そのような処理を行う図２０に示した制御部１０の動作について説明を加える。
【０２１６】
図２１、図２２に示したフローチャートの処理は、所定のノードの処理が開始されるとき、換言すれば、処理中のノードから次のノードに処理対象が遷移したときに開始される処理である。またここでは、処理対象とされたノードは、音声を再生するノードである場合を例に挙げて説明する。
【０２１７】
ステップＳ３０１において、処理対象とされたノードの“DirectionalSoundElement”に含まれている“sound id ref”というパラメータの値が参照され、その“sound id ref”に基づいた音声ファイルが、音声ファイル記憶部１２４から取得され、音像定位サウンドプレイヤ１０５に供給される。
【０２１８】
ステップＳ３０２において、ノード情報解析部１０６は、処理対象とされたノードの“DirectionalSoundElement”は、“keyframe ref”のみが指定されているノードであるか否かを判定する。
【０２１９】
ステップＳ３０２において、処理対象とされたノードの“DirectionalSoundElement”は、“keyframe ref”のみが指定されているノードであると判定された場合、ステップＳ３０３に処理が進められる。
【０２２０】
ステップＳ３０３において、キーフレーム情報が取得される。このステップＳ３０２からステップＳ３０３の処理の流れは、図１７を参照して説明した流れであり、詳細については既に説明したので、ここではその説明を省略する。
【０２２１】
一方、ステップＳ３０２において、処理対象とされたノードの“DirectionalSoundElement”は、“keyframe ref”のみが指定されているノードではないと判定された場合、ステップＳ３０４に処理は進められる。
【０２２２】
ステップＳ３０４において、ノード情報解析部１０６は、処理対象とされたノードの“DirectionalSoundElement”は、“stream id ref”のみが指定されているノードであるか否かが判定される。ステップＳ３０４において、処理対象とされたノードの“DirectionalSoundElement”は、“stream id ref”のみが指定されているノードであると判定された場合、ステップＳ３０５に処理は進められる。
【０２２３】
ステップＳ３０５において、現時点における参照先の音源の音源位置が取得され、キーフレーム情報が取得される。相対位置算出部１０３は、音源位置保持部１０２から、現時点の音源の音源位置を取得し、キーフレーム補間部１０１からキーフレーム情報を取得する。
【０２２４】
ステップＳ３０６において、相対位置算出部１０３は、参照先音源位置から、キーフレーム情報を生成する。
【０２２５】
このステップＳ３０４からステップＳ３０６の処理の流れは、図１８を参照して説明した流れであり、詳細については既に説明したので、ここではその説明を省略する。
【０２２６】
一方、ステップＳ３０４において、処理対象とされたノードの“DirectionalSoundElement”は、“stream id ref”のみが指定されているノードではないと判定された場合、ステップＳ３０７に処理が進められる。
【０２２７】
ステップＳ３０７に処理が来るのは、“DirectionalSoundElement”は、“keyframe ref”と“stream id ref”が指定されているノードであると判定されたときである。よって、処理は、図１９を参照して説明したように進められる。
【０２２８】
ステップＳ３０７において、キーフレーム情報が取得される。ステップＳ３０７における処理は、ステップＳ３０３における処理と同様に行われ、“DirectionalSoundElement”が、“keyframe ref”を指定しているときに行われる処理である。
【０２２９】
ステップＳ３０８において、現時点における参照先の音源の音源位置が取得され、キーフレーム情報が取得される。ステップＳ３０８における処理は、ステップＳ３０５における処理と同様に行われ、“DirectionalSoundElement”が、“stream id ref”を指定しているときに行われる処理である。
【０２３０】
ステップＳ３０９において、キーフレーム情報が、参照先音源位置が参照されて更新される。キーフレーム情報は、“keyframe ref”を参照して取得されているが、その取得されているキーフレーム情報を、“stream id ref”で参照されている音源位置などにより更新される。
【０２３１】
このステップＳ３０７からステップＳ３０９の処理の流れは、図１９を参照して説明した流れであり、詳細については既に説明したので、ここではその説明を省略する。
【０２３２】
ステップＳ３１０において、姿勢変化量算出部１０４がリセットされる。そして、処理は、ステップＳ３１１（図２２）に進められる。ステップＳ３１１において、音声の再生は終了したか否かが判定される。
【０２３３】
ステップＳ３１１において、音声の再生は終了していないと判定された場合、ステップＳ３１２に処理は進められる。ステップＳ３１２において、キーフレーム補間により、現在時刻における音像位置が算出される。ステップＳ３１３において、姿勢変化量算出部１０４は、前回から今回の間の姿勢変化を姿勢変化量として、前回の姿勢変化量に加算することで、今回の姿勢変化量を算出する。
【０２３４】
ステップＳ３１４において、相対位置算出部１０３は、相対音源位置を算出する。相対位置算出部１０３は、ステップＳ３１２において算出された音源位置と、ステップＳ３１３において算出された姿勢変化量に応じて、仮想キャラクタ２０のユーザＡ（情報処理装置１）との相対位置を算出する。
【０２３５】
ステップＳ３１５において、音像定位サウンドプレイヤ１０８は、相対位置算出部１０３により算出された相対位置を入力する。音像定位サウンドプレイヤ１０８は、入力した相対位置に、ステップＳ３０１で取得された音声ファイル（音声ファイルのうちの一部）に基づく音声を、スピーカ１２５で出力するための制御を行う。
【０２３６】
ステップＳ３１５における処理が終了後、処理は、ステップＳ３１１に戻され、それ以降の処理が繰り返される。ステップＳ３１１において、再生は終了したと判定された場合、図２１、図２２に示したフローチャートの処理は終了される。
【０２３７】
ステップＳ３１１乃至Ｓ３１５の処理が実行されることで、例えば、図１５を参照して説明したように、キーフレームに基づく音像アニメーションの処理が実行される。
【０２３８】
本技術によれば、音像アニメーションをユーザに提供することができるため、換言すれば、仮想キャラクタがユーザの周りを動いているような感覚を、ユーザに与えることができる処理を実行できるため、ユーザに音で提供されるエンタテイメントをより楽しませることができる。
【０２３９】
また、ユーザが情報処理装置１で提供されるエンタテインメントを楽しむことができることで、例えば、情報処理装置１を装着して出かけたり、情報処理装置１から提供される情報を基に街中を探索したりする時間を増やすことが可能となる。
【０２４０】
また、音像アニメーションを提供するとき、仮想キャラクタの位置を、作成者の意図した位置とすることができる。すなわち、上記した実施の形態のように、セリフＡのあとにセリフＢが再生されるとき、ユーザと仮想キャラクタとの相対位置が崩れること無く、セリフＡからセリフＢの再生が行われるようにすることができる。
【０２４１】
また、ユーザと仮想キャラクタの絶対位置（現実空間におけるユーザと仮想キャラクタの相対位置）が崩れること無く、セリフＡからセリフＢの再生が行われるようにすることもできる。
【０２４２】
さらに、セリフＢの再生時に、作成者が意図した仮想キャラクタの位置から、再生を開始し、作成者が意図した仮想キャラクタの動きを再現しつつ、セリフＢの再生を実行させることもできる。
【０２４３】
このように、音像の位置を、作成者が意図した位置とすることができ、音像の位置の設定の自由度を増すことができる。
【０２４４】
なお、上述した実施の形態においては、音声のみがユーザに提供される情報処理装置１を例に挙げて説明したが、音声と映像（画像）が提供されるような装置、例えば、ＡＲ（Augmented Reality ：拡張現実）やＶＲ（Virtual Reality：仮想現実）のヘッドマウトディスプレイに適用することもできる。
【０２４５】
＜記録媒体について＞
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【０２４６】
図２３は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。コンピュータにおいて、ＣＰＵ（Central Processing Unit）１００１、ＲＯＭ（Read Only Memory）１００２、ＲＡＭ（Random Access Memory）１００３は、バス１００４により相互に接続されている。バス１００４には、さらに、入出力インタフェース１００５が接続されている。入出力インタフェース１００５には、入力部１００６、出力部１００７、記憶部１００８、通信部１００９、及びドライブ１０１０が接続されている。
【０２４７】
入力部１００６は、キーボード、マウス、マイクロフォンなどよりなる。出力部１００７は、ディスプレイ、スピーカなどよりなる。記憶部１００８は、ハードディスクや不揮発性のメモリなどよりなる。通信部１００９は、ネットワークインタフェースなどよりなる。ドライブ１０１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア１０１１を駆動する。
【０２４８】
以上のように構成されるコンピュータでは、ＣＰＵ１００１が、例えば、記憶部１００８に記憶されているプログラムを、入出力インタフェース１００５及びバス１００４を介して、ＲＡＭ１００３にロードして実行することにより、上述した一連の処理が行われる。
【０２４９】
コンピュータ（ＣＰＵ１００１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア１０１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０２５０】
コンピュータでは、プログラムは、リムーバブルメディア１０１１をドライブ１０１０に装着することにより、入出力インタフェース１００５を介して、記憶部１００８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部１００９で受信し、記憶部１００８にインストールすることができる。その他、プログラムは、ＲＯＭ１００２や記憶部１００８に、あらかじめインストールしておくことができる。
【０２５１】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０２５２】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０２５３】
なお、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
【０２５４】
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０２５５】
なお、本技術は以下のような構成も取ることができる。
（１）
音像定位により現実空間に存在するよう知覚させる仮想物体の音像の位置と、ユーザの位置とに基づいて、前記ユーザに対する前記仮想物体の音源の相対的な位置を算出する算出部と、
前記算出された定位位置に音像を定位させるよう前記音源の音声信号処理を行う音像定位部と、
音像の位置を保持する音像位置保持部と
を備え、
前記算出部は、前記仮想物体が発する音声を切り替えるとき、切り替え後の音声の音像の位置を、切り替え前の音声の音像の位置を引き継いだ位置に設定する場合、前記音像位置保持部に保持されている音像の位置を参照して、前記音像の位置を算出する
情報処理装置。
（２）
前記ユーザの位置は、前記音声の切り替え前後に前記ユーザが移動した移動量であり、前記算出部は、前記仮想物体の音像の位置と、前記移動量とに基づいて、前記音源の位置を算出する
前記（１）に記載の情報処理装置。
（３）
前記算出部は、前記仮想物体の音声が切り替わるとき、切り替わる音声の発話を開始する位置を、切り替わる前の音声の発話が行われていた位置を引き継いだ位置に設定する場合、前記音像位置保持部に保持されている音像の位置を参照して、前記音像の位置を算出する
前記（１）または（２）に記載の情報処理装置。
（４）
前記現実空間に固定された座標上で前記音像の位置を設定する場合、前記音像位置保持部に保持されている前記音像の位置が参照される
前記（１）乃至（３）のいずれかに記載の情報処理装置。
（５）
前記算出部は、
音声再生処理における処理単位であるノードに、前記仮想物体の音像の位置に関する音像位置情報が含まれる場合、前記音像位置情報と、ユーザの位置とに基づいて、前記ユーザに対する前記仮想物体の音源の相対的な位置を算出し、
前記ノードに、他の音像位置情報を参照する指示が含まれている場合、前記音像位置保持部に保持されている音像の位置を参照し、前記音像位置情報を生成し、生成された音像位置情報と、ユーザの位置とに基づいて、前記ユーザに対する前記仮想物体の音源の相対的な位置を算出する
前記（１）乃至（４）のいずれかに記載の情報処理装置。
（６）
処理対処とされている前記ノードが他のノードに遷移するとき、前記他のノードに前記音像位置情報が含まれているか否かが判定される
前記（５）に記載の情報処理装置。
（７）
前記音声の切り替わりは、前記ユーザからの指示に応じて異なる処理が行われるときに発生する
前記（３）に記載の情報処理装置。
（８）
前記ユーザからの指示に応じて、遷移するノードを変更する
前記（７）に記載の情報処理装置。
（９）
前記仮想物体は、仮想キャラクタであり、前記音声は、前記仮想キャラクタのセリフであり、前記切り替わる前の音声と前記切り替わる音声は、前記仮想キャラクタの一連のセリフである
前記（３）に記載の情報処理装置。
（１０）
音像定位の音声信号処理を施した音声を出力する複数のスピーカと、
前記複数のスピーカを搭載し、かつ前記ユーザの体に装着可能に構成された筐体を有する
前記（１）乃至（９）のいずれかに記載の情報処理装置。
（１１）
音像定位により現実空間に存在するよう知覚させる仮想物体の音像の位置と、ユーザの位置とに基づいて、前記ユーザに対する前記仮想物体の音源の相対的な位置を算出し、
前記算出された定位位置に音像を定位させるよう前記音源の音声信号処理を行い、
保持されている音像の位置を更新する
ステップを含み、
前記仮想物体が発する音声を切り替えるとき、切り替え後の音声の音像の位置を、切り替え前の音声の音像の位置を引き継いだ位置に設定する場合、前記保持されている音像の位置が参照されて、前記音像の位置が算出される
情報処理方法。
（１２）
コンピュータに、
音像定位により現実空間に存在するよう知覚させる仮想物体の音像の位置と、ユーザの位置とに基づいて、前記ユーザに対する前記仮想物体の音源の相対的な位置を算出し、
前記算出された定位位置に音像を定位させるよう前記音源の音声信号処理を行い、
保持されている音像の位置を更新する
ステップを含み、
前記仮想物体が発する音声を切り替えるとき、切り替え後の音声の音像の位置を、切り替え前の音声の音像の位置を引き継いだ位置に設定する場合、前記保持されている音像の位置が参照されて、前記音像の位置が算出される
処理を実行させるためのプログラム。
【符号の説明】
【０２５６】
１  情報処理装置，  １０  制御部，  １０ａ  状態・行動検出部，  １０ｂ  仮想キャラクタ行動決定部，  １０ｃ  シナリオ更新部，  １０ｄ  相対位置算出部，  １０ｅ  音像定位部，  １０ｆ  音声出力制御部，  １０ｇ  再生履歴・フィードバック記憶制御部，  １１  通信部，  １２  マイクロフォン，  １３  カメラ，  １４  ９軸センサ，  １５  スピーカ，  １６  位置測位部，  １７  記憶部，  ２０  仮想キャラクタ，  １０１  キーフレーム補間部，  １０２  音像位置保持部，  １０３  相対位置算出部，  １０４  姿勢変化量算出部，  １０５  音像定位サウンドプレイヤ，  １０６  ノード情報解析部
【図１】
2019026597.tif 000003
【図２】
2019026597.tif 000004
【図３】
2019026597.tif 000005
【図４】
2019026597.tif 000006
【図５】
2019026597.tif 000007
【図６】
2019026597.tif 000008
【図７】
2019026597.tif 000009
【図８】
2019026597.tif 000010
【図９】
2019026597.tif 000011
【図１０】
2019026597.tif 000012
【図１１】
2019026597.tif 000013
【図１２】
2019026597.tif 000014
【図１３】
2019026597.tif 000015
【図１４】
2019026597.tif 000016
【図１５】
2019026597.tif 000017
【図１６】
2019026597.tif 000018
【図１７】
2019026597.tif 000019
【図１８】
2019026597.tif 000020
【図１９】
2019026597.tif 000021
【図２０】
2019026597.tif 000022
【図２１】
2019026597.tif 000023
【図２２】
2019026597.tif 000024
【図２３】
2019026597.tif 000025
【国際調査報告】
2019026597.tif 000026
2019026597.tif 000027