(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-22
(45)【発行日】2024-05-30
(54)【発明の名称】力覚波決定装置、力覚波決定方法及び力覚波決定プログラム
(51)【国際特許分類】
G06F 3/01 20060101AFI20240523BHJP
A63F 13/285 20140101ALI20240523BHJP
【FI】
G06F3/01 560
A63F13/285
(21)【出願番号】P 2022555282
(86)(22)【出願日】2021-08-06
(86)【国際出願番号】 JP2021029305
(87)【国際公開番号】W WO2022074929
(87)【国際公開日】2022-04-14
【審査請求日】2023-04-05
(31)【優先権主張番号】P 2020169576
(32)【優先日】2020-10-07
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000006231
【氏名又は名称】株式会社村田製作所
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100126480
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】松浦 俊
【審査官】塚田 肇
(56)【参考文献】
【文献】特表2018-528534(JP,A)
【文献】特開2004-265281(JP,A)
【文献】国際公開第2018/042799(WO,A1)
【文献】国際公開第2020/080432(WO,A1)
【文献】国際公開第2020/153116(WO,A1)
【文献】特開2003-199974(JP,A)
【文献】特開2019-003700(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01,3/048-3/04895
A63F 13/285
(57)【特許請求の範囲】
【請求項1】
対象物に振動を発生させるための波形信号の包絡線によって変調される
単位力覚波の候補である第1候補
単位力覚波を示す第1候補情報、及び前記候補であって前記第1候補
単位力覚波と異なる第2候補
単位力覚波を示す第2候補情報を取得する候補情報取得部と、
前記第1候補情報及び前記第2候補情報に基づいて、
連続する少なくとも2つの前記第1候補単位力覚波を含む第1候補力覚波及び
連続する少なくとも2つの前記第2候補単位力覚波を含む第2候補力覚波をそれぞれ前記包絡線によって変調して第1波形信号及び第2波形信号を生成する変調部と、
前記第1波形信号に基づく第1候補振動及び前記第2波形信号に基づく第2候補振動をそれぞれ前記対象物に発生させる振動発生部と、
前記第1候補振動及び前記第2候補振動のいずれか一方に選択された結果を取得する選択結果取得部と、
前記結果に基づいて前記
単位力覚波を決定する決定部と、を備え、
前記第1候補
単位力覚波及び前記第2候補
単位力覚波は、周期を有し、
前記第1候補
単位力覚波の波形と前記第2候補
単位力覚波の波形とは同じ形状を有し、
前記第1候補
単位力覚波の基本周波数と前記第2候補
単位力覚波の基本周波数とは異なる、
力覚波決定装置。
【請求項2】
対象物に振動を発生させるための波形信号の包絡線によって変調される
単位力覚波の候補である第1候補
単位力覚波を示す第1候補情報、及び前記候補であって前記第1候補
単位力覚波と異なる第2候補
単位力覚波を示す第2候補情報を取得する候補情報取得部と、
前記第1候補情報及び前記第2候補情報に基づいて、
連続する少なくとも2つの前記第1候補単位力覚波を含む第1候補力覚波及び
連続する少なくとも2つの前記第2候補単位力覚波を含む第2候補力覚波をそれぞれ前記包絡線によって変調して第1波形信号及び第2波形信号を生成する変調部と、
前記第1波形信号に基づく第1候補振動及び前記第2波形信号に基づく第2候補振動をそれぞれ前記対象物に発生させる振動発生部と、
前記第1候補振動及び前記第2候補振動のいずれか一方に選択された結果を取得する選択結果取得部と、
前記結果に基づいて前記
単位力覚波を決定する決定部と、を備え、
前記第1候補
単位力覚波及び前記第2候補
単位力覚波は、周期を有し、
前記第1候補
単位力覚波の基本周波数と前記第2候補
単位力覚波の基本周波数とは同じであり、
前記第1候補
単位力覚波の波形と前記第2候補
単位力覚波の波形とは異なる形状を有する、
力覚波決定装置。
【請求項3】
対象物に振動を発生させるための波形信号の包絡線によって変調される力覚波の候補である第1候補力覚波を示す第1候補情報、及び前記候補であって前記第1候補力覚波と異なる第2候補力覚波を示す第2候補情報を取得する候補情報取得部と、
前記第1候補情報及び前記第2候補情報に基づいて、前記第1候補力覚波及び前記第2候補力覚波をそれぞれ前記包絡線によって変調して第1波形信号及び第2波形信号を生成する変調部と、
前記第1波形信号に基づく第1候補振動及び前記第2波形信号に基づく第2候補振動をそれぞれ前記対象物に発生させる振動発生部と、
前記第1候補振動及び前記第2候補振動のいずれか一方に選択された結果を取得する選択結果取得部と、
前記結果に基づいて前記力覚波を決定する決定部と、を備え、
前記第1候補力覚波及び前記第2候補力覚波は、周期を有し、
前記第1候補力覚波の基本周波数と前記第2候補力覚波の基本周波数とは同じであり、
前記第1候補力覚波の波形と前記第2候補力覚波の波形とは同じ形状を有し、
前記第1候補力覚波の波形の形状の滑らかさと前記第2候補力覚波の波形の形状の滑らかさとは異な
り、
前記第2候補力覚波は、前記第1候補力覚波から高周波成分を減じた前記力覚波である、
力覚波決定装置。
【請求項4】
請求項1から請求項3のいずれか一項に記載の力覚波決定装置であって、
前記選択結果取得部は、前記第1候補振動及び前記第2候補振動について、使用者による選択結果を取得する、
力覚波決定装置。
【請求項5】
請求項1又は請求項2に記載の力覚波決定装置であって、
前記第1候補単位力覚波及び前記第2候補単位力覚波は、前記包絡線の発生期間において振動する波である、
力覚波決定装置。
【請求項6】
請求項
3に記載の力覚波決定装置であって、
前記第1候補力覚波及び前記第2候補力覚波は、前記包絡線の発生期間において振動する波である、
力覚波決定装置。
【請求項7】
力覚波決定装置における力覚波決定方法であって、
対象物に振動を発生させるための波形信号の包絡線によって変調される
単位力覚波の候補である第1候補
単位力覚波を示す第1候補情報、及び前記候補であって前記第1候補
単位力覚波と異なる第2候補
単位力覚波を示す第2候補情報を取得するステップと、
前記第1候補情報及び前記第2候補情報に基づいて
、連続する少なくとも2つの前記第1候補単位力覚波を含む第1候補力覚波及び
連続する少なくとも2つの前記第2候補単位力覚波を含む第2候補力覚波をそれぞれ前記包絡線によって変調して第1波形信号及び第2波形信号を生成するステップと、
前記第1波形信号に基づく第1候補振動及び前記第2波形信号に基づく第2候補振動をそれぞれ前記対象物に発生させるステップと、
前記第1候補振動及び前記第2候補振動のいずれか一方に選択された結果を取得するステップと、
前記結果に基づいて前記
単位力覚波を決定するステップとを含み、
前記第1候補
単位力覚波及び前記第2候補
単位力覚波は、周期を有し、
前記第1候補
単位力覚波の波形と前記第2候補
単位力覚波の波形とは同じ形状を有し、
前記第1候補
単位力覚波の基本周波数と前記第2候補
単位力覚波の基本周波数とは異なる、
力覚波決定方法。
【請求項8】
力覚波決定装置における力覚波決定方法であって、
対象物に振動を発生させるための波形信号の包絡線によって変調される
単位力覚波の候補である第1候補
単位力覚波を示す第1候補情報、及び前記候補であって前記第1候補
単位力覚波と異なる第2候補
単位力覚波を示す第2候補情報を取得するステップと、
前記第1候補情報及び前記第2候補情報に基づいて
、連続する少なくとも2つの前記第1候補単位力覚波を含む第1候補力覚波及び
連続する少なくとも2つの前記第2候補単位力覚波を含む第2候補力覚波をそれぞれ前記包絡線によって変調して第1波形信号及び第2波形信号を生成するステップと、
前記第1波形信号に基づく第1候補振動及び前記第2波形信号に基づく第2候補振動をそれぞれ前記対象物に発生させるステップと、
前記第1候補振動及び前記第2候補振動のいずれか一方に選択された結果を取得するステップと、
前記結果に基づいて前記
単位力覚波を決定するステップとを含み、
前記第1候補
単位力覚波及び前記第2候補
単位力覚波は、周期を有し、
前記第1候補
単位力覚波の基本周波数と前記第2候補
単位力覚波の基本周波数とは同じであり、
前記第1候補
単位力覚波の波形と前記第2候補
単位力覚波の波形とは異なる形状を有する、
力覚波決定方法。
【請求項9】
力覚波決定装置における力覚波決定方法であって、
対象物に振動を発生させるための波形信号の包絡線によって変調される力覚波の候補である第1候補力覚波を示す第1候補情報、及び前記候補であって前記第1候補力覚波と異なる第2候補力覚波を示す第2候補情報を取得するステップと、
前記第1候補情報及び前記第2候補情報に基づいて
、前記第1候補力覚波及び前記第2候補力覚波をそれぞれ前記包絡線によって変調して第1波形信号及び第2波形信号を生成するステップと、
前記第1波形信号に基づく第1候補振動及び前記第2波形信号に基づく第2候補振動をそれぞれ前記対象物に発生させるステップと、
前記第1候補振動及び前記第2候補振動のいずれか一方に選択された結果を取得するステップと、
前記結果に基づいて前記力覚波を決定するステップとを含み、
前記第1候補力覚波及び前記第2候補力覚波は、周期を有し、
前記第1候補力覚波の基本周波数と前記第2候補力覚波の基本周波数とは同じであり、
前記第1候補力覚波の波形と前記第2候補力覚波の波形とは同じ形状を有し、
前記第1候補力覚波の波形の形状の滑らかさと前記第2候補力覚波の波形の形状の滑らかさとは異な
り、
前記第2候補力覚波は、前記第1候補力覚波から高周波成分を減じた前記力覚波である、
力覚波決定方法。
【請求項10】
力覚波決定装置において用いられる力覚波決定プログラムであって、
コンピュータを、
対象物に振動を発生させるための波形信号の包絡線によって変調される
単位力覚波の候補である第1候補
単位力覚波を示す第1候補情報、及び前記候補であって前記第1候補
単位力覚波と異なる第2候補
単位力覚波を示す第2候補情報を取得する候補情報取得部、
前記第1候補情報及び前記第2候補情報に基づいて
、連続する少なくとも2つの前記第1候補単位力覚波を含む第1候補力覚波及び
連続する少なくとも2つの前記第2候補単位力覚波を含む第2候補力覚波をそれぞれ前記包絡線によって変調して第1波形信号及び第2波形信号を生成する変調部、
前記第1波形信号に基づく第1候補振動及び前記第2波形信号に基づく第2候補振動をそれぞれ前記対象物に発生させる振動発生部、
前記第1候補振動及び前記第2候補振動のいずれか一方に選択された結果を取得する選択結果取得部、及び
前記結果に基づいて前記
単位力覚波を決定する決定部、
として機能させるためのプログラムであり、
前記第1候補
単位力覚波及び前記第2候補
単位力覚波は、周期を有し、
前記第1候補
単位力覚波の波形と前記第2候補
単位力覚波の波形とは同じ形状を有し、
前記第1候補
単位力覚波の基本周波数と前記第2候補
単位力覚波の基本周波数とは異なる、
力覚波決定プログラム。
【請求項11】
力覚波決定装置において用いられる力覚波決定プログラムであって、
コンピュータを、
対象物に振動を発生させるための波形信号の包絡線によって変調される
単位力覚波の候補である第1候補
単位力覚波を示す第1候補情報、及び前記候補であって前記第1候補
単位力覚波と異なる第2候補
単位力覚波を示す第2候補情報を取得する候補情報取得部、
前記第1候補情報及び前記第2候補情報に基づいて
、連続する少なくとも2つの前記第1候補単位力覚波を含む第1候補力覚波及び
連続する少なくとも2つの前記第2候補単位力覚波を含む第2候補力覚波をそれぞれ前記包絡線によって変調して第1波形信号及び第2波形信号を生成する変調部、
前記第1波形信号に基づく第1候補振動及び前記第2波形信号に基づく第2候補振動をそれぞれ前記対象物に発生させる振動発生部、
前記第1候補振動及び前記第2候補振動のいずれか一方に選択された結果を取得する選択結果取得部、及び
前記結果に基づいて前記
単位力覚波を決定する決定部、
として機能させるためのプログラムであり、
前記第1候補
単位力覚波及び前記第2候補
単位力覚波は、周期を有し、
前記第1候補
単位力覚波の基本周波数と前記第2候補
単位力覚波の基本周波数とは同じであり、
前記第1候補
単位力覚波の波形と前記第2候補
単位力覚波の波形とは異なる形状を有する、
力覚波決定プログラム。
【請求項12】
力覚波決定装置において用いられる力覚波決定プログラムであって、
コンピュータを、
対象物に振動を発生させるための波形信号の包絡線によって変調される力覚波の候補である第1候補力覚波を示す第1候補情報、及び前記候補であって前記第1候補力覚波と異なる第2候補力覚波を示す第2候補情報を取得する候補情報取得部、
前記第1候補情報及び前記第2候補情報に基づいて前記第1候補力覚波及び前記第2候補力覚波をそれぞれ前記包絡線によって変調して第1波形信号及び第2波形信号を生成する変調部、
前記第1波形信号に基づく第1候補振動及び前記第2波形信号に基づく第2候補振動をそれぞれ前記対象物に発生させる振動発生部、
前記第1候補振動及び前記第2候補振動のいずれか一方に選択された結果を取得する選択結果取得部、及び
前記結果に基づいて前記力覚波を決定する決定部、
として機能させるためのプログラムであり、
前記第1候補力覚波及び前記第2候補力覚波は、周期を有し、
前記第1候補力覚波の基本周波数と前記第2候補力覚波の基本周波数とは同じであり、
前記第1候補力覚波の波形と前記第2候補力覚波の波形とは同じ形状を有し、
前記第1候補力覚波の波形の形状の滑らかさと前記第2候補力覚波の波形の形状の滑らかさとは異な
り、
前記第2候補力覚波は、前記第1候補力覚波から高周波成分を減じた前記力覚波である、
力覚波決定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、力覚波決定装置、力覚波決定方法及び力覚波決定プログラムに関する。
【背景技術】
【0002】
使用者(ユーザ)が手で保持したり、使用者の身体に装着したりして使用する振動デバイスがある。このような振動デバイスでは、リニア共振アクチュエータなどの振動機構が内蔵され、この振動機構が動作することによって使用者に振動を提示する(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載の振動デバイスは、何らかの物体に触れたかのような触感を使用者に感じさせる触感振動の内容を表す触感振動データと、疑似力覚振動データとが合成されたデータの内容に応じた振動を発生させる。ここで、疑似力覚振動データは、使用者に特定の方向の牽引力を感じさせる疑似力覚振動、具体的には、正弦波、三角波、鋸波または矩形波によって構成される特定パターンの基本波形を所定周期で繰り返す振動の内容を表すデータである。振動デバイスでは、使用者から受け付けた設定情報の内容に応じて、疑似力覚振動及び触感振動のいずれか少なくとも一方の強さが調整できるようになっている。
【0005】
しかしながら、振動デバイスの振動の感じ方(力覚)は、使用者によって異なるため、振動の強度を変更できても、使用者の趣向に合った力覚を実現することができないことがある。
【0006】
本発明はこのような事情に鑑みてなされたものであり、使用者の趣向に合った力覚を実現することが可能な力覚波決定装置、力覚波決定方法及び力覚波決定プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の一側面に係る力覚波決定装置は、対象物に振動を発生させるための波形信号の包絡線によって変調される力覚波の候補である第1候補力覚波を示す第1候補情報、及び前記候補であって前記第1候補力覚波と異なる第2候補力覚波を示す第2候補情報を取得する候補情報取得部と、前記第1候補情報及び前記第2候補情報に基づいて、前記第1候補力覚波及び前記第2候補力覚波をそれぞれ前記包絡線によって変調して第1波形信号及び第2波形信号を生成する変調部と、前記第1波形信号に基づく第1候補振動及び前記第2波形信号に基づく第2候補振動をそれぞれ前記対象物に発生させる振動発生部と、前記第1候補振動及び前記第2候補振動のいずれか一方に選択された結果を取得する選択結果取得部と、前記結果に基づいて前記力覚波を決定する決定部と、を備える。
【発明の効果】
【0008】
本発明によれば、使用者の趣向に合った力覚を実現することが可能な力覚波決定装置、力覚波決定方法及び力覚波決定プログラムを提供することが可能となる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、本発明の第1実施形態に係るゲームシステムの概略を示す図である。
【
図2】
図2は、本発明の第1実施形態に係るゲームシステムのハードウェア構成を示す図である。
【
図3】
図3は、本発明の第1実施形態に係る波形信号の一例を示す図である。
【
図4】
図4は、課題その1を説明するための図である。
【
図5】
図5は、課題その2を説明するための図である。
【
図6】
図6は、本発明の第1実施形態に係る信号生成装置の構成を示すブロック図である。
【
図7】
図7は、本発明の第1実施形態に係る信号生成装置におけるディスクが保持する対応情報を示す図である。
【
図8】
図8は、本発明の第1実施形態に係る信号生成装置が保持する包絡線波形情報の示すイベント別力覚振幅エンベロープの一例を示す図である。
【
図9】
図9は、本発明の第1実施形態に係る信号生成装置が保持する包絡線波形情報の示すイベント別力覚振幅エンベロープの一例を示す図である。
【
図10】
図10は、本発明の第1実施形態に係る信号生成装置によって合成処理されるイベント別力覚振幅エンベロープの一例を示す図である。
【
図11】
図11は、本発明の第1実施形態に係る信号生成装置によって合成処理されるイベント別力覚振幅エンベロープの一例を示す図である。
【
図12】
図12は、本発明の第1実施形態に係る信号生成装置が保持する単位力覚波の一例を示す図である。
【
図13】
図13は、本発明の第1実施形態に係る波形信号発生期間の重なりない場合の波形信号の一例を示す図である。
【
図14】
図14は、本発明の第1実施形態に係る波形信号発生期間の重なりがある場合における波形信号の一例を示す図である。
【
図15】
図15は、本発明の第1実施形態に係る波形信号発生期間の重なりがある場合における波形信号の一例を示す図である。
【
図16】
図16は、本発明の第1実施形態に係る信号生成装置がイベント情報処理を行う際の動作手順を定めたフローチャートである。
【
図17】
図17は、本発明の第1実施形態に係る信号生成装置が波形信号生成処理を行う際の動作手順を定めたフローチャートである。
【
図18】
図18は、本発明の第1実施形態に係る信号生成装置が合成処理を行う際の動作手順を定めたフローチャートである。
【
図19】
図19は、本発明の第2実施形態に係るディスクに保存された候補単位力覚波の一例を示す図である。
【
図20】
図20は、本発明の第2実施形態に係るディスクに保存された候補単位力覚波の一例を示す図である。
【
図21】
図21は、本発明の第2実施形態に係るディスクに保存された候補単位力覚波の一例を示す図である。
【
図22】
図22は、本発明の第2実施形態に係る力覚波決定装置の構成を示すブロック図である。
【
図23】
図23は、本発明の第2実施形態に係る力覚波決定装置における提示処理部の構成を示すブロック図である。
【
図24】
図24は、本発明の第2実施形態に係るイベント別力覚振幅エンベロープ、第2候補力覚波及び波形信号の一例を示す図である。
【
図25】
図25は、本発明の第2実施形態に係る力覚波決定装置が力覚波決定処理を行う際の動作手順を定めたフローチャートである。
【
図26】
図26は、本発明の第2実施形態に係る力覚波決定装置がインデックスを用いて力覚波決定処理を行う際の動作手順を定めたフローチャートである。
【
図27】
図27は、本発明の第2実施形態に係るディスクに保存された候補単位力覚波の変形例を示す図である。
【
図28】
図28は、本発明の第1実施形態及び第2実施形態に係るイベント別力覚振幅エンベロープの変形例を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施の形態について、図面を参照しつつ詳細に説明する。なお、同一の要素には同一の符号を付し、重複する説明を極力省略する。
【0011】
[第1実施形態]
第1実施形態に係るゲームシステムについて説明する。
図1は、本発明の第1実施形態に係るゲームシステムの概略を示す図である。
図1に示すように、ゲームシステム3は、コンピュータ11と、ディスプレイモニタ20と、コントローラ21(対象物)と、を主に備える。
【0012】
コンピュータ11は、例えば、ゲームプログラムを実行し、ゲームプログラムが展開する仮想現実をディスプレイモニタ20に表示する。ユーザ6は、例えば、ゲームプログラムの作成者またはゲームのプレーヤである。ユーザ6は、例えば、ディスプレイモニタ20に映し出された仮想現実におけるキャラクターの状況を認識し、その状況に応じてキャラクターに動きを与えるようにコントローラ21を操作する。コンピュータ11は、コントローラ21に対して行われた操作内容に応じてゲームプログラムを実行する。
【0013】
また、コンピュータ11は、ハプティクスによる「力覚」、「圧覚」及び「触覚」の少なくとも1つのユーザ6への提示(以下、ハプティクス提示と称することがある。)を行う。ここで、「力覚」は、例えば、引っ張られたり、押されたりされたときの感触及びギューと押さえたり、プッチンと弾けたときの手ごたえ感である。「圧覚」は、例えば、物体に接触したとき、または物体の堅さもしくは柔らかさを感じたときなどの接触感である。「触覚」は、例えば、物体の表面の触り心地、または物体の表面の凹凸度合いなどの触感及び粗さ感である。
【0014】
コンピュータ11におけるソフトウェア及びハードウェアの階層は、例えば、アプリケーション層のゲームプログラム、中間層のSDK(Software Development Kit)、システム及びゲームエンジン、ならびに物理層のHW(Hardwere)によって構成される。
【0015】
SDKは、例えば、プラグインまたはオーサリングツールと、ミドルウェアと、を含む。ミドルウェアには、「力覚」、「圧覚」及び「触覚」の少なくとも1つをユーザ6に与えるようにコントローラ21を振動させるプログラム(以下、対象プログラムと称することがある。)が含まれる。ゲームプログラムは、例えば、キャラクターに特定のイベントが発生すると、API(Application Programming Interface)に従って対象プログラムを呼び出す。このとき、ゲームプログラムは、例えば、イベントの内容及び当該イベントの開始時刻(第1事象または第2事象の開始タイミング)を示すイベント情報を対象プログラムに渡す。イベントの内容は、例えばIDによって特定される。
【0016】
特定のイベントは、例えば、仮想現実内において、引っ張ったり押したりする外力がキャラクターに加わったこと、キャラクターが銃を撃ったこと、キャラクターが打撃を受けたこと、及びキャラクターが音楽に合わせて踊っていることなどである。
【0017】
対象プログラムは、イベント情報に基づいて、イベント情報の示すイベントの内容に応じた感覚のハプティクス提示をするための波形信号を生成する。対象プログラムは、生成した波形信号を、ゲームエンジン、オペレーティングシステム及びハードウェアを通じてコントローラ21へ送信する。
【0018】
コントローラ21は、波形信号に基づいて振動する。ユーザ6は、例えば、振動するコントローラ21を手で持つことで、仮想現実におけるキャラクターの状況を、視覚及び聴覚だけでなく、「力覚」、「圧覚」及び「触覚」の少なくとも1つによって認識することができる。
【0019】
図2は、本発明の第1実施形態に係るゲームシステムのハードウェア構成を示す図である。
図2に示すように、ゲームシステム3は、コンピュータ11と、スピーカ19と、ディスプレイモニタ20と、コントローラ21と、を備える。コンピュータ11は、CPU(Central Processing Unit)12と、メモリ13と、ディスク14と、オーディオインターフェース(I/F)15と、GPU(Graphics Processing Unit)16と、通信インターフェース(I/F)17と、バス18と、を含む。コントローラ21は、MCU(Micro Controller Unit)22と、通信インターフェース(I/F)23と、ハプティクス出力駆動器24と、ハプティクス素子25と、センサ入力駆動器26と、センサ素子27と、を含む。
【0020】
コンピュータ11では、CPU12、メモリ13、ディスク14、オーディオインターフェース15、GPU16及び通信インターフェース17は、互いにデータの送受信が可能なようにバス18を通じて接続される。
【0021】
本実施形態では、ディスク14は、HDD(Hard Disk Drive)またはSSD(Solid State Drive)などの読み書きが可能な不揮発性の記憶装置であり、ゲームプログラム及びSDKなどのプログラム(コード)が保存されている。なお、ディスク14は、HDD及びSSDに限定するものではなく、メモリーカードまたは読み込み専用のCD-ROM(Compact Disc Read Only Memory)若しくはDVD-ROM(Digital Versatile Disc-Read Only Memory)などであってもよい。また、対象プログラムなどのプログラムは、外部からインストールすることができる。また、対象プログラムなどのプログラムは、ディスク14のようなコンピュータ11によって読み取り可能な記憶媒体に格納された状態で流通する。なお、対象プログラムなどのプログラムは、通信インターフェースを経由して接続されたインターネット上で流通するものであってもよい。
【0022】
メモリ13は、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置である。通信インターフェース17は、コントローラ21における通信インターフェース23と各種データの送受信を行う。この通信は、有線及び無線のいずれで実行されてもよく、互いの通信が実行できるのであれば、どのような通信プロトコルを用いてもよい。通信インターフェース17は、CPU12からの指示に従って各種データをコントローラ21へ送信する。また、通信インターフェース17は、コントローラ21から送信された各種データを受信し、受信したデータをCPU12へ出力する。
【0023】
CPU12は、プログラムの実行時において、ディスク14に保存された当該プログラム及び当該プログラムの実行に必要なデータをメモリ13に転送する。CPU12は、プログラムの実行に必要な処理命令及びデータをメモリ13から読み出し、処理命令の内容に従って演算処理を実行する。このとき、CPU12は、プログラムの実行に必要なデータを新たに生成してメモリ13に保存する場合がある。なお、CPU12は、プログラム及びデータをディスク14から取得する構成に限らず、インターネットを経由してサーバなどから取得する構成であってもよい。
【0024】
具体的には、CPU12は、例えば、ゲームプログラムの実行時において、ユーザ6のコントローラ21に対する操作内容を受けて、操作内容に応じた処理命令を実行し、仮想現実内のキャラクターに動きを与える。このとき、CPU12は、仮想現実内のキャラクターの状況に応じて、ハプティクス提示、映像表示及び音声出力を行うための処理を行う。
【0025】
より具体的には、CPU12は、例えば、仮想現実内において引っ張ったり押したりする外力がキャラクターに加わったときに、当該外力が加わったときに感じる力覚感のハプティクス提示をするための波形信号を生成する。
【0026】
また、CPU12は、例えば、仮想現実内においてキャラクターが銃を撃ったときに、銃を撃ったときなどに感じる反動感のハプティクス提示をするための波形信号を生成する。
【0027】
また、CPU12は、例えば、仮想現実内においてキャラクターが打撃を受けたときに、打撃を受けたときなどに感じる衝撃感のハプティクス提示をするための波形信号を生成する。
【0028】
また、CPU12は、例えば、仮想現実内においてキャラクターが音楽に合わせて踊っているときに、音楽的なビートやリズムなどに対して感じる躍動感のハプティクス提示をするための波形信号を生成する。
【0029】
CPU12は、生成した波形信号をデジタル符号化することによってハプティクス情報を生成し、生成したハプティクス情報を通信インターフェース17経由でコントローラ21へ送信する。
【0030】
また、CPU12は、仮想現実内で動くキャラクター及び背景などの映像表示に必要な画面情報を生成し、生成した画面情報をGPU16へ出力する。GPU16は、例えば、CPU12から画面情報を受けて、画面情報に基づいてレンダリングなどを行い、3Dグラフィクスなどの映像を含むデジタル映像信号を生成する。GPU16は、生成したデジタル映像信号をディスプレイモニタ20へ送信することによって、ディスプレイモニタ20に3Dグラフィクスなどを表示させる。
【0031】
また、CPU12は、仮想現実内のキャラクターの環境、動き及び状況などに応じた音声を示す音声情報を生成し、生成した音声情報をオーディオインターフェース15へ出力する。オーディオインターフェース15は、例えば、CPU12から音声情報を受けて、受けた音声情報に基づいてレンダリングなどを行い、音声信号を生成する。オーディオインターフェース15は、生成した音声信号をスピーカ19へ送信することによって、スピーカ19から音声を出力させる。
【0032】
コントローラ21におけるハプティクス素子25は、電気信号を力学的な振動に変換する振動アクチュエータであり、例えば、振動緩和の周波数帯域が広いボイスコイルアクチュエータである。なお、ハプティクス素子25は、偏心モータ、リニア共振アクチュエータ、電磁アクチュエータ、圧電アクチュエータ、超音波アクチュエータ、静電アクチュエータまたは高分子アクチュエータなどであってもよい。
【0033】
MCU22は、ハプティクス出力駆動器24及びセンサ入力駆動器26を制御する。具体的には、MCU22は、例えば、電源の供給を受けたときに、ROM(図示しない)に保存されたプログラムを読み出し、当該プログラムの内容に従って演算処理を実行する。
【0034】
本実施形態では、MCU22は、例えば、コンピュータ11から通信インターフェース23経由でハプティクス情報を受信すると、受信したハプティクス情報に基づいてハプティクス出力駆動器24を制御し、ハプティクス素子25によってハプティクス提示を行う。
【0035】
具体的には、MCU22は、ハプティクス情報をハプティクス出力駆動器24へ出力する。ハプティクス出力駆動器24は、MCU22からハプティクス情報を受けて、受けたハプティクス情報に基づいて、波形信号に応じた電気信号であって、ハプティクス素子25を駆動可能なアナログの電気信号を生成してハプティクス素子25へ出力する。これにより、ハプティクス素子25が電気信号に基づいて振動し、ハプティクス提示が行われる。
【0036】
センサ素子27は、例えば、コントローラ21に設けられているジョイスティック及びボタンといったユーザ6の操作を受ける操作部の動きを検知し、検知結果を示すアナログの電気信号をセンサ入力駆動器26へ出力する。
【0037】
センサ入力駆動器26は、例えば、MCU22の制御に従って動作し、駆動に必要な電力をセンサ素子27に供給するとともに、センサ素子27から電気信号を受けて、受けた電気信号をデジタル信号に変換する。センサ入力駆動器26は、変換したデジタル信号をMCU22へ出力する。MCU22は、センサ入力駆動器26から受けるデジタル信号に基づいて、ユーザ6のコントローラ21に対する操作内容を示す操作情報を生成して通信インターフェース23経由でコンピュータ11へ送信する。
【0038】
図3は、本発明の第1実施形態に係る波形信号の一例を示す図である。なお、
図3において、横軸は時間を示し、縦軸は振幅を示す。
図3に示すように、波形信号75は、例えば、一定の時間継続する周期的な矩形波である。本実施形態では、波形信号75は、時刻tsから時刻teまでの期間T1の間、継続する矩形波である。なお、波形信号75の振幅は、時間とともに変化してもよい。また、期間T1の長さは、任意に設定することが可能である。
【0039】
[課題その1]
例えば、イベントごとにハプティクス提示が行われる場合において、1番目のハプティクス提示が終了する前に、2番目のハプティクス提示が行われると、ユーザ6は、期待通りのハプティクス提示を受けることができないことがある。
【0040】
図4は、課題その1を説明するための図である。
図4に示すように、例えば、仮想現実内のキャラクターが、時刻tsaにおいて前側に引っ張られ、時刻tsaより後の時刻tsbにおいてさらに前側に引っ張られる状況を想定する。ユーザ6は、キャラクターが前側に引っ張られた後、さらに前側に引っ張られるので、2段階で前側に引っ張られる力覚を期待するものと考えられる。
【0041】
しかしながら、キャラクターが時刻tsaにおいて前側に引っ張られる場合の参考波形信号91aと、キャラクターが時刻tsbにおいて前側に引っ張られる場合の参考波形信号91bとを単純に重ね合わせて合成する構成では、以下の問題が発生する。
【0042】
すなわち、参考波形信号91aの開始時刻tsaと参考波形信号91bの開始時刻tsbとの差が参考波形信号91aにおける矩形波の半周期に相当する場合、参考波形信号91a及び91bが弱め合いの干渉をし、時刻tsbから参考波形信号91aの終了時刻teaまで振幅がゼロの参考合成波形信号92に基づく振動がユーザ6に提示されてしまう。ユーザ6は、2段階で前側に引っ張られる力覚を期待していたものの、弱い力覚しか感じないので、違和感を感じてしまう。
【0043】
一方、図示しないが、仮に、時刻tsaと時刻tsbとの差が参考波形信号91aにおける矩形波の1周期に相当する場合、参考波形信号91a及び91bが強め合いの干渉をし、ユーザ6は、期待通りの力覚を受けることができる。すなわち、ユーザ6が受ける力覚は、1回目のイベントの開始時刻と2回目のイベントの開始時刻との差に応じて、違和感を感じたり、期待通りであったりするので、参考波形信号91aと参考波形信号91bとを単純に重ね合わせて合成する構成では、ユーザ6が受ける力覚を安定させることが困難である。
【0044】
[課題その2]
図5は、課題その2を説明するための図である。
図5に示すように、例えば、仮想現実内のキャラクターが、時刻tsaにおいて前側に引っ張られ、時刻tsaより後の時刻tsbにおいて前側の逆方向である後側に引っ張られる状況を想定する。ユーザ6は、キャラクターが前側に引っ張られた後、後側に引っ張られるので、前側及び後側のいずれにも引っ張られない弱い力覚を期待するものと考えられる。
【0045】
しかしながら、キャラクターが時刻tsaにおいて前側に引っ張られる場合の参考波形信号91aと、キャラクターが時刻tsbにおいて後側に引っ張られる場合の参考波形信号91cとを単純に重ね合わせて合成する構成では、以下の問題が発生する。
【0046】
すなわち、参考波形信号91cは、参考波形信号91aと比べて符号が逆になっているので、時刻tsaと時刻tsbとの差が参考波形信号91aにおける矩形波の半周期に相当する場合、参考波形信号91a及び91cが強め合いの干渉をする。このため、参考波形信号91cの開始時刻tsbから参考波形信号91aの終了時刻teaまで大振幅の参考合成波形信号93に基づく振動がユーザ6に提示されてしまう。ユーザ6は、前側及び後側のいずれにも引っ張られない弱い力覚を期待していたものの、強い力覚を受けるので、違和感を感じてしまう。
【0047】
一方、図示しないが、仮に、時刻tsaと時刻tsbとの差が参考波形信号91aにおける矩形波の1周期に相当する場合、参考波形信号91a及び91cが弱め合いの干渉をし、ユーザ6は、期待通りの弱い力覚を受けることができる。すなわち、ユーザ6が受ける力覚は、1回目のイベントの開始時刻と2回目のイベントの開始時刻との差に応じて、違和感を感じたり、期待通りであったりするので、参考波形信号91aと参考波形信号91cとを単純に重ね合わせて合成する構成では、ユーザ6が受ける力覚を安定させることが困難である。
【0048】
[信号生成装置の構成]
図6は、本発明の第1実施形態に係る信号生成装置の構成を示すブロック図である。信号生成装置1は、例えば、コンピュータ11におけるCPU12において、対象プログラムの一例である信号生成プログラムを実行させることによって構成されるものである。信号生成装置1は、機能ブロックとして、イベント受付部31と、包絡線生成情報取得部32(包絡線情報取得部及び重みづけ情報取得部)と、現在振幅算出部33(合成部)と、カウンタ34と、変調部35と、単位力覚波情報取得部36と、出力部37と、を備える。
【0049】
カウンタ34は、例えば、水晶振動子を用いた発振回路等により生成されるクロックパルスをカウントし、カウントした値を保持する。このカウント値は、たとえば現在時刻を示す。
【0050】
イベント受付部31は、例えば、仮想現実内のキャラクターに特定のイベントが発生したときに、ゲームプログラムからイベント情報を受け付ける。
【0051】
本実施形態では、イベント受付部31は、例えば、仮想現実内においてキャラクターが前側に引っ張られるイベント(以下、イベントE1と称することがある。)が発生したとき、イベントE1のID及びイベントE1の開始時刻を示すイベント情報(以下、イベント情報EM1と称することがある。)をゲームプログラムから受ける。
【0052】
また、イベント受付部31は、例えば、仮想現実内においてキャラクターが後側に引っ張られるイベント(以下、イベントE2と称することがある。)が発生したとき、イベントE2のID及びイベントE2の開始時刻を示すイベント情報(以下、イベント情報EM2と称することがある。)をゲームプログラムから受ける。
【0053】
イベント受付部31は、イベント情報EM1またはイベント情報EM2をゲームプログラムから受けるごとに、イベント情報EM1またはイベント情報EM2を包絡線生成情報取得部32へ出力する。
【0054】
図7は、本発明の第1実施形態に係る信号生成装置におけるディスクが保持する対応情報を示す図である。
図8及び
図9は、本発明の第1実施形態に係る信号生成装置が保持する包絡線波形情報の示すイベント別力覚振幅エンベロープの一例を示す図である。なお、
図8及び
図9において、横軸は時間を示し、縦軸は振幅を示す。
【0055】
図7~
図9に示すように、対応情報101は、「イベントの内容」及び「イベントID」と「包絡線生成情報」との対応関係を示す。「包絡線生成情報」は、包絡線すなわちエンベロープを生成するための情報であり、「包絡線波形情報」、「開始時刻オフセット情報」及び「重みづけ情報」を含む。
【0056】
「イベントの内容」は、例えば、「キャラクターが前側に引っ張られる」、「キャラクターが後側に引っ張られる」、「キャラクターが銃を撃つ」、「キャラクターが前側から打撃を受ける」、「キャラクターが後側から打撃を受ける」及び「キャラクターがBGMに合わせて踊る」などである。
【0057】
「イベントID」は、イベントの内容に固有の番号である。本実施形態では、例えば、「キャラクターが前側に引っ張られる」及び「キャラクターが後側に引っ張られる」に対してそれぞれ「001」及び「002」が割り当てられている。
【0058】
「包絡線波形情報」は、イベントの内容に対応する波形信号のエンベロープ(以下、イベント別力覚振幅エンベロープと称することがある。)の波形を作成するためのデータである。イベント別力覚振幅エンベロープは、例えば、イベントの内容(イベントID)ごとに異なる波形を有する。具体的には、「包絡線波形情報」は、例えば、時刻と当該時刻における振幅との組を時系列順に並べたデータである。なお、「包絡線波形情報」は、例えば、イベント別力覚振幅エンベロープの波形をスプライン曲線によって生成する場合において、当該スプライン曲線に用いる制御点の時刻と当該時刻における振幅との組を示すデータであってもよい。
【0059】
本実施形態では、包絡線波形情報Env1は、「イベントID」が「001」のイベントに対応し、
図8に示すイベント別力覚振幅エンベロープ71Pを示す。本実施形態では、「キャラクターが前側に引っ張られる」イベントE1に対して、正の振幅を有するようにイベント別力覚振幅エンベロープ71Pが設定されている。
【0060】
包絡線波形情報Env2は、「イベントID」が「002」のイベントに対応し、
図9に示すイベント別力覚振幅エンベロープ71Mを示す。本実施形態では、「キャラクターが後側に引っ張られる」イベントE2に対して、イベント別力覚振幅エンベロープ71Pの振幅の符号と異なる符号の振幅すなわち負の振幅を有するようにイベント別力覚振幅エンベロープ71Mが設定されている。本実施形態では、イベント別力覚振幅エンベロープ71Pとイベント別力覚振幅エンベロープ71Mとは、振幅ゼロの軸すなわち時間軸に対して対称な形状を有する。なお、イベント別力覚振幅エンベロープ71Pとイベント別力覚振幅エンベロープ71Mとは、時間軸に対して非対称な形状を有してもよい。
【0061】
「開始時刻オフセット情報」は、例えば、イベント別力覚振幅エンベロープの開始時刻と、イベント情報の示すイベントの開始時刻との差を示す。例えば、仮想現実内におけるキャラクターにイベントが発生した時刻で、コントローラ21における振動を開始させたい場合、開始時刻オフセット情報の示す値は、ゼロに設定される。
【0062】
また、力覚の知覚特性を考慮して、仮想現実内におけるキャラクターにイベントが発生した時刻に対して、コントローラ21における振動の開始時刻を早めたり、遅らせたりしたい場合、開始時刻オフセット情報の示す値は、ゼロでない値に設定される。本実施形態では、例えば、開始時刻オフセット情報の示す値が正の値に設定された場合、コントローラ21における振動の開始時刻が、仮想現実内におけるキャラクターにイベントが発生した時刻より遅れる。一方、開始時刻オフセット情報の示す値が負の値に設定された場合、コントローラ21における振動の開始時刻が、仮想現実内におけるキャラクターにイベントが発生した時刻より早くなる。
【0063】
「重みづけ情報」は、例えば、イベント別力覚振幅エンベロープの振幅に与える重みを示す。具体的には、例えば、「001」及び「002」の「イベントID」にそれぞれ対応する重みづけ情報w1及びw2がともに1を示す場合、イベント別力覚振幅エンベロープ71P(
図8参照)及びイベント別力覚振幅エンベロープ71M(
図9参照)をそのまま用いる。
【0064】
一方、例えば、イベントIDが003に対応する重みづけ情報w3の示す値が3である場合、振幅を3倍にして、包絡線波形情報Env3によって表されるイベント別力覚振幅エンベロープを用いる。また、例えば、イベントIDが004に対応する重みづけ情報w4の示す値が0.5である場合、振幅を0.5倍にして、包絡線波形情報Env4によって表されるイベント別力覚振幅エンベロープを用いる。
【0065】
図6に示すように、包絡線生成情報取得部32は、イベント受付部31からイベント情報EM1を受けると、ディスク14に保存された対応情報101(
図7参照)を参照する。そして、包絡線生成情報取得部32は、イベント情報EM1に基づいて、「001」の「イベントID」に対応する包絡線生成情報すなわち包絡線波形情報Env1、開始時刻オフセット情報Ts1及び重みづけ情報w1をディスク14から取得する。
【0066】
包絡線生成情報取得部32は、イベント情報EM1の示すイベントE1の開始時刻及び開始時刻オフセット情報Ts1の示す値に基づいて、イベント別力覚振幅エンベロープ71Pを開始すべき時刻(以下、第1設定時刻と称することがある。)を算出する。
【0067】
包絡線生成情報取得部32は、第1設定時刻、包絡線波形情報Env1及び重みづけ情報w1を含む第1包絡線設定情報を生成して現在振幅算出部33へ出力する。
【0068】
また、包絡線生成情報取得部32は、イベント受付部31からイベント情報EM2を受けると、ディスク14に保存された対応情報101を参照する。そして、包絡線生成情報取得部32は、イベント情報EM2に基づいて、「002」の「イベントID」に対応する包絡線生成情報すなわち包絡線波形情報Env2、開始時刻オフセット情報Ts2及び重みづけ情報w2をディスク14から取得する。
【0069】
包絡線生成情報取得部32は、イベント情報EM2の示すイベントE2の開始時刻及び開始時刻オフセット情報Ts2の示す値に基づいて、イベント別力覚振幅エンベロープ71Mを開始すべき時刻(以下、第2設定時刻と称することがある。)を算出する。
【0070】
包絡線生成情報取得部32は、第2設定時刻を示す設定時刻情報、包絡線波形情報Env2及び重みづけ情報w2を含む第2包絡線設定情報を生成して現在振幅算出部33へ出力する。
【0071】
現在振幅算出部33は、包絡線生成情報取得部32から第1包絡線設定情報を受けると、受けた第1包絡線設定情報に含まれる第1設定時刻及び包絡線波形情報Env1に基づいて、イベント別力覚振幅エンベロープ71P(
図8参照)の開始時刻及び終了時刻を算出する。そして、現在振幅算出部33は、当該開始時刻から当該終了時刻までの発生期間(以下、波形信号発生期間Tpと称することがある。)を設定する。
【0072】
また、現在振幅算出部33は、第1包絡線設定情報に含まれる重みづけ情報w1に基づいて、イベント別力覚振幅エンベロープ71Pの振幅を重みづけする処理を行う。本実施形態では、重みづけ情報w1の示す値が1なので、イベント別力覚振幅エンベロープ71Pの振幅は、当該処理の前後で同じである。
【0073】
現在振幅算出部33は、包絡線生成情報取得部32から第2包絡線設定情報を受けると、受けた第2包絡線設定情報に含まれる第2設定時刻及び包絡線波形情報Env2に基づいて、イベント別力覚振幅エンベロープ71M(
図9参照)の開始時刻及び終了時刻を算出する。そして、現在振幅算出部33は、当該開始時刻から当該終了時刻までの発生期間(以下、波形信号発生期間Tmと称することがある。)を設定する。
【0074】
また、現在振幅算出部33は、第2包絡線設定情報に含まれる重みづけ情報w2に基づいて、イベント別力覚振幅エンベロープ71Mの振幅を重みづけする処理を行う。本実施形態では、重みづけ情報w2の示す値が1なので、イベント別力覚振幅エンベロープ71Mの振幅は、当該処理の前後で同じである。
【0075】
現在振幅算出部33は、例えば、所定時間ごとの確認時刻を設定する。現在振幅算出部33は、カウンタ34におけるカウント値すなわち現在時刻を監視し、確認時刻が到来すると、波形信号発生期間の重なりが存在するか否かを確認する。
【0076】
ここで、波形信号発生期間の重なりが存在するということは、波形信号発生期間TpまたはTmが終了する前に、次の波形信号発生期間TpまたはTmが開始することを意味する。一方、波形信号発生期間の重なりが存在しないということは、波形信号発生期間TpまたはTmが終了した後に、次の波形信号発生期間TpまたはTmが開始することを意味する。
【0077】
現在振幅算出部33は、波形信号発生期間の重なりが存在しないことを確認した場合、イベント別力覚振幅エンベロープ71Pまたは71Mの現在時刻における振幅(以下、包絡線現在振幅と称することがある。)の値を取得し、取得した包絡線現在振幅の値を変調部35へ出力する。
【0078】
図10は、本発明の第1実施形態に係る信号生成装置によって合成処理されるイベント別力覚振幅エンベロープの一例を示す図である。なお、
図10において、各横軸は時間を示し、各縦軸は振幅を示す。
【0079】
図10には、イベント別力覚振幅エンベロープ71Pa(第1包絡線)と、イベント別力覚振幅エンベロープ71Pb(第2包絡線)と、が示される。ここで、イベント別力覚振幅エンベロープ71Paは、イベントE1(第1事象)に対応する波形信号75d(第1波形信号)の包絡線である。イベント別力覚振幅エンベロープ71Pbは、当該イベントE1より後に発生した、別のイベントE1(第2事象)に対応する波形信号75e(第2波形信号)の包絡線である。
図10では、イベント別力覚振幅エンベロープ71Paの符号とイベント別力覚振幅エンベロープ71Pbの符号とは同じである。
【0080】
イベント別力覚振幅エンベロープ71Paの生成に用いた第1包絡線設定情報に含まれる第1設定時刻及び包絡線波形情報Env1が、イベント別力覚振幅エンベロープ71Paを示す第1包絡線情報P1である。イベント別力覚振幅エンベロープ71Pbの生成に用いた第1包絡線設定情報に含まれる第1設定時刻及び包絡線波形情報Env1が、イベント別力覚振幅エンベロープ71Pbを示す第2包絡線情報P2である。この場合、第1包絡線情報P1と第2包絡線情報P2とでは、第1設定時刻が異なる。
【0081】
イベント別力覚振幅エンベロープ71Pbの波形信号発生期間Tpbの開始時刻t2(第2タイミング)は、イベント別力覚振幅エンベロープ71Paの波形信号発生期間Tpaの開始時刻t1(第1タイミング)と波形信号発生期間Tpaの終了時刻t3との間にある。なお、
図10では、開始時刻t2は、開始時刻t1に対して、波形信号75dの半周期分だけ後の時刻となっている。
【0082】
図6及び
図10に示すように、現在振幅算出部33は、波形信号発生期間の重なりが存在することを確認した場合、イベント別力覚振幅エンベロープ71Paとイベント別力覚振幅エンベロープ71Pbとを合成する(重ね合わせる)ことにより合成エンベロープ(合成包絡線)72aを生成する。
【0083】
ここで、合成エンベロープ72aは、開始時刻t1から開始時刻t2まで、イベント別力覚振幅エンベロープ71Paの振幅と同じ振幅を有する。また、合成エンベロープ72aは、開始時刻t2から終了時刻t3まで、イベント別力覚振幅エンベロープ71Paの振幅とイベント別力覚振幅エンベロープ71Pbの振幅とを足し合わせた振幅すなわちイベント別力覚振幅エンベロープ71Paの振幅の2倍の振幅を有する。また、合成エンベロープ72aは、終了時刻t3から波形信号発生期間Tpbの終了時刻t4まで、イベント別力覚振幅エンベロープ71Pbの振幅と同じ振幅を有する。
【0084】
現在振幅算出部33は、合成エンベロープ72aの包絡線現在振幅の値を取得し、取得した包絡線現在振幅の値を変調部35へ出力する。
【0085】
図11は、本発明の第1実施形態に係る信号生成装置によって合成処理されるイベント別力覚振幅エンベロープの一例を示す図である。なお、
図11において、各横軸は時間を示し、各縦軸は振幅を示す。
【0086】
図11には、イベント別力覚振幅エンベロープ71Pc(第1包絡線)と、イベント別力覚振幅エンベロープ71Ma(第2包絡線)と、が示される。ここで、イベント別力覚振幅エンベロープ71Pcは、イベントE1(第1事象)に対応する波形信号75f(第1波形信号)の包絡線である。イベント別力覚振幅エンベロープ71Maは、当該イベントE1より後に発生した、イベントE2(第2事象)に対応する波形信号75g(第2波形信号)の包絡線である。
図11では、イベント別力覚振幅エンベロープ71Pcの符号とイベント別力覚振幅エンベロープ71Maの符号とは異なる。
【0087】
イベント別力覚振幅エンベロープ71Pcの生成に用いた第1包絡線設定情報に含まれる第1設定時刻及び包絡線波形情報Env1が、イベント別力覚振幅エンベロープ71Pcを示す第1包絡線情報Q1である。イベント別力覚振幅エンベロープ71Maの生成に用いた第2包絡線設定情報に含まれる第2設定時刻及び包絡線波形情報Env2が、イベント別力覚振幅エンベロープ71Maを示す第2包絡線情報Q2である。この場合、第1包絡線情報P1と第2包絡線情報P2とでは、第1設定時刻及び包絡線波形情報の両方が異なる。
【0088】
イベント別力覚振幅エンベロープ71Maの波形信号発生期間Tmaの開始時刻t6(第2タイミング)は、イベント別力覚振幅エンベロープ71Pcの波形信号発生期間Tpcの開始時刻t5(第1タイミング)と波形信号発生期間Tpcの終了時刻t7との間にある。なお、
図11では、開始時刻t6は、開始時刻t5に対して、波形信号75fの半周期分だけ後の時刻となっている。
【0089】
図6及び
図11に示すように、現在振幅算出部33は、波形信号発生期間の重なりが存在することを確認した場合、イベント別力覚振幅エンベロープ71Pcとイベント別力覚振幅エンベロープ71Maとを合成する(重ね合わせる)ことにより合成エンベロープ(合成包絡線)72bを生成する。
【0090】
ここで、合成エンベロープ72bは、開始時刻t5から開始時刻t6まで、イベント別力覚振幅エンベロープ71Pcの振幅と同じ振幅を有する。また、合成エンベロープ72bは、開始時刻t6から終了時刻t7まで、イベント別力覚振幅エンベロープ71Pcの振幅とイベント別力覚振幅エンベロープ71Maの振幅とを足し合わせた振幅すなわちゼロを有する。また、合成エンベロープ72bは、終了時刻t7から波形信号発生期間Tmaの終了時刻t8まで、イベント別力覚振幅エンベロープ71Maの振幅と同じ振幅を有する。
【0091】
現在振幅算出部33は、合成エンベロープ72bの包絡線現在振幅の値を取得し、取得した包絡線現在振幅の値を変調部35へ出力する。
【0092】
図12は、本発明の第1実施形態に係る信号生成装置が保持する単位力覚波の一例を示す図である。
図13は、本発明の第1実施形態に係る波形信号発生期間の重なりない場合の波形信号の一例を示す図である。なお、
図12及び
図13において、横軸は時間を示し、縦軸は振幅を示す。
【0093】
図12及び
図13に示すように、本実施形態では、力覚波74は、周期Puを有する。また、力覚波74は、波形信号発生期間Tp、Tpa、Tpb、Tpc及びTmaにおいて振動する波である。
図12には、1周期分の力覚波(以下、単位力覚波73と称することがある。)が示される。本実施形態では、力覚波74は、周期Puを有する矩形波である。なお、単位力覚波73の形状は、矩形波に限らず、任意の形状を有してもよい。
【0094】
図6及び
図12に示すように、単位力覚波73の周期及び形状を示す単位力覚波情報は、例えば、ディスク14に予め保存されている。単位力覚波情報は、力覚波の波形を作成するためのデータであり、具体的には、例えば、時刻と当該時刻における振幅との組を時系列順に並べたデータである。なお、単位力覚波情報は、例えば、力覚波の波形をスプライン曲線によって生成する場合において、当該スプライン曲線に用いる制御点の時刻と当該時刻における振幅との組を示すデータであってもよい。単位力覚波情報取得部36は、ディスク14から単位力覚波情報を取得し、取得した単位力覚波情報を変調部35へ出力する。
【0095】
図13には、例えば、現在振幅算出部33が波形信号発生期間の重なりが存在しないことを確認した場合において、イベント別力覚振幅エンベロープ71P(
図8参照)の包絡線現在振幅の値が変調部35へ出力されるときの、イベント別力覚振幅エンベロープ71P、力覚波74及び波形信号75aが示される。
【0096】
図14は、本発明の第1実施形態に係る波形信号発生期間の重なりがある場合における波形信号の一例を示す図である。なお、
図14において、各横軸は時間を示し、各縦軸は振幅を示す。
図14には、例えば、現在振幅算出部33が波形信号発生期間の重なりが存在することを確認した場合において、合成エンベロープ72a(
図10参照)の包絡線現在振幅の値が変調部35へ出力されるときの、合成エンベロープ72a、力覚波74及び波形信号75bが示される。
【0097】
図15は、本発明の第1実施形態に係る波形信号発生期間の重なりがある場合における波形信号の一例を示す図である。なお、
図15において、各横軸は時間を示し、各縦軸は振幅を示す。
図15には、例えば、現在振幅算出部33が波形信号発生期間の重なりが存在することを確認した場合において、合成エンベロープ72b(
図11参照)の包絡線現在振幅の値が変調部35へ出力されるときの、合成エンベロープ72b、力覚波74及び波形信号75cが示される。
【0098】
図6及び
図12~
図15に示すように、変調部35は、合成エンベロープによって周期的な力覚波を変調して波形信号を生成する。本実施形態では、変調部35は、単位力覚波情報取得部36から単位力覚波情報を受けて、受けた単位力覚波情報に基づいて単位力覚波73を生成する。変調部35は、単位力覚波73を周期Puごとに生成することにより、単位力覚波73が連続する力覚波74を生成する(
図13~
図15参照)。
【0099】
変調部35は、現在時刻の経過とともに、現在振幅算出部33から受けるイベント別力覚振幅エンベロープ71P、合成エンベロープ72aまたは合成エンベロープ72bの包絡線現在振幅の値によって力覚波74を変調し、波形信号75a、75bまたは75cをそれぞれ生成する。変調部35における変調は、例えばデジタル変調である。なお、変調部35における変調は、アナログ変調であってもよい。変調部35は、生成した波形信号75a、75bまたは75cの現在時刻における振幅(以下、信号現在振幅と称することがある。)の値を取得して出力部37へ出力する。
【0100】
出力部37は、変調部35から信号現在振幅の値を受けると、受けた信号現在振幅の値をデジタル符号化することによってハプティクス情報を生成し、生成したハプティクス情報を通信インターフェース17経由でコントローラ21へ送信する。
【0101】
図10に示すように、波形信号75dと波形信号75eとを単純に重ね合わせて合成する構成では、波形信号75dと波形信号75eとは弱め合いの干渉をしてしまう。これに対して、波形信号発生期間Tpbの開始時刻t2が、波形信号発生期間Tpaの開始時刻t1より遅く、かつ終了時刻t3より早い場合、開始時刻t2と開始時刻t1との差にかかわらず、合成エンベロープ72aは、正方向に尖った凸形状を維持することができる。
そして、
図14に示すように、このような合成エンベロープ72aによって力覚波74を変調する構成により、波形信号75bを生成することができるので、1回目のイベントの開始時刻と2回目のイベントの開始時刻との差にかかわらず、ユーザ6は、期待通りの2段階で前側に引っ張られる力覚を受けることができる。すなわち、課題その1を解決することができる。
【0102】
また、
図11に示すように、波形信号75fと波形信号75gとを単純に重ね合わせて合成する構成では、波形信号75fと波形信号75gとは強め合いの干渉をしてしまう。
これに対して、波形信号発生期間Tmaの開始時刻t6が、波形信号発生期間Tpcの開始時刻t5より遅く、かつ終了時刻t7より早い場合、開始時刻t6と開始時刻t5との差にかかわらず、合成エンベロープ72bは、開始時刻t6と終了時刻t7との間における振幅がゼロとなる形状を維持することができる。そして、
図15に示すように、このような合成エンベロープ72bによって力覚波74を変調する構成により、波形信号75cを生成することができるので、1回目のイベントの開始時刻と2回目のイベントの開始時刻との差にかかわらず、ユーザ6は、期待通りの弱い力覚を受けることができる。すなわち、課題その2を解決することができる。したがって、2つ以上のイベントの開始時刻にかかわらず、ユーザ6が受ける力覚を安定させることができる。
【0103】
[信号生成処理]
図16は、本発明の第1実施形態に係る信号生成装置がイベント情報処理を行う際の動作手順を定めたフローチャートである。
【0104】
図16に示すように、まず、信号生成装置1におけるイベント受付部31は、ゲームプログラムからイベント情報を受けるまで待機する(ステップS102でNO)。
【0105】
次に、イベント受付部31は、ゲームプログラムからイベント情報を受けると(ステップS102でYES)、受けたイベント情報を包絡線生成情報取得部32へ出力する。包絡線生成情報取得部32は、イベント受付部31からイベント情報を受けると、受けたイベント情報の示すイベントのIDに対応する包絡線生成情報をディスク14から取得する(ステップS104)。
【0106】
次に、包絡線生成情報取得部32は、取得した包絡線生成情報及びイベント情報に基づいてイベント別力覚振幅エンベロープを開始すべき時刻を算出する(ステップS106)。
【0107】
次に、包絡線生成情報取得部32は、包絡線生成情報に基づいて、イベント別力覚振幅エンベロープを開始すべき時刻、包絡線波形情報及び重みづけ情報を含む包絡線設定情報を生成して現在振幅算出部33へ出力する(ステップS108)。
【0108】
次に、現在振幅算出部33は、包絡線生成情報取得部32から包絡線設定情報を受けると、包絡線設定情報に基づいて波形信号発生期間を設定する(ステップS110)。
【0109】
次に、現在振幅算出部33は、包絡線設定情報に含まれる重みづけ情報に基づいて、包絡線設定情報に含まれる包絡線波形情報の示すイベント別力覚振幅エンベロープの振幅を重みづけする(ステップS112)。
【0110】
次に、イベント受付部31は、ゲームプログラムから新たなイベント情報を受けるまで待機する(ステップS102でNO)。
【0111】
なお、上記ステップS110およびS112の順番は、上記に限らず、順番を入れ替えてもよい。
【0112】
図17は、本発明の第1実施形態に係る信号生成装置が波形信号生成処理を行う際の動作手順を定めたフローチャートである。
【0113】
図17に示すように、まず、信号生成装置1における現在振幅算出部33は、確認時刻が到来すると(ステップS202でYES)、互いに重なっている波形信号発生期間が存在しているか否かを確認する(ステップS204)。
【0114】
現在振幅算出部33は、互いに重なっている波形信号発生期間が存在していない場合(ステップS204でNO)、イベント別力覚振幅エンベロープの包絡線現在振幅を取得し、包絡線現在振幅の値を変調部35へ出力する(ステップS206)。
【0115】
一方、現在振幅算出部33は、互いに重なっている波形信号発生期間が存在している場合、合成エンベロープを生成して当該合成エンベロープの包絡線現在振幅を取得し、包絡線現在振幅の値を変調部35へ出力する合成処理を行う(ステップS208)。合成処理の詳細については後述する。
【0116】
次に、変調部35は、確認時刻が到来していない場合(ステップS202でNO)、または包絡線現在振幅の値が変調部35へ出力された場合(ステップS206及びS208)、単位力覚波情報取得部36から受けた単位力覚波情報に基づいて、単位力覚波73を周期Puごとに生成することにより力覚波74を生成する(ステップS210)。
【0117】
次に、変調部35は、現在振幅算出部33から受けた包絡線現在振幅の値によって力覚波74を変調し、波形信号を生成する。変調部35は、波形信号の信号現在振幅の値を取得して出力部37へ出力する(ステップS212)。
【0118】
次に、出力部37は、変調部35から信号現在振幅の値を受けると、受けた信号現在振幅の値をデジタル符号化することによってハプティクス情報を生成し、生成したハプティクス情報を通信インターフェース17経由でコントローラ21へ送信する(ステップS214)。
【0119】
ステップS210~S214の処理は、現在振幅算出部33が新たな確認時刻が到来したことを確認するまで(ステップS202でNO)、繰り返される。
【0120】
図18は、本発明の第1実施形態に係る信号生成装置が合成処理を行う際の動作手順を定めたフローチャートである。
図18は、
図17のステップS208における動作の詳細を示している。
【0121】
図18に示すように、例えば、N(2以上の整数)個の波形信号発生期間が互いに重なっている状況を想定する。N個の波形信号発生期間には、N個のイベント別力覚振幅エンベロープがそれぞれ対応する。
【0122】
まず、信号生成装置1における現在振幅算出部33は、例えば、整数iを1に設定するとともに、合成振幅値をゼロにリセットする初期値設定処理を行う(ステップS302)。
【0123】
次に、現在振幅算出部33は、N個の波形信号発生期間のうちのi番目の波形信号発生期間に対応するi番目のイベント別力覚振幅エンベロープを選択する(ステップS304)。
【0124】
次に、現在振幅算出部33は、i番目のイベント別力覚振幅エンベロープの包絡線現在振幅を取得する(ステップS306)。
【0125】
次に、現在振幅算出部33は、取得した包絡線現在振幅を合成振幅値に加える加算処理を行う(ステップS308)。
【0126】
次に、現在振幅算出部33は、整数iをインクリメントする(ステップS310)。
【0127】
次に、現在振幅算出部33は、N個のイベント別力覚振幅エンベロープのすべてを選択したか否かを確認する(ステップS312)。具体的には、現在振幅算出部33は、整数iがNより大きいか否かを確認する。
【0128】
次に、現在振幅算出部33は、N個のイベント別力覚振幅エンベロープのすべてを選択していない場合、すなわち整数iがN以下である場合(ステップS312でNO)、残りの波形信号発生期間のうちのi番目の波形信号発生期間に対応するi番目のイベント別力覚振幅エンベロープを選択する(ステップS304)。
【0129】
一方、現在振幅算出部33は、N個のイベント別力覚振幅エンベロープのすべてを選択した場合、すなわち整数iがNより大きい場合(ステップS312でYES)、合成振幅値すなわち合成エンベロープの包絡線現在振幅の値を変調部35へ出力する(ステップS314)。これにより、合成処理が終了する。
【0130】
なお、本実施形態の信号生成装置1では、重みづけ情報は、予めディスク14に保存された対応情報101に含まれる静的な情報として説明したが、重みづけ情報は、動的な情報であってもよい。具体的には、例えば、ゲームプログラムが重みづけ情報を書き換え可能な構成であってもよい。この場合、ゲームの状況に応じて重みづけ情報の示す値を変更することができるので、ハプティクス提示の優先度をイベントごとに設定し、その優先度をゲームの状況に応じて変更したり、ゲームの状況に応じて力覚の強度の調整をしたりすることができる。
【0131】
また、本実施形態の信号生成装置1では、包絡線生成情報取得部32が、ディスク14から包絡線生成情報を取得してイベント別力覚振幅エンベロープを生成する構成について説明したが、包絡線生成情報取得部32は、複数パターンのイベント別力覚振幅エンベロープを予め生成してメモリ13に保持させておき、必要に応じてイベント別力覚振幅エンベロープをメモリ13から読み出す構成であってもよい。
【0132】
また、本実施形態の信号生成装置1では、現在振幅算出部33が、重みづけされた、2つのイベント別力覚振幅エンベロープを合成して合成エンベロープを生成し、生成した合成エンベロープに基づいて包絡線現在振幅の値を取得する構成について説明したが、これに限定するものではない。現在振幅算出部33は、重みづけせずに2つのイベント別力覚振幅エンベロープを合成して合成エンベロープを生成し、生成した合成エンベロープから包絡線現在振幅の値を取得するときに、以下の処理を行ってもよい。すなわち、現在振幅算出部33は、当該合成エンベロープを構成する各イベント別力覚振幅エンベロープの現在時刻における振幅をそれぞれ重みづけし、重みづけされた各振幅を足し合わせることによって包絡線現在振幅の値を取得する構成であってもよい。
【0133】
また、本実施形態の信号生成装置1では、現在振幅算出部33が、重みづけされた、2つのイベント別力覚振幅エンベロープを合成して合成エンベロープをそのまま用いる構成について説明したが、これに限定するものではない。現在振幅算出部33は、例えば、合成エンベロープの上限を制限するリミッタ処理を行ったり、合成エンベロープの形状を調整する処理を行ったりしてもよい。
【0134】
また、本実施形態の信号生成装置1では、変調部35が、生成した波形信号をそのまま出力部37へ出力する構成について説明したが、これに限定するものではない。変調部35は、例えば、波形信号の上限を制限するリミッタ処理を行ってもよい。
【0135】
また、本実施形態の信号生成装置1では、信号生成装置1が出力する合成エンベロープに基づく波形信号に他の波形信号が重畳してもよい。
【0136】
また、本実施形態の信号生成装置1は、仮想現実内におけるイベントに応じた振動をコントローラ21に発生させる波形信号を生成する構成について説明したが、これに限定するものではない。信号生成装置1は、例えば、建設機械、車両及び飛行機などの操作対象を遠隔からコントローラで操作する場合において、当該操作対象における現実のイベントに応じた振動を当該コントローラに発生させる波形信号を生成する構成であってもよい。
【0137】
また、本実施形態の信号生成装置1では、現在振幅算出部33が、例えば、第1包絡線情報P1及び第2包絡線情報P2に基づいて、イベント別力覚振幅エンベロープ71Pa及び71Pbを合成した合成エンベロープ72aを生成する構成について説明したが、これに限定するものではない。現在振幅算出部33は、3つ以上の包絡線情報に基づいて、3つ以上の包絡線情報のそれぞれ示す3つ以上のイベント別力覚振幅エンベロープを合成して合成エンベロープを生成する構成であってもよい。
【0138】
[第2実施形態]
第2実施形態に係るゲームシステムについて説明する。第2実施形態以降では第1実施形態と共通の事柄についての記述を省略し、異なる点についてのみ説明する。特に、同様の構成による同様の作用効果については実施形態毎には逐次言及しない。
【0139】
第1実施形態に係るゲームシステムでは、ディスク14に予め保存された単位力覚波73を用いて力覚波74を生成する構成について説明したが、第2実施形態に係るゲームシステムでは、力覚波の生成に用いる単位力覚波を変更できる点で第1実施形態に係るゲームシステムと異なる。
【0140】
[課題]
第1実施形態に係るゲームシステム3では、所定の単位力覚波73に基づく力覚波74によって波形信号を生成していたので、ユーザ6によっては満足な力覚を得ることが困難な場合がある。
【0141】
詳細には、矩形波の単位力覚波73を用いて波形信号を生成した場合と、矩形波の単位力覚波73と異なる形状を有する単位力覚波を用いて波形信号を生成した場合とでは、ユーザ6に与える力覚が異なる。
【0142】
また、ユーザ6の力覚についての満足度は、例えば、手の敏感さ、皮膚の厚さ、年齢、性別、体調及び心理状態ならびに朝、昼及び晩などの使用時間帯によって異なる。また、ユーザ6には、力覚感、刺激の強弱、静音性及び電力消費について趣向及び好みがある。
【0143】
すなわち、第1実施形態に係るゲームシステム3では、満足度の高い力覚を与える単位力覚波がユーザ6ごとに異なるにもかかわらず、波形信号の生成に用いる単位力覚波が固定されていたので、当該単位力覚波に基づく力覚に不満を有するユーザ6に対し、満足度を向上させることが困難であった。
【0144】
図19は、本発明の第2実施形態に係るディスクに保存された候補単位力覚波の一例を示す図である。なお、
図19において、各横軸は時間を示し、各縦軸は振幅を示す。
図19には、波形信号の包絡線によって変調される力覚波を生成するための単位力覚波の候補である候補単位力覚波として、単位力覚波73、73a及び73bが示される。
【0145】
図19に示すように、単位力覚波73、73a及び73bは、同じ形状を有する。ここで、2つの単位力覚波が「同じ形状を有する」とは、一方の単位力覚波を、時間軸方向及び振幅軸方向についてそれぞれ独立に伸縮させて、伸縮後の一方の単位力覚波の波形と他方の単位力覚波の波形とを一致させることが可能なことを意味する。本実施形態では、単位力覚波73、73a及び73bは、矩形波である。一方、単位力覚波73、73a及び73bは、基本周波数が異なる。
【0146】
詳細には、単位力覚波73は、
図12に示す単位力覚波73と同じ矩形波である。単位力覚波73aは、単位力覚波73の周期Puより短い周期Pu1を有する。言い換えると、単位力覚波73aは、単位力覚波73の基本周波数より高い基本周波数を有する。
【0147】
単位力覚波73bは、単位力覚波73の周期Puより長い周期Pu2を有する。言い換えると、単位力覚波73bは、単位力覚波73の基本周波数より低い基本周波数を有する。
【0148】
図20は、本発明の第2実施形態に係るディスクに保存された候補単位力覚波の一例を示す図である。なお、
図20において、各横軸は時間を示し、各縦軸は振幅を示す。
図20には、候補単位力覚波として、単位力覚波73、83及び84が示される。
【0149】
図20に示すように、単位力覚波73、83及び84は、同じ周期Puを有する、すなわち同じ基本周波数を有する。一方、単位力覚波73、83及び84は、異なる形状を有する。ここで、2つの単位力覚波が「異なる形状を有する」とは、一方の単位力覚波を、時間軸方向及び振幅軸方向についてそれぞれ独立に伸縮させて、伸縮後の一方の単位力覚波の波形と他方の単位力覚波の波形とを一致させることができないことを意味する。具体的には、単位力覚波73、83及び84は、それぞれ矩形波、鋸波及び三角波である。
【0150】
なお、単位力覚波は、周期的な波であれば、任意の形状を有してもよい。例えば、単位力覚波の形状は、鋸波、矩形波、三角波及び正弦波の一部または全部を組み合わせた波形の形状としてもよい。
【0151】
図21は、本発明の第2実施形態に係るディスクに保存された候補単位力覚波の一例を示す図である。なお、
図21において、各横軸は時間を示し、各縦軸は振幅を示す。
図21には、候補単位力覚波として、単位力覚波73、73c及び73dが示される。
【0152】
図21に示すように、単位力覚波73、73c及び73dは、同じ周期Puを有する、すなわち同じ基本周波数を有する。また、単位力覚波73、73c及び73dは、同じ形状を有する。本実施形態では、単位力覚波73、73c及び73dは、矩形波である。一方、単位力覚波73、73c及び73dは、波形の形状の滑らかさが異なる。
【0153】
詳細には、単位力覚波73は、
図12、
図19及び
図20に示す単位力覚波73と同じ矩形波である。単位力覚波73cは、例えば、単位力覚波73から高周波成分を減じることで角が丸くなった矩形波である。単位力覚波73dは、例えば、単位力覚波73cから高周波成分を減じることで角がさらに丸くなった矩形波である。
【0154】
なお、本実施形態では、矩形波の形状の滑らかさが異なる場合について説明したが、滑らかさを異ならせる単位力覚波は、矩形波に限らず、周期的な波であれば、任意の形状を有してもよい。
【0155】
図2に示すように、ディスク14には、例えば、単位力覚波73、73a、73b、73c、73d、83及び84をそれぞれ示す7つの候補情報が保存されている。各候補情報は、例えば、インデックスによって管理される。なお、ディスク14には、これら7つの候補情報に限らず、他の単位力覚波を示す候補情報が保存されてもよい。また、候補情報は、例えば、単位力覚波情報と同様のデータ形式を有する。
【0156】
[力覚波決定装置の構成]
図22は、本発明の第2実施形態に係る力覚波決定装置の構成を示すブロック図である。力覚波決定装置2は、例えば、コンピュータ11におけるCPU12において、対象プログラムの一例である力覚波決定プログラムを実行させることによって構成されるものである。力覚波決定装置2は、機能ブロックとして、コマンド受付部51と、候補情報処理部52(候補情報取得部及び決定部)と、提示処理部53と、包絡線波形情報取得部55と、操作情報受付部57(選択結果取得部)と、を備える。
【0157】
ゲームプログラム(
図1参照)は、例えば、ユーザ6に単位力覚波を選択させるために、GPU16を制御し、ハプティクスチューニングするためのゲームコンテンツ設定画面またはゲームシステムの設定画面をディスプレイモニタ20に表示させる。このとき、ゲームプログラムは、力覚波決定処理実行命令をコマンド受付部51へ出力する。
【0158】
コマンド受付部51は、ゲームプログラムから力覚波決定処理実行命令を受けると、力覚波決定プログラムを起動し、力覚波決定処理実行命令を候補情報処理部52へ出力する。
【0159】
候補情報処理部52は、コマンド受付部51から力覚波決定処理実行命令を受けると、ディスク14に保存された複数の候補情報の中から、2つの候補情報をディスク14から取得する。
【0160】
2つの候補情報は、例えば、大きく異なる刺激を与える波形信号を生成するための候補情報である。具体的には、2つの候補情報は、例えば、強い刺激を与える波形信号を生成するための第1候補情報、及び弱い刺激を与える波形信号を生成するための第2候補情報である。なお、2つの候補情報は、大きく異なる静音性を与える波形信号を生成するための候補情報であってもよい。また、2つの候補情報は、刺激及び静音性に限らず、大きく異なる、消費電力、基本周波数または波形の形状の滑らかさを与える波形信号を生成するための候補情報であってもよい。
【0161】
候補情報処理部52は、例えば、第1候補情報を提示処理部53に出力する。なお、このとき、候補情報処理部52は、GPU16を制御し、第1候補情報の示す単位力覚波に基づく振動(以下、第1候補振動と称することがある。)をコントローラ21に発生させている旨をディスプレイモニタ20に表示させてもよい。
【0162】
包絡線波形情報取得部55は、ディスク14に保存された対応情報101(
図7参照)を参照し、包絡線波形情報をディスク14から取得する。包絡線波形情報取得部55が取得する包絡線波形情報は、例えば、初期設定で定められたイベントIDに対応する包絡線波形情報である。なお、包絡線波形情報は、ゲームプログラムによって指定されたものであってもよい。包絡線波形情報取得部55は、取得した包絡線波形情報を提示処理部53へ出力する。
【0163】
提示処理部53は、候補情報処理部52から第1候補情報を受けると、第1候補情報及び包絡線波形情報取得部55から受ける包絡線波形情報に基づいてハプティクス情報を生成し、生成したハプティクス情報を通信インターフェース17経由でコントローラ21へ送信する。これにより、コントローラ21には、第1候補振動が発生する。
【0164】
候補情報処理部52は、第1候補情報を提示処理部53に出力してから所定の待機時間Wが経過すると、第2候補情報を提示処理部53に出力する。これにより、コントローラ21には、第2候補情報の示す単位力覚波に基づく振動(以下、第2候補振動と称することがある。)が発生する。なお、このとき、候補情報処理部52は、GPU16を制御し、第2候補振動をコントローラ21に発生させている旨をディスプレイモニタ20に表示させてもよい。
【0165】
ここで、待機時間Wは、例えば、包絡線波形情報の示すイベント別力覚振幅エンベロープの波形信号発生期間の長さより長く設定される。これにより、第1候補振動と第2候補振動とが同時に発生してしまうことを抑制することができる。
【0166】
候補情報処理部52は、第2候補情報を提示処理部53に出力してから待機時間Wが経過すると、GPU16を制御し、最初に発生した第1候補振動及び最後に発生した第2候補振動のいずれか一方の選択をユーザ6に促進する旨をディスプレイモニタ20に表示させる。
【0167】
図23は、本発明の第2実施形態に係る力覚波決定装置における提示処理部の構成を示すブロック図である。
図24は、本発明の第2実施形態に係るイベント別力覚振幅エンベロープ、第2候補力覚波及び波形信号の一例を示す図である。なお、
図24において、各横軸は時間を示し、各縦軸は振幅を示す。
図24には、
図13に示したイベント別力覚振幅エンベロープ71Pと、力覚波74dと、波形信号75hと、が示される。
【0168】
図13、
図23及び
図24に示すように、提示処理部53は、機能ブロックとして、カウンタ34と、変調部35と、出力部37(振動発生部)と、現在振幅算出部63と、を含む。
【0169】
現在振幅算出部63は、包絡線波形情報取得部55から包絡線波形情報を受けると、カウンタ34におけるカウント値すなわち現在時刻を監視し、確認時刻が到来すると、包絡線波形情報の示すイベント別力覚振幅エンベロープ(例えば、
図13及び
図24に示すイベント別力覚振幅エンベロープ71P)の包絡線現在振幅の値を取得する。現在振幅算出部63は、取得した包絡線現在振幅の値を変調部35へ出力する。
【0170】
変調部35は、候補情報処理部52から第1候補情報を受けると、第1候補情報の示す単位力覚波(例えば、
図13に示す単位力覚波73)をその周期(例えば周期Pu)ごとに生成することにより、当該単位力覚波が連続する力覚波(以下、第1候補力覚波と称することがある。)(例えば、
図13に示す力覚波74)を生成する。
【0171】
変調部35は、現在時刻の経過とともに、現在振幅算出部63から受ける包絡線現在振幅の値によって第1候補力覚波を変調し、波形信号(以下、第1波形信号と称することがある。)(例えば、
図13に示す波形信号75a)を生成する。変調部35は、第1波形信号の信号現在振幅の値を出力部37へ出力する。
【0172】
また、変調部35は、候補情報処理部52から第2候補情報を受けると、第2候補情報の示す単位力覚波(例えば、
図21及び
図24に示す単位力覚波73d)をその周期(例えば周期Pu)ごとに生成することにより、当該単位力覚波が連続する力覚波(以下、第2候補力覚波と称することがある。)(例えば、
図24に示す力覚波74d)を生成する。
【0173】
変調部35は、現在時刻の経過とともに、現在振幅算出部63から受ける包絡線現在振幅の値によって第2候補力覚波を変調し、波形信号(以下、第2波形信号と称することがある。)(例えば、
図24に示す波形信号75h)を生成する。変調部35は、第2波形信号の信号現在振幅の値を出力部37へ出力する。
【0174】
出力部37は、第1波形信号に基づく振動すなわち第1候補振動、及び第2波形信号に基づく振動すなわち第2候補振動をそれぞれコントローラ21に発生させる。本実施形態では、出力部37は、変調部35から信号現在振幅の値を受けると、受けた信号現在振幅の値をデジタル符号化することによってハプティクス情報を生成し、生成したハプティクス情報を通信インターフェース17経由でコントローラ21へ送信する。
【0175】
図22に示すように、操作情報受付部57は、第1候補振動及び第2候補振動について、ユーザ6による選択結果を取得する。
【0176】
本実施形態では、ユーザ6は、例えば、コントローラ21を手で持ちながらディスプレイモニタ20を見ている。ユーザ6は、コントローラ21に最初に発生する第1候補振動、及び最後に発生する第2候補振動に基づいて、第1候補振動による力覚(以下、第1力覚と称することがある。)及び第2候補振動による力覚(以下、第2力覚と称することがある。)をそれぞれ認識する。
【0177】
ユーザ6は、第1力覚及び第2力覚のうち、自己の趣向及び好みに合った力覚を発生させた振動を選択する操作をコントローラ21に対して行う。具体的には、ユーザ6は、最初に発生した第1候補振動及び最後に発生した第2候補振動のいずれか一方を選択する操作をコントローラ21に対して行う。
【0178】
コントローラ21は、ユーザ6による操作結果を示す操作情報を生成して操作情報受付部57へ送信する。操作情報受付部57は、コントローラ21から操作情報を受信すると、受信した操作情報を候補情報処理部52へ出力する。
【0179】
候補情報処理部52は、操作情報受付部57によって取得された操作情報に基づいて力覚波を決定する。本実施形態では、候補情報処理部52は、例えば、最初に発生した第1候補振動がユーザ6によって選択されたことを操作情報が示す場合、弱い刺激を与える波形信号を生成するための第2候補情報を破棄する。そして、候補情報処理部52は、ディスク14に保存された複数の候補情報の中から、当該弱い刺激と比べて少し強い刺激を与える波形信号を生成するための新たな第2候補情報をディスク14から取得する。
【0180】
候補情報処理部52は、破棄しなかった第1候補情報を提示処理部53に出力する。そして、候補情報処理部52は、第1候補情報を提示処理部53に出力してから待機時間Wが経過すると、新たな第2候補情報を提示処理部53に出力する。
【0181】
一方、候補情報処理部52は、例えば、最後に発生した第2候補振動がユーザ6によって選択されたことを操作情報が示す場合、強い刺激を与える波形信号を生成するための第1候補情報を破棄する。そして、候補情報処理部52は、ディスク14に保存された複数の候補情報の中から、当該強い刺激と比べて少し弱い刺激を与える波形信号を生成するための新たな第1候補情報をディスク14から取得する。
【0182】
候補情報処理部52は、新たな第1候補情報を提示処理部53に出力する。そして、候補情報処理部52は、新たな第1候補情報を提示処理部53に出力してから待機時間Wが経過すると、破棄しなかった第2候補情報を提示処理部53に出力する。
【0183】
また、候補情報処理部52は、所定条件を満たした場合、単位力覚波の選択が十分に絞られたと判断し、ゲームプログラムで使用すべき単位力覚波を決定する。そして、候補情報処理部52は、当該単位力覚波を示す候補情報を単位力覚波情報としてディスク14に保存(登録)するとともに、力覚波を決定した旨を示す決定情報をゲームプログラムへ出力する。ゲームプログラムは、例えば、候補情報処理部52から決定情報を受けると、GPU16を制御し、ディスプレイモニタ20の表示内容をゲームコンテンツ設定画面またはゲームシステムの設定画面からゲームの実行画面に切り替える。
【0184】
ここで、所定条件は、例えば、ユーザ6の趣向及び好みに合った刺激を与える波形信号を生成する候補情報が決定できたことである。なお、所定条件は、ディスク14に保存された複数の候補情報の中に、新たに提示すべき候補情報がなくなったことであってもよい。
【0185】
[力覚波決定処理]
図25は、本発明の第2実施形態に係る力覚波決定装置が力覚波決定処理を行う際の動作手順を定めたフローチャートである。
【0186】
図25に示すように、まず、力覚波決定装置2におけるコマンド受付部51がゲームプログラムから力覚波決定処理実行命令を受け付け、力覚波決定プログラムが起動した状況を想定する。
【0187】
候補情報処理部52は、コマンド受付部51から力覚波決定処理実行命令を受けると、ディスク14に保存された複数の候補情報の中から、2つの候補情報をディスク14から取得する(ステップS402)。
【0188】
次に、候補情報処理部52は、取得した2つの候補情報のうちの第1候補情報を提示処理部53に出力する。提示処理部53は、候補情報処理部52から第1候補情報を受けると、第1候補情報及び包絡線波形情報に基づいてコントローラ21に第1候補振動を発生させる。これにより、第1候補振動に基づくハプティクス提示が行われる(ステップS404)。
【0189】
次に、候補情報処理部52は、第1候補情報を提示処理部53に出力してから待機時間Wが経過すると、取得した2つの候補情報のうちの第2候補情報を提示処理部53に出力する。提示処理部53は、候補情報処理部52から第2候補情報を受けると、第2候補情報及び包絡線波形情報に基づいてコントローラ21に第2候補振動を発生させる。これにより、第2候補振動に基づくハプティクス提示が行われる(ステップS406)。
【0190】
次に、候補情報処理部52は、第2候補情報を提示処理部53に出力してから待機時間Wが経過すると、GPU16を制御し、最初に発生した第1候補振動及び最後に発生した第2候補振動のいずれか一方の選択をユーザ6に促進する旨をディスプレイモニタ20に表示させる(ステップS408)。
【0191】
次に、操作情報受付部57は、コントローラ21から操作情報を受信するまで待機する(ステップS410でNO)。そして、操作情報受付部57は、コントローラ21から操作情報を受信すると(ステップS410でYES)、受信した操作情報を候補情報処理部52へ出力する。
【0192】
次に、候補情報処理部52は、操作情報受付部57から操作情報を受けると、操作情報に基づいて、単位力覚波の選択が十分に絞られたか否かを判断する(ステップS412)。
【0193】
候補情報処理部52は、単位力覚波の選択が十分に絞られていないと判断した場合(ステップS412でNO)、ユーザ6に選択されなかった候補情報を破棄し、新たな候補情報をディスク14から取得する(ステップS416)。
【0194】
次に、候補情報処理部52は、新たな候補情報とユーザ6に選択された候補情報とのうちの第1候補情報を提示処理部53に出力する。提示処理部53は、候補情報処理部52から第1候補情報を受けると、第1候補情報及び包絡線波形情報に基づいてコントローラ21に第1候補振動を発生させる。これにより、第1候補振動に基づくハプティクス提示が行われる(ステップS404)。
【0195】
一方、候補情報処理部52は、単位力覚波の選択が十分に絞られたと判断した場合(ステップS412でYES)、ゲームプログラムで使用すべき単位力覚波を決定し、当該単位力覚波を示す候補情報を単位力覚波情報としてディスク14に保存する(ステップS414)。
【0196】
候補情報処理部52が、単位力覚波を決定した旨を示す決定情報をゲームプログラムへ出力することにより、力覚波決定処理が終了する。
【0197】
図26は、本発明の第2実施形態に係る力覚波決定装置がインデックスを用いて力覚波決定処理を行う際の動作手順を定めたフローチャートである。
図26に示すフローチャートは、単位力覚波の選択が十分に絞られたか否かの判断にインデックスが用いられる点で
図25に示すフローチャートと異なる。
【0198】
図26に示すように、まず、例えば、M(2以上の整数)個の候補情報がディスク14に保存されており、これらの候補情報が1~Mのインデックスによって管理されている状況を想定する。
【0199】
力覚波決定装置2における候補情報処理部52は、コマンド受付部51から力覚波決定処理実行命令を受けると、整数jを1に設定する初期値設定処理を行う(ステップS500)。
【0200】
次に、候補情報処理部52は、ディスク14に保存されたM個の候補情報の中から、インデックスがjの候補情報とインデックスがj+1の候補情報とをディスク14から取得する(ステップS502)。
【0201】
次に、候補情報処理部52は、インデックスがjの候補情報を第1候補情報として提示処理部53に出力する。提示処理部53は、候補情報処理部52から第1候補情報を受けると、第1候補情報及び包絡線波形情報に基づいてコントローラ21に第1候補振動を発生させる。これにより、第1候補振動に基づくハプティクス提示が行われる(ステップS504)。
【0202】
次に、候補情報処理部52は、第1候補情報を提示処理部53に出力してから待機時間Wが経過すると、インデックスがj+1の候補情報を第2候補情報として提示処理部53に出力する。提示処理部53は、候補情報処理部52から第2候補情報を受けると、第2候補情報及び包絡線波形情報に基づいてコントローラ21に第2候補振動を発生させる。
これにより、第2候補振動に基づくハプティクス提示が行われる(ステップS506)。
【0203】
次に、候補情報処理部52は、第1候補情報を提示処理部53に出力してから待機時間Wが経過すると、GPU16を制御し、最初に発生した第1候補振動及び最後に発生した第2候補振動のいずれか一方の選択をユーザ6に促進する旨をディスプレイモニタ20に表示させる(ステップS508)。
【0204】
次に、操作情報受付部57は、コントローラ21から操作情報を受信するまで待機する(ステップS510でNO)。そして、操作情報受付部57は、コントローラ21から操作情報を受信すると(ステップS510でYES)、受信した操作情報を候補情報処理部52へ出力する。
【0205】
次に、候補情報処理部52は、操作情報受付部57から操作情報を受けると、整数jとMとが等しいか否かを判定する(ステップS512)。
【0206】
候補情報処理部52は、整数jとMとが等しくないと判定した場合(ステップS512でNO)、整数jをインクリメントする(ステップS516)。
【0207】
次に、候補情報処理部52は、ユーザ6に選択されなかった候補情報を破棄し、インデックスがj+1の候補情報をディスク14から取得する(ステップS518)。
【0208】
次に、候補情報処理部52は、インデックスがj+1の候補情報とユーザ6に選択された候補情報とのうちの一方である第1候補情報を提示処理部53に出力する。提示処理部53は、候補情報処理部52から第1候補情報を受けると、第1候補情報及び包絡線波形情報に基づいてコントローラ21に第1候補振動を発生させる。これにより、第1候補振動に基づくハプティクス提示が行われる(ステップS504)。
【0209】
一方、候補情報処理部52は、整数jとMとが等しいと判定した場合(ステップS512でYES)、ゲームプログラムで使用すべき単位力覚波を決定し、当該単位力覚波を示す候補情報を単位力覚波情報としてディスク14に保存する(ステップS514)。
【0210】
候補情報処理部52が、単位力覚波を決定した旨を示す決定情報をゲームプログラムへ出力することにより、力覚波決定処理が終了する。
【0211】
なお、本実施形態の力覚波決定装置2では、ユーザ6が、最初に発生した第1候補振動及び最後に発生した第2候補振動のいずれか一方を選択する構成について説明したがこれに限定するものではない。例えば、ユーザ6の趣向及び好みを学習したAI(Artificial Intelligence)が、最初に発生した第1候補振動及び最後に発生した第2候補振動のいずれか一方を選択する構成であってもよい。これにより、ユーザ6に負担をかけることなく、ユーザ6の趣向及び好みに合った単位力覚波を短時間で決定することができる。
【0212】
また、本実施形態の力覚波決定装置2では、候補情報及び単位力覚波情報が、単位力覚波を示す構成について説明したが、これに限定するものではない。候補情報及び単位力覚波情報は、複数の当該単位力覚波が連続する力覚波を示す構成であってもよい。
【0213】
また、本実施形態の力覚波決定装置2では、最初に発生した第1候補振動及び最後に発生した第2候補振動の2つをユーザ6に提示する構成について説明したが、これに限定するものではない。力覚波決定装置2は、3つ以上の候補振動をユーザ6に提示し、ユーザ6がこれらの候補振動の中から選択する構成であってもよい。
【0214】
また、第1実施形態の信号生成装置1及び本実施形態の力覚波決定装置2では、力覚波が周期的な波である構成について説明したが、これに限定するものではない。力覚波は、周期を有さない波であってもよい。具体的には、力覚波は、例えば、周期Puの単位力覚波73(
図19参照)がK(Kは2以上の整数)個連続した後、周期Pu1の単位力覚波73a(
図19参照)がL(Lは2以上の整数)個連続するような、力覚波の一部が周期的な波である構成であってもよい。つまり、力覚波は、周期を有する波を含む構成であってもよい。また、力覚波は、例えば、単位力覚波73の周期Puがランダムに変化する構成であってもよい。
【0215】
また、本実施形態の力覚波決定装置2では、単位力覚波が、鋸波の単位力覚波83、矩形波の単位力覚波73及び三角波の単位力覚波84(
図20参照)のような、1周期分の波形の形状が点対称及び回転対称となっている構成について説明したが、これに限定するものではない。
図27は、本発明の第2実施形態に係るディスクに保存された候補単位力覚波の変形例を示す図である。
図27に示すように、候補単位力覚波は、単位力覚波85のように、1周期分の波形の形状が、点対称、回転対称または線対称などの対称性を有しない構成すなわち1周期分の波形の形状が非対称となっている構成であってもよい。また、単位力覚波73a、73b、73c、73d、83、84及び85は、第1実施形態の信号生成装置1に用いることが可能である。
【0216】
また、第1実施形態の信号生成装置1及び本実施形態の力覚波決定装置2では、イベント別力覚振幅エンベロープ71P(
図8参照)及び71M(
図9参照)のように、イベント別力覚振幅エンベロープの振幅の符号が、正及び負のいずれか一方となっている構成について説明したが、これに限定するものではない。イベント別力覚振幅エンベロープは、振幅の符号が正となる部分と、振幅の符号が負となる部分とを含む構成であってもよい。
図28は、本発明の第1実施形態及び第2実施形態に係るイベント別力覚振幅エンベロープの変形例を示す図である。
図28に示すように、例えば、イベント別力覚振幅エンベロープ111は、波形信号発生期間Tpmにおいて、振幅の符号が正となる部分111pと、振幅の符号が負となる部分111mとを有する。例えば、イベント別力覚振幅エンベロープ111によって力覚波74が変調されたとき、波形信号115が生成される。
【0217】
以上、本発明の例示的な実施形態について説明した。信号生成装置1は、イベントに応じた振動をコントローラ21に発生させるための波形信号を生成する。信号生成装置1では、包絡線生成情報取得部32は、イベントE1に対応する波形信号75dのイベント別力覚振幅エンベロープ71Paを示す第1包絡線情報P1、及びイベントE1に対応する波形信号75eのイベント別力覚振幅エンベロープ71Pbを示す第2包絡線情報P2を取得する。現在振幅算出部33は、第1包絡線情報P1及び第2包絡線情報P2に基づいて、イベント別力覚振幅エンベロープ71Pa及び71Pbを合成した合成エンベロープ72aを生成する。変調部35は、合成エンベロープ72aによって力覚波74を変調して波形信号75bを生成する。
【0218】
このように、波形信号75dの時間変化より小さい時間変化を有するイベント別力覚振幅エンベロープ71Paと、波形信号75eの時間変化より小さい時間変化を有するイベント別力覚振幅エンベロープ71Pbとを合成した合成エンベロープ72aを生成する構成により、波形信号75dの開始時刻と波形信号75eの開始時刻との差による合成エンベロープ72aの形状の変化を抑制することができる。これにより、2つのイベントの発生時刻がばらつく場合においても、合成エンベロープ72aの形状の変化が抑制されるので、コントローラ21を振動させるための波形信号75bの形状の変化を抑制することができる。したがって、イベントに応じた振動をコントローラ21に発生させるための波形信号を生成する構成において、2つのイベントが発生したときのコントローラ21における振動の態様を安定させることができる。これにより、ユーザ6は期待通りの力覚を受けることができるとともに、良好な力覚によって臨場感を向上させることができる。
【0219】
また、信号生成装置1では、包絡線生成情報取得部32は、イベントE1に対応する波形信号75fのイベント別力覚振幅エンベロープ71Pcを示す第1包絡線情報Q1、及びイベントE2に対応する波形信号75gのイベント別力覚振幅エンベロープ71Maを示す第2包絡線情報Q2を取得する。現在振幅算出部33は、第1包絡線情報Q1及び第2包絡線情報Q2に基づいて、イベント別力覚振幅エンベロープ71Pc及び71Maを合成した合成エンベロープ72bを生成する。変調部35は、合成エンベロープ72bによって力覚波74を変調して波形信号75cを生成する。
【0220】
このように、波形信号75fの時間変化より小さい時間変化を有するイベント別力覚振幅エンベロープ71Pcと、波形信号75gの時間変化より小さい時間変化を有するイベント別力覚振幅エンベロープ71Maとを合成した合成エンベロープ72bを生成する構成により、波形信号75fの開始時刻t5と波形信号75gの開始時刻t6との差による合成エンベロープ72bの形状の変化を抑制することができる。これにより、2つのイベントの発生時刻がばらつく場合においても、合成エンベロープ72bの形状の変化が抑制されるので、コントローラ21を振動させるための波形信号75cの形状の変化を抑制することができる。したがって、イベントに応じた振動をコントローラ21に発生させるための波形信号を生成する構成において、2つのイベントが発生したときのコントローラ21における振動の態様を安定させることができる。これにより、ユーザ6は期待通りの力覚を受けることができるとともに、良好な力覚によって臨場感を向上させることができる。
【0221】
また、信号生成装置1では、イベント別力覚振幅エンベロープ71Paの符号とイベント別力覚振幅エンベロープ71Pbの符号とは同じである。
【0222】
このような構成により、合成エンベロープ72aの振幅を、イベント別力覚振幅エンベロープ71Pa及び71Pbの振幅以上にすることができるので、例えば、同一方向から2回引っ張られたときのように、2つのイベントが重なったときに強め合う効果が求められるイベントに適した波形信号75bを生成することができる。これにより、2つの当該イベントの発生時刻がばらつく場合においても、同一方向に2段階で引っ張られる力覚をユーザ6に安定して与えることができる。
【0223】
また、信号生成装置1では、イベント別力覚振幅エンベロープ71Pcの符号とイベント別力覚振幅エンベロープ71Maの符号とは異なる。
【0224】
このような構成により、合成エンベロープ72bの振幅を、イベント別力覚振幅エンベロープ71Pc及び71Maの振幅以下にすることができるので、例えば、ある方向から引っ張られた後に、反対方向から引っ張られたときのように、2つのイベントが重なったときに弱め合う効果が求められるイベントに適した波形信号75cを生成することができる。これにより、2つの当該イベントの発生時刻がばらつく場合においても、互いに反対方向から引かれた結果として生ずる弱い力覚をユーザ6に安定して与えることができる。
【0225】
また、信号生成装置1では、波形信号75dは、第1包絡線情報P1の生成に用いたイベント情報の示すイベントの開始時刻に基づく時刻t1に開始する。波形信号75eは、第2包絡線情報P2の生成に用いたイベント情報の示すイベントの開始時刻に基づく時刻t2に開始する。現在振幅算出部33は、時刻t1に開始されるイベント別力覚振幅エンベロープ71Pa、及び時刻t2に開始されるイベント別力覚振幅エンベロープ71Pbを合成した合成エンベロープ72aを生成する。
【0226】
このような構成により、イベント別力覚振幅エンベロープ71Paの開始時刻t1を、対応のイベントの開始時刻と同時にしたり、当該開始時刻から遅らせたり早めたりすることができる。同様に、イベント別力覚振幅エンベロープ71Pbの開始時刻t2を、対応のイベントの開始時刻と同時にしたり、当該開始時刻から遅らせたり早めたりすることができる。これにより、イベントの内容に対応する力覚の知覚特性を考慮し、当該内容に合った違和感のない力覚をユーザ6に与えることができる。
【0227】
また、信号生成装置1では、波形信号75fは、第1包絡線情報Q1の生成に用いたイベント情報の示すイベントの開始時刻に基づく時刻t5に開始する。波形信号75gは、第2包絡線情報Q2の生成に用いたイベント情報の示すイベントの開始時刻に基づく時刻t6に開始する。現在振幅算出部33は、時刻t5に開始されるイベント別力覚振幅エンベロープ71Pc、及び時刻t6に開始されるイベント別力覚振幅エンベロープ71Maを合成した合成エンベロープ72bを生成する。
【0228】
このような構成により、イベント別力覚振幅エンベロープ71Pcの開始時刻t5を、対応のイベントの開始時刻と同時にしたり、当該開始時刻から遅らせたり早めたりすることができる。同様に、イベント別力覚振幅エンベロープ71Maの開始時刻t6を、対応のイベントの開始時刻と同時にしたり、当該開始時刻から遅らせたり早めたりすることができる。これにより、イベントの内容に対応する力覚の知覚特性を考慮し、当該内容に合った違和感のない力覚をユーザ6に与えることができる。
【0229】
また、信号生成装置1では、包絡線生成情報取得部32は、イベント別力覚振幅エンベロープ71Pa及び71Pbの重みづけを示す重みづけ情報w1を取得する。現在振幅算出部33は、重みづけ情報w1に基づいて、イベント別力覚振幅エンベロープ71Pa及び71Pbを合成した合成エンベロープ72aを生成する。
【0230】
このような構成により、例えば、イベント別力覚振幅エンベロープ71Paの振幅及びイベント別力覚振幅エンベロープ71Pbの振幅の少なくとも一方を調整して合成エンベロープ72aを合成することができる。これにより、ユーザ6に与える力覚をイベントの内容に応じて調整することができる。また、イベント別力覚振幅エンベロープ71Paの振幅及びイベント別力覚振幅エンベロープ71Pbの振幅の少なくとも一方を動的に調整して合成エンベロープ72aを合成することができる。これにより、ゲームの進行状況またはイベント別力覚振幅エンベロープ71Paと71Pbとの重なり具合などに応じて、ユーザ6に与える力覚を調整することができる。
【0231】
また、信号生成装置1では、包絡線生成情報取得部32は、イベント別力覚振幅エンベロープ71Pc及び71Maの重みづけをそれぞれ示す重みづけ情報w1及びw2を取得する。現在振幅算出部33は、重みづけ情報w1及びw2に基づいて、イベント別力覚振幅エンベロープ71Pc及び71Maを合成した合成エンベロープ72bを生成する。
【0232】
このような構成により、例えば、イベント別力覚振幅エンベロープ71Pcの振幅及びイベント別力覚振幅エンベロープ71Maの振幅の少なくとも一方を調整して合成エンベロープ72bを合成することができる。これにより、ユーザ6に与える力覚をイベントの内容に応じて調整することができる。また、イベント別力覚振幅エンベロープ71Pcの振幅及びイベント別力覚振幅エンベロープ71Maの振幅の少なくとも一方を動的に調整して合成エンベロープ72bを合成することができる。これにより、ゲームの進行状況またはイベント別力覚振幅エンベロープ71Pcと71Maとの重なり具合などに応じて、ユーザ6に与える力覚を調整することができる。
【0233】
また、信号生成装置1では、力覚波74は、イベント別力覚振幅エンベロープ71Paの波形信号発生期間Tpa及びイベント別力覚振幅エンベロープ71Pbの波形信号発生期間Tpb、またはイベント別力覚振幅エンベロープ71Pcの波形信号発生期間Tpc及びイベント別力覚振幅エンベロープ71Maの波形信号発生期間Tmaにおいて振動する波である。
【0234】
このような構成により、力覚波74を合成エンベロープ72a及び72bによって適切に変調し、良好な波形信号75b及び75cを生成することができる。
【0235】
また、信号生成装置1では、力覚波74は、周期Puを有する。
【0236】
このような構成により、データ数の少ない単位力覚波73を連続させる簡易な処理で力覚波74を生成することができる。
【0237】
また、力覚波決定装置2では、候補情報処理部52は、コントローラ21に振動を発生させるための波形信号のイベント別力覚振幅エンベロープ71Pによって変調される力覚波74の候補である第1候補力覚波を示す第1候補情報、及び当該候補であって第1候補力覚波と異なる第2候補力覚波を示す第2候補情報を取得する。変調部35は、第1候補情報及び第2候補情報に基づいて、第1候補力覚波及び第2候補力覚波をそれぞれイベント別力覚振幅エンベロープ71Pによって変調して波形信号75a及び75hを生成する。出力部37は、波形信号75aに基づく第1候補振動及び波形信号75hに基づく第2候補振動をそれぞれコントローラ21に発生させる。操作情報受付部57は、第1候補振動及び第2候補振動のいずれか一方に選択された結果を取得する。そして、候補情報処理部52は、当該結果に基づいて力覚波を決定する。
【0238】
このように、第1候補力覚波に基づく波形信号75aと、第1候補力覚波と異なる第2候補力覚波に基づく波形信号75hとを生成する構成により、波形信号75aに基づく第1候補振動と、波形信号75hに基づく、第1候補振動と異なる第2候補振動とをコントローラ21に発生させることができる。これにより、第1候補振動及び第2候補振動によって異なる力覚を生じさせることができるので、第1候補振動及び第2候補振動のいずれか一方に選択された結果に基づいて、第1候補振動及び第2候補振動のいずれがユーザ6の趣向に合っているかを判断することができる。したがって、ユーザ6の趣向に合った力覚を実現することができる。
【0239】
また、力覚波決定装置2では、力覚波74及び74dは、周期Puを有する。
【0240】
このような構成により、データ数の少ない単位力覚波73及び73dを連続させる簡易な処理で単位力覚波73及び73dを生成することができる。
【0241】
また、力覚波決定装置2では、第1候補力覚波は、例えば、単位力覚波73が連続する力覚波であり、第2候補力覚波は、単位力覚波73aが連続する力覚波である。第1候補力覚波の波形と第2候補力覚波の波形とは同じ形状を有する。そして、第1候補力覚波の基本周波数と第2候補力覚波の基本周波数とは異なる。
【0242】
このように、第1候補力覚波の基本周波数と第2候補力覚波の基本周波数とを異ならせる構成により、ユーザ6の趣向に合う力覚を与える基本周波数を決定することができる。
【0243】
また、力覚波決定装置2では、第1候補力覚波は、例えば、単位力覚波73が連続する力覚波であり、第2候補力覚波は、単位力覚波83が連続する力覚波である。第1候補力覚波の基本周波数と第2候補力覚波の基本周波数とは同じである。そして、第1候補力覚波の波形と第2候補力覚波の波形とは異なる形状を有する。
【0244】
このように、第1候補力覚波の波形と第2候補力覚波の波形とが異なる形状を有する構成により、ユーザ6の趣向に合う力覚を与える力覚波の形状を決定することができる。
【0245】
また、力覚波決定装置2では、第1候補力覚波は、例えば、単位力覚波73が連続する力覚波であり、第2候補力覚波は、単位力覚波73dが連続する力覚波である。第1候補力覚波の基本周波数と第2候補力覚波の基本周波数とは同じである。第1候補力覚波の波形と第2候補力覚波の波形とは同じ形状を有する。そして、第1候補力覚波の波形の形状の滑らかさと第2候補力覚波の波形の形状の滑らかさとは異なる。
【0246】
このように、第1候補力覚波の波形の形状の滑らかさと第2候補力覚波の波形の形状の滑らかさとが異なる構成により、例えば、基本周波数及び波形のパラメータについて最適化された力覚波について、高周波成分の割合を調整することによって力覚波をさらに最適化し、ユーザ6の趣向に合う力覚を与える力覚波を決定することができる。
【0247】
また、力覚波決定装置2では、操作情報受付部57は、第1候補振動及び第2候補振動について、ユーザ6による選択結果を取得する。
【0248】
このような構成により、第1候補振動及び第2候補振動の選択に、ユーザ6の趣向を直接反映させることができるので、ユーザ6の趣向に合わない力覚を与える力覚波を決定することを抑制することができる。
【0249】
また、力覚波決定装置2では、力覚波74及び74dは、イベント別力覚振幅エンベロープ71Pの波形信号発生期間Tpにおいて振動する波である。
【0250】
このような構成により、力覚波74及び74dをイベント別力覚振幅エンベロープ71Pによって適切に変調し、良好な波形信号75a及び75hを生成することができる。
【0251】
なお、以上説明した各実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更/改良され得るとともに、本発明にはその等価物も含まれる。即ち、各実施形態に当業者が適宜設計変更を加えたものも、本発明の特徴を備えている限り、本発明の範囲に包含される。例えば、各実施形態が備える各要素及びその配置、材料、条件、形状、サイズなどは、例示したものに限定されるわけではなく適宜変更することができる。また、各実施形態は例示であり、異なる実施形態で示した構成の部分的な置換又は組み合わせが可能であることは言うまでもなく、これらも本発明の特徴を含む限り本発明の範囲に包含される。
【符号の説明】
【0252】
1…信号生成装置
2…力覚波決定装置
3…ゲームシステム
11…コンピュータ
19…スピーカ
20…ディスプレイモニタ
21…コントローラ
31…イベント受付部
32…包絡線生成情報取得部
33…現在振幅算出部
34…カウンタ
35…変調部
36…単位力覚波情報取得部
37…出力部
51…コマンド受付部
52…候補情報処理部
53…提示処理部
55…包絡線波形情報取得部
57…操作情報受付部
63…現在振幅算出部
71…イベント別力覚振幅エンベロープ
72…合成エンベロープ
73…単位力覚波
74…力覚波
75…波形信号
83、84、85…単位力覚波
101…対応情報
111…イベント別力覚振幅エンベロープ
115…波形信号