(57)【要約】【課題】ポインティングデバイスによる座標入力を用いた描画処理において、よりリアルな描画を可能とする描画処理プログラムおよび描画処理装置を提供する。【解決手段】入力位置を出力するポインティングデバイスからの出力に応じた描画を表示装置に表示させる。入力位置取得手段は、ポインティングデバイスから入力位置を繰り返して取得する。描画手段は、所定の要素画像を、入力位置取得手段が取得した最新の入力位置に描画して表示装置に表示する。再描画手段は、所定の要素画像より大きな表示サイズの要素画像を、入力位置取得手段が取得した過去の入力位置に描画して表示装置に表示する。【選択図】図１１
2008269059.tif 000002
【特許請求の範囲】
【請求項１】
入力位置を出力するポインティングデバイスからの出力に応じた描画を表示装置に表示させるコンピュータで実行される描画処理プログラムであって、
前記ポインティングデバイスから前記入力位置を繰り返して取得する入力位置取得手段と、
所定の要素画像を、前記入力位置取得手段が取得した最新の入力位置に描画して前記表示装置に表示する描画手段と、
前記所定の要素画像より大きな表示サイズの要素画像を、前記入力位置取得手段が取得した過去の入力位置に描画して前記表示装置に表示する再描画手段として、前記コンピュータを機能させる、描画処理プログラム。
【請求項２】
前記最新の入力位置から時系列的に遡った過去の複数の入力位置それぞれに対して、前記入力位置取得手段が取得した順に応じて遡って漸増的に大きな表示サイズの要素画像を選択するサイズ選択手段として、さらに前記コンピュータを機能させ、
前記再描画手段は、前記複数の入力位置のそれぞれについて、前記サイズ選択手段により選択された要素画像を描画して前記表示装置に表示する、請求項１に記載の描画処理プログラム。
【請求項３】
前記再描画手段は、前記過去の入力位置における入力の移動速度に応じて、当該入力位置における前記要素画像の表示サイズの最大値を決定し、当該入力位置について描画する要素画像の表示サイズを当該最大値に制限する、請求項２に記載の描画処理プログラム。
【請求項４】
前記再描画手段によって前記過去の入力位置について前記要素画像を描画するにあたり、前記入力位置取得手段が取得した入力位置を用いて、前記過去の各入力位置に対して、当該入力位置における入力の移動速度を算出する入力速度算出手段として、さらに前記コンピュータを機能させ、
前記再描画手段は、前記過去の入力位置のそれぞれについて、前記入力速度算出手段によって算出された前記過去の各入力位置における入力の移動速度に応じて、当該移動速度が大きいほど前記最大値が小さくなるように、各入力位置の前記最大値を決定する、請求項３に記載の描画処理プログラム。
【請求項５】
前記入力位置取得手段が取得した入力位置を用いて、最新の入力位置における入力の移動速度を算出する入力速度算出手段と、
前記入力速度算出手段によって算出された前記移動速度に基づいて、当該移動速度に関する情報を各入力位置について保存する保存手段として、さらに前記コンピュータを機能させ、
前記再描画手段は、前記過去の入力位置のそれぞれについて、前記保存手段によって保存された各入力位置についての前記移動速度に関する情報を参照して、各入力位置における前記移動速度が大きいほど前記最大値が小さくなるように、各入力位置の前記最大値を決定する、請求項３に記載の描画処理プログラム。
【請求項６】
前記描画手段は、予め設定された最小の表示サイズの要素画像を、前記最新の入力位置に描画し、
前記再描画手段は、前記最小の表示サイズより大きな表示サイズの要素画像を、前記最新の入力位置から時系列的に遡った過去の入力位置に描画し、さらに大きな表示サイズの要素画像を、当該過去の入力位置から時系列的にさらに遡った過去の入力位置に描画する、請求項１に記載の描画処理プログラム。
【請求項７】
前記サイズ選択手段は、メモリに記憶された複数の表示サイズの描画パターンから、前記入力位置取得手段が取得した入力位置にそれぞれ対応する描画パターンを前記要素画像として選択する、請求項２に記載の描画処理プログラム。
【請求項８】
前記再描画手段は、その中心の色濃度が相対的に濃い画素で構成され、その周囲の色濃度が相対的に薄い画素で構成される要素画像を、前記過去の入力位置に対して既に描画された要素画像に重ねて描画する、請求項１に記載の描画処理プログラム。
【請求項９】
前記入力位置取得手段の取得履歴に応じて、前記最新の入力位置においてユーザが前記ポインティングデバイスを操作している操作類型を判定する操作類型判定手段と、
前記操作類型判定手段により前記最新の入力位置に対して判定された操作類型に応じて、複数種類の要素画像の中から使用する要素画像の種類を選択する種類選択手段として、さらに前記コンピュータを機能させ、
前記描画手段および前記再描画手段は、それぞれ前記最新の入力位置における操作類型に応じて選択された種類の要素画像を、前記最新の入力位置および前記過去の入力位置に描画する、請求項１に記載の描画処理プログラム。
【請求項１０】
前記入力位置取得手段の取得履歴に応じて、各入力位置においてユーザが前記ポインティングデバイスを操作している操作類型を判定する操作類型判定手段と、
前記操作類型判定手段により前記各入力位置に対して判定された操作類型に応じて、複数種類の要素画像の中から使用する要素画像の種類をそれぞれ選択する種類選択手段として、さらに前記コンピュータを機能させ、
前記描画手段および前記再描画手段は、それぞれ前記各入力位置における操作類型に応じて選択された種類の要素画像を、前記各入力位置にそれぞれ描画する、請求項１に記載の描画処理プログラム。
【請求項１１】
前記操作類型判定手段は、前記入力位置取得手段が最初に入力位置を取得したときに、当該入力位置に対して、ユーザが入力開始状態の操作類型で前記ポインティングデバイスを操作していると判定し、かつ、前記入力位置取得手段が継続して入力位置を取得したときに、当該入力位置に対して、ユーザが入力継続状態の操作類型で前記ポインティングデバイスを操作していると判定し、
前記種類選択手段は、前記操作類型判定手段が前記入力開始状態の操作類型と判定したことに応じて、当該操作類型に分類された第１の形状の要素画像を、当該入力開始状態と判定された前記入力位置に対応して選択し、かつ、前記操作類型判定手段が前記入力継続状態の操作類型と判定したことに応じて、当該操作類型に分類された当該第１の形状とは異なる第２の形状の要素画像を、当該入力継続状態と判定された前記入力位置に対応して選択する、請求項９または１０に記載の描画処理プログラム。
【請求項１２】
前記操作類型判定手段は、前記入力位置取得手段が取得した入力位置が、前記最初の入力位置を中心とした所定範囲内であるとき、当該取得した入力位置に対して、前記入力開始状態の操作類型で前記ポインティングデバイスを操作していると判定する、請求項１１に記載の描画処理プログラム。
【請求項１３】
前記種類選択手段は、前記操作類型判定手段が前記入力開始状態の操作類型が終了したと判定された後から所定条件を満たすまで、前記第１の形状と前記第２の形状との中間形状の要素画像を、前記入力位置に対応して選択する、請求項１１に記載の描画処理プログラム。
【請求項１４】
前記操作類型判定手段は、前記入力位置取得手段が繰り返し取得した入力位置が、所定時間以上所定範囲内に位置するとき、ユーザが入力終了状態の操作類型で前記ポインティングデバイスを操作していると判定し、
前記種類選択手段は、前記操作類型判定手段が前記入力終了状態の操作類型と判定したことに応じて、当該操作類型に分類された前記第１の形状および前記第２の形状とは異なる第３の形状の描画パターンを、前記入力位置に対応して選択する、請求項１１に記載の描画処理プログラム。
【請求項１５】
前記サイズ選択手段は、前記入力位置取得手段が取得した入力位置間を補間する位置に対して、当該補間前後の入力位置に選択されている要素画像のサイズを線形補間する表示サイズの要素画像を、さらに選択し、
前記再描画手段は、前記要素画像設定手段が前記入力位置および前記入力位置間を補間する位置にそれぞれについて、前記サイズ選択手段により選択された要素画像を描画して前記表示装置に表示する、請求項２に記載の描画処理プログラム。
【請求項１６】
前記ポインティングデバイスは、前記表示装置の表示画面を覆うタッチパネルであり、
前記入力位置取得手段は、前記タッチパネルから出力されるタッチ座標データを前記入力位置として取得する、請求項１に記載の描画処理プログラム。
【請求項１７】
入力位置を出力するポインティングデバイスからの出力に応じた描画を表示装置に表示させる描画処理装置であって、
前記ポインティングデバイスから前記入力位置を繰り返して取得する入力位置取得手段と、
所定の要素画像を、前記入力位置取得手段が取得した最新の入力位置に描画して前記表示装置に表示する描画手段と、
前記所定の要素画像より大きな表示サイズの要素画像を、前記入力位置取得手段が取得した過去の入力位置に描画して前記表示装置に表示する再描画手段とを備える、描画処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画処理プログラムおよび描画処理装置に関し、より特定的には、ポインティングデバイスを用いたユーザ入力に応じて文字や図形を表示画面に表示する描画処理プログラムおよび描画処理装置に関する。
【背景技術】
【０００２】
従来、表示画面に対する座標入力を行うポインティングデバイスで操作されるパーソナルコンピュータやゲーム装置等を利用して、表示画面に文字や図形等を描画する装置がある。例えば、ポインティングデバイスの１つであるタッチパネルへの手書き入力に応じて、文字や図形を描画する装置が開示されている（例えば、特許文献１参照）。上記特許文献１で開示された装置では、タッチパネルから出力される座標データに基づいて、押圧位置が移動した移動速度を算出し、当該移動速度に応じて描画パターンの大きさを変更している。
【特許文献１】特開２００６−２５２１４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記特許文献１で開示された装置は、タッチパネルに手書き入力する入力速度に応じて、単に描画パターンの大きさを変更しているだけである。つまり、表示画面に描画された軌跡は、その後変化するようなこともなく、毛筆やペン等で描いた後に墨やインクが時間経過に応じて滲んでいくようなリアルな表現をするものではない。
【０００４】
それ故に、本発明の目的は、ポインティングデバイスによる座標入力を用いた描画処理において、よりリアルな描画を可能とする描画処理プログラムおよび描画処理装置を提供することである。
【課題を解決するための手段】
【０００５】
上記の目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号やステップ番号等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【０００６】
第１の発明は、入力位置（ＴＰ）を出力するポインティングデバイス（１５）からの出力に応じた描画を表示装置（１２）に表示させるコンピュータ（２１）で実行される描画処理プログラムである。描画処理プログラムは、入力位置取得手段（ステップ５２およびステップ５９を実行するＣＰＵコア２１、以下、単にステップ番号のみ記載する）、描画手段（Ｓ５６、Ｓ９２）、および再描画手段（Ｓ９５）として、コンピュータを機能させる。入力位置取得手段は、ポインティングデバイスから入力位置を繰り返して取得する。描画手段は、所定の要素画像を、入力位置取得手段が取得した最新の入力位置（最新の指示位置Ｐ）に描画して表示装置に表示する。再描画手段は、所定の要素画像より大きな表示サイズの要素画像を、入力位置取得手段が取得した過去の入力位置に描画して表示装置に表示する。なお、再描画手段が描画対象とする過去の入力位置は、過去に取得した全ての入力位置、最新の入力位置から一定時間内に入力された過去の入力位置、最新の入力位置から一定領域内に入力された過去の入力位置、または過去の一定数の入力位置等を含む。また、再描画手段は、前に描画した要素画像を消去して再描画してもよいし、前に描画した要素画像に新たな要素画像を重ねて再描画してもよい。また、ポインティングデバイスは、画面上での入力位置や座標を指定する入力装置であり、例えば、タッチパネル、マウス、トラックパッド、トラックボール、タッチスクリーン、ゲームコントローラのハウジングで指し示された画面位置を検出するシステム等で実現される。
【０００７】
第２の発明は、上記第１の発明において、サイズ選択手段として、さらにコンピュータを機能させる。サイズ選択手段は、最新の入力位置から時系列的に遡った過去の複数の入力位置それぞれに対して、入力位置取得手段が取得した順に応じて遡って漸増的に大きな表示サイズ（Ｗｉ）の要素画像を選択する（Ｓ９４、図４Ａ〜図４Ｃ）。再描画手段は、複数の入力位置のそれぞれについて、サイズ選択手段により選択された要素画像を描画して表示装置に表示する。
【０００８】
第３の発明は、上記第２の発明において、再描画手段は、過去の入力位置における入力の移動速度（バッファ距離）に応じて、当該入力位置における要素画像の表示サイズの最大値（Ｗｔ）を決定し、当該入力位置について描画する要素画像の表示サイズを当該最大値に制限する（Ｓ７２、Ｓ７６）。なお、表示サイズが最大値に到達した後に再描画手段が行う描画は、最大値の表示サイズの要素画像を再描画（つまり、最大値の表示サイズの要素画像が同じ入力位置に何度も描画される）してもよいし、最大値以下の表示サイズの要素画像を再描画（つまり、最大値以下の表示サイズの要素画像が同じ入力位置に何度も描画される）してもよいし、再描画自体を停止してもよい。
【０００９】
第４の発明は、上記第３の発明において、入力速度算出手段（Ｓ７１）として、さらにコンピュータを機能させる。入力速度算出手段は、再描画手段によって過去の入力位置（Ｄｃ）について要素画像を描画するにあたり、入力位置取得手段が取得した入力位置を用いて、過去の各入力位置に対して、当該入力位置における入力の移動速度を算出する。再描画手段は、過去の入力位置のそれぞれについて、入力速度算出手段によって算出された過去の各入力位置における入力の移動速度に応じて、当該移動速度が大きいほど最大値が小さくなるように、各入力位置の最大値を決定する。
【００１０】
第５の発明は、上記第３の発明において、入力速度算出手段および保存手段（Ｓ７６、Ｄｃ）として、さらにコンピュータを機能させる。入力速度算出手段は、入力位置取得手段が取得した入力位置を用いて、最新の入力位置における入力の移動速度を算出する。保存手段は、入力速度算出手段によって算出された移動速度に基づいて、当該移動速度に関する情報を各入力位置について保存する。再描画手段は、過去の入力位置のそれぞれについて、保存手段によって保存された各入力位置についての移動速度に関する情報を参照して、各入力位置における移動速度が大きいほど最大値が小さくなるように、各入力位置の最大値を決定する。ここで、移動速度に関する情報は、算出された移動速度自体を示すデータや当該移動速度を加工したデータ（具体的には表示サイズの最大値を示すデータ、実施例では目標太さＷｔを示すデータ）等が含まれる。
【００１１】
第６の発明は、上記第１の発明において、描画手段は、予め設定された最小の表示サイズの要素画像を、最新の入力位置に描画する（Ｓ９２）。再描画手段は、最小の表示サイズより大きな表示サイズの要素画像を、最新の入力位置から時系列的に遡った過去の入力位置に描画し、さらに大きな表示サイズの要素画像を、当該過去の入力位置から時系列的にさらに遡った過去の入力位置に描画する。
【００１２】
第７の発明は、上記第２の発明において、サイズ選択手段は、メモリに記憶された複数の表示サイズの描画パターン（Ｄｆ１）から、入力位置取得手段が取得した入力位置にそれぞれ対応する描画パターンを要素画像として選択する。
【００１３】
第８の発明は、上記第１の発明において、再描画手段は、その中心の色濃度が相対的に濃い画素で構成され、その周囲の色濃度が相対的に薄い画素で構成される要素画像（図７〜図９）を、過去の入力位置に対して既に描画された要素画像に重ねて描画する（ビットマップ情報の加算、図１５）。
【００１４】
第９の発明は、上記第１の発明において、操作類型判定手段（Ｓ５５、Ｓ８１〜Ｓ８４）および種類選択手段（Ｓ５５、Ｓ８５〜Ｓ８９）として、さらにコンピュータを機能させる。操作類型判定手段は、入力位置取得手段の取得履歴に応じて、最新の入力位置においてユーザがポインティングデバイスを操作している操作類型（入り、スライド、つなぎ、横止め、縦止め）を判定する。種類選択手段は、操作類型判定手段により最新の入力位置に対して判定された操作類型に応じて、複数種類の要素画像の中から使用する要素画像の種類を選択する。描画手段および再描画手段は、それぞれ最新の入力位置における操作類型に応じて選択された種類の要素画像を、最新の入力位置および過去の入力位置に描画する。
【００１５】
第１０の発明は、上記第１の発明において、操作類型判定手段および種類選択手段として、さらにコンピュータを機能させる。操作類型判定手段は、入力位置取得手段の取得履歴に応じて、各入力位置においてユーザがポインティングデバイスを操作している操作類型を判定する。種類選択手段は、操作類型判定手段により各入力位置に対して判定された操作類型に応じて、複数種類の要素画像の中から使用する要素画像の種類をそれぞれ選択する。描画手段および再描画手段は、それぞれ各入力位置における操作類型に応じて選択された種類の要素画像を、各入力位置にそれぞれ描画する。
【００１６】
第１１の発明は、上記第９または第１０の発明において、操作類型判定手段は、入力位置取得手段が最初に入力位置（タッチオン指示位置）を取得したときに、当該入力位置に対して、ユーザが入力開始状態（入り）の操作類型でポインティングデバイスを操作していると判定し、かつ、入力位置取得手段が継続して入力位置を取得したときに、当該入力位置に対して、ユーザが入力継続状態（スライド）の操作類型でポインティングデバイスを操作していると判定する。種類選択手段は、操作類型判定手段が入力開始状態の操作類型と判定したことに応じて、当該操作類型に分類された第１の形状の要素画像（図８）を、当該入力開始状態と判定された入力位置に対応して選択し、かつ、操作類型判定手段が入力継続状態の操作類型と判定したことに応じて、当該操作類型に分類された当該第１の形状とは異なる第２の形状の要素画像（図７）を、当該入力継続状態と判定された入力位置に対応して選択する。
【００１７】
第１２の発明は、上記第１１の発明において、操作類型判定手段は、入力位置取得手段が取得した入力位置が、最初の入力位置を中心とした所定範囲内であるとき、当該取得した入力位置に対して、入力開始状態の操作類型でポインティングデバイスを操作していると判定する。
【００１８】
第１３の発明は、上記第１１の発明において、種類選択手段は、操作類型判定手段が入力開始状態の操作類型が終了したと判定された後から所定条件を満たす（つなぎ）まで、第１の形状と第２の形状との中間形状の要素画像（図９）を、入力位置に対応して選択する。例えば、上記所定条件は、入力開始状態の操作類型が終了したと判定された後から一定時間経過したとき、または入力開始状態の操作類型が終了したと判定された後から一定距離離れたとき等に相当する。
【００１９】
第１４の発明は、上記第１１の発明において、操作類型判定手段は、入力位置取得手段が繰り返し取得した入力位置が、所定時間以上所定範囲内に位置するとき、ユーザが入力終了状態（横止め、縦止め）の操作類型でポインティングデバイスを操作していると判定する。種類選択手段は、操作類型判定手段が入力終了状態の操作類型と判定したことに応じて、当該操作類型に分類された第１の形状および第２の形状とは異なる第３の形状の描画パターンを、入力位置に対応して選択する。
【００２０】
第１５の発明は、上記第２の発明において、サイズ選択手段は、入力位置取得手段が取得した入力位置間を補間する位置に対して、当該補間前後の入力位置に選択されている要素画像のサイズを線形補間する表示サイズの要素画像を、さらに選択する（Ｓ９６）。再描画手段は、要素画像設定手段が入力位置および入力位置間を補間する位置にそれぞれについて、サイズ選択手段により選択された要素画像を描画して表示装置に表示する（Ｓ９７）。
【００２１】
第１６の発明は、上記第１の発明において、ポインティングデバイスは、表示装置の表示画面を覆うタッチパネルである。入力位置取得手段は、タッチパネルから出力されるタッチ座標データを入力位置として取得する。
【００２２】
第１７の発明は、入力位置を出力するポインティングデバイスからの出力に応じた描画を表示装置に表示させる描画処理装置である。描画処理装置は、入力位置取得手段、描画手段、および再描画手段を備える。入力位置取得手段は、ポインティングデバイスから入力位置を繰り返して取得する。描画手段は、所定の要素画像を、入力位置取得手段が取得した最新の入力位置に描画して表示装置に表示する。再描画手段は、所定の要素画像より大きな表示サイズの要素画像を、入力位置取得手段が取得した過去の入力位置に描画して表示装置に表示する。
【発明の効果】
【００２３】
上記第１の発明によれば、最新の入力位置に対して過去の入力位置では相対的に大きな表示サイズの要素画像で描画される。例えば、これらの要素画像を並べて接続することによって線を描くことが可能であり、当該線を描いてから時間が経過した入力位置には線の太さが太く描画されるため、毛筆描画で表現される線のようにリアルな描画が可能となる。
【００２４】
上記第２の発明によれば、最新の入力位置では小さい要素画像で描画され、当該入力位置から過去の入力位置側へ遡った位置では漸増的に大きな要素画像で描画される。例えば、これらの要素画像を並べて接続することによって線を描く場合、当該線を描いた直後から時間が経過することによって徐々に線の太さが拡大するように描画されるため、毛筆描画で表現される線のようにリアルな描画が可能となる。
【００２５】
上記第３〜第５の発明によれば、ユーザの入力の移動速度に応じて、描かれる要素画像の表示サイズの最大値が変化する。したがって、入力の移動速度が高速の場合に描かれる線太さを細くし、入力の移動速度が低速の場合に描かれる線を太くすることも可能であり、よりリアルな描画が可能となる。
【００２６】
上記第６の発明によれば、最新の入力位置では最も表示サイズが小さい要素画像で描画され、当該入力位置から過去の入力位置側へ遡った位置では徐々に表示サイズが大きくなった要素画像が描画されるため、時間経過と共ににじみが進行するような表現が可能となる。
【００２７】
上記第７の発明によれば、描画および再描画される要素画像は、予め記憶された複数の描画パターンから選択されるため、バリエーションに富んだ形状の描画が可能となる。
【００２８】
上記第８の発明によれば、既に描かれた画像にさらに描画パターンを書き重ねるように再描画されるため、現実の濃度バラツキを表現することができる。また、その中心へ向かうほど濃くなる描画パターンが用いられるため、これらの描画パターンを複数接続して配置した線を表現するときも、その線中心へ向かうほど濃くなるような線を描画することができる。
【００２９】
上記第９および第１０の発明によれば、ユーザの操作類型に応じて、それぞれ異なった形状を表現した描画が可能となる。
【００３０】
上記第１１および第１２の発明によれば、ユーザが入力開始時点（例えば、タッチパネルに対するタッチオン）では第１の形状の画像を描画することができ、ユーザが入力開始時点から基本操作に移ると第２の形状の画像を描画することができる。例えば、第１の形状を、筆を紙に最初に接した際に現れる涙滴形状とすることによって、毛筆書きにおける「入り」を模した形状の手書き線を描画することができる。
【００３１】
上記第１３の発明によれば、ユーザが入力開始時点から基本操作に移る際、入力開始時点で用いられる第１の形状の描画パターンから、基本操作で用いられる第２の形状の描画パターンまで変化する中間的な形状の要素画像が描画されるため、描画処理で表現される形状変化がスムーズとなる。
【００３２】
上記第１４の発明によれば、ユーザが入力位置の移動を停止したとき（例えば、タッチパネルをタッチオフする前の停止）では、第３の形状の要素画像が用いられる。例えば、第３の形状を、紙上で筆を止めた際に現れる横または縦方向につぶれた形状とすることによって、毛筆書きにおける「横止め」や「縦止め」を模した形状の手書き線を描画することができる。
【００３３】
上記第１５の発明によれば、入力位置の間が適切な要素画像で補間されるため、入力位置を接続する線を描画するとき、スムーズな線を描画することができる。
【００３４】
上記第１６の発明によれば、タッチパネルに対するスライド操作の軌跡に沿って線を描くような描画処理が可能となり、タッチ操作に応じた手書き文字や図形等をリアルに表示することができる。
【００３５】
また、本発明の描画処理装置によれば、上述した描画処理プログラムと同様の効果を得ることができる。
【発明を実施するための最良の形態】
【００３６】
図面を参照して、本発明の一実施形態に係る描画処理プログラムを実行する描画処理装置について説明する。本発明の描画処理プログラムは、表示装置に表示可能な任意のコンピュータシステムで実行されることによって適用することができるが、描画処理装置の一例としてゲーム装置１で実行されるゲームプログラムに含まれる描画処理プログラムを用いて説明する。なお、図１は、本発明のゲームプログラムを実行するゲーム装置１の外観図である。ここでは、ゲーム装置１の一例として、携帯ゲーム装置を示す。
【００３７】
図１において、ゲーム装置１は、第１のＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１１および第２のＬＣＤ１２を含む。ハウジング１３は、上側ハウジング１３ａと下側ハウジング１３ｂとによって構成されている。第１のＬＣＤ１１は、上側ハウジング１３ａに収納され、第２のＬＣＤ１２は、下側ハウジング１３ｂに収納される。例えば、第１のＬＣＤ１１および第２のＬＣＤ１２の解像度は、いずれも２５６ｄｏｔ×１９２ｄｏｔである。なお、本実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置等、他の任意の表示装置を利用することができる。また、第１のＬＣＤ１１および第２のＬＣＤ１２は、任意の解像度のものを利用することができる。
【００３８】
上側ハウジング１３ａには、後述する１対のスピーカ（図２の右スピーカ３０ａおよび左スピーカ３０ｂ）からの音を、外部に放出するための音抜き孔１８ａおよび１８ｂが形成されている。
【００３９】
下側ハウジング１３ｂには、入力装置として、十字スイッチ１４ａ、スタートスイッチ１４ｂ、セレクトスイッチ１４ｃ、Ａボタン１４ｄ、Ｂボタン１４ｅ、Ｘボタン１４ｆ、Ｙボタン１４ｇ、電源スイッチ１４ｈ、Ｌボタン１４Ｌ、およびＲボタン１４Ｒが設けられている。なお、Ｌボタン１４ＬおよびＲボタン１４Ｒは、下側ハウジング１３ｂの上部側面に設けられており、図１に示す上側ハウジング１３ａの背後に配置されているため、図示されていない。また、さらなる入力装置として、第２のＬＣＤ１２の画面上を覆うようにタッチパネル１５が装着されている。また、下側ハウジング１３ｂには、メモリカード１７やスティック１６を収納するための挿入口（図１では、一点鎖線で示している）も設けられている。
【００４０】
タッチパネル１５としては、例えば抵抗膜方式や光学式（赤外線方式）や静電容量結合式等、任意の方式のものを利用することができる。タッチパネル１５は、その表面をスティック１６で触れると、その接触位置に対応する座標データを出力する機能を有するポインティングデバイスの一例である。なお、以下ではプレイヤがタッチパネル１５をスティック１６でタッチ操作するものとして説明を行うが、スティック１６の代わりにペン（スタイラスペン）や指でタッチパネル１５をタッチ操作することももちろん可能である。本実施形態では、タッチパネル１５として、一例として第２のＬＣＤ１２の解像度と同じく２５６ｄｏｔ×１９２ｄｏｔの解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１５の解像度と第２のＬＣＤ１２の解像度とが一致している必要はない。
【００４１】
メモリカード１７は、ゲームプログラム等を記録した記録媒体であり、下側ハウジング１３ｂに設けられた挿入口に着脱自在に装着される。
【００４２】
次に、図２を参照して、ゲーム装置１の内部構成を説明する。なお、図２は、ゲーム装置１の内部構成を示すブロック図である。
【００４３】
図２において、ハウジング１３に収納される電子回路基板２０には、ＣＰＵコア２１が実装される。ＣＰＵコア２１には、バス２２を介して、コネクタ２３が接続されるとともに、入出力インターフェース回路（図面ではＩ／Ｆ回路と記す）２５、第１ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２６、第２ＧＰＵ２７、ＲＡＭ２４、ＬＣＤコントローラ３１、およびワイヤレス通信部３３が接続される。コネクタ２３には、メモリカード１７が着脱自在に接続される。メモリカード１７は、ゲームプログラムを記憶するＲＯＭ１７ａと、バックアップデータを書き換え可能に記憶するＲＡＭ１７ｂを搭載する。メモリカード１７のＲＯＭ１７ａに記憶されたゲームプログラムは、ＲＡＭ２４にロードされ、ＲＡＭ２４にロードされたゲームプログラムがＣＰＵコア２１によって実行される。ＲＡＭ２４には、ゲームプログラムの他にも、適宜、ＣＰＵコア２１がプログラムを実行して得られる一時的なデータを生成するためのデータ等が記憶される。Ｉ／Ｆ回路２５には、タッチパネル１５、右スピーカ３０ａ、左スピーカ３０ｂ、および図１の十字スイッチ１４ａやＡボタン１４ｄ等から成る操作スイッチ部１４が接続される。右スピーカ３０ａおよび左スピーカ３０ｂは、音抜き孔１８ａおよび１８ｂの内側にそれぞれ配置され、ＣＰＵコア２１が生成したサウンド出力情報に応じたサウンドを再生する。
【００４４】
第１ＧＰＵ２６には、第１ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）２８が接続され、第２ＧＰＵ２７には、第２ＶＲＡＭ２９が接続される。第１ＧＰＵ２６は、ＣＰＵコア２１からの指示に応じて、ＲＡＭ２４に記憶されている表示画像を生成するためのデータに基づいて第１の表示画像を生成し、第１ＶＲＡＭ２８に描画する。第２ＧＰＵ２７は、同様にＣＰＵコア２１からの指示に応じて第２の表示画像を生成し、第２ＶＲＡＭ２９に描画する。第１ＶＲＡＭ２８および第２ＶＲＡＭ２９は、ＬＣＤコントローラ３１に接続されている。
【００４５】
ＬＣＤコントローラ３１は、レジスタ３２を含む。レジスタ３２は、ＣＰＵコア２１からの指示に応じて０または１の値を記憶する。ＬＣＤコントローラ３１は、レジスタ３２の値が０の場合は、第１ＶＲＡＭ２８に描画された第１のゲーム画像を第１のＬＣＤ１１に出力し、第２ＶＲＡＭ２９に描画された第２のゲーム画像を第２のＬＣＤ１２に出力する。また、レジスタ３２の値が１の場合は、第１ＶＲＡＭ２８に描画された第１のゲーム画像を第２のＬＣＤ１２に出力し、第２ＶＲＡＭ２９に描画された第２のゲーム画像を第１のＬＣＤ１１に出力する。
【００４６】
ワイヤレス通信部３３は、他のゲーム装置のワイヤレス通信部３３との間で、ゲーム処理に利用されるデータやその他のデータをやりとりする機能を有しており、一例としてＩＥＥＥ８０２．１１の無線ＬＡＮ規格に則った無線通信機能を提供する。そして、ワイヤレス通信部３３は、受信したデータをＣＰＵコア２１に出力する。また、ワイヤレス通信部３３は、ＣＰＵコア２１から指示されたデータを他のゲーム装置へ送信する。
【００４７】
なお、本発明のゲームプログラム（描画処理プログラム）は、メモリカード１７等の外部記憶媒体を通じてコンピュータシステムに供給されるだけでなく、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよい。また、ゲームプログラムは、コンピュータシステム内部の不揮発性記憶装置に予め記録されていてもよい。なお、ゲームプログラムを記憶する情報記憶媒体としては、上記不揮発性半導体メモリに限らず、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
【００４８】
次に、図３および図４を参照して、ゲーム装置１で実行されるゲームプログラムによる具体的な処理動作を説明する前に、当該処理動作によって第１のＬＣＤ１１および第２のＬＣＤ１２に表示される表示形態例等について説明する。なお、図３は、第１のＬＣＤ１１および第２のＬＣＤ１２に表示される画面表示例を示す図である。図４Ａ〜図４Ｃは、第２のＬＣＤ１２に表示されるゲーム画像とタッチ操作される位置との関係を説明するための図である。
【００４９】
図３において、ゲーム装置１の第１のＬＣＤ１１および第２のＬＣＤ１２には、それぞれゲーム画像が表示される。例えば、第１のＬＣＤ１１には、プレイヤがスティック１６を用いてタッチパネル１５をタッチして手書きする手本となる文字や図形を示すゲーム画像が表示される。図３においては、漢字「一」が手本文字Ｍとして表示されている。一方、第２のＬＣＤ１２には、プレイヤがスティック１６を用いてタッチパネル１５をタッチ操作した軌跡に沿って描かれる手書き文字Ｃが表示される。図３においては、プレイヤが手本文字Ｍに合うようタッチパネル１５のタッチ位置ＴＰをタッチ操作して手書き入力している一例を示しており、タッチ位置ＴＰの位置まで描かれた手書き文字Ｃが表示されている。
【００５０】
ここで、手本文字Ｍは、楷書等の毛筆系書体で描かれた文字が示される。そして、手書き文字Ｃも、タッチ位置ＴＰの軌跡に沿って、あたかもプレイヤが毛筆で描いたような線で表現される。例えば、現実世界で毛筆を用いて線を描く場合、その描く速度、描く筆圧等に応じて線の太さが変化する。また、毛筆で描いた直後から時間が経過することによって、徐々に線の太さが拡大する（にじみ）ような変化も生じる。さらに、毛筆では、筆の入り、止め、はね、はらい等に応じて、特殊な形状の線が描かれる。本実施形態における手書き文字Ｃは、上述した現実世界における毛筆描画による特徴を、タッチ位置ＴＰに応じてリアルに第２のＬＣＤ１２に表現する。
【００５１】
図４Ａ〜図４Ｃを参照して、時間経過に応じて徐々に線の太さを拡大させる処理の一例を説明する。例えば、プレイヤがタッチパネル１５上をスライドさせるようなタッチ操作（以下、スライド操作と記載する）をする際、タッチ操作されている最新のタッチ位置ＴＰでは最も細い線が描画され、当該タッチ位置ＴＰから時系列的に遡ったタッチ位置（例えば、図４Ｂおよび図４Ｃにおけるタッチ位置ＴＰａ）では相対的に太い線が再描画される。なお、図４Ａ〜図４Ｃでは、手書き文字Ｃの手書き線部分を中抜き斜線領域で示している。
【００５２】
具体的には、プレイヤがタッチパネル１５をタッチ操作するタッチ位置ＴＰに対して、目標太さＷｔがそれぞれ設けられる。つまり、タッチ位置ＴＰがスライド操作に応じて移動すると、タッチ位置ＴＰの履歴に対してそれぞれのタッチ位置ＴＰに目標太さＷｔが設定される。一方、プレイヤがタッチ操作している最新のタッチ位置ＴＰでは、最も細い太さＷｉ０の線が描かれる。そして、最細太さＷｉ０で描かれた線は、時間経過と共に目標太さＷｔに向かってその太さが漸増的に拡大するように変化して再描画される。なお、後述により明らかとなるが、本実施形態における手書き文字Ｃは、各タッチ位置に、描画太さＷｉおよび入力状態（入り、止め等）に応じた要素画像（例えば、後述する描画パターン）を既に描かれている要素画像に重ね合わせていくことによって、その線太さが拡大して再描画される。
【００５３】
例えば、図４Ａに示す状態から図４Ｂに示す状態を経て図４Ｃに示す状態に変化する例を考える。この操作例は、プレイヤが入力方向Ｄｉへタッチ位置ＴＰを移動させてスライド操作する例である。そして、当該スライド操作に応じて設定される各タッチ位置ＴＰには、全て同じ目標太さＷｔが設定されるものとする。なお、図４Ａは、プレイヤがタッチ位置ＴＰａをタッチ操作している状態（つまり、タッチ位置ＴＰ＝タッチ位置ＴＰａ）の一例を示す図である。図４Ｂは、プレイヤがタッチ位置ＴＰａをタッチ操作した後、入力方向Ｄｉへタッチ位置ＴＰを移動させてスライド操作している状態の一例を示す図である。図４Ｃは、図４Ｂに示す状態から、さらにプレイヤが入力方向Ｄｉへタッチ位置ＴＰを移動させてスライド操作している状態の一例を示す図である。
【００５４】
ここで、タッチ位置ＴＰａに注目する。図４Ａにおいて、プレイヤがタッチ操作している最新のタッチ位置ＴＰでは、最細太さＷｉ０の線となる。したがって、タッチ位置ＴＰ＝タッチ位置ＴＰａの状態では、タッチ位置ＴＰａにおける線太さＷａも最細太さＷｉ０となる。
【００５５】
次に、図４Ｂに示すように、プレイヤがタッチ位置ＴＰａをタッチ操作した後、入力方向Ｄｉへタッチ位置ＴＰを移動させてスライド操作する。このスライド操作によって、タッチ位置ＴＰａにおける線太さＷａは、時間経過と共に目標太さＷｔに向かって漸増的に拡大するように変化する。つまり、タッチ操作されてから時間経過が短いタッチ位置ＴＰにおいて線太さが細く、時間経過が長いタッチ位置ＴＰにおいて線太さが漸増的に太くなるような線が描かれる。結果的に、入力方向Ｄｉへタッチ位置ＴＰを移動させてスライド操作する場合、最新のタッチ位置ＴＰから過去のタッチ位置ＴＰａ側へ遡った軌跡には、最細太さＷｉ０から時間経過に応じて漸増的に目標太さＷｔまで線の太さを拡大させる区間Ｚｃと、目標太さＷｔまで到達した区間Ｚｓが形成される。なお、図４Ｂの状態では、タッチ位置ＴＰａが区間Ｚｃに含まれるため、タッチ位置ＴＰａにおける線太さＷａは、Ｗｉ０＜Ｗａ＜Ｗｔとなっている。
【００５６】
次に、図４Ｃに示すように、図４Ｂに示す状態から、さらにプレイヤが入力方向Ｄｉへタッチ位置ＴＰを移動させてスライド操作する。このスライド操作によって、タッチ位置ＴＰａにおける線太さＷａは、時間経過と共に目標太さＷｔに向かってさらに漸増的に拡大するように変化する。これによって、タッチ位置ＴＰａにおける線太さＷａは、やがて目標太さＷｔとなり、タッチ位置ＴＰａが区間Ｚｓに含まれる位置となる。このように、手書き文字Ｃは、最新のタッチ位置ＴＰでは一番細い描画パターンで描画され、当該タッチ位置ＴＰから過去のタッチ位置ＴＰａ側へ遡った位置では最細太さＷｉ０より太い描画パターンで再描画される。これによって、第２のＬＣＤ１２には、手書き文字Ｃが毛筆で描いた直後から時間が経過することによって徐々に線の太さが拡大するように再描画される。
【００５７】
次に、図５〜図１４を参照して、ゲーム装置１で実行されるゲームプログラムによる具体的な処理動作について説明する。なお、図５は、ゲームプログラムを実行することに応じて、ＲＡＭ２４に記憶される各種データの一例を示す図である。図６は、ＲＡＭ２４に記憶されるポイントバッファの一例を示す図である。図７は、ＲＡＭ２４に記憶されるスライド状態の描画パターンデータの一例を示す図である。図８は、ＲＡＭ２４に記憶される入り状態の描画パターンデータの一例を示す図である。図９は、ＲＡＭ２４に記憶されるつなぎ状態の描画パターンデータの一例を示す図である。図１０は、ＲＡＭ２４に記憶されるパレット情報テーブルの一例を示す図である。図１１は、当該ゲームプログラムを実行することによってゲーム装置１がゲーム処理を行うフローチャートである。図１２は、図１１におけるステップ６０の目標太さ算出処理の詳細な動作を示すサブルーチンである。図１３は、図１１におけるステップ６１の入力状態設定処理の詳細な動作を示すサブルーチンである。図１４は、図１１におけるステップ６２の描画処理の詳細な動作を示すサブルーチンである。なお、これらの処理を実行するためのプログラムは、ＲＯＭ１７ａに格納されたゲームプログラムに含まれており、ゲーム装置１の電源がオンになったときに、ＲＯＭ１７ａからＲＡＭ２４に読み出されて、ＣＰＵコア２１によって実行される。
【００５８】
図５において、ＲＡＭ２４には、ＲＯＭ１７ａから読み出されたプログラムやゲーム処理において生成される一時的なデータが記憶される。図５において、ＲＡＭ２４のデータ記憶領域には、タッチ位置データＤａ、タッチオン指示位置データＤｂ、ポイントバッファデータＤｃ、入力位置バッファデータＤｄ、バッファ距離データＤｅ、入力距離データＤｆ、および描画データＤｇ等が格納される。
【００５９】
タッチ位置データＤａは、タッチパネル１５をプレイヤがタッチしている画面座標系のタッチ位置ＴＰを示すタッチ座標を示すデータが格納される。例えば、タッチ座標は、ゲーム装置１がゲーム処理する時間単位（例えば、１／６０秒）毎に取得され、当該取得に応じてタッチ位置データＤａに格納されて更新される。
【００６０】
タッチオン指示位置データＤｂは、タッチパネル１５に最初にタッチオンされたタッチ位置に応じて、仮想世界に指定される指示位置（以下、タッチオン指示位置と記載することがある）Ｐの指示座標を示すデータが格納される。
【００６１】
ポイントバッファデータＤｃは、指示位置Ｐの履歴およびそれらの各種データが記述されたポイントバッファが格納される。以下、図６を参照して、ポイントバッファデータＤｃに格納されるポイントバッファについて説明する。
【００６２】
図６において、ポイントバッファは、タッチ位置ＴＰから算出された指示位置Ｐの所定期間分の履歴毎に、カウントフラグ、目標太さ、描画太さ、および入力状態が記述されている。指示位置Ｐは、手書き文字Ｃが描かれる仮想世界（以下、単に仮想世界と記載する）において、上記タッチ位置ＴＰと重なる位置を示す座標であり、タッチ位置ＴＰを仮想世界に透視変換することによって得られる。例えば、指示位置Ｐは、仮想世界に設定されているｘｙ座標系の座標値（ｘ，ｙ）で示され、タッチ座標の取得に応じて算出された座標値（ｘ，ｙ）を示すデータが、ポイントバッファに記述される。以下、当指示位置Ｐを示す座標値を指示座標と記載する。ポイントバッファには、現在タッチ操作して取得されたタッチ位置ＴＰから、所定処理回数分遡って取得されて算出された指示位置Ｐの履歴が記述される。図６に示した一例では、４回分の指示位置履歴がバッファ番号１〜４にそれぞれ記述されており、具体的には、バッファ番号１に指示座標（ｘ1，ｙ1）、バッファ番号２に指示座標（ｘ2，ｙ2）、バッファ番号３に指示座標（ｘ3，ｙ3）、およびバッファ番号４に指示座標（ｘ4，ｙ4）が記述されている。ここで、ポイントバッファに記述されるデータの中では、バッファ番号１（先頭）に記述される指示位置Ｐが最新のデータであり、バッファ番号４（最後）に記述される指示位置Ｐが最古のデータである。
【００６３】
ポイントバッファには、上記指示位置Ｐ毎に設定された目標太さＷｔ、描画太さＷｉ、および入力状態（スライド、入り、つなぎ、止め等）が記述される。具体的には、バッファ番号１に目標太さＷｔ１および描画太さＷｉ１、バッファ番号２に目標太さＷｔ２および描画太さＷｉ２、バッファ番号３に目標太さＷｔ３および描画太さＷｉ３、バッファ番号４に目標太さＷｔ４および描画太さＷｉ４がそれぞれ記述され、バッファ番号１〜４の全てに入力状態「スライド」が記述されている。また、ポイントバッファには、何れのデータが「カレント」に設定されているかを示すカレントフラグが記述されている。図６の例では、バッファ番号１のデータにカレントフラグ「ＯＮ」が記述され、バッファ番号１のデータが「カレント」に設定されていることを示している。
【００６４】
入力位置バッファデータＤｄは、現在から所定時間前までの所定期間分（例えば、過去約３０秒間分）の指示位置Ｐの履歴が記述された入力位置バッファが格納される。
【００６５】
バッファ距離データＤｅは、ポイントバッファに記述された各指示座標（ｘ，ｙ）を通って、現在プレイヤがタッチパネル１５をタッチ操作しているタッチ位置に応じた指示位置（以下、最新の指示位置と記載することがある）までの仮想世界における距離（バッファ距離Ｌｂ）を示すデータが格納される。入力距離データＤｆは、上記タッチオン指示位置から最新の指示位置までの仮想世界における距離（入力距離Ｌｉ）を示すデータが格納される。
【００６６】
描画データＤｇは、描画パターンデータＤｇ１およびパレット情報テーブルＤｇ２等を含んでいる。描画パターンデータＤｇ１は、仮想世界において手書き文字Ｃをゲーム画面に表示するための要素画像の一例を示すビットマップデータである。また、パレット情報テーブルＤｇ２は、描画パターンデータが示す各画素の値（ビットマップ情報）に対して参照される、パレット情報を示すデータテーブルである。以下、図７〜図１０を参照して、描画パターンデータＤｇ１およびパレット情報テーブルＤｇ２について説明する。なお、図７〜図９に示す要素画像（描画パターン）は、それぞれの矩形領域が１つの画素を示しており、各画素に対して設定されるビットマップ情報を図示している。なお、本実施形態では、手書き文字Ｃが無彩色で表示するため、描画パターンの各画素に設定される色も無彩色（白色〜灰色〜黒色）となる。
【００６７】
図７〜図９において、描画パターンデータＤｇ１は、プレイヤのタッチ操作に応じて設定される入力状態（タッチ操作する操作類型）毎に、それぞれ複数の描画パターンを有している。また、各入力状態の際に用いられる描画パターンは、例えば描画太さＷｉに応じた８つのパターンが設定される。なお、描画パターンデータＤｇ１に格納される描画パターンは、本発明における要素画像の一例に相当する。
【００６８】
描画パターンの各画素に対して設定されているビットマップ情報は、０〜１５の何れかの整数値で示され、これらの数値によって各画素のＲＧＢ値が設定されている。これらビットマップ情報とＲＧＢ値との関係が、パレット情報テーブルＤｇ２に格納されたパレット情報テーブルで示される。
【００６９】
図１０に示すように、０〜１５の整数値で示されるビットマップ情報は、それぞれＲＧＢ値を示すパレット情報と対応している。例えば、ビットマップ情報「０」に対しては、パレット情報（２５５，２５５，２５５）のＲＧＢ値が対応しており、すなわちビットマップ情報「０」は白色を示す情報である。また、ビットマップ情報「１５」に対しては、パレット情報（０，０，０）のＲＧＢ値が対応しており、すなわちビットマップ情報「１５」は黒色を示す情報である。また、ビットマップ情報「１」〜「１４」に対しては、それぞれ灰色を示す情報となっており、ビットマップ情報の数値が大きくなると、順次その濃度が濃くなるＲＧＢ値がパレット情報として設定されている。より具体的には、パレット情報は、白色〜灰色〜黒色のグラデーション有する１６段階のＲＧＢ値を示す情報である。そして、これら１６段階のパレット情報は、それぞれビットマップ情報によって指定することができる。
【００７０】
図７は、入力状態が「スライド」のときに用いられる複数の描画パターンの一例を示している。図７において、入力状態が「スライド」のときに用いられる描画パターンは、各描画太さＷｉに応じて略円形の描画パターンが設定される。具体的には、描画太さＷｉが「１」〜「８」に対して、それぞれ略円形の描画パターンが設定されており、描画太さＷｉの数値が大きくなると、当該数値の大きさに応じて灰色で示されるビットマップ情報の領域が拡大する。また、各描画パターンは、その中心が最も濃度が濃いビットマップ情報（すなわち、数値が大きい）を有しており、描画パターンの中心から外縁方向へ漸減的に濃度が薄くなるビットマップ情報（すなわち、数値が漸減的に小さくなる）を有している。
【００７１】
図８は、入力状態が「入り」のときに用いられる複数の描画パターンの一例を示している。図８において、入力状態が「入り」のときに用いられる描画パターンは、各描画太さＷｉに応じて略涙滴形の描画パターンが設定される。具体的には、各描画パターンは、略涙滴形の最細部が左上方向に配置され、右下方向へ向かって徐々にその幅が太くなるように設定されている。換言すると、各描画パターンは、筆を紙に最初に接した際に現れる形状を模しており、筆先の尖りが相対的に強く表現される画像である。また、各描画パターンは、描画太さＷｉが「１」〜「８」に対して、それぞれ略涙滴形の描画パターンが設定されており、描画太さＷｉの数値が大きくなると、当該数値の大きさに応じて灰色で示されるビットマップ情報の領域が拡大する。また、各描画パターンは、その中心が最も濃度が濃いビットマップ情報を有しており、描画パターンの中心から外縁方向へ漸減的に濃度が薄くなるビットマップ情報を有している。
【００７２】
図９は、入力状態が「つなぎ」のときに用いられる複数の描画パターンの一例を示している。図９において、入力状態が「つなぎ」のときに用いられる描画パターンは、各描画太さＷｉに応じて略円形および略涙滴形の中間的な形状の描画パターンが設定される。具体的には、各描画パターンは、上述した入力状態が「スライド」のときに用いられる描画パターンと入力状態が「入り」のときに用いられる描画パターンとの中間的な形状で設定されている。換言すると、各描画パターンは、入力状態が「入り」のときに用いられる描画パターンと同様に、筆先の尖りが表現される画像であるが、「入り」の画像パターンより若干左右方向に倒した形状とすることで、上記中間的な形状を表現している。また、各描画パターンは、描画太さＷｉが「１」〜「８」に対して、それぞれ中間的な形状の描画パターンが設定されており、描画太さＷｉの数値が大きくなると、当該数値の大きさに応じて灰色で示されるビットマップ情報の領域が拡大する。また、各描画パターンは、その中心が最も濃度が濃いビットマップ情報を有しており、描画パターンの中心から外縁方向へ漸減的に濃度が薄くなるビットマップ情報を有している。
【００７３】
なお、図７〜図９においては、入力状態が「スライド」、「入り」、および「つなぎ」のときに用いられる複数の描画パターンの一例を示したが、描画パターンデータＤｇ１には他の入力状態のときに用いられる描画パターンも格納される。例えば、描画パターンデータＤｇ１には、入力状態が「横止め」や「縦止め」のときに用いられる描画パターンも格納される。これらの描画パターンについても、上記描画パターンと同様に、描画太さＷｉが「１」〜「８」に対して、それぞれ固有の形状の描画パターンが設定されており、描画太さＷｉの数値が大きくなると、当該数値の大きさに応じて灰色で示されるビットマップ情報の領域が拡大する。また、各描画パターンは、その中心が最も濃度が濃いビットマップ情報を有しており、描画パターンの中心から外縁方向へ漸減的に濃度が薄くなるビットマップ情報を有している。
【００７４】
例えば、入力状態が「横止め」のときに用いられる描画パターンは、「スライド」のときに用いられる描画パターンを横方向に伸ばした形状である。また、「横止め」のときに用いられる描画パターンは、当該横方向に伸ばした形状をさらに縦横に拡大したような形状でもかまわない。換言すると、入力状態が「横止め」のときに用いられる描画パターンは、紙面に沿って筆を横方向に書き進めた状態で筆圧を高めて止めた際に現れる形状を模した画像である。また、入力状態が「縦止め」のときに用いられる描画パターンは、「スライド」のときに用いられる描画パターンを縦方向に伸ばした形状である。また、「縦止め」のときに用いられる描画パターンは、当該縦方向に伸ばした形状をさらに縦横に拡大したような形状でもかまわない。換言すると、入力状態が「縦止め」のときに用いられる描画パターンは、紙面に沿って筆を縦方向に書き進めた状態で筆圧を高めて止めた際に現れる形状を模した画像である。
【００７５】
次に、ゲーム装置１の動作について説明する。まず、ゲーム装置１の電源（電源スイッチ１４ｈ）がＯＮされると、ＣＰＵコア２１によってブートプログラム（図示せず）が実行され、これによりメモリカード１７に格納されているゲームプログラムがＲＡＭ２４にロードされる。そして、当該ロードされたゲームプログラムがＣＰＵコア２１で実行されることによって、図１１〜図１４に示すステップ（図１１〜図１４では「Ｓ」と略称する）が実行される。
【００７６】
図１１において、ＣＰＵコア２１は、ゲームの初期設定を行って（ステップ５０）、処理を次のステップに進める。例えば、ＣＰＵコア２１がステップ５０で行う初期設定として、プレイヤに描かせる手本文字Ｍを仮想世界に設定し、第１のＬＣＤ１１に表示する。そして、ＣＰＵコア２１は、タッチ位置データＤａ、タッチオン指示位置データＤｂ、ポイントバッファデータＤｃ、バッファ距離データＤｅ、および入力距離データＤｆに格納されている各ゲームパラメータを初期化（例えば、各数値を０に初期化）する。また、第２ＶＲＡＭ２９等に書き込まれて第２のＬＣＤ１２に手書き文字Ｃを表示するためビットマップ情報は、全て０に設定される。
【００７７】
次に、ＣＰＵコア２１は、プレイヤがタッチパネル１５をタッチ操作するのを待つ、すなわちタッチオンか否かを判断する（ステップ５１）。そして、ＣＰＵコア２１は、タッチオンの場合、次のステップ５２に処理を進める。一方、ＣＰＵコア２１は、プレイヤがタッチパネル１５をタッチ操作していない、すなわちタッチオフの場合、当該ステップ５１の処理を繰り返す。
【００７８】
ステップ５２において、ＣＰＵコア２１は、タッチパネル１５をタッチしている画面座標系のタッチ位置ＴＰを示すタッチ座標を取得して、処理を次のステップに進める。例えば、ＣＰＵコア２１は、取得したタッチ座標を用いて、タッチ位置データＤａに記憶されたタッチ座標を更新する。
【００７９】
次に、ＣＰＵコア２１は、上記ステップ５２で取得されたタッチ位置ＴＰに応じた仮想世界の指示位置Ｐの指示座標を示すデータを算出して、当該指示座標をタッチオン指示位置データＤｂに保存して（ステップ５３）、処理を次のステップに進める。例えば、指示位置Ｐの指示座標は、タッチ座標ＴＰのタッチ座標を仮想世界に透視変換することによって得られる。一例として。指示座標は、タッチ座標と重なって第２のＬＣＤ１２に表示される仮想世界の２次元平面上の位置を算出することによって得られる。
【００８０】
次に、ＣＰＵコア２１は、上記ステップ５３で算出された指示位置Ｐの目標太さＷｔおよび描画太さＷｉを設定する（ステップ５４）。そして、ＣＰＵコア２１は、算出された指示位置Ｐの入力状態を「入り」に設定し（ステップ５５）、処理を次のステップに進める。例えば、ＣＰＵコア２１は、目標太さＷｔおよび描画太さＷｉを、それぞれタッチオン時の所定太さ（例えば、目標太さＷｔ＝最小値１および描画太さＷｉ＝最小値１）に設定する。また、ＣＰＵコア２１は、入力状態をタッチオン時の入力状態（ここでは、入力状態＝「入り」）に設定する。
【００８１】
次に、ＣＰＵコア２１は、上記ステップ５３で算出された指示位置Ｐに設定された描画太さＷｉおよび入力状態に応じた描画パターンを描画し、第２のＬＣＤ１２に表示して（ステップ５６）、処理を次のステップに進める。具体的には、ＣＰＵコア２１は、上記ステップ５４およびステップ５５で設定された描画太さＷｉ「１」および入力状態「入り」に基づいて、描画パターンデータＤｇ１から描画太さＷｉ「１」および入力状態「入り」の描画パターンを抽出する（図８参照）。そして、ＣＰＵコア２１は、第２ＧＰＵ２７（図２参照）に対して、抽出した描画パターンが指示位置Ｐの指示座標（ｘ，ｙ）に配置されたゲーム画像を生成する指示を行う。この指示に応じて、第２ＧＰＵ２７は、第２ＶＲＡＭ２９等に描画パターンに応じたビットマップ情報を書き込む。そして、第２ＧＰＵ２７は、パレット情報テーブルＤｇ２を参照して、第２ＶＲＡＭ２９に書き込まれたビットマップ情報に応じたパレット情報を出力して、描画パターンに応じたゲーム画像が第２のＬＣＤ１２に表示される。
【００８２】
次に、ＣＰＵコア２１は、最新の指示位置Ｐの指示座標（ｘ，ｙ）、目標太さＷｔ、描画太さＷｉ、および入力状態をポイントバッファデータＤｃのポイントバッファの最新位置に保存して（ステップ５７）、処理を次のステップに進める。例えば、ＣＰＵコア２１は、ポイントバッファ（図６参照）に格納されているバッファ番号４（最古のデータ格納位置）を除いたバッファ番号ｉのデータを、バッファ番号ｉ＋１の格納位置にそれぞれ移動させる。そして、ＣＰＵコア２１は、ポイントバッファのバッファ番号１（最新のデータ格納位置）に、最新の指示位置Ｐの指示座標（ｘ，ｙ）、目標太さＷｔ、描画太さＷｉ、および入力状態を記述する。このステップ５７の処理によって、ポイントバッファの各格納位置（バッファ番号１〜３）に格納されている３組のデータの格納位置が順次繰り下げられ、最新の格納位置（バッファ番号１）に最新の指示位置Ｐに設定された各データが格納される。
【００８３】
また、上記ステップ５７において、ＣＰＵコア２１は、タッチ位置ＴＰの軌跡（つまり、指示位置Ｐの軌跡）を判定するために、上記最新の指示位置Ｐの指示座標（ｘ，ｙ）を入力位置バッファデータＤｄの入力位置バッファの最新位置に保存する。ここで、入力位置バッファは、現在から所定時間前までの所定期間分（例えば、過去約３０秒間分）の指示座標（ｘ，ｙ）の履歴が格納される。
【００８４】
次に、ＣＰＵコア２１は、プレイヤがタッチパネル１５へのタッチ操作をしていない、すなわちタッチオフか否かを判断する（ステップ５８）。そして、ＣＰＵコア２１は、プレイヤのタッチ操作が継続して行われている、すなわちタッチオンの場合、次のステップ５９に処理を進める。一方、ＣＰＵコア２１は、プレイヤがタッチパネル１５をタッチ操作していない、すなわちタッチオフの場合、当該フローチャートによる処理を終了する。
【００８５】
ステップ５９において、ＣＰＵコア２１は、タッチパネル１５をタッチしている画面座標系のタッチ位置ＴＰを示すタッチ座標を取得して、処理を次のステップに進める。例えば、ＣＰＵコア２１は、取得したタッチ座標を用いて、タッチ位置データＤａに記憶されたタッチ座標を更新する。
【００８６】
次に、ＣＰＵコア２１は、最新の指示位置Ｐにおける目標太さＷｔを設定する処理を行い（ステップ６０）、次のステップに処理を進める。以下、図１２を参照して、目標太さ算出処理の詳細な動作について説明する。
【００８７】
図１２において、ＣＰＵコア２１は、ポイントバッファデータＤｃのポイントバッファを参照して、最新の指示位置Ｐからのバッファ距離を算出し（ステップ７１）、次のステップへ処理を進める。ここで、バッファ距離Ｌｂは、ポイントバッファに記述された各指示座標（ｘ，ｙ）を通って、最新の指示位置Ｐまでの仮想世界における距離である。
【００８８】
まず、ＣＰＵコア２１は、上記ステップ５９で取得したタッチ座標を用いて、最新の指示位置Ｐ0の指示座標（ｘ0，ｙ0）を算出する。そして、ＣＰＵコア２１は、ポイントバッファのバッファ番号１〜４に記述された各指示位置（以下、指示位置Ｐ1〜Ｐ4と記載する）をタッチ操作順に通って、最新の指示位置Ｐ0までの距離をバッファ距離Ｌｂとして算出する。ここで、各指示位置Ｐnの指示座標を（ｘn，ｙn）とすると、指示位置Ｐnと指示位置Ｐn+1との距離Ｌnは、
【数１】
2008269059.tif 000003
で算出できる。そして、バッファ距離Ｌｂは、各指示位置間の距離Ｌnを加算する、すなわち、
Ｌｂ＝Ｌ0＋Ｌ1＋Ｌ2＋Ｌ3
によって算出する。そして、ＣＰＵコア２１は、算出したバッファ距離Ｌｂを用いてバッファ距離データＤｅを更新する。
【００８９】
次に、ＣＰＵコア２１は、バッファ距離Ｌｂに応じて最新の指示位置Ｐの目標太さＷｔを仮設定し（ステップ７２）、次のステップに処理を進める。例えば、目標太さＷｔが所定の最小値Ｗｔｄから最大値Ｗｔｕまでの正数値（例えば、Ｗｔｄ＝１、Ｗｔｕ＝８）に設定され、バッファ距離Ｌｂに判定最小距離Ｌｄ（例えば、Ｌｄ＝０．５）および判定最大距離Ｌｕ（例えば、Ｌｕ＝６．０）が設けられる。そして、バッファ距離Ｌｂが判定最小距離Ｌｄ以下の場合（Ｌｂ≦Ｌｄ）、目標太さＷｔを最大値Ｗｔｕ（すなわち、８）に設定する。また、バッファ距離Ｌｂが判定最大距離Ｌｕ以上の場合（Ｌｂ≧Ｌｕ）、目標太さＷｔを最小値Ｗｔｄ（すなわち、１）に設定する。また、バッファ距離Ｌｂが判定最小距離Ｌｄより大きく判定最大距離Ｌｕより小さい場合（Ｌｄ＜Ｌｂ＜Ｌｕ）、判定最小距離Ｌｄから判定最大距離Ｌｕへの距離を最大値Ｗｔｕから最小値Ｗｔｄへの線形な値に変換する、すなわち
Ｗｔ＝Ｗｔｕ−（Ｗｔｕ−Ｗｔｄ）＊（Ｌｂ−Ｌｄ）／（Ｌｕ−Ｌｄ）
にで算出される値を算出する。そして、目標太さＷｔを、算出された値の小数点以下を切り捨て、切り上げ、または四捨五入等した整数に設定する。
【００９０】
このように、目標太さＷｔは、バッファ距離Ｌｂに応じて仮設定される。ここで、最新の指示位置Ｐにおいて、当該指示位置Ｐが移り変わって移動していく移動速度（以下、単に移動速度と記載する）の算出は、当該指示位置Ｐより過去の所定時間における各指示位置Ｐ間の距離を合計することにより、指示位置Ｐの移動速度を算出するのが典型的である。また、単に、最新の指示位置Ｐと１つ前の指示位置Ｐ（つまり、バッファ番号１に記述された指示位置Ｐ1）との間の距離により、指示位置Ｐの移動速度を算出することも可能である。したがって、バッファ距離Ｌｂは、所定期間におけるタッチ位置ＴＰの移動距離を示すパラメータであり、プレイヤがタッチパネル１５に対する入力の移動速度を示すものである。
【００９１】
また、指示位置Ｐの移動速度の算出は、当該指示位置Ｐより過去の各指示位置Ｐ間の距離だけでなく、当該指示位置Ｐより後に設定された各指示位置Ｐ間の距離も用いることもできる。例えば、ポイントバッファのバッファ番号２に記述された指示位置Ｐ2の移動速度は、過去の所定時間における各指示位置Ｐ間の距離（距離Ｌ2およびＬ3）と、指示位置Ｐ2の後の所定時間における各指示位置Ｐ間の距離（距離Ｌ0およびＬ1）とを合計することにより算出することができる。そして、算出された指示位置Ｐ2の移動速度を用いて、指示位置Ｐ2の目標太さＷｔ２を設定してもかまわない。また、単に、指示位置Ｐと１つ後の指示位置Ｐ（つまり、バッファ番号１に記述された指示位置Ｐ2の移動速度を算出するときの指示位置Ｐ1）との間の距離により、指示位置Ｐの移動速度を算出することも可能である。このように、目標太さＷｔを仮設定するための指示位置Ｐの移動速度は、当該指示位置Ｐより過去の所定時間における各指示位置Ｐ間の距離および／または当該指示位置Ｐより後の所定時間における各指示位置Ｐ間の距離を用いて、算出することが可能である。
【００９２】
次に、ＣＰＵコア２１は、上記ステップ７２で仮設定した目標太さＷｔとポイントバッファデータＤｃのポイントバッファにおける最新データ（バッファ番号１）に記述されている目標太さＷｔ１との差分を算出する。そして、ＣＰＵコア２１は、差分値が一定範囲内（例えば、差分値の絶対値が２以下）の場合、処理を次のステップ７６に進める。一方、ＣＰＵコア２１は、差分値が一定範囲外（例えば、差分値の絶対値が２より大きい）の場合、処理を次のステップ７５に進める。
【００９３】
ステップ７５において、ＣＰＵコア２１は、仮設定された最新の指示位置Ｐの目標太さＷｔを、上記一定範囲内となる整数（例えば、上記差分値の絶対値が２となる整数）に変更し、次のステップ７６に処理を進める。例えば、目標太さＷｔ１＝５に対して目標太さＷｔ＝８が仮設定された場合、目標太さＷｔ＝７に変更される。また、目標太さＷｔ１＝５に対して目標太さＷｔ＝１が仮設定された場合、目標太さＷｔ＝３に変更される。このように、最新の指示位置Ｐの目標太さＷｔは、前回設定された目標太さＷｔ１からの変化量が一定範囲内に抑制される。
【００９４】
ステップ７６において、ＣＰＵコア２１は、現在仮設定されている、または上記ステップ７５で変更された最新の指示位置Ｐの目標太さＷｔを確定して、当該サブルーチンによる処理を終了する。
【００９５】
図１１に戻り、上記ステップ６０の目標太さ算出処理の後、ＣＰＵコア２１は、最新の指示位置Ｐにおける入力状態を設定する処理を行い（ステップ６１）、次のステップに処理を進める。以下、図１３を参照して、入力状態設定処理の詳細な動作について説明する。
【００９６】
図１３において、ＣＰＵコア２１は、プレイヤのタッチ操作の入力状態が入りか否かを判断する（ステップ８１）。例えば、ＣＰＵコア２１は、タッチオン指示位置データＤｂに格納されているタッチオン指示位置から、最新の指示位置までの仮想世界における距離が所定距離以内（後述する距離Ｌ０以内）であれば、入力状態が入りであると判定する。つまり、プレイヤがタッチパネル１５に触れた位置から、タッチパネル１５をタッチしながら所定距離以内でスライド操作している期間は、入力状態が入りであると判定される。そして、ＣＰＵコア２１は、入力状態が入りであるとき、次のステップ８４に処理を進める。一方、ＣＰＵコア２１は、入力状態が入りでないとき、次のステップ８２に処理を進める。
【００９７】
ステップ８２において、ＣＰＵコア２１は、プレイヤのタッチ操作の入力状態がつなぎか否かを判断する。一例として、ＣＰＵコア２１は、プレイヤのタッチ操作の入力状態が入りでなくなった時点から所定時間が経過するまでの期間を、入力状態が入りからスライド（基本描線）へのつなぎであると判断する。そして、ＣＰＵコア２１は、入力状態がつなぎであるとき、次のステップ８５に処理を進める。一方、ＣＰＵコア２１は、入力状態がつなぎでないとき、次のステップ８３に処理を進める。
【００９８】
ステップ８３において、ＣＰＵコア２１は、プレイヤのタッチ操作の入力状態が止めか否かを判断する。一例として、ＣＰＵコア２１は、所定時間以上の間、所定範囲内に指示位置が指定されるとき、入力状態が止めであると判断する。つまり、プレイヤのスライド操作の速度が減速して、タッチ操作位置が所定範囲内に所定時間以上とどまっているとき、入力状態が止めであると判定される。また、ＣＰＵコア２１は、入力状態が止めと判定した最初の指示位置Ｐを中心とした一定範囲内に、その後の指示位置Ｐが指定されている間も入力状態を止めと判断する。そして、ＣＰＵコア２１は、入力状態が止めであるとき、次のステップ８４に処理を進める。一方、ＣＰＵコア２１は、入力状態が止めでないとき、次のステップ８９に処理を進める。
【００９９】
ステップ８４において、ＣＰＵコア２１は、最新の指示位置Ｐまでの過去の指示位置Ｐの軌跡が横方向であるか否かを判断する。そして、ＣＰＵコア２１は、軌跡が横方向である場合、次のステップ８７に処理を進める。一方、ＣＰＵコア２１は、軌跡が縦方向である場合、次のステップ８８に処理を進める。
【０１００】
例えば、上記ステップ８４において、ＣＰＵコア２１は、入力位置バッファに格納されている指示位置Ｐの履歴と最新の指示位置Ｐとを用いて、入力方向が横方向および縦方向の何れかであるかを判断する。具体的には、最新の指示位置Ｐを基準位置として、入力位置バッファの履歴を遡って順次指示位置Ｐを参照していく。そして、基準位置から遡った入力軌跡の長さが所定長さ（例えば、６ｄｏｔ）以上となる過去の指示位置Ｐｐを抽出して、基準位置と指示位置Ｐｐとの位置関係が横方向および縦方向の何れかであるかを判断する。ここで、横方向および縦方向とは、手書き文字Ｃが表示された際の縦横方向を示している。例えば、図３のように第１のＬＣＤ１１および第２のＬＣＤ１２の位置関係が左右となるようにゲーム装置１を配置したとき、第２のＬＣＤ１２の左右方向が横方向であり、第２のＬＣＤ１２の上下方向が縦方向である。そして、ＣＰＵコア２１は、第２のＬＣＤ１２の左右方向を基準方向（０°）としたとき、上記基準位置と指示位置Ｐｐとをそれぞれ結ぶ方向と当該基準方向との間の角度が０°以上４５°未満であれば、軌跡が横方向であると判定する。一方、ＣＰＵコア２１は、上記角度が４５°以上９０°以下であれば、軌跡が縦方向であると判定する。
【０１０１】
なお、上述した一例では、入力位置バッファに格納された指示位置Ｐのデータを用いたが、他のデータを用いて縦横判定を行ってもかまわない。例えば、ポイントバッファに格納されている指示位置Ｐの履歴と最新の指示位置Ｐとを用いて、これらの指示位置Ｐを結ぶ方向が横方向および縦方向の何れかであるかを判断してもかまわない。この場合、ポイントバッファに格納された指示位置Ｐをそれぞれ結ぶ方向の平均等と当該基準方向との間の角度を用いて、上述と同様の判定を行う。
【０１０２】
ステップ８５〜ステップ８９において、ＣＰＵコア２１は、上記ステップ８１〜ステップ８４における入力状態判定結果に応じて、最新の指示位置Ｐの入力状態を設定する。すなわち、プレイヤのタッチ操作の入力状態が入りであると判定されたとき（ステップ８１でＹｅｓ）、最新の指示位置Ｐの入力状態を入りに設定して（ステップ８５）、当該サブルーチンによる処理を終了する。プレイヤのタッチ操作の入力状態がつなぎであると判定されたとき（ステップ８２でＹｅｓ）、最新の指示位置Ｐの入力状態をつなぎに設定して（ステップ８６）、当該サブルーチンによる処理を終了する。プレイヤのタッチ操作の入力状態が横方向の止めであると判定されたとき（ステップ８３およびステップ８４でＹｅｓ）、最新の指示位置Ｐの入力状態を横止めに設定して（ステップ８７）、当該サブルーチンによる処理を終了する。プレイヤのタッチ操作の入力状態が縦方向の止めであると判定されたとき（ステップ８３でＹｅｓ、ステップ８４でＮｏ）、最新の指示位置Ｐの入力状態を縦止めに設定して（ステップ８８）、当該サブルーチンによる処理を終了する。そして、プレイヤのタッチ操作の入力状態が入り、つなぎ、止めの何れでもないと判定されたとき（ステップ８１〜ステップ８３が何れもＮｏ）、最新の指示位置Ｐの入力状態をスライドに設定して（ステップ８９）、当該サブルーチンによる処理を終了する。このように、ＣＰＵコア２１は、算出した指示位置Ｐを用いて、プレイヤがタッチ操作した操作類型を判定して入力状態として設定している。
【０１０３】
図１１に戻り、上記ステップ６１の入力状態設定処理の後、ＣＰＵコア２１は、描画処理を行い（ステップ６２）、上記ステップ５７に戻って処理を繰り返す。以下、図１４を参照して、描画処理の詳細な動作について説明する。
【０１０４】
図１４において、ＣＰＵコア２１は、最新の指示位置Ｐの描画太さＷｉを設定する（ステップ９１）。例えば、ＣＰＵコア２１は、最新の指示位置Ｐの描画太さＷｉを、所定太さ（例えば、描画太さＷｉ＝最小値１）に設定する。次に、ＣＰＵコア２１は、上記ステップ６１で設定された最新の指示位置Ｐの入力状態および上記ステップ９１で設定された描画太さＷｉに応じた描画パターンを描画し、第２のＬＣＤ１２に表示して（ステップ９２）、処理を次のステップに進める。具体的には、ＣＰＵコア２１は、最新の指示位置Ｐに設定されている描画太さＷｉ（すなわち、最小値１）および入力状態に基づいて、描画パターンデータＤｇ１から該当する入力状態の描画太さＷｉ「１」の描画パターンを抽出する（図８等参照）。そして、ＣＰＵコア２１は、第２ＧＰＵ２７（図２参照）に対して、抽出した描画パターンが最新の指示位置Ｐの指示座標（ｘ，ｙ）に配置されたゲーム画像を生成する指示を行い、当該ゲーム画像が第２のＬＣＤ１２に表示される。ここで、上述したように、描画処理の際には第２ＶＲＡＭ２９等に描画パターンに応じたビットマップ情報が書き込まれるが、既にビットマップ情報が書き込まれている画素については、ビットマップ情報を書き換える必要がある。このビットマップ情報の書き換え処理については、後述する。
【０１０５】
次に、ＣＰＵコア２１は、ポイントバッファデータＤｃのポイントバッファの最新位置（すなわち、ポイント番号１）のデータをカレントに設定して（ステップ９３）、処理を次のステップに進める。例えば、ＣＰＵコア２１は、ポイントバッファにおけるポイント番号１のカレントフラグをＯＮに設定し、他のデータのカレントフラグをＯＦＦに設定する。
【０１０６】
次に、ＣＰＵコア２１は、ポイントバッファにおいてカレントフラグがＯＮに設定されているデータの目標太さＷｔを参照し、格納位置に応じて描画太さＷｉを設定する（ステップ９４）。例えば、バッファ番号１〜４にそれぞれ格納されている目標太さＷｔをＷｔ１〜Ｗｔ４とし、バッファ番号１〜４に設定される描画太さＷｉをＷｉ１〜Ｗｉ４とすると、描画太さＷｉ１〜Ｗｉ４は、それぞれ
Ｗｉ１＝１（最小値）
Ｗｉ２＝Ｗｔ２×２／４
Ｗｉ３＝Ｗｔ３×３／４
Ｗｉ４＝Ｗｔ４
で設定される。なお、算出された何れの描画太さＷｉ１〜Ｗｉ４についても、小数点以下を四捨五入、切り捨て、または切り上げ等することによって、整数値とする。そして、ＣＰＵコア２１は、設定された描画太さＷｉを用いて、カレントフラグがＯＮに設定されたポイントバッファの描画太さＷｉを更新して、処理を次のステップに進める。
【０１０７】
後述により明らかとなるが、バッファ番号１〜４に記述された描画太さＷｉ１〜Ｗｉ４は、処理が繰り返される毎にポイントバッファ内で降順に記述場所が移動するため、結果的に描画太さがＷｉは、同じ指示位置Ｐに設定されている目標太さＷｔまで、最小値１からその数値が大きくなっていくことになる。つまり、この描画太さＷｉを目標太さＷｔまで拡大させる処理によって、手書き文字Ｃは、最新の指示位置Ｐでは一番細い描画パターンで描画され、当該最新の指示位置Ｐから過去の指示位置側へ遡った位置では最細の描画太さＷｉより太い描画太さＷｉの描画パターンで再描画される。これによって、第２のＬＣＤ１２には、手書き文字Ｃがタッチ操作して描いた直後から時間が経過することによって徐々に線の太さが拡大するように再描画される（図４Ａ〜図４Ｃ参照）。また、各指示位置Ｐに設定された目標太さＷｔは、当該指示位置Ｐに対応する描画太さＷｉが拡大する最大値としても機能していることがわかる。
【０１０８】
次に、ＣＰＵコア２１は、カレントフラグがＯＮに設定された指示位置Ｐに設定された描画太さＷｉおよび入力状態に応じた描画パターンを描画し、第２のＬＣＤ１２に表示して（ステップ９５）、処理を次のステップに進める。具体的には、ＣＰＵコア２１は、ポイントバッファにおいてカレントフラグがＯＮに設定された描画太さＷｉおよび入力状態を参照して、描画パターンデータＤｇ１から参照した描画太さＷｉおよび入力状態に応じた描画パターンを抽出する。そして、ＣＰＵコア２１は、第２ＧＰＵ２７に対して、抽出した描画パターンがカレントの指示位置Ｐの指示座標（ｘ，ｙ）に配置されたゲーム画像を生成する指示を行う。この指示に応じて、第２ＧＰＵ２７は、第２ＶＲＡＭ２９等に描画パターンに応じたビットマップ情報を書き込む。そして、第２ＧＰＵ２７は、パレット情報テーブルＤｇ２を参照して、第２ＶＲＡＭ２９に書き込まれたビットマップ情報に応じたパレット情報を出力して、描画パターンに応じたゲーム画像が第２のＬＣＤ１２に表示される。ここで、カレントの指示位置Ｐに描画パターンに応じたビットマップ情報を書き込むときには、前回の処理において同じ指示位置Ｐに描画パターンに応じたビットマップ情報が既に書き込まれている。以下、図１５を参照して、ビットマップ情報の書き換え処理について説明する。なお、図１５は、ビットマップ情報を書き換える一例と、当該ビットマップ情報に応じて表示される画像例を示す図である。
【０１０９】
図１５では、第２ＶＲＡＭ２９等に書き込まれたビットマップ情報に対して、表示される画像例が、各描画パターンに応じたビットマップ情報の書き換え段階毎に記載している。ここで、図１５に示すビットマップ情報は、０〜１５の何れかの整数値で上述した１６段階のパレット情報（図１０参照）が示され、これらの数値によって各画素のＲＧＢ値が設定される。
【０１１０】
例えば、描画指示がされていない初期段階においては、第２ＶＲＡＭ２９等の表示メモリ領域に書き込まれて第２のＬＣＤ１２に手書き文字Ｃを表示するため画素毎のビットマップ情報は、全て「０」に設定されている。初期段階では、これらビットマップ情報「０」に応じて、各画素にパレット情報（２５５，２５５，２５５）が指定され、全画素が白色の画像が表示される。
【０１１１】
次に、上記初期段階後の第１段階において、中央領域の２×２画素にビットマップ情報「５」が記載され、他の画素にビットマップ情報「０」が記載された４×４の描画パターンが、上記表示メモリ領域の中央位置に書き込まれる。このとき、既に書き込まれている画素毎のビットマップ情報に、配置する描画パターンにおける対応画素のビットマップ情報を加算して書き込まれる。なお、上記加算結果が「１５」を超える場合、ビットマップ情報を「１５」とする。結果的に、上記表示メモリ領域の中央位置の２×２画素にビットマップ情報「５」が記載され、他の画素にビットマップ情報「０」が書き込まれる。第１段階では、これらビットマップ情報「５」または「０」に応じて、中央部の画素にパレット情報（１７０，１７０，１７０）が指定され、他の画素にパレット情報（２５５，２５５，２５５）が指定されるため、中央領域の画素がライトグレーとなり周辺領域の画素が白色となった画像が表示される。
【０１１２】
次に、上記第１段階後の第２段階において、中央領域の２×２画素にビットマップ情報「７」が記載され、他の画素にビットマップ情報「５」が記載された４×４の描画パターンが、上記第１段階と同じ表示メモリ領域の位置に書き込まれる。このときも、上記第１段階で既に書き込まれている画素毎のビットマップ情報に、配置する描画パターンにおける対応画素のビットマップ情報を加算して書き込まれる。具体的には、上記表示メモリ領域の中央位置の２×２画素には、上記第１段階においてビットマップ情報「５」が書き込まれているため、これらの画素に描画パターンの中央領域のビットマップ情報「７」がそれぞれ加算されてビットマップ情報「１２」に書き換えられる。また、上記表示メモリ領域の中央位置における２×２画素の周囲画素には、描画パターンに記述されているビットマップ情報「５」が書き込まれ、他の画素にビットマップ情報「０」が書き込まれる。そして、第２段階では、これらビットマップ情報「１２」、「５」、または「０」に応じて、中央部の画素にパレット情報（５１，５１，５１）が指定され、その周囲の画素にパレット情報（１７０，１７０，１７０）が指定され、他の画素にパレット情報（２５５，２５５，２５５）が指定される。したがって、第２段階では、中央領域の画素がダークグレイとなり、その周囲領域の画素がライトグレーとなり、さらにその周辺領域の画素が白色となった画像が再描画されて表示される。
【０１１３】
このように、本実施形態に係る描画処理では、描画パターンを重ねて指定することによって、画素毎にビットマップ情報が積算される。したがって、描画パターンの灰色画素を重ねて指定することによって灰色から黒色に向かって変化するため、濃度が濃い画像に推移して再描画されていく。
【０１１４】
図１４に戻り、上記ステップ９５の処理の後、ＣＰＵコア２１は、最新の指示位置Ｐからカレントに指定された指示位置Ｐまでの指示位置間の描画太さＷｉおよび入力状態を補間設定し（ステップ９６）、処理を次のステップに進める。
【０１１５】
例えば、プレイヤがタッチ位置ＴＰを高速で大きく動かす等したときは、算出される指示位置Ｐの間隔が相対的に大きくなる。このように、指示位置Ｐの間隔が広くなると、描画される描画パターンの間が広くなり手書き文字Ｃの線太さにバラツキが生じてしまう。このような線太さのバラツキを解消するために、上記ステップ９６では指示位置Ｐ間にも描画パターンを描画するための描画太さＷｉおよび入力状態を補間設定する。
【０１１６】
上記ステップ９６の処理例として、第１の指示位置Ｐ１と第２の指示位置Ｐ２との間の描画太さＷｉおよび入力状態を補間設定する一例を考える。ここで、第１の指示位置Ｐ１には描画太さＷｉ１が設定され、第２の指示位置Ｐ２には描画太さＷｉ２が設定され、第１の指示位置Ｐ１と第２の指示位置Ｐ２との間の距離がＸ（具体的には、Ｘ画素）とする。例えば、描画太さＷｉ１と描画太さＷｉ２との差が１以下であれば、第１の指示位置Ｐ１と第２の指示位置Ｐ２との間の各画素に対して、それぞれ描画太さＷｉ１または描画太さＷｉ２を補間設定する。また、描画太さＷｉ１と描画太さＷｉ２との差が２以上（ｎとする）であれば、上記Ｘ画素を当該差に応じて分割して、分割区間毎にＷｉ１からＷｉ２までの数値を描画太さＷｉとして補間設定する。例えば、Ｗｉ１＜Ｗｉ２のとき、第１の指示位置Ｐ１からＸ／ｎ画素までの区間の各画素に対して、それぞれ描画太さＷｉ１＋１を補間設定する。また、次のＸ／ｎ画素から２Ｘ／ｎ画素までの区間の各画素に対して、それぞれ描画太さＷｉ１＋２を補間設定する。そして、（ｎ−１）Ｘ／ｎ画素から第２の指示位置Ｐ２までの区間の各画素に対して、それぞれ描画太さＷｉ２を補間設定する。なお、何れの場合においても、第１の指示位置Ｐ１と第２の指示位置Ｐ２との間の各画素に対する入力状態は、第１の指示位置Ｐ１に設定された入力状態または第２の指示位置Ｐ２に設定された入力状態に補間設定する。
【０１１７】
次に、ＣＰＵコア２１は、上記ステップ９５で各画素に補間設定された描画太さＷｉおよび入力状態に応じた描画パターンを当該各画素に描画し、第２のＬＣＤ１２に表示して（ステップ９７）、処理を次のステップに進める。当該ステップ９７の描画処理については、上述したステップ９５の描画処理を同様であるため、詳細な説明を省略する。
【０１１８】
次に、ＣＰＵコア２１は、ポイントバッファにおける最古の位置（すなわち、バッファ番号４）のカレントフラグがＯＮに設定されているか否かを判断する（ステップ９８）。そして、ＣＰＵコア２１は、最古の位置以外（すなわち、バッファ番号１〜３）のカレントフラグがＯＮに設定されている場合、カレントフラグがＯＮに設定されているデータのカレントフラグをＯＦＦに変更し、当該データの１つ最古側に記述されたデータのカレントフラグをＯＮに変更して（ステップ９９）、上記ステップ９４に戻って処理を繰り返す。一方、ＣＰＵコア２１は、最古の位置のカレントフラグがＯＮに設定されている場合、当該サブルーチンによる処理を終了する。
【０１１９】
次に、図１６〜図１８を参照して、上述したフローチャートに基づいた処理によって描かれる手書き文字Ｃの表示例について説明する。なお、図１６は、プレイヤの入力状態が「入り」→「つなぎ」→「スライド」に移り変わったときの手書き文字Ｃの一例を示す図である。図１７は、プレイヤの入力状態が「スライド」→「止め」に移り変わったときの手書き文字Ｃの一例を示す図である。図１８は、プレイヤの入力状態が「スライド」のままでタッチパネル１５からタッチオフされたときの手書き文字Ｃの一例を示す図である。なお、図１６〜図１８においては、手書き文字Ｃの手書き線内部状況を説明するために、現実には塗りつぶし線で表示される手書き文字Ｃが中抜き線で図示されている。また、図１６〜図１８では、プレイヤがタッチパネル１５上をスライド操作した軌跡Ｔを破線で示している。
【０１２０】
図１６において、プレイヤがタッチパネル１５の指示位置Ｐ０（すなわち、タッチオン指示位置Ｐ０）にタッチオンしたとき、入力状態は「入り」に設定される（図１１のステップ５５）。そして、プレイヤが、タッチオン指示位置Ｐ０から所定距離以内（距離Ｌ０）をスライド操作している期間（図１３のステップ８１でＹｅｓ）は、入力状態が「入り」に設定される（図１３のステップ８５；図１６の入り区間）。この入り区間における描画処理においては、入力状態が「入り」のときに用いられる描画パターンが用いられる。ここで、図８を用いて説明したように、入力状態が「入り」のときに用いられる描画パターンは、筆を紙に最初に接した際に現れる形状を模しているため、手書き文字Ｃにおいても毛筆における「入り」形状が表現される。
【０１２１】
その後、プレイヤが、タッチオン指示位置Ｐ０から指示位置Ｐ１において距離Ｌ０を超える位置までスライド操作してから所定時間が経過するまでの期間（図１３のステップ８２でＹｅｓ）は、入力状態が「つなぎ」に設定される（図１３のステップ８６；図１６のつなぎ区間）。このつなぎ区間における描画処理においては、入力状態が「つなぎ」のときに用いられる描画パターンが用いられる。ここで、図９を用いて説明したように、入力状態が「つなぎ」のときに用いられる描画パターンは、入力状態が「入り」のときに用いられる描画パターンと略円形の描画パターン（すなわち、入力状態が「スライド」）との中間的な形状であるため、手書き文字Ｃにおいても毛筆における「入り」形状から基本描線（スライド）までのつなぎの形状が表現される。
【０１２２】
さらに、プレイヤが、指示位置Ｐ１をタッチ操作した時点から所定時間が経過して指示位置Ｐ２をタッチ操作した後の期間（図１３のステップ８１〜ステップ８３が何れもＮｏ）は、入力状態が「スライド」に設定される（図１３のステップ８９；図１６のスライド区間）。このスライド区間における描画処理においては、入力状態が「スライド」のときに用いられる描画パターンが用いられる。ここで、図７を用いて説明したように、入力状態が「スライド」のときに用いられる描画パターンは、略円形であるため、手書き文字Ｃにおいては、基本描線を示す形状が表現される。
【０１２３】
図１７において、プレイヤの入力状態が「スライド」で横方向にスライド操作してから、所定時間以上の間、所定範囲内の指示位置Ｐが指定されるとき（図１３のステップ８４でＹｅｓ；図１７の指示位置Ｐ３〜Ｐｅの間）、入力状態は「横止め」に設定される（図１３のステップ８７）。そして、プレイヤが、タッチパネル１５から指示位置Ｐｅでタッチオフするまで、入力状態が「横止め」に設定される（図１７の止め区間）。この止め区間における描画処理においては、入力状態が「横止め」のときに用いられる描画パターンが用いられる。ここで、上述したように、入力状態が「横止め」のときに用いられる描画パターンは、紙面に沿って筆を横方向に書き進めた状態で筆圧を高めて止めた際に現れる形状を模しているため、手書き文字Ｃにおいても毛筆における「横止め」形状が表現される。
【０１２４】
図１８において、毛筆書きにおける「はね」や「はらい」を描くようにプレイヤがタッチパネル１５上をスライド操作してタッチオフするとき、プレイヤの入力状態が「スライド」のままで指示位置Ｐｅからタッチオフされる（図１８のスライド区間）。このようなスライド操作においては、プレイヤは、スライド操作におけるタッチ位置ＴＰの移動を加速しながらタッチオフする。したがって、上述したバッファ距離Ｌｂもタッチ位置ＴＰの移動に応じて短縮される傾向となり、指示位置Ｐｅに向かって目標太さＷｔが細くなっていく。これに加えて、最新の指示位置Ｐｅでは一番細い描画パターンで描画され、当該指示位置Ｐｅから過去の指示位置側へ遡った位置では徐々に太い描画パターンで再描画される。したがって、タッチオフされた指示位置Ｐｅでは、過去の指示位置側へ遡った位置と比較して顕著に先細りした形状となり、あたかも毛筆書きにおける「はね」や「はらい」のような形状で表示される。
【０１２５】
このように、上述したゲーム装置１による処理では、最新のタッチ位置ＴＰと重なる指示位置Ｐでは一番細い描画パターンで描画され、当該指示位置Ｐから過去の指示位置側へ遡った位置では相対的に太い描画パターンで再描画された手書き文字Ｃが表示される。これによって、第２のＬＣＤ１２には、手書き文字Ｃがタッチ操作して描いた直後から時間が経過することによって徐々に線の太さが拡大するように描画され、毛筆描画で表現される文字のようにリアルな描画が可能となる。また、各指示位置Ｐに設定される目標太さＷｔは、タッチ操作の速度に応じて変化するため、さらにリアルな手書き文字Ｃの描画が可能となる。さらに、手書き文字Ｃを描画する際に用いられる描画パターンは、プレイヤの入力状態に応じて異なる形状が設定されているため、毛筆書きにおける「入り」や「止め」等の特徴形状もリアルに表現することができる。
【０１２６】
なお、上述した実施形態では、２画面分の液晶表示部の一例として、物理的に分離された第１のＬＣＤ１１および第２のＬＣＤ１２を互いに上下に配置した場合（上下２画面の場合）を説明した。しかしながら、２画面分の表示画面の構成は、他の構成でもかまわない。例えば、下側ハウジング１３ｂの一方主面に第１のＬＣＤ１１および第２のＬＣＤ１２を左右に配置してもかまわない。また、第２のＬＣＤ１２と横幅が同じで縦の長さが２倍のサイズからなる縦長サイズのＬＣＤ（すなわち、物理的には１つで、表示サイズが縦に２画面分あるＬＣＤ）を下側ハウジング１３ｂの一方主面に配設して、上記２つのゲーム画像（すなわち、手本文字Ｍを示す画像と手書き文字Ｃを示す画像）を上下に表示（すなわち上下の境界部分無しに隣接して表示）するように構成してもよい。また、第２のＬＣＤ１２と縦幅が同じで横の長さが２倍のサイズからなる横長サイズのＬＣＤを下側ハウジング１３ｂの一方主面に配設して、横方向に２つのゲーム画像を左右に表示（すなわち左右の境界部分無しに隣接して表示）するように構成してもよい。すなわち、物理的に１つの画面を２つに分割して使用することにより２つのゲーム画像を表示してもかまわない。いずれの画像の形態に対しても、上述した第２のＬＣＤ１２に表示していたゲーム画像が表示される画面上にタッチパネル１５を配設すれば、同様に本発明を実現することができる。また、物理的に１つの画面を２つに分割して使用することにより上記２つのゲーム画像を表示する場合、当該画面全面にタッチパネル１５を配設してもかまわない。
【０１２７】
また、上述した実施例では、ゲーム装置１にタッチパネル１５が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。また、第１のＬＣＤ１１の上面にタッチパネル１５を設けて第１のＬＣＤ１１に上述した第２のＬＣＤ１２に表示していたゲーム画像を表示しても良い。さらに、上記実施例では表示画面を２つ（第１のＬＣＤ１１、第２のＬＣＤ１２）を設けたが、表示画面は１つであってもかまわない。すなわち、上記実施例において、第１のＬＣＤ１１を設けず単に第２のＬＣＤ１２のみを表示画面としてタッチパネル１５を設けるように構成してもよい。また、上記実施例において、第２のＬＣＤ１２を設けずに第１のＬＣＤ１１の上面にタッチパネル１５を設けて、上述した第２のＬＣＤ１２に表示していたゲーム画像を第１のＬＣＤ１１に表示しても良い。
【０１２８】
また、上記実施例では、座標入力を実現するゲーム装置１の入力手段としてタッチパネル１５を用いたが、他のポインティングデバイスを用いてもかまわない。ここで、ポインティングデバイスは、画面上での入力位置や座標を指定する入力装置であり、例えば、マウス、トラックパッド、トラックボールなどを入力手段として使用し、入力手段から出力される出力値から計算された画面座標系の位置情報を用いれば、本発明を同様に実現することができる。
【０１２９】
この場合、上記画面座標系の位置情報を上述した処理におけるタッチ位置ＴＰとして取り扱えば、本発明を実現することが可能である。ただし、上述した処理におけるタッチオンまたはタッチオフの判定については、上記位置情報の入力とは異なった上記入力手段からの他の入力の有無や変化によって代用する。例えば、上記入力手段に設けられた操作ボタンの押下（例えば、マウスの右クリック中または左クリック中）しているか否かによって、上記タッチオンまたはタッチオフの判定を代用する。
【０１３０】
また、ゲームコントローラをプレイヤが把持してゲームを楽しむ据置型のゲーム装置の場合、他の態様のポインティングデバイスも考えられる。例えば、ゲームコントローラのハウジングに固設されたカメラを、上記ポインティングデバイスとして利用することも可能である。この場合、ゲームコントローラのハウジングで指し示した位置の変化に応じてカメラが撮像する撮像画像が変化する。したがって、この撮像画像を解析することにより、表示画面に対して上記ハウジングで指し示した座標を算出することができる。
【０１３１】
この場合、上記ハウジングで指し示した位置を示す座標を、上述した処理におけるタッチ座標として取り扱えば本発明を実現することが可能である。ただし、上述した処理におけるタッチオンまたはタッチオフの判定については、上記座標入力とは異なった上記ゲームコントローラからの他の入力の有無や変化によって代用する。第１の例として、上記ゲームコントローラに設けられた操作ボタンの押下（例えば、Ａボタンを押下しているときタッチオン）しているか否かによって、上記タッチオンまたはタッチオフの判定を代用する。第２の例では、上記ゲームコントローラが２つのハウジングで構成されている。そして、これら２つのハウジングは、上記カメラが搭載されている一方ハウジングと、他方のハウジングの動きに応じた信号を出力する加速度センサ等の検出部が固設された当該他方のハウジングとで構成される。この場合、他方のハウジングの動き（例えば、ハウジングを所定方向に傾けているときにタッチオン）に応じて、上記タッチオンまたはタッチオフの判定を代用する。第３の例では、上記ゲームコントローラのハウジングにマイク等の音声入力手段が設けられている。この場合、プレイヤが所定の音声を発したときにタッチオンおよびタッチオフが切り替わる判定で代用する。
【０１３２】
なお、上述した描画処理において、描画パターンを重ね合わせて再描画する際、ビットマップ情報を加算することによって表示される色濃度が濃くなる一例を示したが、他の方向を用いて同様の再描画を行ってもかまわない。例えば、白色のＲＧＢ値（２５５，２５５，２５５）から黒色のＲＧＢ値（０，０，０）を１〜０の値で正規化し、当該正規化した値をビットマップ情報として取り扱う。このように設定されたビットマップ情報は、白色（つまり、「１」）以外のビットマップ情報を乗算することによって、黒色（つまり、「０」）に近づいていく。このように、描画パターンを重ね合わせて再描画する際、ビットマップ情報を乗算することによって表示される色濃度が濃くなるように描画処理を行ってもかまわない。
【０１３３】
また、上述した一例では、指示位置Ｐに配置する要素画像の一例として描画パターンを用いたが、他の態様の要素画像を用いてもかまわない。例えば、各指示位置Ｐを中心とした所定半径（例えば、描画太さＷｉ）の円を描く処理を行う。これによって、各指示位置Ｐに円形状の要素画像が配置され、互いに重なり合うことによって上述した手書き文字Ｃを描画することができる。
【０１３４】
また、上述した説明では、ポイントバッファにカウントフラグ、目標太さ、描画太さ、および入力状態を、各指示位置Ｐの履歴毎に記述したが、何れかのデータを記述しなくてもかまわない。例えば、描画太さについては、上述したように記述された目標太さおよびバッファ番号から算出することができるため、処理毎に各目標太さから算出して取得してもかまわない。また、入力状態については、最新の指示位置Ｐに対して設定されている入力状態が常にポイントバッファに記述されている各指示位置Ｐの入力状態とすれば、入力状態の履歴をポイントバッファに記述しなくてもよい。この場合、再描画される指示位置Ｐ（すなわち、ポイントバッファに格納されている指示位置Ｐ）には、最新の指示位置Ｐに設定されている入力状態に応じた描画パターンが再描画されることになる。
【０１３５】
また、上述した実施形態では、プレイヤのタッチ入力に応じて手書き文字Ｃが描画される例を用いたが、他の対象物を描画してもかまわない。例えば、図形や絵等を描画する処理においても、同様に本発明を適用できることは言うまでもない。また、上述した説明では、白色〜灰色〜黒色の無彩色の手書き文字Ｃが描画される例を用いたが、他の色彩の手書き文字Ｃを描画することも可能である。この場合、描画する文字色に応じて、図１０に示すパレット情報テーブルのパレット情報をビットマップ情報に応じて調整すれば、有彩色の手書き文字Ｃであっても、同様の処理によって本発明を実現することができる。
【０１３６】
また、ゲームコントローラをプレイヤが把持してゲームを楽しむ据置型のゲーム装置におけるポインティングデバイスは、ゲームコントローラのハウジングの外部に別設されてもよい。一例として、カメラでハウジングの外部から当該ハウジングを撮影し、撮像画像内に撮像されたハウジングの画像を解析することにより、表示画面に対してハウジングで指し示している位置を示す座標を算出することが可能である。さらに、ハウジングに固設されたユニットとハウジング外部に別設されたユニットとの協働によるシステムを用いてもよい。この例としては、ハウジング外部に発光ユニットを別設し、ハウジングに固設されたカメラで発光ユニットからの光を撮影する。このカメラで撮像された撮像画像を解析することにより、表示画面に対してハウジングが指し示している座標を算出することができる。
【０１３７】
また、上記実施例では、携帯型のゲーム装置１や据置型のゲーム装置を用いて説明したが、一般的なパーソナルコンピュータ等の情報処理装置で本発明の描画処理プログラムを実行して、本発明を実現してもかまわない。
【０１３８】
また、上述したゲーム装置１の形状や、それに設けられている各種操作ボタン１４やタッチパネル１５の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した描画パターンの設定数および形状等や、各種設定値および判定値等は、単なる一例に過ぎず他の値であっても、本発明を実現できることは言うまでもない。
【０１３９】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
【産業上の利用可能性】
【０１４０】
本発明の描画処理プログラムおよび描画処理装置は、ポインティングデバイスによる座標入力に応じた描画処理において、よりリアルな描画を可能とし、座標入力を用いて手書き入力した文字や図形等を表示装置に表示する装置や当該装置で実行されるプログラム等として有用である。
【図面の簡単な説明】
【０１４１】
【図１】本発明の一実施形態に係るゲームプログラムを実行するゲーム装置１の外観図
【図２】図１のゲーム装置１の内部構成を示すブロック図
【図３】図１の第１のＬＣＤ１１および第２のＬＣＤ１２に表示される画面表示例を示す図
【図４Ａ】図１の第２のＬＣＤ１２に表示されるゲーム画像とタッチ操作される位置との関係を説明するための第１段階の状態を示す図
【図４Ｂ】図１の第２のＬＣＤ１２に表示されるゲーム画像とタッチ操作される位置との関係を説明するための第２段階の状態を示す図
【図４Ｃ】図１の第２のＬＣＤ１２に表示されるゲーム画像とタッチ操作される位置との関係を説明するための第３段階の状態を示す図
【図５】本発明の一実施形態に係るゲームプログラムを実行することに応じて、ＲＡＭ２４に記憶される各種データの一例を示す図
【図６】図２のＲＡＭ２４に記憶されるポイントバッファの一例を示す図
【図７】図２のＲＡＭ２４に記憶されるスライド状態の描画パターンデータの一例を示す図
【図８】図２のＲＡＭ２４に記憶される入り状態の描画パターンデータの一例を示す図
【図９】図２のＲＡＭ２４に記憶されるつなぎ状態の描画パターンデータの一例を示す図
【図１０】図２のＲＡＭ２４に記憶されるパレット情報テーブルの一例を示す図
【図１１】本発明の一実施形態に係るゲームプログラムを実行することによってゲーム装置１がゲーム処理を行うフローチャート
【図１２】図１１におけるステップ６０の目標太さ算出処理の詳細な動作を示すサブルーチン
【図１３】図１１におけるステップ６１の入力状態設定処理の詳細な動作を示すサブルーチン
【図１４】図１１におけるステップ６２の描画処理の詳細な動作を示すサブルーチン
【図１５】ビットマップ情報を書き換える一例と、当該ビットマップ情報に応じて表示される画像例
【図１６】プレイヤの入力状態が「入り」→「つなぎ」→「スライド」に移り変わったときの手書き文字Ｃの一例を示す図
【図１７】プレイヤの入力状態が「スライド」→「止め」に移り変わったときの手書き文字Ｃの一例を示す図
【図１８】プレイヤの入力状態が「スライド」のままでタッチパネル１５からタッチオフされたときの手書き文字Ｃの一例を示す図
【符号の説明】
【０１４２】
１  ゲーム装置
１１  第１のＬＣＤ
１２  第２のＬＣＤ
１３  ハウジング
１３ａ  上側ハウジング
１３ｂ  下側ハウジング
１４  操作スイッチ部
１４ａ  十字スイッチ
１４ｂ  スタートスイッチ
１４ｃ  セレクトスイッチ
１４ｄ  Ａボタン
１４ｅ  Ｂボタン
１４ｆ  Ｘボタン
１４ｇ  Ｙボタン
１４ｈ  電源スイッチ
１４Ｌ  Ｌボタン
１４Ｒ  Ｒボタン
１５  タッチパネル
１６  スティック
１７  メモリカード
１７ａ  ＲＯＭ
１７ｂ  ＲＡＭ
１８ａ、１８ｂ  音抜き孔
２０  電子回路基板
２１  ＣＰＵコア
２２  バス
２３  コネクタ
２４  ＲＡＭ
２５  Ｉ／Ｆ回路
２６  第１ＧＰＵ
２７  第２ＧＰＵ
２８  第１ＶＲＡＭ
２９  第２ＶＲＡＭ
３０ａ  右スピーカ
３０ｂ  左スピーカ
３１  ＬＣＤコントローラ
３２  レジスタ
３３  ワイヤレス通信部
【図１】
2008269059.tif 000004
【図２】
2008269059.tif 000005
【図３】
2008269059.tif 000006
【図４Ａ】
2008269059.tif 000007
【図４Ｂ】
2008269059.tif 000008
【図４Ｃ】
2008269059.tif 000009
【図５】
2008269059.tif 000010
【図６】
2008269059.tif 000011
【図７】
2008269059.tif 000012
【図８】
2008269059.tif 000013
【図９】
2008269059.tif 000014
【図１０】
2008269059.tif 000015
【図１１】
2008269059.tif 000016
【図１２】
2008269059.tif 000017
【図１３】
2008269059.tif 000018
【図１４】
2008269059.tif 000019
【図１５】
2008269059.tif 000020
【図１６】
2008269059.tif 000021
【図１７】
2008269059.tif 000022
【図１８】
2008269059.tif 000023