JP2004141352A - Image generation system, program, and information storage medium - Google Patents

Image generation system, program, and information storage medium Download PDF

Info

Publication number
JP2004141352A
JP2004141352A JP2002308891A JP2002308891A JP2004141352A JP 2004141352 A JP2004141352 A JP 2004141352A JP 2002308891 A JP2002308891 A JP 2002308891A JP 2002308891 A JP2002308891 A JP 2002308891A JP 2004141352 A JP2004141352 A JP 2004141352A
Authority
JP
Japan
Prior art keywords
input
data
replay
value
difference value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002308891A
Other languages
Japanese (ja)
Inventor
Satoshi Ouchi
大内 聡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Namco Ltd
Original Assignee
Namco Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Namco Ltd filed Critical Namco Ltd
Priority to JP2002308891A priority Critical patent/JP2004141352A/en
Publication of JP2004141352A publication Critical patent/JP2004141352A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To reduce an amount of replay data. <P>SOLUTION: The image generation system is configured so as to compress input value data from a game controller and stores as replay data. The system computes a difference value of input value data sampled this time and previously, codes a differential value whose absolute value is smaller than a reference differential value range and the number of continuing differential values, and codes a differential value whose absolute value is greater than the reference differential value range without pairing the number of continuing differential values. The absolute value of a differential value in this sampling is smaller than the reference differential value range and when differential values in this and previous sampling are equal, the number of the differential values increased without coding and coded otherwise. Furthermore, when the number N of continuing differential values is greater than a prescribed number K, the differential value and K are paired and coded, the number is set at N-K, an input value data and input type data are written as replay data for a replay process. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【0002】
【従来技術】
従来より、仮想的な3次元空間であるオブジェクト空間内において所与の視点(仮想カメラ)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。競争ゲーム(カーゲーム)を楽しむことができる画像生成システムを例にとれば、プレーヤは、操作部(ステアリング、シフトレバー、アクセルペダル、ブレーキペダル等)を用いて移動オブジェクト(自プレーヤ移動オブジェクト、自車)を操作し、他のプレーヤ(コンピュータプレーヤ又は他の人間プレーヤ)が操作する移動オブジェクト(他プレーヤ移動オブジェクト、他車)と競争することでゲームを楽しむ。
【0003】
さて、このような画像生成システムには、通常、リプレイ機能と呼ばれる機能が設けられており、プレーヤは、このリプレイ機能を利用することで、自身のゲームプレイの様子を、ゲーム終了後に、ゲーム中とは異なった視点で見ることができる。このようなリプレイ機能については、種々の従来技術がある。
【0004】
【特許文献1】
国際公開第96/00601号公報
【0005】
【発明が解決しようとする課題】
しかしながら、この従来技術では、オブジェクトの位置データや角度データをリプレイデータとして記憶する必要があるため、リプレイデータのデータ量を抑えることに限界がある。
【0006】
また、家庭用のゲームシステムなどでは、本体装置に接続可能なゲームコントローラ(パッド)として種々のものが存在する。従って、これらの様々なゲームコントローラが本体装置に接続された場合にも、適正なリプレイ処理を実現できることが望まれる。
【0007】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、リプレイデータの量を抑えることができる画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【0008】
また本発明の他の目的は、様々なゲームコントローラに対応したリプレイ処理を実現できる画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【0009】
【課題を解決するための手段】
本発明は、画像生成を行う画像生成システムであって、リプレイデータを記憶するリプレイデータ記憶部と、ゲームコントローラにより入力された入力値データを圧縮し、圧縮後の入力値データをリプレイデータとして前記リプレイデータ記憶部に書き込むリプレイデータ書き込み部とを含み、前記リプレイデータ書き込み部が、今回にサンプリングされた入力値データと前回にサンプリングされた入力値データの差分値を演算し、その絶対値が基準差分値幅よりも小さい差分値については、差分値とその連続数をペアにした符号化処理を行い、その絶対値が基準差分値幅よりも大きい差分値については、連続数をペアにすることなく差分値の符号化処理を行う画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0010】
本発明によれば、ゲームコントローラからの入力値データがサンプリングされ、今回にサンプリングされた入力値データ(例えば今回のフレームでの入力値データ)と前回にサンプリングされた入力値データ(例えば前回のフレームでの入力値データ)の差分値が演算される。そして、差分値の絶対値が基準差分値幅よりも小さい場合には、差分値と連続数をペアにした符号化処理が行われる。一方、差分値の絶対値が基準差分値幅よりも大きい場合には、連続数をペアにせずに、差分値の符号処理が行われる。これにより入力値データを効率的に圧縮できる。なお、入力種データについても、同一の圧縮方式で圧縮できる。
【0011】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記リプレイデータ書き込み部が、今回のサンプリングでの差分値の絶対値が基準差分値幅よりも小さく、且つ、今回のサンプリングでの差分値と前回のサンプリングでの差分値とが等しい場合には、符号化処理を行うことなく差分値の連続数をインクリメントし、今回のサンプリングでの差分値の絶対値が基準差分値幅よりも大きい場合、又は、今回のサンプリングでの差分値と前回のサンプリングでの差分値とが等しくない場合に、符号化処理を行ってもよい。
【0012】
本発明によれば、今回のサンプリングでの差分値の絶対値が基準差分値幅よりも小さく、且つ、今回と前回のサンプリングでの差分値が等しい場合には、符号化処理は行われず、連続数がインクリメントされるだけであるため、処理負荷を軽減できる。また本発明によれば、今回のサンプリングでの差分値の絶対値が基準差分値幅よりも大きい場合、又は、今回と前回のサンプリングでの差分値が等しくない場合には、符号化処理が行われる。そして、この符号化処理は連続数をデクリメントしながら行われ、例えば連続数が「0」になると符号化処理が終了する。
【0013】
なお、今回のサンプリングでの差分値とは、今回にサンプリングされた入力値データと、前回にサンプリングされた入力値データとの差分値であり、前回のサンプリングでの差分値とは、前回にサンプリングされた入力値データと、前回の更に前回にサンプリングされた入力値データとの差分値である。また、符号化処理は、差分値と連続数をペアにした符号化処理や、連続数をペアにしない差分値の符号化処理である。
【0014】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記リプレイデータ書き込み部が、差分値の連続数Nが所定数Kよりも大きい場合には、その差分値と所定数Kをペアにした符号化処理を行い、その差分値についての連続数をN−Kに設定してもよい。
【0015】
なお、連続数をN−Kに設定(変更)した後は、差分値と連続数N−Kに基づいて符号化処理を行ってもよい。そして例えば、N−Kが所定数Kよりも大きい場合には、その差分値と所定数Kをペアにした符号化処理を行い、連続数をN−K−Kに設定し、N−Kが所定数K以下の場合には、その差分値とN−Kをペアにした符号化処理を行ってもよい。
【0016】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、リプレイデータ記憶部から読み出したリプレイデータに基づいて、リプレイ画像生成のためのリプレイ処理を行うリプレイ処理部を含み(該リプレイ処理部として機能させるプログラム又は該プログラムを記憶した情報記憶媒体であって)、前記リプレイデータ書き込み部が、ゲームコントローラにより入力された入力値データと、その入力値データの入力デバイス及び入力モードの少なくとも一方を特定するための入力種データとを圧縮して、リプレイデータとしてリプレイデータ記憶部に書き込み、前記リプレイ処理部が、リプレイデータ記憶部から、リプレイデータである入力値データと入力種データを読み出し、読み出した入力値データと入力種データを伸長し、伸長後の入力値データと入力種データに基づいて、リプレイ処理を行ってもよい。
【0017】
本発明では、入力値データと入力種データがリプレイデータ記憶部に圧縮されて書き込まれ、この書き込まれた入力値データと入力種データが読み出されて、リプレイ処理が行われる。例えば、入力種データに基づいて、入力値データの入力種が特定され、入力種が特定された入力値データに基づいて、リプレイ処理が行われる。具体的には、例えば、リプレイ処理の際に、入力種に応じた処理が入力値データに対して施される。これにより、様々なゲームコントローラに対応したリプレイ処理を行うことが可能になる。
【0018】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記リプレイデータ書き込み部が、入力種データを、入力値データの圧縮方式と同一の圧縮方式で圧縮してもよい。
【0019】
ここで同一の圧縮方式としては、入力値データの差分値、入力種データの差分値を求めて行う方式がある。また、求められた差分値を符号化する方式がある。更に、差分値と差分値の連続数をペアにして符号化する方式がある。なお、全ての差分値について、差分値と連続数とをペアにして符号化する必要はなく、一部の差分値(例えばその絶対値が基準差分値幅よりも小さい差分値)だけを、連続数とペアにして符号化してもよい。
【0020】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記リプレイデータ書き込み部が、ゲームコントローラの種類、及びゲームコントローラのキー・コンフィギュレーション設定の少なくとも一方に基づいて、入力種データを求めてもよい。
【0021】
なお、ゲームコントローラの種類、キー・コンフィギュレーション設定以外の要素に基づいて、入力種データを求めてもよい。また、入力種データは、ゲームコントローラの種類の違いやキー・コンフィギュレーション設定の違いを区別するための所与のビット数のコードに、コード化してもよい。
【0022】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、ゲームコントローラにより入力された入力値データに基づいてゲーム画像生成のためのゲーム処理を行うゲーム処理部を含み(該ゲーム処理部として機能させるプログラム又は該プログラムを記憶した情報記憶媒体であって)、前記ゲーム処理部が、ゲームコントローラにより入力された入力値データの入力種が第1の入力種である場合には、入力値データに対して第1の変換処理を行って、ゲーム処理を行い、ゲームコントローラにより入力された入力値データの入力種が第2の入力種である場合には、入力値データに対して変換処理を行わずに或いは第2の変換処理を行って、ゲーム処理を行い、前記リプレイ処理部が、リプレイデータの入力種データが第1の入力種のデータである場合には、入力値データに対して前記第1の変換処理を行って、リプレイ処理を行い、リプレイデータの入力種データが第2の入力種のデータである場合には、入力値データに対して変換処理を行わずに或いは前記第2の変換処理を行って、リプレイ処理を行うようにしてもよい。
【0023】
なお、入力種は、第1、第2の入力種だけには限定されず、他の入力種があってもよい。また、変換処理も、第1、第2の変換処理だけには限定されず、他の変換処理があってもよい。
【0024】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、第1の入力種により特定される入力モードが、入力値データのビット長が短い第1の入力モードであり、第2の入力種により特定される入力モードが、入力値データのビット長が長い第2の入力モードであり、前記第1、第2の変換処理が、入力値データの平滑化処理であってもよい。
【0025】
なお、ビット長が短い第1の入力モードとしては、例えばビット長が1ビット(2値)となる入力モードが考えることができ、ビット長が長い第2の入力モードとしては、例えばビット長が4ビット以上となる入力モードを考えることができる。或いは、第1の入力モードが、ビット長がKビットとなる入力モードであり、第2の入力モードが、ビット長がL(K>L)ビットとなる入力モードであってもよい。
【0026】
【発明の実施の形態】
以下、本実施形態について図面を用いて説明する。
【0027】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0028】
1.構成
図1に、本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の一例を示す。なお、本実施形態の画像生成システムは、図1の各部(機能ブロック)を全て含む必要はなく、その一部(例えば操作部160、携帯型情報記憶装置194又は通信部196等)を省略した構成としてもよい。
【0029】
操作部160は、プレーヤが操作データ(入力値データ)を入力するためのものであり、その機能は、レバー、ボタン、ステアリング、シフトレバー、アクセルペダル、ブレーキペダル、マイク、センサー、タッチパネル、或いは筺体などのハードウェアにより実現できる。
【0030】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAMなどのハードウェアにより実現できる。
【0031】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。処理部100は、この情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部をコンピュータに実現させるためのプログラム)が記憶(記録、格納)される。
【0032】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0033】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどのハードウェアにより実現できる。
【0034】
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【0035】
通信部196は、外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0036】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信するようにしてもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含まれる。
【0037】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この場合、処理部100は、記憶部170内の主記憶部172をワーク領域として使用して、各種の処理を行う。この処理部100の機能は、各種プロセッサ(CPU、DSP等)又はASIC(ゲートアレイ等)などのハードウェアや、プログラム(ゲームプログラム)により実現できる。
【0038】
処理部100は、ゲーム処理部110、リプレイデータ書き込み部(リプレイデータ記録部)112、リプレイ処理部(リプレイデータ読み出し部、リプレイデータ再生部)114、画像生成部120、音生成部130を含む。なお、処理部100は、これらの各部(機能ブロック)を全て含む必要はなく、その一部を省略してもよい。
【0039】
ゲーム処理部110は、ゲームコントローラ(操作部)160からの操作データ(入力値データ)に基づいて、ゲーム画像を生成するための種々のゲーム処理を行う。このゲーム処理は、例えば、ゲームに登場するオブジェクト(表示物)を配置する処理、オブジェクトを移動させる処理、オブジェクトを動作させる処理(モーション再生処理)、オブジェクトを表示する処理、ゲームを進行させる処理、或いはゲーム結果を演算する処理などである。
【0040】
具体的には、ゲーム処理部110は、オブジェクト(移動オブジェクト)の移動情報(位置情報、方向情報、速度情報或いは加速度情報)を求める処理を行う。即ち、ゲームコントローラ160によりプレーヤが入力した入力値データ(操作データ)やゲームプログラムなどに基づいて、オブジェクトをオブジェクト空間内で移動させる処理を行う。また、ゲーム処理部110は、オブジェクトの動作情報(オブジェクトの各パーツの位置情報、方向情報)を求める処理を行う。即ち、ゲームコントローラ160によりプレーヤが入力した入力値データやゲームプログラムなどに基づいて、オブジェクトを動作(モーション、アニメーション)させる処理を行う。この場合のオブジェクトの動作は、オブジェクト(モデルオブジェクト、キャラクタ)を構成する各パーツオブジェクトの位置又は回転角度(方向)等を含むモーションデータを再生することで実現できる。
【0041】
リプレイデータ書き込み部(リプレイデータ記録部)112は、リプレイデータ記憶部176にリプレイデータ(オブジェクトの移動又は動作等を再現するためのデータ)を書き込む処理を行う。具体的には、リプレイデータ書き込み部112は、リプレイデータを圧縮(符号化)してリプレイデータ記憶部176に書き込む(記録する)。
【0042】
この場合にリプレイデータ書き込み部112は、ゲームコントローラ(操作部)160により入力された入力値データと入力種データとを、リプレイデータとしてリプレイデータ記憶部176に書き込む。ここで、入力値データは、ゲームコントローラ160の入力デバイス(ボタン、スティック、十字キー、レバー、ステアリング、アクセルペダル、ブレーキペダル又はゲームコントローラ自体)をプレーヤが操作することで得られるデータである。具体的には、入力デバイスの操作量(ボタンや十字キーを押した深さ、スティックやレバーを倒した角度等)に応じてその値が決まるデータである。また、入力種データは、入力値データの種類を特定するためのデータである。具体的には、その入力値データの入力に使用した入力デバイス及びその入力値データを入力した際の入力モード(デジタル入力モード、アナログ入力モード等)の少なくとも一方を特定するためのデータである。
【0043】
なお、入力種データは、入力デバイスだけを特定するものであってもよいし、入力モードだけを特定するものであってもよいし、両方を特定するものであってもよい。また入力種データは、入力デバイスや入力モード以外の要素を特定するものであってもよい。また、入力デバイスの入力モードが、ゲームコントローラに設けられた入力モード切替ボタン(デジタル入力モード、アナログ入力モードの切り替えボタン)に基づいて切り替えられるようにしてもよい。また、入力モードは、入力デバイスにより入力される入力値データの例えばビット長の違いなどにより区別されるモードであり、ビット長が短い第1の入力モード、ビット長が長い第2の入力モードなど、種々の入力モードがある。
【0044】
リプレイデータ書き込み部112は、入力値データのみならず、入力種データも、圧縮してリプレイデータ記憶部176に書き込む。この場合、入力種データについても、例えば入力値データの圧縮方式と同一の圧縮方式で圧縮する。
【0045】
リプレイデータの圧縮は、入力値データ(入力種データ)の差分値(今回にサンプリングされた入力値データと前回にサンプリングされた入力値データとの差分値)を用いることで実現できる。更に具体的には、その差分値と差分値の連続数をペアにして符号化する処理(ランレングス・エンコーディング等)により実現できる。また、差分値や、差分値と連続数のペアを、コードに置き換える符号化処理(ハフマン・エンコーディング等)により実現できる。
【0046】
特に本実施形態では、リプレイデータ書き込み部112が、今回(現在)のサンプリング(フレーム)での入力値データと前回(例えば1回前)のサンプリング(フレーム)での入力値データの差分値を演算する。そして、差分値の絶対値が基準差分値幅(所与の差分値幅)よりも小さい場合には、差分値と連続数をペアにして符号化する。一方、差分値の絶対値が基準差分値幅よりも大きい場合には、差分値だけを符号化する。
【0047】
なお、差分値の絶対値が基準差分値幅と等しい場合(差分値の絶対値が基準差分値幅以上の場合)に、差分値と連続数をペアにして符号化するようにしてもよい。或いは、差分値の絶対値が基準差分値幅と等しい場合(差分値の絶対値が基準差分値幅以下の場合)に、連続数をペアにすることなく差分値だけを符号化するようにしてもよい。
【0048】
また、サンプリングは、ゲームコントローラからの入力値データをゲーム処理部110等が取り込むタイミングである。別の言い方をすれば、1つの単位のゲーム処理が行われるタイミングである。具体的には、ゲームコントローラの入力値データは、例えばフレーム更新のタイミングで取り込まれ、このフレーム更新のタイミングがサンプリングのタイミングとなる。なお、フレームは、画像表示(ゲーム処理)の基準となる周期的なタイミングであり、例えば垂直同期信号がアクティブになる毎にフレーム更新が行われる。
【0049】
リプレイ処理部114は、リプレイ画像生成のためのリプレイ処理を行う。より具体的には、リプレイデータ記憶部176から読み出した入力値データ及び入力種データ(リプレイデータ)に基づいてリプレイ処理を行う。更に具体的には、リプレイ処理部114は、圧縮(符号化)された入力値データと入力種データ(リプレイデータ)をリプレイデータ記憶部176から読み出して伸長(復号化)し、伸長後の入力値データと入力種データ(リプレイデータ)に基づいて、リプレイ処理を行う。
【0050】
例えばゲーム中においては、プレーヤの操作により移動するオブジェクトに追従するように、仮想カメラ(視点)の位置や角度がゲーム処理部110により制御され、この仮想カメラから見えるゲーム画像が生成される。一方、リプレイ中においては、例えば複数のリプレイ用の仮想カメラ(仮想カメラ処理ルーチン)の中から1つの仮想カメラが選択(ランダム選択)される。そして、選択されたリプレイ用の仮想カメラの位置や角度がリプレイ処理部114により制御され、このリプレイ用の仮想カメラから見えるリプレイ画像が生成される。これにより、プレーヤは、自身のゲームプレイの様子を、ゲーム終了後に、ゲーム中とは異なった視点(同じ視点でもよい)で見ることが可能になる。
【0051】
なお、リプレイ画像はプレーヤのゲームプレイ中に表示してもよい。例えば、現実世界に存在するレーサー等がゲームプレイを行い、そのゲームプレイで得られたリプレイデータ(入力値データ、入力種データ)をリプレイデータ記憶部176に記憶しておく。そして、リプレイ処理部114が、このリプレイデータを読み出し、プレーヤのプレイ中に、このリプレイデータに基づいて、そのレーサの敵移動オブジェクト(ゴースト・カー)を走行させる。このような敵移動オブジェクト(ゴースト・カー)のリプレイ画像にも本実施形態のリプレイ処理は適用できる。
【0052】
画像生成部120は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。即ち、いわゆる3次元のゲーム画像を生成する場合には、まず、座標変換、クリッピング処理、透視変換或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)が、描画バッファ174(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画される。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成されるようになる。
【0053】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0054】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0055】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて生成してもよい。
【0056】
2.本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【0057】
2.1 入力種の記憶
本実施形態では、プレーヤがゲーム中にゲームコントローラにより入力した入力値データをリプレイデータとして記憶し、この記憶されたリプレイデータに基づいて、リプレイ画像(リプレイ用の仮想カメラから見える画像)を生成している。
【0058】
ところが、家庭用ゲームシステムなどでは、本体装置に接続可能なゲームコントローラとして、図2(A)、(B)、(C)、図3(A)、(B)に示すような種々のゲームコントローラが存在する。そして、これらのゲームコントローラでは、設けられている入力デバイス(十字キー、ボタン、スティック又はレバー等)やその入力モードが異なっており、入力値データの入力種も、これらの入力デバイスや入力モードに応じて異なったものになる。
【0059】
例えば図2(A)のゲームコントローラでは、十字キー(方向キー)10、ボタン(操作ボタン)11、12、13、14、15、16、17、18などの入力デバイスが設けられている。そして、これらの入力デバイスの入力モードは、全て、デジタル(2値)の入力モード(広義には、入力値データのビット長が短い第1の入力モード)になっている。
【0060】
例えば、図2(A)のゲームコントローラの十字キー10の上側キーをプレーヤが押すと、その入力値データは「1」になり、上側キーを押さないと、その入力値データは「0」になる。十字キー10の下側、左側、右側キーについても同様である。この十字キー10を用いることで、図4(A)に示すように、移動オブジェクト(車、バイク、キャラクタ)のステアリング(方向指示)操作などが可能になる。
【0061】
また、ボタン11を押すと、その入力値データは「1」となり、ボタン11を押さなければ、その入力値データは「0」になる。ボタン12〜18も同様である。これらのボタン11〜18を用いることで、図4(B)に示すように、移動オブジェクト(車、バイク)のアクセル、ブレーキ、ギアチェンジ操作などが可能になる。
【0062】
図2(B)のゲームコントローラでは、図2(A)のゲームコントローラに比べて、更に、スティック(アナログスティック)19、20という入力デバイスが設けられている。そして、これらのスティック19、20の入力モードは、アナログ(多値)の入力モード(広義には、入力値データのビット長が長い第2の入力モード)になっている。
【0063】
例えば、スティック19又は20の傾けた角度に応じて、その入力値データが−128〜127の範囲で変化する。即ち、スティック19又は20を、右側に完全に傾けると、その入力値データ(X座標値)は「127」になり、左側に完全に傾けると、その入力値データ(X座標値)は「−128」になる。また、中立(ニュートラル)状態では、その入力値データは「0」になる。これらのスティック19又は20を用いることで、図4(C)に示すように、移動オブジェクトのステアリング操作などが可能になる。
【0064】
図2(C)のゲームコントローラでは、図2(B)のゲームコントローラと異なり、十字キー10、ボタン11〜18(感圧ボタン)の入力モードが、アナログ入力モード(広義には第2の入力モード)になっている。
【0065】
例えば、ボタン11を押した深さ(距離)に応じて、その入力値データが0〜255の範囲で変化する。即ち、ボタン11を押さないと、その入力値データは「0」になり、ボタン11を最も深く押すと、その入力値データは「255」になる。ボタン12〜18も同様である。これらのボタン11〜18を用いることで、図4(D)に示すように、移動オブジェクトのアクセル、ブレーキ、ギアチェンジ操作などが可能になる。
【0066】
なお、図3(A)のゲームコントローラでは、ゲームコントローラの左側の把持部材20と右側の把持部材21を相対的にねじることで、方向指示のための入力値データを、アナログ入力モードで入力できる。また、図3(B)のゲームコントローラでは、ステアリング30を左右に回転することで、方向指示のための入力値データを、アナログ入力モードで入力できる。また、アクセルペダル31、ブレーキペダル32を踏むことで、アクセルやブレーキ操作のための入力値データを、アナログ入力モードで入力できる。
【0067】
このように、ゲームコントローラとしては種々のものが存在する。従って、ゲームコントローラによりプレーヤが入力した入力値データを記憶し、リプレイ処理を行う場合には、図3(A)〜図4(B)のような種々のゲームコントローラが本体装置に接続された場合にも、適正なリプレイ処理を実現できることが望ましい。
【0068】
そこで本実施形態では、ゲームコントローラにより入力された入力値データと、入力種データ(入力デバイスやその入力モードを特定するためのデータ)とを、リプレイデータとして記憶する。そして、この記憶された入力値データと入力種データに基づいてリプレイ処理を行うようにしている。
【0069】
具体的には図5(A)に示すように、十字キーによりデジタル入力モード(広義には第1の入力モード)で入力値が入力された場合には、リプレイデータ書き込み部112が、入力値データ(−1、0、1)と入力種データ(十字キー、デジタル入力モード)を関連づけてリプレイデータ記憶部176に書き込む。そして、リプレイ処理部114は、書き込まれた入力種データに基づいて、入力値データの入力種を判断して、その入力種に応じたリプレイ処理を行う。例えば、入力値データが「−1」の場合(十字キーの左側キーが押された場合)には、プレーヤが左側にステアリングを切る操作を行ったと判断する。そして移動オブジェクト(車、バイク)が左に曲がるリプレイ画像を生成する。また入力値データが「1」の場合(十字キーの右側キーが押された場合)には、プレーヤが右側にステアリングを切る操作を行ったと判断する。そして移動オブジェクトが右に曲がるリプレイ画像を生成する。また入力値データが「0」の場合(十字キーの左側キーも右側キーも押されていない場合)は、ステアリングがニュートラル状態であると判断し、移動オブジェクトが直進するリプレイ画像を生成する。
【0070】
また図5(B)に示すように、スティックによりアナログ入力モード(広義には第2の入力モード)で入力値が入力された場合には、リプレイデータ書き込み部112が、スティックを倒した角度に応じた入力値データ(−128〜127)と、入力種データ(スティック、アナログ入力モード)を関連づけてリプレイデータ記憶部176に書き込む。そして、リプレイ処理部114は、書き込まれた入力種データに基づいて、入力値データの入力種を判断して、その入力種に応じたリプレイ処理を行う。例えば、入力値データが「−128」の場合(スティックが左側に倒された場合)には、プレーヤが左側にステアリングを切る操作を行ったと判断する。そして移動オブジェクトが左に曲がるリプレイ画像を生成する。また入力値データが「127」の場合(スティックが右側に倒された場合)には、プレーヤが右側にステアリングを切る操作を行ったと判断する。そして移動オブジェクトが右に曲がるリプレイ画像を生成する。また入力値データが「0」の場合は、ステアリングがニュートラル状態であると判断し、移動オブジェクトが直進するリプレイ画像を生成する。
【0071】
また図5(C)に示すように、ボタンによりデジタル入力モードで入力値が入力された場合には、リプレイデータ書き込み部112が、入力値データ(0、1)と入力種データ(ボタン、デジタル入力モード)を関連づけてリプレイデータ記憶部176に書き込む。そして、リプレイ処理部114は、書き込まれた入力種データに基づいて、入力値データの入力種を判断して、その入力種に応じたリプレイ処理を行う。例えば、入力値データが「1」の場合(ボタンが押された場合)には、プレーヤがアクセル(ブレーキ)を踏む操作を行ったと判断する。そして移動オブジェクトが加速(減速)するリプレイ画像を生成する。また入力値データが「0」の場合(ボタンが押されていない場合)には、プレーヤがアクセル(ブレーキ)を踏んでいないと判断する。そしてこの場合には移動オブジェクトの加速(減速)を行わない。
【0072】
また図5(D)に示すように、ボタンによりアナログ入力モードで入力値が入力された場合には、リプレイデータ書き込み部112が、ボタンを押した深さに応じて変化する入力値データ(0〜255)と、入力種データ(ボタン、アナログ入力モード)とを関連づけてリプレイデータ記憶部176に書き込む。そして、リプレイ処理部114は、書き込まれた入力種データに基づいて、入力値データの入力種を判断して、その入力種に応じたリプレイ処理を行う。例えば、入力値データが「255」の場合(ボタンが最も深く押された場合)には、プレーヤがアクセル(ブレーキ)を目一杯に踏んだと判断する。そして移動オブジェクトが最大限に加速(減速)するリプレイ画像を生成する。また入力値データが「0」の場合(ボタンが押されていない場合)には、プレーヤがアクセル(ブレーキ)を踏んでいないと判断する。そしてこの場合には移動オブジェクトの加速(減速)を行わない。
【0073】
このようにすることで、本実施形態によれば、本体装置にどのようなゲームコントローラが接続されても、そのゲームコントローラに応じた最適なリプレイ処理を行い、リプレイ画像を生成できる。
【0074】
なお、図5(A)の十字キーの場合には、左側キーが押された時には入力値データは「−1」になり、右側キーが押された時には入力値データは「1」になり、左側キーも右側キーも押されていない場合には入力値データは「0」になる。
【0075】
また、入力種データは例えば8ビット(広義にはJビット)のコードとしてリプレイデータ記憶部176に記憶される。具体的には、入力デバイスがボタンで入力モードがデジタル入力モードの場合には「00h」、入力デバイスがボタンで入力モードがアナログ入力モードの場合には「01h」、入力デバイスがスティックの場合には「02h」というように、入力種データはコード化されて記憶される。
【0076】
また、入力種は、ゲームコントローラの種類、及びゲームコントローラのキー・コンフィギュレーション設定(オプション設定)の少なくとも一方に基づいて、決定することができる。ここでキー・コンフィギュレーション設定は、画面調整、音声調整、難易度調整、又はゲーム設定などを行うためのオプション設定画面(オプションメニュー)において行われる。
【0077】
例えば図6(A)では、図2(A)のタイプのゲームコントローラが本体装置40に接続されている。また、キー・コンフィギュレーション設定画面は図6(A)のC1に示すようになっている。図6(A)のC1に示すように、ステアリング操作(方向)については図2(A)のデジタル入力モードの十字キー10で行われることが固定されており、他の選択枝はない。またアクセル操作については、デジタル入力モードのボタン11、15のいずれで行うかをプレーヤは選択できる。またブレーキ操作については、デジタル入力モードのボタン12、17のいずれで行うかをプレーヤは選択できる。そして、これらのキー・コンフィギュレーション設定(プレーヤの選択操作)の情報と、接続されたゲームコントローラの種類に基づいて、入力種が決定される。
【0078】
図6(B)では、図2(B)のタイプのゲームコントローラが本体装置40に接続されている。また、キー・コンフィギュレーション設定画面は図6(B)のC2に示すようになっている。図6(B)のC2に示すように、ステアリング操作については図2(B)のアナログ入力モードのスティック19、デジタル入力モードの十字キー10のいずれで行うのかをプレーヤは選択できる。またアクセル操作については、デジタル入力モードのボタン11、15のいずれで行うかをプレーヤは選択できる。またブレーキ操作については、デジタル入力モードのボタン12、17のいずれで行うかをプレーヤは選択できる。そして、これらのキー・コンフィギュレーション設定の情報と、接続されたゲームコントローラの種類に基づいて、入力種が決定される。
【0079】
図7では、図2(C)のタイプのゲームコントローラが本体装置40に接続されている。また、キー・コンフィギュレーション設定画面は図7のC3に示すようになっている。図7のC3に示すように、ステアリング操作については図2(C)のアナログ入力モードのスティック19、アナログ入力モードの十字キー10のいずれで行うのかをプレーヤは選択できる。またアクセル操作については、デジタル入力モードでのボタン11、アナログ入力モードでのボタン11、デジタル入力モードでのボタン15、アナログ入力モードでのボタン15のいずれで行うかをプレーヤは選択できる。またブレーキ操作については、デジタル入力モードでのボタン12、アナログ入力モードでのボタン12、デジタル入力モードでのボタン17、アナログ入力モードでのボタン17のいずれで行うかをプレーヤは選択できる。そして、これらのキー・コンフィギュレーション設定の情報と、接続されたゲームコントローラの種類に基づいて、入力種が決定される。
【0080】
なお、入力種を、ゲームコントローラの種類だけで決定したり、キー・コンフィギュレーション設定だけで決定したり、ゲームコントローラの種類やキー・コンフィギュレーション設定以外の要素に基づいて決定しもよい。
【0081】
また、接続されたゲームコントローラの種類は、ゲームコントローラ内に設けられるレジスタからゲームコントローラの属性情報を読み出すことで得ることができる。
【0082】
2.2 変換処理
本実施形態では、ゲームコントローラからの入力値データに対して変換(加工)処理を行い、変換処理後の入力値データに基づいてゲーム処理部110がゲーム処理を行う。そして、リプレイの際にも、リプレイデータとして読み出された入力値データに変換処理を行い、変換処理後の入力値データに基づいて、リプレイ処理を行っている。この場合に本実施形態では、リプレイ処理の際に入力値データに対してどのような変換処理を行うかを、リプレイデータとして記憶された入力種データに基づいて判別している。
【0083】
例えば図8(A)のD1では、ゲーム処理の際に、デジタル入力モード(入力値データのビット長が短い入力モード)のボタンという第1の入力種で、入力値データが入力されている。この場合にはD2に示すように、入力値データに対して第1の変換処理(広義には第1の平滑化処理)が行われる。具体的には、「0」から「1」に離散的に変化(2値で変化)する入力値データを、「0」から「1」に滑らかに変化(多値で変化)させる平滑化処理が行われる。このような平滑化処理を行えば、「0」から「1」への入力値データの離散変化に起因する急激なアクセル操作やステアリング操作により、移動オブジェクトの動きが不自然になってしまう事態を防止できる。
【0084】
そして本実施形態では図8(A)のD3に示すように、リプレイ処理の際にも、ゲーム処理の時と同じ第1の変換処理(広義には第1の平滑化処理)を、入力値データに対して施す。具体的には、リプレイデータ記憶部176から読み出された入力値データの入力種が、リプレイデータ記憶部176から読み出された入力種データに基づき第1の入力種(デジタル入力モードのボタン)であると判断されると、読み出された入力値データに対して第1の変換処理を行って、リプレイ処理を行う。このようにすることで、リプレイ処理の際にも、急激なアクセル操作やステアリング操作により移動オブジェクトの動きが不自然になってしまう事態を防止できる。
【0085】
また図8(B)のD4では、ゲーム処理の際に、アナログ入力モード(入力値データのビット長が長い入力モード)のボタンという第2の入力種で、入力値データが入力されており、この場合には、入力値データに対して第2の変換処理(第2の平滑化処理)が行われる。具体的には、入力値データを、より滑らかに変化させる平滑化処理が行われる。このような平滑化処理を行えば、移動オブジェクトの動きを、より滑らかにすることができる。
【0086】
そして本実施形態では図8(B)のD5に示すように、リプレイ処理の際にも、ゲーム処理の時と同じ第2の変換処理(第2の平滑化処理)を、読み出された入力値データに対して施す。具体的には、リプレイデータ記憶部176から読み出された入力値データの入力種が、リプレイデータ記憶部176から読み出された入力種データに基づき第2の入力種(アナログ入力モードのボタン)であると判断されると、読み出された入力値データに対して第2の変換処理を行って、リプレイ処理を行う。このようにすることで、リプレイ処理の際にも、移動オブジェクトの動きを滑らかにすることができる。
【0087】
なお、入力種が第2の入力種(アナログ入力モードのボタン)である場合に、変換処理(広義には平滑化処理)自体を行わないようにしてもよい。
【0088】
以上のような手法で変換処理を行えば、変換処理後の入力値データをリプレイデータとして記憶する必要がなくなり、変換処理前の入力値データをリプレイデータとして記憶すればよいことになる。例えば、図8(A)のD1の場合には、「0」又は「1」をリプレイデータとして記憶すれば済むようになる。これにより、リプレイデータの量の削減を図れ、メモリの有効利用を図れる。また、リプレイデータとして記憶された入力種データに基づいて、入力値データに施すべき変換処理が選択されるため、誤りのない変換処理を実現できる。また、ゲーム処理の際の動きと同様の動きを、リプレイ処理の際にオブジェクトに行わせることができ、リアルなリプレイ画像を生成できる。
【0089】
なお、本実施形態の手法により入力値データに施される変換処理は、図8(A)、(B)に示す平滑化処理に限定されない。即ち、入力値データをそのまま使用するのが好ましくない場合に行われるべき種々の変換(加工)処理を考えることができる。
【0090】
2.3 リプレイデータの圧縮
本実施形態では図9(A)に示すように、リプレイデータ書き込み部112が、入力値データを圧縮してリプレイデータ記憶部176に書き込んでいる。更に本実施形態では、入力値データのみならず入力種データについても圧縮してリプレイデータ記憶部176に書き込んでいる。
【0091】
そして本実施形態では、リプレイ処理部114が、リプレイデータ記憶部176に圧縮されて記憶された入力値データと入力種データを読み出し、伸長する。そして、伸長後の入力値データと入力種データに基づいて、リプレイ処理を行っている。
【0092】
このように入力値データのみならず入力種データについても圧縮して記憶することで、リプレイデータの量を更に削減できる。
【0093】
なお、この場合、入力種データを、入力値データと同一の圧縮方式で圧縮することが望ましい。例えば、入力値データも入力種データも共に8ビット(Jビット)のデータに設定し、同じ圧縮方式に圧縮する。
【0094】
また、圧縮方式としては、図9(B)に示すように、今回のサンプリング(フレーム)で得られた入力値データと、前回のサンプリング(フレーム)で得られた入力値データの差分値を求め、この差分値を符号化する方式が望ましい。この場合には、例えば、求められた差分値とその連続数をペアにして符号化する(ランレングス・エンコーディング)。なお、後述するように、差分値の絶対値が基準差分値幅よりも小さいことを条件に、差分値とその連続数をペアにして符号化するようにしてもよい。また、出現頻度が高い差分値又は出現頻度が高いと予想される差分値ほど、より短いコードが割り当てられるように符号化してもよい(ハフマン・エンコーディング)。
【0095】
ゲームコントローラのスティックがニュートラル状態の場合や、スティックの傾き角度が所定の角度で固定されている場合や、ボタンが押されていない場合には、入力値データの値はほとんど変化しなくなる。従って、入力値データの差分値を求め、差分値とその連続数をペアにして圧縮する方式は、入力値データの圧縮率向上のために有効である。同様に、入力種データは、ゲーム処理中やリプレイ処理中に、その値が変化することはほとんどないと考えられる。従って、入力種データの差分値を求め、差分値とその連続数をペアにして圧縮する方式(入力値データと同一の圧縮方式)は、入力種データの圧縮率向上のために有効である。
【0096】
2.4 圧縮方式
次に本実施形態の圧縮方式について詳しく説明する。
【0097】
図10(A)に示すように、入力デバイスであるスティック19がニュートラル状態(いずれの方向にも倒されていない状態)である場合には、入力値データは「0」付近の値になる。従って、今回(今回のサンプリング、フレーム)の入力値データと前回(前回のサンプリング、フレーム)の入力値データの差分値を求めると、その差分値の出現頻度は、「0」が最も多くなり、その次に、「−1」や「1」が多くなる。
【0098】
また図10(B)に示すように、プレーヤがスティック19を倒し、一定の倒し角度で固定している状態(例えばハンドルを切った状態で固定している状態)でも、入力値データの差分値の出現頻度は、「0」が最も多くなり、その次に、「−1」や「1」が多くなる。
【0099】
このように、スティック19などの入力デバイスを用いる入力手法では、スティック19の倒し角度等に依存せずに、その絶対値が小さい差分値ほど、より多くの頻度で出現するということが判明した。
【0100】
本実施形態では、このようなゲームコントローラの入力値データの性質に着目し、次のような圧縮(符号化)方式を採用している。
【0101】
具体的には、まず、図11(A)に示すように、今回(現在)の入力値データと前回(1回前)の入力値データの差分値を求める。
【0102】
次に、差分値の絶対値と基準差分値幅を比較する。そして図11(B)のE1に示すように、その絶対値が基準差分値幅よりも小さい差分値については、差分値とその連続数をペアにして符号化する。一方、図11(B)のE2に示すように、その絶対値が基準差分値幅よりも大きい差分値については、差分値だけを符号化する。なお、その絶対値が基準差分値幅と等しい差分値については、差分値と連続数をペアにして符合化するようにしてもよいし、差分値だけを符号化するようにしてもよい。
【0103】
例えば図11(C)のE4に示すような入力値データが入力された場合には、E5〜E11に示すように、差分値が「0」で連続数が「3」の符号、差分値が「8」の符号、差分値が「8」の符号、差分値が「1」で連続数が「4」の符号、差分値が「0」で連続数が「5」の符号、差分値が「−2」で連続数が「2」の符号、差分値が「−16」の符号が生成されることになる。
【0104】
図10(A)、(B)に示すように、ゲームコントローラの入力値データの差分値では、その絶対値が小さい差分値の出現頻度が多くなる。即ち、「0」、「1」、「−1」、「2」、「−2」など、その絶対値が基準差分値幅よりも小さい差分値の出現頻度が多くなり、連続して続くようになる。従って、その絶対値が基準差分値幅よりも小さい差分値については、図11(C)のE5、E8、E9、E10に示すように、連続数とペアにして符号化することで、圧縮率を向上できる。
【0105】
一方、その絶対値が基準差分値幅よりも大きい差分値については、連続数とペアにして符号化してしまうと、用意しなければならない符号長が長くなり、圧縮率がかえって悪化するおそれがある。従って、その絶対値が基準差分値幅よりも大きい差分値については、図11(C)のE6、E7、E11に示すように、連続数とペアにせずに、差分値を単独で符号化する。これにより、圧縮率を向上できる。
【0106】
なお、基準差分値幅の大きさは任意である。例えば、基準差分値幅の大きさを「1」に設定し、「0」となる差分値だけを、連続数とペアにして符号化するようにしてもよい。
【0107】
また、符号化手法としては、出現頻度が多い或いは出現頻度が多いと予想される値に、より短いコードを割り当てる符号化手法(ハフマン・エンコーディング)が望ましい。
【0108】
例えば図12に静的なハフマン・エンコーディングの例を示す。
【0109】
図12では、「00」には「0」の差分値、「01」には「1」の差分値、「100」には「−1」の差分値、「101」には差分値が「0」で連続数が「2」のペア、「1100」には差分値が「0」で連続数が「3」のペア、「1101」には「2」の差分値、「111000」には差分値が「1」で連続数が「2」のペア・・・・というようにコードの割り当てが行われている。このような符号化を行うことで、出現頻度が多い値に短いコードが割り当てられるようになり、圧縮率を向上できる。
【0110】
なお、図12のような静的なハフマン・エンコーディングではなく、動的なハフマン・エンコーディングを行ってもよい。即ち、出現頻度が多い値を検索し、その出現頻度が多い値に短いコードを動的に割り当てる。この動的なハフマン・エンコーディングは、静的なハフマン・エンコーディングよりも処理負荷は重くなるが、圧縮率を向上できる。
【0111】
また、差分値の連続数Nが所定数Kよりも大きい場合には、その差分値と所定数Kをペアにして符号化し、その差分値についての連続数をN−Kに設定(デクリメント)することが望ましい。
【0112】
例えば図13(A)では、差分値が「0」で、連続数が「69」になっており、連続数が所定数「64」よりも大きい。従って、この場合には、所定数「64」を連続数とみなし、差分値「0」と所定数「64」をペアにして符号化すると共に、連続数を69−64=5に変更(設定)する。そして、差分値「0」と変更後の連続数「5」をペアにして符号化する。
【0113】
また図13(B)では、差分値が「0」で、連続数が「131」になっており、連続数が所定数「64」よりも大きい。従って、この場合には、差分値「0」と所定数「64」をペアにして符号化すると共に、連続数を131−64=67に変更(設定)する。すると、この連続数「67」は所定数「64」よりも大きいため、差分値「0」と連続数「64」をペアにして符号化すると共に、連続数を67−64=3に変更(設定)する。そして、差分値「0」と連続数「3」をペアにして符号化する。
【0114】
このように、所定数Kの単位で区切って符号化すれば、ペア符号化のコードが不必要に長くなってしまう事態を防止できる。即ち、ゲームコントローラでは、その絶対値が小さい差分値、例えば「0」が長期に亘って連続する可能性が高い。従って、「0」とペアとなる連続数の範囲が大きくなってしまい、用意すべきコードの長さが長くなってしまう。
【0115】
図13(A)、(B)に示すように、所定数Kの単位で区切って符号化するようにすれば、「0」とペアとなる連続数としては、2〜Kの範囲のものを用意すれば済む。従って、用意すべきコードの長さを短くでき、圧縮率を向上できる。
【0116】
なお、所定数Kは任意であり、例えばK=8、16、32、64、128、256など、種々の値を採用できる。
【0117】
3.本実施形態の処理
次に、本実施形態の処理の詳細例について、図14(A)〜図20のフローチャートを用いて説明する。
【0118】
図14(A)は、ゲーム時の処理のフローチャートである。まず、入力情報の取得処理を行い(ステップS1)、入力種(入力モード)の書き込み(記録)処理を行う(ステップS2)。次に、入力値の書き込み(記録)処理を行い(ステップS3)、入力種に応じた入力値の変換(加工)処理を行う(ステップS4)。そして、最後にゲーム処理を行う(ステップS5)。即ち、プレーヤのゲームを開始し、ゲームを進行させ、入力値データに応じて移動オブジェクトを移動、動作させ、プレーヤのゲーム成績(得点)を演算する処理を行う。
【0119】
図14(B)はリプレイ時の処理のフローチャートである。まず、入力種(入力モード)の読み出し(再生)処理を行い(ステップS11)、入力値の読み出し(再生)処理を行う(ステップS12)。次に、入力種に応じた入力値の変換(加工)処理を行う(ステップS13)、そして、最後にリプレイ処理を行う(ステップS14)。即ち、プレーヤが自分のプレイのリプレイ画像を見ることを選択したり、リプレイ画像の表示モードになると、リプレイ用の仮想カメラから見えるリプレイ画像を表示する。或いは、プレーヤが操作する移動オブジェクトと競争する敵移動オブジェクト(ゴースト・カー)のリプレイ画像を表示する。
【0120】
図15は、図14(A)のステップS1の入力情報の取得処理のフローチャートである。まず、接続されたゲームコントローラ(パッド)の種類を取得する(ステップS21)。これは、ゲームコントローラのレジスタに記憶されるゲームコントローラ情報を読み出すことで実現できる。次に、ステップS21で取得したゲームコントローラの種類と、そのゲームコントローラについてプレーヤが設定したキー・コンフィギュレーション(図6(A)〜図7参照)に基づき、入力種を特定して取得する(ステップS22)。そして、特定された入力種に基づき入力値(入力値の種類)を特定して取得する(ステップS23)。
【0121】
図16(A)は、図14(A)のステップS2の入力値の書き込み(記録)処理のフローチャートである。まず、図11(A)で説明したように、今回(現在)の入力値データと前回(1回前)の入力値データの差分値を求める(ステップS31)。そして、求められた差分値を、図11(B)、(C)、図12、図13(A)、(B)等で説明した手法で符号化(圧縮)して、リプレイデータ記憶部に書き込む(ステップS32)。
【0122】
図16(B)は、図14(A)のステップS3の入力種の書き込み(記録)処理のフローチャートである。まず、今回(現在)の入力種データ(例えばJビットのコード)と前回(1回前)の入力種データの差分値を求める(ステップS41)。そして、求められた差分値を符号化(圧縮)して、リプレイデータ記憶部に書き込む(ステップS42)。なお、入力種データの圧縮方式(差分値を求めて符号化する処理)は、図11(A)〜図13(B)で説明した入力値データの圧縮方式と同一方式で実現できる。
【0123】
図17は、図14(A)のステップS4の入力種に応じた入力値の変換(加工)処理のフローチャートである。なお、図14(B)のステップS13も図17の処理で実現できる。
【0124】
まず、入力種を判別する(ステップS51)。そして、入力種が、デジタル入力モードの十字キー(図4(A)、図5(A))である場合には、−1、0、1の入力値を−1.0〜1.0に変換し、変換後の値を変数aに設定する(ステップS52)。そして、図8(A)、(B)で説明したように、a=0.2×(a−b)+bという平滑化処理を実行する(ステップS53)。
【0125】
一方、入力種が、アナログ入力モードの十字キーである場合には、−255〜255の入力値を−1.0〜1.0に変換し、変換後の値を変数aに設定する(ステップS54)。そして、a=0.5×(a−b)+bという平滑化処理を実行する(ステップS55)。
【0126】
また、入力種が、アナログ入力モードのスティック(図4(B)、図5(B))である場合には、−128〜127の入力値を−1.0〜1.0に変換し、変換後の値を変換aに設定する(ステップS56)。そして、a=0.7×(a−b)+bという平滑化処理を実行する(ステップS57)。
【0127】
次に、b=aに設定する(ステップS58)。そして、変数aの値をゲーム処理部に渡す(ステップS59)。
【0128】
なお、ステップS53、S55、S57では、ステップS53の平滑化処理が、入力値を最も滑らかに変化させている。但し、ステップS53、S55、S57の平滑化処理の係数(0.2、0.5、0.7)は一例であり、任意の値をとることができる。また、例えばステップS53では平滑化処理を行う一方で、ステップS55、S57では平滑化処理を行わないようにしてもよい。
【0129】
図18(A)は、図14(B)のステップS11の入力種(入力モード)の読み出し(再生)処理のフローチャートである。
【0130】
まず、リプレイデータ記憶部から、符号化された今回(現在)の入力種の差分値を読み出し、復号化する(ステップS61)。次に、復号化後の今回(現在)の差分値に、復号化後の前回(1回前)の差分値を加算し、今回の入力種を求める(ステップS62)。
【0131】
図18(A)は、図14(B)のステップS12の入力値の読み出し(再生)処理のフローチャートである。
【0132】
まず、リプレイデータ記憶部から、符号化された今回(現在)の入力値の差分値を読み出し、復号化する(ステップS71)。次に、復号化後の今回(現在)の差分値に、復号化後の前回(1回前)の差分値を加算し、今回の入力値を求める(ステップS72)。
【0133】
図19は、本実施形態の圧縮方式の詳細について説明するためのフローチャートである。
【0134】
まず、今回(現在)の入力値IPから前回(1回前)の入力値ILを引き、今回の差分値DP=IP−ILを求める(ステップS81)。そして、図11(B)で説明したように、基準差分値幅DRと、差分値DPの絶対値を比較する(ステップS82)。即ち|DP|<DRか否かを判断する。
【0135】
そして、|DP|<DRの場合には、今回の差分値DPと前回の差分値DLが等しいか否かを判断する(ステップS83)。そして、DP=DLの場合には、連続数をN=N+1にインクリメントする(ステップS84)。
【0136】
一方、ステップS82で、|DP|≧DRと判断された場合、或いは、ステップS83でDPとDLが等しくないと判断された場合には、符号化処理に移行する(ステップS85)。そして、今回のサンプリング(フレーム)での符号化処理が終了すると連続数をN=1に設定(リセット)する(ステップS86)。
【0137】
このように本実施形態の圧縮方式では、今回のサンプリング(フレーム)での差分値DPの絶対値が基準差分値幅DRよりも小さく、且つ、今回のサンプリング(フレーム)での差分値DPと前回のサンプリング(フレーム)での差分値DLとが等しい場合には、符号化処理を行うことなく差分値の連続数をインクリメントする(ステップS82、S83、S84)。一方、今回のサンプリング(フレーム)での差分値DPの絶対値が基準差分値幅DRよりも大きい場合(DPがDR以上の場合)、又は、今回のサンプリング(フレーム)での差分値DPと前回のサンプリング(フレーム)での差分値DLとが等しくない場合に、符号化処理を行うようにしている(ステップS82、S83、S85)。
【0138】
図20は、図19のステップS85の符号化処理のフローチャートである。
【0139】
まず、連続数N=0か否かを判断する(ステップS91)。そして、N=0の場合には符号化処理を終了する。一方、N=0でない場合には、連続数N>所定数Kか否かを判断する(ステップS92)。そして、N>Kの場合には、差分値がDPで連続数がKのハフマンコード(図12参照)を求めて出力する(ステップS93)。そして、N=N−Kに設定(デクリメント)して(ステップS94)、ステップS91に戻る。
【0140】
一方、ステップS92でN≦Kであると判断された場合には、差分値がDPで連続数がNのハフマンコードを求めて出力し(ステップS95)、ステップS91に戻る。
【0141】
図20のように処理を行うことで、図13(A)、(B)で説明したように、所定数Kの単位で区切って行う符号化処理を実現できる。
【0142】
4.ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図21を用いて説明する。
【0143】
メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介して転送されたプログラム、或いはROM950(情報記憶媒体の1つ)に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【0144】
コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、オブジェクトを移動させたり動作(モーション)させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0145】
ジオメトリプロセッサ904は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ900で動作するプログラムが、その処理をジオメトリプロセッサ904に指示する。
【0146】
データ伸張プロセッサ906は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、MPEG方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ROM950、CD982に格納されたり、或いは通信インターフェース990を介して外部から転送される。
【0147】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ(プリミティブ面)で構成されるオブジェクトの描画(レンダリング)処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970の機能を利用して、オブジェクトデータを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると、描画プロセッサ910は、これらのオブジェクトデータやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に高速に描画する。また、描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、1フレーム分の画像がフレームバッファ922に書き込まれると、その画像はディスプレイ912に表示される。
【0148】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ932から出力される。
【0149】
ゲームコントローラ942(レバー、ボタン、筺体、パッド型コントローラ又はガン型コントローラ等)からの操作データや、メモリカード944からのセーブデータ、個人データは、シリアルインターフェース940を介してデータ転送される。
【0150】
ROM950にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納されることになる。なお、ROM950の代わりにハードディスクを利用するようにしてもよい。
【0151】
RAM960は、各種プロセッサの作業領域として用いられる。
【0152】
DMAコントローラ970は、プロセッサ、メモリ(RAM、VRAM、ROM等)間でのDMA転送を制御するものである。
【0153】
CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982(情報記憶媒体)を駆動し、これらのプログラム、データへのアクセスを可能にする。
【0154】
通信インターフェース990は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース990に接続されるネットワークとしては、通信回線(アナログ電話回線、ISDN)、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【0155】
なお、本実施形態の各部(各手段)は、その全てを、ハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0156】
そして、本実施形態の各部をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930等は、その指示と渡されたデータとに基づいて、本発明の各部を実現することになる。
【0157】
図22(A)に、本実施形態を業務用ゲームシステム(画像生成システム)に適用した場合の例を示す。プレーヤは、ディスプレイ1100上に映し出されたゲーム画像を見ながら、操作部1102(レバー、ボタン)を操作してゲームを楽しむ。内蔵されるシステムボード(サーキットボード)1106には、各種プロセッサ、各種メモリなどが実装される。そして、本実施形態の各部を実現するためのプログラム(データ)は、システムボード1106上の情報記憶媒体であるメモリ1108に格納される。以下、このプログラムを格納プログラム(格納情報)と呼ぶ。
【0158】
図22(B)に、本実施形態を家庭用のゲームシステム(画像生成システム)に適用した場合の例を示す。プレーヤはディスプレイ1200に映し出されたゲーム画像を見ながら、コントローラ1202、1204などを操作してゲームを楽しむ。この場合、上記格納プログラム(格納情報)は、本体システムに着脱自在な情報記憶媒体であるCD1206、或いはメモリカード1208、1209などに格納されている。
【0159】
図22(C)に、ホスト装置1300と、このホスト装置1300とネットワーク1302(LANのような小規模ネットワークや、インターネットのような広域ネットワーク)を介して接続される端末1304−1〜1304−n(ゲーム機、携帯電話)とを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納プログラム(格納情報)は、例えばホスト装置1300が制御可能な磁気ディスク装置、磁気テープ装置、メモリなどの情報記憶媒体1306に格納されている。端末1304−1〜1304−nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置1300からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末1304−1〜1304−nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置1300がゲーム画像、ゲーム音を生成し、これを端末1304−1〜1304−nに伝送し端末において出力することになる。
【0160】
なお、図22(C)の構成の場合に、本実施形態の各部を、ホスト装置(サーバー)と端末とで分散して実現するようにしてもよい。また、本実施形態の各部を実現するための上記格納プログラム(格納情報)を、ホスト装置(サーバー)の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【0161】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。
【0162】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【0163】
例えば、明細書又は図面中の記載において広義な用語(入力値データのビット長が短い第1の入力モード、入力値データのビット長が長い第2の入力モード、サンプリング、変換処理、入力デバイス等)として引用された用語(デジタル入力モード、アナログ入力モード、フレーム、平滑化処理、十字キー・スティック・ボタン・レバー等)は、明細書又は図面中の他の記載においても広義な用語に置き換えることができる。
【0164】
また、本発明の圧縮方式(符号化処理)、伸長方式(復号化処理)は、本実施形態で説明したものに限定されず、種々の方式を採用できる。例えばハフマン・エンコーディング、ランレングス・エンコーディング以外の方式を採用してもよい。
【0165】
また入力種を求める手法も、本実施形態で説明した手法に限定されない。また、リプレイデータとして記憶するものは入力値データや入力種データに限定されない。
【0166】
また本発明は、圧縮処理は行わずに、圧縮後のリプレイデータ(入力値データ、入力種データ)の伸長処理だけを行う画像生成システムやプログラムにも適用できる。
【0167】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【0168】
また、本発明は種々のゲーム(格闘ゲーム、競争ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、ロールプレイングゲーム等)に適用できる。
【0169】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム(ゲームシステム)に適用できる。
【図面の簡単な説明】
【図1】本実施形態の画像生成システムの機能ブロック図である。
【図2】図2(A)〜(C)は種々のゲームコントローラの説明図である。
【図3】図3(A)(B)も種々のゲームコントローラの説明図である。
【図4】図4(A)〜(D)は入力種についての説明図である。
【図5】図5(A)〜(D)は本実施形態の手法の説明図である。
【図6】図6(A)(B)は入力種の決定手法の説明図である。
【図7】入力種の決定手法の説明図である。
【図8】図8(A)(B)は入力種に応じた変換処理の説明図である。
【図9】図9(A)(B)は圧縮、伸長方式の説明図である。
【図10】図10(A)(B)はゲームコントローラの入力値の性質の説明図である。
【図11】図11(A)(B)(C)は本実施形態の圧縮方式の説明図である。
【図12】静的なハフマン・エンコーディングの説明図である。
【図13】図13(A)(B)は所定数単位で区切って行う符号化処理の説明図である。
【図14】図14(A)(B)は本実施形態のフローチャート例である。
【図15】本実施形態のフローチャート例である。
【図16】図16(A)(B)は本実施形態のフローチャート例である。
【図17】本実施形態のフローチャート例である。
【図18】図18(A)(B)は本実施形態のフローチャート例である。
【図19】本実施形態のフローチャート例である。
【図20】本実施形態のフローチャート例である。
【図21】ハードウェア構成例である。
【図22】図22(A)〜(C)は種々の形態のシステム例である。
【符号の説明】
100 処理部、110 ゲーム処理部、112 リプレイデータ書き込み部、
114 リプレイ処理部、120 画像生成部、130 音生成部
160 操作部、170 記憶部、172 主記憶部、174 描画バッファ
176 リプレイデータ記憶部、180 情報記憶媒体、190 表示部
192 音出力部、194 携帯型情報記憶装置、196 通信部
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image generation system, a program, and an information storage medium.
[0002]
[Prior art]
Conventionally, an image generation system (game system) that generates an image that can be seen from a given viewpoint (virtual camera) in an object space, which is a virtual three-dimensional space, is known. Popular. Taking an image generation system capable of enjoying a competitive game (car game) as an example, a player uses a control unit (steering, shift lever, accelerator pedal, brake pedal, etc.) to move a moving object (own player moving object, own game object). A game is enjoyed by operating a car and competing with a moving object (another player moving object, another car) operated by another player (a computer player or another human player).
[0003]
Now, such an image generation system is usually provided with a function called a replay function. By using this replay function, a player can view his / her game play state after the game is over. Can be seen from a different perspective. There are various conventional techniques for such a replay function.
[0004]
[Patent Document 1]
International Publication No. 96/00601
[0005]
[Problems to be solved by the invention]
However, in this prior art, it is necessary to store the position data and angle data of the object as replay data, so there is a limit to suppressing the data amount of the replay data.
[0006]
In home game systems, various game controllers (pads) that can be connected to the main device exist. Therefore, it is desired that an appropriate replay process can be realized even when these various game controllers are connected to the main unit.
[0007]
The present invention has been made in view of the above problems, and an object of the present invention is to provide an image generation system, a program, and an information storage medium capable of suppressing the amount of replay data.
[0008]
Another object of the present invention is to provide an image generation system, a program, and an information storage medium capable of realizing replay processing corresponding to various game controllers.
[0009]
[Means for Solving the Problems]
The present invention is an image generation system for generating an image, wherein a replay data storage unit for storing replay data and input value data input by a game controller are compressed, and the compressed input value data is used as replay data. A replay data writing unit for writing to the replay data storage unit, wherein the replay data writing unit calculates a difference value between the input value data sampled this time and the input value data sampled last time, and the absolute value is a reference For difference values that are smaller than the difference value width, an encoding process is performed in which the difference value and its consecutive number are paired. For a difference value whose absolute value is larger than the reference difference value width, the difference is made without pairing the consecutive number. The present invention relates to an image generation system that performs a value encoding process. The present invention also relates to a program that causes a computer to function as each of the above-described units. The present invention also relates to a computer-readable information storage medium that stores (records) a program that causes a computer to function as each unit.
[0010]
According to the present invention, input value data from the game controller is sampled, input value data sampled this time (for example, input value data in the current frame) and input value data sampled in the previous time (for example, the previous frame) The difference value of the input value data) is calculated. And when the absolute value of a difference value is smaller than a reference | standard difference value width, the encoding process which made the difference value and the continuous number a pair is performed. On the other hand, when the absolute value of the difference value is larger than the reference difference value width, the difference value is encoded without pairing the consecutive numbers. Thereby, the input value data can be efficiently compressed. Input type data can also be compressed by the same compression method.
[0011]
Further, in the image generation system, the program, and the information storage medium according to the present invention, the replay data writer has the absolute value of the difference value at the current sampling smaller than the reference difference value width and the difference value at the current sampling. When the difference value in the previous sampling is equal, the number of consecutive difference values is incremented without performing the encoding process, and when the absolute value of the difference value in the current sampling is larger than the reference difference value width, Alternatively, the encoding process may be performed when the difference value in the current sampling is not equal to the difference value in the previous sampling.
[0012]
According to the present invention, when the absolute value of the difference value in the current sampling is smaller than the reference difference value width and the difference value in the current sampling and the previous sampling is equal, the encoding process is not performed and the number of consecutive Is merely incremented, the processing load can be reduced. Further, according to the present invention, when the absolute value of the difference value at the current sampling is larger than the reference difference value width, or when the difference value between the current sampling and the previous sampling is not equal, the encoding process is performed. . This encoding process is performed while the continuous number is decremented. For example, when the continuous number reaches “0”, the encoding process ends.
[0013]
The difference value in this sampling is the difference value between the input value data sampled this time and the input value data sampled last time. The difference value in the previous sampling is the previous sampling value. This is a difference value between the input value data that has been input and the input value data that has been sampled the previous time. The encoding process is an encoding process in which the difference value and the continuous number are paired or a differential value encoding process in which the continuous number is not paired.
[0014]
In the image generation system, the program, and the information storage medium according to the present invention, when the replay data writer has the consecutive number N of difference values larger than the predetermined number K, the difference value and the predetermined number K are paired. The encoding process may be performed, and the number of consecutive values for the difference value may be set to NK.
[0015]
Note that after the continuous number is set (changed) to NK, the encoding process may be performed based on the difference value and the continuous number NK. For example, when NK is larger than the predetermined number K, an encoding process in which the difference value and the predetermined number K are paired is performed, the continuous number is set to NK, and NK is When the number is equal to or less than the predetermined number K, an encoding process in which the difference value and NK are paired may be performed.
[0016]
The image generation system, the program, and the information storage medium according to the present invention include a replay processing unit that performs a replay process for generating a replay image based on the replay data read from the replay data storage unit (as the replay processing unit). A program to be operated or an information storage medium storing the program), and the replay data writing unit specifies at least one of input value data input by the game controller, an input device of the input value data, and an input mode The input type data to be compressed is written into the replay data storage unit as replay data, and the replay processing unit reads the input value data and the input type data that are replay data from the replay data storage unit, and reads them. Decompress input value data and input type data , Based on the input seed data and the input value data after decompression may be performed replay process.
[0017]
In the present invention, the input value data and the input type data are compressed and written in the replay data storage unit, and the written input value data and the input type data are read out, and the replay process is performed. For example, the input type of the input value data is specified based on the input type data, and the replay process is performed based on the input value data in which the input type is specified. Specifically, for example, in the replay process, a process corresponding to the input type is performed on the input value data. This makes it possible to perform replay processing corresponding to various game controllers.
[0018]
In the image generation system, the program, and the information storage medium according to the present invention, the replay data writing unit may compress the input seed data by the same compression method as the input value data compression method.
[0019]
Here, as the same compression method, there is a method in which a difference value of input value data and a difference value of input seed data are obtained. There is also a method for encoding the obtained difference value. Furthermore, there is a method of encoding the difference value and the number of consecutive difference values as a pair. In addition, it is not necessary to encode the difference value and the continuous number as a pair for all the difference values, and only a part of the difference values (for example, a difference value whose absolute value is smaller than the reference difference value width) is used as the continuous number. And may be encoded as a pair.
[0020]
In the image generation system, program, and information storage medium according to the present invention, the replay data writing unit obtains input type data based on at least one of a game controller type and a game controller key configuration setting. Also good.
[0021]
Note that the input type data may be obtained based on factors other than the type of game controller and key configuration settings. Further, the input type data may be coded into a code having a given number of bits for distinguishing between the types of game controllers and the differences in key configuration settings.
[0022]
In addition, the image generation system, the program, and the information storage medium according to the present invention include a game processing unit that performs a game process for generating a game image based on input value data input by a game controller (function as the game processing unit). Or an information storage medium storing the program), and when the input type of the input value data input by the game controller is the first input type, the game processing unit The first conversion process is performed for the game process, and when the input type of the input value data input by the game controller is the second input type, the conversion process is performed on the input value data. Without performing the second conversion process, the game process is performed, and the replay processing unit receives the input type data of the replay data as the first input. In the case of the seed data, the first conversion process is performed on the input value data, the replay process is performed, and when the input seed data of the replay data is the second input seed data, The replay process may be performed without performing the conversion process on the input value data or by performing the second conversion process.
[0023]
The input types are not limited to the first and second input types, and there may be other input types. Also, the conversion process is not limited to the first and second conversion processes, and there may be other conversion processes.
[0024]
In the image generation system, program, and information storage medium according to the present invention, the input mode specified by the first input type is the first input mode in which the bit length of the input value data is short, and the second input type. May be a second input mode in which the bit length of the input value data is long, and the first and second conversion processes may be a smoothing process of the input value data.
[0025]
As the first input mode having a short bit length, for example, an input mode in which the bit length is 1 bit (binary) can be considered, and as the second input mode having a long bit length, for example, the bit length is An input mode having 4 bits or more can be considered. Alternatively, the first input mode may be an input mode in which the bit length is K bits, and the second input mode may be an input mode in which the bit length is L (K> L) bits.
[0026]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, the present embodiment will be described with reference to the drawings.
[0027]
In addition, this embodiment demonstrated below does not unduly limit the content of this invention described in the claim. In addition, all the configurations described in the present embodiment are not necessarily essential configuration requirements of the present invention.
[0028]
1. Constitution
FIG. 1 shows an example of a functional block diagram of the image generation system (game system) of the present embodiment. Note that the image generation system according to the present embodiment does not need to include all the units (functional blocks) in FIG. 1 and omits some of them (for example, the operation unit 160, the portable information storage device 194, or the communication unit 196). It is good also as a structure.
[0029]
The operation unit 160 is for a player to input operation data (input value data), and functions thereof are a lever, a button, a steering, a shift lever, an accelerator pedal, a brake pedal, a microphone, a sensor, a touch panel, or a housing. It can be realized by hardware such as.
[0030]
The storage unit 170 serves as a work area such as the processing unit 100 or the communication unit 196, and its function can be realized by hardware such as a RAM.
[0031]
The information storage medium 180 (computer-readable medium) stores programs, data, and the like, and functions as an optical disk (CD, DVD), magneto-optical disk (MO), magnetic disk, hard disk, and magnetic tape. Alternatively, it can be realized by hardware such as a memory (ROM). The processing unit 100 performs various processes of this embodiment based on a program (data) stored in the information storage medium 180. That is, the information storage medium 180 stores (records and stores) a program for causing the computer to function as each unit of the present embodiment (a program for causing the computer to implement each unit).
[0032]
The display unit 190 outputs an image generated according to the present embodiment, and its function can be realized by hardware such as a CRT, LCD, touch panel, or HMD (head mounted display).
[0033]
The sound output unit 192 outputs the sound generated by the present embodiment, and its function can be realized by hardware such as a speaker or headphones.
[0034]
The portable information storage device 194 stores player personal data, game save data, and the like. As the portable information storage device 194, a memory card, a portable game device, and the like can be considered.
[0035]
The communication unit 196 performs various controls for communicating with the outside (for example, a host device or other image generation system), and functions thereof are hardware such as various processors or a communication ASIC, It can be realized by a program.
[0036]
Note that a program (data) for causing a computer to function as each unit of this embodiment is distributed from the information storage medium of the host device (server) to the information storage medium 180 (storage unit 170) via the network and the communication unit 196. You may do it. Use of such an information storage medium of the host device (server) is also included in the scope of the present invention.
[0037]
The processing unit 100 (processor) performs various processes such as a game process, an image generation process, and a sound generation process based on operation data from the operation unit 160, a program, and the like. In this case, the processing unit 100 performs various processes using the main storage unit 172 in the storage unit 170 as a work area. The function of the processing unit 100 can be realized by hardware such as various processors (CPU, DSP, etc.) or ASIC (gate array, etc.) and a program (game program).
[0038]
The processing unit 100 includes a game processing unit 110, a replay data writing unit (replay data recording unit) 112, a replay processing unit (replay data reading unit, replay data reproduction unit) 114, an image generation unit 120, and a sound generation unit 130. Note that the processing unit 100 does not need to include all these units (functional blocks), and some of them may be omitted.
[0039]
The game processing unit 110 performs various game processes for generating a game image based on operation data (input value data) from the game controller (operation unit) 160. This game process includes, for example, a process for placing an object (display object) appearing in a game, a process for moving an object, a process for moving an object (motion playback process), a process for displaying an object, a process for advancing a game, Alternatively, it is a process for calculating a game result.
[0040]
Specifically, the game processing unit 110 performs processing for obtaining movement information (position information, direction information, speed information, or acceleration information) of an object (moving object). That is, processing for moving the object in the object space is performed based on input value data (operation data) input by the player by the game controller 160, a game program, or the like. In addition, the game processing unit 110 performs processing for obtaining motion information of the object (position information and direction information of each part of the object). That is, based on input value data input by the player by the game controller 160, a game program, or the like, processing for moving (motion, animation) the object is performed. The motion of the object in this case can be realized by reproducing motion data including the position or rotation angle (direction) of each part object constituting the object (model object, character).
[0041]
The replay data writing unit (replay data recording unit) 112 performs a process of writing the replay data (data for reproducing the movement or movement of the object) in the replay data storage unit 176. Specifically, the replay data writing unit 112 compresses (encodes) the replay data and writes (records) it in the replay data storage unit 176.
[0042]
In this case, the replay data writing unit 112 writes the input value data and the input type data input by the game controller (operation unit) 160 in the replay data storage unit 176 as replay data. Here, the input value data is data obtained by the player operating the input device (button, stick, cross key, lever, steering, accelerator pedal, brake pedal, or game controller itself) of the game controller 160. Specifically, the value is determined in accordance with the operation amount of the input device (depth of pressing a button or cross key, angle of tilting a stick or lever, etc.). Input type data is data for specifying the type of input value data. Specifically, it is data for specifying at least one of the input device used to input the input value data and the input mode (digital input mode, analog input mode, etc.) when the input value data is input.
[0043]
Note that the input type data may specify only an input device, may specify only an input mode, or may specify both. Further, the input seed data may specify elements other than the input device and the input mode. The input mode of the input device may be switched based on an input mode switching button (digital input mode / analog input mode switching button) provided on the game controller. The input mode is a mode that is distinguished by, for example, a difference in bit length of input value data input by the input device, such as a first input mode having a short bit length, a second input mode having a long bit length, and the like. There are various input modes.
[0044]
The replay data writing unit 112 compresses and writes not only the input value data but also the input type data in the replay data storage unit 176. In this case, the input type data is also compressed by the same compression method as the input value data compression method, for example.
[0045]
The compression of the replay data can be realized by using a difference value of input value data (input type data) (a difference value between input value data sampled this time and input value data sampled last time). More specifically, it can be realized by a process (run length encoding or the like) for encoding the difference value and the consecutive number of difference values as a pair. Further, it can be realized by an encoding process (Huffman encoding or the like) in which a difference value or a pair of a difference value and a continuous number is replaced with a code.
[0046]
In particular, in this embodiment, the replay data writing unit 112 calculates the difference value between the input value data at the current (current) sampling (frame) and the input value data at the previous (for example, once) sampling (frame). To do. When the absolute value of the difference value is smaller than the reference difference value width (given difference value width), the difference value and the continuous number are encoded as a pair. On the other hand, when the absolute value of the difference value is larger than the reference difference value width, only the difference value is encoded.
[0047]
In addition, when the absolute value of the difference value is equal to the reference difference value width (when the absolute value of the difference value is equal to or larger than the reference difference value width), the difference value and the continuous number may be paired and encoded. Alternatively, when the absolute value of the difference value is equal to the reference difference value width (when the absolute value of the difference value is equal to or smaller than the reference difference value width), only the difference value may be encoded without pairing the continuous numbers. .
[0048]
Sampling is the timing at which the game processing unit 110 or the like takes input value data from the game controller. In other words, it is the timing at which one unit of game processing is performed. Specifically, the input value data of the game controller is taken in, for example, at the frame update timing, and this frame update timing becomes the sampling timing. The frame is a periodic timing that serves as a reference for image display (game processing). For example, the frame is updated every time the vertical synchronization signal becomes active.
[0049]
The replay processing unit 114 performs a replay process for generating a replay image. More specifically, the replay process is performed based on the input value data and input type data (replay data) read from the replay data storage unit 176. More specifically, the replay processing unit 114 reads the compressed (encoded) input value data and input type data (replay data) from the replay data storage unit 176, decompresses (decodes), and inputs the decompressed input. A replay process is performed based on the value data and the input type data (replay data).
[0050]
For example, during a game, the position and angle of the virtual camera (viewpoint) are controlled by the game processing unit 110 so as to follow an object that is moved by the operation of the player, and a game image that can be seen from the virtual camera is generated. On the other hand, during replay, for example, one virtual camera is selected (randomly selected) from among a plurality of replay virtual cameras (virtual camera processing routines). Then, the position and angle of the selected replay virtual camera are controlled by the replay processing unit 114, and a replay image that can be seen from the replay virtual camera is generated. Thereby, the player can view the state of his / her game play from a different viewpoint (or the same viewpoint) from that during the game after the game is over.
[0051]
The replay image may be displayed during the game play of the player. For example, a racer or the like existing in the real world plays a game, and replay data (input value data, input seed data) obtained by the game play is stored in the replay data storage unit 176. Then, the replay processing unit 114 reads out the replay data, and causes the racer's enemy moving object (ghost car) to travel based on the replay data during the player's play. The replay processing of this embodiment can be applied to such a replay image of an enemy moving object (ghost car).
[0052]
The image generation unit 120 performs drawing processing based on the results of various processes performed by the processing unit 100, thereby generating an image and outputting the image to the display unit 190. That is, when generating a so-called three-dimensional game image, first, geometric processing such as coordinate transformation, clipping processing, perspective transformation, or light source processing is performed, and based on the processing result, drawing data (the vertex of the primitive surface) Position coordinates, texture coordinates, color data, normal vector, α value, etc.) are created. Then, based on the drawing data (primitive surface data), the object (one or a plurality of primitive surfaces) after the perspective transformation (after the geometry processing) has the image information in a pixel unit such as a drawing buffer 174 (frame buffer, work buffer, etc.). It is drawn in a buffer that can be stored. As a result, an image that can be seen from the virtual camera (given viewpoint) in the object space is generated.
[0053]
The sound generation unit 130 performs sound processing based on the results of various processes performed by the processing unit 100, generates game sounds such as BGM, sound effects, or sounds, and outputs the game sounds to the sound output unit 192.
[0054]
Note that the image generation system of the present embodiment may be a system dedicated to the single player mode in which only one player can play, or not only the single player mode but also a multiplayer mode in which a plurality of players can play. The system may also be provided.
[0055]
Further, when a plurality of players play, game images and game sounds to be provided to the plurality of players may be generated using one terminal, or connected via a network (transmission line, communication line) or the like. Alternatively, it may be generated using a plurality of terminals (game machine, mobile phone).
[0056]
2. Method of this embodiment
Next, the method of this embodiment will be described with reference to the drawings.
[0057]
2.1 Memory of input type
In the present embodiment, input value data input by the player during the game by the game controller is stored as replay data, and a replay image (an image seen from the virtual camera for replay) is generated based on the stored replay data. ing.
[0058]
However, in a home game system or the like, various game controllers as shown in FIGS. 2A, 2B, 3C, 3A, and 3B are used as game controllers that can be connected to the main unit. Exists. These game controllers have different input devices (cross keys, buttons, sticks, levers, etc.) and their input modes, and input types of input value data are also different from these input devices and input modes. Depending on it.
[0059]
For example, in the game controller of FIG. 2A, input devices such as a cross key (direction key) 10 and buttons (operation buttons) 11, 12, 13, 14, 15, 16, 17, 18 are provided. The input modes of these input devices are all digital (binary) input modes (in a broad sense, the first input mode in which the bit length of input value data is short).
[0060]
For example, when the player presses the upper key of the cross key 10 of the game controller in FIG. 2A, the input value data becomes “1”, and when the upper key is not pressed, the input value data becomes “0”. Become. The same applies to the lower, left, and right keys of the cross key 10. By using the cross key 10, as shown in FIG. 4A, a steering (direction instruction) operation of a moving object (car, motorcycle, character) can be performed.
[0061]
When the button 11 is pressed, the input value data becomes “1”, and when the button 11 is not pressed, the input value data becomes “0”. The same applies to the buttons 12-18. By using these buttons 11 to 18, as shown in FIG. 4 (B), an accelerator, a brake, a gear change operation, and the like of a moving object (car, motorcycle) can be performed.
[0062]
In the game controller of FIG. 2B, input devices such as sticks (analog sticks) 19 and 20 are further provided as compared with the game controller of FIG. The input mode of these sticks 19 and 20 is an analog (multi-value) input mode (in a broad sense, the second input mode in which the bit length of input value data is long).
[0063]
For example, depending on the angle at which the stick 19 or 20 is tilted, the input value data changes in the range of −128 to 127. That is, when the stick 19 or 20 is completely tilted to the right side, the input value data (X coordinate value) becomes “127”, and when the stick 19 or 20 is completely tilted to the left side, the input value data (X coordinate value) is “−”. 128 ". Further, in the neutral state, the input value data is “0”. By using these sticks 19 or 20, as shown in FIG. 4C, a steering operation of a moving object can be performed.
[0064]
In the game controller of FIG. 2C, unlike the game controller of FIG. 2B, the input mode of the cross key 10 and the buttons 11 to 18 (pressure-sensitive buttons) is the analog input mode (second input in a broad sense). Mode).
[0065]
For example, the input value data changes in the range of 0 to 255 according to the depth (distance) at which the button 11 is pressed. That is, when the button 11 is not pressed, the input value data is “0”, and when the button 11 is pressed most deeply, the input value data is “255”. The same applies to the buttons 12-18. By using these buttons 11 to 18, as shown in FIG. 4D, an accelerator, a brake, a gear change operation and the like of the moving object can be performed.
[0066]
In the game controller of FIG. 3A, the input value data for direction indication can be input in the analog input mode by relatively twisting the left holding member 20 and the right holding member 21 of the game controller. . In the game controller of FIG. 3B, the input value data for direction indication can be input in the analog input mode by rotating the steering wheel 30 left and right. Further, by depressing the accelerator pedal 31 and the brake pedal 32, input value data for accelerator and brake operation can be input in the analog input mode.
[0067]
As described above, various game controllers exist. Accordingly, when input value data input by the player by the game controller is stored and replay processing is performed, various game controllers as shown in FIGS. 3A to 4B are connected to the main unit. In addition, it is desirable that an appropriate replay process can be realized.
[0068]
Therefore, in the present embodiment, input value data input by the game controller and input type data (data for specifying an input device and its input mode) are stored as replay data. Then, a replay process is performed based on the stored input value data and input type data.
[0069]
Specifically, as shown in FIG. 5A, when an input value is input in the digital input mode (first input mode in a broad sense) by the cross key, the replay data writing unit 112 displays the input value. The data (-1, 0, 1) and the input type data (cross key, digital input mode) are associated and written to the replay data storage unit 176. Then, the replay processing unit 114 determines the input type of the input value data based on the written input type data, and performs a replay process according to the input type. For example, when the input value data is “−1” (when the left key of the cross key is pressed), it is determined that the player has performed an operation of turning the steering to the left side. Then, a replay image in which the moving object (car, motorcycle) turns to the left is generated. When the input value data is “1” (when the right key of the cross key is pressed), it is determined that the player has performed an operation to turn the steering to the right. Then, a replay image in which the moving object turns to the right is generated. When the input value data is “0” (when neither the left key nor the right key of the cross key is pressed), it is determined that the steering is in the neutral state, and a replay image in which the moving object goes straight is generated.
[0070]
As shown in FIG. 5B, when an input value is input in the analog input mode (second input mode in a broad sense) with a stick, the replay data writing unit 112 sets the angle at which the stick is tilted. The corresponding input value data (-128 to 127) and the input type data (stick, analog input mode) are written in the replay data storage unit 176 in association with each other. Then, the replay processing unit 114 determines the input type of the input value data based on the written input type data, and performs a replay process according to the input type. For example, when the input value data is “−128” (when the stick is tilted to the left side), it is determined that the player has performed an operation of turning the steering to the left side. Then, a replay image in which the moving object turns to the left is generated. When the input value data is “127” (when the stick is tilted to the right side), it is determined that the player has performed an operation to turn the steering to the right side. Then, a replay image in which the moving object turns to the right is generated. When the input value data is “0”, it is determined that the steering is in the neutral state, and a replay image in which the moving object goes straight is generated.
[0071]
As shown in FIG. 5C, when an input value is input in the digital input mode by a button, the replay data writing unit 112 performs input value data (0, 1) and input type data (button, digital The input mode) is associated and written to the replay data storage unit 176. Then, the replay processing unit 114 determines the input type of the input value data based on the written input type data, and performs a replay process according to the input type. For example, when the input value data is “1” (when the button is pressed), it is determined that the player has performed an operation of stepping on the accelerator (brake). Then, a replay image in which the moving object is accelerated (decelerated) is generated. When the input value data is “0” (when the button is not pressed), it is determined that the player has not stepped on the accelerator (brake). In this case, the moving object is not accelerated (decelerated).
[0072]
Also, as shown in FIG. 5D, when an input value is input in the analog input mode by a button, the replay data writing unit 112 changes the input value data (0 ˜255) and the input type data (button, analog input mode) are written in the replay data storage unit 176 in association with each other. Then, the replay processing unit 114 determines the input type of the input value data based on the written input type data, and performs a replay process according to the input type. For example, when the input value data is “255” (when the button is pressed most deeply), it is determined that the player has fully depressed the accelerator (brake). Then, a replay image in which the moving object is accelerated (decelerated) to the maximum is generated. When the input value data is “0” (when the button is not pressed), it is determined that the player has not stepped on the accelerator (brake). In this case, the moving object is not accelerated (decelerated).
[0073]
By doing in this way, according to this embodiment, no matter what game controller is connected to the main unit, an optimal replay process corresponding to the game controller can be performed and a replay image can be generated.
[0074]
In the case of the cross key in FIG. 5A, the input value data becomes “−1” when the left key is pressed, and the input value data becomes “1” when the right key is pressed. When neither the left key nor the right key is pressed, the input value data is “0”.
[0075]
The input seed data is stored in the replay data storage unit 176 as, for example, an 8-bit code (J-bit in a broad sense). Specifically, when the input device is a button and the input mode is a digital input mode, “00h”, when the input device is a button and the input mode is an analog input mode, “01h”, when the input device is a stick The input seed data is encoded and stored as “02h”.
[0076]
The input type can be determined based on at least one of the type of game controller and the key configuration setting (option setting) of the game controller. Here, the key configuration setting is performed on an option setting screen (option menu) for performing screen adjustment, sound adjustment, difficulty adjustment, game setting, or the like.
[0077]
For example, in FIG. 6A, a game controller of the type shown in FIG. The key configuration setting screen is as shown at C1 in FIG. As indicated by C1 in FIG. 6A, the steering operation (direction) is fixed to be performed with the cross key 10 in the digital input mode in FIG. 2A, and there is no other selection. Further, the player can select which of the buttons 11 and 15 in the digital input mode is used for the accelerator operation. The player can select which of the buttons 12 and 17 in the digital input mode is to be used for the brake operation. Then, the input type is determined based on the information of the key configuration setting (player selection operation) and the type of the connected game controller.
[0078]
In FIG. 6B, a game controller of the type shown in FIG. The key configuration setting screen is as shown at C2 in FIG. As shown at C2 in FIG. 6B, the player can select whether the steering operation is performed with the analog input mode stick 19 or the digital input mode cross key 10 in FIG. 2B. Further, the player can select which of the buttons 11 and 15 in the digital input mode is used for the accelerator operation. The player can select which of the buttons 12 and 17 in the digital input mode is to be used for the brake operation. Then, the input type is determined based on the information on the key configuration setting and the type of the connected game controller.
[0079]
In FIG. 7, a game controller of the type shown in FIG. 2C is connected to the main device 40. The key configuration setting screen is as shown at C3 in FIG. As shown at C3 in FIG. 7, the player can select whether the steering operation is performed with the stick 19 in the analog input mode or the cross key 10 in the analog input mode in FIG. In addition, the player can select whether to perform the accelerator operation with the button 11 in the digital input mode, the button 11 in the analog input mode, the button 15 in the digital input mode, or the button 15 in the analog input mode. The player can select whether to perform the brake operation with the button 12 in the digital input mode, the button 12 in the analog input mode, the button 17 in the digital input mode, or the button 17 in the analog input mode. Then, the input type is determined based on the information on the key configuration setting and the type of the connected game controller.
[0080]
Note that the input type may be determined only by the type of the game controller, may be determined only by the key configuration setting, or may be determined based on factors other than the type of the game controller and the key configuration setting.
[0081]
The type of game controller connected can be obtained by reading the attribute information of the game controller from a register provided in the game controller.
[0082]
2.2 Conversion process
In the present embodiment, conversion (processing) processing is performed on input value data from the game controller, and the game processing unit 110 performs game processing based on the input value data after the conversion processing. Also during replay, conversion processing is performed on the input value data read as replay data, and replay processing is performed based on the input value data after the conversion processing. In this case, in the present embodiment, what kind of conversion processing is performed on the input value data during the replay processing is determined based on the input type data stored as the replay data.
[0083]
For example, in D1 of FIG. 8A, input value data is input with a first input type called a button in a digital input mode (an input mode with a short bit length of input value data) during game processing. In this case, as indicated by D2, a first conversion process (first smoothing process in a broad sense) is performed on the input value data. Specifically, the smoothing process for smoothly changing the input value data that changes discretely from “0” to “1” (changes in binary) from “0” to “1” (changes in multiple values). Is done. If such a smoothing process is performed, a situation in which the movement of the moving object becomes unnatural due to a sudden accelerator operation or steering operation resulting from a discrete change in input value data from “0” to “1”. Can be prevented.
[0084]
In the present embodiment, as indicated by D3 in FIG. 8A, the same first conversion process (first smoothing process in a broad sense) as that in the game process is applied to the input value also during the replay process. Apply to data. Specifically, the input type of the input value data read from the replay data storage unit 176 is the first input type (digital input mode button) based on the input type data read from the replay data storage unit 176. If it is determined, the first conversion process is performed on the read input value data, and the replay process is performed. By doing so, it is possible to prevent a situation in which the movement of the moving object becomes unnatural due to a sudden accelerator operation or steering operation even during the replay process.
[0085]
Also, in D4 of FIG. 8B, input value data is input with a second input type of a button in an analog input mode (input mode with a long bit length of input value data) during game processing. In this case, the second conversion process (second smoothing process) is performed on the input value data. Specifically, a smoothing process for changing input value data more smoothly is performed. By performing such smoothing processing, the movement of the moving object can be made smoother.
[0086]
In the present embodiment, as indicated by D5 in FIG. 8B, the same second conversion process (second smoothing process) as that in the game process is also read out during the replay process. Apply to value data. Specifically, the input type of the input value data read from the replay data storage unit 176 is a second input type (analog input mode button) based on the input type data read from the replay data storage unit 176. Is determined, the second conversion process is performed on the read input value data, and the replay process is performed. By doing in this way, the movement of the moving object can be smoothed even during the replay process.
[0087]
When the input type is the second input type (analog input mode button), the conversion process (smoothing process in a broad sense) itself may not be performed.
[0088]
If the conversion process is performed by the method as described above, it is not necessary to store the input value data after the conversion process as replay data, and the input value data before the conversion process may be stored as the replay data. For example, in the case of D1 in FIG. 8A, it is sufficient to store “0” or “1” as replay data. Thereby, the amount of replay data can be reduced, and the memory can be effectively used. Further, since the conversion process to be performed on the input value data is selected based on the input type data stored as the replay data, a conversion process without error can be realized. In addition, the same movement as that during the game process can be performed on the object during the replay process, and a realistic replay image can be generated.
[0089]
Note that the conversion process performed on the input value data by the method of the present embodiment is not limited to the smoothing process shown in FIGS. That is, various conversion (processing) processes to be performed when it is not preferable to use the input value data as they are can be considered.
[0090]
2.3 Replay data compression
In the present embodiment, as shown in FIG. 9A, the replay data writing unit 112 compresses the input value data and writes it in the replay data storage unit 176. Furthermore, in this embodiment, not only the input value data but also the input type data is compressed and written in the replay data storage unit 176.
[0091]
In this embodiment, the replay processing unit 114 reads and decompresses the input value data and the input type data that are compressed and stored in the replay data storage unit 176. Then, the replay process is performed based on the expanded input value data and input type data.
[0092]
Thus, by compressing and storing not only the input value data but also the input type data, the amount of replay data can be further reduced.
[0093]
In this case, it is desirable to compress the input type data by the same compression method as the input value data. For example, both the input value data and the input type data are set to 8-bit (J-bit) data, and compressed to the same compression method.
[0094]
As a compression method, as shown in FIG. 9B, a difference value between the input value data obtained in the current sampling (frame) and the input value data obtained in the previous sampling (frame) is obtained. A method of encoding the difference value is desirable. In this case, for example, the obtained difference value and the number of consecutive values are paired and encoded (run length encoding). As will be described later, the difference value and its continuous number may be paired and encoded on condition that the absolute value of the difference value is smaller than the reference difference value width. Alternatively, encoding may be performed so that a difference value with a higher appearance frequency or a difference value with a higher appearance frequency is assigned a shorter code (Huffman encoding).
[0095]
When the stick of the game controller is in the neutral state, when the tilt angle of the stick is fixed at a predetermined angle, or when the button is not pressed, the value of the input value data hardly changes. Therefore, a method of obtaining the difference value of the input value data and compressing the difference value and its continuous number as a pair is effective for improving the compression rate of the input value data. Similarly, it is considered that the input seed data hardly changes during game processing or replay processing. Therefore, a method of obtaining the difference value of the input seed data and compressing the difference value and its continuous number as a pair (the same compression method as the input value data) is effective for improving the compression rate of the input seed data.
[0096]
2.4 Compression method
Next, the compression method of this embodiment will be described in detail.
[0097]
As shown in FIG. 10A, when the stick 19 as an input device is in a neutral state (a state where the stick 19 is not tilted in any direction), the input value data becomes a value near “0”. Therefore, when the difference value between the input value data of this time (current sampling and frame) and the previous input value data (previous sampling and frame) is obtained, the frequency of appearance of the difference value is “0”, Next, “−1” and “1” increase.
[0098]
Also, as shown in FIG. 10B, the difference value of the input value data even when the player tilts the stick 19 and is fixed at a fixed tilt angle (for example, when the handle is fixed). The appearance frequency of “0” is the highest, followed by “−1” and “1”.
[0099]
As described above, in the input method using the input device such as the stick 19, it has been found that the difference value having a smaller absolute value appears more frequently without depending on the tilt angle of the stick 19 or the like.
[0100]
In the present embodiment, paying attention to the property of the input value data of such a game controller, the following compression (encoding) method is adopted.
[0101]
Specifically, first, as shown in FIG. 11A, a difference value between the current (current) input value data and the previous (one time before) input value data is obtained.
[0102]
Next, the absolute value of the difference value is compared with the reference difference value width. And as shown to E1 of FIG. 11 (B), about the difference value whose absolute value is smaller than a reference | standard difference value width, a difference value and its continuous number are encoded as a pair. On the other hand, as shown by E2 in FIG. 11B, for the difference value whose absolute value is larger than the reference difference value width, only the difference value is encoded. In addition, about the difference value whose absolute value is equal to the reference | standard difference value width, you may make it encode by making a difference value and a continuous number a pair, or you may make it encode only a difference value.
[0103]
For example, when input value data as indicated by E4 in FIG. 11C is input, as shown in E5 to E11, the difference value is “0”, the number of consecutive numbers is “3”, and the difference value is A code of “8”, a code of a difference value of “8”, a code of a difference value of “1” and a consecutive number of “4”, a code of a difference value of “0” and a consecutive number of “5”, and a difference value of A code with “−2” and a continuous number of “2” and a code with a difference value of “−16” are generated.
[0104]
As shown in FIGS. 10A and 10B, in the difference value of the input value data of the game controller, the appearance frequency of the difference value having a small absolute value increases. That is, the appearance frequency of difference values whose absolute values are smaller than the reference difference value width, such as “0”, “1”, “−1”, “2”, “−2”, etc. increases and continues continuously. Become. Therefore, for the difference value whose absolute value is smaller than the reference difference value width, as shown in E5, E8, E9, and E10 of FIG. It can be improved.
[0105]
On the other hand, if a difference value whose absolute value is larger than the reference difference value width is encoded as a pair with the continuous number, the code length that must be prepared becomes long, and the compression rate may be deteriorated. Therefore, for the difference value whose absolute value is larger than the reference difference value width, as shown in E6, E7, and E11 in FIG. 11C, the difference value is encoded independently without being paired with the continuous number. Thereby, a compression rate can be improved.
[0106]
Note that the size of the reference difference value width is arbitrary. For example, the size of the reference difference value width may be set to “1”, and only the difference value that becomes “0” may be paired with the continuous number and encoded.
[0107]
Further, as an encoding method, an encoding method (Huffman encoding) in which a shorter code is assigned to a value having a high appearance frequency or a value expected to have a high appearance frequency is desirable.
[0108]
For example, FIG. 12 shows an example of static Huffman encoding.
[0109]
In FIG. 12, the difference value “0” is “00”, the difference value “1” is “01”, the difference value “−1” is “100”, and the difference value is “101”. “0” and the number of consecutive “2”, “1100” the difference value is “0” and the number of consecutive “3”, “1101” is the difference value of “2”, “111000” Codes are assigned such that the difference value is “1” and the consecutive number is “2”. By performing such encoding, a short code is assigned to a value having a high appearance frequency, and the compression rate can be improved.
[0110]
Note that dynamic Huffman encoding may be performed instead of static Huffman encoding as shown in FIG. That is, a value having a high appearance frequency is searched, and a short code is dynamically assigned to the value having a high appearance frequency. This dynamic Huffman encoding has a higher processing load than the static Huffman encoding, but can improve the compression rate.
[0111]
Also, if the difference number consecutive number N is larger than the predetermined number K, the difference value and the predetermined number K are encoded as a pair, and the consecutive number for the difference value is set to NK (decrement). It is desirable.
[0112]
For example, in FIG. 13A, the difference value is “0”, the continuous number is “69”, and the continuous number is larger than the predetermined number “64”. Accordingly, in this case, the predetermined number “64” is regarded as a continuous number, the difference value “0” and the predetermined number “64” are encoded as a pair, and the continuous number is changed (set to 69−64 = 5). ) Then, the difference value “0” and the changed continuous number “5” are paired and encoded.
[0113]
In FIG. 13B, the difference value is “0”, the continuous number is “131”, and the continuous number is larger than the predetermined number “64”. Therefore, in this case, the difference value “0” and the predetermined number “64” are encoded as a pair, and the continuous number is changed (set) to 131−64 = 67. Then, since the continuous number “67” is larger than the predetermined number “64”, the difference value “0” and the continuous number “64” are encoded as a pair, and the continuous number is changed to 67−64 = 3 ( Set). Then, the difference value “0” and the continuous number “3” are paired and encoded.
[0114]
In this way, if encoding is performed by dividing the data by a predetermined number K, it is possible to prevent a situation in which the code for pair encoding becomes unnecessarily long. That is, in the game controller, there is a high possibility that a difference value having a small absolute value, for example, “0” will continue for a long time. Therefore, the range of consecutive numbers paired with “0” becomes large, and the length of the code to be prepared becomes long.
[0115]
As shown in FIGS. 13 (A) and 13 (B), if encoding is performed by dividing into units of a predetermined number K, continuous numbers paired with “0” are in the range of 2 to K. Just prepare. Therefore, the length of the code to be prepared can be shortened, and the compression rate can be improved.
[0116]
The predetermined number K is arbitrary, and various values such as K = 8, 16, 32, 64, 128, 256 can be adopted.
[0117]
3. Processing of this embodiment
Next, a detailed example of processing according to the present embodiment will be described with reference to the flowcharts of FIGS.
[0118]
FIG. 14A is a flowchart of processing during a game. First, input information acquisition processing is performed (step S1), and input type (input mode) writing (recording) processing is performed (step S2). Next, input value writing (recording) processing is performed (step S3), and input value conversion (processing) processing according to the input type is performed (step S4). Finally, game processing is performed (step S5). That is, the player's game is started, the game is advanced, the moving object is moved and operated according to the input value data, and the player's game score (score) is calculated.
[0119]
FIG. 14B is a flowchart of processing during replay. First, an input type (input mode) is read (reproduced) (step S11), and an input value is read (reproduced) (step S12). Next, input value conversion (processing) processing according to the input type is performed (step S13), and finally replay processing is performed (step S14). That is, when the player chooses to see the replay image of his / her play or enters the replay image display mode, the replay image seen from the replay virtual camera is displayed. Alternatively, a replay image of an enemy moving object (ghost car) competing with the moving object operated by the player is displayed.
[0120]
FIG. 15 is a flowchart of the input information acquisition process in step S1 of FIG. First, the type of the connected game controller (pad) is acquired (step S21). This can be realized by reading game controller information stored in a register of the game controller. Next, the input type is specified and acquired based on the type of game controller acquired in step S21 and the key configuration (see FIGS. 6A to 7) set by the player for the game controller (step S21). S22). Then, the input value (type of input value) is specified and acquired based on the specified input type (step S23).
[0121]
FIG. 16A is a flowchart of the input value writing (recording) process in step S2 of FIG. First, as described with reference to FIG. 11A, a difference value between the current (current) input value data and the previous (previous) input value data is obtained (step S31). Then, the obtained difference value is encoded (compressed) by the method described in FIGS. 11B, 11C, 12, 13A, 13B, etc., and stored in the replay data storage unit. Write (step S32).
[0122]
FIG. 16B is a flowchart of the input type writing (recording) process in step S3 of FIG. First, a difference value between the current (current) input type data (for example, a J-bit code) and the previous (one time previous) input type data is obtained (step S41). Then, the obtained difference value is encoded (compressed) and written to the replay data storage unit (step S42). Note that the compression method of input type data (a process of obtaining and encoding a difference value) can be realized by the same method as the compression method of input value data described with reference to FIGS.
[0123]
FIG. 17 is a flowchart of the input value conversion (processing) process corresponding to the input type in step S4 of FIG. Note that step S13 in FIG. 14B can also be realized by the processing in FIG.
[0124]
First, the input type is determined (step S51). When the input type is the cross key in the digital input mode (FIGS. 4A and 5A), the input values of −1, 0 and 1 are set to −1.0 to 1.0. Conversion is performed, and the converted value is set in the variable a (step S52). Then, as described in FIGS. 8A and 8B, a smoothing process of a = 0.2 × (ab) + b is executed (step S53).
[0125]
On the other hand, if the input type is the cross key in the analog input mode, the input value of −255 to 255 is converted to −1.0 to 1.0, and the converted value is set in the variable a (step S54). Then, a smoothing process of a = 0.5 × (a−b) + b is executed (step S55).
[0126]
When the input type is an analog input mode stick (FIGS. 4B and 5B), the input value of −128 to 127 is converted to −1.0 to 1.0, The converted value is set to conversion a (step S56). Then, a smoothing process of a = 0.7 × (a−b) + b is executed (step S57).
[0127]
Next, b = a is set (step S58). Then, the value of the variable a is passed to the game processing unit (step S59).
[0128]
In steps S53, S55, and S57, the smoothing process in step S53 changes the input value most smoothly. However, the coefficients (0.2, 0.5, 0.7) of the smoothing process in steps S53, S55, and S57 are examples, and can take arbitrary values. Further, for example, the smoothing process may be performed in step S53 while the smoothing process may not be performed in steps S55 and S57.
[0129]
FIG. 18A is a flowchart of the input type (input mode) read (reproduction) process in step S11 of FIG. 14B.
[0130]
First, the encoded difference value of the current (current) input type is read from the replay data storage unit and decoded (step S61). Next, the previous (one time before) difference value after decoding is added to the current (current) difference value after decoding to obtain the current input type (step S62).
[0131]
FIG. 18A is a flowchart of the input value read (reproduction) process in step S12 of FIG.
[0132]
First, the difference value of the encoded current (current) input value is read from the replay data storage unit and decoded (step S71). Next, the previous (one time before) difference value after decoding is added to the current (current) difference value after decoding to obtain the current input value (step S72).
[0133]
FIG. 19 is a flowchart for explaining details of the compression method of the present embodiment.
[0134]
First, the previous (one time before) input value IL is subtracted from the current (current) input value IP to obtain the current difference value DP = IP-IL (step S81). Then, as described in FIG. 11B, the reference difference value width DR is compared with the absolute value of the difference value DP (step S82). That is, it is determined whether or not | DP | <DR.
[0135]
If | DP | <DR, it is determined whether or not the current difference value DP and the previous difference value DL are equal (step S83). If DP = DL, the number of continuations is incremented to N = N + 1 (step S84).
[0136]
On the other hand, if it is determined in step S82 that | DP | ≧ DR, or if it is determined in step S83 that DP and DL are not equal, the process proceeds to encoding processing (step S85). Then, when the encoding process at the current sampling (frame) is completed, the continuous number is set (reset) to N = 1 (step S86).
[0137]
Thus, in the compression method of the present embodiment, the absolute value of the difference value DP at the current sampling (frame) is smaller than the reference difference value width DR, and the difference value DP at the current sampling (frame) and the previous value If the difference value DL in sampling (frame) is equal, the number of consecutive difference values is incremented without performing the encoding process (steps S82, S83, S84). On the other hand, if the absolute value of the difference value DP at the current sampling (frame) is larger than the reference difference value width DR (when DP is greater than or equal to DR), or the difference value DP at the current sampling (frame) and the previous value When the difference value DL in sampling (frame) is not equal, the encoding process is performed (steps S82, S83, and S85).
[0138]
FIG. 20 is a flowchart of the encoding process in step S85 of FIG.
[0139]
First, it is determined whether or not the continuous number N = 0 (step S91). If N = 0, the encoding process is terminated. On the other hand, if N is not 0, it is determined whether or not the continuous number N> the predetermined number K (step S92). If N> K, a Huffman code (see FIG. 12) having a difference value of DP and a continuous number of K is obtained and output (step S93). Then, N = N−K is set (decremented) (step S94), and the process returns to step S91.
[0140]
On the other hand, if it is determined in step S92 that N ≦ K, a Huffman code having a difference value of DP and a continuous number of N is obtained and output (step S95), and the process returns to step S91.
[0141]
By performing the processing as shown in FIG. 20, it is possible to realize the encoding processing that is performed by being divided in units of a predetermined number K as described with reference to FIGS.
[0142]
4). Hardware configuration
Next, an example of a hardware configuration capable of realizing the present embodiment will be described with reference to FIG.
[0143]
The main processor 900 operates based on a program stored in the CD 982 (information storage medium), a program transferred via the communication interface 990, or a program stored in the ROM 950 (one of information storage media). Various processes such as processing, image processing, and sound processing are executed.
[0144]
The coprocessor 902 assists the processing of the main processor 900, has a product-sum calculator and a divider capable of high-speed parallel calculation, and executes matrix calculation (vector calculation) at high speed. For example, if a physical simulation for moving or moving an object requires processing such as matrix operation, a program operating on the main processor 900 instructs (requests) the processing to the coprocessor 902. )
[0145]
The geometry processor 904 performs geometry processing such as coordinate transformation, perspective transformation, light source calculation, and curved surface generation, has a product-sum calculator and a divider capable of high-speed parallel computation, and performs matrix computation (vector computation). Run fast. For example, when processing such as coordinate transformation, perspective transformation, and light source calculation is performed, a program operating on the main processor 900 instructs the geometry processor 904 to perform the processing.
[0146]
The data decompression processor 906 performs a decoding process for decompressing the compressed image data and sound data, and a process for accelerating the decoding process of the main processor 900. As a result, a moving image compressed by the MPEG method or the like can be displayed on the opening screen, the intermission screen, the ending screen, or the game screen. Note that the image data and sound data to be decoded are stored in the ROM 950 and the CD 982 or transferred from the outside via the communication interface 990.
[0147]
The drawing processor 910 performs drawing (rendering) processing of an object composed of primitives (primitive surfaces) such as polygons and curved surfaces at high speed. When drawing an object, the main processor 900 uses the function of the DMA controller 970 to pass the object data to the drawing processor 910 and transfer the texture to the texture storage unit 924 if necessary. Then, the drawing processor 910 draws an object in the frame buffer 922 at high speed while performing hidden surface removal using a Z buffer or the like based on the object data and texture. The drawing processor 910 can also perform α blending (translucent processing), depth cueing, mip mapping, fog processing, bilinear filtering, trilinear filtering, anti-aliasing, shading processing, and the like. When an image for one frame is written in the frame buffer 922, the image is displayed on the display 912.
[0148]
The sound processor 930 includes a multi-channel ADPCM sound source and the like, and generates high-quality game sounds such as BGM, sound effects, and sounds. The generated game sound is output from the speaker 932.
[0149]
Operation data from the game controller 942 (lever, button, chassis, pad type controller, gun type controller, etc.), save data from the memory card 944, and personal data are transferred via the serial interface 940.
[0150]
The ROM 950 stores system programs and the like. In the case of an arcade game system, the ROM 950 functions as an information storage medium, and various programs are stored in the ROM 950. A hard disk may be used instead of the ROM 950.
[0151]
The RAM 960 is used as a work area for various processors.
[0152]
The DMA controller 970 controls DMA transfer between the processor and memory (RAM, VRAM, ROM, etc.).
[0153]
The CD drive 980 drives a CD 982 (information storage medium) in which programs, image data, sound data, and the like are stored, and enables access to these programs and data.
[0154]
The communication interface 990 is an interface for transferring data to and from the outside via a network. In this case, as a network connected to the communication interface 990, a communication line (analog telephone line, ISDN), a high-speed serial bus, or the like can be considered. By using a communication line, data transfer via the Internet becomes possible. Further, by using the high-speed serial bus, data transfer with other image generation systems becomes possible.
[0155]
Note that all the units (units) of the present embodiment may be realized only by hardware, or only by a program stored in an information storage medium or a program distributed via a communication interface. May be. Alternatively, it may be realized by both hardware and a program.
[0156]
And when each part of this embodiment is implement | achieved by both hardware and a program, the program for functioning hardware (computer) as each part of this embodiment is stored in an information storage medium. Become. More specifically, the program instructs each processor 902, 904, 906, 910, 930, etc., which is hardware, and passes data if necessary. Each of the processors 902, 904, 906, 910, 930 and the like implements each unit of the present invention based on the instruction and the passed data.
[0157]
FIG. 22A shows an example in which the present embodiment is applied to an arcade game system (image generation system). The player enjoys the game by operating the operation unit 1102 (lever, button) while watching the game image displayed on the display 1100. Various processors and various memories are mounted on the built-in system board (circuit board) 1106. A program (data) for realizing each unit of the present embodiment is stored in a memory 1108 that is an information storage medium on the system board 1106. Hereinafter, this program is referred to as a storage program (storage information).
[0158]
FIG. 22B shows an example in which the present embodiment is applied to a home game system (image generation system). The player enjoys the game by operating the controllers 1202 and 1204 while viewing the game image displayed on the display 1200. In this case, the stored program (stored information) is stored in a CD 1206, which is an information storage medium that can be attached to and detached from the main system, or memory cards 1208 and 1209.
[0159]
22C shows a host apparatus 1300 and terminals 1304-1 to 1304-n connected to the host apparatus 1300 via a network 1302 (a small-scale network such as a LAN or a wide area network such as the Internet). An example in which the present embodiment is applied to a system including (game machine, mobile phone) is shown. In this case, the storage program (storage information) is stored in an information storage medium 1306 such as a magnetic disk device, a magnetic tape device, or a memory that can be controlled by the host device 1300, for example. When the terminals 1304-1 to 1304-n can generate game images and game sounds stand-alone, the host device 1300 receives a game program and the like for generating game images and game sounds from the terminal 1304-. 1 to 1304-n. On the other hand, if it cannot be generated stand-alone, the host device 1300 generates game images and game sounds, which are transmitted to the terminals 1304-1 to 1304-n and output at the terminals.
[0160]
In the case of the configuration of FIG. 22C, each unit of the present embodiment may be realized by being distributed between a host device (server) and a terminal. Further, the storage program (storage information) for realizing each unit of the present embodiment may be distributed and stored in the information storage medium of the host device (server) and the information storage medium of the terminal.
[0161]
The terminal connected to the network may be a home game system or an arcade game system.
[0162]
The present invention is not limited to that described in the above embodiment, and various modifications can be made.
[0163]
For example, in terms of the description or drawings, a broad term (first input mode in which the bit length of input value data is short, second input mode in which the bit length of input value data is long, sampling, conversion processing, input device, etc. ) (Digital input mode, analog input mode, frame, smoothing, cross key stick button lever etc.) shall be replaced with broad terms in the specification or other description in the drawings. Can do.
[0164]
Further, the compression method (encoding process) and the expansion method (decoding process) of the present invention are not limited to those described in the present embodiment, and various methods can be adopted. For example, methods other than Huffman encoding and run-length encoding may be employed.
[0165]
Further, the method for obtaining the input type is not limited to the method described in the present embodiment. Moreover, what is stored as replay data is not limited to input value data or input type data.
[0166]
The present invention can also be applied to an image generation system and program that perform only decompression processing of replay data (input value data, input seed data) after compression without performing compression processing.
[0167]
In the invention according to the dependent claims of the present invention, a part of the constituent features of the dependent claims can be omitted. Moreover, the principal part of the invention according to one independent claim of the present invention can be made dependent on another independent claim.
[0168]
Further, the present invention can be applied to various games (such as fighting games, competitive games, shooting games, robot battle games, sports games, role playing games, etc.).
[0169]
In addition, the present invention is applied to various image generation systems (game systems) such as a business game system, a home game system, a large attraction system in which a large number of players participate, a simulator, a multimedia terminal, and a system board for generating game images. Applicable.
[Brief description of the drawings]
FIG. 1 is a functional block diagram of an image generation system according to an embodiment.
FIGS. 2A to 2C are explanatory diagrams of various game controllers.
FIGS. 3A and 3B are also explanatory diagrams of various game controllers.
4A to 4D are explanatory diagrams of input types. FIG.
FIGS. 5A to 5D are explanatory diagrams of the method of the present embodiment.
FIGS. 6A and 6B are explanatory diagrams of a method for determining an input type.
FIG. 7 is an explanatory diagram of a method for determining an input type.
8A and 8B are explanatory diagrams of conversion processing according to input types.
FIGS. 9A and 9B are explanatory diagrams of a compression / decompression method.
FIGS. 10A and 10B are explanatory diagrams of the nature of input values of the game controller.
FIGS. 11A, 11B, and 11C are explanatory diagrams of a compression method according to the present embodiment.
FIG. 12 is an explanatory diagram of static Huffman encoding.
FIGS. 13A and 13B are explanatory diagrams of an encoding process performed by dividing a predetermined number of units.
FIGS. 14A and 14B are flowchart examples of the present embodiment.
FIG. 15 is a flowchart example of the present embodiment.
FIGS. 16A and 16B are flowchart examples of the present embodiment.
FIG. 17 is a flowchart example of the present embodiment.
FIGS. 18A and 18B are flowchart examples of the present embodiment.
FIG. 19 is a flowchart example of the present embodiment.
FIG. 20 is an example flowchart of the present embodiment.
FIG. 21 is a hardware configuration example.
FIGS. 22A to 22C show examples of various forms of systems.
[Explanation of symbols]
100 processing unit, 110 game processing unit, 112 replay data writing unit,
114 replay processing unit, 120 image generation unit, 130 sound generation unit
160 operation unit, 170 storage unit, 172 main storage unit, 174 drawing buffer
176 Replay data storage unit, 180 information storage medium, 190 display unit
192 sound output unit, 194 portable information storage device, 196 communication unit

Claims (17)

画像生成を行う画像生成システムであって、
リプレイデータを記憶するリプレイデータ記憶部と、
ゲームコントローラにより入力された入力値データを圧縮し、圧縮後の入力値データをリプレイデータとして前記リプレイデータ記憶部に書き込むリプレイデータ書き込み部とを含み、
前記リプレイデータ書き込み部が、
今回にサンプリングされた入力値データと前回にサンプリングされた入力値データの差分値を演算し、その絶対値が基準差分値幅よりも小さい差分値については、差分値とその連続数をペアにした符号化処理を行い、その絶対値が基準差分値幅よりも大きい差分値については、連続数をペアにすることなく差分値の符号化処理を行うことを特徴とする画像生成システム。
An image generation system for generating an image,
A replay data storage unit for storing replay data;
A replay data writing unit that compresses the input value data input by the game controller and writes the compressed input value data to the replay data storage unit as replay data;
The replay data writing unit
The difference value between the input value data sampled this time and the input value data sampled last time is calculated, and for the difference value whose absolute value is smaller than the reference difference value width, the difference value and its consecutive number are paired. An image generation system characterized in that encoding processing is performed on a difference value whose absolute value is larger than a reference difference value width without pairing consecutive numbers.
請求項1において、
前記リプレイデータ書き込み部が、
今回のサンプリングでの差分値の絶対値が基準差分値幅よりも小さく、且つ、今回のサンプリングでの差分値と前回のサンプリングでの差分値とが等しい場合には、符号化処理を行うことなく差分値の連続数をインクリメントし、
今回のサンプリングでの差分値の絶対値が基準差分値幅よりも大きい場合、又は、今回のサンプリングでの差分値と前回のサンプリングでの差分値とが等しくない場合に、符号化処理を行うことを特徴とする画像生成システム。
In claim 1,
The replay data writing unit
If the absolute value of the difference value at the current sampling is smaller than the reference difference value width and the difference value at the current sampling is equal to the difference value at the previous sampling, the difference is not performed. Increment the number of consecutive values,
When the absolute value of the difference value at the current sampling is larger than the reference difference value width, or when the difference value at the current sampling is not equal to the difference value at the previous sampling, the encoding process is performed. A featured image generation system.
請求項1又は2において、
前記リプレイデータ書き込み部が、
差分値の連続数Nが所定数Kよりも大きい場合には、その差分値と所定数Kをペアにした符号化処理を行い、その差分値についての連続数をN−Kに設定することを特徴とする画像生成システム。
In claim 1 or 2,
The replay data writing unit
When the difference number N is greater than the predetermined number K, an encoding process is performed in which the difference value and the predetermined number K are paired, and the continuous number for the difference value is set to NK. A featured image generation system.
請求項1乃至3のいずれかにおいて、
リプレイデータ記憶部から読み出したリプレイデータに基づいて、リプレイ画像生成のためのリプレイ処理を行うリプレイ処理部を含み、
前記リプレイデータ書き込み部が、
ゲームコントローラにより入力された入力値データと、その入力値データの入力デバイス及び入力モードの少なくとも一方を特定するための入力種データとを圧縮して、リプレイデータとしてリプレイデータ記憶部に書き込み、
前記リプレイ処理部が、
リプレイデータ記憶部から、リプレイデータである入力値データと入力種データを読み出し、読み出した入力値データと入力種データを伸長し、伸長後の入力値データと入力種データに基づいて、リプレイ処理を行うことを特徴とする画像生成システム。
In any one of Claims 1 thru | or 3,
Based on the replay data read from the replay data storage unit, including a replay processing unit that performs a replay process for generating a replay image,
The replay data writing unit
The input value data input by the game controller and the input type data for specifying at least one of the input device and the input mode of the input value data are compressed and written to the replay data storage unit as replay data,
The replay processing unit
The input value data and input type data, which are replay data, are read from the replay data storage unit, the read input value data and input type data are expanded, and replay processing is performed based on the expanded input value data and input type data. An image generation system characterized by performing.
請求項4において、
前記リプレイデータ書き込み部が、
入力種データを、入力値データの圧縮方式と同一の圧縮方式で圧縮することを特徴とする画像生成システム。
In claim 4,
The replay data writing unit
An image generation system, wherein input type data is compressed by the same compression method as that of input value data.
請求項4又は5において、
前記リプレイデータ書き込み部が、
ゲームコントローラの種類、及びゲームコントローラのキー・コンフィギュレーション設定の少なくとも一方に基づいて、入力種データを求めることを特徴とする画像生成システム。
In claim 4 or 5,
The replay data writing unit
An image generation system characterized in that input type data is obtained based on at least one of a game controller type and a key configuration setting of the game controller.
請求項4乃至6のいずれかにおいて、
ゲームコントローラにより入力された入力値データに基づいてゲーム画像生成のためのゲーム処理を行うゲーム処理部を含み、
前記ゲーム処理部が、
ゲームコントローラにより入力された入力値データの入力種が第1の入力種である場合には、入力値データに対して第1の変換処理を行って、ゲーム処理を行い、
ゲームコントローラにより入力された入力値データの入力種が第2の入力種である場合には、入力値データに対して変換処理を行わずに或いは第2の変換処理を行って、ゲーム処理を行い、
前記リプレイ処理部が、
リプレイデータの入力種データが第1の入力種のデータである場合には、入力値データに対して前記第1の変換処理を行って、リプレイ処理を行い、
リプレイデータの入力種データが第2の入力種のデータである場合には、入力値データに対して変換処理を行わずに或いは前記第2の変換処理を行って、リプレイ処理を行うことを特徴とする画像生成システム。
In any one of Claims 4 thru | or 6.
Including a game processing unit for performing a game process for generating a game image based on input value data input by the game controller;
The game processing unit
When the input type of the input value data input by the game controller is the first input type, the first conversion process is performed on the input value data, the game process is performed,
When the input type of the input value data input by the game controller is the second input type, the game process is performed without performing the conversion process on the input value data or by performing the second conversion process. ,
The replay processing unit
When the input type data of the replay data is data of the first input type, the first conversion process is performed on the input value data, the replay process is performed,
When the input type data of the replay data is the data of the second input type, the replay process is performed without performing the conversion process on the input value data or performing the second conversion process. An image generation system.
請求項7において、
第1の入力種により特定される入力モードが、入力値データのビット長が短い第1の入力モードであり、
第2の入力種により特定される入力モードが、入力値データのビット長が長い第2の入力モードであり、
前記第1、第2の変換処理が、入力値データの平滑化処理であることを特徴とする画像生成システム。
In claim 7,
The input mode specified by the first input type is the first input mode in which the bit length of the input value data is short,
The input mode specified by the second input type is the second input mode in which the bit length of the input value data is long,
The image generation system, wherein the first and second conversion processes are smoothing processes of input value data.
画像を生成するためのプログラムであって、
リプレイデータを記憶するリプレイデータ記憶部と、
ゲームコントローラにより入力された入力値データを圧縮し、圧縮後の入力値データをリプレイデータとして前記リプレイデータ記憶部に書き込むリプレイデータ書き込み部としてコンピュータを機能させ、
前記リプレイデータ書き込み部が、
今回にサンプリングされた入力値データと前回にサンプリングされた入力値データの差分値を演算し、その絶対値が基準差分値幅よりも小さい差分値については、差分値とその連続数をペアにした符号化処理を行い、その絶対値が基準差分値幅よりも大きい差分値については、連続数をペアにすることなく差分値の符号化処理を行うことを特徴とするプログラム。
A program for generating an image,
A replay data storage unit for storing replay data;
Compress the input value data input by the game controller, function the computer as a replay data writing unit that writes the compressed input value data to the replay data storage unit as replay data,
The replay data writing unit
The difference value between the input value data sampled this time and the input value data sampled last time is calculated, and for the difference value whose absolute value is smaller than the reference difference value width, the difference value and its consecutive number are paired. A program characterized in that, for a difference value whose absolute value is larger than a reference difference value width, the difference value is encoded without pairing the consecutive numbers.
請求項9において、
前記リプレイデータ書き込み部が、
今回のサンプリングでの差分値の絶対値が基準差分値幅よりも小さく、且つ、今回のサンプリングでの差分値と前回のサンプリングでの差分値とが等しい場合には、符号化処理を行うことなく差分値の連続数をインクリメントし、
今回のサンプリングでの差分値の絶対値が基準差分値幅よりも大きい場合、又は、今回のサンプリングでの差分値と前回のサンプリングでの差分値とが等しくない場合に、符号化処理を行うことを特徴とするプログラム。
In claim 9,
The replay data writing unit
If the absolute value of the difference value at the current sampling is smaller than the reference difference value width and the difference value at the current sampling is equal to the difference value at the previous sampling, the difference is not performed. Increment the number of consecutive values,
When the absolute value of the difference value at the current sampling is larger than the reference difference value width, or when the difference value at the current sampling is not equal to the difference value at the previous sampling, the encoding process is performed. A featured program.
請求項9又は10において、
前記リプレイデータ書き込み部が、
差分値の連続数Nが所定数Kよりも大きい場合には、その差分値と所定数Kをペアにした符号化処理を行い、その差分値についての連続数をN−Kに設定することを特徴とするプログラム。
In claim 9 or 10,
The replay data writing unit
When the difference number N is greater than the predetermined number K, an encoding process is performed in which the difference value and the predetermined number K are paired, and the continuous number for the difference value is set to NK. A featured program.
請求項9乃至11のいずれかにおいて、
リプレイデータ記憶部から読み出したリプレイデータに基づいて、リプレイ画像生成のためのリプレイ処理を行うリプレイ処理部としてコンピュータを機能させ、
前記リプレイデータ書き込み部が、
ゲームコントローラにより入力された入力値データと、その入力値データの入力デバイス及び入力モードの少なくとも一方を特定するための入力種データとを圧縮して、リプレイデータとしてリプレイデータ記憶部に書き込み、
前記リプレイ処理部が、
リプレイデータ記憶部から、リプレイデータである入力値データと入力種データを読み出し、読み出した入力値データと入力種データを伸長し、伸長後の入力値データと入力種データに基づいて、リプレイ処理を行うことを特徴とするプログラム。
In any of claims 9 to 11,
Based on the replay data read from the replay data storage unit, the computer functions as a replay processing unit that performs a replay process for generating a replay image,
The replay data writing unit
The input value data input by the game controller and the input type data for specifying at least one of the input device and the input mode of the input value data are compressed and written to the replay data storage unit as replay data,
The replay processing unit
The input value data and input type data, which are replay data, are read from the replay data storage unit, the read input value data and input type data are expanded, and the replay processing is performed based on the expanded input value data and input type data. A program characterized by being performed.
請求項12において、
前記リプレイデータ書き込み部が、
入力種データを、入力値データの圧縮方式と同一の圧縮方式で圧縮することを特徴とするプログラム。
In claim 12,
The replay data writing unit
A program characterized by compressing input type data by the same compression method as the compression method of input value data.
請求項12又は13において、
前記リプレイデータ書き込み部が、
ゲームコントローラの種類、及びゲームコントローラのキー・コンフィギュレーション設定の少なくとも一方に基づいて、入力種データを求めることを特徴とするプログラム。
In claim 12 or 13,
The replay data writing unit
A program for obtaining input type data based on at least one of a game controller type and a key configuration setting of the game controller.
請求項12乃至14のいずれかにおいて、
ゲームコントローラにより入力された入力値データに基づいてゲーム画像生成のためのゲーム処理を行うゲーム処理部としてコンピュータを機能させ、
前記ゲーム処理部が、
ゲームコントローラにより入力された入力値データの入力種が第1の入力種である場合には、入力値データに対して第1の変換処理を行って、ゲーム処理を行い、
ゲームコントローラにより入力された入力値データの入力種が第2の入力種である場合には、入力値データに対して変換処理を行わずに或いは第2の変換処理を行って、ゲーム処理を行い、
前記リプレイ処理部が、
リプレイデータの入力種データが第1の入力種のデータである場合には、入力値データに対して前記第1の変換処理を行って、リプレイ処理を行い、
リプレイデータの入力種データが第2の入力種のデータである場合には、入力値データに対して変換処理を行わずに或いは前記第2の変換処理を行って、リプレイ処理を行うことを特徴とするプログラム。
In any of claims 12 to 14,
Causing the computer to function as a game processing unit that performs game processing for generating a game image based on input value data input by the game controller;
The game processing unit
When the input type of the input value data input by the game controller is the first input type, the first conversion process is performed on the input value data, the game process is performed,
When the input type of the input value data input by the game controller is the second input type, the game process is performed without performing the conversion process on the input value data or by performing the second conversion process. ,
The replay processing unit
When the input type data of the replay data is data of the first input type, the first conversion process is performed on the input value data, the replay process is performed,
When the input type data of the replay data is the data of the second input type, the replay process is performed without performing the conversion process on the input value data or performing the second conversion process. Program.
請求項15において、
第1の入力種により特定される入力モードが、入力値データのビット長が短い第1の入力モードであり、
第2の入力種により特定される入力モードが、入力値データのビット長が長い第2の入力モードであり、
前記第1、第2の変換処理が、入力値データの平滑化処理であることを特徴とするプログラム。
In claim 15,
The input mode specified by the first input type is the first input mode in which the bit length of the input value data is short,
The input mode specified by the second input type is the second input mode in which the bit length of the input value data is long,
The program characterized in that the first and second conversion processes are smoothing processes of input value data.
コンピュータ読み取り可能な情報記憶媒体であって、請求項9乃至16のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。A computer-readable information storage medium, wherein the program according to any one of claims 9 to 16 is stored.
JP2002308891A 2002-10-23 2002-10-23 Image generation system, program, and information storage medium Pending JP2004141352A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002308891A JP2004141352A (en) 2002-10-23 2002-10-23 Image generation system, program, and information storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002308891A JP2004141352A (en) 2002-10-23 2002-10-23 Image generation system, program, and information storage medium

Publications (1)

Publication Number Publication Date
JP2004141352A true JP2004141352A (en) 2004-05-20

Family

ID=32454912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002308891A Pending JP2004141352A (en) 2002-10-23 2002-10-23 Image generation system, program, and information storage medium

Country Status (1)

Country Link
JP (1) JP2004141352A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008088005A1 (en) * 2007-01-19 2008-07-24 Konami Digital Entertainment Co., Ltd. Game terminal, game system, program, and computer-readable recording medium
JP2008310630A (en) * 2007-06-15 2008-12-25 Hitachi Ltd Sensor node and sensor network system
JP2009141457A (en) * 2007-12-04 2009-06-25 Shimane Univ Encoding system for reversible compression and information medium
JP2017056188A (en) * 2016-06-13 2017-03-23 株式会社 ディー・エヌ・エー Information processing system and information processing program
JP6154527B1 (en) * 2016-08-08 2017-06-28 株式会社ドワンゴ GAME SERVER, GAME SYSTEM CONTROL METHOD, AND GAME SYSTEM CONTROL PROGRAM

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008088005A1 (en) * 2007-01-19 2008-07-24 Konami Digital Entertainment Co., Ltd. Game terminal, game system, program, and computer-readable recording medium
JP2008310630A (en) * 2007-06-15 2008-12-25 Hitachi Ltd Sensor node and sensor network system
US8330596B2 (en) 2007-06-15 2012-12-11 Hitachi, Ltd. Sensor node and sensor network system
JP2009141457A (en) * 2007-12-04 2009-06-25 Shimane Univ Encoding system for reversible compression and information medium
JP2017056188A (en) * 2016-06-13 2017-03-23 株式会社 ディー・エヌ・エー Information processing system and information processing program
JP6154527B1 (en) * 2016-08-08 2017-06-28 株式会社ドワンゴ GAME SERVER, GAME SYSTEM CONTROL METHOD, AND GAME SYSTEM CONTROL PROGRAM
JP2018023409A (en) * 2016-08-08 2018-02-15 株式会社ドワンゴ Game server, game system control method, and game system control program

Similar Documents

Publication Publication Date Title
JP4610747B2 (en) Image generation system, program, and information storage medium
JP2000132706A (en) Recording medium, image processor and image processing method
JP2010022646A (en) Program, information storage medium, and image generation system
JP3597803B2 (en) Volume control program, volume control method, and video game apparatus
JP3686920B2 (en) 3D image processing program, 3D image processing method, and video game apparatus
JP4056021B2 (en) Image generating apparatus and information storage medium
JP3449993B2 (en) Image generation system, program, and information storage medium
JP3990258B2 (en) Image generation system, program, and information storage medium
JP2004141352A (en) Image generation system, program, and information storage medium
JP4167358B2 (en) Image generation system and information storage medium
JP3597792B2 (en) 3D image processing method, apparatus, 3D image processing program, and video game apparatus
JP3564440B2 (en) Moving image generation program, moving image generation method and apparatus
JP4447000B2 (en) Image generation system, program, and information storage medium
JP4333889B2 (en) Image generation system and information storage medium
JP3297410B2 (en) Image generation system and information storage medium
JP2001273525A (en) Entertainment device, storage medium, and object display method
JP4656617B2 (en) GAME SYSTEM, PROGRAM, AND INFORMATION STORAGE MEDIUM
JP2004141351A (en) Image generation system, program, and information storage medium
WO2001039129A1 (en) Image processor, image processing method, and storage medium
JP2001096062A (en) Game system
JP4913898B2 (en) GAME SYSTEM, PROGRAM, AND INFORMATION STORAGE MEDIUM
JP2002541600A (en) Apparatus and method for perspective transformation
US6296567B1 (en) Video game machine and computer-readable recording medium containing video game program
JP2000339497A (en) Picture generation device, picture generation method, entertainment system and recording medium
JP4785163B2 (en) Image generation system, program, and information storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060726

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061108

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070307