以下、本発明の一実施形態について図面に基づき詳細に説明する。
図1は、本発明の一実施形態に係る情報処理システム10の全体構成の一例を示す図である。図1に示すように、本実施形態に係る情報処理システム10は、エミュレーション装置12とコントローラ14とディスプレイ16とを含んでいる。
本実施形態に係るエミュレーション装置12は、後述する携帯型の情報処理装置(図4A及び図4B参照)をエミュレートする情報処理装置であり、例えば図2に示すように、制御部20、記憶部22、通信部24、入出力部26、カードスロット28を含んでいる。制御部20は、例えばエミュレーション装置12にインストールされるプログラムに従って動作するCPU等のプログラム制御デバイスである。記憶部22は、例えばROMやRAM等の記憶素子やハードディスクドライブなどである。記憶部22には、制御部20によって実行されるプログラムなどが記憶される。通信部24は、例えばネットワークボードや無線LANモジュールなどの通信インタフェースなどである。入出力部26は、HDMI(登録商標)(High-Definition Multimedia Interface)ポートやUSBポートなどの入出力ポートである。カードスロット28は、各種のメモリカード等の情報記憶媒体を挿抜可能なスロットである。カードスロット28は、制御部20からの指示に従って、カードスロット28に挿入されるメモリカード等の情報記憶媒体に記録されたプログラムやデータなどの読み取りや、挿入されるメモリカード等の情報記憶媒体へのデータの書き込みを行う。なお、エミュレーション装置12は、複数のカードスロット28を備えていてもよく、これら複数のカードスロット28が、互いに異なる規格である情報記憶媒体を挿抜可能であってもよい。
本実施形態に係るコントローラ14は、エミュレーション装置12に対する操作入力を行うための操作入力装置である。図3Aは、本実施形態に係るコントローラ14の一例の斜視図である。図3Bは、当該コントローラ14の平面図である。図3Cは、当該コントローラ14の背面図である。
これらの図に示されるように、コントローラ14は、横長の本体部分に対して、その左右から手前側(図3Bにおける紙面下側)に突出する把持部GL、GRを有している。ユーザは、把持部GL、GRをそれぞれ左右の手で把持してコントローラ14を使用する。
コントローラ14の上面左側の、ユーザが把持部GLを左手で把持した状態でその親指により操作可能な位置には、4つの方向キーDK1〜DK4や操作スティックSLなどが配置されている。コントローラ14の上面右側の、ユーザが把持部GRを右手で把持した状態でその親指により操作可能な位置には、4つのボタンB1〜B4や操作スティックSRが設けられている。コントローラ14の背面左側の、ユーザが把持部GLを左手で把持した状態でその人差し指や中指により操作可能な位置には、ボタンBL1、BL2が設けられている。コントローラ14の背面右側の、ユーザが把持部GRを右手で把持した状態でその人差し指や中指により操作可能な位置には、背面ボタンBR1、BR2が設けられている。また、本実施形態に係るコントローラ14には、その他のボタン等の操作子も設けられている。ユーザは、方向キーDK1〜DK4、ボタンB1〜B4、BL1、BL2、BR1、BR2を押下したり、操作スティックSL、SRを傾けたりすることで、コントローラ14を用いて各種の操作入力を行うことができる。そして本実施形態では、コントローラ14は、操作入力に対応付けられる入力データをエミュレーション装置12に出力する。
操作スティックSL、SRは、コントローラ14の筐体表面に直立したスティック状の操作部材であり、この直立状態から全方位に所定角度だけ傾倒自在となっている。図3Bに示すように、コントローラ14の筐体長手方向をX1軸方向(図3Bにおいて右方向を正方向とする。)とし、このX軸方向に直交する筐体奥行き方向をY1軸方向(図3Bにおいて上方向を正方向とする。)とすると、操作スティックSL、SRの姿勢(操作状態)は、X1軸方向及びY1軸方向の傾き(姿勢データ(X1,Y1))として、それぞれ0〜255のディジタル値がエミュレーション装置12に入力されるようになっている。具体的には、X1=127やX1=128付近は、操作スティックSL、SRがX1軸方向に傾いていないことを示す。また、X1=255は、操作スティックSL、SRがX1軸の正方向(図3Bにおいて右方向)に限界まで倒れていることを示す。さらに、X1=0は、操作スティックSL、SRがX1軸の負方向(図3Bにおいて左方向)に限界まで倒れていることを示す。Y1軸方向についても同様である。本実施形態に係る姿勢データは、上述の入力データにその一部として含まれるデータである。
こうして、エミュレーション装置12では、操作スティックSL、SRの現在の傾き状態(姿勢)を把握できるようになっている。また、操作スティックSL、SRは、感圧ボタンとしても構成されており、スティックの軸方向に押下できるようになっている。
また、本実施形態に係るコントローラ14は、角速度を検出するジャイロセンサ、加速度を検出する加速度センサ等のセンサを備えている。
また、本実施形態に係るコントローラ14は、USBポートを備えている。コントローラ14は、USBケーブルでエミュレーション装置12と接続することで、入出力部26を介して有線で入力データをエミュレーション装置12に出力することができる。また、本実施形態に係るコントローラ14は、無線通信モジュール等を備えており、通信部24を介して無線で入力データをエミュレーション装置12に出力することができるようにもなっている。また、本実施形態に係るコントローラ14は、USBケーブルで接続されたエミュレーション装置12から給電を受けることができる。
本実施形態に係るディスプレイ16は、液晶ディスプレイや有機ELディスプレイ等である。本実施形態では、エミュレーション装置12とディスプレイ16とは、入出力部26を介して、HDMI(登録商標)(High-Definition Multimedia Interface)ケーブル等のケーブルにより接続されている。
図4A及び図4Bに、本実施形態に係るエミュレーション装置12によるエミュレートの対象となる携帯型の情報処理装置の一例を示す。図4A及び図4Bに示す情報処理装置をターゲット装置30と呼ぶこととする。図4Aは、ターゲット装置30の一例の正面図である。図4Bは、当該ターゲット装置30の背面図である。図5は、当該ターゲット装置30のハードウェア構成の一例を示す図である。上述のように、本実施形態に係るエミュレーション装置12は、当該ターゲット装置30をエミュレートする。
本実施形態に係るターゲット装置30は、全体として略矩形の平板状の形状をしている。以下では、筐体の横方向(幅方向)をX2軸方向、縦方向(高さ方向)をY2軸方向とする。また、本実施形態では、筐体の前面から見て左から右へ向かう方向がX2軸正方向、筐体の前面から見て下から上へ向かう方向がY2軸正方向となっている。
本実施形態では、ターゲット装置30は、図4A、図4B、及び、図5に示すように、制御部40、記憶部42、通信部44、入出力部46、カードスロット48、表示部50、タッチセンサ52、操作キー54、センサ部56を備えている。
制御部40、記憶部42、通信部44、入出力部46、カードスロット48の役割は、それぞれ、エミュレーション装置12における制御部20、記憶部22、通信部24、入出力部26、カードスロット28の役割と同様である。
表示部50は、液晶ディスプレイや有機ELディスプレイ等である。
タッチセンサ52は、所定の時間間隔で、検出面上における物体(例えば、指等)の接触を順次検出するセンサである。本実施形態に係るターゲット装置30は、2つのタッチセンサ52(表面タッチセンサ52a、及び、裏面タッチセンサ52b)を備えている。本実施形態に係るターゲット装置30の筐体の正面には、表示部50と表面タッチセンサ52aとが一体となったタッチパネル58が設けられている。本実施形態に係るタッチセンサ52は、例えば静電容量式や感圧式、光学式など、検出面上における物体の位置を検出可能なデバイスであれば、どのような方式のものであってもよい。なお、本実施形態では、表面タッチセンサ52aも裏面タッチセンサ52bも、複数の位置(例えば、最大8つの位置)での物体の接触を検出可能な多点検出型タッチセンサであることとする。
本実施形態では、裏面タッチセンサ52bの上下方向の長さは、表面タッチセンサ52aの上下方向の長さよりも短い。そして、裏面タッチセンサ52bは、表面タッチセンサ52aに対して上方向にオフセットしている。また、表面タッチセンサ52aの上縁の位置と裏面タッチセンサ52bの上縁の位置とは上下方向において概ね一致している。また、左右方向の長さについては、表面タッチセンサ52aと裏面タッチセンサ52bとで概ね一致している。また、表面タッチセンサ52aや裏面タッチセンサ52bはターゲット装置30の左右方向の中心に位置している。
操作キー54は、ユーザがターゲット装置30に対して行う操作入力に用いる操作部の一種である。本実施形態に係る操作キー54には、例えば、方向キーDK1(T)〜DK4(T)、ボタンB1(T)〜B4(T)、BL1(T)、BR1(T)、操作スティックSL(T)、SR(T)、などが含まれる。方向キーDK1(T)〜DK4(T)は筐体正面左側に配置されている。ボタンB1(T)〜B4(T)は筐体正面右側に配置されている。操作スティックSL(T)、SR(T)は筐体正面の左右両側に2つ配置されている。ボタンBL1(T)は、筐体の正面から見て筐体の上側面左側に配置されている。ボタンBR1(T)は、筐体の正面から見て筐体の上側面右側に配置されている。操作スティックSL(T)、SR(T)は、上下左右にスライド可能となっている。
センサ部56は、ターゲット装置30の姿勢を検出するデバイスである。本実施形態に係るセンサ部56は、例えば、3軸ジャイロセンサ、3軸モーションセンサ(3軸加速度センサ)、電子コンパス、を含んでいる。
本実施形態では例えば、ターゲット装置30で実行可能なプログラムを、エミュレーション装置12で実行することができるようになっている。当該プログラムを、以下、ターゲットプログラムと呼ぶこととする。ターゲットプログラムは、ターゲット装置30のカードスロット48に挿入可能なメモリカードを介して、ターゲット装置30に供給される。また、ターゲットプログラムは、エミュレーション装置12のカードスロット28に挿入可能なメモリカードを介して、エミュレーション装置12に供給される。
本実施形態に係るエミュレーション装置12は、所定のフレームレートで(例えば1/60秒毎に)、コントローラ14に対する操作入力を示す入力データを取得する。そして、本実施形態に係るエミュレーション装置12は、ターゲットプログラムを実行することにより、所定のフレームレートで、当該入力データの取得に応じて、当該入力データ等に応じた処理を実行する。例えば、所定のフレームレートで、当該入力データに応じた画面を表すデータの生成及び当該データのディスプレイ16への出力が行われる。本実施形態では、ディスプレイ16には、横960ピクセル、縦544ピクセルの解像度で当該データが表す画面が表示されることとする。
また本実施形態では、ターゲットプログラムには、実行されている装置がターゲット装置30であるかエミュレーション装置12であるかを判別する処理が実装されている。そして、当該判別の結果に応じて、ターゲットプログラムは、コントローラ14に対する操作入力、又は、ターゲット装置30が備えるタッチセンサ52や操作キー54に対する操作入力のいずれを、実行される処理の基礎となる操作入力として取り扱うかを決定する。
また、本実施形態に係るエミュレーション装置12では、所定の操作を行うことで、ターゲット装置30におけるタッチセンサ52の検出面に対する操作をエミュレーション装置12でエミュレートできるか否かを設定することができるようになっている。エミュレーション装置12が実行しているターゲットプログラムがターゲット装置30における検出面に対する操作を前提としたものであることがある。すなわち、ターゲットプログラムが、タッチセンサに対する入力操作を想定して作成されたプログラムであることがある。このような場合には、何らかの形でターゲット装置30における検出面に対する操作をエミュレートできないと、処理を進めることができない。本実施形態では、上述のように処理を進めることができない状況が発生しても、上述の所定の操作を行うことで、検出面に対する操作をエミュレートできるよう設定することで、処理を進めることができるようになっている。
以下の説明では、エミュレーション装置12が、ターゲット装置30におけるタッチセンサ52の検出面に対する操作をエミュレーション装置12で行えるように設定されていることとする。当該設定がされている際には、エミュレーション装置12は、タッチセンサ52の検出面に対する操作をエミュレートできない通常モードとエミュレートできるタッチポインタモードの2つの動作モードを自由に切り替えることができる。以下、通常モードをNモード、タッチポインタモードをTPモードと呼ぶこととする。
動作モードがNモードである場合は、タッチセンサ52の検出面に対する操作をエミュレートすることはできないが、操作スティックSL(T)、SR(T)に対する操作をエミュレートすることはできる。一方、動作モードがTPモードである場合は、タッチセンサ52の検出面に対する操作をエミュレートすることはできるが、操作スティックSL(T)、SR(T)に対する操作をエミュレートすることができない。
本実施形態では、ターゲットプログラムの実行開始時における動作モードはNモードである。動作モードがNモードである場合には、コントローラ14の方向キーDK1〜DK4を押下することで、ターゲット装置30において、方向キーDK1(T)〜DK4(T)を押下した際に実行される処理が実行される。また、コントローラ14のボタンB1〜B4、BL1、又は、BL2を押下することで、ターゲット装置30において、ボタンB1(T)〜B4(T)、BL1(T)、又は、BL2(T)を押下した際に実行される処理が実行される。また、操作スティックSL、SRを傾けることで、その傾けた向きに対応する向きへターゲット装置30において操作スティックSL(T)、SR(T)をスライドさせた際に実行される処理が実行される。
本実施形態では、動作モードがTPモードである場合には、ターゲット装置30のタッチセンサ52の検出面上における物体の位置がタッチセンサ52によって検出された際にターゲット装置30が実行する処理が実行される。以下、ターゲット装置30のタッチセンサ52の検出面上における物体の位置を検出位置と呼ぶこととする。そして本実施形態では、検出面の検出位置をエミュレーション装置12においてエミュレートする位置を設定する操作を行える。以下、当該検出位置をエミュレーション装置12においてエミュレートする位置をエミュレート位置と呼ぶこととする。本実施形態では、エミュレート位置は、タッチセンサ52に対する入力操作が行われる位置をエミュレートする位置ということとなる。
本実施形態では、エミュレート位置と検出位置とは1対1で対応付けられる。また、エミュレート位置は、ディスプレイ16内における位置に対応付けられる。例えば本実施形態では、図6に示すように、表面タッチセンサ52aの検出面の検出位置に対応付けられるエミュレート位置が、ディスプレイ16の左下の位置を原点として、右方向をX3軸正方向、上方向をY3軸正方向とした座標値で表現される。ここで、エミュレート位置のX3座標値は、0以上959以下のいずれかの整数値をとり、Y3座標値は、0以上543以下のいずれかの整数値をとる。これらの値は、本実施形態に係るディスプレイ16の解像度に対応している。
そして、本実施形態では、表面タッチセンサ52aの検出面の検出位置は、筐体の正面から見た際の表面タッチセンサ52aの左下の座標値を原点としたX2−Y2座標値で管理される。本実施形態に係るタッチセンサ52は0.5ピクセル単位で検出位置を特定することができるようになっている。そのため本実施形態では、検出位置のX2座標値は、0以上1918以下のいずれかの整数値をとり、検出位置のY2座標値は、0以上1086以下のいずれかの整数値をとる。
そして本実施形態では、エミュレート位置のディスプレイ16内における相対位置と検出位置の表面タッチセンサ52a内における相対位置とが略一致する。具体的には例えば、エミュレート位置の座標値(x,y)と検出位置の座標値(x’,y’)との関係は、x’=2x、y’=2yとなる。
また、動作モードがTPモードである場合は、タッチセンサ52によって検出位置が検出されている状況がエミュレートされている状態と検出されていない状況がエミュレートされている状態とを切り替えることができる。以下、タッチセンサ52によって検出位置が検出されている状況がエミュレートされている状態をタッチ状態と呼び、タッチセンサ52によって物体の位置が検出されていない状況がエミュレートされている状態をアンタッチ状態と呼ぶこととする。そして本実施形態では、所定のボタンを押下する操作を行うことで、エミュレート位置がタッチ状態となり、離す操作を行うことで、エミュレート位置がアンタッチ状態となる。
ここで本実施形態では、エミュレート位置のX3−Y3座標値が(x,y)であり、当該エミュレート位置がタッチ状態であることとする。この場合、座標値が(x,y)に対応付けられる検出位置の座標値(x’,y’)が表面タッチセンサ52aに検出された場合にターゲット装置30が実行する処理が実行されることとなる。そのため、例えば、エミュレート位置の座標値が(x,y)である状態で、上述の所定のボタンを押下して離す操作を一度行うと、座標値が(x’,y’)である検出位置にタップ操作が行われた際にターゲット装置30が行う処理が実行されることとなる。また、エミュレート位置の座標値が(x,y)である状態で、上述の所定のボタンを押下して離す操作を連続して二度行うと、座標値が(x’,y’)である検出位置にダブルタップ操作が行われた際にターゲット装置30が行う処理が実行されることとなる。
また本実施形態では、フレーム毎に、取得される姿勢データ(X1,Y1)に基づいて、エミュレート位置が変化する。すなわち、操作スティックを傾けることでエミュレート位置を変化させることができる。本実施形態では、操作スティックが傾いた向きと、エミュレート位置が変化する向きと、が対応付けられている。例えば、操作スティックをX1軸方向に傾けると、エミュレート位置がX3軸方向に変化する。また、操作スティックをY1軸方向に傾けると、エミュレート位置がY3軸方向に変化する。
ここで、図7に示すように、あるフレームにおけるエミュレート位置の座標値が(x1,y1)であることとする。そして、次のフレームにおけるエミュレート位置の座標値が(x2,y2)であることとする。そして、さらに次のフレームにおけるエミュレート位置の座標値が(x3,y3)であることとする。そして当該3フレームの間、当該エミュレート位置は、タッチ状態が維持されたこととする。ここで、座標値(x1,y1)、(x2,y2)、(x3,y3)に対応付けられる表面タッチセンサ52aの検出面の検出位置の座標値がそれぞれ(x1’,y1’)、(x2’,y2’)、(x3’,y3’)であることとする。この場合は、(x1’,y1’)、(x2’,y2’)、(x3’,y3’)の順に3フレームにわたって検出位置が検出されるドラッグ操作又はフリック操作がエミュレートされる。この場合は、当該ドラッグ操作又はフリック操作が行われた際にターゲット装置30が行う処理が実行されることとなる。
また本実施形態では、所定のボタンを押下し、当該ボタンが押下されたまま、エミュレート位置を変化させて、当該ボタンを離したとする。この場合は、所定のボタンが押下された際のエミュレート位置を始点とし、当該ボタンが離された際のエミュレート位置を終点とするドラッグ操作がエミュレートされることとなる。このようにして、本実施形態では、所定のボタンの押下操作、当該ボタンが押下されたままでエミュレート位置を変える操作、当該所定のボタンを離す操作を行うことで、ドラッグ操作がエミュレートできることとなる。
また、本実施形態では、エミュレート位置を2つ設定することもできるようになっている。そして、この場合は、入力される操作スティックSLの姿勢データ(X1,Y1)に基づいて一方のエミュレート位置、操作スティックSRの姿勢データ(X1,Y1)に基づいて他方のエミュレート位置が変化する。以下、操作スティックSLの姿勢データ(X1,Y1)に基づいて変化するエミュレート位置を第1エミュレート位置、操作スティックSRの姿勢データ(X1,Y1)に基づいて変化するエミュレート位置を第2エミュレート位置と呼ぶこととする。
また本実施形態では、ボタンB1又はボタンBL2を押下する操作を行うことで、第1エミュレート位置がタッチ状態となり、離す操作を行うことで、第1エミュレート位置がアンタッチ状態となる。そして、ボタンBR2を押下する操作を行うことで、第2エミュレート位置がタッチ状態となり、離す操作を行うことで、第2エミュレート位置がアンタッチ状態となる。このように、本実施形態では、第1エミュレート位置と第2エミュレート位置のそれぞれについて、タッチ状態とアンタッチ状態とを独立して切り替えることができるようになっている。
ここで、図8に示すように、あるフレームにおける第1エミュレート位置の座標値が(x11,y11)であり、第2エミュレート位置の座標値が(x12,y12)であることとする。そして、次のフレームにおける第1エミュレート位置の座標値が(x21,y21)であり、第2エミュレート位置の座標値が(x22,y22)であることとする。そして、さらに次のフレームにおける第1エミュレート位置の座標値が(x31,y31)であり、第2エミュレート位置の座標値が(x32,y32)であることとする。そして当該3フレームの間、第1エミュレート位置も第2エミュレート位置もタッチ状態が維持されたこととする。ここで、座標値(x11,y11)、(x12,y12)、(x13,y13)に対応付けられる表面タッチセンサ52aの検出面の検出位置の座標値がそれぞれ(x11’,y11’)、(x12’,y12’)、(x13’,y13’)であることとする。また、座標値(x21,y21)、(x22,y22)、(x23,y23)に対応付けられる表面タッチセンサ52aの検出面の検出位置の座標値がそれぞれ(x21’,y21’)、(x22’,y22’)、(x23’,y23’)であることとする。この場合は、(x11’,y11’)及び(x12’,y12’)、(x21’,y21’)及び(x22’,y22’)、(x31’,y31’)及び(x32’,y32’)の順に検出位置が検出される操作がエミュレートされる。すなわち3フレームにわたって1フレームにつき2つの検出位置が検出される操作がエミュレートされる。この場合は、当該操作が行われた際にターゲット装置30が行う処理が実行されることとなる。
2つのエミュレート位置間の距離が次第に近づく場合は、例えばピンチイン操作あるいは表示されている画像を縮小表示させる操作がエミュレートされる。図8には、例えば、ピンチイン操作あるいは表示されている画像を縮小表示させる操作がエミュレートされる場面が示されている。また、2つのエミュレート位置間の距離が次第に離れる場合は、例えば、ピンチアウト操作あるいは表示されている画像を拡大表示させる操作がエミュレートされる。以上のように例えば、所定の2つのボタンを押下する操作、当該2つのボタンが押下されたままの状態で2つのエミュレート位置間の長さを短くする操作、当該2つのボタンを離す操作を行うことで、ピンチイン操作等がエミュレートできることとなる。同様にして、本実施形態では、所定の2つのボタンを押下する操作、当該2つのボタンが押下されたままの状態で2つのエミュレート位置間の長さを長くする操作、当該2つのボタンを離す操作を行うことで、ピンチアウト操作等がエミュレートできることとなる。
以上のようにして、本実施形態によれば、検出面に対する様々な操作を、操作スティックSL、SRに対する操作でエミュレートできることとなる。発明者らは、操作スティックSL、SRに対する操作の操作感が、検出面をなぞる操作の操作感と近く、良好な操作感が得られることがわかった。そのため、本実施形態によれば、検出面に対する操作を操作感よくエミュレートできることとなる。
ここで、姿勢データとエミュレート位置の変化量との関係についてさらに説明する。なお以下の説明は、第1エミュレート位置についても第2エミュレート位置についてもあてはまる。
本実施形態では、エミュレート位置の座標値(x,y)についての、値xの変化量に対応付けられる値vxと値yの変化量に対応付けられる値vyの組合せ(vx,vy)を表す速度パラメータによって、エミュレート位置の変化量が管理される。本実施形態では、値vxと値vyのそれぞれは、−1以上1以下の値で表現される。また本実施形態では、速度パラメータの値の変化量が、値vxの変化量に対応付けられる値axと値vyの変化量に対応付けられる値ayの組合せ(ax,ay)を表す加速度パラメータによって管理される。本実施形態では、値axと値ayのそれぞれは、−1以上1以下の値で表現される。
そして本実施形態では、各フレームについて以下の処理が実行される。
まず、当該フレームに取得される姿勢データ(X1,Y1)に基づいて、図9に示す関係に従って、加速度パラメータの値(ax,ay)が決定される。図9は、姿勢データの値と加速度パラメータの値との対応関係の一例を示す図である。加速度パラメータの値(ax,ay)は、エミュレート位置が移動する加速度に対応付けられる値である。本実施形態では、値X1と値axの関係も値Y1と値ayの関係も同様である。図9に示すように、姿勢データX1の値が、0以上15以下、96以上160以下、241以上255以下のいずれかである場合は、値axは0となる。また、姿勢データY1の値が、0以上15以下、96以上160以下、241以上255以下のいずれかである場合は、値ayは0となる。以下、0以上15以下、96以上160以下、241以上255以下の数値範囲を不感帯と呼ぶこととする。また、16以上95以下、161以上240以下の数値範囲を有感帯と呼ぶこととする。
そして、特定される加速度パラメータの値(ax,ay)に基づいて、図10に示す規則に従って、速度パラメータを表す値(vx,vy)が更新される。また、更新された速度パラメータを表す値(vx,vy)に基づいて、図10に示す規則に従って、エミュレート位置の座標値(x,y)が更新される。
図10に示すように、値vxの符号と値axの符号が同一である場合は、値vxは、値vxの現在の値に値axに1/45を乗じた値を加えた値に更新される(vx=vx+1/45ax)(図10における(A1))。一方、値vxの符号と値axの符号が異なる場合は、値vxは、値axに1/45を乗じた値に更新される(vx=1/45ax)(図10における(B1))。また、本実施形態では、値axが0である場合は、値vxは0に更新される(vx=0)(図10における(C1))。
そして、更新後の値vxが1よりも大きい場合は、当該値vxは1と設定され(vx=1)(図10における(D1))、更新後の値vxが−1よりも小さい場合は、当該値vxは−1と設定される(vx=−1)(図10における(E1))。
そして、値xは、値xの現在の値に値vxを100倍した値を加えた値に更新される(x=x+100vx)(図10における(F1))。なおここで、値xは、0よりも小さい値となった場合は0に設定され(x=0)(図10における(G1))、959より大きい値となった場合は959に設定される(x=959)(図10における(H1))。そして、これら場合は、値vxは0に更新される(vx=0)。
値ayに基づいて、値vy、値yを算出する場合も同様である(図10における(A2)〜(H2))。ただし、値yについては、959より大きい値となった場合に959に設定されるのではなく、543より大きい値となった場合に543に設定される(y=543)(図10における(H2))。
以上のようにして、本実施形態では、姿勢データ(X1,Y1)に基づいて、当該フレームにおける更新後のエミュレート位置が決定されることとなる。
本実施形態では、エミュレート位置が変化している向きと操作スティックSL、SRが操作された向きとが対応する場合は、1フレームあたりのエミュレート位置の変化量が増大することとなる(図10における(A1)(A2)参照)。また、本実施形態では、姿勢データの値X1及び値Y1が無感帯の数値範囲である場合は、エミュレート位置は変化しない(図10における(C1)(C2)参照)。
また本実施形態では、有感帯においては、操作スティックが操作された大きさ(例えば傾き)が大きいほど、加速度パラメータの値axや値ayの絶対値は大きくなる(図9参照)。そのため、これらいずれの場合も、操作スティックが操作された大きさが大きいほど、値vxの絶対値が大きくなる(図10における(A1)(A2)(B1)(B2)参照)。その結果、操作スティックが操作された大きさが大きいほど、直前のフレームにおけるエミュレート位置と当該フレームにおけるエミュレート位置との間隔は長くなることとなる(図10における(F1)(F2)参照)。
また、本実施形態では値vxや値vyは−1以上1以下の範囲を超えないよう調整される(図10における(D1)(D2)(E1)(E2)参照)。
また、本実施形態では、値xは、0以上959以下の範囲を超えないよう調整されるとともに、この場合は、値vxが0となり、X3軸方向のエミュレート位置の変化が抑制されることとなる(図10における(G1)参照)。また、値yは、0以上543以下の範囲を超えないよう調整されるとともに、この場合は、値vyが0となり、Y3軸方向のエミュレート位置の変化が抑制されることとなる(図10における(G2)参照)。
以上、表面タッチセンサ52aについてのエミュレート位置の設定について説明したが、本実施形態では、表面タッチセンサ52aの代わりに裏面タッチセンサ52bについてのエミュレート位置の設定も行える。裏面タッチセンサ52bの検出位置も上述のX2−Y2座標値で管理される。ただし、裏面タッチセンサ52bは、表面タッチセンサ52aに対して上方向にオフセットしているので、当該検出位置のX2座標値は、0以上1918以下のいずれかの整数値をとり、Y2座標値は、306以上1086以下のいずれかの整数をとることとなる。そしてこの場合は、図6に示すように、エミュレート位置の座標値(x,y)と裏面タッチセンサ52bの検出位置の座標値(x’,y’)との関係は、x’=2x、y’=780/543y+306となる。
また本実施形態では、表面タッチセンサ52aと裏面タッチセンサ52bの両面についてのエミュレート位置の設定も行うことができる。この場合は、表面タッチセンサ52aと裏面タッチセンサ52bの両方の検出面についての、X2−Y2平面に垂直な方向に沿って見た際における同じ検出位置に対応付けられる位置がエミュレート位置として設定される。これは例えば、表面タッチセンサ52aと裏面タッチセンサ52bとを指で挟んで動かす動作をエミュレートする場合に好適である。当該動作は、例えば封筒の開封やキャラクタのつまみ上げをシミュレートするプログラムにおいて採用されることが想定される。
本実施形態では、裏面タッチセンサ52bは、表面タッチセンサ52aに対して上方向にオフセットしている。そのため、エミュレート位置のY3座標値が小さい場合は(ここでは例えば153より小さい場合は)、X2−Y2平面に垂直な方向に沿って見た際における、裏面タッチセンサ52bの検出面の検出位置が存在しない。そのため、本実施形態では、上述のようにして決定されたエミュレート位置のY3座標値が153より小さい場合は153に補正される(図10における(G2)参照)。
以下、表面タッチセンサ52aについてのエミュレート位置の設定が可能なTPモードを表面TPモードと呼ぶこととする。そして、裏面タッチセンサ52bについてのエミュレート位置の設定が可能なTPモードを裏面TPモードと呼ぶこととする。そして、両面についてのエミュレート位置の設定が可能なTPモードを両面TPモードと呼ぶこととする。
そして本実施形態では、エミュレート位置及びエミュレート位置の設定状況を視覚的に認識することができるようにするため、動作モードがTPモードである場合には、ポインタ画像Iが配置された画面がディスプレイ16に表示される(図11〜図16参照)。本実施形態では、ポインタ画像Iはエミュレート位置を示す。本実施形態では、ポインタ画像Iに含まれる円形の画像の重心の位置がエミュレート位置となるようポインタ画像Iが配置される。
本実施形態では、エミュレート位置のディスプレイ16内における相対位置と検出位置の検出面内における相対位置とが略一致する。本実施形態では、ターゲット装置30の表面タッチセンサ52aと表示部50とは略同じ大きさであり略同じ形状である。そのため、動作モードが表面TPモード又は両面TPモードである場合は、ポインタ画像Iが表示部50に表示されたこととした場合におけるポインタ画像Iの位置と検出位置とは略重畳することとなる。
また本実施形態では、表面TPモード、裏面TPモード、両面TPモードのいずれであるかによって、表示されるポインタ画像Iのデザインが異なる。また本実施形態では、タッチ状態であるのかアンタッチ状態であるのかによっても、表示されるポインタ画像Iのデザインが異なる。
図11には、動作モードが表面TPモードである場合の、アンタッチ状態の第1エミュレート位置にポインタ画像Ia1(nt)が配置されアンタッチ状態の第2エミュレート位置にポインタ画像Ia2(nt)が配置された画面が示されている。図12には、動作モードが表面TPモードである場合の、タッチ状態の第1エミュレート位置にポインタ画像Ia1(t)が配置されタッチ状態の第2エミュレート位置にポインタ画像Ia2(t)が配置された画面が示されている。図13には、動作モードが裏面TPモードである場合の、アンタッチ状態の第1エミュレート位置にポインタ画像Ib1(nt)が配置されアンタッチ状態の第2エミュレート位置にポインタ画像Ib2(nt)が配置された画面が示されている。図14には、動作モードが裏面TPモードである場合の、タッチ状態の第1エミュレート位置にポインタ画像Ib1(t)が配置されタッチ状態の第2エミュレート位置にポインタ画像Ib2(t)が配置された画面が示されている。図15には、動作モードが両面TPモードである場合の、アンタッチ状態の第1エミュレート位置にポインタ画像Ic1(nt)が配置されアンタッチ状態の第2エミュレート位置にポインタ画像Ic2(nt)が配置された画面が示されている。図16には、動作モードが両面TPモードである場合の、タッチ状態の第1エミュレート位置にポインタ画像Ic1(t)画配置されタッチ状態の第2エミュレート位置にポインタ画像Ic2(t)が配置された画面が示されている。これらの画面は、ディスプレイ16に表示されることとなる。
ポインタ画像Iは、ターゲットプログラムを実行することにより表示される画面に重畳された状態でディスプレイ16に表示される。なお、図11〜図16には、ターゲットプログラムを実行することにより生成される画像は省略されている。
また本実施形態では、上述のように、ユーザは、コントローラ14を操作することでNモードとTPモードとを自由に切り替えることができるようになっている。以下、NモードとTPモードの切替について、図17を参照しながら説明する。
図17は、動作モードの遷移規則の一例を示す図である。本実施形態では、図17に示す遷移規則に従って、NモードとTPモードとが切り替わる。なお、以下の説明では、すべてのエミュレート位置がアンタッチ状態であることとする。
動作モードがNモードである場合に、操作スティックSL、SRの少なくとも一方がスティックの軸方向に押下されると、動作モードがTPモードに変更され、エミュレート位置が1つ設定される。本実施形態では、動作モードがNモードである場合に操作スティックSLが押下されると、表面TPモードとなる。この場合は、ディスプレイ16にポインタ画像Ia1が表示される。また本実施形態では、動作モードがNモードである場合に、操作スティックSRが押下されると、裏面TPモードとなる。この場合は、ディスプレイ16にポインタ画像Ib1が表示される。また本実施形態では、動作モードがNモードである場合に、操作スティックSL、SRの両方が押下されると、両面TPモードとなる。この場合は、ディスプレイ16にポインタ画像Ic1が表示される。
エミュレート位置が1つ設定されている状態で、姿勢データの値X1又は値Y1のいずれかが有感帯の数値範囲である操作スティックSRの操作入力があると(図9参照)、設定されるエミュレート位置が1つから2つに増加する。この場合は、ディスプレイ16にポインタ画像Ia2、Ib2、又は、Ic2が表示される。
エミュレート位置が2つ設定されている状態でいずれの操作部材についても操作入力がない状態で所定時間が経過したとする。例えば操作スティックSL、SRについては姿勢データの値X1及びY1のいずれについても有感帯の数値範囲(図9参照)である操作入力がなく、方向キーやボタンの操作入力もない状態で所定時間が経過したとする。この場合は、設定されるエミュレート位置が2つから1つに減少する。この場合、例えば、ポインタ画像Ia2、Ib2、又は、Ic2がディスプレイ16から消去される。
動作モードがTPモードである場合に、ボタンB4、操作スティックSL又はSRがスティックの軸方向に押下されると、動作モードがNモードに変更される。この場合は、ディスプレイ16からポインタ画像Iがすべて消去される。
ここで、以上で説明した内容のまとめとして、本実施形態に係るエミュレーション装置12の機能及びエミュレーション装置12で実行される処理について説明する。
図18は、本実施形態に係るエミュレーション装置12で実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係るエミュレーション装置12で、図18に示す機能のすべてが実装される必要はなく、また、図18に示す機能以外の機能が実装されていても構わない。
そして、本実施形態に係るエミュレーション装置12は、図18に示すように、機能的には、例えば、エミュレート位置データ記憶部60、速度パラメータデータ記憶部62、動作モードデータ記憶部64、入力データ取得部66、動作モード設定部68、決定部70、表示制御部72、エミュレーション処理実行部74、を含んでいる。エミュレート位置データ記憶部60、速度パラメータデータ記憶部62、動作モードデータ記憶部64は、記憶部22を主として実装される。入力データ取得部66は、通信部24又は入出力部26を主として実装される。その他の機能は、制御部20を主として実装される。
そして、以上の機能は、コンピュータであるエミュレーション装置12にインストールされた、以上の機能に対応する指令を含むプログラムを制御部20で実行することにより実装されている。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどのコンピュータネットワークを介してエミュレーション装置12に供給される。
エミュレート位置データ記憶部60は、エミュレート位置の座標値を示すエミュレート位置データを記憶する。エミュレート位置データ記憶部60は、本実施形態では、第1エミュレート位置の座標値を示す第1エミュレート位置データと第2エミュレート位置の座標値を示す第2エミュレート位置データを記憶する。本実施形態では、第1エミュレート位置の座標値及び第2エミュレート位置の座標値の初期値は、例えばディスプレイ16の中心の座標値(480,272)である。
速度パラメータデータ記憶部62は、エミュレート位置の1フレームあたりの変化量に対応付けられる速度パラメータを示す速度パラメータデータを記憶する。速度パラメータデータ記憶部62は、本実施形態では例えば、第1エミュレート位置についての速度パラメータの値を示す第1速度パラメータデータと第2エミュレート位置についての速度パラメータの値を示す第2速度パラメータデータを記憶する。本実施形態では、第1速度パラメータ及び第2速度パラメータの初期値は、例えば(0,0)である。
動作モードデータ記憶部64は、動作モード及び設定されるエミュレート位置の数を示す動作モードデータを記憶する。動作モードがNモードである場合は、動作モードデータの値は例えば「N」となる。動作モードが表面TPモードである場合は、設定されるエミュレート位置が1つである際には、動作モードデータの値は例えば「表面TP1」となり、2つである際には、動作モードデータの値は例えば「表面TP2」となる。動作モードが裏面TPモードである場合は、設定されるエミュレート位置が1つである際には、動作モードデータの値は例えば「裏面TP1」となり、2つである際には、動作モードデータの値は例えば「裏面TP2」となる。動作モードが両面TPモードである場合は、設定されるエミュレート位置が1つである際には、動作モードデータの値は例えば「両面TP1」となり、2つである際には、動作モードデータの値は例えば「両面TP2」となる。
入力データ取得部66は、コントローラ14に対する操作入力に対応付けられる入力データを取得する。本実施形態では、入力データ取得部66は、所定のフレームレートで入力データを順次取得する。また本実施形態では、入力データ取得部66は、例えば、操作スティックが操作された向き及び大きさの少なくとも一方に対応付けられる姿勢データを含む入力データを取得する。より具体的には例えば、操作スティックが傾倒された向き及び大きさの少なくとも一方に対応付けられる姿勢データを含む入力データが取得される。入力データ取得部66は、本実施形態では、例えば、操作スティックSLの姿勢データ(X1,Y1)、操作スティックSRの姿勢データ(X1,Y1)を取得する。また、入力データ取得部66は、方向キーDK1〜DK4やボタンB1〜B4、BL1、BL2、BR1、BR2などが押下されているか否かを示すデータも取得する。
動作モード設定部68は、入力データの取得に応じて、図17に示す遷移規則に従って、入力データに基づいて当該フレームにおける動作モード及びエミュレート位置の数を決定する。本実施形態では、動作モード設定部68は、図17に示す動作モードの遷移規則を示す遷移規則データを保持している。そして、動作モード設定部68は、遷移規則データと入力データ取得部66が取得する入力データとに基づいて、当該フレームにおける動作モード及びエミュレート位置の数を決定する。そして、動作モード設定部68は、動作モードデータ記憶部64に記憶されている動作モードデータの値を更新する。
決定部70は、入力データ取得部66が取得する入力データに応じた向きに沿った配置である検出面内の複数の位置の関係を決定する。本実施形態では、決定部70は、入力データ取得部66が取得する入力データに基づいてエミュレート位置を決定する。本実施形態では、決定部70が、コントローラ14が受け付ける操作入力をタッチセンサ52に対する操作入力に変換する変換部としての役割を担うこととなる。また、本実施形態では、決定部70は、入力データが取得される度に、前回決定したエミュレート位置から、姿勢データに基づいて決定される向きに沿って離れた位置を、当該フレームにおけるエミュレート位置として決定する。なお、決定部70は、複数のエミュレート位置を決定してもよい。そして、決定部70は、エミュレート位置に基づいて検出位置を決定する。なお、決定部70は、入力データが取得される度に複数の検出位置を決定してもよい。なお、決定部70は、例えば、入力データに基づいて、前回決定したエミュレート位置を始点とした際の、当該フレームにおけるエミュレート位置の位置ベクトルを決定してもよい。具体的には例えば、前回決定したエミュレート位置に対する当該フレームにおけるエミュレート位置の向き及び前回決定したエミュレート位置と当該フレームにおけるエミュレート位置との間の長さが決定されてもよい。
本実施形態では、決定部70は、図9に示すような、姿勢データの値と加速度パラメータの値との対応関係を示す姿勢加速度対応関係データを保持している。そして決定部70は、例えば姿勢加速度対応関係データと入力データ取得部66が取得する姿勢データとに基づいて、加速度パラメータの値を決定する。以下、操作スティックSLの姿勢データの値に基づいて値が決定される加速度パラメータを第1加速度パラメータと呼び、操作スティックSRの姿勢データの値に基づいて値が決定される加速度パラメータを第2加速度パラメータと呼ぶこととする。
また本実施形態では、決定部70は、図10に示すような、速度パラメータの値やエミュレート位置の座標値を決定する規則を示す決定規則データを保持している。そして決定部70は、例えば決定規則データと決定される加速度パラメータの値とに基づいて、速度パラメータの値及びエミュレート位置の座標値を決定する。そして、決定部70は、速度パラメータデータ記憶部62に記憶されている速度パラメータデータが示す速度パラメータの値とエミュレート位置データ記憶部60に記憶されているエミュレート位置データが示すエミュレート位置の座標値を更新する。
また本実施形態では、決定部70は、図6に示すような、エミュレート位置の座標値とタッチセンサ52の検出面における検出位置の座標値との対応関係を示す座標対応関係データを保持している。そして決定部70は、タッチ状態であるエミュレート位置が存在する場合は、当該エミュレート位置に対応付けられる検出位置を決定する。
決定部70はまた、動作モードが両面TPモードである場合に起こりうる、エミュレート位置データが示すエミュレート位置のY3座標値の補正を行う(図10参照)。
表示制御部72は、エミュレート位置の決定に応じてポインタ画像Iをディスプレイ16に表示させる。本実施形態では、表示制御部72は、動作モードデータ及びエミュレート位置がタッチ状態であるか否かに基づいて決定されるポインタ画像Iが、エミュレート位置データに基づいて特定される位置に配置された画面をディスプレイ16に表示させる。本実施形態では、エミュレート位置のディスプレイ16内における相対位置と検出位置の表面タッチセンサ52a内における相対位置とが略一致する。そのため、表示制御部72は、検出位置の検出面内における相対位置と略一致するディスプレイ16内の位置にポインタ画像Iを表示させることとなる。また本実施形態では、表示制御部72は、タッチセンサ52に対する入力操作のエミュレート開始指示の受付、ここでは例えば、動作モードをNモードからTPモードに遷移させる指示の受付に応じて、ポインタ画像Iをディスプレイ16に表示させる。当該指示は、本実施形態では例えば、動作モードがNモードである場合に受け付ける操作スティックSL及び操作スティックSRのうちの少なくとも一方の押下操作に相当する。
エミュレーション処理実行部74は、本実施形態では例えば、決定部70が決定する関係に従って配置された複数の位置が検出面上において順に検出された際に実行される処理を実行する。本実施形態では、エミュレーション処理実行部74は、決定部70が決定する検出位置がタッチセンサ52により検出された際にターゲット装置30で実行される処理を実行する。エミュレーション処理実行部74は、本実施形態では、入力データ取得部66が取得する入力データに基づいて決定される向きに沿った配置の検出位置が順に検出された際にターゲット装置30で実行される処理を実行する。また、上述のように、入力データに対応付けられる操作スティックSL、SRが操作された大きさが大きいほど、順に検出される検出位置の間隔は長くなる。また本実施形態では、エミュレーション処理実行部74は、決定部70により決定されるタッチセンサ52に対する操作入力に基づいて、ターゲットプログラムを実行する。
また、第1のエミュレート位置と第2のエミュレート位置の両方がタッチ状態である場合は(図12、図14、及び、図16参照)、それぞれに対応付けられる検出位置がタッチセンサ52に検出された際にターゲット装置30で実行される処理が実行される。
また、複数のフレームにわたって、すなわち複数回、連続して複数の検出位置が決定されたとする。この場合は、それぞれ複数の検出位置に対応付けられる入力データの取得順序(フレーム順)に従って、各フレームにつき決定される複数の検出位置が順に検出された際にターゲット装置30で実行される処理が実行される(図8参照)。
動作モードが表面TPモードである場合は、表面タッチセンサ52aの検出面の検出位置が検出された際にターゲット装置30で実行される処理が実行される。動作モードが裏面TPモードである場合は、裏面タッチセンサ52bの検出面の検出位置が検出された際にターゲット装置30で実行される処理が実行される。動作モードが両面TPモードである場合は、表面タッチセンサ52aと裏面タッチセンサ52bの両方についての検出面の検出位置が検出された際にターゲット装置30で実行される処理が実行される。
ここで、本実施形態に係るエミュレーション装置12で各フレームについて行われる処理の流れの一例を、図19に示すフロー図を参照しながら説明する。
まず、入力データ取得部66が、入力データを取得する(S101)。そして、動作モード設定部68が、当該入力データ及び遷移規則データに基づいて、動作モード、及び、エミュレート位置の数を決定する(S102)。そして、動作モード設定部68が、S102に示す処理で決定された動作モード及びエミュレート位置の数に応じた値となるよう、動作モードデータ記憶部64に記憶されている動作モードデータの値を更新する(S103)。
そして、動作モード設定部68は、動作モードデータの値が「N」であるか否かを確認する(S104)。「N」である場合、すなわち動作モードがNモードである場合は(S104:Y)、エミュレーション処理実行部74が、S101に示す処理で取得した入力データを取得した際にターゲット装置30が実行する処理を実行して(S105)、本処理例に示す処理を終了する。この場合は、ターゲット装置30の操作スティックSL(T)、SR(T)に対する操作をエミュレートすることが可能となる。
一方、「N」でない場合、すなわち動作モードがTPモードである場合は(S104:N)、決定部70は、姿勢加速度対応データとS101に示す処理で取得した姿勢データとに基づいて、加速度パラメータの値を決定する(S106)。このとき、動作モードデータの値が「表面TP1」、「裏面TP1」、又は、「両面TP1」である場合は、第1加速度パラメータの値が決定される。また、動作モードデータの値が「表面TP2」、「裏面TP2」、又は、「両面TP2」である場合は、第1加速度パラメータ及び第2加速度パラメータの値が決定される。
そして、決定部70は、決定規則データと速度パラメータデータ記憶部62に記憶されている速度パラメータデータの値とS106に示す処理で決定された加速度パラメータの値とに基づいて、当該フレームにおける速度パラメータの値を決定する(S107)。そして、決定部70は、速度パラメータデータ記憶部62に記憶されている速度パラメータデータが示す速度パラメータの値を、S107に示す処理で決定された値に更新する(S108)。S107及びS108に示す処理において、動作モードデータの値が「表面TP1」、「裏面TP1」、又は、「両面TP1」である場合は、第1速度パラメータの値の決定及び更新が行われる。また、動作モードデータの値が「表面TP2」、「裏面TP2」、又は、「両面TP2」である場合は、第1速度パラメータ及び第2速度パラメータの値の決定及び更新が行われる。
そして、決定部70は、エミュレート位置データ記憶部60に記憶されているエミュレート位置データと、S107に示す処理で決定された速度パラメータの値と、に基づいて、当該フレームにおけるエミュレート位置の座標値を決定する(S109)。そして、決定部70は、エミュレート位置データ記憶部60に記憶されているエミュレート位置データが示すエミュレート位置の座標値を、S109に示す処理で決定された座標値に更新する(S110)。このとき動作モードデータの値が「表面TP1」、「裏面TP1」、又は、「両面TP1」である場合は、第1エミュレート位置の座標値の決定及び更新が行われる。また、動作モードデータの値が「表面TP2」、「裏面TP2」、又は、「両面TP2」である場合は、第1エミュレート位置及び第2エミュレート位置の座標値の決定及び更新が行われる。また、動作モードが両面TPモードである場合は、S109に示す処理で決定されたエミュレート位置のY3座標値が153より小さい場合は153に補正される。
そして、表示制御部72が、動作モードデータに基づいて決定されるポインタ画像Iが、エミュレート位置データに基づいて特定される位置に配置された画面をディスプレイ16に表示させる(S111)。S111に示す処理では、表示制御部72は、例えば、当該画面を表すデータをディスプレイ16に出力する。そして、ディスプレイ16は当該データが表す画面を表示する。このとき動作モードデータの値が「表面TP1」、「裏面TP1」、又は、「両面TP1」である場合は、ポインタ画像Iは画面に1つ配置される。また、動作モードデータの値が「表面TP2」、「裏面TP2」、又は、「両面TP2」である場合は、ポインタ画像Iは画面に2つ配置される。
そして、決定部70が、タッチ状態であるエミュレート位置に対応付けられる検出位置を決定する(S112)。そして、エミュレーション処理実行部74が、S112に示す処理で決定された検出位置が検出された際にターゲット装置30で実行される処理を実行して(S113)、本処理例に示す処理を終了する。
なお、本発明は上述の実施形態に限定されるものではない。
例えば、コントローラ14が備える操作スティックSL、SRが、傾倒自在なスティックではなく上下左右にスライド可能な操作部材であっても構わない。そして、入力データに含まれる姿勢データが、当該スライド操作がされた向き及び大きさに対応付けられるものであってもよい。
また本実施形態を、ターゲット装置30をエミュレートするエミュレート装置12以外に適用してもよい。例えば、ターゲット装置30において、上述のようにして、操作スティックSL(T)、SL(R)に対する操作によって、タッチセンサ52に対する操作をエミュレートできるようにしてもよい。
また、エミュレーション装置12がディスプレイ16を内蔵していてもよい。また、エミュレーション装置12が複数の筐体から構成されていてもよい。また、上記の具体的な文字列や数値、並びに、図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。