上記特許文献1に記載の技術では、文字を構成する各線について手書き文字と参照文字との比較を行うのみであり、評価の方法が単純であった。そのため、手書き文字と参照文字とがどの程度ずれているかといった大まかな評価結果しか得ることができず、詳細な評価結果を得ることができなかった。
それ故、本発明の目的は、手書きの文字等の図形をより詳細に評価することができる図形評価プログラムおよび図形評価装置を提供することである。
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
本願発明は、ユーザ入力に基づく評価対象図形データが示す形状がどのような形状であるかを評価する処理をおこなう。当該評価の処理は、評価対象部分の長さ、大きさ、角度や、複数の評価対象部分同士の相対位置関係、複数の評価対象部分同士の相対サイズ関係、評価対象部分の評価対象図形全体の中での位置などを判定することによりおこなわれる。
なお、ここで「部分」とは、評価対象図形を構成する点、線(文字の場合は画)、複数の点または線により構成されるグループ(文字の場合は部首)であり、「相対位置関係」とは、複数の評価対象部分のどちらが上方/下方/左方/右方に位置するかや、複数の評価対象部分がどれくらい重なっているかまたは離れているか、複数の評価対象部分が平行であるかなどの関係であり、「相対サイズ関係」とは、複数の評価対象部分のどちらが長いかや、どちらの面積が大きいかなどの関係であり、「全体の中での位置」とは、評価対象部分が評価対象図形全体の上領域/下領域/右領域/左領域にあるかなどである。
本願発明では、参照図形によって評価対象となる部分が変更される(すなわち、参照図形ごとに、評価対象として選出される部分が異なる)。複数の部分を選出する場合には、それらの部分同士の相対位置関係や相対サイズ関係を判定することが可能である。または、本願発明では、参照図形によって、評価対象図形における「最小単位の部分」(後述)をグループ化する方法が異なる。
本願発明は、以下の(1)〜(4)に示す処理を行う。
(1)参照図形を特定する処理
参照図形特定ステップにより、複数の参照図形の中から、今回評価をおこなうべき参照図形が特定される。ここで、参照図形特定ステップは、複数の参照図形の中からユーザによる明示的な選択操作(例えば、複数の参照図形を一覧表示して、その中からユーザに選択させるなど)により、今回評価をおこなうべき参照図形を特定してもよいし、または、複数の参照図形の中から自動的に(典型的にはランダムで、または、予め定めるアルゴリズムにより順番に)1つの参照図形を特定してもよい。
さらには、ユーザにより入力された評価対象図形データに基づいて、当該評価対象図形データが表している図形が複数の参照図形のうちどの参照図形にあたるかを判定することにより、評価を行なうべき参照図形を特定してもよい。すなわち、より具体的には、評価対象図形データが、座標入力手段により入力された座標データ群やストロークデータ群である場合に、当該データ群を図形認識することにより、どの参照図形にあたるかを認識処理し、認識された参照図形を、今回評価をおこなうべき参照図形としてもよい。
(2)部分に分ける処理
評価対象図形データを部分にわける処理がおこなわれる。例えば、評価対象図形が文字の場合には、画や部首にわける処理がおこなわれる。評価対象図形が文字でない場合には、画や部首という概念が存在しないが、同等に考えることができ、すなわち、その図形を複数の部分にわける処理がおこなわれる。
すなわち、ユーザによって入力された評価対象図形データは、所定の入力単位により、部分にわけることができる。例えば、ユーザが座標入力手段(タッチパネル、スタイラスペン、マウス、遠隔ポインタなど)を用いて評価対象図形データを入力する場合において、座標入力開始から終了まで(典型的には、タッチパネルを用いる場合における、タッチオンからタッチオフまで)のデータを1つの部分に属するデータとしてもよい。または、一連の座標入力中で、角度が急激に変化した点(後述の実施形態における頂点)や、入力座標が所定時間停止した点を境にして、それより前の部分とそれより後の部分にわけてもよい。または、ユーザが1つの部分を入力するごとに所定操作をするようにして、所定操作をするまでに入力されたデータを1つの部分として扱っても良いし、所定時間内に入力された図形データを1つの部分になるようにしてもよい。なお、このようにしてわけられる部分を、「最小単位の部分」と呼ぶことがある。
必要に応じて、上述のようにして決定された「最小単位の部分」を複数合わせることにより、比較的大きな単位の部分を生成してもよい。例えば、評価対象図形が文字である場合に、まず、タッチオンからタッチオフまでを1画として画ごとにわけ、複数の画をあわせて1つの部首として、当該部首を1つの部分としてあつかってもよい。この場合、参照図形ごとに、評価対象図形データの「最小単位の部分」を比較的大きな単位にグループ化するための情報(後述の実施形態における区分データ)が記憶され、参照図形特定ステップにより特定された参照図形についての当該「グループ化するための情報」を用いて、評価対象図形データの各「最小単位の部分」がグループ化されて、1つのグループが1つの部分として扱われる。なお、典型的には、評価対象図形データの「最小単位の部分」は参照図形によらずに共通のアルゴリズム(前述のタッチオンからタッチオフまでなど)により決定される。
より具体的には、文字の場合、参照図形ごとに、評価対象図形データの各画を部首レベルにグループ化するための情報(後述の実施形態で言えば、区分データ55により定まる情報であり、例えば、図9における、画番号1から4が部首番号1に属するという情報)が設定されていて、参照図形特定ステップにより特定された参照図形についての当該「グループ化するための情報」を用いて、評価対象図形データの「最小単位部分」がグループ化されて、当該グループ単位で1つの部分として扱われる。
また、必要に応じて、評価対象図形データを階層化して部分に分けてもよい。すなわち、例えば、評価対象図形データの全体を部分Aと部分Bに分けた後、部分Aをさらに部分A1と部分A2にわけてもよい。この場合、参照図形ごとに、当該階層化するための情報(後述の実施形態で言えば、区分データ55により定まる情報であり、例えば、図9において、画番号1から4が第1階層の第1グループに属し、画番号5から15が第1階層の第2グループに属し、画番号5−8が第2階層の第1グループに属し、画番号9−15が第2階層の第2グループに属し、画番号9−13が第3階層の第1グループに属し、画番号14−15が第3階層の第2グループに属するという情報)が設定されていて、参照図形特定ステップにより特定された参照図形についての当該「階層化するための情報」を用いて、評価対象図形データが、階層化された部分にわけられる。
(3)評価対象部分を選出する処理
参照図形ごとに、部分特定用データが設定される。評価対象部分選出ステップでは、参照図形特定ステップにより特定された参照図形についての、当該部分特定用データを用いて、評価対象図形データのうち、当該部分特定用データを用いて特定される部分についての図形データを選出して、選出された図形データに基づいて評価をおこなう。部分特定用データの態様には多種のものがあり、それに対応して評価対象部分選出ステップの態様も異なる。以下に、部分特定用データの種類ごとに説明する。
(a)部分特定用データが、評価対象図形の部分を直接的に指定するデータの場合
前述のようにして、評価対象図形データは部分にわけられるが、部分特定用データは、そのようにしてわけられた部分のいずれかを直接的に指定するものとすることができる。例えば、評価対象図形の各部分に識別番号を付与する場合、部分特定用データは、当該識別番号を指定するデータとすることができる。例えば、文字の場合には、第n画目とか、第n番目の部首とかを指定する情報(後述の実施形態における、画番号や部首番号がこれにあたる)がこれにあたる。
ここで、各部分に識別番号を付与する処理では、例えば、ユーザにより入力された順番で、各部分に順番に番号を付与する方法がある。しかしながら、より複雑な方法では、当該評価対象図形データにおける各部分が、参照図形におけるどの部分に対応するかの対応関係を判断する処理をおこなってもかまわない(詳細は実施形態の説明において後述する)。その場合、部分特定用データによって参照図形における部分が指定され、当該部分に対応する評価対象図形における部分が評価対象部分となる。例えば、評価対象図形データが「川」の図形データであり、真ん中の縦線を評価対象部分としたい場合に、部分特定用データとして、2画目を指定するデータを設定すればよいのであるが、ユーザが「川」の書き順を間違えて、真ん中の縦線を最後に(3画目に)入力した場合には、意図しない部分(右側の縦線)が評価対象部分とされることになる。このようなことを防ぐために、真ん中の縦線を3画目に入力した場合であっても、所定の処理により、それが参照文字においては2画目の部分であることを判断する処理をおこなって、その場合には、ユーザが3画目に入力した部分を、2画目の部分であると対応付けて、当該部分について評価処理するようにすることができる。
(b)部分特定用データが、評価対象図形の部分の属性(種類)を指定するデータの場合
この場合、参照図形ごとに、当該参照図形の各部分の属性情報が設定される(例えば、後述の図9の例において、参照図形「横」について、第1画から第4画までにより構成される部分に、「きへん」という属性情報が予め設定されている。他の例では、参照図形「叶」について、第1画から第3画までにより構成される部分に、「くちへん」という属性情報が予め設定されている。)。そして、評価対象図形データの各部分が参照図形の各部分に対応付けられる(これは、前述のとおり、単に順番に対応付けても良いし、対応関係を判断して対応付けても良い)。そして、評価対象図形データの各部分の属性は、参照図形において対応する部分の属性であると判定される。この属性情報は、後述の実施形態においては、部首識別情報、または、部首情報のうち「へん」「かんむり」などの情報がこれの一例である。部分特定用データとして属性情報を指定するデータを設定し、評価対象部分選出ステップでは、評価対象図形データの各部分についての属性に基づいて、当該部分特定用データが指定する属性情報を有する部分を探し出すことにより、評価対象図形の各部分の中で指定された属性に該当する部分を評価対象部分として選出する。
(c)部分特定用データが、評価項目を指定するデータの場合
評価ステップを、図形評価装置の処理手段に複数種類の評価項目を実行させることができるように構成する。そして、参照図形ごとに、評価項目を指定するデータが設定される。また、評価項目ごとに、「評価対象部分を指定するデータ」または「評価対象部分の属性を指定するデータ」を設定される。そして、評価対象部分選出ステップと評価ステップは一体的となって、参照図形特定ステップにより特定された参照図形に応じて、実行すべき評価項目を判定し、当該評価項目についての「評価対象部分を指定するデータ」または「評価対象部分の属性を指定するデータ」に基づいて、評価対象部分を特定して、当該部分に対して当該評価項目の具体的評価処理を実行する。評価項目を指定するデータは、後述の実施形態でいうと、文字項目指定データである。
(d)部分特定用データが、参照図形の各部分に設定される属性情報を指定するデータの場合(後述の実施形態における、「部首項目に関する評価処理」がこの一例である)
参照図形ごとに、各部分の属性情報が設定される。そして、評価対象図形データの各部分が参照図形の各部分に対応付けられる(これは、前述のとおり、単に順番に対応付けても良いし、対応関係を判断して対応付けても良い)。そして、評価対象図形データの各部分の属性は、参照図形において対応する部分の属性であると判定される。さらに、所定の属性を評価対象属性として設定し、評価対象属性ごとに、「評価対象部分を指定するデータ」を設定する。
評価対象部分選出ステップでは、参照図形特定ステップにより特定される参照図形に関係なく、評価対象図形の各部分の中で評価対象属性を有する部分が存在するかを判定する(評価対象属性が複数存在する場合には、それぞれについて判定される)。評価対象属性を有する部分が存在した場合、評価対象部分選出ステップは、当該評価対象属性についての「評価対象部分を指定するデータ」を参照して、当該データに基づいて評価対象部分を選出する。この場合、参照図形の各部分に設定される属性情報自体が部分特定用データの一部である。参照図形ごとに各部分の属性情報が異なっていることにより、参照図形ごとに評価対象部分が異なる効果を生じている意味において、参照図形ごとの各部分の属性情報が部分特定用データ(評価対象部分を特定するためのデータ)であるといえる。
例えば、参照図形「話」について、第1画から第7画が「ごんべん」の属性であることが予め設定される。さらに、「ごんべん」の属性について、「言」の2画目と3画目と4画目が評価対象部分であることが予め設定される。そして、参照図形特定ステップにより特定される参照図形が「話」である場合、評価対象図形データの第1画から第7画が「ごんべん」属性であることが判定される。そして、評価対象部分選出ステップでは、「ごんべん」属性を有する部分が存在することを判定し、それにより、「ごんべん」属性の部分の中での2画目と3画目と4画目(この場合は、評価対象図形全体の中での2画目と3画目と4画目)が評価対象部分として選出される。
別の例では、参照図形「叶」について、第1画から第3画までにより構成される部分に、「くちへん」という属性情報が予め設定されている。さらには、第1画から第3画により構成される部分が第1部分であり、第4画と第5画により構成される部分が第2部分であることが予め設定されている。また、「くちへん」の属性について、評価対象図形の全体の中の部首番号1の部分と部首番号2の部分が判定対象部分であることが予め設定されている。そして、参照図形特定ステップにより特定される参照図形が「叶」である場合、評価対象図形データの第1画から第3画が「くちへん」属性であることが判定される。また、第1画から第3画が第1部分であり、第4画と第5画が第2部分であることが判定される。そして、評価対象部分選出ステップでは、「くちへん」属性を有する部分が存在することを判定し、それにより、評価対象図形の第1部分と第2部分を評価対象部分として選出する(この場合は、評価ステップでは、第1部分と第2部分の相対位置関係が判定される。より具体的には、第1部分の中心座標と第2部分の中心座標が比較され、前者の上下方向の座標値が後者の上下方向の座標値より上にあるか否か、およびまたは、どれくらい上にあるかが判定される)。
なお、評価対象属性ごとに、評価項目を指定するデータを設定してもよく、この場合、前述のように、評価項目ごとに、「評価対象部分を指定するデータ」または「評価対象部分の属性を指定するデータ」が設定され、評価対象部分選出ステップでは、参照図形特定ステップにより特定される参照図形に関係なく、評価対象図形の各部分の中で評価対象属性を有する部分が存在するかを判定する(評価対象属性が複数存在する場合には、それぞれについて判定される)。評価対象属性を有する部分が存在した場合、評価対象部分選出ステップは、当該評価対象属性に対応する評価項目について設定されている「評価対象部分を指定するデータ」または「評価対象部分の属性を指定するデータ」を参照して、当該データに基づいて評価対象部分を選出する。
(e)部分特定用データが、階層を指定するデータの場合
前述のように、評価対象図形データを階層化して部分に分ける。そして、参照図形ごとに、階層を指定するデータが設定される。この「階層を指定するデータ」が部分特定用データの一部である。評価対象部分選出ステップでは、参照図形特定ステップにより特定された参照図形に応じて、どの階層を判定対象とするかを判定し、当該階層に属する部分のうちの所定部分を評価対象部分として選出する。なお、前述のように、参照文字ごとに評価項目を指定する場合、評価項目ごとに当該所定部分を設定してもよい。すなわち、評価項目ごとに、当該階層に属する部分のうちの第1番目の部分を評価対象部分とするのか、それとも、第2番目の部分を評価対象部分とするのか、あるいは、第1番目の部分と第2番目の部分を評価対象部分とするのかが設定され、評価対象部分選出ステップでは、参照図形特定ステップにより特定された参照図形に応じて、どの階層を判定対象とするかを判定し、当該階層に属する部分のうちの、参照図形特定ステップにより特定された参照図形に応じた評価項目に応じた前記所定部分を評価対象部分として選出する。
例えば、ある評価項目について第1部分と第2部分が評価対象部分であると設定されていて、さらにある参照文字aについて当該評価項目が指定され、かつ、当該参照文字a(具体的には図9の「横」)について、画番号1から4が第1階層の第1グループに属し、画番号5から15が第1階層の第2グループに属し、画番号5−8が第2階層の第1グループに属し、画番号9−15が第2階層の第2グループに属し、画番号9−13が第3階層の第1グループに属し、画番号14−15が第3階層の第2グループに属するという情報が設定されているとする。さらに、当該参照文字aについて、部分特定用データとして、第2階層が指定されているとする。この場合、参照図形特定ステップにより、参照図形aが特定された場合、評価対象図形のうち、画番号5−8が第2階層の第1グループに属し、画番号9−15が第2階層の第2グループに属することが判定され、かつ、第2階層の第1グループと第2グループが評価対象部分であることが判定される。したがって、評価対象図形のうち、画番号5−8により構成される部分と、画番号9−15により構成される部分が評価対象部分として選出される。なお、この場合、評価ステップでは、例えば、第1グループの右端点が第2グループの右端点よりも右方向にあり、かつ、第1グループの左端点が第2グループの左端点よりも左方向にあることが判定される。
なお、部分特定用データがいずれの場合であっても、評価対象部分選出ステップにおいて、複数の部分が選出されるように構成してもよく、この場合には、評価ステップは、選出された複数の部分の相対関係を判定してもよい。
また、(c)と(e)を複合することにより、参照図形ごとに評価項目を指定するとともに階層を指定し、評価項目ごとにある階層の中での所定部分を設定することにより、指定された階層における当該所定部分を評価対象部分として選出することもできる。
(4)評価
評価対象として選出された部分について、具体的にどのように評価するかは、参照文字によらずに同一の評価の仕方でもよいし、参照文字(または評価対象部分)によって評価項目を変更してもよい。前者の場合には、評価ステップは、図形評価装置に単一の評価処理を実行させることができればよく、後者の場合には、複数種類の評価処理を選択的に実行させることができるように構成する。そして、参照文字ごとに、評価項目を指定するデータが設定され、指定された評価項目に対応する評価処理が実行される。また、上記(d)の場合は、評価対象属性ごとに評価項目を変更してもよい。
なお、ここで、「評価項目」とは、評価(評価方法)の具体的内容であって、例えば、選出された部分の長さを判定するのか、それとも角度を判定するのか、または、相対関係を判定するのか、長さを判定するとしてどの程度の長さを良とするのかなどである。複数種類の評価処理を実行させる場合には、各評価処理において評価項目が異なるようにプログラムされる。
また、評価基準を参照図形ごと(または評価対象属性ごと)に設定しておいて、評価項目が同じであっても、参照図形に応じて(または評価対象属性に応じて)評価基準値を変更してもよい。例えば、評価項目が「評価対象部分がXより長いこと」を判定する処理であったときに、参照図形ごとにXを指定するデータを設定しておき、評価ステップでは、参照図形特定ステップにより特定された参照図形に応じて当該データを読み出して、評価基準値を設定してもよい。
なお、参照図形ごとに、基準図形データ(座標データ群、または、ストロークデータ群;後述の実施形態における形状データ54)を記憶しておいて、参照図形の各部分と評価対象図形の各部分とを対応付け(これは、前述のとおり、単に順番に対応付けても良いし、対応関係を判断して対応付けても良い)てもよい。このとき、評価対象部分選出ステップにて選出される評価対象図形の部分に対応する基準図形の部分を選出して当該部分を基準図形における評価対象部分とする。評価ステップにおいては、評価対象部分選出ステップにて選出される評価対象図形の評価対象部分について、長さ、大きさ、角度などを計算処理するとともに、基準図形の対応部分についても、同じ計算処理をし、評価対象図形の評価対象部分についての計算結果と基準図形の対応部分についての計算結果がどれくらい一致するかに応じて、評価をおこなってもよい(一致度が高いほど高い評価とする)。なお、評価対象部分選出ステップにおいて、評価対象部分を複数選出する場合、基準図形の評価対象部分もそれぞれ選出され、評価ステップでは、評価対象図形の複数の評価対象部分の相対関係を計算し、基準図形の複数の評価対象部分の相対関係を計算して、両計算結果の一致度に応じて評価をおこなってもよい。
なお、上述した以下のデータは、図形評価プログラムと一体的にデータとして記憶され、当該プログラムとともに図形評価装置の記憶手段に読み込んで使用するようにしてもよいし(プログラムの中で定義されている場合を含む)、図形評価プログラムとは別のソースから図形評価装置の記憶手段に読み込んで使用するようにしてもよい。
・参照文字ごとに設定される「各部分の属性情報」や「グループ化するための情報」や「階層化するための情報」や「部分特定用データ」や「評価項目を指定するデータ」や「評価基準データ」
・評価項目ごとに設定される「評価対象部分を指定するデータ」や「評価対象部分の属性を指定するデータ」や(e)における「『所定部分』を指定するデータ」
・評価対象属性ごとに設定される「評価対象部分を指定するデータ」や「評価項目を指定するデータ」
第1の発明は、図形(文字)の形状を評価するための図形評価装置(ゲーム装置10)のコンピュータ(CPUコア21)に実行させる図形評価プログラム(ゲームプログラム50)である。図形評価装置の記憶手段(RAM24)は、複数の参照図形(参照文字)と、参照図形を構成する各部分図形(画または部首)のうちで評価の対象部分との対応をとるための部分特定用データ(文字項目指定データ56、または、部首項目指定データ57もしくは必須項目指定データ58および区分データ55)を記憶している。図形評価プログラムは、取得ステップ(S3)と、区分ステップ(S7)と、参照図形特定ステップ(S1)と、評価対象部分選出ステップ(S61)と、評価ステップ(S64)とをコンピュータに実行させる。取得ステップでは、ユーザによって入力される、評価を行うべき評価対象図形の形状を示す評価対象図形データ(対象文字データ62)を取得する。区分ステップでは、対象図形データを複数の部分に区分する。参照図形特定ステップでは、複数の参照図形のうちから、今回評価を行うべき参照図形を特定する。評価対象図形選出ステップでは、参照図形特定ステップにおいて特定された参照図形に対応する評価対象部分を、前記部分特定用データを用いて決定し、当該決定された評価対象部分の形状を示す評価対象部分図形データ(対象部分データ)を、評価対象図形データから選出する。評価ステップでは、評価対象部分図形データを用いて評価対象部分を評価する。
第2の発明においては、部分特定用データは、参照図形ごとに、当該参照図形における部分を指定する部分指定データ(文字項目指定データ56の指定情報)を含むデータであってもよい。このとき、評価対象部分選出ステップにおいて、コンピュータは、参照図形特定ステップにおいて特定された参照図形に関する部分指定データにより指定される部分の形状を示すデータを前記評価対象部分図形データとして前記評価対象図形データから選出する。
第3の発明においては、部分指定データは、評価対象部分の図形を指定するための情報(文字項目指定データ56の指定情報)と当該評価対象部分に対して用いる評価方法(文字項目指定データ56の項目番号により示される評価項目)との対応を示していてもよい。評価ステップにおいて、コンピュータは、部分指定データを参照することによって評価対象部分の図形を評価する評価方法を決定する。
第4の発明においては、部分特定用データは、前記評価対象部分の図形の種類を指定する種類指定データ(文字項目指定データ56の指定情報)と、参照図形を構成する複数の部分図形と各部分図形の種類を示す種類情報との対応を当該参照図形毎に示す区分データとを含んでいてもよい。このとき、前記評価対象部分選出ステップにおいて、前記コンピュータは、前記参照図形特定ステップにおいて特定された参照図形に関する区分データにより示される各部分図形の種類のうちから、前記種類指定データにより指定される種類と一致する部分図形を選択し、選択された部分図形を前記評価対象部分として特定する。
第5の発明においては、部分特定用データは、評価対象部分の図形の種類を指定する種類指定データ(部首項目指定データ57または必須項目指定データ58)と、参照図形を構成する複数の部分図形と各部分図形の種類を示す種類情報との対応を当該参照図形毎に示す区分データ(55)とを含んでいてもよい。このとき、評価対象部分選出ステップにおいて、コンピュータは、参照図形特定ステップにおいて特定された参照図形に関する区分データにより示される各部分図形の種類のうちから、種類指定データにより指定される種類と一致する部分図形を選択し、選択された部分図形を評価対象部分として特定する。
第6の発明においては、種類指定データは、評価対象部分の図形の種類を指定する情報と当該種類の評価対象部分に対して用いる評価方法との対応を示していてもよい。このとき、評価ステップにおいて、コンピュータは、種類指定データを参照することによって評価対象部分の図形を評価する評価方法を決定する。
第7の発明においては、図形評価装置は、入力面上においてプレイヤが指定した位置を検出する入力装置に接続されていてもよい。このとき、取得ステップにおいて、コンピュータは、入力装置によって検出された入力位置を示す入力位置データを所定時間間隔で取得し、入力位置データを検出順に並べたデータを評価対象図形データとする。
第8の発明においては、部分特定用データは、評価対象部分を構成する1以上の軌跡を指定する軌跡指定データ(指定情報)を含んでいてもよい。このとき、区分ステップにおいて、コンピュータは、評価対象図形データに含まれる各入力位置データを、連続して検出された1以上の入力位置により示される軌跡毎に区分する。評価対象部分選出ステップにおいて、コンピュータは、区分ステップにおいて軌跡毎に区分された各入力位置データのうち、軌跡指定データにより指定される軌跡に対応する入力位置データを評価対象部分図形データとして選出する。
第9の発明においては、軌跡指定データは、評価対象図形を構成する各軌跡のうちで、評価対象部分を構成する軌跡が入力されるべき順番を示すデータであってもよい。
第10の発明においては、評価対象部分選出ステップにおいて、コンピュータは、評価対象図形のうちから複数の評価対象部分を特定し、特定された各評価対象部分の形状を示す対象部分図形データをそれぞれ選出してもよい。このとき、評価ステップにおいて、コンピュータは、選出された各評価対象部分図形データを用いて評価対象部分同士の位置関係または大小関係を評価する。
第11の発明においては、評価ステップにおいて、コンピュータは、評価対象部分の図形の形状を評価してもよい。
第12の発明においては、図形評価装置の記憶手段は、参照図形の形状を示す参照図形データを参照図形毎に記憶してもよい。このとき、評価ステップは、参照図形特定ステップにおいて特定された参照図形の形状を示す参照図形データから、評価対象部分に対応する部分図形の形状を示す参照部分図形データを選出するステップ(S63)と、参照部分図形データと評価対象部分図形データとを比較することによって評価対象部分を評価するステップ(S64)とを含む、請求項1に記載の図形評価プログラム。
第13の発明においては、図形評価プログラムは、所定の参照図形をユーザに対して通知する通知ステップ(S2)をコンピュータにさらに実行させてもよい。このとき、取得ステップにおいて、コンピュータは、通知ステップによる通知の後、評価を行うべき図形の入力をユーザから受け付けることによって評価対象図形データを取得する。参照図形特定ステップにおいて、コンピュータは、評価を行うべき図形を所定の参照図形に特定する。
第14の発明においては、図形評価プログラムは、評価対象図形データを用いて図形認識処理を行うことによって、評価対象図形データにより示される図形の形状を識別する図形識別ステップ(S11)をコンピュータにさらに実行させてもよい。このとき、評価ステップは、参照図形特定ステップにおいて特定された参照図形と、図形識別ステップにおいて識別された図形とが一致している場合のみ実行される。
第15の発明においては、図形識別ステップにおいて、コンピュータは、評価対象図形データにより示される図形として複数種類の候補を複数の参照図形から選出してもよい。このとき、評価ステップは、図形識別ステップにおいて選出された候補のうちに、参照図形特定ステップにおいて特定された参照図形がある場合のみ実行される。
第16の発明においては、参照図形特定ステップにおいて、コンピュータは、評価対象図形データに基づいて図形認識処理を行うことによって、複数の参照図形のうちから評価を行うべき図形を特定してもよい。
第17の発明においては、図形評価装置の記憶手段は、参照図形の形状を示す参照図形データを参照図形毎に記憶していてもよい。このとき、図形評価プログラムは、参照部分選出ステップ(S72)と、表示ステップ(S73)とをコンピュータにさらに実行させる。参照部分選出ステップにおいては、参照図形データから、評価対象部分に対応する部分図形の形状を示す参照部分図形データを選出する。表示ステップにおいては、図形評価装置に接続される表示装置に、評価対象図形データを用いて評価対象図形の画像を表示させるとともに、参照部分図形データにより示される部分図形の画像を表示させる。
第18の発明においては、図形評価プログラムは、評価対象部分のうちで添削を行う対象となる評価対象部分を評価ステップにおける評価結果に応じて決定する添削対象決定ステップ(S71)をコンピュータにさらに実行させてもよい。このとき、参照部分選出ステップにおいて、コンピュータは、参照図形データから、添削対象決定ステップにおいて決定された評価対象部分に対応する部分図形の形状を示す参照部分図形データを選出する。
第19の発明においては、表示ステップにおいて、コンピュータは、参照部分選出ステップにおいて選出された参照部分データにより示される部分図形の画像を評価対象図形の画像に重ねて表示装置に表示させてもよい。
第20の発明は、図形(文字)の形状を評価するための図形評価装置(ゲーム装置10)のコンピュータ(CPUコア21)に実行させる図形評価プログラム(ゲームプログラム50)である。図形評価装置の記憶手段(RAM)は、参照図形と、参照図形を複数の部分図形に区分した情報との対応を示す区分データ(55)を参照図形毎に記憶している。図形評価プログラムは、取得ステップ(S3)と、参照図形特定ステップ(S1)と、分割ステップ(S61)と、評価ステップ(S64)とをコンピュータに実行させる。取得ステップでは、ユーザによって入力される、評価を行うべき評価対象図形の形状を示す評価対象図形データを取得する。参照図形特定ステップでは、参照図形のうちから評価を行うべき参照図形を特定する。分割ステップでは、参照図形特定ステップにおいて特定された参照図形の区分データに従って評価対象図形データを複数の部分図形データに分割する。評価ステップでは、複数の部分図形データにより示される各部分図形のうちの複数の部分図形同士の位置関係または大小関係を、部分図形データを用いて評価する。
第21の発明においては、図形評価装置は、入力面上においてプレイヤが指定した位置を検出する入力装置に接続されていてもよい。このとき、取得ステップにおいて、コンピュータは、入力装置によって検出された入力位置を示す入力位置データを所定時間間隔で取得し、入力位置データを検出順に並べたデータを評価対象図形データとする。
第22の発明においては、図形評価プログラムは、評価対象図形データに含まれる各入力位置データを、連続して検出された1以上の入力位置により示される軌跡毎に区分する区分ステップをコンピュータにさらに実行させてもよい。このとき、区分データは、部分図形を構成する1以上の軌跡を指定する軌跡指定データによって当該部分図形を示す。分割ステップにおいて、コンピュータは、区分ステップにおいて軌跡毎に区分された各入力位置データを、参照図形特定ステップにおいて特定された参照図形の区分データに従って分割することによって部分図形データを生成する。
第23の発明においては、軌跡指定データは、軌跡が入力されるべき順番を示すデータであってもよい。
第24の発明においては、所定の参照図形をユーザに対して通知する通知ステップをコンピュータにさらに実行させてもよい。このとき、取得ステップにおいて、コンピュータは、通知ステップによる通知の後、評価を行うべき図形の入力をユーザから受け付けることによって評価対象図形データを取得する。参照図形特定ステップにおいて、コンピュータは、評価を行うべき図形を所定の参照図形に特定する。
第25の発明においては、評価対象図形データを用いて図形認識処理を行うことによって、評価対象図形データにより示される図形の形状を識別する図形識別ステップをコンピュータにさらに実行させてもよい。このとき、評価ステップは、参照図形特定ステップにおいて特定された参照図形と、図形識別ステップにおいて識別された図形とが一致している場合のみ実行される。
第26の発明においては、図形識別ステップにおいて、コンピュータは、評価対象図形データにより示される図形として複数種類の候補を複数の参照図形から選出してもよい。このとき、評価ステップは、図形識別ステップにおいて選出された候補のうちに、参照図形特定ステップにおいて特定された参照図形がある場合のみ実行される。
第27の発明においては、参照図形特定ステップにおいて、コンピュータは、評価対象図形データに基づいて図形認識処理を行うことによって、複数の参照図形のうちから評価を行うべき図形を特定してもよい。
第28の発明においては、図形評価装置の記憶手段は、参照図形の形状を示す参照図形データを参照図形毎に記憶していてもよい。このとき、図形評価プログラムは、参照部分選出ステップ(S72)と、表示ステップ(S73)とをコンピュータにさらに実行させる。参照部分選出ステップにおいては、参照図形データから、対象部分図形に対応する部分図形の形状を示す参照部分図形データを選出する。表示ステップにおいては、図形評価装置に接続される表示装置に、評価対象図形データを用いて評価対象図形の画像を表示させるとともに、参照部分図形データにより示される部分図形の画像を表示させる。
第29の発明においては、評価ステップにおける評価対象となった部分図形のうちで添削を行う対象となる部分図形を評価ステップにおける評価結果に応じて決定する添削対象決定ステップをコンピュータにさらに実行させてもよい。このとき、参照部分選出ステップにおいて、コンピュータは、参照図形データから、添削対象決定ステップにおいて決定された評価対象部分に対応する部分図形の形状を示す参照部分図形データを選出する。
第30の発明においては、表示ステップにおいて、コンピュータは、参照部分選出ステップにおいて選出された参照部分データにより示される部分図形の画像を評価対象図形の画像に重ねて表示装置に表示させてもよい。
また、本発明は、上記図形評価プログラムを実行する情報処理装置と同等の機能を有する図形評価装置の形態で提供されてもよい。
第1の発明によれば、評価対象図形に対して評価を行う際、評価を行うべき図形毎に決められた評価対象部分を選出し、選出された評価対象部分について評価を行う。これによれば、評価対象図形の部分を単位として評価を行うことができ、図形毎に異なる部分を選出して評価を行うことができる。通常(特に図形が文字である場合には)、図形毎に評価のポイントとなる箇所は異なるので、図形毎に適切な部分図形を選出して評価を行うことにより、正確かつ詳細な評価を行うことができる。また、評価の必要がない箇所については、部分図形として選出しないことによって不要な評価処理を省略することができる。
第2の発明によれば、部分指定データを用いることによって、評価すべき図形が特定されれば、選出すべき部分図形を容易に特定することができる。
第3および第4の発明によれば、評価対象部分毎に評価方法を指定することができるので、評価対象部分毎に適切な評価方法を用いて評価を行うことができ、より正確な評価を行うことができる。
第5の発明によれば、種類指定データおよび区分データを用いることによって、評価すべき図形が特定されれば、選出すべき部分図形を容易に特定することができる。
第6の発明によれば、評価対象部分毎に評価方法を指定することができるので、評価対象部分図形毎に適切な評価方法を用いて評価を行うことができ、より正確な評価を行うことができる。
第7の発明によれば、ユーザによって入力装置の入力面上に描かれた図形を評価対象図形とすることができる。これにより、図形評価装置、例えばユーザが手書きで描いた図形を評価することができる。
第8の発明によれば、一本の軌跡を単位として図形の部分を取り扱うので、評価対象図形データから部分図形データを容易に選出することができる。
第9の発明によれば、軌跡が入力されるべき順番によって軌跡を識別することによって、評価対象図形の軌跡と参照図形の軌跡とについて位置および形状等をそれぞれ比較しなくても、評価対象図形の軌跡と参照図形の軌跡との対応付けを容易に行うことができる。したがって、部分図形データの選出処理を容易に行うことができる。
第10の発明によれば、評価対象図形に含まれる複数の部分図形について大小関係を評価することができる。つまり、単に参照文字と対象文字とが類似しているか否かについて評価を行う場合には評価できなかった、部分図形同士の大きさのバランスを評価することができ、より詳細な評価を行うことができる。
第11の発明によれば、評価対象図形に含まれる部分図形の形状を評価することができるので、単に参照文字の全体と対象文字の全体とが類似しているか否かについて評価を行う場合に比べて、より詳細な評価を行うことができる。
第12の発明によれば、参照図形と評価対象図形とを部分図形を単位として比較することができるので、単に参照図形の全体と評価対象図形の全体とが類似しているか否かについて評価を行う場合に比べて、より詳細な評価を行うことができる。
第13の発明によれば、評価を行うべき図形を図形評価装置側で定め、当該図形をユーザに入力させる。これによれば、図形認識処理を行わなくても評価を行うべき図形を容易に特定することができる。
第14および第15の発明によれば、ユーザによって入力された評価対象図形が正しい図形であるかどうかを判断することができる。例えば、ユーザが誤った図形を入力した場合には、正しい評価が行えなくなる可能性があるが、本発明によれば、このような場合に評価を行わないことによって、誤った評価を行うことを防止することができる。
第16の発明によれば、図形認識処理を行うことによって、評価対象図形がどの参照図形に対応するかを容易に特定することができる。
第17の発明によれば、評価が行われた部分図形毎に添削表示が行われるので、部分図形毎の評価結果をユーザに対してわかりやすく提示することができる。
第18の発明によれば、評価結果に応じて添削表示を行うか否かが決定される。したがって、例えば、評価結果が悪い部分についてのみ添削表示を行うことも可能であり、これによって、どの部分を修正すべきかをユーザに対してわかりやすく提示することができる。
第19の発明によれば、参照図形の部分図形の画像を、評価対象図形の画像に重ねて表示することによって、参照図形と評価対象図形との違い、および、評価結果をユーザに対してわかりやすく提示することができる。
第20の発明によれば、評価対象図形を複数の部分図形に区分し、部分図形同士の位置関係または大小関係について評価を行う。これによれば、単に参照図形と評価対象図形とが類似しているか否かについて評価を行う場合には評価できなかった、部分図形同士の配置や大きさのバランスを評価することができ、より詳細な評価を行うことができる。
第21の発明によれば、ユーザによって入力装置の入力面上に描かれた図形を評価対象図形とすることができる。これにより、図形評価装置、例えばユーザが手書きで描いた図形を評価することができる。
第22の発明によれば、一本の軌跡を単位として図形の部分を取り扱うので、評価対象図形データから部分図形データを容易に選出することができる。
第23の発明によれば、軌跡が入力されるべき順番によって軌跡を識別することによって、評価対象図形の軌跡と参照図形の軌跡とについて位置および形状等をそれぞれ比較しなくても、評価対象図形の軌跡と参照図形の軌跡との対応付けを容易に行うことができる。したがって、部分図形データの選出処理を容易に行うことができる。
第24の発明によれば、評価を行うべき図形を図形評価装置側で定め、当該図形をユーザに入力させる。これによれば、図形認識処理を行わなくても評価を行うべき図形を容易に特定することができる。
第25および第26の発明によれば、ユーザによって入力された評価対象図形が正しい図形であるかどうかを判断することができる。例えば、ユーザが誤った図形を入力した場合には、正しい評価が行えなくなる可能性があるが、本発明によれば、このような場合に評価を行わないことによって、誤った評価を行うことを防止することができる。
第27の発明によれば、図形認識処理を行うことによって、評価対象図形がどの参照図形に対応するかを容易に特定することができる。
第28の発明によれば、評価が行われた部分図形毎に添削表示が行われるので、部分図形毎の評価結果をユーザに対してわかりやすく提示することができる。
第29の発明によれば、評価結果に応じて添削表示を行うか否かが決定される。したがって、例えば、評価結果が悪い部分についてのみ添削表示を行うことも可能であり、これによって、どの部分を修正すべきかをユーザに対してわかりやすく提示することができる。
第30の発明によれば、参照図形の部分図形の画像を、評価対象図形の画像に重ねて表示することによって、参照図形と評価対象図形との違い、および、評価結果をユーザに対してわかりやすく提示することができる。
(ゲーム装置の構成)
以下、本発明の一実施形態に係る図形評価装置および図形評価プログラムについて説明する。図1は、図形評価装置の一例であるゲーム装置10の外観図である。本実施形態では、携帯型のゲーム装置を例として説明するが、図形評価装置は、後述する図形評価処理を実行することが可能な情報処理装置であればどのような装置であってもよい。
図1において、ゲーム装置10は、第1LCD(Liquid Crystal Display:液晶表示装置)11および第2LCD12を含む。ハウジング13は上側ハウジング13aと下側ハウジング13bとによって構成されている。第1LCD11は上側ハウジング13aに収納され、第2LCD12は下側ハウジング13bに収納される。第1LCD11および第2LCD12の解像度はいずれも256dot×192dotである。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用することができる。また任意の解像度のものを利用することができる。
上側ハウジング13aには、後述する1対のスピーカ(図3の30aおよび30b)からの音を外部に放出するための音抜き孔18aおよび18bが形成されている。また、上側ハウジング13aと下側ハウジング13bとを開閉可能に接続するヒンジ部にはマイクロフォン用孔33が設けられている。
下側ハウジング13bには、入力装置として、十字スイッチ14a、スタートスイッチ14b、セレクトスイッチ14c、Aボタン14d、Bボタン14e、Xボタン14f、およびYボタン14gが設けられている。また、下側ハウジング13bの側面には、図示しないLボタンおよびRボタンが設けられている。さらに、各操作スイッチとは別の入力装置として、第2LCD12の画面上にタッチパネル15が装着されている。下側ハウジング13bの側面には、電源スイッチ19、メモリカード17を収納するための挿入口35(図2に示す一点鎖線)、スティック16を収納するための挿入口36(図2に示す点線)が設けられている。
タッチパネル15は、抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、任意の押圧式のタッチパネルを用いることができる。タッチパネル15は、スティック16に限らず指で操作することも可能である。本実施形態では、タッチパネル15として、第2LCD12の解像度と同じく256dot×192dotの解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル15の解像度と第2LCD12の解像度が一致している必要はない。
なお、本実施形態においては、入力面上においてプレイヤが指定した位置を検出する入力装置としてタッチパネルを用いることとするが、他の実施形態においては、入力装置は、タッチパッドやマウス等の入力装置であってもよい。また、他の実施形態においては、入力装置は、所定の撮像対象(例えば表示装置周辺に設置されたLED)を撮像する撮像手段を備えるものであってもよい。このとき、ゲーム装置は、撮像手段によって撮像された画像内における撮像対象の位置に基づいて、撮像手段から撮像方向に延ばした直線が表示装置の画面と交わる位置を算出することができる。このように算出される位置は、入力装置の位置や向きを変えることによって変化するので、このような入力装置を用いることによって、入力面上(表示装置の画面上)においてプレイヤが指定した位置を検出することができる。
メモリカード17は、本発明に係る図形評価プログラムの一例であるゲームプログラムを記録した記録媒体であり、下部ハウジング13bに設けられた挿入口35に着脱自在に装着される。なお、ゲームプログラムはゲーム装置の内部メモリ(不揮発であることが好ましいが揮発性でもよい)に記憶してもよく、所定のサーバ(または他のゲーム装置)からダウンロードしたプログラムを当該内部メモリに記憶するようにしてもかまわない。
次に、図2を参照してゲーム装置10の内部構成を説明する。図2は、ゲーム装置10の内部構成を示すブロック図である。図2において、ハウジング13に収納される電子回路基板20には、CPUコア21が実装される。CPUコア21には、バス22を介して、コネクタ23が接続されるとともに、入出力インターフェース回路(図面ではI/F回路と記す)25、第1GPU(Graphics Processing Unit)26、第2GPU27、RAM24、およびLCDコントローラ31、およびワイヤレス通信部37が接続される。コネクタ23には、メモリカード17が着脱自在に接続される。メモリカード17は、ゲームプログラムを記憶するROM17aと、バックアップデータを書き換え可能に記憶するRAM17bを搭載する。メモリカード17のROM17aに記憶されたゲームプログラムはRAM24にロードされ、RAM24にロードされたゲームプログラムがCPUコア21によって実行される。RAM24には、ゲームプログラムの他にも、CPUコア21がゲームプログラムを実行して得られる一時的なデータや、ゲーム画像を生成するためのデータが記憶される。I/F回路25には、タッチパネル15、右スピーカ30a、左スピーカ30b、図2の十字スイッチ14aやAボタン14d等から成る操作スイッチ部14、およびマイクロフォン38が接続される。右スピーカ30aと左スピーカ30bは、音抜き孔18a、18bの内側にそれぞれ配置される。マイクロフォン38は、マイクロフォン用孔33の内側に配置される。
第1GPU26には、第1VRAM(Video RAM)28が接続され、第2GPU27には、第2VRAM29が接続される。第1GPU26は、CPUコア21からの指示に応じて、RAM24に記憶されているゲーム画像を生成するためのデータに基づいて第1のゲーム画像を生成し、第1VRAM28に描画する。第2GPU27は、同様にCPUコア21からの指示に応じて第2のゲーム画像を生成し、第2VRAM29に描画する。第1VRAM28および第2VRAM29はLCDコントローラ31に接続されている。
LCDコントローラ31はレジスタ32を含む。レジスタ32はCPUコア21からの指示に応じて0または1の値を記憶する。LCDコントローラ31は、レジスタ32の値が0の場合は、第1VRAM28に描画された第1のゲーム画像を第1LCD11に出力し、第2VRAM29に描画された第2のゲーム画像を第2LCD12に出力する。また、レジスタ32の値が1の場合は、第1VRAM28に描画された第1のゲーム画像を第2LCD12に出力し、第2VRAM29に描画された第2のゲーム画像を第1LCD11に出力する。
ワイヤレス通信部37は、他のゲーム装置のワイヤレス通信部との間で、ゲーム処理に利用されるデータやその他のデータを送受信する機能を有している。また、ゲーム装置10は、ワイヤレス通信部37を介してインターネット等の広域ネットワークに接続することが可能であり、ネットワークを介して他のゲーム装置との間で通信を行うことも可能である。
(ゲーム処理の概要)
次に、図3〜図5を参照して、ゲーム装置10において実行されるゲーム処理の概要を説明する。本実施形態におけるゲーム装置10は、文字練習ソフトを実行するゲーム装置である。すなわち、ゲーム装置10は、プレイヤ(ユーザ)がタッチパネル15に対して入力した文字に対して、文字を美しく見せるためのポイントとなる部分を評価する。そして、評価結果に応じて、当該ポイントについて修正すべき点をプレイヤに対して通知する。ゲーム装置10は、文字を書く練習をプレイヤに行わせるとともに、プレイヤが書いた文字を添削するものである。以下では、プレイヤによって入力され、評価の対象となる文字を「評価文字」と呼び、ゲームプログラムにおいて予め用意され、評価処理において用いられる文字を「参照文字」と呼ぶ。
図3は、ゲーム装置10の画面に表示される画像の一例を示す図である。図3は、「哨」という文字を練習する際における画像を示している。本実施形態においては、プレイヤは、2つのLCD11および12が左右に並ぶ向きに持ってゲーム装置10を使用するものとする。図3に示すように、第1LCD11には、参照文字画像41および枠画像42が表示される。第2LCD12には、枠画像43および対象文字画像44が表示される。参照文字画像41は、上記参照文字を表し、プレイヤが書くべき文字の手本を表す。対象文字画像44は、プレイヤがタッチパネル15に対して入力した軌跡(文字)を表す画像である。なお、他の実施形態においては、第1LCD11に加えて第2LCD12にも参照文字画像41を表示するようにしてもよい。これによって、プレイヤは、手本の文字をなぞって文字を入力することができる。枠画像42および43は、プレイヤが参照文字画像41を手本にしてタッチパネル15の入力面上に文字を描く際の目印とするために表示される。なお、他の実施形態においては、枠画像を表示しないようにしてもよい。
本実施形態においては、ゲーム装置10は、所定の文字の参照文字画像41を第1LCD11に表示することによって、当該文字の入力をプレイヤに対して促す。これに応じて、プレイヤは、例えばスティック16を用いてタッチパネル15に対して入力を行う。プレイヤが文字を入力し終える(文字を書き終える)と、ゲーム装置10は、対象文字を評価する。本実施形態においては、ゲーム装置10は、対象文字全体を評価することに加えて、対象文字の各部分について所定の評価項目に従って評価を行う。
本実施形態においては、対象文字を「画」を単位として部分に区分する。ここで、本明細書において、「画」とは、タッチパネル15に対して連続して入力された1以上の入力位置により示される1本の軌跡を言うものとする。換言すれば、「画」とは、タッチオン(タッチパネル15の入力面にスティック16等が接触したこと)からタッチオフ(タッチパネル15の入力面からスティック16等が離れたこと)までに入力面上に描かれた1本の軌跡である。さらに、文字の一部分であって1つ以上の画から構成される部分を「部首」と呼ぶ。本明細書においては、「部首」とは、例えば「ごんべん」や「さんずい」等、名称が決まっている(漢字の)一部分に限定されず、広く文字の一部分を意味する。つまり、本実施形態においては、文字は複数の部首に区分され、1つの部首は1以上の画によって構成されている。
図4を参照して、評価項目の例について説明する。図4は、部首同士の位置関係に関する評価項目を説明する図である。図4は、「へんをやや高い位置に書くこと」を表す評価項目である。この評価項目に関して評価を行う際、ゲーム装置10は、対象文字に含まれる「へん」と「つくり」の位置関係を評価する。具体的には、対象文字(図4では「哨」)のうちの「へん」の部分の上下端および左右端を4辺が通る矩形45の上端と「つくり」の部分の上下端および左右端を4辺が通る矩形46の上端との距離a、および、矩形45の下端と矩形46の下端との距離bを算出する。ゲーム装置10は、参照文字についても対象文字と同様に上記距離aおよびbを算出し、距離aおよびbのそれぞれについて、対象文字について算出された距離と、手本の文字について算出された距離との類似度(例えば差分)を算出する。なお、この評価項目については、類似度が高い(差分が小さい)ほど、参照文字と対象文字とが似ていると判断することができるので、類似度が高いほど良い評価結果となる。
ゲーム装置10は、1つの対象文字に対して少なくとも1つ(好ましくは複数)の評価項目について評価を行う。そして、各評価項目に関する評価結果をプレイヤに対して通知する。具体的には、評価結果が所定の基準よりも良かった評価項目については、「良くできました。お手本通りに書けています。」等のコメントを第1LCD11または第2LCD12に表示する。一方、評価結果が所定の基準よりも悪かった評価項目については、評価項目の対象となった部首について添削表示を行う。図5は、添削表示の一例を示す図である。図5においては、図4で説明した評価項目について、「へん」の部首の位置が低すぎていた場合に表示される画像を示している。すなわち、この場合、第2LCD12には、対象文字画像44に重ねて、評価項目の評価対象となった部首(「へん」の部首)の画像(参照部分画像)47が表示される。さらに、「へん」と「つくり」の正しい位置関係を示す図形48が第2LCD12に表示される。また、第1LCD11には、「へんを高い位置に書きましょう」といった、評価結果に関するコメントが表示される。これによって、プレイヤは、対象文字のどの部分が悪かったのか、および、どのように修正すれば文字が美しくなる(良い評価が得られる)のかを直感的にかつわかりやすく把握することができる。なお、1つの対象文字に対して複数の評価項目が設定されている場合、添削表示は、評価項目毎に画面を切り替えて行われる。
以上のように、本実施形態は、対象文字の部分(部首や画)毎に評価を行うことによって、文字全体のみについて評価を行う場合に比べて、文字の評価を詳細に行うことができる。さらに、評価結果を文字の部分毎に表示することによって、どの部分が悪かったのか(良かったのか)をプレイヤに対してわかりやすく提示することができる。なお、評価項目は、上記のような部首と部首との位置関係を評価するものに限らず、部首と画、または、画と画との位置関係を評価するものであってもよいし、部分(部首または画)同士の大小関係を評価するものであってもよい。また、評価項目は、部首または画の形状(具体的には「画が所定の角度で書かれているか」や、「部首や画の形状が手本に類似しているか」等)を評価するものであってもよい。さらに、タッチパネル15に対する速度等によって入力される軌跡の太さを変更することも可能であり、このとき、軌跡の太さ(文字の太さ)に関する評価項目を設定するようにしてもよい。なお、タッチパネルが入力の圧力または面積を検出可能である場合には、当該圧力または面積に基づいて軌跡の太さを決定するようにしてもよい。
(ゲーム処理の詳細)
次に、本実施形態においてゲーム装置10で実行されるゲーム処理について説明する。まず、図6を参照して、ゲーム処理において用いられる主なデータについて説明する。図6は、ゲーム装置10のRAM24に記憶される主なデータを示す図である。図6に示すように、RAM24には、ゲームプログラム50およびゲーム処理用データ51等が記憶される。なお、RAM24には、図6に示すデータの他、対象文字の軌跡を描くための画像データ等、ゲーム処理に必要なデータが記憶される。
ゲームプログラム50は、ゲーム装置10に電源が投入された後の適宜のタイミングでメモリカード17のROM17aからその一部または全部が読み込まれてRAM24に記憶される。ゲームプログラム50は、後述するゲーム処理(図11)をCPUコア21が実行するためのプログラムである。
ゲーム処理用データ51には、後述するゲーム処理(図11)を実行する際に用いられる各種のデータが含まれる。具体的には、ゲーム処理用データ51は、対象文字データ52、参照文字データ53、部首項目指定データ57、必須項目指定データ58、評価項目データ59、および、評価データ60を含む。
対象文字データ52は、プレイヤによって入力された文字の形状を示すデータである。図7は、入力位置と文字を構成する軌跡との関係を示す図であり、図8Aおよび図8Bは、対象文字データを模式的に示す図である。なお、図7および図8Aおよび図8Bでは、対象文字が「各」という漢字である場合を例にとって説明する。
対象文字データ52には、入力位置群データ、および、画データが含まれる。図8Aは、入力位置群データの例を示す図である。図8Aに示すように、入力位置群データは、タッチパネル15によって検出された入力位置を示す入力位置データを検出された順に並べたデータが含まれる。また、各入力位置には、それぞれの入力位置を識別するために入力番号が付される。なお、入力位置データは、入力面上に設定されたxy座標系の2次元座標(x,y)によって入力位置を表す。また、図8Bは、画データの例を示す図である。図8Bに示すように、画データは、対象文字を構成する各画を識別するために付される画番号と、当該画を構成する入力位置との対応を示す。具体的には、画データにおいては、画を示す画番号に対して、当該画を構成する軌跡の始点となる入力位置を示す入力番号、および、当該画を構成する軌跡の終点となる入力位置を示す入力番号が対応付けられる。このように、画データは、入力位置群データに含まれる各入力位置データを軌跡毎(画毎)に分けたときの区分を示すデータである。
例えば、図7に示す点70の入力位置の座標が(x1,y1)であり、点71の入力位置の座標が(xi,yi)であり、点72の入力位置の座標が(xj,yj)であるとする。また、点70は「各」という字の1画目の始点であり、点71は「各」という字の1画目の終点であり、点72は「各」という字の2画目の始点である。したがって、このとき、図8Bに示すように、画データにおいては、1画目の画を示す画番号“1”に対して、入力番号“1”である入力位置(点70)が始点であり、入力番号“i”である入力位置(点71)が終点であることを示す情報が対応付けられる。また、2画目の画を示す画番号“1”に対しては、入力番号“j”である入力位置(点70)が始点であることを示す情報が対応付けられる。このように、入力位置群データおよび画データによって、対象文字を画毎に区分して表現することができる。
なお、ゲーム装置10は、タッチパネル15が検出した入力位置を示す(タッチパネル15に対する入力がない場合は、入力がないことを示す)入力位置データを所定時間に1回の割合(例えば1フレームに1回の割合)で取得する。したがって、入力位置が始点となるか否かは、前回に入力位置が検出されず、今回に入力位置が検出された場合には当該入力位置を始点と判断すればよい。また、入力位置が終点となるか否かは、今回に入力位置が検出され、次回に入力位置が検出されなかった場合には当該入力位置を終点と判断すればよい。
なお、対象文字データ72は、対象文字を画毎に区分して表現するものであればどのような形式であってもよい。例えば、他の実施形態においては、入力位置群データに含まれる入力位置データに対して必要に応じて特徴データが付すような形式であってもよい。特徴データは、始点または終点のいずれかを示すデータである。具体的には、1本の軌跡の始点となる入力位置を示す入力位置データには、始点を示す特徴データが付される。例えば、図7に示す点70は始点となるので、点70を示す入力位置(x1,y1)を示す入力位置データには始点を示す特徴データが付される。また、1本の軌跡の終点となる入力位置を示す入力位置データには、終点を示す特徴データが付される。例えば、図7に示す点71は終点となるので、点71を示す入力位置(xi,yi)を示す入力位置データには終点を示す特徴データが付される。また、入力位置(xi,yi)の次に検出される入力位置(xj,yj)を示す入力位置データには、始点を示す特徴データが付される。以上に説明したような特徴データを用いても、対象文字を画毎に区分して表現することができる。なお、始点でも終点でも頂点でもない入力位置を示す入力位置データには、特徴データは付加されない。また、入力位置が頂点となるか否かは、所定回数前(例えば、5回前)に検出された入力位置と今回の入力位置とを結ぶベクトルと、今回の入力位置と所定回数後に検出されたの入力位置とを結ぶベクトルとのなす角度が所定の角度以上である場合、当該今回の入力位置を頂点と判断すればよい。
また、他の実施形態においては、対象文字の画に対して頂点(所定の角度以上で軌跡が折れ曲がっている箇所。例えば図7に示す点73)を示す情報を付すようにしてもよい。これによれば、ゲーム装置10は、画をさらに頂点で区分して管理することができる。具体的には、図8Bに示す画データにおいて、画を示す画番号に対して、当該画を構成する軌跡に含まれる頂点となる入力位置を示す入力番号を対応付けるようにすればよい。また、入力位置データに上記特徴データを付す場合には、頂点の位置を示す入力位置データに対して、頂点を示す特徴データを付すようにすればよい。なお、入力位置が頂点となるか否かは、所定回数前(例えば、5回前)に検出された入力位置と今回の入力位置とを結ぶベクトルと、今回の入力位置と所定回数後に検出されたの入力位置とを結ぶベクトルとのなす角度が所定の角度以上である場合、当該今回の入力位置を頂点と判断すればよい。
以上のように、入力位置データを検出順に並べ、始点および終点を示すデータを入力位置データに付加することによって、対象文字の形状を示す各入力位置データを、画毎に区分することができる。例えば、図7に示す「各」という文字は、6つの画に区分される。
図6の説明に戻り、参照文字データ53は、参照文字に関する各種情報(参照文字の形状、参照文字の部首、および、参照文字に適用する評価項目等)を示すデータである。参照文字データ53は、形状データ54、区分データ55、および、文字項目指定データ56を含む。なお、本実施形態において、参照文字データは、参照文字毎にRAM24に記憶される。つまり、参照文字毎に異なる内容の参照文字データがRAM24に記憶される。
形状データ54は、参照文字の形状を示すデータである。具体的には、形状データ54には、上記対象文字データと同様、上記xy座標系における位置を示す位置データが順番に並べられたデータが含まれる。また、形状データ54においては、始点および終点となる位置を示す位置データを特定するために、終点となる位置を示す位置データと、次の始点となる位置を示す位置データとの間に、位置データの列を区分するためのデータが挿入される。このデータは、例えば、位置データの値としてはあり得ない値を示すデータである。これによって、形状データ54に含まれる位置データ群が、軌跡毎に区分されて表される。なお、他の実施形態においては、形状データ54は、上記対象文字データと同じデータ構造であってもよいし、上記対象データが形状データ54と同じデータ構造であってもよい。
区分データ55は、参照文字を複数の部分(部首)に区分するためのデータである。図9は、区分データを模式的に示す図であり、図10は、図9に示す区分データにしたがって参照文字を複数の部首に区分した図である。なお、図9および図10では、参照文字が「横」という漢字である場合を例にとって説明する。
図9に示すように、区分データ55は、参照文字を構成する各部首について、画番号、部首番号、部首識別情報、および部首種類の対応を示す。画番号は、部首に含まれる画を識別するための番号である。ここでは、画番号は、参照文字の書き順に対応するようにそれぞれの画に付されている。つまり、参照文字のn画目(nは1以上の整数)の画(軌跡)について付される画番号は“n”となる。部首番号は、1つの参照文字に含まれる各部首に付される番号である。ここでは、画番号が小さい部首から順に各部首に番号が付される。部首識別情報は、部首を識別するための情報である。ここでは、部首識別情報は、部首毎に固有の番号が付される。部首識別情報は、参照文字とは無関係に付され、異なる参照文字の両方に共通して含まれる部首がある場合、当該部首には同じ番号が付される。なお、他の実施形態においては、部首識別情報として部首毎に名前(例えば「きへん」等)を付すようにしてもよい。なお、部首識別情報は、部首毎に異なる内容が設定され、同じ部首には同じ値が付されるので、部首の種類を示す情報であると言える。
例えば図9においては、画番号が“1”から“4”である画(1画目から4画目までの画)が1つの部首に区分され、その部首番号は“1”に設定され、その部首識別情報は“10”である。同様に、画番号が“5”から“8”である画は、部首番号が“2”であり部首識別情報が“4”である、1つの部首に区分される。画番号が“9”から“13”である画は、部首番号が“3”であり部首識別情報が“2”である、1つの部首に区分される。画番号が“14”から“15”である画は、部首番号が“4”であり部首識別情報が“30”である、1つの部首に区分される。以上より、図9に示す「横」という漢字は、4つの部首73〜76に区分される。部首番号が“1”である部首73は1画目から4画目までの画で構成され、部首番号が“2”である部首74は5画目から8画目までの画で構成され、部首番号が“3”である部首75は9画目から13画目までの画で構成され、部首番号が“4”である部首76は14画目から15画目までの画で構成される。
また、図9に示す部首種類は、部首の種類を意味する。すなわち、部首は、「へん」や「つくり」、「かんむり」といった種類に分けられる。本実施形態においては、1つの部首について、複数の階層(ここでは、3階層)に分けて少なくとも1つの種類が設定される。図9においては、部首番号が“1”である部首73には、第1階層の部首種類として「へん」という種類が設定され、第2および第3階層には種類が設定されない。また、部首番号が“2”である部首74には、第1階層の部首種類として「その他」という種類が設定され、第2階層の部首種類として「かんむり」という種類が設定され、第3階層には種類が設定されない。部首番号が“3”である部首75には、第1〜第3階層のすべてについて「その他」という種類が設定される。部首番号が“4”である部首76には、第1階層目の部首種類として「その他」という種類が設定され、第2階層の部首種類として「その他」という種類が設定され、第4階層の部首種類として「あし」という種類が設定される。
本実施形態においては、以上のように部首種類を階層化して設定することによって、部首を階層化して設定することができる。例えば、図10に示す部首種類の第1階層に着目すると、部首番号が“1”である部首73の部首種類は「へん」であり、他の部首74〜76の部首種類は「その他」である。これより、第1階層においては、部首73〜76を1つの部首とみなすことができ、参照文字は、部首73と、部首74〜76で構成される部首という2つの部首に区分されている。次に、部首種類の第2階層に着目すると、第2階層に部首が設定されている3つの部首74〜76のうちで、部首74の部首種類は「かんむり」であり、その他の部首75および76の部首種類は「その他」である。これより、第2階層においては、部首74および75を1つの部首とみなすことができ、参照文字は、部首74と、部首75および76で構成される部首という2つの部首に区分されている。なお、第3階層においては、部首75と部首76という2つの部首に区分されている。以上のように、本実施形態においては、階層化された部首種類を各部首に設定することによって、複数の部首を1つの部首として取り扱うことができる(換言すれば、1つの部首をさらに複数の部首に区分して取り扱うことができる)。
図6の説明に戻り、文字項目指定データ56は、参照文字に対して適用すべき評価項目を指定するデータである。なお、本実施形態においては、評価項目は複数用意されており、参照文字毎に設定される項目(文字項目)と、部首の種類毎に設定される項目(部首項目)と、すべての文字に適用される項目(必須項目)という3種類がある。文字項目指定データ56は、上記文字項目を指定するデータである。
具体的には、文字項目指定データ56は、項目番号と指定情報との対応を示している。項目番号は、評価項目を識別するための番号であり、各評価項目に固有の番号が付される。指定情報とは、対応する評価項目を用いて評価を行う対象となる部分(対象部分と呼ぶ)を指定する情報である。具体的には、指定情報は、画番号、部首番号、部首識別情報、部首種類、および、階層情報のいずれかである。すなわち、指定情報が画番号である場合、指定情報は、当該画番号により示される画を指定する。なお、指定情報は、具体的な画番号を指定するものだけでなく、「参照文字のうちで最後の画番号」といった指定方法で画を指定するものであってもよい。また、指定情報が部首番号である場合、指定情報は、当該部首番号により示される部首を指定する。また、指定情報が部首識別情報である場合、指定情報は、当該部首識別情報により示される部首を指定する。また、指定情報が部首種類である場合、指定情報は、当該部首種類により示される種類の部首を指定する。指定情報が部首識別情報または部首種類である場合には、参照文字とは無関係に部首を指定することができる。また、指定情報が階層情報である場合、指定情報は、その階層で区分した各部首を指定する。例えば、図9および図10に示した「横」という文字を例として説明すると、指定情報が「第1階層」を指定する場合、各番号が“1”〜“4”である画で構成される部首と、各番号“5”〜“15”である画で構成される部首とが指定されたこととなる。このように、指定情報が階層情報である場合には、文字のすべての部分が上記対象部分となる。
本実施形態において、対象部分は、対象文字を構成する画または部首である。なお、評価項目の内容によっては複数の対象部分を指定する場合があり、この場合、指定情報は複数の対象部分を示す。さらにこの場合、指定情報は、画番号、部首番号、部首識別情報、および部首種類のうちで異なる2つ以上によって複数の対象部分を指定してもよい。また、評価項目の内容によっては、対象部分を評価項目の内部(評価プログラムの内部)で指定していてもよい。つまり、評価項目内に指定情報が含まれるような形態であってもよい。なお、文字項目指定データは、1つの参照文字について適用すべき文字項目毎に記憶される。
部首項目指定データ57は、上記部首項目、すなわち、部首の種類毎に設定される評価項目を指定するデータである。部首項目指定データ57は、部首と、その部首を含む当該参照文字に対して適用する評価項目との対応を示している。具体的には、部首項目指定データ57は、部首種類または部首識別情報と、項目番号と、指定情報との対応を部首の種類毎に示している。つまり、ある部首種類の部首が参照文字に含まれている場合、部首項目指定データ57において当該部首種類に対応付けられている項目番号の評価項目が評価に用いられる。また、この評価項目を適用する対象部分は、指定情報により指定される。なお、文字項目指定データ56の場合と同様、対象部分が評価項目の内部で指定されている場合には、部首項目指定データ57において指定情報は設定されていなくてもよい。
必須項目指定データ58は、上記必須項目、すなわち、すべての文字に適用される評価項目を指定するデータである。必須項目指定データ58は、必須項目となる評価項目の項目番号と、当該評価項目の対象部分を指定する指定情報との対応を必須項目毎に示している。なお、文字項目指定データ56の場合と同様、対象部分が評価項目の内部で指定されている場合には、必須項目指定データ58において指定情報は設定されていなくてもよい。
評価項目データ59は、ゲームプログラムにおいて予め用意された複数の評価項目を示すデータである。具体的には、評価項目データ59は、項目番号と、評価方法を示す情報(例えば、評価処理を実行するための評価プログラム)とを評価項目毎に対応付けて格納している。つまり、ある評価項目に従って評価処理を実行する場合、ゲーム装置10は、当該評価項目の項目番号を用いて評価項目データ59内から評価プログラムを選出し、選出した評価プログラムを実行する。また、評価項目データ59には、添削を行う際のコメント(図5参照)のデータや、添削の際に表示する画像(図5に示す図形48)のデータが含まれていてもよい。
評価データ60は、評価処理において用いられるデータであり、評価値データ61、基準値データ62、および評価結果データ63を含む。評価値データ61は、評価の指標となる量であって、対象文字から算出される量(評価値)を示す。例えば、図4に示す対象文字の場合、評価値は距離aおよびbである。また、基準値データ62は、評価値と比較する基準値を示す。基準値は、予め定められていてもよいし、図4の説明で述べたように参照文字から算出されてもよい。また、評価結果データ63は、評価値と基準値とを比較した結果を示す。評価結果データ63は、評価値および基準値から算出される数値(例えば評価値と基準値との差分値)を示す情報であってもよいし、「良い」または「悪い」といった評価のレベルを示す情報であってもよい。なお、評価データ60は、1つの対象文字について適用される評価項目の数だけ記憶される。つまり、ある対象文字について適用される評価項目が7つであった場合、各評価項目に対応する7種類の評価データ60が記憶される。
次に、ゲーム装置10において行われるゲーム処理の詳細を、図11〜図24を用いて説明する。図11は、ゲーム装置10において実行されるゲーム処理の流れを示すフローチャートである。ゲーム装置10の電源が投入されると、ゲーム装置10のCPUコア21は、図示しないブートROMに記憶されている起動プログラムを実行し、RAM24等の各ユニットが初期化される。そして、メモリカード17に格納されたゲームプログラムがRAM24に読み込まれ、CPUコア21によって当該ゲームプログラムの実行が開始される。図11に示すフローチャートは、以上の処理が完了した後に実行されるゲーム処理を示すフローチャートである。
図11に示すステップS1において、CPUコア21は、評価を行うべき文字(換言すればプレイヤに入力を行わせる文字)を特定する。具体的には、予め用意されている複数の参照文字のうちから1つの参照文字が特定される。なお、CPUコア21は、評価を行うべき文字を、複数の参照文字からランダムに特定してもよいし、予め定められた順番に従って特定してもよい。また、参照文字に予め難易度(文字を書く難しさの度合い)が設定されている場合には、過去の評価結果やプレイ時間等に基づいてプレイヤの習熟度を推測し、プレイヤの習熟度に応じた難易度の参照文字から1つの文字を特定するようにしてもよい。以下、ステップS2〜S10において、特に説明がない場合、「参照文字」とはステップS1で特定された参照文字を指す。
続くステップS2において、CPUコア21は、手本となる参照文字の画像(参照文字画像)を第1LCD11に表示させる。参照文字画像のデータは、ゲームプログラム50に含まれており、予めRAM24に記憶されていてもよいし、上述した形状データ54を用いて生成されてもよい。
続くステップS3において、CPUコア21は、プレイヤから対象文字の入力を受け付ける。すなわち、入力面にスティック16等が接触した位置がタッチパネル15によって検出され、検出された入力位置を示す入力位置データが所定時間間隔に1回の割合でCPUコア21に取得される。このとき、入力位置データには、取得された順に(つまり、検出順に)入力番号が付される。これによって、上記入力位置群データが生成される。なお、CPUコア21は、入力が開始されてから所定時間が経過した場合、または、プレイヤによって入力が終了したことを示す入力があった場合等に、タッチパネル15に対する入力の受付を終了する。ステップS3で取得されたデータは、対象文字データ52の入力位置群データとしてRAM24に記憶される。以上のステップS3によって、対象文字の形状を示す対象文字データ52が取得されたこととなる。なお、ステップS3においてタッチパネル15の入力面上に描かれた軌跡は、第2LCD12に表示される(図3参照)。
続くステップS4において、CPUコア21は、基礎判定処理を実行する。基礎判定処理は、評価処理を行うことが可能な文字が入力されたか否かを判定するための処理である。以下、図12を参照して、基礎判定処理の詳細を説明する。
図12は、図11に示す基礎判定処理(ステップS4)の詳細を示すフローチャートである。基礎判定処理においては、まずステップS11において、CPUコア21は、対象文字に対して文字認識を行う。ステップS11で行われる文字認識の方法は、公知の文字認識処理を用いた方法でよい。本実施形態では、文字認識の結果として、複数種類(例えば10種類)の候補文字が出力される。つまり、参照文字のうちから、対象文字に類似する度合いが高い上位10個の参照文字が候補文字として選出される。
続くステップS12において、CPUコア21は、対象文字が正しい文字であるか否か(ステップS1で特定された参照文字と同じ字であるか否か)を判定する。具体的には、CPUコア21は、ステップS11で選出された候補文字のうちに、ステップS1で特定された参照文字と同じ文字が存在するか否かを判定する。候補文字のうちに参照文字と同じ文字が存在する場合、対象文字は正しい文字であると判断され、候補文字のうちに参照文字と同じ文字が存在しない場合、対象文字は正しい文字ではないと判断される。ステップS12の判定結果が肯定である場合、ステップS13の処理が実行される。一方、ステップS12の判定結果が否定である場合、後述するステップS15の処理が実行される。
なお、本実施形態では、文字認識の結果として複数種類の候補文字を出力する処理を例として説明したが、文字認識の結果として1種類の文字を出力する処理を用いてもよい。このとき、出力される文字と参照文字とが同じ文字であるか否かによって、対象文字が正しい文字であるか否かを判定すればよい。また、他の実施形態においては、ステップS12の文字認識処理によって評価を行うべき文字を特定するようにしてもよい。すなわち、CPUコア21は、ステップS1の処理を実行せずに、ステップS12の文字認識処理によって複数の参照文字から1つの参照文字を特定するようにしてもよい。
ステップS13において、CPUコア21は、対象文字の大きさが適切であるか否かを判定する。ステップS13の判定処理では、具体的には、対象文字の大きさが所定の基準よりも大きすぎないか、または、小さすぎないかが判定され、対象文字が大きすぎたり小さすぎたりする場合には、対象文字の大きさが適切でないと判断される。なお、対象文字の大きさは、対象文字の高さまたは幅として算出してもよいし、対象文字を上下端および左右端を通る矩形の面積として算出してもよい。ステップS13の判定結果が肯定である場合、ステップS14の処理が実行される。一方、ステップS13の判定結果が否定である場合、後述するステップS15の処理が実行される。
ステップS14において、CPUコア21は、対象文字の位置が適切であるか否かを判定する。ステップS14の判定処理では、具体的には、タッチパネル15の入力面内に対象文字が描かれているかが判定される。例えば、入力面の周付近に偏って文字が入力された場合等には、対象文字の位置が適切でないと判断される。ステップS14の判定結果が肯定である場合、CPUコア21は、基礎判定処理を終了する。一方、ステップS14の判定結果が否定である場合、ステップS15の処理が実行される。
ステップS15において、CPUコア21は、対象文字が不適正であることをRAM24に記憶する。例えば、対象文字が不適正であることを示すフラグをRAM24に記憶しておき、当該フラグの内容をオンに設定する。本実施形態においては、プレイヤによって入力された対象文字が、誤った字である場合(ステップS12でNo)、大きすぎたり小さすぎたりする場合(ステップS13でNo)、または、適切な位置に描かれていない場合(ステップS14でNo)、上記フラグがオンに設定される。ステップS15の後、CPUコア21は、基礎判定処理を終了する。
図11の説明に戻り、ステップS5において、CPUコア21は、ステップS3で入力された対象文字について評価を行うことが可能であるか否かを判定する。この判定は、上記フラグがオンに設定されているか否かによって行うことができる。ステップS5の判定結果が肯定である場合、ステップS6〜S9において対象文字についての評価処理が実行される。一方、ステップS5の判定結果が否定である場合、ステップS6〜S9の処理がスキップされて、後述するステップS10の処理が実行される。
以上のように、本実施形態においては、プレイヤによって入力された対象文字が適切でない場合(上記ステップS12〜S14でNo)、当該対象文字について評価が行われない。対象文字が、誤った字である場合や、大きすぎたり小さすぎたりする場合や、適切な位置に描かれていない場合には、正しい評価を行うことができない可能性があるからである。本実施形態によれば、対象文字が適切でない場合には評価処理を行わないことによって、誤った評価が行われ、誤った評価がプレイヤに提示されることを防止することができる。
ステップS6において、CPUコア21は、対象文字の大きさを正規化する。すなわち、対象文字の大きさが参照文字と同じ大きさとなるように対象文字を拡大または縮小する。具体的には、CPUコア21は、まず、高さおよび幅のいずれか一方(ここでは、参照文字の高さおよび幅のうちの大きい方とする)に関して参照文字と対象文字との比率を算出する。次に、算出された比率に基づいて、参照文字と対象文字とが同じ大きさとなるように対象文字の大きさを調整する。具体的には、RAM24に記憶されている対象文字データ52に含まれる各入力位置データにより示される入力位置の座標を変換し、変換後の座標値を示す入力位置データを新たな対象文字データ52としてRAM24に記憶する。以上のステップS4によって、対象文字と参照文字の大きさを同じにすることができるので、対象文字と参照文字の比較が容易になる。なお、ステップS6においては、対象文字データ52の内容が変更されることになるが、ステップS3で表示された、対象文字を示す画像が変更されるわけではない。
続くステップS7において、CPUコア21は、対象文字を画毎に区分する。具体的には、RAM24に記憶されている対象文字データ52に含まれる入力位置群データを用いて、画データを生成する。すなわち、CPUコア21は、入力位置群データに含まれる各入力位置データから、始点および終点を示す位置入力データを特定する。そして、始点を示す入力位置データの入力番号と、次の終点を示す位置入力データの入力番号との組を特定し、特待した組に画番号を順に対応付ける処理を行う。CPUコア21は、当該処理を、検出順に並べられている入力位置データの最初から最後まで行う。これによって、画データ(図8B参照)が生成され、対象文字データ52により示される対象文字が1本の軌跡(画)毎に区分されたこととなる。以上のように生成された画データは、ステップS3でRAM24に記憶された入力位置群データに加えて、対象文字データ52としてRAM24に記憶される。なお、ステップS7の処理は、ステップS3において各入力位置データが取得される際に同時に行われてもよい。
続くステップS8において、CPUコア21は、対象文字の評価処理を実行する。この評価処理は、対象文字の部分(部首)を対象として評価を行うものである。以下、図13を参照して、評価処理の詳細を説明する。
図13は、図11に示す評価処理(ステップS8)の詳細を示すフローチャートである。評価処理においては、まずステップS21において、CPUコア21は、文字項目に関する評価処理を実行する。続くステップS22において、CPUコア21は、部首項目に関する評価処理を実行する。続くステップS23において、CPUコア21は、必須項目に関する評価処理を実行する。以下、ステップS21〜S23における各評価処理について図14〜図16を参照して説明する。
まず、図14を参照して、文字項目に関する評価処理について説明する。図14は、図13に示す文字項目に関する評価処理(ステップS21)の詳細を示すフローチャートである。文字項目に関する評価処理においては、まずステップS31において、CPUコア21は、参照文字に対応する文字評価項目を1つ選択する。すなわち、ステップS1で特定された参照文字に関する参照文字データ53に含まれている文字項目指定データ56のうちから1つを選択する。
続くステップS32において、CPUコア21は、ステップS31で選択された文字項目の評価対象となる部分(対象部分)を特定する。具体的には、CPUコア21は、ステップS31で選択された文字項目指定データ56により示される指定情報を抽出する。詳細は後述するが、抽出された指定情報により指定される対象部分が、文字項目の評価対象となる。
続くステップS33において、CPUコア21は、対象部分の評価処理を実行する。すなわち、ステップS32で特定された対象部分に対して、ステップS31で選択した文字項目に従った評価を行う。評価項目に従った評価処理の詳細については後述するが、ステップS33の処理によって、評価データ60がRAM24に新たに記憶される。
ステップS34において、CPUコア21は、参照文字に対応付けられている全ての文字項目を選択したか否かを判定する。ステップS34の判定結果が肯定である場合、CPUコア21は、文字項目に関する評価処理を終了する。一方、ステップS34の判定結果が否定である場合、ステップS31の処理が再度実行される。なお、2回目以降に実行されるステップS31においては、ステップS33ですでに評価が行われた文字項目に関する文字項目指定データ56を選択しないようにする。以上で、文字項目に関する評価処理の説明を終了する。
次に、図15を参照して、部首項目に関する評価処理について説明する。図15は、図13に示す部首項目に関する評価処理(ステップS22)の詳細を示すフローチャートである。部首項目に関する評価処理においては、まずステップS41において、CPUコア21は、参照文字に含まれる部首の1つを選択する。すなわち、ステップS1で特定された参照文字に関する区分データ55を参照して、部首の1つを選択する。なお、ステップS41で選択される部首は、どの階層で区分される部首であってもよく、複数の部首で構成される部首であってもよい。
続くステップS42において、CPUコア21は、ステップS41で選択した部首に関して部首項目が設定されているか否かを判定する。すなわち、部首項目指定データ57を参照して、ステップS41で選択した部首の部首識別番号または部首種類に対応付けられている部首項目があるか否かを判定する。ステップS42の判定結果が肯定である場合、ステップS43の処理が実行される。一方、ステップS42の判定結果が否定である場合、後述するステップS48の処理が再度実行される。
ステップS43において、CPUコア21は、ステップS41で選択した部首に関して部首項目の1つを選択する。すなわち、部首項目指定データ57を参照して、ステップS41で選択した部首の部首識別番号または部首種類に対応付けられている部首項目の1つを選択する。
続くステップS44において、CPUコア21は、ステップS43で選択した部首項目における対象部分が参照文字内に含まれるか否かを判定する。具体的には、部首項目指定データ57において、ステップS43で選択した部首項目に対応付けられている指定情報を参照する。さらに、参照文字内に含まれる部首のうちに、指定情報により指定される画または部首が存在するか否かを判定する。判定の結果、参照文字内に含まれる部首のうちに、指定情報により指定される画または部首が存在する場合、ステップS44の判定結果は肯定となり、参照文字内に含まれる部首のうちに、指定情報により指定される画または部首が存在しない場合、ステップS44の判定結果は否定となる。なお、指定情報が画番号、部首番号、または階層情報である場合には、参照文字内に含まれる部首のうちに、指定情報により指定される画または部首は必ず存在するので、ステップS44の判定結果は肯定となる。一方、指定情報が部首識別情報、または部首種類である場合には、参照文字内に含まれる部首のうちに、指定情報により指定される部首が存在しない可能性があるので、ステップS44の判定結果は肯定となることもあるし、否定となることもある。ステップS44の判定結果が肯定である場合、ステップS45の処理が実行される。一方、ステップS44の判定結果が否定である場合、後述するステップS47の処理が実行される。
例えば、参照文字が図10に示した「横」という字であり、部首項目指定データが「部首種類:へん、項目番号:3、指定情報:部首識別番号“5”(ごんべんを表すとする)」という内容である場合を考える。この場合、部首番号が“1”である部首の部首種類は「へん」であり(図9参照)、上記部首項目指定データには「部首種類:へん」と示されている。したがって、上記ステップS41において、部首番号が“1”である部首が選択されると、続くステップS42の判定結果は肯定となり、ステップS43において、当該部首項目指定データにより指定される部首項目(項目番号が“3”の評価項目)が選択される。ここで、選択された部首項目に対応付けられている指定情報は、部首識別番号“5”の部首を指定しているのに対して、「横」という参照文字には、部首識別番号が“5”である部首は存在しない。そのため、この場合、ステップS44の判定結果は否定となる。一方、部首種類が「へん」であり、かつ、部首識別番号が“5”である部首が参照文字に含まれる場合、ステップS44の判定結果は肯定となる。
ステップS45において、CPUコア21は、ステップS43で選択された部分項目の評価対象となる部分(対象部分)を特定する。具体的には、CPUコア21は、部首項目指定データ57において、ステップS43で選択された部首項目に対応付けられている指定情報を抽出する。詳細は後述するが、抽出された指定情報により指定される対象部分が、文字項目の評価対象となる。
続くステップS46において、CPUコア21は、対象部分の評価処理を実行する。すなわち、ステップS45で特定された対象部分に対して、ステップS43で選択した部首項目に従った評価を行う。評価項目に従った評価処理の詳細については後述するが、ステップS46の処理によって、評価データ60がRAM24に新たに記憶される。
ステップS47において、CPUコア21は、ステップS41で選択した部首に対応付けられている部首項目を、ステップS43で全て選択したか否かを判定する。ステップS47の判定結果が肯定である場合、ステップS48の処理が実行される。一方、ステップS47の判定結果が否定である場合、ステップS43の処理が再度実行される。なお、2回目以降に実行されるステップS43においては、すでに選択された部首項目を選択しないようにする。
ステップS48において、CPUコア21は、参照文字に含まれる部首を、ステップS41で全て選択したか否かを判定する。ステップS48の判定結果が肯定である場合、CPUコア21は、部首項目に関する評価処理を終了する。一方、ステップS48の判定結果が否定である場合、ステップS41の処理が再度実行される。なお、2回目以降に実行されるステップS41においては、すでに選択された部首を選択しないようにする。以上で、部首項目に関する評価処理の説明を終了する。
次に、図16を参照して、必須項目に関する評価処理について説明する。図16は、図13に示す必須項目に関する評価処理(ステップS23)の詳細を示すフローチャートである。必須項目に関する評価処理においては、まずステップS51において、CPUコア21は、必須項目のうちの1つを選択する。すなわち、RAM24に記憶されている必須項目指定データ58により指定されている必須項目のうちから1つを選択する。
続くステップS52において、CPUコア21は、ステップS51で選択された必須項目における対象部分が、ステップS1で特定された参照文字内に含まれるか否かを判定する。具体的には、必須項目指定データ58において、ステップS51で選択された必須項目に対応付けられている指定情報を参照する。さらに、参照文字内に含まれる部首のうちに、指定情報により指定される画または部首が存在するか否かを判定する。判定の結果、参照文字内に含まれる部首のうちに、指定情報により指定される画または部首が存在する場合、ステップS52の判定結果は肯定となり、参照文字内に含まれる部首のうちに、指定情報により指定される画または部首が存在しない場合、ステップS52の判定結果は否定となる。なお、上記ステップS44の場合と同様、指定情報が画番号、部首番号、ステップS44の判定結果は肯定となる。一方、指定情報が部首識別情報、または部首種類である場合には、ステップS44の判定結果は肯定となることもあるし、否定となることもある。ステップS52の判定結果が肯定である場合、ステップS53の処理が実行される。一方、ステップS52の判定結果が否定である場合、後述するステップS56の処理が実行される。
ステップS53において、CPUコア21は、ステップS51で選択された必須項目の評価対象となる部分(対象部分)を特定する。具体的には、CPUコア21は、必須項目指定データ58において、ステップS51で選択された必須項目に対応付けられている指定情報を抽出する。詳細は後述するが、抽出された指定情報により指定される対象部分が、必須項目の評価対象となる。
続くステップS54において、CPUコア21は、対象部分の評価処理を実行する。すなわち、ステップS53で選出された対象部分に対して、ステップS51で選択した必須項目に従った評価を行う。評価項目に従った評価処理の詳細については後述するが、ステップS54の処理によって、評価データ60がRAM24に新たに記憶される。
ステップS55において、CPUコア21は、全ての必須項目をステップS51で選択したか否かを判定する。ステップS55の判定結果が肯定である場合、CPUコア21は、必須項目に関する評価処理を終了する。一方、ステップS55の判定結果が否定である場合、ステップS51の処理が再度実行される。なお、2回目以降に実行されるステップS51においては、すでに選択された必須項目を選択しないようにする。以上で、必須項目に関する評価処理の説明を終了する。
ここで、本実施形態では、複数の参照文字と、参照文字を構成する各部分のうちで評価対象となる部分(対象部分)との対応を示す対応データを用意しておくことによって、参照文字について、どの部分を評価対象とすればよいかを容易に特定することができるようにしている。具体的には、対応データとして、参照文字毎に文字項目指定データ56を記憶しておく。この文字項目指定データ56によって、参照文字に対して指定情報を設定することができる。そのため、参照文字毎に、評価の対象となる対象部分を指定することができるので、参照文字と対象部分とを対応付けることができる。したがって、参照文字が特定されると、参照文字に対応付けられた対象部分を選出することによって、評価の対象となる部分を容易に選出することができる。
また、本実施形態では、上記対応データとして、区分データ55と、部首項目指定データ57または必須項目指定データ58とを記憶しておく。すなわち、部首項目指定データ57または必須項目指定データ58によって、評価の対象となる対象部分を、部首の種類によって指定することができる。さらに、参照文字毎に記憶された区分データ55によって、参照文字を部首に区分し、各部首に種類を設定することができる。したがって、参照文字が特定されると、区分データ55を参照することによって、参照文字に含まれる部首およびその種類を特定することができる。さらに、部首項目指定データ57または必須項目指定データ58を参照することによって、参照文字に含まれる部首のうちで、評価を行うべき部首を選出することができる。したがって、評価の対象となる部分を容易に選出することができる。
次に、図17を参照してステップS33,S46,およびS54における対象部分の評価処理の詳細について説明する。図17は、図14に示す対象部分の評価処理(ステップS33)の詳細を示すフローチャートである。なお、ここでは、ステップS33の処理の詳細を説明するが、ステップS46およびS54における処理もステップS3と同様である。
対象部分の評価処理においては、まずステップS61において、CPUコア21は、対象文字データ52のうちで、評価対象となる部分(対象部分)を示すデータ(対象部分データと呼ぶ)を選出する。この選出には、RAM24に記憶されている対象文字データが用いられる。すなわち、上記ステップS32で抽出された指定情報が画番号を示す場合、CPUコア21は、上記画データを参照し、当該画データにおいて当該画番号に対応する入力位置データを選出する。また、当該指定情報が部首番号、部首識別情報、または部首種類の情報を示す場合、CPUコア21は、区分データ55においてこれらの情報に対応する画番号を特定し、特定した画番号に対応する入力位置データを上記画データを参照することによって選出する。また、当該指定情報が階層情報を示す場合、CPUコア21は、区分データ55において当該階層情報により示される階層で参照文字を区分したときの各部首に対応する画番号を特定し、特定した画番号に対応する入力位置データを上記画データを参照することによって選出する。なお、画番号は、文字の書き順(画が入力されるべき順)に従って番号付けされており、対象文字データ52においては、入力位置データが入力順に並べられた入力座標群データとともに、入力位置を画毎に区分した画データが含まれている。したがって、画番号を特定することによって、対象文字データ52に含まれる入力位置データを特定することができる。なお、指定情報が複数である場合、CPUコア21は、それぞれのして情報により指定される対象部分を示す対象部分データをそれぞれ選出する。
ステップS62において、CPUコア21は、ステップS61で選出した対象部分データを用いて評価値を算出する。ステップS62で算出された評価値を示すデータは、評価値データ61としてRAM24に新たに記憶される。続くステップS63において、CPUコア21は基準値を算出する。ステップS63で算出された基準値を示すデータは、基準値データ62としてRAM24に新たに記憶される。さらに、続くステップS64において、CPUコア21は、上記評価値および基準値を用いて評価結果を算出する。ステップS64で算出された評価結果を示すデータは、評価結果データ63としてRAM24に新たに記憶される。
なお、評価値および基準値の算出方法は、評価項目によって異なり、また、評価結果の算出方法も評価項目によって異なる。以下、評価値、基準値および評価結果の算出方法の例について説明する。
(評価方法の例1)
図18は、評価方法の第1例を説明するための図である。図18においては、「維」という文字を例として説明する。この例では、対象部分となるのは複数の画であり、ゲーム装置10は、当該複数の画の位置関係を評価する。具体的には、複数の画が平行かどうかを評価する。なお、本例における評価項目は、「維」の参照文字に対応付けられた文字項目であり、文字項目に対応付けられる指定情報は、“10”、“12”、“13”、および“14”の画番号を示すものとする。このような指定情報によって、図18に示す4つの画81〜84が対象部分として選出される。
本例において、評価値は、上記4つの画81〜84が平行である度合いを表す値である。例えば、評価値は次のようにして算出される。すなわち、ステップS62において、CPUコア21は、まず、対象部分データを用いて、それぞれの画81〜84について所定方向を基準(0°)とした角度をそれぞれ算出する。次に、算出されたそれぞれの角度の平均値を算出し、それぞれの角度と平均値との差分をそれぞれ算出する。さらに、それぞれの差分の総和を評価値とする。このような評価値によって、4つの画81〜84が平行である度合いを知ることができる。すなわち、4つの画81〜84が全て平行であれば評価値は“0”になり、4つの画81〜84の角度差が大きくなるほど評価値は大きくなる。なお、ステップS62において算出された評価値を示すデータは評価値データ61としてRAM24に記憶される。
また、本例においては、基準値は予め定められており、基準値データ62はRAM24に記憶されているものとする。すなわち、本例においてはステップS63において、基準値を算出する必要はない。また、本例において、評価結果は、評価結果が良い順に、「素晴らしい」、「良い」、「普通」、「悪い」という4段階で表されるものとする。評価結果は、評価値と基準値とを比較することによって行われる。すなわち、ステップS64において、評価値データ61および基準値データ62を参照して、CPUコア21は評価値と基準値との大小を比較する。そして、評価値と基準値との差分の大きさに応じて評価結果を決定する。具体的には、当該差分が小さいほど良い評価結果となるように評価結果を決定する。このようにして算出された評価結果を示すデータは、評価結果データ63としてRAM24に記憶される。
また、評価方法の第1例の他、複数の画の位置関係を評価する他の例として、2つの画が対称になっているかを評価することが考えられる。図19は、評価方法の他の例を説明するための図である。図19においては、「各」という文字を例として説明する。この例では、ゲーム装置10は、2つの画が対称になっているかを評価する。なお、本例における評価項目は、「各」の参照文字に対応付けられた文字項目であり、文字項目に対応付けられる指定情報は、“2”および“3”の画番号を示すものとする。このような指定情報によって、図19に示す2つの画85および86が対象部分として選出される。
図19の例においては、2つの画85および86が交わる位置を通る中心線Lを設定し、中心線Lから画85の左端までの距離dと、中心線Lから画86の右端までの距離eとの比率を評価値とする。そして、基準値を“1”とすることによって、距離dと距離eとの差が小さいほど良い評価結果となるように評価結果を算出する。なお、図19の例においては、画85の頂点から後に入力された部分の角度と、画86の角度との比率を評価値として用いてもよい。なお、対象文字データ52に含まれる画データに、「頂点」を示す情報を付加しておくことにより、画85の頂点から後に入力された部分を容易に抽出することができる。
(評価方法の例2)
図20は、評価方法の第2例を説明するための図である。図20においては、「拝」という文字を例として説明する。この例では、対象部分となるのは画と部首であり、ゲーム装置10は、当該画と部首との位置関係を評価する。具体的には、画の下端が部首の下端より下に出ているかどうかを評価する。なお、本例における評価項目は、「拝」のつくりの部首を示す部首種類に対応付けられる部首項目であるとし、当該部首項目に対応付けられる指定情報は、「つくりの最後の画」を示す画番号と、「へん」を示す部首種類であるとする。このような指定情報によって、図19に示す画87および部首88が対象部分として選出される。
本例において、評価値は、画87の下端と部首88の下端との(上下方向の)長さfである。すなわち、ステップS62において、ステップS61で選出された対象部分データを用いて、CPUコア21は、画87および部首88の下端の(上下方向に関する)位置をそれぞれ算出する。さらに、算出された2つの位置の差を算出し、評価値とする。ステップS62において算出された評価値を示すデータは評価値データ61としてRAM24に記憶される。
また、本例において、基準値は、参照文字における上記長さfである。すなわち、ステップS63において、CPUコア21は、参照文字データ53に含まれる形状データ54を用いて、上記ステップS62と同様の計算を行うことによって基準値を算出する。ステップS63において算出された基準値を示すデータは基準値データ62としてRAM24に記憶される。
また、本例において、評価結果は、「素晴らしい」、「良い」、「普通」、「悪い」という4段階で表される。具体的には、ステップS64において、CPUコア21は、評価値データ61および基準値データ62を参照して、評価値と基準値との差分を算出する。そして、算出された差分が小さいほど良い評価結果となるように評価結果を決定する。このようにして算出された評価結果を示すデータは、評価結果データ63としてRAM24に記憶される。
(評価方法の例3)
図21は、評価方法の第3例を説明するための図である。図21においては、「誠」という文字を例として説明する。この例では、対象部分となるのは複数の部首であり、ゲーム装置10は、部首同士の位置関係を評価する。具体的には、部首同士の重なり度合いが手本(参照図形)通りかを評価する。なお、本例における評価項目は必須項目であるとし、当該必須項目に対応付けられる指定情報は、「第1階層」を示すものとする。ここで、「誠」という文字に設定される区分データにおいては、第1階層において、画番号が“1”〜“7”の画で構成される部首と、画番号が“8”〜“13”の画で構成される部首とに区分されているものとする。したがって、上記のような指定情報によって、「へん(ごんべん)」に相当する部首と、「つくり」に相当する部首とが対象部分として選出される。
本例において、評価値は、2つの部首が左右方向に関して重複する度合いを示す数値である。具体的には、ステップS62において、CPUコア21は、対象文字(図4では「誠」)のうちの「へん」の部分を囲む矩形91と、「つくり」の部分を囲む矩形92とが左右方向に関して重複する度合いを算出する。この度合いは、例えば、矩形91の左右の長さgに対する、2つの矩形91および92が重複する長さhの割合として算出することができる。ステップS62において算出された評価値を示すデータは評価値データ61としてRAM24に記憶される。
また、本例において、基準値は、参照文字における上記割合である。すなわち、ステップS63において、CPUコア21は、参照文字データ53に含まれる形状データ54を用いて、上記ステップS62と同様の計算を行うことによって基準値を算出する。ステップS63において算出された基準値を示すデータは基準値データ62としてRAM24に記憶される。
また、本例において、評価結果は、「素晴らしい」、「良い」、「普通」、「悪い」という4段階で表される。具体的には、ステップS64において、CPUコア21は、評価値データ61および基準値データ62を参照して、評価値と基準値との差分を算出する。そして、算出された差分が小さいほど良い評価結果となるように評価結果を決定する。このようにして算出された評価結果を示すデータは、評価結果データ63としてRAM24に記憶される。
また、評価方法の第3例の他、複数の部首の位置関係を評価する他の例として、図22および23に示す例が考えられる。図22および図23は、評価方法の他の例を説明するための図である。
図22においては、「寅」という文字を例として説明する。この例では、対象部分となるのは2つの部首であり、ゲーム装置10は、部首同士の大小関係を評価する。具体的には、「かんむり」の部首の幅がその他の部首の幅より大きくなっているかどうかを評価する。なお、本例における評価項目は、「寅」の文字に対応付けられる文字項目であるとし、当該文字項目において、指定情報は、「かんむり」を示す部首種類と、その他の部首を示す部首種類とする。このような指定情報によって、図22に示す部首93および94が対象部分として選出される。
図22の例においては、部首93の幅jと部首94の幅iとの比率を評価値として用いる。また、基準値は、参照文字における当該比率の値とする。評価結果は、評価値と基準値との差分が小さいほど良い結果となるように算出される。これによって、かんむりの部首が他の部首よりも大きく(手本通りに)書かれているかを評価することができる。
図23においては、「炎」という文字を例として説明する。この例では、対象部分となるのは2つの部首であり、ゲーム装置10は、部首同士の大小関係を評価する。具体的には、同じ形の部首が複数ある場合において、書き順が後である部首が、書き順が先である部首よりも大きいかを評価する。なお、本例における評価項目は、「炎」の文字に対応付けられる文字項目であるとし、当該文字項目において、指定情報は、“1”〜“4”の画番号、および“5”〜“8”の画番号とする。このような指定情報によって、「炎」の文字の上側の「火」の部首と、下側の「火」の部首が対象部分として選出される。
図22の例においては、2つの部首をそれぞれ囲む矩形95および96が設定され、2つの矩形95および96の大きさ(縦幅および横幅)の比率を評価値として用いる。また、基準値は、参照文字における当該比率の値とする。評価結果は、評価値と基準値との差分が小さいほど良い結果となるように算出される。これによって、書き順が後である部首が、書き順が先である部首よりも大きいかを評価することができる。
以上のように、評価項目における評価方法は種々考えられる。上記においては、2つの部分の位置関係または大小関係を評価する場合を例として説明したが、評価項目は、1つの画または部首の形状を評価するものであっても構わない。例えば、指定された画が所定の角度で書かれているかを評価する評価項目を用いてもよい。また、例えば、指定された部首が手本通りに(参照文字と同じ形に)書かれているかを評価する評価項目を用いてもよい。
図11の説明に戻り、ステップS8の次のステップS9において、CPUコア21は、添削処理を実行する。添削処理は、ステップS8の評価処理において評価が行われた対象部分について、評価結果に応じて対象文字に対する添削を行うための処理である。以下、図24を参照して、添削処理の詳細を説明する。
図24は、図11に示す添削処理(ステップS9)の詳細を示すフローチャートである。添削処理においては、まずステップS71において、CPUコア21は、添削を行う部分を決定する。本実施形態では、ステップS8の評価処理において評価の対象となった対象部分のうちで添削を行う対象部分を、当該対象部分に関する評価結果に応じて決定する。具体的には、CPUコア21は、RAM24に記憶されている評価結果データ63を参照して、評価結果がある基準よりも悪いことを示す評価項目を特定する。そして、特定された評価項目における対象部分を、添削を行う部分に決定する。例えば、評価結果が「素晴らしい」、「良い」、「普通」、「悪い」という4段階で表され、上記ある基準を「普通」とした場合、評価結果が「悪い」であった評価項目を特定し、当該評価項目における対象部分が、添削を行う部分となる。添削を行う部分に決定された対象部分を示すデータは、添削対象データとしてRAM24に記憶される。添削対象データは、対象部分を示すものであればどのようなものであってもよく、上記指定情報と同じ形式であってもよいし、入力データの集合であってもよい。
ステップS72において、CPUコア21は、参照文字から、ステップS71で決定した対象部分に対応する部分を選出する。具体的には、参照文字データ53に含まれる形状データ54に含まれる位置データのうちで、上記対象部分に対応する位置データを選出する。形状データ54は対象文字データ52と同様の形式であるので、対象部分に対応する位置データの選出は、上記ステップS61における対象部分データの選出と同様の方法で行うことができる。なお、ステップS61では指定情報が参照されたのに対して、ステップS72においては、RAM24に記憶されている添削対象データが参照される。以下では、ステップS72で選出される位置データを、参照部分データと呼ぶ。
ステップS73において、CPUコア21は、第2LCD12に表示されている対象文字画像に重ねて参照部分画像を表示する。参照部分画像とは、参照文字のうちで、添削を行う対象となる部分の画像である。CPUコア21は、ステップS72で選出された参照部分データを用いて参照部分画像を生成し、生成された参照部分画像を対象文字画像に重ねて第2LCD12に表示させる。
なお、参照部分画像を表示する位置は、次のようにして決めることができる。例えば、参照文字の中心位置と対象文字の中心位置とが一致する位置に参照部分画像を表示させてもよい。また、添削が行われる評価項目が部分と部分の位置関係に関するものである場合、一方の部分を基準とし、基準となる部分の参照部分画像が、それに対応する対象文字画像の部分の位置に一致するように参照部分画像を表示する。このとき、基準となる部分は、予め決められた一方の部分としてもよいし、参照文字の中心位置と対象文字の中心位置とが一致するように参照文字および対象文字を配置した場合にずれが小さい方の部分としてもよい。さらに、添削が行われる評価項目が部分と部分の位置関係に関するものである場合には、対象文字画像と位置が一致する方の部分については参照部分画像を表示せず、対象文字画像と位置が一致しない方の部分について参照部分画像を表示するようにしてもよい。例えば、「へん」と「つくり」との位置関係を評価する場合において、「つくり」の部首を上記基準とする場合には、「へん」の部首を表す参照部分画像のみを表示するようにしてもよい(図5参照)。これにより、参照文字(手本)と対象文字との部首の位置関係のずれをよりわかりやすくプレイヤに提示することができる。
また、ステップS73においては、表示された対象文字画像と参照部分画像とを見分けやすいように、対象文字画像の色と参照部分画像の色を異なる色で表示するようにすることが好ましい。また、添削表示である参照部分画像を対象文字画像の上に表示することが好ましい。
ステップS74において、CPUコア21は、第1LCD11に添削に関するコメントを表示させる。なお、RAM24に記憶されている評価項目データ59(または、評価項目データ59に含まれる評価プログラム)には、評価結果に応じた内容のコメントが評価項目毎に設定されており、CPUコア21は、評価項目データ59を用いてコメントを表示させる。ステップS74の後、CPUコア21は添削処理を終了する。
なお、他の実施形態においては、ステップS71において、添削を行う部分をプレイヤに選択させるようにしてもよい。例えば、CPUコア21は、対象文字について評価を行った全ての評価項目を表示し、表示された評価項目から1つを選択する入力を受け付けるようにする。これによれば、プレイヤが気になる評価項目を自分で選んで添削結果を見ることができる。さらに、プレイヤが選択した評価項目に関する評価結果が所定の基準よりも良い評価結果である場合には、ステップS73において参照部分画像を表示しないようにしてもよい。この場合、ステップS74においては、例えば「上手に書けています」等のコメントを表示するようにしてもよい。
図11の説明に戻り、ステップS9の次のステップS10において、CPUコア21は、文字評価処理を終了するか否かを判定する。CPUコア21は、例えば、処理を終了する旨の指示がプレイヤによって行われた場合や、予め定められた所定数の文字について文字評価処理を行った場合、文字評価処理を終了すると判断する。ステップS10の判定結果が肯定の場合、CPUコア21は図11に示す処理を終了する。一方、ステップS10の判定結果が否定の場合、ステップS1の処理が再度実行される。以降、ステップS10の判定結果が肯定となるまで、ステップS1〜S10の処理ループが繰り返し実行される。
以上のように、本実施形態によれば、プレイヤによって入力された対象文字に対して、文字毎に決められた部分を選出し、選出された部分について評価を行う。これによれば、文字を美しく見せるポイントに関して評価を行うことができ、単に文字全体を評価する場合に比べて詳細な評価を行うことができる。また、評価を行った部分毎に添削表示を行うので、文字を美しく見せるためにはどの部分に注意すればよいかを、プレイヤに対してわかりやすく提示することができる。
また、本実施形態によれば、プレイヤによって入力された対象文字を複数の部分に区分し、部分同士の位置関係または大小関係について評価を行う。これによれば、単に参照文字と対象文字とが類似しているか否かについて評価を行う場合には評価できなかった、部分同士の配置や大きさのバランスを評価することができ、より詳細な評価を行うことができる。
なお、上記実施形態では、文字について評価を行う場合を例として説明したが、本発明において評価することができる図形は、文字に限らず、記号や、複数の線で構成される絵等でもよい。例えば、プレイヤキャラクタが魔法を使用するためにプレイヤに魔法陣のような図形を入力させるゲームに本発明を適用することも可能である。すなわち、プレイヤによって入力された図形に対して本発明の評価処理を用いて評価を行い、評価結果に応じてゲーム処理の内容を変える(例えば、魔法の効果の度合いを変える)ようにすることも可能である。
また、上記実施形態では、図形評価装置(ゲーム装置)が入力装置(タッチパネル15)を備える構成であったが、図形評価装置は、評価を行うべき対象文字(図形)の形状を示すデータを取得すればよく、当該データを入力するための入力装置を備えていなくてもよい。例えば、図形評価装置は、入力装置を備える他の情報処理装置からネットワークや記憶媒体を介して、対象文字の形状を示すデータを取得するようにしてもよい。
また、上記実施形態では、文字を画毎に区分して管理するとともに、文字の書き順に従って画番号を付すことによって、プレイヤによって入力される対象文字の画と、予め用意される参照文字の画とを対応付けるものであった。そのため、プレイヤによって入力された対象文字の書き順が、正しい書き順(すなわち、参照文字データにおける画番号の順)と異なる場合には、対象文字の画と参照文字の画との対応付けが正確に一致しなくなるので、補正を行うことが考えられる。以上より、例えば次のような方法によって対象文字の書き順を補正することが考えられる。
第1の方法としては、1つの参照文字について、書き順(画番号の順番)が異なる複数種類の参照文字データ(形状データ)を用意しておくことが考えられる。この場合、対象文字についてステップS11で文字認識処理を行うことによって、これら複数種類の参照文字データのうちで、対象文字に最も類似する参照文字データが選出される。選出された参照文字データにおいて示される書き順を参照することで、対象文字の書き順を知ることができるので、対象文字の書き順を必要に応じて正しい書き順に補正することができる。
第2の方法としては、対象文字の書き順を入れ替えて文字認識処理を複数回実行することが考えられる。この場合、複数回の文字認識処理のうちで、正しい認識結果が得られたときの書き順を採用することによって、対象文字の書き順を正しい書き順に補正されたことになる。
第3の方法としては、対象文字のそれぞれ画について、参照文字のそれぞれの画と位置および形状を比較する処理を行うことが考えられる。この比較の結果を用いて、対象文字の画と、それに最も類似する参照文字の画とを対応付けるように、対象文字の書き順を変更する。これによって、対象文字の書き順を正しい書き順に補正することができる。
また、他の実施形態では、ステップS2において参照文字を表示する際、正しい書き順を表示することによってプレイヤに正しい書き順を提示するようにしてもよい。これによれば、プレイヤに正しい書き順で文字を入力させることができるとともに、プレイヤは文字を書く練習だけでなく正しい書き順を学ぶことができ、有用である。