【手続補正書】
【提出日】平成16年10月12日(2004.10.12)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】  明細書
【発明の名称】  コミュニケーションシステム、コミュニケーション方法、コミュニケーションプログラム、並びに情報処理装置
【特許請求の範囲】
【請求項１】  コンピュータネットワークに接続された複数の情報処理装置の間で、画像データ、音声データ、文字データ、及び制御データのうち任意のデータを送受信することにより、各情報処理装置の利用者間で意志や感情の相互伝達を行うコミュニケーションシステムにおいて、
第１の情報処理装置は、
各利用者に対応した複数の画像をアプリケーションウィンドウ内の所定の位置に配置して表示する第１の画像表示手段と、
文字データ入力領域内に入力された文字データを送信する文字データ送信手段とを備え、
第２の情報処理装置は、
各利用者に対応した複数の画像をアプリケーションウィンドウ内の所定の位置に配置して表示する第２の画像表示手段と、
各利用者から文字データを受信した場合に、当該文字データの送信元である上記第１の情報処理装置の利用者に対応した画像を縮小表示するとともに、縮小表示した画像の近傍位置に設定された文字データ表示領域内に上記文字データを表示する文字データ表示手段とを備えること
を特徴とするコミュニケーションシステム。
【請求項２】  上記文字データ表示手段は、上記文字データ表示領域の外枠部を吹き出し形状として表示すること
を特徴とする請求項１記載のコミュニケーションシステム。
【請求項３】  上記文字データ表示手段は、上記文字データ表示領域内に表示する文字データの文字列長に応じて、上記文字データ表示領域の表示を継続する時間を制御すること
を特徴とする請求項１記載のコミュニケーションシステム。
【請求項４】  コンピュータネットワークに接続された複数の情報処理装置の間で、画像データ、音声データ、文字データ、及び制御データのうち任意のデータを送受信することにより、各情報処理装置の利用者間で意志や感情の相互伝達を行うコミュニケーション方法において、
各利用者に対応した複数の画像を第１の情報処理装置におけるアプリケーションウィンドウ内の所定の位置に配置して表示する第１の画像表示ステップと、
上記第１の情報処理装置における文字データ入力領域内に入力された文字データを送信する文字データ送信ステップと、
各利用者に対応した複数の画像を第２の情報処理装置におけるアプリケーションウィンドウ内の所定の位置に配置して表示する第２の画像表示ステップと、
各利用者から文字データを受信した場合に、当該文字データの送信元である上記第１の情報処理装置の利用者に対応した画像を縮小表示するとともに、縮小表示した画像の近傍位置に設定された文字データ表示領域内に上記文字データを表示する文字データ表示ステップとを有すること
を特徴とするコミュニケーション方法。
【請求項５】  上記文字データ表示ステップにおいては、上記文字データ表示領域の外枠部を吹き出し形状として表示すること
を特徴とする請求項４記載のコミュニケーション方法。
【請求項６】  上記文字データ表示ステップにおいては、上記文字データ表示領域内に表示する文字データの文字列長に応じて、上記文字データ表示領域の表示を継続する時間を制御すること
を特徴とする請求項４記載のコミュニケーション方法。
【請求項７】  コンピュータネットワークに接続された複数の情報処理装置の間で、画像データ、音声データ、文字データ、及び制御データのうち任意のデータを送受信することにより、各情報処理装置の利用者間で意志や感情の相互伝達を行うコミュニケーションプログラムにおいて、
上記情報処理装置に対して、
各利用者に対応した複数の画像をアプリケーションウィンドウ内の所定の位置に配置して表示する画像表示ステップと、
文字データ入力領域内に入力された文字データを送信する文字データ送信ステップと、
各利用者から文字データを受信した場合に、当該文字データの送信元である情報処理装置の利用者に対応した画像を縮小表示するとともに、縮小表示した画像の近傍位置に設定された文字データ表示領域内に上記文字データを表示する文字データ表示ステップと
を実行させるためのコミュニケーションプログラム。
【請求項８】  上記文字データ表示ステップにおいては、上記文字データ表示領域の外枠部を吹き出し形状として表示すること
を特徴とする請求項７記載のコミュニケーションプログラム。
【請求項９】  上記文字データ表示ステップにおいては、上記文字データ表示領域内に表示する文字データの文字列長に応じて、上記文字データ表示領域の表示を継続する時間を制御すること
を特徴とする請求項７記載のコミュニケーションプログラム。
【請求項１０】  画像データ、音声データ、文字データ、及び制御データのうち任意のデータをコンピュータネットワークを介して他の情報処理装置との間で送受信することにより、各情報処理装置の利用者間で意志や感情の相互伝達を行う情報処理装置において、
各利用者に対応した複数の画像をアプリケーションウィンドウ内の所定の位置に配置して表示する画像表示手段と、
各利用者から文字データを受信した場合に、当該文字データの送信元である利用者に対応した画像を縮小表示するとともに、縮小表示した画像の近傍位置に設定された文字データ表示領域内に上記文字データを表示する文字データ表示手段とを備えること
を特徴とする情報処理装置。
【請求項１１】  上記文字データ表示手段は、上記文字データ表示領域の外枠部を吹き出し形状として表示すること
を特徴とする請求項１０記載の情報処理装置。
【請求項１２】  上記文字データ表示手段は、上記文字データ表示領域内に表示する文字データの文字列長に応じて、上記文字データ表示領域の表示を継続する時間を制御すること
を特徴とする請求項１０記載の情報処理装置。
【請求項１３】  コンピュータネットワークを介して他の装置との間でデータを送受信する情報処理装置において、
少なくとも上記他の装置の利用者に対応した複数の画像を表示画面内の所定の位置に配置して表示させる制御を行う表示制御手段と、
上記他の装置から文字データを受信する受信手段と、
上記受信手段によって文字データを受信した場合に、当該文字データの送信元である上記他の装置の利用者に対応した画像を縮小表示させる制御を行うとともに、縮小表示した画像に関連付けて設定された文字データ表示領域内に受信した上記文字データを表示させる制御を行う文字データ表示制御手段とを備えること
を特徴とする情報処理装置。
【請求項１４】  コンピュータネットワークを介して他の装置との間でデータを送受信するコミュニケーション方法において、
少なくとも上記他の装置の利用者に対応した複数の画像を表示画面内の所定の位置に配置して表示させる制御を行う表示制御ステップと、
上記他の装置から文字データを受信する受信ステップと、
上記受信ステップにて文字データを受信した場合に、当該文字データの送信元である上記他の装置の利用者に対応した画像を縮小表示させる制御を行うとともに、縮小表示した画像に関連付けて設定された文字データ表示領域内に受信した上記文字データを表示させる制御を行う文字データ表示制御ステップとを有すること
を特徴とするコミュニケーション方法。
【請求項１５】  コンピュータネットワークを介して他の装置との間でデータを送受信するコミュニケーションプログラムにおいて、
情報処理装置に対して、
少なくとも上記他の装置の利用者に対応した複数の画像を表示画面内の所定の位置に配置して表示させる制御を行う表示制御ステップと、
上記他の装置から文字データを受信する受信ステップと、
上記受信ステップにて文字データを受信した場合に、当該文字データの送信元である上記他の装置の利用者に対応した画像を縮小表示させる制御を行うとともに、縮小表示した画像に関連付けて設定された文字データ表示領域内に受信した上記文字データを表示させる制御を行う文字データ表示制御ステップと
を実行させるためのコミュニケーションプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する分野】
本発明は、コンピュータネットワークに接続された複数の情報処理装置の間で、画像データ、音声データ、文字データ、及び制御データのうち任意のデータを送受信することにより、各情報処理装置の利用者間で意志や感情の相互伝達を行うコミュニケーションシステム、及びコミュニケーション方法に関する。また、このようなコミュニケーションシステム及びコミュニケーション方法を実現するコミュニケーションプログラム及び情報処理装置に関する。
【０００２】
【従来の技術】
従来から、多数のコンピュータ装置が接続されたコンピュータネットワークとして、いわゆるインターネット（The Internet）が広く普及している。インターネットは、ＴＣＰ／ＩＰ（Transmission Control Protocol / Internet Protocol）を代表とする各種のプロトコル（相互接続手順）を利用して、コンピュータ同士の間で様々な情報を自在に送受信することが可能とされている。
【０００３】
ところで、インターネットに接続されたコンピュータ装置のユーザ間で、意志や感情の相互伝達（コミュニケーション）を行うに際しては、従来から主として以下に挙げるような手法が利用されている。
【０００４】
第１の手法としては、電子メールを利用してコミュニケーションを図ることが挙げられる。電子メールは、宛先となる電子メールアドレスと、文字データにより記述された本文内容とを基本構成とするデータ群であり、電子メールアドレスに基づいて送信元のコンピュータ装置から送信先のコンピュータ装置に対して配信される。近年では、電子メールに画像データや音声データ等が含まれるファイルを添付して送信することも一般的となりつつある。このようにして、ユーザ間で電子メールを送受信することにより、文字データ、画像データ、或いは音声データといった情報を授受することができ、これによりコミュニケーションを図ることができる。
【０００５】
また、第２の手法としては、いわゆるチャットプログラムを利用してコミュニケーションを図ることが挙げられる。チャットプログラムは、インターネットを介して互いに接続された複数のコンピュータ装置上でそれぞれ起動された状態で、一方のユーザにより入力された文字データを即時に他方のユーザに送信するプログラムである。このようにして、チャットプログラムを用いて文字データを授受することにより、ユーザ間でコミュニケーションを図ることができる。
【０００６】
【発明が解決しようとする課題】
ところで、電子メールを用いてコミュニケーションを行う場合には、電子メールの配信に所定の時間を要することや、送信先のユーザが受信した電子メールを閲覧するまでの間にタイムラグ生じることなどから、ユーザ間のコミュニケーションにおける同時性（リアルタイム性）が必ずしも保証されるものではないという問題があった。
【０００７】
すなわち、電子メールを用いたコミュニケーションは、現実世界で顔を合わせて対話する場合のように、相手からの返事が即時に返ってくるような対話をすることが困難である。このため、コミュニケーションを行う上で連続的に変化するユーザの感情や表情を的確に相手側のユーザに伝達することが困難である。
【０００８】
また、チャットプログラムを用いてコミュニケーションを行う場合には、高いリアルタイム性を有する一方で、送受信する内容が文字データに限定されることから、ユーザ間で感情や表情の変化を相手側に伝達することが困難であるという問題が存在する。
【０００９】
近年では、上述したチャットプログラムにおいて送受信する文字データに代えて動画像データを送受信する、いわゆる動画チャットプログラムも実現されている。動画チャットプログラムは、例えば、コンピュータ装置に接続又は搭載された撮像装置により取り込んだユーザの表情などの動画像データをユーザ間で送受信することによって、いわばテレビジョン電話のようにして相手側のユーザとの間で送受信するプログラムである。
【００１０】
しかしながら、動画チャットプログラムは、送受信する動画像データが極めて大きなサイズとなってしまうため、多人数が同時にコミュニケーションを図ることが困難であるといった問題があった。また、動画像データの送受信に特化しているため、電子メールを用いた場合のように文字データを簡便に送受信することが困難であるとともに、文字データ、画像データ、或いは音声データのような各種のデータを伝送効率よく送受信することができない。
【００１１】
また、従来のチャットプログラムにおいては、ユーザ間で送受信された文字データ（テキスト）が、送受信された順（発言された順）に一覧表示されることが一般的である。しかしながら、このようにしてテキストを一覧表示する場合には、所定の大きさの表示領域を確保する必要があり、アニメーション効果などを取り入れたチャット機能を実現する場合には不適となる場合があった。
【００１２】
そこで、本発明は、上述した従来の問題を解決して、利用者間における全く新規なコミュニケーションを実現し、特に、高い表現力を有し、利用者間で自然な対話を行うことを可能とするコミュニケーションシステム、コミュニケーション方法、コミュニケーションプログラム、並びに情報処理装置を提供することを目的とする。
【００１３】
【課題を解決するための手段】
本発明の請求項１に係るコミュニケーションシステムは、コンピュータネットワークに接続された複数の情報処理装置の間で、画像データ、音声データ、文字データ、及び制御データのうち任意のデータを送受信することにより、各情報処理装置の利用者間で意志や感情の相互伝達を行うコミュニケーションシステムにおいて、第１の情報処理装置は、各利用者に対応した複数の画像をアプリケーションウィンドウ内の所定の位置に配置して表示する第１の画像表示手段と、文字データ入力領域内に入力された文字データを送信する文字データ送信手段とを備え、第２の情報処理装置は、各利用者に対応した複数の画像をアプリケーションウィンドウ内の所定の位置に配置して表示する第２の画像表示手段と、各利用者から文字データを受信した場合に、当該文字データの送信元である上記第１の情報処理装置の利用者に対応した画像を縮小表示するとともに、縮小表示した画像の近傍位置に設定された文字データ表示領域内に上記文字データを表示する文字データ表示手段とを備える。
【００１４】
また、本発明の請求項４に係るコミュニケーション方法は、コンピュータネットワークに接続された複数の情報処理装置の間で、画像データ、音声データ、文字データ、及び制御データのうち任意のデータを送受信することにより、各情報処理装置の利用者間で意志や感情の相互伝達を行うコミュニケーション方法において、各利用者に対応した複数の画像を第１の情報処理装置におけるアプリケーションウィンドウ内の所定の位置に配置して表示する第１の画像表示ステップと、上記第１の情報処理装置における文字データ入力領域内に入力された文字データを送信する文字データ送信ステップと、各利用者に対応した複数の画像を第２の情報処理装置におけるアプリケーションウィンドウ内の所定の位置に配置して表示する第２の画像表示ステップと、各利用者から文字データを受信した場合に、当該文字データの送信元である上記第１の情報処理装置の利用者に対応した画像を縮小表示するとともに、縮小表示した画像の近傍位置に設定された文字データ表示領域内に上記文字データを表示する文字データ表示ステップとを有する。
【００１５】
さらに、本発明の請求項７に係るコミュニケーションプログラムは、コンピュータネットワークに接続された複数の情報処理装置の間で、画像データ、音声データ、文字データ、及び制御データのうち任意のデータを送受信することにより、各情報処理装置の利用者間で意志や感情の相互伝達を行うコミュニケーションプログラムにおいて、上記情報処理装置に対して、画像表示ステップと、文字データ送信ステップと、文字データ表示ステップとを実行させるためのものである。上記画像表示ステップにおいては、各利用者に対応した複数の画像をアプリケーションウィンドウ内の所定の位置に配置して表示する。上記文字データ送信ステップにおいては、文字データ入力領域内に入力された文字データを送信する。上記文字データ表示ステップにおいては、各利用者から文字データを受信した場合に、当該文字データの送信元である情報処理装置の利用者に対応した画像を縮小表示するとともに、縮小表示した画像の近傍位置に設定された文字データ表示領域内に上記文字データを表示する。
【００１６】
さらにまた、本発明の請求項１０に係る情報処理装置は、画像データ、音声データ、文字データ、及び制御データのうち任意のデータをコンピュータネットワークを介して他の情報処理装置との間で送受信することにより、各情報処理装置の利用者間で意志や感情の相互伝達を行う情報処理装置において、各利用者に対応した複数の画像をアプリケーションウィンドウ内の所定の位置に配置して表示する画像表示手段と、各利用者から文字データを受信した場合に、当該文字データの送信元である利用者に対応した画像を縮小表示するとともに、縮小表示した画像の近傍位置に設定された文字データ表示領域内に上記文字データを表示する文字データ表示手段とを備える。
【００１７】
また、本発明の請求項１３に係る情報処理装置は、コンピュータネットワークを介して他の装置との間でデータを送受信する情報処理装置において、少なくとも上記他の装置の利用者に対応した複数の画像を表示画面内の所定の位置に配置して表示させる制御を行う表示制御手段と、上記他の装置から文字データを受信する受信手段と、上記受信手段によって文字データを受信した場合に、当該文字データの送信元である上記他の装置の利用者に対応した画像を縮小表示させる制御を行うとともに、縮小表示した画像に関連付けて設定された文字データ表示領域内に受信した上記文字データを表示させる制御を行う文字データ表示制御手段とを備える。
【００１８】
さらに、本発明の請求項１４に係るコミュニケーション方法は、コンピュータネットワークを介して他の装置との間でデータを送受信するコミュニケーション方法において、少なくとも上記他の装置の利用者に対応した複数の画像を表示画面内の所定の位置に配置して表示させる制御を行う表示制御ステップと、上記他の装置から文字データを受信する受信ステップと、上記受信ステップにて文字データを受信した場合に、当該文字データの送信元である上記他の装置の利用者に対応した画像を縮小表示させる制御を行うとともに、縮小表示した画像に関連付けて設定された文字データ表示領域内に受信した上記文字データを表示させる制御を行う文字データ表示制御ステップとを有する。
【００１９】
さらに、本発明の請求項１５に係るコミュニケーションプログラムは、コンピュータネットワークを介して他の装置との間でデータを送受信するコミュニケーションプログラムにおいて、情報処理装置に対して、表示制御ステップと、受信ステップと、文字データ表示制御ステップとを実行させるためのものである。上記表示制御ステップにおいては、少なくとも上記他の装置の利用者に対応した複数の画像を表示画面内の所定の位置に配置して表示させる制御を行う。上記受信ステップにおいては、上記他の装置から文字データを受信する。上記文字データ表示制御ステップにおいては、上記受信ステップにて文字データを受信した場合に、当該文字データの送信元である上記他の装置の利用者に対応した画像を縮小表示させる制御を行うとともに、縮小表示した画像に関連付けて設定された文字データ表示領域内に受信した上記文字データを表示させる制御を行う。
【００２０】
以上のように構成された本発明では、各利用者に対応した複数の画像をアプリケーションウィンドウ内に配置するとともに、文字データを表示する際に、この文字データの送信元である利用者に対応した画像を縮小表示するとともに、縮小表示した画像の近傍位置に設定された文字データ表示領域内に文字データを表示する。このため、送受信される文字データを一覧表示する従来の手法を採用した場合と比較して、表示領域をより有効に利用することができ、文字データ（テキスト）と、この文字データの送信元である利用者（発言者）との対応関係を直感的に把握することが可能となる。
【００２１】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。本発明は、コンピュータネットワークに接続された複数の情報処理装置の間で、画像データ、音声データ、文字データ、及び制御データのうち任意のデータを送受信することによって、各情報処理装置の利用者間で意志や感情の相互伝達（コミュニケーション）を行う場合に適用して好適なものである。そこで、以下では先ず、このようなコミュニケーションを実現する基本的なシステムの構成について概略的に説明する。
【００２２】
なお、以下では、コンピュータネットワークとして、いわゆるＴＣＰ／ＩＰ（Transmission Control Protocol / Internet Protocol）プロトコル群を利用して複数の情報処理装置間で相互接続が可能とされたネットワーク形態を想定して説明する。ただし、本発明は、このようなネットワーク形態への適用に限定されるものではなく、複数の情報処理装置間で相互に各種情報の授受を行うコンピュータネットワークを利用する場合に広く適用することが可能である。
【００２３】
また、以下では、各種情報の授受を行う情報処理装置として、コンシューマ用途のパーソナル・コンピュータ装置（以下、単にコンピュータ装置と称する。）を用いた場合を想定して説明する。ただし、本発明は、このようなコンピュータ装置を用いた場合への適用に限定されるものではなく、例えば、各種のＰＤＡ（Personal Digital Assistants）機器、或いは通信機能が搭載された携帯電話などのように各種の情報処理装置を用いた場合に対して広く適用することができる。
【００２４】
（１）コミュニケーションシステムの基本構成
【００２５】
本例で説明するコミュニケーションシステム１は、例えば図１に示すように、複数のコンピュータ装置１０がインターネット（The Internet）１１を介して相互に各種情報の授受が可能な状態で接続されてなる。
【００２６】
ここで、各コンピュータ装置１０は、インターネット１１に対して直接接続されていてもよいし、ＩＳＰ（Internet Service Provider）などを利用して公衆回線網１５を介してインターネット１１に接続可能な環境とされていてもよい。公衆回線網１５としては、例えば、電話回線網１５ａ、ケーブルテレビ網１５ｂ又はＡＤＳＬ（Asymmetric Digital Subscriber Line）網１５ｃ等を挙げることができる。このとき、コンピュータ装置１０は、インターネット１１に接続可能な環境であれば、有線接続或いは無線接続の別を問わない。例えば、コンピュータ装置１０は、いわゆる簡易型携帯電話（ＰＨＳ：Personal Handyphone System）等を介して、インターネット１１に接続する構成とされていてもよい。
【００２７】
各コンピュータ装置１０は、各々がインターネット１１に接続した状態で、ＴＣＰ／ＩＰプロトコル群を用いてインターネット１１上に伝送路を確立し、互いに画像データ、音声データ、文字データ、及び制御データ等の各種情報を相互に授受することが可能とされている。
【００２８】
（２）ユーザ端末の構成
【００２９】
つぎに以下では、上述したコミュニケーションシステム１を構成するコンピュータ装置１０の構成について説明する。
【００３０】
なお、以下では、説明の便宜上、コンピュータ装置１０にデジタルビデオカメラが搭載されている場合について説明するものとする。ただし、コンピュータ装置１０は、外部機器として構成されたデジタルビデオカメラが有線又は無線により接続されていてもよいし、例えばコンピュータ装置１０が接続されたＬＡＮ（Local Area Network）等のコンピュータネットワークに対して直接接続可能とされたデジタルビデオカメラを用いて、このデジタルビデオカメラにより撮像或いは録音された画像データや音声データがコンピュータネットワークを介してコンピュータ装置１０に取り込まれる構成とされていてもよい。
【００３１】
コンピュータ装置１０は、図２に示すように、各種演算処理を実行するとともに各部を統括して制御するＣＰＵ（Central Processing Unit）２０と、このＣＰＵ２０のワークエリアとして機能するＲＡＭ（Random Access Memory）２１と、ＣＰＵ２０によって実行される各種プログラムを含む情報を格納する読み取り専用のＲＯＭ（Read Only Memory）２２と、ＣＰＵ２０によって実行されるオペレーティング・システム（Operating System）やアプリケーション・プログラム等の各種プログラムが記録され、各種データ等の記録再生が行われるＨＤＤ（Hard Disk Drive）２３と、各種情報を表示する表示部２４と、この表示部２４とＣＰＵ２０との間でのデータの授受を行うための表示用インターフェース２５と、ユーザによって各種情報や指示操作を入力するための操作部２６と、この操作部２６とＣＰＵ２０との間でのデータの授受を行うための操作用インターフェース２７と、上述した公衆回線網１５を介してインターネット１１に接続された外部装置との間でデータの授受を行うためのネットワークインターフェース２８と、被写体を撮影して映像データや音声データを得るデジタルビデオカメラ２９と、いわゆるＭＰＥＧ２（Moving Picture Experts Group phase 2）方式に基づく圧縮符号化及び復号を行うＭＰＥＧ２コーデック３０とを備える。
【００３２】
コンピュータ装置１０は、これらの各部のうち、ＣＰＵ２０、ＲＡＭ２１、ＲＯＭ２２、ＨＤＤ２３、表示用インターフェース２５、操作用インターフェース２７、ネットワークインターフェース２８、デジタルビデオカメラ２９、及びＭＰＥＧ２コーデック３０がバス３１を介して接続されて構成される。
【００３３】
なお、コンピュータ装置１０におけるデジタルビデオカメラ２９は、コンピュータ装置１０に搭載されずに、例えば外部機器接続用の所定のインターフェースや、ネットワークインターフェース２８などを介してバス３１に接続されてもよい。また、コンピュータ装置１０は、必要に応じて、例えば着脱自在とされる記録媒体に対する記録再生を行うリムーバブル型の記録再生装置などがＨＤＤ２３の他に搭載又は接続され、この記録再生装置に対する各種データの記録再生が可能とされていてもよい。
【００３４】
ＣＰＵ２０は、バス３１を介して、ＲＡＭ２１、ＲＯＭ２２、ＨＤＤ２３、表示用インターフェース２５、操作用インターフェース２７、ネットワークインターフェース２８、デジタルビデオカメラ２９、及びＭＰＥＧ２コーデック３０と接続されている。ＣＰＵ２０は、各部を統括的に制御するとともに、例えばＨＤＤ２３等に記録されているオペレーティング・システムや各種アプリケーション・プログラムを実行処理する。特に、ＣＰＵ２０は、アプリケーション・プログラムのひとつとして構成されたコミュニケーションプログラムの実行を処理する。なお、このコミュニケーションプログラムについての詳細は後述する。
【００３５】
ＲＡＭ２１は、ＣＰＵ２０が各種プログラムを実行する際のワークエリアとして機能し、ＣＰＵ２０の制御のもとに、各種データを一時記憶する。
【００３６】
ＲＯＭ２２は、コンピュータ装置１０の起動に必要となる各種プログラムや設定情報などを格納している。このＲＯＭ２２に格納されている各種プログラムや設定情報は、コンピュータ装置１０の起動時に読み出され、ＣＰＵ２０によって利用される。
【００３７】
ＨＤＤ２３は、オペレーティング・システムやアプリケーション・プログラム等が記録されているとともに、ＣＰＵ２０の制御のもとに各種プログラムやデータ等の記録再生を行う。
【００３８】
表示部２４は、例えばＬＣＤ（Liquid Crystal Display）からなり、ＣＰＵ２０の制御のもとに、ＨＤＤ２３に記録されているデータ等の各種情報を表示画面に表示する。特に、表示部２４は、ＣＰＵ２０の制御のもとに、後述するコミュニケーションプログラムを実行処理した結果を表示したり、このコミュニケーションプログラムに対して各種の指示操作を行うボタンを表示するためのウィンドウといった、所定のグラフィカル・ユーザ・インターフェースを表示画面に表示する。
【００３９】
表示用インターフェース２５は、ＣＰＵ２０と表示部２４との間でのデータの授受を行う。すなわち、表示用インターフェース２５は、ＣＰＵ２０からバス３１を介して供給された各種情報を表示部２４に供給する。
【００４０】
操作部２６は、例えば、キーボード、マウス等のポインティングデバイス、或いはいわゆるジョグダイヤル等回転操作式スイッチなどによるユーザ・インターフェースを用いたユーザによる操作を受け付け、操作内容を示す制御信号を操作用インターフェース２７を介してＣＰＵ２０に供給する。
【００４１】
操作用インターフェース２７は、ＣＰＵ２０と操作部２６との間でのデータの授受を行う。すなわち、操作用インターフェース２７は、操作部２６から供給された制御信号をバス３１を介してＣＰＵ２０に供給する。
【００４２】
ネットワークインターフェース２８は、ＣＰＵ２０の制御のもとに、外部との通信を行うインターフェースとして機能する。すなわち、ネットワークインターフェース２８は、インターネット１１に接続された他のコンピュータ装置１０との間で各種情報の授受を行うために設けられるものである。
【００４３】
デジタルビデオカメラ２９は、被写体を撮影するための所定の光学系や、ＣＣＤ（Charge Coupled Devices）等の光電変換用のデバイス等からなる。デジタルビデオカメラ２９により得られた映像データや音声データは、ＣＰＵ２０の制御のもとに、バス３１を介してＭＰＥＧ２コーデック３０に供給される。
【００４４】
ＭＰＥＧ２コーデック３０は、バス３１を介してデジタルビデオカメラ２９から供給された映像データや音声データを、ＣＰＵ２０の制御のもとに、ＭＰＥＧ２方式に基づく圧縮符号化を行う。このとき、ＭＰＥＧ２コーデック３０は、ＣＰＵ２０の制御のもとに、映像データや音声データをリアルタイムに圧縮符号化する。また、ＭＰＥＧ２コーデック３０は、ＭＰＥＧ２方式に基づいて圧縮符号化されたデータを復号することもできる。
【００４５】
（３）コミュニケーションプログラムの概略
【００４６】
つぎに以下では、上述したコンピュータ装置１０により実行されるコミュニケーションプログラムについて説明する。
【００４７】
コミュニケーションプログラムは、それぞれ個別の機能を実現する複数のモジュールを組み合わせ自在とされた一連のプログラム群によって構成されており、例えばコンピュータ装置１０のＨＤＤ２３に記録されている。コンピュータ装置１０は、このコミュニケーションプログラムをＣＰＵ２０によって実行することにより、他のコンピュータ装置との間で、画像データ、音声データ、或いは文字データ等の各種情報を授受することによって、各コンピュータ装置のユーザ間での意志や感情の相互伝達（コミュニケーション）を可能とする。なお、コミュニケーションプログラムは、例えばいわゆるコンパクトディスク（Compact Disc）等の所定の記録媒体やインターネット１１等の伝送媒体によっても提供され得るものである。
【００４８】
コンピュータ装置１０で実行されるコミュニケーションプログラムは、他のコンピュータ装置で実行されるコミュニケーションプログラムとの間で、いわゆるサーバ・クライアント方式により通信を行う。すなわち、相互接続状態が確立された複数のコミュニケーションプログラムにおいては、所定のコミュニケーションプログラムによりサーバとしての機能が実現され、他のコミュニケーションプログラムがクライアントとして動作する。ただし、コミュニケーションプログラムは、コンピュータ装置１０において実行処理が開始され、他のコミュニケーションプログラムとの間で相互接続状態が確立されていない時点、すなわち初期起動状態において、いわば仮想セッションモードでの動作となり、サーバ又はクライアントの区別なく、自分自身でセッションの確立を行うことができる。
【００４９】
ここで、複数のコンピュータ装置１０で実行される各々のコミュニケーションプログラム間でセッションの確立を行う場合には、これらコミュニケーションプログラム間で接続設定情報の授受が行われる。この接続設定情報は、例えば、コミュニケーションプログラムの起動時にコンピュータ装置１０によって生成されるものであり、この接続設定情報の送出元となるコンピュータ装置１０に設定されたＩＰアドレス、及び当該コミュニケーションプログラムで利用されるポート番号などが記述されたファイルにより構成されている。なお、接続設定情報についての詳細は後述する。
【００５０】
そして、コミュニケーションプログラムから、他のコミュニケーションプログラムに対して接続設定情報が送出されると、この接続設定情報を取得したコミュニケーションプログラムは、接続設定情報に記述されたＩＰアドレスやポート番号などに基づいて、送出元であるコンピュータ装置１０（ひいては、このコンピュータ装置１０で実行されるコミュニケーションプログラム）に対して、接続処理を行い、セッションが確立される。
【００５１】
このとき、接続設定情報を含むファイルは、例えば拡張子によってコミュニケーションプログラムとの関連付けがなされており、いわゆるダブルクリック操作を行うことなどによってコンピュータ装置上でこのファイルが選択されると、自動的にコミュニケーションプログラムが起動するよう構成されている。
【００５２】
コミュニケーションシステム１においては、起動時に接続設定情報を生成し、この接続設定情報を他のコミュニケーションプログラムに対して送出した側のコミュニケーションプログラムがサーバとしての機能を果たし、取得した接続設定情報に基づいて起動された側のコミュニケーションプログラムがクライアントとして動作するものとする。
【００５３】
ここで、上述のようにしてコンピュータ装置間で接続設定情報を授受するに際しては、例えば、サーバとなるコンピュータ装置１０からクライアントとなるコンピュータ装置に対して、接続開始を促すメッセージが記載された電子メールに接続設定情報を含むファイルを添付して送信することにより実現されている。
【００５４】
なお、本例で説明するコミュニケーションシステム１においては、電子メールを利用して接続設定情報を送出するものとするが、例えば、いわゆるＦＴＰソフトウェアなどのような、インターネット１１に接続されたコンピュータ装置の間で各種のファイル交換を実現するアプリケーションプログラムを用いることによって、接続設定情報をデータ・ファイル或いはアプリケーション・プログラムの形で送出するとしてもよい。また、例えば、コンピュータ装置の利用者（ユーザ）に対して接続開始を通知することなく、接続設定情報を直接コンピュータ装置間で授受することによって、ユーザに接続の開始（セッションの確立）を意識させることなく自動的にクライアント側のコンピュータ装置上でコミュニケーションプログラムが起動するように構成してもよい。
【００５５】
（４）コミュニケーションプログラムのモジュール構造
【００５６】
ここで、コミュニケーションプログラムにおけるモジュール構造の一例について、図３を参照しながら説明する。コミュニケーションプログラムは、例えば図３に示すように、コンピュータ装置１０におけるネットワークインターフェース２８の動作を制御するインターフェースモジュール５０と、他のコンピュータ装置で実行されるコミュニケーションプログラム間でのセッションの確立などを提供するコアモジュール５１と、コミュニケーションプログラムにおける基本的な機能を提供する基本モジュール５２と、各々個別の機能を提供する複数のアプリケーションモジュール５３と、グラフィカル・ユーザ・インターフェース（以下、ＧＵＩ：Graphical User Interfaceと称する。）を管理するＧＵＩモジュール５４とにより構成されている。
【００５７】
インターフェースモジュール５０は、いわばＡＰＩ（Application Program Interface）として構成されており、インターネット１１等のコンピュータネットワークを介して他のコンピュータ装置で実行されるプログラムとの間で画像データ、音声データ、或いは文字データ等の各種情報の伝送路を確立し、ネットワーク通信の詳細を簡便な命令体系によって容易に処理可能とするモジュールである。このインターフェースモジュール５０としては、例えば、マイクロソフト株式会社の「Direct Play」などを用いることができる。
【００５８】
コアモジュール５１は、他のコミュニケーションプログラムとの間でセッションの確立を行うとともに、確立されたセッションの管理を行うセッション管理機能を有している。具体的には例えば、接続設定情報を作成する接続設定情報作成機能、セッションを確立するセッション確立機能、コミュニケーションプログラム間でデータの送受信を行うデータ送受信機能、確立されたセッション内のプレーヤーを管理するセッション内プレーヤー管理機能などが、セッション管理機能としてコアモジュール５１により提供される。
【００５９】
ここで、コミュニケーションシステム１においては、サーバとなるコミュニケーションプログラムと、クライアントとなるコミュニケーションプログラムとが存在している。サーバ側のコミュニケーションプログラムは、クライアント側のコミュニケーションプログラムから送出されたデータを、このデータの宛先を参照して、宛先として指定された他のクライアント側のコミュニケーションプログラムに転送するなどの処理が行われる。このため、コミュニケーションシステム１においては、画像データ、音声データ、或いは文字データなどの各種情報を授受するに際して、セッションを確立しておくことが必要となる。そこで、コミュニケーションプログラムにおいては、このようなセッションの確立や管理を行うためのインターフェースとしてセッション管理機能がコアモジュール５１により提供されている。
【００６０】
コアモジュール５１は、ＩＰアドレス及びポート番号などを取得して接続設定情報が記述されたファイルを生成する。また、このファイルに対して暗号化や復号化などを行う。また、コアモジュール５１は、クライアントとして動作する場合に、取得した接続設定情報に記述されたＩＰアドレス及びポート番号などに基づいて、サーバ側となるコンピュータ装置に対する接続を行う。これにより、セッションが確立される。
【００６１】
また、コアモジュール５１は、セッション内に存在するコミュニケーションプログラム（プレイヤー）の管理を行う。具体的には例えば、プレイヤーのリストを生成或いは取得したり、プレイヤー毎に割り当てられた固有の識別情報（プレイヤーＩＤ）の取得或いは管理を行う。また、コアモジュール５１は、新規なプレイヤーとの接続が確立されたり、所定のプレイヤーとの接続が切断されたり、プレイヤー毎の接続状態や接続名などの情報を含むプレイヤー情報が変更されるなどして、イベントが生じた場合に、このイベントを基本モジュール５２及び各アプリケーションモジュール５３に対して通知する。
【００６２】
また、コアモジュール５１は、複数のアプリケーションモジュール５３の各々に対する制御を行うアプリケーションモジュール管理機能を有している。具体的には例えば、各アプリケーションモジュール５３の起動管理や、各アプリケーションモジュール５３との間でデータの送受信などを行う。
【００６３】
コアモジュール５１は、具体的には例えば、コミュニケーションプログラムに実装されているアプリケーションモジュール５３に関するモジュール情報を、コンピュータ装置１０の所定の記憶領域から取得して、実装済みのアプリケーションモジュール５３をリスト化する。このモジュール情報は、例えば、アプリケーションモジュール毎に固有のモジュール識別情報、ＧＵＩに関する情報であるＧＵＩ情報、或いは、コミュニケーションプログラムの起動と同時に動作を開始するか否かを示すフラグ情報などにより構成されている。そして、コアモジュール５１は、このモジュール情報に基づいて、各アプリケーションモジュール５３の起動状態を管理する。
【００６４】
また、コアモジュール５１は、起動されていないアプリケーションモジュール５３を起動したり、コンピュータ装置１０の表示部２４に対する表示／非表示の切り替え制御などを行う。
【００６５】
ここで、コアモジュール５１の動作の一例として、クライアント側である一方のコミュニケーションプログラムから他方のコミュニケーションプログラムに対して、サーバ側のコミュニケーションプログラムを介してデータを送信する場合について、図４を参照しながら説明する。
【００６６】
この場合において、データ送信側で動作するコアモジュール５１ａは、基本モジュール５２やアプリケーションモジュール５３から送信されたデータを受信し、このデータに対して送信ヘッダーを付与して、サーバ側のコミュニケーションプログラムに対して送信する。このようにサーバ側に送信するに際しては、受信したデータの内容については関与しない。
【００６７】
一方、サーバ側で動作するコアモジュール５１ｂは、データ送信側から取得したデータに含まれる送信ヘッダーを参照して、この送信ヘッダーに宛先として記述されたデータ受信側のコミュニケーションプログラムに対して、データ送信側から取得したデータを送信する。
【００６８】
また、データ受信側で動作するコアモジュール５１ｃは、取得したデータに含まれる送信ヘッダーを参照して、このデータを所定のアプリケーションモジュール５３に対して受け渡す。このとき、コアモジュール５１ｃは、データ受信側におけるコミュニケーションプログラムでデータの受け渡し先として該当するアプリケーションモジュール５３が起動していない場合に、このアプリケーションモジュール５３を起動処理する。
【００６９】
また、コアモジュール５１ｃは、データ受信側のコミュニケーションプログラムに該当するアプリケーションモジュール５３が存在しない場合に、この旨を示すメッセージをデータ送信側のコミュニケーションプログラムに対して送信する。このとき、コアモジュール５１ｃは、取得したデータを受け渡す対象となるアプリケーションモジュール５３として、全てのアプリケーションモジュール５３が指定されている場合には、起動中であるアプリケーションモジュールにのみ、このデータを受け渡す。
【００７０】
コアモジュール５１は、上述のように動作することによって、クライアントとして動作するコミュニケーションプログラム間でデータの受け渡しを行う。
【００７１】
一方、基本モジュール５２は、コミュニケーションプログラムで用いる各種ウィンドウを用意する機能を有するモジュールである。また、基本モジュール５２は、コミュニケーションプログラムの実行処理に必要となる各種の情報を設定する設定機能、及び、セッションを確立する際に接続設定情報を電子メールに添付してクライアント側に送信する電子メール送信機能などを有する。
【００７２】
また、アプリケーションモジュール５３は、コミュニケーションプログラムに必要に応じて複数実装され、それぞれ独自の機能を提供する機能を有している。本例におけるコミュニケーションプログラムにおいては、アプリケーションモジュール５３として、個人情報管理モジュール５３ａ、画像送信モジュール５３ｂ、音声データ送受信モジュール５３ｃ、Ｗｅｂ機能モジュール５３ｄ、チャット内容転送モジュール５３ｅ、チャットログモジュール５３ｆ、感情表現モジュール５３ｇ、アクションモジュール５３ｈ、及びライブ出演モジュール５３ｉなどが実装されているものとする。
【００７３】
個人情報管理モジュール５３ａは、セッション内に存在する各コミュニケーションプログラム、すなわち各ユーザ（プレイヤー）に対応した画像データや名前情報などの個人情報を管理するモジュールである。
【００７４】
このコミュニケーションプログラムにおいては、最初に起動された状態で、ユーザに対応した画像や名前などの入力及び設定をユーザに要求して取得する。このとき、コアモジュール５１を介して個人情報管理モジュール５３ａに対して、表示要求が送信される。このようにして他のモジュールからの表示要求を受信すると、個人情報管理モジュール５３ａは、ＧＵＩモジュール５４に対して所定の取得要求を送信して、該当する個人情報を取得し、コンピュータ装置１０に表示されたウィンドウ内の所定の領域に所定の個人情報を表示する。
【００７５】
また、個人情報管理モジュール５３ａは、他のモジュールからのプレイヤー情報更新要求を受信した場合に、ネットワークを介して接続が確立された他のコミュニケーションプログラムにおける個人情報管理モジュール５３ａに対して、個人情報取得要求を送信する。このとき、個人情報取得要求を取得した側の個人情報管理モジュール５３ａは、自分自身の個人情報を取得して表示通知として返信する。
【００７６】
このようなプレイヤー情報更新要求は、例えば、コミュニケーションシステム１に対して新たにユーザが参入した場合に、コアモジュール５１によって個人情報管理モジュール５３ａに対して送信される。
【００７７】
画像送信モジュール５３ｂは、画像データの追加処理、削除処理、或いは選択時の処理などを提供するモジュールである。また、画像送信モジュール５３ｂは、コンピュータ装置１０に搭載又は接続されたデジタルビデオカメラ２９に対して、撮影状態のオン・オフの切り替え制御などの各種制御を行う。デジタルビデオカメラ２９の撮影状態がオンである場合には、インターネット１１に対する通信状態の負荷を監視しながら、画像データの送信処理を行う。なお、画像送信モジュール５３ｂにおいては、ユーザによる設定に応じて、他のコミュニケーションプログラムに対する送信を非保証通信で行うこともできる。この場合には、送信した画像データが伝送路の途中で失われた場合であっても再送信を行わない。
【００７８】
音声送受信モジュール５３ｃは、画像送信モジュール５３ｂに相当するものであり、音声データの追加処理、削除処理、或いは選択時の処理などを提供するモジュールである。また、音声送受信モジュール５３ｃは、インターフェースモジュール５０に実装された音声機能を利用して、コミュニケーションプログラム間で音声データの送受信を実現する機能を有している。なお、コミュニケーションシステム１においては、サーバ側のコミュニケーションプログラムにおいて音声出力をオンにしている場合のみ、クライアント側のコミュニケーションプログラムにおいても音声出力をオンとすることが可能とされている。また、クライアント側のコミュニケーションプログラムから送出された音声データは、サーバ側のコミュニケーションプログラムに実装された音声送受信モジュール５３ｃによってミキシングされ、再度各クライアント側のコミュニケーションプログラムに対して送信される。
【００７９】
Ｗｅｂ機能モジュール５３ｄは、コミュニケーションプログラムが実行されるコンピュータ装置１０、或いはインターネット１１に接続された他のコンピュータ装置に保持されたハイパーテキストや画像データなどの各種情報を取得して、コミュニケーションプログラムのウィンドウ内における所定の表示領域に、取得した各種情報を表示するＷｅｂ情報表示機能を提供するモジュールである。また、Ｗｅｂ機能モジュール５３ｄは、他のコミュニケーションプログラムとの間で、インターネット１１上に存在する各種情報（リソース）の所在地及び取得方法を示すＵＲＬ（Uniform Resource Locator）を共有するＵＲＬ共有機能を有する。このＵＲＬ共有機能についての詳細は後述する。
【００８０】
チャット内容転送モジュール５３ｅは、文字データがＧＵＩモジュール５４に対して入力されたことを示すイベントが、このＧＵＩモジュール５４から通知された際に、このイベントに基づいて入力された文字データを取得し、取得した文字データを含むチャットメッセージ通知を、セッションが確立された他のコミュニケーションプログラムの全てに対して送信するモジュールである。また、チャット内容転送モジュール５３ｅは、チャットメッセージ通知を受信すると、このチャットメッセージ通知に含まれる文字データを表示する要求をＧＵＩモジュール５４に対して行う。これにより、コミュニケーションプログラムのウィンドウ内の所定の位置に、いわゆる「吹き出し」状の文字表示領域が確保され、この領域内に文字データが表示される。
【００８１】
チャットログモジュール５３ｆは、チャット内容転送モジュール５３ｅから送信されたチャットメッセージ通知などに基づいて、入力又は受信した文字データを記録してチャットログファイルを生成する。チャットログモジュール５３ｆは、所定の記憶容量分の文字データを、コンピュータ装置１０のＲＡＭ２１内に記憶するとともに、必要に応じて、ＲＡＭ２１内に記憶された文字データをＨＤＤ２３などに待避させてチャットログファイルを生成する。また、チャットログモジュール５３ｆは、チャットログを表示する要求がなされた場合に、チャットログファイル内に記憶された文字データを取得して、コミュニケーションプログラムのウィンドウ内の所定の領域に表示する機能を有している。
【００８２】
感情表現モジュール５３ｇは、詳細を後述する感情表現データの読み込みや表示などを行うモジュールである。また、感情表現モジュール５３ｇは、感情を表現する際に選択されるボタンの表示などをＧＵＩモジュール５４に要求する。
【００８３】
また、感情表現モジュール５３ｇは、ＧＵＩモジュール５４により所定のボタンが選択された通知を受信すると、このボタンに対応した感情表現データ（アニメーションデータ）を、セッションが確立されている全てのコミュニケーションプログラムに対して送信する。一方、感情表現データを受信した際には、この感情表現データを表示する要求をＧＵＩモジュール５４に対して行う。なお、感情表現についての詳細は後述する。
【００８４】
アクションモジュール５３ｈは、詳細を後述するアクションデータの読み込みや表示などを行うモジュールである。また、アクションモジュール５３ｈは、アクションを表示する際に選択されるボタンの表示などをＧＵＩモジュール５４に要求する。
【００８５】
また、アクションモジュール５３ｈは、アクションを表示する際に選択されるボタンがユーザによって選択されると、選択されたボタンに対応したアクションデータ（アニメーションデータ）を、セッションが確立されている全てのコミュニケーションプログラムに対して送信する。一方、アクションデータを受信した際には、このアクションデータを表示する要求をＧＵＩモジュール５４に対して行う。なお、アクション表示についての詳細は後述する。
【００８６】
ライブ出演モジュール５３ｉは、インターネット１１を介して画像データや音声データのライブ配信を行うライブ配信プログラムと連携して動作するモジュールである。コミュニケーションプログラムは、ライブ出演モジュール５３ｉが実装されていることにより、外部のライブ配信プログラムとの間で画像データや音声データ等の授受を行うことが可能とされている。
【００８７】
アプリケーションモジュール５３は、上述したような各種のモジュールにより構成されている。なお、コミュニケーションプログラムにおいては、実装されるアプリケーションモジュール５３の数や機能に限定されるものではなく、上述した各種のモジュールの他にも、それぞれ独自の機能を提供するモジュールがアプリケーションモジュール５３のひとつとして実装されていてもよい。また、コミュニケーションプログラムにおいては、必要に応じてアプリケーションモジュール５３の追加又は削除を行うことが可能とされている。
【００８８】
ＧＵＩモジュール５４は、コミュニケーションプログラムで発生するウィンドウ表示等の画面表示を提供するモジュールである。ただし、ダイアロブボックスなどの各種ウィンドウの基本的な描画については、基本モジュール５２により提供される。ＧＵＩモジュール５４は、他のモジュールからなされた画面表示要求に応じて、ウィンドウ内の描画を行い、機能選択ボタンや画像データなどの表示を行う。
【００８９】
このＧＵＩモジュール５４は、機能選択ボタンの位置や並べ方、或いは画像データの表示位置や、ウィンドウ内における全体的な配列・構成に関する情報は有しているが、機能選択ボタンの数や内容に関しては、コアモジュール５１或いは各アプリケーションモジュール５３による要求に含まれるデータを参照することにより表示する。
【００９０】
なお、コミュニケーションプログラムに実装されるアプリケーションモジュール５３は、ＧＵＩモジュール５４に依らずに、独自に描画処理することが可能なアプリケーション表示領域を利用することが可能とされている。このようなアプリケーション表示領域を利用して画面表示を行う場合には、アプリケーションモジュール５３からの要求に応じてＧＵＩモジュールがアプリケーション表示領域を確保し、確保されたアプリケーション表示領域内に対する描画処理は、アプリケーションモジュール５３側で行うことができる。
【００９１】
また、ＧＵＩモジュール５４は、ウィンドウ内に表示された機能選択ボタン等がユーザによって選択された場合に、この機能選択ボタンが選択されたことを示すイベントを、基本モジュール５２やアプリケーションモジュール５３に対して通知する機能を有している。
【００９２】
コミュニケーションプログラムは、上述したように、複数のモジュールによって構成されてなり、各モジュールが必要に応じて適宜連携して動作するように構成されている。
【００９３】
（５）接続設定情報
【００９４】
つぎに、コミュニケーションシステム１において、コンピュータ装置間でセッションを確立する際に用いられる接続設定情報について説明する。接続設定情報は、サーバとなるコミュニケーションプログラムが実行されるコンピュータ装置において生成される情報である。
【００９５】
接続設定情報は、例えば図５に示すように、クライアントとなるコミュニケーションプログラムがサーバとなるコミュニケーションプログラムに対してセッションを確立する際に認証などを行うためのアクセスキー、コミュニケーションプログラムが利用するコンピュータ装置１０のネットワークインターフェース２８のポート番号、サーバとなるコミュニケーションプログラムが実行されるコンピュータ装置１０に設定されたＩＰアドレスの数、及びサーバとなるコミュニケーションプログラムが実行されるコンピュータ装置１０に設定された一連のＩＰアドレスなどによって構成される。
【００９６】
（６）コミュニケーションプログラムによる基本処理
【００９７】
以下では、上述したコミュニケーションプログラムがコンピュータ装置１０において実行される場合における基本的な一連の処理について、図６及び図７に示すフローチャートを参照しながら順を追って説明する。
【００９８】
コミュニケーションプログラムは、実行処理が開始（起動）されると、図６に示すステップＳ１０において、機能モジュールリストを参照することにより、起動フラグが立っているモジュールを起動する。機能モジュールリストは、例えば図８に示すようなデータ構造とされており、コミュニケーションプログラムを構成するモジュール毎に、モジュールに固有の識別情報（ＩＤ）と、モジュールに固有のモジュール名と、モジュールの実行形態や利用条件などを示すタイプと、起動時の条件に応じて起動されるか否かを示す起動フラグとにより構成されている。起動フラグについての詳細は後述するが、コミュニケーションプログラムは、機能モジュールリストを参照することによって、起動時の条件に応じて起動するモジュールを選択して起動することが可能とされている。
【００９９】
次に、コミュニケーションプログラムは、ステップＳ１１において、他のコンピュータ装置により実行されるコミュニケーションプログラムから接続設定情報を受信しているか否かを判定する。この判定の結果、受信している場合にはステップＳ１２に処理を進め、受信していない場合にはステップＳ１３に処理を進める。
【０１００】
ここで、コミュニケーションプログラムは、接続設定情報を受信している場合に、当該コミュニケーションプログラムがクライアントとして動作して、接続設定情報の送信元であるサーバ側のコミュニケーションプログラムとの間で各種情報の送受信を行うこととなる。一方、接続設定情報を受信していない場合には、当該コミュニケーションプログラムがサーバとして動作する。
【０１０１】
ステップＳ１２において、コミュニケーションプログラムは、受信した接続設定情報に基づいて、この接続設定情報の送信元であるサーバ側のコミュニケーションプログラムとの間でセッションを確立する処理を行う。
【０１０２】
ステップＳ１３において、コミュニケーションプログラムは、サーバとして動作することを要求され、サーバ機能を提供するサーバモジュールを起動するか否かを判定する。この判定は、ステップＳ１１における判定に対応しており、接続設定情報を他のコンピュータ装置で実行されるコミュニケーションプログラムから受信したか否かを判定することによって行われる。そして、この判定の結果、サーバモジュールを起動する場合にはステップＳ１４に処理を進め、サーバモジュールを起動せずにクライアントとして動作する場合にはステップＳ１７に処理を進める。
【０１０３】
ステップＳ１４において、コミュニケーションプログラムは、自身が起動したサーバモジュールに対してセッションが確立されて接続済みであるか否かを判定する。この判定の結果、未だ接続が行われていない場合にはステップＳ１５に処理を進め、接続済みである場合にはステップＳ１７に処理を進める。
【０１０４】
ステップＳ１５において、コミュニケーションプログラムは、サーバ機能を提供するサーバモジュールを起動する。次に、ステップＳ１６において、コミュニケーションプログラムは、自身起動したサーバモジュールに対してセッションを確立して接続を行う。これにより、当該コミュニケーションプログラムにおいては、自身が起動したサーバモジュールによりサーバとしての機能が実現されるとともに、サーバモジュール以外の他のモジュールは、当該サーバモジュールに対して、いわばクライアントとして接続動作することが可能となる。
【０１０５】
コミュニケーションプログラムにおいては、このようにサーバ機能がモジュールとして実現されていることから、サーバとして動作する場合であっても、クライアントとして動作する場合と同様な手続きにより、サーバモジュール以外の他のモジュールが、サーバに対してアクセスすることが可能となる。このため、これら他のモジュールにおける処理手続きを簡略化することができる。なお、ステップＳ１６において、サーバモジュールに対するセッションが確立された後に、コミュニケーションプログラムは、ステップＳ１７に処理を進める。
【０１０６】
ステップＳ１７において、コミュニケーションプログラムは、コンピュータ装置１０の画面上にウィンドウを表示し、このウィンドウ内に表示された入力領域や各種の機能選択ボタン等によって、ユーザによる各種指示操作が入力可能な状態となる。そして、ステップＳ１７において、コミュニケーションプログラムは、上述した機能選択ボタンがユーザによって選択され、この機能選択ボタンに対応した機能モジュールを起動するか否かを判定する。この判定の結果、機能モジュールを起動する場合にはステップＳ１８に処理を進め、起動しない場合にはステップＳ１９に処理を進める。
【０１０７】
ステップＳ１８において、コミュニケーションプログラムは、ステップＳ１７において選択された機能選択ボタンに対応した機能モジュールを起動する。そして、機能モジュールを起動した後に、コミュニケーションプログラムは、ステップＳ１９に処理を進める。
【０１０８】
ステップＳ１９において、コミュニケーションプログラムは、メッセージ送信キューに送信すべきメッセージが存在するか否かを判定する。そして、メッセージ送信キューにメッセージが存在する場合にはステップＳ２０に処理を進め、メッセージが存在しない場合には図７に示すステップＳ２１に処理を進める。
【０１０９】
ここで、コミュニケーションプログラムは、他のコミュニケーションプログラムとの間で画像データ、音声データ、或いは文字データなどの各種情報を授受するに際して、これら情報がメッセージと称される情報単位に分割される。そして、相手のコミュニケーションプログラムに対して送信すべきメッセージがメッセージ送信キューに、相手のコミュニケーションプログラムから受信したメッセージがメッセージ受信キューに、それぞれ一時的に蓄積される。なお、メッセージ送信キュー及びメッセージ受信キューは、例えば、コンピュータ装置１０のＲＡＭ２１における記憶領域内に、予め所定の容量だけ確保されている。
【０１１０】
ステップＳ２０において、コミュニケーションプログラムは、メッセージ送信キューに存在するメッセージをセッションが確立されているサーバに対して送信する。このステップＳ２０における処理の後に、コミュニケーションプログラムは、処理を図７に示すステップＳ２１に進める。
【０１１１】
ステップＳ２１において、コミュニケーションプログラムは、メッセージ受信キューにサーバから受信したメッセージが存在するか否かを判定する。そして、メッセージ受信キューにメッセージが存在する場合には処理をステップＳ２２に進め、メッセージが存在しない場合には処理をステップＳ２５に進める。
【０１１２】
ステップＳ２２において、コミュニケーションプログラムは、メッセージの送信先となる機能モジュール、すなわち、このメッセージを利用する機能モジュールが起動済みであるか否かを判定する。この判定の結果、送信先として該当する機能モジュールが未だ起動されていない場合にはステップＳ２３に処理を進め、起動済みである場合にはステップＳ２４に処理を進める。
【０１１３】
ステップＳ２３において、コミュニケーションプログラムは、メッセージの送信先となる起動モジュールを起動する。そして、送信先として該当する機能モジュールを起動した後に、コミュニケーションプログラムは、処理をステップＳ２４に進める。
【０１１４】
ステップＳ２４において、コミュニケーションプログラムは、メッセージ送信キューに存在するメッセージの送信先として該当する機能モジュールに対して、当該メッセージを送信する。このステップＳ２４における処理の後に、コミュニケーションプログラムは、処理をステップＳ２５に進める。
【０１１５】
ステップＳ２５において、コミュニケーションプログラムは、ユーザから所定の指示操作が行われることにより、実行動作を終了することを要求されているか否かを判定する。この判定の結果、終了することを要求されている場合には、処理をステップＳ２６に進め、終了することを要求されていない場合には、処理を図６に示すステップＳ１３に進めて、上述したステップＳ１３以降の一連の処理を繰り返し行う。
【０１１６】
ステップＳ２６において、コミュニケーションプログラムは、サーバ機能を実現するサーバモジュールを自身で起動したか否かを判定する。すなわち、当該コミュニケーションプログラムがサーバとして動作しているか否かを判定する。この判定の結果、自身でサーバモジュールを起動した場合には処理をステップＳ２７に進め、自身でサーバモジュールを起動しておらず、クライアントとして動作している場合には、各種の終了処理を行って、一連の処理動作を停止する。
【０１１７】
ステップＳ２７において、コミュニケーションプログラムは、ステップＳ１５において自身で起動したサーバモジュールに対して終了処理を行い、このサーバモジュールの動作を停止する。この後に、コミュニケーションプログラムは、各種の終了処理を行って、一連の処理動作を停止する。
【０１１８】
つぎに、上述したステップＳ１５において起動されるサーバモジュールにおける一連の処理について、図９及び図１０に示すフローチャートを参照しながら順を追って説明する。
【０１１９】
サーバモジュールは、実行処理が開始されると、図９に示すステップＳ５０において、クライアントからの接続要求（セッション確立要求）を受信したか否かを判定する。このとき、クライアントとしては、当該サーバモジュールを起動したコミュニケーションプログラムを構成する他の機能モジュールであってもよいし、他のコンピュータ装置で実行されるコミュニケーションプログラムを構成する機能モジュールであってもよい。そして、この判定の結果、接続要求を受信している場合にはステップＳ５１に処理を進め、受信していない場合にはステップＳ５５に処理を進める。
【０１２０】
ステップＳ５１において、サーバモジュールは、現在接続しているユーザの数が、予め設定された最大人数に達しているか否かを判定する。この判定の結果、最大人数に達していない場合にはステップＳ５２に処理を進め、最大人数に達している場合にはステップＳ５５に処理を進める。
【０１２１】
ステップＳ５２において、サーバモジュールは、新たに接続要求を行ったユーザに対して、ユーザ毎に固有の情報であるユーザＩＤを生成するとともに、このユーザ側で動作するコミュニケーションプログラムとの間でセッションを確立して接続を行う。これにより、接続要求を行ったユーザ側で動作するコミュニケーションプログラムがクライアントとして、当該サーバモジュールとの間で通信状態が確立され、画像データ、音声データ、或いは文字データなどの各種情報を授受を行うことが可能となる。
【０１２２】
次に、ステップＳ５３において、サーバモジュールは、新たに接続要求を行ったユーザ側でコミュニケーションプログラムを実行するコンピュータ装置のＩＰアドレスと、このユーザのユーザ名とを取得するとともに、これらＩＰアドレス及びユーザ名と、ステップＳ５２において生成したユーザＩＤとをユーザリストに追加する。
【０１２３】
ここで、ユーザリストは、例えば図１１に示すようなデータ構造とされており、サーバモジュールに対してセッションの確立が行われたユーザのユーザＩＤと、このユーザのユーザ名と、このユーザ側でコミュニケーションプログラムを実行するコンピュータ装置のＩＰアドレスとにより構成されている。
【０１２４】
次に、ステップＳ５４において、サーバモジュールは、セッションが確立されている全てのクライアントに対して、ステップＳ５３において追加したユーザのユーザＩＤなどを通知する。これにより、サーバモジュールに接続された全てのクライアントは、新たなユーザが接続されたことを知ることができる。このステップＳ５４における処理の後に、サーバモジュールは、ステップＳ５５に処理を進める。
【０１２５】
ステップＳ５５において、サーバモジュールは、セッションが確立されているクライアントとの間で接続状態が切断されたか否かを判定する。この判定の結果、接続状態が切断されている場合にはステップＳ５６に処理を進め、接続状態が切断されていない場合には図１０に示すステップＳ５８に処理を進める。このとき、接続状態が切断される要因としては、例えば、サーバモジュールとクライアントとの間の伝送路において生じた不具合、ユーザによるコミュニケーションモジュールの終了処理などを挙げることができる。
【０１２６】
ステップＳ５６において、サーバモジュールは、ステップＳ５５において接続状態が切断されたと判定されたユーザに関する情報を、ユーザリストから削除する。次に、ステップＳ５７において、サーバモジュールは、ステップＳ５６でユーザリストから削除したユーザに関するユーザＩＤなどの情報を、セッションが確立されている全てのクライアントに対して通知する。これにより、サーバモジュールに接続された全てのクライアントは、当該ユーザの接続が切断されたことを知ることができる。このステップＳ５７における処理の後に、サーバモジュールは、図１０に示すステップＳ５８に処理を進める。
【０１２７】
ステップＳ５８において、サーバモジュールは、接続されたクライアントからメッセージが送信されたか否かを判定する。この判定の結果、送信されている場合にはステップＳ５９に処理を進め、送信されていない場合にはステップＳ６１に処理を進める。
【０１２８】
ステップＳ５９において、サーバモジュールは、メッセージの宛先として指定されたユーザＩＤを参照し、ユーザリストに基づいて当該ユーザＩＤに対応したＩＰアドレスを取得する。次に、ステップＳ６０において、サーバモジュールは、ステップＳ５９において取得したＩＰアドレスが設定されたコンピュータ装置に対して、インターネット１１等のコンピュータネットワークを介してメッセージを送信する。これにより、メッセージが送信先のコミュニケーションプログラムに届けられる。このステップＳ６０における処理の後に、サーバモジュールはステップＳ６１に処理を進める。
【０１２９】
ステップＳ６１において、サーバモジュールは、コミュニケーションプログラムにからの終了要求を受信したか否かを判定する。そして、この判定の結果、終了要求を受信した場合には、各種の終了処理を行って、一連の処理動作を停止する。また、終了要求を受信していない場合には、処理を図９に示すステップＳ５０に進めて、上述したステップＳ５０以降の一連の処理を繰り返す。このサーバモジュールに対する終了要求は、図７に示したコミュニケーションプログラムの一連の処理におけるステップＳ２７が処理された場合に相当するものである。
【０１３０】
コミュニケーションプログラムは、以上で説明したようにして一連の処理を行うアプリケーション・プログラムである。上述した一連の処理の説明から明らかであるように、コミュニケーションプログラムは、必要に応じてサーバ或いはクライアントとして動作することが可能とされている。
【０１３１】
（７）コミュニケーションプログラムにより表示されるアプリケーションウィンドウ
【０１３２】
つぎに、上述したコミュニケーションプログラムがコンピュータ装置１０において実行処理されることにより表示部２４の画面上に表示されるアプリケーションウィンドウについて、図面を参照しながら順を追って説明する。
【０１３３】
なお、コミュニケーションプログラムは、詳細を後述するように、起動時の条件に応じた状態でウィンドウ表示されるように構成されているが、以下の説明においては、最も基本的な条件の下で実行処理される場合の一例について説明するものとする。
【０１３４】
また、コミュニケーションシステム１においては、各コンピュータ装置１０にコミュニケーションプログラムが実行可能な状態で備えられ、各コンピュータ装置１０上でコミュニケーションプログラムが動作して互いに各種情報を授受することにより構成されるが、以下の説明においては、特定のコンピュータ装置１０上で動作するコミュニケーションプログラムが実行処理されたときのウィンドウ表示について説明することとする。
【０１３５】
また、以下の説明においては、着目して説明するコミュニケーションプログラムの利用者を「ユーザ」と称し、当該コミュニケーションプログラムに接続されるコミュニケーションプログラムの利用者、すなわち、相手方の利用者を「クライアント」と称することとする。ただし、以下で着目して説明するコミュニケーションプログラムは、必ずしもサーバ機能を果たしている必要はなく、相手側の利用者（クライアント）側で動作するコミュニケーションプログラムによってサーバ機能が果たされていてもよい。
【０１３６】
コミュニケーションプログラムの実行処理が開始されると、表示部２４の画面上には、図１２に示すようなユーザ情報設定ウィンドウ１００が表示される。このユーザ情報設定ウィンドウ１００は、コミュニケーションプログラムの起動に際して、ユーザ自身に対応した名前及び顔画像の選択を促すためのウィンドウであり、名前をテキスト入力するためのテキスト入力領域Ｓ１００と、顔画像に対応した画像ファイルを選択するための顔画像選択領域Ｓ１０１とを有している。
【０１３７】
テキスト入力領域Ｓ１００は、例えばコンピュータ装置１０に接続されたマウスなどにより選択することによって、テキスト入力可能な状態となり、この状態でキーボードなどにより入力したテキストが入力される領域である。このテキスト入力領域Ｓ１００に入力されたテキストが、以後のコミュニケーションプログラムの処理において、ユーザの名前として設定される。
【０１３８】
顔画像選択領域Ｓ１０１は、予め顔画像として登録されたコンピュータ装置１０内に記憶されている画像データに対応したファイル名が一覧表示される領域である。この顔画像表示領域Ｓ１０１に一覧表示されたファイル名がユーザにより選択されることにより、選択されたファイル名に対応した画像データが以後のコミュニケーションプログラムの処理において、ユーザの顔画像として設定される。
【０１３９】
また、ユーザ情報設定ウィンドウ１００には、ユーザが任意の画像データを顔画像として設定するに際して、この画像データに対応したファイルを参照するための参照ボタンＳ１０２を有している。参照ボタンＳ１０２が選択されると、コンピュータ装置１０内に存在する画像データを選択するためのファイル選択ウィンドウが表示される。そして、このファイル選択ウィンドウ内でユーザがファイルを選択操作することにより、選択されたファイルに対応した画像データがユーザの顔画像として設定される。また、このようにして選択されたファイルのコンピュータ装置１０における所在（パス）は、ユーザ情報設定ウィンドウ１００のパス表示領域Ｓ１０３に表示される。なお、パス表示領域Ｓ１０３にパスを指定するテキストを直接入力することにより、任意の画像データ（ファイル）を顔画像として選択可能とされていてもよい。
【０１４０】
また、ユーザ情報設定ウィンドウ１００は、上述のようにしてユーザにより選択された画像データの内容をプレビュー表示するプレビュー表示領域Ｓ１０４を有している。これにより、コミュニケーションプログラムは、ユーザが所望とする顔画像を容易且つ確実に選択することが可能とされている。
【０１４１】
なお、図１２においては、予め選択された状態とされた、いわゆるデフォルトの顔画像がプレビュー表示領域Ｓ１０４に表示された場合の例について図示している。なお、以降の説明においては、このユーザ情報設定ウィンドウ１００においてユーザによる顔画像の選択が特になされず、このデフォルトの顔画像が選択された場合を想定して説明する。
【０１４２】
ユーザ情報設定ウィンドウ１００は、次回の起動時にも上述したようにして名前及び顔画像の選択を行うか否かを設定するためのチェックボックスＳ１０５と、名前及び顔画像の選択操作を終了するためのＯＫボタンＳ１０６と、名前及び顔画像の選択操作を中止して、コミュニケーションプログラムの起動を中止するためのキャンセルボタンＳ１０７とを有している。
【０１４３】
コミュニケーションプログラムは、チェックボックスＳ１０５が「オン」に設定された場合には、次回に起動された際にもユーザ情報設定ウィンドウ１００を表示する。一方、チェックボックスＳ１０５が「オフ」に設定された場合には、次回の起動時にユーザ情報設定ウィンドウ１００の表示を省略して、ユーザにより前回設定された名前及び顔画像を参照して用いる。
【０１４４】
ここで、ユーザ情報設定ウィンドウ１００におけるＯＫボタンＳ１０６がユーザにより選択されると、コミュニケーションプログラムは、基本表示モードに移行して、図１３に示すような基本表示ウィンドウ１１０を表示する。なお、前回の起動時ユーザ情報設定ウィンドウ１００においてチェックボックスＳ１７が「オフ」に設定されている場合には、コミュニケーションプログラムの起動時にユーザ情報設定ウィンドウ１００の表示が省略され、起動直後から基本表示モードに移行して基本表示ウィンドウ１１０が表示される。
【０１４５】
（７−１）基本表示モード
【０１４６】
ここで、コミュニケーションプログラムが基本表示モードに移行した場合について、図１３に示す基本表示ウィンドウ１１０を参照しながら説明する。
【０１４７】
基本表示ウィンドウ１１０は、コミュニケーションプログラムが基本表示モードに移行した場合に表示されるウィンドウであり、図１３に示すように、ユーザに対応した顔画像が表示されるユーザ顔画像フレームＳ１１０と、複数のクライアントに対応した顔画像がそれぞれ表示される複数のクライアント顔画像フレームＳ１１１と、各種機能の実行を選択操作するための複数の機能選択ボタンＳ１１２とを有している。
【０１４８】
ユーザ顔画像フレームＳ１１０は、基本表示ウィンドウ１１０の中央部に配されており、ユーザにより選択された顔画像を表示する顔画像表示領域Ｓ１１０ａと、この顔画像表示領域Ｓ１１０ａの下部に位置して、ユーザにより設定された名前を表示する名前表示領域Ｓ１１０ｂとにより構成されている。
【０１４９】
クライアント顔画像フレームＳ１１１は、ユーザ顔画像フレームＳ１１０を中心とする仮想円の円周上に所定の間隔で配されている。これらクライアント顔画像フレームＳ１１１は、ユーザ顔画像フレームＳ１１０に相当してクライアント側の情報を表示するためのフレームであり、それぞれ、各クライアントにより選択された顔画像を表示する顔画像表示領域Ｓ１１１ａと、この顔画像表示領域Ｓ１１１ａの下部に位置して、各クライアントにより設定された名前を表示する名前表示領域Ｓ１１１ｂとにより構成されている。
【０１５０】
なお、図１３においては、未だクライアントが接続されていない状態を図示している。この状態において、クライアント顔画像フレームＳ１１１には、クライアントが接続していないことを示す予め設定された所定の顔画像が表示された状態とされる。
【０１５１】
また、クライアント顔画像フレームＳ１１１の各々は、それぞれ初期表示位置を中心とした所定の領域を、ゆるやかに移動しながら表示されている。これにより、基本表示ウィンドウ１１０においては、各クライアント顔画像フレームＳ１１１が、いわば浮遊感を伴って表示された状態とされている。
【０１５２】
機能選択ボタンＳ１１２は、ユーザ顔画像フレームＳ１１０を中心とした仮想円上に所定の間隔で配されている。なお、機能選択ボタンＳ１１２が配される仮想円の半径は、クライアント顔画像フレームＳ１１１が配される仮想円の半径よりも小とされている。すなわち、機能選択ボタンＳ１１２は、クライアント顔画像フレームＳ１１１よりも内側に位置して表示されている。
【０１５３】
各機能選択ボタンＳ１１２には、それぞれ所定の機能が対応付けされている。コミュニケーションプログラムは、ユーザによって機能選択ボタンＳ１１２のいずれかが選択操作されると、選択された機能選択ボタンＳ１１２に対応した機能を実現する動作モードに移行する。
【０１５４】
図１３に示す例においては、機能選択ボタンＳ１１２として、「設定」ボタンＳ１１２ａ、「終了」ボタンＳ１１２ｂ、「ヘルプ」ボタンＳ１１２ｃ、「友達」ボタンＳ１１２ｄ、及び「ツール」ボタンＳ１１２ｅが表示された状態を示している。
【０１５５】
設定ボタンＳ１１２ａは、コミュニケーションプログラムに必要となる各種設定を行うための機能選択ボタンである。コミュニケーションプログラムは、ユーザによって設定ボタンＳ１１２ａが選択されることにより、例えば、ユーザによる各種操作が行われた際に効果音を鳴らすか否かといった設定項目を表示する設定ウィンドウ（図示を省略する。）を表示する。コミュニケーションプログラムにおいては、この設定ウィンドウにより設定された事項をコンピュータ装置１０内の所定の記憶領域に保存し、コミュニケーションプログラム自身の動作に反映させる。
【０１５６】
終了ボタンＳ１１２ｂは、コミュニケーションプログラムの実行処理を終了するための機能選択ボタンである。コミュニケーションプログラムは、ユーザによって終了ボタンＳ１１２ｂが選択されることにより、全体の実行処理を終了する。
【０１５７】
ヘルプボタンＳ１１２ｃは、コミュニケーションプログラムの操作をユーザに説明するヘルプ情報を表示するための機能選択ボタンである。コミュニケーションプログラムは、ユーザによってヘルプボタンＳ１１２ｃが選択されることにより、操作の案内や問題の解決方法などが記述されたヘルプ情報をヘルプウィンドウ（図示を省略する。）に表示する。このようにヘルプ情報を表示することが可能とされていることにより、コミュニケーションプログラムにおいては、操作に不慣れなユーザに対して、自身の動作や機能を分かりやすく説明することができる。
【０１５８】
友達ボタンＳ１１２ｄは、インターネット１１に接続された他のユーザ（クライアント）に対して、コミュニケーションプログラムに接続してコミュニケーションに参加することを促すためのボタンである。コミュニケーションプログラムは、ユーザによって友達ボタンＳ１１２ｄが選択されることにより、クライアントに対して参加を促す一連の処理を行う。なお、この処理についての詳細は後述する。
【０１５９】
ツールボタンＳ１１２ｅは、ユーザによる各種操作を実現するツールモードに移行するための機能選択ボタンである。コミュニケーションプログラムは、ユーザによってツールボタンＳ１１２ｅが選択されると、ツールモードに移行する。なお、このツールモードについての詳細は後述する。
【０１６０】
また、基本表示ウィンドウ１１０は、ウィンドウの最上部に位置して、基本表示ウィンドウ１１０の表示状態を操作するための複数の操作アイコンＳ１１３が隣接して配されているとともに、ウィンドウの最下部に位置して、必要に応じてコミュニケーションプログラムの動作状態（ステイタス）や各種のメッセージが表示されるステイタス表示領域Ｓ１１４が配されている。
【０１６１】
ここで、図１３に示す例においては、操作アイコンＳ１１３として、「終了」アイコンＳ１１３ａ、「最大化」アイコンＳ１１３ｂ、「最小化」アイコンＳ１１３ｃ、及び「表示サイズ変更」アイコンＳ１１３ｄが配された場合について図示している。
【０１６２】
終了アイコンＳ１１３ａは、コミュニケーションプログラムの実行処理を終了するための操作アイコンである。コミュニケーションプログラムは、ユーザによって終了アイコンＳ１１３ａが選択されることによって、全体の実行処理を終了する。
【０１６３】
最大化アイコンＳ１１３ｂは、基本表示ウィンドウ１１０をコンピュータ装置１０の表示画面の全面に拡大して表示するための操作アイコンである。コミュニケーションプログラムは、ユーザによって最大化アイコンＳ１１３ｂが選択されると、基本表示ウィンドウ１１０をコンピュータ装置１０の表示画面の全面に拡大して表示する処理を行う。
【０１６４】
最小化アイコンＳ１１３ｃは、基本表示ウィンドウ１１０の表示を中止して、コンピュータ装置１０の表示画面から消去するための操作アイコンである。コミュニケーションプログラムは、ユーザによって最小化アイコンＳ１１３ｃが選択されると、基本表示ウィンドウ１１０の表示を中止して、コンピュータ装置１０の表示画面から消去する処理を行う。なお、このように、表示画面から基本表示ウィンドウ１１０が消去された状態においても、コミュニケーションプログラムの実行処理は継続される。
【０１６５】
表示サイズ変更アイコンＳ１１３ｄは、基本表示ウィンドウ１１０を縮小表示する縮小表示モードに移行するための操作アイコンである。コミュニケーションプログラムは、ユーザによって表示サイズ変更アイコンＳ１１３ｄが選択されると、基本表示モードから縮小表示モードに移行する。これにより、基本表示ウィンドウ１１０の表示領域が縮小され、例えば、図１４に示すような縮小表示ウィンドウ１２０となる。
【０１６６】
（７−２）縮小表示モード
【０１６７】
ここで、コミュニケーションプログラムが縮小表示モードに移行した場合について、図１４に示す縮小表示ウィンドウ１２０を参照しながら説明する。
【０１６８】
縮小表示ウィンドウ１２０は、コミュニケーションプログラムが縮小表示モードに移行した場合に表示されるウィンドウであり、基本表示ウィンドウ１１０に対して表示領域が小とされ、コンピュータ装置１０の画面上で横方向に長いウィンドウ形状とされている。
【０１６９】
ここで、図１４に示す縮小表示ウィンドウ１２０においては、図１３に示した基本表示ウィンドウ１１０と同等な機能を有するフレーム、ボタン、及びアイコンについての説明を省略し、同一の符号を付すこととする。なお、以下の説明においても、図中において同一の符号を付したフレーム、ボタン、及びアイコンは、前出したそれぞれに相当するものであるとして説明する。
【０１７０】
この縮小表示ウィンドウ１２０においては、中央部に配されたユーザ顔画像フレームＳ１１０の両側に複数のクライアント顔画像フレームＳ１１１が横方向に並んで配されており、これらユーザ顔画像フレームＳ１１０及びクライアント顔画像フレームＳ１１１の下部に、機能選択ボタンＳ１１２が横方向に並んで配されている。また、縮小表示ウィンドウ１２０の最上部には、複数の操作アイコンＳ１１３が配されている。
【０１７１】
コミュニケーションプログラムは、この縮小表示ウィンドウ１２０において、ユーザにより表示サイズ変更アイコンＳ１１３ｄが選択されると、縮小表示モードから基本表示モードに移行する。これにより、縮小表示ウィンドウ１２０の表示領域が拡大され、図１３に示した基本表示ウィンドウ１１０となる。
【０１７２】
すなわち、コミュニケーションプログラムにおいては、ユーザによって表示サイズ変更アイコンＳ１１３ｄが選択されることによって、基本表示モードと縮小表示モードとの間で自在に動作モードを移行することが可能とされている。
【０１７３】
（７−３）クライアントの参加
【０１７４】
ここで、上述した友達ボタンＳ１１２ｄがユーザによって選択された場合について説明する。コミュニケーションプログラムは、ユーザによって友達ボタンＳ１１２ｄが選択されると、クライアントに対して参加を促す一連の処理を行う。
【０１７５】
このとき、コミュニケーションプログラムは、ユーザが指定したクライアントに対して、接続設定情報を送信する。これにより、接続設定情報に含まれるＩＰアドレスに基づいてクライアント側からユーザ側に対するセッションの確立が行われて接続が完了することとなる。
【０１７６】
ここで、ユーザ側のコンピュータ装置１０がルータ機器を介してインターネット１１に接続されたネットワーク環境にある場合などにおいては、このコンピュータ装置１０に対して、同じネットワークグループ内のコンピュータ装置同士の間でのみ識別可能なＩＰアドレス、いわゆるプライベートアドレスが設定されている。この場合には、同じネットワークグループ内でのみコンピュータ装置同士の接続が可能であり、インターネット１１を介するなどして、他のネットワークグループに属するコンピュータ装置との間で適切にセッションの確立を行うことができない可能性がある。
【０１７７】
そこで、コミュニケーションプログラムは、クライアントに対して接続設定情報を送信するに際して、ユーザ側のコンピュータ装置１０にプライベートアドレスが設定されているか否かを判定し、プライベートアドレスが設定されている場合には、例えば図１５に示すような通知ウィンドウ１３０を表示する。
【０１７８】
この通知ウィンドウ１３０は、ユーザに対して、コンピュータ装置１０にプライベートアドレスが設定されていることにより、クライアントとの間でセッションを確立できない可能性があることを通知する内容が記述されたウィンドウであり、「ＯＫ」ボタンＳ１３０と、「キャンセル」ボタンＳ１３１と、「ヘルプ」ボタンＳ１３２とを有している。
【０１７９】
コミュニケーションプログラムは、ユーザによってＯＫボタンＳ１３０が選択されると、コンピュータ装置１０に設定されたＩＰアドレスがプライベートアドレスであった場合においても、クライアントに対する接続設定情報の送信処理を行う。また、ユーザによってキャンセルボタンＳ１３１が選択されると、クライアントに対する接続設定情報の送信処理を中止する。また、ユーザによってヘルプボタンＳ１３２が選択されると、操作の案内や問題の解決方法などを記述した情報であるヘルプ情報をヘルプウィンドウ（図示を省略する。）に表示する。
【０１８０】
コミュニケーションプログラムは、必要に応じて通知ウィンドウ１３０を表示することによって、例えば、クライアントとの間でセッションを確立できないなどの不具合が生じた場合に、ユーザに対してこの不具合の原因を提示することができる。また、ヘルプ情報に、コンピュータ装置１０やルータ機器の設定方法などを記述しておくことにより、ユーザに対して、これらコンピュータ装置１０やルータ機器の設定を適切に変更するよう促すことができる。
【０１８１】
ところで、コミュニケーションプログラムは、接続設定情報をクライアント側に送信するに際して、例えば、接続設定情報を含むファイルを電子メールに添付し、この電子メールをクライアント側のコンピュータ装置に対して送信する。このとき、例えば、図１６に示す電子メールウィンドウ１４０に示す内容の電子メールがクライアント側に送信される。
【０１８２】
電子メールウィンドウ１４０は、図１６に示すように、この電子メールの宛先、すなわち参加を促すクライアントのコンピュータ装置に設定された電子メールアドレスが入力・表示される宛先入力領域Ｓ１４０と、この電子メールの件名が入力・表示される件名入力領域Ｓ１４１と、この電子メールに添付されたファイルのファイル名などが表示される添付ファイル表示領域Ｓ１４２と、この電子メールの本文が入力・表示される本文表示領域Ｓ１４３とにより構成されている。
【０１８３】
件名入力領域Ｓ１４１には、例えば「コミュニケーションのお誘い」などといった、ユーザ側のコミュニケーションプログラムに接続してコミュニケーションに参加することを促すテキストが入力される。また、添付ファイル表示領域Ｓ１４２には、接続設定情報を含むファイルのファイル名（例えば「Connect.qze」）などが表示される。また、本文表示領域Ｓ１４３には、この電子メールに添付されたファイルを実行するなどして、電子メールの送信先のコンピュータ装置上でコミュニケーションプログラムを起動し、ユーザ側のコミュニケーションプログラムとの間でセッションを確立することを促すメッセージが記述される。
【０１８４】
そして、例えば、ユーザによって宛先入力領域Ｓ１４０に参加を促すクライアントの電子メールアドレスが入力された後に、この電子メールの送信処理が行われることによって、電子メールに添付されたファイルという形で、接続設定情報がクライアント側に送信される。
【０１８５】
なお、コミュニケーションシステム１においては、電子メールによって接続設定情報をクライアント側に送信することに限定されるものではなく、例えば、いわゆるＦＴＰソフトウェアなどのような、インターネット１１に接続されたコンピュータ装置の間で各種のファイル交換を実現するアプリケーションプログラムを用いることによって、接続設定情報をデータ・ファイル或いはアプリケーション・プログラムの形で送出するとしてもよい。また、例えば、コンピュータ装置の利用者（ユーザ）に対して接続開始を通知することなく、接続設定情報を直接コンピュータ装置間で授受することによって、ユーザに接続の開始（セッションの確立）を意識させることなく自動的にクライアント側のコンピュータ装置上でコミュニケーションプログラムが起動するように構成してもよい。
【０１８６】
（７−４）クライアントとの間での対話
【０１８７】
ここで、上述のようにして接続設定情報がクライアント側に送信され、クライアントとの間でセッションが確立されると、例えば、図１７に示すように、例えば、基本表示ウィンドウ１１０におけるクライアント顔画像フレームには、接続されたクライアントの顔画像及び名前が表示されることとなる。
【０１８８】
なお、図１７においては、女性の半身を模した画像が設定された第１のクライアントと、動物の顔を模した画像が設定された第２のクライアントとの２つのクライアントが接続され、それぞれ、第１のクライアント顔画像フレームＳ１１１ａと第２のクライアント顔画像フレームＳ１１１ｂとに表示された状態における基本表示ウィンドウ１１０を図示している。なお、以後の説明においては、これら第１及び第２のクライアントが接続された状態とされていることを想定する。
【０１８９】
ところで、コミュニケーションプログラムは、例えばマウス操作により画面上でカーソルがユーザ顔画像フレームＳ１１０に重なるなどして、ユーザによってユーザ顔画像フレームＳ１１０が選択されると、図１８に示すように、ユーザ顔画像フレームＳ１１０を縮小して表示するとともに、縮小表示されたユーザ顔画像フレームＳ１１０の近傍位置に、ユーザによってテキスト（文字データ）の入力が可能とされたテキスト入力領域Ｓ１１５を表示する。
【０１９０】
このテキスト入力領域Ｓ１１５は、縮小表示されたユーザ顔画像フレームＳ１１０に対して、一般の漫画におけるいわゆる「吹き出し」状の外形を有する領域とされている。そして、コミュニケーションプログラムは、このテキスト入力領域Ｓ１１５に対してユーザによりテキストが入力されると、入力されたテキスト（文字データ）を、現在接続されているクライアントの全てに対して送信する。
【０１９１】
また、コミュニケーションプログラムは、同様にしてクライアントから送信されたテキスト（文字データ）を受信すると、図１９に示すように、当該クライアントに対応したクライアント顔画像フレームＳ１１１を縮小して表示するとともに、縮小表示されたクライアント顔画像フレームＳ１１１の近傍位置に、クライアントから送信されたテキストが表示されるテキスト表示領域Ｓ１１６を表示する。このテキスト表示領域Ｓ１１６は、縮小表示されたクライアント顔画像フレームＳ１１１に対して、一般の漫画におけるいわゆる「吹き出し」状の外形を有する領域とされている。
【０１９２】
なお、図１９においては、第１のクライアントから「こんにちは！」なるテキストが送信され、第１のクライアント顔画像フレームＳ１１１ａが縮小表示されるとともに、この第１のクライアント顔画像フレームＳ１１１ａの近傍位置にテキスト表示領域Ｓ１１６が表示された場合について図示している。また、コミュニケーションプログラムにおいては、例えば、複数のクライアントから同時にテキストが送信された場合には、各クライアントに対応したテキスト表示領域Ｓ１１６がそれぞれ表示される。すなわち、４人のクライアントから同時にテキストが送信された場合には、各クライアントに対応したクライアント顔画像フレームＳ１１１が縮小表示され、それぞれに吹き出し状のテキスト表示領域Ｓ１１６が表示されることとなる。
【０１９３】
以上のようにして、コミュニケーションプログラムは、ユーザとクライアントとの間で文字データを相互に授受することが可能とされているとともに、複数のクライアントとの間で、同時進行的にテキストの授受を行うことが可能とされている。
【０１９４】
なお、コミュニケーションプログラムにおいて、上述したようなテキスト入力領域Ｓ１１５及びテキスト表示領域Ｓ１１６テキストを利用したテキストの授受は、基本表示モードにおける基本表示ウィンドウ１１０内のみならず、他の動作モードにおけるウィンドウ内においても可能とされている。
【０１９５】
（７−５）ツールモード
【０１９６】
ここで、コミュニケーションプログラムがツールモードに移行した場合について、図２０に示すツール表示ウィンドウ１５０を参照しながら説明する。
【０１９７】
ツール表示ウィンドウ１５０は、コミュニケーションプログラムがツールモードに移行した場合に表示されるウィンドウであり、図２０に示すように、基本的には図１３に示した基本表示ウィンドウ１１０と同様な構成とされている。このため、図２０に示すツール表示ウィンドウ１５０においては、図１３に示す基本表示ウィンドウ１１０と同一又は同等のフレーム、ボタン、及びアイコンについては、説明を省略し、同一の符号を付すこととする。
【０１９８】
ツール表示ウィンドウ１５０は、基本表示ウィンドウ１１０との相違点として、図１３に示した機能選択ボタンＳ１１２に代えて、複数の機能選択ボタンＳ１５０を有している。機能選択ボタンＳ１５０は、図１３に示した機能選択ボタンＳ１１２と同様に、ユーザ顔画像フレームＳ１１０を中心とした仮想円上に所定の間隔で配されている。なお、機能選択ボタンＳ１５０が配される仮想円の半径は、クライアント顔画像フレームＳ１１１が配される仮想円の半径よりも小とされている。すなわち、機能選択ボタンＳ１５０は、クライアント顔画像フレームＳ１１１よりも内側に位置して表示されている。
【０１９９】
各機能選択ボタンＳ１５０には、それぞれ所定の機能が対応付けされている。コミュニケーションプログラムは、ユーザによって機能選択ボタンＳ１５０のいずれかが選択操作されると、選択された機能選択ボタンＳ１５０に対応した機能を実現する動作モードに移行する。
【０２００】
図２０に示す例においては、機能選択ボタンＳ１５０として、「感情」ボタンＳ１５０ａ、「アクション」ボタンＳ１５０ｂ、「ヘルプ」ボタンＳ１５０ｃ、「戻る」ボタンＳ１５０ｄ、「画像・音声」ボタンＳ１５０ｅ、「チャットログ」ボタンＳ１５０ｆ、及び「Ｗｅｂブラウザ」ボタンＳ１５０ｇが表示された状態を示している。
【０２０１】
感情ボタンＳ１５０ａは、ユーザによる感情表現を実現する感情表現モードに移行するための機能選択ボタンである。コミュニケーションプログラムは、ユーザによって感情ボタンＳ１５０ａが選択されると、感情表現モードに移行する。なお、この感情表現モードについての詳細は後述する。
【０２０２】
アクションボタンＳ１５０ｂは、ユーザによる他のクライアントに対するアクション表現を実現するアクション表現モードに移行するための機能選択ボタンである。コミュニケーションプログラムは、ユーザによってアクションボタンＳ１５０ｂが選択されると、アクション表現モードに移行する。なお、このアクション表現モードについての詳細は後述する。
【０２０３】
ヘルプボタンＳ１５０ｃは、図１３に示した基本表示ウィンドウ１１０におけるヘルプボタンＳ１１２ｃに相当し、コミュニケーションプログラムの操作をユーザに説明するヘルプ情報を表示するための機能選択ボタンである。コミュニケーションプログラムは、ユーザによってヘルプボタンＳ１５０ｃが選択されることにより、操作の案内や問題の既決方法などが記述されたヘルプ情報をヘルプウィンドウ（図示を省略する。）に表示する。
【０２０４】
戻るボタンＳ１５０ｄは、ツールモードを終了して基本表示モードに移行するための機能選択ボタンである。コミュニケーションプログラムは、ユーザによって戻るボタンＳ１５０ｄが選択されると、ツールモードを終了して基本表示モードに移行する。
【０２０５】
画像・音声ボタンＳ１５０ｅは、ユーザによる画像や音声に関する各種設定操作を実現する画像音声設定モードに移行するための機能選択ボタンである。コミュニケーションプログラムは、ユーザによって画像・音声ボタン１５０ｅが選択されると、画像音声設定モードに移行する。なお、この画像音声設定モードについての詳細は後述する。
【０２０６】
チャットログボタンＳ１５０ｆは、チャットログを表示するチャットログ表示モードに移行するための機能選択ボタンである。コミュニケーションプログラムは、ユーザによってチャットログボタンＳ１５０ｆが選択されると、チャットログ表示モードに移行する。なお、このチャットログ表示モードについての詳細は後述する。
【０２０７】
ＷｅｂブラウザボタンＳ１５０ｇは、Ｗｅｂブラウジングモードに移行するための機能選択ボタンである。コミュニケーションプログラムは、ユーザによってＷｅｂブラウザボタンＳ１５０ｇが選択されると、Ｗｅｂブラウジングモードに移行する。なお、このＷｅｂブラウジングモードについての詳細は後述する。
【０２０８】
また、コミュニケーションプログラムは、ツール表示ウィンドウ１５０が表示された状態において、表示サイズ変更アイコンＳ１１３ｄがユーザにより選択されると、図１４に示した縮小表示ウィンドウ１２０となる。このとき、ツールモードの状態で縮小表示ウィンドウ１２０となった場合には、図１４に示した縮小表示ウィンドウ１２０内には、各機能選択ボタンＳ１１２に代えて、上述した機能選択ボタンＳ１５０が表示されることとなる。また、図１４に示した縮小表示ウィンドウ１２０の状態でツールモードに移行した場合には、縮小表示ウィンドウ１２０の状態のままで、各機能選択ボタンＳ１１２に代えて、上述した機能選択ボタンＳ１５０が表示されることとなる。
【０２０９】
すなわち、コミュニケーションプログラムにおいては、動作モードに依存せずに、最大化アイコンＳ１１３ｂと最小化アイコンＳ１１３ｃとに対応して、ウィンドウが最大化された状態、又はウィンドウが最小化された状態となることが可能とされている。また、表示サイズ変更アイコンＳ１１３ｄがユーザによって選択される毎に、基本表示ウィンドウ１１０或いはツール表示ウィンドウ１５０に相当する標準サイズで表示された状態、又は縮小表示ウィンドウ１２０に相当する縮小サイズで表示された状態となることが可能とされている。なお、コミュニケーションプログラムにおいては、このようなウィンドウサイズの変更が、以下で説明する動作モードにおいても可能とされている。
【０２１０】
（７−６）感情表現モード
【０２１１】
ここで、コミュニケーションプログラムが感情表現モードに移行した場合について、図２１に示す感情表現ウィンドウ１６０を参照しながら説明する。
【０２１２】
感情表現ウィンドウ１６０は、コミュニケーションプログラムが感情表現モードに移行した場合に表示されるウィンドウであり、図２１に示すように、基本的には図１３に示した基本表示ウィンドウと同様な構成とされている。このため、図２１に示す感情表現ウィンドウ１６０においては、図１３に示す基本表示ウィンドウ１１０と同一又は同等のフレーム、ボタン、及びアイコンについては、説明を省略し、同一の符号を付すこととする。
【０２１３】
感情表現ウィンドウ１６０は、基本表示ウィンドウ１１０との相違点として、図１３に示した機能選択ボタンＳ１１２に代えて、複数の機能選択ボタンＳ１６０を有している。機能選択ボタンＳ１６０は、図１３に示した機能選択ボタンＳ１１２と同様に、ユーザ顔画像フレームＳ１１０を中心とした仮想円上に所定の間隔で配されている。なお、機能選択ボタンＳ１６０が配される仮想円の半径は、クライアント顔画像フレームＳ１１１が配される仮想円の半径よりも小とされている。すなわち、機能選択ボタンＳ１６０は、クライアント顔画像フレームＳ１１１よりも内側に位置して表示されている。
【０２１４】
各機能選択ボタンＳ１６０には、それぞれ所定の機能が対応付けされている。コミュニケーションプログラムは、ユーザによって機能選択ボタンＳ１６０のいずれかが選択操作されると、選択された機能選択ボタンＳ１６０に対応した機能を実現する処理を行う。
【０２１５】
図２１に示す例においては、機能選択ボタンＳ１６０として、「ヘルプ」ボタンＳ１６０ａ、「戻る」ボタンＳ１６０ｂ、「拍手」ボタンＳ１６０ｃ、「ブーイング」ボタンＳ１６０ｄ、「泣く」ボタンＳ１６０ｅ、「笑う」ボタンＳ１６０ｆ、「あせ」ボタンＳ１６０ｇ、及び「怒る」ボタンＳ１６０ｈが表示された状態を示している。
【０２１６】
ヘルプボタンＳ１６０ａは、図１３に示した基本表示ウィンドウ１１０におけるヘルプボタンＳ１１２ｃに相当し、コミュニケーションプログラムの操作をユーザに説明するヘルプ情報を表示するための機能選択ボタンである。コミュニケーションプログラムは、ユーザによってヘルプボタンＳ１６０ａが選択されることにより、操作の案内や問題の既決方法などが記述されたヘルプ情報をヘルプウィンドウ（図示を省略する。）に表示する。
【０２１７】
戻るボタンＳ１６０ｂは、感情表現モードを終了してツールモードに移行するための機能選択ボタンである。コミュニケーションプログラムは、ユーザによって戻るボタンＳ１６０ｂが選択されると、感情表現モードを終了してツールモードに移行する。
【０２１８】
機能選択ボタンＳ１６０ｃ〜Ｓ１６０ｈは、それぞれの名称に対応した感情を表現するための機能選択ボタンである。コミュニケーションプログラムは、これら機能選択ボタンＳ１６０ｃ〜Ｓ１６０ｈのうちのいずれかがユーザによって選択されると、各機能選択ボタンＳ１６０ｃ〜Ｓ１６０ｈの名称に対応した感情を表現するアニメーション効果を、ユーザ顔画像フレームＳ１１０に付与する。このとき、コミュニケーションプログラムは、ユーザ顔画像フレームＳ１１０にアニメーション効果を付与すると同時に、当該感情を表現した音声をコンピュータ装置１０に接続又は搭載されたスピーカ装置から出力するとしてもよい。これにより感情表現を一層向上させることができる。
【０２１９】
ここで、感情を表現するアニメーション効果及び音声の具体的な例として、拍手ボタンＳ１６０ｃがユーザにより選択された場合について説明する。この場合には、例えば、ユーザ顔画像フレームＳ１１０の顔画像表示領域Ｓ１１０ａ内に、拍手をするアニメーション画像（動画像又は連続した静止画像）を顔画像に重ねて表示するとともに、「パチパチパチ」という音声を出力する。このとき同時に、ユーザ顔画像フレームＳ１１０全体の表示位置を、初期表示位置を中心とした所定の領域内で連続的に変化させることによって、ユーザが拍手していることを示す表現を向上させるとしてもよい。
【０２２０】
また、例えば、泣くボタンＳ１６０ｅがユーザにより選択された場合には、例えば、ユーザ顔画像フレームＳ１１０の顔画像表示領域Ｓ１１０ａ内に、涙を表現したアニメーション画像を顔画像に重ねて表示するとともに、「エーンエーン」という音声を出力する。また、例えば、このとき同時に、ユーザ顔画像フレームＳ１１０全体の表示位置を、初期表示位置を中心とした所定の領域内で連続的に変化させることによって、ユーザが泣いていることを示す表現を向上させる。
【０２２１】
コミュニケーションプログラムは、上述のように、アニメーション画像の表示、及び音声の出力、或いはユーザ顔画像フレームＳ１１０の表示位置の変化によってユーザの感情を表現することが可能とされている。なお、アニメーション効果についての詳細は後述する。
【０２２２】
ここで、コミュニケーションプログラムは、ユーザにより機能選択ボタンＳ１６０ｃ〜Ｓ１６０ｈが選択された際に、上述したようにしてユーザ顔画像フレームＳ１１０に対して各種の感情表現効果を付与するとともに、ユーザにより機能選択ボタンＳ１６０ｃ〜Ｓ１６０ｈが選択されたことを示す情報を、サーバを介してクライアントの全てに送信する。これにより、クライアント側で動作するコミュニケーションプログラムにおいては、ユーザに対応した顔画像に対して、上述した各種の効果が付与されて表示されることとなる。
【０２２３】
すなわち、例えば、第１のクライアント顔画像フレームＳ１１１ａに対応した第１のクライアント側で上述した各種の感情表現が選択された場合には、ユーザ側のコミュニケーションプログラムが表示するウィンドウ内で、第１のクライアント顔画像フレームＳ１１１ａに対して、アニメーション画像の表示、及び音声の出力、或いは第１のクライアント顔画像フレームＳ１１１ａの表示位置の変化などが付与されることとなる。
【０２２４】
コミュニケーションプログラムは、このようにして、ユーザ及びクライアントの間で各々の感情の表現を共有することが可能とされている。したがって、コミュニケーションプログラムは、テキスト（文字データ）だけによるコミュニケーションと比較して、より多彩で効果的なコミュニケーションを図ることができる。
【０２２５】
（７−７）アクション表現モード
【０２２６】
ここで、コミュニケーションプログラムがアクション表現モードに移行した場合について、図２２に示すアクション表現ウィンドウ１７０を参照しながら説明する。
【０２２７】
アクション表現ウィンドウ１７０は、コミュニケーションプログラムがアクション表現モードに移行した場合に表示されるウィンドウであり、図２２に示すように、基本的には図１３に示した基本表示ウィンドウと同様な構成とされている。このため、図２２に示すアクション表現ウィンドウ１７０においては、図１３に示す基本表示ウィンドウ１１０と同一又は同等のフレーム、ボタン、及びアイコンについては、説明を省略し、同一の符号を付すこととする。
【０２２８】
感情表現ウィンドウ１７０は、基本表示ウィンドウ１１０との相違点として、図１３に示した機能選択ボタンＳ１１２に代えて、複数の機能選択ボタンＳ１７０を有している。機能選択ボタンＳ１７０は、図１３に示した機能選択ボタンＳ１１２と同様に、ユーザ顔画像フレームＳ１１０を中心とした仮想円上に所定の間隔で配されている。なお、機能選択ボタンＳ１７０が配される仮想円の半径は、クライアント顔画像フレームＳ１１１が配される仮想円の半径よりも小とされている。すなわち、機能選択ボタンＳ１７０は、クライアント顔画像フレームＳ１１１よりも内側に位置して表示されている。
【０２２９】
各機能選択ボタンＳ１７０には、それぞれ所定の機能が対応付けされている。コミュニケーションプログラムは、ユーザによって機能選択ボタンＳ１７０のいずれかが選択操作されると、選択された機能選択ボタンＳ１７０に対応した機能を実現する処理を行う。
【０２３０】
図２２に示す例においては、機能選択ボタンＳ１７０として、「ヘルプ」ボタンＳ１７０ａ、「戻る」ボタンＳ１７０ｂ、「ラブラブ」ボタンＳ１７０ｃ、「なでる」ボタンＳ１７０ｄ、「たたく」ボタンＳ１７０ｅ、及び「つねる」ボタンＳ１７０ｆが表示された状態を示している。
【０２３１】
ヘルプボタンＳ１７０ａは、図１３に示した基本表示ウィンドウ１１０におけるヘルプボタンＳ１１２ｃに相当し、コミュニケーションプログラムの操作をユーザに説明するヘルプ情報を表示するための機能選択ボタンである。コミュニケーションプログラムは、ユーザによってヘルプボタンＳ１７０ａが選択されることにより、操作の案内や問題の既決方法などが記述されたヘルプ情報をヘルプウィンドウ（図示を省略する。）に表示する。
【０２３２】
戻るボタンＳ１７０ｂは、感情表現モードを終了してツールモードに移行するための機能選択ボタンである。コミュニケーションプログラムは、ユーザによって戻るボタンＳ１７０ｂが選択されると、感情表現モードを終了してツールモードに移行する。
【０２３３】
機能選択ボタンＳ１７０ｃ〜Ｓ１７０ｆは、それぞれの名称に対応したアクションを表現するための機能選択ボタンである。コミュニケーションプログラムは、これらの機能選択ボタンＳ１７０ｃ〜Ｓ１７０ｆのうちのいずれかがユーザによって選択されると、各クライアント顔画像フレームＳ１１１を、初期表示位置を基準として所定の移動量で周期的に移動表示させる。これにより、コミュニケーションプログラムは、ユーザに対して、選択されたアクションを表現する対象となるクライアントの選択を促すことができる。
【０２３４】
そして、コミュニケーションプログラムは、ユーザによって、アクションを表現する対象となるクライアント（すなわち、対象となるクライアント顔画像フレームＳ１１１）が選択されると、選択されたクライアント顔画像フレームＳ１１１のフレーム色と、ユーザ顔画像フレームＳ１１０のフレーム色とを同一の色でハイライト表示する。このとき、これらクライアント顔画像フレームＳ１１１及びユーザ顔画像フレームＳ１１０内の顔画像に対して、選択されたアクションを表現するアニメーション効果を付与する。また、このとき、コミュニケーションプログラムは、これらクライアント顔画像フレームＳ１１１及びユーザ顔画像フレームＳ１１０にアニメーション効果を付与すると同時に、当該アクションを表現した音声をコンピュータ装置１０に接続又は搭載されたスピーカ装置から出力するとしてもよい。なお、アニメーション効果についての詳細は後述する。
【０２３５】
ここで、アクションを表現するアニメーション効果及び音声の具体的な例として、たたくボタンＳ１７０ｅがユーザにより選択された場合について説明する。この場合には、「たたく」というアクションを表現するために、例えば、ユーザ顔画像フレームＳ１１０の顔画像表示領域Ｓ１１０ａ内に、ハンマーを持った手のアニメーション画像（動画像又は連続した静止画像）を顔画像に重ねて表示する。一方、アクション表現の対象となるユーザ顔画像フレームＳ１１０の顔画像表示領域Ｓ１１１ａ内には、ハンマーでたたかれたことを示す星マークなどのアニメーション画像を顔画像に重ねて表示する。また、ハンマーでたたいたことを表現する音声（例えば「パシンッ」など）を出力する。このとき同時に、アクション表現の対象となるユーザ顔画像フレームＳ１１０及びクライアント顔画像フレームＳ１１１の表示位置を、それぞれ、初期表示位置を中心とした所定の領域内で連続的に変化させることによって、ユーザからクライアントに対するアクションの表現を向上させるとしてもよい。
【０２３６】
コミュニケーションプログラムは、ユーザにより機能選択ボタンＳ１７０ｃ〜Ｓ１７０ｆが選択された際に、上述したようにしてクライアント顔画像フレームＳ１１１との間で各種のアクション表現効果を付与するとともに、ユーザにより機能選択ボタンＳ１７０ｃ〜Ｓ１７０ｆが選択されたことを示す情報を、サーバを介してクライアントの全てに送信する。これにより、クライアント側で動作するコミュニケーションプログラムにおいては、このアクションの表現対象とされたユーザ又はクライアントの組に対応した顔画像に対して、上述した各種の効果が付与されて表示されることとなる。
【０２３７】
コミュニケーションプログラムは、このようにして、ユーザ及びクライアントの間で各種のアクション表現を共有することが可能とされている。したがって、コミュニケーションプログラムは、テキスト（文字データ）だけによるコミュニケーションと比較して、より多彩で効果的なコミュニケーションを図ることができる。
【０２３８】
（７−８）画像音声設定モード
【０２３９】
ここで、コミュニケーションプログラムが画像音声設定モードに移行した場合について、図２３に示す画像音声設定ウィンドウ１８０を参照しながら説明する。
【０２４０】
画像音声設定ウィンドウ１８０は、コミュニケーションプログラムが画像音声設定モードに移行した場合に表示されるウィンドウであり、図２３に示すように、図１４に示した縮小表示ウィンドウ１２０の下部に、新たに画像音声設定領域Ｓ１８０が確保された構成とされている。
【０２４１】
画像音声設定領域Ｓ１８０内の所定の部位（図中において右半分の部位）には、コミュニケーションプログラムに登録された複数の画像がリスト状に複数表示された画像リスト領域Ｓ１８１と、これら画像リスト領域Ｓ１８１内に表示された画像のうちから選択された画像をユーザに対応した顔画像として設定するための決定ボタンＳ１８２と、画像リスト領域Ｓ１８１に新たな画像を登録するための追加ボタンＳ１８３と、画像リスト領域Ｓ１８１内に表示された画像のうちから選択された画像を削除するための削除ボタンＳ１８４とを有している。
【０２４２】
コミュニケーションプログラムは、画像リスト領域Ｓ１８１内に表示された画像のうちのいずれかがユーザによって選択された後に、決定ボタンＳ１８２が選択されると、選択された画像を、ユーザに対応した顔画像として登録する。なお、図２３においては、ユーザの顔画像として、男性の半身を模した新たな画像が選択された状態を図示している。
【０２４３】
また、追加ボタンＳ１８３が選択された場合には、例えば、コンピュータ装置１０内に記憶された画像ファイルを選択するウィンドウ（図示せず。）によって、ユーザにより新たな画像ファイルを顔画像として利用可能な状態で画像リスト領域Ｓ１８１内に登録することが可能とされている。一方、画像リスト領域Ｓ１８１内に表示された画像のうちのいずれかがユーザによって選択された後に、削除ボタンＳ１８４が選択されると、選択された画像が画像リスト領域から削除され、ユーザの顔画像として利用不能な状態となる。
【０２４４】
ここで、画像リスト領域Ｓ１８１内に登録可能な画像ファイルとしては、特に人間の顔を示す画像に限定されるものではなく、例えば動物の画像であってもよいし、各種無機物の画像であってもよい。また、例えば、イラスト調の画像であってもよいし、写真をデジタル化するなどした写実的な画像であってもよい。さらに、登録可能な画像ファイルのファイル形式としては、コミュニケーションプログラムによって利用可能な形式であれば、特に限定されるものではない。
【０２４５】
一方、画像音声設定領域Ｓ１８０内の所定の部位（図中において左半分の部位）には、コンピュータ装置１０に接続又は搭載されたデジタルビデオカメラ２９により撮影された画像が表示されるカメラ画像表示領域Ｓ１８５と、このカメラ画像表示領域Ｓ１８５に表示された画像をユーザの顔画像として利用することを開始する画像入力開始ボタンＳ１８６と、カメラ画像表示領域Ｓ１８５に表示された画像をユーザの顔画像として利用することを中止する画像入力中止ボタンＳ１８７と、コミュニケーションプログラムによる音声出力の大きさ（音量）を制御する音量スライダＳ１８８と、コンピュータ装置１０に接続又は搭載されたデジタルビデオカメラ２９又はマイクから入力された音声のレベルを制御するための入力レベルスライダＳ１８８と、デジタルビデオカメラ２９又はマイクから入力された音声をコミュニケーションプログラムで利用することを開始する音声入力開始ボタンＳ１９０と、デジタルビデオカメラ２９又はマイクから入力された音声をコミュニケーションプログラムで利用することを中止する音声入力中止ボタンＳ１９１とを有している。
【０２４６】
コミュニケーションプログラムは、ユーザによって画像入力開始ボタンＳ１８６が選択されると、デジタルビデオカメラ２９から入力されて、カメラ画像表示領域Ｓ１８５に表示された画像をユーザの顔画像として利用する。この場合には、デジタルビデオカメラ２９から入力された画像がユーザ顔画像フレームＳ１１０内に表示されるとともに、この画像がサーバを介して他の全てのクライアントに対して送信されて、クライアント側においても表示されることとなる。
【０２４７】
また、画像音声設定領域Ｓ１８０の最上部には、操作アイコンＳ１９２が配されている。図２３に示す例においては、操作アイコンＳ１９２として、現在の動作モードである画像音声設定モードを終了してツールモードに移行するためのツールモード終了アイコンＳ１９２ａと、ヘルプ情報を表示するためのヘルプアイコンＳ１９２ｂとが表示された場合を図示している。
【０２４８】
（７−９）チャットログ表示モード
【０２４９】
ここで、コミュニケーションプログラムがチャットログ表示モードに移行した場合について、図２４に示すチャットログウィンドウ２００を参照しながら説明する。
【０２５０】
チャットログウィンドウ２００は、コミュニケーションプログラムがチャットログ表示モードに移行した場合に表示されるウィンドウであり、図２４に示すように、図１４に示した縮小表示ウィンドウ１２０の下部に、新たにチャットログ領域Ｓ２００が確保された構成とされている。このチャットログ領域Ｓ２００は、例えば、コミュニケーションプログラムを構成するチャットログモジュール５３ｆによって提供されるものである。
【０２５１】
チャットログ領域Ｓ２００は、テキスト入力領域Ｓ１１５に対してユーザが入力したテキスト、及びクライアントから受信してテキスト表示領域Ｓ１１６に表示したテキストが時系列的に記憶されたチャットログファイルの内容を表示するチャットログ表示領域Ｓ２０１と、このチャットログファイルの内容を別のファイルとしてコンピュータ装置１０内の所定の記憶領域に書き出すことにより保存するための保存ボタンＳ２０２とを有している。
【０２５２】
チャットログは、コミュニケーションプログラムが起動された時点からの、テキスト入力領域Ｓ１１５に対してユーザが入力したテキスト、及びクライアントから受信してテキスト表示領域Ｓ１１６に表示したテキストが、時系列的に記憶されたものであり、コミュニケーションプログラムによって確保された所定のメモリ領域内に記憶されている。
【０２５３】
コミュニケーションプログラムは、チャットログ表示ウィンドウ２００により、チャットログを閲覧することが可能とされている。これにより、ユーザは、クライアントから送信されたテキストを見逃してしまう虞を解消することができる。
【０２５４】
（７−１０）Ｗｅｂブラウジングモード
【０２５５】
ここで、コミュニケーションプログラムがＷｅｂブラウジングモードに移行した場合について、図２５に示すＷｅｂブラウズウィンドウ２１０を参照しながら説明する。
【０２５６】
Ｗｅｂブラウズウィンドウ２１０は、コミュニケーションプログラムがＷｅｂブラウジングモードに移行した場合に表示されるウィンドウであり、図２５に示すように、図１４に示した縮小表示ウィンドウ１２０の下部に、新たにＷｅｂブラウズ領域Ｓ２１０が確保された構成とされている。このＷｅｂブラウズ領域Ｓ２１０は、例えば、コミュニケーションプログラムを構成するＷｅｂ機能モジュール５３ｄによって提供されるものである。
【０２５７】
Ｗｅｂブラウズ領域Ｓ２１０の中央部には、所定のＵＲＬ（Uniform Resource Locator）によって指定されたインターネット１１上のリソース（画像データやハイパーテキスト等の各種情報）及びそのアクセス方法に基づいて、このリソースを取得した結果を表示するＷｅｂ情報表示領域Ｓ２１１が配されている。また、Ｗｅｂブラウズ領域Ｓ２１０内でＷｅｂ情報表示領域Ｓ２１１の上部には、複数の操作アイコンＳ２１２と、Ｗｅｂ情報表示領域Ｓ２１１に表示するリソースのＵＲＬが入力及び表示されるＵＲＬ入力領域Ｓ２１３とが横方向に並んで配されている。
【０２５８】
図２５に示すＷｅｂブラウズウィンドウ２１０においては、操作アイコンＳ２１２として、「戻る」アイコンＳ２１２ａ、「進む」アイコンＳ２１２ｂ、「中止」アイコンＳ２１２ｃ、「更新」アイコンＳ２１２ｄ、「ホーム」アイコンＳ２１２ｅ、「移動」アイコンＳ２１２ｆ、及び「アドレス送信」アイコンＳ２１２ｇが表示された場合の例を示している。
【０２５９】
ここで、操作アイコンＳ２１２ａ〜Ｓ２１２ｆ及びＵＲＬ入力領域Ｓ２１３については、それぞれ、従来から広く利用されているような、いわゆるＷｅｂブラウザ・アプリケーションプログラムに備えられている操作アイコン及びＵＲＬ入力領域Ｓ２１３と同等の機能を有するものである。このため、これら操作アイコンＳ２１２ａ〜Ｓ２１２ｆ及びＵＲＬ入力領域Ｓ２１３についての詳細な説明は省略する。
【０２６０】
また、Ｗｅｂブラウズウィンドウ２１０においては、Ｗｅｂ情報表示領域Ｓ２１１の下部に位置して、おすすめＵＲＬ表示領域Ｓ２１４を有している。このおすすめＵＲＬ表示領域Ｓ２１４については詳細を後述する。
【０２６１】
コミュニケーションプログラムは、ユーザによってＵＲＬ入力領域Ｓ２１３に所定のＵＲＬが入力され、移動アイコンＳ２１２ｆが選択されると、入力されたＵＲＬにより指定されたインターネット１１上のリソースを取得して、Ｗｅｂ情報表示領域Ｓ２１１に表示する。すなわち、コミュニケーションプログラムは、いわばＷｅｂブラウジング機能を備えている。
【０２６２】
ところで、コミュニケーションプログラムは、ＵＲＬ入力領域Ｓ２１３にＵＲＬが入力された状態において、ユーザによりアドレス送信アイコンＳ２１２ｇが選択されると、セッションが確立されている全てのクライアントに対して、このＵＲＬをサーバを介して送信する。
【０２６３】
ここで、説明の便宜上、ユーザ側のコミュニケーションプログラムが、上述のようにしてクライアント側のコミュニケーションプログラムから送信された所定のＵＲＬを取得した場合を想定して、図２６を参照して説明する。
【０２６４】
コミュニケーションプログラムは、他のコミュニケーションプログラムから送信されたＵＲＬを取得すると、例えば図２６に示すように、Ｗｅｂブラウズウィンドウ２１０のステイタス表示領域Ｓ１１４に、所定のメッセージを表示する。このとき表示するメッセージは、他のコミュニケーションプログラム（クライアント）側から送信されたＵＲＬを取得したことをユーザに対して通知する内容とされており、例えば「ここをクリックすると、紹介されたＷｅｂページが表示されます。」といったメッセージである。
【０２６５】
ここで、コミュニケーションプログラムは、ステイタス表示領域Ｓ１１４に表示したメッセージがユーザによって選択されると、クライアント側から取得したＵＲＬにより指定されたインターネット１１上のリソースを取得して、Ｗｅｂ情報表示領域Ｓ２１１に表示する。
【０２６６】
コミュニケーションプログラムにおいては、以上のようにして、インターネット１１上に存在する画像データやハイパーテキストなどの各種情報を示すＵＲＬを、ユーザとクライアントとの間で送受信することが可能とされている。すなわち、コミュニケーションプログラムは、ユーザがＷｅｂ情報表示領域Ｓ２１１内に表示して各種情報を閲覧中に、アドレス送信アイコンＳ２１２ｇを選択するという極めて簡便な操作によって、閲覧している情報をセッションが確立されている他のクライアントの各々と共有することが可能とされている。
【０２６７】
なお、コミュニケーションプログラムにおいては、ＵＲＬを取得した際にステイタス表示領域Ｓ１１４に表示されるメッセージは、特にＷｅｂブラウズウィンドウ２１０のステイタス表示領域Ｓ１１４に表示することに限定されない。すなわち、コミュニケーションプログラムがＷｅｂブラウジングモード以外の動作モードとされている場合であっても、他のクライアントからＵＲＬを取得した時点で、各動作モードに応じたウィンドウの下部に配されたステイタス表示領域Ｓ１１４にメッセージが表示される。そして、ユーザによりステイタス表示領域Ｓ１１４に表示されたメッセージが選択されると、コンピュータプログラムは、Ｗｅｂブラウジングモードに移行するとともに、取得したＵＲＬに対応した情報を取得してＷｅｂ情報表示領域Ｓ２１１内に表示する。
【０２６８】
したがって、コミュニケーションプログラムにおいては、現在の動作モードに依らずに、クライアント側から送信されたＵＲＬを受信した時点で、ＵＲＬを受信したことをユーザに対して即時に通知することができる。また、ステイタス表示領域Ｓ１１４に表示されるメッセージを、例えばコンピュータ装置１０に備えられたマウスによりクリック操作を行うといった極めて簡便な操作によって、自動的にＷｅｂブラウジングモードに移行し、取得したＵＲＬに対応した情報を取得してＷｅｂ情報表示領域Ｓ２１１内に表示することができる。
【０２６９】
また、上述のようにしてクライアントから取得したＵＲＬは、コミュニケーションプログラムによって、コンピュータ装置１０内の所定の記憶領域内に所定の数だけ記憶される。そして、コミュニケーションプログラムは、直近に取得したＵＲＬから順に、Ｗｅｂブラウズウィンドウ２１０内のおすすめＵＲＬ表示領域Ｓ２１４に表示する。また、コミュニケーションプログラムは、このＵＲＬ表示領域Ｓ２１４に表示されたＵＲＬがユーザによって選択されると、このＵＲＬに対応した情報を取得して、Ｗｅｂ情報表示領域Ｓ２１１内に表示する。
【０２７０】
これにより、コミュニケーションプログラムにおいては、極めて簡便な操作によって、過去にクライアントとの間で交換したＵＲＬに対応した情報を閲覧することができる。
【０２７１】
また、コミュニケーションプログラムにおいては、クライアントに対してＵＲＬを送信する際に、送信元を特定するための送信元特定情報をＵＲＬとともに送信するとしてもよい。送信元特定情報としては、例えば、送信元のユーザの名前、送信元のコンピュータ装置１０のＩＰアドレスなどを用いることができる。そして、この場合に、コミュニケーションプログラムは、クライアント側からＵＲＬとともに送信元特定情報を受信した際に、ステイタス表示領域Ｓ１１４に表示するメッセージやＵＲＬ表示領域Ｓ２１４に表示する内容、或いはおすすめＵＲＬ表示領域Ｓ２１４に、送信元特定情報を参照することにより得られた送信元を示すメッセージやアイコンなどを表示する構成とされる。
【０２７２】
これにより、コミュニケーションプログラムは、クライアント側から送信されたＵＲＬを受信した際に、このＵＲＬがいずれのクライアントから送信されたものであるかをユーザに対して通知することができ、多数のＵＲＬが交換する場合などにおけるユーザの混乱などを防止することができる。
【０２７３】
（８）画像データの送信
【０２７４】
ところで、コミュニケーションプログラムは、図２３を参照しながら説明したように、画像リスト領域Ｓ１８１内に登録された画像ファイルが選択された場合には、この画像ファイルをユーザ顔画像フレームＳ１１０内に表示する顔画像として設定する。また、デジタルビデオカメラ２９から入力され、カメラ画像表示領域Ｓ１８５に表示された画像が選択された場合には、この画像をユーザ顔画像フレームＳ１１０内に表示する顔画像として設定する。
【０２７５】
ここで、画像リスト領域Ｓ１８１内に登録された画像ファイルは、一般に静止画像データにより構成されており、カメラ画像表示領域Ｓ１８５に表示される画像は、デジタルビデオカメラ２９によって撮像された動画像データにより構成されている。
【０２７６】
そして、コミュニケーションプログラムは、ユーザ顔画像フレームＳ１１０に表示する顔画像として設定された画像を、サーバを介してクライアント側のコミュニケーションプログラムに送信する。このとき、コミュニケーションプログラムは、動画像データを顔画像として用いる場合には、この動画像データから所定の時間毎に静止画像データを生成し、静止画像データを顔画像として用いる場合とで、同一の送信キューを用いて画像データを送信する。
【０２７７】
以下では、まず、動画像データを送信する場合にコミュニケーションプログラムによって実行される一連の処理に注目し、図２７に示すフローチャートを参照しながら説明する。
【０２７８】
この場合に、コミュニケーションプログラムは、図２７に示すステップＳ３００において、クライアント側のコミュニケーションプログラムとの間でセッションが確立されていること、デジタルビデオカメラ２９が接続されていることなどを確認し、画像データの送信処理を開始する。
【０２７９】
次に、ステップＳ３０１において、コミュニケーションプログラムは、図２３に示した画像音声設定ウィンドウ１８０内の画像入力開始ボタンＳ１８６がユーザによって選択されているか否かを判定する。この判定の結果、選択されている場合には処理をステップＳ３０２に進め、選択されていない場合にはステップＳ３０１における判定を繰り返し行い、ユーザから画像入力開始ボタンＳ１８６が選択されるまで待機する。
【０２８０】
ステップＳ３０２において、コミュニケーションプログラムは、例えばコンピュータ装置１０のＲＡＭ２１内に設定された送信キューの状態を確認し、この送信キューにデータが存在するか否かを判定する。この判定の結果、データが存在しない場合には処理をステップＳ３０３に進め、データが存在する場合には処理をステップＳ３０５に処理を進める。
【０２８１】
ここで、送信キューとは、サーバを介してクライアントに送信する各種情報（例えば、画像データ、音声データ、或いは文字データなど）が一時的に蓄積される記憶領域である。そして、コミュニケーションプログラムにおいては、この送信キューに各種のデータが格納されると、格納されたデータを順次クライアントに対して送信する処理が行われる。そして、送信キューに格納されたデータが全て送信されると、この送信キューにデータが格納されていない状態、すなわち、送信キューが「空」である状態となる。
【０２８２】
ステップＳ３０３において、コミュニケーションプログラムは、デジタルビデオカメラ２９によって撮像された動画像データを取得し、この動画像データに基づいて、当該瞬間に対応した静止画像データを生成する。このとき、例えば、デジタルビデオカメラ２９から出力される動画像データが、連続した一連の静止画像データにより構成されている場合には、この動画像データに含まれる静止画像データのうちから、当該瞬間に対応した静止画像データを抽出すればよい。
【０２８３】
ここで、静止画像データとは、所定の画像フレーム内で符号化・復号化処理や
【０２８４】
圧縮・伸張処理が完結する画像データのことである。
【０２８５】
次に、ステップＳ３０４において、コミュニケーションプログラムは、ステップＳ３０３において生成された静止画像データを送信キューに格納する。このようにして送信キューに格納された静止画像データは、順次、サーバを介してクライアント側のコミュニケーションプログラムに対して送信される。また、このステップＳ３０４における処理の後に、コミュニケーションプログラムは、処理をステップＳ３０５に進める。
【０２８６】
ステップＳ３０５において、コミュニケーションプログラムは図２３に示した画像音声設定ウィンドウ１８０において、画像入力中止ボタンＳ１８７がユーザによって選択されているか否かを判定する。この判定の結果、画像入力中止ボタンＳ１８７が選択されている場合には、処理をステップＳ３０１に戻して、上述したステップＳ３０１以降の処理を繰り返す。また、画像入力中止ボタンＳ１８７が選択されていない場合には、処理をステップＳ３０５に進める。
【０２８７】
ステップＳ３０５において、コミュニケーションプログラムは、所定の時間（例えば、２００ｍｓｅｃ）だけ待機する処理（ウエイト処理）を行った後に、処理をステップＳ３０２に戻し、上述したステップＳ３０２以降の処理を行う。
【０２８８】
コミュニケーションプログラムは、上述のように実行処理されることによって、ステップＳ３０５において所定の時間だけ待機する毎に、デジタルビデオカメラ２９によって撮像された動画像データから静止画像データを生成し、これを送信キューに格納している。これにより、所定の時間間隔で、ユーザ側のコミュニケーションプログラムからクライアント側のコミュニケーションプログラムに対して、画像データが送信されることとなる。
【０２８９】
ここで、ステップＳ３０５における待機時間として、例えば２００ｍｓｅｃ（２００／１０００秒）が設定された場合には、毎秒５枚の画像データが送信されることとなる。すなわち、この場合には、いわば５ｆｐｓ（Frame per Second）なるフレームレートで、連続した画像データが送信されることとなる。
【０２９０】
なお、ステップＳ３０５における待機時間は、ユーザとクライアントとの間の通信帯域や通信状態に応じて、適宜設定すればよい。また、例えば、ユーザからの要求に応じて、デジタルビデオカメラ２９によって撮像された動画像データから１回だけ静止画像データを生成することとし、この静止画像データをユーザの顔画像としてユーザ顔画像フレームＳ１１０に表示するとしてもよい。
【０２９１】
つぎに、画像リスト領域Ｓ１８１内に登録された画像ファイルが選択され、この画像ファイル（静止画像データ）をユーザの顔画像として送信する場合にコミュニケーションプログラムによって実行される一連の処理に注目し、図２８に示すフローチャートを参照しながら説明する。
【０２９２】
この場合に、コミュニケーションプログラムは、図２８に示すステップＳ３１０において、クライアント側のコミュニケーションプログラムとの間でセッションが確立されていること、デジタルビデオカメラ２９が接続されていることなどを確認し、画像データの送信処理を開始する。
【０２９３】
次に、ステップＳ３１１において、コミュニケーションプログラムは、図２３に示した画像音声設定ウィンドウ１８０内の決定ボタンＳ１８２がユーザによって選択されているか否かを判定する。この判定の結果、選択されてない場合には、このステップＳ３１１における判定処理を、決定ボタンＳ１８２が選択されるまで継続する。また、決定ボタンＳ１８２が選択された場合には、ステップＳ３１２に処理を進める。
【０２９４】
ステップＳ３１２において、コミュニケーションプログラムは、画像リスト領域Ｓ１８１内に表示された複数の画像ファイル（静止画像データ）のうちのいずれかがユーザによって選択されているか否かを判定する。この判定の結果、画像ファイルが選択されていない場合にはステップＳ３１１に処理を戻し、画像ファイルが選択されている場合にはステップＳ３１３に処理を進める。
【０２９５】
ステップＳ３１３において、コミュニケーションプログラムは、デジタルビデオカメラ２９からの画像入力を中止する。これにより、ステップＳ３１３以前にデジタルビデオカメラ２９から入力された画像がユーザの顔画像として設定され、クライアント側に送信されていた場合には、このデジタルビデオカメラ２９からの画像の送信が停止される。
【０２９６】
次に、ステップＳ３１４において、コミュニケーションプログラムは、ステップＳ３１２において選択された画像ファイルに含まれる静止画像データを送信キューに格納する。このようにして送信キューに格納された静止画像データは、順次、サーバを介してクライアント側のコミュニケーションプログラムに対して送信される。また、このステップＳ３１４における処理の後に、コミュニケーションプログラムは、ステップＳ３１１に処理を進める。
【０２９７】
ここで、コミュニケーションプログラムにおいては、デジタルビデオカメラ２９によって撮像された動画像をユーザの顔画像としてクライアント側に送信する場合と、画像リスト領域Ｓ１８１に表示された画像ファイルに含まれる画像をユーザの顔画像としてクライアント側に送信する場合との両場合において、送信キューが区別されていない。すなわち、送信キューが共用されている。このため、コミュニケーションプログラムは、両場合において、送信するデータの管理及び制御を共通して行うことができる。
【０２９８】
（９）コミュニケーションプログラム起動時の処理
【０２９９】
ところで、コミュニケーションプログラムは、図３を参照しながら説明したように、複数の機能モジュールによって構成されている。これらの機能モジュールは、ユーザによってコミュニケーションプログラムが起動操作され、コミュニケーションプログラムが起動する際に、必要に応じて選択的に起動されて、各機能モジュールによって提供される機能が実行処理可能な状態となる。以下では、このようにして機能モジュールが選択的に起動される際の処理について、詳細に説明する。
【０３００】
コンピュータ装置１０には、コミュニケーションプログラムにおける各機能モジュールの各々について起動条件及び起動情報が記述されたモジュール情報が、例えばＨＤＤ２３或いはＲＡＭ２１などに確保された記憶領域内に記憶されている。モジュール情報は、コミュニケーションプログラムの外部に独立して存在するファイルとして記憶されており、機能モジュール毎に、例えば、各機能モジュールによる処理内容が記述された実行ファイル又はＤＬＬ（ダイレクト・リンク・ライブラリ）のコンピュータ装置１０上での格納場所、各機能モジュールによって提供される機能に対応してウィンドウ内に表示される機能選択ボタンに関する情報、及び、各機能モジュールの起動条件を示す起動情報などが記述されている。
【０３０１】
このうち、モジュール情報内の起動情報は、例えば図２９に示すように、機能モジュールによって提供される機能が各ビットに対応付けされてなる３２ビットのビット列により与えられている。この起動情報は、「１」とされたビットに対応した機能を当該機能モジュールが提供することを示すものである。
【０３０２】
図２９に示す例においては、各ビットに対して、最下位ビットから順に「オーディオ関連機能」、「ビデオ関連機能」、「ライブ番組出演関連機能」、「ゲーム関連機能」に対応付けされている場合を図示している。また、図２９に示す例においては、「ビデオ関連機能」及び「ライブ番組出演関連機能」に対応付けされたビットが「１」とされていることから、この起動情報に対して関連付けされた機能モジュールが「ビデオ関連機能」及び「ライブ番組出演関連機能」に関わる処理を行うことを表している。
【０３０３】
また、例えば、起動情報を構成する全てのビットが「０」である場合には、この起動情報に関連付けされた機能モジュールが、コミュニケーションプログラムの起動状態に依存せずに、常に起動されるべきことを示す。
【０３０４】
ここで、このような起動情報を有するモジュール情報を参照することにより、コミュニケーションプログラムの起動時に各機能モジュールを起動する場合の処理について説明する。
【０３０５】
コミュニケーションプログラムは、起動時の状態、すなわち、起動されるコンピュータ装置１０の環境（メモリ容量や画面サイズなどの環境）状態、コンピュータ装置１０に搭載又は接続された装置の状態、或いは、単独で起動されたか他のアプリケーションプログラムから呼び出された状態で起動されたかといった状態を検出して、この起動状態に応じて、所定のビット列を生成する。このビット列は、モジュール情報における起動条件に対応して各ビットに機能が対応付けされており、コミュニケーションプログラムの起動に際して必要とされる機能に対応したビットが「１」として生成されるものである。
【０３０６】
そして、例えば図３０に示すように、コミュニケーションプログラムの起動時に生成されたビット列と、各機能モジュール（図３０においては機能モジュールＡについて例示する。）の起動情報とのＡＮＤ（論理積）を演算した結果得られたビット列に「１」が含まれている場合には、この起動情報に対応した機能モジュールを起動する。
【０３０７】
また、例えば図３１に示すように、コミュニケーションプログラムの起動時に生成されたビット列と、各機能モジュール（図３１においては機能モジュールＢについて例示する。）の起動情報とのＡＮＤ（論理積）を演算した結果得られたビット列に「１」が含まれていない場合には、この起動情報に対応した機能モジュールに対する起動処理は行わない。
【０３０８】
さらに、例えば図３２に示すように、コミュニケーションプログラムの起動時に生成されたビット列と、各機能モジュール（図３２においては機能モジュールＣについて例示する。）の起動情報とをＡＮＤ（論理積）を演算したときに、得られたビット列に「１」が含まれない場合であっても、当該機能モジュールＣの起動情報の各ビットが全て「０」である場合には、この機能モジュールＣが全ての起動条件の下で起動されるべき機能モジュールであるとして、起動処理を行う。
【０３０９】
ここで、コミュニケーションプログラムの起動時の処理について、図３３に示すフローチャートを参照しながら説明する。
【０３１０】
コミュニケーションプログラムは、起動処理が開始されると、図３３に示すステップＳ３２０において、起動条件を取得する。この起動条件は、上述したように、コミュニケーションプログラムの起動状態に応じて生成される所定のビット列であり、コンピュータ装置１０のＣＰＵ２０によって生成されるものである。
【０３１１】
次に、ステップＳ３２１において、コミュニケーションプログラムは、コンピュータ装置１０内の所定の記憶領域に記憶されたモジュール情報を取得する。次に、ステップＳ３２２において、コミュニケーションプログラムは、モジュール情報に含まれる起動情報のビット列が全て「０」であるか否かを判定する。この判定の結果、全て「０」である場合にはステップＳ３２５に処理を進め、「１」が含まれている場合にはステップＳ３２３に処理を進める。
【０３１２】
ステップＳ３２３において、コミュニケーションプログラムは、モジュール情報に含まれる各機能モジュールに対応した起動情報と、起動条件とのＡＮＤ（論理積）を算出する。このＡＮＤの算出は、例えばＣＰＵ２０によって演算処理されることにより行われる。
【０３１３】
次に、ステップＳ３２４において、コミュニケーションプログラムは、ステップＳ３２３における演算処理により得られたビット列に含まれる各ビットが全て「０」か否かを判定する。この判定の結果、全て「０」である場合にはステップＳ３２６に処理を進め、「１」が含まれている場合にはステップＳ３２５に処理を進める。
【０３１４】
ステップＳ３２５において、コミュニケーションプログラムは、当該起動情報に対応した機能モジュールを起動する。この機能モジュールの起動に際しては、モジュール情報に含まれる情報、すなわち、当該機能モジュールが格納された場所に関する情報、当該機能モジュールによって提供される機能に対応してウィンドウ内に表示される機能選択ボタンに関する情報などが用いられる。このステップＳ３２５における処理の後に、コミュニケーションプログラムは、ステップＳ３２６に処理を進める。
【０３１５】
ステップＳ３２６において、コミュニケーションプログラムは、モジュール情報に含まれる全ての起動情報について一連の処理が終了したか否か、すなわち全ての機能モジュールについて一連の起動処理が終了したか否かを判定する。この結果、全ての機能モジュールについて処理が終了している場合には、一連の起動処理を終了して、通常のコミュニケーションプログラムの実行動作に移行する。また、起動処理の判定が行われていない起動情報が存在する場合には、処理をステップＳ３２２に戻して、この起動情報に対する起動処理の判定を行う。
【０３１６】
コミュニケーションプログラムは、以上のようにして起動処理を行うことにより、起動条件に応じて、必要となる機能モジュールを選択的に起動することができる。これにより、コミュニケーションプログラムは、例えば、インターネット１１を介して他のコンピュータ装置に対する画像や音声のライブ配信を提供するライブ配信アプリケーションプログラムから呼び出されるなどした場合には、このライブ配信アプリケーションプログラムに対応した機能モジュールが起動される。この場合には、例えば図３４に示すように、図２０に示したツール表示ウィンドウ１５０において、新たにライブ配信ボタンＳ１５０ｈが機能選択ボタンＳ１５０として追加表示されることとなる。
【０３１７】
（１０）ＵＲＬを共有する動作の処理
【０３１８】
ここで、コミュニケーションプログラムにおいて実現されるＵＲＬの共有機能について説明する。コミュニケーションプログラムは、図２５及び図２６を参照しながら説明したように、セッションが確立された他のコミュニケーションプログラムとの間でＵＲＬを送受信することができる。これにより、ユーザ及びクライアントは、このＵＲＬによって取得されるＷｅｂページの閲覧を極めて簡便な操作により同時体験することが可能とされている。
【０３１９】
そこで、以下では、上述のようにしてＵＲＬを送受信する場合におけるコミュニケーションプログラムによる一連の処理の流れについて、フローチャートを参照しながら詳細に説明する。
【０３２０】
まず、コミュニケーションプログラムによってＵＲＬを送信する場合の処理について、図３５に示すフローチャートを参照しながら説明する。
【０３２１】
コミュニケーションプログラムは、図３５においてステップＳ３３０に示すように、他の通常の動作処理を行っている最中に、所定の時間間隔で、Ｗｅｂブラウズウィンドウ２１０におけるアドレス送信アイコンＳ２１２ｇがユーザによって選択されたか否かを判定する。この判定の結果、アドレス送信アイコンＳ２１２ｇが選択されていない場合には通常の動作処理に戻り、選択されている場合にはステップＳ３３１に処理を進める。
【０３２２】
次に、ステップＳ３３１において、コミュニケーションプログラムは、Ｗｅｂブラウズウィンドウ２１０のＷｅｂ情報表示領域Ｓ２１１に表示中のＷｅｂページに対応したＵＲＬを取得する。このＵＲＬは、ＵＲＬ入力領域Ｓ２１３に入力・表示されたＵＲＬと一致するものである。
【０３２３】
次に、ステップＳ３３２において、コミュニケーションプログラムは、ステップＳ３３１で取得したＵＲＬに、送信元特定情報を付与するとともに、これらＵＲＬ及び送信元特定情報を、セッションが確立された全てのクライアントに対してサーバを介して送信する。このステップＳ３３２における処理の後に、コミュニケーションプログラムは、通常の動作処理に戻る。
【０３２４】
つぎに、クライアント側のコミュニケーションプログラムによって送信されたＵＲＬを受信した場合におけるコミュニケーションプログラムの処理の一例について、図３６に示すフローチャートを参照しながら説明する。
【０３２５】
コミュニケーションプログラムは、図３６においてステップＳ３４０に示すように、クライアント側から送信されたＵＲＬを受信すると、ステップＳ３４１において、おすすめＵＲＬリストにＵＲＬと送信元特定情報とを格納する。ここで、おすすめＵＲＬリストは、例えば図３７に示すようなデータ構造とされており、送信元特定情報に含まれる送信元の名前と、この送信元から送信されたＵＲＬとを一組として、受信したＵＲＬ及び送信元特定情報を時系列順に記憶されるリストである。また、Ｗｅｂブラウズウィンドウ２１０におけるおすすめＵＲＬ表示領域Ｓ２１４には、おすすめＵＲＬリストの内容が表示される。
【０３２６】
次に、ステップＳ３４２において、コミュニケーションプログラムは、チャットログ表示モードで用いるチャットログファイルに対して、受信したＵＲＬと送信元の名前とを追記する。これにより、コミュニケーションプログラムは、チャットログ表示モードに移行したときに、チャットログ表示領域Ｓ２０１に対して、他のコミュニケーションプログラムとの間で交換されたＵＲＬを随時確認することができる。また、このチャットログ表示モードにおいて、コミュニケーションプログラムは、チャットログ表示領域Ｓ２０１に表示されたチャットログの内容に含まれるＵＲＬがユーザによって選択された際に、自動的にＷｅｂブラウズモードに移行して、選択されたＵＲＬに対応したＷｅｂページを表示する。
【０３２７】
なお、コミュニケーションプログラムにおいては、このステップＳ３４２における処理を省略してもよい。この場合には、他のコミュニケーションプログラムとの間で交換したＵＲＬがチャットログファイルに記録されないこととなる。
【０３２８】
次に、ステップＳ３４３において、コミュニケーションプログラムは、受信したＵＲＬの送信元に相当するクライアントのクライアント顔画像フレームＳ１１１を縮小表示するとともに、このクライアント顔画像フレームＳ１１１に隣接してテキスト表示領域Ｓ１１６を表示し、このテキスト表示領域Ｓ１１６内に、ＵＲＬを受信したことを通知するメッセージを表示する。このようなメッセージとしては、例えば「ＵＲＬを送信しました」、或いは「ＵＲＬを送信したよ！」といったメッセージを表示すればよい。
【０３２９】
次に、ステップＳ３４４において、コミュニケーションプログラムは、ステイタス表示領域Ｓ１１４に、ＵＲＬを受信したことを示すメッセージを表示する。
【０３３０】
次に、ステップＳ３４５において、コミュニケーションプログラムは、ステイタス表示領域Ｓ１１４に表示したメッセージが選択されたか否かを判定する。この判定の結果、選択されていない場合にはステップＳ３４６に処理を進め、選択されている場合にはステップＳ３４７に処理を進める。
【０３３１】
ステップＳ３４６において、コミュニケーションプログラムは、Ｗｅｂブラウズウィンドウ２１０におけるおすすめＵＲＬ表示領域Ｓ２１４に表示されたＵＲＬがユーザによって選択されたか否かを判定する。この判定の結果、ＵＲＬが選択されていない場合にはステップＳ３４５に処理を戻し、ＵＲＬが選択されている場合にはステップＳ３４８に処理を進める。
【０３３２】
ステップＳ３４７において、コミュニケーションプログラムは、おすすめＵＲＬリストに含まれるＵＲＬのうちから最後に受信したＵＲＬを選出し、処理をステップＳ３４９に進める。
【０３３３】
ステップＳ３４８において、コミュニケーションプログラムは、ステップＳ３４６において選択されたＵＲＬをおすすめＵＲＬリストから選出し、処理をステップＳ３４９に進める。
【０３３４】
ステップＳ３４９において、コミュニケーションプログラムは、Ｗｅｂ機能モジュール５３ｄが起動され、Ｗｅｂブラウジングモードで動作中であるか否かを判定する。この判定の結果、Ｗｅｂブラウジングモードで動作中でない場合にはステップＳ３５０に処理を進め、Ｗｅｂブラウジングモードで動作中である場合にはステップＳ３５１に処理を進める。
【０３３５】
ステップＳ３５０において、コミュニケーションプログラムは、Ｗｅｂ機能モジュール５３ｄを起動し、Ｗｅｂブラウジングモードに移行する。このステップＳ３５０における処理の後に、コミュニケーションプログラムは、ステップＳ３５１に処理を進める。
【０３３６】
ステップＳ３５１において、コミュニケーションプログラムは、ユーザによって選択されたＵＲＬに基づいて、インターネット１１上から画像データやハイパーテキストなどのＷｅｂ情報を取得し、これらのＷｅｂ情報によって構成されるＷｅｂページをＷｅｂブラウズウィンドウ２１０におけるＷｅｂ情報表示領域Ｓ２１１内に表示する。
【０３３７】
なお、本例におけるコミュニケーションプログラムは、Ｗｅｂ機能モジュール５３ｄによって提供されるＷｅｂブラウジングモードにおけるＷｅｂブラウズウィンドウ２１０のＷｅｂ情報表示領域２１０内にＷｅｂページを表示するとしたが、コミュニケーションプログラムは、例えば、Ｗｅｂ情報表示機能を有するＷｅｂブラウザ等の外部アプリケーション・プログラムを起動し、このＷｅｂブラウザに対して、ユーザにより選択されたＵＲＬに対応したＷｅｂ情報を取得・表示するように要求してもよい。
【０３３８】
以上で説明したように、コミュニケーションプログラムは、セッションが確立されたユーザ及びクライアントの間で、コンピュータネットワーク上に存在する各種情報の所在地及び／又は取得方法を示すリソース情報としてのＵＲＬを簡便に交換することが可能に構成されている。また、クライアント側から送信されたＵＲＬを受信した際に、ユーザに対して即座にこれを通知することが可能とされている。
【０３３９】
したがって、コミュニケーションプログラムは、従来から広く用いられているような電子メールやチャットプログラムなどを利用してＵＲＬを交換する場合と比較して、より効率的に且つ迅速にＵＲＬを共有することができる。
【０３４０】
また、コミュニケーションプログラムによれば、例えば、多数のクライアントとの間で、いわゆるネットワーク会議を行っている場合に、ユーザの主張の根拠となるＷｅｂページを他のクライアントに閲覧してもらうことによって、説得力のある主張などを行うことができる。また、例えば、クライアントとの間で旅行先などを相談しながら、候補地の観光案内Ｗｅｂページを共に閲覧することができる。さらに、クライアントとの間でコミュニケーションを行いながら、ＵＲＬを共有することによって、インターネット１１上に存在する資料データをクライアント全員で閲覧することができる。
【０３４１】
（１１）アニメーション効果
【０３４２】
ところで、コミュニケーションプログラムにおいては、図２１及び図２２を参照しながら説明したように、ユーザによって感情又は動作（アクション）を表現することを要求された場合に、表現対象となる利用者に対応したユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１に対して、要求された感情表現又は動作表現に対応したアニメーション効果を付与する。そこで、以下では、このアニメーション効果について、図面を参照しながら説明する。
【０３４３】
アニメーション効果としては、例えば、表現対象としてユーザにより選択されたユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１の表示位置を移動させる効果を付与することができる。具体的には、例えば、表現対象のユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１を、所定時間の間、初期表示位置を中心とする所定の領域内で移動させることにより感情又は動作を表現する。
【０３４４】
また、アニメーション効果としては、表現対象としてユーザにより選択されたユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１の表示サイズを変化させる効果を付与してもよい。具体的には、例えば、表現対象のユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１を、所定の時間の間、表示サイズを初期表示サイズに対して相対的に変化させることにより感情又は動作を表現する。
【０３４５】
また、アニメーション効果としては、表現対象としてユーザにより選択されたユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１の表示角度を変化させる効果を付与してもよい。具体的には、例えば、表現対象のユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１を、所定の時間の間、表示角度を初期表示角度に対して相対的に変化させることにより感情又は動作を表現する。
【０３４６】
また、アニメーション効果としては、表現対象としてユーザにより選択されたユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１に重ねて、所定の画像を表示する効果を付与してもよい。具体的には、例えば、表現対象のユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１に対して、所定の時間の間、透過色が指定されたビットマップ形式の画像を重ねて表示することにより感情又は動作を表現する。
【０３４７】
このようにして、ユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１に重ねて表示する画像としては、例えば、図３８（ａ）乃至図３８（ｅ）に示すような連続した複数の画像であってもよい。そして、これら複数の連続した画像を順次ユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１に重ねて表示することにより、さらに感情表現又は動作表現を向上させることができる。
【０３４８】
また、ユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１に対しては、上述した各種のアニメーション効果のうちから選ばれる任意のいくつかを同時に付与するとしてもよい。具体的には例えば、表示位置移動効果と同時に画像の重ね合わせ効果を付与することができる。
【０３４９】
ここで、上述した表示位置移動効果、サイズ変更、ビットマップ画像重ね合わせ効果などのアニメーション効果は、アニメーションの要素を、アニメーション開始時刻から所定の時刻までの値を連続して指定する手法、いわゆるキーフレーム形式のアニメーション手法を用いることができる。このようなキーフレーム形式のアニメーション手法を採用する場合には、例えば、図３９に示すようなデータ構造とされたキーフレームデータが用いられる。
【０３５０】
図３９に示すキーフレームデータにおいては、各アニメーション効果に対応した複数のキーフレームと、このキーフレームに設定された値とが対となったデータ構造とされている。
【０３５１】
例えば表示位置移動効果を付与する場合には、このキーフレームデータにおいて、第０のキーフレームに値「０，０」が設定されており、第１０のキーフレームに値「―１０，−１０」が設定されている。表示位置移動効果においては、キーフレームにより設定された値がそれぞれ、ユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１を初期表示位置から移動するＸ座標とＹ座標とに関連付けされている。すなわち、第１０のキーフレームにおいては、ユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１が初期表示位置からＸ方向にー１０ピクセル、Ｙ方向にー１０ピクセル分だけ移動して表示されることとなる。
【０３５２】
また、表示サイズ変更効果を付与する場合には、キーフレームデータにより設定された値がそれぞれ、ユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１を初期表示サイズに対してＸ方向及びＹ方向に拡大する拡大率に関連づけされている。すなわち、第１０のキーフレームにおいては、ユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１が初期表示サイズに対して、Ｘ方向に１００％、Ｙ方向に７５％の拡大率で表示されることとなる。
【０３５３】
また、画像重ね合わせ効果を付与する場合には、キーフレームデータにより設定された値がそれぞれ、ユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１に対して重ねる画像の番号に関連付けされている。すなわち、第５のキーフレームにおいては、ユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１に対して、例えば２番の番号が設定された画像が重ねて表示されることとなる。
【０３５４】
また、アニメーション効果を付与して表示するユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１は、例えば毎秒１５枚（１５ＦＰＳ：Frame per Second）といった所定のフレームレートで表示され、キーフレームとして設定されていないフレームにおける各アニメーション効果の値は、アニメーション効果の付与開始時刻からの経過時間に応じて補間される。なお、画像重ね合わせ効果の場合には、補間は行われず、直前のキーフレームの値が用いられる。
【０３５５】
ここで、アニメーション効果を付与する場合におけるコミュニケーションプログラムの処理の一例について、図２２に示したアクション表現ウィンドウ１７０内で所定のクライアントに対してアクションを表現する場合について、図４０に示すフローチャートを参照しながら説明する。
【０３５６】
コミュニケーションプログラムは、図４０に示すステップＳ３６０において、ユーザにより所定の機能選択ボタンＳ１７０が選択され、動作（アクション）表現を行うことを要求されると、ステップＳ３６１において、要求されたアクション表現の表現対象、すなわちクライアント顔画像フレームＳ１１１を選択する状態となる。
【０３５７】
次に、ステップＳ３６２において、コミュニケーションプログラムは、表現対象がユーザにより選択されたか否かを判定する。この判定の結果、表現対象が選択されている場合にはステップＳ３６３に処理を進め、選択されていない場合にはアクションの表現を中止して、アニメーション効果の付与を終了する。
【０３５８】
ステップＳ３６３において、コミュニケーションプログラムは、ユーザ顔画像フレームＳ１１０のフレーム色と、表現対象として選択されたクライアント顔画像フレームＳ１１１のフレーム色とを一致させるとともに、これらユーザ顔画像フレームＳ１１０及びクライアント顔画像フレームＳ１１１に対して、ユーザによって選択されたアクション表現に対応したアニメーション効果を付与する。このステップＳ３６３における処理の後に、コミュニケーションプログラムは、アニメーション効果の付与処理を終了する。
【０３５９】
ここで、ステップＳ３６１における処理の詳細について、図４１に示すフローチャートを参照しながら説明する。
【０３６０】
ステップＳ３６１において、要求されたアクション表現の表現対象を選択する処理を行う際に、コミュニケーションプログラムは、図４１に示すステップＳ３７０において、クライアント顔画像フレームＳ１１１が選択状態となったことを示すアニメーション動作を読み込む。
【０３６１】
次に、ステップＳ３７１において、コミュニケーションプログラムは、表現対象として選択可能なクライアント顔画像フレームＳ１１１に対して、ステップＳ１１１において読み込んだアニメーション動作を開始して、これらクライアント顔画像フレームＳ１１１に対してアニメーション効果を付与する。このとき付与するアニメーション効果としては、例えば、各クライアント顔画像フレームＳ１１１を、初期表示位置を基準として所定の移動量でＹ方向に周期的に移動表示させる。これにより、例えば、表現対象として選択可能なクライアント顔画像フレームＳ１１１が、飛び跳ねているような効果を付与することができる。このように表現対象として選択可能なクライアント顔画像フレームＳ１１１に対してアニメーション効果を付与することによって、選択可能なクライアント顔画像フレームＳ１１１をユーザに対して明示的に示すことができる。
【０３６２】
次に、ステップＳ３７２において、コミュニケーションプログラムは、表現対象としてのクライアント顔画像フレームＳ１１１のいずれかがマウスをクリック操作することなどによって選択されたか否かを判定する。この判定の結果、選択されていない場合にはステップＳ３７３に処理を進め、選択されている場合にはステップＳ３７４に処理を進める。
【０３６３】
ステップＳ３７３において、コミュニケーションプログラムは、表現対象を選択する際に用いられるアニメーション効果が終了したか否かを判定する。この判定の結果、終了していない場合にはステップＳ３７２に処理を戻し、終了している場合にはステップＳ３７１に処理を戻して再度選択時用のアニメーション効果を付与する。
【０３６４】
ステップＳ３７４において、コミュニケーションプログラムは、表現対象を選択する際に用いられるアニメーション効果の付与を停止する。次に、ステップＳ３７５において、コミュニケーションプログラムは、全てのクライアント顔画像フレームＳ１１１の表示状態を初期表示状態に戻す。次に、ステップＳ３７６において、コミュニケーションプログラムは、ステップＳ３７２において選択された表現対象としてのクライアント顔画像フレームＳ１１１を特定する情報を生成する。これにより、表現対象の選択処理を終了する。
【０３６５】
ここで、ステップＳ３６３における処理の詳細について、図４２に示すフローチャートを参照しながら説明する。
【０３６６】
ステップＳ３６３においてユーザ顔画像フレームＳ１１０と、表現対象として選択されたクライアント顔画像フレームＳ１１１とに対して、ユーザによって選択されたアクション表現に対応したアニメーション効果を付与する処理が開始されると、図４２に示すステップＳ３８０において、コミュニケーションプログラムは、表現対象として選択されたクライアント顔画像フレームＳ１１１と、このクライアント顔画像フレームＳ１１１に対して付与するアニメーション効果とを設定する。
【０３６７】
次に、ステップＳ３８１において、コミュニケーションプログラムは、ユーザ顔画像フレームＳ１１０、及び、表現対象として選択されたクライアント顔画像フレームＳ１１１のフレーム色を設定する。このとき、コミュニケーションプログラムにおいては、複数の感情表現又はアクション表現がユーザとクライアント間で、又はクライアント同士の間で同時に生じた場合に備えて、予め設定された複数のフレーム色を必要に応じて順次用いることが望ましい。これにより、複数の感情表現又はアクション表現が同時に生じた場合であっても、表現の対象関係を明確化することができる。
【０３６８】
次に、ステップＳ３８２において、コミュニケーションプログラムは、ユーザ顔画像フレームＳ１１０のフレーム色と、選択されたクライアント顔画像フレームＳ１１１のフレーム色とを、ステップＳ３８１で設定されたフレーム色に変更する。
【０３６９】
次に、ステップＳ３８３において、コミュニケーションプログラムは、表現対象とされた画像フレーム（この場合、ユーザ顔画像フレームＳ１１０、及び選択されたクライアント顔画像フレームＳ１１１）に対して、所定のアニメーション効果を付与する。
【０３７０】
次に、ステップＳ３８４において、アニメーション効果を付与した画像フレーム（この場合、ユーザ顔画像フレームＳ１１０、及び選択されたクライアント顔画像フレームＳ１１１）のフレーム色を元の色に戻して、アニメーション効果を付与する処理を終了する。
【０３７１】
ここで、上述したステップＳ３７１及びステップＳ３８３においてアニメーション効果を付与する際の処理について、図４３に示すフローチャートを参照しながら説明する。
【０３７２】
アニメーション効果を付与する処理が開始されると、コミュニケーションプログラムは、図４３に示すステップＳ３９０において、付与するアニメーション効果を設定する。
【０３７３】
次にステップＳ３９１において、コミュニケーションプログラムは、設定されたアニメーション効果が存在するか否かを判定する。この判定の結果、存在しない場合には、アニメーション効果を付与する処理を終了する。また、設定されたアニメーション効果が存在しない場合には、ステップＳ３９２に処理を進める。
【０３７４】
ステップＳ３９２において、コミュニケーションプログラムは、アニメーションデータを読み込む。次に、ステップＳ３９３において、コミュニケーションプログラムは、アニメーション効果を付与する対象となる画像フレーム（この場合、ユーザ顔画像フレームＳ１１１、及び選択されたクライアント顔画像フレームＳ１１１）に対して、アニメーション初期値を設定する。このアニメーション初期値は、第０のキーフレームに相当する値を有するものである。次に、ステップＳ３９４において、コミュニケーションプログラムは、アニメーション効果の付与を開始してから経過した時間を算出する。
【０３７５】
次に、ステップＳ３９５において、コミュニケーションプログラムは、ステップＳ３９４において算出した時間が、キーフレームと一致するか否かを判定する。この判定の結果、一致する場合にはステップＳ３９６に処理を進め、一致しない場合にはステップＳ３９７に処理を進める。
【０３７６】
ステップＳ３９６において、コミュニケーションプログラムは、アニメーション効果を付与する画像フレームに対して、キーフレームに対応した値を設定する。このステップＳ３９６における処理の後に、コミュニケーションプログラムは、ステップＳ３９９に処理を進める。
【０３７７】
ステップＳ３９７において、コミュニケーションプログラムは、ステップＳ３９４において算出した経過時間に対して前後する２つのキーフレームの値を取得する。次に、ステップＳ３９８において、コミュニケーションプログラムは、２つのキーフレームの値から補間した値を、アニメーション効果を付与する画像フレームに対して設定する。このステップＳ３９８における処理の後に、コミュニケーションプログラムは、ステップＳ３９９に処理を進める。
【０３７８】
ステップＳ３９９において、コミュニケーションプログラムは、設定された値に応じて、アニメーション効果を付与する画像フレームをウィンドウ内に表示する。
【０３７９】
次に、ステップＳ４００において、コミュニケーションプログラムは、予め設定されたアニメーション効果を付与する時間が経過したか否かを判定する。この判定の結果、経過していない場合には、ステップＳ３９４に処理を戻して、アニメーション効果を付与する一連の処理を継続する。また、アニメーション効果を付与する時間が警戒している場合には、ステップＳ４０１に処理を進める。
【０３８０】
ステップＳ４０１において、コミュニケーションプログラムは、対象とされた画像フレームに対して、アニメーション効果の付与を停止して、一連のアニメーション効果の付与を行う処理を終了する。
【０３８１】
なお、以上の説明においては、図２２に示したアクション表現ウィンドウ１７０内で所定のクライアントに対してアクションを表現する場合について説明したが、コミュニケーションプログラムは、図２１に示した感情表現ウィンドウ１６０内でユーザ顔画像フレームＳ１１０に対してアニメーション効果を付与する場合にも上述と同様な処理を行う。
【０３８２】
また、上述したようなアニメーション効果の付与は、ユーザから所定の感情表現又はアクション表現を行う要求がなされた場合のみならず、クライアント側で所定の感情表現又はアクション表現を行う要求がなされた場合においても、ユーザ側のコミュニケーションプログラムが上述と同様の処理を行うことにより、感情表現又はアクション表現の表現対象とされた画像フレーム（ユーザ顔画像フレームＳ１１０又はクライアント顔画像フレームＳ１１１）に対して、アニメーション効果が付与される。
【０３８３】
（１２）クライアント側から送信されたテキストの表示
【０３８４】
ところで、コミュニケーションプログラムは、図１９を参照しながら説明したように、クライアント側から送信されたテキスト（文字データ）を受信すると、当該クライアントに対応したクライアント顔画像フレームＳ１１１を縮小して表示するとともに、縮小表示されたクライアント顔画像フレームＳ１１１の近傍位置に、クライアントから送信されたテキストが表示されるテキスト表示領域Ｓ１１６を表示する。
【０３８５】
このとき、コミュニケーションプログラムは、図４４（ａ）乃至図４４（ｃ）に時系列的に示すように、クライアント顔画像フレームＳ１１１の表示サイズを徐々に縮小する一方で、テキスト表示領域Ｓ１１６の表示サイズを徐々に拡大することによって、最終的に、縮小表示されたクライアント顔画像フレームＳ１１１の近傍位置に所定のサイズとされたテキスト表示領域Ｓ１１６を表示する。
【０３８６】
このため、クライアント顔画像フレームＳ１１１を初期表示サイズから縮小表示させることにより確保された領域に、テキスト表示領域Ｓ１１６を表示することができ、特に図１４に示した縮小表示ウィンドウ１２０のように、ウィンドウ内で利用可能な領域が限られており、比較的狭い場合であっても、クライアント側から送信されたテキストを十分な大きさで表示することができる。
【０３８７】
また、テキスト表示領域Ｓ１１６を縮小表示されたクライアント顔画像フレームＳ１１１の近傍位置に表示していることから、このテキスト表示領域Ｓ１１６内に表示されたテキストと、このテキストの送信元（発言元）であるクライアントとの対応関係を直感的に把握することができる。
【０３８８】
また、コミュニケーションプログラムにおいは、テキスト表示領域Ｓ１１６の外枠部は、いわゆる「吹き出し」形状とされていることから、このテキスト表示領域Ｓ１１６内に表示されたテキストと、このテキストの送信元（発言元）である、クライアントとの対応関係をより明確に表現することが可能とされている。
【０３８９】
ところで、上述のようにしてテキスト表示領域Ｓ１１６内に、クライアント側から受信したテキストを表示するに際しては、表示するテキストの文字列長に応じてテキスト表示領域Ｓ１１６の表示を継続する時間を制御することが望ましい。
【０３９０】
具体的には例えば、テキスト表示領域Ｓ１１６の表示を継続する最短の時間を２秒とし、最長の時間を６秒とする。また、テキスト表示領域Ｓ１１６内に表示するテキストの文字列長は、例えば、最大で９０バイト相当（半角文字で９０文字・全角文字で４５文字）の長さとする。そして、テキスト表示領域Ｓ１１６を表示する時間を、このテキスト表示領域Ｓ１１６内に表示する文字列長の長さに応じて２秒から６秒の範囲で適宜制御する。すなわち、例えば図４５（ａ）に示すように、全角文字で３文字（６バイト）を表示する場合には、テキスト表示領域Ｓ１１６の表示継続時間を２．２７秒とし、例えば図４５（ｂ）に示すように、全角文字で３１文字（６２バイト）を表示する場合には、テキスト表示領域Ｓ１１６の表示継続時間を４．７６秒とする。
【０３９１】
このように、表示するテキストの文字列長に応じてテキストの表示時間を制御することにより、ユーザとクライアントとの間、或いはクライアント同士の間で、実際の対話に近い自然なテンポ・リズムによりコミュニケーションを図ることができる。また、コミュニケーションプログラムは、感嘆句のような短いテキストは短時間だけ表示する一方で、長いテキストは長時間表示することから、表示されたテキストをユーザに対して確実に内容を判読させることができる。
【０３９２】
ここで、クライアント側から送信されたテキストを、上述のようにしてテキスト表示領域Ｓ１１６内に表示する場合におけるコミュニケーションプログラムの処理の流れについて、図４６に示すフローチャートを参照しながら説明する。
【０３９３】
この場合にコミュニケーションプログラムは、先ず、図４６に示すステップＳ４１０において、クライアント側のコミュニケーションプログラムから送信されたテキスト（文字データ）を受信して取得する。次に、ステップＳ４１１において、コミュニケーションプログラムは、テキストの文字列長を取得する。次に、ステップＳ４１２において、コミュニケーションプログラムは、テキストの文字列長に基づいて、このテキストの表示継続時間を算出する。
【０３９４】
次に、ステップＳ４１３において、コミュニケーションプログラムは、受信したテキストの送信元であるクライアントに対応したクライアント顔画像フレームＳ１１１を徐々に縮小表示させる。次に、ステップＳ４１４において、コミュニケーションプログラムは、ステップＳ４１３において縮小表示したクライアント顔画像フレームＳ１１１の近傍位置に、テキスト表示領域Ｓ１１６を徐々に拡大表示する。なお、ステップＳ４１３における処理とステップＳ４１４における処理は、並行して同時に行うとしてもよい。
【０３９５】
次に、ステップＳ４１５において、コミュニケーションプログラムは、ステップＳ４１４において表示したテキスト表示領域Ｓ１１６内に、受信したテキストを表示する。次に、ステップＳ４１６において、コミュニケーションプログラムは、ステップＳ４１２においてステップＳ４１２において算出した表示継続時間が経過したか否かを判定する。この判定の結果、表示継続時間が経過している場合にはステップＳ４１７に処理を進め、経過していない場合にはステップＳ４１５に処理を戻してテキストの表示を継続する。
【０３９６】
ステップＳ４１７において、コミュニケーションプログラムは、テキスト表示領域Ｓ１１６と、このテキスト表示領域Ｓ１１６内に表示されたテキストとを徐々に縮小表示させる。このとき、テキスト表示領域Ｓ１１６と、このテキスト表示領域Ｓ１１６内に表示されたテキストとを瞬時に消去するとしてもよい。次に、ステップＳ４１８において、縮小表示されたクライアント顔画像フレームＳ１１１を、徐々に拡大表示し、最終的に初期表示サイズで表示する。なお、ステップＳ４１７における処理とステップＳ４１８における処理とは、並行して同時に行うとしてもよい。
【０３９７】
以上のようにして、コミュニケーションプログラムは、クライアント側から送信されたテキスト（文字データ）を表示する。
【０３９８】
（１３）コミュニケーションプログラムによるウィンドウ表示
【０３９９】
ところで、コミュニケーションプログラムにおいては、上述したように、当該コミュニケーションプログラムが単独で起動されたか或いは他のアプリケーションプログラムから呼び出されて起動されたかといった起動形態、或いは、当該コミュニケーションプログラムの動作モードに応じて、例えば図１３及び図１４に示すように、アプリケーションウィンドウの表示サイズを適宜変更することが可能とされている。
【０４００】
また、コミュニケーションプログラムにおいては、例えば図１３に示すように、基本となるモジュールが単独で起動された状態と、例えば図２３、図２４、及び図２５に示すように、各種機能を実現する機能モジュールが起動された状態と、例えば図３４に示すように、外部のアプリケーションプログラムから呼び出されて起動された状態との３つの動作状態に大別することができる。そして、コミュニケーションプログラムは、これらの動作状態に応じて、アプリケーションウィンドウ内に表示する表示要素としてのユーザ顔画像フレームＳ１１０及びクライアント顔画像フレームＳ１１１、或いは上述した各種の機能選択ボタンなどの表示位置を適宜制御し、各動作状態に対応した表示領域内に全ての表示要素が収まるように調整されている。
【０４０１】
なお、コミュニケーションプログラムにおいては、図１３及び図１４に示した状態でアプリケーションウィンドウを表示することに限定されず、例えば、図４７に示すように、縦方向に長い表示領域を有する形態でアプリケーションウィンドウを表示することもできる。
【０４０２】
ここで、コミュニケーションプログラムは、例えば図１４及び図４７に示すように、通常時と比較して表示サイズが小とされた状態とされた場合には、各機能選択ボタンのキャプション表示が行わない。また、この場合においては、ユーザ顔画像フレームＳ１１０及びクライアント顔画像フレームＳ１１１の表示サイズが、表示領域内に収まる程度に通常時よりも縮小して表示する。これにより、コミュニケーションプログラムは、アプリケーションウィンドウの表示領域を最大限有効に利用しつつ、全ての表示要素を一貫したインターフェース・デザインに従って表示することができる。
【０４０３】
また、コミュニケーションプログラムは、ユーザから所定の指示操作が行われることによってもアプリケーションウィンドウの表示サイズを変更することが可能とされている。具体的には、例えば、アプリケーションウィンドウの最上部に表示された操作アイコンＳ１１３を選択操作したり、或いは、アプリケーションウィンドウの四隅をマウスでドラッグ操作することなどによって、表示サイズを適宜変更することが可能とされている。
【０４０４】
このように、ユーザからの要求によってアプリケーションウィンドウの表示サイズが変更されると、コミュニケーションプログラムは、ユーザ顔画像フレームＳ１１０及びクライアント顔画像フレームＳ１１１、或いは上述した各種の機能選択ボタンなどの表示要素の表示位置を適宜制御することによって、アプリケーションウィンドウ内に全ての表示要素が収まるように調整を図る処理を行う。
【０４０５】
また、コミュニケーションプログラムにおいては、例えば、基本表示モードから画像音声設定モード、チャットログモード、Ｗｅｂブラウズモードなどに移行する場合には、ユーザ顔画像フレームＳ１１０及びクライアント顔画像フレームＳ１１１、或いは各種の機能選択ボタンなどが表示される領域（以下、メイン表示領域と称する。）を縮小表示するとともに、このようにして縮小表示することにより生じた空き領域に、画像音声設定領域Ｓ１８０、チャットログ領域Ｓ２００、或いはＷｅｂ情報表示領域Ｓ２１０などを表示する。
【０４０６】
これにより、コミュニケーションプログラムにおいては、各種の機能モジュールによって提供される表示領域が必要とされる場合であっても、メイン表示領域を縮小することにより生じた空き領域にこれら機能モジュールによって提供される表示領域（以下、サブ表示領域と称する。）を表示することから、新たな表示領域を確保することなく、多くの情報を表示することができる。
【０４０７】
また、このようにして、メイン表示領域を縮小表示し、サブ表示領域が併せて表示された状態において、ユーザからの要求によりアプリケーションウィンドウ全体の表示サイズが変更された場合には、メイン表示領域の表示サイズは変更せずに、サブ表示領域の表示サイズのみを変更する。このようなサブ表示領域の表示サイズの変更処理は、例えばコアモジュール５１などのコミュニケーションプログラムを構成する基本的なモジュールによって行われることから、各機能モジュール側では表示領域の変更を検知して表示の書き換え処理などを行う必要なない。また、コミュニケーションプログラムにおいて、サブ表示領域を提供する機能モジュールの動作が終了した場合には、メイン表示領域が通常時の表示サイズに戻される。
【０４０８】
ここで、上述したようにして機能モジュールが起動又は終了される場合におけるコミュニケーションプログラムのウィンドウ表示処理について、図４８及び図４９に示すフローチャートを参照しながら説明する。
【０４０９】
図４８に示すステップＳ４２０において、コミュニケーションプログラムは、所定の機能モジュールを起動すべきことが要求されると、ステップＳ４２１において、他の機能モジュールによって確保されたサブ表示領域が存在しているか否かを判定する。この判定の結果、存在している場合にはステップＳ４２２に処理を進め、存在していない場合にはステップＳ４２３に処理を進める。
【０４１０】
ステップＳ４２２において、コミュニケーションプログラムは、現在存在しているサブ表示領域を最小化するなどして表示を停止する。このステップＳ４２２における処理の後に、コミュニケーションプログラムは、ステップＳ４２５に処理を進める。
【０４１１】
ステップＳ４２３において、コミュニケーションプログラムは、メイン表示領域を縮小表示する。次に、ステップＳ４２４において、コミュニケーションプログラムは、ユーザ顔画像フレームＳ１１０及びクライアント顔画像フレームＳ１１１、或いは各機能選択ボタンの表示位置を再配置する。このステップＳ４２４における処理の後に、コミュニケーションプログラムは、ステップＳ４２５に処理を進める。
【０４１２】
ステップＳ４２５において、コミュニケーションプログラムは、ステップＳ４２０において要求された機能モジュールを起動する処理を行う。次に、ステップＳ４２６において、コミュニケーションプログラムは、ステップＳ４２５において起動した機能モジュールから、この機能モジュールにおいて確保されるべきサブ表示領域に関する情報を取得する。
【０４１３】
次に、ステップＳ４２７において、コミュニケーションプログラムは、ステップＳ４２６において取得した情報に基づいて、メイン表示領域を縮小表示することにより生じた空き領域のサイズ及び位置に対応させて、サブ表示領域を表示するサイズ及び位置を設定する。次に、ステップＳ４２８において、コミュニケーションプログラムは、ステップＳ４２７において設定されたサイズ及び位置に準じて、サブ表示領域を表示する。
【０４１４】
一方、図４９に示すステップＳ４３０において、コミュニケーションプログラムは、所定の機能モジュールを終了すべきことが要求されると、ステップＳ４３１において、この機能モジュールに対応したサブ表示領域が表示された状態であるかを判定する。この判定の結果、サブ表示領域が最小化されるなどして表示が停止された状態である場合にはステップＳ４３２に処理を進め、サブ表示領域が表示された状態である場合にはステップＳ４３３に処理を進める。
【０４１５】
ステップＳ４３２において、コミュニケーションプログラムは、ステップＳ４３０において終了すべき要求がなされた機能モジュールを終了する処理を行う。これにより、機能モジュールを終了する処理を終了する。
【０４１６】
ステップＳ４３３において、コミュニケーションプログラムは、他の機能モジュールによって提供されるサブ表示領域が最小化されるなどして表示が停止された状態で存在しているか否かを判定する。この判定の結果、存在している場合にはステップＳ４３４に処理を進め、存在していない場合にはステップＳ４３５に処理を進める。
【０４１７】
ステップＳ４３４において、コミュニケーションプログラムは、表示が停止されているサブ表示領域を、終了すべき要求がなされた機能モジュールによって提供されるサブ表示領域に代えて表示を再開する。このステップＳ４３４における処理の後に、コミュニケーションプログラムは、ステップＳ４３２に処理を進める。
【０４１８】
ステップＳ４３５において、コミュニケーションプログラムは、縮小表示されているメイン表示領域の表示サイズを通常の表示サイズに戻す。次に、ステップＳ４３６において、コミュニケーションプログラムは、ユーザ顔画像フレームＳ１１０及びクライアント顔画像フレームＳ１１１、或いは各機能選択ボタンの表示位置を再配置する。このステップＳ４３６における処理の後に、コミュニケーションプログラムは、ステップＳ４３２に処理を進める。
【０４１９】
コミュニケーションプログラムは、以上のように各機能モジュールの起動及び終了処理を行うことによって、メイン表示領域を縮小表示するとともに、これにより生じた空き領域にサブ表示領域の表示を開始し、或いは、サブ表示領域の表示を終了して、メイン表示領域を通常の表示サイズに戻す処理を行う。
【０４２０】
（１４）階層型メニュー
【０４２１】
ところで、コミュニケーションプログラムにおいては、機能選択ボタンによって階層型メニューが構成されている。具体的には、例えば、基本表示モードにおいて図１３に示す基本表示ウィンドウ１１０内に表示された複数の機能選択ボタンＳ１１２のうちのいずれかを選択することによって、選択された機能選択ボタンＳ１１２に応じて、ツールモード、感情表現モード、或いはアクション表現モードなどに移行する。
【０４２２】
コミュニケーションプログラムは、ツールモード、感情表現モード、或いはアクション表現モードなどに移行すると、新たなメニューとして、それぞれ、複数の機能選択ボタンＳ１５０、複数の機能選択ボタンＳ１６０、複数の機能選択ボタンＳ１７０を表示し、これら機能選択ボタンがユーザによって選択可能な状態となる。また、各動作モードにおいて、機能選択ボタンＳ１５０のうちの「戻る」ボタンＳ１５０ｄ、機能選択ボタンＳ１６０のうちの「戻る」ボタンＳ１６０ｂ、或いは機能選択ボタンＳ１７０のうちの「戻る」ボタンＳ１７０ｂが選択されると、コミュニケーションプログラムは、再び基本表示モードに移行し、機能選択ボタンＳ１１２を表示する。
【０４２３】
このようにして、機能選択ボタンがユーザにより選択されることにより動作モードを移行し、階層型メニューにおける階層を移動するに際して、コミュニケーションプログラムは、この階層型メニューを構成する機能選択ボタンに対して、所定のアニメーション効果を付与する。
【０４２４】
このとき付与するアニメーション効果の例としては、例えば、機能選択ボタンの表示サイズ、表示位置、或いは表示角度などを経過時間に応じて変化させること、機能選択ボタンとして表示する画像の内容を経過時間に応じて変化させることなどを挙げることができる。また、このとき、例えば、ユーザによって機能選択ボタンが選択され、階層型メニューの階層を移動することを表現する音声を出力するとしてもよい。
【０４２５】
コミュニケーションプログラムにおいては、このように階層型メニューの階層を移動する際に、機能選択ボタンに対して所定のアニメーション効果を付与することによって、移動元の階層と移動先の階層とを所定の時間の間、ユーザに対して明示的に表示することができ、階層の把握を容易とすることができる。また、階層型メニューの操作時における表現を向上することができる。
【０４２６】
ここで、本例におけるコミュニケーションプログラムにおいて採用される上述のようなアニメーション効果の一例として、図５０を参照しながら説明する。
【０４２７】
コミュニケーションプログラムにおいて、基本表示ウィンドウ１１０内に表示される機能選択ボタンＳ１１２は、図５０（ａ）に示すように、ユーザ顔画像フレームＳ１１０を中心とする仮想円の円周上に所定の間隔で配置されている。また、この状態において、各機能選択ボタンＳ１１２の下部には、それぞれの機能選択ボタンＳ１１２を選択することによって提供される機能を示すテキスト（キャプション）が表示されている。
【０４２８】
この状態において、例えばツールボタンＳ１１２ｅがユーザにより選択されると、図５０（ｂ）に示すように、これら機能選択ボタンＳ１１２が仮想円の外方に向けて僅かに移動して表示される。このとき、例えば、表示サイズの拡大や、半透明化などの効果が付与されてもよい。また、このとき、ユーザにより選択されたツールボタンＳ１１２ｅの初期表示位置を中心として、次の階層に存在するメニュー要素、すなわち機能選択ボタンＳ１５０の表示が開始される。このとき、各機能選択ボタンＳ１５０は、最終的な表示サイズに対して例えば半分のサイズで表示される。そして、これら各機能選択ボタンＳ１５０は、それぞれ初期表示位置から最終的な表示位置に向けて、徐々に拡大表示されながら移動表示される。なお、図５０（ｂ）においては、各機能選択ボタンの移動方向を矢印にて示している。
【０４２９】
そして、機能選択ボタンＳ１１２は、最終的に消滅し、機能選択ボタンＳ１５０は、最終的に、図５０（ｃ）に示すように、ユーザ顔画像フレームＳ１１０を中心とする仮想円の円周上に所定の間隔で表示される。
【０４３０】
コミュニケーションプログラムにおいては、機能選択ボタンがユーザによって選択された際に、上述のようなアニメーション効果を付与して表示することによって、選択された機能選択ボタンの中に格納されていた次の階層の機能選択ボタン群が飛び出すような印象、或いは階層型メニューのメニュー構造の中に潜ってゆくような印象をユーザに対して与えることができる。
【０４３１】
なお、ユーザが前の階層のいずれの機能選択ボタンを選択したのかを記憶しておくことにより、例えば、「戻る」ボタンにより階層を逆に辿ってゆくことができる。このとき、例えば、上述したアニメーション効果を逆に再生する場合に相当するアニメーション効果を機能選択ボタンに対して付与するとしてもよい。これにより、上述とは逆に、選択された機能選択ボタンの中に、現在の階層の機能選択ボタン群が吸い込まれるような印象、或いは階層型メニューのメニュー構造の中から浮き上がるような印象をユーザに対して与えることができる。
【０４３２】
ここで、機能選択ボタンが選択された場合に、上述したようなアニメーション効果を付与する場合におけるコミュニケーションプログラムの処理について、図５１に示すフローチャートを参照しながら説明する。
【０４３３】
コミュニケーションプログラムは、図５１に示すステップＳ４４０において、ユーザによってマウスによりクリック操作されるなどして、表示された機能選択ボタンＳ１１２のうちのいずれかが選択されたことを検知すると、ステップＳ４４１において、選択された機能選択ボタンＳ１１２に対応した次の階層の機能選択ボタン群Ｓ１５０が存在するか否かを判定する。この判定の結果、存在しない場合には、アニメーション効果を付与する処理を終了する。また、次の階層の機能選択ボタン群Ｓ１５０が存在する場合には、ステップＳ４４２に処理を進める。なお、ここでは、機能選択ボタンＳ１１２ｅが選択されたものとする。
【０４３４】
ステップＳ４４２において、コミュニケーションプログラムは、ユーザにより選択された機能選択ボタンＳ１１２ｅの現在位置（例えば、表示画面上における絶対座標、又はアプリケーションウィンドウ内における相対座標など。）を取得して、所定の記憶領域に保存する。
【０４３５】
次に、ステップＳ４４３において、コミュニケーションプログラムは、次の階層の機能選択ボタン群Ｓ１１５に関する情報を取得する。この情報としては、例えば、この機能選択ボタン群Ｓ１５０に含まれる機能選択ボタンＳ１５０の数、或いは各機能選択ボタンＳ１５０として表示する画像データなどに関する情報である。
【０４３６】
次に、ステップＳ４４４において、コミュニケーションプログラムは、現在の階層の機能選択ボタンＳ１１２及び次の階層の機能選択ボタンＳ１５０の全てについて、それぞれ、最終的な表示位置を算出する。
【０４３７】
次に、ステップＳ４４５において、コミュニケーションプログラムは、次の階層の機能選択ボタンＳ１５０の表示サイズを、最終的な表示サイズの半分として設定する。
【０４３８】
次に、ステップＳ４４６において、コミュニケーションプログラムは、現在の階層の機能選択ボタンＳ１１２及び次の階層の機能選択ボタンＳ１５０の全てに対して選択操作を無効化する。これにより、階層の移動途中に、ユーザにより誤った機能選択ボタンが選択されてしまうことを防止することができる。
【０４３９】
次に、ステップＳ４４７において、コミュニケーションプログラムは、現在の階層の機能選択ボタンＳ１１２及び次の階層の機能選択ボタンＳ１５０の全てについて、各々の表示位置を決定する表示座標の値を、最終的な表示位置に向けた所定の移動量だけ増減する。
【０４４０】
次に、ステップＳ４４８において、コミュニケーションプログラムは、次の階層の機能選択ボタンＳ１５０の表示サイズとして設定された値を僅かに増加させる。これにより、機能選択ボタンＳ１５０は、僅かに拡大して表示されることとなる。
【０４４１】
次に、ステップＳ４４９において、コミュニケーションプログラムは、現在の階層の機能選択ボタンＳ１１２及び次の階層の機能選択ボタンＳ１５０の全てをアプリケーションウィンドウ内に表示する。このとき、現在の階層の機能選択ボタンＳ１１２及び次の階層の機能選択ボタンＳ１５０は、それぞれに設定された表示座標、及び表示サイズの値に応じて表示される。
【０４４２】
次に、ステップＳ４５０において、コミュニケーションプログラムは、現在の階層の機能選択ボタンＳ１１２及び次の階層の機能選択ボタンＳ１５０の全てが最終的な表示位置に到達したか否かを判定する。この判定の結果、全ての機能選択ボタンが最終的な表示位置に到達していない場合には、ステップＳ４４７に処理を戻し、このステップＳ４４７以降の一連の処理を繰り返し行う。また、全ての機能選択ボタンが最終的な表示位置に到達している場合には、ステップＳ４５１に処理を進める。
【０４４３】
ステップＳ４５１において、コミュニケーションプログラムは、移動元の階層に対応した機能選択ボタンＳ１１２の表示を中止してこれらをアプリケーションウィンドウ上から消去する。
【０４４４】
次に、ステップＳ４５２において、コミュニケーションプログラムは、移動先の階層に対応した機能選択ボタンＳ１５０に対する選択操作を有効化して、これらの機能選択ボタンＳ１５０を選択可能な状態とする。これにより、階層型メニューの階層間で移動する処理を終了する。
【０４４５】
コミュニケーションプログラムは、上述したような処理を行うことによって、階層型メニューのメニュー要素である機能選択ボタンに対してアニメーション効果を付与することができる。
【０４４６】
（１５）他の実施の形態
【０４４７】
なお、上述においては、本発明の実施の形態として、コミュニケーションシステム１を構成する各情報処理装置上で実行処理されるコミュニケーションプログラムに注目して説明したが、本発明は、このようなコミュニケーションプログラムが実行処理されることにより実現されるコミュニケーションシステム、上述したコミュニケーションプログラムにより実行される処理に相当する手続きが行われることにより実現されるコミュニケーション方法、或いは、上述したコミュニケーションプログラムにより実行される処理に相当する手続きが他のソフトウェア又はハードウェア的手法により実現される情報処理装置に対して、広く適用することができることは述べるまでもない。
【０４４８】
【発明の効果】
本発明では、各利用者に対応した複数の画像をアプリケーションウィンドウ内に配置するとともに、文字データを表示する際に、この文字データの送信元である利用者に対応した画像を縮小表示するとともに、縮小表示した画像の近傍位置に設定された文字データ表示領域内に文字データを表示する。このため、送受信される文字データを一覧表示する従来の手法を採用した場合と比較して、表示領域をより有効に利用することができ、文字データ（テキスト）と、この文字データの送信元である利用者（発言者）との対応関係を直感的に把握することが可能となる。
【０４４９】
したがって、本発明によれば、高い表現力を有し、利用者間で自然な対話を行うことが可能なコミュニケーションを実現することができる。
【図面の簡単な説明】
【図１】
本発明の実施の形態として示すコミュニケーションシステムの全体的な基本構成を示す概略図である。
【図２】
同コミュニケーションシステムに用いられるコンピュータ装置の構成を示す機能ブロック図である。
【図３】
同コンピュータ装置上で実行処理されるコミュニケーションプログラムのモジュール構造を示す模式図である。
【図４】
同コミュニケーションプログラムによりデータが送受信されることにより、当該コミュニケーションプログラムを構成するアプリケーションモジュールが起動される場合について説明する模式図である。
【図５】
同コミュニケーションプログラムにおいて用いられる接続設定情報のデータ構造を示す模式図である。
【図６】
同コミュニケーションプログラムが実行されることによる全体的な処理の流れについて示すフローチャートである。
【図７】
同コミュニケーションプログラムで用いられる機能モジュールリストのデータ構造を示す模式図である。
【図８】
同コミュニケーションプログラムが実行されることによる全体的な処理の流れについて示すフローチャートである。
【図９】
同コミュニケーションプログラムにおいて起動されるサーバモジュールによる処理の流れについて示すフローチャートである。
【図１０】
同コミュニケーションプログラムにおいて起動されるサーバモジュールによる処理の流れについて示すフローチャートである。
【図１１】
同コミュニケーションプログラムにおいて起動されるサーバモジュールで用いられるユーザリストのデータ構造を示す模式図である。
【図１２】
同コミュニケーションプログラムが実行されることによりコンピュータ装置の画面上に表示されるユーザ情報設定ウィンドウの一例を示す模式図である。
【図１３】
同コミュニケーションプログラムが実行されることによりコンピュータ装置の画面上に表示される基本表示ウィンドウの一例を示す模式図である。
【図１４】
同コミュニケーションプログラムが実行されることによりコンピュータ装置の画面上に表示される縮小表示ウィンドウの一例を示す模式図である。
【図１５】
同コミュニケーションプログラムが実行されることによりコンピュータ装置の画面上に表示される通知ウィンドウの一例を示す模式図である。
【図１６】
同コミュニケーションプログラムが実行されることによりコンピュータ装置の画面上に表示される電子メールウィンドウの一例を示す模式図である。
【図１７】
同コミュニケーションプログラムにクライアントが接続され、基本表示ウィンドウ内にクライアントに対応した画像が表示された状態の一例を示す模式図である。
【図１８】
同コミュニケーションプログラムにおいて、ユーザ側から文字データ（テキスト）を送信する場合における基本表示ウィンドウの一例を示す模式図である。
【図１９】
同コミュニケーションプログラムにおいて、クライアント側から送信された文字データ（テキスト）が表示された場合における基本表示ウィンドウの一例を示す模式図である。
【図２０】
同コミュニケーションプログラムが実行されることによりコンピュータ装置の画面上に表示されるツール表示ウィンドウの一例を示す模式図である。
【図２１】
同コミュニケーションプログラムが実行されることによりコンピュータ装置の画面上に表示される感情表現ウィンドウの一例を示す模式図である。
【図２２】
同コミュニケーションプログラムが実行されることによりコンピュータ装置の画面上に表示されるアクション表現ウィンドウの一例を示す模式図である。
【図２３】
同コミュニケーションプログラムが実行されることによりコンピュータ装置の画面上に表示される画像音声設定ウィンドウの一例を示す模式図である。
【図２４】
同コミュニケーションプログラムが実行されることによりコンピュータ装置の画面上に表示されるチャットログウィンドウの一例を示す模式図である。
【図２５】
同コミュニケーションプログラムが実行されることによりコンピュータ装置の画面上に表示されるＷｅｂ情報表示ウィンドウの一例を示す模式図である。
【図２６】
同コミュニケーションプログラムが実行されることによりコンピュータ装置の画面上に表示される電子メールウィンドウにおいて、クライアント側から送信されたＵＲＬが表示された状態を示す模式図である。
【図２７】
同コミュニケーションプログラムにおいて動画像データがユーザの顔画像として設定された場合の処理の一例について示すフローチャートである。
【図２８】
同コミュニケーションプログラムにおいて静止画像ファイルがユーザの顔画像として設定された場合の処理の一例について示すフローチャートである。
【図２９】
同コミュニケーションプログラムで用いられるモジュール情報に含まれる起動情報のデータ構造の一例について示す模式図である。
【図３０】
同コミュニケーションプログラムで用いられるモジュール情報を参照することにより、機能モジュールＡが起動されることを説明する模式図である。
【図３１】
同コミュニケーションプログラムで用いられるモジュール情報を参照することにより、機能モジュールＢが起動されないことを説明する模式図である。
【図３２】
同コミュニケーションプログラムにおいて、機能モジュールＣが起動されることを説明する模式図である。
【図３３】
同コミュニケーションプログラムの起動時に実行される処理の一例について示すフローチャートである。
【図３４】
同コミュニケーションプログラムにおいて、新たな機能モジュールが追加され、新たな機能選択ボタンが追加された場合におけるツール表示ウィンドウの一例について示す模式図である。
【図３５】
同コミュニケーションプログラムにおいて、クライアント側に対してＵＲＬを送信する場合の処理の一例について示すフローチャートである。
【図３６】
同コミュニケーションプログラムにおいて、クライアント側から送信されたＵＲＬを受信した場合の処理の一例について示すフローチャートである。
【図３７】
同コミュニケーションプログラムにおいて用いられるおすすめＵＲＬリストのデータ構造の一例について示す模式図である。
【図３８】
同コミュニケーションプログラムにおいて、顔画像フレームに重ねて表示する連続画像の一例について示す模式図である。
【図３９】
同コミュニケーションプログラムにおいて用いられるキーフレームデータのデータ構造の一例について示す模式図である。
【図４０】
同コミュニケーションプログラムにおいて、クライアントに対してアクション表現を行う場合における処理の全体を示すフローチャートである。
【図４１】
同コミュニケーションプログラムにおいて、クライアントに対してアクション表現を行う場合に、表現対象を選択する際の処理の一例について示すフローチャートである。
【図４２】
同コミュニケーションプログラムにおいて、ユーザにより選択されたアクション表現に対応したアニメーション効果を付与する際の処理の一例について示すフローチャートである。
【図４３】
同コミュニケーションプログラムにおいて、ユーザにより選択されたアクション表現に対応したアニメーション効果を付与する際の詳細な処理の一例について示すフローチャートである。
【図４４】
同コミュニケーションプログラムにおいて、クライアント側から送信されたテキストを表示するテキスト表示領域の表示方法について説明する模式図である。
【図４５】
同コミュニケーションプログラムにおいて、クライアント側から送信されたテキストの文字列長に応じて、テキストの表示時間を制御する場合について説明するための模式図である。
【図４６】
同コミュニケーションプログラムにおいて、クライアント側から送信されたテキストの文字列長に応じて、テキストの表示時間を制御する場合における処理の一例について示すフローチャートである。
【図４７】
同コミュニケーションプログラムにおいて表示されるアプリケーションウィンドウの形状の別の例について示す模式図である。
【図４８】
同コミュニケーションプログラムにおいて、アプリケーションウィンドウを表示する際の処理の一例について示すフローチャートである。
【図４９】
同コミュニケーションプログラムにおいて、アプリケーションウィンドウを表示する際の処理の一例について示すフローチャートである。
【図５０】
同コミュニケーションプログラムにおいて、階層型メニューを構成する機能選択ボタンの表示を切り替える場合に付与されるアニメーション効果の一例について示す模式図である。
【図５１】
同コミュニケーションプログラムにおいて、機能選択ボタンにアニメーション効果を付与する場合における処理の一例について示すフローチャートである。
【符号の説明】
１  コミュニケーションシステム、１０  コンピュータ装置、１１  インターネット、２０  ＣＰＵ、２１  ＲＡＭ、５０  インターフェースモジュール、５１  コアモジュール、５２  基本モジュール、５３  アプリケーションモジュール、５４  ＧＵＩモジュール、１１０  基本表示ウィンドウ、Ｓ１１０  ユーザ顔画像フレーム、Ｓ１１１  クライアント顔画像フレーム、Ｓ１１２  機能選択ボタン、Ｓ１１３  操作アイコン、Ｓ１１４  ステイタス表示領域、Ｓ１１５  テキスト入力領域、Ｓ１１６  テキスト表示領域、１２０  縮小表示ウィンドウ、１５０  ツール表示ウィンドウ、Ｓ１５０  機能選択ボタン、１６０  感情表現ウィンドウ、Ｓ１６０  機能選択ボタン、１７０  アクション表現ウィンドウ、Ｓ１７０機能選択ボタン、１８０  画像音声設定ウィンドウ、Ｓ１８０  画像音声設定領域、Ｓ１８１  画像リスト領域、Ｓ１８５  カメラ画像表示領域、２００  チャットログウィンドウ、Ｓ２００  チャットログ領域、Ｓ２０１  チャットログ表示領域、２１０  Ｗｅｂ情報表示ウィンドウ、Ｓ２１０  Ｗｅｂブラウズ領域、Ｓ２１１  Ｗｅｂ情報表示領域、Ｓ２１２ｇ  アドレス送信アイコン、Ｓ２１４  おすすめＵＲＬ表示領域