以下、本発明の実施形態の一例について図面に基づき詳細に説明する。
図1は、本発明の実施形態に係るメッセージ配信システムの全体構成を示す。図1に示すように、本実施形態に係るメッセージ配信システム10は、サーバ装置20(メッセージ配信制御装置)と、複数の情報処理装置30とを含む。サーバ装置20と複数の情報処理装置30とは、例えばLAN(Local Area Network)又は/及びインターネット等を含んで構成される通信ネットワーク12に接続される。サーバ装置20と情報処理装置30との間で相互にデータ通信が可能である。
サーバ装置20はメッセージの配信に関する制御を実行するための装置である。サーバ装置20は例えばサーバコンピュータによって実現される。図2はサーバ装置20のハードウェア構成を示す。図2に示すように、サーバ装置20は、制御部21、主記憶部22、補助記憶部23、光ディスクドライブ部24、及び通信インタフェース25を含む。
制御部21は例えばCPU(Central Processing Unit)等を含み、オペレーティングシステムやその他のプログラムに従って情報処理を実行する。主記憶部22は例えばRAM(Random Access Memory)を含む。補助記憶部23は例えばハードディスク装置を含む。光ディスクドライブ部24は光ディスクに記憶されたプログラムやデータを読み取る。通信インタフェース25はサーバ装置20を通信ネットワーク12に接続するためのインタフェースである。
情報処理装置30はユーザによって使用される情報処理装置である。情報処理装置30は、例えば、携帯電話機、携帯情報端末(PDA)、パーソナルコンピュータ、携帯用ゲーム機、又は家庭用ゲーム機(据置型ゲーム機)によって実現される。図3は情報処理装置30のハードウェア構成を示す。図3に示すように、情報処理装置30は、制御部31、主記憶部32、補助記憶部33、光ディスクドライブ部34、通信インタフェース35、入力部36、表示部37、及び音声出力部38を含む。
制御部31、主記憶部32、補助記憶部33、光ディスクドライブ部34、及び通信インタフェース35は、サーバ装置20の制御部21、主記憶部22、補助記憶部23、光ディスクドライブ部24、及び通信インタフェース25と同様である。入力部36は、例えばキー、レバー、タッチパネル、マウス、又はコントローラ等を含み、ユーザが各種操作/指示を行うためのものである。表示部37は例えば液晶表示パネル等であり、制御部31の指示に従って画面を表示する。音声出力部38は例えばスピーカ又はヘッドホン等を含み、制御部31の指示に従って音声データを出力する。
プログラムやデータは光ディスクを介してサーバ装置20又は情報処理装置30に供給される。なお、プログラムやデータは通信ネットワーク12を介して遠隔地からサーバ装置20又は情報処理装置30に供給されるようにしてもよい。
上記の構成を有するメッセージ配信システム10では、ユーザがメッセージを入力したり、他のユーザが入力したメッセージを見たりすることができるようなサービスが提供される。
メッセージ配信システム10によって提供されるサービスを利用したいユーザは、まず利用者登録を行う。すなわち、ユーザは情報処理装置30からサーバ装置20にアクセスして、自らの各種情報を登録する。利用者登録を行ったユーザは上記のサービスを利用できるようになる。
上記のサービスを利用する場合、ユーザは情報処理装置30からサーバ装置20にアクセスし、ログイン画面(図示せず)においてユーザID及びパスワードを入力する。入力されたユーザID及びパスワードはサーバ装置20に送信され、ユーザID及びパスワードの組み合わせが正当であるか否かが確認される。
なお、ユーザにユーザID及びパスワードを入力させる代わりに、情報処理装置30を一意に識別するための端末IDが情報処理装置30からサーバ装置20に自動的に送信されるようにしてもよい。そして、この端末IDに基づいてログイン処理が行われるようにしてもよい。このようにして、いわゆる「簡単ログイン」が実行されるようにしてもよい。
ユーザID及びパスワードの組み合わせが正当であると判定された場合(又は端末IDが正当であると判定された場合)、情報処理装置30の表示部37にメニュー画面が表示される。図4はメニュー画面の一例を示す。図4に示すメニュー画面40には4つのリンク42,44,46,48が表示されている。
リンク42は、メッセージを入力したい場合に選択すべきリンクである。リンク44は、他のユーザが入力したメッセージを見たい場合に選択すべきリンクである。リンク46は、他のユーザからの返信メッセージを見たい場合に選択すべきリンクである。リンク48は、お気に入りに設定したメッセージを見たい場合に選択すべきリンクである。
ユーザがリンク42を選択した場合、メッセージを入力するための入力画面が表示部37に表示される。図5は入力画面の一例を示す。図5に示す入力画面50には、入力欄52と、送信ボタン54と、閉じるボタン56とが表示されている。
入力欄52はユーザがメッセージを入力するための欄であり、ユーザが入力したメッセージが入力欄52に表示される。ユーザは入力部36を用いてメッセージを入力し、メッセージの入力を完了したら、送信ボタン54を選択する。送信ボタン54が選択された場合、ユーザが入力したメッセージがサーバ装置20に送信される(後述の図17のステップS101参照)。なお、閉じるボタン56はメッセージの入力を中止するためのボタンであり、閉じるボタン56が選択された場合にはメニュー画面40が表示される。
ユーザがメニュー画面40でリンク44が選択した場合、他のユーザが入力したメッセージを見るためのメッセージ画面が表示部37に表示される。図6はメッセージ画面の一例を示す。図6に示すメッセージ画面60には、アバター62と、吹き出し64と、閉じるボタン66とが表示されている。
アバター62は他のユーザに対応するキャラクタである。吹き出し64はアバター62に関連づけて表示される。他のユーザが入力したメッセージが吹き出し64内に表示される。このため、メッセージ画面60では、他のユーザの分身であるアバター62が、該他のユーザが入力したメッセージを話しているかのように演出される。
なお、図6に示すメッセージ画面60では5人のユーザのメッセージが表示されているが、6人以上のユーザのメッセージが表示されるようにしてもよいし、4人以下のユーザのメッセージが表示されるようにしてもよい。
メッセージ配信システム10では、他のユーザが入力したメッセージに対する返信等を行うことが可能である。具体的には、ユーザがいずれかのアバター62又は吹き出し64を選択すると、選択されたアバター62又は吹き出し64に関連づけられたメッセージに対する返信等を行うための返信画面が表示部37に表示される。図7は返信画面の一例を示す。図7に示す返信画面70には、表示欄72と、チェック欄74と、簡易返信ボタン76と、入力欄78と、返信ボタン80と、通報ボタン82と、閉じるボタン84とが表示されている。
表示欄72にはメッセージ画面60で選択されたメッセージが表示される。チェック欄74は、表示欄72に表示されたメッセージをお気に入りに設定するか否かを選択するための欄である。メッセージをお気に入りに設定する場合、ユーザはチェック欄74にチェックを付ける。一方、メッセージをお気に入りに設定しない場合、ユーザはチェック欄74にチェックを付けない。なお、お気に入りに設定されたメッセージは、メニュー画面40のリンク48を選択した場合に表示される画面(図示せず)に表示されることになる。
簡易返信ボタン76は、メッセージに対する返信を比較的簡易に行うためのボタンである。簡易返信ボタン76には「いいね!」との文字列が付されており、簡易返信ボタン76が選択された場合には「いいね!」とのメッセージが返信されることになる。なお、簡易返信ボタン76によって返信されるメッセージは「いいね!」に限られない。例えば「好き!」又は「おもしろい!」等の肯定的な評価を示す他のメッセージが「いいね!」の代わりに返信されるようにしてもよい。あるいは、例えば「つまらない!」等の否定的な評価を示すメッセージが返信されるようにしてもよい。
入力欄78は、ユーザが返信メッセージを入力するための欄であり、ユーザが入力した返信メッセージが入力欄78に表示される。「いいね!」以外の返信メッセージを返信したい場合にユーザは入力部36を用いて返信メッセージを入力し、返信メッセージの入力を完了したら、返信ボタン80を選択する。返信ボタン80が選択された場合、入力欄78に入力された返信メッセージがサーバ装置20に送信される。
通報ボタン82は、メッセージの内容が不快である旨をメッセージ配信システム10の管理者に通報するためのボタンである。メッセージの内容を読んで不快感を感じた場合にユーザは通報ボタン82を選択する。通報ボタン82が選択された場合、その旨がサーバ装置20に通知される。
閉じるボタン84は返信画面70からメッセージ画面60に戻るためのボタンである。また、メッセージ画面60(図6)における閉じるボタン66はメッセージ画面60からメニュー画面40に戻るためのボタンである。
なお、ユーザがメニュー画面40(図4)でリンク46を選択した場合、他のユーザからの返信メッセージを見るための画面(図示せず)が表示部37に表示される。また、ユーザがメニュー画面40(図4)でリンク48を選択した場合、ユーザが過去にお気に入りに設定したメッセージを見るための画面(図示せず)が表示部37に表示される。
以下、上記のメッセージ配信システム10において、例えば、メッセージを読んだ者に不快感を感じさせるようなメッセージが多数の人に配信されてしまうことを抑制したり、メッセージを読んだ者を愉快な気持ちにさせるようなメッセージを多数のユーザに配信したりするための技術について説明する。
図8はメッセージ配信システム10の特徴について説明するための図である。以下、図8を参照しながら、ユーザが入力したメッセージ(ここでは、便宜上、「メッセージX」と記載する。)の配信をどのように実行するかについて説明する。
メッセージ配信システム10では、ユーザが入力したメッセージXを複数の配信期間(第1回目〜第N回目の配信期間)において配信する。第1回目の配信期間ではメッセージXがM1名のユーザに配信される。なお、「M1」は数値を示している。
第1回目の配信期間と第2回目の配信期間との間には待機期間が設けられている。この待機期間は、第1回目の配信期間にメッセージXを受け取ったユーザから、メッセージXに対する返信等が送信されてくるのを待つための期間である。
第2回目の配信期間ではメッセージXがM2名のユーザに配信される。なお、「M2」も数値を示している。また、第2回目の配信期間と第3回目の配信期間との間にも待機期間が設けられている。この待機期間は、第2回目の配信期間にメッセージXを受け取ったユーザから、メッセージXに対する返信等が送信されてくるのを待つための期間である。
メッセージXの配信期間の回数(N)は、第1回目〜第(N−1)回目の配信期間にメッセージXを受け取ったユーザのメッセージXに対する評価に基づいて変化する。
なお、メッセージXに対する評価は、例えばメッセージXに対する返信数、メッセージXをお気に入りに設定したユーザ数や、メッセージXを通報対象に設定したユーザ数等を考慮して判断される。例えば、メッセージXに対する返信数やメッセージXをお気に入りに設定したユーザ数が多い場合には、メッセージXに対する評価が高くなり、メッセージXを通報対象に設定したユーザ数が多い場合には、メッセージXに対する評価が低くなる。
例えば、メッセージXに対する評価が低い場合には、メッセージXに対する評価が高い場合と比較して、配信期間の回数(N)が少ない数に設定される。
また、第N回目の配信期間ではメッセージXがMN名のユーザに配信される。なお、「MN」も数値を示している。この「MN」の値も、第1回目〜第(N−1)回目の配信期間にメッセージXを受け取ったユーザのメッセージXに対する評価に基づいて変化する。例えば、メッセージXに対する評価が低い場合には、メッセージXに対する評価が高い場合と比較して、「MN」の値が少ない値に設定される。
なお、図8では省略されているが、第2回目の配信期間にメッセージXを配信されるユーザの数(M2)は、第1回目の配信期間にメッセージXを受け取ったユーザのメッセージXに対する評価に基づいて変化する。同様に、第(N−1)回目の配信期間にメッセージXを配信されるユーザの数(MN−1)は、第1回目〜第(N−2)回目の配信期間にメッセージXを受け取ったユーザのメッセージXに対する評価に基づいて変化する。
以上のように、メッセージ配信システム10では、メッセージXに対する評価が低い場合に、メッセージXの配信期間の回数(N)や、メッセージXの配信相手として選出されるユーザの人数(M2〜MN)が比較的少ない数に設定される。例えば、メッセージXの内容が他人に不快感を感じさせるような内容である場合、一般的に、メッセージXに対する返信数やメッセージXをお気に入りに設定したユーザ数は少なくなり、メッセージXを通報対象に設定したユーザ数は多くなる。その結果、メッセージXに対する評価は低くなる。この点、メッセージ配信システム10では、上記のような機能を有する結果として、他人に不快感を感じさせるようなメッセージが多数のユーザに配信されてしまわないようになっている。
一方、メッセージ配信システム10では、メッセージXに対する評価が高い場合に、メッセージXの配信期間の回数(N)や、メッセージXの配信相手として選出されるユーザの人数(M2〜MN)が比較的多い数に設定される。例えば、メッセージXの内容が他人を愉快な気持ちにさせるような内容である場合、一般的に、メッセージXに対する返信数やメッセージXをお気に入りに設定したユーザ数は多くなり、メッセージXを通報対象に設定したユーザ数は少なくなる。この点、メッセージ配信システム10では、上記のような機能を有する結果として、他人を愉快な気持ちにさせるようなメッセージが多数のユーザに配信されるようになっている。
以下、上記に説明したような機能を実現するための構成について説明する。図9はメッセージ配信システム10で実現される機能ブロックのうち、上記機能に関連する機能ブロックを示す機能ブロック図である。図9に示すように、メッセージ配信システム10は記憶部90、メッセージ取得部92、配信部94、配信相手人数制御部96、及び評価情報取得部98を含む。例えば、これらの機能ブロックはサーバ装置20で実現される。
まず、記憶部90について説明する。記憶部90は各種データを記憶する。図10〜図16は記憶部90に記憶されるデータの例を示す。
図10はユーザテーブルの一例を示す。ユーザに関する情報がユーザテーブルに登録される。図10に示すユーザテーブルは「ユーザID」、「パスワード」、「アバター情報」、「配信相手人数レベル」、及び「配信回数レベル」フィールドを含んでいる。「ユーザID」フィールドにはユーザを一意に識別する識別情報が登録され、「パスワード」フィールドにはユーザのパスワードが登録される。
「アバター情報」フィールドには、ユーザの分身となるアバター62に関する情報が登録される。例えば、ユーザが予め用意されたアバターのうちのいずれかを自らのアバター62として選択するようになっている場合には、ユーザが選択したアバター62を示す情報が「アバター情報」フィールドに登録される。なお、ユーザが自らのアバター62を生成できるようになっている場合には、ユーザが生成したアバター62を示す情報が「アバター情報」フィールドに登録される。
「配信相手人数レベル」フィールドにはユーザの配信相手人数レベルが登録される。「配信相手人数レベル」は、ユーザが入力したメッセージを一の配信期間内に最大で何名の配信相手に配信するかを示す情報である。配信相手人数レベルと配信相手の最大人数との対応関係は、図11に示す配信相手人数レベルテーブルに定義されている。図11に示す配信相手人数レベルテーブルでは、配信相手人数レベルが高いほど、配信相手の最大人数が多くなるように設定されている。
図10に示すユーザテーブルでは、ユーザIDが「U001」であるユーザの配信相手人数レベルが「6」になっている。また、図11に示す配信相手人数レベルテーブルでは配信相手人数レベル「6」に対応する人数が「20名」になっている。このため、ユーザIDが「U001」であるユーザが入力したメッセージは、例えば、第1回目の配信期間内に20名のユーザに配信されることになる。すなわち、図8における「M1」が20に設定されることになる。
また、ユーザテーブルの「配信回数レベル」フィールドにはユーザの配信回数レベルが登録される。「配信回数」は配信期間の回数(図8参照)のことを意味しており、「配信回数レベル」は、ユーザによって入力されたメッセージの配信期間の基本回数を示す情報である。配信回数レベルと配信期間の基本回数との対応関係は、図12に示す配信回数レベルテーブルに定義されている。図12に示す配信回数レベルテーブルでは、配信回数レベルが高いほど、配信期間の基本回数が多くなるように設定されている。
図10に示すユーザテーブルでは、ユーザIDが「U001」であるユーザの配信回数レベルが「1」になっている。また、図12に示す配信回数テーブルでは配信回数レベル「1」に対応する回数が「3回」になっている。このため、例えば、ユーザIDが「U001」であるユーザが入力したメッセージの配信期間の回数の初期値が3回に設定されることになる。すなわち、図8における「N」の初期値が3に設定されることになる。なお、上述したように、メッセージの配信期間の回数(N)はメッセージに対する評価結果に基づいて増減される。
なお例えば、ユーザの配信相手人数レベルの初期値は「6」であり、配信回数レベルの初期値は「1」である。ユーザの配信相手人数レベル及び配信回数レベルは、ユーザが入力したメッセージに対する評価結果に基づいて上下する。例えば、評価が高いメッセージをユーザが入力し続けると、ユーザの配信相手人数レベル及び配信回数レベルは上がり、評価が低いメッセージをユーザが入力し続けると、ユーザの配信相手人数レベル及び配信回数レベルは下がる。詳細については後述する(図21のステップS505,S510及び図22のステップS605参照)。
図13はメッセージテーブルの一例を示す。ユーザが入力したメッセージに関する情報がメッセージテーブルに登録される。図13に示すメッセージテーブルは「メッセージID」、「メッセージ」、「ユーザID」、「入力日時」、及び「ジャンル」フィールドを含んでいる。
「メッセージID」フィールドにはメッセージを一意に識別する識別情報が登録される。「メッセージ」フィールドにはメッセージ自体が登録される。「ユーザID」フィールドにはメッセージを入力したユーザのユーザIDが登録される。「入力日時」フィールドにはメッセージが入力された日時が登録される。「ジャンル」フィールドにはメッセージのジャンルを示す情報が登録される。
図14は配信状況テーブルの一例を示す。メッセージの配信状況に関する情報が配信状況テーブルに登録される。図14に示す配信状況テーブルは「メッセージID」、「配信相手人数レベル」、「残り人数」、「最大配信回数」、「現在配信回数」、「ステータス」、「更新日時」、「直近の配信期間」フィールドを含む。
「配信相手人数レベル」フィールドには、メッセージの配信相手人数レベルが登録される。ユーザによってメッセージが入力された時点において、その時点におけるユーザの配信相手人数レベルがメッセージの配信相手人数レベルの初期値として「配信相手人数レベル」フィールドに登録される。なお、メッセージの配信相手人数レベルはメッセージに対する評価結果に基づいて上下する(図22のステップS602,S607参照)。
「残り人数」フィールドには、現在の配信期間内にメッセージの配信相手として選出可能な残り人数を示す情報が登録される。言い換えれば、現在の配信期間内にメッセージをあと何名のユーザに配信できるかを示す情報が「残り人数」フィールドに登録される。例えば、配信期間の開始時において、メッセージの配信相手人数レベルに対応する人数が「残り人数」フィールドに登録される。また例えば、メッセージの配信相手が選出されるごとに(すなわち、メッセージの配信相手として選出されたユーザにメッセージが配信されるごとに)、「残り人数」フィールドの値は1減少される(図18のステップS205及び図19のステップS306参照)。
「最大配信回数」フィールドにはメッセージの配信期間の最大回数が登録される。例えば、「最大配信回数」フィールドの初期値は、メッセージを入力したユーザの配信回数レベルに対応する回数に設定される。なお、「最大配信回数」フィールドの値はメッセージに対する評価結果に基づいて増減される(図21のステップS502,S507参照)。
「現在配信回数」フィールドには現在までに実行された配信期間の回数が登録される。「現在配信回数」フィールドの値は、例えば配信期間が終了するごとに1増加される(図18のステップS208及び図19のステップS309参照)。
「ステータス」フィールドにはメッセージの現在のステータスが登録される。「配信中」、「待機中」、及び「終了」のうちのいずれかが「ステータス」フィールドに登録される。「配信中」は現在がメッセージの配信期間内であることを示す。「待機中」は現在が待機期間内であることを示す。「終了」はメッセージの配信が終了したことを示す。
「更新日時」フィールドにはステータスが更新された最新の日時が登録される。「直近の配信期間」フィールドには直近の配信期間に関する情報が登録される。「直近の配信期間」フィールドは「開始日時」及び「終了日時」フィールドを含む。「開始日時」及び「終了日時」フィールドには直近の配信期間の開始日時及び終了日時が登録される。例えば、メッセージのステータスが「配信中」である場合、現在の配信期間の開始日時のみが「開始日時」フィールドに登録される。一方、メッセージのステータスが「待機中」又は「終了」である場合、前回の配信期間の開始日時及び終了日時が「開始日時」及び「終了日時」フィールドに登録される。
図15は履歴テーブルの一例を示す。メッセージの配信履歴とメッセージに対する返信/評価履歴とが履歴テーブルに登録される。図15に示す履歴テーブルは「メッセージID」、「配信相手ユーザID」、「配信日時」、「お気に入りフラグ」、「簡易返信フラグ」、「返信メッセージ」、「通報フラグ」、及び「返信/評価日時」フィールドを含んでいる。
「配信相手ユーザID」フィールドには、メッセージの配信相手であるユーザのユーザIDが登録される。「配信日時」フィールドにはメッセージが配信された日時が登録される。
「お気に入りフラグ」フィールドには、メッセージの配信相手であるユーザがメッセージをお気に入りに設定したか否かを示す情報が登録される。例えば、「お気に入りフラグ」フィールドには「0」又は「1」が登録される。値「0」はメッセージがお気に入りに設定されなかったことを示し、値「1」はメッセージがお気に入りに設定されたことを示す。
「簡易返信フラグ」フィールドには、メッセージの配信相手であるユーザが簡易返信を行ったか否か(すなわち、ユーザが返信画面70で簡易返信ボタン76を選択したか否か)を示す情報が登録される。例えば、「簡易返信フラグ」フィールドには「0」又は「1」が登録される。値「0」は簡易返信が行われなかったことを示し、値「1」は簡易返信が行われたことを示す。「返信メッセージ」フィールドには、メッセージの配信相手であるユーザが返信画面70で入力欄78に入力した返信メッセージが登録される。
「通報フラグ」フィールドには、メッセージの配信相手であるユーザがメッセージを通報対象に設定したか否か(すなわち、ユーザが返信画面70で通報ボタン82を選択したか否か)を示す情報が登録される。例えば、「通報フラグ」フィールドには「0」又は「1」が登録される。値「0」はメッセージが通報対象に設定されていないことを示し、値「1」はメッセージが通報対象に設定されたことを示す。「返信/評価日時」フィールドには、メッセージの配信相手であるユーザがメッセージに対する返信/評価を行った日時が登録される。
図16はカウンタテーブルの一例を示す。図16に示すカウンタテーブルは「ユーザID」、「第1カウンタ」、及び「第2カウンタ」フィールドを含んでいる。
「第1カウンタ」フィールドにはユーザの第1カウンタの値が登録される。「第1カウンタ」は、ユーザが入力したメッセージに対する評価が高いと判定された回数をカウントする役割を果たす(図21のステップS503,S508参照)。第1カウンタの値は、ユーザの配信回数レベルを上昇させるか否かを判断するために用いられる。すなわち、第1カウンタの値が所定値に達した場合にユーザの配信回数レベルが1上昇するようになっている(図21のステップS504,S505,S509,S510参照)。
「第2カウンタ」フィールドにはユーザの第2カウンタの値が登録される。「第2カウンタ」も、ユーザが入力したメッセージに対する評価が高いと判定された回数をカウントする役割を果たす(図22のステップS603参照)。ただし、第2カウンタの値は、ユーザの配信相手人数レベルを上昇させるか否かを判断するために用いられる。すなわち、第2カウンタの値が所定値に達した場合にユーザの配信相手人数レベルが1上昇するようになっている(図22のステップS604,S605参照)。
次に、メッセージ取得部92について説明する。メッセージ取得部92はユーザによって入力されたメッセージを取得する。本実施形態では、ユーザが入力画面50で入力したメッセージは情報処理装置30からサーバ装置20に送信されるようになっており、メッセージ取得部92は情報処理装置30から送信されるメッセージを取得する。
次に、配信部94、配信相手人数制御部96、及び評価情報取得部98について説明する。
配信部94は、ユーザによって入力されたメッセージを他のユーザに配信する。本実施形態の場合、配信部94(第1配信手段)は、ユーザによって入力されたメッセージを、他のユーザのうちから選出される一又は複数の第1配信相手ユーザに配信する。そして、第1配信相手ユーザへの配信が実行された後、配信部94(第2配信手段)は、上記のメッセージを、上記の他のユーザのうちから選出される一又は複数の第2配信相手ユーザに配信する。
図8を参照しながら説明した例の場合、例えば、第1回目の配信期間内における配信相手が「第1配信相手ユーザ」に相当する。また、第2回目〜第N回目の配信期間内における配信相手が「第2配信相手ユーザ」に相当する。なお、例えば、第2回目の配信期間と第3回目〜第N回目の配信期間とだけに注目するのであれば、第2回目の配信期間内における配信相手が「第1配信相手ユーザ」に相当し、第3回目〜第N回目の配信期間における配信相手が「第2配信相手ユーザ」に相当すると考えることもできる。
評価情報取得部98は、メッセージの配信を受けたユーザの該メッセージに対する評価に関する評価情報を取得する。また、配信相手人数制御部96は、第2配信相手ユーザとして選出されるユーザの数を、評価情報取得部98によって取得された評価情報に基づいて制御する。
本実施形態の場合、配信部94(第2配信手段)は、複数の配信期間の各々において、上記の他のユーザのうちから選出される一又は複数の第2配信相手ユーザにメッセージを配信する。なお、図8を参照しながら説明した例の場合、第2回目〜第N回目の配信期間の回数(N−1)が、ここでいう「複数の配信期間」に相当する。配信相手人数制御部96は配信期間の回数を評価情報に基づいて制御する。
例えば、評価情報取得部98は、メッセージに対する第1配信相手ユーザの評価に関する第1評価情報を取得する。そして、配信相手人数制御部96は、第2配信相手ユーザとして選出されるユーザの数を第1評価情報に基づいて制御する。そして、配信相手人数制御部96は上記の配信期間の回数を第1評価情報に基づいて制御する。
また、評価情報取得部98は、メッセージに対する第2配信相手ユーザの評価に関する第2評価情報も取得するようにしてもよい。そして、配信相手人数制御部96は、上記の配信期間の回数を第1評価情報と第2評価情報とに基づいて制御するようにしてもよい。
具体的には、配信相手人数制御部96は、上記の複数の配信期間(図8における第2回目〜第N回目の配信期間)のうちの第1回目の配信期間(図8における第2回目の配信期間)において、第2配信相手ユーザとして選出されるユーザの数を第1評価情報に基づいて制御し、上記の複数の配信期間のうちの第2回目以降の配信期間(図8における第3回目〜第N回目の配信期間)において、第2配信相手ユーザとして選出されるユーザの数を第2評価情報に基づいて制御するようにしてもよい。
次に、以上に説明した機能ブロックを実現するための処理について説明する。図17〜図22はメッセージ配信システム10で実行される処理の例を示すフロー図である。
まず、図17に示す処理について説明する。図17は、ユーザがメッセージを入力した場合(すなわち、ユーザが入力画面50で送信ボタン54を選択した場合)に実行される処理の一例を示すフロー図である。なお以下では、便宜上、ユーザAがメッセージを入力した場合を想定して、図17に示す処理について説明する。
ユーザAが入力画面50の送信ボタン54を選択した場合、情報処理装置30の制御部31は、メッセージを入力したユーザAのユーザIDと、ユーザAが入力したメッセージとをサーバ装置20に送信する(S101)。そして、サーバ装置20の制御部21(メッセージ取得部92)はユーザID及びメッセージを受信し、メッセージに関する情報をメッセージテーブル及び配信状況テーブルに登録する(S102)。
具体的には、制御部21はメッセージテーブルに新しいレコードを追加する。また制御部21は、受信したメッセージのメッセージIDとして、既存のメッセージIDとは異なるメッセージIDを新たに生成する。そして制御部21は、新たに生成したメッセージIDを、新たに追加したレコードの「メッセージID」フィールドに登録する。さらに制御部21は、受信したメッセージ及びユーザIDを「メッセージ」及び「ユーザID」フィールドに登録し、現在日時を「入力日時」フィールドに登録する。
また、制御部21はメッセージのジャンルをメッセージの内容に基づいて判断し、そのジャンルを「ジャンル」フィールドに登録する。例えば、制御部21はメッセージが特定のキーワードを含んでいるか否かを判定することによって、メッセージのジャンルを判断する。なお、ユーザが入力画面50でメッセージのジャンルを指定するようにしてもよい。この場合、ステップS101では、ジャンルを示す情報も情報処理装置30からサーバ装置20に送信されるようにすればよい。
また、制御部21は配信状況テーブルにも新しいレコードを追加する。そして、制御部21は上記の新たに生成したメッセージIDを、新たに追加したレコードの「メッセージID」フィールドに登録する。また制御部21は、メッセージを入力したユーザAの配信相手人数レベルをユーザテーブルから取得し、その配信相手人数レベルを「配信相手人数レベル」フィールドに登録する。さらに、制御部21は上記の配信相手人数レベルに対応づけられた人数を配信相手人数レベルテーブルから取得し、その人数を「残り人数」フィールドに登録する。
また制御部21は、メッセージを入力したユーザAの配信回数レベルをユーザテーブルから取得する。さらに制御部21は、その配信回数レベルに対応する回数を配信回数レベルテーブルから取得し、その回数を「最大配信回数」フィールドに登録する。また制御部21は「現在配信回数」フィールドに0を登録する。さらに、制御部21は「ステータス」フィールドに「配信中」を登録し、「更新日時」フィールドと「直近の配信期間」の「開始日時」フィールドとの両方に現在日時を登録する。
一方、ユーザID及びメッセージを送信した情報処理装置30の制御部31はメニュー画面40を表示部37に表示させる(S103)。以上で図17に示す処理は終了する。
次に、図18に示す処理について説明する。図18は、メッセージ画面60を表示するための操作をユーザが行った場合(すなわち、ユーザがメニュー画面40でリンク44を選択した場合)に実行される処理の一例を示すフロー図である。なお以下では、便宜上、ユーザBがメニュー画面40でリンク44を選択した場合を想定して、図18に示す処理について説明する。
ユーザBがメニュー画面40でリンク44を選択した場合、情報処理装置30の制御部31はメッセージデータをサーバ装置20に要求する(S201)。この場合、ユーザBのユーザIDもサーバ装置20に送信される。
上記の要求を受け付けたサーバ装置20の制御部21(配信部94)はユーザBに配信するメッセージを選択する(S202)。本実施形態の場合、5つのメッセージがメッセージ画面60に表示されるため、制御部21は5つのメッセージを選択する。
具体的には、制御部21は、下記の条件C1,C2,C3のすべてを満足するメッセージのうちから5つのメッセージを選択する。
(C1)ユーザB以外のユーザによって入力されたメッセージである
(C2)ユーザBにすでに配信済みのメッセージではない
(C3)メッセージのステータスが「配信中」である
なお、制御部21は、メッセージが上記の条件C1を満足するか否かをメッセージテーブルに基づいて判定し、メッセージが上記の条件C2を満足するか否かを配信状況テーブル及び履歴テーブルに基づいて判定し、メッセージが上記の条件C3を満足するか否かを配信状況テーブルに基づいて判定する。
本実施形態の場合、制御部21は、ユーザBに配信する5つのメッセージを下記に説明するようにして選択する。
例えば1つ目のメッセージとして、制御部21は、上記の条件C1〜C3と下記の条件C4とのすべてを満足するメッセージのうちのいずれかの一つをランダムに選択する。
(C4)メッセージの配信相手人数レベルが基準レベルL1(例えば11)以上である
また、2つ目のメッセージとして、制御部21は、上記の条件C1〜C3と下記の条件C5とのすべてを満足するメッセージのうちのいずれかの一つをランダムに選択する。
(C5)メッセージの配信相手人数レベルが基準レベルL2(例えば6)以上であって基準レベルL1未満である
さらに、3つ目のメッセージとして、制御部21は、上記の条件C1〜C3と下記の条件C6とのすべてを満足するメッセージのうちのいずれかの一つをランダムに選択する。
(C6)メッセージの配信相手人数レベルが基準レベルL2未満である
なお、制御部21はメッセージが上記の条件C4,C5,C6を満足するか否かをメッセージテーブルの「配信相手人数レベル」フィールドに基づいて判定する。
また、4つ目のメッセージとして、制御部21は、上記の条件C1〜C3と下記の条件C7とのすべてを満足するメッセージのうちのいずれかの一つをランダムに選択する。
(C7)前回の配信日時から所定時間が経過していること
なお、制御部21はメッセージが上記の条件C7を満足するか否かを履歴テーブルの「配信日時」フィールドに基づいて判定する。
さらに、5つ目のメッセージとして、制御部21は、上記の条件C1〜C3を満足するメッセージのうちで最も新しいメッセージを選択する。制御部21はこの選択をメッセージテーブルの「入力日時」フィールドに基づいて実行する。
なお、上記のようにして1つ目〜3つ目のメッセージが選択される結果として、配信相手人数レベルが異なるメッセージがユーザに配信されるようになる。上述したように、メッセージの配信相手人数レベルは、メッセージを入力したユーザの配信相手人数レベルや、メッセージに対する評価結果に基づいて変化する。このため、配信相手人数レベルが異なるユーザによって入力されたメッセージや、評価結果が異なるメッセージがユーザに配信されるようになる。
また、上記のようにして4つ目及び5つ目のメッセージが選択される結果として、配信されないままの状態が継続しているメッセージや最新のメッセージが優先的に配信されるようになる。
ところで、ユーザに配信するメッセージを選択するということは、そのメッセージの配信相手としてそのユーザを選出したということに相当している。このため、ステップS202において、ユーザBに配信する5つのメッセージを選択したということは、該5つのメッセージの配信相手としてユーザBを選出したと言い換えることができる。
ステップS202においてユーザBに配信するメッセージが選択された後、制御部21はメッセージデータをユーザBの情報処理装置30に送信する(S203)。メッセージデータには、ステップS202で選択された各メッセージに関する情報が含まれる。例えば、メッセージのメッセージID及び内容と、メッセージを入力したユーザのユーザID及びアバター情報とが含まれる。
メッセージデータを受信した情報処理装置30の制御部31は、メッセージデータに基づいてメッセージ画面60を表示部37に表示する(S211)。例えば、図6に示したようなメッセージ画面60が表示部37に表示される。
一方、メッセージデータを送信したサーバ装置20では、後述のステップS204〜S210の処理が実行される。この処理は、ユーザBに配信するメッセージとして選択されたメッセージの各々に関して実行される。なお以下では、便宜上、ユーザAが入力したメッセージCがユーザBに配信するメッセージとして選択された場合を想定して、ステップS204〜S210の処理について説明する。
まず、制御部21はメッセージCに関する情報を履歴テーブルに登録する(S204)。具体的には、制御部21は履歴テーブルに新しいレコードを追加する。そして制御部21は、新たに追加したレコードの「メッセージID」フィールドにメッセージCのメッセージIDを登録する。さらに制御部21は、メッセージCの配信相手であるユーザBのユーザIDを「配信相手ユーザID」フィールドに登録し、現在日時を「配信日時」フィールドに登録する。
その後、制御部21は、現在の配信期間内にメッセージCの配信相手として選出可能な残り人数を1減少させ(S205)、その残り人数が0になったか否かを判定する(S206)。具体的には、制御部21は、配信状況テーブルにおいて、メッセージCに対応するレコードの「残り人数」フィールドの値を1減少させ、その値が0になったか否かを判定する。
上記の残り人数が0になっていないと判定された場合、制御部21は本処理を終了する。一方、上記の残り人数が0になったと判定された場合、制御部21はメッセージCのステータスを「待機中」に更新することによって、メッセージCの配信を待機させる(S207)。具体的には、制御部21は、配信状況テーブルにおいて、メッセージCに対応するレコードの「ステータス」フィールドの値を「待機中」に更新し、「更新日時」フィールドの値を現在日時に更新する。
さらに制御部21はメッセージCの現在配信回数を1増加させ(S208)、メッセージCの現在配信回数がメッセージCの最大配信回数に達したか否かを判定する(S209)。具体的には、制御部21は、配信状況テーブルにおいて、メッセージCに対応するレコードの「現在配信回数」フィールドの値を1増加させ、「現在配信回数」フィールドの値が「最大配信回数」フィールドの値と等しいか否かを判定する。
メッセージCの現在配信回数がメッセージCの最大配信回数に達した場合とは、メッセージCの配信期間の残り回数が0になった場合である。この場合、制御部21はメッセージCのステータスを「終了」に更新することによって、メッセージCの配信を終了させる(S210)。具体的には、制御部21は、配信状況テーブルにおいて、メッセージCに対応するレコードの「ステータス」フィールドの値を「終了」に更新し、「更新日時」フィールドの値を現在日時に更新する。一方、メッセージCの現在配信回数がメッセージCの最大配信回数に達していない場合、制御部21はステップS210の処理を実行することなく本処理を終了する。以上で図18に示す処理は完了する。
次に、図19に示す処理について説明する。図19は、他のユーザが入力したメッセージに対する返信及び評価をユーザが行った場合(すなわち、ユーザが返信画面70で簡易返信ボタン76、返信ボタン80、又は通報ボタン82を選択した場合)に実行される処理の一例を示すフロー図である。なお以下では、便宜上、ユーザAが入力したメッセージCに対する返信及び評価をユーザBが行った場合を想定して、図19に示す処理について説明する。
ユーザBが返信画面70で簡易返信ボタン76、返信ボタン80、又は通報ボタン82を選択した場合、情報処理装置30の制御部31は返信/評価データをサーバ装置20に送信する(S301)。返信/評価データは、例えば下記のような情報を含んでいる。
(1)返信及び評価を実行したユーザBのユーザID
(2)返信及び評価の対象となったメッセージCのメッセージID
(3)メッセージCに対する返信及び評価内容を示す情報
また、メッセージCに対する返信及び評価内容を示す情報は、例えば下記のような情報を含んでいる。
(3−1)チェック欄74にチェックが付けられたか否か(メッセージCがお気に入りに設定されたか否か)を示す情報
(3−2)簡易返信ボタン76、返信ボタン80、及び通報ボタン82のうちのいずれが選択されたかを示す情報
(3−3)入力欄78に入力された返信メッセージを示す情報
サーバ装置20の制御部21(評価情報取得部98)は返信/評価データを受信し、その返信/評価データに基づいて、メッセージCに対するユーザBの返信及び評価内容を履歴テーブルに登録する(S302)。
すなわち、制御部21は、履歴テーブルにおいて、メッセージCとユーザBとの組み合わせに対応するレコードを更新する。「メッセージCとユーザBとの組み合わせに対応するレコード」とは、「メッセージID」フィールドにメッセージCのメッセージIDが登録されており、かつ、「配信相手ユーザID」フィールドにユーザBのユーザIDが登録されているレコードのことである。
具体的には、制御部21は「返信/評価日時」フィールドに現在日時を登録する。また、制御部21はユーザBがチェック欄74にチェックを付けたか否かを判定し、その判定結果に基づいて「お気に入りフラグ」フィールドに「0」又は「1」を登録する。
さらに、制御部21はユーザBが簡易返信ボタン76、返信ボタン80、及び通報ボタン82のうちのいずれを選択したかを判定する。ユーザBが簡易返信ボタン76を選択していた場合、制御部21は「簡易返信フラグ」フィールドに「1」を登録し、ユーザBが簡易返信ボタン76を選択していなかった場合、制御部21は「簡易返信フラグ」フィールドに「0」を登録する。
また、ユーザBが返信ボタン80を選択していた場合、制御部21は、入力欄78に入力された返信メッセージを「返信メッセージ」フィールドに登録し、ユーザBが返信ボタン80を選択していなかった場合、制御部21は「返信メッセージ」フィールドを空欄とする。また、ユーザBが通報ボタン82を選択していた場合、制御部21は「通報フラグ」フィールドに「1」を登録し、ユーザBが通報ボタン82を選択していなかった場合、制御部21は「通報フラグ」フィールドに「0」を登録する。
ステップS302の処理が実行された後、制御部21は、ユーザBに配信するメッセージを選択する(S303)。すなわち、制御部21は、ユーザBが返信及び評価を完了したメッセージCの代わりにメッセージ画面60に新たに表示するメッセージを選択する。例えば、制御部21は上記の条件C1〜C3を満足するメッセージのうちのいずれか一つをランダムに選択する。なお、この場合、制御部21は上記の条件C1〜C3を満足するメッセージのうちのいずれか一つの配信相手としてユーザBを選出することになる。
そして、制御部21はメッセージデータをユーザBの情報処理装置30に送信する(S304)。図18のステップS203の場合と同様に、メッセージデータには、ステップS303で選択されたメッセージに関する情報が含まれる。
メッセージデータを送信したサーバ装置20では、ステップS305〜S311の処理が実行される。この処理は、ユーザBに配信するメッセージとして選択されたメッセージについて実行される。なお、ステップS305〜S311の処理は、図18におけるステップS204〜S210の処理と同様であるため、説明を省略する。
一方、メッセージデータを受信した情報処理装置30の制御部31は、メッセージデータに基づいてメッセージ画面60を表示部37に表示する(S312)。この場合、情報処理装置30では返信画面70からメッセージ画面60に戻ることになる。以上で図19に示す処理は終了する。
次に、図20に示す処理について説明する。図20は、ステータスが「待機中」であるメッセージの配信を再開するための処理の一例を示すフロー図である。なお、図20に示す処理はサーバ装置20において所定のタイミングで実行される。例えば、サーバ装置20は図20に示す処理を所定時間(例えば5分)ごとに実行する。または、サーバ装置20は図20に示す処理を所定時刻に実行する。
図20に示すように、まず、制御部21が、ステータスが「待機中」であるメッセージが存在するか否かを判定する(S401)。制御部21は配信状況テーブルの各レコードの「ステータス」フィールドに基づいてこの判定を実行する。ステータスが「待機中」であるメッセージが存在しないと判定された場合、制御部21は本処理を終了する。
一方、ステータスが「待機中」であるメッセージが存在すると判定された場合、制御部21は、メッセージの配信を再開するための処理(ステップS402〜S409)を実行する。後述するように、ステップS402〜S409の処理では、メッセージの配信を再開するのに先立って、メッセージの配信期間の最大回数(図8における「N」)や、一の配信期間内にメッセージの配信相手として選出可能な最大人数(図8における「M2」〜「MN」)をメッセージに対する返信/評価結果に基づいて見直すための処理が実行されるようになっている。
なお、ステータスが「待機中」であるメッセージが複数存在する場合、制御部21は、それらのメッセージの各々に関して個別にステップS402〜S409の処理を実行する。以下では、便宜上、ユーザAが入力したメッセージCのステータスが「待機中」であるとステップS401で判定された場合を想定して、ステップS402〜S409の処理について説明する。
まず、制御部21は、メッセージCのステータスが「待機中」に更新されてからの経過時間が基準時間(例えば10分間)以上であるか否かを判定する(S402)。制御部21は上記の経過時間を配信状況テーブルの「更新日時」フィールドに基づいて算出する。上記の経過時間が基準時間未満であると判定された場合、制御部21は、メッセージCに関してステップS403〜S409の処理を実行することなく本処理を終了する。
一方、上記の経過時間が基準時間以上であると判定された場合、制御部21(評価情報取得部98)は、メッセージCを通報対象に設定したユーザの人数が多いか否かを判定する(S403)。
例えば、制御部21は、対象期間内にメッセージCに対する返信及び評価を行ったユーザの人数(S)を取得する。なお、「対象期間」とは、例えば、直近の配信期間の開始時点から現時点までの期間である。制御部21は、下記の条件C8,C9を満足するレコードの数を履歴テーブルから取得することによって、上記の人数(S)を取得する。
(C8)「メッセージID」フィールドにメッセージCのメッセージIDが登録されている
(C9)「返信/評価日時」フィールドに登録された日時が対象期間内である
また制御部21は、対象期間内に返信/評価を行ったユーザのうちで、メッセージCを通報対象に設定したユーザの人数(Sa)を取得する。具体的には、制御部21は、上記の条件C8,C9と下記の条件C10とのすべてを満足するレコードの数を履歴テーブルから取得することによって、上記の人数(Sa)を取得する。
(C10)「通報フラグ」フィールドの値が「1」である
そして制御部21(評価情報取得部98)は、対象期間内に返信/評価を行ったユーザのうちの、メッセージCを通報対象に設定したユーザの割合(Pa)を下記の算出式F1に従って算出する。
Pa=Sa/S ・・・ (F1)
上記の割合Paを算出した後、制御部21は割合Paが基準値P1(例えば0.05)以上であるか否かを判定する。割合Paが基準値P1以上である場合、制御部21は、メッセージCを通報対象に設定したユーザの人数が多かったと判定する。
ところで、上記の割合PaはメッセージCに対する評価が低いか否かを示す評価値としての意義を有している。メッセージCを通報対象に設定したユーザの人数が多い場合とは、メッセージCに対する評価が低い場合である。このため、割合Paが高いほど、メッセージCに対する評価が低いことになる。また、割合Paが高いか否かを判定することは、メッセージCに対する評価が低いか否かを判定することに相当している。
ステップS403においてメッセージCを通報対象に設定したユーザの人数が多いと判定された場合、制御部21(配信相手人数制御部96)はメッセージCの最大配信回数を1減少させる(S404)。すなわち、制御部21は、配信状況テーブルにおいて、メッセージCに対応するレコードの「最大配信回数」フィールドの値を1減少させる。
さらに制御部21は、メッセージCの現在配信回数がメッセージCの最大配信回数に達しているか否かを判定する(S405)。そして、メッセージCの現在配信回数がメッセージCの最大配信回数に達している場合、制御部21はメッセージCのステータスを「終了」に更新することによって、メッセージCの配信を終了させる(S406)。これらのステップの処理は図18のステップS209,S210の処理と同様である。
一方、メッセージCの現在配信回数がメッセージCの最大配信回数に達していないと判定された場合、制御部21はステップS407の処理を実行する。なお、ステップS403においてメッセージCを通報対象に設定したユーザの人数が多いと判定されなかった場合にも、制御部21はステップS407の処理を実行する。
ステップS407では、メッセージCを入力したユーザの配信回数レベルと、メッセージCの最大配信回数とを更新する処理が実行される。図21はこの処理の一例を示すフロー図である。なお以下では、便宜上、メッセージCがユーザAによって入力されたメッセージであると想定して、図21に示す処理について説明する。
図21に示すように、まず、制御部21(評価情報取得部98)はメッセージCをお気に入りの対象に設定したユーザの人数が多いか否かを判定する(S501)。
例えば、制御部21は、対象期間内にメッセージCに対する返信及び評価を行ったユーザの人数(S)を取得する。なお、「対象期間」とは、例えば、直近の配信期間の開始時点から現時点までの期間である。制御部21は、上記の条件C8,C9を満足するレコードの数(S)を履歴テーブルから取得する。
また制御部21は、対象期間内に返信/評価を行ったユーザのうちで、メッセージCをお気に入りに設定したユーザの人数(Sb)を取得する。具体的には、制御部21は、上記の条件C8,C9と下記の条件C11とのすべてを満足するレコードの数(Sb)を配信履歴テーブルから取得する。
(C11)「お気に入りフラグ」フィールドの値が「1」である
そして制御部21(評価情報取得部98)は、対象期間内に返信/評価を行ったユーザのうちの、メッセージCをお気に入りに設定したユーザの割合(Pb)を下記の算出式F2に従って算出する。
Pb=Sb/S ・・・ (F2)
上記の割合Pbを算出した後、制御部21は割合Pbが基準値P2(例えば0.05)以上であるか否かを判定する。割合Pbが基準値P2以上である場合、制御部21は、メッセージCをお気入りに設定したユーザの人数が多かったと判定する。
ところで、上記の割合PbはメッセージCに対する評価が高いか否かを示す評価値としての意義を有している。メッセージCをお気に入りに設定したユーザの人数が多い場合とは、メッセージCに対する評価が高い場合である。このため、割合Pbが高いほど、メッセージCに対する評価が高いことになる。また、割合Pbが高いか否かを判定することは、メッセージCに対する評価が高いか否かを判定することに相当している。
メッセージCをお気に入りに設定したユーザの人数が多いと判定されなかった場合、制御部21は本処理を終了する。一方、メッセージCをお気に入りに設定したユーザの人数が多いと判定された場合、制御部21(配信相手人数制御部96)はメッセージCの最大配信回数を1増加させる(S502)。すなわち、制御部21は、配信状況テーブルにおいて、メッセージCに対応するレコードの「最大配信回数」フィールドの値を1増加させる。
また制御部21は、メッセージCを入力したユーザAの第1カウンタの値を1増加させ(S503)、ユーザAの第1カウンタの値が所定値になったか否かを判定する(S504)。すなわち、制御部21は、カウンタテーブルにおいて、ユーザAに対応するレコードの「第1カウンタ」フィールドの値を1増加させ、その値が所定値になったか否かを判定する。ユーザAの第1カウンタの値が所定値になったと判定されなかった場合、制御部21は後述のステップS506の処理を実行する。
一方、ユーザAの第1カウンタの値が所定値になったと判定された場合、制御部21はユーザAの配信回数レベルを1上昇させ、ユーザAの第1カウンタの値を初期値(0)にリセットする(S505)。すなわち、制御部21は、ユーザテーブルにおいて、ユーザAに対応するレコードの「配信回数レベル」フィールドの値を1増加させ、カウンタテーブルにおいて、ユーザAに対応するレコードの「第1カウンタ」フィールドの値を初期値(0)に更新する。
ステップS502〜S505の処理が実行された後、制御部21(評価情報取得部98)は、メッセージCをお気に入りに設定したユーザの人数が非常に多いか否かを判定する(S506)。
例えば、制御部21は、ステップS501で算出された上記の割合Pbが基準値P3(例えば0.1)以上であるか否かを判定する。この基準値P3は、ステップS501で用いられた基準値P2よりも大きい値である。割合Pbが基準値P3以上である場合、制御部21はメッセージCをお気に入りに設定したユーザの人数が非常に多かったと判定する。
メッセージCをお気に入りに設定したユーザの人数が非常に多いと判定されなかった場合、制御部21は本処理を終了する。一方、メッセージCをお気に入りに設定したユーザの人数が非常に多いと判定された場合、制御部21(配信相手人数制御部96)は、メッセージCの最大配信回数をさらに1増加させる処理(S507)や、ユーザの配信回数レベルを上昇させるための処理(S508〜S510)を実行する。なお、ステップS507〜S510の処理はステップS502〜S505の処理と同様であるため、説明を省略する。
図20におけるステップS407の処理(すなわち、図21に示す処理)が実行された後、制御部21は、メッセージCを入力したユーザの配信相手人数レベルと、メッセージCの配信相手人数レベルとを更新する処理を実行する(S408)。図22はこの処理の一例を示すフロー図である。なお以下でも、便宜上、メッセージCがユーザAによって入力されたメッセージであると想定して、図22に示す処理について説明する。
図22に示すように、まず、制御部21(評価情報取得部98)は、メッセージCに対する評価が高いか否かを判定する(S601)。例えば、制御部21は、対象期間内に行われたメッセージCに対する返信/評価結果が所定の条件を満足するか否かを判定することによって、メッセージCに対する評価が高いか否かを判定する。なお、「対象期間」とは、例えば、直近の配信期間の開始時点から現時点までの期間である。
本実施形態の場合、制御部21は、対象期間内に行われたメッセージCに対する返信/評価結果に基づいて、メッセージCの評価値を算出する。そして、制御部21は評価値が所定の値範囲に含まれるか否かを判定することによって、メッセージCに対する評価が高いか否かを判定する。
具体的には、制御部21は、メッセージCの評価値Eを下記の算出式F3に従って算出する。「*」は乗算演算子を示している。
E=(Sc*1+Sd*2+Sb*3−Sa*5)/S ・・・ (F3)
なお、上記の算出式F3において、「S」及び「Sa」は算出式F1と同様である。すなわち、「S」は、対象期間内に返信/評価を行ったユーザの人数を示しており、「Sa」は、対象期間内に返信/評価を行ったユーザのうちの、メッセージCを通報対象に設定したユーザの人数を示している。
また、「Sb」は算出式F2と同様である。すなわち、「Sb」は、対象期間内に返信/評価を行ったユーザのうちの、メッセージCをお気に入りに設定したユーザの人数を示している。
「Sc」は、対象期間内に返信/評価を行ったユーザのうちの、メッセージCに対して簡易返信を行ったユーザの人数を示している。制御部21は、上記の条件C8,C9と下記の条件C12とのすべてを満足するレコードの数を履歴テーブルから取得することによって、上記の人数(Sc)を取得する。
(C12)「簡易返信フラグ」フィールドの値が「1」である
「Sd」は、対象期間内に返信/評価を行ったユーザのうちの、メッセージCに対する返信メッセージを入力したユーザの人数を示している。制御部21は、上記の条件C8,C9と下記の条件C13とのすべてを満足するレコードの数を履歴テーブルから取得することによって、上記の人数(Sd)を取得する。
(C13)「返信メッセージ」フィールドに返信メッセージが登録されている(すなわち、「返信メッセージ」フィールドが空欄でない)
また、上記の算出式F3において、係数「1」、「2」、「3」、及び「5」は、それぞれ、「Sc」、「Sd」、「Sb」、及び「Sa」に対応する重みを示している。ここでは、「Sc」、「Sd」、「Sb」、及び「Sa」の各々の重み係数が定数になっているが、これらの重み係数は変数としてもよい。
例えば、メッセージCに対して簡易返信を行ったユーザの人数を示す「Sc」に関しては、「Sc」の重み係数を、メッセージCの簡易返信率(Sc/S)と、所定期間(例えばその日)における全メッセージの簡易返信率(Sc/S)の平均値との比較結果に基づいて決定するようにしてもよい。例えば、メッセージCの簡易返信率が上記の平均値よりも高い場合には、メッセージCの簡易返信率が上記の平均値よりも高くない場合に比べて、「Sc」の重み係数が大きな値に設定されるようにしてもよい。また、「Sc」以外の「Sd」、「Sb」、及び「Sa」の重み係数も「Sc」の重み係数と同様の考え方で決定するようにしてもよい。
メッセージCに対する簡易返信や返信を行ったユーザの人数や、メッセージCをお気に入りに設定したユーザの人数が多い場合とは、メッセージCに対する評価が高い場合とみなすことができる。また、メッセージCを通報対象に設定したユーザの人数が多い場合とは、メッセージCに対する評価が低い場合とみなすことができる。この点、メッセージCに対する簡易返信や返信を行ったユーザの人数や、メッセージCをお気に入りに設定したユーザの人数が多いほど、評価値Eは大きくなる。一方、メッセージCを通報対象に設定したユーザの人数が多いほど、評価値Eは小さくなる。このため、評価値Eは、メッセージCに対する評価が高いほど大きくなり、メッセージCに対する評価が低いほど小さくなる。
なお、メッセージCで取り上げられている話題が古い場合、メッセージCに対して簡易返信や返信を行うユーザの人数は少なくなる。これに対して、メッセージCで取り上げられている話題が新しい場合、メッセージCに対して簡易返信や返信を行うユーザの人数が多くなり、その結果として、評価値Eは大きくなる。このため、評価値EはメッセージCで取り上げられている話題の新鮮さを示しているともいうことができる。
上記の評価値Eを算出した後、制御部21は評価値Eが基準値E1(例えば0.5)よりも大きいか否かを判定する。そして、評価値Eが基準値E1よりも大きい場合、制御部21はメッセージCに対する評価が高いと判定する。
メッセージCに対する評価が高いと判定された場合、制御部21(配信相手人数制御部96)はメッセージCの配信相手人数レベルを1上昇させる(S602)。すなわち、制御部21は、配信状況テーブルにおいて、メッセージCに対応するレコードの「配信相手人数レベル」フィールドの値を1増加させる。
また制御部21は、メッセージCを入力したユーザAの第2カウンタの値を1増加させ(S603)、ユーザAの第2カウンタの値が所定値になったか否かを判定する(S604)。すなわち、制御部21は、カウンタテーブルにおいて、ユーザAに対応するレコードの「第2カウンタ」フィールドの値を1増加させ、その値が所定値になったか否かを判定する。
ユーザAの第2カウンタの値が所定値になっていないと判定された場合、制御部21は本処理を終了する。一方、ユーザAの第2カウンタの値が所定値になったと判定された場合、制御部21はユーザAの配信相手人数レベルを1上昇させ、ユーザAの第2カウンタの値を初期値(0)にリセットする(S605)。すなわち、制御部21は、ユーザテーブルにおいて、ユーザAに対応するレコードの「配信相手人数レベル」フィールドの値を1増加させ、カウンタテーブルにおいて、ユーザAに対応するレコードの「第2カウンタ」フィールドの値を初期値(0)に更新する。
なお、ステップS601においてメッセージCに対する評価が高くないと判定された場合、制御部21(評価情報取得部98)はメッセージCに対する評価が低いか否かを判定する(S606)。なお、メッセージCに対する評価が低いか否かの判定は、メッセージCに対する評価が高いか否かの判定(ステップS601)と同様に行われる。
具体的には、制御部21は上記の評価値Eが基準値E2(例えば0.2)よりも小さいか否かを判定する。この基準値E2は、ステップS601で用いられた基準値E1よりも小さい値である。評価値Eが基準値E2よりも小さい場合、制御部21はメッセージCに対する評価が低いと判定する。
メッセージCに対する評価が低いと判定されなかった場合、制御部21は本処理を終了する。一方、メッセージCに対する評価が低いと判定された場合、制御部21(配信相手人数制御部96)はメッセージCの配信相手人数レベルを1下降させる(S607)。すなわち、制御部21は、配信状況テーブルにおいて、メッセージCに対応するレコードの「配信相手人数レベル」フィールドの値を1減少させる。以上で図22に示す処理は終了する。
図20におけるステップS408の処理(すなわち、図22に示す処理)が実行された後、制御部21はメッセージCのステータスを「配信中」に更新することによって、メッセージCの配信を再開させる(S409)。
具体的には、制御部21は、配信状況テーブルにおいて、メッセージCに対応するレコードの「ステータス」フィールドの値を「配信中」に更新し、「更新日時」フィールドの値を現在日時に更新する。また制御部21は、メッセージCに対応するレコードにおいて、「直近の配信期間」の「開始日時」フィールドに現在日時を登録し、「終了日時」フィールドを空欄に更新する。さらに制御部21は、メッセージCに対応するレコードにおいて、「残り人数」フィールドの値を、「配信相手人数レベル」フィールドに登録された配信相手人数レベルに対応する人数に更新する。
この場合、メッセージCの配信期間が新たに開始されることになる。また、この配信期間にメッセージCの配信相手として選出可能な最大人数が、この時点におけるメッセージCの配信相手人数レベルに対応する人数に設定されることになる。例えば、メッセージCに対する評価が高かった場合にはメッセージCの配信相手人数レベルが当初のレベルよりも上昇しているため(図22のステップS602参照)、メッセージCがより多くのユーザに配信されることになる。一方、メッセージCに対する評価が低かった場合にはメッセージCの配信相手人数レベルが当初のレベルよりも下降しているため(図22のステップS607参照)、メッセージCの配信を受けるユーザの数が抑えられることになる。
以上説明したメッセージ配信システム10では、メッセージを受け取ったユーザの該メッセージに対する評価に基づいて、それ以降に該メッセージの配信相手として選出されるユーザの人数が制御される。例えば、メッセージを受け取ったユーザの該メッセージに対する評価が低い場合には、該評価が高い場合と比較して、それ以降に該メッセージの配信相手として選出されるユーザの人数が少なくなる。一方、メッセージを受け取ったユーザの該メッセージに対する評価が高い場合には、該評価が低い場合と比較して、それ以降に該メッセージの配信相手として選出されるユーザの人数が多くなる。
メッセージ配信システム10によれば、例えば、メッセージを読んだ者に不快感を感じさせるようなメッセージを多数のユーザに配信してしまわないように抑制することが可能になる。また例えば、メッセージを読んだ者を愉快な気持ちにさせるようなメッセージを多数のユーザに配信することが可能になる。
ところで、上述したように、上記の評価値E(算出式F3参照)はメッセージで取り上げられている話題の新鮮さを示しているということもできる。メッセージ配信システム10では、メッセージの評価値Eが低い場合、メッセージの配信相手人数レベルが当初のレベルよりも下降し(図22のステップS607参照)、メッセージの配信を受けるユーザの数が抑えられる。すなわち、メッセージ配信システム10では、古くなった話題を取り上げているメッセージが配信され難くなる。一方、メッセージの評価値Eが高い場合、メッセージの配信相手人数レベルが当初のレベルよりも上昇し(図22のステップS602参照)、より多くのユーザにメッセージが配信されるようになる。すなわち、メッセージ配信システム10では、新しい話題を取り上げているメッセージが多く配信されるようになる。
このため、メッセージ配信システム10によれば、古くなった話題を取り上げているメッセージがいつまでも配信され続けることを防ぐことが可能になり、新しい話題を取り上げているメッセージが多く配信されるようにすることが可能になる。
なお、本発明は以上に説明した実施の形態に限定されるものではない。
(1)返信画面70でユーザが入力可能な項目は図7に示した例に限られない。例えば、返信画面70では、メッセージの入力者である他のユーザをブラックリストに登録する旨を指定できるようにしてもよい。また例えば、返信画面70では、メッセージに対する評価を示す数値を入力できるようにしてもよい。
(2)配信状況テーブル(図14)では、「最大配信回数」及び「現在配信回数」フィールドの代わりに、配信期間の残り回数を示す「残り回数」フィールドを設けるようにしてもよい。なお、この場合、「最大配信回数」フィールドの値を1増加させる処理を実行する代わりに、「残り回数」フィールドの値を1増加させる処理を実行するようにすればよい。また、「現在配信回数」フィールドの値を1増加させる処理を実行する代わりに、「残り回数」フィールドの値を1減少させる処理を実行するようにすればよい。
(3)配信相手人数制御部96は、メッセージの第2配信相手ユーザとして選出されるユーザの人数を該メッセージの内容の分類に関する分類情報にさらに基づいて制御するようにしてもよい。
例えば、記憶部90は、メッセージの内容の分類に関する分類情報に対応づけて、メッセージの第2配信相手ユーザとして選出されるユーザの人数を制御するための制御情報を記憶するようにしてもよい。そして、配信相手人数制御部96は、メッセージ取得部92によって取得されたメッセージの内容の分類に対応する制御情報に基づいて、該メッセージの第2配信相手ユーザとして選出されるユーザの人数を制御するようにしてもよい。
上記の機能を実現するための具体的なデータ及び処理の一例について説明する。上記の機能を実現するために、例えば、記憶部90(ユーザテーブル)では、ユーザの配信相手人数レベル又は/及び配信回数レベルがジャンルごとに記憶される。この場合、ジャンルが上記の「分類情報」に相当し、配信相手人数レベル又は/及び配信回数レベルが上記の「制御情報」に相当することになる。
図17のステップ102においてメッセージに関する情報を配信状況テーブルに登録する場合、制御部21は、入力されたメッセージのジャンルに対応するユーザAの配信相手人数レベルを取得し、その配信相手人数レベルを「配信相手人数レベル」フィールドに登録する。また制御部21は、上記の配信相手人数レベルに対応づけられた人数を配信相手人数レベルテーブルから取得し、その人数を「残り人数」フィールドに登録する。
さらに制御部21は、入力されたメッセージのジャンルに対応するユーザAの配信回数レベルを取得する。そして制御部21は、その配信回数レベルに対応する回数を配信回数レベルテーブルから取得し、その回数を「最大配信回数」フィールドに登録する。
またカウンタテーブルでは、ユーザの第1カウンタ及び第2カウンタがジャンルごとに記憶される。また、図21のステップS503,S508においてメッセージCを入力したユーザAの第1カウンタの値を1増加する場合、制御部21は、メッセージCのジャンルに対応するユーザAの第1カウンタの値を1増加させる。そして、メッセージCのジャンルに対応するユーザAの第1カウンタの値が所定値に達した場合、ステップS505,S510において、制御部21は、メッセージCのジャンルに対応するユーザAの配信回数レベルを上昇させる。
同様に、図22のステップS603においてメッセージCを入力したユーザAの第2カウンタの値を1増加する場合、制御部21は、メッセージCのジャンルに対応するユーザAの第2カウンタの値を1増加させる。そして、メッセージCのジャンルに対応するユーザAの第2カウンタの値が所定値に達した場合、ステップS605において、制御部21は、メッセージCのジャンルに対応するユーザAの配信相手人数レベルを上昇させる。
以上のようにすれば、例えば、特定のジャンルに関して評価の高いメッセージを入力するユーザが存在する場合に、該ユーザが入力した特定のジャンルに関するメッセージが、該ユーザが入力した他のジャンルに関するメッセージよりも多くのユーザに配信されるように図ることが可能になる。
(4)配信相手人数制御部96は、メッセージの第2配信相手ユーザとして選出されるユーザの人数を該メッセージのサイズに関するサイズ情報にさらに基づいて制御するようにしてもよい。
例えば、記憶部90は、メッセージのサイズに関するサイズ情報に対応づけて、メッセージの第2配信相手ユーザとして選出されるユーザの人数を制御するための制御情報を記憶するようにしてもよい。そして、配信相手人数制御部96は、メッセージ取得部92によって取得されたメッセージのサイズに対応する制御情報に基づいて、該メッセージの第2配信相手ユーザとして選出されるユーザの人数を制御するようにしてもよい。
上記の機能を実現するための具体的なデータ及び処理の一例について説明する。上記の機能を実現するために、例えば、記憶部90は図23に示すようなテーブルを記憶する。図23に示すテーブルは、メッセージのサイズ(文字数)と、配信相手人数レベル又は/及び配信回数レベルの補正情報との対応関係を定めてなる情報である。なお、図23における「K1」及び「K2」は所定の数値を示している。
図23に示すテーブルでは、配信相手人数レベル又は/及び配信回数レベルの補正情報が、配信相手人数レベル又は/及び配信回数レベルをどれだけ下げるかを示す情報になっている。また、図23に示すテーブルでは、メッセージのサイズ(文字数)が大きくなるほど、配信相手人数レベル又は/及び配信回数レベルが下がるようになっている。
図17のステップ102においてメッセージに関する情報を配信状況テーブルに登録する場合、制御部21は、メッセージを入力したユーザAの配信相手人数レベルをユーザテーブルから取得する。さらに制御部21は、入力されたメッセージのサイズを取得し、そのサイズに対応する補正情報を取得する。そして制御部21は、ユーザAの配信相手人数レベルを補正情報に従って変更することによって得られる配信相手人数レベルを「配信相手人数レベル」フィールドに登録する。また制御部21は、上記のようにして得られた配信相手人数レベルに対応する人数を配信相手人数レベルテーブルから取得し、その人数を「残り人数」フィールドに登録する。
同様に、制御部21は、メッセージを入力したユーザAの配信回数レベルをユーザテーブルから取得する。そして制御部21は、ユーザAの配信回数レベルを補正情報に従って変更することによって得られる配信回数レベルを取得する。そして制御部21は、その配信回数レベルに対応する回数を配信回数レベルテーブルから取得し、その回数を「最大配信回数」フィールドに登録する。
以上のようにすれば、例えば、メッセージのサイズが大きくなるほど、配信相手人数レベル又は/及び配信回数レベルが下げることが可能になる。すなわち、サイズの大きいメッセージに関しては、サイズの小さいメッセージと比較して、メッセージの配信相手として選出されるユーザの人数を抑えるように図ることが可能になる。その結果として、例えば、通信ネットワーク12の負荷の増大を抑制することが可能になる。
(5)メッセージ画面60に表示されるメッセージの表示態様が、該メッセージの第2配信相手ユーザとして選出されるユーザの人数に対応する表示態様に設定されるようにしてもよい。
なお、「メッセージの表示態様」とは、例えば、メッセージの表示サイズ、文字色、背景色、又はフォント種類等や、吹き出し64の形状、大きさ、又は色等を含む。
この場合、メッセージ配信システム10は、メッセージ画面60に表示されるメッセージの表示態様を、該メッセージの第2配信相手ユーザとして選出されるユーザの人数に関する情報に基づいて変化させる。
例えば、メッセージ配信システム10は、メッセージ画面60に表示されるメッセージの表示態様を下記の情報a〜eのうちの少なくとも一つに基づいて変化させる。
(a)メッセージの最大配信回数
(b)メッセージの現在配信回数
(c)メッセージの配信相手人数レベル
(d)メッセージを入力したユーザの配信回数レベル
(e)メッセージを入力したユーザの配信相手人数レベル
なお、上記の情報a〜eはいずれも、メッセージの配信相手として選出されるユーザの人数に影響を与えるため、上記の情報a〜eはいずれも、上記の「第2配信相手ユーザとして選出されるユーザの人数に関する情報」に相当し得る。
例えば、図18のステップ203や図19のステップ304でメッセージデータを情報処理装置30に送信する場合、制御部21は、メッセージの表示態様を上記の情報a〜eのうちの少なくとも一つに基づいて変化させるよう制御するための制御情報を、メッセージデータの一部として、情報処理装置30に送信する。そして、図18のステップS211や図19のステップS312において、制御部31は、メッセージ画面60に表示されるメッセージの表示態様を制御情報に基づいて設定する。
上記の「制御情報」としては、例えばメッセージの表示態様を示す情報を送信するようにすればよい。すなわち、制御部21は上記の情報a〜eのうちの少なくとも一つに基づいてメッセージの表示態様を決定し、決定した表示態様を示す情報(制御情報)をメッセージデータの一部として情報処理装置30に送信するようにすればよい。
なお、この場合、メッセージの表示態様を上記の情報a〜eのうちの少なくとも一つに基づいて決定するためのデータを記憶部90が記憶しておく必要がある。このデータは、例えば、上記の情報a〜eのうちの少なくとも一つと、メッセージの表示態様に関する情報とを対応づけてなるデータである。制御部21はメッセージの表示態様をこのデータに基づいて決定する。
上記の「制御情報」として、例えばメッセージの表示態様を決定するための基礎となる情報を送信するようにしてもよい。すなわち、制御部21は、メッセージの表示態様を決定するための基礎となる情報を上記の情報a〜eのうちの少なくとも一つに基づいて取得し、該情報(制御情報)をメッセージデータの一部として情報処理装置30に送信するようにしてもよい。例えば、制御部21は、上記の情報a〜eのうちの少なくとも一つ自体(制御情報)をメッセージデータの一部として情報処理装置30に送信するようにしてもよい。
なお、この場合、図18のステップS211や図19のステップS312において、制御部31が、メッセージ画面60に表示されるメッセージの表示態様を制御情報に基づいて設定することになる。また、この場合、メッセージの表示態様を制御情報に基づいて設定するためのデータが情報処理装置30の記憶部(例えば補助記憶部33)に記憶されることになる。例えば、制御情報(例えば、上記の情報a〜eのうちの少なくとも一つ)と、メッセージの表示態様に関する情報とを対応づけてなるデータが情報処理装置30の記憶部(例えば補助記憶部33)に記憶されることになる。そして制御部31はメッセージの表示態様をこのデータに基づいて設定する。
以上のようにすれば、ユーザはメッセージが多数のユーザに配信されているメッセージであるか否かをメッセージ画面60に表示されるメッセージの表示態様から把握できるようになる。
(6)メッセージの第2配信相手ユーザとして選出されるユーザの人数に応じた画像がメッセージ画面60において該メッセージに関連づけて表示されるようにしてもよい。
例えば、メッセージに関連づけて表示される画像の表示態様が、該メッセージの第2配信相手ユーザとして選出されるユーザの人数に対応する表示態様に設定されるようにしてもよい。なお、「メッセージに関連づけて表示される画像」とは例えばアバター62である。ただし、「メッセージに関連づけて表示される画像」はアバター62以外の画像であってもよい。また、「画像の表示態様」とは、例えば、表示サイズ、色、半透明度、ぼかし度、又は画像種類等を含む。
この場合、メッセージ配信システム10は、メッセージ画面60においてメッセージに関連づけて表示される画像の表示態様を、メッセージの第2配信相手ユーザとして選出されるユーザの人数に関する情報に基づいて変化させる。
なお、メッセージ画面60においてメッセージに関連づけて表示される画像の表示態様を変化させるための具体的な構成は、上述の変形例(5)におけるメッセージの表示態様を変化させるための構成と同様にすればよい。
(7)以上では、メッセージを複数の配信期間において配信することとして説明したが(図8)、メッセージを一の配信期間において配信するようにしてもよい。
この場合、配信期間内において繰り返し設定される判断タイミングにおいて、制御部21は、メッセージに対する評価に関する評価情報を取得し、メッセージに対する評価に基づいて、該メッセージの配信期間を延長又は/及び短縮するようにしてもよい。例えば、メッセージに対する評価が高い場合に、制御部21は該メッセージの配信期間を延長するようにしてもよい。また例えば、メッセージに対する評価が低い場合に、制御部21は該メッセージの配信期間を短縮するようにしてもよい。
なお、「判断タイミング」は所定時間ごとに設けられるようにすればよい。または、配信期間が終了するまでの残り時間が所定時間以下になったタイミングが「判断タイミング」として設けられるようにしてもよい。
以上のようにしても、メッセージの配信期間が延長又は短縮される結果として、メッセージの配信相手ユーザとして選出されるユーザの人数が増減されるようになる。すなわち、以上のようにしても、例えば、メッセージを読んだ者に不快感を感じさせるようなメッセージを多数のユーザに配信してしまわないように抑制することが可能になる。また例えば、メッセージを読んだ者を愉快な気持ちにさせるようなメッセージを多数のユーザに配信することが可能になる。