(57)【特許請求の範囲】
【請求項１】
複数の情報処理装置と複数のマッチングサーバを備えるサーバ装置とがネットワークを介してメッセージデータを送受信可能に接続されたチャットシステムであって、
前記情報処理装置は、
一つのチャットルームを特定可能な参加要求情報を、前記チャットシステムへのユーザからの参加要求に応じて生成し、前記一つのチャットルームを特定可能な退室要求情報を、ユーザからの退室要求に応じて生成する要求情報生成手段と、
チャットルームが前記複数のマッチングサーバに均等に分散して振り分けられるようにサーバ選択基礎情報を前記複数のマッチングサーバの一つに対応付ける所定の対応関係に従って、サーバ選択基礎情報に対応する一つのマッチングサーバを前記複数のマッチングサーバから選択するサーバ選択手段と、
前記参加要求情報の生成に応じて当該参加要求情報を前記選択された一つのマッチングサーバへ送信し、前記退室要求情報の生成に応じて当該退室要求情報を前記選択された一つのマッチングサーバへ送信する端末側送受信手段と、を備え、
前記チャットシステムへのユーザからの参加要求は、新規なチャットルームの開設を要求する開設要求と、既存のチャットルームへの入室を要求する入室要求とを含み、
前記要求情報生成手段は、前記開設要求に応じた前記参加要求情報として設定要求情報を、前記入室要求に応じた前記参加要求情報として入室要求情報をそれぞれ生成し、
前記所定の対応関係は、前記複数の情報処理装置において同一であり、
前記マッチングサーバは、
前記参加要求情報と前記退室要求情報とをそれぞれ受信するサーバ側送受信手段と、
情報処理装置とチャットルームとを相互に関連付けて登録可能なサーバ側記憶手段と、
前記サーバ側送受信手段が前記設定要求情報を受信したとき、前記設定要求情報を送信した情報処理装置と新規なチャットルームとを相互に関連付けてサーバ側記憶手段に登録し、また、前記サーバ側送受信手段が前記入室要求情報を受信したとき、当該受信した入室要求情報によって特定される既存のチャットルームが前記サーバ側記憶手段に登録されているか否かを判定し、当該既存のチャットルームが前記サーバ側記憶手段に登録されていると判定した場合、前記入室要求情報を送信した情報処理装置を前記既存のチャットルームに関連付けて前記サーバ側記憶手段に登録する登録制御手段と、
前記一つのチャットルームに対して関連付けて登録された複数の情報処理装置間において、メッセージデータの送受信によるチャットの実行を制御するチャット制御手段と、
前記端末側送受信手段が前記退室要求情報を受信したとき、当該退室要求情報によって特定される前記一つのチャットルームに関連付けられた前記情報処理装置の登録を抹消し、前記一つのチャットルームに関連付けられた全ての情報処理装置の登録を抹消したとき、当該一つのチャットルームの登録を抹消する登録抹消手段と、を備え、
前記一つのチャットルームから退出する情報処理装置は、前記一つのチャットルームを開設したマッチングサーバが前記所定の対応関係に従って対応付けられるサーバ選択基礎情報を、前記一つのチャットルームから退出した後も当該一つのチャットルームに関連付けて記憶し、
前記一つのチャットルームから退出した情報処理装置において、前記要求情報生成手段は、前記一つのチャットルームへの再入室を要求する入室要求に応じて入室要求情報を生成し、前記サーバ選択手段は、前記一つのチャットルームに関連付けて記憶されたサーバ選択基礎情報に対応するマッチングサーバを前記所定の対応関係に従って選択し、前記端末側送受信手段は、前記生成された入室要求情報を前記選択されたマッチングサーバへ送信する
ことを特徴とするチャットシステム。
【請求項２】
請求項１に記載のチャットシステムであって、
前記登録制御手段は、前記サーバ側送受信手段が前記入室要求情報を受信し、前記受信した入室要求情報によって特定される前記既存のチャットルームが前記サーバ側記憶手段に登録されているか否かを判定し、前記既存のチャットルームが前記サーバ側記憶手段に登録されていない抹消されたチャットルームであると判定した場合は、前記抹消されたチャットルームを、前記入室要求情報を送信した情報処理装置と相互に関連付けて前記サーバ側記憶手段に再登録する
ことを特徴とするチャットシステム。
【請求項３】
請求項２に記載のチャットシステムであって、
前記既存のチャットルームが前記抹消されたチャットルームであると前記登録制御手段が判定した場合、前記サーバ側送受信手段は、前記入室要求情報を送信した情報処理装置へ入室失敗情報を送信し、
前記入室失敗情報を受信した情報処理装置において、前記要求情報生成手段は、前記抹消されたチャットルームの開設を要求する設定要求情報を生成し、前記端末側送受信手段は、前記入室失敗情報を送信したマッチングサーバへ前記生成された設定要求情報を送信し、
前記抹消されたチャットルームの開設を要求する設定要求情報を受信したマッチングサーバの前記登録制御手段は、前記抹消されたチャットルームを、前記入室要求情報を送信した情報処理装置と相互に関連付けて前記サーバ側記憶手段に再登録する
ことを特徴とするチャットシステム。
【請求項４】
請求項１〜請求項３の何れか１項に記載のチャットシステムであって、
前記所定の対応関係は、所定の演算式であり、
前記所定の演算式は、前記複数の情報処理装置において同一である
ことを特徴とするチャットシステム。
【請求項５】
請求項１〜請求項４の何れか一項に記載のチャットシステムであって、
前記情報処理装置は、前記サーバ選択基礎情報を生成する基礎情報生成手段を備え、
前記情報処理装置において、前記要求情報生成手段による前記設定要求情報の生成に応じて、前記サーバ選択手段は、前記基礎情報生成手段が生成したサーバ選択基礎情報に対応するマッチングサーバを前記所定の対応関係に従って選択し、前記端末側送受信手段は、前記生成された設定要求情報を前記選択されたマッチングサーバへ送信し、前記要求情報生成手段は、他の情報処理装置のユーザを前記一つのチャットルームに招待する招待情報をユーザからの要求に応じて生成し、前記招待情報は、前記生成されたサーバ基礎情報を含み、前記端末側送受信手段は、前記招待情報の生成に応じて当該招待情報を前記他の情報処理装置へ送信する
ことを特徴とするチャットシステム。
【請求項６】
複数の情報処理装置と複数のマッチングサーバを備えるサーバ装置とがネットワークを介してメッセージデータを送受信可能に接続されたチャットシステムの前記情報処理装置のコンピュータを、
一つのチャットルームを特定可能な参加要求情報及び退室要求情報を、前記チャットシステムへのユーザからの参加要求及び退室要求に応じてそれぞれ生成する要求情報生成手段と、
チャットルームが前記複数のマッチングサーバに均等に分散して振り分けられるようにサーバ選択基礎情報を前記複数のマッチングサーバの一つに対応付ける所定の対応関係に従って、サーバ選択基礎情報に対応する一つのマッチングサーバを前記複数のマッチングサーバから選択するサーバ選択手段と、
前記生成された参加要求情報又は前記退室要求情報を、前記選択された一つのマッチングサーバへ送信する端末側送受信手段と、
サーバ選択基礎情報を記憶可能なサーバ選択基礎情報記憶手段と、して機能させ、
前記チャットシステムへのユーザからの参加要求は、新規なチャットルームの開設を要求する開設要求と、既存のチャットルームへの入室を要求する入室要求とを含み、
前記要求情報生成手段は、前記開設要求に応じた前記参加要求情報として設定要求情報を、前記入室要求に応じた前記参加要求情報として入室要求情報をそれぞれ生成し、
前記所定の対応関係は、前記複数の情報処理装置において同一であり、
前記情報処理装置が一つのチャットルームから退出する場合、前記サーバ基礎情報記憶手段は、前記一つのチャットルームを開設したマッチングサーバが前記所定の対応関係に従って対応付けられるサーバ選択基礎情報を、前記一つのチャットルームから退出した後も当該一つのチャットルームに関連付けて記憶し、
前記情報処理装置が前記一つのチャットルームから退出した後において、前記要求情報生成手段は、前記一つのチャットルームへの再入室を要求する入室要求に応じて入室要求情報を生成し、前記サーバ選択手段は、前記一つのチャットルームに関連付けて記憶されたサーバ選択基礎情報に対応するマッチングサーバを前記所定の対応関係に従って選択し、前記端末側送受信手段は、前記生成された入室要求情報を前記選択されたマッチングサーバへ送信する
ことを特徴とするチャット実行プログラム。
【請求項７】
請求項６に記載のチャット実行プログラムであって、
前記情報処理装置のコンピュータを、サーバ選択基礎情報を生成する基礎情報生成手段としてさらに機能させ、
前記要求情報生成手段による前記設定要求情報の生成に応じて、前記サーバ選択手段は、前記基礎情報生成手段が生成したサーバ選択基礎情報に対応するマッチングサーバを前記所定の対応関係に従って選択し、前記端末側送受信手段は、前記生成された設定要求情報を前記選択されたマッチングサーバへ送信し、前記要求情報生成手段は、他の情報処理装置のユーザを前記一つのチャットルームに招待する招待情報をユーザからの要求に応じて生成し、前記招待情報は、前記生成されたサーバ基礎情報を含み、前記端末側送受信手段は、前記招待情報の生成に応じて当該招待情報を前記他の情報処理装置へ送信する
ことを特徴とするチャット実行プログラム。
【請求項８】
請求項６又は請求項７に記載のチャット実行プログラムであって、
前記所定の対応関係は、所定の演算式であり、
前記所定の演算式は、前記複数の情報処理装置において同一である
ことを特徴とするチャット実行プログラム。
【請求項９】
請求項６〜請求項８の何れか一項に記載のチャット実行プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１０】
複数の情報処理装置とサーバ装置とがネットワークを介してメッセージデータを送受信可能に接続されたチャットシステムにおけるチャット方法であって、
前記サーバ装置は、複数のマッチングサーバを備え、
チャットルームが前記複数のマッチングサーバに均等に分散して振り分けられるようにサーバ選択基礎情報を前記複数のマッチングサーバの一つに対応付ける所定の対応関係に従って、前記情報処理装置がサーバ選択基礎情報に対応する一つのマッチングサーバを前記複数のマッチングサーバから選択し、
前記所定の対応関係は、前記複数の情報処理装置において同一であり、
前記情報処理装置が、一つのチャットルームを特定可能な参加要求情報を、前記チャットシステムへのユーザからの参加要求に応じて生成し、生成した参加要求情報を前記選択したマッチングサーバへ送信し、
前記チャットシステムへのユーザからの参加要求は、新規なチャットルームの開設を要求する開設要求と、既存のチャットルームへの入室を要求する入室要求とを含み、
前記情報処理装置は、前記開設要求に応じた前記参加要求情報として設定要求情報を、前記入室要求に応じた前記参加要求情報として入室要求情報をそれぞれ生成し、
前記マッチングサーバが、前記参加要求情報を受信し、
前記受信した参加要求情報が前記開設要求情報であるとき、前記マッチングサーバが、前記設定要求情報を送信した情報処理装置と新規なチャットルームとを相互に関連付けてサーバ側記憶手段に登録し、
前記受信した参加要求情報が前記入室要求情報であるとき、当該受信した入室要求情報によって特定される既存のチャットルームが前記サーバ側記憶手段に登録されているか否かを判定し、当該既存のチャットルームが前記サーバ側記憶手段に登録されていると判定した場合、前記マッチングサーバが、前記入室要求情報を送信した情報処理装置を前記既存のチャットルームに関連付けて前記サーバ側記憶手段に登録し、
前記一つのチャットルームに対して関連付けて登録された複数の情報処理装置間において、メッセージデータの送受信によるチャットの実行を前記マッチングサーバが制御し、
前記一つのチャットルームを特定可能な退室要求情報を、ユーザからの退室要求に応じて前記情報処理装置が生成して送信し、
前記マッチングサーバが、前記退室要求情報を受信し、
前記マッチングサーバが、前記受信した退室要求情報によって特定される前記一つのチャットルームに関連付けられた前記情報処理装置の登録を抹消し、前記一つのチャットルームに関連付けられた全ての情報処理装置の登録を抹消したとき、当該一つのチャットルームの登録を抹消し、
前記一つのチャットルームから退出する情報処理装置は、前記一つのチャットルームを開設したマッチングサーバが前記所定の対応関係に従って対応付けられるサーバ選択基礎情報を、前記一つのチャットルームから退出した後も当該一つのチャットルームに関連付けて記憶し、
前記一つのチャットルームから退出した情報処理装置は、前記一つのチャットルームへの再入室を要求する入室要求に応じて入室要求情報を生成し、前記一つのチャットルームに関連付けて記憶されたサーバ選択基礎情報に対応するマッチングサーバを前記所定の対応関係に従って選択し、前記生成された入室要求情報を前記選択されたマッチングサーバへ送信する
ことを特徴とするチャット方法。
【請求項１１】
請求項１〜請求項５の何れか一項に記載のチャットシステムの前記情報処理装置であって、
前記チャットシステムにおいて当該情報処理装置が参加可能なチャットルームを特定するルーム特定情報と、このルーム特定情報に関連付けられたルーム属性情報とを記憶する記憶手段と、
前記ルーム特定情報と前記ルーム属性情報とが関連付けられていることが視認可能な態様で、前記ルーム特定情報に対応するルーム対応画像と前記ルーム属性情報とを表示手段に表示する表示制御手段と、を備えた
ことを特徴とする情報処理装置。
【請求項１２】
請求項１１に記載の情報処理装置であって、
前記サーバ装置のチャットルームへの参加によって前記情報処理装置が前記サーバ装置から受信するチャット履歴情報を、その受信日時と前記チャットルームを特定するルーム特定情報とに関連付けて前記記憶手段に記憶する記憶制御手段を備え、
前記表示制御手段は、前記ルーム特定情報と前記チャット履歴情報とが関連付けられていることが視認可能な態様で、前記ルーム特定情報に対応するルーム対応画像と前記チャット履歴情報とを表示手段に表示する
ことを特徴とする情報処理装置。
【請求項１３】
請求項１１又は請求項１２に記載の情報処理装置であって、
前記ルーム属性情報は、前記チャットルームに参加したことがあるか否かを示す情報である
ことを特徴とする情報処理装置。
【請求項１４】
請求項１１〜請求項１３の何れか１項に記載の情報処理装置であって、
前記ルーム属性情報は、前記チャットルームに参加中か否かを示す情報である
ことを特徴とする情報処理装置。
【請求項１５】
請求項１１〜請求項１４の何れか１項に記載の情報処理装置であって、
前記ルーム対応画像の一つを特定する操作入力に応じて、当該ルーム対応画像に対応するチャットルームへ参加するための処理を実行する参加処理実行手段を備えた
ことを特徴とする情報処理装置。
【請求項１６】
請求項１〜請求項５の何れか一項に記載のチャットシステムの前記情報処理装置であって、
記憶手段と、
前記サーバ装置のチャットルームへの参加によって前記情報処理装置が前記サーバ装置から受信するチャット履歴情報を、その受信日時と前記チャットルームを特定するルーム特定情報とに関連付けて前記記憶手段に記憶する記憶制御手段と、
前記チャット履歴情報を時系列に並べた画像を、前記チャットルームのチャット画面に含めて表示手段に表示する表示制御手段と、を備えた
ことを特徴とする情報処理装置。
【請求項１７】
請求項１６に記載の情報処理装置であって、
前記記憶手段は、前記ルーム特定情報に関連付けられたルーム属性情報を記憶し、
前記表示制御手段は、前記チャットルームのルーム特定情報に関連付けられたルーム属性情報を、当該チャットルームのチャット画面に含めて表示する
ことを特徴とする情報処理装置。
【請求項１８】
請求項１〜請求項５の何れか一項に記載のチャットシステムの前記情報処理装置が実行する画像表示方法であって、
チャットシステムにおいて当該情報処理装置が参加可能なチャットルームを特定するルーム特定情報と、このルーム特定情報に関連付けられたルーム属性情報とを、記憶手段が記憶し、
前記ルーム特定情報と前記ルーム属性情報とが関連付けられていることが視認可能な態様で、前記ルーム特定情報に対応するルーム対応画像と前記ルーム属性情報とを、表示制御手段が表示手段に表示する
ことを特徴とする画像表示方法。
【請求項１９】
請求項１〜請求項５の何れか一項に記載のチャットシステムの前記情報処理装置が実行する画像表示方法であって、
前記サーバ装置のチャットルームへの参加によって前記情報処理装置が前記サーバ装置から受信するチャット履歴情報を、その受信日時と前記チャットルームを特定するルーム特定情報とに関連付けて、記憶制御手段が記憶手段に記憶し、
前記チャット履歴情報を時系列に並べた画像を、前記チャットルームのチャット画面に含めて、表示制御手段が表示手段に表示する
ことを特徴とする画像表示方法。
【請求項２０】
請求項１〜請求項５の何れか一項に記載のチャットシステムの前記情報処理装置のコンピュータを、
前記チャットシステムにおいて当該情報処理装置が参加可能なチャットルームを特定するルーム特定情報と、このルーム特定情報に関連付けられたルーム属性情報とを記憶する記憶手段と、
前記ルーム特定情報と前記ルーム属性情報とが関連付けられていることが視認可能な態様で、前記ルーム特定情報に対応するルーム対応画像と前記ルーム属性情報とを表示手段に表示する表示制御手段と、して機能させる
ことを特徴とする画像処理プログラム。
【請求項２１】
請求項１〜請求項５の何れか一項に記載のチャットシステムの前記情報処理装置のコンピュータを、
前記サーバ装置のチャットルームへの参加によって前記情報処理装置が前記サーバ装置から受信するチャット履歴情報を、その受信日時と前記チャットルームを特定するルーム特定情報とに関連付けて記憶手段に記憶する記憶制御手段と、
前記チャット履歴情報を時系列に並べた画像を、前記チャットルームのチャット画面に含めて表示手段に表示する表示制御手段と、して機能させる
ことを特徴とする画像処理プログラム。
【請求項２２】
請求項２０又は請求項２１に記載の画像処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項２３】
請求項１〜請求項５の何れか一項に記載のチャットシステムであって、
前記情報処理装置は、ゲーム処理を実行するゲーム実行手段を有し、
前記サーバ側送受信手段は、前記一つのチャットルームに対して関連付けて登録された情報処理装置のユーザを特定するチャット参加者情報を送信し、
前記端末側送受信手段は、前記チャット参加者情報を受信し、
前記ゲーム実行手段は、前記端末側送受信手段が受信した前記チャット参加者情報を取得する
ことを特徴とするチャットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、チャットシステム、サーバ装置、チャット方法、チャット実行プログラム、チャット実行プログラムが記憶された記憶媒体、情報処理装置、画像表示方法、画像処理プログラム、画像処理プログラムが記憶された記憶媒体に関する。
【背景技術】
【０００２】
一般的なテキストチャットシステムでは、クライアント端末が利用するチャット文章等は、チャットログデータとしてサーバのデータベースに記憶され管理される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１７８０１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、クライアント端末が利用するチャット文章等をサーバのデータベースに記憶して管理する構成では、ユーザが長期間継続して全く参加しないインアクティブなチャットルームが累積的に増加し易く、データベースの残容量を圧迫してしまう可能性がある。
【０００５】
また、上記一般的なテキストチャットシステムでは、クライアント端末が利用するチャットルームやチャットログデータがサーバによって管理されるため、クライアント端末は、自己が参加可能なチャットルームを一元的に管理することができない。
【０００６】
本発明は、サーバ装置の記憶容量を効率的に利用可能なチャットシステムの提供を第１の目的とする。
【０００７】
また、本発明は、自己が参加可能なチャットルームをクライアント端末装置側で一元的に管理することが可能なチャットシステムの提供を第２の目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の態様は、複数の情報処理装置とサーバ装置とがネットワークを介してメッセージデータを送受信可能に接続されたチャットシステムである。
【０００９】
情報処理装置は、要求情報生成手段と端末側送受信手段とを備える。
【００１０】
要求情報生成手段は、一つのチャットルームを特定可能な参加要求情報を、チャットシステムへのユーザからの参加要求に応じて生成し、一つのチャットルームを特定可能な退室要求情報を、ユーザからの退室要求に応じて生成する。端末側送受信手段は、参加要求情報の生成に応じて参加要求情報を送信し、退室要求情報の生成に応じて退室要求情報を送信する。
【００１１】
サーバ装置は、サーバ側受信手段とサーバ側記憶手段と登録制御手段とチャット制御手段と登録抹消手段とを備える。
【００１２】
サーバ側送受手段は、参加要求情報と退室要求情報とをそれぞれ受信する。サーバ側記憶手段には、情報処理装置とチャットルームとを相互に関連付けて登録可能である。
【００１３】
登録制御手段は、受信した参加要求情報によって特定される一つのチャットルームがサーバ側記憶手段に登録されているとき、情報処理装置をチャットルームに関連付けてサーバ側記憶手段に登録し、受信した参加要求情報によって特定される一つのチャットルームがサーバ側記憶手段に登録されていないとき、情報処理装置とチャットルームとを相互に関連付けてサーバ側記憶手段に登録する。
【００１４】
チャット制御手段は、一つのチャットルームに対して関連付けて登録された複数の情報処理装置間において、メッセージデータの送受信によるチャットの実行を制御する。
【００１５】
登録抹消手段は、端末側送受信手段が退室要求情報を受信したとき、退室要求情報によって特定される一つのチャットルームに関連付けられた情報処理装置の登録を抹消し、登録されている一つのチャットルームに対して情報処理装置が全く登録されていないとき、当該一つのチャットルームの登録を抹消する。
【００１６】
本発明の第２の態様は、情報処理装置とサーバ装置とがネットワークを介してメッセージデータを送受信可能に接続されたチャットシステムの情報処理装置であり、記憶手段と表示制御手段とを備える。
【００１７】
記憶手段には、チャットシステムにおいて情報処理装置が参加可能なチャットルームを特定するルーム特定情報と、このルーム特定情報に関連付けられたルーム属性情報とが記憶される。
【００１８】
表示制御手段は、ルーム特定情報とルーム属性情報とが関連付けられていることが視認可能な態様で、ルーム特定情報に対応するルーム対応画像とルーム属性情報とを表示手段に表示する。
【発明の効果】
【００１９】
本発明の第１の態様によれば、インアクティブな状態のチャットルームの存在によってサーバ側記憶手段の残容量が不必要に圧迫されてしまうことがないので、サーバ装置の記憶容量を最小限に抑えることができる。
【００２０】
また、本発明の第２の態様によれば、自己が参加可能なチャットルームを情報処理装置側で一元的に管理することができる。
【図面の簡単な説明】
【００２１】
【図１】第１実施形態のチャットシステムの概要を示す図である。
【図２】クライアント端末装置の構成を機能的に示すブロック図である。
【図３】クライアント端末装置の構成の一例を示すブロック図である。
【図４】マッチングサーバの構成を機能的に示すブロック図である。
【図５】マッチングサーバの構成の一例を示すブロック図である。
【図６】第１実施形態のチャットプログラムを示すフローチャートである。
【図７】第１実施形態のルーム名入力画面を例示する図である。
【図８】第１実施形態の招待者選択画面を例示する図である。
【図９】第１実施形態のチャットプログラムを示すフローチャートである。
【図１０】第１実施形態のルーム選択画面を例示する図である。
【図１１】第１実施形態のチャットプログラムを示すフローチャートである。
【図１２】第１実施形態のチャット画面を例示する図である。
【図１３】第１実施形態のチャット情報報知画面を例示する図である。
【図１４】第２実施形態のチャット選択画面を例示する図である。
【図１５】第２実施形態のルーム選択画面を例示する図である。
【図１６】第２実施形態のチャット画面を例示する図である。
【図１７】変形例のクライアント端末装置の構成を機能的に示すブロック図である。
【発明を実施するための形態】
【００２２】
［チャットシステムの構成］
【００２３】
図１は、第１実施形態に係るチャットシステムの概要を示す模式図である。チャットシステムＳＹＭは、複数のクライアント端末装置（情報処理装置）１Ａ，１Ｂと、サーバ装置２とを備える。サーバ装置２は、複数のマッチングサーバ３Ａ，３Ｂ，３Ｃと、メッセージサーバ４とを含む。各クライアント端末装置１と各マッチングサーバ３とメッセージサーバ４とは、インターネット３０に接続され、インターネット３０を介してデータ通信を行う。以下の説明において、これらのクライアント端末装置１Ａ，１Ｂの各ユーザを、それぞれユーザＡ，Ｂと称する。クライアント端末装置１Ａ，１Ｂについて、区別して記載する必要がない場合には、単にクライアント端末装置１と記載し、各クライアント端末装置やその各構成要素について区別して記載する必要がある場合には、各々符号の後ろにＡ，Ｂを付記する。同様に、マッチングサーバ３Ａ，３Ｂ，３Ｃについても、区別して記載する必要がない場合には、単にマッチングサーバ３と記載し、各マッチングサーバやその各構成要素について区別して記載する必要がある場合には、各々符号の後ろにＡ，Ｂ，Ｃを付記する。クライアント端末装置１及びマッチングサーバ３の数は例示であり、上記に限定されるものではない。マッチングサーバ３とメッセージサーバ４とは、一つのサーバ装置２に含まれている必要はなく、個別に設けられていてもよい。
【００２４】
クライアント端末装置１は、一つのチャットルームを特定可能な参加要求情報を、チャットシステムＳＹＭへのユーザからの参加要求に応じて生成する。また、チャットルームを特定可能な退室要求情報を、ユーザからの退室要求に応じて生成する。クライアント端末装置１は、参加要求情報の生成に応じて参加要求情報を送信し、退室要求情報の生成に応じて退室要求情報を送信する。
【００２５】
チャットシステムＳＹＭへのユーザからの参加要求は、チャットルームの開設要求とチャットルームへの入室要求とを含む。この場合、クライアント端末装置１は、開設要求に応じた参加要求情報として設定要求情報を生成し、入室要求に応じた参加要求情報として入室要求情報を生成する。
【００２６】
マッチングサーバ３は、参加要求情報と退室要求情報とをそれぞれ受信する。マッチングサーバ３の記憶部１７（図４に示す）には、クライアント端末装置１とチャットルームとが相互に関連付けて登録可能である。
【００２７】
マッチングサーバ３は、受信した参加要求情報によって特定される一つのチャットルームが記憶部１７に登録されているとき、クライアント端末装置１をそのチャットルームに関連付けて記憶部１７に登録する。また、受信した参加要求情報によって特定される一つのチャットルームが記憶部１７に登録されていないとき、クライアント端末装置１とチャットルームとを相互に関連付けて記憶部１７に登録する。
【００２８】
マッチングサーバ３は、クライアント端末装置１から設定要求情報を受信したときには、クライアント端末装置１とチャットルームとを相互に関連付けて記憶部１７に登録する。クライアント端末装置１から入室要求情報を受信したときには、受信した入室要求情報によって特定されるチャットルームが記憶部１７に登録されているか否かを判定し、当該チャットルームが記憶部１７に登録されていると判定した場合は、クライアント端末装置１を当該チャットルームに関連付けて記憶部１７に登録する。当該チャットルームが記憶部１７に登録されていないと判定した場合は、クライアント端末装置１と当該チャットルームとを相互に関連付けて記憶部１７に登録する
マッチングサーバ３は、一つのチャットルームに対して関連付けて登録された複数のクライアント端末装置１間において、メッセージデータの送受信によるチャットの実行を制御する。
【００２９】
マッチングサーバ３は、退室要求情報を受信したとき、退室要求情報によって特定される一つのチャットルームに関連付けられたクライアント端末装置１の登録を抹消する。また、登録されている一つのチャットルームに対してクライアント端末装置１が全く登録されていないとき、当該一つのチャットルームの登録を抹消する。
【００３０】
すなわち、各マッチングサーバ３は、後述するチャット管理プログラムを実行することにより、クライアント端末装置１からの設定要求（参加要求）に応じてチャットルームを開設し、各クライアント端末装置１からの入室要求（入室要求）に応じてそのクライアント端末端末１のチャットルームへの入室（参加）を許可し、チャットルームに入室しているクライアント端末装置１間でのメッセージデータ（テキストデータ）の送受信を中継する。また、マッチングサーバ３は、開設中のチャットルームから全てのクライアント端末装置１が退室したときに当該チャットルームを消去する。さらに、マッチングサーバ３は、既に消去したチャットルームに対してクライアント端末装置１から入室要求を受けたときには、そのチャットルームを再度開設する。すなわち、各マッチングサーバ３には、１つ以上のクライアント端末装置１が入室しているアクティブなチャットルームのみが存在し、クライアント端末装置１が全く入室していないインアクティブなチャットルームは存在しない。なお、メッセージサーバ４も、クライアント端末装置１間でのメッセージデータ（テキストデータ）の送受信を中継するが、チャットルームへの入室を条件としていない点でマッチングサーバ３とはその機能が相違する。なお、以下の説明において、マッチングサーバ３に対して送受信するメッセージデータをチャットデータと称して、メッセージサーバ４に対して送受信するメッセージデータと区別する。
【００３１】
各クライアント端末装置１には、コントローラ２０とモニタ装置１０とがそれぞれ接続ケーブル１９を介して接続される。コントローラ２０は、ユーザによって操作される操作端末であり、ユーザからの操作に応じた操作信号をクライアント端末装置１に供給する。なお、コントローラ２０は、ユーザの操作に応じた操作信号（入力信号）をクライアント端末装置１に供給可能な入力装置であればよく、キーボードタイプやゲーム用コントローラなど様々な種類のものが適用可能である。
【００３２】
モニタ装置１０は、クライアント端末装置１から供給された映像信号に基づいて画像を表示する。チャットの開始時（チャットルームへの入室時）には、ルーム選択画面がモニタ装置１０に表示される。ルーム選択画面には、ユーザが選択可能なチャットルームを示す画像が配列されて表示される。ユーザがチャットルームに入室してチャットを実行しているときには、そのチャットルームに対応したチャット画面が表示される。チャット画面は、ユーザからの指示に応じて表示状態と非表示状態とに切り替わる。チャット画面が非表示状態であり他の画面が表示されているときに、入室中のチャットルームに対する他のクライアント端末装置１の入室や退室が行われた場合や、他のクライアント端末装置１からのチャットデータが送信された場合等には、それらを報知するチャット情報報知画面が上記他の画面上に重ねて表示される。
【００３３】
＜クライアント端末装置の主要構成＞
次に、図２を参照しながら、クライアント端末装置の内部構成のうち本発明に関連する主要な構成について説明する。
【００３４】
クライアント端末装置１は、通信部８０とチャット実行部１３と表示制御部１４と記憶部１５とから構成され、これらはバスを介して接続される。クライアント端末装置１は、記憶部１５に記憶されたチャット実行プログラムに従って、以下の各処理（開設要求処理、入室要求処理、退室要求処理、チャット実行処理、招待送信処理、招待受信処理、ルーム選択画面表示処理、チャット画面表示処理等）を実行する。以下の説明において、ユーザ特定情報とは、クライアント端末装置１を識別可能な固有の情報であり、記憶部１５に記憶されている。ユーザ特定情報としては、例えばクライアント端末装置１のユーザに対して予め付与された固有のユーザＩＤ、クライアント端末装置１に対して予め付与された装置ＩＤ、ユーザのメールアドレスなどが用いられる。
【００３５】
記憶部１５には、友人を登録するためのフレンド管理テーブルが設定されている。フレンド管理テーブルには、チャットシステムＳＹＭを利用可能な他のユーザ（友人）のユーザ特定情報とユーザ属性情報とが、相互に関連付けられて記憶されている。ユーザがコントローラ２０を操作して所定の入力を行うことにより、ユーザ特定情報がフレンド管理テーブルに登録される。ユーザ属性情報は、ユーザのメールアドレス、ユーザのニックネーム、ユーザによって選択されたアバターの画像データなどの情報を含む。
【００３６】
開設要求処理は、チャットルームの新規開設を指示する所定の操作入力をコントローラ２０がユーザから受け付け、クライアント端末装置１がコントローラ２０から操作信号（ルーム開設指示信号）を受信することによって実行される。開設要求処理は、サーバ決定処理とルーム特定情報決定処理とを含む。サーバ決定処理において、チャット実行部１３は、予め定められた方法に従ってサーバ選択基礎情報（サーバキー）を決定し、複数のマッチングサーバ３Ａ，３Ｂ，３Ｃのうちチャットルームを開設するマッチングサーバ３を、予め定められた所定の対応関係に従って、上記サーバ選択基礎情報から求めて決定する。ルーム特定情報決定処理において、チャット実行部１３は、チャットルームに固有なルーム特定情報（ルームキー）を予め定められた所定の方法に従って決定する。
【００３７】
チャット実行部１３は、自己のユーザ特定情報を含む開設要求情報を生成し、通信部８０は、生成された開設要求情報を上記決定したマッチングサーバ３へ送信する。また、チャット実行部１３は、上記決定されたルーム特定情報と自己のユーザ特定情報とを含む設定要求情報を生成し、通信部８０は、生成された設定要求情報を上記決定したマッチングサーバ３へ送信する。開設要求処理は、開設されたチャットルームのルーム識別情報（ルームＩＤ）を通信部８０がマッチングサーバ３から受信することによって終了する。
【００３８】
チャット実行部１３は、上記決定されたルーム特定情報とサーバ選択基礎情報とを関連付けて記憶部１５に記憶する。また、チャット実行部１３は、チャットルームの開設情報を、チャット履歴情報としてルーム特定情報に関連付けて記憶する。チャットルームの開設情報は、チャットルームの開設日時を示す情報を含む。チャットルームの開設日時は、開設要求処理の実行開始時の他、開設要求処理の実行終了時（通信部８０がマッチングサーバ３からルーム識別情報を受信した時）など、開設要求処理の実行時期を特定する日時であればよい。開設情報を記憶するタイミングは、開設要求処理の実行終了時が好ましい。なお、日や時刻を示す種々の情報は、クライアント端末装置１が自己の内部クロックから取得する。
【００３９】
サーバ選択基礎情報を決定する上記所定の方法とは、固有のサーバ選択基礎情報を決定可能な方法であればよく、例えば、ユーザ特定情報と開設要求処理を開始した時刻とを組み合わせた基礎データから、所定のハッシュ関数を用いてハッシュ値を演算する方法を用いることができる。この場合、演算によって得られたハッシュ値がサーバ選択基礎情報となる。ハッシュ値が演算される基礎データに時刻を組み合わせることにより、同じクライアント端末装置１において重複したサーバ選択基礎情報が生成されてしまう不都合を最大限に回避することができる。
【００４０】
チャットルームを開設する一つのマッチングサーバ３を複数のマッチングサーバ３Ａ，３Ｂ，３Ｃから選択して決定する上記所定の対応関係とは、複数のマッチングサーバ３に対してチャットルームが均等に分散して割り振られる関係（マッチングサーバ３にそれぞれ付与された固有のサーバＩＤの一つと上記決定されたサーバ選択情報とが均等に対応する関係）であればよく、例えば、サーバ基準基礎情報（上記ハッシュ値）から一つのサーバＩＤがランダムに算出されるように設定されたハッシュ関数を用いることができる。この場合、チャットルームを開設するマッチングサーバ３のサーバＩＤは、サーバ基準基礎情報のハッシュ値として算出される。
【００４１】
チャットルームに固有なルーム特定情報を決定する上記所定の方法とは、固有のルーム特定情報を決定可能な方法であればよく、例えば、ユーザ特定情報とサーバＩＤとを組み合わせた基礎データから、所定のハッシュ関数を用いてハッシュ値を演算する方法を用いることができる。この場合、演算によって得られたハッシュ値がルーム特定情報となる。
【００４２】
なお、マッチングサーバ３を選択して決定するための上記所定の対応関係は、マッチングサーバ３の数の増減に応じて更新される。例えば、サーバ装置２の管理者等がマッチングサーバ３の数を増減すると、サーバ装置２は、増減後のサーバ数に適合した対応関係（新）を含むサーバ数更新情報を各クライアント端末装置１へ送信する。サーバ数更新情報を受信したクライアント端末装置１は、記憶されている対応関係（旧）を、受信した対応関係（新）に書き換える。
【００４３】
開設要求処理において、チャット実行部１３は、開設するチャットルームのルーム名の入力をコントローラ２０を介してユーザから受け付け、入力されたルーム名を、ルーム属性情報としてルーム特定情報に関連付けて記憶する。ユーザからルーム名が入力されない場合は、予め設定されたデフォルトのルーム名を記憶する。
【００４４】
入室要求処理は、チャットルームを指定し入室を指示する所定の操作をコントローラ２０がユーザから受け付け、クライアント端末装置１がコントローラ２０から操作信号（入室指示信号）を受信することによって実行される。入室要求処理において、チャット実行部１３は、指定されたチャットルームに対応するサーバ選択基礎情報及びルーム特定情報を記憶部１５から読み出し、上記開設要求処理の場合と同様に（読み出したサーバ選択基礎情報を用いて上記所定の方法に従って）、チャットルームが開設されたマッチングサーバ３を特定する。
【００４５】
チャット実行部１３は、ユーザ特定情報と上記読み出したルーム特定情報とを含む入室要求情報を生成し、通信部８０は、生成された入室要求情報を上記特定したマッチングサーバ３へ送信する。ルーム特定情報は、マッチングサーバ３においてチャットルームを検索するために用いられる。入室要求処理は、自己に対する入室完了情報をマッチングサーバ３から通信部８０が受信することによって終了する。
【００４６】
一方、指定したチャットルームが既に消去されている場合には、マッチングサーバ３においてチャットルームが抽出されず、入室に失敗する。入室に失敗した場合、通信部８０は、チャットルームへの入室に失敗した旨を示す入室失敗情報をマッチングサーバ３から受信する。通信部８０が入室失敗情報を受信すると、上記開設要求処理に移行する。すなわち、チャット実行部１３は、自己のユーザ特定情報を含む開設要求情報と、上記指定したチャットルームのルーム特定情報と自己のユーザ特定情報とを含む設定要求情報とを生成し、通信部８０は、生成された開設要求情報及び設定要求情報を、上記入室要求情報を送信したマッチングサーバ３へ送信する。
【００４７】
チャット実行部１３は、チャットルームに入室したことを示す入室情報（自己の入室情報）を、チャット履歴情報としてルーム特定情報に関連付けて記憶する。自己の入室情報は、チャットルームへの入室日時を示す情報を含む。チャットルームへの入室日時は、入室要求処理の実行開始時の他、入室要求処理の実行終了時（通信部８０がマッチングサーバ３から自己の入室完了情報を受信した時）など、チャットルームへの入室時期を特定する日時であればよい。自己の入室情報を記憶するタイミングは、入室要求処理の実行終了時が好ましい。
【００４８】
また、本実施形態では、開設要求処理が終了すると、ユーザからの操作入力を要件とせずに入室要求処理が実行される。なお、この場合、開設要求処理においてチャットルームが既に特定されているため、マッチングサーバ３及びチャットルームを特定するための上記処理は省略可能である。また、入室要求処理は、複数のチャットルームに対してそれぞれ独立して実行される処理であり、クライアント端末装置１は、一のチャットルームへの入室を維持したままで、他のチャットルームに入室することができる。
【００４９】
退室要求処理は、チャットルームを指定し退室を指示する所定の操作をコントローラ２０がユーザから受け付け、クライアント端末装置１がコントローラ２０から操作信号（退室指示信号）を受信することによって実行される。退室要求処理において、チャット実行部１３は、ユーザ特定情報及びサーバＩＤを含む退室要求情報を生成し、通信部８０は、生成された退室要求情報をマッチングサーバ３へ送信する。退室要求処理は、自己に対する退室完了情報をマッチングサーバ３から通信部８０が受信することによって終了する。
【００５０】
チャット実行部１３は、チャットルームから退室したことを示す退室情報（自己の退室情報）を、チャット履歴情報としてルーム特定情報に関連付けて記憶する。自己の退室情報は、チャットルームからの退室日時を示す情報を含む。チャットルームからの退室日時及び退室情報を記憶するタイミングは、退室要求処理の実行開始時の他、退室要求処理の実行終了時や、通信部８０がマッチングサーバ３から自己の退室完了情報を受信した時など、チャットルームからの退室時期を特定する日時であればよい。
【００５１】
チャット実行処理は、チャットルームに入室している間（入室要求処理の終了から退室要求処理の終了までの間）、継続して実行される。チャット実行処理において、チャット実行部１３は、コントローラ２０からの操作信号に基づいてチャットデータを生成する。チャット実行部１３は、コントローラ２０を介したユーザからの送信指示に応じて、上記生成したチャットデータとユーザ特定情報とを含む送信データを生成し、通信部８０は、入室中のチャットルームのうちユーザから指定されたチャットルーム（マッチングサーバ３）に対して、上記生成された送信データを送信する。
【００５２】
通信部８０は、チャットルームへの他のクライアント端末装置１の入室を示す他人の入室完了情報、チャットルームからの他のクライアント端末装置１の退室を示す他人の退室完了情報、又はマッチングサーバ３から送信されたチャットデータ（受信チャットデータ）と、それぞれの実行主体を示すクライアント端末装置１のユーザ特定情報とを含む受信データを、マッチングサーバ３から受信する。
【００５３】
チャット実行部１３は、通信部８０が受信した他人の入室完了情報、他人の退室完了情報、及び受信チャットデータを示す受信メッセージ情報と、それぞれに対応するユーザ特定情報とを、チャット履歴情報としてルーム特定情報に関連付けて記憶する。記憶される他人の入室完了情報、他人の退室完了情報、及び受信メッセージ情報は、その受信日時を示す情報をそれぞれ含む。
【００５４】
招待送信処理は、他のユーザ（他のクライアント端末装置１）をチャットルームに招待するための所定の操作をコントローラ２０がユーザから受け付け、クライアント端末装置１がコントローラ２０から操作信号（招待指示信号）を受信することによって実行される。招待送信処理において、チャット実行部１３は、ユーザから指定されたチャットルーム（ルーム特定情報）に関連付けられたサーバ選択基礎情報とルーム特定情報とルーム属性情報とを記憶部１５から読み出し、チャットルームへ招待する旨を示すメッセージデータ、自己のユーザ特定情報、サーバ選択基礎情報、ルーム特定情報、及びルーム属性情報を含む招待情報を生成する。通信部８０は、生成された招待情報を、上記指定した他のクライアント端末装置１に対してメッセージサーバ４を介して送信する。なお、招待情報を送信した他のクライアント端末装置１のユーザ特定情報を、ルーム属性情報又はチャット履歴情報としてルーム特定情報に関連付けて記憶してもよい。
【００５５】
招待受信処理は、通信部８０がメッセージサーバ４を介して他のクライアント端末装置１から招待情報を受信することによって実行される。招待受信処理において、チャット実行部１３は、通信部８０が受信した招待情報に含まれているサーバ選択基礎情報とルーム特定情報とユーザ特定情報とルーム属性情報とを相互に関連付けて、記憶部１５に記憶する。ユーザ特定情報は、ルーム属性情報として記憶される。
【００５６】
ルーム選択画面表示処理は、ルーム選択画面の表示を指示する所定の操作をコントローラ２０がユーザから受け付けることによって実行される。ルーム選択画面表示処理において、表示制御部１４は、ルーム選択画面をモニタ装置１０に表示する。ルーム選択画面には、ユーザが選択可能なチャットルームを示す画像（ルーム対応画像）が配列されて表示される。各ルーム対応画像は、各チャットルーム（ルーム特定情報）に関連付けて記憶されたチャット履歴情報及びルーム属性情報のうち少なくとも一つの情報を含む。ユーザがコントローラ２０を操作し、一つのチャットルーム（表示されたルーム対応画像の中の一つ）を選択して指定すると、指定したチャットルームに対する上記入室要求処理が実行される。
【００５７】
チャット画面表示処理は、ルーム選択画面が表示された状態で一つのチャットルームが選択され指定されることによって実行される。チャット画面表示処理において、表示制御部１４は、チャット画面をモニタ装置１０に表示する。チャット画面には、指定されたチャットルームに関連付けて記憶されたチャット履歴情報のうち最新の情報（日時が遅い情報）を含む少なくとも一部の情報と、ルーム属性情報のうち少なくともルーム名を含む一部の情報とが表示される。チャット履歴情報は、最新の情報から時系列に並べて表示される。
【００５８】
表示制御部１４は、コントローラ２０を介したユーザからの指示に応じて、チャット画面を表示状態と非表示状態とに切り替える。非表示状態が指示されると、チャット画面表示処理が一時的に中断され、チャット画面は表示されない。但し、チャット画面表示処理の終了ではなく一時的な中断であるため、表示状態への切り替え指示を受けると即時にチャット画面が表示される。
【００５９】
チャット画面が非表示状態に設定されて他の画面が表示されているときに、入室中のチャットルームのルーム属性情報が追加されると（ルーム属性情報がルーム特定情報に関連付けて新たに記憶されると）、表示制御部１４は、追加されたルーム属性情報を報知するチャット情報報知画面を、上記他の画面上に重ねて表示する。
【００６０】
チャット画面表示処理は、上記退室要求処理の終了（チャットルームからの退室）によって終了する。
【００６１】
＜クライアント端末装置の例示＞
次に、図３を参照しながら、上記図２の構成が実装されたクライアント端末装置１の一例について説明する。
【００６２】
クライアント端末装置１は、中央演算処理装置（ＣＰＵ：Central Processing Unit）４１及びその周辺装置等からなる制御系４０と、ＨＤＤ（Hard Disc Drive）４５と、フレームバッファ５３に描画を行う画像処理装置（ＧＰＵ：Graphics Processing Unit）５２等からなるグラフィックシステム５０と、楽音、効果音等を発生する音声処理装置（ＳＰＵ：Sound Processing Unit）６１等からなるサウンドシステム６０と、アプリケーションプログラムが記録されている光ディスクの制御を行う光ディスク制御部７０と、通信部８０と、インターフェース部９０と、上記の各部が接続されているバス等を備えて構成されている。ＣＰＵ４１はチャット実行部１３及び表示制御部１４として機能し、グラフィックシステム５０は表示制御部１４として機能する。
【００６３】
制御系４０は、ＣＰＵ４１と、割り込み制御やダイレクトメモリアクセス（ＤＭＡ：Direct Memory Access）転送の制御等を行う周辺装置制御部４２と、ＲＡＭ（Random Access Memory）からなるメインメモリ４３と、ＲＯＭ（Read Only Memory）４４とを備えている。メインメモリ４３は記憶部１５として機能する。
【００６４】
ＲＯＭ４４には、クライアント端末装置１の各部を制御するためのオペレーティングシステム等のプログラムや、各種機能を実現させるためのアプリケーションプログラムが記憶されている。ＣＰＵ４１は、ＲＯＭ４４に記憶されているオペレーティングシステムをメインメモリ４３に読み出し、読み出したオペレーティングシステムを実行することにより、このクライアント端末装置１の全体を制御する。
【００６５】
ＨＤＤ４５には、各種データや、チャットを実現させるためのプログラム（チャット実行プログラム）などの各種アプリケーションプログラムが記憶されている。ＣＰＵ４１は、ＨＤＤ４５に記憶されているチャット実行プログラムをメインメモリ４３に読み出し、読み出したチャット実行プログラムを実行する。
【００６６】
サウンドシステム６０は、制御系４０の制御の下、音声信号を制御するＳＰＵ６１と、音声再生の際の波形データ等が記録されるサウンドバッファ６２と、ＳＰＵ６１によって発生される楽音、効果音等を出力するスピーカ６３とを備えている。サウンドシステム６０には、マイクロフォン１２から入力された音声信号とボイス・ディテクト値とが入力される。サウンドシステム６０は、入力された音声信号をデジタル変換し、音声コーデックにより符号化して通信部８０に供給する。また、サウンドシステム６０には、インターネット３０を介して取得された音声データが、通信部８０から供給される。サウンドシステム６０は、当該音声データを音声コーデックにより復号し、アナログ変換して波形データを生成し、これをサウンドバッファ６２に記録し、これをスピーカ６３に供給する。
【００６７】
光ディスク制御部７０は、光ディスクに記録されたプログラムやデータ等を再生する光ディスク装置７１と、例えばエラー訂正符号(ＥＣＣ：Error Correction Code)が付加されて記録されているプログラム、データ等を復号するデコーダ７２と、光ディスク装置７１からのデータを一時的に記憶することにより、光ディスクからのデータの読み出しを高速化するバッファ７３とを備えている。上記のデコーダ７２には、サブＣＰＵ７４が接続されている。
【００６８】
インターフェース部９０は、パラレルＩ／Ｏインターフェース（ＰＩＯ）９１と、シリアルＩ／Ｏインターフェース（ＳＩＯ）９２とを備えている。これらは、図示しないメモリカードとクライアント端末装置１とを接続するためのインターフェースである。
【００６９】
グラフィックシステム５０は、ジオメトリトランスファエンジン（ＧＴＥ：Geometry Transfer Engine）５１と、ＧＰＵ５２と、フレームバッファ５３と、画像エンコーダ・デコーダ５４とを備えている。このグラフィックシステム５０には、制御系４０がＨＤＤ４５から読み出した画像データやビデオカメラ１１からの映像信号が供給される。
【００７０】
ＧＴＥ５１は、例えば複数の演算を並列に実行する並列演算機構を備え、上記ＣＰＵ４１からの演算要求に応じて座標変換、光源計算、行列あるいはベクトルなどの演算を高速に行う。そして、制御系４０は、ＧＴＥ５１による演算結果に基づいて三角形や四角形などの基本的な単位図形（ポリゴン）の組み合わせとして３次元モデルを定義して３次元画像を描画するための各ポリゴンに対応する描画命令をＧＰＵ５２に送る。
【００７１】
ＧＰＵ５２は、制御系４０からの描画命令に従って、フレームバッファ５３に対して多角形（ポリゴン）等の描画を行う。フレームバッファ５３は、ＧＰＵ５２により描画された画像を記憶する。このフレームバッファ５３は、いわゆるデュアルポートＲＡＭからなり、ＧＰＵ５２からの描画あるいはメインメモリ４３からの転送と、表示のための読み出しとを同時に行うことができる。また、このフレームバッファ５３には、ビデオ出力として出力される表示領域の他に、ＧＰＵ５２がポリゴン等の描画を行う際に参照するカラールックアップテーブル（ＣＬＵＴ：Color Lock Up Table）が記憶されるＣＬＵＴ領域と、描画時に座標変換されてＧＰＵ５２によって描画されるポリゴン等の中に挿入（マッピング）される素材（テクスチャ）が記憶されるテクスチャ領域が設けられている。これらのＣＬＵＴ領域とテクスチャ領域は、表示領域の変更等に従って動的に変更される。
【００７２】
画像エンコーダ・デコーダ５４は、上記の制御系４０からの制御により、静止画あるいは動画の画像の符号化及び復号化や、デジタル変換及びアナログ変換などの各種処理を行う。
【００７３】
通信部８０は、制御系４０の制御の下、インターネット３０を介して、サーバ装置２を含む他の情報処理装置とのデータ通信を制御する。
【００７４】
＜マッチングサーバの主要構成＞
次に、図４を参照しながら、マッチングサーバ３の内部構成のうち本発明に関連する主要な構成について説明する。
【００７５】
マッチングサーバ３は、通信部２４０とチャット管理部１６と記憶部１７とから構成され、これらはバスを介して接続される。マッチングサーバ３は、記憶部１７に記憶されたチャット管理プログラムに従って、以下の各処理（ルーム開設処理、入室処理、退室処理、チャット管理処理）を実行する。記憶部１７には、ルーム情報記憶領域２３０ａが設けられている。このルーム情報記憶領域２３０ａは、ルーム特定情報とルーム識別情報とユーザ特定情報と少なくとも最新のチャットデータとが相互に関連付けられて記憶される領域である。本実施形態のルーム情報記憶領域２３０ａは、各情報が登録されることによって相互に関連付けられるルーム情報登録テーブルによって構成されている。なお、クライアント端末装置１から受信する各情報に含まれるユーザ特定情報が送信先のアドレス情報として機能しない場合、記憶部１７には、ユーザ特定情報と送信先のアドレス情報との対応関係が記憶されたアドレステーブルが予め設定され、マッチングサーバ３は、送信先のユーザ特定情報に対応するアドレス情報をアドレステーブルから読み出すことによって、クライアント端末装置１に対する送信処理を実行する。
【００７６】
ルーム開設処理は、通信部２４０がクライアント端末装置１から開設要求情報及び設定要求情報を受信することによって実行される。ルーム開設処理において、チャット管理部１６は、通信部２４０が受信した開設要求情報に応じてチャットルームを開設する。このチャットルームの開設とは、ルーム情報登録テーブルに新規のチャットルームのための記憶領域を設定することである。チャットルームを開設すると、ルーム情報登録テーブルの上記設定した記憶領域に、通信部２４０が受信したルーム特定情報を登録する。このルーム特定情報の登録に際して、チャット管理部１６は、生成したチャットルームをマッチングサーバ３内で識別するためのルーム特定情報をルーム識別情報に関連付けて登録し、通信部２４０は、上記開設要求を行ったクライアント端末装置１に対してルーム識別情報を送信する。チャットルームに入室中のクライアント端末装置１は、マッチングサーバ３内におけるチャットルームの宛先としてルーム識別情報を用いる。
【００７７】
入室処理は、通信部２４０がクライアント端末装置１から入室要求情報を受信することによって実行される。入室処理において、チャット管理部１６は、通信部２４０が受信したルーム特定情報がルーム情報登録テーブルに登録されているか否かを検索する（存在するか否かを判定する）。ルーム特定情報が登録されている場合（ルーム特定情報を抽出した場合）、チャット管理部１６は、通信部２４０が受信したユーザ特定情報を、抽出したルーム特定情報に対応付けてルーム情報登録テーブルに登録する。ユーザ特定情報の登録によって、クライアント端末装置１がチャットルームに入室した状態となる。チャット管理部１６は、入室完了情報を生成し、通信部２４０は、生成された入室完了情報を、そのチャットルームに関連付けて登録されている全てのクライアント端末装置１（入室要求を行ったクライアント端末装置１を含む）に対して送信する。
【００７８】
一方、ルーム特定情報が登録されてない場合（ルーム特定情報を抽出できなかった場合）、チャット管理部１６は、入室失敗情報を生成し、通信部２４０は、生成された入室失敗情報をクライアント端末装置１へ送信する。続いて、通信部２４０はクライアント端末装置１から開設要求情報及び設定要求情報を受信し、チャット管理部１６は、上記ルーム開設処理を実行する。
【００７９】
退室処理は、通信部２４０がクライアント端末装置１から退室要求情報を受信することによって実行される。退室処理において、チャット管理部１６は、退室要求情報に含まれたルームＩＤに関連付けられているユーザ特定情報の中から、受信したユーザ特定情報を抽出して消去する。ユーザ特定情報の消去によって、クライアント端末装置１がチャットルームから退室した状態となる。チャット管理部１６は、退室完了情報を生成し、通信部２４０は、生成された退室完了情報を、そのチャットルームに関連付けて登録されている全てのクライアント端末装置１（退室要求を行ったクライアント端末装置１を含む）に対して送信する。
【００８０】
また、チャットルームから全てのクライアント端末装置１が退室すると（登録されたルーム特定情報に関連付けられたユーザ特定情報が全て消去されると）、チャット管理部１６は、そのチャットルーム（ルーム特定情報）に関する全ての情報（ルーム特定情報とこれに関連付けて記憶された全てのデータ）を、ルーム情報登録テーブルから消去する。関連する全ての情報の消去によって、チャットルームが消去された状態となる。
【００８１】
チャット管理処理は、ルーム情報登録テーブルにルーム特定情報が登録されている間（チャットルームに入室中のクライアント端末装置１が存在している間）、継続して実行される。チャット管理処理において、そのチャットルームに対応するルーム特定情報を含む送信データを通信部２４０がクライアント端末装置１から受信すると、チャット管理部１６は、通信部２４０が受信したルーム特定情報に関連付けられて登録されたユーザ特定情報に関連付けられた全てのクライアント端末装置１に対して、上記送信データを送信する。なお、チャット管理部１６は、上記受信した送信データをそのまま転送せず、送信データに含まれるメッセージデータに不適切な表現や文章が含まれていないか否かを判定し、不適切な表現や文章が含まれていると判定した場合には、該当する部分を無関係な文字や記号（例えばｘなど）に置換して、クライアント端末装置１に送信してもよい。
【００８２】
＜マッチングサーバの例示＞
次に、図５を参照しながら、上記図４の構成が実装されたマッチングサーバ３の一例について説明する。
【００８３】
マッチングサーバ３は、ＣＰＵ２００、ＲＯＭ２１０、ＲＡＭ２２０、ＨＤＤ（Hard Disc Drive）２３０、通信部２４０等から構成され、これらはバスを介して接続される。ＣＰＵ２００は、チャット管理部１６として機能し、ＲＡＭ２２０及びＨＤＤ２３０は記憶部１５として機能する。
【００８４】
ＲＯＭ２１０には、サーバ装置２の各部を制御するためのオペレーティングシステムや各種プログラムが記憶されている。ＣＰＵ２００は、サーバ装置２の起動時にＲＯＭ２１０に記憶されているオペレーティングシステムをＲＡＭ２１０に読み出し、読み出したオペレーティングシステムを実行することにより、サーバ装置２の各部の動作を制御する。
【００８５】
ＨＤＤ２３０には、各種データや、チャットを実現させるためのプログラム（チャット管理プログラム）などの各種アプリケーションプログラムが記憶されている。ＣＰＵ２００は、ＨＤＤ２３０に記憶されているチャット管理プログラムをＲＡＭ２２０に読み出し、読み出したチャット管理プログラムを実行する。
【００８６】
通信部２４０は、ＣＰＵ２００の制御の下、インターネット３０を介したデータ通信を制御する。
【００８７】
＜メッセージサーバの構成＞
メッセージサーバ４は、ＣＰＵと、ＲＯＭと、ＲＡＭと、ＨＤＤ（Hard Disc Drive）と、通信部、バス等を有し、基本的な構成はマッチングサーバ３と同様であるため、その詳しい説明は省略する。
【００８８】
［動作］
次に、チャットシステムＳＹＭにおいて実行される動作の一例を説明する。
【００８９】
クライアント端末装置１では、図示しない電源が投入され、ＲＯＭ４４に記憶されたオペレーティングシステムなどのプログラムがＣＰＵ４１によってメインメモリ４３に読み出されて実行され、ユーザによってそれぞれ指示が入力されることにより、ＲＯＭ４４や光ディスク装置７１に装着された光ディスクからメインメモリ４３に読み出された各種プログラムがＣＰＵ４１によって実行され、上述の構成欄で述べた各種機能が実現される。
【００９０】
マッチングサーバ３では、図示しない電源が投入され、ＲＯＭ２１０に記憶されたオペレーティングシステムなどの各種プログラムがＣＰＵ２００によってＲＡＭ２２０に読み出されて実行されることにより、上述の構成欄で述べた各種機能が実現される。なお、メッセージサーバについても同様である。
【００９１】
チャットシステムＳＹＭを利用してチャットを開始する場合、ユーザは、（１）自分でチャットルームを開設して他のユーザを招待すること、及び（２）他人から招待されたチャットルームに入室することが可能である。
【００９２】
以下の説明は、クライアント端末装置１ＡのユーザＡがチャットルームを開設し、そのチャットルームにクライアント端末装置１ＢのユーザＢを招待する場合、及び招待されたユーザＢがチャットルームに入室（チャットに参加）する場合の動作であり、各種設定は、以下のとおりである。ユーザ特定情報は、ユーザＩＤである。サーバキー（サーバ選択基礎情報）は、ユーザＩＤと開設要求処理の開始時刻との組み合わせから算出したハッシュ値である。チャットルームを開設するマッチングサーバ３のサーバＩＤは、サーバキーのハッシュ値として算出される。ルームキー（ルーム特定情報）は、時刻（例えば、上記開設要求処理の開始時刻）とマッチングサーバ３から受信したルームＩＤとの組み合わせである。
【００９３】
＜チャットルームの開設・友人の招待＞
ユーザＡがチャットルームＲＡを新規に開設する場合のクライアント端末装置１Ａ及びマッチングサーバ３の動作を、図６〜図９を参照して説明する。
【００９４】
図６に示すように、ユーザＡがコントローラ２０Ａを操作してチャットルームＲＡの新規開設を指示する所定の入力を行い、クライアント端末装置１Ａがコントローラ２０Ａからルーム開設指示信号を受信すると（ステップＳ１０）、クライアント端末装置１Ａが開設要求処理を開始する。
【００９５】
開設要求処理では、クライアント端末装置１Ａの内部クロックからルーム開設指示信号の受信時刻Ｔａを取得し、記憶部１５ＡからユーザＡのユーザＩＤ（Ａ）を読み出し、ユーザＩＤ（Ａ）の文字列と時刻Ｔａの文字列とを連結することによって基礎データ（ユーザＩＤ（Ａ） Ｔａ）を生成し、予め設定されたハッシュ関数（hashＡ）を用いて、基礎データ（ユーザＩＤ（Ａ） Ｔａ）からハッシュ値（hashＡ（ユーザＩＤ（Ａ） Ｔａ））を演算する（ステップＳ１１）。このハッシュ値（hashＡ（ユーザＩＤ（Ａ） Ｔａ））は、複数のマッチングサーバ３から一つのマッチングサーバ３を偏り無く選択する際に使用可能なサーバキーＳＫａとして機能する。
【００９６】
次に、予め設定されたハッシュ関数（hashＢ）を用いて、サーバキーＳＫａのハッシュ値（hashＢ（ＳＫａ））を演算する（ステップＳ１２）。このハッシュ値（hashＢ（ＳＫａ））は、複数のマッチングサーバ３から偏り無く選択された一つのマッチングサーバ３のサーバＩＤである。この例では、算出されたサーバＩＤ（Ａ）がマッチングサーバ３ＡのサーバＩＤであり、マッチングサーバ３Ａが選択されたとする。
【００９７】
次に、ユーザＩＤ（Ａ）を含む開設要求情報をマッチングサーバ３Ａへ送信する（ステップＳ１３）。
【００９８】
マッチングサーバ３Ａは、開設要求情報の受信に応じて（ステップＳ２０）、ルーム開設処理を実行する（ステップＳ２１）。ルーム開設処理では、ルームＩＤを生成し、生成したルームＩＤをルーム情報登録テーブルに新規に登録する。マッチングサーバ３Ａは、生成したルームＩＤを、クライアント端末装置１Ａへ送信する（ステップＳ２２）。この際、クライアント端末装置１Ａ側において上記開設要求情報に対応したルームＩＤであることが判別可能なように、ルームＩＤを受信した開設要求情報に対応付けた状態で送信する。
【００９９】
ルームＩＤを受信したクライアント端末装置１Ａは、受信したルームＩＤと時刻とを組み合わせることにより、チャットルームＲＡに固有なルームキーＲＫａを設定する（ステップＳ１５）。
【０１００】
次に、ルームキーＲＫａ及びルームＩＤを含む設定要求情報をマッチングサーバ３Ａへ送信する（ステップＳ１５）。
【０１０１】
マッチングサーバ３Ａは、設定要求情報を受信すると（ステップＳ１６）、受信した設定要求情報に含まれるルームキーＲＫａを、開設したチャットルームＲＡ（受信した設定要求情報に含まれるルームＩＤ）に関連付けてルーム情報登録テーブルに登録する（ステップＳ１７）。これにより、マッチングサーバ３ＡにおけるチャットルームＲＡの開設（上記開設処理及び登録処理）が完了し、マッチングサーバ３Ａは、開設完了情報を生成してルームＩＤに関連付けてクライアント端末装置１Ａに送信する（ステップＳ１８）。
【０１０２】
クライアント端末装置１Ａは、開設完了情報の受信により開設要求処理を終了する（ステップＳ１９）。
【０１０３】
クライアント端末装置１Ａは、開設要求処理に続いて入室要求処理を実行し、チャットルームＲＡへ入室する。なお、入室要求処理の詳細については後述する。
【０１０４】
クライアント端末装置１Ａは、ステップＳ１１で算出したサーバキーＳＫａとステップＳ１４で設定したルームキーＲＫａとを、相互に関連付けて記憶部１５に記憶する。また、チャットルームＲＡの開設日時を示す情報をルームキーＲＫａに関連付けて記憶する。
【０１０５】
また、開設要求処理において、クライアント端末装置１Ａは、例えば図７に示すように、チャットルームＲＡのルーム名入力画面１００をモニタ装置１０Ａに表示させる。ルーム名入力画面１００には、「チャットルーム名を入力してください」などの文章１０１と、ルーム名入力欄１０２と、確定アイコン１０３とが表示される。ユーザＡがコントローラ１０Ａを操作してルーム入力欄１０２にカーソルを設定してルーム名を入力し、確定アイコン１０３にカーソルを移動させて所定のＹＥＳボタンを押すと、クライアント端末装置１Ａは、入力されたルーム名をルームキーＲＫａに関連付けて記憶する。なお、ユーザＡがルーム名を入力せずに、確定アイコン１０３にカーソルを設定してＹＥＳボタンを押すと、クライアント端末装置１Ａはデフォルトのルーム名を記憶する。
【０１０６】
ルーム名の入力が完了すると、クライアント端末装置１Ａは、モニタ装置１０Ａの表示を、ルーム名入力画面１００から、例えば図８に示すような招待者選択画面１１０に切り替える。招待者選択画面１１０には、「招待する友人を選んでください」などの文章１１１と、友人として登録された各ユーザのニックネーム（はな子、タロー、次郎、ポチなど）１１２と、各ユーザのアバター１１３と、選択の有無を入力するチェックボックス１１４と、選択された合計人数を示す人数表示欄１１５と、確定アイコン１１６とが表示される。ニックネーム１１２とアバター１１３とは、記憶部１５Ａのフレンド管理テーブルから読み出され、各ユーザ毎に横並びに配置される。チェックボックス１１４は、ユーザに対して１つずつ設けられ、デフォルトは矩形枠状（中抜き）の非選択表示である。ユーザＡがコントローラ１０Ａを操作してカーソルを上下に移動させ、所望のユーザにカーソルを設定してＹＥＳボタンを押すと、対応するチェックボックス１１４の表示が切り替わる。非選択表示の場合には、選択表示（例えば、塗り潰された状態）に切り替わり、選択表示の場合には、非選択表示に切り替わる。人数表示欄１１５には、招待者として選択しているユーザの数が、各チェックボックス１１４の選択／非選択の切り替えに応じて増減して表示される。図８は、ニックネーム「タロー」のみが選択され、「人数表示欄」の「１」の数字が表示された状態を示している。ユーザＡがチャットルームＲＡに招待したい１人以上のユーザを選択し（対応するチェックボックス１１４を選択態様に変更し）、確定アイコン１１１６にカーソルを設定してＹＥＳボタンを押すと、コントローラ２０Ａからクライアント端末装置１Ａへ招待指示信号が送信される。招待指示信号を受信したクライアント端末装置１Ａは、招待状の送信指示があったと判断し、招待対象のユーザを確定させて、招待送信処理を開始する。この例では、ユーザＢが招待対象として確定したとする。
【０１０７】
招待送信処理を開始すると、クライアント端末装置１Ａは、図９に示すように、ユーザＡから指定されたチャットルーム（ルーム特定情報）に関連付けられたサーバキー、ルームキー、及びルーム名を記憶部１５から読み出す（ステップＳ３０）。チャットルーム開設時の招待発信処理では、開設を要求しているチャットルームＲＡがユーザＡから指定されたチャットルームとなり、サーバキーＳＫａ（図６のステップＳ１１）とルームキーＲＫａ（図６のステップＳ１４）及び入力されたルーム名を読み出す。
【０１０８】
次に、クライアント端末装置１Ａは、チャットルームＲＡへ招待する旨を示すメッセージデータ、自己のユーザＩＤ（Ａ）、読み出したサーバキーＳＫａとルームキーＲＫａとルーム名を含む招待情報を生成し、生成した招待情報を、クライアント端末装置１Ｂを宛先としてメッセージサーバ４へ送信する（ステップＳ３１）。
【０１０９】
メッセージサーバ４は、クライアント端末装置１Ａから招待情報を受信すると、これをクライアント端末装置１Ｂへ送信する（ステップＳ３２）。
【０１１０】
クライアント端末装置１Ｂは、招待情報を受信し（ステップＳ３３）、招待受信処理を実行する。すなわち、受信した招待情報に含まれているサーバキーＳＫａとルームキーＲＫａとユーザＩＤ（Ａ）とルーム名とを相互に関連付けて、記憶部１５Ｂに記憶する（ステップＳ３４）。
【０１１１】
＜チャットルームへの入室＞
ユーザＢがチャットルームＲＡに入室する場合のクライアント端末装置１Ｂ及びマッチングサーバ３の動作を、図１０及び図１１を参照して説明する。
【０１１２】
ユーザＡから招待されたチャットルームＲＡへ入室する場合、ユーザＢは、自己が入室可能なチャットルームの中からチャットルームＲＡを選択して指定するため、コントローラ２０Ｂを操作して所定の入力を行い、図１０に示すようなルーム選択画面１２０をモニタ装置１０Ｂに表示させる。
【０１１３】
ルーム選択画面１２０には、ユーザＢが選択可能なチャットルームを示すルーム対応画像１２１が縦方向に配列されて表示される。ルーム対応画像１２１は、そのチャットルームに関連付けられたルーム属性情報又はチャット履歴情報に基づいて分類され、且つソートされている。
【０１１４】
図１０の例では、５つのチャットルームが選択可能な状態であり、５つのルーム対応画像１２１ａ〜１２１ｅが上下方向に並んでいる。ルーム対応画像１２１は、現在入室中（参加中）のチャットルームのルーム対応画像１２１ａ，１２１ｂと、招待されたが一度も入室していない新着のチャットルームのルーム対応画像１２１ｃと、過去に入室したことがあるが現在は入室していない退室中のチャットルームのルーム対応画像１２１ｄ，１２１ｅとに分類され、入室中、新着、退室中の順に上方から下方に並んでいる。
【０１１５】
各ルーム対応画像１２１ａ〜１２１ｅには、ルーム名（「映画の部屋」、「待合室」、「おしゃべり用」、「ゲームしながら話そう」、「パズル同好会」）と、ニックネーム（次郎、ポチ、イチロー、はな子、次郎）がそれぞれ含まれる。ルーム対応画像１２１ａ，１２１ｂには現在入室中であることを示す入室中表示画像１２２が、ルーム対応画像１２１ｃ〜１２１ｅには現在退室中であることを示す退室中表示画像１２３がそれぞれ含まれる。退室中のルームのうち新着ルーム（他のユーザから招待されて未だ一度も入室していないルーム）のルーム対応画像１２１ｃの場合、新着であることを示す新着表示画像１２４が退室中表示画像１２３に付されて表示される。なお、これらの表示画像１２２〜１２４は、対応するルームが現在入室中であるか、退室中で且つ新着（未入室）であるか、或いは退室中で過去に入室したことがあるかを識別可能に表示するものであれば、上記に限定されない。
【０１１６】
現在入室中のルーム対応画像１２１ａ，１２１ｂには、最終発言者（クライアント端末装置１Ｂがマッチングサーバ３から最後に受信したチャットデータ（最新のチャットデータ）の送信元のユーザ）のアバター１２５と、最終発言者の発言内容（クライアント端末装置１Ｂがマッチングサーバ３から最後に受信したチャットデータ（最新のチャットデータ））とがそれぞれ含まれる。最終発言者がユーザＢ（自己）の場合、ユーザＢが予め記憶部１５に登録した自己のアバターの画像データが読み出され、最終発言者のアバター１２５として表示され、クライアント端末装置１Ｂがマッチングサーバ３から最後に受信した自己からのチャットデータ（ユーザＢの発言内容）が、最終発言者の発言内容として表示される。
【０１１７】
ルーム対応画像１２１ｃ〜１２１ｅには、招待者（招待情報を送信したユーザ）のアバター１２６，１２７がそれぞれ含まれる。招待者が自己（ユーザＢ）の友人として登録されている場合（招待者のユーザＩＤが記憶部１５Ｂのフレンド管理テーブルに記憶されている場合）、招待者のユーザＩＤに対応するアバターの画像データがフレンド管理テーブルから読み出され、招待者のアバター１２６，１２７として表示される。自己のフレンド管理テーブルに登録されていないユーザから招待された新着ルームの場合、チャットシステムＳＹＭを利用するユーザのユーザＩＤとアバターの画像データ及びニックネームとの対応関係が登録されたユーザ情報登録テーブルが、インターネット上の記憶部（例えばマッチングサーバ３の記憶部１７）に予め設定され、招待者のユーザＩＤに対応するアバターの画像情報やニックネームがネットワークを介してユーザ登録テーブルから取得され、招待者のアバター１２６やニックネームとして表示される。自己（ユーザＢ）が開設したルームの場合には、ユーザＢのアバター及びニックネームが招待者のアバター１２７及びニックネームとして表示される。なお、一度設定されたユーザＩＤとアバターの画像データやニックネームとの対応関係は、チャット画面表示処理のために記憶部１５Ｂに記憶される。
【０１１８】
また、ルーム対応画像１２１ａ，１２１ｂにカーソルを合わせると最終発言日時が表示され、ルーム対応画像１２１ｃ，１２１ｄにカーソルを合わせると招待情報の受信日時が表示され、ルーム対応画像１２１ｅにカーソルを合わせると最終退室日時が表示される。
【０１１９】
ユーザＢがルーム選択画面１２０に表示されたルーム対応画像１２１から所望の一つを選択し、選択したルーム対応画像１２１にカーソルを移動させてＹＥＳボタンを押すことにより、チャットルームの選択が確定し、コントローラ２０Ｂからクライアント端末装置１Ｂに入室指示信号が送信される。この例では、チャットルームＲＡが選択されたとする。
【０１２０】
図１１に示すように、クライアント端末装置１Ｂは、入室指示信号を受信することによって入室要求処理を開始し（ステップＳ４０）、チャットルームＲＡに対応するサーバキーＳＫａとびルームキーＲＫａとを記憶部１５Ｂから読み出し（ステップＳ４１）、上記開設要求処理の場合（図６のステップＳ１２）と同様に、サーバキーＳＫａを用いてサーバＩＤを算出して、入室を要求するマッチングサーバ３を特定する（ステップＳ４２）。この場合、サーバキーＳＫａを用いているので、図６のステップＳ１２と同様にサーバＩＤ（Ａ）が算出される。
【０１２１】
次に、クライアント端末装置１Ｂは、自己のユーザＩＤ（Ｂ）とルームキーＲＫａとを含む入室要求情報を生成し、これをサーバＩＤ（Ａ）に対応するマッチングサーバ３Ａへ送信する（ステップＳ４３）。
【０１２２】
マッチングサーバ３Ａは、入室要求情報を受信することによって、入室処理を開始する（ステップＳ４４）。入室処理では、まず、受信した入室要求情報に含まれるルームキーＲＫａがルーム情報登録テーブルに登録されているか否か（チャットルームＲＡが存在するか否か）を判定する（ステップＳ４５）。
【０１２３】
登録されていると判定した場合（ルームキーＲＫａを抽出した場合）、入室処理が実行可能であるため、ユーザＩＤ（Ｂ）をルームキーＲＫａに対応付けてルーム情報登録テーブルに登録する（ステップＳ４６）。ユーザＩＤ（Ｂ）の登録によって、クライアント端末装置１ＢがチャットルームＲＡに入室した状態となり、チャットルームＲａに関連付けて登録されている全てのクライアント端末装置１（クライアント端末装置１Ｂを含む）に対して入室完了情報を送信する（ステップＳ４７）。
【０１２４】
クライアント端末装置１Ｂは、自己に対する入室完了情報をマッチングサーバ３から受信することによって、入室要求処理を終了する（ステップＳ４８）。
【０１２５】
一方、チャットルームＲＡが既に消去されている等の理由により、ステップＳ４５においてルームキーＲＫａが登録されてないと判定した場合（ルームキーＲＫａを抽出できなかった場合）、入室失敗情報をクライアント端末装置１Ｂへ送信する（ステップＳ４９）。
【０１２６】
入室失敗情報を受信したクライアント端末装置１Ｂは、上記開設要求処理に移行する。すなわち、自己のユーザＩＤ（Ｂ）を含む開設要求情報と、チャットルームＲＡのルームＲＫａと自己のユーザＩＤ（Ｂ）とを含む設定要求情報とを、マッチングサーバ３Ａへ送信すする。これにより、マッチングサーバ３ＡにチャットルームＲＡが開設され、そのチャットルームＲＡにクライアント端末装置１Ｂが入室する。
【０１２７】
クライアント端末装置１Ｂは、チャットルームＲＡに入室している間（入室要求処理の終了から退室要求処理の終了までの間）、チャットルームＲＡに対するチャット実行処理を継続して実行する。クライアント端末装置１Ｂは、コントローラ２０Ｂからの操作信号に基づいてチャットデータを生成し、コントローラ２０Ｂを介したユーザからの送信指示に応じて、生成したチャットデータとユーザＩＤ（Ｂ）とを含む送信データを生成し、マッチングサーバ３ＡのチャットルームＲＡに対して、生成した送信データを送信する。
【０１２８】
また、クライアント端末装置１Ｂは、チャットルームＲＡへの他のクライアント端末装置１の入室を示す他人の入室完了情報、チャットルームＲＡからの他のクライアント端末装置１の退室を示す他人の退室完了情報、又はマッチングサーバ３Ａから送信されたチャットデータ（受信チャットデータ）と、それぞれの実行主体を示すクライアント端末装置１のユーザＩＤとを含む受信データを、マッチングサーバ３から受信する。クライアント端末装置１Ｂは、受信した他人の入室完了情報、他人の退室完了情報、及び受信チャットデータを示す受信メッセージ情報と、それぞれに対応するユーザＩＤとを、チャット履歴情報としてルーム特定情報に関連付けて記憶する。記憶される他人の入室完了情報、他人の退室完了情報、及び受信メッセージ情報は、その受信日時を示す情報をそれぞれ含む。
【０１２９】
また、チャットルームＲＡに入室中のクライアント端末装置１Ｂは、例えばユーザＢがチャットを実行している間、チャット画面表示処理を実行し、図１２に示すようなチャット画面１３０をモニタ装置１０Ｂに表示する。
【０１３０】
チャット画面１３０には、チャットルームＲＡに関連付けて記憶されたチャット履歴情報のうち最新の情報（受信日時が遅い情報）を含む少なくとも一部の情報と、ルーム属性情報のうち少なくともルーム名を含む一部の情報とが表示される。チャット履歴情報は、最新の情報から時系列に並べて表示される。
【０１３１】
図１２に示す例のチャット画面１３０は、ルーム名（映画の部屋）が表示されるルーム名表示欄１３２、発言者（チャットデータを送信したユーザ）のアバターとニックネームと発言内容（受信したチャットデータ）とが、発言時（受信時刻）を基準に時系列で並んで表示される発言表示欄１３３、ユーザＢが発言を書き込む（チャットデータを入力する）発言入力欄１３４、入室中のユーザの人数を示す人数表示欄１３５、発言表示欄１３３をスクロールさせるためのスクロールバー１３６、フレンドリスト表示用のアイコン１３７、及び参加者リスト表示用のアイコン１３８が含まれる。
【０１３２】
フレンドリスト表示用のアイコン１３７にカーソルを移動させてＹＥＳボタンを押すと、図８に示す招待者選択画面１１０と同様の画面が表示され、所定の操作入力を行うことによって、当該チャットルームに他のユーザを招待することができる。また、参加者リスト表示用のアイコン１３８にカーソルを移動させてＹＥＳボタンを押すと、当該チャットルームに入室（参加）している全てのユーザのリスト（例えば、ニックネームとアバターのリスト）が表示される。
【０１３３】
チャット画面１３０は、コントローラ２０を介したユーザからの指示に応じて表示状態と非表示状態とに切り替わり、非表示状態が指示されると、チャット画面表示処理が一時的に中断され、チャット画面１３０は表示されない。
【０１３４】
チャット画面１３０が非表示状態に設定されて他の画面が表示されているとき（例えば、ゲームの実行中であり、そのゲーム画面が表示されているとき）に、入室中のチャットルームのルーム属性情報が追加されると（ルーム属性情報がルーム特定情報に関連付けて新たに記憶されると）、追加されたルーム属性情報を報知するチャット情報報知画面が、ゲーム画面上に重ねて表示される。
【０１３５】
例えば、図１３に示すように、「待合室」というルーム名のチャットルームに入室し、チャット画面を非表示状態に設定し、ゲーム画面１４０を表示しているときに、「待合室」に対して、ニックネーム「ポチ」さんが「了解です」と発言したとき（「了解です」というメッセージデータを、ニックネーム「ポチ」さんに対応するユーザＩＤに関連付けられて受信したとき）、これらの情報を含むチャット情報報知画面１４１が表示される。また、ニックネーム「はな子」さんが「待合室」に入室したとき、「はな子さんが待合室に参加しました」という文章を含むチャット情報報知画面が表示される。なお、チャット情報報知画面１４１を表示する範囲及び位置は、ゲームの実行に支障がないように、可能な限り狭く且つゲーム画像１４０の周縁の近くであることが好ましい。
【０１３６】
＜チャットルームからの退室＞
ユーザＢがチャットルームＲＡから退室する場合のクライアント端末装置１Ｂ及びマッチングサーバ３の動作を説明する。
【０１３７】
ユーザＢが、コントローラ２０Ｂを操作することによりチャットルームＲＡを指定し退室を指示すると、クライアント端末装置１Ｂは、コントローラ２０Ｂから退室指示信号を受信し、退室要求処理を開始する。退室要求処理では、ユーザＩＤ（Ｂ）及びサーバＩＤを含む退室要求情報をマッチングサーバ３Ａへ送信する。
【０１３８】
退室要求情報を受信したマッチングサーバ３Ａは、退室処理を開始する。退室処理において、マッチングサーバ３Ａは、受信した退室要求情報に含まれるルームＩＤに関連付けて登録されているユーザＩＤの中から、受信したユーザＩＤ（Ｂ）を抽出して消去する。ユーザＩＤ（Ｂ）の消去によって、クライアント端末装置１ＢがチャットルームＲＡから退室した状態となる。そして、マッチングサーバ３Ａは、退室完了情報を、チャットルームＲＡに関連付けて登録されている全てのクライアント端末装置１（退室要求を行ったクライアント端末装置１Ｂを含む）に対して送信する。
【０１３９】
チャットルームＲＡから全てのクライアント端末装置１が退室すると（チャットルームＲＡに関連付けて登録されたユーザＩＤが全て消去されると）、マッチングサーバ３Ａは、チャットルームＲＡに関する全ての情報（ルームキーＲＫａとこれに関連付けて記憶された全てのデータ）を、ルーム情報登録テーブルから消去する。関連する全ての情報の消去によって、チャットルームＲＡが消去された状態となる。
【０１４０】
クライアント端末装置１Ｂにおける退室要求処理は、自己に対する退室完了情報をマッチングサーバ３Ａから受信することによって終了する。
【０１４１】
以上説明したように、マッチングサーバ３は、開設中のチャットルームから全てのクライアント端末装置１が退室したときに当該チャットルームを消去する。また、マッチングサーバ３は、既に消去したチャットルームに対してクライアント端末装置１から入室要求を受けたときには、そのチャットルームを再度開設する。
【０１４２】
すなわち、各マッチングサーバ３には、１つ以上のクライアント端末装置１が入室しているアクティブなチャットルームのみが存在し、クライアント端末装置１が全く入室していないインアクティブなチャットルームは存在しないことになる。
【０１４３】
従って、インアクティブな状態のチャットルームの存在によってマッチングサーバ３の記憶部１５の残容量が圧迫されてしまうことがなく、記憶部１５に必要な記憶容量を最小限に抑えることができ、記憶部１５の効率的な利用が可能となる。
【０１４４】
クライアント端末装置１がチャットルームへの入室を要求した際にそのチャットルームが消去されている場合には、チャットルームが消去されていることがユーザに全く報知されないまま、クライアント端末装置１は、入室要求処理に続けて開設要求処理を実行し、マッチングサーバ３にチャットルームを開設して入室する。従って、チャットシステムＳＹＭを利用するユーザに対して、違和感を与えることがない。
【０１４５】
チャットルームから退室中の各クライアント端末装置１は、そのチャットルームが存在するマッチングサーバ３のサーバＩＤをサーバキーのハッシュ値として算出し、その算出に使用するサーバキーとハッシュ関数とは、各クライアント装置１の間で同一である。また、ハッシュ関数は、複数のマッチングサーバ３が偏り無く選択されるように設定され、マッチングサーバ３の増減に応じて適宜更新される。すなわち、チャットルームから全てのクライアント端末装置１が退室している間に、マッチングサーバ３が増設され、上記ハッシュ関数が更新され、算出されるサーバＩＤが変更されてしまう場合であっても、各クライアント端末装置１において算出されるサーバＩＤは、全て同じマッチングサーバ３に対応するように変更される。従って、マッチングサーバ３の増設後のサーバ負荷の分散を効率よく行うことができる。
【０１４６】
チャットの開始時（チャットルームへの入室時）には、ルーム選択画面１２０がモニタ装置１０に表示される。ルーム選択画面１２０には、選択可能なチャットルームを示すルーム対応画像１２１が配列表示され、各ルーム対応画像１２１は、各チャットルームに関連付けて記憶されたチャット履歴情報及びルーム属性情報のうち少なくとも一つの情報を含む。従って、ユーザは、入室可能な各チャットルームの内容を容易に把握して、所望のチャットルームに入室することができる。
【０１４７】
ユーザは、自己が参加可能なチャットルームをクライアント端末装置１側で一元的に管理することができる。
【０１４８】
ユーザがチャットルームに入室してチャットを実行しているときには、そのチャットルームに対応したチャット画面１３０がモニタ装置１０に表示される。また、チャット画面１３０には、そのチャットルームに関連付けられたチャット履歴情報のうち最新の情報を含む少なくとも一部の情報と、ルーム属性情報のうち少なくともルーム名を含む一部の情報とが表示される。従って、チャットシステムＳＹＭのユーザは、サーバ装置が全てのチャット履歴情報を記憶して一元的に管理し、各クライアント端末装置がサーバ装置からチャット履歴情報の提供を受けて表示する場合と同様の感覚でチャットを行うことができる。
【０１４９】
チャット画面１３０は、ユーザからの指示に応じて表示状態と非表示状態とに切り替わり、チャット画面１３０が非表示状態で他の画面（例えばゲーム画面１４０）が表示されているときに、入室中のチャットルームに対する他のクライアント端末装置１の入室や退室が行われた場合や、他のクライアント端末装置１からのチャットデータが送信された場合等には、それらを報知するチャット情報報知画面１４１が他の画面（ゲーム画面１４０）上に重ねて表示される。従って、ゲームなどの他の処理を実行しならが、他のユーザとのチャットを容易に行うことができる。
【０１５０】
なお、上記実施形態では、マッチングサーバ３に存在しないチャットルームに対してクライアント端末装置１が入室を要求した場合、マッチングサーバ３は、クライアント端末装置１からチャットルームの開設要求を受けること開始条件としてチャットルームを開設するが、マッチングサーバ３に存在しないとの判定を開始条件としてチャットルームを開設してもよい。
【０１５１】
次に、本発明の第２実施形態について説明する。本実施形態は、第１実施形態のチャットシステムＳＹＭを、テキストチャットとボイスチャット（音声チャット）とを並行して実行可能なシステムボイスチャットに適用したものであり、第１実施形態のチャットルームの一部又は全部は、システムボイスチャット用のチャットルーム（システムボイスチャットルーム）として設定される。すなわち、本実施形態のチャットシステムＳＹＭは、音声データがテキストデータと同様にチャットデータとして送受信されることを除き、第１実施形態と共通する。なお、第１実施形態と共通する構成については、同一の符号を付してその説明を省略する。また、以下では、第１実施形態のチャットルームのうち一部のチャットルームがシステムボイスチャットルームとして設定される場合について説明する。また、システムボイスチャットルームに入室可能な人数を少人数に制限してもよく、以下では、システムボイスチャットルームに入室可能な最大人数が４名に制限される場合について説明する。
【０１５２】
システムボイスチャットを実行するクライアント端末装置１では、マイクロフォン１２から入力された音声信号に基づいてサウンドシステム６０がチャットデータ（音声チャットデータ）を生成し、生成されたチャットデータを通信部８０が送信する。また、サウンドシステム６０は、通信部８０がインターネット３０を介して取得したチャットデータ（音声チャットデータ）を、音声コーデックにより復号し、アナログ変換して波形データを生成し、これをサウンドバッファ６２に記録し、スピーカ６３から音声として出力させる。すなわち、サウンドシステム６０は、チャット実行部１３として機能する。
【０１５３】
第１実施形態と同様に、マッチングサーバ３は、クライアント端末装置１から設定要求情報を受信すると、そのクライアント端末装置１とチャットルームとを相互に関連付けて記憶部１７に登録する。また、クライアント端末装置１から入室要求情報を受信すると、受信した入室要求情報によって特定されるチャットルームが記憶部１７に登録されているか否かを判定し、当該チャットルームが記憶部１７に登録されていると判定した場合は、クライアント端末装置１を当該チャットルームに関連付けて記憶部１７に登録する。一方、当該チャットルームが記憶部１７に登録されていないと判定した場合は、クライアント端末装置１と当該チャットルームとを相互に関連付けて記憶部１７に登録する。マッチングサーバ３は、テキストチャット用のチャットルーム（テキストチャットルーム）とシステムボイスチャット用のチャットルーム（システムボイスチャットルーム）とを区別して登録してもよく、両者を区別せずに登録してもよい。
【０１５４】
マッチングサーバ３は、一つのテキストチャットルームに対して関連付けて登録された複数のクライアント端末装置１間において、メッセージデータ（テキストチャットデータ）の送受信によるテキストチャットの実行を制御する。また、マッチングサーバ３は、一つのシステムボイスチャットルームに対して関連付けて登録された複数のクライアント端末装置１間において、メッセージデータの送受信によるテキストチャットの実行と、音声データ（音声チャットデータ）の送受信による音声チャットの実行とを制御する。
【０１５５】
次に、ユーザＡがシステムボイスチャットルームＳＶＲＡを開設する場合にモニタ装置１０Ａに表示される画面と、ユーザＢが所望のチャットルームに入室（チャットに参加）する場合にモニタ装置１０Ｂに表示される画面と、システムボイスチャット実行中のチャット画面とについて説明する。
【０１５６】
チャットルームを新規に開設する場合、ユーザＡは、コントローラ２０Ａを操作してチャットルームの新規開設を指示する所定の入力を行う。クライアント端末装置１Ａは、コントローラ２０Ａからルーム開設指示信号を受信すると、開設要求処理を開始する。開設要求処理において、クライアント端末装置１Ａは、図１４に示すように、選択可能なチャットの種類が列挙された選択要求画面１５０をモニタ装置１０Ａに表示させる。選択要求画面１５０には、「チャットの種類を選択してください」などの文章１５１と、選択可能なチャットの種類とが表示される。この例では、テキストチャット（第１実施形態のチャット）とＡＶチャットとシステムボイスチャット（本実施形態のチャット）とが選択可能であり、テキストチャットに対応する「テキストチャット」の文字１５２ａ及びアイコン１５２ｂと、ＡＶチャットに対応する「チャット」の文字１５３ａ及びアイコン１５３ｂと、システムボイスチャットに対応する「ボイス＋テキストチャット」の文字１５４ａ及びアイコン１５４ｂとが、上下に並んで表示される。なお、ＡＶチャットとは、画像及び音声によるチャットである。ユーザＡがコントローラ１０Ａを操作して「ボイス＋テキストチャット」の文字１５４ａにカーソルを設定し、所定のＹＥＳボタンを押すと、クライアント端末装置１Ａは、システムボイスチャットルームの開設が要求されたことを認識して記憶し、開設要求情報をマッチングサーバ３に送信する。
【０１５７】
ユーザＡによってチャットの種類が選択された後、クライアント端末装置１Ａは、第１実施形態と同様に、ルーム名入力画面１００及び招待者選択画面１１０をモニタ装置１０Ａに順次表示させる。招待者選択画面１１０において、ユーザＡがシステムボイスチャットルームＳＶＲＡに招待したいユーザとしてユーザＢを選択して確定すると、クライアント端末装置１Ａは、システムボイスチャットルームＳＶＲＡへ招待する旨を示すメッセージデータ、自己のユーザＩＤ、読み出したサーバキーとルームキーとルーム名を含む招待情報を生成し、生成した招待情報を、クライアント端末装置１Ｂを宛先としてメッセージサーバ４へ送信する。クライアント端末装置１Ａから招待情報を受信したメッセージサーバ４は、この招待情報をクライアント端末装置１Ｂへ送信する。招待情報を受信したクライアント端末装置１Ｂは、チャットルームへの招待を受けた旨を示す画像（例えば、「Ａさんからシステムボイスチャットルームに招待されました」などの文章）を、モニタ装置１０Ｂに適宜表示させる。
【０１５８】
チャットルーム（テキストチャットルーム又はシステムボイスチャットルーム）への入室を希望するユーザＢは、第１実施形態と同様に、コントローラ２０Ｂを操作して所定の入力を行い、図１５に示すようなルーム選択画面１２０をモニタ装置１０Ｂに表示させる。図１５のルーム選択画面１２０は、システムボイスチャットルームのルーム対応画像１２１に、システムボイスチャットルームであることを示すシステムボイス表示画像１２８が含まれることを除き、図１０のルーム選択画面１２０と共通する。図１５の例では、選択可能な５つのチャットルームのうち２つがシステムボイスチャットルームであり、ルーム対応画像１２１ａ，１２１ｃには、それぞれシステムボイス表示画像１２８が含まれる。ユーザＢは、ルーム対応画像１２１ｃにカーソルを移動させてＹＥＳボタンを押すことにより、対応するシステムボイスチャットルームに入室してシステムボイスチャットを行うことができる。
【０１５９】
ルーム選択画面１２０は、所定時間毎に又は新規のテキストチャットデータの受信時に更新され、その更新時において、ユーザＢが複数のチャットルームに入室している場合、これら入室中の各チャットルームにおける最新の発言の日時（最後に登録した自己又は他人のテキストチャットデータの登録の日時）が新しい順に並ぶようにソートされる。なお、入室中のチャットルームがシステムボイスチャットルームを含む場合、入室中のチャットルームの表示順序は、テキストチャットデータの登録の日時のみによって決定され、音声チャットデータの送受信の日時は反映されない。
【０１６０】
システムボイスチャットを実行しているクライアント端末装置１Ｂは、入室中のシステムボイスチャットルームに対応したチャット画面１６０をモニタ装置１０Ｂに表示させる。チャット画面１６０は、参加者表示欄１６１とボイスチャット設定用のアイコン１６２の他、第１実施形態と同様に、ルーム名表示欄１３２、発言表示欄１３３、発言入力欄１３４、人数表示欄１３５、スクロールバー１３６、フレンドリスト表示用のアイコン１３７、及び参加者リスト表示用のアイコン１３８が表示される。参加者表示欄１６１は、システムボイスチャットルームに同時に入室可能な最大人数分（本実施形態では４名分）が表示され、各参加者表示欄１６１には、システムボイスチャットルームに入室している参加者のアバター１２５が表示される。参加者表示欄１６１に表示されるアバター１２５は、他人のアバター１２５ｂの他、自己（ユーザＢ）のアバター１２５ａも含まれる。また、参加者が最大人数に達していない場合、一部（図１６の例では２箇所）の参加者表示欄１６１にはアバター１２５が表示されない。アバター１２５が表示された参加者表示欄１６１の下には、その参加者のニックネーム（図１６の例では自己（ユーザＢ）のニックネーム「ポチ」と他人のニックネーム「次郎」）が表示される。さらに、参加者表示欄１６１には、音声を発している話者を特定する発言者アイコン１６３が表示される。ユーザＢは、スピーカ６３から出力される音声が誰の音声であるかを、発言者アイコン１６３を見ることによって認識することができる。なお、ボイスチャット設定用のアイコン１６２は、ボイスチェンジャー機能の設定操作や音声機器の設定操作やマイクロフォン１２のオン／オフ操作やスピーカ６３の音量調整を行う際に選択されるアイコンである。
【０１６１】
本実施形態によれば、システムボイスチャットルームに参加しているユーザ同士は、テキストチャットと音声チャットとを、適宜自由に選択して実行することができる。
【０１６２】
また、テキストチャットと音声チャットとの選択が任意であるので、例えば、システムボイスチャットルームに参加しているユーザ同士は、音声チャット（音声チャットデータ）によるクライアント端末装置１やネットワーク３０の負荷が過大となり音声チャットによって会話を進行させることが困難な場合に、同じシステムボイスチャットルームにおいて、そのままテキストチャットによって会話を続けることができる。
【０１６３】
＜変形例１＞
第２実施形態のシステムボイスチャットに参加中のユーザＡとユーザＢとは、同じグループの仲間としてネットワーク対戦型のゲームに参加することを希望する場合がある。本例は、各クライアント端末装置１において、チャット参加者リストとゲーム参加者リストとを照合することにより、上記ユーザの要求を簡単に実現させる。
【０１６４】
ユーザＡのクライアント端末装置１ＡとユーザＢのクライアント端末装置１Ｂとは、同一のネットワーク対戦型のゲームプログラムを実行可能であり、当該対戦型のゲームは、複数のグループに分かれて対戦を行うゲーム（以下単に対戦型ゲームを称する）である。
【０１６５】
図１７に示すように、クライアント端末装置１は、通信部８０とチャット実行部１３と表示制御部１４と記憶部１５とゲーム実行部１８とから構成され、これらはバスを介して接続される。ゲーム実行部１８は、記憶部１５に記憶されたゲームプログラムに従ってゲーム処理を実行する。なお、ＣＰＵ４１（図３参照）はゲーム実行部として機能する。
【０１６６】
以下、ユーザＡとユーザＢとが同じシステムボイスチャットルームに参加し、且つユーザＡ（クライアント端末装置１Ａ）が参加している対戦型ゲームにユーザＢ（クライアント端末装置１Ｂ）が後から参加する場合について説明する。
【０１６７】
クライアント端末装置１Ｂのゲーム実行部１８Ｂが対戦型ゲームを起動すると、ゲーム実行部１８Ｂは、対戦型ゲームに既に設定されているグループの情報と各グループに属しているユーザの情報とを、ゲーム参加者リストとしてインターネット３０を介して取得する。ゲーム参加者リストの提供元は、例えば対戦型ゲームの進行を管理するサーバ装置や既に対戦型ゲームに参加している他のクライアント端末装置１である。ゲーム参加者リストを受信したゲーム実行部１８Ｂは、ユーザＡが所定のグループ（グループＸ）に所属していることを認識することができる。
【０１６８】
ゲーム実行部１８Ｂは、対戦型ゲームの起動時から対戦型ゲームの何れのグループに所属するかを決定する時までの間の所定時に、チャット実行部１３Ｂが起動中（処理を実行中）であるか否かを検出する。チャット実行部１３Ｂが起動中であると検出した場合、ゲーム実行部１８Ｂは、チャット実行部に１３Ｂに対してシステムボイスチャットに参加中のユーザ（ユーザ特定情報（ユーザＩＤ））を示すリスト（チャット参加者リスト）の提供を要求する。
【０１６９】
ゲーム実行部１８Ｂからチャット参加者リストの提供の要求を受けたチャット実行部１３Ｂは、ユーザＢが現在参加中のシステムボイスチャットが存在するか否かを判定し、参加中のシステムボイスチャットが存在する場合、チャット参加者リストをゲーム実行部１８Ｂに提供する。一方、ユーザＢが現在参加しているシステムボイスチャットが存在しない場合、チャット実行部１３Ｂは、チャット参加者リストが存在しない旨をゲーム実行部１８Ｂに通知する。
【０１７０】
チャット参加者リストの提供を受けたゲーム実行部１８Ｂは、ゲーム参加者リストとチャット参加者リストとを照合し、両リストに重複したユーザが存在するか否かを判定する。本例では、ユーザＡが両リストに重複したユーザであると判定される。重複したユーザが存在する場合、ゲーム実行部１８Ｂは、何れのグループに所属してゲームに参加するかの選択をユーザＢに対して要求する画面をモニタ装置１０Ｂに表示する際に、両リストに重複したユーザが何れのグループに所属しているかを報知する画像（グループＸにユーザＡが所属していることを報知する画像）を表示させる。この画像を見たユーザＢは、グループＸへの所属を選択することによって、ユーザＡと同じグループに容易に所属することができる。
【０１７１】
このように、変形例１によれば、システムボイスチャットに参加中のユーザＡとユーザＢとは、同じグループの仲間としてネットワーク対戦型のゲームに容易に参加することができる。特に、システムボイスチャットに参加するためにユーザＡが使用しているニックネーム（チャット用ニックネーム）と、対戦型ゲームに参加するためにユーザＡが使用しているニックネーム（ゲーム用ニックネーム）とが相違している場合に、グループＸにユーザＡが所属していることを報知する画像中でユーザＡをチャット用ニックネームによって表示することにより、ユーザＢは、容易に且つ確実にユーザＡが所属するグループを認識して同じグループに所属することができる。
【０１７２】
＜変形例２＞
上記変形例１において、同じチャットルームに参加中のユーザＡとユーザＢとが異なるグループにそれぞれ所属して対戦型ゲームに参加した場合、グループ内のゲームに関する非公開の情報を、一方のユーザが他方のユーザに対してチャットを用いて提供する行為（いわゆるチート行為）が行われる可能性が生じる。特に、システムボイスチャットにおける音声による会話では、チート行為が実行され易い。本例では、このようなチート行為を防止するため、システムボイスチャットに参加中のユーザＡとユーザＢとが異なるグループにそれぞれ所属して対戦型ゲームに参加することを未然に回避する。
【０１７３】
同じシステムボイスチャットに参加中のユーザＡとユーザＢとが異なるグループにそれぞれ所属して対戦型ゲームに参加する態様としては、ユーザＡとユーザＢとが同じシステムチャットルームに参加している状態で、ユーザＡが既に参加している対戦型ゲームにユーザＢが後から参加してユーザＡとは異なるグループに所属する場合（第１のケース）と、ユーザＡとユーザＢとが同じ対戦型ゲームに異なるグループにそれぞれ所属して参加している状態で、ユーザＡが参加しているシステムチャットルームにユーザＢが後から参加する場合（第２のケース）とがある。
【０１７４】
上記第１のケースに対応するため、本例では、変形例１と同様に、ゲーム実行部１８Ｂは、対戦型ゲームの起動時から対戦型ゲームの何れのグループに所属するかを決定する時までの間の所定時に、チャット実行部１３Ｂが起動中であるか否かを検出する。チャット実行部１３Ｂが起動中であると検出した場合、ゲーム実行部１８Ｂは、チャット実行部に１３Ｂに対してシステムボイスチャットのチャット参加者リストの提供を要求する。
【０１７５】
ゲーム実行部１８Ｂからチャット参加者リストの提供の要求を受けたチャット実行部１３Ｂは、ユーザＢが現在参加中のシステムボイスチャットが存在するか否かを判定し、参加中のシステムボイスチャットが存在する場合、チャット参加者リストをゲーム実行部１８Ｂに提供する。一方、ユーザＢが現在参加しているシステムボイスチャットが存在しない場合、チャット実行部１３Ｂは、チャット参加者リストが存在しない旨をゲーム実行部１８Ｂに通知する。
【０１７６】
チャット参加者リストの提供を受けたゲーム実行部１８Ｂは、ゲーム参加者リストとチャット参加者リストとを照合し、両リストに重複したユーザが存在するか否かを判定する。本例では、ユーザＡが両リストに重複したユーザであると判定される。重複したユーザが存在する場合、ゲーム実行部１８Ｂは、何れのグループに所属してゲームに参加するかの選択をユーザＢに対して要求する画面をモニタ装置１０Ｂに表示する際に、重複したユーザ（ユーザＡ）が参加しているシステムボイスチャットルームから退室するか否かをユーザＢに選択させるための選択画面を、モニタ装置１０Ｂに表示させる。この選択画面には、例えば、「グループＸにユーザＡが所属しているため、グループＸ以外のグループは選択できない」などように、重複したユーザと当該ユーザが所属するグループとを特定する文章が含まれる。ユーザＡが参加しているシステムボイスチャットルームから退室することをユーザＢが選択した場合、チャット実行部１３Ｂは、当該システムボイスチャットルームからの退室処理を実行し、ゲーム実行部１８Ｂは、グループＸを含む全てのグループを所属可能なグループとしてモニタ装置１０Ｂに表示させ、ユーザＢは、全てのグループの中から所属を希望するグループを任意に選択する。一方、ユーザＡが参加しているシステムボイスチャットルームから退室しないことをユーザＢが選択した場合、ゲーム実行部１８Ｂは、グループＸのみを所属可能なグループとしてモニタ装置１０Ｂに表示させ、ユーザＢには、グループＸの選択のみが許容される。
【０１７７】
従って、ユーザＡとユーザＢとが同じシステムチャットルームに参加している状態で、ユーザＡが既に参加している対戦型ゲームにユーザＢが後から参加する場合、ユーザＢは、ユーザＡが参加しているシステムボイスチャットルームからの退室することを条件に、ユーザＡとは異なるグループに所属して対戦型ゲームに参加することができ、また、ユーザＡと同じグループに所属して対戦型ゲームに参加することを条件に、ユーザＡが参加しているシステムボイスチャットルームに継続して参加することができる。
【０１７８】
また、上記第２のケースに対応するため、チャット実行部１３Ｂは、退室中又は新規のチャットルームに参加する際に、ゲーム実行部１８Ｂが起動しているか否かを検出する。ゲーム実行部１８Ｂが起動中であると検出した場合、チャット実行部１３Ｂは、チャットへの参加をゲーム実行部１８Ｂに通知する。チャットへの参加の通知を受けたゲーム実行部１８Ｂは、実行中のゲームが対戦型ゲームであるか否かを判定し、対戦型ゲームの場合、チャット実行部１３Ｂに対し、システムボイスチャットに参加中のユーザのリスト（チャット参加者リスト）の提供を要求する。
【０１７９】
ゲーム実行部１８Ｂからチャット参加者リストの提供の要求を受けたチャット実行部１３Ｂは、ユーザＢが現在参加しているシステムボイスチャットが存在するか否かを判定し、参加しているシステムボイスチャットが存在する場合、チャット参加者リストをゲーム実行部１８Ｂに提供する。一方、ユーザＢが現在参加しているシステムボイスチャットが存在しない場合、チャット実行部１３Ｂは、ユーザ参加リストが存在しない旨をゲーム実行部１８Ｂに通知する。
【０１８０】
チャット参加者リストの提供を受けたゲーム実行部１８Ｂは、既に取得しているゲーム参加者リストとチャット参加者リストとを照合し、両リストに重複した他のユーザ（ユーザＢ以外のユーザ）が存在し、且つその重複したユーザがユーザＢが所属するグループ以外のグループに所属しているか否かを判定する。本例では、ユーザＡが両リストに重複したユーザであり、且つユーザＢが所属するグループ（グループＹ）以外のグループ（グループＸ）にユーザＡが所属していると判定される。重複するユーザが存在しない場合及び重複する全てのユーザがユーザＢが所属するグループに所属している場合、ゲーム実行部１８は、ゲーム処理を中断せずにそのまま進行させる。一方、重複する他のユーザがユーザＢが所属するグループ以外のグループに所属している場合（ユーザＡがグループＸに所属し、ユーザＢがグループＹに所属している場合）、ゲーム実行部１８は、ゲーム処理を一時中断し、ゲームの終了、又は重複する他のユーザ（ユーザＡ）が参加しているシステムボイスチャットルームからの退室のうち、一方の選択をユーザＢに要求する選択画面を、モニタ装置１０Ｂに表示させる。ユーザＢがゲームの終了を選択すると、ゲーム実行部１８は、中断しているゲーム処理を終了する。また、ユーザＢがシステムボイスチャットルームからの退室を選択すると、チャット実行部１３Ｂは、当該システムボイスチャットルームからの退室処理を実行し、ゲーム実行部１８Ｂは、中断しているゲーム処理を再開する。
【０１８１】
従って、ユーザＡとユーザＢとが同じ対戦型ゲームに異なるグループにそれぞれ所属して参加している状態で、ユーザＡが参加しているシステムチャットルームにユーザＢが後から参加しようとした場合、ユーザＢは、ユーザＡが参加しているシステムボイスチャットルームに参加しないことを条件に、実行中の対戦型ゲームに継続して参加することができ、また、対戦型ゲームを終了することを条件に、ユーザＡが参加しているシステムボイスチャットルームに参加することができる。
【０１８２】
なお、上記例では、ユーザＡとユーザＢとが同じシステムチャットルームに参加し、且つユーザＡが既に参加してグループＸに所属している対戦型ゲームにユーザＢが後から参加する場合において、ユーザＡが参加しているシステムボイスチャットルームから退室するか、又はグループＸ以外のグループに所属して対戦型ゲームに参加するかを、ユーザＢに対して問い合わせているが、この問い合わせを行うことなく、ユーザＡが参加しているシステムボイスチャットルームからの退室処理をチャット実行部１３Ｂが実行してもよく、或いはユーザＡと同じグループへの所属をゲーム実行部１８Ｂが実行してもよい。
【０１８３】
同様に、上記例では、ユーザＡとユーザＢとが同じ対戦型ゲームに異なるグループにそれぞれ所属して参加し、且つユーザＡが参加しているシステムチャットルームにユーザＢが後から参加する場合、ユーザＡが参加しているシステムボイスチャットルームから退室するか、又は対戦型ゲームを終了するかを、ユーザＢに対して問い合わせているが、この問い合わせを行うことなく、ユーザＡが参加しているシステムボイスチャットルームからの退室処理をチャット実行部１３Ｂが実行してもよく、或いはゲーム実行部１８Ｂがゲームを終了してもよい。
【０１８４】
＜変形例３＞
本例は、ユーザＡとユーザＢとが同じシステムボイスチャットに参加し且つ対戦型ゲームにそれぞれ異なるグループに所属して参加することを、ゲーム参加中の全ユーザに対して公開することを条件に許容することにより、チート行為を防止するものである。
【０１８５】
すなわち、ゲーム参加者とチャット参加者とに重複したユーザが存在する場合、ゲーム実行部１８は、重複したユーザ（ユーザＡとユーザＢ）とを関連付けたゲーム参加者リストを作成し、インターネット３０を介してゲームに参加している他のユーザのクライアント端末装置１に送信する。各クライアント端末装置１のゲーム実行部１８は、受信した参加者リストを参照し、モニタ装置１０に表示するゲーム画面のプレイヤー一覧において、ユーザＡとユーザＢとを関連付けて表示させる（例えば、ユーザＡのニックネームとユーザＢのニックネームとに同じマークを付して表示させる）。
【０１８６】
＜変形例４＞
上記変形例２では、システムボイスチャットルームからの退室またはシステムボイスチャットルームへの参加禁止によってチート行為を防止しているが、本例では、これに代えて、システムボイスチャットにおける音声データの送受信を禁止することによってチート行為を防止する。
【０１８７】
すなわち、上記第１のケースにおいて、ゲーム参加者リストとチャット参加者リストとに重複したユーザが存在する場合、ゲーム実行部１８Ｂは、重複したユーザ（ユーザＡ）が参加しているシステムボイスチャットルームにおける音声データの送受信を禁止するか否かをユーザＢに選択させるための選択画面を、モニタ装置１０Ｂに表示させ、ユーザＡが参加しているシステムボイスチャットルームにおける音声データの送受信を禁止することをユーザＢが選択した場合、チャット実行部１３Ｂは、当該システムボイスチャットルームにおける音声データの送受信を禁止し、ゲーム実行部１８Ｂは、グループＸを含む全てのグループを所属可能なグループとしてモニタ装置１０Ｂに表示させ、ユーザＢは、全てのグループの中から所属を希望するグループを任意に選択する。一方、ユーザＡが参加しているシステムボイスチャットルームにおける音声データの送受信を禁止しないことをユーザＢが選択した場合、ゲーム実行部１８Ｂは、グループＸのみを所属可能なグループとしてモニタ装置１０Ｂに表示させ、ユーザＢには、グループＸの選択のみが許容される。
【０１８８】
また、上記第２のケースにおいて、ゲーム参加者リストとチャット参加者リストとに重複した他のユーザが存在し、且つその重複したユーザ（ユーザＡ）がユーザＢが所属するグループ以外のグループに所属している場合、ゲーム実行部１８Ｂは、ゲーム処理を一時中断し、ゲームの終了、又は重複する他のユーザ（ユーザＡ）が参加しているシステムボイスチャットルームにおける音声データの送受信の禁止のうち、一方の選択をユーザＢに要求する選択画面を、モニタ装置１０Ｂに表示させる。ユーザＢがゲームの終了を選択すると、ゲーム実行部１８は、中断しているゲーム処理を終了する。また、ユーザＢがシステムボイスチャットルームにおける音声データの送受信の禁止を選択すると、チャット実行部１３Ｂは、当該システムボイスチャットルームにおける音声データの送受信を禁止し、ゲーム実行部１８Ｂは、中断しているゲーム処理を再開する。
【０１８９】
なお、上記変形例１〜３では、システムボイスチャットルームを対象としてチャット実行部１３がチャット参加者リストをゲーム実行部１８に提供しているが、テキストチャットルームを対象として同様の処理を行ってもよい。
【０１９０】
上述の各実施の形態及び変形例の説明は本発明の一例である。このため、本発明は上述の各実施の形態及び変形例に限定されることはなく、本発明に係る技術的思想を逸脱しない範囲であれば、上述以外であっても種々の変更が可能であることは勿論である。
【産業上の利用可能性】
【０１９１】
本発明は、メッセージデータによるチャットシステムに好適に用いることができる。
【符号の説明】
【０１９２】
１・・・クライアント端末装置（情報処理装置）、２・・・サーバ装置、１０・・・モニタ装置、１３・・・チャット実行部、１４・・・表示制御部、１５・・・記憶部、１６・・・チャット管理部、１７・・・記憶部、ＳＹＭ・・・チャットシステム
【図１】
0005534469.tif 000002
【図２】
0005534469.tif 000003
【図３】
0005534469.tif 000004
【図４】
0005534469.tif 000005
【図５】
0005534469.tif 000006
【図６】
0005534469.tif 000007
【図７】
0005534469.tif 000008
【図８】
0005534469.tif 000009
【図９】
0005534469.tif 000010
【図１０】
0005534469.tif 000011
【図１１】
0005534469.tif 000012
【図１２】
0005534469.tif 000013
【図１３】
0005534469.tif 000014
【図１４】
0005534469.tif 000015
【図１５】
0005534469.tif 000016
【図１６】
0005534469.tif 000017
【図１７】
0005534469.tif 000018