(57)【特許請求の範囲】
【請求項１】
同一の文字種から成る第１の文字群に含まれる文字を組み合わせて、第１の文字群に含まれる文字とは異なる文字種から成る第２の文字群に含まれる文字を選択して、デジタル機器に入力するためのソフトウェアキーボード装置であって、
前記第１の文字群を、所定の基準に従って、第１の所定数の文字から成る第１の文字グループと、当該第１の所定数より少ない第２の所定数の文字から成る第２の文字グループとに分け、当該第１の文字グループと第２の文字グループとを近傍かつ平行に表示する文字グループ表示手段と、
ユーザの指示に基づいて、前記表示された第１の文字グループおよび第２の文字グループに含まれる文字を一文字ずつ指し示すポインティング手段と、
前記ポインタによって前記第１の文字グループの文字が指し示された際に、当該文字が前記第２の文字グループのいずれの文字とも対向しない時には、当該文字に対向する位置にまで当該第２の文字グループの表示領域をシフトし、当該文字が前記第２の文字グループのいずれかの文字と対向する時には、当該第２の文字グループの表示位置を現在の表示位置に固定する表示位置制御手段とを備える、ソフトウェアキーボード装置。
【請求項２】
前記文字グループ表示手段は、前記第１の文字グループおよび第２の文字グループに含まれる文字を互いに対向かつ平行な方向に連続して表示することを特徴とする請求項１に記載のソフトウェアキーボード装置。
【請求項３】
前記表示位置制御手段は、さらに、
前記ポインタが、前記平行方向に前記第２の文字グループの端部より外側に移動しようとする場合には、当該第２の文字グループの対応する端部の文字が、前記ポインタが指し示そうとする位置に在るように、当該第２の文字グループ全体の表示位置をシフトさせることによって、
前記ポインタが、前記第１の文字グループに平行に移動する場合には、当該ポインタによって、前記第２の文字グループに含まれる文字が指し示されることを特徴とする請求項２に記載のソフトウェアキーボード装置。
【請求項４】
前記表示位置制御手段は、
前記ポインタが、前記第２の文字グループから移動して、当該第２の文字グループの内部の文字を指し示そうとする時は、当該第２の文字グループ全体の表示位置をシフトしないように、前記文字表示手段を制御することを特徴とする請求項３に記載のソフトウェアキーボード装置。
【請求項５】
同一の文字種から成る第１の文字群に含まれる文字を組み合わせて、第１の文字群に含まれる文字とは異なる文字種から成る第２の文字群に含まれる文字を選択して、デジタル機器に入力するためのソフトウェアキーボード装置であって、
前記第１の文字群を、所定の基準に従って、第１の所定数の文字から成る第１の文字グループと、当該第１の所定数より少ない第２の所定数の文字から成る第２の文字グループとに分け、当該第１の文字グループおよび第２の文字グループに含まれる文字を互いに対向かつ平行な方向に連続して表示する文字グループ表示手段と、
ユーザの指示に基づいて、ポインタを一文字分ずつ移動させて、前記表示された第１の文字グループおよび第２の文字グループに含まれる文字のそれぞれを、指し示すポインティング手段と、
前記ポインタが、前記平行方向に前記第２の文字グループの端部より外側に移動しようとする場合には、当該第２の文字グループの対応する端部の文字が、前記ポインタが指し示そうとする位置に在るように、当該第２の文字グループ全体の表示位置をシフトさせることによって、
前記ポインタが、当該第１の文字グループに平行に移動する場合には、当該ポインタによって、前記第２の文字グループに含まれる文字が指し示されることを特徴とするソフトウェアキーボード装置。
【請求項６】
前記ポインティング手段は、前記ポインタが、前記第１の文字グループの端部の文字の外側の位置を指示しようとする時は、当該ポインタを当該第１の文字グループのもう一方の端部に在る文字を指示するように移動させることを特徴とする請求項１、２、３、４、および５の何れかに記載のソフトウェアキーボード装置。
【請求項７】
前記ポインティング手段は、前記ポインタが、前記第２の文字グループの端部の文字の外側の位置を指示しようとする時は、当該ポインタを当該第２の文字グループのもう一方の端部に在る文字を指示するように移動させることを特徴とする請求項４に記載のソフトウェアキーボード装置。
【請求項８】
前記ポインティング手段は、前記第２の文字グループの端部の文字が、前記第１の文字グループの端部の文字に対向するように、表示位置がシフトされた第２の文字グループの端部の外側の位置を、前記ポインタが指示しようとする時は、当該第１の文字グループのもう一方の端部に在る文字に対向する位置に、当該ポインタを移動させることを特徴とする請求項３および５の何れかに記載のソフトウェアキーボード装置。
【請求項９】
前記第２の文字群に含まれる文字は、ダブルバイトコードで規定される文字であり、
前記第１の文字群に含まれる文字は、シングルバイトコードで規定される文字であることを特徴とする請求項１、２、３、４、５、６、７、および８の何れかに記載のソフトウェアキーボード装置。
【請求項１０】
前記第２の文字群に含まれる文字は、日本語であり、
前記第１の文字群に含まれる文字は、アルファベット２６文字であることを特徴とする請求項９に記載のソフトウェアキーボード装置。
【請求項１１】
前記第１のグループには、子音に対応するアルファベットが含まれ、
前記第２のグループは、母音に対応するアルファベットが含まれることを特徴とする請求項１、２、３、４、５、６、７、および８の何れかに記載のソフトウェアキーボード装置。
【請求項１２】
前記第２の文字グループに含まれる文字は、Ａ、Ｉ、Ｕ、Ｅ、およびＯの５文字であり、
前記第１グループに含まれる文字は、アルファベットから前記第２の文字グループに含まれる文字を除く２１文字であることを特徴とする請求項１１に記載のソフトウェアキーボード装置。
【請求項１３】
前記第１の文字グループに含まれる文字を、所定の基準に基づいて、少なくとも２つ以上のサブグループに分けられることを特徴とする請求項９または１１に記載のソフトウェアキーボード装置。
【請求項１４】
前記サブグループのそれぞれは、前記第２の文字グループに両側に、互いに平行に表示されることを特徴とする請求項１３に記載のソフトウェアキーボード装置。
【請求項１５】
前記サブグループのそれぞれは、前記第２の文字グループ（Ｇｖ）の片側に、互いに平行に表示されることを特徴とする請求項１４に記載のソフトウェアキーボード装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、小型軽量化されたデジタル携帯機器のように、入力ディバイスの数および機能と、入力結果をユーザに示す表示面積が共に制限された使用環境下において、ユーザの肉体的および心理的負担が少なく、文字が入力できるソフトウェアキーボード装置に関する。
【０００２】
【従来の技術】
近年、腕時計、携帯電話、携帯用オーディオ機器、携帯用ビデオ機器および携帯情報端末等に代表される小型軽量化されたデジタル携帯機器が、社会に広く普及している。その結果、多くのユーザは、そのようなデジタル携帯機器に文字情報を入力したいという要望を持っている。しかしながら、そのようなデジタル携帯機器においては、携帯性を追求した結果、ユーザが文字入力を行うために利用できる入力ディバイスの数および機能が制限されている。さらに、ユーザが、自身の入力内容を確認するために必要とする表示部の面積も制限されている。
【０００３】
このような環境下で、従来提供されている文字入力装置の代表的なものとしては、カーソルキーを操作して、全ての入力可能な文字を順番に表示させ、所望の文字が表示された時点で、選択のための入力ディバイスを操作して選択するものがある。この場合、所望の文字が直ちに表示されれば良いが、平均的に、その入力装置に用意されている全文字数の半分を表示させる必要がある。
【０００４】
【発明が解決しようとする課題】
このような、状態において、数十万以上の文字の種類があると言われる日本語を、制限された入力ディバイスおよび限られた表示面積の従来の文字入力手段を用いて入力するのは、実際上不可能と言わざるを得ない。
そこで、本発明においては、そのような制限された環境下においても、人間の行動心理を考慮し、比較的キー・ストロークが少なくなるよう工夫したソフトウェアキーボードを提案する。行動心理とは、画面から得られる情報を基に次にどの様にカーソルを移動させるのかという観点である。
【０００５】
ソフトウェアキーボードにより日本語を入力する場合、５０音全てを画面に網羅すると目的の文字を探すのに手間取り、キー・ストローク（入力装置の操作回数）が多くなる傾向にある。最近流行の携帯電話やミニディスク装置等は文字入力ができるが結構厄介な入力をしなければならず、ユーザにかなりな肉体的および心理的負担がかかり、精神衛生上良くない。また、ミニディスク装置等に備えられている表示装置の表示画面を占有するキーボード部の割合が多くなる。
本発明は上記の課題を解決するために成されたもので、ボタン数の少ない入力装置で、簡単に日本語入力することを可能にし、ローマ字入力を行えるソフトウェアキーボードを提供することを目的とする。
【０００６】
【課題を解決するための手段および発明の効果】
第１の発明は、同一の文字種から成る第１の文字群に含まれる文字を組み合わせて、第１の文字群に含まれる文字とは異なる文字種から成る第２の文字群に含まれる文字を選択して、デジタル機器に入力するためのソフトウェアキーボード装置であって、
第１の文字群を、所定の基準に従って、第１の所定数の文字から成る第１の文字グループと、第１の所定数より少ない第２の所定数の文字から成る第２の文字グループとに分け、第１の文字グループと第２の文字グループとを近傍かつ平行に表示する文字グループ表示部と、
ユーザの指示に基づいて、表示された第１の文字グループおよび第２の文字グループに含まれる文字を一文字ずつ指し示すポインティング部と、
ポインタによって第１の文字グループの文字が指し示された際に、当該文字が第２の文字グループのいずれの文字とも対向しない時には、当該文字に対向する位置にまで当該第２の文字グループの表示領域をシフトし、当該文字が第２の文字グループのいずれかの文字と対向する時には、当該第２の文字グループの表示位置を現在の表示位置に固定する表示位置制御部とを備える。
【０００７】
上述のように、第１の発明においては、第１の文字グループの文字を選択した場合には、その上下の何れかの位置には、必ず第２の文字グループの文字が表示されているので、第２の文字グループの文字を選択する際にポインタを移動させる工程数を低減できる。
【０００８】
第２の発明は、第１の発明において、文字グループ表示部は、第１の文字グループおよび第２の文字グループに含まれる文字を互いに対向かつ平行な方向に連続して表示することを特徴とする。
【０００９】
第３の発明は、第２の発明において、表示位置制御部は、さらに、
ポインタが、平行方向に第２の文字グループの端部より外側に移動しようとする場合には、第２の文字グループの対応する端部の文字が、ポインタが指し示そうとする位置に在るように、第２の文字グループ全体の表示位置をシフトさせることによって、
ポインタが、第１の文字グループに平行に移動する場合には、ポインタによって、第２の文字グループに含まれる文字が指し示されることを特徴とする。
【００１０】
上述のように、第３の発明においては、第２の文字グループから、第１の文字グループの文字を選択するために、所望の文字の直下或いは直上の位置にカーソルを動かす間も第２の文字グループがカーソルに追随して移動するので、ユーザに安心感を与えることができる。
【００１１】
第４の発明は、第３の発明において、表示位置制御部は、
ポインタが、第２の文字グループから移動して、第２の文字グループの内部の文字を指し示そうとする時は、第２の文字グループ全体の表示位置をシフトしないように、文字表示部を制御することを特徴とする。
【００１２】
上述のように、第４の発明においては、第１の文字グループから第２の文字グループに移動した場合は、第２の文字グループを移動しないようにロックすることによって、カーソル移動に対する第２文字グループの追随移動の方法を多様化している。
【００１３】
第５の発明は、同一の文字種から成る第１の文字群に含まれる文字を組み合わせて、第１の文字群に含まれる文字とは異なる文字種から成る第２の文字群に含まれる文字を選択して、デジタル機器に入力するためのソフトウェアキーボード装置であって、
第１の文字群を、所定の基準に従って、第１の所定数の文字から成る第１の文字グループと、第１の所定数より少ない第２の所定数の文字から成る第２の文字グループとに分け、第１の文字グループおよび第２の文字グループに含まれる文字を互いに対向かつ平行な方向に連続して表示する文字グループ表示部と、
ユーザの指示に基づいて、ポインタを一文字分ずつ移動させて、表示された第１の文字グループおよび第２の文字グループに含まれる文字のそれぞれを、指し示すポインティング部と、
ポインタが、平行方向に第２の文字グループの端部より外側に移動しようとする場合には、第２の文字グループの対応する端部の文字が、ポインタが指し示そうとする位置に在るように、第２の文字グループ全体の表示位置をシフトさせることによって、
ポインタが、第１の文字グループに平行に移動する場合には、ポインタによって、第２の文字グループに含まれる文字が指し示されることを特徴とするソフトウェアキーボード装置。
【００１４】
上述のように、第５の発明においては、第２の文字グループを選択した後に、第１の文字グループを選択するために、選択する第１グループの文字の直下或いは直上の位置にポインタを動かす時も、第２の文字グループがポインタに追随して移動するので、ユーザに安心感を与えることができる。
【００１５】
第６の発明は、第１、第２、第３、第４、および第５の発明の何れかにおいて、ポインティング部は、ポインタが、第１の文字グループの端部の文字の外側の位置を指示しようとする時は、ポインタを第１の文字グループのもう一方の端部に在る文字を指示するように移動させることを特徴とする。
【００１６】
上述のように、第６の発明においては、カーソルを第１グループの一端から他端へ循環移動させることによって、カーソルの移動に対する第２の文字グループの追随移動との相乗効果により、第２の文字グループの文字を選択する際にポインタを移動させる工程数を低減できる。
【００１７】
第７の発明は、第４の発明において、ポインティング部は、ポインタが、第２の文字グループの端部の文字の外側の位置を指示しようとする時は、ポインタを第２の文字グループのもう一方の端部に在る文字を指示するように移動させることを特徴とする。
【００１８】
上述のように、第７の発明においては、カーソルを第２グループの一端から他端へ循環移動させることによって、第２の文字グループの文字を選択する際にポインタを移動させる工程数を低減できる。
【００１９】
第８の発明は、第３および第５の発明の何れかにおいて、ポインティング部は、第２の文字グループの端部の文字が、第１の文字グループの端部の文字に対向するように、表示位置がシフトされた第２の文字グループの端部の外側の位置を、ポインタが指示しようとする時は、第１の文字グループのもう一方の端部に在る文字に対向する位置に、ポインタを移動させることを特徴とする。
【００２０】
上述のように、第８の発明においては、カーソルの循環移動に追随して第２の文字グループを循環移動させることによって、ユーザに安心感を与えることができる。
【００２１】
第９の発明は、第１、第２、第３、第４、第５、第６、第７および第８の発明の何れかにおいて、第２の文字群に含まれる文字は、ダブルバイトコードで規定される文字であり、
第１の文字群に含まれる文字は、シングルバイトコードで規定される文字であることを特徴とする。
【００２２】
上述のように、第９の発明においては、シングルバイトで規定される数の少ない文字を組み合わせることで、ダブルバイトコードで規定される非常に数の多い文字を表現できる。
【００２３】
第１０の発明は、第９の発明において、第２の文字群に含まれる文字は、日本語であり、
第１の文字群に含まれる文字は、アルファベット２６文字であることを特徴とする。
【００２４】
上述のように、第１０の発明においては、カーソルの移動に対して、第２の文字グループに含まれるアルファベットが追随移動して表示されるので、第１の文字グループに含まれる文字の後に第２の文字グループに含まれるアルファベットをつなげることが容易である。
【００２５】
第１１の発明は、第１、２、３、４、５、６、７、および８の何れかの発明において、第１のグループには、子音に対応するアルファベットが含まれ、
第２のグループは、母音に対応するアルファベットが含まれることを特徴とする。
【００２６】
上述のように、第１１の発明においては、カーソルの移動に対して、母音行を追随移動させて表示されるので、子音の後に母音をつなげて構成されることが殆どである日本語の仮名文字を表現するためのポインタの移動工程数が低減できる。
【００２７】
第１２の発明は、第１１の発明において、第２の文字グループに含まれる文字は、Ａ、Ｉ、Ｕ、Ｅ、およびＯの５文字であり、
第１グループに含まれる文字は、アルファベットから第２の文字グループに含まれる文字を除く２１文字であることを特徴とする。
【００２８】
上述のように、第１２の発明においては、２６文字の子音に対応するアルファベットを指し示すポインタに移動して、５文字の母音に対応するアルファベットが追随移動して表示されるので、子音の後に母音をつなげて構成されることが殆どである日本語の仮名文字を表現するためのポインタの移動工程数が低減できる。
【００２９】
第１３の発明は、第９または１１の発明において、第１の文字グループに含まれる文字を、所定の基準に基づいて、少なくとも２つ以上のサブグループに分けられることを特徴とする。
【００３０】
第１４の発明は、第１３の発明において、サブグループのそれぞれは、第２の文字グループに両側に、互いに平行に表示されることを特徴とする。
【００３１】
第１５の発明は、第１４の発明において、サブグループのそれぞれは、第２の文字グループの片側に、互いに平行に表示されることを特徴とする。
【００３２】
【発明の実施の形態】
以下に、図１〜図２８を参照して、本発明の実施形態にかかるソフトウェアキーボード装置について説明する。その後、図２９〜図５５を参照して、本発明をゲーム機に適応した実施例について、詳しく説明する。
【００３３】
先ず、図１および図２を参照して、本実施形態にかかるソフトウェアキーボード装置ＳＫＡの構成と主な動作について説明する。その後、図３〜２８について、ソフトウェアキーボード装置ＳＫＡにおける文字入力方法について具体的に説明する。
【００３４】
図１に示すように、本実施形態にかかるソフトウェアキーボード装置ＳＫＡは、プログラム源１、入力器１９、表示器２１および文字入力器本体１００を含む。プログラム源１は、ソフトウェアキーボード装置ＳＫＡの動作を実行させる各種コンピュータプログラムを格納しており、好ましくは、不揮発性の記憶手段によって構成されている。
【００３５】
入力器１９は、ユーザが操作して自身の指示をソフトウェアキーボード装置ＳＫＡに伝える手段であり、好ましくは、キーボード等のポインティングディバイスと選択決定入力ディバイスを備えている。
【００３６】
文字入力器本体１００は、ＣＰＵ５とＲＡＭ１３を内蔵している。ＣＰＵ５は、プログラム源１に格納されている各種プログラムをロードすると共に、入力器１９から入力されるユーザの指示に基づいて、ロードされたプログラムを実行する。ＲＡＭ１３は、ＣＰＵ５がプログラムを実行する際に必要な作業領域を提供するワーキングメモリである。なお、ＣＰＵ５は、ソフトウェアキーボード装置ＳＫＡ全体の動作を制御する制御装置でもある。
【００３７】
なお、プログラム源１は、文字入力器本体１００に対して、脱着可能に接続できるように構成しても良いし、また、ＣＰＵ５やＲＡＭ１３のように、予め文字入力器本体１００に内蔵するように構成しても良い。
【００３８】
表示器２１は、ＣＰＵ５の実行結果を映像や音声で表示して、ユーザの指示結果を表示したり、ユーザに新たな指示の入力を促す。この目的のために、本発明において、プログラムの実行結果およびユーザの指示に応じて、キーボードの状態が適正に変化して表示器２１に表示される。以降、この表示器２１に画像や音声で表示されるキーボードを「ソフトウェアキーボード」と称する。
【００３９】
次に、図２に示すフローチャートを参照して、ソフトウェアキーボード装置ＳＫＡの動作について説明する。ソフトウェアキーボード装置ＳＫＡに電源が投入されて、その動作が開始される。
【００４０】
先ず、ステップ＃１０００において、プログラム源１から各種プログラムが文字入力器本体１００にロードされる。そして、処理は、次のステップ＃２０００に進む。
【００４１】
ステップ＃２０００において、プログラム源１からロードされたプログラムに従って、ソフトウェアキーボード装置ＳＫＡの各種要素およびパラメータが初期化される。そして、処理は、次のステップ＃３０００に進む。
【００４２】
ステップ＃３０００において、ステップ＃２０００で初期化された状態が、表示器２１に表示される。つまり、表示器２１には、ユーザによる指示が入力される前の状態のソフトウェアキーボードが表示される。そして、処理は、次のステップ＃４０００に進む。
【００４３】
ステップ＃４０００において、ユーザによる入力器１９の状態が取得される。つまり、入力の有無およびその入力内容を検出すると共に、検出結果に基づいて、以下に続く各ステップ＃５０００、＃６０００、＃７０００、＃８０００、および＃９０００の何れかが選択的に実行される。
【００４４】
例えば、ユーザがカーソル移動のための入力ディバイスを操作していれば、処理は、ステップ＃４０００からステップ＃５０００に分岐する。
【００４５】
ユーザが入力したアルファベットを決定するように入力ディバイスを操作していれば、処理は、＃７０００に分岐する。
【００４６】
ユーザが＃７０００で決定されたアルファベットの組み合わせから変換された仮名から、さらに変換される漢字の候補の何れかを選択するように入力ディバイスを操作すれば、処理は、＃６０００に分岐する。
【００４７】
また、ユーザが、＃５０００で表示されたソフトウェアキーボードＳＫＢ上のアルファベットを選択した後に、そのアルファベットの選択を取り消すように入力ディバイスを操作すれば、処理は、ステップ＃８０００に分岐する。
【００４８】
さらに、ユーザが、表示されているソフトウェアキーボードＳＫＢの動作モードを変更するように、入力ディバイスを操作すれば、処理は、ステップ＃９０００に分岐する。
【００４９】
ステップ＃５０００において、入力器１９に含まれるポインティングディバイスの動作状態を表すポインタパラメータの値に応じて、表示器２１に表示されるソフトウェアキーボードが変更される。
【００５０】
ステップ＃５０００、ステップ＃６０００、ステップ＃７０００、ステップ＃８０００、およびステップ＃９０００における処理については、後ほど、図３２を参照して、詳しく説明する。
【００５１】
前述のステップ＃５０００、＃６０００、＃７０００、＃８０００、および＃９０００の何れかが選択的に実行された後、処理は、ステップ＃４０００に戻る。そして、ステップ＃４０００において、再度、取得された入力器１９の状態、つまり、ユーザの指示に基づいて、ステップ＃５０００、＃６０００、＃７０００、＃８０００、および＃９０００の何れかが選択的に実行される。このようなステップ＃４０００〜＃９０００の処理が繰り返し実行されることによって、ユーザは、所望の文字を、ソフトウェアキーボード装置ＳＫＡを用いて選択して入力できる。
【００５２】
次に、図３および図４に、ソフトウェアキーボードが表示されている表示器２１の状態を例示する。図３の左上に位置するのがソフトウェアキーボードＳＫＢ、その下に日本語を入力する日本語入力ラインエディタ、最下行にローマ字入力時はローマ字入力変換ラインが配置される。ソフトウェアキーボードＳＫＢは、Ａ〜Ｚのアルファベット２６文字で構成されている。
【００５３】
同図において、ローマ字入力変換ラインには、ソフトウェアキーボードＳＫＢを利用して、アルファベット２６文字のそれぞれが適正に選択された組み合わせが、平仮名の「かん」にローマ字変換された例がローマ字入力変換ライン上に表されている。さらに、このようなローマ字入力変換ラインで、アルファベットからローマ字変換された平仮名が、さらに、漢字に変換された例が日本語入力ラインエディタ上に示されている。同例において、「日本語入力は」が既に入力済みである。
【００５４】
図４に、図３においてローマ字変換された平仮名の「かん」が漢字変換される様子を示す。漢字変換によって、「かん」に対応する漢字が漢字候補ラインに表示されている。入力モード・アイコンを利用して、漢字変換モードの「漢」、平仮名文字入力の「あ」、カタカナ文字入力の「ア」、アルファベット文字入力の「Ａ」、記号・句読点文字入力の「記」、数字・漢数字文字入力の「数」、ギリシャ文字入力の「ギ」、漢字コード（ＳＪＩＳ、ＪＩＳ）による入力の「コ」を選択できる。
【００５５】
母音グループ追随切換アイコンを利用して、ソフトウェアキーボードＳＫＢの動作モードである「追随モード１」、「追随モード２」、および「静止モード」の３つの動作モードが選択できる。これらの３つの動作モードにおいて、主に母音用アルファベット群の移動許可の制御および禁止の制御の方法が異なる。これについては、後ほど、図５〜図２６を参照して詳述する。
【００５６】
次に、図５を参照して、本実施形態にかかるソフトウェアキーボードＳＫＢの基本的な構成について、先ず説明する。その後、ソフトウェアキーボードＳＫＢの３つの動作モードである「追随モード１」、「追随モード２」、および「静止モード」のそれぞれについて具体的に説明する。
【００５７】
図５に、図３および図４に示したソフトウェアキーボードＳＫＢを拡大して示す。同図に明示するように、ソフトウェアキーボードＳＫＢにおいて、アルファベット２６文字は、「Ａ」、「Ｉ」、「Ｕ」、「Ｅ」、および「Ｏ」の日本語の母音を表す５文字よりなる母音グループＧｖと、残りの２１文字の子音を表す文字よりなる子音グループＧｃに分けられている。
なお、同図において、母音グループＧｖの各アルファベットは、好ましくは、日本語の母音「あ」、「い」、「う」、「え」、および「お」の順番に配置されるが、必要に応じて、任意の順番に配置しても良い。また、表示器２１の表示面積の有効利用および、文字の選択動作の便を図って、子音グループＧｃは、さらに３つの子音サブグループＧｃ１、Ｇｃ２、およびＧｃ３に分けられている。
【００５８】
同図に示すように、第１の子音サブグループＧｃ１は、日本語の「か行」、「さ行」、「た行」、「な行」、「は行」、「ま行」、「や行」、「ら行」、および「わ行」のそれぞれに対応する、アルファベットの「Ｋ」、「Ｓ」、「Ｔ」、「Ｎ」、「Ｈ」、「Ｍ」、「Ｙ」、「Ｒ」、および「Ｗ」で構成される。なお、第１の子音サブグループＧｃ１を構成する９文字のアルファベットは、ユーザの感性的な簡便性から、好ましくは、図示したように「Ｋ」、「Ｓ」、「Ｔ」、「Ｎ」、「Ｈ」、「Ｍ」、「Ｙ」、「Ｒ」、および「Ｗ」の順番に配置されるが、必要に応じて、任意の順番で配置しても良い。
【００５９】
第２の子音サブグループＧｃ２は、日本語の「じゃ行」、「が行」、「ざ行」、「だ行」、「ふぁ行」、「ちゃ行」、「ば行」、「ぱ行」、および「小文字行」のそれぞれに対応する、アルファベットの「Ｊ」、「Ｇ」、「Ｚ」、「Ｄ」、「Ｆ」、「Ｃ」、「Ｂ」、「Ｐ」および「Ｌ」で構成される。なお、第１の子音サブグループＧｃ１と同様に、第２の子音サブグループＧｃ２は９文字のアルファベットから構成される。また、第２の子音サブグループＧｃ２においても、ユーザの感性的な簡便性から、好ましくは、図示したように「Ｊ」、「Ｇ」、「Ｚ」、「Ｄ」、「Ｆ」、「Ｃ」、「Ｂ」、「Ｐ」および、「Ｌ」の順番に配置される。しかしながら、必要に応じて、各文字を、任意の順番で配置しても良い。
【００６０】
第３の子音サブグループＧｃ３は、通常の日本語ではないが最近よく用いられる英語特有の音に対応するアルファベットの「Ｑ」、「Ｘ」、および「Ｖ」の３文字で構成される。前述の第１の子音サブグループＧｃ１、および第２の子音サブグループＧｃ２と同様に、必要に応じて、「Ｑ」、「Ｘ」、および「Ｖ」は、任意の順番に配置しても良い。
【００６１】
前述の如く、アルファベット２６文字は、母音グループＧｖ、第１の子音サブグループＧｃ１、第２の子音サブグループＧｃ２、および第３の子音グループＧｃ３の４つのグループに分けられる。さらに、アルファベット２６文字は、各グループ毎にその構成文字を左から右へ順番に配置して、４段に渡って配列される。第１段目には、第１の子音サブグループＧｃ１が配列さる。第２段目には母音グループＧｖが中央揃えされた状態で配列される。そして、第３段目および第４段目には、それぞれ、第２の子音サブグループＧｃ２および第３の子音グループＧｃ３が配列される。
【００６２】
つまり、同例において、母音グループＧｖの左端部の文字「Ａ」が、第１の子音サブグループＧｃ１の「Ｔ」、および第２の子音サブグループＧｃ２の「Ｚ」に対向する位置に配置されている。そして、母音グループＧｖの右端部の文字「Ｏ」は、第１の子音グループＧｃ１の「Ｙ」、および第２の子音サブグループＧｃ２の「Ｂ」に対向する位置に配置されている。さらに詳述すれば、母音グループＧｖの「Ｉ」は、第１の子音サブグループＧｃ１の「Ｎ」と第２の子音サブグループＧｃ２の「Ｄ」のそれぞれと対向している。同様に、「Ｕ」は「Ｈ」と「Ｆ」のそれぞれに対向し、「Ｅ」は「Ｍ」と「Ｃ」のそれぞれに対向してる。そして、第３の子音サブグループＧｃ３の「Ｑ」、「Ｘ」、および「Ｖ」は、第２の子音サブグループＧｃ２の「Ｄ」、「Ｆ」、および「Ｃ」とそれぞれ対向している。
【００６３】
なお、同図において、主に、文字を囲むように表示されている四角形の枠は、文字選択用カーソル（以降、「カーソル」と称する）の現位置を示している。カーソルは、原則として、アルファベットの在るところのみ一文字単位で自由に移動できる。しかし、第２段目の母音グループＧｖのアルファベット群は、特殊な移動を行う。このカーソルの移動に対する母音グループＧｖのアルファベット群の特殊な移動方法をソフトウェアキーボードの動作モードと呼ぶ。ソフトウェアキーボードの動作モードには、「追随モード１」、「追随モード２」、「静止モード」の３種類ある。なお、カーソルの移動は、前述の入力器１９をユーザが操作して、ソフトウェアキーボード装置ＳＫＡに指示する。以下に、ソフトウェアキーボードＳＫＢの３つ動作モードの違いについて詳述する。
【００６４】
なお、以下にソフトウェアキーボードＳＫＢの動作モードについて、図面を参照して説明する前に、各動作モードにおけるカーソルと母音グループＧｖの移動原理について簡単に述べる。
【００６５】
（追随モード１）
追随モード１において、カーソルが母音グループＧｖ内を移動する場合と、子音グループＧｃ内を移動する場合において、若干動作が異なる。先ず、カーソルが子音グループＧｃ内および母音グループＧｖ内を移動する場合は、自由に移動できる。但し、カーソルが子音グループＧｃ内を、母音グループＧｖの両端部の何れかに対向する同列に位置する文字を越えて、左右方向の何れかに移動しようとする際には、母音グループＧｖのその端部の文字が、子音グループＧｃ内を移動するカーソルの直下或いは直上に在るように追随して、母音グループＧｖ全体が左右方向に移動する。そして、カーソルが子音グループＧｃの端部の文字を越えてさらに、移動しようとすると、カーソルは同子音グループＧｃの他端部の文字に循環移動する。そして、母音グループＧｖが、この循環移動したカーソルの直下或いは直上に在るように追随して、母音グループＧｖ全体が移動する。
【００６６】
「カーソルの循環移動」とは、例えば最左端までカーソルを移動した時点で、次は最右端に移動したい時に、わざわざ右方向にカーソルを移動させなくても、左に一文字分の移動指示すれば、一気に数文字分を飛び越して最右端に移動することである。これは、ストローク量の低減を追求する場合は必要不可欠な手法である。なお、母音グループＧｖ全体の循環移動も、カーソルの循環移動と同様である。
【００６７】
一方、カーソルが母音グループＧｖ内を移動する場合について説明する。この場合、カーソルは母音グループＧｖ内を自由に移動できる。しかし、カーソルが母音グループＧｖの両端部を越えて、ソフトウェアキーボードＳＫＢの両端部までの間を、左右の何れかの方向に移動しようとする際には、母音グループＧｖのその端部の文字がカーソルに追随して、母音グループＧｖ全体が移動する。そして、カーソルがソフトウェアキーボードＳＫＢの一端部を越えてさらに移動しようとする場合は、カーソルは、ソフトウェアキーボードＳＫＢの他端部まで、循環移動すると共に、母音グループＧｖの他端部の文字が循環移動したカーソルの位置に在るように、母音グループＧｖ全体がカーソルに追随して移動する。
【００６８】
（追随モード２）
追随モード２において、カーソルが母音グループＧｖの内部を移動する場合を除いて、前述の追随モード１と同様である。つまり、カーソルが子音グループＧｃ内を移動する際のカーソルの移動と、母音グループＧｖの移動は、追随モード１の場合と全く同じである。しかしながら、追随モード２において、カーソルが母音グループＧｖ内を移動する場合には、カーソルが母音グループＧｖの範囲を越えて移動することはできない。それ故に、母音グループＧｖ内を移動するカーソルに、母音グループＧｖが追随移動することはない。
【００６９】
つまり、カーソルが子音グループＧｃから母音グループＧｖに移動する場合には、子音グループＧｃ内を移動するカーソルに追随している母音グループＧｖが、カーソルが移動する直前の追随位置で固定される。そして、カーソルは位置を固定された母音グループＧｖの内部を自由に移動できる。そして、カーソルがその固定された母音グループＧｖの両端部を越えて移動しようとすると、カーソルは母音グループＧｖの他端部に循環移動される。
【００７０】
（静止モード）
静止モードにおいて、各文字グループ内を自由に移動が可能である。但し、母音グループＧｖは初期状態で固定されたままで、カーソルの移動に対する追随移動は行わない。また、カーソルが、異なるグループ間を移動する際には、その移動距離が最小になるような位置に在る文字が選択される。
【００７１】
図５に示す例に照らして追随モード１についてさらに説明する。図５において、第１の子音サブグループＧｃ１、第２の子音サブグループＧｃ２、および第３の子音サブグループＧｃ３から成る子音用アルファベット領域（上から１段目、３段目、４段目）において、各子音グループＧｃ中でカーソルを左右に移動させる場合について考える。カーソルを左右に動かした結果、カーソルの各子音グループＧｃにおける位置が、母音グループＧｖの左右端の「Ａ」および「Ｏ」に対応する位置を越える場合がある。
【００７２】
つまり、第１の子音サブグループＧｃ１において、カーソルが「Ｔ」から「Ｓ」に移動する、或いは「Ｙ」から「Ｒ」に移動する場合である。なお、第２の子音サブグループＧｃ２において、カーソルが「Ｚ」から「Ｇ」に移動する、或いは「Ｂ」から「Ｐ」に移動する場合である。より正確に言うならば、母音グループＧｖの両端の文字の上下に位置する子音グループＧｃの文字よりもさらに、外側の文字にカーソルを移動させる場合である。このようなカーソル移動を、「母音グループＧｖの限界越移動」と称する。このように、カーソルが母音グループＧｖの限界越移動を行う場合には、そのカーソルに追随する母音グループＧｖ全体の移動が行われる。
【００７３】
また、母音グループＧｖ内においてのカーソル移動についても同様に母音グループＧｖ全体の追随移動が行われる。つまり、母音グループＧｖ内で、カーソルを「Ａ」からその左隣の空白部に動する場合、カーソルの移動に追随して、母音グループＧｖ全体が一つ左隣に移動する。
【００７４】
＜追随モード１：カーソルが母音グループＧｖ内を移動＞
以下に、図５〜図１０を参照して、前述の追随モード１における、カーソルが母音グループＧｖ内を移動する際のソフトウェアキーボードＳＫＢの具体的な動作例について説明する。今、図５に示すように、カーソルが母音グループＧｖの「Ｉ」の位置に在る時に、カーソルを「Ｉ」の左隣の「Ａ」に位置に移動させる。この場合は、図６に示すように、カーソルのみ通常に移動して、母音グループＧｖのカーソルに対する追随移動は生じない。
【００７５】
さらに、カーソルを「Ａ」の左隣の空白部（第１の子音サブグループＧｃ１の「Ｓ」と、第２の子音サブグループＧｃ２の「Ｇ」の間の位置）に移動させる。この場合、図７に示すように、母音グループＧｖ全体が、カーソルが「Ａ」上に在るままで、カーソルの移動に追随して移動する。つまり、母音グループＧｖを構成するアルファベットの各文字が一文字分ずつ左隣に移動する。
【００７６】
そして、カーソルを母音グループＧｖの左端の左隣の空白部に、さらに移動させる。この場合、図８に示すように、母音グループＧｖはカーソルに追随して、カーソルが「Ａ」上に在るままで、ソフトウェアキーボードＳＫＢの左端まで移動する。
【００７７】
さらに、ソフトウェアキーボードＳＫＢの左端を越えて、なお左側に移動するようにカーソルの移動を指示する。この場合、図９に示すように、母音グループＧｖ全体がソフトウェアキーボードＳＫＢの右端に接するように移動すると共に、カーソルは「Ｏ」の位置に移動する。
【００７８】
なお、さらに左隣に、カーソルを移動するように指示すると、図１０に示すように、母音グループＧｖはソフトウェアキーボードＳＫＢの右端に接した状態のままで、カーソルだけが「Ｏ」から「Ｅ」の位置に移動する。なお、前述の一連の左方向のカーソル移動とは逆に、右方向へのカーソル移動を行う時も、母音グループＧｖは前述の動作原理に従った動作を行う。
【００７９】
＜追随モード１：カーソルが子音グループＧｃ内を移動＞
次に、図１１〜図１９を参照して、前述の追随モード１において、カーソルが子音グループＧｃ内を移動する際のソフトウェアキーボードＳＫＢの動作について具体的に説明する。
【００８０】
図１１に示すように、ソフトウェアキーボードＳＫＢのカーソルが第１の子音サブグループＧｃ１の文字、例えば、「Ｎ」の位置に在り、母音グループＧｖが標準の位置にある状態において、ユーザが入力器１９を操作して、カーソルを「Ｎ」の左隣の「Ｔ」の位置に移動するように指示した場合を考える。この場合、カーソルの移動後の位置である「Ｔ」のソフトウェアキーボードＳＫＢにおける左右方向の位置は、標準状態の母音グループＧｖの左端の文字である「Ａ」の左右方向の位置と同じである。つまり、「Ｔ」は「Ａ」に対向する位置にある。それ故に、図１２に示すように、母音グループＧｖはカーソルに追随することなく、カーソルのみが「Ｔ」上向きに移動する。
【００８１】
さらに、カーソルを左隣の「Ｓ」の位置に移動するように、指示した場合について考える。この場合、ソフトウェアキーボードＳＫＢにおける「Ｓ」の左右方向の位置は、母音グループＧｖの標準状態における左端の文字「Ａ」よりも左側に位置している。つまり、「Ｓ」は母音グループＧｖの何れの文字とも対向していない。このような状態で、第１の子音サブグループＧｃ１において、カーソルを「Ｔ」から「Ｓ」の位置に移動させると、図１３に示すように、カーソルの移動に追随して、母音グループＧｖ全体が左隣に移動する。その結果、母音グループＧｖの左端の文字である「Ａ」が、第１の子音サブグループＧｃ１のカーソルが位置している「Ｓ」の直下に位置する。なお、カーソルが第２の子音サブグループＧｃ２の「Ｚ」から、左隣の「Ｇ」の位置に移動させる場合に、前述の場合の同様に、母音グループＧｖはカーソルの移動に追随して移動する。
【００８２】
なお、さらに、左にカーソルを移動するように指示すると、図１４に示すように、カーソルは第１の子音サブグループＧｃ１の左端の文字「Ｋ」に位置する。そして、母音グループＧｖも、カーソルの移動に追随して、ソフトウェアキーボードＳＫＢの最左端に接する。この状態で、ソフトウェアキーボードＳＫＢの左端を越えてなお、左隣にカーソルを移動するように指示すると、図１５に示すように、カーソルは第１の子音サブグループＧｃ１の最右端の「Ｗ」上向きに移動する。そして、このカーソルの移動に追随して、母音グループＧｖの全体がソフトウェアキーボードＳＫＢの右端に接するように移動する。
【００８３】
さらに、左にカーソルを移動するように指示すると図１６に示すように、カーソルは「Ｗ」の左隣の「Ｒ」上向きに移動する。このような、カーソルの左右位置は、その時点での母音グループＧｖの左端および右端よりはみ出さない。それ故に、母音グループＧｖは、カーソルの移動に追随することなく、ソフトウェアキーボードＳＫＢの右端に接した状態で止まる。なお、このような状態において、カーソルが、第３の子音サブグループＧｃ３の「Ｌ」に在る時に、カーソルをさらに、左隣に動かせば、カーソルは「Ｐ」の位置に移動するが、母音グループＧｖはカーソルの移動に追随しない。
【００８４】
また、この動作モードの場合に、カーソルが図１７に示すように、第３の子音サブグループＧｃ３の「Ｘ」上に位置している時に、カーソルをさらに、左に移動するように指示した場合を考える。この場合、カーソルは、母音グループＧｖの現在の左端位置を越えて、左隣に動こうとする。結果、図１８に示すように、カーソルは第３の子音サブグループＧｃ３の「Ｑ」上向きに移動すると共に、母音グループＧｖ全体がカーソルの移動に追随して左隣に移動する。
【００８５】
さらに、カーソルを「Ｑ」の位置から、左隣に動かすように、入力器１９を操作する場合について考える。この場合、第３の子音サブグループＧｃ３の左端の文字である「Ｑ」の左隣は、空白位置であるので、カーソルは「Ｑ」の位置から、第３の子音サブグループＧｃ３の右端の文字である「Ｖ」の位置に移動する。なお、この「Ｖ」の位置は、母音グループＧｖの左右端の内側の位置である。それ故に、図１９に示すように、カーソルが「Ｑ」から「Ｖ」に移動して、母音グループＧｖはカーソルの移動に追随することはない。また、前述の一連の左方向のカーソル移動とは逆に、右方向へのカーソル移動を行う時も上記の動作原理に従った動作を行う。
【００８６】
＜追随モード１：カーソルが異なる文字グループ間を移動＞
次に、図２０および図２１を参照して、追随モード１において、カーソルが異なる文字グループに移動する際のソフトウェアキーボードＳＫＢの動作について説明する。先ず、図２０に示したソフトウェアキーボードＳＫＢの状態で、カーソルを下向きに移動するように連続して指示する。この場合は、カーソルは、「Ｋ」→「Ａ」→「Ｊ」→「Ｑ」→「Ｎ」→「Ｅ」→「Ｄ」→「Ｑ」の位置の順番に移動する。一方、カーソルを上向きに移動するように連続して指示すると、カーソルは、「Ｑ」→「Ｄ」→「Ｅ」→「Ｎ」→「Ｑ」→「Ｄ」の位置の順番に移動する。
【００８７】
つまり、追随モード１において、母音グループＧｖは、その左端の文字「Ａ」が、カーソルの在る第１の子音サブグループＧｃ１の左端の文字「Ｋ」の直下に追随している。それ故に、この状態で、縦方向に連続して対向する位置に配置された文字「Ｋ」、「Ａ」、および「Ｊ」上を連続的に移動し、第３の子音サブグループＧｃ３において、最も「Ｊ」に近くに位置する「Ｑ」に移動するのである。
【００８８】
また、図２１に示したソフトウェアキーボードＳＫＢの状態で、カーソルを下向きに移動するように連続して指示すると、「Ｗ」→「Ｏ」→「Ｌ」→「Ｖ」→「Ｍ」→「Ｉ」→「Ｃ」→「Ｖ」の順番にカーソルが移動する。一方、カーソルを上向きに移動するように連続して指示すると、「Ｖ」→「Ｃ」→「Ｉ」→「Ｍ」→「Ｖ」→「Ｃ」の順番にカーソルが移動する。
【００８９】
＜静止モード：同一文字グループ内の移動および異なる文字グループ間移動＞
次に、図２２を参照して、ソフトウェアキーボードＳＫＢの動作モードが静止モードにおける、カーソルの移動と母音グループＧｖの関係について説明する。ソフトウェアキーボードＳＫＢが静止モードの際には、カーソルの移動はアルファベットの在るところのみを自由に移動可能であるが、母音グループＧｖは初期状態で固定されたままで、カーソルに移動に対する追随移動は行わない。そして、カーソルが異なる文字グループ間を移動する際には、その移動距離が最小になるような位置に在る文字が選択される。
【００９０】
図２２に例示するように、第１の子音サブグループＧｃ１の左端の「Ｋ」の位置に在るカーソルを、さらに、左隣に移動するように指示する場合について考える。この場合、カーソルは、第１の子音サブグループＧｃ１の右端の「Ｗ」の位置に移動する。このように、カーソルを文字グループの一端からさらに、外側に移動させようした時、その文字グループの他端にカーソルを移動させることを「循環移動」と称する。そして、カーソルを「循環移動」させる処理を「循環処理」と称する。同様に、母音グループＧｖの左端「Ａ」の位置に、カーソルが在る時に、さらにカーソルを左隣に移動させようとすると、カーソルは、母音グループＧｖの右端の「Ｏ」の位置に循環移動する。
【００９１】
そして、カーソルが第２の子音サブグループＧｃ２の左端の「Ｊ」の位置に在る時に、カーソルをさらに左向きに移動させようとすると、カーソルは第２の子音サブグループＧｃ２の右端の「Ｌ」の位置に循環移動する。同様に、カーソルが第３の子音サブグループＧｃ３の左端の「Ｑ」の位置に在る時に、カーソルをさらに左向きに移動させようとすると、カーソルは第３の子音サブグループＧｃ３の右端の「Ｖ」の位置に循環移動する。ただし、静止モードにおいては、これらのカーソル移動に伴う母音用アルファベット群の追随移動は行われない。前述の一連の左方向のカーソル移動とは逆に、右方向へのカーソル移動を行う時も、カーソルおよび母音グループＧｖは前述の動作原理に従った動作を行う。
【００９２】
図２２を参照して、静止モードにおいて、カーソルを異なる文字グループ間を移動させる場合について説明する。図示したソフトウェアキーボードＳＫＢにおいて、カーソルを下向きに移動するように連続して指示する場合について考える。この場合、カーソルは、前述の如く文字グループ間での移動距離が最小になるように、「Ｋ」→「Ａ」→「Ｚ」→「Ｑ」→「Ｎ」→「Ｉ」→「Ｄ」→「Ｑ」の位置の順番に移動する。
【００９３】
逆にカーソルを上向きに移動するように連続して指示した場合について考える。この場合、カーソルは、「Ｑ」→「Ｄ」→「Ｉ」→「Ｎ」→「Ｑ」→「Ｄ」の順番に移動する。また、カーソルが、第１の子音サブグループＧｃ１の右端の「Ｗ」の位置に在る時に、カーソルを下向きに移動するように連続して指示した場合について考える。この場合、カーソルは、「Ｗ」→「Ｏ」→「Ｂ」→「Ｖ」→「Ｍ」→「Ｅ」→「Ｃ」→「Ｖ」の位置の順番に移動する。
【００９４】
逆に「Ｗ」の位置に、カーソルが在る時にカーソルを上向きに移動するように連続して指示した場合には、カーソルは、「Ｖ」→「Ｃ」→「Ｅ」→「Ｍ」→「Ｖ」→「Ｃ」の位置の順番に移動する。なお、静止モードにおいて、カーソルの移動に伴う母音グループＧｖの追随移動は一切行われない。
【００９５】
＜追随モード２：カーソルが子音グループＧｃ内を移動＞
次に、図２３および図２４を参照して、追随モード２においてカーソルが子音グループＧｃ内を移動する際のソフトウェアキーボードＳＫＢの動作について具体的に説明する。追随モード２におけるソフトウェアキーボードＳＫＢの動作は、カーソルが子音グループＧｃ内を移動する場合は追随モード１における動作と同じである。
よって、図２３および図２４に示されるように、カーソルが第１の子音サブグループＧｃ１の「Ｔ」より左に移動する時は、カーソルに追随して母音グループＧｖが移動する。
【００９６】
＜追随モード２：カーソルが異なる文字グループ間を移動＞
図２５および図２６を参照して、追随モード２において、カーソルが異なる文字グループ間を移動する際の、ソフトウェアキーボードＳＫＢの動作について説明する。先ず、初期状態において、母音グループＧｖはソフトウェアキーボードＳＫＢの第２段目に中央揃えされた状態でロック（固定）されている。よって、カーソルは母音グループＧｖの両端部を越えて移動できない。つまり、カーソルが母音グループＧｖ内を移動する際には、母音グループＧｖがカーソルに追随して移動することはない。
【００９７】
一方、カーソルが子音グループＧｃ内を移動する際には、前述のように、追随モード１におけるのと同様に、母音グループＧｖのロックが解除される。その結果、母音グループＧｖは、カーソルの移動に追随して移動する。このように、母音グループＧｖが追随移動した状態で、カーソルが子音グループＧｃから母音グループＧｖに移動する際には、母音グループＧｖは追随移動した位置で固定されている。
【００９８】
つまり、図２４に示すように、カーソルが第１の子音サブグループＧｃ１の「Ｓ」の位置に在る状態で、下にカーソルを移動するように指示する場合を考える。この場合、カーソルは、「Ａ」→「Ｇ」→「Ｑ」→「Ｎ」→「Ｉ」→「Ｄ」→「Ｑ」の位置に順番に移動する。
【００９９】
また、図２５に示すように、カーソルが第１の子音サブグループＧｃ１の「Ｓ」の位置から、母音グループＧｖの「Ａ」の位置に移動した時点で、母音グループＧｖはその位置にロックされる。このような、母音グループＧｖがロックされた状態で、カーソルをさらに「Ａ」の左隣に動かそうとすると、図２６に示すように、母音グループＧｖは追随移動しないで、ロックされた母音グループＧｖの右端の「Ｏ」の位置にカーソルが循環移動する。
【０１００】
以下に、図２７を参照して、本発明にかかるソフトウェアキーボードＳＫＢによる入力工程数低減の効果について説明する。本発明において、選択可能なソフトウェアキーボードＳＫＢを用いて、ローマ字仮名変換で日本語を入力する際の、３タイプの動作モード、「静止モード」、「追随モード１」、「追随モード２」のそれぞれにおける物理的なストローク量の違いについて、具体的な数種類の単語について研究してみる。これにより、母音用アルファベット群の「動」の効果を確認することができる。
【０１０１】
ストローク量を把握するためには、入力器１９に対するユーザの入力に対するカーソルの移動を規定する必要がある。この目的のために、図２７に示すように、ソフトウェアキーボードＳＫＢを縦方向にａ、ｂ、ｃ、およびｄと４つの座標を設定すると共に、横方向に１、２、３、４、５、６、７、８、および９と９つの座標を設定する。これにより、カーソルの移動に応じて、カーソルの現位置を規定できる。そして、カーソルの現位置の変化に基づいて、ストローク数を明確に認識できる。
【０１０２】
つまり、図５を参照して説明したように、初期状態において、カーソルはソフトウェアキーボードＳＫＢの第２段目に中央揃えに配列されている母音グループＧｖの「Ｕ」の位置に在る。このカーソル位置を前述の座標を用いて表すと、５ｂＵとなる。このように、カーソル位置は、横座標（数字）、縦座標（小文字アルファベット）および、その座標に表示されている文字の順番で表示される３文字の組み合わせで一義的に規定される。また、追随モード１および追随モード２において、各動作モードにおける母音グループＧｖの移動方法を考慮して入力することは言うまでもない。
【０１０３】
＜「ＫＡＫＡＳＩ」（かかし）と入力する場合＞
先ず、静止モードにおいて、「ＫＡＫＡＳＩ（かかし）」と入力する場合について考える。前述のように、静止モードにおいて、カーソルは、ソフトウェアキーボードＳＫＢにおいて、アルファベットが表示されている位置のみを、移動距離が最小になる経路で移動できる。さらに、カーソルの移動に対する母音グループＧｖの追随移動を行わない。
【０１０４】
静止モードにおいて、カーソルの循環移動を行わない場合は、カーソルは以下の位置を順番に移動する。つまり、５ｂＵの位置にあるカーソルは、「ＫＡＫＡＳＩ」を指定するために、５ｂＵ→５ａＨ→４ａＮ→３ａＴ→２ａＳ→１ａＫ→２ａＳ→３ａＴ→３ｂＡ→３ａＴ→２ａＳ→１ａＫ→２ａＳ→３ａＴ→３ｂＡ→３ａＴ→２ａＳ→３ａＴ→４ａＮ→４ｂＩの座標で示されるよう移動する。結果、カーソルの操作のために、１９ストロークを要する。
【０１０５】
静止モードにおいて、カーソルの循環移動を行う場合には、カーソルは、「ＫＡＫＡＳＩ」を指定するために、５ｂＵ→５ａＨ→４ａＮ→３ａＴ→２ａＳ→１ａＫ→３ｂＡ→３ａＴ→２ａＳ→１ａＫ→３ｂＡ→３ａＴ→２ａＳ→３ｂＡ→４ｂＩの１４ストロークを要する。
【０１０６】
次に、追随モード１において、「ＫＡＫＡＳＩ」と入力する場合について考える。前述のように、追随モード１において、子音グループＧｃおよび母音グループＧｖ内をカーソルが移動する場合に、母音グループＧｖは追随移動する。
【０１０７】
追随モード１において、カーソルの循環移動を行わない場合には、カーソルは、「ＫＡＫＡＳＩ」を指定するために、５ｂＵ→５ａＨ→４ａＮ→３ａＴ→２ａＳ→１ａＫ→１ｂＡ→１ａＫ→１ｂＡ→１ａＫ→２ａＳ→２ｂＩの座標で示されるように、１１ストロークを要する。
【０１０８】
追随モード１において、カーソルの循環移動を行う場合には、カーソルは、「ＫＡＫＡＳＩ」を指定するために、５ｂＵ→５ａＨ→４ａＮ→３ａＴ→２ａＳ→１ａＫ→１ｂＡ→１ａＫ→１ｂＡ→２ｂＩ→２ａＳ→２ｂＩの１１ストロークを要する。
【０１０９】
さらに、追随モード２において、「ＫＡＫＡＳＩ（かかし）」と入力する場合について考える。前述のように、追随モード２において、カーソルが子音グループＧｃから母音グループＧｖに移動した場合には、母音グループＧｖはロックされる。つまり、カーソルが母音グループＧｖに在る時は、母音グループＧｖはロックされていて、カーソルに対して追随移動しない。
【０１１０】
このような、追随モード２において、カーソルの循環移動を行う場合には、カーソルは、「ＫＡＫＡＳＩ」を指定するために、５ｂＵ→５ａＨ→４ａＮ→３ａＴ→２ａＳ→１ａＫ→１ｂＡ→１ａＫ→１ｂＡ→２ｂＩ→２ａＳ→２ｂＩの１１ストロークを有する。
【０１１１】
同様に、「ＹＡＫＹＵＵ（やきゅう）」、「ＤＥＮＫＩＫＡＩＲＯ（でんきかいろ）」、「ＫＩＫＡＮＳＹＡ（きかんしゃ）」、および「ＫＡＧＡＫＵＳＹＡ（かがくしゃ）」と入力する場合ついて、各動作モードにおける必要ストローク数は以下の通りである。
【０１１２】
＜ＹＡＫＹＵＵ（やきゅう）」と入力する場合＞
静止モードでカーソルの循環移動を行わない場合は、２０ストロークを要する。静止モードでカーソルの循環移動を行う場合は、１６ストロークを要する。
追随モード１でカーソルの循環移動を行わない場合は、２０ストロークを要する。追随モード１でカーソルの循環移動を行う場合は、１２ストローク要する。
追随モード２でカーソルの循環移動を行う場合は、１２ストロークを要する。
【０１１３】
＜「ＤＥＮＫＩＫＡＩＲＯ（でんきかいろ）」と入力する場合＞
静止モードでカーソルの循環移動を行わない場合は、３０ストロークを要する。静止モードでカーソルの循環移動を行う場合は、２４ストロークを要する。
追随モード１でカーソルの循環移動を行わない場合は、２５ストロークを要する。追随モード１でカーソルの循環移動を行う場合は、２３ストローク要する。
追随モード２でカーソルの循環移動を行う場合は、２３ストロークを要する。
【０１１４】
＜「ＫＩＫＡＮＳＹＡ（きかんしゃ）」と入力する場合＞
静止モードでカーソルの循環移動を行わない場合は、２２ストロークを要する。静止モードでカーソルの循環移動を行う場合は、２３ストロークを要する。
追随モード１でカーソルの循環移動を行わない場合は、２６ストロークを要する。追随モード１でカーソルの循環移動を行う場合は、２３ストローク要する。
追随モード２でカーソルの循環移動を行う場合は、２２ストロークを要する。
【０１１５】
＜「ＫＡＧＡＫＵＳＹＡ（かがくしゃ）」と入力する場合＞
静止モードでカーソルの循環移動を行わない場合は、３４ストロークを要する。静止モードでカーソルの循環移動を行う場合は、２５ストロークを要する。
追随モード１でカーソルの循環移動を行わない場合は、２６ストロークを要する。追随モード１でカーソルの循環移動を行う場合は、２３ストローク要する。
追随モード２でカーソルの循環移動を行う場合は、２３ストロークを要する。
【０１１６】
上述より明らかなように、若干の例外はあるものの、静止モードの場合に比べて、本発明における追随モード１および追随モード２において、仮名文字入力に要するストローク数が少なくて済むという効果が認められる。本発明にかかるソフトウェアキーボードＳＫＢによって、ストローク数、つまり入力工程数が低減できることが確認できる。
【０１１７】
一方、日本語は、主に、母音と子音との構成から成り立っている。この事実に基づいて、本発明にかかるソフトウェアキーボードＳＫＢにおいても、母音と子音に対応する文字を判別しやすいように、２６文字のアルファベットをあえて、母音グループＧｖと子音グループＧｃに分けている。この観点から言えば、ソフトウェアキーボードＳＫＢは、図２８に示すように、母音グループＧｖの周囲を、子音グループＧｃの文字で取り囲むように配置したソフトウェアキーボードの方が、入力工程数をより効果的に低減できるようにも思える。
【０１１８】
しかしながら、同図に示す例示したソフトウェアキーボードにおいて、さ（ＳＡ）、ろ（ＲＯ）、が（ＧＡ）、ぽ（ＰＯ）は、最低でも２ストローク必要とする。これに対して、本発明にかかるソフトウェアキーボードＳＫＢは、その追随モード２において、母音グループＧｖが少なくとも子音行のカーソルに追随移動するので、上述のさ（ＳＡ）、ろ（ＲＯ）、が（ＧＡ）、ぽ（ＰＯ）の場合は、最小ストロークは１である。
【０１１９】
しかも、図２８に例示のソフトウェアキーボードの場合は、母音に対応する文字グループと、子音に対応する文字グループの区別が明確化されていない。それ故に、選択する文字が探し難い。このような困難さを回避するために、本発明においては、上述のように、ソフトウェアキーボードＳＫＢの母音グループＧｖの配置を工夫されている。これに加え、カーソル移動が循環させることも、ストローク量の削減に寄与している。
【０１２０】
本発明にかかるソフトウェアキーボードＳＫＢの特徴の一つである母音グループＧｖのカーソルに対する追随移動は、人間の行動心理に照らして、ユーザにかかる気分的な負担を軽減、或いはユーザのカーソル移動操作を督励する効果が認められる。つまり、子音グループＧｃ内でカーソルを移動させると、母音グループＧｖがカーソルに追随することによって、子音を選択した後に、多くの場合、必然的に選択することになる母音グループＧｖが、常に現カーソルの間近に待機していることは、ユーザからみて心理的なバックアップを受けた状態である。
【０１２１】
また、子音を入力すると、母音の特定の文字にカーソルを自動的に移動させるように構成すれば、ストローク量の低減に一見有効なようにも思える。しかし、このような手法は、カーソルが自動的に移動する特定の文字の入力に要する工程数の低減には有効であるが、ほかの文字を含め、全体的な文字入力に要するストロークの低減には役立たない。
【０１２２】
本発明において、ユーザが画面に表示されたソフトウェアキーボードＳＫＢの状態に基づいて、より効果的にカーソルを動すために、追随モード１、追随モード２、および静止モードの３タイプの動作モードを実現している。これら３タイプの動作モードで、ソフトウェアキーボードＳＫＢを稼働させることで、いかなる日本語でも効率よく入力できる保証はない。しかしながら、母音グループＧｖのカーソルに追随することが、ユーザの行動心理に対して良い影響を与え、よりユーザフレンドリーな文字入力インターフェースを提供できる。
【０１２３】
また、長大な文章でなければ、日本語を入力するには、ローマ字入力に慣れた人にとっては５０音テーブルでカーソルを縦横無尽に動かすよりも、入力ディバイスの数、機能および表示面積が制限されている環境下では、本発明にかかるソフトウェアキーボード装置の方が入力し易い。
【０１２４】
（第１実施例）
以下に、図２９〜図４９を参照して、上述の本発明の実施形態にかかるソフトウェアキーボード装置ＳＫＡの第１実施例について説明する。
図２９に、ゲーム機に組み込まれた本実施例にかかるソフトウェアキーボード装置ＳＫＡｅの構造を示す。本実施例にかかるソフトウェアキーボード装置ＳＫＡｅは、図１に示したソフトウェアキーボード装置ＳＫＡに非常に類似した構成を有している。つまり、ソフトウェアキーボード装置ＳＫＡｅは、ＲＯＭ１ｅ、ＣＰＵ５ｅ、ＲＡＭ１３ｅ、操作器１９ｅ、モニタ２１ｅ、およびゲーム機１００ｅを含む。なお、これらのＲＯＭ１ｅ、ＣＰＵ５ｅ、ＲＡＭ１３ｅ、操作器１９ｅ、モニタ２１ｅ、およびゲーム機１００ｅは、図１に示したプログラム源１、ＣＰＵ５、ＲＡＭ１３、入力器１９、表示器２１、および文字入力器本体１００に対応している。
【０１２５】
つまり、ＲＯＭ１ｅは、ソフトウェアキーボード装置ＳＫＡｅの動作を実行させる各種コンピュータプログラムを格納している。なお、ＲＯＭ１ｅに格納されているコンピュータプログラムについては、後ほど図３３を参照して詳しく説明する。
【０１２６】
操作器１９ｅは、ユーザが操作して自身の指示をソフトウェアキーボード装置ＳＫＡに伝える手段であり、好ましくは、キーボード等のポインティングディバイスと選択決定入力ディバイスを備えている。後ほど、図３０を参照して、ゲーム機における操作器１９ｅの一例について詳しく説明する。
【０１２７】
ゲーム機１００ｅは、それぞれ、文字入力器本体１００のＣＰＵ５およびＲＡＭ１３に対応するＣＰＵ５ｅおよびＲＡＭ１３ｅを内蔵している。ゲーム機１００ｅは、さらに、第１のコネクタ３、リアリティコプロセッサ（以降、「ＲＣＰ」と略称する）７、ビデオ・デジタル・アナログ・コンバータ（以降「ＶＤＡＣ」と略称する）９、ビデオ・エンコーダ（以降、「ＶＥＮＣ」と略称する）１１、ペリフェラルインターフェース（以降、「ＰＩｆ」と略称す）１５、第２のコネクタ１７、オーディオ・デジタル・アナログ・コンバータ（以降、「ＡＤＡＣ」と略称す）２０およびアンプリファイア（以降「ＡＭＰ」と略称す）２１を含む。
【０１２８】
ＲＯＭ１ｅは、第１のコネクタ３を経由してゲーム機１００ｅに対して、脱着可能に接続される。しかしながら、ＣＰＵ５ｅやＲＡＭ１３ｅのように、ＲＯＭ１ｅを、予めゲーム機１００ｅに内蔵するように構成しても良いことは言うまでもない。ＲＣＰ７は、ＣＰＵ５ｅ、第１のコネクタ３、およびＲＡＭ１３ｅに接続されている。結果、ＲＯＭ１ｅに格納されているプログラムは、第１のコネクタ３およびＲＣＰ７を経由して、ＣＰＵ５ｅにロードされる。
【０１２９】
ＣＰＵ５ｅは、先ずロードされた各種プログラムの幾つかを実行する。その後、ＣＰＵ５ｅは、さらにロードされたプログラムの幾つかを操作器１９ｅから入力されるユーザの指示に基づいて実行する。ＣＰＵ５ｅは、プログラムの実行に当たっては、実行するジョブの幾つかをＲＣＰ７と分散して処理する。ＣＰＵ５ｅおよびＲＣＰ７は、ＲＡＭ１３ｅに構築されているワーキング領域を利用して、それぞれ分散されたジョブを実行する。なお、ＣＰＵ５ｅは、ソフトウェアキーボード装置ＳＫＡ全体の動作を制御する制御装置でもある。
【０１３０】
ＶＤＡＣ９は、ＲＣＰ７から入力されるデジタル画像信号をＤ−Ａ変換して、アナログ画像信号を生成する。ＶＥＮＣ１１は、ＶＤＡＣ９から入力されるアナログ画像信号をエンコードして、モニタ２１ｅで表示できる形式の映像信号を生成する。
つまり、モニタ２１ｅは、ＣＰＵ５ｅおよびＲＣＰ７の実行結果を映像や音声で表示して、ユーザの指示の結果を表示したり、ユーザの新たな指示の入力を促す。この目的のために、本発明において、プログラムの実行結果およびユーザの指示に応じて、ソフトウェアキーボードＳＫＢの状態が適正に変化してモニタ２１ｅに表示される。
【０１３１】
モニタ２１ｅは、ＶＥＮＣ１１から入力される映像信号に基づいて、図３〜図２６に例示したソフトウェアキーボードＳＫＢおよび関連の画像を表示する。なお、本実施例において、モニタ２１ｅは通常、テレビジョンが用いられるが、ＣＲＴ（陰極線管）やＬＣＤ（液晶ディスプレイ）やＰＤ（プラズマディスプレイ）に代表されるアナログ或いはデジタルの表示装置の何れを用いても良い。
【０１３２】
ＰＩｆ１５は、第２のコネクタ１７をＲＣＰ７に接続する。そして、第２のコネクタ１７に接続される様々の周辺機器をＲＣＰ７およびＣＰＵ５ｅに接続する。操作器１９ｅは、第２のコネクタ１７に接続されて、ユーザの指示をＣＰＵ５ｅに伝える。
【０１３３】
ＡＤＡＣ２０は、ＲＣＰ７から入力されるデジタル音声信号をＤ−Ａ変換して、アナログ音声信号を生成する。ＡＭＰ２１は、ＡＤＡＣ２０から入力されるアナログ音声信号を増幅して、スピーカ等（図示せず）の音響装置に出力する。
【０１３４】
図３０に、本実施例において、ゲーム機における操作器１９ｅの一例を示す。操作器１９ｅは十字カーソルキー、ＳＥＬＥＣＴ（セレクト）ボタン、ＳＴＡＲＴ（スタート）ボタン、Ａボタン、およびＢボタンを有している。十字カーソルキーは、カーソルをソフトウェアキーボードＳＫＢ上で、縦横方向に移動させるポインティングディバイスである。Ａボタンは、アルファベットを決定して、ローマ字入力変換ラインへ登録するための入力ディバイスである。これらのボタンやキーは、ソフトウェアキーボード装置ＳＫＡにおいて、普通に利用できる入力デバイスの一例であって、同様の機能を提供できるデバイスであれば、その他の適当なものを用いても良い。
【０１３５】
Ｂボタンは、ローマ字入力変換ラインに、一旦入力されたのアルファベットのキャンセルを指示する入力ディバイスである。ＳＴＡＲＴボタンは、仮名漢字変換をさせて、変換された漢字を十字カーソルにより選択し、Ａボタンにより決定する入力ディバイスである。ＳＥＬＥＣＴボタンは、ソフトウェアキーボードＳＫＢの動作モードを選択するための入力ディバイスである。
【０１３６】
以下に、操作器１９ｅに設けられた各入力ディバイスの操作と、前述の、図３および図４に示したソフトウェアキーボードＳＫＢ、日本語入力ラインエディタ、ローマ字入力変換ラインとの関係について、簡単に説明する。
【０１３７】
ソフトウェアキーボードＳＫＢの入力モードとして、ローマ字入力変換ラインに表示されている平仮名を漢字に変換する漢字変換モードが選択されている場合ついて考える。なお、漢字変換モードは、モニタ２１ｅ上では、入力モードアイコンによって、簡単に「漢」として表示される。この場合、Ａボタンを操作して、アルファベットを決定するにつれて、ローマ字に相当する平仮名に自動変換する。目的の日本語（平仮名）が現れた時点でＳＴＡＲＴボタンを操作して漢字に変換する。十字カーソルキーで、候補から選択し、Ａボタンを操作して漢字を決定する。そして、決定された漢字は、日本語入力ラインエディタに表示される。
【０１３８】
ソフトウェアキーボードＳＫＢの入力モードとして、入力されたローマ字を平仮名に変換する平仮名変換モードが選択されている場合について考える。なお、平仮名変換モードは、モニタ２１ｅ上では、入力モードアイコンによって、簡単に「あ」として表示される。この場合、Ａボタンを操作して、アルファベットを決定するにつれて、ローマ字に相当する平仮名に自動変換する。目標の平仮名が現れた時点でＳＴＡＲＴボタンを操作して平仮名を決定する。そして、決定された平仮名は、日本語入力ラインに表示される。
【０１３９】
ソフトウェアキーボードＳＫＢの入力モードとして、入力されたローマ字をカタカナに変換するカタカナ変換モードが選択されている場合について考える。なお、カタカナ変換モードは、モニタ２１ｅ上では、簡単に「ア」として表示される。この場合、Ａボタンを操作してアルファベットを決定するにつれて、ローマ字に相当するカタカナに自動変換される。ターゲットとなるカタカナが現れた時点でＳＴＡＲＴボタンを操作してカタカナを決定する。
【０１４０】
同様に、モニタ２１ｅ上でそれぞれ、入力モードアイコンによって、「Ａ」、「記」、「数」、および「ギ」として簡単に表示されるローマ字モード、記号モード、数字モード、およびギリシャ文字モード等を設定できる。これらの入力モードにおいて、それぞれ、ＳＴＡＲＴボタンを操作して選択候補の文字表示を表示する。そして、十字カーソルを操作して、表示されている候補の文字の内で、目的の文字を選択して、Ａボタンを操作して決定する。
【０１４１】
また、モニタ２１ｅ上で、入力モードアイコンによって、簡単に、「コ」として表示されているコード入力モードにおいて、十字カーソルを操作して、ＳＪＩＳ或いはＪＩＳコードを可変・選択して、Ａボタンにより選択したコードに対応する文字を決定する。
【０１４２】
図３１に、本実施例にかかるソフトウェアキーボード装置ＳＫＡｅを組み込んだゲーム機の一例を図示する。
【０１４３】
次に、図３２に示すフローチャートを参照して、ソフトウェアキーボード装置ＳＫＡｅの動作について説明する。ソフトウェアキーボード装置ＳＫＡに電源が投入されて、その動作が開始される。
【０１４４】
先ず、ステップ＃１０００において、ＲＯＭ１ｅから各種プログラムがゲーム機１００ｅにロードされる。そして、処理は、次のステップ＃２０００に進む。
【０１４５】
ステップ＃２０００において、ＲＯＭ１ｅからロードされたプログラムに従って、ソフトウェアキーボード装置ＳＫＡｅの各種要素およびパラメータが初期化される。そして、処理は、次のステップ＃３０００に進む。
【０１４６】
ステップ＃３０００において、ステップ＃２０００で初期化された状態が、モニタ２１ｅに表示される。つまり、モニタ２１ｅには、ユーザによる指示が入力される前の状態のソフトウェアキーボードＳＫＢが表示される。そして、処理は、次のステップ＃４０００に進む。
【０１４７】
ステップ＃４０００において、ユーザによる入力器１９ｅの状態が取得される。つまり入力の有無およびその入力内容を検出する。詳述すれば、図示の如く、ステップ＃４０１０およびステップ＃４０２０から構成される。
ステップ＃４０１０において、モニタ２１ｅに対してユーザからの入力があったか否かが判断される。そして、ユーザによる入力、つまり、ユーザがモニタ２１ｅの入力ディバイスの何れかを操作した場合にのみ、処理はステップ＃４０２０に進む。
【０１４８】
ステップ＃４０２０において、ユーザの操作した入力ディバイスの種類とその操作内容に基づいて、後続のステップ＃５０００、＃６０００、＃７０００、＃８０００、および＃９０００の何れが選択されて、その処理が実行される。
【０１４９】
＜＃５０００＞
モニタ２１ｅの表示に基づいて、ユーザが十字キーを操作した場合には、ユーザはカーソル移動を希望していると判断されて、処理はステップ＃５０００に進む。ステップ＃５０００において、操作器１９ｅに含まれるポインティングディバイスの動作状態を表すポインタパラメータの値に応じて、モニタ２１ｅに表示されるソフトウェアキーボードＳＫＢが変更される。そして、処理は、ステップ＃４０００に戻る。
なお、ステップ＃５０００は、ポインタパラメータの値に応じて、互いに排他的に、平行して実行されるステップ＃１０１、＃１０２、＃１０３、および＃１０４を含む。
【０１５０】
ステップ＃１０１は、操作器１９ｅのポインティングディバイスである十字キーが上向きに操作された場合に、ソフトウェアキーボードＳＫＢ上でカーソルを上向きに移動後のソフトウェアキーボードＳＫＢの状態を求めて、表示器２１ｅに表示するサブルーチンである。なお、本ステップにおける処理の詳細については、後ほど図３７を参照して説明する。
【０１５１】
ステップ＃１０２は、操作器１９ｅのポインティングディバイスである十字キーが下向きに操作された場合に、ソフトウェアキーボードＳＫＢ上でカーソルを下向きに移動後のソフトウェアキーボードＳＫＢの状態を求めて、表示器２１ｅに表示するサブルーチンである。なお、本ステップにおける処理の詳細については、後ほど図４０を参照して説明する。
【０１５２】
ステップ＃１０３は、操作器１９ｅのポインティングディバイスである十字キーが左向きに操作された場合に、ソフトウェアキーボードＳＫＢ上でカーソルを左向きに移動後のソフトウェアキーボードＳＫＢの状態を求めて、表示器２１ｅに表示するサブルーチンである。なお、本ステップにおける処理の詳細については、後ほど図４３を参照して説明する。
【０１５３】
ステップ＃１０４は、操作器１９ｅのポインティングディバイスである十字キーが右向きに操作された場合に、ソフトウェアキーボードＳＫＢ上でカーソルを右向きに移動後のソフトウェアキーボードＳＫＢの状態を求めて、表示器２１ｅに表示するサブルーチンである。なお、本ステップにおける処理の詳細については、後ほど図４６を参照して説明する。
【０１５４】
＜＃６０００＞
一方、ユーザがモニタ２１ｅの表示に基づいて、操作器１９ｅのＳＴＡＲＴボタンを操作した場合には、ステップ＃４０００によって、ユーザは文字変換を希望していると判断されて、処理はステップ＃６０００に進む。ステップ＃６０００において、文字変換処理が行われた後に、処理はステップ＃４０００に戻る。なお、ステップ＃６０００は、ステップ＃６０１０、＃６０２０、および＃６０３０で構成されている。
【０１５５】
ステップ＃６０１０において、ソフトウェアキーボードＳＫＢの各入力モードにおいて、ステップ＃４０００においてＳＴＡＲＴボタン操作が検出された時に入力されている文字が確定される。そして、処理は次のステップ＃６０２０に進む。
【０１５６】
ステップ＃６０２０において、＃６０２０で確定された平仮名が漢字に変換可能であるか否かが判断される。変換不可能であると判断された場合に、処理はステップ＃４０００に戻る。一方、変換可能と判断された場合には、処理は、次のステップ＃６０３０に進む。
【０１５７】
ステップＳ６０３０において、所望の漢字に変換されるまで、ユーザは平仮名の漢字変換を行い、最終的に変換された所望の漢字を選択する。そして、ステップ＃６０００における処理を終了する。
【０１５８】
＜＃７０００＞
一方、ユーザがモニタ２１ｅの表示に基づいて、操作器１９ｅのＡボタンを操作した場合には、ステップ＃４０００でユーザは入力された文字を選択したと判断されて、処理はステップ＃７０００に進む。ステップ＃７０００において、入力文字選択処理が行われた後に、処理はステップ＃４０００に戻る。なお、ステップ＃７０００は、ステップ＃１０５、ステップ＃７０１０、＃７０２０、＃７０３０、＃７０４０、および＃７０５０で構成されている。
【０１５９】
ステップ＃７００５において、ステップ＃４０００において、Ａボタンの操作が検出された時の文字が選択される。そして、処理は、次のステップ＃７０１０に進む。
【０１６０】
ステップ＃７０１０において、先に入力された文字と今回入力された文字が連結されてローマ字入力変換ラインに表示される。そして、処理は、次のステップ＃７０２０に進む。
【０１６１】
ステップ＃７０２０において、ステップ＃７０１０で連結されたアルファベットの組み合わせが、仮名にローマ字変換が可能か否かが判断される。ローマ字変換が可能と判断された場合は、処理はステップ＃７０３０に進む。
【０１６２】
ステップ＃７０３０において、ステップ＃７０１０で連結されたアルファベットの組み合わせが、平仮名に変換されて、ステップ＃７０００における処理が終了される。なお、平仮名ではなくカタカナに変換しても良い。
【０１６３】
一方、ステップ＃７０２０で、ローマ字変換が不可能と判断された場合には、処理はステップ＃７０４０に進む。
【０１６４】
ステップ＃７０４０において、ステップ＃７０１０で連結されたアルファベットが３文字以上か否か判断される。３文字より少ないと判断された場合には、処理は、ステップ＃４０００に戻って、さらなるアルファベットが選択されるのを待つ。これは、ローマ字変換において、アルファベットが３文字で表現される平仮名表現があるため、単に２文字のアルファベットが、平仮名に変換できない場合をエラーとしないためである。
【０１６５】
一方、ステップ＃７０４０で、３文字以上と判断された場合には、処理は次のステップ＃７０６０に進む。
【０１６６】
ステップ＃７０６０において、ステップ＃７０１０で連結されたアルファベットを、ローマ字入力変換ラインから消去して、ステップ＃７０００における処理を終了する。なお、本実施例において、アルファベット３文字の組み合わせで、ローマ字仮名変換ができない場合には、その３文字全ての組み合わせが不適切と判断して、３文字全てを消去している。しかし、３文字の内、第１番目或いは第２番目の文字が誤りである場合を考慮して、その文字だけを消去するようにしても良い。
【０１６７】
＜＃８０００＞
一方、ユーザがモニタ２１ｅの表示に基づいて、操作器１９ｅのＢボタンを操作した場合には、ステップ＃４０００で、ユーザは入力した文字の消去を希望している判断されて、処理はステップ＃８０００に進む。ステップ＃８０００において、先行文字消去の処理が行われた後に、処理はステップ＃４０００に戻る。なお、ステップ＃８０００は、ステップ＃８０１０、ステップおよび＃８０２０で構成されている。
【０１６８】
ステップ＃８０１０においては、ステップ＃４０００で、Ｂボタンの操作が検出された時に選択されている文字が消去対象とされる。そして、処理は次のステップ＃８０２０に進む。
【０１６９】
ステップ＃８０２０において、＃７０１０で連結されたアルファベットの内、後の方、つまり、本ステップに入る前に入力された一文字がローマ字入力変換ラインから消去される。そして、ステップ＃８０００の処理を終了する。
【０１７０】
＜＃９０００＞
一方、ユーザがモニタ２１ｅの表示に基づいて操作器１９ｅのＳＥＬＥＣＴボタンを操作した場合には、ステップ＃４０００でユーザは動作モード変更を希望していると判断されて、処理はステップ＃９０００に進む。ステップ＃９０００において、動作モード変更処理が行われた後に、処理はステップ＃４０００に戻る。なお、ステップ＃９０００は、ステップ＃９０１０、ステップおよび＃９０２０、および＃３０００で構成されている。
【０１７１】
ステップ＃９０１０において、選択可能なソフトウェアキーボードＳＫＢの動作モードがモニタ２１ｅ上に表示される。そして、処理は次のステップ＃９０２０に進む。
【０１７２】
ステップ＃９０２０において、ユーザによってソフトウェアキーボードＳＫＢの動作モードを選択或いは切り替えを行う。そして、処理は、次のステップ＃３０００に進む。
【０１７３】
このステップ＃３０００は、前述のステップ＃２０００とステップ＃４０００の間に実行される処理と全く同じである。但し、ステップ＃９０００において、ステップ＃９０２０で選択された、動作モードにおけるソフトウェアキーボードＳＫＢがモニタ２１ｅに表示される。そして、ステップ＃９０００の処理を終了する。
【０１７４】
次に、図３３を参照して、ＲＯＭ１ｅに格納されているプログラムと、同プログラムをゲーム機１００ｅにロードした結果、ゲーム機１００ｅ内のＲＡＭ１３ｅに構築されるデータ領域の関係について述べる。先ず、同図の上部に、プログラム領域として、１６種類に分類されたプログラムモジュールが表示されている。
【０１７５】
なお、各プログラムモジュールの左側に、識別の便宜のためにＭ１〜Ｍ１６のモジュール番号が付与されている。また、各プログラムモジュールの右側の欄内には、そのプログラムモジュールがソフトウェアキーボード装置ＳＫＡｅおよびソフトウェアキーボードＳＫＢを構築するに必要な度合いを必須度として、Ｌ０（レベル０）、Ｌ１（レベル１）、Ｌ２（レベル２）、およびＬ３（レベル３）を付与して識別している。
【０１７６】
Ｌ０は、ソフトウェアキーボード装置ＳＫＡｅおよびソフトウェアキーボードＳＫＢを構築する前に、ハードウェアを他のレベル（Ｌ１、Ｌ２、およびＬ３）のプログラムに対して準備しておくために必要なプログラムモジュールであることを意味する。Ｌ０のプログラムモジュールとしては、ＯＳ初期化プログラムＭ１５およびファームウェアＭ１６がある。これらの２つのプログラムモジュールは、本来ソフトウェアキーボード装置ＳＫＡｅのハードウェアに標準的に具備されるものである。しかしながら、具備されていない場合には、ＲＯＭ１ｅに格納しておいて、ステップ＃１０００において、ゲーム機１００ｅにロードするようにしても良い。
【０１７７】
Ｌ１は、Ｌ０のプログラムモジュールがハードウェアにロードされて、ハードウェア側で、ソフトウェアキーボード装置ＳＫＡｅおよびソフトウェアキーボードＳＫＢを構築する準備ができた時点で、ソフトウェアキーボードＳＫＢを構築するために必要なプログラムモジュールであることを意味する。Ｌ１のプログラムモジュールとしては、メインプログラムＭ１、Ｉ／ＯライブラリＭ２、文字表示プログラムＭ３、文字フォントデータＭ４、コントロールパッド判断プログラムＭ５、ソフトウェアキーボード制御プログラムＭ６、ローマ字入力変換ラインプログラムＭ７、およびローマ字判定用テーブルＭ８が含まれる。
【０１７８】
メインプログラムＭ１は、ソフトウェアキーボード装置ＳＫＡｅの全般的な動作をつかさどる。Ｉ／ＯライブラリＭ２は、ソフトウェアキーボード装置ＳＫＡｅを構成するハードウェアである操作器１９ｅやモニタ２１ｅに関連するリソースの制御を行う。また、Ｉ／ＯライブラリＭ２は、ソフトウェアキーボードＳＫＢが処理する言語体系に代表されるアプリケーションの要求に応じて、最適化されて準備される一種のＩ／Ｏインターフェース及びユーザインターフェースを提供するプログラムである。
【０１７９】
上述のＩ／ＯライブラリＭ２は、ハードウェアの入力機器の制限に応じて、各機器に入力機能を割り振ったり、また入力する文字の言語体系に応じて決まる文字の種類に応じて、ソフトウェアキーボードＳＫＢのパターンを設定するプログラムである。つまり、Ｉ／ＯライブラリＭ２は、ハードウェアのローレベルな仕様の違いに起因する制御方法の多様性を吸収するものである。
【０１８０】
文字フォントデータＭ４は、ソフトウェアキーボードＳＫＢに表示する文字フォントである。文字表示プログラムＭ３は、文字フォントデータＭ４によって実現される文字をモニタ２１ｅ（２１）に表示させるプログラムである。コントロールパッド判断プログラムＭ５は、ユーザによる操作器１９ｅ（１９）の操作状態を取得するプログラムである。ソフトウェアキーボード制御プログラムＭ６は、ソフトウェアキーボード装置ＳＫＡｅ（ＳＫＡ）に構築されたソフトウェアキーボードＳＫＢの動作をつかさどるプログラムである。ローマ字入力変換ラインプログラムＭ７は、ユーザによって選択入力されたアルファベットをローマ字入力変換ラインに表示させると共に、表示したアルファベットを仮名に変換して表示するプログラムである。
【０１８１】
これらのＬ１のプログラムモジュールは、ソフトウェアキーボード装置ＳＫＡｅ（ＳｋＡ）を、インフラストラクチャとして必要のリソースが準備されたハードウェアに、本発明にかかるソフトウェアキーボードＳＫＢを構築するために必要不可欠なプログラムモジュールである。この意味において、ソフトウェアキーボードＳＫＢの基本ソフトウェアと言える。また、これらのプログラムモジュールも、上述のＬ０のプログラムモジュールと同様にＲＯＭ１ｅに格納しておいて、ステップ＃１０００において、ソフトウェアキーボード装置ＳＫＡｅにロードするようにしても良いし、予めゲーム機１００ｅや文字入力器本体１００に内蔵しておいても良い。
【０１８２】
Ｌ２は、ソフトウェアキーボード装置ＳＫＡｅ（ＳＫＡ）に構築された、ソフトウェアキーボードＳＫＢを選択入力されたアルファベットに対して何らかの処理をするプログラムモジュールであることを意味する。Ｌ２のプログラムモジュールとしては、ラインエディタプログラムＭ９がある。
【０１８３】
Ｌ３は、ソフトウェアキーボード装置ＳＫＡｅ（ＳＫＡ）に構築された、ソフトウェアキーボードＳＫＢを選択入力されたアルファベットに基づいて、所望の漢字に変換し、さらに必要に応じて文章を作成編集するため用いられるプログラムモジュールであることを示している。Ｌ３のプログラムモジュールとしては、ＦＥＰメインプログラムＭ１０、漢字変換プログラムＭ１１、漢字候補選択プログラムＭ１２、漢字コード入力プログラムＭ１３、およびＦＥＰ辞書Ｍ１４が含まれる。これらのプログラムモジュールは、通常の仮名漢字変換プログラムに含まれているプログラムモジュールと基本的に同一である。
【０１８４】
なお、上述のように、本実施例において、ローマ字入力変換ラインにアルファベットと共に仮名を表示させ、さらに漢字変換プログラムＭ１１によって、漢字に変換させる。それゆえに、前述の文字フォントデータＭ４には、平仮名、カタカナ、およびアルファベットを始めとする通常一般に使用される日本語のフォントが含まれる。
【０１８５】
なお、図３３の下段に、データ領域として示されいる、ＲＡＭ１３ｅ（１３）に構築されるデータ領域について説明する。先ず、同図において、必須度がＬ１であるフレームバッファ領域、文字フォントデータ領域、ローマ字判定用テーブル領域および、ワーキング領域は、上述のプログラムモジュールＭ１〜Ｍ１６を実行する際に、ワーキングエリアとしてＲＡＭ１３（１３ｅ）に構築される領域である。
【０１８６】
フレームバッファ領域は、モニタ２１ｅ（２１）にソフトウェアキーボードＳＫＢを表示する画像データを格納しておくために用いられる。文字フォントデータは、上述の文字フォントデータＭ４をＲＯＭ１ｅ（１）からロードしておいて瞬時にアクセスするために用いられる。ローマ字判定用テーブルはローマ字判定用テーブルＭ８をＲＯＭ１ｅ（１）からロードしておいて、ローマ字判断にアクセスするために用いられる。
【０１８７】
ワーキング領域は、ＣＰＵ５ｅ（５）やＲＣＰ７における演算のための作業領域として用いられる。但し、文字フォントデータとローマ字判定用テーブルは、データ領域を設けること無く、上述のようにＲＯＭ１ｅ（１）に格納されている上述の文字フォントデータＭ４とローマ字判定用テーブルＭ８に直接アクセスしても良い。これらのＬ１のデータ領域は、本発明にかかるソフトウェアキーボードＳＫＢを構築し、機能させるために不可欠な領域である。
【０１８８】
また、Ｌ２のＦＥＰ用辞書領域は、ＲＯＭ１ｅ（１）から、メインプログラムＭ１４をロードして、仮名漢字変換のために用いられる領域である。なお、この領域も、ＲＯＭ１ｅ（１）のメインプログラムＭ１４に直接アクセスすることで省略できる。
【０１８９】
次に、図３４、図３５、および図３６を参照して、ソフトウェアキーボードＳＫＢを構成する基本的事項について説明する。
先ず、図３４に、図３３に示したフレームバッファ領域内に構築されるソフトウェアキーボードＳＫＢの構造を示す。ソフトウェアキーボードＳＫＢは、例えば、その一部が図示されているように、Ｙ軸（縦）方向に０〜６までの７行、Ｘ軸（横）方向に０〜９までの１０列で規定される７０セルを有するマトリックスが構築されている。そして、セルはそれぞれ、Ｘ軸座標およびＹ軸座標で一義的に規定される。なお、このマトリックスの大きさは、それぞれ、本発明のソフトウェアキーボードＳＫＢが適用されるハードウェアに用いられているフレームバッファの容量によって決まる。なお、一般的なゲーム機の場合、マトリックスの大きさは、Ｙ軸方向に０〜２５、Ｘ軸方向には０〜３３の８８４セル前後（１セルは８×８ドットとした場合）である。
【０１９０】
図３５に、本発明にかかるソフトウェアキーボードＳＫＢを構成する文字と、図３４に示したフレームバッファ領域との関係において説明する。本発明において、２６文字のアルファベットを一つの母音グループＧｖと３つの子音グループＧｃ１、Ｇｃ２、およびＧｃ３を配列してソフトウェアキーボードＳＫＢが表示される。このために、Ｙ軸方向に０〜３までの４行、Ｘ軸方向に０〜８までの９列で規定される３６セルを有するマトリックスが利用される。
同図において、子音行１には第１の子音サブグループＧｃ１が配列され、母音行には母音グループＧｖが配列され、子音行２には第２の子音サブグループＧｃ２が配列され、そして、子音行３には第３の子音サブグループＧｃ３が配列される。
【０１９１】
そして、ソフトウェアキーボードＳＫＢを構成する各文字は、上述のように、図３５に示されたセル位置に登録されている。登録された文字は、そのセル位置との関係に基づいて、配列変数Ｋｅｙｂｏａｒｄ［ｙ］［ｘ］の形で管理される。例えば、Ｋｅｙｂｏａｒｄ［１］［４］は、「Ｕ」を示し、Ｋｅｙｂｏａｒｄ［１］［０］は、「空白」を示している。また、ソフトウェアキーボードＳＫＢ上の文字は、Ｋｅｙｂｏａｒｄ［ＣＹ］［ＣＸ］で規定される。
【０１９２】
図３６に、図２および図３２に示したフローチャートの初期化ステップ＃２０００において初期化される変数について説明する。
先ず、ソフトウェアキーボードＳＫＢ上での、カーソルの移動を管理するためのカーソル座標Ｋｅｙｂｏａｒｄ［ＣＹ］［ＣＸ］は、初期位置である「Ｕ」を表すＫｅｙｂｏａｒｄ［１］［４］に設定される。
【０１９３】
次に、母音グループＧｖの初期位置をその左端の文字（Ａ）のＸ軸上の位置を規定する変数である母音左位置管理変数ＢＯＩＮ＿ＰＯＳ＿Ｌが２に設定される。母音グループＧｖの初期位置をその右端の文字（Ｏ）のＸ軸上の位置を規定する変数である母音右位置管理変数ＢＯＩＮ＿ＰＯＳ＿Ｒが６に設定される。ソフトウェアキーボードＳＫＢのＸ軸方向に関して、カーソルの最大移動範囲を規定するキーボード左右の移動限界位置を管理するための変数である、左移動限界位置ＫＥＹＢ＿ＬＩＭＩＴ＿Ｌは、０に設定される。さらに、右移動限界位置ＫＥＹＢ＿ＬＩＭＩＴ＿Ｒは、８に設定される。
【０１９４】
ソフトウェアキーボードＳＫＢの動作モードは、それぞれ変数ＫｅｙＭｏｄｅ＝０（追随モード１）、１（追随モード２）、２（静止モード）として規定される。なお、初期化においては、ＫｅｙＭｏｄｅ＝０、つまり追随モード１に設定される。
【０１９５】
図３７を参照して、上述のステップ＃１０１における、ソフトウェアキーボードＳＫＢ上でカーソルを上向きに移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンについて説明する。本ステップは、ソフトウェアキーボードＳＫＢの動作モードが追随モード１であるか否かが、ステップＳ１１０で判断される。追随モード１であると判断された場合には、処理はステップ＃２０１に進む。ステップ＃２０１は、追随モード１における、カーソルの上向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンである。なお、同図において、「ＵＫｅｙＡｓｃＤ」と表示されているステップ＃２０１の詳細については、後ほど図３８を参照して説明する。一方、追随モード１でないと判断された時は、処理は、ステップＳ１１１に進む。
【０１９６】
ステップＳ１１１において、ソフトウェアキーボードＳＫＢの動作モードが追随モード２であるか否かが判断される。追随モード２であると判断された場合には、処理はステップ＃２０５に進む。ステップ＃２０５は、追随モード２における、カーソルの上向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンである。なお、同図において、「ＵＫｅｙＡｓｃＦ」と表示されているステップ＃２０５の詳細については、後ほど図３９を参照して説明する。一方、追随モード２でないと判断された時は、処理は、ステップＳ１１２に進む。
【０１９７】
ステップＳ１１２において、ソフトウェアキーボードＳＫＢの動作モードが静止モードであるか否かが判断される。静止モードであると判断された場合には、処理はステップ＃２０９に進む。ステップ＃２０９は、静止モードにおける、カーソルの上向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンである。なお、同図において、「ＵＫｅｙＡｓｃＳ」と表示されている＃２０９の静止モードにおける処理については、既に図２２を参照して詳述してあるので説明を省く。一方、ステップＳ１１２で、静止モードでないと判断された場合は、ステップ＃１０１の処理を終了する。
【０１９８】
図３８を参照して、追随モード１における、カーソルの上向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンであるステップ＃２０１について説明する。本サブルーチンは、大別して、ステップ＃２１１０、＃２１１１、＃２１１２、および＃２１１３を含んでいる。
ステップ＃２１１０は、現在のカーソル座標に在る文字を、モニタ２１ｅにノーマル表示させるサブルーチンである。なお、ノーマル表示とは、通常、モニタ２１ｅの画面の背景（バックグランド）の色に対して、好ましくは、補色の関係にあるような前景（フォアグランド）に文字を表示することを言う。なお、前景色と背景色の関係は、補色でなくても良い。要するに、前景の文字が背景に対して、明瞭に視認できるような色彩関係であれば何でも良い。
【０１９９】
ステップ＃２１１０の処理が開始すると、先ず、
ステップＳ２１００において、ＣＹ＝１であるか否かが判断される。Ｙｅｓの場合は、現在カーソルは母音グループＧｖ内に在る時に、Ｙｅｓと判断される。そして、処理はステップＳ２１１０に進む。
【０２００】
ステップＳ２１１０において、Ｋｅｙｂｏａｒｄ［ＣＹ］［ＣＸ−ＢＯＩＮ＿ＰＯＳ＿Ｌ＋２］を座標（ＣＸ、ＣＹ）に表示する。この結果、現在リバース表示されている母音グループＧｖの文字をノーマル表示に戻す。これによって、図３５に示されたキーボードデータ自体を変更することなく、母音グループＧｖの新たに表示される位置を更新する。そして、処理は、ステップ＃２１１１に進む。
【０２０１】
一方、ステップＳ２１００において、Ｎｏ、つまりＣＹ＝１でないと判断される場合は、現在カーソルは子音グループＧｃ内に在ることを示している。この場合、処理は、ステップＳ２１０１に進む。
【０２０２】
ステップＳ２１０１において、Ｋｅｙｂｏａｒｄ［ＣＹ］［ＣＸ］を座標（ＣＸ、ＣＹ）に表示する。この結果、子音グループＧｃの文字の内で現在リバース表示されている文字の表示をノーマルに戻す。そして、処理は、ステップ＃２１１１に進む。上述のように、ステップ＃２１１０において、母音グループＧｖおよび子音グループＧｃの何れの文字上にカーソルが在っても、その文字はノーマル表示される。
【０２０３】
ステップ＃２１１１は、上方向にカーソルを移動した場合のカーソル座標を求めるサブルーチンである。ステップ＃２１１１の処理が開始すると、先ず、
ステップＳ２１０２において、ＣＹが１だけ減じられる。このことによって、カーソルが上方向に１段だけ移動した場合の座標が求められる。そして、処理は、次のステップＳ２１０３に進む。
【０２０４】
ステップＳ２１０３において、ＣＹ＜０であるか否かが判断される。Ｙｅｓの場合は、移動後のカーソルの位置がソフトウェアキーボードＳＫＢの第１段目を越えることを意味する。この場合、処理は、ステップＳ２１１１に進む。
【０２０５】
ステップＳ２１１１において、ＣＹが３に設定される。これは、先のステップＳ２１０３において、カーソルがソフトウェアキーボードＳＫＢの第１段目より上向きに移動しようとしていることを検出したので、カーソルをソフトウェアキーボードＳＫＢの最下段である第３段目に循環移動させた場合のＹ座標を求めている。そして、処理は、ステップ＃２１１２に進む。
【０２０６】
一方、ステップＳ２１０３において、Ｎｏの場合は、移動後のカーソルの位置は、ソフトウェアキーボードＳＫＢの第１段目か第２段目かの何れかである。それゆえに、カーソルをＹ軸方向に循環移動させる必要が無いので、処理は、ステップ＃２１１２に進む。
【０２０７】
ステップ＃２１１２は、カーソルを上方向に移動した後の、Ｙ座標に応じて、キーボード左右の移動限界位置を変更するサブルーチンである。ステップ＃２１１２の処理が開始されると、先ず、
ステップＳ２１０４において、ＣＹの値が０、１、および２の内の何れかであるか否かが判断される。移動後のカーソルは、第１の子音サブグループＧｃ１、母音グループＧｖ、および第２の子音サブグループＧｃ２の何れかに在る場合には、Ｙｅｓと判断されて、処理はステップＳ２１１２に進む。
【０２０８】
ステップＳ２１１２において、カーソルの左移動限界位置変数ＫＥＹＢ＿ＬＩＭＩＴ＿Ｌが０に設定されると共に、右移動限界位置変数ＫＥＹＢ＿ＬＩＭＩＴ＿Ｒが８に設定される。これによって、カーソルが第１の子音サブグループＧｃ１、第２の子音サブグループＧｃ２、または母音グループＧｖ内を移動する際の、母音グループＧｖの追随移動を可能にしている。
【０２０９】
なお、この処理は、＃２０００における初期化の際に、既に設定されているのと重複するように見えるが、ソフトウェアキーボードＳＫＢの操作の過程で、左右の移動限界変数ＫＥＹＢ＿ＬＩＭＩＴ＿ＬおよびＫＥＹＢ＿ＬＩＭＩＴ＿Ｒの値が変更されていることがあるので、値を設定し直して、母音グループＧｖの追随移動を保証するものである。そして、処理はステップ＃２１１３に進む。
【０２１０】
一方、ステップＳ２１０４において、Ｎｏと判断される場合には、処理はステップＳ２１０５に進む。
ステップＳ２１０５において、ＣＹ＝３であるか否かが判断される。Ｎｏの場合は、処理は、ステップ＃２１１３に進む。但し、前述のステップＳ２１０４でＮｏと判断されているので、本ステップにおいてもＹｅｓと判断されて、処理は、ステップＳ２１１３に進む。
【０２１１】
ステップＳ２１１３において、カーソルの左移動限界位置変数ＫＥＹＢ＿ＬＩＭＩＴ＿Ｌが３に設定されると共に、右移動限界位置変数ＫＥＹＢ＿ＬＩＭＩＴ＿Ｒが５に設定される。これによって、カーソルが第３の子音サブグループＧｃ３の左右端を越えて移動しないようにしている。そして、処理は、ステップＳ２１０６に進む。
【０２１２】
ステップＳ２１０６において、ＣＸ＜ＫＥＹＢ＿ＬＩＭＩＴ＿Ｌであるか否かが判断される。移動後のカーソルが、ステップＳ２１１３で設定された左移動限界位置を越える場合には、Ｙｅｓと判断されて、処理はステップＳ２１１４に進む。
【０２１３】
ステップＳ２１１４において、ＣＸがステップＳ２１１３で設定されたＫＥＹＢ＿ＬＩＭＩＴ＿Ｌの値に設定される。これによって、カーソルが第３の子音サブグループＧｃ３の左端を越えて移動しないようにしている。そして、処理は、ステップＳ２１０７に進む。
【０２１４】
一方、ステップＳ２１０６において、Ｎｏと判断される場合は、移動後のカーソルは、第３の子音サブグループＧｃ３内部に在る。それゆえに、そのまま、処理はステップＳ２１０７に進む。
【０２１５】
ステップＳ２１０７において、ＣＸ＞ＫＥＹＢ＿ＬＩＭＩＴ＿Ｒであるか否かが判断される。移動後のカーソルが、ステップＳ２１１３で設定された右移動限界位置を越える場合には、Ｙｅｓと判断されて、処理はステップＳ２１１５に進む。
【０２１６】
ステップＳ２１１５において、ＣＸがステップＳ２１１３で設定されたＫＥＹＢ＿ＬＩＭＩＴ＿Ｒの値に設定される。これによって、カーソルが第３の子音サブグループＧｃ３の右端を越えて移動しないようにしている。そして、処理は、ステップ＃２１１３に進む。
【０２１７】
一方、ステップＳ２１０７において、Ｎｏと判断される場合は、移動後のカーソルは、第３の子音サブグループＧｃ３内部に在る。それゆえに、そのまま、処理はステップ＃２１１３に進む。上述のようにして、ステップ＃２１１２において、カーソルを上方向に移動した後の文字グループに応じて、キーボード左右の移動限界位置が適正に設定される。
【０２１８】
ステップ＃２１１３は、カーソルを移動させた後に、カーソルが位置している文字をリバース表示させるサブルーチンである。なお、リバース表示とは、ノーマル表示における前景色と背景色を互いに入れ替えて表示することである。
【０２１９】
ステップ＃２１１３の処理が開始されると、先ず、
ステップＳ２１０８において、ＣＹ＝１であるか否かが判断される。カーソルは移動後、母音グループＧｖ内で在る場合には、Ｙｅｓと判断されて、処理はＳ２１１５に進む。
【０２２０】
ステップＳ２１１５において、Ｋｅｙｂｏａｒｄ［ＣＹ］［ＣＸ−ＢＯＩＮ＿ＰＯＳ＿Ｌ＋２］を座標（ＣＸ、ＣＹ）にリバース表示する。これによって、カーソルが移動後に位置する、母音グループＧｖ内の文字をリバース表示する。そして、ステップ＃２１１３の処理を終了する。
【０２２１】
一方、カーソルの移動後の位置が、子音グループＧｃ内である場合には、ステップＳ２１０８で、Ｎｏと判断される。そして、処理はステップＳ２１１０に進む。
【０２２２】
ステップＳ２１１５において、Ｋｅｙｂｏａｒｄ［ＣＹ］［ＣＸ］を座標（ＣＸ、ＣＹ）にリバース表示する。これによって、カーソルが移動後に位置する、子音グループＧｃ内の文字をリバース表示する。そして、ステップ＃２１１３の処理を終了する。
【０２２３】
次に、図３９を参照して、追随モード２における、カーソルの上向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンでステップ＃２０５について説明する。本ステップは、上述のステップ＃２０１におけるステップ＃２１１２が新たなステップ＃２５１３に置き換えられている。よって、この新たなステップ＃２５１３についてのみ説明する。
【０２２４】
このステップ＃２５１３は、カーソルの移動後のＹ座標が母音グループＧｖであれば左右の移動限界位置を現在の母音グループＧｖの位置に変更して、母音グループＧｖが移動しないようにロックする。一方、カーソルの移動後のＹ座標が子音グループＧｃであれば、それぞれのグループに対して定めらた左右の移動限界位置に変更するサブルーチンである。
【０２２５】
ステップ＃２５１３の処理が開始されると、先ず、
ステップＳ２５０４において、ＣＹ＝１であるか否かが判断される。そして、現在のカーソルの位置が母音グループＧｖ内であれば、Ｙｅｓと判断されて、処理はステップＳ２１１６に進む。
【０２２６】
ステップＳ２１１６において、ＫＥＹＢ＿ＬＩＭＩＴ＿ＬがＢＯＩＮ＿ＰＯＳ＿Ｌに設定されると共に、ＫＥＹＢ＿ＬＩＭＩＴ＿ＲがＢＯＩＮ＿ＰＯＳ＿Ｒに設定される。このようにして、移動後のカーソルの左右の移動限界位置が変更される。そして、本ステップにおける処理を終了する。
【０２２７】
一方、移動後のカーソルの位置が、子音グループＧｃ内であれば、Ｎｏと判断されて、処理は、ステップＳ２５０５に進む。
【０２２８】
ステップＳ２５０５において、ＣＹの値が０および２の何れかあるかが判断される。移動後のカーソルの位置が、第１の子音サブグループＧｃ１或いは第２の子音サブグループＧｃ２の何れかである場合には、Ｙｅｓと判断されて、処理はステップＳ２１１７に進む。
【０２２９】
ステップＳ２１１７において、ＫＥＹＢ＿ＬＩＭＩＴ＿Ｌが０に設定されると共に、ＫＥＹＢ＿ＬＩＭＩＴ＿Ｒが８に設定される。このようにして、カーソルが第１の子音サブグループＧｃ１および第２の子音サブグループＧｃ２内を自由に移動できるように、カーソルの左右の移動限界位置が変更される。そして、本ステップにおける処理を終了する。
【０２３０】
一方、移動後カーソルの位置が母音グループＧｖ、第１の子音サブグループＧｃ１、および第２の子音サブグループＧｃ２の何れでもない場合には、ステップＳ２５０５で、Ｎｏと判断される。そして、処理は、ステップＳ２５０６に進む。
【０２３１】
ステップＳ２５０６において、ＣＹ＝３であるか否かが判断される。しかしながら、上述のステップＳ２５０４およびステップＳ２５０５の判断の結果、ＣＹ＝３であるので、Ｙｅｓと判断される。それゆえに、処理はステップＳ２１１３に進む。
【０２３２】
ステップＳ２５０７において、ＣＸ＜ＫＥＹＢ＿ＬＩＭＩＴ＿Ｌであるか否かが判断される。移動後のカーソルが、ステップＳ２１１６３設定された左移動限界位置を越える場合には、Ｙｅｓと判断されて、処理はステップＳ２１１４に進む。
【０２３３】
ステップＳ２１１４において、ＣＸがステップＳ２１１３で設定されたＫＥＹＢ＿ＬＩＭＩＴ＿Ｌの値である３に設定される。これによって、カーソルが第３の子音サブグループＧｃ３の左端を越えて移動しないようにしている。そして、処理は、ステップＳ２１０８に進む。
【０２３４】
一方、ステップＳ２５０７において、Ｎｏと判断される場合は、移動後のカーソルは、第３の子音サブグループＧｃ３内部に在る。それゆえに、処理はステップＳ２５０８に進む。
【０２３５】
ステップＳ２５０８において、ＣＸ＞ＫＥＹＢ＿ＬＩＭＩＴ＿Ｒであるか否かが判断される。移動後のカーソルが、ステップＳ２１１３で設定された右移動限界位置を越える場合には、Ｙｅｓと判断されて、処理はステップＳ２１１５に進む。
【０２３６】
ステップＳ２１１５において、ＣＸがステップＳ２１１３で設定されたＫＥＹＢ＿ＬＩＭＩＴ＿Ｒの値である５に設定される。これによって、カーソルが第３の子音サブグループＧｃ３の右端を越えて移動しないようにしている。そして、処理は、ステップ＃２１１３に進む。
【０２３７】
一方、ステップＳ２５０８において、Ｎｏと判断される場合は、移動後のカーソルは、第３の子音サブグループＧｃ３内部に在る。それゆえに、そのまま、処理はステップ＃２１１３に進む。上述のようにして、ステップ＃２５１３において、カーソルを上方向に移動した後の、文字グループに応じて、キーボード左右の移動限界位置が適正に設定される。
【０２３８】
次に、図４０を参照して、ソフトウェアキーボードＳＫＢ上でカーソルを下向きに移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンであるステップ＃１０２の処理について説明する。本ステップは、上述のステップ＃１０１におけるのと同じステップＳ１１０、Ｓ１１１、およびＳ１１２を含む。その結果、追随モード１であると判断された場合には、処理はステップ＃２０２に進む。ステップ＃２０２は、追随モード１における、カーソルの下向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンである。なお、同図において「ＤＫｅｙＡｓｃＤ」と表示されているステップ＃２０２の詳細については、後ほど図４１を参照して説明する。
【０２３９】
追随モード２であると判断された場合には、処理はステップ＃２０６に進む。ステップ＃２０６は、追随モード２における、カーソルの下向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンである。なお、同図において「ＤＫｅｙＡｓｃＦ」と表示されているステップ＃２０６の詳細については、後ほど図４２を参照して説明する。
【０２４０】
静止モードであると判断された場合には、処理はステップ＃２１０に進む。ステップ＃２１０は、静止モードにおける、カーソルの下向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンである。なお、同図において「ＤＫｅｙＡｓｃＳ」と表示されている静止モードにおける処理についての説明を省く。一方、ステップＳ１１２で、静止モードではないと判断された場合は、ステップ＃１０２の処理を終了する。
【０２４１】
図４１を参照して、上述の追随モード１における、カーソルの下向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンであるステップ＃２０２について詳述する。本ステップは、図３８を参照して既に説明したステップ＃２０１のステップ＃２１１２が、新たなステップ＃２２１１と置き換えたものである。よって、この新たな。新たなステップ＃２２１１に関してのみ、以下に説明する。
【０２４２】
ステップ＃２２１１は、カーソルを下方向に移動した場合の、そのカーソルの座標を算出するサブルーチンである。ステップ＃２２１１の処理が開始されると、先ず、
ステップＳ２２０２において、ＣＹが１だけ増加される。これによって、カーソルが下向きに移動した際のＹ座標が求められる。そして、処理は次のステップＳ２２０３に進む。
【０２４３】
ステップＳ２２０３において、ＣＹ＞３であるか否かが判断される。カーソルが第３の子音サブグループＧｃ３を越えて下側に移動するような指示されている場合には、Ｙｅｓと判断されて処理はステップＳ２１１７に進む。
【０２４４】
ステップＳ２１１７において、ＣＹが０に設定される。このことによって、下向きに移動後のカーソルを、ソフトウェアキーボードＳＫＢの第１段目に在る第１の子音サブグループＧｃ１に循環移動させる。そして、処理は、ステップ＃２１１２に進む。
【０２４５】
一方、ステップＳ２２０３で、Ｎｏと判断される場合、処理は、ステップ＃２１１２に進む。
【０２４６】
次に図４２を参照して、上述の、追随モード２における、カーソルの下向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンであるステップ＃２０６について説明する。なお、本ステップに、図３９に示したステップ＃２０５のサブルーチンであるステップ＃２１１１が、図４１に示したステップ＃２０２のサブルーチンである＃２２１１と入れ替わっている。よって、各サブルーチンの説明を省略する。
【０２４７】
次に、図４３を参照して、ソフトウェアキーボードＳＫＢ上でカーソルを左向きに移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンであるステップ＃１０３について説明する。本ステップは、上述のステップ＃１０１および１０２におけるのと同じステップＳ１１０、Ｓ１１１、およびＳ１１２を含む。その結果、追随モード１であると判断された場合には、処理はステップ＃２０３に進む。ステップ＃２０３は、追随モード１における、カーソルの左向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンである。なお、同図において「ＬＫｅｙＡｓｃＤ」と表示されているステップ＃２０３の詳細については、後ほど図４４を参照して説明する。
【０２４８】
追随モード２であると判断された場合には、処理はステップ＃２０７に進む。ステップ＃２０７は、追随モード２における、カーソルの左向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンである。なお、同図において「ＬＫｅｙＡｓｃＦ」と表示されているステップ＃２０７の詳細については、後ほど図４５を参照して説明する。
【０２４９】
静止モードであると判断された場合には、処理はステップ＃２１１に進む。ステップ＃２１１は、静止モードにおける、カーソルの左向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンである。なお、同図において「ＬＫｅｙＡｓｃＳ」と表示されている静止モードにおける処理についての説明を省く。一方、ステップＳ１１２で、静止モードでないと判断された場合は、ステップ＃１０３の処理を終了する。
【０２５０】
図４４を参照して、上述の追随モード１における、カーソルの左向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンであるステップ＃２０３について詳述する。本ステップは、図３８を参照して既に説明したステップ＃２０１のステップ＃２１１０と＃２１１３の間のステップ＃２１１１および＃２１１２が、新たなステップＳ２３０２、＃２３１３、＃２３１４、およびステップＳ２３０９で置き換えられている。よって、新たなステップＳ２３０２、＃２３１３、＃２３１４、およびステップＳ２３０９に関してのみ、以下に説明する。
【０２５１】
ステップＳ２３０２において、現在の母音グループＧｖを非表示にして、母音グループＧｖの追随移動後の表示に備える。
【０２５２】
ステップ＃２３１３は、カーソルを左方向に移動させた後の、カーソルの座標を求めるサブルーチンである。ステップ＃２３１３の処理を開始すると、先ず、ステップＳ２３０３において、ＣＸが１だけ減じられて、カーソルを左側に移動させた場合の、Ｘ座標が算出される。そして、処理は、ステップＳ２３０４に進む。
【０２５３】
ステップＳ２３０４において、ＣＸ＜ＫＥＹＢ＿ＬＩＭＩＴ＿Ｌであるか否かが判断される。左向きに移動後のカーソルの位置が左移動限界位置を越える場合には、Ｙｅｓと判断されて、処理は、ステップＳ２１１８に進む。
【０２５４】
ステップＳ２１１８において、ＣＸがＫＥＹＢ＿ＬＩＭＩＴ＿Ｒに設定されて、カーソルを左端から右端へ循環移動させる。そして、処理は、ステップ＃２３１４に進む。
【０２５５】
また、ステップＳ２３０４で、Ｎｏと判断される場合には、処理は、ステップ＃２３１４に進む。
【０２５６】
ステップ＃２３１４は、カーソルを左方向に移動した場合に、追随する母音グループＧｖの位置を決定するサブルーチンである。ステップ＃２３１４の処理が開始されると、先ず、
ステップＳ２３０６において、ＣＸ＜ＢＯＩＮ＿ＰＯＳ＿Ｌであるか否かが判断される。移動後のカーソルが、母音グループＧｖの左端を越える場合には、Ｙｅｓと判断されて、処理はステップＳ２１１９に進む。
【０２５７】
ステップＳ２１１９において、ＢＯＩＮ＿ＰＯＳ＿ＬがＣＸに設定されると共に、ＢＯＩＮ＿ＰＯＳ＿ＲがＣＸ＋４に設定される。このようにして、母音グループＧｖの左端のＸ座標を、移動後のカーソルのＸ座標と同じに設定して、母音グループＧｖをカーソルに対して追随移動させる。そして、処理はステップＳ２３０８に進む。
【０２５８】
一方、ステップＳ２３０６で、Ｎｏと判断される場合は、処理はステップＳ２３０８に進む。
【０２５９】
ステップＳ２３０８において、ＣＸ＞ＢＯＩＮ＿ＰＯＳ＿Ｒであるか否かが判断される。移動後のカーソルが、母音グループＧｖの右端を越える場合には、Ｙｅｓと判断されて、処理はステップＳ２１２０に進む。
【０２６０】
ステップＳ２１２０において、ＢＯＩＮ＿ＰＯＳ＿ＬがＣＸに設定されると共に、ＢＯＩＮ＿ＰＯＳ＿ＲがＣＸ−４に設定される。このようにして、母音グループＧｖの右端のＸ座標を、移動後のカーソルのＸ座標と同じに設定して、母音グループＧｖをカーソルに対して追随移動させる。そして、処理はステップＳ２３０９に進む。
【０２６１】
ステップＳ２３０９は、カーソルに追随移動した後の母音グループＧｖを表示するサブルーチンである。
【０２６２】
図４５を参照して、上述の追随モード２における、カーソルの左向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンであるステップ＃２０７について詳述する。本ステップは、図４４に示したステップ＃２０３と完全に同一である。つまり、現在のカーソル座標の文字をノーマル表示するサブルーチンであるステップ＃２１１０と、母音行を非表示にするステップＳ２３０２と、左方向にカーソルを移動した場合のカーソルの座標を算出するサブルーチンであるステップ＃２３１３と、母音グループＧｖを追随移動させる位置を決定するサブルーチンであるステップ＃２３１４と、ステップ＃２３１４で決定した位置に母音グループＧｖを表示させるステップＳ２３０９と、移動後のカーソルが位置する文字をリバース表示させるステップ＃２１１３とを含んでいる。
【０２６３】
次に、図４６を参照して、ソフトウェアキーボードＳＫＢ上でカーソルを右向きに移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンであるステップ＃１０４について説明する。本ステップは、上述のステップ＃１０１、＃１０２、および＃１０３におけるのと同じステップＳ１１０、Ｓ１１１、およびＳ１１２を含む。その結果、追随モード１であると判断された場合には、処理はステップ＃２０４に進む。ステップ＃２０４は、追随モード１における、カーソルの右向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンである。なお、同図において「ＲＫｅｙＡｓｃＤ」と表示されているステップ＃２０４の詳細については、後ほど図４７を参照して説明する。
【０２６４】
追随モード２であると判断された場合には、処理はステップ＃２０８に進む。ステップ＃２０８は、追随モード２における、カーソルの右向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンである。なお、なお、同図において「ＲＫｅｙＡｓｃＦ」と表示されているステップ＃２０８の詳細については、後ほど図４８を参照して説明する。
【０２６５】
静止モードであると判断された場合には、処理はステップ＃２０８に進む。ステップ＃２０８は、静止モードにおける、カーソルの左向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンである。なお、静止モードにおける処理についての説明を省く。一方、ステップＳ１１２で、静止モードではないと判断された場合は、ステップ＃１０４の処理を終了する。
【０２６６】
図４７を参照して、上述の追随モード１における、カーソルの右向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンであるステップ＃２０４について説明する。本ステップは、図４４および図４５に示したステップ＃２０３および＃２０７におけるステップ＃２３１３を、新たなステップ＃２４１３で置き換えたものである。なお、ステップ＃２３１３は、追随モード２において、カーソルを左向きに移動させた場合のカーソル座標を求めるサブルーチンである。一方、ステップ＃２４１３は、追随モード２において、カーソルを右向きに移動させた場合のカーソル座標を求めるサブルーチンである。
【０２６７】
ステップ＃２４１３の処理が開始されると、先ず、
ステップＳ２４０３において、ＣＸが１だけ増加されて、カーソルが右向きに移動した後の、カーソルのＸ座標が算出される。そして、処理は、ステップＳ２３０４に進む。
【０２６８】
ステップＳ２３０４において、ＣＸ＞ＫＥＹＢ＿ＬＩＭＩＴ＿Ｒであるか否かが判断される。カーソルが右向きに移動した結果、カーソルの右移動限界位置を越える場合には、Ｙｅｓと判断されて、処理は、ステップＳ２１１８に進む。
【０２６９】
ステップＳ２１１８において、ＣＸがＫＥＹＢ＿ＬＩＭＩＴ＿Ｌに設定される。このようにして、カーソルが右端から左端に循環移動させられる。そして処理は、ステップ＃２３１４に進む。
【０２７０】
一方、ステップＳ２３０４において、Ｎｏと判断される場合は、カーソルの循環移動の必要がない。それゆえに、処理は、＃２３１４に進む。
【０２７１】
次に、図４８を参照して、上述の追随モード２における、カーソルの右向き移動後のソフトウェアキーボードＳＫＢの状態を求めるサブルーチンであるステップ＃２０８について詳述する。本ステップは、図４７に示したステップ＃２０４と完全に同一である。つまり、現在のカーソル座標の文字をノーマル表示するサブルーチンであるステップ＃２１１０と、母音行を非表示にするステップＳ２３０２と、右方向にカーソルを移動した場合のカーソルの座標を算出するサブルーチンであるステップ＃２４１３と、母音グループＧｖを追随移動させる位置を決定するサブルーチンであるステップ＃２３１４と、ステップ＃２３１４で決定した位置に母音グループＧｖを表示させるステップＳ２３０９と、移動後のカーソルが位置する文字をリバース表示させるステップ＃２１１３とを含んでいる。
【０２７２】
図４９に、図３１に示した本実施例にかかるソフトウェアキーボード装置ＳＫＡｅを組み込んだゲーム機の例とは異なる例を図示する。
以下に、図５０〜図５５を参照して、入力ボタンの少ないコントローラで簡単に日本語を入力することを可能にする、ソフトウェア制御によるキーボードについて説明する。同例において、文字は、すべて日本語の仮名で表示されるので、ローマ字の解らない人でも入力が可能である。
【０２７３】
なお、同例において、ソフトウェアキーボードＳＫＢの第１段目に、それぞれ、「あ行」、「か行」、「さ行」、「た行」、「な行」、「は行」、「ま行」、「や行」、「ら行」、「わ行」および「ん行」の先頭の文字である「あ」、「か」、「さ」、「た」、「な」、「は」、「ま」、「や」、「ら」、「わ」、および「ん」が表示されている。そして、カーソルを、各行の先頭の文字の位置に移動させると、その文字を先頭とする行の文字か、第２段目以降複数行に渡ってに中央揃えされて表示される。
【０２７４】
図５０には、カーソルが「あ」の位置にある時には、第２段目および第３段目に、「あ行」に属する文字が１０種類表示されている。以下同様に、図５１には、「か行」に属する文字が表示されている。図５２には、「た行」に属する文字が示されている。図５３には、「は行」に属する文字が示され、図５４には、「や行」の文字が示され、そして図５５には、「わ行」の文字が示されている。
【０２７５】
本明細書において、本発明の実施形態および実施例において、アルファベットを入力して、ローマ字仮名変換する例について説明しているが、本発明は、基本的に２つ以上の文字を組み合わせて、別の文字を抽出して入力する用途に適している。より詳しく述べれば、種類の少ない文字を二つ以上組み合わせて、より種類の多い文字に変換する用途において、本発明はより効果的である。このような用途として、本明細書で例示しているように、アルファベット２６文字を組み合わせて、数十万語以上と言われる日本語の仮名漢字変換を行うものがある。このような用途として、中国語、韓国語に代表される、ＤＢＣ（ダブルバイトコード）で表現される言語体系での文字入力に適している。
【０２７６】
また、ソフトウェアキーボードＳＫＢのアルファベット文字の配置は、日本語が子音と母音との組み合わせから構成されていることから、子音と母音を明確に分離し、子音入力後の母音検索の手間取りを少なくなるような仕組みとなっている。人間の行動心理からすると、アルファベット文字の存在しないところへはカーソルを移動しようとは思わない。その結果、わざわざ遠回りしてカーソルを移動することになり、結果としてストローク量が多くなることになる。
【０２７７】
本発明は、この点に着目し、目的の子音にカーソルを移動する際に、その後を追うように母音グループが追随するようになっている。すなわち、子音入力後は母音グループは追随してきているため、子音の次に入力する母音は目移りせずに直ぐにそばにある母音グループから選択すればよいことになる（例外としてｋｙａのように子音が２回続く文字もある）。また、カーソル移動に関してであるが、最左端までカーソルを移動した後最右端の文字に移動したい時には、わざわざ右方向にカーソルを移動しなくても左に移動指示すれば最右端に循環移動するように構成している（又はこの反対方向）。これらの結果、キー・ストローク量は平均的に少なくなる。
【０２７８】
言うまでもなく、ローマ字入力であるからキーボード部は２６文字で済み、よって画面を占有する割合が少なくなる。また、ソフトウェアキーボードＳＫＢはハードウェアではないため製品コスト面で有利である。さらに、画面の任意の場所に移動・表示可能で、必要な時に画面に呼び出すことが可能で、ドライバの形で提供しＯＳの一部として組み込みも可能である。
【０２７９】
特に短い日本語の文章を入力する場合、高度な変換精度は必要なく単漢字変換程度の精度で済ませられることがある。また、単漢字変換は比較的小規模な辞書で、その構造も簡単で済むため、今回のソフトウェアキーボードを評価・検討するために、この変換方法による日本語入力フロントエンド・プロセッサ（以下ＦＥＰ）を開発し組み込んだ。ＦＥＰはソフトウェアキーボードにより入力された漢字変換候補を漢字に変換する機能のほか、ＪＩＳ規格の文字（記号、数字、アルファベット、平仮名、カタカナ、ギリシャ文字、ロシア文字、丸数字・ローマ数字、単位、元号・数学記号・論理演算記号、ＪＩＳ第１・第２水準漢字）および外字の入力が可能である。また、辞書学習機能も有している。
【図面の簡単な説明】
【図１】本発明の実施形態にかかるソフトウェアキーボード装置の構成を示すブロック図である。
【図２】図１に示したソフトウェアキーボード装置の動作を示すフローチャートである。
【図３】図２に示したソフトウェアキーボード装置の表示器に表されているソフトウェアキーボードを用いて、ローマ字仮名変換する方法の説明図である。
【図４】図３に示したソフトウェアキーボード装置の表示器に表示されているソフトウェアキーボードを用いて、仮名漢字変換する方法の説明図である。
【図５】本発明にかかるソフトウェアキーボード装置の基本的な構成を示す説明図である。
【図６】本発明にかかるソフトウェアキーボード装置の追随モード１において、カーソルが母音グループ内を移動する場合のソフトウェアキーボードの動作を示す説明図である。
【図７】本発明にかかるソフトウェアキーボード装置の追随モード１において、カーソルが母音グループ内を移動する場合のソフトウェアキーボードの動作を示す説明図である。
【図８】本発明にかかるソフトウェアキーボード装置の追随モード１において、カーソルが母音グループ内を移動する場合のソフトウェアキーボードの動作を示す説明図である。
【図９】本発明にかかるソフトウェアキーボード装置の追随モード１において、カーソルが母音グループ内を移動する場合のソフトウェアキーボードの動作を示す説明図である。
【図１０】本発明にかかるソフトウェアキーボード装置の追随モード１において、カーソルが母音グループ内を移動する場合のソフトウェアキーボードの動作を示す説明図である。
【図１１】本発明にかかるソフトウェアキーボード装置の追随モード１において、カーソルが子音グループ内を移動する際のソフトウェアキーボードの動作を示す説明図である。
【図１２】本発明にかかるソフトウェアキーボード装置の追随モード１において、カーソルが子音グループ内を移動する際のソフトウェアキーボードの動作を示す説明図である。
【図１３】本発明にかかるソフトウェアキーボード装置の追随モード１において、カーソルが子音グループ内を移動する際のソフトウェアキーボードの動作を示す説明図である。
【図１４】本発明にかかるソフトウェアキーボード装置の追随モード１において、カーソルが子音グループ内を移動する際のソフトウェアキーボードの動作を示す説明図である。
【図１５】本発明にかかるソフトウェアキーボード装置の追随モード１において、カーソルが子音グループ内を移動する際のソフトウェアキーボードの動作を示す説明図である。
【図１６】本発明にかかるソフトウェアキーボード装置の追随モード１において、カーソルが子音グループ内を移動する際のソフトウェアキーボードの動作を示す説明図である。
【図１７】本発明にかかるソフトウェアキーボード装置の追随モード１において、カーソルが子音グループ内を移動する際のソフトウェアキーボードの動作を示す説明図である。
【図１８】本発明にかかるソフトウェアキーボード装置の追随モード１において、カーソルが子音グループ内を移動する際のソフトウェアキーボードの動作を示す説明図である。
【図１９】本発明にかかるソフトウェアキーボード装置の追随モード１において、カーソルが子音グループ内を移動する際のソフトウェアキーボードの動作を示す説明図である。
【図２０】本発明にかかるソフトウェアキーボード装置の追随モード１において、カーソルが異なる文字グループ間を移動する際のソフトウェアキーボードの動作を示す説明図である。
【図２１】本発明にかかるソフトウェアキーボード装置の追随モード１において、カーソルが異なる文字グループ間を移動する際のソフトウェアキーボードの動作を示す説明図である。
【図２２】本発明にかかるソフトウェアキーボード装置の静止モードにおいて、ソフトウェアキーボードのカーソルの移動と母音グループとの関係を示す説明図である。
【図２３】本発明にかかるソフトウェアキーボード装置の追随モード２において、カーソルが子音グループ内を移動する際のソフトウェアキーボードの動作を示す説明図である。
【図２４】本発明にかかるソフトウェアキーボード装置の追随モード２において、カーソルが子音グループ内を移動する際のソフトウェアキーボードの動作を示す説明図である。
【図２５】本発明にかかるソフトウェアキーボード装置の追随モード２において、カーソルが子音グループから、母音グループの位置に移動した時点で、母音グループがロックされることを示す説明図である。
【図２６】本発明にかかるソフトウェアキーボード装置の追随モード２において、カーソルが子音グループから、母音グループの位置に移動した時点で、母音グループがロックされることを示す説明図である。
【図２７】本発明にかかるソフトウェアキーボードの入力工程数低減の効果についての説明図である。
【図２８】本発明にかかるソフトウェアキーボードの文字レイアウトの効果についての説明図である。
【図２９】本発明にかかるソフトウェアキーボード装置をゲーム機に組み込んだ場合の構成を示すブロック図である。
【図３０】図２９に示した操作器の一例を示す平面図である。
【図３１】本発明にかかるソフトウェアキーボード装置を組み込んだゲーム機の一例を示す説明図である。
【図３２】図２９に示した、本発明にかかるソフトウェアキーボード装置の動作を示すフローチャートである。
【図３３】図２９に示したＲＯＭに格納されているプログラムと、ゲーム機内のＲＡＭに構築されるデータ領域の関係についての説明図である。
【図３４】図２９に示したソフトウェアキーボード装置において、ソフトウェアキーボードを構成する基本事項の説明図である。
【図３５】図２９に示したソフトウェアキーボード装置において、ソフトウェアキーボードを構成する基本事項の説明図である。
【図３６】図２９に示したソフトウェアキーボード装置において、ソフトウェアキーボードを構成する基本事項の説明図である。
【図３７】図３２に示すステップ＃１０１における詳細な動作を表すフローチャートである。
【図３８】図３７に示すステップ＃２０１における詳細な動作を表すフローチャートである。
【図３９】図３７に示すステップ＃２０５における詳細な動作を表すフローチャートである。
【図４０】図３２に示すステップ＃１０２における詳細な動作を表すフローチャートである。
【図４１】図４０に示すステップ＃２０２における詳細な動作を表すフローチャートである。
【図４２】図４０に示すステップ＃２０６における詳細な動作を表すフローチャートである。
【図４３】図３２に示すステップ＃１０３における詳細な動作を表すフローチャートである。
【図４４】図４３に示すステップ＃２０３における詳細な動作を表すフローチャートである。
【図４５】図４３に示すステップ＃２０７における詳細な動作を表すフローチャートである。
【図４６】図３２に示すステップ＃１０４における詳細な動作を表すフローチャートである。
【図４７】図４６に示すステップ＃２０４における詳細な動作を表すフローチャートである。
【図４８】図４６に示すステップ＃２０８における詳細な動作を表すフローチャートである。
【図４９】図３１に示した本実施例にかかるソフトウェアキーボード装置を組み込んだゲーム機のさらなる例を示す説明図である。
【図５０】図４９に示したソフトウェアキーボード装置において、入力ボタンの少ないコントローラで簡単に日本語を入力することを可能にする、ソフトウェア制御によるソフトウェアキーボードの説明図である。
【図５１】図４９に示したソフトウェアキーボード装置において、入力ボタンの少ないコントローラで簡単に日本語を入力することを可能にする、ソフトウェア制御によるソフトウェアキーボードの説明図である。
【図５２】図４９に示したソフトウェアキーボード装置において、入力ボタンの少ないコントローラで簡単に日本語を入力することを可能にする、ソフトウェア制御によるソフトウェアキーボードの説明図である。
【図５３】図４９に示したソフトウェアキーボード装置において、入力ボタンの少ないコントローラで簡単に日本語を入力することを可能にする、ソフトウェア制御によるソフトウェアキーボードの説明図である。
【図５４】図４９に示したソフトウェアキーボード装置において、入力ボタンの少ないコントローラで簡単に日本語を入力することを可能にする、ソフトウェア制御によるソフトウェアキーボードの説明図である。
【図５５】図４９に示したソフトウェアキーボード装置において、入力ボタンの少ないコントローラで簡単に日本語を入力することを可能にする、ソフトウェア制御によるソフトウェアキーボードの説明図である。
【符号の説明】
ＳＫＡ  ソフトウェアキーボード装置
ＳＫＢ  ソフトウェアキーボード
１  プログラム源
１ｅ  ＲＯＭ
５  ＣＰＵ
５ｅ  ＣＰＵ５ｅ
１３  ＲＡＭ
１３ｅ  ＲＡＭ
１９  入力器
１９ｅ  操作器
２１  表示器
２１ｅ  モニタ
Ｇｖ  母音グループ
Ｇｃ  子音グループ
【図１】
0003841590.tif 000002
【図２】
0003841590.tif 000003
【図３】
0003841590.tif 000004
【図４】
0003841590.tif 000005
【図５】
0003841590.tif 000006
【図６】
0003841590.tif 000007
【図７】
0003841590.tif 000008
【図８】
0003841590.tif 000009
【図９】
0003841590.tif 000010
【図１０】
0003841590.tif 000011
【図１１】
0003841590.tif 000012
【図１２】
0003841590.tif 000013
【図１３】
0003841590.tif 000014
【図１４】
0003841590.tif 000015
【図１５】
0003841590.tif 000016
【図１６】
0003841590.tif 000017
【図１７】
0003841590.tif 000018
【図１８】
0003841590.tif 000019
【図１９】
0003841590.tif 000020
【図２０】
0003841590.tif 000021
【図２１】
0003841590.tif 000022
【図２２】
0003841590.tif 000023
【図２３】
0003841590.tif 000024
【図２４】
0003841590.tif 000025
【図２５】
0003841590.tif 000026
【図２６】
0003841590.tif 000027
【図２７】
0003841590.tif 000028
【図２８】
0003841590.tif 000029
【図２９】
0003841590.tif 000030
【図３０】
0003841590.tif 000031
【図３１】
0003841590.tif 000032
【図３２】
0003841590.tif 000033
【図３３】
0003841590.tif 000034
【図３４】
0003841590.tif 000035
【図３５】
0003841590.tif 000036
【図３６】
0003841590.tif 000037
【図３７】
0003841590.tif 000038
【図３８】
0003841590.tif 000039
【図３９】
0003841590.tif 000040
【図４０】
0003841590.tif 000041
【図４１】
0003841590.tif 000042
【図４２】
0003841590.tif 000043
【図４３】
0003841590.tif 000044
【図４４】
0003841590.tif 000045
【図４５】
0003841590.tif 000046
【図４６】
0003841590.tif 000047
【図４７】
0003841590.tif 000048
【図４８】
0003841590.tif 000049
【図４９】
0003841590.tif 000050
【図５０】
0003841590.tif 000051
【図５１】
0003841590.tif 000052
【図５２】
0003841590.tif 000053
【図５３】
0003841590.tif 000054
【図５４】
0003841590.tif 000055
【図５５】
0003841590.tif 000056