JP2007087030A - Program, information storage medium, and image generation system - Google Patents

Program, information storage medium, and image generation system Download PDF

Info

Publication number
JP2007087030A
JP2007087030A JP2005274091A JP2005274091A JP2007087030A JP 2007087030 A JP2007087030 A JP 2007087030A JP 2005274091 A JP2005274091 A JP 2005274091A JP 2005274091 A JP2005274091 A JP 2005274091A JP 2007087030 A JP2007087030 A JP 2007087030A
Authority
JP
Japan
Prior art keywords
data
vibration
sound
vertex
vibration data
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.)
Withdrawn
Application number
JP2005274091A
Other languages
Japanese (ja)
Inventor
Masahiro Yoshida
政弘 吉田
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.)
Bandai Namco Entertainment Inc
Original Assignee
Namco Bandai Games Inc
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 Bandai Games Inc filed Critical Namco Bandai Games Inc
Priority to JP2005274091A priority Critical patent/JP2007087030A/en
Publication of JP2007087030A publication Critical patent/JP2007087030A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a program, an information storage medium, and an image generation system for expressing the movement of an object vibrating in response to a sound in reality. <P>SOLUTION: When sound data sampled by a sampling rate which is higher than a frame rate are reproduced and output, an image viewed from a predetermined point of view in an object space is generated by performing vertex shading to move vertexes configuring an object on the basis of data corresponding to the sound data, that is, vibration data sampled by the frame rate. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。   The present invention relates to a program, an information storage medium, and an image generation system.

従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間(仮想的な3次元空間)において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。   Conventionally, an image generation system (game system) that generates an image that can be viewed from a virtual camera (a given viewpoint) in an object space (virtual three-dimensional space) in which an object such as a character is set is known. It is very popular for experiencing so-called virtual reality.

このような画像生成システムでは、プレーヤの仮想現実感を高めるために、例えばスピーカの振動板(コーン)などのように複雑な振動(脈動)を行うオブジェクトの動きについても実際に再生出力される音に対応させてリアルに表現できることが望まれている。
特開2001−269483号公報
In such an image generation system, in order to enhance the player's virtual reality, for example, a sound that is actually reproduced and output also with respect to the movement of an object that performs complex vibration (pulsation) such as a speaker diaphragm (cone). It is desired to be able to express realistically in correspondence with.
JP 2001-269483 A

本発明は、上記事情に鑑みてなされたものであり、音に反応して振動する物体の動きをリアルに表現することができるプログラム、情報記憶媒体及び画像生成システムを提供することにある。   The present invention has been made in view of the above circumstances, and provides a program, an information storage medium, and an image generation system capable of realistically expressing the motion of an object that vibrates in response to sound.

本発明は、オブジェクト空間における所与の視点から見える画像を生成するための画像生成システムであって、フレームレートより高いサンプリングレートでサンプリングされた音データを記憶する音データ記憶部と、前記音データに対応するデータであって、前記フレームレートでサンプリングされた振動データを記憶する振動データ記憶部と、前記音データが再生出力される際に、その再生フレームに対応する前記振動データを取得して、その振動データに基づいて、オブジェクトを構成する頂点を移動させる頂点シェーディングを行う画像生成部と、を含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータにより読取可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。   The present invention is an image generation system for generating an image that can be viewed from a given viewpoint in an object space, the sound data storage unit storing sound data sampled at a sampling rate higher than a frame rate, and the sound data A vibration data storage unit that stores vibration data sampled at the frame rate, and when the sound data is reproduced and output, the vibration data corresponding to the reproduced frame is acquired. , And an image generation unit that performs vertex shading for moving the vertices constituting the object based on the vibration data. 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 an information storage medium that can be read by a computer, and stores (records) a program that causes the computer to function as each of the above-described units.

本発明によれば、音データの再生フレームに対応した振動データを用いてオブジェクトを構成する頂点を移動させることによって、オブジェクトを変形させる。これにより、再生される音の変化に合わせて物体が振動する様子をリアルに表現することができるようになる。   According to the present invention, an object is deformed by moving vertices constituting the object using vibration data corresponding to a reproduction frame of sound data. This makes it possible to realistically represent how the object vibrates in accordance with the change in the reproduced sound.

また本発明の画像生成システムでは、前記音データを取得して、その音データの再生フレームに対応する前記振動データを生成する振動データ生成部を含み、前記振動データ生成部が、第Nの再生フレームにおいて再生出力される前記音データの複数のサンプリングデータのフィルタリング処理を行って、前記第Nの再生フレームに対応する前記振動データを生成するようにしてもよい。また本発明のプログラム及び情報記憶媒体では、上記振動データ生成部としてコンピュータを機能させるようにしてもよい。このようにすれば、同一の再生フレーム内で再生出力される音データに含まれる複数のサンプリングデータから、その再生フレームにおいてオブジェクトを変形させるのに好適な振動データを得ることができる。   The image generation system of the present invention further includes a vibration data generation unit that acquires the sound data and generates the vibration data corresponding to a reproduction frame of the sound data, and the vibration data generation unit includes the Nth reproduction. The vibration data corresponding to the Nth reproduction frame may be generated by filtering a plurality of sampling data of the sound data reproduced and output in the frame. In the program and information storage medium of the present invention, a computer may function as the vibration data generation unit. In this way, vibration data suitable for deforming an object in the reproduction frame can be obtained from a plurality of sampling data included in the sound data reproduced and output in the same reproduction frame.

また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記振動データ生成部が、前記第Nの再生フレームにおいて再生出力される前記音データの複数のサンプリングデータを平均化する処理を前記フィルタリング処理として行うようにしてもよい。このようにすれば、音データの低周波成分を振動データとして抽出することができ、例えば、ウーファーの振動板が振動する様子をリアルに表現することができるようになる。   In the image generation system, the program, and the information storage medium of the present invention, the vibration data generation unit performs processing for averaging a plurality of sampling data of the sound data reproduced and output in the Nth reproduction frame. You may make it carry out as. In this way, the low-frequency component of the sound data can be extracted as vibration data, and for example, it is possible to realistically represent how the woofer diaphragm vibrates.

また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記振動データ生成部が、前記第Nの再生フレームにおいて再生出力される前記音データの複数のサンプリングデータの中から振幅が最大あるいは最小のサンプリングデータを抽出する処理を前記フィルタリング処理として行うようにしてもよい。このようにすれば、簡便な処理で音データから振動データを生成することができる。例えば、振幅が最大となるサンプリングデータと振幅が最小になるサンプリングデータを複数の再生フレームにおいて交互に抽出するようにすれば、振動データを得ることができる。   In the image generation system, program, and information storage medium of the present invention, the vibration data generation unit has a maximum or minimum amplitude among a plurality of sampling data of the sound data reproduced and output in the Nth reproduction frame. You may make it perform the process which extracts sampling data as said filtering process. If it does in this way, vibration data can be generated from sound data by simple processing. For example, if sampling data with the maximum amplitude and sampling data with the minimum amplitude are extracted alternately in a plurality of reproduction frames, vibration data can be obtained.

また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記振動データ生成部が、音検出部の検出音を前記フレームレートより高いサンプリングレートでサンプリングした音データを取得し、取得した前記検出音に対応する音データに基づいて前記振動データを生成するようにしてもよい。このようにすれば、マイクなどに自由に入力された音に応じてオブジェクトを変形させて、物体が振動する様子をリアルに表現することができる。   In the image generation system, the program, and the information storage medium of the present invention, the vibration data generation unit acquires sound data obtained by sampling the detection sound of the sound detection unit at a sampling rate higher than the frame rate, and the acquired detection sound The vibration data may be generated based on sound data corresponding to. In this way, it is possible to realistically represent how the object vibrates by deforming the object according to the sound freely input to the microphone or the like.

また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記振動データ生成部が、第Nの再生フレーム用の前記音データに対応する前記振動データを、少なくとも第N−1の再生フレームが終了するまでに生成するようにしてもよい。このようにすれば、音データの再生のタイミングとオブジェクトの振動の様子とのズレを軽減することができ、リアルタイムに近い状態で音に反応した物体の振動の様子を表現することができるようになる。   In the image generation system, the program, and the information storage medium of the present invention, the vibration data generation unit ends the vibration data corresponding to the sound data for the Nth reproduction frame, and at least the N-1th reproduction frame ends. You may make it produce | generate before. In this way, it is possible to reduce the difference between the timing of reproducing sound data and the state of vibration of the object, and to express the state of vibration of the object that has reacted to the sound in a state close to real time. Become.

また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記画像生成部が、前記振動データと前記オブジェクトに対応して設定された属性データとに基づいて、該オブジェクトの頂点を移動させる頂点シェーディングを行うようにしてもよい。このようにすれば、物体の硬さや振動特性などの違いに応じてその振動の様子が異なるように表現することができる。   In the image generation system, the program, and the information storage medium of the present invention, the image generation unit moves the vertex of the object based on the vibration data and attribute data set corresponding to the object. May be performed. In this way, it is possible to express that the state of vibration differs according to the difference in hardness and vibration characteristics of the object.

また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記画像生成部が、前記振動データの補間処理によって前記オブジェクトを構成する複数の頂点の移動情報を求め、該移動情報に基づいて各頂点を移動させる頂点シェーディングを行うようにしてもよい。このようにすれば、複数の頂点について1つの振動データから異なる移動情報を求めることができ、物体の振動の様子を多様に表現することができるようになる。   In the image generation system, the program, and the information storage medium of the present invention, the image generation unit obtains movement information of a plurality of vertices constituting the object by interpolation processing of the vibration data, and each vertex is determined based on the movement information. You may make it perform the vertex shading which moves. In this way, different movement information can be obtained from a single piece of vibration data for a plurality of vertices, and various vibration states of the object can be expressed.

また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記画像生成部が、前記振動データと前記オブジェクトを構成する各頂点に対して予め設定された移動ベクトルとに基づいて該各頂点の移動情報を求め、該移動情報に基づいて各頂点を移動させる頂点シェーディングを行うようにしてもよい。このようにすれば、複数の頂点について1つの振動データから異なる移動情報を求めることができ、物体の振動の様子を多様に表現することができるようになる。   In the image generation system, the program, and the information storage medium of the present invention, the image generation unit moves the vertices based on the vibration data and a movement vector set in advance for each vertex constituting the object. Information may be obtained, and vertex shading for moving each vertex based on the movement information may be performed. In this way, different movement information can be obtained from a single piece of vibration data for a plurality of vertices, and various vibration states of the object can be expressed.

以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。   Hereinafter, this embodiment will be described. 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.

1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
1. Configuration FIG. 1 shows an example of a functional block diagram of an image generation system (game system) of the present embodiment. Note that the image generation system of the present embodiment may have a configuration in which some of the components (each unit) in FIG. 1 are omitted.

入力部160は、プレーヤがオブジェクト(例えば、プレーヤキャラクタ)の操作データを入力するためのものである。入力部160は、操作部162と音検出部164とを含み、操作部162は、例えば、レバー、ボタン、ステアリング、タッチパネル型ディスプレイなどにより実現できる。音検出部164は、例えば、マイク(マイクロフォン)により実現できる。記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。   The input unit 160 is for a player to input operation data of an object (for example, a player character). The input unit 160 includes an operation unit 162 and a sound detection unit 164. The operation unit 162 can be realized by, for example, a lever, a button, a steering, a touch panel display, or the like. The sound detection unit 164 can be realized by a microphone (microphone), for example. The storage unit 170 serves as a work area for the processing unit 100, the communication unit 196, and the like, and its function can be realized by a RAM (VRAM) or the like.

情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。   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 a memory (ROM). The processing unit 100 performs various processes of the present embodiment based on a program (data) stored in the information storage medium 180. That is, the information storage medium 180 stores a program for causing a computer to function as each unit of the present embodiment (a program for causing a computer to execute processing of each unit).

表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。   The display unit 190 outputs an image generated according to the present embodiment, and its function can be realized by a CRT, LCD, touch panel display, HMD (head mounted display), or the like. The sound output unit 192 outputs the sound generated by the present embodiment, and its function can be realized by a speaker, headphones, or the like.

携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。通信部196は外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。   The portable information storage device 194 stores player personal data, game save data, and the like. Examples of the portable information storage device 194 include a memory card and a portable game device. 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 communication ASICs, programs, and the like. It can be realized by.

なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170)に配信してもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。   A program (data) for causing a computer to function as each unit of the present embodiment is distributed from the information storage medium of the host device (server) to the information storage medium 180 (or storage unit 170) via the network and communication unit 196. May be. Use of the information storage medium of such a host device (server) can also be included in the scope of the present invention.

処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。   The processing unit 100 (processor) performs processing such as game processing, image generation processing, or sound generation processing based on operation data and programs from the operation unit 160. Here, as the game process, a process for starting a game when a game start condition is satisfied, a process for advancing the game, a process for placing an object such as a character or a map, a process for displaying an object, and a game result are calculated. There is a process or a process of ending a game when a game end condition is satisfied. The processing unit 100 performs various processes using the main storage unit 172 in the storage unit 170 as a work area. The functions of the processing unit 100 can be realized by hardware such as various processors (CPU, DSP, etc.), ASIC (gate array, etc.), and programs.

処理部100は、オブジェクト空間設定部110、移動・動作処理部112、仮想カメラ制御部114、振動データ生成部116、画像生成部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。   The processing unit 100 includes an object space setting unit 110, a movement / motion processing unit 112, a virtual camera control unit 114, a vibration data generation unit 116, an image generation unit 120, and a sound generation unit 130. Note that some of these may be omitted.

オブジェクト空間設定部110は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。   The object space setting unit 110 is composed of various objects (polygons, free-form surfaces, subdivision surfaces, etc.) representing display objects such as characters, buildings, stadiums, cars, trees, pillars, walls, and maps (terrain). (Object) is set in the object space. In other words, the position and rotation angle of the object in the world coordinate system (synonymous with direction and direction) are determined, and the rotation angle (rotation angle around the X, Y, and Z axes) is determined at that position (X, Y, Z). Arrange objects.

移動・動作処理部112は、オブジェクト(キャラクタ、車、又は飛行機等)の移動・動作演算(移動・動作シミュレーション)を行う。即ち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、モデルオブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させる処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。   The movement / motion processing unit 112 performs a movement / motion calculation (movement / motion simulation) of an object (such as a character, a car, or an airplane). That is, based on operation data input by the player through the operation unit 160, a program (movement / motion algorithm), various data (motion data), etc., the model object is moved in the object space, or the object is moved (motion, motion, etc.). Animation). Specifically, a simulation process for sequentially obtaining object movement information (position, rotation angle, speed, or acceleration) and motion information (part object position or rotation angle) every frame (1/60 second). Do. A frame is a unit of time for performing object movement / motion processing (simulation processing) and image generation processing.

仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置や視線方向を制御する処理)を行う。   The virtual camera control unit 114 performs a virtual camera (viewpoint) control process for generating an image viewed from a given (arbitrary) viewpoint in the object space. Specifically, a process for controlling the position (X, Y, Z) or the rotation angle (rotation angle about the X, Y, Z axes) of the virtual camera (process for controlling the viewpoint position and the line-of-sight direction) is performed.

例えば仮想カメラによりオブジェクト(例えばキャラクタ、ボール、車)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部112で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。   For example, when an object (eg, character, ball, car) is photographed from behind using a virtual camera, the position or rotation angle of the virtual camera (the direction of the virtual camera is set so that the virtual camera follows changes in the position or rotation of the object. ) To control. In this case, the virtual camera can be controlled based on information such as the position, rotation angle, or speed of the object obtained by the movement / motion processing unit 112. Alternatively, the virtual camera may be controlled to rotate at a predetermined rotation angle or to move along a predetermined movement path. In this case, the virtual camera is controlled based on the virtual camera data for specifying the position (movement path) or rotation angle of the virtual camera. When there are a plurality of virtual cameras (viewpoints), the above control process is performed for each virtual camera.

振動データ生成部116は、音データを取得して、その音データの再生フレームに対応する振動データを生成する処理を行う。生成された振動データは、振動データ記憶部178に記憶される。音データは、音データ記憶部176から取得する。音データ記憶部176には、音検出部164の検出音に対応する音データや情報記憶媒体180から読み出された音データが記憶されている。この音データは、描画処理の単位期間であるフレームレート(例えば、1/60秒)よりも十分に高いサンプリングレートでサンプリングされたデータである。例えば、情報記憶媒体180となりうるCDやDVDのPCMデータを例に取ると、サンプリングレートは、1/44100秒(44.1kHz)である。なお、マイクなどの音検出部164から音を取得する場合には、振動データ生成部116は、音検出部164での検出音に対応する音データから振動データを生成する場合においては、音検出部164の検出音をフレームレートより高いサンプリングレートでサンプリングした音データを音データ記憶部176にバッファリングしておき、その検出音に対応する音データを取得する。このようにすれば、マイクなどに自由に入力された音に応じてオブジェクトを変形させて、物体が振動する様子をリアルに表現することができる。   The vibration data generation unit 116 performs processing for acquiring sound data and generating vibration data corresponding to a reproduction frame of the sound data. The generated vibration data is stored in the vibration data storage unit 178. The sound data is acquired from the sound data storage unit 176. The sound data storage unit 176 stores sound data corresponding to the sound detected by the sound detection unit 164 and sound data read from the information storage medium 180. This sound data is data sampled at a sampling rate sufficiently higher than a frame rate (for example, 1/60 second) which is a unit period of the drawing process. For example, taking CDM or DVD PCM data that can be the information storage medium 180 as an example, the sampling rate is 1/444100 seconds (44.1 kHz). In addition, when acquiring sound from the sound detection unit 164 such as a microphone, the vibration data generation unit 116 detects sound when generating vibration data from sound data corresponding to the sound detected by the sound detection unit 164. Sound data obtained by sampling the detection sound of the unit 164 at a sampling rate higher than the frame rate is buffered in the sound data storage unit 176, and sound data corresponding to the detection sound is acquired. In this way, it is possible to realistically represent how the object vibrates by deforming the object according to the sound freely input to the microphone or the like.

また振動データ生成部116は、取得した音データに含まれる複数のサンプリングデータのフィルタリング処理によって振動データを生成する。フィルタリング処理としては、例えば、1フレーム内で再生される音データのサンプリングデータを平均化する処理や、1フレーム内で再生される音データのサンプリングデータの中から振幅が最大のサンプリングデータと振幅が最小のサンプリングデータとを交互に抽出する処理がある。   The vibration data generation unit 116 generates vibration data by filtering a plurality of sampling data included in the acquired sound data. As the filtering process, for example, the sampling data of the sound data reproduced within one frame, the sampling data with the maximum amplitude among the sampling data of the sound data reproduced within one frame, and the amplitude There is a process of alternately extracting the minimum sampling data.

画像生成部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクトの各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含む頂点リストが入力され、入力された頂点リストに含まれる頂点データに基づいて、頂点シェーディング(広義には、頂点処理)が行われる。なお頂点シェーディングを行う際に、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うこともできる。頂点シェーディングでは、頂点シェーダプログラム(広義には、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点シェーディング後の頂点データに基づいてラスタライズ(走査変換)が行われ、フレーム画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセルシェーディング(広義には、ピクセル処理、フラグメント処理)が行われる。ピクセルシェーディングでは、ピクセルシェーダプログラム(第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、フレーム画像のピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM)に出力(描画)する。すなわち、ピクセルシェーディングでは、フレーム画像の画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像(フレーム画像)が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるようにフレーム画像を生成することができる。   The image generation unit 120 performs drawing processing based on the results of various processes (game processing) performed by the processing unit 100, thereby generating an image and outputting the image to the display unit 190. When generating a so-called three-dimensional game image, first, a vertex list including vertex data (vertex position coordinates, texture coordinates, color data, normal vector, α value, etc.) of each vertex of the object is input and input. Based on the vertex data included in the vertex list, vertex shading (vertex processing in a broad sense) is performed. When performing vertex shading, vertex generation processing (tessellation, curved surface division, polygon division) for subdividing a polygon can be performed as necessary. In vertex shading, according to the vertex shader program (first shader program in a broad sense), vertex movement processing, coordinate transformation (world coordinate transformation, camera coordinate transformation), clipping processing, or geometric processing such as perspective transformation is performed. On the basis of the processing result, the vertex data given to the vertex group constituting the object is changed (updated or adjusted). Then, rasterization (scan conversion) is performed based on the vertex data after vertex shading, and pixel shading (pixel processing and fragment processing in a broad sense) that draws pixels (fragments that configure the display screen) that make up the frame image Is done. In pixel shading, according to the pixel shader program (second shader program), various processes such as texture reading (texture mapping), color data setting / changing, translucent composition, anti-aliasing, etc. A specific drawing color is determined, and the drawing color of the perspective-transformed object is output (drawn) to a drawing buffer 174 (a buffer capable of storing image information in units of pixels; VRAM). That is, in pixel shading, per-pixel processing for setting or changing image information (color, normal, luminance, α value, etc.) of a frame image in units of pixels is performed. As a result, an image (frame image) that can be seen from the virtual camera (given viewpoint) in the object space is generated. In addition, when there are a plurality of virtual cameras (viewpoints), a frame image can be generated so that an image seen from each virtual camera can be displayed on one screen as a divided image.

画像生成部120は、頂点シェーダ部122、ピクセルシェーダ部124を含む。なお、これらの一部を省略する構成としてもよい。   The image generation unit 120 includes a vertex shader unit 122 and a pixel shader unit 124. Note that some of these may be omitted.

頂点シェーダ部122は、頂点単位で行われる処理である頂点シェーディングを実行するプログラマブルシェーダの一種である。特に、頂点シェーダ部122は、音データが音出力部192から再生出力される際に、その再生フレームに対応する振動データを振動データ記憶部178から取得して、取得された振動データに基づいて、オブジェクトを構成する頂点を移動(変位)させる頂点シェーディングを行う。具体的には、振動データ及び必要に応じて頂点毎に設定される他のパラメータを含む各頂点の移動情報に基づいて移動後(変位後)の各頂点の位置座標を求めて、求められた位置座標に各頂点を移動させる処理を行う。   The vertex shader unit 122 is a type of programmable shader that performs vertex shading, which is processing performed in units of vertices. In particular, when the sound data is reproduced and output from the sound output unit 192, the vertex shader unit 122 acquires vibration data corresponding to the reproduction frame from the vibration data storage unit 178, and based on the acquired vibration data. Vertex shading is performed to move (displace) the vertices that make up the object. Specifically, the position coordinates of each vertex after movement (after displacement) are obtained based on the movement information of each vertex including vibration data and other parameters set for each vertex as necessary. A process of moving each vertex to the position coordinate is performed.

移動情報は、頂点の移動後の位置座標を求めるに際して、頂点の移動量(移動距離)および移動方向を与える情報である。この移動情報において、頂点の移動量は、振動データによって与えることができる。このときオブジェクトを構成する1又は複数の頂点を代表頂点(基準頂点)として予め設定しておき、代表頂点およびその周囲の頂点の移動量を振動データの補間処理によって得ることができる。また予め頂点データの中に各頂点の移動量を決定するための係数(移動量係数)を設定しておき、その係数と振動データとの乗算処理によって、各頂点の移動量を得ることができる。また予め頂点データの中に各頂点の移動量及び移動方向を決定するための基準移動ベクトルを設定しておき、そのベクトルデータと振動データとによって、各頂点の移動量及び移動方向を得ることができる。なお基準移動ベクトルは、その大きさが正規化(単位ベクトル化)されているものであってもよい。この場合には、基準移動ベクトルによって頂点の移動方向のみが与えられる。また移動情報に含まれるパラメータとしては、上記の他に属性データが挙げられる。属性データは、物体の固有振動数(共振周波数)、あるいは物体の弾性係数(堅さ、柔らかさ)など物体の振動のしやすさを与えるためのデータである。例えば金属からなる物体は振動しにくく、紙などの物体は振動しやすいなどといったオブジェクトのマテリアルに応じて、その振動の様子を変化させるためのパラメータとして属性データを利用することができる。   The movement information is information that gives the movement amount (movement distance) and movement direction of the vertex when the position coordinates after the movement of the vertex are obtained. In this movement information, the amount of movement of the vertex can be given by vibration data. At this time, one or a plurality of vertices constituting the object can be set in advance as representative vertices (reference vertices), and the movement amounts of the representative vertices and the surrounding vertices can be obtained by interpolation processing of vibration data. A coefficient (movement amount coefficient) for determining the movement amount of each vertex is set in the vertex data in advance, and the movement amount of each vertex can be obtained by multiplying the coefficient and vibration data. . Further, a reference movement vector for determining the movement amount and movement direction of each vertex is set in the vertex data in advance, and the movement amount and movement direction of each vertex can be obtained from the vector data and vibration data. it can. The reference movement vector may be one whose size is normalized (unit vectorization). In this case, only the movement direction of the vertex is given by the reference movement vector. In addition to the above, attribute data is included as a parameter included in the movement information. The attribute data is data for giving the ease of vibration of the object such as the natural frequency (resonance frequency) of the object or the elastic coefficient (stiffness, softness) of the object. For example, attribute data can be used as a parameter for changing the state of vibration according to the material of the object, such as an object made of metal that hardly vibrates and an object such as paper easily vibrates.

ピクセルシェーダ部124では、テクスチャマッピング、隠面消去処理、αブレンディングなどを行うことができる。   The pixel shader unit 124 can perform texture mapping, hidden surface removal processing, α blending, and the like.

テクスチャマッピングは、記憶部170のテクスチャ領域(図示省略)に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ領域からテクスチャ(色、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間(テクセル補間)などを行う。   Texture mapping is a process for mapping a texture (texel value) stored in a texture area (not shown) in the storage unit 170 to an object. Specifically, the texture (surface properties such as color and α value) is read from the texture area of the storage unit 170 using texture coordinates or the like set (given) to the vertex of the object. Then, a texture that is a two-dimensional image is mapped to an object. In this case, processing for associating pixels and texels, bilinear interpolation (texel interpolation), and the like are performed.

隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。   As the hidden surface removal processing, hidden surface removal processing can be performed by a Z buffer method (depth comparison method, Z test) using a Z buffer (depth buffer) in which Z values (depth information) of drawing pixels are stored. . That is, when drawing pixels corresponding to the primitive of the object are drawn, the Z value stored in the Z buffer is referred to. Then, the Z value of the referenced Z buffer is compared with the Z value at the drawing pixel of the primitive, and the Z value at the drawing pixel is a Z value (for example, a small Z value) on the near side when viewed from the virtual camera. In some cases, the drawing process of the drawing pixel is performed and the Z value of the Z buffer is updated to a new Z value.

αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。例えば通常αブレンディングの場合には下式(1)〜(3)の処理が行われる。   α blending (α synthesis) is a translucent synthesis process (usually α blending, addition α blending, subtraction α blending, or the like) based on an α value (A value). For example, in the case of normal α blending, the following formulas (1) to (3) are performed.

=(1−α)×R+α×R (1)
=(1−α)×G+α×G (2)
=(1−α)×B+α×B (3)
また、加算αブレンディングの場合には下式(4)〜(6)の処理が行われる。
R Q = (1−α) × R 1 + α × R 2 (1)
G Q = (1−α) × G 1 + α × G 2 (2)
B Q = (1−α) × B 1 + α × B 2 (3)
In addition, in the case of addition α blending, the following processes (4) to (6) are performed.

=R+α×R (4)
=G+α×G (5)
=B+α×B (6)
また、減算αブレンディングの場合には下式(7)〜(9)の処理が行われる。
R Q = R 1 + α × R 2 (4)
G Q = G 1 + α × G 2 (5)
B Q = B 1 + α × B 2 (6)
Further, in the case of subtraction α blending, the following formulas (7) to (9) are performed.

=R−α×R (7)
=G−α×G (8)
=B−α×B (9)
ここで、R、G、Bは、描画バッファ174に既に描画されている画像(元画像)のRGB成分であり、R、G、Bは、描画バッファ174に描画すべき画像のRGB成分である。また、R、G、Bは、αブレンディングにより得られる画像のRGB成分である。なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
R Q = R 1 −α × R 2 (7)
G Q = G 1 −α × G 2 (8)
B Q = B 1 −α × B 2 (9)
Here, R 1 , G 1 , B 1 are RGB components of an image (original image) already drawn in the drawing buffer 174, and R 2 , G 2 , B 2 should be drawn in the drawing buffer 174. This is the RGB component of the image. R Q , G Q , and B Q are RGB components of an image obtained by α blending. The α value is information that can be stored in association with each pixel (texel, dot), for example, plus alpha information other than color information. The α value can be used as mask information, translucency (equivalent to transparency and opacity), bump information, and the like.

ここで先に述べた頂点シェーダ部122やピクセルシェーダ部124は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダの一種である。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることでポリゴン描画の処理内容の自由度が高く、従来のハードウェアによる固定的な画像生成処理に比べて表現力を大幅に向上させることができる。   Here, the vertex shader unit 122 and the pixel shader unit 124 described above are a kind of so-called programmable shader that can program polygon (primitive) drawing processing by a shader program described in a shading language. Programmable shaders can be programmed with vertex-based processing and pixel-by-pixel processing, so the degree of freedom of polygon rendering processing is high, and the expressive power is greatly improved compared to fixed image generation processing using conventional hardware. Can be improved.

音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。   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.

なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。   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 may be a system having a multiplayer mode in which a plurality of players can play. 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 by distributed processing using a plurality of terminals (game machine, mobile phone).

2.本実施形態の手法
2.1 音データに応じたオブジェクトの変形手法
本実施形態では、音出力部から再生出力される音データに応じてオブジェクトの頂点を移動させて、オブジェクトを変形させることにより、物体が振動する様子を表現する手法を採用する。
2. 2. Method of this embodiment 2.1 Object deformation method according to sound data In this embodiment, by moving the vertex of an object according to the sound data reproduced and output from the sound output unit, the object is deformed, A method is used to express how an object vibrates.

例えば、図2(A)に示すようなスピーカのモデルオブジェクトMOBの場合には、振動板(コーン)のパーツオブジェクトPOBを変形させて、再生出力される音データに同期した振動板の振動の様子を表現することができる。例えば、振動板のパーツオブジェクトPOBを構成する頂点を、音データに対応する振動データに基づいて、図2(B)及び図2(C)に示すように、振動板が縮む方向(+(正)の振動方向)と膨らむ方向(−(負)の振動方向)とに移動させることにより振動板が振動している様子が表現できる。   For example, in the case of a speaker model object MOB as shown in FIG. 2A, the vibration of the diaphragm synchronized with the sound data reproduced and output by deforming the part object POB of the diaphragm (cone). Can be expressed. For example, as shown in FIGS. 2 (B) and 2 (C), the apex constituting the diaphragm part object POB is displayed on the basis of the vibration data corresponding to the sound data. ) Vibration direction) and a bulging direction (-(negative) vibration direction), the state of vibration of the diaphragm can be expressed.

例えば、振動板が縮む方向にパーツオブジェクトPOBを変形させる場合には、図3(A)に示すように、パーツオブジェクトPOBを構成する頂点を基準移動ベクトルの向きを移動方向として移動させる。また例えば、振動板が縮む方向にパーツオブジェクトPOBを移動させる場合にはおいても、図3(B)に示すように、パーツオブジェクトPOBを構成する頂点を基準移動ベクトルの向きを移動方向として移動させる。図3(A)に示す場合と図3(B)に示す場合とでは、振動方向が異なるため、基準移動ベクトルは互いに逆の向きで与えられる。基準移動ベクトルは、各頂点に対して1つだけ設定しておけばよく、一方の振動方向に移動させる場合を正の方向とし、他方の振動方向に移動させる場合を負の方向とすれば、振動方向の極性に応じて、正方向あるいは負方向に設定したベクトルを反転させることで、負方向あるいは正方向の基準移動ベクトルを与えることができる。振動方向の設定については、後述にて別途説明する。   For example, when the part object POB is deformed in the direction in which the diaphragm contracts, as shown in FIG. 3A, the vertices constituting the part object POB are moved with the direction of the reference movement vector as the movement direction. Further, for example, even when the part object POB is moved in the direction in which the diaphragm contracts, as shown in FIG. 3B, the apexes constituting the part object POB are moved with the direction of the reference movement vector as the movement direction. . Since the vibration direction differs between the case shown in FIG. 3A and the case shown in FIG. 3B, the reference movement vectors are given in opposite directions. Only one reference movement vector needs to be set for each vertex, and when moving in one vibration direction is a positive direction and moving in the other vibration direction is a negative direction, By reversing the vector set in the positive direction or the negative direction according to the polarity of the vibration direction, the reference movement vector in the negative direction or the positive direction can be given. The setting of the vibration direction will be described separately later.

また図3(A)及び図3(B)に示す各場合において、頂点の移動量は、基準移動ベクトルの大きさと振動データから得られる振動量とを乗算した結果より得ることができる。ここで、基準移動ベクトルの大きさは、頂点の移動量を決めるための移動係数を表している。この移動係数は、基準移動ベクトルとは別のパラメータによって与えるようにしてもよい。なお、基準移動ベクトルは、法線ベクトルのように、その大きさを正規化(単位ベクトル化)したものであってもよい。この場合には、基準移動ベクトルによって、各頂点の移動方向のみが与えられる。   In each case shown in FIGS. 3A and 3B, the amount of movement of the vertex can be obtained from the result of multiplying the size of the reference movement vector and the amount of vibration obtained from the vibration data. Here, the size of the reference movement vector represents a movement coefficient for determining the movement amount of the vertex. This movement coefficient may be given by a parameter different from the reference movement vector. The reference movement vector may be a normalized vector (unit vectorized), such as a normal vector. In this case, only the movement direction of each vertex is given by the reference movement vector.

具体的には、図4(A)に示すように、正側(+側)の振動方向(広義には、第1の振動方向)に対する基準移動ベクトルと負側(−側)の振動方向(広義には、第2の振動方向)に対する基準移動ベクトルとを、元のモデルの面(ポリゴン、プリミティブ)に対して鏡像反転(フリップ)した関係を有するように設定することができる。このようにすれば、元のモデルに対して大きく膨張変化する部分の偏り(むら)を抑えることができる。また簡易モデルで振動表現を行う場合には、図4(B)に示すように、オブジェクトの各頂点に与えられる法線方向の単位ベクトル(法線ベクトル)を基準移動ベクトルとすることもできる。この場合には、正側(+側)の振動方向(広義には、第1の振動方向)に対する基準移動ベクトルと負側(−側)の振動方向(広義には、第2の振動方向)に対する基準移動ベクトルとが、元のモデルの面(ポリゴン、プリミティブ)に対して単純に反転した関係を有していればよい。   Specifically, as shown in FIG. 4A, the reference movement vector with respect to the positive (+) vibration direction (first vibration direction in a broad sense) and the negative (−) vibration direction ( In a broad sense, the reference movement vector with respect to the second vibration direction) can be set so as to have a mirror image inverted (flip) relationship with respect to the plane (polygon, primitive) of the original model. In this way, it is possible to suppress the deviation (unevenness) of the portion that greatly changes in expansion relative to the original model. Further, in the case of performing vibration expression with a simple model, as shown in FIG. 4B, a unit vector (normal vector) in the normal direction given to each vertex of the object can be used as a reference movement vector. In this case, the reference movement vector with respect to the positive direction (+ side) vibration direction (first vibration direction in a broad sense) and the negative side (− side) vibration direction (second vibration direction in a broad sense). It is only necessary that the reference movement vector with respect to is simply inverted with respect to the original model surface (polygon, primitive).

また移動係数は、振動データによって得られる振動量の影響度を表す係数である。例えば、移動量を大きくする必要がある頂点については大きい移動係数(例えば、1)を設定し、頂点の移動量を小さくする必要がある頂点にについては小さい移動係数(例えば、1未満)に設定すると、振動板の縮み具合や膨らみ具合をリアルに表現することができる。言い換えれば、振動板の真ん中付近の頂点は、移動係数を高めに設定しておき、端部の頂点は、移動係数を低めに設定しておくことができる。なお移動係数は、任意の値域で設定できる。   The movement coefficient is a coefficient that represents the degree of influence of the vibration amount obtained from the vibration data. For example, a large movement coefficient (for example, 1) is set for a vertex that requires a large movement amount, and a small movement coefficient (for example, less than one) is set for a vertex that requires a small movement amount of the vertex. Then, the degree of contraction and swelling of the diaphragm can be expressed realistically. In other words, the vertex near the center of the diaphragm can be set to a high movement coefficient, and the vertex at the end can be set to a low movement coefficient. The movement coefficient can be set in an arbitrary value range.

このように頂点の移動量を決めるための移動係数を振動データから得られる振動量とは別に設定すれば、1つの振動データから複数の頂点の移動量を決めることができるようになる。なお頂点毎に移動係数を設定することなく、1の振動データから各頂点の移動量を求める手法は、他にも考えられる。例えば、補間処理を用いる手法である。この場合には、移動量を大きくする必要がある1又は複数の頂点を代表頂点(基準頂点)として設定しておく。この場合には、代表頂点については、振動データから得られる振動量を頂点の移動量として用いる。そして代表頂点の周囲の頂点については、代表頂点からの距離に応じて代表頂点に与えられた振動量を補間して求めた補間振動量を、その頂点の移動量として求めることができる。   Thus, if the movement coefficient for determining the movement amount of the vertex is set separately from the vibration amount obtained from the vibration data, the movement amount of a plurality of vertices can be determined from one vibration data. There are other methods for obtaining the movement amount of each vertex from one vibration data without setting a movement coefficient for each vertex. For example, it is a method using interpolation processing. In this case, one or a plurality of vertices whose movement amount needs to be increased are set as representative vertices (reference vertices). In this case, for the representative vertex, the vibration amount obtained from the vibration data is used as the vertex movement amount. For the vertices around the representative vertex, an interpolation vibration amount obtained by interpolating the vibration amount given to the representative vertex according to the distance from the representative vertex can be obtained as the movement amount of the vertex.

また振動板の材質(マテリアル)に応じた振動の様子を表現するためには、上述したパラメータとは別に属性データを設定することもできる。この属性データとしては、固有振動数(共振周波数)や弾性係数などが考えられる。例えば、固有振動数(共振周波数)を属性データとして設定しておけば、ある特定の周波数帯の音データが再生出力される場合に、その振動が増幅される様子を表現することができるようになる。   Further, in order to express the state of vibration according to the material (material) of the diaphragm, attribute data can be set separately from the parameters described above. As this attribute data, a natural frequency (resonance frequency), an elastic coefficient, etc. can be considered. For example, by setting the natural frequency (resonance frequency) as attribute data, it is possible to express how the vibration is amplified when sound data in a specific frequency band is reproduced and output. Become.

次に、図5(A)〜図5(C)にスピーカの振動板付近のパーツオブジェクトの振動を詳細に表現する場合の例を示す。図5(A)は、手前側(+側、正側)への振動量(振幅)が最大のときを示し、図5(B)は、ニュートラル状態(無振動状態、振幅ゼロ状態)を示し、図5(C)は、奥側(−側、負側)への振動量(振幅)が最大のときを示している。   Next, FIGS. 5A to 5C show an example in which the vibration of the part object near the diaphragm of the speaker is expressed in detail. FIG. 5A shows when the amount of vibration (amplitude) toward the front side (+ side, positive side) is maximum, and FIG. 5B shows the neutral state (no vibration state, zero amplitude state). FIG. 5C shows a case where the amount of vibration (amplitude) to the back side (− side, negative side) is maximum.

振動板付近のパーツオブジェクトとしては、コーン(振動板)、センターキャップ、エッジなどが含まれる。このモデルでは、センターキャップを構成する頂点を音データから抽出した振動データに基づいて求めた移動量Δd(+Δd、−Δd)だけ前後(手前・奥)に移動させるとともに、コーンを構成する頂点を移動させている。この場合、コーンおよびセンターキャップを構成する各頂点を移動させる方向を設定する基準移動ベクトルは、共通化することができる。もちろん各頂点毎に個別に設定するようにしてもよいが、基準移動ベクトルを共通化することにより、メモリの消費量を節約することができる。また各頂点の移動量を定める移動係数は、頂点毎に与えることができる。例えば、コーンを構成する頂点については、エッジ付近の頂点の移動量は小さくなり、センターキャップ付近の頂点の移動量は大きくなるように移動係数を設定することができる。   The part objects near the diaphragm include a cone (diaphragm), a center cap, an edge, and the like. In this model, the vertices constituting the center cap are moved back and forth (front and back) by a movement amount Δd (+ Δd, −Δd) obtained based on the vibration data extracted from the sound data, and the vertices constituting the cone are moved. It is moved. In this case, the reference movement vector for setting the direction in which each vertex constituting the cone and the center cap is moved can be shared. Of course, it may be set individually for each vertex, but by using a common reference movement vector, memory consumption can be saved. Moreover, the movement coefficient which determines the moving amount | distance of each vertex can be given for every vertex. For example, for the vertices constituting the cone, the movement coefficient can be set so that the movement amount of the vertices near the edge is small and the movement amount of the vertices near the center cap is large.

また図5(A)〜図5(C)に示す詳細モデルにおいて、コーン部分の変形(頂点の移動)は、図3(A)及び図3(B)に示す態様としてもよい。このようにすれば、視覚的な効果が向上し、コーンが振動していることが認識できるように表現することができる。   Further, in the detailed model shown in FIGS. 5A to 5C, the deformation of the cone portion (the movement of the apex) may be in the form shown in FIGS. 3A and 3B. In this way, the visual effect is improved, and it can be expressed so that it can be recognized that the cone is vibrating.

またよりリアルな表現を実現するために、エッジ部分を振動させるようにしてもよく、さらにコーン部分にマッピングされるテクスチャの模様を単色ではなく、コーン部分のポリゴンの伸び縮みが把握できるような模様(色、線など)のテクスチャを用いるようにしてもよい。   In order to realize more realistic expression, the edge part may be vibrated, and the texture pattern mapped to the cone part is not a single color, but a pattern that can grasp the expansion and contraction of the polygon of the cone part A texture of (color, line, etc.) may be used.

2.2 振動データの生成手法
本実施形態では、音データの再生フレーム内で出力される音データの複数のサンプリングデータをフィルタリングすることにより音データに対応する振動データを生成する手法を採用している。なお、振動データは、リアルタイムに生成してもよいし、予め生成しておいたものをバッファリングしておくこともできる。なおリアルタイムに振動データを生成する場合には、予め音データを数フレーム分バッファリングしておき、その再生フレームよりも前のフレームにおいて振動データを生成しておくことが望ましい。このようにすれば、音データの再生フレームが到来したときに、その再生フレームで再生出力される音データに対応した振動データを用いて頂点の移動処理を行うことができ、実際に再生出力される音データとオブジェクトの変形による物体の振動の様子とのズレを軽減することができる。
2.2 Vibration Data Generation Method In this embodiment, a method of generating vibration data corresponding to sound data by filtering a plurality of sampling data of sound data output within a reproduction frame of sound data is adopted. Yes. Note that the vibration data may be generated in real time, or previously generated data may be buffered. When vibration data is generated in real time, it is desirable to buffer sound data for several frames in advance and generate vibration data in a frame before the reproduction frame. In this way, when a playback frame of sound data arrives, vertex movement processing can be performed using vibration data corresponding to the sound data played back and output in that playback frame, and the playback and output is actually performed. The difference between the sound data and the vibration of the object due to the deformation of the object can be reduced.

図6(A)に音データの例を示す。この音データは、フレームレートよりも高いサンプリングレートでサンプリングされたサンプリングデータ群からなり、1フレーム内に複数のサンプリングデータが含まれている。この場合に、各サンプリングデータの音量情報を振動データとすることも考えられる。しかし、オブジェクトの描画処理は、フレームレート単位で行われるため、このサンプリングレートに忠実に追従した画像を生成することは極めて困難である。またCDやDVD等に記録された音データの場合は、そのサンプリングレートが44.1KHzとフレームレート(60Hz)に比べて非常に高いものであるため、現実のスピーカの振動を再現しようとしても人間の目には、その振動の様子が認識できない。   FIG. 6A shows an example of sound data. This sound data consists of a sampling data group sampled at a sampling rate higher than the frame rate, and a plurality of sampling data is included in one frame. In this case, the volume information of each sampling data may be considered as vibration data. However, since the object rendering process is performed in units of frame rate, it is extremely difficult to generate an image that faithfully follows this sampling rate. In the case of sound data recorded on a CD, DVD, etc., the sampling rate is 44.1 KHz, which is much higher than the frame rate (60 Hz). The eyes cannot recognize the vibration.

そこで、本実施形態では、1再生フレーム内で再生出力される音データの複数のサンプリングデータをフィルタリング処理することにより、オブジェクトの頂点を移動させるための振動データを生成している。   Therefore, in this embodiment, vibration data for moving the vertex of the object is generated by filtering a plurality of sampling data of the sound data reproduced and output within one reproduction frame.

具体的には、各再生フレームF1〜F9において再生出力される音データのサンプリングデータ群を平均化する処理によって、図6(B)に示すように、音データの低周波成分を抽出して、振動データを生成することができる。言い換えれば、サンプリングデータ群の音量情報を累積加算して、その加算値をサンプリング点の数で除算することにより、各再生フレームF1〜F9における音量情報の平均音量を算出し、その平均音量を振動データとして求めることができる。このとき、任意のしきい値音量を設定しておくことで、しきい値音量を上回る平均音量の振動データは、正の振動方向の振動量を表すデータとして扱い、しきい値を下回る平均音量の振動データは負の振動方向の振動量を表すデータとして扱うことができる。すなわち、平均音量からしきい値音量を減算することによって、振動データに極性を与えることができる。また平均音量としきい値音量との差分の絶対値を各振動方向への振動量とすることができる。そして、この振動データの極性に応じて頂点の移動方向が正負いずれの振動方向となるべきかを決定することができる。   Specifically, as shown in FIG. 6B, by extracting a sampling data group of sound data reproduced and output in each of the reproduction frames F1 to F9, a low frequency component of the sound data is extracted, Vibration data can be generated. In other words, the volume information of the sampling data group is cumulatively added and the added value is divided by the number of sampling points to calculate the average volume of the volume information in each reproduction frame F1 to F9, and the average volume is vibrated. It can be obtained as data. At this time, by setting an arbitrary threshold volume, vibration data with an average volume exceeding the threshold volume is treated as data representing the amount of vibration in the positive vibration direction, and the average volume below the threshold is set. The vibration data can be handled as data representing the amount of vibration in the negative vibration direction. That is, the vibration data can be given polarity by subtracting the threshold volume from the average volume. The absolute value of the difference between the average volume and the threshold volume can be used as the vibration amount in each vibration direction. Then, according to the polarity of the vibration data, it can be determined whether the moving direction of the apex should be positive or negative.

この手法によれば、音データの低周波成分を振動データとして抽出することによって、例えば、ウーファーの振動板が振動する様子をリアルに表現することができる。   According to this method, by extracting the low-frequency component of the sound data as vibration data, for example, it is possible to realistically represent how the diaphragm of the woofer vibrates.

また振動データを生成する手法としては、図6(C)に示すように、各再生フレームF1〜F9内で再生出力される音データに含まれるサンプリングデータ群の中から最大音量のサンプリングデータと最小音量のサンプリングデータを1再生フレーム毎に交互に検出して、最大音量と最小音量との差分を振幅とする振動データを生成することができる。すなわち、この手法では、振動データのピークを検出するピークフィルタリングをしていることになる。なおこの手法においても、任意のしきい値音量を設定しておくことで、振動データに極性をもたせることができ、各再生フレームF1〜F9における振動データに対応する音量情報としきい値音量との差分を各振動方向への振動量とすることができる。このようにすれば、大きな振幅を有する振動データを生成することができる。   As a method for generating vibration data, as shown in FIG. 6C, the sampling data of the maximum volume and the minimum of sampling data groups included in the sound data reproduced and output in each of the reproduction frames F1 to F9. The sampling data of the volume can be detected alternately for each reproduction frame, and vibration data having the difference between the maximum volume and the minimum volume as the amplitude can be generated. That is, in this method, peak filtering for detecting the peak of vibration data is performed. Also in this method, by setting an arbitrary threshold volume, the vibration data can be given a polarity, and the volume information corresponding to the vibration data in each of the reproduction frames F1 to F9 and the threshold volume are set. The difference can be the amount of vibration in each vibration direction. In this way, vibration data having a large amplitude can be generated.

3.本実施形態の処理
次に、本実施形態の詳細な処理例について図7〜図9のフローチャートを用いて説明する。
3. Processing of this Embodiment Next, a detailed processing example of this embodiment will be described using the flowcharts of FIGS.

図7に示すように、まずフレーム更新(1/60秒)のタイミングか否かを判断する(ステップS10)。そしてフレーム更新のタイミングである場合には(ステップS10でYES)、音データ記憶部にバッファリングされた音データのうち1フレーム分のサンプリングデータを取得する(ステップS11)。次に、振動データの生成処理を行う(ステップS12)。すなわち、図6(B)あるいは図6(C)で示したように、複数のサンプリングデータの平均化処理やピーク検出処理を行うフィルタリングを行って、振動データを得る。   As shown in FIG. 7, it is first determined whether or not it is a frame update (1/60 second) timing (step S10). If it is the frame update timing (YES in step S10), sampling data for one frame is acquired from the sound data buffered in the sound data storage unit (step S11). Next, vibration data generation processing is performed (step S12). That is, as shown in FIG. 6B or 6C, the vibration data is obtained by performing filtering that performs averaging processing and peak detection processing of a plurality of sampling data.

次に、頂点シェーダ用及びピクセルシェーダ用のシェーダプログラムの転送とシェーダプログラムを実行して描画処理を行うために必要な各種パラメータの設定及び転送を行う(ステップS13、S14)。例えば、基準移動ベクトルや振動データ、必要に応じて属性データをパラメータとして描画プロセッサに転送する。そして、モデルオブジェクトの頂点リストを描画プロセッサへ転送し(ステップS15)、ステップS13で転送した頂点シェーダプログラム及びピクセルシェーダプログラムを順次を実行する(ステップS16、S17)。   Next, the shader program for the vertex shader and the pixel shader is transferred, and various parameters necessary for performing the rendering process by executing the shader program are set and transferred (steps S13 and S14). For example, the reference movement vector, vibration data, and attribute data as necessary are transferred to the drawing processor as parameters. Then, the vertex list of the model object is transferred to the drawing processor (step S15), and the vertex shader program and the pixel shader program transferred in step S13 are sequentially executed (steps S16 and S17).

また振動データを再生フレーム前に生成してバッファリングしておく場合には、図8に示すフローチャートに従って処理を行う。   When vibration data is generated and buffered before a reproduction frame, processing is performed according to the flowchart shown in FIG.

まずフレーム更新(1/60秒)のタイミングか否かを判断する(ステップS10a)。そしてフレーム更新のタイミングである場合には(ステップS10aでYES)、振動データ記憶部にバッファリングされた現在のフレーム(本フレーム)に対応する振動データを取得する(ステップS11a)。   First, it is determined whether or not it is a frame update (1/60 second) timing (step S10a). If it is the frame update timing (YES in step S10a), vibration data corresponding to the current frame (main frame) buffered in the vibration data storage unit is acquired (step S11a).

次に、頂点シェーダ用及びピクセルシェーダ用のシェーダプログラムの転送とシェーダプログラムを実行して描画処理を行うために必要な各種パラメータの設定及び転送を行う(ステップS12a、S13a)。そして、モデルオブジェクトの頂点リストを描画プロセッサへ転送し(ステップS14a)、ステップS13aで転送した頂点シェーダプログラム及びピクセルシェーダプログラムを順次を実行する(ステップS15a、S16a)。   Next, the shader program for the vertex shader and the pixel shader is transferred, and various parameters necessary for performing the rendering process by executing the shader program are set and transferred (steps S12a and S13a). Then, the vertex list of the model object is transferred to the drawing processor (step S14a), and the vertex shader program and the pixel shader program transferred in step S13a are sequentially executed (steps S15a and S16a).

その後、次フレーム用の振動データの生成を行う。具体的には、音データ記憶部にバッファリングされた音データ群から次フレームの1フレーム分のサンプリングデータを取得する(ステップS17a)。そして取得したサンプリングデータ群をフィルタリング処理することにより次フレーム用の振動データを生成し(ステップS18a)、生成された振動データを振動データ記憶部にバッファリングして処理を終了する。   Thereafter, vibration data for the next frame is generated. Specifically, sampling data for one frame of the next frame is acquired from the sound data group buffered in the sound data storage unit (step S17a). The acquired sampling data group is filtered to generate vibration data for the next frame (step S18a), the generated vibration data is buffered in the vibration data storage unit, and the process ends.

ところで、頂点シェーダでは、図9に示すフローチャートに沿って頂点シェーディングを行う。まず転送された頂点リストに含まれる各頂点について、頂点移動処理の対象となる頂点かどうかを判断する(ステップS20)、頂点移動処理の対象となる頂点である場合には(ステップS20でYES)、振動データの極性に基づいて、頂点の振動方向を決定する(ステップS21)。すなわち、図2(B)及び図2(C)、図4(A)及び図4(B)あるいは図5(A)及び図5(C)に示したように正(+)の振動方向なのか、負(−)の振動方向なのかを判定して、基準移動ベクトルの向きを決定する。次に振動データ、振動方向、および各頂点に設定された基準移動ベクトルに基づいて頂点の移動後の座標を求め、求められた座標に従って頂点を移動させる(ステップS22)。すなわち、マトリクス演算(ベクトル演算)によって、頂点の位置座標を変換する処理を行う。次に、透視変換等のジオメトリ処理によって座標系の変換処理を行い、頂点のスクリーン座標を計算する(ステップS23)。このときテクスチャ座標の設定なども行われる。最終的には、作成された頂点データをピクセルシェーダ側に転送して(ステップS24)、頂点シェーダプログラムを終了する。   By the way, the vertex shader performs vertex shading according to the flowchart shown in FIG. First, it is determined whether or not each vertex included in the transferred vertex list is a vertex subject to vertex movement processing (step S20). If it is a vertex subject to vertex movement processing (YES in step S20). Based on the polarity of the vibration data, the vibration direction of the apex is determined (step S21). That is, as shown in FIGS. 2B and 2C, FIGS. 4A and 4B, or FIGS. 5A and 5C, the vibration direction is positive (+). Or a negative (−) vibration direction to determine the direction of the reference movement vector. Next, the coordinates after movement of the vertex are obtained based on the vibration data, the vibration direction, and the reference movement vector set for each vertex, and the vertex is moved according to the obtained coordinates (step S22). In other words, processing for converting the position coordinates of the vertex is performed by matrix calculation (vector calculation). Next, coordinate system conversion processing is performed by geometry processing such as perspective conversion, and the vertex screen coordinates are calculated (step S23). At this time, texture coordinates are set. Finally, the created vertex data is transferred to the pixel shader (step S24), and the vertex shader program is terminated.

4.ハードウェア構成
図10に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、DVD982(情報記憶媒体。CDでもよい。)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えばオブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
4). Hardware Configuration FIG. 10 shows an example of a hardware configuration capable of realizing this embodiment. The main processor 900 operates based on a program stored in a DVD 982 (information storage medium, which may be a CD), a program downloaded via the communication interface 990, a program stored in the ROM 950, or the like. Perform processing, sound processing, etc. The coprocessor 902 assists the processing of the main processor 900, and executes matrix operation (vector operation) at high speed. For example, when a matrix calculation process is required for a physical simulation for moving or moving an object, a program operating on the main processor 900 instructs (requests) the process to the coprocessor 902.

ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセラレートする。これにより、オープニング画面やゲーム画面において、MPEG方式等で圧縮された動画像を表示できる。   The geometry processor 904 performs geometry processing such as coordinate conversion, perspective conversion, light source calculation, and curved surface generation based on an instruction from a program operating on the main processor 900, and executes matrix calculation at high speed. The data decompression processor 906 performs decoding processing of the compressed image data and sound data and accelerates the decoding processing of the main processor 900. Thereby, a moving image compressed by the MPEG method or the like can be displayed on the opening screen or the game screen.

描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データ(頂点データや他のパラメータ)を描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。また描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。頂点シェーダやピクセルシェーダなどのプログラマブルシェーダも描画プロセッサ910に実装されており、本実施形態の手法を実現するシェーダプログラムに従って、頂点データの作成・変更(更新)やピクセル(あるいはフラグメント)の描画色の決定を行う。1フレーム分の画像がフレームバッファ922に書き込まれるとその画像はディスプレイ912に表示される。   The drawing processor 910 executes drawing (rendering) processing of an object composed of primitive surfaces such as polygons and curved surfaces. When drawing an object, the main processor 900 uses the DMA controller 970 to pass the drawing data (vertex data and other parameters) to the drawing processor 910 and, if necessary, the texture to the texture storage unit 924. Forward. Then, the drawing processor 910 draws the object in the frame buffer 922 while performing hidden surface removal using a Z buffer or the like based on the drawing data and texture. The drawing processor 910 also performs α blending (translucent processing), depth cueing, mip mapping, fog processing, bilinear filtering, trilinear filtering, anti-aliasing, shading processing, and the like. Programmable shaders such as a vertex shader and a pixel shader are also mounted on the drawing processor 910. According to the shader program that realizes the method of this embodiment, the creation / change (update) of vertex data and the drawing color of pixels (or fragments) are changed. Make a decision. When an image for one frame is written in the frame buffer 922, the image is displayed on the display 912.

サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリカード944からのデータはシリアルインターフェース940を介して入力される。   The sound processor 930 includes a multi-channel ADPCM sound source and the like, generates game sounds such as BGM, sound effects, and sounds, and outputs them through the speaker 932. Data from the game controller 942 and the memory card 944 is input via the serial interface 940.

ROM950にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納される。なおROM950の代わりにハードディスクを利用してもよい。RAM960は各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。DVDドライブ980(CDドライブでもよい。)は、プログラム、画像データ、或いは音データなどが格納されるDVD982(CDでもよい。)にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。   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. The RAM 960 is a work area for various processors. The DMA controller 970 controls DMA transfer between the processor and the memory. The DVD drive 980 (may be a CD drive) accesses a DVD 982 (may be a CD) in which programs, image data, sound data, and the like are stored. The communication interface 990 performs data transfer with the outside via a network (communication line, high-speed serial bus).

なお本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。   The processing of each unit (each unit) in this embodiment may be realized entirely by hardware, or may be realized by a program stored in an information storage medium or a program distributed via a communication interface. Also good. Alternatively, it may be realized by both hardware and a program.

そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。   When the processing of each part of this embodiment is realized by both hardware and a program, a program for causing the hardware (computer) to function as each part of this embodiment is stored in the information storage medium. More specifically, the program instructs the processors 902, 904, 906, 910, and 930, which are hardware, and passes data if necessary. Each processor 902, 904, 906, 910, 930 realizes the processing of each unit of the present invention based on the instruction and the passed data.

なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。また頂点の移動手法、あるいは振動データの生成手法も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。   The present invention is not limited to that described in the above embodiment, and various modifications can be made. For example, terms cited as broad or synonymous terms in the description in the specification or drawings can be replaced with broad or synonymous terms in other descriptions in the specification or drawings. Further, the vertex moving method or the vibration data generating method is not limited to that described in the present embodiment, and methods equivalent to these methods are also included in the scope of the present invention.

また本実施の形態では、スピーカの振動板の振動の様子を表現する場合を例に採り説明したが、本発明はこれに限定されず、例えば、スピーカなどから出力される大音量の音でガラスが振動する様子を表現する場合などにも適用することもできる。また本実施の形態では、モデルオブジェクトを構成するパーツオブジェクトの頂点を移動させる場合を説明したが、モデルオブジェクトの全体の頂点を移動させる場合にも本実施形態の手法は適用することができる。   In the present embodiment, the case of expressing the state of vibration of the diaphragm of the speaker has been described as an example. However, the present invention is not limited to this, and for example, glass with a loud sound output from a speaker or the like. It can also be applied to the case of expressing the state of vibration. Further, in the present embodiment, the case where the vertices of the part objects constituting the model object are moved has been described, but the method of the present embodiment can also be applied to the case where the entire vertices of the model object are moved.

また本発明は種々のゲーム(格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等)に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。   The present invention can also be applied to various games (such as fighting games, shooting games, robot fighting games, sports games, competitive games, role playing games, music playing games, dance games, etc.). The present invention is also applicable to various image generation 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, a system board for generating game images, and a mobile phone. it can.

本実施形態の画像生成システムの機能ブロック図。The functional block diagram of the image generation system of this embodiment. 図2(A)〜図2(C)は、本実施形態の手法の説明図。FIG. 2A to FIG. 2C are explanatory diagrams of the method of this embodiment. 図3(A)及び図3(B)は、本実施形態の手法の説明図。FIG. 3A and FIG. 3B are explanatory diagrams of the method of this embodiment. 図4(A)及び図4(B)は、本実施形態の手法の説明図。FIG. 4A and FIG. 4B are explanatory diagrams of the method of this embodiment. 図5(A)〜図5(C)は、本実施形態の手法の説明図。FIG. 5A to FIG. 5C are explanatory diagrams of the method of this embodiment. 図6(A)〜図6(C)は、本実施形態の手法の説明図。FIG. 6A to FIG. 6C are explanatory diagrams of the method of this embodiment. 本実施形態の具体的な処理例を示すフローチャート。The flowchart which shows the specific process example of this embodiment. 本実施形態の具体的な処理例を示すフローチャート。The flowchart which shows the specific process example of this embodiment. 本実施形態の具体的な処理例を示すフローチャート。The flowchart which shows the specific process example of this embodiment. ハードウェア構成例。Hardware configuration example.

符号の説明Explanation of symbols

MOB モデルオブジェクト、POB パーツオブジェクト、
100 処理部、
110 オブジェクト空間設定部、112 移動・動作処理部、
114 仮想カメラ制御部、116 振動データ生成部、
120 画像生成部、122 頂点シェーダ部、124 ピクセルシェーダ部、
130 音生成部、160 入力部、162 操作部、164 音検出部、
170 記憶部、
172 主記憶部、174 描画バッファ、
176 音データ記憶部、178 振動データ記憶部、
180 情報記憶媒体、190 表示部、192 音出力部、
194 携帯型情報記憶装置、196 通信部
MOB model object, POB part object,
100 processing unit,
110 Object space setting unit, 112 Movement / motion processing unit,
114 virtual camera control unit, 116 vibration data generation unit,
120 image generation units, 122 vertex shader units, 124 pixel shader units,
130 sound generation unit, 160 input unit, 162 operation unit, 164 sound detection unit,
170 storage unit,
172 Main memory unit, 174 drawing buffer,
176 sound data storage unit, 178 vibration data storage unit,
180 information storage medium, 190 display unit, 192 sound output unit,
194 Portable information storage device, 196 communication unit

Claims (11)

オブジェクト空間における所与の視点から見える画像を生成するためのプログラムであって、
フレームレートより高いサンプリングレートでサンプリングされた音データを記憶する音データ記憶部と、
前記音データに対応するデータであって、前記フレームレートでサンプリングされた振動データを記憶する振動データ記憶部と、
前記音データが再生出力される際に、その再生フレームに対応する前記振動データを取得して、その振動データに基づいて、オブジェクトを構成する頂点を移動させる頂点シェーディングを行う画像生成部として、
コンピュータを機能させることを特徴とするプログラム。
A program for generating an image that can be seen from a given viewpoint in an object space,
A sound data storage unit for storing sound data sampled at a sampling rate higher than the frame rate;
A vibration data storage unit for storing vibration data sampled at the frame rate, the data corresponding to the sound data;
When the sound data is reproduced and output, the vibration generation data corresponding to the reproduction frame is acquired, and based on the vibration data, an image generation unit that performs vertex shading that moves the vertices constituting the object,
A program characterized by causing a computer to function.
請求項1において、
前記音データを取得して、その音データの再生フレームに対応する前記振動データを生成する振動データ生成部としてコンピュータを機能させ、
前記振動データ生成部が、
第Nの再生フレームにおいて再生出力される前記音データの複数のサンプリングデータのフィルタリング処理を行って、前記第Nの再生フレームに対応する前記振動データを生成することを特徴とするプログラム。
In claim 1,
The sound data is acquired, and the computer is caused to function as a vibration data generation unit that generates the vibration data corresponding to a reproduction frame of the sound data,
The vibration data generation unit
A program characterized in that the vibration data corresponding to the Nth reproduction frame is generated by performing a filtering process on a plurality of sampling data of the sound data reproduced and output in the Nth reproduction frame.
請求項2において、
前記振動データ生成部が、
前記第Nの再生フレームにおいて再生出力される前記音データの複数のサンプリングデータを平均化する処理を前記フィルタリング処理として行うことを特徴とするプログラム。
In claim 2,
The vibration data generation unit
A program characterized in that a process of averaging a plurality of sampling data of the sound data reproduced and output in the Nth reproduction frame is performed as the filtering process.
請求項2において、
前記振動データ生成部が、
前記第Nの再生フレームにおいて再生出力される前記音データの複数のサンプリングデータの中から振幅が最大あるいは最小のサンプリングデータを抽出する処理を前記フィルタリング処理として行うことを特徴とするプログラム。
In claim 2,
The vibration data generation unit
A program for performing, as the filtering process, a process of extracting sampling data having a maximum or minimum amplitude from a plurality of sampling data of the sound data reproduced and output in the Nth reproduction frame.
請求項2〜4のいずれかにおいて、
前記振動データ生成部が、
音検出部の検出音を前記フレームレートより高いサンプリングレートでサンプリングした音データを取得し、取得した前記検出音に対応する音データに基づいて前記振動データを生成することを特徴とするプログラム。
In any one of Claims 2-4,
The vibration data generation unit
A program that acquires sound data obtained by sampling a detection sound of a sound detection unit at a sampling rate higher than the frame rate, and generates the vibration data based on sound data corresponding to the acquired detection sound.
請求項2〜5のいずれかにおいて、
前記振動データ生成部が、
第Nの再生フレーム用の前記音データに対応する前記振動データを、少なくとも第N−1の再生フレームが終了するまでに生成することを特徴とするプログラム。
In any one of Claims 2-5,
The vibration data generation unit
A program for generating the vibration data corresponding to the sound data for the Nth playback frame at least before the end of the (N-1) th playback frame.
請求項1〜6のいずれかにおいて、
前記画像生成部が、
前記振動データと前記オブジェクトに対応して設定された属性データとに基づいて、該オブジェクトの頂点を移動させる頂点シェーディングを行うことを特徴とするプログラム。
In any one of Claims 1-6,
The image generator
A program for performing vertex shading for moving a vertex of an object based on the vibration data and attribute data set corresponding to the object.
請求項1〜7のいずれかにおいて、
前記画像生成部が、
前記振動データの補間処理によって前記オブジェクトを構成する複数の頂点の移動情報を求め、該移動情報に基づいて各頂点を移動させる頂点シェーディングを行うことを特徴とするプログラム。
In any one of Claims 1-7,
The image generator
A program for obtaining movement information of a plurality of vertices constituting the object by interpolation processing of the vibration data, and performing vertex shading for moving each vertex based on the movement information.
請求項1〜7のいずれかにおいて、
前記画像生成部が、
前記振動データと前記オブジェクトを構成する各頂点に対して予め設定された移動ベクトルとに基づいて該各頂点の移動情報を求め、該移動情報に基づいて各頂点を移動させる頂点シェーディングを行うことを特徴とするプログラム。
In any one of Claims 1-7,
The image generator
Obtaining vertex movement information based on the vibration data and a preset movement vector for each vertex constituting the object, and performing vertex shading to move each vertex based on the movement information; A featured program.
コンピュータにより読取可能な情報記憶媒体であって、請求項1〜9のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。   An information storage medium readable by a computer, wherein the program according to any one of claims 1 to 9 is stored. オブジェクト空間における所与の視点から見える画像を生成するための画像生成システムであって、
フレームレートより高いサンプリングレートでサンプリングされた音データを記憶する音データ記憶部と、
前記音データに対応するデータであって、前記フレームレートでサンプリングされた振動データを記憶する振動データ記憶部と、
前記音データが再生出力される際に、その再生フレームに対応する前記振動データを取得して、その振動データに基づいて、オブジェクトを構成する頂点を移動させる頂点シェーディングを行う画像生成部と、
を含むことを特徴とする画像生成システム。
An image generation system for generating an image visible from a given viewpoint in an object space,
A sound data storage unit for storing sound data sampled at a sampling rate higher than the frame rate;
A vibration data storage unit for storing vibration data sampled at the frame rate, the data corresponding to the sound data;
When the sound data is reproduced and output, the image generation unit that acquires the vibration data corresponding to the reproduction frame, and performs vertex shading that moves the vertices constituting the object based on the vibration data;
An image generation system comprising:
JP2005274091A 2005-09-21 2005-09-21 Program, information storage medium, and image generation system Withdrawn JP2007087030A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005274091A JP2007087030A (en) 2005-09-21 2005-09-21 Program, information storage medium, and image generation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005274091A JP2007087030A (en) 2005-09-21 2005-09-21 Program, information storage medium, and image generation system

Publications (1)

Publication Number Publication Date
JP2007087030A true JP2007087030A (en) 2007-04-05

Family

ID=37973962

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005274091A Withdrawn JP2007087030A (en) 2005-09-21 2005-09-21 Program, information storage medium, and image generation system

Country Status (1)

Country Link
JP (1) JP2007087030A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101808195A (en) * 2009-02-13 2010-08-18 三星数码影像株式会社 The equipment that is used for digital moving picture photographing or processing
JP2011133722A (en) * 2009-12-25 2011-07-07 Nec Casio Mobile Communications Ltd Display device and program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101808195A (en) * 2009-02-13 2010-08-18 三星数码影像株式会社 The equipment that is used for digital moving picture photographing or processing
CN101808195B (en) * 2009-02-13 2016-05-04 三星电子株式会社 For the equipment of digital moving picture photographing or processing
JP2011133722A (en) * 2009-12-25 2011-07-07 Nec Casio Mobile Communications Ltd Display device and program

Similar Documents

Publication Publication Date Title
JP4651435B2 (en) Program, information storage medium, and image generation system
JP2010022646A (en) Program, information storage medium, and image generation system
JP4804122B2 (en) Program, texture data structure, information storage medium, and image generation system
JP2012234441A (en) Program, information storage medium, image generation system and server system
JP4305903B2 (en) Image generation system, program, and information storage medium
JP4749198B2 (en) Program, information storage medium, and image generation system
JP2004298375A (en) Image generating system, program, and information storage medium
JP2006323512A (en) Image generation system, program, and information storage medium
JP4743770B2 (en) Image generation system, program, and information storage medium
JP4754384B2 (en) Program, information recording medium, and image generation system
JP2006252426A (en) Program, information storage medium, and image generation system
JP2007087030A (en) Program, information storage medium, and image generation system
JP4717624B2 (en) Image generation system, program, and information storage medium
JP4528008B2 (en) Program, information storage medium, and image generation system
JP2006268103A (en) Program, information storage medium, model data structure, and image generation system
JP4229317B2 (en) Image generation system, program, and information storage medium
JP4592087B2 (en) Image generation system, program, and information storage medium
JP2006318196A (en) Program, information storage medium and image generation system
JP4662260B2 (en) Program, information storage medium, and image generation system
JP4754385B2 (en) Program, information recording medium, and image generation system
JP4162125B2 (en) Image generation system, program, and information storage medium
JP4476040B2 (en) Program, information storage medium, and image generation system
JP2006252423A (en) Program, information storage medium and image generation system
JP2006318386A (en) Program, information storage medium, and image forming system
JP4528036B2 (en) Program, information storage medium, and image generation system

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20081202