(57)【要約】【課題】より簡易な操作によって、オブジェクトを任意の位置に、かつ任意の向きで表示させることが可能なユーザインターフェイスを実現する画像処理プログラムおよび画像処理装置を提供する。【解決手段】ユーザが第１入力点Ｐ１をタッチペン２７等でタッチすると、この第１入力点Ｐ１の座標を示すタッチ位置データが得られる。１個目のオブジェクトＯＢＪ２１（スタンプ）が第１入力点Ｐ１に応じて配置される。ユーザがタッチ状態のままタッチペン２７等を第２入力点Ｐ２に移動（スライド操作）すると、オブジェクトＯＢＪ２１は、その角度基準線が算出される基準線Ｌ２と一致するように、その向きがリアルタイムで変更される。【選択図】図１２
2010079589.tif 000002
【特許請求の範囲】
【請求項１】
入力手段および表示手段が利用可能なコンピュータで実行される画像処理プログラムであって、前記画像処理プログラムは、前記コンピュータに
前記入力手段に対する操作によって入力される座標値を検出する座標検出ステップと、
前記検出された座標値のうちの所定の座標値を第１オブジェクト配置座標値として取得し、当該第１オブジェクト配置座標値に基づいて、前記表示手段の対応する位置に第１オブジェクトを表示する第１オブジェクト表示ステップと、
前記検出された座標値のうち前記第１オブジェクト配置座標値に引き続く座標値である継続座標値を取得する継続座標取得ステップと、
前記継続座標値に応じて、前記表示手段に表示される前記第１オブジェクトの向きを変更する向き変更ステップとを実行させる、画像処理プログラム。
【請求項２】
前記第１オブジェクト表示ステップは、前記座標値の検出が開始された直後の座標値を前記第１オブジェクト配置座標値とする、請求項１に記載の画像処理プログラム。
【請求項３】
前記継続座標取得ステップは、
前記第１オブジェクト配置座標値の検出に引き続いて前記座標値の検出が継続しているか否かを判断するステップと、
前記座標値が継続して検出されている間に入力される座標値が、前記第１オブジェクトの向きを変更する条件である向き変更条件を満足するか否かを判断するステップとを含み、
前記向き変更ステップは、前記向き変更条件を満足すると判断された座標値を、前記継続座標値として用いて、当該継続座標値に応じて、前記第１オブジェクトの向きを変更する、請求項１または２に記載の画像処理プログラム。
【請求項４】
前記向き変更条件は、前記第１オブジェクト配置座標値と前記継続座標値との間の距離が予め定められたしきい値を超えることを含む、請求項３に記載の画像処理プログラム。
【請求項５】
前記向き変更ステップは、前記第１オブジェクトの向きを、前記第１オブジェクト配置座標値と前記継続座標値との間の位置関係に基づいて決定する、請求項１〜４のいずれか１項に記載の画像処理プログラム。
【請求項６】
前記向き変更ステップは、前記第１オブジェクト配置座標値と前記継続座標値とを通る線に基づいて、前記第１オブジェクトの向きを決定する、請求項５に記載の画像処理プログラム。
【請求項７】
前記継続座標取得ステップは、前記座標値の検出が継続している間、前記継続座標値を随時取得し、
前記向き変更ステップは、前記座標値の検出が継続している間、随時取得される各前記継続座標値に応じて、前記表示手段に表示される前記第１オブジェクトの向きを随時変更する、請求項１〜６のいずれか１項に記載の画像処理プログラム。
【請求項８】
前記画像処理プログラムは、前記コンピュータに、前記第１オブジェクトの向きを確定するための向き確定条件を満足する操作がなされたか否かを判断する向き確定条件判定ステップをさらに実行させ、
前記向き変更ステップは、
前記向き確定条件が満足される前は、前記継続座標値が更新される毎に、それぞれの前記継続座標値に基づいて前記第１オブジェクトの向きを随時変更し、
前記向き確定条件が満足された後は、前記第１オブジェクトの向きを固定する、請求項１〜７のいずれか１項に記載の画像処理プログラム。
【請求項９】
前記画像処理プログラムは、前記コンピュータに、前記第１オブジェクトの向きを確定するための向き確定条件を満足する操作がなされたか否かを判断する向き確定条件判定ステップをさらに実行させ、
前記向き変更ステップは、
前記向き確定条件が満足される前は、前記第１オブジェクトの向きを初期状態に維持し、
前記向き確定条件が満足されると、前記向き確定条件が満足されたときの前記継続座標値に基づいて前記第１オブジェクトの向きを変更した上で、前記第１オブジェクトを変更後の向きに固定する、請求項１〜６のいずれか１項に記載の画像処理プログラム。
【請求項１０】
前記向き確定条件は、前記第１オブジェクト配置座標値と前記継続座標値との間の距離が所定値以上になることを含む、請求項８または９に記載の画像処理プログラム。
【請求項１１】
前記向き確定条件は、前記第１オブジェクト配置座標値の取得後、前記座標値の検出が途絶えることを含む、請求項７〜９のいずれか１項に記載の画像処理プログラム。
【請求項１２】
前記画像処理プログラムは、前記コンピュータに、第２オブジェクトを前記表示手段に表示する第２オブジェクト表示ステップをさらに実行させ、
前記第２オブジェクト表示ステップは、
前記第１オブジェクト配置座標値の検出に引き続いて前記座標値が継続して検出されている間に入力される座標値が、前記第２オブジェクトを表示するか否かを判定するための第２オブジェクト表示条件を満足するか否かを判断するステップと、
前記第２オブジェクト表示条件を満足すると判断された座標値を第２オブジェクト配置座標とし、当該座標に基づいて、前記表示手段の対応する位置に前記第２オブジェクトを表示するステップとを含む、請求項１〜１１のいずれか１項に記載の画像処理プログラム。
【請求項１３】
前記第２オブジェクト表示条件は、前記向き確定条件と同一であり、当該条件を満足すると判断された座標値に基づいて、前記第１オブジェクトの向きが確定され、かつ、当該座標値に対応する位置に前記第２オブジェクトが表示される、請求項１２に記載の画像処理プログラム。
【請求項１４】
前記第２オブジェクト表示ステップは、前記第２オブジェクトの向きを、前記第１オブジェクト配置座標値と前記第２オブジェクト配置座標値の位置関係に基づいて決定する、請求項１２または１３に記載の画像処理プログラム。
【請求項１５】
前記画像処理プログラムは、前記コンピュータに、入力画像を前記表示手段に表示する入力画像表示ステップをさらに実行させ、
前記オブジェクトは、表示される前記入力画像に重ねて表示される、請求項１〜１２のいずれか１項に記載の画像処理プログラム。
【請求項１６】
入力手段および表示手段が利用可能なコンピュータで実行される画像処理プログラムであって、前記画像処理プログラムは、前記コンピュータに
前記入力手段に対する操作によって連続的に入力される座標値の変化を検出するステップと、
前記座標値の変化に対応する前記表示手段上の軌跡に応じて、少なくとも１つのオブジェクトを順次表示するステップとを実行させ、
前記少なくとも１つのオブジェクトの各々の向きは、前記表示手段上の軌跡に応じて順次決定される、画像処理プログラム。
【請求項１７】
入力手段および表示手段が利用可能な画像処理装置であって、
ユーザ操作によって入力される座標値を検出する検出手段と、
前記検出された座標値のうちの所定の座標値を第１オブジェクト配置座標値として取得し、当該第１オブジェクト配置座標値に基づいて、前記表示手段の対応する位置に第１オブジェクトを表示する第１オブジェクト表示手段と、
前記検出された座標値のうち前記第１オブジェクト配置座標値に引き続く座標値である継続座標値を取得する継続座標取得手段と、
前記継続座標値に応じて、前記表示手段に表示される前記第１オブジェクトの向きを変更する向き変更手段とを備える、画像処理装置。
【請求項１８】
入力手段および表示手段が利用可能な画像処理装置であって、
前記入力手段に対する操作によって連続的に入力される座標値の変化を検出する検出手段と、
前記座標値の変化に対応する前記表示手段上の軌跡に応じて、少なくとも１つのオブジェクトを順次表示するオブジェクト表示手段とを備え、
前記少なくとも１つのオブジェクトの各々の向きは、前記表示手段上の軌跡に応じて順次決定される、画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ユーザ操作によって入力される座標値に応じた表示制御が可能な画像処理プログラムおよび画像処理装置に関する。
【背景技術】
【０００２】
従来から、タッチパネルなどを介したユーザ操作に応じて、画面上に表示されるオブジェクトに対する変更（移動、回転、縮小、拡大など）を行なう画像処理技術が知られている。
【０００３】
たとえば、特開２００５−２７７８９１号公報（特許文献１）には、回転機能付タッチペンを用いて、既に画面に表示済みのスタンプ画像の回転属性を変更する写真シール販売機が開示されている。また、特開平１０−１８８０１４号公報（特許文献２）および特開２００３−３２３２４１号公報（特許文献３）には、既に画面に表示済みの画像オブジェクトについて、所定の場所をドラッグ操作をすることにより、回転表示する技術が開示されている。また、特開２００３−１４１５５８号（特許文献４）には、タッチ位置にスタンプ画像を配置する技術が開示されている。
【特許文献１】特開２００５−２７７８９１号公報
【特許文献２】特開平１０−１８８０１４号公報
【特許文献３】特開２００３−３２３２４１号公報
【特許文献４】特開２００３−１４１５５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１から３の技術は、既に画面に表示済みのオブジェクト画像についての回転属性を変更するものであった。また、特許文献４の技術は、スタンプ画像の向きの制御ができないものであった。
【０００５】
この発明は、このような課題を解決するためになされたものであって、その目的は、より簡易な操作によって、オブジェクトを任意の位置に、かつ任意の向きで表示させることが可能なユーザインターフェイスを実現する画像処理プログラムおよび画像処理装置を提供することである。
【課題を解決するための手段】
【０００６】
この発明のある局面に従えば、入力手段（１３：実施の形態で相当する参照符号。以下同じ。）および表示手段（１２）が利用可能なコンピュータ（１００）で実行される画像処理プログラムを提供する。画像処理プログラムは、コンピュータ（１００）に、入力手段（１３）に対する操作によって入力される座標値を検出する座標検出ステップ（Ｓ１０４）と、検出された座標値のうちの所定の座標値を第１オブジェクト配置座標値として取得し、当該第１オブジェクト配置座標値に基づいて、表示手段の対応する位置に第１オブジェクトを表示する第１オブジェクト表示ステップ（Ｓ１３２，Ｓ１３６，Ｓ５０２，Ｓ５０６，Ｓ５０８）と、検出された座標値のうち第１オブジェクト配置座標値に引き続く座標値である継続座標値を取得する継続座標取得ステップ（Ｓ５１０〜Ｓ５１４）と、継続座標値に応じて、表示手段に表示される第１オブジェクトの向きを変更する向き変更ステップ（Ｓ５１６，Ｓ５１８）とを実行させる。
【０００７】
なお、第１オブジェクト表示ステップでは、第１オブジェクト配置座標値が検出された時に、第１オブジェクトが表示されることが好ましい。
【０００８】
この発明によれば、ユーザが入力手段（１３）を操作すると、当該操作によって第１オブジェクト配置座標値が取得され、この第１オブジェクト配置座標値に対応する表示手段（１２）の位置にオブジェクトが表示される。さらに、ユーザが引き続いて入力手段（１３）を操作すると、当該引き続く操作によって継続配置座標値が取得され、この継続座標値に基づいて、オブジェクトの向きが変更される。
【０００９】
好ましくは、第１オブジェクト表示ステップは、座標値の検出が開始された直後の座標値を第１オブジェクト配置座標値とする（Ｓ１３２，Ｓ１３６，Ｓ５０２）。
【００１０】
この発明によれば、ユーザが入力手段を操作すると、即座にオブジェクトが表示（配置）されるため、入力操作についてのストレスをユーザに与えることを抑制できる。
【００１１】
このましくは、継続座標取得ステップは、第１オブジェクト配置座標値の検出に引き続いて座標値の検出が継続しているか否かを判断するステップ（Ｓ５１０）と、座標値が継続して検出されている間に入力される座標値が、第１オブジェクトの向きを変更する条件である向き変更条件を満足するか否かを判断するステップ（Ｓ５１４）とを含む。向き変更ステップは、向き変更条件を満足すると判断された座標値を、継続座標値として用いて（Ｓ５１２）、当該継続座標値に応じて、第１オブジェクトの向きを変更する。
【００１２】
一実施形態によれば、向き変更条件は、ユーザの意図しない操作によりオブジェクトの向きが変更されることを抑制するための条件であり、このような向き変更条件を用いることで、ユーザの意図しないままオブジェクトが変更されてしまうことを抑制できる。これにより、ユーザは、入力操作についてのストレスを感じることなく、快適に入力操作を行なうことができる。
【００１３】
さらに好ましくは、向き変更条件は、第１オブジェクト配置座標値と継続座標値との間の距離が予め定められたしきい値を超えることを含む。なお、距離とは、座標点間の直線距離（ユークリッド距離）および道のり距離（軌跡距離）のいずれをも含む。
【００１４】
この発明によれば、ユーザが入力手段に対する操作をやめた場合などに、入力される座標が微妙に変化したとしても、表示されるオブジェクトに対する誤操作が生じることを抑制できる。そのため、入力操作についてのストレスをユーザに与えることを抑制できる。
【００１５】
好ましくは、向き変更ステップは、第１オブジェクトの向きを、第１オブジェクト配置座標値と継続座標値との間の位置関係に基づいて決定する。
【００１６】
さらに好ましくは、向き変更ステップは、第１オブジェクト配置座標値と継続座標値とを通る線に基づいて、第１オブジェクトの向きを決定する（Ｓ５１６，Ｓ５１８）。
【００１７】
この発明によれば、オブジェクトが表示された後、ユーザが行なう操作に追従してオブジェクトの向きが変更されることになり、ユーザはより直感的に所望のオブジェクトの向きを指示することができる。
【００１８】
好ましくは、継続座標取得ステップは、座標値の検出が継続している間、継続座標値を随時取得し、向き変更ステップは、座標値の検出が継続している間、随時取得される各継続座標値に応じて、表示手段に表示される第１オブジェクトの向きを随時変更する。
【００１９】
この発明によれば、ユーザが操作を継続して行なっている間、表示手段に表示されるオブジェクトは実質的にリアルタイムでその向きを変更されるので、ユーザは、操作レスポンスの良さを体感することができる。
【００２０】
好ましくは、画像処理プログラムは、コンピュータに、第１オブジェクトの向きを確定するための向き確定条件を満足する操作がなされたか否かを判断する向き確定条件判定ステップ（Ｓ５２０）をさらに実行させる。向き変更ステップは、向き確定条件が満足される前は、継続座標値が更新される毎に、それぞれの継続座標値に基づいて第１オブジェクトの向きを随時変更し、向き確定条件が満足された後は、第１オブジェクトの向きを固定する（Ｓ５１６，Ｓ５１８，Ｓ５５２）。
【００２１】
この発明によれば、オブジェクトがユーザの所望する向きで表示されるようになった後、ユーザが向き確定条件を満足する操作を行なうことで、オブジェクトは当該向きに固定される。これにより、ユーザは、さまざまなオブジェクトを表示させたい場合などに、各オブジェクトの配置および向きの決定を連続的に行なうことができる。
【００２２】
好ましくは、画像処理プログラムは、コンピュータに、第１オブジェクトの向きを確定するための向き確定条件を満足する操作がなされたか否かを判断する向き確定条件判定ステップ（Ｓ５２０）をさらに実行させる。向き変更ステップは、向き確定条件が満足される前は、第１オブジェクトの向きを初期状態に維持し、向き確定条件が満足されると、向き確定条件が満足されたときの継続座標値に基づいて第１オブジェクトの向きを変更した上で、第１オブジェクトを変更後の向きに固定する。
【００２３】
この発明によれば、ユーザが操作を継続して行なった場合であっても、オブジェクトの向きは向き確定条件が満足されるまで変更されないので、演算処理量を低減することができる。
【００２４】
好ましくは、向き確定条件は、第１オブジェクト配置座標値と継続座標値との間の距離が所定値以上になることを含む。
【００２５】
好ましくは、向き確定条件は、第１オブジェクト配置座標値の取得後、座標値の検出が途絶えることを含む。
【００２６】
この発明によれば、ユーザが入力手段に対する操作を止めたタイミングで、向き確定条件が満足されるので、ユーザは、オブジェクトが所望の向きに変更された後、たとえば、タッチパネルの入力面からタッチペン等を離すといった操作を行なうだけで、オブジェクトの向きを容易に決定することができる。
【００２７】
好ましくは、画像処理プログラムは、コンピュータに、第２オブジェクトを表示手段に表示する第２オブジェクト表示ステップ（Ｓ５３０〜Ｓ５３８）をさらに実行させる。第２オブジェクト表示ステップは、第１オブジェクト配置座標値の検出に引き続いて座標値が継続して検出されている間に入力される座標値が、第２オブジェクトを表示するか否かを判定するための第２オブジェクト表示条件を満足するか否かを判断するステップ（Ｓ５３４）と、第２オブジェクト表示条件を満足すると判断された座標値を第２オブジェクト配置座標とし、当該座標に基づいて、表示手段の対応する位置に第２オブジェクトを表示するステップ（Ｓ５３８）とを含む。
【００２８】
この発明によれば、ユーザが連続的に操作を行なうことで、複数のオブジェクトが順次表示される。これにより、ユーザは、簡単な操作によって、複数のオブジェクトを連続的に表示させることができる。
【００２９】
好ましくは、第２オブジェクト表示条件は、向き確定条件と同一であり、当該条件を満足すると判断された座標値に基づいて、第１オブジェクトの向きが確定され、かつ、当該座標値に対応する位置に第２オブジェクトが表示される。
【００３０】
この発明によれば、先に表示されるオブジェクトの向きが固定（確定）されると、当該固定された座標値に基づいて、次のオブジェクトが表示される。これにより、ユーザは、より迅速に複数のオブジェクトを連続的に表示させることができる。
【００３１】
好ましくは、第２オブジェクト表示ステップは、第２オブジェクトの向きを、第１オブジェクト配置座標値と第２オブジェクト配置座標値の位置関係に基づいて決定する（Ｓ５３６，Ｓ５３８）。
【００３２】
この発明によれば、たとえば、ユーザ操作によって入力される軌跡に沿った向きに、オブジェクトが順次配置されるので、複数のオブジェクトをユーザ操作に応じた向きに配置することができる。
【００３３】
好ましくは、画像処理プログラムは、コンピュータに、入力画像を表示手段に表示する入力画像表示ステップ（Ｓ２００〜Ｓ２０４）をさらに実行させる。オブジェクトは、表示される入力画像に重ねて表示される。
【００３４】
この発明によれば、ユーザは、入力画像の上に「らくがき」する感覚を得ることができる。これにより、たとえばカメラなどによって撮影された画像に対して、自在に編集操作などを行なうことができる。よって、ユーザは、所望の画像を自身で作成して楽しむことができる。
【００３５】
この発明の別の局面に従えば、入力手段（１３）および表示手段（１２）が利用可能なコンピュータ（１００）で実行される画像処理プログラムを提供する。画像処理プログラムは、コンピュータ（１００）に、入力手段に対する操作によって連続的に入力される座標値の変化を検出するステップ（Ｓ５１０，Ｓ５２０，Ｓ５２４，Ｓ５２８〜Ｓ５３２）と、座標値の変化に対応する表示手段上の軌跡に応じて、少なくとも１つのオブジェクトを順次表示するステップ（Ｓ５０８，Ｓ５１６，Ｓ５１８，Ｓ５２６，Ｓ５３６，Ｓ５３８）とを実行させる。少なくとも１つのオブジェクトの各々の向きは、表示手段上の軌跡に応じて順次決定される。
【００３６】
この発明のさらに別の局面に従えば、入力手段（１３）および表示手段（１２）が利用可能な画像処理装置（１００）を提供する。画像処理装置（１００）は、ユーザ操作によって入力される座標値を検出する検出手段と、検出された座標値のうちの所定の座標値を第１オブジェクト配置座標値として取得し、当該第１オブジェクト配置座標値に基づいて、表示手段の対応する位置に第１オブジェクトを表示する第１オブジェクト表示手段（３１；Ｓ５０２，Ｓ５０６，Ｓ５０８）と、検出された座標値のうち第１オブジェクト配置座標値に引き続く座標値である継続座標値を取得する継続座標取得手段と、継続座標値に応じて、表示手段に表示される第１オブジェクトの向きを変更する向き変更手段（３１；Ｓ５１６，Ｓ５１８）とを備える。
【００３７】
この発明のさらに別の局面に従えば、入力手段（１３）および表示手段（１２）が利用可能な画像処理装置（１００）を提供する。画像処理装置（１００）は、入力手段に対する操作によって連続的に入力される座標値の変化を検出する検出手段（１３，３１；Ｓ５１０，Ｓ５２０，Ｓ５２４，Ｓ５２８〜Ｓ５３２）と、座標値の変化に対応する表示手段上の軌跡に応じて、少なくとも１つのオブジェクトを順次表示するオブジェクト表示手段（３１；Ｓ５０８，Ｓ５１６，Ｓ５１８，Ｓ５２６，Ｓ５３６，Ｓ５３８）とを備える。少なくとも１つのオブジェクトの各々の向きは、表示手段上の軌跡に応じて順次決定される。
【発明の効果】
【００３８】
この発明によれば、より簡易な操作によって、オブジェクトを任意の位置に、かつ任意の向きで表示させることが可能なユーザインターフェイスを提供できる。
【発明を実施するための最良の形態】
【００３９】
この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００４０】
［実施の形態１］
本発明に係るコンピュータないし画像処理装置の代表例として、以下ではゲーム装置１００について説明する。また、本発明に係る画像処理プログラムの一例として、当該ゲーム装置１００で実行されるプログラムについて説明する。なお、本発明に係る画像処理装置は、ゲーム装置に限定されることはなく、各種アプリケーションを実行可能なパーソナルコンピュータとして実現してもよい。すなわち、本発明に係る画像処理プログラムは、入力手段および表示手段が利用可能なコンピュータであれば、いずれの種類のコンピュータであっても実行可能である。なお、「利用可能な」とは、入力手段と表示手段がコンピュータと有線または無線で接続されており、データの通信が可能であることを意味し、入力手段や表示手段がコンピュータ装置と一体である場合と、別体である場合の両方を含む。
【００４１】
また、本発明に係る画像処理プログラムは、パーソナルコンピュータ上で実行される各種アプリケーションの機能として組み込まれてもよい。また、以下では携帯型装置について説明するが、据え置き型の装置であってもかまわない。
【００４２】
また、入力手段としては、後述するように携帯型装置であれば、後述するようにタッチパネルが好ましいが、代替的にマウスなどでもよい。あるいは、表示モニタに対して遠隔から座標指示可能なポインタ（典型的には、Ｗｉｉ（登録商標）のコントローラなど）などであってもかまわない。なお、マウスやポインタの場合には、後述する実施の形態における「タッチオン」の座標は、所定の操作（ボタン操作など）があったときの検出座標とすればよく、「タッチ状態が継続」の判定は、所定の操作が継続（例えば、当該ボタン操作が継続）しているという判定とすることができる。
【００４３】
＜ゲーム装置の外観＞
図１は、この発明の実施の形態１に従うゲーム装置１００の外観図である。
【００４４】
図１を参照して、本実施の形態に従うゲーム装置１００は、折り畳み型の携帯ゲーム装置である。図１では、開いた状態（開状態）のゲーム装置１００が示されている。ゲーム装置１００は、開いた状態においてもユーザが両手または片手で把持することができるようなサイズで構成される。
【００４５】
ゲーム装置１００は、下側ハウジング１１および上側ハウジング２１を有する。下側ハウジング１１と上側ハウジング２１とは、開閉可能（折り畳み可能）に連結されている。図１に示す例では、下側ハウジング１１および上側ハウジング２１は、それぞれ横長の長方形の板状に形成され、互いの長辺部分で回転可能に連結されている。
【００４６】
通常、ユーザは、開状態でゲーム装置１００を使用する。また、ユーザは、ゲーム装置１００を使用しない場合には閉状態としてゲーム装置１００を保管する。また、図１に示す例では、ゲーム装置１００は、上記閉状態および開状態のみでなく、下側ハウジング１１と上側ハウジング２１とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング２１を下側ハウジング１１に対して任意の角度で静止させることができる。
【００４７】
下側ハウジング１１には、表示部（表示手段）として、下側ＬＣＤ（Liquid Crystal Display：液晶表示装置）１２が設けられる。下側ＬＣＤ１２は横長形状であり、長辺方向が下側ハウジング１１の長辺方向に一致するように配置される。なお、本実施の形態では、ゲーム装置１００に搭載される表示部（表示手段）としてＬＣＤを用いているが、たとえばＥＬ（Electro Luminescence：電界発光）を利用した表示装置等、他の任意の表示装置を利用してもよい。また、ゲーム装置１００は、任意の解像度の表示装置を利用することができる。
【００４８】
下側ハウジング１１には、入力部（入力手段）として、各操作ボタン１４Ａ〜１４Ｈが設けられる。図１に示されるように、各操作ボタン１４Ａ〜１４Ｈのうち、方向入力ボタン１４Ａ、操作ボタン１４Ｂ、操作ボタン１４Ｃ、操作ボタン１４Ｄ、操作ボタン１４Ｅ、電源ボタン１４Ｆ、スタートボタン１４Ｇ、およびセレクトボタン１４Ｈは、上側ハウジング２１と下側ハウジング１１とを折りたたんだときに内側となる、下側ハウジング１１の内側主面上に設けられる。
【００４９】
方向入力ボタン１４Ａは、たとえば選択操作等に用いられる。各操作ボタン１４Ｂ〜１４Ｅは、たとえば決定操作やキャンセル操作等に用いられる。電源ボタン１４Ｆは、ゲーム装置１００の電源をオン／オフするために用いられる。図１に示す例では、方向入力ボタン１４Ａおよび電源ボタン１４Ｆは、下側ハウジング１１の内側主面中央付近に設けられる下側ＬＣＤ１２に対して、左右一方側（図１では左側）の当該主面上に設けられる。
【００５０】
また、操作ボタン１４Ｂ〜１４Ｅ、スタートボタン１４Ｇ、およびセレクトボタン１４Ｈは、下側ＬＣＤ１２に対して左右他方側（図１では右側）となる下側ハウジング１１の内側主面上に設けられる。方向入力ボタン１４Ａ、操作ボタン１４Ｂ〜１４Ｅ、スタートボタン１４Ｇ、およびセレクトボタン１４Ｈは、ゲーム装置１００に対する各種操作を行なうために用いられる。
【００５１】
なお、ゲーム装置１００には、図１において図示されていない操作ボタン１４Ｉ〜１４Ｋがさらに設けられてもよい。たとえば、Ｌボタン１４Ｉは、下側ハウジング１１の上側面の左端部に設けられ、Ｒボタン１４Ｊは、下側ハウジング１１の上側面の右端部に設けられる。Ｌボタン１４ＩおよびＲボタン１４Ｊは、ゲーム装置１００に対して、たとえば撮影指示操作（シャッター操作）を行なうために用いられる。さらに、音量ボタン１４Ｋは、下側ハウジング１１の左側面に設けられる。音量ボタン１４Ｋは、ゲーム装置１００が備えるスピーカの音量を調整するために用いられる。
【００５２】
また、ゲーム装置１００は、各操作ボタン１４Ａ〜１４Ｈとは別の入力部（入力手段）として、さらにタッチパネル１３を備えている。タッチパネル１３は、下側ＬＣＤ１２の画面上を覆うように装着されている。
【００５３】
本実施の形態では、タッチパネル１３は、下側ＬＣＤ１２の表示面と対応付けて配置されており、たとえば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル１３は、抵抗膜方式に限らず、任意の押圧式のタッチパネルを用いることができる。
【００５４】
また、本実施の形態では、タッチパネル１３として、たとえば下側ＬＣＤ１２の解像度と同解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１３の解像度と下側ＬＣＤ１２の解像度とが一致している必要はない。
【００５５】
さらに、下側ハウジング１１の右側面には、タッチペン２７の挿入口（図１に示す破線）が設けられている。上記挿入口は、タッチパネル１３に対する操作を行なうために用いられるタッチペン２７を収納することができる。なお、タッチパネル１３に対する入力は、通常タッチペン２７を用いて行われるが、タッチペン２７に限らずユーザの指でタッチパネル１３を操作することも可能である。
【００５６】
さらに、下側ハウジング１１の右側面には、メモリカード２８を収納するための挿入口（図１では、二点鎖線で示している）が設けられている。この挿入口の内側には、ゲーム装置１００とメモリカード２８とを電気的に接続するためのコネクタ（図示せず）が設けられる。メモリカード２８は、たとえばＳＤ（Secure Digital）メモリカードであり、コネクタに着脱自在に装着される。メモリカード２８は、たとえば、ゲーム装置１００によって撮影および／または画像処理された画像を記憶（保存）したり、他の装置で生成された画像をゲーム装置１００に読み込んだりするために用いられる。
【００５７】
さらに、下側ハウジング１１の上側面には、メモリカード２９を収納するための挿入口（図１では、一点鎖線で示している）が設けられている。この挿入口の内側にも、ゲーム装置１００とメモリカード２９とを電気的に接続するためのコネクタ（図示せず）が設けられる。メモリカード２９は、画像通信プログラムやゲームプログラム等を記憶した記憶媒体であり、下側ハウジング１１に設けられた挿入口に着脱自在に装着される。
【００５８】
下側ハウジング１１と上側ハウジング２１との連結部の左側部分には、３つのＬＥＤ１５Ａ〜１５Ｃが取り付けられる。本実施の形態に従うゲーム装置１００は、他の機器との間で無線通信を行なうことが可能であり、第１ＬＥＤ１５Ａは、無線通信が確立している場合に点灯する。第２ＬＥＤ１５Ｂは、ゲーム装置１００の充電中に点灯する。第３ＬＥＤ１５Ｃは、ゲーム装置１００の電源がオンである場合に点灯する。したがって、３つのＬＥＤ１５Ａ〜１５Ｃによって、ゲーム装置１００の通信確立状況、充電状況、および、電源のオン／オフ状況をユーザに通知することができる。
【００５９】
一方、上側ハウジング２１には、上側ＬＣＤ２２が設けられる。上側ＬＣＤ２２は横長形状であり、長辺方向が上側ハウジング２１の長辺方向に一致するように配置される。なお、下側ＬＣＤ１２と同様、上側ＬＣＤ２２に代えて、他の任意の方式および任意の解像度の表示装置を利用してもよい。なお、上側ＬＣＤ２２上を覆うように、タッチパネルを設けてもかまわない。
【００６０】
さらに、上側ハウジング２１には、２つの撮像装置であるカメラ（内側カメラ２３および外側カメラ２５）が設けられる。図１に示されるように、内側カメラ２３は、上側ハウジング２１の連結部付近の内側主面に取り付けられる。一方、外側カメラ２５は、内側カメラ２３が取り付けられる内側主面の反対側の面、すなわち、上側ハウジング２１の外側主面（ゲーム装置１００が閉状態となった場合に外側となる面であり、図１に示す上側ハウジング２１の背面）に取り付けられる。なお、図１においては、外側カメラ２５を破線で示している。
【００６１】
これによって、内側カメラ２３は、上側ハウジング２１の内側主面が向く方向を撮影することが可能であり、外側カメラ２５は、内側カメラ２３の撮影方向の逆方向、すなわち、上側ハウジング２１の外側主面が向く方向を撮影することが可能である。
【００６２】
このように、本実施の形態では、２つの内側カメラ２３および外側カメラ２５の撮影方向が互いに逆方向となるように設けられる。たとえば、ユーザは、ゲーム装置１００からユーザの方を見た景色を内側カメラ２３で撮影することができるとともに、ゲーム装置１００からユーザの反対側の方向を見た景色を外側カメラ２５で撮影することができる。
【００６３】
なお、下側ＬＣＤ１２および／または上側ＬＣＤ２２は、内側カメラ２３または外側カメラ２５で撮影される画像をリアルタイムに表示するために用いられることもある。
【００６４】
さらに、上記連結部付近の内側主面には、音声入力装置としてマイク（図２に示すマイク４３）が収納されている。そして、上記連結部付近の内側主面には、マイク４３がゲーム装置１００外部の音を検知できるように、マイクロフォン用孔１６が形成される。マイク４３を収納する位置およびマイクロフォン用孔１６の位置は必ずしも上記連結部である必要はなく、たとえば下側ハウジング１１にマイク４３を収納し、マイク４３の収納位置に対応させて下側ハウジング１１にマイクロフォン用孔１６を設けるようにしてもよい。
【００６５】
さらに、上側ハウジング２１の外側主面には、第４ＬＥＤ２６（図１では、破線で示す）が取り付けられる。第４ＬＥＤ２６は、内側カメラ２３または外側カメラ２５によって撮影が行われている間点灯する。また、内側カメラ２３または外側カメラ２５によって動画が撮影（撮影画像を動画として記憶）される間は点滅させてもよい。
【００６６】
なお、ＬＥＤが画面に映り込むことを防ぐために、シャッターが押された瞬間から、当該シャッターが押された瞬間の撮影画像の記憶が完了するまでの間は第４ＬＥＤ２６を消灯させてもよい。第４ＬＥＤ２６によって、ゲーム装置１００による撮影が行われていることを撮影対象者や周囲に通知することができる。
【００６７】
さらに、上側ハウジング２１の内側主面中央付近に設けられる上側ＬＣＤ２２に対して、左右両側の当該主面に音抜き孔２４がそれぞれ形成される。音抜き孔２４の奥の上側ハウジング２１内にはスピーカが収納されている。音抜き孔２４は、スピーカからの音をゲーム装置１００の外部に放出するための孔である。
【００６８】
以上に説明したように、上側ハウジング２１には、画像を撮影するための構成である内側カメラ２３および外側カメラ２５と、各種画像を表示するための表示手段である上側ＬＣＤ２２とが設けられる。一方、下側ハウジング１１には、ゲーム装置１００に対する操作入力を行なうための入力部（タッチパネル１３および各ボタン１４Ａ〜１４Ｋ）と、各種画像を表示するための表示手段である下側ＬＣＤ１２とが設けられる。
【００６９】
当該入力装置は、たとえば、ゲーム装置１００を使用する際には、下側ＬＣＤ１２や上側ＬＣＤ２２に撮影画像（カメラによって撮影された画像）を表示しながら、下側ハウジング１１をユーザが把持して入力装置に対する入力を行なうような用途に用いることができる。
【００７０】
＜ゲーム装置の内部構成＞
図２は、この発明の実施の形態１に従うゲーム装置１００の内部構成の一例を示すブロック図である。
【００７１】
図２を参照して、ゲーム装置１００は、ＣＰＵ３１と、メインメモリ３２と、メモリ制御回路３３と、保存用データメモリ３４と、プリセットデータ用メモリ３５と、メモリカードインターフェース（メモリカードＩ／Ｆ）３６および３７と、無線通信モジュール３８と、ローカル通信モジュール３９と、リアルタイムクロック（ＲＴＣ）４０と、電源回路４１と、インターフェース回路（Ｉ／Ｆ回路）４２等との電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて、下側ハウジング１１（または上側ハウジング２１でもよい）内に収納される。
【００７２】
ＣＰＵ３１は、所定のプログラムを実行するための演算処理手段である。本実施の形態では、所定のプログラムがゲーム装置１００内のメモリ（たとえば、保存用データメモリ３４）やメモリカード２８および／または２９に記録されており、ＣＰＵ３１は、当該所定のプログラムを実行することによって、後述する画像処理を実行する。なお、ＣＰＵ３１によって実行されるプログラムは、ゲーム装置１００内のメモリに予め記録されていてもよいし、メモリカード２８および／または２９から取得されてもよいし、他の機器との通信によって他の機器から取得されてもよい。
【００７３】
ＣＰＵ３１には、メインメモリ３２、メモリ制御回路３３、およびプリセットデータ用メモリ３５が接続される。また、メモリ制御回路３３には、保存用データメモリ３４が接続される。
【００７４】
メインメモリ３２は、ＣＰＵ３１のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ３２は、上記情報処理に用いられる各種データを記憶したり、外部（メモリカード２８および２９や他の機器等）から取得されるプログラムを記憶したりする。本実施の形態では、メインメモリ３２として、たとえばＰＳＲＡＭ（Pseudo-SRAM）を用いる。
【００７５】
保存用データメモリ３４は、ＣＰＵ３１によって実行されるプログラムや内側カメラ２３および外側カメラ２５によって撮影された画像のデータ等を記憶するための記憶手段である。保存用データメモリ３４は、不揮発性の記憶媒体によって構成されており、たとえば本実施例ではＮＡＮＤ型フラッシュメモリで構成される。メモリ制御回路３３は、ＣＰＵ３１の指示に従って、保存用データメモリ３４に対するデータの読み出しおよび書き込みを制御する回路である。
【００７６】
プリセットデータ用メモリ３５は、ゲーム装置１００において予め設定される各種パラメータ等のデータ（プリセットデータ）を記憶するための記憶手段である。プリセットデータ用メモリ３５としては、ＳＰＩ（Serial Peripheral Interface）バスによってＣＰＵ３１と接続されるフラッシュメモリを用いることができる。
【００７７】
メモリカードＩ／Ｆ３６および３７は、それぞれＣＰＵ３１に接続される。メモリカードＩ／Ｆ３６は、コネクタに装着されたメモリカード２８に対するデータの読み出しおよび書き込みを、ＣＰＵ３１の指示に応じて行なう。また、メモリカードＩ／Ｆ３７は、コネクタに装着されたメモリカード２９に対するデータの読み出しおよび書き込みを、ＣＰＵ３１の指示に応じて行なう。
【００７８】
本実施の形態では、内側カメラ２３および外側カメラ２５によって撮影された画像データや他の装置から受信された画像データがメモリカード２８に書き込まれたり、メモリカード２８に記憶された画像データがメモリカード２８から読み出されて保存用データメモリ３４に記憶されたり、他の装置へ送信されたりする。また、メモリカード２９に記憶された各種プログラムが、ＣＰＵ３１によって読み出されて実行されたりする。
【００７９】
なお、本発明に係る画像処理プログラムは、メモリカード２９等の外部記憶媒体を通じてコンピュータシステムに供給されるだけでなく、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよい。また、画像処理プログラムは、コンピュータシステム内部の不揮発性記憶装置に予め記憶されていてもよい。なお、画像処理プログラムを記憶する記憶媒体としては、上記不揮発性記憶装置に限らず、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
【００８０】
無線通信モジュール３８は、たとえばＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。また、ローカル通信モジュール３９は、所定の通信方式により同種のゲーム装置との間で無線通信を行なう機能を有する。無線通信モジュール３８およびローカル通信モジュール３９は、ＣＰＵ３１に接続される。ＣＰＵ３１は、無線通信モジュール３８を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール３９を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【００８１】
さらに、ＣＰＵ３１には、ＲＴＣ４０および電源回路４１が接続される。ＲＴＣ４０は、時間をカウントしてＣＰＵ３１に出力する。たとえば、ＣＰＵ３１は、ＲＴＣ４０によって計時された時間に基づいて、現在時刻（日付）等を計算することもできる。電源回路４１は、ゲーム装置１００が有する電源（典型的には電池であり、下側ハウジング１１に収納される）から供給される電力を制御し、ゲーム装置１００の各部品に電力を供給する。
【００８２】
さらに、ゲーム装置１００は、マイク４３およびアンプ４４を備えている。マイク４３およびアンプ４４は、それぞれＩ／Ｆ回路４２に接続される。マイク４３は、ゲーム装置１００に向かって発声されたユーザの音声を検知して、当該音声を示す音声信号をＩ／Ｆ回路４２に出力する。アンプ４４は、Ｉ／Ｆ回路４２から音声信号を増幅してスピーカ（図示せず）から出力させる。Ｉ／Ｆ回路４２は、ＣＰＵ３１に接続される。
【００８３】
また、タッチパネル１３は、Ｉ／Ｆ回路４２に接続される。Ｉ／Ｆ回路４２は、マイク４３およびアンプ４４（スピーカ）の制御を行なう音声制御回路と、タッチパネル１３の制御を行なうタッチパネル制御回路とを含む。
【００８４】
音声制御回路は、音声信号に対するＡ／Ｄ変換およびＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。
【００８５】
タッチパネル制御回路は、タッチパネル１３からの信号に基づいて所定の形式のタッチ位置データを生成してＣＰＵ３１に出力する。たとえば、タッチ位置データは、タッチパネル１３の入力面に対して入力が行われた位置の座標を示すデータである。なお、タッチパネル制御回路は、タッチパネル１３からの信号の読み込み、および、タッチ位置データの生成を所定時間に１回の割合で行なう。
【００８６】
ＣＰＵ３１は、Ｉ／Ｆ回路４２を介して、タッチ位置データを取得することにより、ユーザによるタッチパネル１３に対する操作によって入力される座標を検出することができる。
【００８７】
操作ボタン１４は、上記各操作ボタン１４Ａ〜１４Ｋから構成され、ＣＰＵ３１に接続される。操作ボタン１４からＣＰＵ３１へは、各操作ボタン１４Ａ〜１４Ｋに対する入力状況（押下されたか否か）を示す操作データが出力される。ＣＰＵ３１は、操作ボタン１４から操作データを取得することによって、操作ボタン１４に対する入力に応じた処理を実行する。
【００８８】
内側カメラ２３および外側カメラ２５は、それぞれＣＰＵ３１に接続される。内側カメラ２３および外側カメラ２５は、ＣＰＵ３１の指示に応じて画像を撮影し、撮影した画像データをＣＰＵ３１に出力する。たとえば、ＣＰＵ３１は、内側カメラ２３および外側カメラ２５のいずれか一方に対して撮影指示を行ない、撮影指示を受けたカメラが画像を撮影して画像データをＣＰＵ３１に送る。
【００８９】
また、下側ＬＣＤ１２および上側ＬＣＤ２２は、それぞれＣＰＵ３１に接続される。下側ＬＣＤ１２および上側ＬＣＤ２２は、それぞれＣＰＵ３１の指示に従って画像を表示する。一例として、ＣＰＵ３１は、内側カメラ２３および外側カメラ２５のいずれかから取得した画像を、下側ＬＣＤ１２および上側ＬＣＤ２２の一方に表示させ、所定の処理によって生成した操作説明画面を下側ＬＣＤ１２および上側ＬＣＤ２２の他方に表示させる。
【００９０】
＜ゲーム装置の使用例＞
図３は、この発明の実施の形態１に従うゲーム装置１００の使用形態の一例を示す図である。図３を参照して、ゲーム装置１００では、搭載されたカメラ（内側カメラ２３または外側カメラ２５）で撮影される被写体ＴＲＧなどの画像が下側ＬＣＤ１２にリアルタイムに表示されるとともに、ユーザはタッチペン２７や自身の指など（以下、「タッチペン２７等」と称する）を用いて、下側ＬＣＤ１２上に配置されたタッチパネル１３を操作して、任意のオブジェクトを追加することが可能である。そして、このユーザ操作に応じたオブジェクトが撮影される画像に重ね合わされて表示されるようになる。このように、本実施の形態に従うゲーム装置１００では、カメラで撮影された画像などに対して、ユーザは自由に「らくがき」することが可能である。なお、表示される画像は、メモリカード２８（図２）などに予め記憶された画像（静止画像もしくは動画像）であってもよい。
【００９１】
なお、図３に示す例では、外側カメラ２５を用いて被写体ＴＲＧが撮影されているが、内側カメラ２３を用いて被写体ＴＲＧを撮影するようにしてもよく、いずれのカメラを使用するかについては、ユーザが任意に選択できるようにしてもよい。
【００９２】
図４は、この発明の実施の形態１に従うゲーム装置１００における選択画面の一例を示す図である。図４を参照して、本実施の形態に従うゲーム装置１００は、上述したユーザが自由に「らくがき」できる機能を含む複数の機能を搭載しており、ユーザは、図４に示す選択画面上で所望する機能を選択する。
【００９３】
図４に示す例では、画面上部にゲーム装置１００に搭載された各機能に対応する複数のアイコン１５０が表示されており、ユーザは、これらのアイコン１５０のうち所望する機能に対応するアイコンを任意に選択することができる。また、画面の両側には、選択アイコン１５２および１５４が表示されている。ユーザが選択アイコン１５２または１５４を選択する毎に、選択される機能がアイコン１５０の配列に従って左側または右側に順次変更される。
【００９４】
このような方法によりユーザが機能を選択した上で、「はじめる」アイコン１５８を選択すると、選択された機能が実行される。また、「やめる」アイコン１５６が選択されると、図示しないメニュー画面へ戻る。
【００９５】
また、図４に示すように、ユーザにより選択されたアイコン１５０に対応する機能の内容をユーザに提示するように、プレビュー領域１６０には、その選択された機能の名称（図４に示す例では「らくがきカメラ」）およびその処理の概略が示される。
【００９６】
＜「らくがきカメラ」の概要＞
以下、図５〜図１１を参照して、本実施の形態に従う「らくがきカメラ」の概要について説明する。
【００９７】
本実施の形態に従う「らくがきカメラ」は、カメラで撮影された画像などに対して、ユーザが自由に「らくがき」することができる機能である。「らくがきカメラ」では、主として、予め用意された１個のオブジェクト（スタンプ）を任意の位置および向きで配置できる機能と、ユーザ入力された軌跡に沿って複数のオブジェクトを配置できる機能とが提供される。
【００９８】
図５に示すように、「らくがきカメラ」のモードでは、カメラで撮影された画像がリアルタイムに表示されるとともに、この画像に対して「らくがき」操作を選択するためのアイコン２０２〜２０８が画面上部に表示され、各種操作を選択するためのアイコン２１０〜２１４が画面下部に表示される。
【００９９】
この図５に示す例では、被写体ＴＲＧを撮影して得られた画像に対して、葉っぱのスタンプであるオブジェクトＯＢＪ２と、ハート型のスタンプであるオブジェクトＯＢＪ４とが重ねて表示され、さらに、ユーザが入力した「ｈｅｌｌｏ」の文字を示すオブジェクトＯＢＪ３が重ねて表示されている場合を示す。
【０１００】
図５に示すオブジェクトＯＢＪ３については、ユーザが「えんぴつ」アイコン２０２を選択（タッチ）した後、タッチペン２７等を画面上にタッチしたまま移動（スライド操作）させることで、その移動した軌跡に応じて生成される。なお、「えんぴつ」アイコン２０２を選択することで、図示しない選択サブメニューが表示され、この選択サブメニューにおいて、線の太さおよび線の色などを任意に選択することができる。
【０１０１】
また、ユーザは、「消しゴム」アイコン２０４を選択した後、タッチペン２７等を画面上にタッチしたまま移動（スライド操作）させることで、その移動した軌跡（領域）に含まれるオブジェクトが消去される。さらに、「全部けす」アイコン２０８が選択されると、表示領域２００に表示されているすべてのオブジェクトが消去される。
【０１０２】
また、「スタンプ」アイコン２０６が選択されると、図６に示す選択サブメニューが表示され、この選択サブメニューで選択されたスタンプが入力可能になる。ゲーム装置１００では、複数種類のスタンプ（図６に示す例では１０種類）が予め用意されており、図６に示すように、「スタンプ」アイコン２０６が選択された場合の選択サブメニューでは、各スタンプに対応する複数のアイコン２２２が表示される。ユーザは、所望するスタンプに対応するアイコンを選択した後、「とじる」アイコン２２４を選択すると、選択されたスタンプが入力可能な状態となって、選択サブメニューの表示は消える。
【０１０３】
選択されたスタンプが入力可能な状態において、ユーザがタッチペン２７等で画面上の所望する位置にタッチすることで、当該位置（第１オブジェクト配置座標値に相当）に選択された１個のスタンプが配置される。
【０１０４】
特に、本実施の形態に従うゲーム装置１００では、配置された直後のスタンプは、その配置される向きについては未確定の状態に維持される。すなわち、ユーザが、タッチペン２７等で画面上にタッチオンしてスタンプを配置した後、画面上にタッチしたまま、当該タッチペン２７等を移動（スライド操作）させることで、スタンプの向きはその移動後のタッチ位置（継続座標値に相当）に応じてリアルタイムで変化する。そして、ユーザが画面上からタッチペン２７等を離す、もしくはタッチペン２７等をタッチオン位置から所定距離Ｄ１より多く移動させたなどの操作を行なった場合には、配置されたスタンプの向きは確定する（確定状態）。なお、後述の通り、タッチ位置がタッチオン位置から所定距離Ｄ２（Ｄ２＜Ｄ１）より短いときには、スタンプの向きは変更されない。
【０１０５】
具体的な一例として、たとえば、図６に示す選択サブメニューにおいて吹き出しのスタンプに対応するアイコンが選択された後、ユーザがタッチペン２７等で画面上の所望する位置にタッチすると、図７に示すように、吹き出しのスタンプであるオブジェクトＯＢＪ４が、タッチオンされた位置に応じて配置される。なお、このときのオブジェクトＯＢＪ４の向きは、予め定められた向き（初期値）となる。さらに、タッチペン２７等で画面上にタッチした状態のまま、タッチペン２７等を移動させると、図８に示すように、オブジェクトＯＢＪ４は、このタッチペン２７等の移動した後の位置に応じて順次回転する。なお、各スタンプには、予め回転の中心点が定められており、タッチペン２７等の移動に応じてこの中心点を回転中心として回転する。その後、タッチペン２７等が画面上から離されたり、タッチペン２７等がタッチオン位置より所定距離Ｄ１より多く移動したりした場合などには、配置されたオブジェクト４（スタンプ）の向きは確定する。
【０１０６】
さらに、１つ目のスタンプを配置した後、タッチペン２７等を画面上にタッチしたまま移動させた場合の例について、図９〜図１１を参照して説明する。なお、理解を容易にするために、図９〜図１１に示す例では、葉っぱのスタンプが選択されている場合について示す。
【０１０７】
まず、ユーザがタッチペン２７等で画面上の所望する位置にタッチすると、図９に示すように、葉っぱのスタンプであるオブジェクトＯＢＪ２１がタッチオンされた位置に応じて配置される（画面に表示される）。上述したように、この配置された直後のスタンプ（オブジェクトＯＢＪ２１）は、その向きについては未確定な状態にある。その後、ユーザが、タッチペン２７等で画面上にタッチした状態のまま、タッチペン２７等をタッチオン位置から所定距離Ｄ１より多く移動させると、オブジェクトＯＢＪ２１の向きが確定する。このオブジェクトＯＢＪ２１の向きの確定と同時あるいは確定の後、さらにタッチペン２７等により画面がタッチされ続けている状態であれば、新たなスタンプ（２つ目のスタンプ）であるオブジェクトＯＢＪ２２が配置される。
【０１０８】
なお、２個目に配置されるスタンプの向きについては、１個目のスタンプの位置と自身のスタンプの位置との相対関係に応じて、その向きが定まる。それゆえ、２つ目のスタンプは配置される時点で向きが確定している。２つめのスタンプが配置された後、さらに、その後、タッチした状態のままオブジェクトＯＢＪ２２の位置から所定距離Ｄ１だけ多く移動させると、さらに新たなスタンプ（３つ目のスタンプ）であるオブジェクトＯＢＪ２３が配置される。この３つ目のスタンプについても、２つ目のスタンプと同様、配置される時点で向きが確定している。具体的には、２つ目のスタンプの位置と自身のスタンプの位置との相対関係に応じてその向きが定まる。さらにその後タッチした状態のままタッチ位置を移動させ続けると、４つ目以降のスタンプ（ＯＢＪ２４，ＯＢＪ２５，…）についても、上述と同様に配置され。その向きが定まる。なお、前述の通り、タッチペン２７等を画面上にタッチしてから離されるまでの一連の操作中において、１個目に配置されるスタンプの向きは、自身のスタンプの位置と１つ後のスタンプの位置の相対関係に応じて確定するので、表示される時点で向きが確定しておらず、その後のタッチ位置に応じて向きが変化する。一方、２個目以降に配置されるスタンプの向きについては、１つ前のスタンプの位置と自身のスタンプの位置との相対関係に応じて、その配置される向きが定まる。すなわち、一連の操作中において、２個目以降に配置されたスタンプについては、表示される時点で向きが確定しているため、未確定状態が存在しない。
【０１０９】
このようにして、ユーザが、タッチペン２７等で画面上をタッチした状態のまま、タッチペン２７等を移動させると、その軌跡に沿ってスタンプが順次配置される。このような操作は、タッチペン２７等で画面にタッチしている限り継続する。そのため、ユーザは、タッチペン２７等を操作することで、その軌跡に沿ったスタンプを自在に配置することができる。
【０１１０】
なお、タッチペン２７等で画面をタッチして、タッチオン位置から所定距離Ｄ１以内でタッチオフした場合には、スタンプが１つだけ配置される。また、タッチオン位置から所定距離Ｄ２以内でタッチオフした場合は、スタンプの向きは初期状態のまま表示される。すなわち、タッチしてすぐにタッチオフした場合（タッチオン位置から所定距離Ｄ２以内でタッチオフした場合）には、１つのスタンプが初期状態の向きで表示される。
【０１１１】
このように、本実施の形態に従うゲーム装置１００では、タッチパネル１３に対する操作によって連続的に入力される座標値の変化を検出し、この座標値の変化に対応するタッチパネル１３上の軌跡に応じて、少なくとも１つのオブジェクトが順次表示される。このとき、各オブジェクトの向きは、タッチパネル１３上の軌跡に応じて順次決定される。また、オブジェクトを１つだけ配置することも可能であり、また、当該１つのオブジェクトは、初期状態の向きで表示することも、向きを変更して表示することも可能である。
【０１１２】
再度図５を参照して、「やめる」アイコン２１０が選択されると、本「らくがきカメラ」の処理が中止され、図４に示すような選択画面へ戻る。
【０１１３】
また、「とる」アイコン２１２が選択されることで、選択されたタイミングにおいてカメラで撮影されている画像と、ユーザが「らくがき」したオブジェクトＯＢＪ２〜ＯＢＪ４とを合成した静止画像が生成され、保存用データメモリ３４（図２）などに記憶される。
【０１１４】
また、切替アイコン２１４が選択されると、画像撮影に使用するカメラが、内側カメラ２３と外側カメラ２５との間で切り替えられる。
【０１１５】
＜「らくがきカメラ」の詳細処理＞
以下、図１２、図１３、図３７および図３８を参照して、本実施の形態に従う「らくがきカメラ」の詳細処理について説明する。なお、図１２および図１３に示す例は、図９および図１０に示すオブジェクトＯＢＪ２１およびＯＢＪ２２が配置される処理を説明するものであり、図３７および図３８に示す例は、図９および図１０に示すオブジェクトＯＢＪ２１およびＯＢＪ２２が配置される内部処理を説明するものである。
【０１１６】
タッチペン２７等で画面上にタッチされると、タッチパネル１３（図１，図２）は、その入力面に対して入力が行われた位置の座標を示すタッチ位置データを出力する。たとえば、図１２（ａ）に示すように、第１入力点Ｐ１をタッチペン２７等でタッチすると（タッチオンすると）、この第１入力点Ｐ１の座標を示すタッチ位置データが得られる。
【０１１７】
続いて、この第１入力点Ｐ１に基づいて基準線が算出される。図１２（ａ）に示す例では、第１入力点Ｐ１を通り、かつ紙面横方向に平行な基準線Ｌ１が用いられる。この基準線は、スタンプ（オブジェクト）の向き（初期値）を決定するための便宜上のものであり、第１入力点Ｐ１の位置を反映したものであれば任意に選択することができる。たとえば、第１入力点Ｐ１を通り、かつ紙面縦方向に平行な基準線を用いてもよい。
【０１１８】
第１入力点Ｐ１に１個目のスタンプが配置される。各スタンプには、図３７（ａ）に示すように、その種類に応じて、角度基準線ＳＬ１および中心点Ｃ１が予め定められている。図３７（ａ）に示す例では、その中心点Ｃ１が第１入力点Ｐ１に一致するように、オブジェクトＯＢＪ２１は配置される（オブジェクトＯＢＪ２１の位置はこの時点で確定する）。このとき、オブジェクトＯＢＪ２１は、初期値として、その角度基準線ＳＬ１が基準線Ｌ１と一致するような向きに配置される。
【０１１９】
さらに、図１２（ｂ）に示すように、タッチ状態のままタッチペン２７等が第２入力点Ｐ２に移動すると、第１入力点Ｐ１および第２入力点Ｐ２を通る基準線Ｌ２が算出される。なお、この基準線Ｌ２は、タッチペン２７等の移動に伴って、タッチ位置データの座標値が変化する毎にリアルタイムで更新される。すなわち、基準線Ｌ２は、オブジェクトＯＢＪ２１の向きが確定するまでは、最新のタッチ位置に応じて変化し、具体的には、配置されたオブジェクトＯＢＪ２１の中心位置Ｃ１と最新のタッチ位置とを通る線に随時更新される。この基準線Ｌ２の算出（更新）に伴って、図３７（ａ）に示すように、オブジェクトＯＢＪ２１は、その角度基準線ＳＬ１が最新の基準線Ｌ２と一致するように、その向きがリアルタイムで変更される。すなわち、オブジェクトＯＢＪ２１は、初期の向きから、基準線Ｌ１と角度基準線ＳＬ１とがなす角θの大きさだけ中心点Ｃ１を中心として回転する。なお、この図１２（ｂ）および図３７（ａ）に示す状態では、オブジェクトＯＢＪ２１の向きは、未確定状態にある。
【０１２０】
この未確定状態においては、第２入力点Ｐ２と第１入力点Ｐ１との間の距離（ユークリッド距離）ΔＬ１がリアルタイムで算出されるとともに、この算出された距離ΔＬ１の大きさが所定のしきい値Ｔｈ１と比較される。そして、距離ΔＬ１が当該所定のしきい値Ｔｈ１を超えると、オブジェクトＯＢＪ２１の向きは確定状態になる。
【０１２１】
具体的には、図１２（ｃ）に示すように、第１入力点Ｐ１からタッチ状態のままタッチペン２７等が第３入力点Ｐ３に移動し、このときの第１入力点Ｐ１と第３入力点Ｐ３との間の距離ΔＬ１が所定のしきい値Ｔｈ１を超えたと判断されると、オブジェクトＯＢＪ２１の向きは確定する。すなわち、オブジェクトＯＢＪ２１の向きは、図３７（ｃ）に示すように、その角度基準線ＳＬ１が第１入力点Ｐ１および第３入力点Ｐ３を通る基準線Ｌ３と一致する向きに確定する。すなわち、オブジェクトＯＢＪ２１の向きは、未確定状態から確定状態に移行する。
【０１２２】
なお、オブジェクトの向きが未確定状態から確定状態に移行するための条件（向き確定条件に相当）としては、上述した距離ΔＬ１の大きさが所定のしきい値Ｔｈ１を超えているとの条件に代えて、あるいはこれに加えて、（１）タッチペン２７等によるタッチ操作の継続時間が所定時間を越えて経過した、（２）タッチペン２７等によるタッチ操作が有効範囲以外の領域に対してなされた、（３）操作ボタン１４Ａ〜１４Ｈが選択された、（４）タッチオフした、といった条件を用いてもよい。
【０１２３】
以上のような処理に従って、１個目のスタンプの配置位置および向きが決定する。次に、２個目以降のスタンプを配置する処理について説明する。
【０１２４】
第３入力点Ｐ３からタッチ状態のままタッチペン２７等の移動が継続すると、オブジェクトＯＢＪ２１の向きが確定状態に移行したのと同時、あるいはその後、新たなオブジェクトＯＢＪ２２が配置される。
【０１２５】
なお、オブジェクトＯＢＪ２１の向きを確定する条件と、新たなオブジェクトＯＢＪ２２を配置する条件（第２オブジェクト表示条件に相当）とは共通であってもよいし、互いに異なったものであってもよい。
【０１２６】
図１３（ａ）には、先のオブジェクトが確定状態に移行したのと同時に、次ぎのオブジェクトが配置される場合を示す。すなわち、図１２（ｃ）に示すように、タッチ状態のままタッチペン２７等が第３入力点Ｐ３に移動して、オブジェクトＯＢＪ２１の向きが確定状態に移行すると、それと同時に、図１３（ａ）に示すように、２個目のスタンプ（オブジェクトＯＢＪ２２）が配置される。
【０１２７】
このオブジェクトＯＢＪ２２は、第３入力点Ｐ３（オブジェクトＯＢＪ２１の向きが確定する条件を満たしたときのタッチ座標）に応じた位置に配置される。図１３（ａ）および図３８（ａ）に示す例では、その中心点Ｃ２が第３入力点Ｐ３に一致するように、オブジェクトＯＢＪ２２は配置される（この時点で、オブジェクトＯＢＪ２２の位置は確定する）。なお、基準線Ｌ３は、第１入力点Ｐ１および第３入力点Ｐ３を通る線（この場合には、直線）である。さらに、オブジェクトＯＢＪ２２は、図３８（ａ）に示すように、その角度基準線ＳＬ２が基準線Ｌ３と一致するような向きに配置される。
【０１２８】
一方、図１３（ｂ）には、先のオブジェクトが確定状態に移行後に、次ぎのオブジェクトが配置される場合を示す。この場合には、オブジェクトＯＢＪ２１の確定状態への移行後も、タッチ状態のままのタッチペン２７等の移動後の入力点と第１入力点Ｐ１との間の距離ΔＬ２がリアルタイムで算出されるとともに、この算出された距離ΔＬ２の大きさが所定のしきい値Ｔｈ２と比較される。なお、しきい値Ｔｈ２は、オブジェクトＯＢＪ２１の向きの確定を判断するために用いられたしきい値Ｔｈ１より大きく設定される。
【０１２９】
そして、図１３（ｂ）に示すように、タッチ状態のままタッチペン２７等が第４入力点Ｐ４に移動し、このときの第１入力点Ｐ１と第４入力点Ｐ４との間の距離ΔＬ２が所定のしきい値Ｔｈ２を超えたと判断されると、新たなオブジェクトＯＢＪ２２が配置される。このとき、第１入力点Ｐ１および第４入力点Ｐ４を通る基準線Ｌ４が算出され、オブジェクトＯＢＪ２２は、図１３（ｂ）および図３８（ｂ）に示すように、その中心点Ｃ２が第４入力点Ｐ４に一致するように配置される（この時点でオブジェクトＯＢＪ２２の位置は確定する）。さらに、図３８（ｂ）に示すように、オブジェクトＯＢＪ２２は、その角度基準線ＳＬ２が基準線Ｌ４と一致するような向きに配置される（この時点でオブジェクトＯＢＪの向きも確定する）。
【０１３０】
さらに、オブジェクトＯＢＪ２２の配置後もタッチ状態のままのタッチペン２７等の移動後の入力点と２個目のオブジェクトＯＢＪ２２を配置したタイミングの入力点（図１３（ａ）に示す例では第３入力点Ｐ３、図１３（ｂ）に示す例では第３入力点Ｐ４）との位置関係に基づいて、３個目のオブジェクトＯＢＪ２３を配置するか否かについて判断される。
【０１３１】
すなわち、たとえば、図１３（ａ）に示すように、第３入力点Ｐ３において２個目のオブジェクトＯＢＪ２２が配置されたとすると、タッチ状態のままタッチペン２７等が、この第３入力点Ｐ３からしきい値Ｔｈ１を超えて離れた位置にある第５入力点Ｐ５に到達した時点で、当該第５入力点Ｐ５に３個目のオブジェクトＯＢＪ２３が配置される（図１３（ｃ）参照）。なお、図３８（ｃ）に示すように、オブジェクトＯＢＪ２３は、その角度基準線ＳＬ３が基準線Ｌ５と一致するような向きに配置される。
【０１３２】
あるいは、図１３（ｂ）に示すように、第４入力点Ｐ４において２個目のオブジェクトＯＢＪ２２が配置された場合も同様に、第４入力点Ｐ４からしきい値Ｔｈ２を超えて離れた位置に到達した時点で、当該位置に３個目のオブジェクトＯＢＪ２３が配置される。
【０１３３】
以下同様にして、タッチ状態のままタッチペン２７等が移動することで、２個目以降のオブジェクトＯＢＪが順次配置される。
【０１３４】
さらに、ユーザに対する操作性を向上させるためには、未確定状態のオブジェクトの向きを変更するに際して、ある程度の不感範囲を設けることが好ましい。より具体的には、図１４に示すように、ユーザがタッチペン２７等で第１入力点Ｐ１をタッチオンしてオブジェクトＯＢＪ２１が配置された後、このタッチペン２７等が第１入力点Ｐ１の近傍に存在する間は、当該オブジェクトＯＢＪ２１の向き（初期値）を維持する。すなわち、タッチペン２７等が第１入力点Ｐ１を中心とする不感範囲ＤＡ内に存在する場合には、上述のようなオブジェクトＯＢＪ２１の向きをリアルタイムで変更する処理を行なわない。そして、タッチ状態のままタッチペン２７等が不感範囲ＤＡ外に移動した場合に、はじめてオブジェクトＯＢＪ２１の向きを変更する処理を開始する。
【０１３５】
上述したように、ユーザが画面上からタッチペン２７等を離すと、未確定状態のオブジェクトは確定状態に移行するが、この際、取得されるタッチペン２７等の位置が微妙に変化する場合がある。不感範囲を設けることによって、このようなユーザの意図しない操作によりオブジェクトの向きが変化することを抑制できる。例えば、オブジェクトを１つだけ初期状態の向きに配置したいときに有効である。
【０１３６】
なお、上述の説明では、第１入力点Ｐ１、第２入力点Ｐ２…に対応する位置にそれぞれオブジェクトＯＢＪ２１，ＯＢＪ２２，…を表示する構成について例示したが、第１入力点Ｐ１、第２入力点Ｐ２…からそれぞれ所定方向に所定距離だけ離れた位置にオブジェクトＯＢＪ２１，ＯＢＪ２２，…を表示してもよい。
【０１３７】
＜描画処理＞
上述したように、本実施の形態に従うゲーム装置１００では、カメラで撮影された画像がリアルタイムに表示されるとともに、タッチペン２７等による操作入力の位置に応じて、未確定状態のオブジェクトの向きもリアルタイムで変化する。そのため、このような画像表示を行なうための描画処理について図１５を用いて説明する。
【０１３８】
図１５は、この発明の実施の形態１に従うゲーム装置１００の描画処理を説明するための模式図である。図１５を参照して、本実施の形態に従うゲーム装置１００では、４つのレイヤー２４２，２４４，２４６，２４８を用いて、画面表示するための映像信号を生成している。なお、レイヤー２４２，２４４，２４６，２４８の各々は、少なくとも下側ＬＣＤ１２の解像度に相当する大きさのメモリ領域をメインメモリ３２内に形成することで実現される。
【０１３９】
第１レイヤー２４２は、カメラで撮影された画像（静止画像もしくは動画像）、またはメモリカード２８（図２）などから読出された画像（静止画像もしくは動画像）を表示するためのメモリ領域である。ＣＰＵ３１（図２）は、内側カメラ２３、外側カメラ２５、およびメモリカード２８のいずれかから入力される画像を展開し、メインメモリ３２内の第１レイヤー２４２に相当する領域に書き込む。なお、静止画像が入力される場合には、ラスタデータに展開した上で書き込みを行なえばよいが、動画像が入力される場合には、表示のリアルタイム性を向上させるために、ポリゴン処理などを用いてレンダリングを行なってもよい。
【０１４０】
第２レイヤー２４４は、ユーザが「らくがき」して配置されたオブジェクトを表示するためのメモリ領域である。ＣＰＵ３１は、ユーザ操作に応じて配置されるオブジェクトのキャラクタデータやラスタデータを、メモリカード２９などから読み出して、メインメモリ３２内の第２レイヤー２４４に相当する領域に書き込む。なお、後述するように、未確定状態のオブジェクトのデータについては、第３レイヤー２４６においてレンダリングされるため、第２レイヤー２４４には、確定状態に移行後のオブジェクトのみについてのデータが書き込まれる。
【０１４１】
第３レイヤー２４６は、未確定状態のオブジェクトを表示するためのメモリ領域である。上述したスタンプを表示するためのデータは、代表的にポリゴンデータとしてメモリカード２９に予め記憶されている。ＣＰＵ３１は、ユーザ操作に応じて、必要なスタンプのポリゴンデータを読み出した上で、スタンプを構成する各ポリゴンの座標値をリアルタイムで算出する。そして、ＣＰＵ３１は、算出されたポリゴンによってレンダリングされた結果をメインメモリ３２内の第３レイヤー２４６に相当する領域に書き込む。
【０１４２】
また、ＣＰＵ３１は、未確定状態のオブジェクトが確定状態に移行すると、そのときの第３レイヤー２４６上の画像データを第２レイヤー２４４の対応する位置へ転送する。すなわち、未確定状態のオブジェクトについては、ポリゴン処理を用いてその画像を動的に生成するが、確定状態に移行し、その表示がそれ以上変更されなくなると、そのオブジェクトを表示するためのデータは、第２レイヤー２４４に記憶される。
【０１４３】
第４レイヤー２４８は、ユーザ操作を受け付けるためのアイコンを表示するためのメモリ領域である。ＣＰＵ３１は、ユーザ操作によって選択された機能や動作モードに応じて、必要なアイコンを表示するためのデータをメインメモリ３２内の第４レイヤー２４８に相当する領域に書き込む。
【０１４４】
これらのレイヤー２４２，２４４，２４６，２４８が記憶するデータを合成した画像が画面表示される。各レイヤー２４２，２４４，２４６，２４８では、表示すべきデータが存在する画素についてのみ有効なものとして扱われ、表示すべきデータが存在しない画素については、いわば透明なものとして扱われる。そのため、あるレイヤーのうち透明なものとして取り扱われる画素については、より下位のレイヤーの対応する画素のデータが画面表示されることになる。
【０１４５】
また、「とる」アイコン２１２（図５）が選択された場合には、ＣＰＵ３１は、第１レイヤー２４２および第２レイヤー２４４に記憶されたデータに基づいて、合成画像を生成し、この生成した合成画像を保存用データメモリ３４（図２）などに記憶される。
【０１４６】
＜入力範囲＞
また、ユーザ入力可能な範囲をタッチパネル１３の入力面の一部に制限してもよい。たとえば、図１６に示すように、本実施の形態に従う「らくがきカメラ」では、スタンプを配置する処理において、ユーザによるタッチペン２７等による操作入力に対する有効範囲２６０を予め定めておいてもよい。このような有効範囲２６０を定めることにより、ユーザ操作を受け付けるためのアイコンなどの上にオブジェクトが「らくがき」されることを抑制することができる。
【０１４７】
また、上述したように、未確定状態のオブジェクトを確定状態に移行するための条件の一つとして、タッチペン２７等による操作入力が有効範囲２６０内であるか否かの判断を含めてもよい。すなわち、いずれかのオブジェクトが未確定状態である場合に、タッチペン２７等による操作入力が有効範囲２６０外になると、当該オブジェクトを確定状態に移行させる。
【０１４８】
＜処理手順＞
以下、上述した本実施の形態に従う「らくがきカメラ」に係る処理手順について、図１７〜図２３を参照して説明する。なお、図１７〜図２３に示す各ステップは、代表的に、ＣＰＵ３１が、メモリカード２９に記憶されたプログラム等をメインメモリ３２に読み出して実行することで実現される。
【０１４９】
（１．機能選択処理）
図１７は、この発明の実施の形態１に従うゲーム装置１００における機能選択に係る処理を示すフローチャートである。図１７に示す機能選択に係る処理は、ゲーム装置１００の電源が投入され、あるいはスタートボタンが押下された後、ユーザが図示しないメニュー画面から所定のアイコンを選択することで実行される。
【０１５０】
図１７を参照して、ステップＳ２において、ＣＰＵ３１は、図４に示すような選択画面を下側ＬＣＤ１２に表示する。続くステップＳ４では、ＣＰＵ３１は、Ｉ／Ｆ回路４２を介してタッチパネル１３からタッチ位置データが入力されたか否かを判断する。すなわち、ＣＰＵ３１は、ユーザによるタッチペン２７等によるタッチ操作の有無を判断する。タッチ位置データが入力されていなければ（ステップＳ４においてＮＯ）、ステップＳ４の処理が繰り返される。一方、タッチ位置データが入力されていれば（ステップＳ４においてＹＥＳ）、処理はステップＳ６へ進む。
【０１５１】
ステップＳ６では、ＣＰＵ３１は、タッチ位置データの示す座標値がいずれかのアイコン１５０の表示範囲内の値であるか否かを判断する。すなわち、ＣＰＵ３１は、アイコン１５０のいずれかが選択されたか否かを判断する。そして、タッチ位置データの示す座標値がいずれかのアイコン１５０の表示範囲内の値であれば（ステップＳ６においてＹＥＳ）、処理はステップＳ８へ進む。一方、タッチ位置データの示す座標値がいずれのアイコン１５０の表示範囲外であれば（ステップＳ６においてＮＯ）、処理はステップＳ１０へ進む。
【０１５２】
ステップＳ８では、ＣＰＵ３１は、表示中の選択画面を選択されたアイコン１５０に対応する表示内容に更新する。すなわち、図４に示すように、たとえば「らくがきカメラ」の機能が選択された場合には、「らくがきカメラ」といった名称および各処理の内容をプレビュー表示する。そして、処理はステップＳ４へ戻る。
【０１５３】
ステップＳ１０では、ＣＰＵ３１は、タッチ位置データの示す座標値が選択アイコン１５２または１５４の表示範囲内の値であるか否かを判断する。すなわち、ＣＰＵ３１は、選択アイコン１５２または１５４が選択されたか否かを判断する。そして、タッチ位置データの示す座標値が選択アイコン１５２または１５４の表示範囲内の値であれば（ステップＳ１０においてＹＥＳ）、処理はステップＳ１２へ進む。一方、タッチ位置データの示す座標値が選択アイコン１５２および１５４の表示範囲外の値であれば（ステップＳ１０においてＮＯ）、処理はステップＳ１４へ進む。
【０１５４】
ステップＳ１２では、ＣＰＵ３１は、表示中の選択画面を選択された選択アイコン１５２または１５４に対応する表示内容に更新する。そして、処理はステップＳ４へ戻る。
【０１５５】
ステップＳ１４では、ＣＰＵ３１は、タッチ位置データの示す座標値が「はじめる」アイコン１５８の表示範囲内の値であるか否かを判断する。すなわち、ＣＰＵ３１は、「はじめる」アイコン１５８が選択されたか否かを判断する。そして、タッチ位置データの示す座標値が「はじめる」アイコン１５８の表示範囲内の値であれば（ステップＳ１４においてＹＥＳ）、処理はステップＳ１６へ進む。一方、タッチ位置データの示す座標値が「はじめる」アイコン１５８の表示範囲外の値であれば（ステップＳ１４においてＮＯ）、処理はステップＳ１８へ進む。
【０１５６】
ステップＳ１６では、ＣＰＵ３１は、選択中の機能を実行する。ここで、「らくがきカメラ」が選択されていれば、ＣＰＵ３１は、図１８および図１９に示すフローチャートに従う処理を実行する。
【０１５７】
ステップＳ１８では、ＣＰＵ３１は、タッチ位置データの示す座標値が「やめる」アイコン１５６の表示範囲内の値であるか否かを判断する。すなわち、ＣＰＵ３１は、「やめる」アイコン１５６が選択されたか否かを判断する。そして、タッチ位置データの示す座標値が「やめる」アイコン１５６の表示範囲内の値であれば（ステップＳ１８においてＹＥＳ）、本処理は終了する。一方、タッチ位置データの示す座標値が「やめる」アイコン１５６の表示範囲外の値であれば（ステップＳ１８においてＮＯ）、処理はステップＳ４へ戻る。
【０１５８】
（２．「らくがきカメラ」サブルーチン）
図１８および図１９は、図１７に示すステップＳ１６において「らくがきカメラ」が選択されている場合に実行されるサブルーチン処理を示すフローチャートである。
【０１５９】
図１８を参照して、まず、ステップＳ１００において、ＣＰＵ３１は、図２０に示す描画処理サブルーチンを開始する。この描画処理サブルーチンは、図６〜図１１に示すような「らくがきカメラ」での画面表示を行なうための処理である。なお、図２０に示す処理手順は、図１８および図１９に示される処理とは独立して、所定周期で繰り返し実行される。
【０１６０】
続くステップＳ１０２では、ＣＰＵ３１は、図５に示すアイコン２０２〜２１４を表示するためのデータを、メインメモリ３２内の第４レイヤー２４８に相当する領域に書き込む。すなわち、ＣＰＵ３１は、ユーザ操作を受け付けるためのアイコンを下側ＬＣＤ１２に表示する。
【０１６１】
続くステップＳ１０４では、ＣＰＵ３１は、Ｉ／Ｆ回路４２を介してタッチパネル１３からタッチ位置データが入力されたか否かを判断する。すなわち、ＣＰＵ３１は、ユーザによるタッチペン２７等によるタッチ操作の有無を判断する。言い換えれば、ＣＰＵ３１は、タッチパネル１３に対するユーザ操作によって入力される座標値が検出されるか否かを判断する。タッチ位置データが入力されていなければ（ステップＳ１０４においてＮＯ）、ステップＳ１０４の処理が繰り返される。一方、タッチ位置データが入力されていれば（ステップＳ１０４においてＹＥＳ）、処理はステップＳ１０６へ進む。
【０１６２】
ステップＳ１０６では、ＣＰＵ３１は、タッチ位置データの示す座標値が「えんぴつ」アイコン２０２の表示範囲内の値であるか否かを判断する。すなわち、ＣＰＵ３１は、「えんぴつ」アイコン２０２が選択されたか否かを判断する。そして、タッチ位置データの示す座標値が「えんぴつ」アイコン２０２の表示範囲内の値であれば（ステップＳ１０６においてＹＥＳ）、処理はステップＳ１１０へ進む。一方、タッチ位置データの示す座標値が「えんぴつ」アイコン２０２の表示範囲外の値であれば（ステップＳ１０６においてＮＯ）、処理はステップＳ１１６へ進む。
【０１６３】
ステップＳ１１０では、ＣＰＵ３１は、内部フラグを「えんぴつ」モードに設定する。続くステップＳ１１２では、ＣＰＵ３１は、「えんぴつ」モードの選択サブメニューを表示するためのデータを、メインメモリ３２内の第４レイヤー２４８に相当する領域に書き込む。すなわち、ＣＰＵ３１は、「えんぴつ」モードにおける属性（線の太さおよび線の色など）を選択するためのサブメニューを下側ＬＣＤ１２に表示する。さらに、ステップＳ１１４では、ＣＰＵ３１は、ユーザ選択に応じて、「えんぴつ」モードで使用する属性値を内部フラグに設定する。そして、処理はステップＳ１０４へ戻る。
【０１６４】
ステップＳ１１６では、ＣＰＵ３１は、タッチ位置データの示す座標値が「消しゴム」アイコン２０４の表示範囲内の値であるか否かを判断する。すなわち、ＣＰＵ３１は、「消しゴム」アイコン２０４が選択されたか否かを判断する。そして、タッチ位置データの示す座標値が「消しゴム」アイコン２０４の表示範囲内の値であれば（ステップＳ１１６においてＹＥＳ）、処理はステップＳ１１８へ進む。一方、タッチ位置データの示す座標値が「消しゴム」アイコン２０４の表示範囲外の値であれば（ステップＳ１１６においてＮＯ）、処理はステップＳ１２０へ進む。
【０１６５】
ステップＳ１１８では、ＣＰＵ３１は、内部フラグを「消しゴム」モードに設定する。そして、処理はステップＳ１０４へ戻る。
【０１６６】
ステップＳ１２０では、ＣＰＵ３１は、タッチ位置データの示す座標値が「スタンプ」アイコン２０６の表示範囲内の値であるか否かを判断する。すなわち、ＣＰＵ３１は、「スタンプ」アイコン２０６が選択されたか否かを判断する。そして、タッチ位置データの示す座標値が「スタンプ」アイコン２０６の表示範囲内の値であれば（ステップＳ１２０においてＹＥＳ）、処理はステップＳ１２２へ進む。一方、タッチ位置データの示す座標値が「スタンプ」アイコン２０６の表示範囲外の値であれば（ステップＳ１２０においてＮＯ）、処理はステップＳ１２８へ進む。
【０１６７】
ステップＳ１２２では、ＣＰＵ３１は、内部フラグを「スタンプ」モードに設定する。続くステップＳ１２４では、ＣＰＵ３１は、「スタンプ」モードの選択サブメニューを表示するためのデータを、メインメモリ３２内の第４レイヤー２４８に相当する領域に書き込む。すなわち、ＣＰＵ３１は、図６に示すような、「スタンプ」モードにおける属性（スタンプの種類など）を選択するためのサブメニューを下側ＬＣＤ１２に表示する。さらに、ステップＳ１２６では、ＣＰＵ３１は、ユーザ選択に応じて、「スタンプ」モードで使用する種類を内部フラグに設定する。そして、処理はステップＳ１０４へ戻る。
【０１６８】
ステップＳ１２８では、ＣＰＵ３１は、タッチ位置データの示す座標値が「全部けす」アイコン２０８の表示範囲内の値であるか否かを判断する。すなわち、ＣＰＵ３１は、「全部けす」アイコン２０８が選択されたか否かを判断する。そして、タッチ位置データの示す座標値が「全部けす」アイコン２０８の表示範囲内の値であれば（ステップＳ１２８においてＹＥＳ）、処理はステップＳ１３０へ進む。一方、タッチ位置データの示す座標値が「全部けす」アイコン２０８の表示範囲外の値であれば（ステップＳ１２８においてＮＯ）、処理はステップＳ１３２（図１９）へ進む。
【０１６９】
ステップＳ１３０では、ＣＰＵ３１は、メインメモリ３２内の第２レイヤー２４４に記憶されているデータをリセット（ゼロクリア）する。すなわち、ＣＰＵ３１は、ユーザにより「らくがき」されることで配置されているすべてのオブジェクトを消去する。
【０１７０】
ステップＳ１３２では、ＣＰＵ３１は、タッチ位置データの示す座標値が有効範囲２６０（図１６）内の値であるか否かを判断する。すなわち、ＣＰＵ３１は、ユーザが「らくがき」の操作を行なったか否かを判断する。そして、タッチ位置データの示す座標値が有効範囲２６０内の値であれば（ステップＳ１３２においてＹＥＳ）、処理はステップＳ１３４へ進む。一方、タッチ位置データの示す座標値が有効範囲２６０外の値であれば（ステップＳ１３２においてＮＯ）、処理はステップＳ１４２へ進む。
【０１７１】
ステップＳ１３４では、ＣＰＵ３１は、内部フラグを参照して、現在設定されているモードを判断する。すなわち、ＣＰＵ３１は、直前のユーザ操作によって、「えんぴつ」アイコン２０２、「消しゴム」アイコン２０４、および「スタンプ」アイコン２０６のいずれが選択されているかを判断する。そして、現在設定されているモードが「えんぴつ」モードであれば（ステップＳ１３４において「えんぴつ」）、処理はステップＳ１３６に進み、「えんぴつ」モードのサブルーチン処理（図２１）が実行される。また、現在設定されているモードが「消しゴム」モードであれば（ステップＳ１３４において「消しゴム」）、処理はステップＳ１３８に進み、「消しゴム」モードのサブルーチン処理（図２２）が実行される。また、現在設定されているモードが「スタンプ」モードであれば（ステップＳ１３４において「スタンプ」）、処理はステップＳ１４０に進み、「スタンプ」モードのサブルーチン処理（図２３）が実行される。
【０１７２】
一方、ステップＳ１４２では、ＣＰＵ３１は、タッチ位置データの示す座標値が「とる」アイコン２１２の表示範囲内の値であるか否かを判断する。すなわち、ＣＰＵ３１は、「とる」アイコン２１２が選択されたか否かを判断する。そして、タッチ位置データの示す座標値が「とる」アイコン２１２の表示範囲内の値であれば（ステップＳ１４２においてＹＥＳ）、処理はステップＳ１４４へ進む。一方、タッチ位置データの示す座標値が「とる」アイコン２１２の表示範囲外の値であれば（ステップＳ１４２においてＮＯ）、処理はステップＳ１４６へ進む。
【０１７３】
ステップＳ１４４では、ＣＰＵ３１は、メインメモリ３２内の第１レイヤー２４２および第２レイヤー２４４にそれぞれ相当する領域に記憶されたデータをそれぞれ読み出して、合成画像を生成する。さらに、ＣＰＵ３１は、合成画像を保存用データメモリ３４などに書き込む。そして、処理はステップＳ１０４へ戻る。
【０１７４】
ステップＳ１４６では、ＣＰＵ３１は、タッチ位置データの示す座標値が切替アイコン２１４の表示範囲内の値であるか否かを判断する。すなわち、ＣＰＵ３１は、切替アイコン２１４が選択されたか否かを判断する。そして、タッチ位置データの示す座標値が切替アイコン２１４の表示範囲内の値であれば（ステップＳ１４６においてＹＥＳ）、処理はステップＳ１４８へ進む。一方、タッチ位置データの示す座標値が切替アイコン２１４の表示範囲外の値であれば（ステップＳ１４６においてＮＯ）、処理はステップＳ１５０へ進む。
【０１７５】
ステップＳ１４８では、ＣＰＵ３１は、画像撮影に使用するカメラを内側カメラ２３と外側カメラ２５との間で切り替える。すなわち、ＣＰＵ３１は、メインメモリ３２内の第１レイヤー２４２に入力される画像のソースを内側カメラ２３と外側カメラ２５との間で切り替える。そして、処理はステップＳ１０４へ戻る。
【０１７６】
ステップＳ１５０では、ＣＰＵ３１は、タッチ位置データの示す座標値が「やめる」アイコン２１０の表示範囲内の値であるか否かを判断する。すなわち、ＣＰＵ３１は、「やめる」アイコン２１０が選択されたか否かを判断する。そして、タッチ位置データの示す座標値が「やめる」アイコン２１０の表示範囲内の値であれば（ステップＳ１５０においてＹＥＳ）、ＣＰＵ３１は、図２０に示す描画処理サブルーチンを終了（ステップＳ１５２）させた後、本処理を終了する。一方、タッチ位置データの示す座標値が「やめる」アイコン２１０の表示範囲外の値であれば（ステップＳ１５０においてＮＯ）、処理はステップＳ１０４へ戻る。
【０１７７】
（３．描画処理サブルーチン）
図２０は、図１８に示すステップＳ１００において実行が開始される描画処理サブルーチン処理を示すフローチャートである。
【０１７８】
図２０を参照して、ステップＳ２００において、ＣＰＵ３１は、選択されているカメラ（内側カメラ２３または外側カメラ２５）から入力された画像を展開し、メインメモリ３２内の第１レイヤー２４２に相当する領域に書き込む。すなわち、ＣＰＵ３１は、カメラで撮影された画像を更新する。
【０１７９】
続くステップＳ２０２において、ＣＰＵ３１は、第１レイヤー２４２、第２レイヤー２４４、第３レイヤー２４６、第４レイヤー２４８がそれぞれ記憶するデータを合成する。なお、第２レイヤー２４４、第３レイヤー２４６、第４レイヤー２４８に記憶されるデータは、図１８および図１９に示すサブルーチン処理や、後述する図２１〜図２３に示す各サブルーチン処理の実行に伴って、随時更新される。
【０１８０】
さらに続くステップＳ２０４において、ＣＰＵ３１は、合成したデータに基づいて、下側ＬＣＤ１２に画像を描画（レンダリング）する。そして、処理はステップＳ２００へ戻る。
【０１８１】
上述の図２０に示すサブルーチン処理は、図１８に示すステップＳ１００においてその実行が開始され、図１９に示すステップＳ１５２においてその実行が終了される。
【０１８２】
（４．「えんぴつ」モード処理サブルーチン）
図２１は、図１９に示すステップＳ１３６において実行される「えんぴつ」モードのサブルーチン処理を示すフローチャートである。
【０１８３】
図２１を参照して、ステップＳ３００において、ＣＰＵ３１は、タッチ位置データの示す座標値に基づいて、ユーザからの操作入力に対応するメインメモリ３２内の第２レイヤー２４４の画素のデータを内部フラグの設定値に応じて変更する。すなわち、ＣＰＵ３１は、図１８のステップＳ１１４において設定された「えんぴつ」モードで使用する属性値に応じて、「らくがき」されるオブジェクトを示すデータを第２レイヤー２４４に追加する。
【０１８４】
続くステップＳ３０２では、ＣＰＵ３１は、Ｉ／Ｆ回路４２を介してタッチパネル１３からタッチ位置データの入力が継続しているか否かを判断する。すなわち、ＣＰＵ３１は、ユーザによるタッチペン２７等によるタッチ操作の継続の有無を否かを判断する。タッチ位置データの入力が継続していれば（ステップＳ３０２においてＹＥＳ）、ステップＳ３００の処理が繰り返される。一方、タッチ位置データの入力が継続していなければ（ステップＳ３０２においてＮＯ）、処理は、図１８のステップＳ１０４にリターンする。
【０１８５】
（５．「消しゴム」モード処理サブルーチン）
図２２は、図１９に示すステップＳ１３８において実行される「消しゴム」モードのサブルーチン処理を示すフローチャートである。
【０１８６】
図２２を参照して、ステップＳ４００において、ＣＰＵ３１は、タッチ位置データの示す座標値に基づいて、ユーザからの操作入力に対応するメインメモリ３２内の第２レイヤー２４４の画素のデータをゼロクリアする。すなわち、ＣＰＵ３１は、既に配置されているオブジェクトのうち、ユーザがタッチペン２７等を画面上にタッチした部分を消去する。
【０１８７】
続くステップＳ４０２では、ＣＰＵ３１は、Ｉ／Ｆ回路４２を介してタッチパネル１３からタッチ位置データの入力が継続しているか否かを判断する。すなわち、ＣＰＵ３１は、ユーザによるタッチペン２７等によるタッチ操作の継続の有無を否かを判断する。タッチ位置データの入力が継続していれば（ステップＳ４０２においてＹＥＳ）、ステップＳ４００の処理が繰り返される。一方、タッチ位置データの入力が継続していなければ（ステップＳ４０２においてＮＯ）、処理は、図１８のステップＳ１０４にリターンする。
【０１８８】
（６．「スタンプ」モード処理サブルーチン）
図２３は、図１９に示すステップＳ１４０において実行される「スタンプ」モードのサブルーチン処理を示すフローチャートである。
【０１８９】
図２３を参照して、ステップＳ５００において、ＣＰＵ３１は、内部変数である第１座標値および第２座標値を初期化（ゼロクリア）する。続くステップＳ５０２において、ＣＰＵ３１は、タッチ位置データの示す座標値を第１座標値にセットする。すなわち、検出された座標値のうち第１座標値が取得される。ここで、座標値の検出が開始された直後（すなわち、タッチオン座標）の座標値が第１座標値とみなされる。そして、処理はステップＳ５０４へ進む。
【０１９０】
ステップＳ５０４において、ＣＰＵ３１は、ステップＳ５０２においてセットされた第１座標値を通る基準線を算出する。続くステップＳ５０６において、ＣＰＵ３１は、図１８のステップＳ１２６において選択された種類のスタンプのオブジェクトを内部フラグの参照により特定し、選択されたスタンプを表示するためのデータ（代表的に、ポリゴンデータ）をメモリカード２９から読出す。さらに続くステップＳ５０８において、ＣＰＵ３１は、選択されたスタンプが、第１座標値を基準する位置に、かつ基準線に応じた向きで配置されるように、レンダリングされた結果をメインメモリ３２内の第３レイヤー２４６に相当する領域に書き込む。すなわち、ステップＳ５０６およびＳ５０８では、第１座標値に基づいて、下側ＬＣＤ１２の対応する位置にスタンプ（オブジェクト）を表示するための処理が実行される。そして、処理はステップＳ５１０へ進む。
【０１９１】
ステップＳ５１０では、ＣＰＵ３１は、Ｉ／Ｆ回路４２を介してタッチパネル１３からタッチ位置データの入力が継続しているか否かを判断する。すなわち、ＣＰＵ３１は、ユーザによるタッチペン２７等によるタッチ操作の継続の有無を否かを判断する。言い換えれば、座標値の検出が継続しているか否かが判断される。タッチ位置データの入力が継続していれば（ステップＳ５１０においてＹＥＳ）、処理はステップＳ５１２へ進む。
【０１９２】
一方、タッチ位置データの入力が継続していなければ（ステップＳ５１０においてＮＯ）、処理はステップＳ５２２へ進む。すなわち、第１座標値の取得後、座標値の検出が途絶えることを条件にして、後述するように、ステップＳ５２２に示す未確定状態のオブジェクトを確定状態する処理が実行される。
【０１９３】
ステップＳ５１２では、ＣＰＵ３１は、現在のタッチ位置データの示す座標値を第２座標値にセットする。すなわち、検出された座標値のうち第１座標値に引き続く第２座標値が取得される。続くステップＳ５１４では、ＣＰＵ３１は、第１座標値と第２座標値との間の距離が不感範囲を示すしきい値より大きいか否かを判断する。すなわち、座標値が継続して検出されている間に入力される座標値が第１条件（向き変更条件に相当）を満足するか否かが判断される。第１座標値と第２座標値との距離が不感範囲を示すしきい値以下であれば（ステップＳ５１４においてＮＯ）、ステップＳ５１０以下の処理が繰り返される。
【０１９４】
一方、第１座標値と第２座標値との距離が不感範囲を示すしきい値より大きければ（ステップＳ５１４においてＹＥＳ）、処理はステップＳ５１６へ進む。これらの処理により、第１条件を満足すると判断された座標値が有効な第２座標値とみなされる。
【０１９５】
ステップＳ５１６では、ＣＰＵ３１は、第１座標値と第２座標値とを通る基準線を算出する。続くステップＳ５１８では、ＣＰＵ３１は、配置されたスタンプが、ステップＳ５１６において新たに算出された基準線に応じた向きで配置されるように、メインメモリ３２内の第３レイヤー２４６に相当する領域をレンダリングされた結果で更新する。すなわち、下側ＬＣＤ１２に表示されるオブジェクトの向きが変更される。ここで、オブジェクトの向きは、第１座標値と第２座標値とを通る線に基づいて決定される。そして、処理はステップＳ５２０へ進む。
【０１９６】
ステップＳ５２０では、ＣＰＵ３１は、第１座標値と第２座標値との間の距離が所定のしきい値Ｔｈ１より大きいか否かを判断する。すなわち、ＣＰＵ３１は、未確定状態のオブジェクトを確定状態に移行させるための条件が成立したか否かを判断する。第１座標値と第２座標値との距離がしきい値Ｔｈ１より大きければ（ステップＳ５２０においてＹＥＳ）、処理はステップＳ５２２へ進む。
【０１９７】
一方、第１座標値と第２座標値との距離がしきい値Ｔｈ１以下であれば（ステップＳ５２０においてＮＯ）、ステップＳ５１０以下の処理が繰り返される。すなわち、第２座標値を取得するステップと、オブジェクトの向きを変更するステップとは、座標値の検出が継続している間、繰り返される。これにより、未確定状態のオブジェクトを確定状態に移行させるための条件が満足されるまでの間、第２座標値が更新される毎に、オブジェクトの向きが随時変更されることになる。
【０１９８】
ステップＳ５２２では、ＣＰＵ３１は、メインメモリ３２内の第３レイヤー２４６に相当する領域に記憶されているデータをメインメモリ３２内の第２レイヤー２４４に領域に書き込むとともに、第３レイヤー２４６に相当する領域をゼロクリアする。すなわち、ＣＰＵ３１は、未確定状態のオブジェクトを確定状態に移行させる。これにより、未確定状態のオブジェクトを確定状態に移行させるための条件が満足されると、オブジェクトの向きが固定されることになる。
【０１９９】
なお、確定状態に移行させるための条件が満足された後は、その後の第２座標値に関わらず、第１オブジェクトの向きは固定されたままとなる。
【０２００】
続くステップＳ５２４では、ＣＰＵ３１は、Ｉ／Ｆ回路４２を介してタッチパネル１３からタッチ位置データの入力が継続しているか否かを判断する。すなわち、ＣＰＵ３１は、ユーザによるタッチペン２７等によるタッチ操作の継続の有無を否かを判断する。タッチ位置データの入力が継続していれば（ステップＳ５２４においてＹＥＳ）、処理はステップＳ５２６へ進む。一方、タッチ位置データの入力が継続していなければ（ステップＳ５２４においてＮＯ）、処理は、図１８のステップＳ１０４にリターンする。
【０２０１】
ステップＳ５２６では、ＣＰＵ３１は、新たなスタンプが、第２座標値を基準とする位置（典型的には、第２座標値の位置）に、かつステップＳ５１６において新たに算出された基準線に応じた向きで配置されるように、レンダリングされた結果をメインメモリ３２内の第２レイヤー２４４に相当する領域に書き込む。すなわち、入力される座標値の変化に応じて、さらなるオブジェクトが下側ＬＣＤ１２に表示される。なお、操作ボタン１４Ａ〜１４Ｈが選択された場合にも、さらなるオブジェクトを表示するようにしてもよい。
【０２０２】
続くステップＳ５２８において、ＣＰＵ３１は、タッチ位置データの示す座標値を第１座標値にセットする。すなわち、新たなスタンプの基準となったタッチ位置データを新たな第１座標値とみなす。そして、処理はステップＳ５３０へ進む。
【０２０３】
ステップＳ５３０では、ＣＰＵ３１は、Ｉ／Ｆ回路４２を介してタッチパネル１３からタッチ位置データの入力が継続しているか否かを判断する。すなわち、ＣＰＵ３１は、ユーザによるタッチペン２７等によるタッチ操作の継続の有無を否かを判断する。タッチ位置データの入力が継続していれば（ステップＳ５３０においてＹＥＳ）、処理はステップＳ５３２へ進む。一方、タッチ位置データの入力が継続していなければ（ステップＳ５３０においてＮＯ）、処理は、図１８のステップＳ１０４にリターンする。
【０２０４】
ステップＳ５３２では、ＣＰＵ３１は、現在のタッチ位置データの示す座標値を第２座標値にセットする。続くステップＳ５３４では、ＣＰＵ３１は、第１座標値と第２座標値との間の距離が所定のしきい値Ｔｈ１より大きいか否かを判断する。すなわち、ＣＰＵ３１は、座標値が継続して検出されている間に入力される座標値が、さらに新たなオブジェクトを配置すべきか否かを決定する第３条件を満足するか否かを判断する。
【０２０５】
第１座標値と第２座標値との距離がしきい値Ｔｈ１より大きければ（ステップＳ５３４においてＹＥＳ）、処理はステップＳ５３６へ進む。一方、第１座標値と第２座標値との距離がしきい値Ｔｈ１以下であれば（ステップＳ５３４においてＮＯ）、ステップＳ５３２以下の処理が繰り返される。
【０２０６】
ステップＳ５３６では、第１座標値と第２座標値とを通る基準線を算出する。続くステップＳ５３８では、ＣＰＵ３１は、さらに新たなスタンプが、第２座標値を基準する位置に（典型的には、第２座標値の位置に）、かつステップＳ５３６で算出された新たな基準線に応じた向きで配置されるように、レンダリングされた結果をメインメモリ３２内の第２レイヤー２４４に相当する領域に書き込む。すなわち、新たに表示されるオブジェクトの向きは、直近に表示されたオブジェクトの位置の決定に用いられた座標値と当該新たに表示するオブジェクトの位置の決定に用いられる座標値とを通る線に基づいて、決定される。そして、ステップＳ５２８以下の処理が繰り返される。
【０２０７】
本実施の形態によれば、ユーザは、タッチパネル１３に対する一連の操作によって、所望する位置にオブジェクトを配置することができるとともに、当該オブジェクトを所望する向きに変更することができる。このように、ユーザは、いわゆる「ワンアクション」によって、オブジェクトを自在に配置し、かつその向きも変更ができるので、より直感的にオブジェクトを表示させることができる。
【０２０８】
［実施の形態１の変形例１］
上述の実施の形態１では、２個目以降に配置されるスタンプについては未確定状態を存在させないように構成したが、２個目以降に配置されるスタンプについても、未確定状態を存在させるようにしてもよい。すなわち、２個目以降に配置されるスタンプについて、先に配置されたスタンプの位置と、タッチペン２７等によるユーザ入力された位置との関係に応じて、その向きをリアルタイムで変化するようにしてもよい。以下、図２４を参照して、本変形例における特徴的な処理について説明する。
【０２０９】
なお、以下に説明する処理を除いて、そのハードウェア構成や処理手順などについては、上述した実施の形態１のそれと同様であるので、詳細な説明は繰り返さない。
【０２１０】
たとえば、図２４（ａ）に示すように、ユーザがタッチペン２７等で画面上の第１入力点Ｐ１にタッチした後、タッチペン２７等を画面上にタッチしたまま第２入力点Ｐ２を経て、第６入力点Ｐ６までタッチペン２７等を移動させた場合を考える。また、このユーザ操作によって、第１入力点Ｐ１および第２入力点Ｐ２を基準とする位置に、オブジェクトＯＢＪ２１およびＯＢＪ２２がそれぞれ配置されているものとする。なお、第２入力点Ｐ２と第６入力点Ｐ６との間の距離は、オブジェクトを確定状態に移行させるためのしきい値Ｔｈ１以下であるとする。
【０２１１】
本変形例では、このような状態において、オブジェクトＯＢＪ２２を未確定状態に維持する。すなわち、オブジェクトＯＢＪ２２の向きは、オブジェクトＯＢＪ２１を配置するための基準となった第１入力点Ｐ１と、自オブジェクトを配置するための基準となった第２入力点Ｐ２と、各時点におけるタッチペン２７等によるユーザ入力された位置（図２４（ａ）に示す例では、第６入力点Ｐ６）とを通る線を基準線としてリアルタイムに変更される。なお、上述のような３点を通る基準線の算出方法としては、代表的に、ベジェ近似などを用いることができる。なお、このような基準線を決定する際には、先に配置された１つのオブジェクトに限られず、複数の先に配置されたオブジェクトの基準位置に基づいて、基準線を算出してもよい。
【０２１２】
その後、図２４（ｂ）に示すように、ユーザがタッチペン２７等を、第２入力点Ｐ２との間の距離がしきい値Ｔｈ１を超えている第７入力点Ｐ７まで移動させると、オブジェクトＯＢＪ２２は未確定状態から確定状態に移行する。この確定状態に移行したオブジェクトＯＢＪ２２の向きは、第１入力点Ｐ１、第２入力点Ｐ２、第７入力点Ｐ３の３点を通る基準線に基づいて定められることになる。
【０２１３】
［実施の形態１の変形例２］
上述の実施の形態１では、第２入力点Ｐ２が更新される毎に、未確定状態のオブジェクトの向きがリアルタイムに変更される構成について説明したが、オブジェクトが未確定状態から確定状態に移行するための条件が満足されるまでの間、オブジェクトの向きを初期値に維持するとともに、当該条件が満足された後に、当該条件が満たされた時点の第２入力点Ｐ２に応じた向きにオブジェクトの向きを変更した上で、確定状態に移行させてもよい。この確定状態に移行した後は、オブジェクトの向きは変更後の向きに固定される。
【０２１４】
本変形例では、上述の図２３に示すフローチャートにおいて、ステップＳ５１６およびＳ５１８に示す処理が、ステップＳ５２２の実行に先立って実行される。その他の処理については、上述した実施の形態１と同様であるので、詳細な説明は繰り返さない。
【０２１５】
［実施の形態２］
上述の実施の形態１では、表示される画像にユーザが自由に「らくがき」できる機能について説明した。以下、実施の形態２では、画像を「万華鏡」のように表示させる機能について説明する。
【０２１６】
本実施の形態に従うゲーム装置１００Ａの外観図および内部構成については、上述の図１および図２と同様であるので、詳細な説明は繰り返さない。
【０２１７】
＜ゲーム装置の使用例＞
本実施の形態に従うゲーム装置１００Ａについても、上述の実施の形態１に従うゲーム装置１００と同様の使用形態で使用される。すなわち、たとえば図３に示すように、ゲーム装置１００Ａに搭載されたカメラ（内側カメラ２３または外側カメラ２５）で撮影された画像（あるいは、その一部）が万華鏡のように敷き詰められて、下側ＬＣＤ１２にリアルタイムに表示される。ユーザは、タッチペン２７等の操作により、この下側ＬＣＤ１２に表示される態様を自由に変化させることが可能である。なお、表示される画像は、メモリカード２８（図２）などに予め記憶された画像（静止画像もしくは動画像）であってもよい。
【０２１８】
なお、図３に示す例では、外側カメラ２５を用いて被写体ＴＲＧが撮影されているが、内側カメラ２３を用いて被写体ＴＲＧを撮影するようにしてもよく、いずれのカメラを使用するかについては、ユーザが任意に選択できる。
【０２１９】
図２５は、この発明の実施の形態２に従うゲーム装置１００Ａにおける選択画面の一例を示す図である。図２５を参照して、本実施の形態に従うゲーム装置１００Ａは、上述した画像を万華鏡のように表示することができる機能を含む複数の機能を搭載しており、ユーザは、図２５に示す選択画面上で所望する機能を選択する。
【０２２０】
図２５に示す例では、画面上部にゲーム装置１００に搭載された各機能に対応する複数のアイコン１５０が表示されており、ユーザは、これらのアイコン１５０のうち所望する機能に対応するものを任意に選択することができる。また、画面の両側には、選択アイコン１５２および１５４が表示されている。ユーザが選択アイコン１５２または１５４を選択する毎に、選択される機能がアイコン１５０の配列に従って左側または右側に順次変更される。
【０２２１】
このような方法によりユーザが機能を選択した上で、「はじめる」アイコン１５８を選択すると、選択された機能が実行される。また、「やめる」アイコン１５６が選択されると、図示しないメニュー画面へ戻る。
【０２２２】
また、図２５に示すように、ユーザにより選択されたアイコン１５０に対応する機能の内容をユーザに提示するように、プレビュー領域１６０には、その選択された機能の名称（図２５に示す例では「かがみカメラ」）およびその処理の内容が示される。
【０２２３】
＜「かがみカメラ」の概要＞
以下、図２６〜図３０を参照して、本実施の形態に従う「かがみカメラ」の概要について説明する。
【０２２４】
本実施の形態に従う「かがみカメラ」は、カメラで撮影された画像やメモリカード２８などに予め記憶された画像など（以下、これらの画像を「入力画像」とも総称する）に対して、ユーザが自由に万華鏡のように表示させることができる機能である。「かがみカメラ」では、主として、入力画像の一部を抽出した画像オブジェクトの向きおよびサイズをユーザ操作に応じて自在に変更する機能と、当該変更後の画像オブジェクトに応じて、表示される画面をリアルタイムで更新することができる機能とが提供される。
【０２２５】
図２６に示すように、「かがみカメラ」のモードでは、入力画像が万華鏡のようにリアルタイムに表示されるとともに、この表示画像に対する操作を選択するためのアイコン３０２〜３０６が画面上部に表示され、各種操作を選択するためのアイコン３１０〜３１４が表示される。
【０２２６】
ユーザが「左右対称」アイコン３０２を選択（タッチ）すると、図２５に示すように、入力画像と当該入力画像を画面に対して左右反転させた画像とが同時に表示される。さらに、ユーザのタッチペン２７等によるタッチ操作に応じて、画面上に表示される画像の向きがリアルタイムで変化する。
【０２２７】
ユーザが「三角」アイコン３０４をタッチすると、図２６に示すように、入力画像から三角形状の部分が、画像オブジェクトＯＢＪ５として抽出され、この画像オブジェクトＯＢＪ５を隣接する各辺についてそれぞれ線対称となるように順次展開していったような画像が表示される。
【０２２８】
また、図２７に示すように、ユーザがタッチペン２７等を画面上にタッチしたまま回転移動させると、画像オブジェクトＯＢＪ５は、当該タッチ操作に応じた角度だけ、予め定められた中心点３０８を中心に回転する。すなわち、画像オブジェクトＯＢＪ５の向きは、ユーザ入力に応じてリアルタイムで変化する。なお、図２７で示すように、この画像オブジェクトＯＢＪ５の回転に伴って、画像オブジェクトＯＢＪ５を中心に展開される画像の位置も変化する。
【０２２９】
さらに、図２８に示すように、ユーザがタッチペン２７等を画面上にタッチしたまま、画像オブジェクトＯＢＪ５の中心点３０８から遠ざかる、もしくは近づく方向に移動させると、画像オブジェクトＯＢＪ５は、当該タッチ操作に応じて拡大もしくは縮小する。すなわち、画像オブジェクトＯＢＪ５のサイズは、ユーザ入力に応じてリアルタイムで変化する。なお、図２８で示すように、この画像オブジェクトＯＢＪ５のサイズの変化に伴って、画像オブジェクトＯＢＪ５を中心に展開される画像の配置やサイズも変化する。
【０２３０】
また、ユーザが「四角」アイコン３０６をタッチすると、図２９に示すように、入力画像から四角形状の部分が、画像オブジェクトＯＢＪ６として抽出され、この画像オブジェクトＯＢＪ６を隣接する各辺についてそれぞれ線対称となるように順次展開していったような画像が表示される。
【０２３１】
また、図３０に示すように、ユーザがタッチペン２７等を画面上にタッチしたまま回転移動させると、画像オブジェクトＯＢＪ６は、当該タッチ操作に応じた角度だけ、予め定められた中心点３０８を中心に回転する。すなわち、画像オブジェクトＯＢＪ６の向きは、ユーザ入力に応じてリアルタイムで変化する。なお、この画像オブジェクトＯＢＪ６の回転に伴って、画像オブジェクトＯＢＪ６を中心に展開される画像の位置も変化する。さらに、図２８と同様に、ユーザがタッチペン２７等を画面上にタッチしたまま、画像オブジェクトＯＢＪ６の中心点３０８から遠ざかる、もしくは近づく方向に移動させると、画像オブジェクトＯＢＪ６は、当該タッチ操作に応じて拡大もしくは縮小する。そして、この画像オブジェクトＯＢＪ６のサイズの変化に伴って、画像オブジェクトＯＢＪ６を中心に展開される画像の配置やサイズも変化する。
【０２３２】
このように、画像オブジェクトには、その回転および／またはサイズ変更に係る基準点となる中心点が予め定められている。後述するように、この基準点とタッチ操作に伴う座標の変化を示すベクトルとこの基準点との相対関係に応じて、オブジェクトの回転量（回転位置）および縮小／拡大率（サイズ）の度合いが算出される。
【０２３３】
また、「やめる」アイコン３１０が選択されると、本「かがみカメラ」の処理が中止され、図２５に示すような選択画面へ戻る。
【０２３４】
また、「とる」アイコン３１２が選択されることで、選択されたタイミングにおいて表示されている画像に対応する静止画像が生成され、保存用データメモリ３４（図２）などに記憶される。
【０２３５】
また、切替アイコン３１４が選択されると、画像撮影に使用するカメラが、内側カメラ２３と外側カメラ２５との間で切り替えられる。
【０２３６】
＜「かがみカメラ」の詳細処理＞
以下、図３１を参照して、本実施の形態に従う「かがみカメラ」の詳細処理について説明する。なお、図３１に示す例は、図２６に示す画像オブジェクトＯＢＪ５に対する処理を説明するものである。
【０２３７】
特に、本実施の形態に従う「かがみカメラ」では、ユーザがタッチペン２７等で画面上に対して行なった単位時間当たりの操作量に応じて、画像オブジェクトの回転量およびサイズ変更量が算出される。そのため、ユーザがタッチペン２７等を操作することで、画像オブジェクトの回転速度がより速くなったり、より大きく拡大されたりして、ユーザにとって見れば、自身の操作に反応して画像オブジェクトが自在に変更されるといった感覚を得られる。
【０２３８】
より詳細には、図３１に示す例のように、たとえば、ユーザがタッチペン２７等をタッチ状態のまま第８入力点Ｐ８から第９入力点Ｐ９へ移動させたとする。なお、このユーザによるタッチペン２７等の移動操作（座標値の変化）は、演算周期Δｔ（いわゆるフレーム周期）の間に行なわれたものとする。以下の説明では、第８入力点が時刻ｔで入力され、第９入力点が時刻ｔ＋Δｔで入力されたとする。
【０２３９】
画像オブジェクトＯＢＪ５の回転量およびサイズ変更量は、この第８入力点Ｐ８から第９入力点Ｐ９への移動によって生じた操作ベクトルＶｔｐに応じて算出される。より具体的には、画像オブジェクトＯＢＪ５の中心点３０８に対する操作ベクトルＶｔｐの周方向成分ｖθおよび径方向成分ｖｒに応じて、画像オブジェクトＯＢＪ５の回転量およびサイズ変更量がそれぞれ算出される。
【０２４０】
この周方向および径方向については、画像オブジェクトＯＢＪ５の中心点３０８を通る任意の直線について定義することができるが、図３１に示す例では、画像オブジェクトＯＢＪ５の中心点３０８および操作ベクトルＶｔｐの始点（第８入力点Ｐ８）を通る直線Ｌ８について、操作ベクトルＶｔｐが周方向成分および径方向成分に分解される。すなわち、操作ベクトルＶｔｐは、直線Ｌ８に垂直な成分（周方向成分ｖθ）と平行な成分（径方向成分ｖｒ）とに分解される。
【０２４１】
さらに、周方向成分ｖθおよび径方向成分ｖｒを用いて、ある時刻ｔと引き続く演算周期後（ｔ＋Δｔ）との間における画像オブジェクトの回転角度θおよび縮小／拡大率αは、以下のような数式に従って算出される。
【０２４２】
θ（ｔ＋Δｔ）＝θ（ｔ）±ａ×ｖθ・・・（１）
α（ｔ＋Δｔ）＝α（ｔ）＋ｂ×ｖｒ・・・（２）
但し、θの初期値は０、αの初期値は１であり、タッチ操作がないときでも、θ，αの値は前回の値が保持される。
【０２４３】
θ（ｔ）およびα（ｔ）は、時刻ｔにおける回転角度および縮小／拡大率を示す。
θ（ｔ＋Δｔ）およびα（ｔ＋Δｔ）は、時刻（ｔ＋Δｔ）における回転角度および縮小／拡大率を示し、ａおよびｂは、バイアス係数を示す。
【０２４４】
このように決定されるθおよびαを用いて、中心点３０８を中心としてθだけ回転し、かつ、αだけ拡大縮小したオブジェクト画像が中心点３０８の位置に表示される。なお、θは標準の向きからの回転角度であり、αは標準サイズからの拡大縮小率である。
【０２４５】
なお、上述の例では、１フレーム間の操作ベクトルＶｔｐの径方向成分ｖｒを用いて画像オブジェクトの縮小／拡大率αを求めたが、他の例では、タッチオン座標と、タッチオン時の縮小／拡大率α０を記憶しておき、その後タッチ操作が継続している限りにおいて、画像オブジェクトＯＢＪ５の中心点３０８からタッチオン座標までの距離と、中心点３０８から現在のタッチ座標までの距離の差Δｄ（ｔ）を用いてもよい。この場合、時刻ｔにおける縮小／拡大率α（ｔ）は以下の数式によって算出される。なお、Δｄ（ｔ）は現在のタッチ座標がタッチオン座標よりも中心点に近いときはマイナスの値となる。
【０２４６】
α（ｔ）＝α０＋ｂ×Δｄ（ｔ）・・・（２）’
上記の例ではα（ｔ）は常にタッチオン時を基準に算出されることになり、そうすることにより誤差の蓄積を防止することができる。このとき、θについても同様に、タッチオン時の回転角度θ０に基づいて、タッチオン時と現在との回転角度の差分を用いて算出してもよいし、前式（１）を用いて算出してもよい。
【０２４７】
なお、（１）式の左辺第２項の符号は、画像オブジェクトの回転位置θの定義と、操作ベクトルＶｔｐの向きとの関係に応じていずれかが選択される。すなわち、画像オブジェクトＯＢＪ５の中心点３０８に対して反時計回りの方向を回転位置θの正方向に定めた場合には、操作ベクトルＶｔｐが中心点３０８に対して反時計回りの方向に生じると、（１）式の左辺第２項の符号は「＋」となり、一方、操作ベクトルＶｔｐが中心点３０８に対して時計回りの方向に生じると、（１）式の左辺第２項の符号は「−」となる。
【０２４８】
さらに、操作ベクトルＶｔｐがいずれの方向に生じたかを判断する方法の一例として、操作ベクトルＶｔｐと、画像オブジェクトＯＢＪ５の中心点３０８から第８入力点Ｐ８へのベクトルＶｓとの外積に基づく判断を用いることができる。すなわち、図３１に示す例では、操作ベクトルＶｔｐが反時計回りの方向に生じると、操作ベクトルＶｔｐとベクトルＶｓとの外積は正の値をとり、一方、操作ベクトルＶｔｐが時計回りの方向に生じると、操作ベクトルＶｔｐとベクトルＶｓとの外積は負の値をとる。そこで、このような外積の符号に応じて、いずれの方向に操作ベクトルＶｔｐが生じたかを判断することができる。
【０２４９】
また、（２）式において、径方向成分Ｖｒは、画像オブジェクトＯＢＪ５の中心点３０８から遠ざかる方向を＋（プラス）とし、近づく方向を−（マイナス）としている。
【０２５０】
なお、当然のことながら、画像オブジェクトＯＢＪ５の中心点３０８および操作ベクトルＶｔｐの終点（第９入力点Ｐ９）を通る直線Ｌ９について、操作ベクトルＶｔｐを周方向成分および径方向成分に分解してもよい。また、中心点３０８と操作ベクトルＶｔｐの中間点を通る直線を用いてもよい。
【０２５１】
＜描画処理＞
上述したように、本実施の形態に従うゲーム装置１００Ａでは、カメラで撮影された画像の一部が画像オブジェクトとして抽出され、この抽出された画像オブジェクトを画面全体に複数展開した画像がリアルタイムに表示される。さらに、ユーザがタッチペン２７等を画面上にタッチしたまま操作を行なうと、画像オブジェクトは、この操作に応じた回転角およびサイズでリアルタイムに変化する。そのため、このような画像表示を行なうための描画処理について図３２および図３３を用いて説明する。
【０２５２】
図３２は、この発明の実施の形態２に従うゲーム装置１００Ａの描画処理を説明するための模式図である。図３３は、この発明の実施の形態２に従うゲーム装置１００Ａにおける画像オブジェクトの抽出処理を説明するための模式図である。
【０２５３】
図３２を参照して、本実施の形態に従うゲーム装置１００Ａでは、２つのレイヤー３４２および３４４を用いて、画面表示するための映像信号を生成している。なお、レイヤー３４２および３４４の各々は、少なくとも下側ＬＣＤ１２の解像度に相当する大きさのメモリ領域をメインメモリ３２内に形成することで実現される。
【０２５４】
第１レイヤー３４２は、カメラで撮影された画像（静止画像もしくは動画像）、またはメモリカード２８（図２）などから読出された画像（静止画像もしくは動画像）から抽出された画像オブジェクトを展開して表示するためのメモリ領域である。
【０２５５】
ＣＰＵ３１（図２）は、内側カメラ２３、外側カメラ２５、およびメモリカード２８のいずれかから入力される入力画像ＩＭＧを展開し、この入力画像ＩＭＧから画像オブジェクトＯＢＪ５を抽出する。そして、この画像オブジェクトＯＢＪ５を所定規則に従って展開したデータを、メインメモリ３２内の第１レイヤー３４２に相当する領域に書き込む。なお、静止画像が入力される場合には、ラスタデータに展開した上で書き込みを行なえばよいが、動画像が入力される場合には、表示のリアルタイム性を向上させるために、ポリゴン処理などを用いてレンダリングを行なってもよい。
【０２５６】
第２レイヤー３４４は、ユーザ操作を受け付けるためのアイコンを表示するためのメモリ領域である。ＣＰＵ３１は、ユーザ操作によって選択された機能や動作モードに応じて、必要なアイコンを表示するためのデータをメインメモリ３２内の第２レイヤー３４４に相当する領域に書き込む。
【０２５７】
これらのレイヤー３４２および３４４が記憶するデータを合成した画像が画面表示される。各レイヤー３４２および３４４では、表示すべきデータが存在する画素についてのみ有効なものとして扱われ、表示すべきデータが存在しない画素については、いわば透明なものとして扱われる。そのため、あるレイヤーのうち透明なものとして取り扱われる画素については、より下位のレイヤーの対応する画素のデータが画面表示されることになる。
【０２５８】
また、「とる」アイコン３１２（図２６）が選択された場合には、ＣＰＵ３１は、第１レイヤー３４２に記憶されたデータを保存用データメモリ３４（図２）などに記憶される。
【０２５９】
上述した画像オブジェクトの抽出処理としては、図３３（ａ）に示すように、入力画像ＩＭＧに対して予め定められた領域に含まれる画素のデータを抽出した上で、この抽出したデータを上述した縮小／拡大率αに応じて縮小または拡大することで、表示される大きさを可変にするようにしてもよい。
【０２６０】
あるいは、画像オブジェクトの別の抽出処理としては、図３３（ｂ）に示すように、入力画像ＩＭＧから画素のデータを抽出する領域を上述した縮小／拡大率αに応じて縮小または拡大するようにしてもよい。このような処理を採用することで、画像オブジェクトの実効サイズを同一に維持しつつ、その中に含まれる実体データ（すなわち、被写体ＴＲＧの画像）を縮小または拡大することができる。
【０２６１】
＜処理手順＞
以下、上述した本実施の形態に従う「かがみカメラ」に係る処理手順について、図３４〜図３６を参照して説明する。なお、図３４〜図３６に示す各ステップは、代表的に、ＣＰＵ３１が、メモリカード２９に記憶されたプログラム等をメインメモリ３２に読み出して実行することで実現される。
【０２６２】
（１．機能選択処理）
本実施の形態に従うゲーム装置１００Ａにおいても、上述の図１７と同様の機能選択に係る処理が実行される。
【０２６３】
本実施の形態に従うゲーム装置１００Ａでは、図１７に示すステップＳ８において、図２５に示すように、たとえば「かがみカメラ」の機能が選択された場合には、「かがみカメラ」といった名称および各処理の内容（図２５に示す例では、左右対称モード）がプレビュー表示される。
【０２６４】
また、ステップＳ１６において、「かがみカメラ」が選択されていれば、ＣＰＵ３１は、図３４および図３５に示すフローチャートに従う処理を実行する。
【０２６５】
その他のステップについては、上述した実施の形態１と同様であるので、詳細な説明は繰り返さない。
【０２６６】
（２．「かがみカメラ」サブルーチン）
図３４および図３５は、図１７に示すステップＳ１６において「かがみカメラ」が選択されている場合に実行されるサブルーチン処理を示すフローチャートである。
【０２６７】
図３４および図３５を参照して、まず、ステップＳ６００において、ＣＰＵ３１は、内部変数である前回座標値および今回座標値を初期化（ゼロクリア）する。
【０２６８】
続くステップＳ６０２において、ＣＰＵ３１は、図３６に示す描画処理サブルーチンを開始する。この描画処理サブルーチンは、図２６〜図３０に示すような「かがみカメラ」での画面表示を行なうための処理である。なお、図３６に示す処理手順は、図３４および図３５に示される処理とは独立して、所定周期で繰り返し実行される。
【０２６９】
さらに続くステップＳ６０４では、ＣＰＵ３１は、選択されているカメラ（内側カメラ２３または外側カメラ２５）からの入力画像のうち、予め定められた領域（初期値）に含まれる画素のデータを抽出することで画像オブジェクト（初期値）が生成される。さらに続くステップＳ６０６では、ＣＰＵ３１は、ステップＳ６０４で生成された画像オブジェクト（初期値）を予め定められた回転位置θおよび縮小／拡大率αで画面全体に展開した表示データを生成し、メインメモリ３２内の第１レイヤー３４２に相当する領域に書き込む。そして、処理はステップＳ６０８へ進む。
【０２７０】
続くステップＳ６０８では、ＣＰＵ３１は、図２６に示すアイコン３０２〜３１４を表示するためのデータを、メインメモリ３２内の第２レイヤー３４４に相当する領域に書き込む。すなわち、ＣＰＵ３１は、ユーザ操作を受け付けるためのアイコンを下側ＬＣＤ１２に表示する。
【０２７１】
以上のようなステップＳ６０２〜Ｓ６０８の処理によって、「かがみカメラ」モードの初期画面が表示される。
【０２７２】
続くステップＳ６１０では、ＣＰＵ３１は、Ｉ／Ｆ回路４２を介してタッチパネル１３からタッチ位置データが入力されたか否かを判断する。すなわち、ＣＰＵ３１は、ユーザによるタッチペン２７等によるタッチ操作の有無を判断する。タッチ位置データが入力されていなければ（ステップＳ６１０においてＮＯ）、ステップＳ６１０の処理が繰り返される。一方、タッチ位置データが入力されていれば（ステップＳ６１０においてＹＥＳ）、処理はステップＳ６１２へ進む。
【０２７３】
ステップＳ６１２では、ＣＰＵ３１は、タッチ位置データの示す座標値が「左右対称」アイコン３０２の表示範囲内の値であるか否かを判断する。すなわち、ＣＰＵ３１は、「左右対称」アイコン３０２が選択されたか否かを判断する。そして、タッチ位置データの示す座標値が「左右対称」アイコン３０２の表示範囲内の値であれば（ステップＳ６１２においてＹＥＳ）、処理はステップＳ６１４へ進む。一方、タッチ位置データの示す座標値が「左右対称」アイコン３０２の表示範囲外の値であれば（ステップＳ６１２においてＮＯ）、処理はステップＳ６１６へ進む。
【０２７４】
ステップＳ６１４では、ＣＰＵ３１は、内部フラグを「左右対称」モードに設定する。そして、処理はステップＳ６１０へ戻る。
【０２７５】
ステップＳ６１６では、ＣＰＵ３１は、タッチ位置データの示す座標値が「三角」アイコン３０４の表示範囲内の値であるか否かを判断する。すなわち、ＣＰＵ３１は、「三角」アイコン３０４が選択されたか否かを判断する。そして、タッチ位置データの示す座標値が「三角」アイコン３０４の表示範囲内の値であれば（ステップＳ６１６においてＹＥＳ）、処理はステップＳ６１８へ進む。一方、タッチ位置データの示す座標値が「三角」アイコン３０４の表示範囲外の値であれば（ステップＳ６１６においてＮＯ）、処理はステップＳ６２０へ進む。
【０２７６】
ステップＳ６１８では、ＣＰＵ３１は、内部フラグを「三角」モードに設定する。そして、処理はステップＳ６１０へ戻る。
【０２７７】
ステップＳ６２０では、ＣＰＵ３１は、タッチ位置データの示す座標値が「四角」アイコン３０６の表示範囲内の値であるか否かを判断する。すなわち、ＣＰＵ３１は、「四角」アイコン３０６が選択されたか否かを判断する。そして、タッチ位置データの示す座標値が「四角」アイコン３０６の表示範囲内の値であれば（ステップＳ６２０においてＹＥＳ）、処理はステップＳ６２２へ進む。一方、タッチ位置データの示す座標値が「四角」アイコン３０６の表示範囲外の値であれば（ステップＳ６２０においてＮＯ）、処理はステップＳ６２４へ進む。
【０２７８】
ステップＳ６２２では、ＣＰＵ３１は、内部フラグを「四角」モードに設定する。そして、処理はステップＳ６１０へ戻る。
【０２７９】
ステップＳ６２４では、ＣＰＵ３１は、タッチ位置データの示す座標値が「とる」アイコン３１２の表示範囲内の値であるか否かを判断する。すなわち、ＣＰＵ３１は、「とる」アイコン３１２が選択されたか否かを判断する。そして、タッチ位置データの示す座標値が「とる」アイコン３１２の表示範囲内の値であれば（ステップＳ６２４においてＹＥＳ）、処理はステップＳ６２６へ進む。一方、タッチ位置データの示す座標値が「とる」アイコン３１２の表示範囲外の値であれば（ステップＳ６２４においてＮＯ）、処理はステップＳ６２８へ進む。
【０２８０】
ステップＳ６２６では、ＣＰＵ３１は、メインメモリ３２内の第１レイヤー３４２に相当する領域に記憶されたデータを読み出して、保存用データメモリ３４などに書き込む。そして、処理はステップＳ６１０へ戻る。
【０２８１】
ステップＳ６２８では、ＣＰＵ３１は、タッチ位置データの示す座標値が切替アイコン３１４の表示範囲内の値であるか否かを判断する。すなわち、ＣＰＵ３１は、切替アイコン３１４が選択されたか否かを判断する。そして、タッチ位置データの示す座標値が切替アイコン３１４の表示範囲内の値であれば（ステップＳ６２８においてＹＥＳ）、処理はステップＳ６３０へ進む。一方、タッチ位置データの示す座標値が切替アイコン３１４の表示範囲外の値であれば（ステップＳ６２８においてＮＯ）、処理はステップＳ６３２へ進む。
【０２８２】
ステップＳ６３０では、ＣＰＵ３１は、画像撮影に使用するカメラを内側カメラ２３と外側カメラ２５との間で切り替える。すなわち、ＣＰＵ３１は、入力画像のソースを内側カメラ２３と外側カメラ２５との間で切り替える。そして、処理はステップＳ６１０へ戻る。
【０２８３】
ステップＳ６３２では、ＣＰＵ３１は、タッチ位置データの示す座標値が「やめる」アイコン３１０の表示範囲内の値であるか否かを判断する。すなわち、ＣＰＵ３１は、「やめる」アイコン３１０が選択されたか否かを判断する。そして、タッチ位置データの示す座標値が「やめる」アイコン３１０の表示範囲内の値であれば（ステップＳ６３２においてＹＥＳ）、ＣＰＵ３１は、図３６に示す描画処理サブルーチンを終了（ステップＳ６３４）させた後、本処理を終了する。一方、タッチ位置データの示す座標値が「やめる」アイコン２１０の表示範囲外の値であれば（ステップＳ６３２においてＮＯ）、処理は図３５に示すステップＳ６３６へ進む。すなわち、ステップＳ６３６以下の処理は、ユーザがタッチペン２７等で画面上のアイコン３０１〜３１４以外の位置にタッチした場合に実行される。
【０２８４】
ステップＳ６３６では、ＣＰＵ３１は、今回座標値にゼロ以外の有効な値がセットされているか否かを判断する。すなわち、ＣＰＵ３１は、前回の演算周期において、ユーザがタッチペン２７等で画面上のアイコン３０１〜３１４以外の位置にタッチしたか否かを判断する。
【０２８５】
今回座標値にゼロ以外の有効な値がセットされていなければ（ステップＳ６３６においてＮＯ）、処理はステップＳ６３８へ進む。ステップＳ６３８では、ＣＰＵ３１は、タッチ位置データの示す座標値を前回座標値および今回座標値にそれぞれセットする。そして、処理はステップＳ６５０へ進む。すなわち、前回の演算周期において、ユーザが画像オブジェクトの回転および／またはサイズ変更を指示するための入力操作を行なっていなければ、当該入力操作直後の演算周期では、画像オブジェクトの回転位置θおよび縮小／拡大率αは変更されない。
【０２８６】
一方、今回座標値にゼロ以外の有効な値がセットされていれば（ステップＳ６３６においてＹＥＳ）、処理はステップＳ６４０へ進む。ステップＳ６４０では、ＣＰＵ３１は、前回座標値を現在の今回座標値にセットした後、タッチ位置データの示す座標値を今回座標値にセットする。そして、処理はステップＳ６４２へ進む。すなわち、前回の演算周期から今回の演算周期の間に、ユーザによる何らかの入力操作が行なわれた場合には、画像オブジェクトの回転および／またはサイズ変更に係る処理が実行される。
【０２８７】
ステップＳ６４２では、ＣＰＵ３１は、前回座標値から今回座標値までの操作ベクトルＶｔｐを算出する。すなわち、タッチパネル１３に対する操作によって入力される座標値の変化が検出される。
【０２８８】
続くステップＳ６４４では、ＣＰＵ３１は、配置されている画像オブジェクトの中心点から前回座標値までのベクトルＶｓを算出する。さらに続くステップＳ６４６では、ＣＰＵ３１は、操作ベクトルＶｔｐとベクトルＶｓとの外積を算出し、この算出した外積の符号（正または負）に基づいて、操作ベクトルＶｔｐが生じた回転方向を判断する。そして、処理はステップＳ６４８へ進む。
【０２８９】
ステップＳ６４８では、ＣＰＵ３１は、操作ベクトルＶｔｐを周方向成分Ｖθおよび径方向成分Ｖｒに分解する。すなわち、座標値の変化に応じた周方向成分Ｖθ（第１変化成分）および径方向成分Ｖｒ（第２変化成分）が取得される。
【０２９０】
続くステップＳ６５０では、ＣＰＵ３１は、ステップＳ６４８において算出した周方向成分Ｖθおよび径方向成分Ｖｒに基づいて、画像オブジェクトの回転位置θおよび縮小／拡大率αをそれぞれ算出する。そして、処理はステップＳ６５０へ進む。
【０２９１】
ステップＳ６５０では、ＣＰＵ３１は、選択されているカメラ（内側カメラ２３または外側カメラ２５）からの入力画像のうち、設定されているモードに応じた領域に含まれる画素のデータを抽出することで画像オブジェクトを更新する。さらに続くステップＳ６５２では、ＣＰＵ３１は、ステップＳ６５０で更新された画像オブジェクトを現在の回転位置θおよび縮小／拡大率αで画面全体に展開した表示データを生成し、メインメモリ３２内の第１レイヤー３４２に相当する領域に書き込む。すなわち、画像オブジェクトをを中心として、画像オブジェクトに含まれる画像を画面全体に展開して表示される。そして、処理はステップＳ６５４へ進む。
【０２９２】
ステップＳ６５４では、ＣＰＵ３１は、次の演算周期の実行タイミングまで待つ。その後、処理はステップＳ６１０へ戻る。この繰り返し処理によって、画像オブジェクトの回転位置（向き）または縮小／拡大率（サイズ）の変更に伴って、展開することで得られる表示画像は順次更新される。
【０２９３】
（３．描画処理サブルーチン）
図３６は、図３４に示すステップＳ６０２において実行が開始される描画処理サブルーチン処理を示すフローチャートである。
【０２９４】
図３６を参照して、ステップＳ７００において、ＣＰＵ３１は、第１レイヤー３４２および第２レイヤー３４４がそれぞれ記憶するデータを合成する。なお、第１レイヤー３４２に記憶されるデータは、上述の図３４および図３５に示すサブルーチン処理の実行に伴って、随時更新される。
【０２９５】
さらに続くステップＳ７０２において、ＣＰＵ３１は、合成したデータに基づいて、下側ＬＣＤ１２に画像を描画（レンダリング）する。そして、処理はステップＳ７００へ戻る。
【０２９６】
上述の図３６に示すサブルーチン処理は、図３４に示すステップＳ６０２においてその実行が開始され、図３６に示すステップＳ６３４においてその実行が終了される。
【０２９７】
［実施の形態２の変形例］
上述の実施の形態２では、図３１に示すように、操作ベクトルＶｔｐの周方向成分Ｖθに応じて、画像オブジェクトの回転量がそれぞれ決定される処理について例示したが、オブジェクトの基準点に対して、操作ベクトルＶｔｐの両頂点がなす角に応じて、オブジェクトを回転するようにしてもよい。
【０２９８】
すなわち、図３１において、オブジェクトＯＢＪ５の中心点３０８に対して、第８入力点Ｐ８と第９入力点Ｐ９とがなす角に応じて、オブジェクトの回転位置θの単位周期当たりの変化量を算出してもよい。言い換えれば、オブジェクトの向きの変更量を、その基準点に対して入力される座標値の変化前後の２つの座標値がなす角に応じて定められる。
【０２９９】
その他の処理については、上述した実施の形態２と同様であるので、詳細な説明は繰り返さない。
【０３００】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０３０１】
【図１】この発明の実施の形態１に従うゲーム装置の外観図である。
【図２】この発明の実施の形態１に従うゲーム装置の内部構成の一例を示すブロック図である。
【図３】この発明の実施の形態１に従うゲーム装置の使用形態の一例を示す図である。
【図４】この発明の実施の形態１に従うゲーム装置における選択画面の一例を示す図である。
【図５】この発明の実施の形態１に従う「らくがきカメラ」の概要について説明するための図（その１）である。
【図６】この発明の実施の形態１に従う「らくがきカメラ」の概要について説明するための図（その２）である。
【図７】この発明の実施の形態１に従う「らくがきカメラ」の概要について説明するための図（その３）である。
【図８】この発明の実施の形態１に従う「らくがきカメラ」の概要について説明するための図（その４）である。
【図９】この発明の実施の形態１に従う「らくがきカメラ」の概要について説明するための図（その５）である。
【図１０】この発明の実施の形態１に従う「らくがきカメラ」の概要について説明するための図（その６）である。
【図１１】この発明の実施の形態１に従う「らくがきカメラ」の概要について説明するための図（その７）である。
【図１２】この発明の実施の形態１に従う「らくがきカメラ」の詳細処理について説明するための図（その１）である。
【図１３】この発明の実施の形態１に従う「らくがきカメラ」の詳細処理について説明するための図（その２）である。
【図１４】この発明の実施の形態１に従う「らくがきカメラ」の詳細処理について説明するための図（その３）である。
【図１５】この発明の実施の形態１に従うゲーム装置の描画処理を説明するための模式図である。
【図１６】この発明の実施の形態１に従うゲーム装置の有効範囲を説明するための図である。
【図１７】この発明の実施の形態１に従うゲーム装置における機能選択に係る処理を示すフローチャートである。
【図１８】図１７に示すステップＳ１６において「らくがきカメラ」が選択されている場合に実行されるサブルーチン処理を示すフローチャート（その１）である。
【図１９】図１７に示すステップＳ１６において「らくがきカメラ」が選択されている場合に実行されるサブルーチン処理を示すフローチャートその２）である。
【図２０】図１８に示すステップＳ１００において実行が開始される描画処理サブルーチン処理を示すフローチャートである。
【図２１】図１９に示すステップＳ１３６において実行される「えんぴつ」モードのサブルーチン処理を示すフローチャートである。
【図２２】図１９に示すステップＳ１３８において実行される「消しゴム」モードのサブルーチン処理を示すフローチャートである。
【図２３】図１９に示すステップＳ１４０において実行される「スタンプ」モードのサブルーチン処理を示すフローチャートである。
【図２４】この発明の実施の形態１の変形例１における処理を説明するための図である。
【図２５】この発明の実施の形態２に従うゲーム装置における選択画面の一例を示す図である。
【図２６】この発明の実施の形態２に従う「かがみカメラ」の概要について説明するための図（その１）である。
【図２７】この発明の実施の形態２に従う「かがみカメラ」の概要について説明するための図（その２）である。
【図２８】この発明の実施の形態２に従う「かがみカメラ」の概要について説明するための図（その３）である。
【図２９】この発明の実施の形態２に従う「かがみカメラ」の概要について説明するための図（その４）である。
【図３０】この発明の実施の形態２に従う「かがみカメラ」の概要について説明するための図（その５）である。
【図３１】この発明の実施の形態２に従う「かがみカメラ」の詳細処理について説明するための図である。
【図３２】この発明の実施の形態２に従うゲーム装置の描画処理を説明するための模式図である。
【図３３】この発明の実施の形態２に従うゲーム装置における画像オブジェクトの抽出処理を説明するための模式図である。
【図３４】図１７に示すステップＳ１６において「かがみカメラ」が選択されている場合に実行されるサブルーチン処理を示すフローチャートである。
【図３５】図１７に示すステップＳ１６において「かがみカメラ」が選択されている場合に実行されるサブルーチン処理を示すフローチャートである。
【図３６】図３４に示すステップＳ６０２において実行が開始される描画処理サブルーチン処理を示すフローチャートである。
【図３７】図１２に示す詳細処理に対応する内部処理を説明するための図である。
【図３８】図１３に示す詳細処理に対応する内部処理を説明するための図である。
【符号の説明】
【０３０２】
１１  下側ハウジング、１２  下側ＬＣＤ、１３  タッチパネル、１４Ａ〜１４Ｋ  操作ボタン、１５Ａ  第１ＬＥＤ、１５Ｂ  第２ＬＥＤ、１５Ｃ  第３ＬＥＤ、１６  マイクロフォン用孔、２１  上側ハウジング、２２  上側ＬＣＤ、２３  内側カメラ、２４  音抜き孔、２５  外側カメラ、２６  第４ＬＥＤ、２７  タッチペン、２８，２９  メモリカード、３２  メインメモリ、３３  メモリ制御回路、３４  保存用データメモリ、３５  プリセットデータ用メモリ、３６，３７  メモリカードＩ／Ｆ、３８  無線通信モジュール、３９  ローカル通信モジュール、４１  電源回路、４２  インターフェース回路（Ｉ／Ｆ回路）、４３  マイク、４４  アンプ、１００，１００Ａ  ゲーム装置。
【図１】
2010079589.tif 000003
【図２】
2010079589.tif 000004
【図３】
2010079589.tif 000005
【図４】
2010079589.tif 000006
【図５】
2010079589.tif 000007
【図６】
2010079589.tif 000008
【図７】
2010079589.tif 000009
【図８】
2010079589.tif 000010
【図９】
2010079589.tif 000011
【図１０】
2010079589.tif 000012
【図１１】
2010079589.tif 000013
【図１２】
2010079589.tif 000014
【図１３】
2010079589.tif 000015
【図１４】
2010079589.tif 000016
【図１５】
2010079589.tif 000017
【図１６】
2010079589.tif 000018
【図１７】
2010079589.tif 000019
【図１８】
2010079589.tif 000020
【図１９】
2010079589.tif 000021
【図２０】
2010079589.tif 000022
【図２１】
2010079589.tif 000023
【図２２】
2010079589.tif 000024
【図２３】
2010079589.tif 000025
【図２４】
2010079589.tif 000026
【図２５】
2010079589.tif 000027
【図２６】
2010079589.tif 000028
【図２７】
2010079589.tif 000029
【図２８】
2010079589.tif 000030
【図２９】
2010079589.tif 000031
【図３０】
2010079589.tif 000032
【図３１】
2010079589.tif 000033
【図３２】
2010079589.tif 000034
【図３３】
2010079589.tif 000035
【図３４】
2010079589.tif 000036
【図３５】
2010079589.tif 000037
【図３６】
2010079589.tif 000038
【図３７】
2010079589.tif 000039
【図３８】
2010079589.tif 000040