IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ソニー・コンピュータエンタテインメントの特許一覧

<>
  • 特許-情報処理装置 図1
  • 特許-情報処理装置 図2
  • 特許-情報処理装置 図3
  • 特許-情報処理装置 図4
  • 特許-情報処理装置 図5
  • 特許-情報処理装置 図6A
  • 特許-情報処理装置 図6B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-26
(45)【発行日】2023-11-06
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
   G06F 9/52 20060101AFI20231027BHJP
   G06F 3/01 20060101ALI20231027BHJP
【FI】
G06F9/52 120Z
G06F3/01 560
【請求項の数】 4
(21)【出願番号】P 2021558195
(86)(22)【出願日】2020-09-29
(86)【国際出願番号】 JP2020036905
(87)【国際公開番号】W WO2021100324
(87)【国際公開日】2021-05-27
【審査請求日】2022-05-13
(31)【優先権主張番号】P 2019209140
(32)【優先日】2019-11-19
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100122275
【弁理士】
【氏名又は名称】竹居 信利
(72)【発明者】
【氏名】中江 正俊
(72)【発明者】
【氏名】今田 好之
【審査官】漆原 孝治
(56)【参考文献】
【文献】特開2017-049704(JP,A)
【文献】特開2011-232948(JP,A)
【文献】特開2000-137621(JP,A)
【文献】特開平06-282445(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/52
G06F 3/01
(57)【特許請求の範囲】
【請求項1】
操作デバイスと接続される情報処理装置であって、
複数のプロセスを並行して実行するプロセス実行部と、
前記操作デバイスに対して、当該操作デバイスが実行すべき制御処理の内容を指示する制御命令を送信する操作デバイス制御部と、
を含み、
前記操作デバイス制御部は、前記複数のプロセスのうちから所与の条件に応じて選択される選択プロセスから前記操作デバイスの動作モードを設定する設定要求を受け付けた場合に、当該設定要求に応じて前記制御命令を送信し、前記選択プロセスとは別のプロセスから前記操作デバイスの動作モードを設定する設定要求を受け付けた場合には、当該設定要求に応じた前記制御命令の送信を制限し、
さらに前記操作デバイス制御部は、前記設定要求に応じて設定された動作モードにおける制御処理の実行状態を示す状態情報を前記操作デバイスから定期的に受信し、前記選択プロセスから前記状態情報の取得要求を受け付けた場合に、当該取得要求に応じて前記操作デバイスから受信した状態情報を提供し、前記選択プロセスとは別のプロセスから前記状態情報の取得要求を受け付けた場合には、当該取得要求に応じた前記状態情報の提供を制限し、
さらに前記操作デバイス制御部は、当該選択プロセスとは別のプロセスから受け付けた動作モードの設定要求に応じた前記制御命令の送信を制限する際に、当該設定要求の内容を保持し、当該別のプロセスが新たに前記選択プロセスとして選択された場合、前記保持されている設定要求に応じて前記制御命令を送信するとともに、当該制御命令の送信後に当該新たな選択プロセスから前記状態情報の取得要求を受け付けた場合には、当該取得要求に応じて前記状態情報を提供する
ことを特徴とする情報処理装置。
【請求項2】
請求項に記載の情報処理装置において、
前記操作デバイス制御部は、前記複数のプロセスのうちユーザーの操作を受け付ける対象となっているプロセスを前記選択プロセスとして選択する
ことを特徴とする情報処理装置。
【請求項3】
操作デバイスと接続される情報処理装置の制御方法であって、
複数のプロセスを並行して実行するステップと、
前記操作デバイスに対して、当該操作デバイスが実行すべき制御処理の内容を指示する制御命令を送信する制御ステップと、
を含み、
前記制御ステップでは、前記複数のプロセスのうちから所与の条件に応じて選択される選択プロセスから前記操作デバイスの動作モードを設定する設定要求を受け付けた場合に、当該設定要求に応じて前記制御命令を送信し、前記選択プロセスとは別のプロセスから前記操作デバイスの動作モードを設定する設定要求を受け付けた場合には、当該設定要求に応じた前記制御命令の送信を制限するとともに、当該設定要求の内容を保持し、
前記設定要求に応じて設定された動作モードにおける制御処理の実行状態を示す状態情報を前記操作デバイスから定期的に受信し、前記選択プロセスから前記状態情報の取得要求を受け付けた場合に、当該取得要求に応じて前記操作デバイスから受信した状態情報を提供し、前記選択プロセスとは別のプロセスから前記状態情報の取得要求を受け付けた場合には、当該取得要求に応じた前記状態情報の提供を制限するステップと、
前記別のプロセスが新たに前記選択プロセスとして選択された場合、前記保持されている設定要求に応じて前記制御命令を送信するとともに、当該制御命令の送信後に当該新たな選択プロセスから前記状態情報の取得要求を受け付けた場合には、当該取得要求に応じて前記状態情報を提供するステップと、
をさらに含むことを特徴とする情報処理装置の制御方法。
【請求項4】
操作デバイスと接続されるコンピュータに、
複数のプロセスを並行して実行するステップと、
前記操作デバイスに対して、当該操作デバイスが実行すべき制御処理の内容を指示する制御命令を送信する制御ステップと、
を実行させるためのプログラムであって、
前記制御ステップでは、前記複数のプロセスのうちから所与の条件に応じて選択される選択プロセスから前記操作デバイスの動作モードを設定する設定要求を受け付けた場合に、当該設定要求に応じて前記制御命令を送信し、前記選択プロセスとは別のプロセスから前記操作デバイスの動作モードを設定する設定要求を受け付けた場合には、当該設定要求に応じた前記制御命令の送信を制限するとともに、当該設定要求の内容を保持し、
前記設定要求に応じて設定された動作モードにおける制御処理の実行状態を示す状態情報を前記操作デバイスから定期的に受信し、前記選択プロセスから前記状態情報の取得要求を受け付けた場合に、当該取得要求に応じて前記操作デバイスから受信した状態情報を提供し、前記選択プロセスとは別のプロセスから前記状態情報の取得要求を受け付けた場合には、当該取得要求に応じた前記状態情報の提供を制限するステップと、
前記別のプロセスが新たに前記選択プロセスとして選択された場合、前記保持されている設定要求に応じて前記制御命令を送信するとともに、当該制御命令の送信後に当該新たな選択プロセスから前記状態情報の取得要求を受け付けた場合には、当該取得要求に応じて前記状態情報を提供するステップと、
をさらに前記コンピュータに実行させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、操作デバイスが受け付けた操作情報に応じた処理を実行する情報処理装置、その制御方法、及びプログラムに関する。
【背景技術】
【0002】
情報処理装置は、接続された操作デバイスに対して、操作フィードバックや振動の発生などの各種の制御を実行させる場合がある。情報処理装置が実行する各プロセスは、このような制御の実行を操作デバイスに対して要求することにより、自身が実行する処理の内容に応じた動作を操作デバイスに実行させる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、並行して実行される複数のプロセスがそれぞれ操作デバイスに対する制御の実行を要求しようとした場合、その要求が競合するおそれがある。
【0004】
本発明は上記実情を考慮してなされたものであって、その目的の一つは、操作デバイスに対する制御要求の競合を回避することのできる情報処理装置、その制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0005】
本発明の一態様に係る情報処理装置は、操作デバイスと接続される情報処理装置であって、複数のプロセスを並行して実行するプロセス実行部と、前記操作デバイスに対して、当該操作デバイスが実行すべき制御処理の内容を指示する制御命令を送信する操作デバイス制御部と、を含み、前記操作デバイス制御部は、前記複数のプロセスのうちから所与の条件に応じて選択される選択プロセスから受け付けた設定要求に応じて前記制御命令を送信するとともに、当該選択プロセスとは別のプロセスから受け付けた設定要求に応じた前記制御命令の送信は制限することを特徴とする。
【0006】
本発明の一態様に係る情報処理装置の制御方法は、操作デバイスと接続される情報処理装置の制御方法であって、複数のプロセスを並行して実行するステップと、前記操作デバイスに対して、当該操作デバイスが実行すべき制御処理の内容を指示する制御命令を送信する制御ステップと、を含み、前記制御ステップでは、前記複数のプロセスのうちから所与の条件に応じて選択される選択プロセスから受け付けた設定要求に応じて前記制御命令を送信するとともに、当該選択プロセスとは別のプロセスから受け付けた設定要求に応じた前記制御命令の送信は制限することを特徴とする。
【0007】
本発明の一態様に係るプログラムは、操作デバイスと接続されるコンピュータに、複数のプロセスを並行して実行するステップと、前記操作デバイスに対して、当該操作デバイスが実行すべき制御処理の内容を指示する制御命令を送信する制御ステップと、を実行させるためのプログラムであって、前記制御ステップでは、前記複数のプロセスのうちから所与の条件に応じて選択される選択プロセスから受け付けた設定要求に応じて前記制御命令を送信するとともに、当該選択プロセスとは別のプロセスから受け付けた設定要求に応じた前記制御命令の送信は制限することを特徴とする。このプログラムは、コンピュータ読み取り可能で非一時的な情報記憶媒体に格納されて提供されてよい。
【図面の簡単な説明】
【0008】
図1】情報処理システムの全体構成図である。
図2】操作デバイスの外観の一例を示す図である。
図3】情報処理システムが実現する機能を示す機能ブロック図である。
図4】動作モードにおける状態遷移の一例を示す図である。
図5】一つのプロセスが実行されている場合の処理の流れの一例を示すフロー図である。
図6A】複数のプロセスが並列に実行されている場合の処理の流れの一例を示すフロー図である。
図6B】複数のプロセスが並列に実行されている場合の処理の流れの一例を示すフロー図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施の形態について、図面に基づき詳細に説明する。
【0010】
図1は、本発明の一実施形態における情報処理システム1の全体構成図である。また、図2は、操作デバイス10の外観の一例を示す図である。これらの図に示されるように、情報処理システム1は、操作デバイス10と情報処理装置50とを含んで構成されている。本実施形態において操作デバイス10と情報処理装置50とは、Bluetooth(登録商標)規格などの無線通信によってデータを送受信することとする。なお、ここでは無線通信によってデータの送受信を行うこととしているが、これに限らず操作デバイス10と情報処理装置50とは例えばUSB等の規格により有線で通信接続されることとしてもよい。
【0011】
操作デバイス10は、例えば家庭用ゲーム機用のコントローラ等であって、制御回路11と、音声信号処理回路12と、スピーカー13と、ヘッドホン端子14と、マイクロホン15と、複数の操作部材16と、振動機構17と、力覚提示機構18と、を含んで構成されている。
【0012】
制御回路11は、マイクロプロセッサ等であって、操作デバイス10の各部を制御するための処理を実行する。具体的に制御回路11は、情報処理装置50から受信した制御命令にしたがって、振動機構17や力覚提示機構18などを動作させるための制御信号を出力する。また、定期的に各操作部材16の状態を走査してユーザーが行った操作内容を特定し、その操作内容を示す操作情報を情報処理装置50に対して送信する。
【0013】
また、制御回路11は、情報処理装置50から再生用音声信号を受信し、この再生用音声信号を音声信号処理回路12に対して送信する。また、制御回路11は、音声信号処理回路12から集音音声信号を受信し、この集音音声信号を情報処理装置50に対して送信する。このような各種音声信号の授受を行うために、制御回路11と音声信号処理回路12とは、I2S(Inter-IC Sound)などのインタフェース規格によって相互にデータ通信可能に接続されている。
【0014】
音声信号処理回路12は、デジタルシグナルプロセッサ等であって、デジタルの音声信号に対して各種の信号処理を行う。具体的に音声信号処理回路12は、制御回路11から受信した再生用音声信号を、ヘッドホン端子14に接続されたヘッドホンやスピーカー13から鳴動させる。また、音声信号処理回路12は、マイクロホン15が集音した集音音声信号に対してノイズ除去処理などの音声信号処理を実行して、制御回路11に対して送信する。
【0015】
スピーカー13は、音声信号処理回路12が出力する再生用音声信号に基づく音声を再生する。ヘッドホン端子14にはヘッドホンが接続可能であって、ヘッドホン端子14にヘッドホンが接続された場合、音声信号処理回路12は再生用音声信号に基づく音声をスピーカー13の代わりにそのヘッドホンから再生させることもできる。
【0016】
マイクロホン15は、操作デバイス10を使用するユーザーが発話した音声など、操作デバイス10周囲の音声を集音する。なお、マイクロホン15は、複数のマイクロホン素子によって構成されるマイクロホンアレイであってもよい。
【0017】
複数の操作部材16は、ユーザーによる操作入力の対象となる部材であって、各種の部材を含んでよい。本実施形態において操作部材16は、少なくとも一つのトリガーボタン16aを含むものとする。
【0018】
トリガーボタン16aはユーザーが押下して操作する部材であって、ユーザーの操作に応じて動く可動部を含み、その押し込み量(操作量)を数値として計測可能に構成されている。これにより、ユーザーがトリガーボタン16aを少しだけ押し込んだ状態を維持したり、素早く最後まで押し込んだり、といった押し込み操作の内容をより詳細に特定可能になっている。
【0019】
振動機構17は、振動を発生させるデバイスであって、ボイスコイルモーターなど各種のデバイスであってよい。制御回路11の指示に応じて振動機構17が振動を発生させることによって、操作デバイス10を把持しているユーザーの手に振動が伝達される。なお、操作デバイス10は複数の振動機構17を備えていてもよく、その場合に複数の振動機構17は互いに異なる種類の振動機構であってもよい。
【0020】
力覚提示機構18は、ユーザーが操作部材16に対する操作を行った際などに、ユーザーに対して力覚を提示するデバイスである。本実施形態では、力覚提示機構18はトリガーボタン16aの可動部に接触するアーム(力覚提示部材)を備えており、このアームが可動部に対して力を加える。これにより力覚提示機構18は、ユーザーがトリガーボタン16aを押し込む操作を行う際に、その操作を行う指に対して力覚を提示する。
【0021】
さらに本実施形態において力覚提示機構18は、制御回路11からの指示に応じてアームの目標位置を変化させることによって、トリガーボタン16aの可動部の位置に応じて提示する力覚の内容を制御できるものとする。具体的にアームの位置は、制御回路11からの指示内容と、トリガーボタン16a可動部がユーザーの指によって押し込まれる力によって変化する。このアームの位置の変化に応じて、制御回路11はアームに対する制御内容を変化させることとする。これにより力覚提示機構18は、トリガーボタン16aの操作量(すなわち、トリガーボタン16a可動部の押し込み量)がどの程度かに応じて、トリガーボタン16aを操作するユーザーの指に提示する力覚の内容を変化させることができる。例えば力覚提示機構18は、トリガーボタン16aの操作量が所与の値範囲に含まれている間だけユーザーに力覚を提示したり、トリガーボタン16aの操作量が所与の閾値を超えた場合にそれまで実行していた力覚提示を終了したり、といった制御を実現することができる。
【0022】
以下では制御回路11は、力覚提示機構18の制御対象範囲(すなわち、アームの位置がトリガーボタン16a可動部に連動して変位可能な範囲)を範囲P0~P9の10個の範囲に分割し、アームの位置がこれらの範囲のうちどの範囲に含まれているかに応じて、力覚提示機構18の動作制御を行うこととする。これにより制御回路11は、ユーザーがトリガーボタン16aをどの程度押し込んでいるかに応じて、10段階で力覚提示機構18の動作内容を変化させることができることになる。なお、ここでは範囲P0はトリガーボタン16aがほとんど押し込まれていない状態に対応し、範囲P9が最大近くまでトリガーボタン16aが押し込まれた状態に対応している。ここで、力覚提示機構18の制御対象範囲はトリガーボタン16a可動部の可動範囲と対応するが、力覚提示機構18の制御対象範囲P0~P9とトリガーボタン16aの操作量の数値との対応関係は、個々の操作デバイス10のアームとトリガーボタン16a可動部との間の位置関係の個体差などに起因して、必ずしも一定になるとは限らない。例えばトリガーボタン16aの操作量(押し込み量)が0~255の256段階で計測される場合に、ある操作デバイス10においてはトリガーボタン16aの操作量30未満が力覚提示機構18の制御対象範囲P0に対応するが、別の操作デバイス10は操作量32未満が範囲P0に対応するなどの場合が生じ得る。
【0023】
情報処理装置50は、例えば家庭用ゲーム機やパーソナルコンピュータ等であって、制御部51と、記憶部52と、インタフェース部53と、を含んで構成されている。また、情報処理装置50は操作デバイス10及び表示装置54と接続されている。
【0024】
制御部51は、少なくとも一つのプロセッサを含み、記憶部52に格納されているプログラムに従って各種の情報処理を実行する。記憶部52は、少なくとも一つの記憶素子を含み、制御部51が実行するプログラム、及びそのプログラムによる処理の対象となるデータを記憶する。インタフェース部53は、操作デバイス10、及び表示装置54との間で情報を授受するための通信インタフェースを含んでいる。インタフェース部53を介して情報処理装置50は操作デバイス10から操作情報などの各種の情報を受け付けるとともに、操作デバイス10に対して各種の制御命令を送信する。また、インタフェース部53は表示装置54が表示すべき映像信号を出力する。
【0025】
以下、本実施形態において操作デバイス10及び情報処理装置50が実現する機能について、図3の機能ブロック図を用いて説明する。図3に示されるように、操作デバイス10は、機能的に制御命令受付部61と、制御処理部62と、情報送信部63と、を含んで構成されている。これらの機能は、制御回路11が内蔵するプログラムを実行することによって実現される。情報処理装置50は、機能的に第1プロセス実行部64と、第2プロセス実行部65と、デバイス制御部66と、を含んで構成されている。これらの機能は、制御部51が記憶部52に格納されているプログラムを実行することによって実現される。
【0026】
制御命令受付部61は、情報処理装置50のデバイス制御部66から力覚提示機構18の動作内容に関する制御命令を受け付ける。ここで、情報処理装置50から受け付ける制御命令は、力覚提示機構18の動作条件、及び動作内容を指定するものであることとする。さらに、この動作条件は、力覚提示機構18を動作させるタイミングに関する条件を含むものとする。すなわち、制御回路11は、情報処理装置50からの制御命令を受け付けた場合に直ちにその内容に応じた実際の動作を力覚提示機構18に実行させるわけではなく、後述するようにユーザーの操作内容が指定された動作条件を満たしたタイミングで指定された内容の動作を実行させることになる。なお、操作デバイス10が複数のトリガーボタン16aを備え、そのそれぞれに対して力覚提示機構18が接続されている場合、制御命令受付部61はそれぞれの力覚提示機構18に対する制御命令を受け付けることとする。
【0027】
制御処理部62は、制御命令受付部61が受け付けた制御命令に応じた処理を実行する。具体的に制御処理部62は、ユーザーによる操作部材12に対する操作内容をモニタし、その操作内容が指定された動作条件を満たしたと判定した場合に、指定された動作内容で力覚提示機構18を動作させる制御処理を実行する。
【0028】
特に本実施形態では、制御命令は予め定められた複数の動作モードのいずれかを指定するものとする。制御処理部62は、制御命令が受け付けられると、その制御命令によって指定された動作モードへの切り替えを行う。その後は、別の動作モードへの切り替えが指示されるまで、その動作モードに基づく制御を行う。この動作モードが、力覚提示機構18が実行するべき動作内容を規定する。すなわち、複数の動作モードのそれぞれについて、その動作モードにおいて力覚提示機構18に実行させるべき動作内容が予め定義され、制御回路11内に記録されているものとする。
【0029】
さらに、制御処理部62は、各動作モードと対応して予め定められた複数の動作状態のうちの一つの動作状態で力覚提示機構18を動作させるものとする。ここで制御処理部62は、ユーザーの操作内容の変化に応じて決定される動作状態で力覚提示機構18を動作させる。すなわち、各動作モードにおいて力覚提示機構18は複数の動作状態のいずれかで動作し、制御処理部62はこの複数の動作状態間を遷移させる制御を行う。少なくとも制御処理部62は、ユーザーがトリガーボタン16aに対して実行した操作の操作量に応じて、力覚提示機構18の動作状態を変化させる。つまり、ユーザーのトリガーボタン16aに対する操作内容に応じて動作状態を遷移させるタイミングが決定されることになる。
【0030】
以下、動作モードの具体例について説明する。一例として、制御処理部62は力覚提示機構18をフィードバックモードで動作させる。この動作モードにおいて制御処理部62は、トリガーボタン16a可動部の位置が所定領域に含まれている間(すなわち、アームの位置が制御対象範囲P0~P9のうち予め指定された範囲に含まれている間)、ユーザーの押し込み操作に対して反発する力覚を提示させる。一方、トリガーボタン16aの位置が所定領域に含まれていない間は、力覚を提示しない。すなわち、この動作モードにおいて制御処理部62は、トリガーボタン16aの押し込み量に応じて、反発力を提示する状態と提示しない状態との間で状態遷移を行う。
【0031】
なお、ここでは2種類の状態間でのみ遷移を行うこととしたが、制御処理部62は、例えば強い力覚を提示する状態、弱い力覚を提示する状態などを力覚提示機構18の制御対象範囲に応じて変化させてもよい。これにより、ユーザーがトリガーボタン16aを操作し始めた時点では何の力覚も提示されないが、押し込み操作を続けるにしたがって段階的に強い反発力を提示するなどの制御が可能になる。この場合、制御処理部62は3種類以上の状態間で力覚提示機構18の動作状態を遷移させることになる。
【0032】
別の例として、制御処理部62は力覚提示機構18を振動モードで動作させてもよい。この動作モードにおいて力覚提示機構18は、アームを振動させてアームに接触するトリガーボタン16aの可動部に振動を伝達させることによって、操作中のユーザーの指に振動を提示する。この例においてもフィードバックモードと同様に、トリガーボタン12の押し込み量に応じて振動を提示する状態と提示しない状態との間で状態遷移が行われる。また、この例においてもフィードバックモードと同様に、振動が提示されない状態のほかに強い振動が提示される状態、弱い振動が提示される状態など、3種類以上の状態間での遷移を行うこととしてもよい。
【0033】
また、制御処理部62は力覚提示機構18をトリガーモードで動作させてもよい。トリガーモードは、銃の引き金などに対する操作をシミュレートするためのモードであって、図4に示すように、スタンバイ状態、プリング状態、及びファイアード状態の3種類の状態間で遷移が行われる動作モードである。このトリガーモードでは、単純にトリガーボタン16aに対する現在の操作量がどの程度かだけでなく、現在どの動作状態かに応じて次の動作状態が決定される。
【0034】
具体的に、トリガーボタン16aが操作されていないか、又は操作開始後まだ押し込み量が小さい間(例えばアームの位置が制御対象範囲P0にある場合)はスタンバイ状態であって、この状態では力覚提示機構18は動作しない。この状態は、トリガーの遊びの部分を引いている状態に相当する。
【0035】
スタンバイ状態においてトリガーボタン16aの操作量がある閾値を超えると、制御処理部62はプリング状態への遷移を行う。この状態は銃の引き金を徐々に引いている状態に相当する。例えば制御処理部62は、アームの位置が制御対象範囲P1~P5にある場合にプリング状態に遷移する。プリング状態では、力覚提示機構18はユーザーの押し込み操作に逆らう向きの力覚を提示する。これによりユーザーは、実際の引き金を引いているかのような重い感触を感じることができる。
【0036】
プリング状態からさらにユーザーがトリガーボタン16aの押し込み操作を継続して可動部の位置がある閾値を超えると、制御処理部62はファイアード状態への遷移を行う。この状態は銃の引き金を引き切って弾丸が発射された状態に相当する。例えば制御処理部62は、プリング状態においてアームの位置が制御対象範囲P6~P9に含まれる位置に移動した場合にファイアード状態に遷移する。この状態でもスタンバイ状態と同様に力覚提示機構18による力覚提示は行われず、ユーザーは抵抗を感じずにトリガーボタン16aを操作することができる。なお、一旦ファイアード状態に遷移した後は、ユーザーが押し込み操作を緩めてアームが制御対象範囲P0~P5に含まれる位置に移動してもファイアード状態のままである。これにより、弾丸が発射された後は引き金の抵抗がなくなる様子を再現できる。なお、ファイアード状態で所与の条件が満たされた場合、例えばトリガーボタン16aからユーザーが指を離して操作量0の状態になった場合などに、制御処理部62はファイアード状態からスタンバイ状態への遷移を行うこととする。これにより、ユーザーは再び銃の引き金を引く動作を行うことができるようになる。
【0037】
このトリガーモードにおいては、トリガーボタン16a可動部の位置が現在どの位置にあるかだけでなく、どのような状態から遷移しているかに応じて、力覚提示機構18に対する制御内容が変化する。例えばアームの位置が制御対象範囲P4にある場合であっても、プリング状態であれば力覚が提示され、ファイアード状態に遷移した後であれば力覚は提示されない。そのため、単純にトリガーボタン16aの操作量(押し込み量)を操作デバイス10から情報処理装置50に通知するだけでは、情報処理装置50は現在どのような状態で動作制御が行われているか把握できないことがある。
【0038】
また、力覚提示機構18の動作制御はトリガーボタン16aの可動部の位置に連動して実行されるが、前述したように、トリガーボタン16aの操作量の検出値と力覚提示機構18のアーム位置の制御対象範囲との間の対応関係は、操作デバイス10の個体差によってばらつきがある。このような要因から、情報処理装置50に対して通知されるトリガーボタン16aの操作量の値だけでは、厳密に状態遷移がいつ実行されたかを特定することは困難な場合がある。そこで本実施形態において操作デバイス10の情報送信部63は、力覚提示機構18の現在の動作モード、及び動作状態を示す状態情報を、情報処理装置50に対して定期的に送信することとする。
【0039】
具体的に情報送信部63は、所定の時間間隔で、複数の操作部材16に対するユーザーの操作内容(例えばどの操作ボタンが押されているか、またトリガーボタン16aの現在の押し込み量がどの程度か)を示す操作情報を送信する。そして、この操作情報とともに、現在複数の動作状態のうちのどの状態で力覚提示機構18の制御を実行中かを示す状態情報を情報処理装置50に対して送信する。なお、操作デバイス10が複数の力覚提示機構18を備える場合、そのそれぞれについて現在の動作状態を示す状態情報が送信される。これにより、トリガーボタン16aの操作量の計測値だけでは特定できない力覚提示機構18の動作状態を情報処理装置50に対して明確に通知することができる。
【0040】
なお、ここでは情報送信部63は操作情報とともに状態情報を送信することとしたが、これに限らず状態情報を操作情報とは別のタイミングで送信してもよい。また、情報送信部63は操作情報の送信頻度とは異なる頻度で状態情報を送信してもよい。さらに、情報送信部63は力覚提示機構18の状態情報として、現在の動作状態だけでなく、アーム位置がどこにあるか(例えば複数の制御対象範囲のうちのどの位置にアームがあるか)を示す制御位置情報を併せて送信してもよい。この制御位置情報は、制御処理部62が現在どの位置で力覚提示制御を実行しているかを示している。
【0041】
情報処理装置50で実行中のアプリケーションプログラムは、後述するように、この動作情報を取得し、その内容に応じて各種の処理を実行する。この処理には、振動機構17を動作させる制御命令を出力する処理や、再生用の音声信号を出力する処理などが含まれてよい。これによりアプリケーションプログラムは、例えばトリガーモードにおいてプリング状態からファアード状態に遷移したタイミングでスピーカー13から音声を再生させたり振動機構17に振動を提示させたりするなど、力覚提示機構18の動作状態と連動した制御が実現できる。
【0042】
情報処理装置50の第1プロセス実行部64、及び第2プロセス実行部65は、それぞれ独立したプロセスを実行することによって、ユーザーからの操作入力の内容などに応じて各種の情報処理を実行する。以下では具体例として、第1プロセス実行部64はゲーム等のアプリケーションプログラムを実行することによって実現され、第2プロセス実行部65はシステムプログラムを実行することによって実現されることとする。以下では、第1プロセス実行部64によって実現されるプロセスを第1プロセスと表記し、第2プロセス実行部65によって実現されるプロセスを第2プロセスと表記する。
【0043】
これらのプロセスは、互いに独立に実行される。すなわち、第1プロセスと第2プロセスは互いに並列に同時期に実行される場合があり、どちらのプロセスも実行中の状態が許容される。そのうえで、いずれか一つのプロセスが、所与の条件に基づいて選択的にフォーカスプロセスとして選択される。ここではフォーカスプロセスは、ユーザーによる操作の対象となるプロセスであって、操作デバイス10から送信される操作情報は、フォーカスプロセスによって取得され、処理されることとする。
【0044】
フォーカスプロセスの切り替えは各種の条件で行われる。一例として、第1プロセス実行部64がゲームプログラムを実行中にユーザーが操作デバイス10に設けられたシステムボタンを操作した場合、第2プロセス実行部65がシステムプログラムを起動し、その処理結果を提示するためのシステム画面を表示装置54に表示させる。このとき、フォーカスプロセスは第1プロセスから第2プロセスに変更される。その後、システム画面の終了が指示されると、フォーカスプロセスは第2プロセスから第1プロセスに変更される。なお、第2プロセスがフォーカスプロセスとして選択されている間も、第1プロセスはバックグラウンドで動作し、ゲームに関する各種の処理を継続して実行している。
【0045】
このような条件下において、デバイス制御部66は、各プロセスからの要求に応じて操作デバイス10を動作させるための制御命令を送信するとともに、フォーカスプロセスの変更に応じて必要な調整を行う。以下、デバイス制御部66が実行する制御内容について、詳しく説明する。
【0046】
まず、第1プロセスのみが実行中の場合の処理の流れの一例について、図5のフロー図を用いて説明する。前述したように、操作デバイス10の情報送信部63は定期的に操作情報及び状態情報を情報処理装置50に対して送信している。この図においては、ある時点における操作情報及び状態情報の送信がS1で示されている。
【0047】
その後、第1プロセス実行部64は、力覚提示機構18の動作モードの設定要求をデバイス制御部66に対して出力している(S2)。ここでは一例として、第1プロセス実行部64は、ゲーム内においてユーザーが銃を撃つ操作をできるようになったため、動作モードをトリガーモードに変更するよう要求したものとする。この要求を受けてデバイス制御部66は、動作モードをトリガーモードに設定するよう指示する制御命令を操作デバイス10に対して送信する(S3)。これを受けて操作デバイス10の制御処理部62は、動作モードをトリガーモードに変更する。ただし、前述したように操作デバイス10から情報処理装置50への情報送信は周期的に実行されるため、動作モードの変更後直ちに新たな動作モードにおける状態情報が情報処理装置50に送信されるわけではない。この例では、新たな動作モードの状態情報が操作デバイス10から送信される前に、第1プロセス実行部64は動作状態の取得要求をデバイス制御部66に対して実行している(S4)。この段階ではデバイス制御部66は新たな動作モードの状態情報を取得していないので、S4の取得要求に対する応答として、デバイス制御部66はS1で送信されている直近の過去の状態情報を返信する(S5)。
【0048】
その後、操作デバイス10の情報送信部63はS6で新たな操作情報及び状態情報を送信している(S6)。ここでは、S3で指示された新たな動作モードにおける状態情報(例えばトリガーモードのスタンバイ状態であることを示す情報)が送信される。その後、再び第1プロセス実行部64が動作状態の取得要求を行った際には(S7)、デバイス制御部66はS6で送信されたトリガーモードの状態情報を返信する(S8)。
【0049】
このように、第1プロセス実行部64は処理の進行に伴って動作モードの設定要求をデバイス制御部66に対して出力し、その後、定期的に操作デバイス10から送信される状態情報を取得することによって、操作デバイス10が実行している動作状態の遷移を知ることができる。なお、第1プロセス実行部64は、状態遷移に連動させて音声の再生などの制御が必要な場合、そのような制御が可能な程度に短いサイクルで繰り返し問い合わせを行うこととする。
【0050】
次に、第1プロセス、及び第2プロセスが並列に実行されている場合における処理の流れの一例について、図6A及び図6Bのフロー図を用いて説明する。この例においては、最初は第2プロセスがフォーカスプロセスになっているものとする。なお、この図6A及び図6Bにおいては、第1プロセス実行部64と第2プロセス実行部65のうちフォーカスプロセスを実行中の実行部が実線で、それ以外のプロセスを実行中の実行部が破線で示されている。
【0051】
この例では、まず第1プロセス実行部64が動作モードの設定要求を出力している(S11)。前述したように、フォーカスプロセスとは別のプロセス(ここでは第1プロセス)も実行中なので、その処理の進行状況に応じて動作モードの設定要求を出力することがある。しかしながら、この時点ではフォーカスプロセスが第2プロセスになっているので、操作デバイス10が第1プロセスの処理内容に応じた動作を行うと、ユーザーを混乱させるおそれがある。そこでデバイス制御部66は、フォーカスプロセス以外のプロセスからの動作モードの設定要求は無視することとし、この段階では操作デバイス10に対する動作モード変更の制御命令を制限する。ただし、後に第1プロセスがフォーカスプロセスになった場合に備えて、デバイス制御部66は第1プロセス実行部64が出力した設定要求の内容を一時的に保持しておくこととする(S12)。
【0052】
その後、今度は第2プロセス実行部65が動作モードの設定要求を出力したとする(S13)。この時点では第2プロセスがフォーカスプロセスなので、デバイス制御部66はその設定要求に応じて動作モードを変更させる制御命令を操作デバイス10に対して送信する(S14)。その後のタイミングで、定期的な操作デバイス10からの情報送信が行われている(S15)。
【0053】
さらに、第1プロセス実行部64はS11の設定要求に引き続いて状態情報の取得要求を出力したとする(S16)。このとき、S11の設定要求に応じた動作モードの変更は行われておらず、第1プロセスはフォーカスプロセスではないので、デバイス制御部66は第1プロセスからの取得要求が制限されている旨を応答する(S17)。
【0054】
一方、第2プロセス実行部65が状態情報の取得要求を出力した場合(S18)、第2プロセスはフォーカスプロセスなので、デバイス制御部66はこの取得要求に対してS15で送信されている状態情報を第2プロセス実行部65に対して応答する(S19)。
【0055】
その後、ユーザーがシステム画面の終了操作を行うなどして、フォーカスプロセスが第2プロセスから第1プロセスに変更されたとする。デバイス制御部66は、このフォーカスプロセスの変更に応じて、変更後のフォーカスプロセスから直近の過去に受け付けて保持していた設定要求(ここではS12で内容を保持していた設定要求)に応じた制御命令を操作デバイス10に対して送信する(S20)。このような制御により、第1プロセス実行部64があらためて動作モードの設定要求を出力せずとも、第1プロセスの要求に応じて動作モードを切り替えることができる。なお、フォーカスプロセスの変更時に変更後のフォーカスプロセスから過去に受け付けた動作モードの設定要求が存在しない場合、デバイス制御部66は現在の動作モードをリセットする制御命令を操作デバイス10に対して送信してもよい。
【0056】
この例では、S20の制御命令の送信の直後に、操作デバイス10から情報の送信が行われている(S21)。この時点では、S20の制御命令に応じた動作モードの変更は完了しておらず、それまでの動作モードに応じた状態情報が送信されている。
【0057】
この状態で第1プロセス実行部64が状態情報の取得要求を出力すると(S22)、今度は第1プロセスがフォーカスプロセスに切り替わっているので、S21で送信された状態情報が第1プロセスに提供される(S23)。さらに続いて、S20で送信された制御命令に応じて動作モードの変更が行われ、変更後の動作モードにおける状態情報がデバイス制御部66に送信される(S24)。その後は、第1プロセス実行部64からの状態情報の取得要求(S25)に応じて、第1プロセス実行部64がS11で要求した動作モードでの状態情報が返信される(S26)。
【0058】
以上説明したように、情報処理装置50が複数のプロセスを実行し、そのうちの一つが選択的にフォーカスプロセスに切り替えられる場合において、デバイス制御部66はフォーカスプロセスから受け付けた要求に応じて動作モードを変更させる制御命令を出力する。これにより、ユーザーにとって現在操作入力を行う対象となるフォーカスプロセスとは別のプロセスの要求に基づく力覚提示機構18の動作制御が行われてしまうことを回避できる。さらにデバイス制御部66は、フォーカスプロセス以外のプロセスから受け付けた動作モードの設定要求の内容については一旦保持しておき、そのプロセスがフォーカスプロセスに切り替えられた場合には保持されている設定要求の内容に応じた制御命令を送信する。これにより、各プロセスは自身が現在フォーカスプロセスになっているかにかかわらず、動作モードの設定要求を行うことができる。
【0059】
以上説明したように、本実施形態によれば、情報処理装置50が操作デバイス10の実行状態等に応じた制御を好適に実行することができる。
【0060】
なお、本発明の実施の形態は、以上説明したものに限られない。例えば以上の説明では操作デバイス10は家庭用ゲーム機のコントローラであることとしたが、これに限らず、ユーザーの操作を受け付ける各種のデバイスであってよい。
【0061】
また、以上の説明においては、制御処理部62はトリガーボタン16aに対するユーザーの操作量に応じて力覚提示機構18の動作状態を遷移させることとしたが、これに限らず、各種の操作部材に対するユーザーの操作内容に応じて力覚提示機構18の動作内容を制御することとしてもよい。また、制御処理部62は力覚提示機構18の動作制御に限らず、例えば振動機構17など、各種の機構について、操作デバイス10が備える操作部材に対するユーザーの操作に応じてその動作内容を制御することとしてもよい。いずれの場合も、情報送信部63が、各機構に対して現在どのような制御を実行中かを示す状態情報を情報処理装置50に対して定期的に送信することで、情報処理装置50は操作デバイス10の制御状態に応じた処理を適切なタイミングで実行できるようになる。
【符号の説明】
【0062】
1 情報処理システム、10 操作デバイス、11 制御回路、12 音声信号処理回路、13 スピーカー、14 ヘッドホン端子、15 マイクロホン、16 操作部材、16a トリガーボタン、17 振動機構、18 力覚提示機構、50 情報処理装置、51 制御部、52 記憶部、53 インタフェース部、54 表示装置、61 制御命令受付部、62 制御処理部、63 情報送信部、64 第1プロセス実行部、65 第2プロセス実行部、66 デバイス制御部。
図1
図2
図3
図4
図5
図6A
図6B