(57)【特許請求の範囲】
【請求項１】
仮想空間内で複数の操作対象と一つの移動体とを移動させるゲームシステムが有する複数の互いに通信可能な端末装置のいずれかであって、当該端末装置は、
当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、を記憶し、当該端末装置のモードが親機と子機とのいずれであるか、を記憶する記憶部、
当該端末装置に割り当てられるユーザからの指示入力を受け付ける指示入力受付部、
当該複数の操作対象のうち当該ユーザに割り当てられる操作対象が配置される位置および速度を、前記受け付けられた指示入力に基づいて、前記記憶部において更新する自位置更新部、
前記更新された当該ユーザに割り当てられる操作対象の位置および速度を、当該複数の端末装置のうち、他の端末装置に送信する自位置送信部、
当該複数の端末装置のうち、他の端末装置から送信された他のユーザに割り当てられる操作対象の位置および速度を受信する他位置受信部、
前記受信された他のユーザに割り当てられる操作対象の位置および速度を、前記記憶部において更新する他位置更新部、
当該端末装置のモードが親機である場合、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体と直近に接触する操作対象を推定して、当該推定された操作対象が割り当てられるユーザが割り当てられる端末装置が他の端末装置である場合、前記記憶部において当該端末装置のモードを子機に更新して、当該他の端末装置に親機となるよう通知する親委譲部、
当該端末装置のモードが子機である場合、当該他の端末装置のいずれかから親機となるよう通知されると、前記記憶部において当該端末装置のモードを親機に更新する親受任部、
当該端末装置のモードが親機である場合、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体が当該複数の操作対象と接触するか否かを判定し、当該判定結果により、当該移動体の位置および速度を、前記記憶部において更新する親移動体更新部、
当該端末装置のモードが親機である場合、前記更新された当該移動体の位置および速度を、当該複数の端末装置のうち、他の端末装置に送信する移動体位置送信部、
当該端末装置のモードが子機である場合、当該複数の端末装置のうち、モードが親機である端末装置から送信された当該移動体の位置および速度を受信する移動体位置受信部、
前記受信された当該移動体の位置および速度を前記記憶部において更新する子移動体更新部
を備えることを特徴とする端末装置。
【請求項２】
請求項１に記載の端末装置であって、当該複数の端末装置の数は３以上であり、
当該端末装置のモードが子機である場合、前記自位置送信部は、当該操作対象の位置および速度を当該複数の端末装置のうち、モードが親機である端末装置に中継させて他の端末装置に送信するため、当該操作対象の位置および速度を当該複数の端末装置のうち、モードが親機である端末装置に送信し、
当該端末装置のモードが親機である場合、前記他位置受信部は、当該複数の端末装置のうちモードが子機である端末装置から送信された他のユーザに割り当てられる操作対象の位置および速度を受信し、
当該端末装置のモードが親機である場合、前記自位置送信部は、モードが子機である端末装置から送信された他のユーザに割り当てられる操作対象の位置および速度を他の端末装置に中継するため、前記親移動体更新部ならびに前記子移動体更新部により前記記憶部に記憶される複数の操作対象の位置および速度が更新されると、当該複数の操作対象の位置および速度を、当該複数の端末装置のうちモードが子機である端末装置に送信し、
当該端末装置のモードが子機である場合、前記他位置受信部は、当該複数の端末装置のうちモードが親機である端末装置に中継されて他の端末装置から送信された他のユーザに割り当てられる操作対象の位置および速度を受信するため、当該複数の端末装置のうちモードが親機である端末装置から送信された複数の操作対象の位置および速度を受信する
ことを特徴とする端末装置。
【請求項３】
仮想空間内で複数の操作対象と複数の移動体とを移動させるゲームシステムが有する複数の互いに通信可能な端末装置のいずれかであって、当該端末装置は、
当該複数の操作対象のそれぞれの位置および速度と、当該複数の移動体のそれぞれの位置および速度と、を記憶し、当該複数の移動体のそれぞれを当該端末装置が管理するか否か、を記憶する記憶部、
当該端末装置に割り当てられるユーザからの指示入力を受け付ける指示入力受付部、
当該複数の操作対象のうち当該ユーザに割り当てられる操作対象が配置される位置および速度を、前記受け付けられた指示入力に基づいて、前記記憶部において更新する自位置更新部、
前記更新された当該ユーザに割り当てられる操作対象の位置および速度を、当該複数の端末装置のうち、他の端末装置に送信する自位置送信部、
当該複数の端末装置のうち、他の端末装置から送信された他のユーザに割り当てられる操作対象の位置および速度を受信する他位置受信部、
前記受信された他のユーザに割り当てられる操作対象の位置および速度を、前記記憶部において更新する他位置更新部、
当該複数の移動体のうち、当該端末装置が管理する移動体のそれぞれについて、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体と直近に接触する操作対象を推定して、当該推定された操作対象が割り当てられるユーザが割り当てられる端末装置が他の端末装置である場合、前記記憶部において当該端末装置は当該移動体を管理しないと更新して、当該他の端末装置に当該移動体を管理するよう通知する親委譲部、
当該複数の端末装置のうち、他の端末装置のいずれかからある移動体を管理するよう通知されると、前記記憶部において当該端末装置は当該移動体を管理すると更新する親受任部、
当該複数の移動体のうち、当該端末装置が管理する移動体のそれぞれについて、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体が当該複数の操作対象もしくは当該複数の移動体のうち他の移動体と接触するか否かを判定し、当該判定結果により、当該移動体の位置および速度を、前記記憶部において更新する親移動体更新部、
当該複数の移動体のうち、当該端末装置が管理する移動体のそれぞれについて、前記更新された当該移動体の位置および速度を、当該複数の端末装置のうち、他の端末装置に送信する移動体位置送信部、
当該複数の端末装置のうち、他の端末装置のいずれかから送信されたある移動体の位置および速度を受信する移動体位置受信部、
前記受信された当該移動体の位置および速度を前記記憶部において更新する子移動体更新部
を備えることを特徴とする端末装置。
【請求項４】
請求項１から３のいずれか１項に記載の端末装置であって、
前記親委譲部は、当該複数の操作対象のそれぞれについて、前記記憶部に記憶されている当該操作対象の位置と当該移動体の位置とから、当該操作対象と当該移動体との現在の距離を求め、当該現在の距離が最短の操作対象を、当該移動体と直近に接触する操作対象と推定する
ことを特徴とする端末装置。
【請求項５】
請求項１から３のいずれか１項に記載の端末装置であって、
前記親委譲部は、当該複数の操作対象のそれぞれについて、前記記憶部に記憶されている当該操作対象の位置および速度と当該移動体の位置および速度とから、当該操作対象と当該移動体とが前記記憶されている位置から前記記憶されている速度のまま所定時間移動したと仮定したときの当該操作対象と当該移動体との将来の距離を求め、当該将来の距離が最短の操作対象を、当該移動体と直近に接触する操作対象と推定する
ことを特徴とする端末装置。
【請求項６】
請求項１から３のいずれか１項に記載の端末装置であって、
前記親委譲部は、当該複数の操作対象のそれぞれについて、前記記憶部に記憶されている当該操作対象の位置と当該移動体の位置とから、当該操作対象と当該移動体との現在の距離を求め、当該操作対象と当該移動体とが前記記憶部に記憶されている位置から前記記憶部に記憶されている速度のまま所定時間移動したと仮定したときの当該操作対象と当該移動体との将来の距離を求め、当該現在の距離ならびに当該将来の距離のうち最短の距離が求められた操作対象を、当該移動体と直近に接触する操作対象と推定する
ことを特徴とする端末装置。
【請求項７】
請求項１から３のいずれか１項に記載の端末装置であって、
前記親委譲部は、当該複数の操作対象のそれぞれについて、前記記憶部に記憶されている当該操作対象の位置と当該移動体の位置とから、当該操作対象と当該移動体との現在の距離を求め、当該操作対象と当該移動体とが前記記憶部に記憶されている位置から前記記憶部に記憶されている速度のまま所定時間移動したと仮定したときの当該操作対象と当該移動体との将来の距離を求め、当該現在の距離より当該将来の距離が小さい操作対象のうち、当該将来が最短の操作対象を、当該移動体と直近に接触する操作対象と推定する
ことを特徴とする端末装置。
【請求項８】
請求項１から３のいずれか１項に記載の端末装置であって、
当該複数の操作対象のそれぞれには、当該仮想空間内を重複しないように分割した複数の領域のいずれかがあらかじめ割り当てられ、当該操作対象にあらかじめ割り当てられる領域は、当該操作対象が移動できる範囲を表し、
前記自位置更新部は、当該ユーザに割り当てられる操作対象に当該操作対象の位置を、当該操作対象にあらかじめ割り当てられた領域内に含まれるように更新し、
前記親委譲部は、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、のうち、当該移動体の位置に基づいて、当該複数の領域のうち当該移動体の位置を含む領域に割り当てられた操作対象を、当該移動体と直近に接触する操作対象と推定する
ことを特徴とする端末装置。
【請求項９】
請求項１から８のいずれか１項に記載の端末装置であって、
前記受け付けられる指示入力には、当該複数の操作対象のうち、当該ユーザに割り当てられた操作対象が当該移動体に近接したときに当該移動体に対して行うべき動作を選択する指示入力が含まれ、
前記親移動体更新部は、前記受け付けられた指示入力に、当該動作を選択する指示入力が含まれている場合、当該動作に応じて、当該移動体の位置および速度を更新する
ことを特徴とする端末装置。
【請求項１０】
請求項９に記載の端末装置であって、
前記親移動体更新部により、当該動作に応じて、当該移動体の位置および速度が更新されると、前記親委譲部は、当該動作が当該ユーザに割り当てられた操作対象から当該移動体が離れると想定される動作である場合、当該複数の操作対象のすべてから当該移動体と直近に接触する操作対象を推定するのにかえて、当該複数の操作対象のうちユーザに割り当てられていない操作対象から当該移動体と直近に接触する操作対象を推定する
ことを特徴とする端末装置。
【請求項１１】
仮想空間内で複数の操作対象と複数の移動体とを移動させるゲームシステムが有する複数の互いに通信可能な端末装置のそれぞれが実行するゲーム制御方法であって、当該複数の端末装置のそれぞれは、記憶部、指示入力受付部、自位置更新部、自位置送信部、他位置受信部、他位置更新部、親委譲部、親受任部、親移動体更新部、移動体位置送信部、移動体位置受信部、子移動体更新部を有し、前記記憶部には、当該複数の操作対象のそれぞれの位置および速度と、当該複数の移動体のそれぞれの位置および速度と、を記憶し、当該複数の移動体のそれぞれを当該端末装置が管理するか否か、が記憶され、
前記指示入力受付部が、当該端末装置に割り当てられるユーザからの指示入力を受け付ける指示入力受付工程、
前記自位置更新部が、当該複数の操作対象のうち当該ユーザに割り当てられる操作対象が配置される位置および速度を、前記受け付けられた指示入力に基づいて、前記記憶部において更新する自位置更新工程、
前記自位置送信部が、前記更新された当該ユーザに割り当てられる操作対象の位置および速度を、当該複数の端末装置のうち、他の端末装置に定期的に送信する自位置送信工程、
前記他位置受信部が、当該複数の端末装置のうち、他の端末装置から送信された他のユーザに割り当てられる操作対象の位置および速度を受信する他位置受信工程、
前記他位置更新部が、前記受信された他のユーザに割り当てられる操作対象の位置および速度を、前記記憶部において更新する他位置更新工程、
当該端末装置のモードが親機である場合、前記親委譲部が、定期的に、当該複数の移動体のうち、当該端末装置が管理する移動体のそれぞれについて、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体と直近に接触する操作対象を推定して、当該推定された操作対象が割り当てられるユーザが割り当てられる端末装置が他の端末装置である場合、前記記憶部において当該端末装置は当該移動体を管理しないと更新して、当該他の端末装置に当該移動体を管理するよう通知する親委譲工程、
前記親受任部が、当該複数の端末装置のうち、他の端末装置のいずれかからある移動体を管理するよう通知されると、前記記憶部において当該端末装置は当該移動体を管理すると更新する親受任工程、
前記親移動体更新部が、定期的に、当該複数の移動体のうち、当該端末装置が管理する移動体のそれぞれについて、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体が当該複数の操作対象もしくは当該複数の移動体のうち他の移動体と接触するか否かを判定し、当該判定結果により、当該移動体の位置および速度を、前記記憶部において更新する親移動体更新工程、
前記移動体位置送信部が、前記親移動体位置更新工程にて更新された当該移動体の位置および速度を、当該複数の端末装置のうち、他の端末装置に送信する移動体位置送信工程、
前記移動体位置受信部が、当該複数の端末装置のうち、他の端末装置のいずれかから送信されたある移動体の位置および速度を受信する移動体位置受信工程、
前記子移動体更新部が、前記受信された当該移動体の位置および速度を前記記憶部において更新する子移動体更新工程
を備えることを特徴とするゲーム制御方法。
【請求項１２】
仮想空間内で複数の操作対象と一つの移動体とを移動させるゲームシステムが有する複数の互いに通信可能な端末装置のそれぞれが実行するゲーム制御方法であって、当該複数の端末装置のそれぞれは、記憶部、指示入力受付部、自位置更新部、自位置送信部、他位置受信部、他位置更新部、親委譲部、親受任部、親移動体更新部、移動体位置送信部、移動体位置受信部、子移動体更新部を有し、前記記憶部には、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、を記憶し、当該端末装置のモードが親機と子機とのいずれであるか、が記憶され、
前記指示入力受付部が、当該端末装置に割り当てられるユーザからの指示入力を受け付ける指示入力受付工程、
前記自位置更新部が、当該複数の操作対象のうち当該ユーザに割り当てられる操作対象が配置される位置および速度を、前記受け付けられた指示入力に基づいて、前記記憶部において更新する自位置更新工程、
前記自位置送信部が、前記更新された当該ユーザに割り当てられる操作対象の位置および速度を、当該複数の端末装置のうち、他の端末装置に定期的に送信する自位置送信工程、
前記他位置受信部が、当該複数の端末装置のうち、他の端末装置から送信された他のユーザに割り当てられる操作対象の位置および速度を受信する他位置受信工程、
前記他位置更新部が、前記受信された他のユーザに割り当てられる操作対象の位置および速度を、前記記憶部において更新する他位置更新工程、
当該端末装置のモードが親機である場合、前記親委譲部が、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体と直近に接触する操作対象を推定して、当該推定された操作対象が割り当てられるユーザが割り当てられる端末装置が他の端末装置である場合、前記記憶部において当該端末装置のモードを子機に更新して、当該他の端末装置に親機となるよう通知する親委譲工程、
当該端末装置のモードが子機である場合、前記親受任部が、当該他の端末装置のいずれかから親機となるよう通知されると、前記記憶部において当該端末装置のモードを親機に更新する親受任工程、
当該端末装置のモードが親機である場合、前記親移動体更新部が、定期的に、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体が当該複数の操作対象と接触するか否かを判定し、当該判定結果により、当該移動体の位置および速度を、前記記憶部において更新する親移動体更新工程、
当該端末装置のモードが親機である場合、前記移動体位置送信部が、前記親移動体更新工程にて更新された当該移動体の位置および速度を、当該複数の端末装置のうち、他の端末装置に送信する移動体位置送信工程、
当該端末装置のモードが子機である場合、前記移動体位置受信部が、当該複数の端末装置のうち、モードが親機である端末装置から送信された当該移動体の位置および速度を受信する移動体位置受信工程、
前記子移動体更新部が、前記受信された当該移動体の位置および速度を前記記憶部において更新する子移動体更新工程
を備えることを特徴とするゲーム制御方法。
【請求項１３】
仮想空間内で複数の操作対象と一つの移動体とを移動させるゲームシステムが有する複数の互いに通信可能な端末装置のいずれかとしてコンピュータを機能させるプログラムであって、当該プログラムは、当該コンピュータを、
当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、を記憶し、当該端末装置のモードが親機と子機とのいずれであるか、を記憶する記憶部、
当該端末装置に割り当てられるユーザからの指示入力を受け付ける指示入力受付部、
当該複数の操作対象のうち当該ユーザに割り当てられる操作対象が配置される位置および速度を、前記受け付けられた指示入力に基づいて、前記記憶部において更新する自位置更新部、
前記更新された当該ユーザに割り当てられる操作対象の位置および速度を、当該複数の端末装置のうち、他の端末装置に送信する自位置送信部、
当該複数の端末装置のうち、他の端末装置から送信された他のユーザに割り当てられる操作対象の位置および速度を受信する他位置受信部、
前記受信された他のユーザに割り当てられる操作対象の位置および速度を、前記記憶部において更新する他位置更新部、
当該端末装置のモードが親機である場合、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体と直近に接触する操作対象を推定して、当該推定された操作対象が割り当てられるユーザが割り当てられる端末装置が他の端末装置である場合、前記記憶部において当該端末装置のモードを子機に更新して、当該他の端末装置に親機となるよう通知する親委譲部、
当該端末装置のモードが子機である場合、当該他の端末装置のいずれかから親機となるよう通知されると、前記記憶部において当該端末装置のモードを親機に更新する親受任部、
当該端末装置のモードが親機である場合、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体が当該複数の操作対象と接触するか否かを判定し、当該判定結果により、当該移動体の位置および速度を、前記記憶部において更新する親移動体更新部、
当該端末装置のモードが親機である場合、前記更新された当該移動体の位置および速度を、当該複数の端末装置のうち、他の端末装置に送信する移動体位置送信部、
当該端末装置のモードが子機である場合、当該複数の端末装置のうち、モードが親機である端末装置から送信された当該移動体の位置および速度を受信する移動体位置受信部、
前記受信された当該移動体の位置および速度を前記記憶部において更新する子移動体更新部
として機能させることを特徴とするプログラム。
【請求項１４】
仮想空間内で複数の操作対象と複数の移動体とを移動させるゲームシステムが有する複数の互いに通信可能な端末装置のいずれかとしてコンピュータを機能させるプログラムであって、当該プログラムは、当該コンピュータを、
当該複数の操作対象のそれぞれの位置および速度と、当該複数の移動体のそれぞれの位置および速度と、を記憶し、当該複数の移動体のそれぞれを当該端末装置が管理するか否か、を記憶する記憶部、
当該端末装置に割り当てられるユーザからの指示入力を受け付ける指示入力受付部、
当該複数の操作対象のうち当該ユーザに割り当てられる操作対象が配置される位置および速度を、前記受け付けられた指示入力に基づいて、前記記憶部において更新する自位置更新部、
前記更新された当該ユーザに割り当てられる操作対象の位置および速度を、当該複数の端末装置のうち、他の端末装置に送信する自位置送信部、
当該複数の端末装置のうち、他の端末装置から送信された他のユーザに割り当てられる操作対象の位置および速度を受信する他位置受信部、
前記受信された他のユーザに割り当てられる操作対象の位置および速度を、前記記憶部において更新する他位置更新部、
当該複数の移動体のうち、当該端末装置が管理する移動体のそれぞれについて、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体と直近に接触する操作対象を推定して、当該推定された操作対象が割り当てられるユーザが割り当てられる端末装置が他の端末装置である場合、前記記憶部において当該端末装置は当該移動体を管理しないと更新して、当該他の端末装置に当該移動体を管理するよう通知する親委譲部、
当該複数の端末装置のうち、他の端末装置のいずれかからある移動体を管理するよう通知されると、前記記憶部において当該端末装置は当該移動体を管理すると更新する親受任部、
当該複数の移動体のうち、当該端末装置が管理する移動体のそれぞれについて、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体が当該複数の操作対象もしくは当該複数の移動体のうち他の移動体と接触するか否かを判定し、当該判定結果により、当該移動体の位置および速度を、前記記憶部において更新する親移動体更新部、
当該複数の移動体のうち、当該端末装置が管理する移動体のそれぞれについて、前記更新された当該移動体の位置および速度を、当該複数の端末装置のうち、他の端末装置に送信する移動体位置送信部、
当該複数の端末装置のうち、他の端末装置のいずれかから送信されたある移動体の位置および速度を受信する移動体位置受信部、
前記受信された当該移動体の位置および速度を前記記憶部において更新する子移動体更新部
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、球技などのネットワーク対戦ゲームにおいて、プレイヤー等のユーザの意思がキャラクター等の操作対象の動作により自然に反映されるようにするのに好適な端末装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するためのプログラムに関する。
【背景技術】
【０００２】
従来から、ネットワーク通信ゲームでは、複数の端末装置同士が通信しながら、その端末装置のいずれか１つをいわゆる「サーバ」として機能させ、その他を「クライアント」として機能させて、ゲームを進行させる技術が提案されている。このようなゲームに関する技術については、以下の文献に開示されている。
【特許文献１】特開２００３−１９０６３５号公報
【特許文献２】特許３５４２７９５号公報
【０００３】
ここで、[特許文献１]の明細書段落００３７〜００３８に開示される技術では、対戦を行う一方の端末装置を主端末とし、主端末であるか否かによって、ゲームの進行に関わる処理を異なるものとしている。
【０００４】
また、[特許文献２]においては、バットやラケットでボールを打ち返す等の状況に適用することが可能な仮想空間内におけるオブジェクトの衝突のシミュレーション技術が開示されている。
【０００５】
さて一般に、ネットワーク通信ゲームに限らず、各種のゲームにおいては、プレイヤーのいずれか一人を「親」とし、他のプレイヤーを「子」として、「親」と「子」の行う作業が異なるものとする手法が用いられている。
【０００６】
したがって、ネットワーク通信ゲームにおける対戦においても、「子」の端末装置からプレイヤーの操作入力を「親」の端末装置に送信して、「親」に相当する端末装置に、球とプレイヤーの接触（野球等においては、投手の手からボールが離れ、打者のバットがボールを打ち、守備のグラブがボールを確保して投げ、守備がボールをキャッチして走者にタッチする等の動作の成否等。テニスや卓球、エアホッケー等においては、ラケットとボールが接触して打ち返す動作の成否およびボールの移動の計算等。）の判断等を行わせる手法が広く用いられている。
【０００７】
一方で、対戦を平等にするために、「親」を全プレイヤーに順に持ち回りにする手法が用いられている。たとえば、野球等においては、各イニングの裏と表で攻守が入れ換えられ、テニスや卓球、エアホッケー等においては、サービスを行うプレイヤーがルールにしたがって入れ換えられる。そこで、ネットワーク通信ゲームにおいても、「親」を持ち回りにすることによって、平等を維持する手法が利用されている。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の手法では、「親」であるプレイヤーの操作入力は、直ちにゲームに反映されやすいのに対して、「子」であるプレイヤーの操作入力は、ゲームに反映されるのに遅延が生じやすい、という問題が生ずる。したがって、プレイヤーの操作入力が適切にゲームに反映されるようにしたい、との要望は大きい。
【０００９】
一方で、ゲームを公正に行うためには、プレイヤーの間で可能な限り「平等な対戦」を維持させる必要もある。
【００１０】
本発明は、上記のような課題を解決するもので、球技などのネットワーク対戦ゲームにおいて、プレイヤー等のユーザの意思がキャラクター等の操作対象の動作により自然に反映されるようにするのに好適な端末装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【００１２】
本発明の第１の観点に係る端末装置は、仮想空間内で複数の操作対象と一つの移動体とを移動させるゲームシステムが有する複数の互いに通信可能な端末装置のいずれかであって、記憶部、指示入力受付部、自位置更新部、自位置送信部、他位置受信部、他位置更新部、親委譲部、親受任部、親移動体更新部、移動体位置送信部、移動体位置受信部、子移動体更部を備え、以下のように構成する。
【００１３】
すなわち、記憶部は、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、を記憶し、当該端末装置のモードが親機と子機とのいずれであるか、を記憶する。
【００１４】
たとえば、野球ゲームにおいては、操作対象は、攻側の打者と走者、ならびに、守側の投手、捕手、野手などのキャラクターとするのが典型的である。テニスゲームやエアホッケーゲームにおいては、二人のキャラクターを操作対象とする場合もあるし、ラケット等の道具を操作対象とする場合もある。
【００１５】
また、野球のボールやテニスのボールが移動体に相当する。親機であるか子機であるかは、イニングの裏表やサービス側であるか否かといったゲームのルールによって決まるのではなく、後述するように、記憶部に記憶される情報に基づいて決定される。
【００１６】
一方、指示入力受付部は、当該端末装置に割り当てられるユーザからの指示入力を受け付ける。
【００１７】
野球ゲームにおいては、投手が腕を振り上げる高さやボールを離すタイミング、打者がバットを振るタイミング、野手がキャッチしたボールをいずれの塁に投球するかの選択等が指示入力によって決定され、テニスゲームやエアホッケーゲームにおいては、ラケット等の操作対象をどの場所に移動させるか、どのようなタイミングで操作対象を移動させるか、等が指示入力によって端末装置に伝達されることになる。
【００１８】
さらに、自位置更新部は、受け付けられた指示入力により、当該複数の操作対象のうち、当該ユーザに割り当てられる操作対象が配置される位置および速度を、記憶部において更新する。
【００１９】
たとえば、野球ゲームでは、２人のプレイヤーが、それぞれのチームに属する操作対象を操作する。したがって、一方のプレイヤー（ユーザ）には打者および走者の操作対象が割り当てられ、他方のプレイヤー（ユーザ）には投手、捕手、野手の操作対象が割り当てられる。また、テニスゲームやエアホッケーゲームは、２人のプレイヤーのそれぞれに操作対象が割り当てられ、対戦が行われる。
【００２０】
このように、端末装置を使用しているプレイヤーの指示入力がされると、当該プレイヤーが操作する操作対象の位置や速度は、当該端末装置においては直ちに反映されることとなる。したがって、プレイヤーが自分の操作に対する遅延を感じる可能性は、極めて低くなる。
【００２１】
一方、自位置送信部は、更新された当該ユーザに割り当てられる操作対象の位置および速度を、当該複数の端末装置のうち、他の端末装置に送信し、他位置受信部は、当該複数の端末装置のうち、他の端末装置から送信された他のユーザに割り当てられる操作対象の位置および速度を受信し、他位置更新部は、受信された他のユーザに割り当てられる操作対象の位置および速度を、記憶部において更新する。これは、自分の端末装置におけるプレイヤーの操作の結果を他の端末装置に通知し、他の端末装置におけるプレイヤーの操作の結果を自分の端末装置に反映させて、ゲームを進行させるためである。
【００２２】
このように、本発明においては、他の端末装置でされた他のプレイヤーの指示入力をゲームに反映させる際においては、通信遅延が生じうる。しかしながら、このような遅延が生じたとしても、そもそも自分が操作できない操作対象の位置や速度を更新するものであるから、プレイヤーが不自然さを感じる程度は低いと想定することができる。
【００２３】
さらに、親委譲部は、当該端末装置のモードが親機である場合、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体と直近に接触する操作対象を推定して、当該推定された操作対象が割り当てられるユーザが割り当てられる端末装置が他の端末装置である場合、記憶部において当該端末装置のモードを子機に更新して、当該他の端末装置に親機となるよう通知する。
【００２４】
上記のような野球ゲーム、テニスゲーム、エアホッケーゲーム等では、ボールに対して操作対象が接触して、ボールの運動の方向を変化させることでゲームが進行する。したがって、各プレイヤーが細心の注意を払って操作対象を操作したい状況とは、移動体と操作対象とが近接しつつある状況である、と考えることができる。たとえば、打者にボールが近付いているときにバットを振るタイミングを決めたり、自陣にボールが近付いているときにラケットの位置を決めたり、等である。
【００２５】
したがって、本発明では、移動体（ボール）が時間的に直近に接触するであろう操作対象を推定して、当該操作対象を操作するプレイヤーの端末装置を「親」とし、それ以外の端末装置を「子」として、後述するように、移動体の位置や速度の更新は、「親」が担うこととするのである。
【００２６】
そして、親受任部は、当該端末装置のモードが子機である場合、当該他の端末装置のいずれかから親機となるよう通知されると、記憶部において当該端末装置のモードを親機に更新する。
【００２７】
したがって、親委譲部と親受任部との間の通知によって、「親」である端末装置は、移動体が直近に接触すると予想される操作対象を操作するプレイヤーが利用する端末装置の１台に限られることになり、それ以外の端末装置は「子」になる。
【００２８】
一方、親移動体更新部は、当該端末装置のモードが親機である場合、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体が当該複数の操作対象と接触するか否かを判定し、当該判定結果により、当該移動体の位置および速度を、記憶部において更新する。
【００２９】
上記のように、球技等のゲームにおいては、プレイヤーは、ボールの近傍にいる操作対象に対する操作が迅速に反映されると、ゲームの進行がストレスなく、より自然に感じられるようになる。本発明では、移動体（ボール）に直近に接触すると予想された操作対象に対する操作が行われる端末装置を「親」として、「親」が移動体（ボール）の衝突判定、位置や速度の更新を行うことで、これを実現している。ここで、「衝突判定」には、ラケットとボールが衝突するような状況のほか、バットがボールを打ち返したり、グラブがボールをキャッチしたり等、ボールの運動に何らかの変化が生じる種々の状況が考えられる。
【００３０】
さらに、移動体位置送信部は、当該端末装置のモードが親機である場合、更新された当該移動体の位置および速度を、当該複数の端末装置のうち、他の端末装置に送信し、移動体位置受信部は、当該端末装置のモードが子機である場合、当該複数の端末装置のうち、モードが親機である端末装置から送信された当該移動体の位置および速度を受信し、子移動体更新部は、受信された当該移動体の位置および速度を記憶部において更新する。
【００３１】
上記のように、「親」の端末装置によって移動の様子が更新された移動体（ボール）の情報を「子」の端末装置にも反映させることで、ゲームを進行させるものである。
【００３２】
本発明によれば、プレイヤーは自身の操作が自身の操作対象に迅速に反映させるとともに、ボール等の移動体と自分の操作対象とが接触して移動体の位置や速度が変化しそうな場合には、当該移動体の衝突判定等の計算を自分の端末装置で行うことで、操作対象を介した移動体に対する操作の反映も迅速に行うことができるようになり、プレイヤーの意思が操作対象やゲームに、より自然に反映されるようになる。
【００３３】
また、本発明の端末装置において、自位置送信部は、当該複数の端末装置のうち、モードが親機である端末装置に中継させて、当該操作対象の位置および速度を、他の端末装置に送信し、他位置受信部は、当該複数の端末装置のうちモードが親機である端末装置に中継させて、他の端末装置から送信された他のユーザに割り当てられる操作対象の位置および速度を受信するように構成することができる。
【００３４】
本発明は、端末装置が３台以上の場合を想定したものであり、各操作対象の位置および速度の情報は、一旦親機に集められ、その後に子機に配布される、という手法である。
【００３５】
なお、「各操作対象の位置および速度の情報の配布」と「次に親機となる端末装置の通知」とは、同時に（１つの通信単位で）行うと、端末装置で記憶される位置・速度・モードの間に矛盾が生じる可能性が低くなると考えられる。
【００３６】
子機では、当該端末装置を利用するプレイヤーに割り当てられた操作対象以外の操作対象について、受信された位置および速度の情報を記憶部に反映させるのが好適である。上記のように、当該端末装置を利用するプレイヤーに割り当てられた操作対象については、操作入力に対して通信遅延なく記憶部が更新されているからである。
【００３７】
本発明によれば、端末装置が３台以上の場合に、相互の通信をスムースに行うとともに、互いが記憶する情報に矛盾が生じてしまう可能性をできるだけ低減することができるようになる。
【００３８】
本発明のその他の観点に係る端末装置は、仮想空間内で複数の操作対象と一つ以上の移動体とを移動させるゲームシステムが有する複数の互いに通信可能な端末装置のいずれかであって、記憶部、指示入力受付部、自位置更新部、自位置送信部、他位置受信部、他位置更新部、親委譲部、親受任部、親移動体更新部、移動体位置送信部、移動体位置受信部、子移動体更新部を備え、以下のように構成する。
【００３９】
すなわち、記憶部は、当該複数の操作対象のそれぞれの位置および速度と、当該一つ以上の移動体のそれぞれの位置および速度と、を記憶し、当該一つ以上の移動体のそれぞれを当該端末装置が管理するか否か、を記憶する。
【００４０】
一方、指示入力受付部は、当該端末装置に割り当てられるユーザからの指示入力を受け付ける。
【００４１】
さらに、自位置更新部は、当該複数の操作対象のうち当該ユーザに割り当てられる操作対象が配置される位置および速度を、受け付けられた指示入力に基づいて、記憶部において更新する。
【００４２】
そして、自位置送信部は、更新された当該ユーザに割り当てられる操作対象の位置および速度を、当該複数の端末装置のうち、他の端末装置に送信する。
【００４３】
一方、他位置受信部は、当該複数の端末装置のうち、他の端末装置から送信された他のユーザに割り当てられる操作対象の位置および速度を受信する。
【００４４】
さらに、他位置更新部は、受信された他のユーザに割り当てられる操作対象の位置および速度を、記憶部において更新する。
【００４５】
そして、親委譲部は、当該一つ以上の移動体のうち、当該端末装置が管理する移動体のそれぞれについて、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体と直近に接触する操作対象を推定して、当該推定された操作対象が割り当てられるユーザが割り当てられる端末装置が他の端末装置である場合、記憶部において当該端末装置は当該移動体を管理しないと更新して、当該他の端末装置に当該移動体を管理するよう通知する。
【００４６】
一方、親受任部は、当該複数の端末装置のうち、他の端末装置のいずれかからある移動体を管理するよう通知されると、記憶部において当該端末装置は当該移動体を管理すると更新する。
【００４７】
さらに、親移動体更新部は、当該一つ以上の移動体のうち、当該端末装置が管理する移動体のそれぞれについて、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体が当該複数の操作対象もしくは当該一つ以上の移動体のうち他の移動体と接触するか否かを判定し、当該判定結果により、当該移動体の位置および速度を、記憶部において更新する。
【００４８】
そして、移動体位置送信部は、当該一つ以上の移動体のうち、当該端末装置が管理する移動体のそれぞれについて、更新された当該移動体の位置および速度を、当該複数の端末装置のうち、他の端末装置に送信する。
【００４９】
一方、移動体位置受信部は、当該複数の端末装置のうち、他の端末装置のいずれかから送信されたある移動体の位置および速度を受信する。
【００５０】
さらに、子移動体更新部は、受信された当該移動体の位置および速度を記憶部において更新する。
【００５１】
上記発明をより一般的に考えると、「親機」とは、ある移動体を管理する端末装置であり、「子機」とは、当該移動体を管理しない端末装置である、と考えることができる。したがって、後述するように、移動体が複数存在する場合に本発明の原理を適用するには、各移動体ごとに「親機」と「子機」を考えれば良いことになる。
【００５２】
そこで、本発明では、「親機」「子機」を、それぞれ、「ある移動体を管理する端末装置」「ある移動体の管理を他の端末装置に任せている端末装置」の意味であると考え、当該端末装置が「親」「子」のいずれであるかを移動体ごとに考えることとしているのである。
【００５３】
本発明によれば、たとえば雪合戦のゲームや複数のゴムボールを投げ合うゲーム、玉入れ競争のようなゲームなど、移動体が複数あるようなゲームにおいても、上記発明と同様の効果を得ることができる。
【００５４】
また、本発明の端末装置において、親委譲部は、当該移動体と直近に接触する操作対象と推定する手法について、以下のような好適実施形態を採用することができる。
（ａ）当該複数の操作対象のそれぞれについて、当該操作対象と当該移動体との現在の距離を求め、当該現在の距離が最短の操作対象を、当該移動体と直近に接触する操作対象と推定する。
（ｂ）当該複数の操作対象のそれぞれについて、当該操作対象と当該移動体とが記憶された位置および速度のまま所定時間移動したと仮定したときの当該操作対象と当該移動体との将来の距離を求め、当該将来の距離が最短の操作対象を、当該移動体と直近に接触する操作対象と推定する。
（ｃ）当該複数の操作対象のそれぞれについて、当該操作対象と当該移動体との現在の距離と、当該操作対象と当該移動体とが記憶された位置および速度のまま所定時間移動したと仮定したときの当該操作対象と当該移動体との将来の距離と、を求め、当該現在の距離ならびに当該将来の距離のうち最短の距離が求められた操作対象を、当該移動体と直近に接触する操作対象と推定する。
（ｄ）当該複数の操作対象のそれぞれについて、当該操作対象と当該移動体との現在の距離と、当該操作対象と当該移動体とが記憶された位置および速度のまま所定時間移動したと仮定したときの当該操作対象と当該移動体との将来の距離と、を求め、当該現在の距離より当該将来の距離が小さい操作対象のうち、当該将来が最短の操作対象を、当該移動体と直近に接触する操作対象と推定する。
（ｅ）当該複数の操作対象のそれぞれには、当該仮想空間内を重複しないように分割した複数の領域のいずれかがあらかじめ割り当てられ、自位置更新部は、当該ユーザに割り当てられる操作対象に当該操作対象の位置を、当該操作対象にあらかじめ割り当てられた領域内に含まれるように更新し、当該複数の領域のうち当該移動体の位置を含む領域に割り当てられた操作対象を、当該移動体と直近に接触する操作対象と推定する。
【００５５】
これらはいずれも、本発明において移動体と時間的に直近に接触すると予想される操作対象を推定する手法の種々の態様を表すものであり、ゲームの種類や難易度等、用途に応じて、適切な手法を適宜選択することができる。
【００５６】
また、本発明の端末装置において、受け付けられる指示入力には、当該複数の操作対象のうち、当該ユーザに割り当てられた操作対象が当該移動体に近接したときに当該移動体に対して行うべき動作を選択する指示入力が含まれ、親移動体更新部は、受け付けられた指示入力に、当該動作を選択する指示入力が含まれている場合、当該動作に応じて、当該移動体の位置および速度を更新するように構成することができる。
【００５７】
たとえば、野球ゲームにおいて、投手のキャラクター（操作対象）がボール（移動体）に近接しているときに、ボールを投げるべき方向やカーブやシュート等、ボールの移動する軌跡に与える変化を指定するコマンドを入力したり、バッターのキャラクター（操作対象）がボール（移動体）に対してどの高さでどのタイミングでどの強さでバットを振るか指定するコマンドを入力できるようにしているものがある。このようなコマンドは、ボールがキャラクターに近接する以前に先行して入力できるものも多い。
【００５８】
本発明は、このようなコマンドに対応するものであり、物理シミュレーションによるだけではなく、プレイヤーが入力したコマンドによっても、移動体の移動の様子を計算するものである。
【００５９】
本発明によれば、移動体に操作対象が近接したとき、あるいは、近接が見込まれるときに、当該移動体の運動に変化を与えるような操作をプレイヤーが行うことができるようになる。
【００６０】
また、本発明の端末装置において、親移動体更新部により、当該動作に応じて、当該移動体の位置および速度が更新されると、親委譲部は、当該動作が当該ユーザに割り当てられた操作対象から当該移動体が離れると想定される動作である場合、当該複数の操作対象のすべてから当該移動体と直近に接触する操作対象を推定するのにかえて、当該複数の操作対象のうちユーザに割り当てられていない操作対象から当該移動体と直近に接触する操作対象を推定するように構成することができる。
【００６１】
たとえば野球ゲームにおいては、「ボールを打つ」コマンドが実行され、バッターのキャラクターがバットを振った後は、直ちに、攻撃側ではなく守備側のチームがボールを取り扱うフェーズに移行する、と考えることができる。
【００６２】
そこで本発明では、動作の種類によっては、直近に接触する（と想定される）操作対象を推定する際に、その探索範囲を、当該動作を行ったプレイヤー側でないキャラクターに限定する。
【００６３】
本発明によれば、適用されるゲームのルールによっては、親の委譲をよりスムースに行うことができるようになる。
【００６４】
本発明のその他の観点に係るゲーム制御方法は、仮想空間内で複数の操作対象と一つの移動体とを移動させるゲームシステムが有する複数の互いに通信可能な端末装置のそれぞれが実行するゲーム制御方法であって、当該複数の端末装置のそれぞれは、記憶部、指示入力受付部、自位置更新部、自位置送信部、他位置受信部、他位置更新部、親委譲部、親受任部、親移動体更新部、移動体位置送信部、移動体位置受信部、子移動体更新部を有し、記憶部には、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、を記憶し、当該端末装置のモードが親機と子機とのいずれであるか、が記憶され、指示入力受付工程、自位置更新工程、自位置送信工程、他位置受信工程、他位置更新工程、親委譲工程、親受任工程、親移動体更新工程、移動体位置送信工程、移動体位置受信工程、子移動体更新工程を備え、以下のように構成する。
【００６５】
すなわち、指示入力受付工程では、指示入力受付部が、当該端末装置に割り当てられるユーザからの指示入力を受け付ける。
【００６６】
一方、自位置更新工程では、自位置更新部が、当該複数の操作対象のうち当該ユーザに割り当てられる操作対象が配置される位置および速度を、受け付けられた指示入力に基づいて、記憶部において更新する。
【００６７】
さらに、自位置送信工程では、自位置送信部が、更新された当該ユーザに割り当てられる操作対象の位置および速度を、当該複数の端末装置のうち、他の端末装置に送信する。
【００６８】
そして、他位置受信工程では、他位置受信部が、当該複数の端末装置のうち、他の端末装置から送信された他のユーザに割り当てられる操作対象の位置および速度を受信する。
【００６９】
一方、他位置更新工程では、他位置更新部が、受信された他のユーザに割り当てられる操作対象の位置および速度を、記憶部において更新する。
【００７０】
さらに、親委譲工程では、親委譲部が、当該端末装置のモードが親機である場合、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体と直近に接触する操作対象を推定して、当該推定された操作対象が割り当てられるユーザが割り当てられる端末装置が他の端末装置である場合、記憶部において当該端末装置のモードを子機に更新して、当該他の端末装置に親機となるよう通知する。
【００７１】
そして、親受任工程では、親受任部が、当該端末装置のモードが子機である場合、当該他の端末装置のいずれかから親機となるよう通知されると、記憶部において当該端末装置のモードを親機に更新する。
【００７２】
一方、親移動体更新工程では、親移動体更新部が、当該端末装置のモードが親機である場合、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体が当該複数の操作対象と接触するか否かを判定し、当該判定結果により、当該移動体の位置および速度を、記憶部において更新する
【００７３】
さらに、移動体位置送信工程では、移動体位置送信部が、当該端末装置のモードが親機である場合、更新された当該移動体の位置および速度を、当該複数の端末装置のうち、他の端末装置に送信する。
【００７４】
そして、移動体位置受信工程では、移動体位置受信部が、当該端末装置のモードが子機である場合、当該複数の端末装置のうち、モードが親機である端末装置から送信された当該移動体の位置および速度を受信する。
【００７５】
一方、子移動体更新工程では、子移動体更新部が、受信された当該移動体の位置および速度を記憶部において更新する。
【００７６】
本発明のその他の観点に係るゲーム制御方法は、仮想空間内で複数の操作対象と一つ以上の移動体とを移動させるゲームシステムが有する複数の互いに通信可能な端末装置のそれぞれが実行するゲーム制御方法であって、当該複数の端末装置のそれぞれは、記憶部、指示入力受付部、自位置更新部、自位置送信部、他位置受信部、他位置更新部、親委譲部、親受任部、親移動体更新部、移動体位置送信部、移動体位置受信部、子移動体更新部を有し、記憶部には、当該複数の操作対象のそれぞれの位置および速度と、当該一つ以上の移動体のそれぞれの位置および速度と、を記憶し、当該一つ以上の移動体のそれぞれを当該端末装置が管理するか否か、が記憶され、指示入力受付工程、自位置更新工程、自位置送信工程、他位置受信工程、他位置更新工程、親委譲工程、親受任工程、親移動体更新工程、移動体位置送信工程、移動体位置受信工程、子移動体更新工程を備え、以下のように構成する。
【００７７】
すなわち、指示入力受付工程では、指示入力受付部が、当該端末装置に割り当てられるユーザからの指示入力を受け付ける。
【００７８】
一方、自位置更新工程では、自位置更新部が、当該複数の操作対象のうち当該ユーザに割り当てられる操作対象が配置される位置および速度を、受け付けられた指示入力に基づいて、記憶部において更新する。
【００７９】
さらに、自位置送信工程では、自位置送信部が、更新された当該ユーザに割り当てられる操作対象の位置および速度を、当該複数の端末装置のうち、他の端末装置に送信する。
【００８０】
そして、他位置受信工程では、他位置受信部が、当該複数の端末装置のうち、他の端末装置から送信された他のユーザに割り当てられる操作対象の位置および速度を受信する。
【００８１】
一方、他位置更新工程では、他位置更新部が、受信された他のユーザに割り当てられる操作対象の位置および速度を、記憶部において更新する。
【００８２】
さらに、親委譲工程では、親委譲部が、当該一つ以上の移動体のうち、当該端末装置が管理する移動体のそれぞれについて、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体と直近に接触する操作対象を推定して、当該推定された操作対象が割り当てられるユーザが割り当てられる端末装置が他の端末装置である場合、記憶部において当該端末装置は当該移動体を管理しないと更新して、当該他の端末装置に当該移動体を管理するよう通知する。
【００８３】
そして、親受任工程では、親受任部が、当該複数の端末装置のうち、他の端末装置のいずれかからある移動体を管理するよう通知されると、記憶部において当該端末装置は当該移動体を管理すると更新する。
【００８４】
一方、親移動体更新工程では、親移動体更新部が、当該一つ以上の移動体のうち、当該端末装置が管理する移動体のそれぞれについて、当該複数の操作対象のそれぞれの位置および速度と、当該移動体の位置および速度と、から、当該移動体が当該複数の操作対象もしくは当該一つ以上の移動体のうち他の移動体と接触するか否かを判定し、当該判定結果により、当該移動体の位置および速度を、記憶部において更新する。
【００８５】
さらに、移動体位置送信工程では、移動体位置送信部が、当該端末装置のモードが親機である場合、更新された当該移動体の位置および速度を、当該複数の端末装置のうち、他の端末装置に送信する。
【００８６】
そして、移動体位置受信工程では、移動体位置受信部が、当該複数の端末装置のうち、他の端末装置のいずれかから送信されたある移動体の位置および速度を受信する。
【００８７】
一方、子移動体更新工程では、子移動体更新部が、受信された当該移動体の位置および速度を記憶部において更新する。
【００８８】
本発明のその他の観点に係るプログラムは、コンピュータを、上記の端末装置の各部として機能させ、コンピュータに、上記のゲーム制御方法の各工程を実行させるように構成する。
【００８９】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００９０】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００９１】
本発明によれば、球技などのネットワーク対戦ゲームにおいて、プレイヤー等のユーザの意思がキャラクター等の操作対象の動作により自然に反映されるようにするのに好適な端末装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するためのプログラムを提供することができる。
【発明を実施するための最良の形態】
【００９２】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００９３】
図１は、プログラムを実行することにより、本発明の端末装置等の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００９４】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ  １０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェイス１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、音声処理部１１０と、マイク１１１と、を備える。
【００９５】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、情報処理装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態の端末装置等が実現される。
【００９６】
ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００９７】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００９８】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００９９】
インターフェイス１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【０１００】
図２は、コントローラ１０５の外観を示す説明図である。以下、本図を参照して説明する。
【０１０１】
コントローラ１０５の左方には、上下左右を示す操作入力を行うのに利用される↑ボタン２０１、↓ボタン２０２、←ボタン２０３、→ボタン２０４が配置されている。
【０１０２】
右方には、決定操作入力を行うのに利用される○ボタン２０５、取消操作入力を行うのに利用される×ボタン２０６、メニュー表示等の指示入力を行うのに利用される△ボタン２０７、その他の指示入力を行うのに利用される□ボタン２０８が配置されている。
【０１０３】
中央には、ＳＥＬＥＣＴボタン２０９、ＳＴＡＲＴボタン２１０のほか、アナログ入力の開始・停止を指示するためのＡＮＡＬＯＧボタン２１１、および、アナログ入力が有効か無効かを表示するためのインジケータ２１２が配置されている。
【０１０４】
また中央下部には、上下左右に限らない方向に大きさを伴う指示入力を行うためのジョイスティック２１３、２１４が配置されている。
【０１０５】
さらに、上方には、各種の指示入力に用いることができるＬ１ボタン２１５、Ｌ２ボタン２１６、Ｒ１ボタン２１７、Ｒ２ボタン２１８が配置されている。
【０１０６】
コントローラ１０５の各ボタン２０１〜２０８、２１５〜２１８には、圧力センサが配備され、アナログ入力が有効となっている場合には、いずれのボタンが押圧操作されているかを検知することができるほか、ユーザの押圧操作の圧力の大きさを０〜２５５の２５６段階で得ることができる。
【０１０７】
コントローラ１０５のジョイスティック２１３、２１４は、ひずみゲージが配備され、これらがどの方向にどれだけ曲げられているか、を検知することができる。
【０１０８】
図１に戻り、インターフェイス１０４を介して着脱自在に接続された外部メモリ１０６には、ゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【０１０９】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【０１１０】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【０１１１】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【０１１２】
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【０１１３】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。フォント情報は、ＲＯＭ  １０２に記録されているが、ＤＶＤ−ＲＯＭに記録された専用のフォント情報を利用することも可能である。
【０１１４】
ＮＩＣ  １０９は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【０１１５】
インターネット内のＳＮＴＰサーバにＮＩＣ  １０９を介して接続し、ここから情報を得ることによって現在の日時情報を得るようにすることができる。また、各種のネットワーク通信ゲームやＳＮＳの管理サーバ装置が、ＳＮＴＰサーバと同様の機能を果たすように構成設定してもよい。
【０１１６】
一旦日時情報が得られれば、情報処理装置１００が動作中はタイマ割込によりリアルタイムクロックと同様の機能を果たすカウンタを更新することとしてもよいし、情報処理装置１００がリアルタイムクロックを有する場合は、その日時情報を修正する態様を採用することもできる。この際に、修正するか否かをユーザに問い合わせてもよい。内蔵するリアルタイムクロックを修正しない場合には、リアルタイムクロックの情報と実際にサーバから得られた情報との差分を保持し、日時情報が必要な場合には、リアルタイムクロックから得られた情報にその差分を加算すればよい。
【０１１７】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【０１１８】
音声処理部１１０では、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカに出力することにより、音声出力が可能となる。
【０１１９】
さらに、情報処理装置１００には、インターフェイス１０４を介してマイク１１１を接続することができる。この場合、マイク１１１からのアナログ信号に対しては、適当なサンプリング周波数でＡ／Ｄ変換を行い、ＰＣＭ形式のディジタル信号として、音声処理部１１０でのミキシング等の処理ができるようにする。
【０１２０】
情報処理装置１００をカラオケ装置として利用する場合には、ＤＶＤ−ＲＯＭから読み出した音声データ、もしくは、ＮＩＣ  １０９を介してコンピュータ通信網から取得した音声データを伴奏データとし、マイクから入力された音声データを歌唱データとして、伴奏データと歌唱データを音声処理部１１０がミキシングし、スピーカから出力する。また、スピーカにかえて、ヘッドホン（図示せず）やイヤフォン（図示せず）を用いて、音声を出力させることもできる。
【０１２１】
このほか、情報処理装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【０１２２】
また、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。また、本実施形態の情報処理装置１００にかえて、汎用のパーソナルコンピュータを利用することもできる。
【０１２３】
なお、リアルタイムクロックにより、本体の電源がオフにされても現在の日時情報を適切に更新できるようにしても良いが、ネットワーク通信ゲームの形態によっては、各ユーザ管理システムが管理する時刻情報にずれがあると、正しくゲームが進行しないこと、などの要因があるため、本発明を適用するにあたっては、ＮＩＣ  １０９を介して接続された各種のサーバから、ゲームを開始する際に、現在の日時情報を得ることとして、時間合わせをすることとしても良い。
【０１２４】
以上で説明した情報処理装置１００は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、同様の処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【０１２５】
たとえば、一般的なコンピュータは、上記情報処理装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＤＶＤ−ＲＯＭドライブ、および、ＮＩＣを備え、情報処理装置１００よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ１０５ではなく、キーボードやマウスなどを入力装置として利用する。
【０１２６】
図３は、本実施形態に係るネットワーク対戦ゲームの画面表示の例を示す説明図である。以下、本図を参照して説明する。
【０１２７】
本図に示すネットワーク対戦ゲームは、テニスやエアホッケーに類似するゲームであり、画面３０１内に配置される長方形型のコート３０２の右側と左側に、操作対象であるラケット３０３ａ、３０３ｂが配置されている。２人のプレイヤーのそれぞれが、このラケット３０３ａ、３０３ｂを操作する。コート３０２の上下には壁３０５ａ、３０５ｂが配置されているが、コート３０２の左右には壁は配置されていない。
【０１２８】
ラケット３０３ａ、３０３ｂは、プレイヤーがコントローラ１０５の↑ボタン２０１、↓ボタン２０２、←ボタン２０３、→ボタン２０４を押圧操作すると、押圧操作されている間だけその向きに移動するように、位置および速度が設定される。ただし、コート３０２から外に出ることはできないように、制限が課せられている。
【０１２９】
移動体であるボール３０４は、ラケット３０３ａ、３０３ｂやコート３０２の上下の壁３０５ａ、３０５ｂにぶつかると、ボール３０４が衝突した相手との相対速度や摩擦力を考慮した物理シミュレーションに基づいて、ボール３０４の速度を変化させることで、跳ね返る。
【０１３０】
ボール３０４が、コート３０２の左から外に出てしまうと、左側のラケット３０３ａを操作していたプレイヤーの負けになり、コート３０２の右から外に出てしまうと、右側のラケット３０３ｂを操作していたプレイヤーの負けになる。
【０１３１】
このほか、コントローラ１０５の所定のボタンを「魔球コマンド」として、このボタンをあらかじめ押圧操作することにより魔球コマンドの先行入力を行い、ラケット３０３ａ、３０３ｂにボール３０４が衝突したときに、単なる物理シミュレーションによるだけではなく、特殊な変化を起こさせるようにしても良い。「魔球」としては、たとえば、ボール３０４が相手のラケット３０３ａ、３０３ｂをすり抜けて反発しなくなるもの、ボール３０４が複雑な軌跡を描いて移動するようになるもの、ボール３０４が一定の時間透明になるもの等、種々のものが考えられる。
【０１３２】
図４は、本実施形態に係るゲームシステム全体の概要構成を示す模式図である。以下、本図を参照して説明する。
【０１３３】
本図に示すように、２つの端末装置４０１が、インターネット等のコンピュータ通信網４０２を介して通信可能に接続されている。この端末装置４０１は、上記の情報処理装置１００によって実現されており、ゲームを開始する場合には、ロビーサーバ４０３に問い合わせを行って、互いの端末装置４０１の紹介を受けて、対戦が開始されるのが典型的であるが、無線ＬＡＮ（Local Area Network）通信対応の端末装置４０１同士がアドホックに通信を行うことで、ゲームが開始されるように構成しても良い。
【０１３４】
本実施形態では、２人の対戦を想定しているが、本発明は、任意の複数のプレイヤーが対戦するゲームに適用が可能である。本実施形態では、互いに対戦を行っている複数の端末装置４０１のうち、一つの端末装置４０１を「親機」として、移動体（ボール３０４）の移動の計算処理は「親機」が担当する。それ以外の端末装置４０１は「子機」となる。
【０１３５】
端末装置４０１のそれぞれは、自身を操作するプレイヤーの指示入力（コントローラ１０５の↑ボタン２０１、↓ボタン２０２、←ボタン２０３、→ボタン２０４の押圧操作）に基づいて、当該プレイヤーが操作する操作対象（ラケット３０３ａ、３０３ｂ）の位置や速度を更新する。
【０１３６】
また、端末装置４０１のうち、子機は、更新された位置や速度の情報を親機に通知する。親機は、子機から通知された位置や速度を集積して、移動体（ボール３０４）および全操作対象（ラケット３０３ａ、３０３ｂ）の最新の位置や速度を、適当なタイミングで子機に通知し、子機と親機で、移動体と操作対象の位置や速度の情報に、通信遅延に基づく齟齬ができるだけ生じないように、情報の共有を図る。
【０１３７】
上記のように、従来の技術では、親機になるか否かは、ゲームのルールに基づいて「ターン」によって定めることとしていたが、本発明では、移動体と操作対象との衝突の蓋然性によって、親機になるか否かを定める。すなわち、今後移動体にもっとも先に衝突する操作対象を推測して、推測された操作対象を操作しているプレイヤーが利用している端末装置４０１を、親機とする。
【０１３８】
また、端末装置４０１のそれぞれには、互いに重複しない識別子が割り当てられており、これによって端末装置４０１を区別することができる。
【０１３９】
図５は、本実施形態に係る端末装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【０１４０】
本実施形態に係る端末装置４０１は、記憶部５０１、指示入力受付部５０２、自位置更新部５０３、自位置送信部５０４、他位置受信部５０５、他位置更新部５０６、親委譲部５０７、親受任部５０８、親移動体更新部５０９、移動体位置送信部５１０、移動体位置受信部５１２、子移動体更新部５１１を備える。
【０１４１】
記憶部５０１は、ＲＡＭ  １０３等によって構成され、以下の情報を記憶する。
（ａ）各操作対象と、当該操作対象に割り当てられる端末装置４０１の識別子。上記の例では、ラケット３０３ａには、ラケット３０３ａを操作するプレイヤーが利用する端末装置４０１の識別子が割り当てられ、ラケット３０３ｂには、ラケット３０３ｂを操作するプレイヤーが利用する端末装置４０１の識別子が割り当てられる。
（ｂ）各操作対象の位置および速度の最新の値、および、当該最新の値に更新された更新時刻。本例では、コントローラ１０５の操作に基づいてラケット３０３ａ、３０３ｂの位置および速度を更新する端末装置４０１は互いに異なるため、通信遅延を考慮して、最新の更新時刻も情報として記憶することとしている。この時刻は、ゲームが開始されてからの経過時間を、各端末装置４０１にて測定したものである。
（ｃ）移動体の位置および速度の最新の値、および、当該最新の値に更新された更新時刻。ラケット３０３ａ、３０３ｂの場合と同様に、親機から子機へボール３０４の情報が伝達されるのには通信遅延があるため、時刻も考慮する。
（ｄ）現在親機となっている端末装置４０１の通信識別子。各端末装置４０１は、記憶されている通信識別子と自身の通信識別子とを比較して、これらが等しければ、現在のモードは親機であり、異なっていれば、現在のモードは子機である、と判断することができる。
（ｅ）その他の情報。たとえば、野球ゲームやサッカーゲーム等のように、一人のプレイヤーが複数の操作対象を操作する場合には、操作対象のいずれかを「現在注目している操作対象」に設定して、プレイヤーの指示入力は、当該操作対象に反映させることとし、それ以外の操作対象は、ＣＰＵ  １０１が所定の自動制御アルゴリズムに基づいて、自動的に制御を行うのが一般的である。そこで、当該端末装置４０１において「現在注目している操作対象」がいずれであるか、を記憶部５０１に記憶させておく。なお、以下では、理解を容易にするため、特に明記しない限り、一人のプレイヤーは一つの操作対象を操作するものとして説明を行う。
【０１４２】
図６は、各端末装置４０１において実行されるゲーム制御処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１４３】
本処理は、ロビーサーバからの紹介やアドホック通信の確立によって端末装置４０１同士における対戦が開始可能となることを契機に始められる。
【０１４４】
対戦が開始されると、ＣＰＵ  １０１は、ＲＡＭ  １０３に記憶される情報の初期化を行う（ステップＳ６０１）。この際に、記憶部５０１に記憶される情報は、ゲームのルールに基づいて適切に初期化される。
【０１４５】
ラケット３０３ａ、３０３ｂの位置は、ルールに基づいた所定の位置（本例では、コート３０２の左側半分のいずれかの場所と右側半分のいずれかの場所。）に設定され、速度は０とするのが典型的である。また、ボール３０４は、エアホッケーの場合にはコート３０２の中央に配置され、テニスの場合には、ラケット３０３ａ、３０３ｂのうちサービス側の方の近傍に配置され、速度は０とするのが典型的である。
【０１４６】
ゲームの開始時点では、互いに対戦する端末装置４０１のうち、いずれかの端末装置４０１を親機に設定する必要があるが、これは、従来技術のようにゲームのルールに基づいて親機を決定しても良いし、乱数によって決定することとしても良い。
【０１４７】
次に、ＣＰＵ  １０１は、コントローラ１０５の↑ボタン２０１、↓ボタン２０２、←ボタン２０３、→ボタン２０４が押圧操作されているかを調べる（ステップＳ６０２）。したがって、コントローラ１０５は、指示入力受付部５０２として機能する。
【０１４８】
さて、いずれかのボタンが押圧操作されていれば（ステップＳ６０２；Ｙｅｓ）、記憶部５０１において、当該端末装置４０１のプレイヤーに割り当てられた操作対象の速度を当該ボタンの種類に応じて更新する（ステップＳ６０３）。
【０１４９】
↑ボタン２０１、↓ボタン２０２、←ボタン２０３、→ボタン２０４のうち、押圧操作された方向の所定の長さのベクトルを、記憶部５０１における当該操作対象の速度に設定するのがもっとも単純な更新の手法である。この手法では、押圧操作したボタンが示す方向に、ラケット３０３ａ、３０３ｂが一定速度で移動することになる。
【０１５０】
このほか、押圧操作された方向の所定の長さのベクトルを、記憶部５０１における当該操作対象の速度に加算する、という手法もありうる。この場合は、押圧操作したボタンが示す方向の力をラケット３０３ａ、３０３ｂに印加したことに相当する。
【０１５１】
このようなボタンの操作は、ゲームの種類によって適宜変更が可能である。たとえば、野球ゲームにおいては、投手が腕を振り上げる高さやボールを離すタイミング、打者がバットを振るタイミング、野手がキャッチしたボールをいずれの塁に投球するかの選択等が決定され、テニスゲームやエアホッケーゲームにおいては、ラケット等の操作対象をどの場所に移動させるか、どのようなタイミングで操作対象を移動させるか、等が決定されることになる。
【０１５２】
一方、いずれのボタンも押圧操作されていなければ（ステップＳ６０２；Ｎｏ）、記憶部５０１において、当該端末装置４０１のプレイヤーに割り当てられている操作対象（自操作対象）の速度、および、当該操作対象の更新時刻を更新する（ステップＳ６０４）。更新の手法として典型的なのは、ラケット３０３ａ、３０３ｂの速度を０にする、というものである。これは、ラケット３０３ａ、３０３ｂを押圧操作したボタンが示す方向に、一定速度で移動させる場合に好適である。
【０１５３】
このほか、操作対象の速度をそのまま維持する、という手法もありうる。これは、この場合は、ラケット３０３ａ、３０３ｂに押圧操作したボタンが示す方向の力を印加したことを想定した場合に好適である。
【０１５４】
また、現在の操作対象の速度に、０以上１未満の定数を乗じたり、現在の操作対象の速度を、０になるまでは所定の大きさだけ減じたりする手法もありうる。これらは、摩擦力をシミュレートするものである。
【０１５５】
このようにして、当該自操作対象の速度が更新されたら（ステップＳ６０３、Ｓ６０４）、当該速度に所定の微小時間（典型的には垂直同期割込の周期）を乗じたものを、当該自操作対象の位置に加算して、記憶部５０１に記憶される操作対象の位置を更新する（ステップＳ６０５）。
【０１５６】
したがって、ＣＰＵ  １０１は、コントローラ１０５やＲＡＭ  １０３等と共働して、自位置更新部５０３として機能する。
【０１５７】
このような構成をとることで、端末装置４０１を使用しているプレイヤーの指示入力がされると、当該プレイヤーが操作する操作対象の位置や速度は、当該端末装置４０１においては直ちに反映されることとなる。したがって、プレイヤーが自分の操作に対する遅延を感じる可能性は、極めて低くなる。
【０１５８】
ついで、ＣＰＵ  １０１は、現在のモードが親機であるか子機であるか、を判定する（ステップＳ６０６）。子機である場合（ステップＳ６０６；子機）、ＣＰＵ  １０１は、記憶部５０１に記憶されている操作対象のうち、当該自操作対象の速度、位置、更新時刻を取得して（ステップＳ６０７）、当該自操作対象に取得された情報を対応付けて指定する親宛パケットを生成し（ステップＳ６０８）、親機に送信する（ステップＳ６０９）。
【０１５９】
したがって、親宛パケットには、当該端末装置４０１を利用するプレイヤーに割り当てられた自操作対象の位置および速度の最新の値が、当該最新の値に更新された更新時刻（ゲーム開始時点からの経過時間）とともに、指定されることになる。
【０１６０】
また、現在の親機がいずれの端末装置４０１であるかは、前述のように、記憶部５０１に記憶される情報を参照することで調べることが可能である。
【０１６１】
ついで、ＣＰＵ  １０１は、ＮＩＣ  １０９を監視して、親機の端末装置４０１から、後述する子宛パケットが到達しているか否かを調べる（ステップＳ６１０）。到達していなければ（ステップＳ６１０；Ｎｏ）、ＣＰＵ  １０１は、記憶部５０１に記憶されている操作対象および移動体の位置および速度の情報に基づいて、図３に示すような画像をＲＡＭ  １０３に生成する（ステップＳ６１１）。この際に、後述するように、通信遅延や位置、速度の更新時刻と現在時刻との差を考慮した補正処理を、適宜行うこととしても良い。
【０１６２】
垂直同期割込が生じるまで待機してから（ステップＳ６１２）、画像処理部１０７を制御して生成された画像をモニタに転送して表示させ（ステップＳ６１３）、ステップＳ６０２に戻る。なお、垂直同期割込待ちの間には、他の計算処理（たとえば、移動体や操作対象の物理シミュレーション等）をコルーチン的に進めることも可能である。
【０１６３】
さて、現在のモードが親機である場合（ステップＳ６０６；親機）、ＣＰＵ  １０１は、ＮＩＣ  １０９を監視して、いずれかの子機の端末装置４０１から親宛パケットが到達しているか否かを調べる（ステップＳ６１４）。到達していなければ、ステップＳ６１７に進む。
【０１６４】
一方、到達していれば（ステップＳ６１４；Ｙｅｓ）、当該親宛パケットをすべて受信して（ステップＳ６１５）、当該親宛パケットに指定されている操作対象がいずれであるか、および、当該操作対象の位置、速度、更新時刻により、記憶部５０１の情報を更新する（ステップＳ６１６）。
【０１６５】
なお、通信遅延等の影響で、同じ端末装置４０１から送信された親宛パケットの順序が前後して到着することがありうるが、その場合には、パケット内に指定されている更新時刻と、記憶部５０１に記憶されている更新時刻とを比較して、前者が後者よりも未来の時刻である場合にのみ、更新を行うこととすれば、最新の値が維持される。
【０１６６】
ついで、親機は、記憶部５０１に記憶されている全操作対象の位置および速度、移動体の位置および速度から、各操作対象と移動体の衝突判定を行い（ステップＳ６１７）、衝突していれば（ステップＳ６１７；Ｙｅｓ）、跳ね返りのシミュレーション計算を行って（ステップＳ６１８）、衝突している操作対象と移動体の微小時間後の位置および速度ならびに更新時刻を記憶部５０１で更新する（ステップＳ６１９）。
【０１６７】
この衝突判定およびシミュレーション計算の際には、[特許文献２]に開示されているような種々のシミュレーション技術を適用することが可能である。また、衝突判定の際には、記憶部５０１に記憶される位置および速度のみならず、更新時刻も考慮して、現在時刻と更新時刻との差がある場合には、適宜補正を行うこととしても良い。この補正は、上記の画像生成におけるものと同様である。以下では、理解を容易にするため、このような補正処理については適宜説明を省略する。
【０１６８】
また、衝突判定は、全操作対象について行うが、本実施形態では、親機に割り当てられる操作対象が移動体の直近に配置されているため、ほとんどの場合には、衝突するのは、親機に割り当てられた操作対象と移動体である。
【０１６９】
したがって、コントローラ１０５の○ボタン２０５、×ボタン２０６、△ボタン２０７、□ボタン２０８等の操作状況をここで監視して、押圧操作の内容に応じて移動体の速度や位置を更新することとしても良い。たとえば、野球の守備側で○ボタン２０５を「ボールをキャッチする動作」に割り当てた場合には、キャラクターとボールの距離が一定の閾値以下であり、かつ、○ボタン２０５が押圧操作されていれば、「ボールのキャッチ」が成功して、その後は、ボールがリリースされるまで、当該キャラクターの位置および速度に当該ボールの位置および速度が一致するように更新する、等である。これらの手法については、ゲームのルールに基づいた公知の種々の技術が適用できる。
【０１７０】
一方、衝突していなければ（ステップＳ６１７；Ｎｏ）、記憶部５０１に記憶された移動体の位置、速度、更新時刻から、微小時間後における移動体の位置、速度を計算して（ステップＳ６２０）、記憶部５０１における移動体の位置、速度、更新時刻を更新する（ステップＳ６２１）。ステップＳ６２０の計算では、移動体は、等速直線運動や等加速度運動をとると仮定したり、さらに摩擦力や粘性力が印加されるものとして、物理シミュレーションを行うのが一般的である。また、壁３０５ａ、３０５ｂとの衝突についても、本ステップにてシミュレートする。
【０１７１】
したがって、ＣＰＵ  １０１は、ＲＡＭ  １０３と共働して、親移動体更新部５０９として機能する。
【０１７２】
記憶部５０１における移動体の位置や速度が更新されたら（ステップＳ６１９、Ｓ６２１）、親機の端末装置４０１のＣＰＵ  １０１は、記憶部５０１に記憶された各操作対象の位置、速度（および更新時刻）、移動体の位置、速度（および更新時刻）から、当該移動体と直近に接触する操作対象がいずれであるかを推定する（ステップＳ６２２）。この具体的な手法については、後述する。
【０１７３】
また、移動体の位置や速度が更新された（ステップＳ６１９、Ｓ６２１）後は、ステップＳ６２２における推定の前に、当該移動体（ボール３０４）がコート３０２の外に出たか否かを判定して親機が勝敗を判定し、その旨を子機に通知して本処理を終了することとする公知の技術を適用するのが一般的であるが、理解を容易にするため、当該処理の詳細については、説明を省略する。
【０１７４】
さて、移動体と直近に接触するであろう操作対象が推定されたら（ステップＳ６２２）、ＣＰＵ  １０１は、以下の情報を指定した子宛パケットをＲＡＭ  １０３内に生成する（ステップＳ６２３）。
（ａ）推定された操作対象に割り当てられている端末装置４０１の識別子。この情報は、次に親機となるべき端末装置４０１を意味する。
（ｂ）記憶部５０１に記憶されている全操作対象の位置、速度、更新時刻および移動体の位置、速度、更新時刻。
【０１７５】
そして、生成された子宛パケットを、子機である端末装置４０１に送信する（ステップＳ６２４）。
【０１７６】
ついで、記憶部５０１の「現在親機となっている端末装置４０１の識別子」を、ステップＳ６２２で推定された操作対象の識別子で上書き更新して（ステップＳ６２５）、ステップＳ６１１に進む。なお、両者が等しいか否かを事前に判定して、等しい場合には上書きしないこととしても良い。
【０１７７】
さて、親機の端末装置４０１のステップＳ６２４において送信された子宛パケットは、子機の端末装置４０１では、ステップＳ６１０で到達判定がされる。そこで、子宛パケットが到着している場合（ステップＳ６１０；Ｙｅｓ）、当該子宛パケットをすべて受信して（ステップＳ６２６）、当該子宛パケットに指定されている操作対象がいずれであるか、および、当該操作対象の位置、速度、更新時刻、ならびに、次に親機となるべき端末装置４０１の識別子により、記憶部５０１の情報を更新して（ステップＳ６２７）、ステップＳ６１１に進む。
【０１７８】
このように、従来技術では、ターン単位、時間単位で行われていた「親」の委譲は、本技術においては、親機では、ステップＳ６２５における識別子により、子機では、子宛パケットに指定される識別子により、記憶部５０１の「現在親機となっている端末装置４０１の識別子」が更新されることで行われる。これによって、従来技術とは異なり、プレイヤーの操作技能に応じた平等さで、親機と子機が決定されるのである。
【０１７９】
なお、通信遅延等の影響や、親機における衝突判定等の影響で、子機の端末装置４０１に割り当てられている操作対象の速度や位置が更新されていることがありうるが、その場合には、子宛パケット内に指定されている更新時刻と、記憶部５０１に記憶されている更新時刻とを比較して、前者が後者よりも未来の時刻である場合にのみ、更新を行うこととしても良いし、子宛パケット内に記憶されている値を優先して使用することとしても良いし、位置、速度および更新時刻の２つのセット（一方は記憶部５０１、他方は子宛パケット）から、現在時刻における位置、速度を内分・外挿により推定して、これらの値で更新することとしても良い。
【０１８０】
このように、ＣＰＵ  １０１は、ＮＩＣ  １０９、ＲＡＭ  １０３等と共働して、自位置送信部５０４、他位置受信部５０５、他位置更新部５０６、親委譲部５０７、親受任部５０８、移動体位置送信部５１０、移動体位置受信部５１２、子移動体更新部５１１として機能する。
【０１８１】
なお、上記の態様においては、親宛パケットは子機の自位置送信部５０４が送信し、親機の他位置受信部５０５が受信し、子宛パケットは、親機の自位置送信部５０４、移動体位置送信部５１０、親委譲部５０７が送信し、子機の他位置受信部５０５、移動体位置受信部５１２、親受任部５０８が受信することとなっているが、各情報は個別に別々のパケットにして送受することとしても良い。
【０１８２】
さて、球技等のゲームにおいては、プレイヤーは、ボールの近傍にいるキャラクターやラケットに特に注目すると考えられる。したがって、コントローラ１０５における指示入力が迅速に反映されるべきであるのは、ボールの近傍にいるキャラクターやラケットを操作するプレイヤーが利用する端末装置４０１である。本実施形態では、このような端末装置４０１を推定して、親機としている。
【０１８３】
以下では、親機とすべき端末装置４０１を決めるため、移動体と直近に接触すると予想される操作対象を決める種々の手法について説明する。
【０１８４】
図７は、移動体と操作対象との位置関係を示す説明図である。以下、本図を参照して説明する。
【０１８５】
本図には、１つの移動体７０１と、２つの操作対象７０２、７０３の異なる時刻における位置が表示されている。
【０１８６】
以下、記憶部５０１に記憶された位置をp、速度をv、更新時刻をA、現在時刻をT、現在時刻の所定時間後の時刻（以下「未来時刻」という。）をS (S>T)とする。本図では、数字符号の後に、英字ａ、ｂ、ｃを付して、同じオブジェクトに対する３つの位置を表示している。ここで、
（ａ）位置ａは、pであり、
（ｂ）位置ｂは、p + v(T-A)であり、
（ｃ）位置ｃは、p + v(S-A)である。
【０１８７】
たとえば、移動体７０１の位置７０１ａは、記憶部５０１に記憶された位置そのものである。
【０１８８】
位置７０１ｂは、記憶部５０１に記憶された速度に、現在時刻と記憶部５０１に記憶された更新時刻との差を乗じた分だけ、位置７０１ａから移動した位置である。
【０１８９】
位置７０１ｃは、記憶部５０１に記憶された速度に、未来時刻から記憶部５０１に記憶された更新時刻との差を乗じた分だけ、位置７０１ａから移動した位置である。
【０１９０】
操作対象７０２の位置７０２ａ、７０２ｂ、７０２ｃ、操作対象７０３の位置７０３ａ、７０３ｂ、７０３ｃについても同様である。
【０１９１】
操作対象７０２、７０３のうち、移動体７０１と直近に接触するのがいずれであるか、を推定する手法は、以下のような種々の手法がある。
（ａ）位置７０１ａと位置７０２ａの間の距離Xaと、位置７０１ａと位置７０３ａの距離の距離Yaと、を比較し、前者が近ければ操作対象７０２を、後者が近ければ操作対象７０３を、推定結果とする。記憶部５０１に記憶されている位置そのものを利用する手法である。
（ｂ）位置７０１ｂと位置７０２ｂの間の距離Xbと、位置７０１ｂと位置７０３ｂの距離の距離Ybと、を比較し、前者が近ければ操作対象７０２を、後者が近ければ操作対象７０３を、推定結果とする。現在の位置を推定してから距離を考える手法である。
（ｃ）位置７０１ｃと位置７０２ｃの間の距離Xcと、位置７０１ｃと位置７０３ｃの距離の距離Ycと、を比較し、前者が近ければ操作対象７０２を、後者が近ければ操作対象７０３を、推定結果とする。近未来の位置を推定してから距離を考える手法である。
（ｄ）Xa，Ya，Xb，Ybのうち最小のものがXa，Xbのいずれかであれば、操作対象７０２を、Ya，Ybのいずれかであれば、操作対象７０３を、推定結果とする。
（ｅ）Xb，Yb，Xc，Ycのうち最小のものがXb，Xcのいずれかであれば、操作対象７０２を、Yb，Ycのいずれかであれば、操作対象７０３を、推定結果とする。
（ｆ）Xc，Yc，Xa，Yaのうち最小のものがXc，Xaのいずれかであれば、操作対象７０２を、Yc，Yaのいずれかであれば、操作対象７０３を、推定結果とする。
（ｇ）Xa，Ya，Xb，Yb，Xc，Ycのうち最小のものがXa，Xb，Xcのいずれかであれば、操作対象７０２を、Ya，Yb，Ycのいずれかであれば、操作対象７０３を、推定結果とする。
【０１９２】
これらは、位置の測定時点、現在の推測位置、未来の推測位置から移動体７０１と操作対象７０２、７０３のとの距離を求めて、推定結果とするものである。
【０１９３】
このほか、移動体７０１が操作対象７０２、７０３に近付いているかどうかを事前にチェックして、近付いている場合にのみ、推定結果の候補とすることも可能である。すなわち、移動体７０１が操作対象７０２に近付いている場合には、
Xa ≧ Xb ≧ Xc
が成立し、移動体７０１が操作対象７０３に近付いている場合には、
Ya ≧ Yb ≧ Yc
が成立するはずである。
【０１９４】
たとえば、上記（ｄ）の場合には、
（ｄ１）Xa ≧ XbかつYa ≧ Ybならば、上記（ｄ）と同様に最小の値を求めて推定結果とし、
（ｄ２）Xa ≧ XbかつYa < Ybならば、操作対象７０２を推定結果とし、
（ｄ３）Xa < XbかつYa ≧ Ybならば、操作対象７０３を推定結果とし、
（ｄ４）Xa < XbかつYa < Ybならば、上記（ｄ）と同様に最小の値を求めて推定結果とする
のである。上記（ｅ）〜（ｇ）も同様である。
【０１９５】
これらはいずれも、本発明において移動体と時間的に直近に接触すると予想される操作対象を推定する手法の種々の態様を表すものであり、ゲームの種類や難易度等、用途に応じて、適切な手法を適宜選択することができる。
【０１９６】
本実施形態によれば、プレイヤーは自身の操作が自身の操作対象に迅速に反映させるとともに、ボール等の移動体と自分の操作対象とが接触して移動体の位置や速度が変化しそうな場合には、当該移動体の衝突判定等の計算を自分の端末装置４０１で行うことで、操作対象を介した移動体に対する操作の反映も迅速に行うことができるようになり、プレイヤーの意思が操作対象やゲームに、より自然に反映されるようになる。
【実施例２】
【０１９７】
上記実施形態では、移動体に時間的に直近に接触すると予想される操作対象を、両者の距離によって求めていたが、本実施形態では、移動体が存在する場所に基づいて推定する。
【０１９８】
たとえばテニスの場合には、プレイヤーはコート全体を移動可能なのではなく、移動可能な範囲は半分だけである。この状況は、図３に示す例では、ラケット３０３ａはコート３０２の右側半分のみを移動でき、ラケット３０３ｂはコート３０２の左側半分のみを移動できる、というようなルールが課せられたゲームである場合に相当する。
【０１９９】
本実施形態では、ボール３０４が右側半分に存在する場合には、ラケット３０３ａを操作するプレイヤーが使用している端末装置４０１を親機とし、ボール３０４が左側半分に存在する場合には、ラケット３０３ｂを操作するプレイヤーが使用している端末装置４０１を親機とするのである。
【０２００】
より一般的には、仮想空間内を重複しないように複数の領域に分割しておき、各領域には、操作対象のいずれかを重複なく割り当てておく。このとき、操作対象の移動範囲を当該領域内に制限することが望ましいが、ゲームのルールによっては、必ずしもそのような制限を課さなくても良い。
【０２０１】
そして、移動体の位置（記憶部５０１に記憶された位置そのもの、あるいは、それに基づいて計算された現在位置や未来位置。）が、いずれの領域に含まれるか、によって、直近に移動体が接触すると推定される操作対象を定めるのである。
【０２０２】
これは、野球ゲームの場合にも適用が可能である。すなわち、球場内の各領域を、投手、捕手、野手の定位置に応じて領域分割するが、投手から打者へ至る経路の近傍は、打者が割り当てられる領域とするのである。
【０２０３】
本実施形態では、移動体の位置によって直ちに親機が決定されるため、計算の負荷を低くすることができるほか、自身が親機か否かが移動体の位置から直ちに判定することができるため、子宛パケットに「次の親機の識別子」を指定する必要がなくなる。
【実施例３】
【０２０４】
上記の説明では、２台の端末装置４０１が対戦する場合を想定して説明したが、上記実施形態は、３台以上の場合にも適用が可能である。
【０２０５】
特に、上記実施形態では、子機によって移動した操作対象の位置の情報を、親宛パケットによって一旦親機に集積した後に、親機から子機に子宛パケットによって伝達していた。
【０２０６】
しかしながら、端末装置４０１の台数によっては、親機に位置情報を集積するのではなく、位置や速度の更新がされるごとに、他の端末装置４０１に直接その旨を通知することとしても良い。
【０２０７】
上記実施形態では、端末装置４０１が３台以上の場合に、相互の通信でやりとりされるパケットの量を低減する効果があるが、本実施形態では、通信パケット量が多くなる可能性があるものの、位置情報の更新がそれだけ頻繁に行われるので、より正確な処理が可能となる。
【実施例４】
【０２０８】
上記の説明では、移動体が１つであることを想定して親機と子機を決定していたが、移動体の数は、複数であっても良い。たとえば、雪合戦のゲームや玉入れ競争のゲームでは雪玉や色つきお手玉が移動体に相当し、複数の移動体がそれぞれ仮想空間を移動することとなる。
【０２０９】
この場合、複数の移動体のそれぞれについて、各端末装置４０１は、「当該移動体を管理する親機」と「当該移動体を他の端末装置に管理してもらっている子機」のいずれかのモードをとることとする。
【０２１０】
したがって、記憶部５０１には、各移動体について、
（ａ）当該移動体の位置、速度、
（ｂ）当該移動体を当該端末装置４０１が管理しているか否か（当該移動体についての親機であるか否か）
の情報が記憶されることとなる。
【０２１１】
また、親委譲部５０７は、当該端末装置４０１が管理している移動体のそれぞれについて、直近に接触するであろう操作対象を推定することとなり、親受任部５０８は、どの移動体についての「親機」が委譲されるのかの情報が指定された通知を受信することとなる。
【０２１２】
親移動体更新部５０９において、各移動体と各操作対象の接触、衝突、反発等を計算する処理は、上記実施形態と同様である。
【０２１３】
移動体同士の衝突については、そもそも移動体同士はすりぬけて衝突しない、と設定することが可能である。
【０２１４】
このほか、移動体同士が衝突する場合であっても、移動体が多数の場合には、衝突計算の組み合わせが莫大になってしまうことがある。そこで、移動体同士の衝突については、各端末装置４０１が管理している移動体は衝突するが、それ以外の組み合わせでは衝突しない、とシミュレーションを簡易にして、計算量を抑制することとしても良い。
【０２１５】
プレイヤーから見て移動体同士の衝突が印象に残るのは、当該移動体同士が当該プレイヤーの操作するキャラクターの近傍（すなわち、当該プレイヤーが画面内で注目している領域内）で衝突する場合と考えられ、その場合には、当該移動体同士は、いずれも当該プレイヤーの操作する端末装置４０１が親機になっていると考えられるからである。
【実施例５】
【０２１６】
上記実施形態では、「魔球コマンド」の例により、プレイヤーが選択したキャラクターの動作によって、ボールの移動する軌跡を変化する例に言及したが、野球ゲームでは、「ボールを投げる」「ボールを打つ」（これらのコマンドは、ボールがキャラクターに近付いている間に先行して入力できるようにすることも可能である。）などの動作の後は、当該動作をとったプレイヤーからボールが離れていくと想定されるコマンドが存在する。
【０２１７】
このような、動作が採用された後に移動体が離れていくと想定される状況は、たとえばサッカーゲームでは「ボールをキックする」であり、テニスゲームでは「ラケットを振る」である。
【０２１８】
したがって、このように、ボールが離れていくことが想定される動作がコマンドによって指定された場合、当該動作をキャラクターがとって、その動作の結果が移動体の位置や速度に反映された後は、当該動作をとったキャラクターは「直近に移動体に近接する（と想定される）操作対象」ではなくなると考えられる。
【０２１９】
また、ダブルスのテニスゲームのように、ボールが交互に自陣と他陣とでやりとりされるものの場合には、当該動作をとったキャラクター側の陣営でない側を、「直近に移動体に近接する（と想定される）操作対象」としても良いと考えられる。
【０２２０】
そこで、このような動作コマンドが設定されているゲームの場合には、当該動作コマンドの効果が移動体の位置や速度に反映された後は、一定時間、「直近に移動体に近接する（と想定される）操作対象」の探索対象から、当該動作コマンドを入力したプレイヤーが操作するキャラクターを外すことにより、親の委譲をより一層スムースに行うことができる。
【０２２１】
具体的には、親移動体更新部５０９におけるシミュレーション計算の際に、動作コマンドの種類を考慮するものとして、その種類が上記のような所定の種類のものである場合には、ステップＳ６２２において、当該動作コマンドを実行したキャラクター１人、もしくは、当該動作コマンドを入力したプレイヤーが操作するキャラクター全員を「直近に移動体に近接する（と想定される）操作対象」の探索対象から外し、それ以外のキャラクターについて、ボールとの距離等の変化を調べて、ボールが直近に近接すると想定されるキャラクターを推定する。
【０２２２】
このように、実行された動作コマンドの種類に応じて推定の探索対象を変化させることで、親の委譲が一層スムースに行えるようになるものと考えられる。
【産業上の利用可能性】
【０２２３】
以上説明したように、本発明によれば、球技などのネットワーク対戦ゲームにおいて、プレイヤー等のユーザの意思がキャラクター等の操作対象の動作により自然に反映されるようにするのに好適な端末装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するためのプログラム
【０２２４】
を提供することができる。
【図面の簡単な説明】
【０２２５】
【図１】プログラムを実行することにより、本発明の端末装置等の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。
【図２】情報処理装置に接続されるコントローラの外観を示す説明図である。
【図３】本実施形態に係るネットワーク対戦ゲームの画面表示の例を示す説明図である。
【図４】本実施形態に係るゲームシステム全体の概要構成を示す模式図である。
【図５】本実施形態に係る端末装置にて実行される端末処理の制御の流れを示すフローチャートである。
【図６】各端末装置において実行されるゲーム制御処理の制御の流れを示すフローチャートである。
【図７】移動体と操作対象との位置関係を示す説明図である。
【符号の説明】
【０２２６】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェイス
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
１１１  マイク
２０１  ↑ボタン
２０２  ↓ボタン
２０３  ←ボタン
２０４  →ボタン
２０５  ○ボタン
２０６  ×ボタン
２０７  △ボタン
２０８  □ボタン
２０９  ＳＥＬＥＣＴボタン
２１０  ＳＴＡＲＴボタン
２１１  ＡＮＡＬＯＧボタン
２１２  インジケータ
２１３  ジョイスティック
２１４  ジョイスティック
２１５  Ｌ１ボタン
２１６  Ｌ２ボタン
２１７  Ｒ１ボタン
２１８  Ｒ２ボタン
３０１  画面
３０２  コート
３０３  ラケット
３０４  ボール
３０５  壁
４０１  端末装置
４０２  コンピュータ通信網
４０３  ロビーサーバ
５０１  記憶部
５０２  指示入力受付部
５０３  自位置更新部
５０４  自位置送信部
５０５  他位置受信部
５０６  他位置更新部
５０７  親委譲部
５０８  親受任部
５０９  親移動体更新部
５１０  移動体位置送信部
５１１  子移動体更新部
５１２  移動体位置受信部
７０１  移動体
７０２  操作対象
７０３  操作対象
【図１】
0004319233.tif 000002
【図２】
0004319233.tif 000003
【図３】
0004319233.tif 000004
【図４】
0004319233.tif 000005
【図５】
0004319233.tif 000006
【図６】
0004319233.tif 000007
【図７】
0004319233.tif 000008