JP2012247951A - Program, information storage medium, information processing system and information processing method - Google Patents

Program, information storage medium, information processing system and information processing method Download PDF

Info

Publication number
JP2012247951A
JP2012247951A JP2011118456A JP2011118456A JP2012247951A JP 2012247951 A JP2012247951 A JP 2012247951A JP 2011118456 A JP2011118456 A JP 2011118456A JP 2011118456 A JP2011118456 A JP 2011118456A JP 2012247951 A JP2012247951 A JP 2012247951A
Authority
JP
Japan
Prior art keywords
orientation
value
virtual space
changing
change
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
JP2011118456A
Other languages
Japanese (ja)
Inventor
Hajime Sugiyama
一 杉山
Hitoshi Ishikawa
仁 石川
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment 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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2011118456A priority Critical patent/JP2012247951A/en
Priority to US13/438,262 priority patent/US9050538B2/en
Publication of JP2012247951A publication Critical patent/JP2012247951A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To finely express a change in posture of an object while suppressing a load of information processing.SOLUTION: A target object whose posture is to be changed includes a plurality of elements whose connection relations are defined. The plurality of elements are classified into elements of a first type and elements of a second type. For an element of the first type, an object arrangement management part 44 changes a location or a direction of the element according to a relation between a parameter value which is associated with another object arranged in a virtual space and a parameter value which is associated with the element. For an element of the second type, the object arrangement management part 44 changes a location or a direction of the element according to the change of the location or the direction of the connected element of the first type.

Description

本発明は、プログラム、情報記憶媒体、情報処理システム及び情報処理方法に関する。   The present invention relates to a program, an information storage medium, an information processing system, and an information processing method.

仮想空間内に配置されたオブジェクトを、仮想空間内に配置された視点位置及び視線方向から見た様子を表すフレーム画像を順次生成し、表示装置に表示させる情報処理システムがある。また、古典力学の法則等の物理法則をシミュレートするソフトウェアである物理エンジンを活用することで、仮想空間内に配置されたオブジェクトの動きのリアリティを高めた情報処理システムもある。   There is an information processing system that sequentially generates a frame image representing a state in which an object placed in a virtual space is viewed from a viewpoint position and a line-of-sight direction placed in the virtual space, and displays the frame image on a display device. In addition, there is an information processing system that uses a physics engine, which is software that simulates physical laws such as the laws of classical mechanics, to increase the reality of the movement of objects placed in a virtual space.

物理エンジンは、一般的に、ある時点における各オブジェクトに設定された物理量(例えば、位置、向き、質量、慣性モーメント、速度、角速度、など)を表すパラメータの値、仮想空間全体に関わる物理量(例えば、風速)を表すパラメータの値、などに基づいて、所定時間が経過した後における各オブジェクトの位置や向きを決定している。   In general, a physics engine is a parameter that represents a physical quantity (for example, position, orientation, mass, moment of inertia, velocity, angular velocity, etc.) set for each object at a certain point in time, a physical quantity related to the entire virtual space (eg, , The position and orientation of each object after a predetermined time has elapsed based on the value of the parameter representing the wind speed).

1つのオブジェクト(例えば、人間を表すオブジェクト)の骨格や関節などの構造を表す骨格モデルを予め生成し、各骨格に対応付けられる要素に対して、物理エンジンによるシミュレートを行うようにすると、オブジェクトの姿勢の変化を細かく表現することができると考えられる。   When a skeleton model representing the structure of a skeleton or joint of an object (for example, an object representing a human being) is generated in advance, and an element associated with each skeleton is simulated by a physics engine, the object It is thought that the change of the attitude of can be expressed in detail.

ここで、物理エンジンによるシミュレートの対象となる要素の数が多くなれば多くなるほど、オブジェクトの姿勢の変化をより精細に表現することができると考えられるが、その一方で、情報処理の負荷が高くなってしまうおそれがある。   Here, as the number of elements to be simulated by the physics engine increases, it is considered that the change in the posture of the object can be expressed more finely. There is a risk of becoming higher.

本発明は上記課題に鑑みてなされたものであって、その目的の1つは、情報処理の負荷を抑えつつ、オブジェクトの姿勢の変化の精細な表現を可能にすることにある。   The present invention has been made in view of the above problems, and one of its purposes is to enable fine expression of changes in the posture of an object while suppressing the load of information processing.

上記課題を解決するために、本発明に係るプログラムは、仮想空間内に配置されているオブジェクトの姿勢を変化させる情報処理システムとしてコンピュータを機能させるプログラムであって、姿勢を変化させる対象となるオブジェクトは、接続関係が定義された複数の要素が含まれており、前記複数の要素は、仮想空間内に配置されている他のオブジェクトとの関係に基づいて位置又は向きが決定される第1種の要素と、第1種の要素の位置又は向きの変化に基づいて位置又は向きが決定される第2種の要素と、に分類されており、前記第1種の要素について、仮想空間内に配置されている他のオブジェクトに関連付けられているパラメータの値と、当該要素に関連付けられているパラメータの値と、の関係に応じて、当該要素の位置又は向きを変化させる第1の要素変化手段、前記第2種の要素について、接続されている第1種の要素の前記第1の変化手段による位置又は向きの変化に応じて、当該要素の位置又は向きを変化させる第2の要素変化手段、として前記コンピュータを機能させることを特徴とする。   In order to solve the above problems, a program according to the present invention is a program that causes a computer to function as an information processing system that changes the posture of an object arranged in a virtual space, and is an object whose posture is to be changed. Includes a plurality of elements in which connection relations are defined, and the plurality of elements is a first type whose position or orientation is determined based on a relationship with other objects arranged in the virtual space. And a second type of element whose position or orientation is determined based on a change in the position or orientation of the first type of element, and the first type of element is included in the virtual space. Depending on the relationship between the value of the parameter associated with the other placed object and the value of the parameter associated with the element, the position of the element or The first element changing means for changing the position of the first type element, the position of the element or the second type element depending on the change in the position or orientation of the connected first type element by the first changing means. The computer is caused to function as second element changing means for changing the direction.

また、本発明に係る情報記憶媒体は、仮想空間内に配置されているオブジェクトの姿勢を変化させる情報処理システムとしてコンピュータを機能させるプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体であって、姿勢を変化させる対象となるオブジェクトは、接続関係が定義された複数の要素が含まれており、前記複数の要素は、仮想空間内に配置されている他のオブジェクトとの関係に基づいて位置又は向きが決定される第1種の要素と、第1種の要素の位置又は向きの変化に基づいて位置又は向きが決定される第2種の要素と、に分類されており、前記第1種の要素について、仮想空間内に配置されている他のオブジェクトに関連付けられているパラメータの値と、当該要素に関連付けられているパラメータの値と、の関係に応じて、当該要素の位置又は向きを変化させる第1の要素変化手段、前記第2種の要素について、接続されている第1種の要素の前記第1の変化手段による位置又は向きの変化に応じて、当該要素の位置又は向きを変化させる第2の要素変化手段、として前記コンピュータを機能させることを特徴とするプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。   An information storage medium according to the present invention is a computer-readable information storage medium that stores a program that causes a computer to function as an information processing system that changes the attitude of an object placed in a virtual space. The object to be changed includes a plurality of elements in which connection relations are defined, and the position or orientation of the plurality of elements is based on the relationship with other objects arranged in the virtual space. The first type of elements to be determined and the second type of elements whose position or orientation is determined based on a change in the position or orientation of the first type of elements. Between the parameter values associated with other objects placed in the virtual space and the parameter values associated with the element. The first element changing means for changing the position or orientation of the element in response to the change of the position or orientation of the connected first type element by the first changing means for the second type element A computer-readable information storage medium storing a program that causes the computer to function as second element changing means for changing the position or orientation of the element according to the above.

また、本発明に係る情報処理システムは、仮想空間内に配置されているオブジェクトの姿勢を変化させる情報処理システムであって、姿勢を変化させる対象となるオブジェクトは、接続関係が定義された複数の要素が含まれており、前記複数の要素は、仮想空間内に配置されている他のオブジェクトとの関係に基づいて位置又は向きが決定される第1分類の要素と、第1分類の要素の位置又は向きの変化に基づいて位置又は向きが決定される第2分類の要素と、に分類されており、前記第1分類の要素について、仮想空間内に配置されている他のオブジェクトに関連付けられているパラメータの値と、当該第1分類の要素に関連付けられているパラメータの値と、の関係に応じて、当該第1分類の要素の位置又は向きを変化させる第1の要素変化手段と、前記第2分類の要素について、接続されている第1分類の要素の前記第1の変化手段による位置又は向きの変化に応じて、当該要素の位置又は向きを変化させる第2の要素変化手段と、を含むことを特徴とする。   An information processing system according to the present invention is an information processing system that changes the posture of an object arranged in a virtual space, and an object whose posture is to be changed includes a plurality of connection relationships defined. The plurality of elements include a first class element whose position or orientation is determined based on a relationship with another object arranged in the virtual space, and a first class element And a second class element whose position or orientation is determined based on a change in position or orientation, and the first class element is associated with another object arranged in the virtual space. The first element that changes the position or orientation of the first class element according to the relationship between the parameter value associated with the first class element and the parameter value associated with the first class element And a second classifying element that changes the position or orientation of the connected element of the first class according to a change in position or orientation of the connected first class element by the first changing means. Element changing means.

また、本発明に係る情報処理方法は、仮想空間内に配置されているオブジェクトの姿勢を変化させる情報処理方法であって、姿勢を変化させる対象となるオブジェクトは、接続関係が定義された複数の要素が含まれており、前記複数の要素は、仮想空間内に配置されている他のオブジェクトとの関係に基づいて位置又は向きが決定される第1種の要素と、第1種の要素の位置又は向きの変化に基づいて位置又は向きが決定される第2種の要素と、に分類されており、前記第1種の要素について、仮想空間内に配置されている他のオブジェクトに関連付けられているパラメータの値と、当該要素に関連付けられているパラメータの値と、の関係に応じて、当該要素の位置又は向きを変化させる第1の要素変化ステップと、前記第2種の要素について、接続されている第1種の要素の前記第1の変化ステップによる位置又は向きの変化に応じて、当該要素の位置又は向きを変化させる第2の要素変化ステップと、を含むことを特徴とする。   An information processing method according to the present invention is an information processing method for changing the posture of an object arranged in a virtual space, and an object whose posture is to be changed includes a plurality of connection relationships defined. The plurality of elements includes a first type element whose position or orientation is determined based on a relationship with another object arranged in the virtual space, and a first type element A second type element whose position or orientation is determined based on a change in position or orientation, and the first type element is associated with other objects arranged in the virtual space. A first element changing step for changing the position or orientation of the element according to the relationship between the value of the parameter being associated with the value of the parameter associated with the element, and the second type element. And a second element changing step for changing the position or orientation of the connected element of the first type in accordance with the change in the position or orientation of the element of the first type due to the first changing step. And

本発明では、第1種の要素の数が、姿勢を変化させる対象となるオブジェクトに含まれる要素の数より少ないので、すべての要素について他のオブジェクトとの関係に基づいて位置や向きを決定する場合よりも、情報処理の負荷を抑えることができる。また、本発明では、第2種の要素についても、接続されている第1種の要素の位置又は向きの変化に応じて、位置又は向きが変化するので、オブジェクトの姿勢の変化の精細な表現を可能となる。このようにして、本発明によれば、情報処理の負荷を抑えつつ、オブジェクトの姿勢の変化の精細な表現を可能にすることができる。   In the present invention, since the number of first type elements is smaller than the number of elements included in the object whose posture is to be changed, the position and orientation of all elements are determined based on the relationship with other objects. The load of information processing can be suppressed more than the case. Further, according to the present invention, since the position or orientation of the second type element also changes in accordance with the change of the position or orientation of the connected first type element, a fine representation of the change in the posture of the object Is possible. In this way, according to the present invention, it is possible to finely express changes in the posture of an object while suppressing the load of information processing.

本発明の一態様では、第1分類の要素を、自らに関連付けられているパラメータの値と仮想空間内に配置されている他のオブジェクトに関連付けられているパラメータの値との関係に応じて自らの位置又は向きの変化量が決定されるラグドールパーツに変換する変換規則、及び、ラグドールパーツを第1分類の要素に変換する逆変換規則を表す規則情報を取得する規則情報取得手段、として前記コンピュータをさらに機能させ、前記第1の要素変化手段は、第1分類の要素の位置又は向きを変化させる際に、前記規則情報が示す前記変換規則に従って第1分類の要素を対応するラグドールパーツに変換し、当該ラグドールパーツに関連付けられているパラメータの値と、仮想空間内に配置されている他のオブジェクトに関連付けられているパラメータの値と、の関係に応じて、当該ラグドールパーツの位置又は向きを変化させ、前記規則情報が示す前記逆変換規則に従って変化後の当該ラグドールパーツを対応する第1分類の要素に逆変換することを特徴とする。   In one aspect of the present invention, the element of the first classification is determined according to the relationship between the parameter value associated with itself and the parameter value associated with another object arranged in the virtual space. The computer as a rule information acquisition means for acquiring a conversion rule for converting to a ragdoll part in which the amount of change in the position or orientation of the object is determined, and a rule information representing an inverse conversion rule for converting the ragdoll part into an element of the first class When the position or orientation of the first class element is changed, the first element changing means converts the first class element into a corresponding ragdoll part according to the conversion rule indicated by the rule information. Parameter values associated with the ragdoll part, and parameters associated with other objects placed in the virtual space. The position or orientation of the rag doll part is changed according to the relationship with the meter value, and the changed rag doll part is converted back to the corresponding first class element according to the reverse conversion rule indicated by the rule information. It is characterized by that.

また、本発明の一態様では、前記第2の要素変換手段は、前記第2分類の要素について、接続されている第1分類の要素の前記第1の変化手段による位置又は向きの変化に応じて、当該第2分類の要素と当該接続されている第1分類の要素との組合せに関連付けられている規則に従って、当該第2分類の要素の位置又は向きを変化させることを特徴とする。   In the aspect of the invention, the second element conversion unit may respond to a change in position or orientation of the connected first class element by the first changing unit with respect to the second class element. The position or orientation of the second class element is changed according to a rule associated with the combination of the second class element and the connected first class element.

また、本発明の一態様では、前記オブジェクトが配置されている仮想空間を、前記仮想空間内に設定された視点から見た様子を表す画像を生成する画像生成手段、をさらに含む、ことを特徴とする。   In one aspect of the present invention, the image processing device further includes image generation means for generating an image representing a state in which the virtual space in which the object is arranged is viewed from a viewpoint set in the virtual space. And

本発明の一実施形態に係るゲーム装置の構成図である。It is a lineblock diagram of the game device concerning one embodiment of the present invention. 本発明の一実施形態に係るゲーム装置により構築される仮想空間の一例を示す図である。It is a figure which shows an example of the virtual space constructed | assembled with the game device which concerns on one Embodiment of this invention. 本発明の一実施形態に係るゲーム装置で実現される機能の一例を示す機能ブロック図である。It is a functional block diagram which shows an example of the function implement | achieved with the game device which concerns on one Embodiment of this invention. スケルトンデータの一例を示す図である。It is a figure which shows an example of skeleton data. ラグドールデータの一例を示す図である。It is a figure which shows an example of ragdoll data. 本発明の一実施形態に係るゲーム装置で毎フレーム行われる処理の流れの一例を示すフロー図である。It is a flowchart which shows an example of the flow of the process performed every frame with the game device which concerns on one Embodiment of this invention. 本発明の一実施形態に係るゲーム装置で毎フレーム行われる処理の流れの一例を示すフロー図である。It is a flowchart which shows an example of the flow of the process performed every frame with the game device which concerns on one Embodiment of this invention. 仮想空間内に衝突判定用剛体オブジェクト、及び、5つのプロキシオブジェクトが配置されている様子の一例を示す図である。It is a figure which shows an example of a mode that the rigid body object for collision determination and five proxy objects are arrange | positioned in virtual space. レイキャスト始点とレイキャスト終点とをつなぐ7つの線分の一例を示す図である。It is a figure which shows an example of seven line segments which connect a raycast start point and a raycast end point. 樽オブジェクトと衝突判定用剛体オブジェクト、及び、樽オブジェクトとプロキシオブジェクトが衝突する様子の一例を示す図である。It is a figure which shows an example of a mode that the barrel object and the rigid body object for a collision determination, and a barrel object and a proxy object collide. 物理エンジンにおける速度パラメータの値の算出手法の一例を説明するための説明図である。It is explanatory drawing for demonstrating an example of the calculation method of the value of the speed parameter in a physical engine. 衝突判定用オブジェクトやプロキシオブジェクトなどをプレイヤオブジェクトの上方から見た様子の一例を示す図である。It is a figure which shows an example of a mode that the object for collision determination, a proxy object, etc. were seen from the upper direction of a player object.

以下、本発明の一実施形態について図面に基づき詳細に説明する。   Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.

図1は、本発明の一実施形態に係る情報処理システムとして機能するゲーム装置10の構成図である。本実施形態に係るゲーム装置10は、例えば、ゲームコンソール、携帯型ゲーム端末、パーソナルコンピュータ等である。図1に示すように、本実施形態に係るゲーム装置10は、制御部12、記憶部14、操作部16、表示部18、を含んでいる。   FIG. 1 is a configuration diagram of a game apparatus 10 that functions as an information processing system according to an embodiment of the present invention. The game device 10 according to the present embodiment is, for example, a game console, a portable game terminal, a personal computer, or the like. As shown in FIG. 1, the game apparatus 10 according to the present embodiment includes a control unit 12, a storage unit 14, an operation unit 16, and a display unit 18.

制御部12は、ゲーム装置10にインストールされるプログラムに従って動作するCPU等のプログラム制御デバイスである。記憶部14は、ROMやRAM等の記憶素子やハードディスクドライブなどである。操作部16は、キーボードやマウス、あるいは家庭用ゲーム機のコントローラ等であって、ユーザの操作入力を受け付けて、その内容を示す信号を制御部12に出力する。表示部18は、液晶ディスプレイ等の表示デバイスであって、制御部12の指示に従って各種の画像を表示する。   The control unit 12 is a program control device such as a CPU that operates according to a program installed in the game apparatus 10. The storage unit 14 is a storage element such as a ROM or a RAM, a hard disk drive, or the like. The operation unit 16 is a keyboard, a mouse, a controller of a consumer game machine, or the like, and receives a user operation input and outputs a signal indicating the content to the control unit 12. The display unit 18 is a display device such as a liquid crystal display, and displays various images in accordance with instructions from the control unit 12.

なお、ゲーム装置10は、ネットワークボードなどの通信インタフェース、DVD−ROMやBlu−ray(登録商標)ディスクなどの光ディスクを読み取る光ディスクドライブ、USB(Universal Serial Bus)ポートなどを含んでいてもよい。   Note that the game apparatus 10 may include a communication interface such as a network board, an optical disk drive that reads an optical disk such as a DVD-ROM or a Blu-ray (registered trademark) disk, a USB (Universal Serial Bus) port, and the like.

本実施形態に係るゲーム装置10は、本発明を適用したプログラムを実行することにより、メモリ上に、図2に例示する仮想空間20を構築するようになっている。同図に示すように、本実施形態に係る仮想空間20は、仮想3次元空間であり、プレイヤオブジェクト22、床オブジェクト24、壁オブジェクト26、樽オブジェクト28、槍オブジェクト30、などの仮想オブジェクトが視点32とともに配置されている。   The game apparatus 10 according to the present embodiment is configured to construct a virtual space 20 illustrated in FIG. 2 on a memory by executing a program to which the present invention is applied. As shown in the figure, the virtual space 20 according to the present embodiment is a virtual three-dimensional space, and virtual objects such as a player object 22, a floor object 24, a wall object 26, a barrel object 28, and a basket object 30 are viewed from the viewpoint. 32.

本実施形態では、仮想オブジェクトは複数のポリゴンにより構成されている。各ポリゴンにはテクスチャがマッピングされている。本実施形態では、ゲーム装置10のユーザは、操作部16を操作することによって、仮想空間20内においてプレイヤオブジェクト22を移動させることができるようになっている。   In this embodiment, the virtual object is composed of a plurality of polygons. A texture is mapped to each polygon. In the present embodiment, the user of the game apparatus 10 can move the player object 22 in the virtual space 20 by operating the operation unit 16.

また、本実施形態に係るゲーム装置10で実行されるプログラムでは、古典力学の法則等の物理法則をシミュレートする物理エンジンの機能が実現されている。   Further, in the program executed by the game apparatus 10 according to the present embodiment, a function of a physics engine that simulates a physical law such as a law of classical mechanics is realized.

図3は、本実施形態に係るゲーム装置10の機能ブロック図である。図3に示すように、ゲーム装置10は、機能的に、データ記憶部40、操作状態取得部42、オブジェクト配置管理部44、空間画像生成出力部46を含んでいる。データ記憶部40は、記憶部14を主として実現され、その他の要素は制御部12を主として実現される。   FIG. 3 is a functional block diagram of the game apparatus 10 according to the present embodiment. As shown in FIG. 3, the game apparatus 10 functionally includes a data storage unit 40, an operation state acquisition unit 42, an object arrangement management unit 44, and a spatial image generation output unit 46. The data storage unit 40 is realized mainly by the storage unit 14, and the other elements are realized mainly by the control unit 12.

これらの機能は、情報処理システムであるゲーム装置10で、本実施形態に係るプログラムが実行されることにより実現される。このプログラムは、コンピュータ通信ネットワーク経由で通信インタフェースを介して他のコンピュータからダウンロードされてもよいし、光ディスク(例えば、CD−ROMやDVD−ROMなど)、USBメモリ等のコンピュータ読み取り可能な情報記憶媒体に格納され、そこから光ディスクドライブやUSB(Universal Serial Bus)ポートなどを介してゲーム装置10にインストールされてもよい。   These functions are realized by executing the program according to the present embodiment on the game apparatus 10 that is an information processing system. This program may be downloaded from another computer via a communication interface via a computer communication network, or may be a computer-readable information storage medium such as an optical disk (for example, CD-ROM or DVD-ROM) or USB memory. May be installed in the game apparatus 10 via an optical disk drive, a USB (Universal Serial Bus) port, or the like.

本実施形態では、予め、データ記憶部40に、仮想空間20の構築に必要な各種データが記憶されている。データ記憶部40には、例えば、仮想空間20に配置されている仮想オブジェクトに関するポリゴンデータやテクスチャデータなどが記憶されている。   In the present embodiment, various data necessary for constructing the virtual space 20 are stored in the data storage unit 40 in advance. The data storage unit 40 stores, for example, polygon data and texture data related to a virtual object arranged in the virtual space 20.

また、データ記憶部40には、例えば、図4に示すような、プレイヤオブジェクト22の仮想的なスケルトンを表すスケルトンデータ50が記憶されている。スケルトンデータ50には、例えば、木構造におけるノードに対応するボーン52と、木構造におけるリンクに対応するジョイント54と、が含まれている。すなわち、本実施形態では、ジョイント54は、ボーン52同士を接続するとともに、ボーン52間の親子関係を定義している。また、本実施形態に係るスケルトンデータ50では、例えば、胴体に対応付けられるボーン52が、木構造におけるルートノードとして設定されている。以下、胴体に対応付けられるボーン52をルートボーン52aと呼ぶこととする。そして、本実施形態では、プレイヤオブジェクト22の姿勢は、複数のボーン52によって表されるスケルトンの姿勢に基づいて一意に定まるようになっている。そのため、本実施形態では、各ボーン52の位置及び向きが定まると、各ボーン52の位置及び向きに応じたプレイヤオブジェクト22のポリゴンモデルを生成することができるようになっている。また、本実施形態では、ボーン52及びジョイント54は、不可視の仮想オブジェクトである。   The data storage unit 40 stores, for example, skeleton data 50 representing a virtual skeleton of the player object 22 as shown in FIG. The skeleton data 50 includes, for example, a bone 52 corresponding to a node in a tree structure and a joint 54 corresponding to a link in the tree structure. That is, in this embodiment, the joint 54 connects the bones 52 and defines a parent-child relationship between the bones 52. Further, in the skeleton data 50 according to the present embodiment, for example, the bone 52 associated with the trunk is set as the root node in the tree structure. Hereinafter, the bone 52 associated with the body is referred to as a root bone 52a. In the present embodiment, the posture of the player object 22 is uniquely determined based on the posture of the skeleton represented by the plurality of bones 52. Therefore, in this embodiment, when the position and orientation of each bone 52 are determined, a polygon model of the player object 22 corresponding to the position and orientation of each bone 52 can be generated. In the present embodiment, the bone 52 and the joint 54 are invisible virtual objects.

また、本実施形態では、予め、データ記憶部40に、図5に例示するラグドールデータ56も記憶されている。ラグドールデータ56は、物理エンジンによる物理シミュレーション処理の対象となるオブジェクトであるラグドールを示すデータである。また、ラグドールデータ56には、ラグドールパーツ58と、ラグドールパーツ58同士を接続するジョイント60と、を含んでいる。本実施形態では、2つのラグドールパーツ58の間は、2つのジョイント60(物理ジョイント60a及びアニメーションジョイント60b)で接続されている。また、本実施形態では、個々のラグドールパーツ58は、例えば、柱形状、カプセル形状、球形状、あるいは、これらを組み合わせた形状のいずれかをしている。また、本実施形態では、ラグドールパーツ58及びジョイント60は、不可視の仮想オブジェクトである。   In the present embodiment, ragdoll data 56 illustrated in FIG. 5 is also stored in the data storage unit 40 in advance. The ragdoll data 56 is data indicating a ragdoll that is an object to be subjected to a physical simulation process by the physics engine. The rag doll data 56 includes a rag doll part 58 and a joint 60 for connecting the rag doll parts 58 to each other. In the present embodiment, two ragdoll parts 58 are connected by two joints 60 (physical joint 60a and animation joint 60b). In the present embodiment, each rag doll part 58 has, for example, a column shape, a capsule shape, a spherical shape, or a shape obtained by combining these. In the present embodiment, the rag doll part 58 and the joint 60 are invisible virtual objects.

また、データ記憶部40には、各ラグドールパーツ58についての物理量(例えば、大きさ、質量、慣性モーメント(本実施形態では、慣性テンソル)、重力をかける程度、摩擦係数、風の影響を受ける程度、速度、角速度、最大速度、最大角速度、インパルス値(力積を表す値)など)を表すパラメータの値、及び、各ラグドールパーツ58の移動タイプの値も記憶されている。そして、これらの値はゲームの進行状況に応じて変更することが可能になっている。ラグドールパーツ58の移動タイプについては後述する。   Further, the data storage unit 40 includes physical quantities (eg, size, mass, moment of inertia (in this embodiment, inertia tensor)), a degree of applying gravity, a coefficient of friction, and a degree of wind influence on each ragdoll part 58. , A value of a parameter representing a speed, an angular velocity, a maximum velocity, a maximum angular velocity, an impulse value (a value representing impulse), and a value of a movement type of each rag doll part 58 are also stored. These values can be changed according to the progress of the game. The movement type of the ragdoll part 58 will be described later.

また、本実施形態では、データ記憶部40に、ラグドールパーツ58間を接続する一対のジョイント60(物理ジョイント60a及びアニメーションジョイント60bの組合せ)に対応付けられる物理量(例えば、力みなど)を表すパラメータの値も記憶されている。これらの値もゲームの進行状況に応じて変更することが可能になっている。   In the present embodiment, the parameter indicating the physical quantity (for example, force) associated with the pair of joints 60 (a combination of the physical joint 60a and the animation joint 60b) connecting the ragdoll parts 58 in the data storage unit 40. Is also stored. These values can also be changed according to the progress of the game.

また、本実施形態では、データ記憶部40に、仮想空間20全体に関わる物理量を表すパラメータの値も記憶されている。データ記憶部40には、例えば、仮想空間20内の位置座標に対応付けて、その位置の風速を表すパラメータの値が記憶されている。また、本実施形態では、仮想空間20全体に関わる物理量を表すパラメータの値は、所定の規則に従って、時間経過とともに変化するようになっている。   In the present embodiment, parameter values representing physical quantities related to the entire virtual space 20 are also stored in the data storage unit 40. In the data storage unit 40, for example, a parameter value representing the wind speed at the position is stored in association with the position coordinate in the virtual space 20. In the present embodiment, the value of the parameter representing the physical quantity related to the entire virtual space 20 changes with time according to a predetermined rule.

また、本実施形態では、予め、データ記憶部40に、ボーン52とラグドールパーツ58との対応関係、並びに、スケルトンデータ50に含まれるジョイント54とラグドールデータ56に含まれる一対のジョイント60との対応関係を示すデータも記憶されている。図5に示すように、本実施形態では、ボーン52には、ラグドールパーツ58に対応付けられているものも、対応付けられていないものもある。図5の例では、左上腕、右上腕、左太もも、右太もものそれぞれを表すボーン52に対応付けられるラグドールパーツ58が存在しない。本実施形態では、ルートボーン52aに対応付けられるラグドールパーツ58をルートラグドールパーツ58aと呼ぶこととする。そして、本実施形態では、ラグドールデータ56には、ルートラグドールパーツ58aが必ず含まれている。   In this embodiment, the correspondence between the bone 52 and the rag doll part 58 and the correspondence between the joint 54 included in the skeleton data 50 and the pair of joints 60 included in the rag doll data 56 are stored in the data storage unit 40 in advance. Data indicating the relationship is also stored. As shown in FIG. 5, in the present embodiment, the bone 52 may be associated with the ragdoll part 58 or may not be associated with it. In the example of FIG. 5, there is no rag doll part 58 associated with the bone 52 representing each of the left upper arm, upper right arm, left thigh, and right thigh. In the present embodiment, the rag doll part 58 associated with the root bone 52a is referred to as a root rag doll part 58a. In the present embodiment, the rag doll data 56 always includes the root rag doll part 58a.

また、本実施形態では、図5に示すように、スケルトンデータ50に含まれるジョイント54には、ラグドールデータ56に含まれる一対のジョイント60に対応付けられているものも、対応付けられていないものもある。   In the present embodiment, as shown in FIG. 5, the joint 54 included in the skeleton data 50 is not associated with the pair of joints 60 included in the ragdoll data 56. There is also.

また、本実施形態では、予め、データ記憶部40に、スケルトンデータ50をラグドールデータ56に変換する規則を示す変換規則データや、ラグドールデータ56をスケルトンデータ50に変換する規則を示す逆変換規則データも記憶されている。本実施形態では、例えば、データ記憶部40に変換行列Tiを表すデータが記憶されており、変換行列Tiを変換規則データとして用い、変換行列Tiの逆行列を逆変換規則データとして用いる。   In this embodiment, the data storage unit 40 previously stores conversion rule data indicating a rule for converting the skeleton data 50 into the ragdoll data 56, and reverse conversion rule data indicating a rule for converting the ragdoll data 56 into the skeleton data 50. Is also remembered. In the present embodiment, for example, data representing the transformation matrix Ti is stored in the data storage unit 40, the transformation matrix Ti is used as transformation rule data, and the inverse matrix of the transformation matrix Ti is used as inverse transformation rule data.

また、本実施形態では、予め、データ記憶部40に、ラグドールパーツ58に対応付けられていないボーン52について、その親のボーン52の位置及び向きに基づいて自らの位置及び向きを決定する規則を示すデータ(例えば、その親のボーン52の位置及び向きに対する相対的な位置及び向きを示すデータ)が記憶されている。本実施形態では、このデータは、ボーン52と親のボーン52との親子関係に対応付けられる規則を示していている。なお、このデータは、ボーン52の親子関係について共通にあてはめる規則を示していてもよいし、ボーン52の親子関係毎に異なる規則を示していてもよい。   Further, in the present embodiment, a rule for determining the position and orientation of the bone 52 that is not associated with the ragdoll part 58 in advance based on the position and orientation of the parent bone 52 in the data storage unit 40 in this embodiment. Data (for example, data indicating a relative position and orientation with respect to the position and orientation of the parent bone 52) is stored. In the present embodiment, this data indicates a rule associated with the parent-child relationship between the bone 52 and the parent bone 52. This data may indicate a rule that is commonly applied to the parent-child relationship of the bone 52, or may indicate a different rule for each parent-child relationship of the bone 52.

また、本実施形態では、予め、データ記憶部40に、複数のモーション(例えば、歩く、走る、落下するなど)のそれぞれに対応付けられる、スケルトンの姿勢の変化態様を示すモーションデータも記憶されている。本実施形態では、モーションデータには、例えば、予め設定された複数のキーフレームについての、フレーム番号と、そのフレーム番号に対応付けられる、スケルトンデータ50により表されるスケルトンの姿勢(例えば、各ボーン52のローカル座標系における位置及び向き)との組合せが含まれている。また、本実施形態では、モーションデータには、モーションの識別子、及び、そのモーションに対応付けられる状態(本実施形態では、モーション駆動状態、又は、完全ラグドール状態)を示すデータも含まれている。モーション駆動状態、及び、完全ラグドール状態については後述する。また、本実施形態では、プレイヤオブジェクト22の現在のモーションを示すデータも記憶されている。   In the present embodiment, the data storage unit 40 also stores in advance motion data indicating a change in the posture of the skeleton associated with each of a plurality of motions (for example, walking, running, falling, etc.). Yes. In the present embodiment, the motion data includes, for example, a frame number for a plurality of preset key frames and a skeleton posture represented by the skeleton data 50 associated with the frame number (for example, each bone 52 positions and orientations in the local coordinate system). In the present embodiment, the motion data also includes data indicating a motion identifier and a state associated with the motion (in this embodiment, a motion drive state or a complete ragdoll state). The motion drive state and the complete ragdoll state will be described later. In the present embodiment, data indicating the current motion of the player object 22 is also stored.

また、本実施形態では、予め、データ記憶部40に、例えば、コントローラの入力量が所定値を超えた場合に、「歩く」から「走る」にモーションが変化する、あるいは、プレイヤオブジェクト22に足場がない場合は、現在のモーションがどのモーションであっても「落下する」にモーションが変化する、などといった、モーションが遷移する条件を示す遷移条件データが記憶されている。また、本実施形態では、遷移条件データには、モーションが遷移する際に用いられる設定を示すデータ(例えば、遷移時に遷移前のモーションと遷移後のモーションをどのように補間するかを示すデータ、ダンピング係数(低減率)及びその発動条件を示すデータなど)が関連付けられている。ダンピング係数及びその発動条件については後述する。   In the present embodiment, the motion changes from “walking” to “running” in advance in the data storage unit 40 when, for example, the input amount of the controller exceeds a predetermined value, or the player object 22 is scaffolded. In the case where there is not, transition condition data indicating a condition for the transition of the motion is stored, such as the motion changing to “fall” regardless of the current motion. In this embodiment, the transition condition data includes data indicating settings used when the motion transitions (for example, data indicating how to interpolate the motion before transition and the motion after transition at the time of transition, A damping coefficient (reduction rate) and data indicating its activation condition are associated with each other. The damping coefficient and its activation condition will be described later.

本実施形態では、空間画像生成出力部46が、仮想空間20内に配置された視点32から視線方向を見た様子を表す画像(以下、空間フレーム画像と呼ぶ。)を所定時間(例えば、1/60秒)間隔で生成し、表示部18に表示出力する。   In the present embodiment, an image (hereinafter referred to as a space frame image) representing a state in which the spatial image generation output unit 46 looks at the line-of-sight direction from the viewpoint 32 arranged in the virtual space 20 is referred to as a predetermined time (for example, 1). / 60 seconds) is generated at intervals and displayed on the display unit 18.

ここで、前フレームにおいてプレイヤオブジェクト22のモーションが遷移しなかった場合における、本実施形態に係るゲーム装置10で毎フレーム行われる(例えば、1/60秒間隔で行われる)処理の流れの一例を、図6A及び図6Bに例示するフロー図を参照しながら説明する。なお、本処理例では、予め、実行されているゲームにおけるプレイヤの現在位置(必ずしもプレイヤオブジェクト22が配置されている位置と一致していなくてもよい)と現在の向きが設定されていることとする。   Here, an example of a flow of processing that is performed every frame (for example, performed at 1/60 second intervals) in the game apparatus 10 according to the present embodiment when the motion of the player object 22 does not transition in the previous frame. This will be described with reference to the flowcharts illustrated in FIGS. 6A and 6B. In this processing example, the current position of the player in the game being executed (not necessarily coincident with the position where the player object 22 is arranged) and the current direction are set in advance. To do.

まず、操作状態取得部42が、操作部16の操作状態(具体的には、例えば、押下されているボタンの種類、及び、ボタンの押下量)を取得する(S101)。そして、オブジェクト配置管理部44が、本処理の開始時点におけるスケルトンの姿勢(モーション及びフレーム番号など)、S101に示す処理で取得した操作状態、及び、プレイヤの現在位置及び現在の向き、に基づいて、プレイヤオブジェクト22の仮想空間20内における変化の記述に用いられる各種パラメータの値を決定する(S102)。S102に示す処理では、オブジェクト配置管理部44は、例えば、モーションを再生すべきフレーム番号、プレイヤオブジェクト22のワールド座標系における移動量並びに回転量、及び、発生したイベントの種類、などを決定する。   First, the operation state acquisition unit 42 acquires the operation state of the operation unit 16 (specifically, for example, the type of button being pressed and the amount of button press) (S101). Then, based on the skeleton posture (motion, frame number, etc.) at the start of this process, the operation state acquired in the process shown in S101, and the current position and current orientation of the player. Then, the values of various parameters used for describing changes in the virtual space 20 of the player object 22 are determined (S102). In the processing shown in S102, the object arrangement management unit 44 determines, for example, the frame number for reproducing the motion, the movement amount and rotation amount of the player object 22 in the world coordinate system, and the type of event that has occurred.

そして、オブジェクト配置管理部44が、S102に示す処理でイベントが発生していると決定された場合には、そのイベントの種類に応じた処理を実行する(S103)。この処理の詳細については後述する。   If the object arrangement management unit 44 determines that an event has occurred in the process shown in S102, the object arrangement management unit 44 executes a process according to the type of the event (S103). Details of this processing will be described later.

また、オブジェクト配置管理部44は、プレイヤオブジェクト22の現在のモーション、及び、S102に示す処理で決定されたフレーム番号に基づいて、各ボーン52のローカル座標系における位置及び向き(すなわち、スケルトンの姿勢)を決定して、その決定に従うよう各ボーン52を配置する(S104)。   The object arrangement management unit 44 also determines the position and orientation of each bone 52 in the local coordinate system (that is, the skeleton posture) based on the current motion of the player object 22 and the frame number determined in the process shown in S102. ) And the bones 52 are arranged so as to follow the determination (S104).

オブジェクト配置管理部44は、具体的には、例えば、ルートボーン52aを、プレイヤの現在位置をS102に示す処理で決定された移動量だけ移動させた位置に、プレイヤの現在の向きをS102に示す処理で決定された回転量だけ回転させた向きで配置する。なお、このとき、オブジェクト配置管理部44が、ルートボーン52aの鉛直方向が、床オブジェクト24に対する法線方向に沿うように、各ボーン52の位置や向きを調整するようにしてもよい。そして、オブジェクト配置管理部44は、決定されたフレーム番号の直前、直後のキーフレームのフレーム番号に対応付けられる姿勢データを補間してなるデータに従って各ボーン52のローカル座標系における位置及び向きを決定する。そして、オブジェクト配置管理部44は、決定されるローカル座標系における位置及び向きに従うよう残りのボーン52を配置する。   Specifically, for example, the object arrangement management unit 44 shows the current orientation of the player in S102, for example, to the position where the root bone 52a has been moved by the amount of movement determined by the process shown in S102. Arranged in a direction rotated by the amount of rotation determined by the processing. At this time, the object arrangement management unit 44 may adjust the position and orientation of each bone 52 so that the vertical direction of the root bone 52a is along the normal direction to the floor object 24. Then, the object arrangement management unit 44 determines the position and orientation of each bone 52 in the local coordinate system according to data obtained by interpolating the posture data associated with the frame number of the key frame immediately before and after the determined frame number. To do. Then, the object arrangement management unit 44 arranges the remaining bones 52 so as to follow the determined position and orientation in the local coordinate system.

そして、オブジェクト配置管理部44は、データ記憶部40に記憶されている変換規則データを取得して、配置されたスケルトンと、変換規則データと、に基づいて、ラグドールパーツ58に対応付けられているボーン52について、そのボーン52に対応するラグドールパーツ58に位置及び向きを決定して、その決定に従うよう各ラグドールパーツ58を配置する(S105)。オブジェクト配置管理部44は、具体的には、例えば、配置された各ボーン52の位置及び向きを表す値に対して変換行列Tiを乗じることにより、対応するラグドールパーツ58の位置及び向きの値を決定する。   Then, the object arrangement management unit 44 acquires the conversion rule data stored in the data storage unit 40, and is associated with the ragdoll part 58 based on the arranged skeleton and the conversion rule data. For the bone 52, the position and orientation of the rag doll part 58 corresponding to the bone 52 are determined, and each rag doll part 58 is arranged so as to follow the determination (S105). Specifically, for example, the object arrangement management unit 44 multiplies the value representing the position and orientation of each arranged bone 52 by the transformation matrix Ti to obtain the value of the position and orientation of the corresponding ragdoll part 58. decide.

そして、オブジェクト配置管理部44が、S102に示す処理で決定されたパラメータの値に基づいて基準位置Pb及び基準向きDbを決定する(S106)。このとき、オブジェクト配置管理部44は、例えば、プレイヤの現在位置をS102に示す処理で決定された移動量だけ移動させた位置に対してさらにS102に示す処理で決定されたモーションの種類に基づいて決定されるオフセットだけずらした位置を基準位置Pbとして決定し、プレイヤオブジェクト22の現在の向きをS102に示す処理で決定された回転量だけ回転させた向きに対してさらにS102に示す処理で決定されたモーションの種類に基づいて決定されるオフセットだけずらした向きを基準向きDbとして決定する。   Then, the object arrangement management unit 44 determines the reference position Pb and the reference direction Db based on the parameter values determined in the process shown in S102 (S106). At this time, the object arrangement management unit 44, for example, based on the type of motion determined in the process shown in S102 with respect to the position moved from the current position of the player by the movement amount determined in the process shown in S102. The position shifted by the determined offset is determined as the reference position Pb, and the current direction of the player object 22 is determined by the process shown in S102 with respect to the direction rotated by the rotation amount determined in the process shown in S102. The direction shifted by the offset determined based on the type of motion determined is determined as the reference direction Db.

そして、オブジェクト配置管理部44は、代表点の位置が基準位置Pbに一致し、予め設定された前方の向きが基準向きDbに一致するよう、衝突判定用剛体オブジェクト62を仮想空間20内に配置する(S107)。そして、オブジェクト配置管理部44は、それぞれの代表点が基準位置Pb、及び、基準位置Pbに対して上、下、左、右にずらした位置に一致する5つのプロキシオブジェクト64を仮想空間20内に配置する(S108)。図7に、仮想空間20内に衝突判定用剛体オブジェクト62、及び、5つのプロキシオブジェクト64が配置されている様子の一例を示す。図7には、基準位置Pb及び基準向きDbも示されている。この段階で配置されるプロキシオブジェクト64は、あくまでも本処理例におけるプロキシオブジェクト64の候補であり、後述する処理によりこれらのうちの1つが本処理例におけるプロキシオブジェクト64として決定されることとなる。本実施形態では、5つのプロキシオブジェクト64の向きはすべて基準向きDbに一致している。本実施形態では、衝突判定用剛体オブジェクト62、並びに、プロキシオブジェクト64は、仮想空間20内に配置される楕円体形状の不可視の仮想オブジェクトである。また、本実施形態では、衝突判定用剛体オブジェクト62の重心の位置と基準位置Pbに配置されたプロキシオブジェクト64の重心の位置とは一致し、衝突判定用剛体オブジェクト62とプロキシオブジェクト64とは相似形であり、衝突判定用剛体オブジェクト62はプロキシオブジェクト64よりも大きい。   Then, the object arrangement management unit 44 arranges the collision determination rigid body object 62 in the virtual space 20 so that the position of the representative point matches the reference position Pb and the preset forward direction matches the reference direction Db. (S107). Then, the object arrangement management unit 44 sets the five proxy objects 64 in the virtual space 20 whose representative points coincide with the reference position Pb and the positions shifted upward, downward, left, and right with respect to the reference position Pb. (S108). FIG. 7 shows an example of a state in which a collision determination rigid body object 62 and five proxy objects 64 are arranged in the virtual space 20. FIG. 7 also shows the reference position Pb and the reference direction Db. The proxy object 64 arranged at this stage is only a candidate for the proxy object 64 in the present processing example, and one of these is determined as the proxy object 64 in the present processing example by the processing described later. In the present embodiment, the orientations of the five proxy objects 64 all coincide with the reference orientation Db. In this embodiment, the collision determination rigid body object 62 and the proxy object 64 are ellipsoidal invisible virtual objects arranged in the virtual space 20. In the present embodiment, the position of the center of gravity of the collision determining rigid body object 62 and the position of the center of gravity of the proxy object 64 arranged at the reference position Pb match, and the collision determining rigid body object 62 and the proxy object 64 are similar. The collision determination rigid body object 62 is larger than the proxy object 64.

そして、オブジェクト配置管理部44が、プロキシオブジェクト64、衝突判定用剛体オブジェクト62、並びに、ラグドールに対して物理シミュレーション処理を実行する(S109)。このことにより、プロキシオブジェクト64、ラグドール、ラグドールや衝突判定用剛体オブジェクト62に接触している仮想オブジェクトについては、位置や向き、並びに、速度パラメータの値(本実施形態では、速度パラメータの値は3次元ベクトルで表されている。)が変化することがある。例えば、壁オブジェクト26にめりこんでいるプロキシオブジェクト64は、壁オブジェクト26の外に押し戻されることとなる。物理シミュレーション処理の詳細については後述する。   Then, the object arrangement management unit 44 executes a physical simulation process on the proxy object 64, the collision determination rigid body object 62, and the ragdoll (S109). As a result, for the virtual object that is in contact with the proxy object 64, the rag doll, the rag doll, or the collision determining rigid body object 62, the position and orientation, and the speed parameter value (in this embodiment, the speed parameter value is 3). May be changed). For example, the proxy object 64 embedded in the wall object 26 is pushed back out of the wall object 26. Details of the physical simulation process will be described later.

そして、オブジェクト配置管理部44は、プレイヤオブジェクト22の現在のモーションに対応付けられる状態を判定する(S110)。本実施形態では、例えば、「歩く」、「走る」などのモーションはモーション駆動状態に設定され、「落下する」などのモーションは完全ラグドール状態に設定されている。   Then, the object arrangement management unit 44 determines a state associated with the current motion of the player object 22 (S110). In this embodiment, for example, motions such as “walking” and “running” are set in a motion driving state, and motions such as “falling” are set in a complete ragdoll state.

そして、モーション駆動状態である場合は、オブジェクト配置管理部44は、物理シミュレーション処理の実行後の5つのプロキシオブジェクト64の位置のうち、基準位置Pbまでの距離が最も短いプロキシオブジェクト64を、本処理例におけるプロキシオブジェクト64として決定する(S111)。この時点で、オブジェクト配置管理部44は、残りのプロキシオブジェクト64は仮想空間20から消去する。そして、図8に示すように、前フレームにおいて決定されたレイキャスト始点Rsと、プロキシオブジェクト64の代表点(例えば、重心)の位置、及び、代表点に対して所定の長さだけ前、後、左、右、上、下、にずらした位置に一致する7つのレイキャスト終点Reのそれぞれと、をつなぐ7つの線分上に、壁オブジェクト26等の他の仮想オブジェクトが存在しているか否かを判定する(S112)。7つの線分のすべてが他の仮想オブジェクトと交差する場合は(S112:Y)、プロキシオブジェクト64の位置及び向きを、前フレームにおいて決定されたプロキシオブジェクト64の位置及び向きに変更する(S113)。すなわち、プロキシオブジェクト64の位置及び向きは、前フレームにおいて決定されたプロキシオブジェクト64の位置及び向きに戻ることとなる。よって、プロキシオブジェクト64の位置及び向きは、前フレームにおいて決定されたプロキシオブジェクト64の位置及び向きのまま変更されない。また、この場合は、次フレームにおいてもレイキャスト始点Rsの位置は変わらない。   Then, in the motion drive state, the object arrangement management unit 44 performs the main processing on the proxy object 64 having the shortest distance to the reference position Pb among the five proxy objects 64 after the physical simulation process is executed. The proxy object 64 in the example is determined (S111). At this time, the object arrangement management unit 44 deletes the remaining proxy objects 64 from the virtual space 20. Then, as shown in FIG. 8, the raycast start point Rs determined in the previous frame, the position of the representative point (for example, the center of gravity) of the proxy object 64, and a predetermined length before and after the representative point. Whether there are other virtual objects such as the wall object 26 on the seven line segments connecting the seven ray cast end points Re that correspond to the positions shifted to the left, right, upper, lower, and left, respectively. Is determined (S112). When all the seven line segments intersect with other virtual objects (S112: Y), the position and orientation of the proxy object 64 are changed to the position and orientation of the proxy object 64 determined in the previous frame (S113). . That is, the position and orientation of the proxy object 64 return to the position and orientation of the proxy object 64 determined in the previous frame. Therefore, the position and orientation of the proxy object 64 are not changed with the position and orientation of the proxy object 64 determined in the previous frame. In this case, the position of the raycast start point Rs does not change even in the next frame.

一方、他の仮想オブジェクトと交差しない線分が存在する場合は(S112:N)、所定の優先順位に関する規則に従って決定されるいずれかのレイキャスト終点Reを、次フレームにおけるレイキャスト始点Rsとして決定する(S114)。この場合は、プロキシオブジェクト64の位置及び向きは、S111に示す処理で決定された位置及び向きのままである。   On the other hand, if there is a line segment that does not intersect with another virtual object (S112: N), any raycast end point Re determined in accordance with a rule regarding a predetermined priority is determined as the raycast start point Rs in the next frame. (S114). In this case, the position and orientation of the proxy object 64 remain the position and orientation determined in the process shown in S111.

そして、S113に示す処理又はS114に示す処理が終了すると、オブジェクト配置管理部44は、プロキシオブジェクト64の位置及び向きを、次フレームにおけるプレイヤの現在位置及び現在の向きとして決定する(S115)。   When the process shown in S113 or the process shown in S114 ends, the object arrangement management unit 44 determines the position and orientation of the proxy object 64 as the current position and current orientation of the player in the next frame (S115).

一方、S110に示す処理で完全ラグドール状態であると判定された場合は、物理シミュレーション処理の実行後のルートラグドールパーツ58aの位置及び向きを、次フレームにおけるプレイヤの現在位置及び現在の向きとして決定する(S116)。   On the other hand, when it is determined in the process shown in S110 that the rag doll is in the complete rag doll state, the position and orientation of the root rag doll part 58a after execution of the physical simulation process are determined as the current position and current orientation of the player in the next frame. (S116).

そして、S115に示す処理又はS116に示す処理が終了すると、オブジェクト配置管理部44は、物理シミュレーション処理の実行後のラグドールに基づいて、各ラグドールパーツ58に対応するボーン52の位置及び向きを決定して、その決定に従うよう各ボーン52を配置する(S117)。ここで、オブジェクト配置管理部44は、ルートボーン52aから、親のボーン52から子のボーン52への順序で、S117に示す処理を実行する。そして、オブジェクト配置管理部44は、データ記憶部40に記憶されている逆変換規則データを取得して、ラグドールパーツ58が対応付けられているボーン52については、物理シミュレーション処理の実行後のラグドールパーツ58の位置及び向きと、逆変換規則データと、に基づいて、ボーン52の位置及び向きを決定する。オブジェクト配置管理部44は、具体的には、例えば、ラグドールパーツ58の位置及び向きを表す値に対して変換行列Tiの逆行列を乗じることにより、対応するボーン52の位置及び向きの値を決定する。   When the process shown in S115 or the process shown in S116 ends, the object arrangement management unit 44 determines the position and orientation of the bone 52 corresponding to each ragdoll part 58 based on the ragdoll after execution of the physical simulation process. Then, each bone 52 is arranged so as to follow the determination (S117). Here, the object arrangement management unit 44 executes the processing shown in S117 in the order from the root bone 52a to the parent bone 52 to the child bone 52. Then, the object arrangement management unit 44 acquires the inverse transformation rule data stored in the data storage unit 40, and for the bone 52 associated with the ragdoll part 58, the ragdoll part after execution of the physical simulation process is performed. Based on the position and orientation of 58 and the inverse transformation rule data, the position and orientation of the bone 52 are determined. Specifically, the object arrangement management unit 44 determines the value of the position and orientation of the corresponding bone 52 by, for example, multiplying the value representing the position and orientation of the ragdoll part 58 by the inverse matrix of the transformation matrix Ti. To do.

一方、オブジェクト配置管理部44は、ラグドールパーツ58が対応付けられていないボーン52については、親のボーン52の位置及び向きに対する相対的な位置及び向きを示すデータと、S117に示す処理で決定された親のボーン52の位置及び向きと、に基づいて、ラグドールパーツ58に対応付けられていないボーン52の位置及び向きを決定する。このようにして、ラグドールパーツ58が対応付けられていないボーン52については、親のボーン52の位置又は向きの変化に応じて、自らの位置又は向きが変化することとなる。   On the other hand, the object arrangement management unit 44 determines, for the bone 52 not associated with the ragdoll part 58, data indicating the relative position and orientation with respect to the position and orientation of the parent bone 52 and the processing shown in S117. Based on the position and orientation of the parent bone 52, the position and orientation of the bone 52 not associated with the ragdoll part 58 are determined. In this way, the bone 52 that is not associated with the ragdoll part 58 changes its own position or orientation in accordance with the change in the position or orientation of the parent bone 52.

そして、オブジェクト配置管理部44は、S117に示す処理で決定された各ボーン52の位置及び向きに基づいて、描画の対象となるプレイヤオブジェクト22を仮想空間20内に配置する(S118)。そして、オブジェクト配置管理部44は、配置後のプレイヤオブジェクト22、及び、S101に示す処理で取得した操作部16の操作状態に基づいて、次フレームにおけるモーションを決定する(S119)。ここでは、例えば、配置後のプレイヤオブジェクト22に基づいて決定される、足場があるか否かを示す情報、足場の傾斜角、各ラグドールに設定されているインパルス値、及び、遷移条件データに基づいて、次フレームにおけるモーションを決定する。   Then, the object arrangement management unit 44 arranges the player object 22 to be drawn in the virtual space 20 based on the position and orientation of each bone 52 determined in the process shown in S117 (S118). Then, the object arrangement management unit 44 determines a motion in the next frame based on the player object 22 after arrangement and the operation state of the operation unit 16 acquired in the process shown in S101 (S119). Here, for example, based on information indicating whether or not there is a scaffold, an inclination angle of the scaffold, an impulse value set for each rag doll, and transition condition data determined based on the player object 22 after placement. To determine the motion in the next frame.

そして、空間画像生成出力部46が、視点32から視線方向を見た様子を表す空間フレーム画像を生成し、表示部18に表示出力する(S120)。   Then, the spatial image generation / output unit 46 generates a spatial frame image representing a state in which the viewing direction is viewed from the viewpoint 32, and displays and outputs it on the display unit 18 (S120).

ここで、図9に示す、樽オブジェクト28と衝突判定用剛体オブジェクト62、及び、樽オブジェクト28とプロキシオブジェクト64が衝突する様子を例に、S109に示す物理シミュレーション処理について説明する。   Here, the physical simulation process shown in S109 will be described by taking, as an example, a state in which the barrel object 28 and the collision determining rigid body object 62, and the barrel object 28 and the proxy object 64 collide, as shown in FIG.

まず、オブジェクト配置管理部44は、衝突していると判定される仮想オブジェクト対を特定する。本実施形態では、図9に示すように、各仮想オブジェクトには、仮想オブジェクトを覆う不可視の衝突判定領域66が設定されており、オブジェクト配置管理部44は、衝突判定領域66が接触している、あるいは、重なっている仮想オブジェクト対を衝突している仮想オブジェクト対として特定する。図9の例では、プロキシオブジェクト64と、樽オブジェクト28と、が衝突しており、衝突判定用剛体オブジェクト62と、樽オブジェクト28と、が衝突していると判定される。なお、本実施形態では、予め、衝突判定用剛体オブジェクト62とプロキシオブジェクト64との衝突判定は行われないように設定されている。   First, the object arrangement management unit 44 identifies a virtual object pair that is determined to collide. In the present embodiment, as shown in FIG. 9, each virtual object has an invisible collision determination area 66 that covers the virtual object, and the object placement management unit 44 is in contact with the collision determination area 66. Alternatively, an overlapping virtual object pair is specified as a colliding virtual object pair. In the example of FIG. 9, it is determined that the proxy object 64 and the barrel object 28 collide, and the collision determining rigid body object 62 and the barrel object 28 collide. In the present embodiment, the collision determination between the collision determination rigid body object 62 and the proxy object 64 is not performed in advance.

そして、オブジェクト配置管理部44は、図9に示す樽オブジェクト28とプロキシオブジェクト64のそれぞれに設定されている質量パラメータの値、及び、速度パラメータの値、を取得する。そして、オブジェクト配置管理部44は、取得した値、及び、プロキシオブジェクト64が樽オブジェクト28と接触している程度(めりこんでいる程度)を表す指標、に基づいて、プロキシオブジェクト64の速度パラメータの値の変化量を算出する。そして、オブジェクト配置管理部44は、算出された変化量だけ速度パラメータの値を変化させた上で、変化後の速度パラメータの値に基づいて特定される移動量(例えば、変化後の速度パラメータの値を所定倍した移動量)だけプロキシオブジェクト64を移動させる。また、オブジェクト配置管理部44は、図9に示す樽オブジェクト28とプロキシオブジェクト64のそれぞれに設定されている慣性テンソルパラメータの値、角速度パラメータの値を取得する。そして、オブジェクト配置管理部44は、取得した値、及び、プロキシオブジェクト64が樽オブジェクト28に接触している程度(めりこんでいる程度)を表す指標、に基づいて、プロキシオブジェクト64の角速度パラメータの値の変化量を算出する。そして、オブジェクト配置管理部44は、算出された変化量だけ角速度パラメータの値を変化させた上で、変化後の角速度パラメータの値に基づいて特定される回転量(例えば、変化後の角速度パラメータの値を所定倍した回転量)だけプロキシオブジェクト64を回転させる。   Then, the object arrangement management unit 44 acquires the value of the mass parameter and the value of the velocity parameter set for each of the barrel object 28 and the proxy object 64 shown in FIG. Then, the object arrangement management unit 44 determines the speed parameter of the proxy object 64 based on the acquired value and an index indicating the degree to which the proxy object 64 is in contact with the barrel object 28 (degree of depression). The amount of change in value is calculated. Then, the object arrangement management unit 44 changes the speed parameter value by the calculated change amount, and then the movement amount specified based on the changed speed parameter value (for example, the changed speed parameter value). The proxy object 64 is moved by a movement amount obtained by multiplying the value by a predetermined value. Further, the object arrangement management unit 44 acquires the value of the inertia tensor parameter and the value of the angular velocity parameter set for each of the barrel object 28 and the proxy object 64 shown in FIG. Then, the object arrangement management unit 44 determines the angular velocity parameter of the proxy object 64 based on the acquired value and an index indicating the degree to which the proxy object 64 is in contact with the barrel object 28 (degree of depression). The amount of change in value is calculated. Then, the object arrangement management unit 44 changes the value of the angular velocity parameter by the calculated change amount, and then specifies the rotation amount (for example, the changed angular velocity parameter value) based on the changed angular velocity parameter value. The proxy object 64 is rotated by a rotation amount obtained by multiplying the value by a predetermined value.

また、オブジェクト配置管理部44は、図9に示す樽オブジェクト28と衝突判定用剛体オブジェクト62のそれぞれに設定されている質量パラメータの値、及び、速度パラメータの値を取得する。そして、オブジェクト配置管理部44は、取得した値、及び、衝突判定用剛体オブジェクト62が樽オブジェクト28に接触している程度(めりこんでいる程度)を表す指標、に基づいて、樽オブジェクト28の速度パラメータの値の変化量を算出する。そして、オブジェクト配置管理部44は、算出された変化量だけ速度パラメータの値を変化させた上で、変化後の速度パラメータの値に基づいて特定される移動量(例えば、変化後の速度パラメータの値を所定倍した移動量)だけ樽オブジェクト28を移動させる。また、オブジェクト配置管理部44は、樽オブジェクト28と衝突判定用剛体オブジェクト62のそれぞれに設定されている慣性テンソルパラメータの値、角速度パラメータの値を取得する。そして、オブジェクト配置管理部44は、取得した値、及び、衝突判定用剛体オブジェクト62が樽オブジェクト28に接触している程度(めりこんでいる程度)を表す指標、に基づいて、樽オブジェクト28の角速度パラメータの値の変化量を算出する。そして、オブジェクト配置管理部44は、算出された変化量だけ角速度パラメータの値を変化させた上で、変化後の角速度パラメータの値に基づいて特定される回転量(例えば、変化後の角速度パラメータの値を所定倍した回転量)だけ樽オブジェクト28を回転させる。   Further, the object arrangement management unit 44 acquires the value of the mass parameter and the value of the velocity parameter set for each of the barrel object 28 and the collision determination rigid body object 62 shown in FIG. Based on the acquired value and the index indicating the degree to which the collision determination rigid body object 62 is in contact with the barrel object 28 (the degree to which the barrel object 28 is recessed), the object arrangement management unit 44 The amount of change in the speed parameter value is calculated. Then, the object arrangement management unit 44 changes the speed parameter value by the calculated change amount, and then the movement amount specified based on the changed speed parameter value (for example, the changed speed parameter value). The barrel object 28 is moved by a movement amount obtained by multiplying the value by a predetermined value. In addition, the object arrangement management unit 44 acquires the value of the inertia tensor parameter and the value of the angular velocity parameter set for each of the barrel object 28 and the collision determination rigid body object 62. Based on the acquired value and the index indicating the degree to which the collision determination rigid body object 62 is in contact with the barrel object 28 (the degree to which the barrel object 28 is recessed), the object arrangement management unit 44 The amount of change in the value of the angular velocity parameter is calculated. Then, the object arrangement management unit 44 changes the value of the angular velocity parameter by the calculated change amount, and then specifies the rotation amount (for example, the changed angular velocity parameter value) based on the changed angular velocity parameter value. The barrel object 28 is rotated by a rotation amount obtained by multiplying the value by a predetermined value.

本実施形態では、公知の物理エンジンの機能を用いて、上述の変化量の算出を行っている。図10を参照しながら、物理エンジンにおける速度パラメータの値の算出手法の一例を説明する。ここでは、図10に示すように、左の仮想オブジェクト(質量パラメータの値:mA、速度パラメータの値:vA(右向きを正))と、右の仮想オブジェクト(質量パラメータの値:mB、速度パラメータの値:vB(右向きを正))とが衝突した場合を考える。ここでは、仮想オブジェクト同士が接触している程度(めりこんでいる程度)を表す指標として、仮想オブジェクトの重心をつなぐ直線に沿った方向での、仮想オブジェクトが重なっている長さdを用いることとする。   In the present embodiment, the above-described change amount is calculated using a function of a known physical engine. An example of a method for calculating the value of the speed parameter in the physical engine will be described with reference to FIG. Here, as shown in FIG. 10, the left virtual object (mass parameter value: mA, velocity parameter value: vA (rightward is positive)) and the right virtual object (mass parameter value: mB, velocity parameter). A value of vB (positive to the right)) collides. Here, the length d where the virtual objects overlap in the direction along the straight line connecting the centers of gravity of the virtual objects is used as an index representing the degree to which the virtual objects are in contact with each other (the degree of depression). And

すると、衝突後の左の仮想オブジェクトの速度vA’は、vA’=vA−(mB/(mA+mB))×(α(vA−vB)+βd)という数式により算出され、衝突後の右の仮想オブジェクトの速度vB’は、vB’=vB+(mA/(mA+mB))×(α(vA−vB)+βd)という数式により算出される。ここで、α、βは所定の調整値を表している。   Then, the velocity vA ′ of the left virtual object after the collision is calculated by an equation of vA ′ = vA− (mB / (mA + mB)) × (α (vA−vB) + βd), and the right virtual object after the collision is calculated. The velocity vB ′ is calculated by the following equation: vB ′ = vB + (mA / (mA + mB)) × (α (vA−vB) + βd). Here, α and β represent predetermined adjustment values.

このように、物理エンジンでは、衝突した仮想オブジェクトそれぞれの速度パラメータの値の変化量は、質量パラメータの値の比(質量パラメータの値の和に対する衝突相手の質量パラメータの値の割合)や、相対速度や、仮想オブジェクト同士が接触している程度(めりこんでいる程度)などに基づいて決定されることとなる。同様に、物理エンジンでは、衝突した仮想オブジェクトそれぞれの角速度パラメータの値の変化量は、仮想オブジェクトそれぞれの慣性テンソルの値や、相対角速度や、仮想オブジェクト同士が接触している程度(めりこんでいる程度)などに基づいて決定されることとなる。   In this way, in the physics engine, the amount of change in the speed parameter value of each collision virtual object is the ratio of the mass parameter value (ratio of the mass parameter value of the collision partner to the sum of the mass parameter values) or relative It is determined based on the speed, the degree to which the virtual objects are in contact with each other (degree of indentation), and the like. Similarly, in the physics engine, the amount of change in the value of the angular velocity parameter of each collided virtual object is the degree of inertia tensor value, relative angular velocity of each virtual object, or the degree to which the virtual objects are in contact (indented). Degree) and the like.

図9における仮想オブジェクト同士が接触している程度(めりこんでいる程度)としては、例えば、所定の投影面に投影した際における、仮想オブジェクトの重心の投影点をつなぐ直線に沿った方向での、衝突判定領域66が重なっている長さを用いることが考えられる。そして、本実施形態では、この長さが長ければ長いほど上述の変化量が大きくなるようになっている。例えば、衝突判定用剛体オブジェクト62と樽オブジェクト28との衝突における物理シミュレーション処理では、図9に示されている長さd1が用いられ、プロキシオブジェクト64と樽オブジェクト28との衝突における物理シミュレーション処理では図9に示されている長さd2が用いられる。   The degree to which the virtual objects in FIG. 9 are in contact with each other (the degree to which the virtual objects are in contact) is, for example, in a direction along a straight line connecting the projection points of the center of gravity of the virtual object when projected onto a predetermined projection plane. It is conceivable to use a length in which the collision determination areas 66 overlap. In the present embodiment, the longer the length is, the larger the amount of change described above is. For example, in the physical simulation process in the collision between the collision determination rigid body object 62 and the barrel object 28, the length d1 shown in FIG. 9 is used, and in the physical simulation process in the collision between the proxy object 64 and the barrel object 28, The length d2 shown in FIG. 9 is used.

また、本実施形態では、衝突判定用剛体オブジェクト62には、ゲームにおいて他の仮想オブジェクトとの関係でプレイヤオブジェクト22として設定するのに妥当な質量パラメータや慣性テンソルパラメータの値が設定される。具体的には、例えば、プレイヤオブジェクト22と他の仮想オブジェクトとの質量比や慣性テンソル比が、ゲームにおけるプレイヤと他のオブジェクトとの質量比や慣性テンソル比と整合する値が設定される。一方、プロキシオブジェクト64には、ゲームにおいて他の仮想オブジェクトとの関係でプレイヤオブジェクト22として設定するのに妥当な質量パラメータや慣性テンソルパラメータの値よりも充分大きな値が質量パラメータや慣性テンソルパラメータの値として設定される。   In the present embodiment, the collision determination rigid body object 62 is set with values of mass parameters and inertia tensor parameters that are appropriate to be set as the player object 22 in relation to other virtual objects in the game. Specifically, for example, a value is set such that the mass ratio or inertia tensor ratio between the player object 22 and another virtual object matches the mass ratio or inertia tensor ratio between the player and another object in the game. On the other hand, the proxy object 64 has a value sufficiently larger than the value of the mass parameter or inertia tensor parameter appropriate for setting as the player object 22 in relation to other virtual objects in the game. Set as

また、本実施形態では、プロキシオブジェクト64に設定される質量パラメータや慣性テンソルパラメータの値が衝突相手となる仮想オブジェクトの属性に基づいて決定される。本実施形態では、例えば、衝突相手となる仮想オブジェクトに設定されている質量パラメータや慣性テンソルパラメータの値が大きくなればなるほど、質量パラメータや慣性テンソルパラメータの値が大きくなるよう、プロキシオブジェクト64の質量パラメータや慣性テンソルパラメータの値が設定される。例えば、衝突相手となる仮想オブジェクトに設定されている質量パラメータや慣性テンソルパラメータの値に比例した値がプロキシオブジェクト64の質量パラメータや慣性テンソルパラメータの値として設定される。また、例えば、衝突相手となる仮想オブジェクトの種別(例えば、壁オブジェクト26であるのか樽オブジェクト28であるのか、など)に応じて、プロキシオブジェクト64に設定される質量パラメータや慣性テンソルパラメータの値が決定されるようにしてもよい。   Further, in the present embodiment, the values of the mass parameter and inertia tensor parameter set for the proxy object 64 are determined based on the attribute of the virtual object that is the collision partner. In the present embodiment, for example, the mass of the proxy object 64 is increased so that the larger the value of the mass parameter or inertia tensor parameter set in the virtual object that is the collision partner is, the larger the value of the mass parameter or inertia tensor parameter is. Parameters and inertia tensor parameter values are set. For example, a value proportional to the value of the mass parameter or inertia tensor parameter set in the virtual object that is the collision partner is set as the value of the mass parameter or inertia tensor parameter of the proxy object 64. Further, for example, depending on the type of the virtual object that becomes the collision partner (for example, whether it is the wall object 26 or the barrel object 28), the value of the mass parameter or inertia tensor parameter set in the proxy object 64 is set. It may be determined.

本実施形態では、衝突相手の仮想オブジェクトの物理量(速度等)の変化を算出する基礎となる、プレイヤオブジェクト22に対応付けられるパラメータの値(ここでは、衝突判定用剛体オブジェクト62に設定されている質量パラメータや慣性テンソルパラメータの値)と、プレイヤオブジェクト22の物理量(速度等)の変化を算出する基礎となる、プレイヤオブジェクト22に対応付けられるパラメータの値(ここでは、プロキシオブジェクト64に設定されている質量パラメータや慣性テンソルパラメータの値)が異なる。そのため、丸め誤差等の影響によって物理エンジンによる算出結果が不安定にならないよう、パラメータの値を設定することで、物理エンジンによる算出結果を安定させることができることとなり、その結果、衝突する様子の表現のリアリティがなくなってしまう可能性が低減することとなる。   In the present embodiment, the parameter value associated with the player object 22 (here, the collision determination rigid body object 62 is set), which is the basis for calculating the change in the physical quantity (speed, etc.) of the virtual object of the collision partner. The value of the parameter associated with the player object 22 (here, the proxy object 64 is set), which is the basis for calculating the change in the physical parameter (speed, etc.) of the player object 22 and the mass parameter or inertia tensor parameter value) The mass parameter and inertia tensor parameter value) are different. Therefore, by setting parameter values so that the calculation result by the physics engine does not become unstable due to the influence of rounding error, etc., the calculation result by the physics engine can be stabilized. The possibility of losing reality will be reduced.

また、本実施形態では、衝突判定用剛体オブジェクト62が、プロキシオブジェクト64よりも大きくなるよう設定されるため、衝突相手の仮想オブジェクトが、衝突判定用剛体オブジェクト62とは衝突するが、プロキシオブジェクト64とは衝突しないということが起こりうる。そして、衝突判定用剛体オブジェクト62には、ゲームにおいて他の仮想オブジェクトとの関係でプレイヤオブジェクト22として設定するのに妥当な質量パラメータや慣性テンソルパラメータの値が設定されるので、衝突相手の仮想オブジェクトが移動する際の表現(例えば、吹き飛ぶような表現)が的確なものとなることが期待される。また、プロキシオブジェクト64には、妥当な質量パラメータや慣性テンソルパラメータの値よりも充分大きな値(例えば、衝突相手の仮想オブジェクトに設定されている質量パラメータや慣性テンソルパラメータの値に比例した値)が質量パラメータや慣性テンソルパラメータの値として設定されるので、質量パラメータや慣性テンソルパラメータの値が大きな仮想オブジェクト(例えば、壁オブジェクト26)とプロキシオブジェクト64が衝突したと判定された場合に、丸め誤差の影響を受けずにプロキシオブジェクト64がきちんと停止するようになることも期待される。   In the present embodiment, since the collision determination rigid body object 62 is set to be larger than the proxy object 64, the collision partner virtual object collides with the collision determination rigid body object 62, but the proxy object 64 It can happen that there is no conflict. Since the collision determination rigid body object 62 is set with values of mass parameters and inertia tensor parameters that are appropriate to be set as the player object 22 in relation to other virtual objects in the game, the virtual object of the collision partner It is expected that the expression (for example, expression that blows away) when moving will be accurate. Further, the proxy object 64 has a value sufficiently larger than the value of a reasonable mass parameter or inertia tensor parameter (for example, a value proportional to the value of the mass parameter or inertia tensor parameter set in the virtual object of the collision partner). Since it is set as the value of the mass parameter or inertia tensor parameter, when it is determined that the virtual object (for example, the wall object 26) having a large value of the mass parameter or inertia tensor parameter collides with the proxy object 64, the influence of the rounding error It is also expected that the proxy object 64 will stop properly without receiving.

また、本実施形態では、衝突相手となる仮想オブジェクトの属性に応じた、プロキシオブジェクト64の質量パラメータや慣性テンソルパラメータの値が可能であるので、パラメータの値の設定のバリエーションが広がり、仮想空間20内における仮想オブジェクト同士が衝突する様子の表現のバリエーションを広げることができる。   Further, in this embodiment, since the value of the mass parameter or the inertia tensor parameter of the proxy object 64 according to the attribute of the virtual object that becomes the collision partner is possible, variations in parameter value setting are widened, and the virtual space 20 Variations in the expression of how virtual objects collide with each other can be expanded.

また、本実施形態では、S111に示す処理で、複数のプロキシオブジェクト64の候補のうち、基準位置Pbまでの距離が最も短いプロキシオブジェクト64が、本処理例におけるプロキシオブジェクト64として決定されるので、プレイヤオブジェクト22を進めようとしているところ付近にプレイヤオブジェクト22を進めることができ、細かい凹凸のある壁オブジェクト26にひっかかる、床オブジェクト24に設けられている小さな段差の影響を受け、プレイヤオブジェクト22が思いの外高く飛んでしまう、などといった、リアリティのない画像表現となるおそれを低減することができることとなる。また、さらに、S112〜S114に示す処理で、S111に示す処理で決定されたプロキシオブジェクト64内の所定数の点のそれぞれと、前フレームのプロキシオブジェクト64内の点と、をつなぐ線分上に仮想オブジェクトが存在している場合には、プロキシオブジェクト64が移動しないこととなるので、プロキシオブジェクト64が仮想オブジェクトをすり抜けてしまうおそれを低減することができることとなる。   In the present embodiment, the proxy object 64 having the shortest distance to the reference position Pb among the plurality of proxy object 64 candidates is determined as the proxy object 64 in the present processing example in the process shown in S111. The player object 22 can be moved to the vicinity where the player object 22 is about to be advanced, and the player object 22 is unexpectedly influenced by the small step provided on the floor object 24 that is caught by the wall object 26 having fine unevenness. It is possible to reduce the possibility of an image expression without reality, such as flying high. Further, in the processes shown in S112 to S114, the predetermined number of points in the proxy object 64 determined in the process shown in S111 and the points in the proxy object 64 of the previous frame are connected to the line segment. When the virtual object exists, the proxy object 64 does not move, so that the possibility that the proxy object 64 slips through the virtual object can be reduced.

また、本実施形態では、オブジェクト配置管理部44は、各仮想オブジェクトに設定されている、風の影響を受ける程度を示すパラメータの値と、仮想オブジェクトが配置されている位置に対応付けられている風速パラメータの値と、に基づいて、仮想オブジェクトの位置や向きをさらも変化させる。   In the present embodiment, the object arrangement management unit 44 associates the parameter value indicating the degree of influence of the wind set for each virtual object with the position where the virtual object is arranged. Based on the value of the wind speed parameter, the position and orientation of the virtual object are further changed.

ラグドールパーツ58と他の仮想オブジェクトとの衝突についても、ただし、ジョイント60による拘束条件があるなどといった相違点はあるが、基本的には上述と同様の物理シミュレーション処理が行われる。なお、本実施形態では、モーションの種類に基づいて、各ラグドールパーツ58の移動タイプの値が決定される。移動タイプの値としては、例えば、キーフレーム、位置制御、速度制御、ジョイント制御、位置制御(ワンウェイ)、速度制御(ワンウェイ)、ジョイント制御(ワンウェイ)などが挙げられる。移動タイプの値がキーフレームであるラグドールパーツ58は、他の仮想オブジェクトと衝突しても物理シミュレーション処理の結果位置が変化することはない。移動タイプの値が位置制御であるラグドールパーツ58は、モーションの種類とフレーム番号との組合せに基づいて決定される位置に配置された上で物理シミュレーション処理が実行されることとなる。移動タイプの値が速度制御であるラグドールパーツ58は、モーションの種類とフレーム番号との組合せに基づいて決定される位置と現在位置との差分に基づいてラグドールパーツ58の速度パラメータの値が設定された上で物理シミュレーション処理が実行されることとなる。また、移動タイプが上述のワンウェイに該当するものについては、衝突相手から影響を受けるが、衝突相手に影響を与えないこととなる。   The collision between the rag doll part 58 and another virtual object is different from that of the virtual object in that there is a constraint condition by the joint 60, but basically the same physical simulation process as described above is performed. In the present embodiment, the value of the movement type of each rag doll part 58 is determined based on the type of motion. Examples of the movement type value include key frame, position control, speed control, joint control, position control (one-way), speed control (one-way), joint control (one-way), and the like. The position of the ragdoll part 58 whose movement type value is a key frame does not change as a result of the physical simulation process even if it collides with another virtual object. The rag doll part 58 whose movement type value is position control is arranged at a position determined based on the combination of the type of motion and the frame number, and then the physical simulation process is executed. For the rag doll part 58 whose movement type value is speed control, the speed parameter value of the rag doll part 58 is set based on the difference between the position determined based on the combination of the type of motion and the frame number and the current position. Then, the physical simulation process is executed. In addition, the movement type corresponding to the above-described one-way is affected by the collision partner, but does not affect the collision partner.

移動タイプの値がジョイント制御であるラグドールパーツ58は、モーションの種類とフレーム番号との組合せに基づいて決定される、親のラグドールパーツ58との間の角度がアニメーションジョイント60bの角度として設定される。また、移動タイプの値がジョイント制御であるラグドールパーツ58は、所定の物理的制約条件が物理ジョイント60aに設定される。そして、このようなジョイント60の設定がされた上で、物理シミュレーション処理が実行されることとなる。ここで、物理シミュレーション処理では、アニメーションジョイント60bの角度は変化せず、物理ジョイント60aの角度は物理的制約条件を満たす範囲で可変となる。そして、本実施形態では、ジョイント60に設定されている力みパラメータの値に応じた比率でアニメーションジョイント60bでの物理シミュレーション処理の結果と物理ジョイント60aでの物理シミュレーション処理の結果とがブレンド(例えば、力みパラメータの値が100%であれば、アニメーションジョイント60bの比率が100%となり、力みパラメータの値が0%であれば、物理ジョイント60aの比率が100%となる。)された結果が、物理シミュレーション処理の最終結果として取り扱われることとなる。   The ragdoll part 58 whose movement type value is joint control is determined based on the combination of the motion type and the frame number, and the angle between the ragdoll part 58 and the parent ragdoll part 58 is set as the angle of the animation joint 60b. . In addition, for the ragdoll part 58 whose movement type value is joint control, a predetermined physical constraint condition is set in the physical joint 60a. Then, after such a setting of the joint 60, the physical simulation process is executed. Here, in the physics simulation process, the angle of the animation joint 60b does not change, and the angle of the physics joint 60a is variable within a range that satisfies the physical constraint conditions. In this embodiment, the result of the physical simulation process at the animation joint 60b and the result of the physical simulation process at the physical joint 60a are blended at a ratio corresponding to the value of the force parameter set for the joint 60 (for example, If the value of the force parameter is 100%, the ratio of the animation joint 60b is 100%, and if the value of the force parameter is 0%, the ratio of the physical joint 60a is 100%. Will be handled as the final result of the physics simulation process.

そして、上述のS117の示す処理で説明したように、本実施形態では、物理シミュレーション処理の実行後のラグドールパーツ58については、逆変換規則データに基づいて対応するボーン52に変換される。一方、一部のボーン52については、対応するラグドールパーツ58が設定されておらず、親のボーン52の位置及び向きに応じてボーン52の位置及び向きが設定される。このように、本実施形態では、物理シミュレーション処理の対象となるラグドールパーツ58の総数は、ボーン52の総数よりも少なくなっている。よって、すべてのボーン52について対応するラグドールパーツ58が存在する場合と比較して、本実施形態では、S109に示す物理シミュレーション処理でのゲーム装置10の計算負荷を低減することができることとなる。   In the present embodiment, the ragdoll part 58 after the physical simulation process is converted into the corresponding bone 52 based on the inverse conversion rule data, as described in the process indicated by S117 described above. On the other hand, for some of the bones 52, the corresponding ragdoll parts 58 are not set, and the position and orientation of the bone 52 are set according to the position and orientation of the parent bone 52. As described above, in this embodiment, the total number of ragdoll parts 58 to be subjected to the physical simulation process is smaller than the total number of bones 52. Therefore, compared with the case where the corresponding rag doll parts 58 exist for all the bones 52, in this embodiment, the calculation load of the game apparatus 10 in the physical simulation process shown in S109 can be reduced.

また、例えば、S119に示す処理でモーションが変化した際に、データ記憶部40に記憶されているデータが示す設定に従って、プレイヤオブジェクト22の位置や向きの決定が行われるようにしてもよい。具体的には、例えば、遷移前のモーションにおける上述のS118に示す処理の結果と、遷移前のモーションにおける上述のS118に示す処理の結果と、を補間することによって得られる結果が、描画の対象となるプレイヤオブジェクト22の配置が決定されるようにしてもよい。   Further, for example, when the motion changes in the process shown in S119, the position and orientation of the player object 22 may be determined according to the setting indicated by the data stored in the data storage unit 40. Specifically, for example, the result obtained by interpolating the result of the process shown in S118 in the motion before the transition and the result of the process shown in S118 in the motion before the transition is a drawing target. The arrangement of the player object 22 may be determined.

本実施形態では、モーションが遷移した場合には、遷移条件データに関連付けられているデータが示す設定に応じた修正が、上述のS101〜S120に示す処理に加えられることとなる。例えば、数フレームにわたって、遷移前のモーションでの処理の結果と、遷移後のモーションでの処理の結果とを、遷移条件データに関連付けられているデータが示す設定に応じたブレンド比率で補間した処理結果が、最終的な処理結果として取り扱われる。また、本実施形態では、数フレームの間に、徐々に、遷移前のモーションでの処理の結果が占めるブレンド比率が低くなり、遷移後のモーションでの処理の結果が占めるブレンド比率が高くなるようになっている。   In this embodiment, when a motion transitions, correction according to the setting indicated by the data associated with the transition condition data is added to the processing shown in S101 to S120 described above. For example, over several frames, the result of processing in the motion before the transition and the result of processing in the motion after the transition are interpolated with the blend ratio according to the setting indicated by the data associated with the transition condition data The result is treated as the final processing result. In the present embodiment, the blend ratio occupied by the processing result in the motion before the transition gradually decreases and the blend ratio occupied by the processing result in the motion after the transition gradually increases during several frames. It has become.

また、本実施形態では、前フレームまでモーション駆動状態であった仮想オブジェクトが、完全ラグドール状態に遷移するということが考えられる。この場合、本実施形態では、オブジェクト配置管理部44は、モーション駆動状態での処理結果の速度パラメータの値を用いて、完全ラグドール状態での物理シミュレーション処理を行うこととなる。このとき、本実施形態では、モーションの遷移に対応付けられている上述の発動条件を満足する場合(例えば、速度パラメータの値の、仮想空間20に設定された鉛直方向上向きの成分が所定値以上である場合)には、完全ラグドール状態になった際の物理シミュレーション処理後の速度パラメータの値に対して、さらに、予め、仮想空間20に設定された鉛直方向上向き成分について、モーションの遷移に対応付けられている上述のダンピング係数の値(例えば、設定されている値は0から1までの間のいずれかの実数)を乗じることで、最終的な速度パラメータの値を決定する。こうすれば、最終的な速度パラメータの値であるベクトルの向きが、ダンピング係数の値が乗じられる前の速度パラメータの値であるベクトルの向きに対して鉛直方向下向きにずれることととなる。例えば、2つ前のフレームにおけるプレイヤの現在位置から1つ前のフレームにおけるプレイヤの現在位置に向かう向きに速度パラメータが表す速度ベクトルが設定されている場合に、その向きよりも鉛直方向下向きに速度パラメータが表す速度ベクトルが変更されることとなる。そのため、完全ラグドール状態に遷移した際に、リアリティがない事態が発生すること(例えば、プレイヤオブジェクト22が上方に吹っ飛んでしまうこと)を防ぐことができることとなる。   Further, in the present embodiment, it can be considered that a virtual object that has been in a motion-driven state until the previous frame transitions to a complete ragdoll state. In this case, in this embodiment, the object arrangement management unit 44 performs the physical simulation process in the complete ragdoll state using the value of the speed parameter of the process result in the motion drive state. At this time, in the present embodiment, when the above-described activation condition associated with the motion transition is satisfied (for example, the vertical component of the velocity parameter value set in the virtual space 20 is equal to or greater than a predetermined value) In the case of), for the velocity parameter value after the physical simulation processing in the complete ragdoll state, the vertical direction upward component set in the virtual space 20 corresponds to the motion transition in advance. The final value of the speed parameter is determined by multiplying the value of the above-described damping coefficient (for example, the set value is any real number between 0 and 1). In this way, the direction of the vector that is the final value of the speed parameter is shifted downward in the vertical direction with respect to the direction of the vector that is the value of the speed parameter before the value of the damping coefficient is multiplied. For example, when a speed vector represented by a speed parameter is set in a direction from the current position of the player in the previous frame to the current position of the player in the previous frame, the speed is downward in the vertical direction from that direction. The velocity vector represented by the parameter is changed. Therefore, it is possible to prevent a situation without reality (for example, the player object 22 from blowing up) when transitioning to the complete ragdoll state.

ここで、上述のS103に示す処理における、発生したイベントの種類に応じた処理の一例について図11を参照しながら説明する。ここでは、例えば、プレイヤオブジェクト22が槍オブジェクト30を所持するというイベントが発生したこととする。そして、図11は、上述のイベントが発生した際の、衝突判定用剛体オブジェクト62やプロキシオブジェクト64などをプレイヤオブジェクト22の上方から見た様子の一例を示す図である。   Here, an example of processing according to the type of event that has occurred in the processing shown in S103 will be described with reference to FIG. Here, for example, it is assumed that an event has occurred in which the player object 22 has the bag object 30. FIG. 11 is a diagram illustrating an example of a state where the collision determination rigid body object 62, the proxy object 64, and the like are viewed from above the player object 22 when the above-described event occurs.

図11に示すように、上述のイベントが発生した際には、オブジェクト配置管理部44は、プロキシオブジェクト64の大きさを、プレイヤオブジェクト22と槍オブジェクト30の両方を包含する形状になるよう大きくするとともに、槍オブジェクト30に設定されていた衝突判定領域66を消去する。そして、オブジェクト配置管理部44は、大きくなったプロキシオブジェクト64を覆う衝突判定領域66を、プロキシオブジェクト64と槍オブジェクト30の両方に対応付けられる衝突判定領域66として設定する。このようにして、プレイヤオブジェクト22と槍オブジェクト30の両方を包含する閉領域が、プロキシオブジェクト64と槍オブジェクト30の両方に対応付けられる衝突判定領域66として設定されることとなる。また、本実施形態では、図11に示すように、プロキシオブジェクト64の形状の変化に伴い、変化後のプロキシオブジェクト64を包含する形状となるよう衝突判定用剛体オブジェクト62、及び、衝突判定用剛体オブジェクト62を覆う衝突判定領域66の形状も変化する。   As shown in FIG. 11, when the above-described event occurs, the object arrangement management unit 44 increases the size of the proxy object 64 so as to include both the player object 22 and the heel object 30. At the same time, the collision determination area 66 set in the saddle object 30 is deleted. Then, the object arrangement management unit 44 sets the collision determination area 66 that covers the enlarged proxy object 64 as the collision determination area 66 that is associated with both the proxy object 64 and the saddle object 30. In this way, the closed region including both the player object 22 and the heel object 30 is set as the collision determination region 66 associated with both the proxy object 64 and the heel object 30. In the present embodiment, as shown in FIG. 11, as the shape of the proxy object 64 changes, the collision determination rigid body object 62 and the collision determination rigid body so as to have a shape including the changed proxy object 64. The shape of the collision determination area 66 that covers the object 62 also changes.

そして、本実施形態では、プロキシオブジェクト64を覆う衝突判定領域66が、他の仮想オブジェクトの衝突判定領域66と接触した(あるいは、重なった)際には、他の仮想オブジェクトと、プロキシオブジェクト64と、が衝突したと判定される。また、衝突判定用剛体オブジェクト62を覆う衝突判定領域66が、他の仮想オブジェクトの衝突判定領域66と接触した(あるいは、重なった)際には、他の仮想オブジェクトと、衝突判定用剛体オブジェクト62と、が衝突したと判定される。なお、ここでは、プロキシオブジェクト64や衝突判定用剛体オブジェクト62の衝突判定領域66が、他の仮想オブジェクトの衝突判定領域66と接触した(あるいは、重なった)際に、プロキシオブジェクト64や衝突判定用剛体オブジェクト62が、他の仮想オブジェクトと衝突したと判定される代わりに、他の仮想オブジェクトと槍オブジェクト30とが衝突したと判定されるようにしても、他の仮想オブジェクトとプレイヤオブジェクト22とが衝突したと判定されるようにしてもよい。   In this embodiment, when the collision determination area 66 covering the proxy object 64 comes into contact with (or overlaps) the collision determination area 66 of another virtual object, the other virtual object, the proxy object 64, , Is determined to have collided. When the collision determination area 66 covering the collision determination rigid body object 62 comes into contact with (or overlaps) the collision determination area 66 of another virtual object, the collision determination rigid body object 62 and the other virtual object are collided. Are determined to have collided. Here, when the collision determination area 66 of the proxy object 64 or the collision determination rigid body object 62 comes into contact with (or overlaps) the collision determination area 66 of another virtual object, the proxy object 64 or the collision determination area 66 is used. Instead of determining that the rigid object 62 has collided with another virtual object, it is possible to determine that the other virtual object and the player object 22 have collided with the other virtual object and the saddle object 30. You may make it determine with having collided.

このようにして、本実施形態では、プレイヤオブジェクト22が槍オブジェクト30を所持するというイベントが発生した時期以降については、プレイヤオブジェクト22と槍オブジェクト30との間での衝突判定処理が実行されないようにすることができる。   Thus, in the present embodiment, the collision determination process between the player object 22 and the bag object 30 is not executed after the time when the event that the player object 22 possesses the bag object 30 occurs. can do.

また、オブジェクト配置管理部44は、図11に示すように、プロキシオブジェクト64を、その一部に扇形柱を含む形状となるようにしてもよい。オブジェクト配置管理部44は、この扇形柱の断面の扇形の中心角θをプレイヤオブジェクト22に設定されている角速度パラメータの値に基づいて決定する。具体的には、例えば、角速度パラメータの値に1フレームの時間間隔を乗じた値が扇形の中心角θの値として設定される。図11の例では2つの扇形柱が示されており、それぞれの扇形柱の断面の扇形の中心は、プレイヤオブジェクト22と槍オブジェクト30位置関係に基づいて決定される位置(例えば、プレイヤオブジェクト22の近傍)に設定されている。また、それぞれの扇形柱の断面の扇形について、扇形の中心と槍オブジェクト30の先端までの線分と、その線分をプレイヤオブジェクト22の回転方向後方だけ上述の回転角θだけ回転させた線分と、が扇形の半径となっている。   Further, as shown in FIG. 11, the object arrangement management unit 44 may make the proxy object 64 have a shape including a fan-shaped column in a part thereof. The object arrangement management unit 44 determines the central angle θ of the sector of the section of the sector column based on the value of the angular velocity parameter set in the player object 22. Specifically, for example, a value obtained by multiplying the value of the angular velocity parameter by a time interval of one frame is set as the value of the fan-shaped central angle θ. In the example of FIG. 11, two fan-shaped columns are shown, and the center of the sector shape of each fan-shaped column is determined based on the positional relationship between the player object 22 and the saddle object 30 (for example, the player object 22 Near). Further, with respect to the sector shape of the section of each sector column, a line segment to the center of the sector shape and the tip of the saddle object 30 and a line segment obtained by rotating the line segment by the rotation angle θ described above only in the rearward direction of the player object 22. And has a fan-shaped radius.

このようにして、例えば、槍オブジェクト30のような細長い仮想オブジェクトを振り回すような動作が仮想空間20内で行われるような場面でも、図11に示すように、1フレームで移動する槍オブジェクト30の軌跡上に壁オブジェクト26等の仮想オブジェクトが存在するような場面でも、プロキシオブジェクト64と壁オブジェクト26とが衝突し、衝突判定用剛体オブジェクト62と壁オブジェクト26とが衝突したと判定することができることとなる。   In this way, for example, even in a situation where an operation of swinging a long and narrow virtual object such as the heel object 30 is performed in the virtual space 20, as shown in FIG. 11, the heel object 30 that moves in one frame is displayed. It is possible to determine that the proxy object 64 and the wall object 26 collide, and the collision determination rigid body object 62 and the wall object 26 have collided even in a scene where a virtual object such as the wall object 26 exists on the trajectory. It becomes.

なお、オブジェクト配置管理部44は、プロキシオブジェクト64を、仮想空間20内をプレイヤオブジェクト22及び槍オブジェクト30が所定時間内に移動する長さ(例えば、1フレームにおいて移動する長さ)を奥行きとする、その一部に直方体を含むその一部に含む形状となるようにしてもよい。   Note that the object arrangement management unit 44 sets the proxy object 64 to the depth that the player object 22 and the heel object 30 move in the virtual space 20 within a predetermined time (for example, the length that moves in one frame). The shape may include a part including a rectangular parallelepiped.

また、オブジェクト配置管理部44は、例えば、プレイヤオブジェクト22が槍オブジェクト30を所持するというイベントの発生以降、プロキシオブジェクト64、及び、プロキシオブジェクト64を覆う衝突判定領域66の形状を徐々に大きくするようにしてもよい。   Further, the object arrangement management unit 44 gradually increases the shape of the proxy object 64 and the collision determination area 66 covering the proxy object 64 after the occurrence of the event that the player object 22 possesses the saddle object 30, for example. It may be.

なお、本発明は上述の実施形態に限定されるものではない。   In addition, this invention is not limited to the above-mentioned embodiment.

例えば、オブジェクト配置管理部44は、モーションの遷移に対応付けられている上述の発動条件を満足する場合に、仮想空間20に設定された鉛直方向上向き成分以外の速度成分についても、速度パラメータの値に、所定の値を乗じることで、最終的な速度パラメータの値を低減したり、角速度パラメータの値に所定の値を乗じることで、最終的な角速度パラメータの値を低減したりするようにしてもよい。   For example, when the object placement management unit 44 satisfies the above-described activation condition associated with the motion transition, the object parameter management unit 44 also sets the value of the speed parameter for speed components other than the upward component in the vertical direction set in the virtual space 20. The final velocity parameter value is reduced by multiplying by a predetermined value, and the final angular velocity parameter value is reduced by multiplying the angular velocity parameter value by a predetermined value. Also good.

また、例えば、上述のS112に示す処理において、前フレームにおいて決定されたレイキャスト始点Rsと、プロキシオブジェクト64の代表点に対して所定の長さだけ前、又は、上にずらした位置に一致するレイキャスト終点のそれぞれと、をつなぐ2つの線分については、線分上に他の仮想オブジェクトが存在しているか否かの判定を行わないようにしてもよい。   Further, for example, in the processing shown in S112 described above, the raycast start point Rs determined in the previous frame matches the position shifted by a predetermined length before or above the representative point of the proxy object 64. For the two line segments that connect each of the raycast end points, it may not be determined whether or not another virtual object exists on the line segment.

また、例えば、衝突判定用剛体オブジェクト62の大きさが、衝突していると判定される仮想オブジェクトの種別に応じて変わるようにしてもよい。例えば、衝突相手の仮想オブジェクトが吹き飛ばした方がよりよい仮想オブジェクトであればあるほど、衝突判定用剛体オブジェクト62の大きさを大きくするようにしてもよい。   Further, for example, the size of the collision determination rigid body object 62 may be changed according to the type of the virtual object determined to collide. For example, the size of the collision determination rigid body object 62 may be increased as the virtual object to which the virtual object of the collision partner is better blown away.

また、上述のS111に示す処理において、物理シミュレーション処理の実行後の5つのプロキシオブジェクト64の位置のうち、特定方向の座標値(例えば、鉛直方向の座標値)が、基準位置Pbの特定方向の座標値(例えば、鉛直方向の座標値)に最も近いプロキシオブジェクト64を、上述の処理例におけるプロキシオブジェクト64として決定してもよい。   Further, in the process shown in S111 described above, among the five proxy objects 64 after the physical simulation process is executed, the coordinate value in the specific direction (for example, the coordinate value in the vertical direction) is the one in the specific direction of the reference position Pb. The proxy object 64 closest to the coordinate value (for example, the vertical coordinate value) may be determined as the proxy object 64 in the above-described processing example.

また、本実施形態では、衝突した仮想オブジェクトそれぞれの速度パラメータの値を用いて、物理シミュレーション処理を実行しているが、衝突した仮想オブジェクトそれぞれの速度パラメータの値の代わりに、一方の仮想オブジェクトに対する他方の仮想オブジェクトの相対速度、などのような、2つの仮想オブジェクトの移動速度の関係に関する他の情報を用いて、物理シミュレーション処理を実行しても構わない。   In this embodiment, the physical simulation process is executed using the velocity parameter value of each collided virtual object. However, instead of the velocity parameter value of each collided virtual object, one virtual object is used. You may perform a physical simulation process using the other information regarding the relationship of the moving speed of two virtual objects, such as the relative speed of the other virtual object.

また、本実施形態をゲーム装置10以外の情報処理システム(例えば、シミュレーションシステムや画像処理システムなど)に応用してもよい。また、上記の具体的な数値や文字列や図面中の具体的な数値や文字列は例示であり、これらの数値や文字列には限定されない。   Further, the present embodiment may be applied to an information processing system (for example, a simulation system or an image processing system) other than the game apparatus 10. Moreover, the specific numerical values and character strings described above and the specific numerical values and character strings in the drawings are examples, and are not limited to these numerical values and character strings.

10 ゲーム装置、12 制御部、14 記憶部、16 操作部、18 表示部、20 仮想空間、22 プレイヤオブジェクト、24 床オブジェクト、26 壁オブジェクト、28 樽オブジェクト、30 槍オブジェクト、32 視点、40 データ記憶部、42 操作状態取得部、44 オブジェクト配置管理部、46 空間画像生成出力部、50 スケルトンデータ、52 ボーン、52a ルートボーン、54 ジョイント、56 ラグドールデータ、58 ラグドールパーツ、58a ルートラグドールパーツ、60 ジョイント、60a 物理ジョイント、60b アニメーションジョイント、62 衝突判定用剛体オブジェクト、64 プロキシオブジェクト、66 衝突判定領域。   10 game devices, 12 control units, 14 storage units, 16 operation units, 18 display units, 20 virtual spaces, 22 player objects, 24 floor objects, 26 wall objects, 28 barrel objects, 30 basket objects, 32 viewpoints, 40 data storage Part, 42 operation state acquisition part, 44 object arrangement management part, 46 aerial image generation output part, 50 skeleton data, 52 bone, 52a root bone, 54 joint, 56 rag doll data, 58 rag doll part, 58a root rag doll part, 60 joint , 60a physical joint, 60b animation joint, 62 rigid object for collision determination, 64 proxy object, 66 collision determination area.

Claims (7)

仮想空間内に配置されているオブジェクトの姿勢を変化させる情報処理システムとしてコンピュータを機能させるプログラムであって、
姿勢を変化させる対象となるオブジェクトは、接続関係が定義された複数の要素が含まれており、
前記複数の要素は、仮想空間内に配置されている他のオブジェクトとの関係に基づいて位置又は向きが決定される第1種の要素と、第1種の要素の位置又は向きの変化に基づいて位置又は向きが決定される第2種の要素と、に分類されており、
前記第1種の要素について、仮想空間内に配置されている他のオブジェクトに関連付けられているパラメータの値と、当該要素に関連付けられているパラメータの値と、の関係に応じて、当該要素の位置又は向きを変化させる第1の要素変化手段、
前記第2種の要素について、接続されている第1種の要素の前記第1の変化手段による位置又は向きの変化に応じて、当該要素の位置又は向きを変化させる第2の要素変化手段、
として前記コンピュータを機能させることを特徴とするプログラム。
A program that causes a computer to function as an information processing system that changes the posture of an object placed in a virtual space,
The object whose posture is to be changed includes multiple elements with defined connection relationships.
The plurality of elements are based on a first type element whose position or orientation is determined based on a relationship with another object arranged in the virtual space, and a change in the position or orientation of the first type element. And the second type of element whose position or orientation is determined,
For the first type element, depending on the relationship between the value of the parameter associated with another object arranged in the virtual space and the value of the parameter associated with the element, First element changing means for changing the position or orientation;
A second element changing means for changing the position or orientation of the second type element in accordance with a change in position or orientation of the connected first type element by the first changing means;
A program for causing the computer to function as:
第1分類の要素を、自らに関連付けられているパラメータの値と仮想空間内に配置されている他のオブジェクトに関連付けられているパラメータの値との関係に応じて自らの位置又は向きの変化量が決定されるラグドールパーツに変換する変換規則、及び、ラグドールパーツを第1分類の要素に変換する逆変換規則を表す規則情報を取得する規則情報取得手段、として前記コンピュータをさらに機能させ、
前記第1の要素変化手段は、第1分類の要素の位置又は向きを変化させる際に、前記規則情報が示す前記変換規則に従って第1分類の要素を対応するラグドールパーツに変換し、当該ラグドールパーツに関連付けられているパラメータの値と、仮想空間内に配置されている他のオブジェクトに関連付けられているパラメータの値と、の関係に応じて、当該ラグドールパーツの位置又は向きを変化させ、前記規則情報が示す前記逆変換規則に従って変化後の当該ラグドールパーツを対応する第1分類の要素に逆変換する、
ことを特徴とする請求項1に記載のプログラム。
The amount of change in the position or orientation of the first class element according to the relationship between the value of the parameter associated with itself and the value of the parameter associated with another object arranged in the virtual space The computer further functions as a conversion rule for converting to a ragdoll part to be determined, and a rule information acquisition means for acquiring rule information representing a reverse conversion rule for converting the ragdoll part to an element of the first class,
When changing the position or orientation of the first class element, the first element changing means converts the first class element into a corresponding rag doll part according to the conversion rule indicated by the rule information, and the rag doll part. The position or orientation of the ragdoll part is changed according to the relationship between the value of the parameter associated with the parameter value and the value of the parameter associated with another object arranged in the virtual space, and the rule Inversely transforms the ragdoll part after the change into the corresponding first class element according to the inverse transformation rule indicated by the information.
The program according to claim 1.
前記第2の要素変換手段は、前記第2分類の要素について、接続されている第1分類の要素の前記第1の変化手段による位置又は向きの変化に応じて、当該第2分類の要素と当該接続されている第1分類の要素との組合せに関連付けられている規則に従って、当該第2分類の要素の位置又は向きを変化させる、
ことを特徴とする請求項1又は2に記載のプログラム。
The second element conversion unit is configured to change the second class element according to a change in position or orientation of the connected first class element by the first change unit. Changing the position or orientation of the second class element according to the rules associated with the combination with the connected first class element;
The program according to claim 1 or 2, characterized by the above-mentioned.
前記オブジェクトが配置されている仮想空間を、前記仮想空間内に設定された視点から見た様子を表す画像を生成する画像生成手段、をさらに含む、
ことを特徴とする請求項1から3のいずれか一項に記載のプログラム。
Image generation means for generating an image representing a state in which the virtual space in which the object is arranged is viewed from a viewpoint set in the virtual space;
The program according to any one of claims 1 to 3, characterized in that:
仮想空間内に配置されているオブジェクトの姿勢を変化させる情報処理システムとしてコンピュータを機能させるプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体であって、
姿勢を変化させる対象となるオブジェクトは、接続関係が定義された複数の要素が含まれており、
前記複数の要素は、仮想空間内に配置されている他のオブジェクトとの関係に基づいて位置又は向きが決定される第1種の要素と、第1種の要素の位置又は向きの変化に基づいて位置又は向きが決定される第2種の要素と、に分類されており、
前記第1種の要素について、仮想空間内に配置されている他のオブジェクトに関連付けられているパラメータの値と、当該要素に関連付けられているパラメータの値と、の関係に応じて、当該要素の位置又は向きを変化させる第1の要素変化手段、
前記第2種の要素について、接続されている第1種の要素の前記第1の変化手段による位置又は向きの変化に応じて、当該要素の位置又は向きを変化させる第2の要素変化手段、
として前記コンピュータを機能させることを特徴とするプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
A computer-readable information storage medium storing a program for causing a computer to function as an information processing system that changes the posture of an object arranged in a virtual space,
The object whose posture is to be changed includes multiple elements with defined connection relationships.
The plurality of elements are based on a first type element whose position or orientation is determined based on a relationship with another object arranged in the virtual space, and a change in the position or orientation of the first type element. And the second type of element whose position or orientation is determined,
For the first type element, depending on the relationship between the value of the parameter associated with another object arranged in the virtual space and the value of the parameter associated with the element, First element changing means for changing the position or orientation;
A second element changing means for changing the position or orientation of the second type element in accordance with a change in position or orientation of the connected first type element by the first changing means;
A computer-readable information storage medium storing a program that causes the computer to function as:
仮想空間内に配置されているオブジェクトの姿勢を変化させる情報処理システムであって、
姿勢を変化させる対象となるオブジェクトは、接続関係が定義された複数の要素が含まれており、
前記複数の要素は、仮想空間内に配置されている他のオブジェクトとの関係に基づいて位置又は向きが決定される第1分類の要素と、第1分類の要素の位置又は向きの変化に基づいて位置又は向きが決定される第2分類の要素と、に分類されており、
前記第1分類の要素について、仮想空間内に配置されている他のオブジェクトに関連付けられているパラメータの値と、当該第1分類の要素に関連付けられているパラメータの値と、の関係に応じて、当該第1分類の要素の位置又は向きを変化させる第1の要素変化手段と、
前記第2分類の要素について、接続されている第1分類の要素の前記第1の変化手段による位置又は向きの変化に応じて、当該要素の位置又は向きを変化させる第2の要素変化手段と、
を含むことを特徴とする情報処理システム。
An information processing system for changing the posture of an object arranged in a virtual space,
The object whose posture is to be changed includes multiple elements with defined connection relationships.
The plurality of elements are based on a first class element whose position or orientation is determined based on a relationship with another object arranged in the virtual space, and a change in position or orientation of the first class element. And a second classification element whose position or orientation is determined,
Depending on the relationship between the value of the parameter associated with the other object arranged in the virtual space and the value of the parameter associated with the element of the first category for the element of the first category First element changing means for changing the position or orientation of the element of the first classification;
Second element changing means for changing the position or orientation of the element of the second class according to the change of the position or orientation of the connected element of the first class by the first changing means; ,
An information processing system comprising:
仮想空間内に配置されているオブジェクトの姿勢を変化させる情報処理方法であって、
姿勢を変化させる対象となるオブジェクトは、接続関係が定義された複数の要素が含まれており、
前記複数の要素は、仮想空間内に配置されている他のオブジェクトとの関係に基づいて位置又は向きが決定される第1種の要素と、第1種の要素の位置又は向きの変化に基づいて位置又は向きが決定される第2種の要素と、に分類されており、
前記第1種の要素について、仮想空間内に配置されている他のオブジェクトに関連付けられているパラメータの値と、当該要素に関連付けられているパラメータの値と、の関係に応じて、当該要素の位置又は向きを変化させる第1の要素変化ステップと、
前記第2種の要素について、接続されている第1種の要素の前記第1の変化ステップによる位置又は向きの変化に応じて、当該要素の位置又は向きを変化させる第2の要素変化ステップと、
を含むことを特徴とする情報処理方法。
An information processing method for changing the posture of an object arranged in a virtual space,
The object whose posture is to be changed includes multiple elements with defined connection relationships.
The plurality of elements are based on a first type element whose position or orientation is determined based on a relationship with another object arranged in the virtual space, and a change in the position or orientation of the first type element. And the second type of element whose position or orientation is determined,
For the first type element, depending on the relationship between the value of the parameter associated with another object arranged in the virtual space and the value of the parameter associated with the element, A first element changing step for changing position or orientation;
A second element changing step for changing the position or orientation of the second type element according to the change in the position or orientation of the connected first type element by the first changing step; ,
An information processing method comprising:
JP2011118456A 2011-05-26 2011-05-26 Program, information storage medium, information processing system and information processing method Pending JP2012247951A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011118456A JP2012247951A (en) 2011-05-26 2011-05-26 Program, information storage medium, information processing system and information processing method
US13/438,262 US9050538B2 (en) 2011-05-26 2012-04-03 Collision detection and motion simulation in game virtual space

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011118456A JP2012247951A (en) 2011-05-26 2011-05-26 Program, information storage medium, information processing system and information processing method

Publications (1)

Publication Number Publication Date
JP2012247951A true JP2012247951A (en) 2012-12-13

Family

ID=47468347

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011118456A Pending JP2012247951A (en) 2011-05-26 2011-05-26 Program, information storage medium, information processing system and information processing method

Country Status (1)

Country Link
JP (1) JP2012247951A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7403202B1 (en) * 2005-07-12 2008-07-22 Electronic Arts, Inc. Computer animation of simulated characters using combinations of motion-capture data and external force modelling or other physics models

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7403202B1 (en) * 2005-07-12 2008-07-22 Electronic Arts, Inc. Computer animation of simulated characters using combinations of motion-capture data and external force modelling or other physics models

Similar Documents

Publication Publication Date Title
US9050538B2 (en) Collision detection and motion simulation in game virtual space
JP3696216B2 (en) Three-dimensional video game apparatus, control method of virtual camera in three-dimensional video game, program and recording medium
JP6281495B2 (en) Information processing apparatus, terminal apparatus, information processing method, and program
JP6281496B2 (en) Information processing apparatus, terminal apparatus, information processing method, and program
US8909506B2 (en) Program, information storage medium, information processing system, and information processing method for controlling a movement of an object placed in a virtual space
CN106873767B (en) Operation control method and device for virtual reality application
US20230334744A1 (en) Method and apparatus for generating walk animation of virtual role, device and storage medium
JP3926307B2 (en) Three-dimensional image drawing apparatus and method, program, and recording medium
CN108196669A (en) Modification method, device, processor and the head-mounted display apparatus of avatar model
CN104867171A (en) Transition animation generating method for three-dimensional roles
CN111968204B (en) Motion display method and device for bone model
JP5143883B2 (en) Image processing apparatus, image processing program, and image processing method
JP2012247953A (en) Program, information storage medium, information processing system and information processing method
JP5784985B2 (en) Program, information storage medium, information processing system, and information processing method
CN116196611A (en) Somatosensory game method based on waving action
JP5396432B2 (en) Program, information storage medium, information processing system, and information processing method
US9111391B2 (en) Image generating device, image generating method, and non-transitory information storage medium
JP2012247951A (en) Program, information storage medium, information processing system and information processing method
JP2018128851A (en) Program, object layout system and object layout method
CN107050848B (en) Somatosensory game implementation method and device based on body area network
CN113041616A (en) Method and device for controlling jumping display in game, electronic equipment and storage medium
JP6576544B2 (en) Information processing apparatus, information processing method, and computer-readable storage medium
JP5328841B2 (en) Program, information storage medium, information processing system, and information processing method
JPWO2007029568A1 (en) Image processing program and image processing system using the same
JP2001276414A (en) Game device and information memory medium

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130703

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130725

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131001