Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4976754B2 - Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof - Google Patents
[go: Go Back, main page]

JP4976754B2 - Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof - Google Patents

Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof Download PDF

Info

Publication number
JP4976754B2
JP4976754B2 JP2006166301A JP2006166301A JP4976754B2 JP 4976754 B2 JP4976754 B2 JP 4976754B2 JP 2006166301 A JP2006166301 A JP 2006166301A JP 2006166301 A JP2006166301 A JP 2006166301A JP 4976754 B2 JP4976754 B2 JP 4976754B2
Authority
JP
Japan
Prior art keywords
aircraft
enemy
enemy aircraft
attack
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006166301A
Other languages
Japanese (ja)
Other versions
JP2007330535A (en
Inventor
洋 川野
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.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
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 Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2006166301A priority Critical patent/JP4976754B2/en
Publication of JP2007330535A publication Critical patent/JP2007330535A/en
Application granted granted Critical
Publication of JP4976754B2 publication Critical patent/JP4976754B2/en
Anticipated expiration legal-status Critical
Active legal-status Critical Current

Links

Images

Description

本発明は、画面上に自機と敵機を表示し、自機をW種類の行動によって所定の時間だけ移動させる操作を行って、自機に攻撃を加えてくる敵機と闘うシューティングゲームの処理方法、その装置、そのプログラム及びその記録媒体に関する。   The present invention is a shooting game in which a player and an enemy aircraft are displayed on a screen, and the player moves the enemy aircraft for a predetermined time by W types of actions to fight an enemy aircraft that attacks the enemy aircraft. The present invention relates to a processing method, an apparatus thereof, a program thereof, and a recording medium thereof.

シューティングゲームの処理方法、特に敵機の動作を制御する方法としては、自機の位置を考慮しないアルゴリズム、例えば、自機の位置とは無関係に敵機が一定方向に下降し続けるアルゴリズムや、自機の位置とは無関係に敵機が静止し続けるアルゴリズムを採用する方法があった。また、自機の位置を考慮するアルゴリズムとしては、例えば、自機の位置に近づくように敵機が動くアルゴリズムや、常に自機との位置を一定距離・方向に保つように敵機が動くアルゴリズムがあった。
また、敵機の攻撃弾発射動作を制御する方法としては、例えば、自機の位置とは無関係に敵機が一定方向に攻撃弾を発射するアルゴリズムや、ランダムな方向に攻撃弾を発射するアルゴリズムがあった。また、自機の位置を考慮するアルゴリズムとしては、例えば、攻撃弾発射時点の自機の位置に向けて攻撃弾を発射するアルゴリズムがあった。
Shooting game processing methods, particularly methods for controlling the operation of enemy aircraft, include algorithms that do not take into account the position of the aircraft, such as algorithms that keep the enemy aircraft descending in a certain direction regardless of the location of the aircraft, There was a method that adopted an algorithm that kept the enemy aircraft stationary regardless of the position of the aircraft. In addition, as an algorithm that considers the position of the own aircraft, for example, an algorithm that moves the enemy aircraft to approach the position of the own aircraft, or an algorithm that moves the enemy aircraft to always keep the position of the own aircraft at a certain distance and direction was there.
In addition, as a method of controlling the attacking bullet firing operation of the enemy aircraft, for example, an algorithm that the enemy aircraft launches an attack bullet in a certain direction regardless of the position of the own aircraft, or an algorithm that launches an attack bullet in a random direction was there. Further, as an algorithm that considers the position of the own aircraft, for example, there is an algorithm that fires an attack bullet toward the position of the own aircraft at the time of attack bullet emission.

また、チェス、オセロ、将棋といった非アクションの思考ゲームにおいては、人工知能の技術を導入したアルゴリズムの研究が行われている(例えば、非特許文献1参照)。
Jonathan Schaeffer,H.Jaap van den Herik,“Games,computers,and artificial intelligence”,Artificial Intelligence,2002,Vol.134,p1-7
In addition, in a non-action thinking game such as chess, othello, and shogi, an algorithm that introduces artificial intelligence technology has been studied (see, for example, Non-Patent Document 1).
Jonathan Schaeffer, H. Jaap van den Herik, “Games, computers, and artificial intelligence”, Artificial Intelligence, 2002, Vol. 134, p1-7

しかし、従来技術による敵機の動作を制御アルゴリズム、敵機の攻撃弾発射アルゴリズムは、単純であり、プレイヤーに飽きられやすいという問題があった。
例えば、自機の攻撃弾が縦方向に飛ぶ、いわゆる縦型シューティングゲームにおいては、ゲーム画面が縦型であることが比較的多く、敵機が画面の上方から出現して、画面の下方に位置する自機を攻撃することが多い。このような縦型シューティングゲームにおいては、ゲーム画面が縦型であるため、敵機の攻撃が自機に対して脅威を与え得るほどの近距離まで、敵機が自機に近づくことは難しく、敵機が自機の攻撃により早々に撃墜されるケースが多い。また、ゲームの難易度のバランスを考えると、敵機のスピードを過剰に大きくすることは適切ではない。このため、多くの縦型シューディングゲームにおいては、画面上方から出現した敵機は早々に撃墜されてしまうため、敵機の行動制御アルゴリズムを工夫するメリットが小さいという問題があった。
However, there is a problem that the control algorithm for enemy aircraft operations and the attacking bullet firing algorithm for enemy aircraft are simple and easy to get bored by the player.
For example, in a so-called vertical shooting game in which the attack bullets of your aircraft fly vertically, the game screen is often vertical, and enemy aircraft appear from the top of the screen and are positioned below the screen. Often attacks his own aircraft. In such a vertical shooting game, since the game screen is vertical, it is difficult for the enemy aircraft to approach the own aircraft until close enough that the attack of the enemy aircraft can pose a threat to the own aircraft, In many cases, enemy aircraft are quickly shot down by their own attacks. Also, considering the balance of game difficulty, it is not appropriate to increase the speed of enemy aircraft excessively. For this reason, in many vertical shooting games, enemy aircraft that appear from the top of the screen are shot down quickly, and there is a problem that the merit of devising the action control algorithm of the enemy aircraft is small.

このような問題を解くためには、人工知能の技術を導入するのが有効であると考えられるが、現在人工知能におけるゲームの研究は、チェス、オセロ、将棋といった非アクションの思考ゲームが中心であり、人工知能の技術をシューティングゲームのようなアクションゲームに応用する試みはなかった。
また、チェス、オセロ、将棋といった思考ゲームを解くための人工知能技術の研究は、効率的に深い探索計算を行うための手法の開発に集中している(例えば、非特許文献1参照。)。もちろん、シューティングゲームにおいても、知的な敵機の動作アルゴリズムを開発するためには、探索技術は重要である。しかし、シューティングゲームにおいて、探索の深さに関する要求は低く、むしろ、いかにしてアクションゲームにおいて求められているレベルの実時間性を実現するかが大事である。しかし、そのような要求を満たす技術はなかった。
また、敵機の制御には、従来のように、全ての敵機の動きを監視する方式の中央制御では不十分である。なぜなら、ゲーム画面上に出現する敵機の状況は時々刻々と変化をし、それらの全ての状況を考慮した中央制御アルゴリズムの開発は事実上不可能であるからである。
In order to solve such problems, it is considered effective to introduce artificial intelligence technology, but currently research on games in artificial intelligence is centered on non-action thinking games such as chess, othello and shogi. There was no attempt to apply artificial intelligence technology to action games like shooting games.
Also, research on artificial intelligence technology for solving thinking games such as chess, othello, and shogi has concentrated on the development of methods for efficiently performing deep search calculations (see, for example, Non-Patent Document 1). Of course, even in shooting games, search technology is important to develop intelligent enemy aircraft operation algorithms. However, in the shooting game, the demand for the depth of search is low. Rather, how to achieve the level of real time required in the action game is important. However, there was no technology that could meet such requirements.
In addition, as in the prior art, central control that monitors the movement of all enemy aircraft is insufficient for controlling enemy aircraft. This is because the situation of enemy aircraft appearing on the game screen changes from moment to moment, and it is virtually impossible to develop a central control algorithm that takes all these situations into consideration.

この発明の一態様によれば、自機移動パターン生成手段と、衝突判定手段と、自機移動範囲決定手段と、位置判定手段、モード判定手段と、敵機速度決定手段とを備えたコンピュータが、画面上に自機と敵機を表示し、W種類の行動を選択する操作によって自機を移動させて、自機に攻撃を加えてくる敵機と闘うシューティングゲーム処理を行う方法であって、モード判定手段が、ある方向に直進する敵機が、その敵機の進行方向に回りこんで攻撃をする自機に撃墜されるかどうかを判定するモード判定過程と、敵機速度決定手段が、モード判定過程において、敵機が自機に撃墜されると判定された場合には、方向への敵機の移動速度を遅くし、敵機が自機に撃墜されないと判定された場合には、方向への敵機の移動速度を速くする敵機速度決定過程と、を有し、自機が攻撃弾を発射する方向をY軸、自機が攻撃弾を発射する方向と垂直な方向をX軸とし、モード判定過程は、自機の現在位置のX座標と敵機の現在位置のX座標の差の絶対値を、自機のX軸方向への最大移動速度で割った値(以下、A値とする。)を求め、自機の現在位置のY座標と敵機の現在位置のY座標の差の絶対値を、敵機のY軸方向への最大移動速度と自機のY軸方向への最大移動速度との差の絶対値で割った値(以下、B値とする。)を求め、A値とB値を比較し、B値の方が大きい場合には、敵機が自機に撃墜されると判定し、A値の方が大きい場合には、敵機が自機に撃墜されないと判定する過程であり、敵機速度決定過程は、更に、モード判定過程において、敵機が自機に撃墜されると判定された場合には、方向と垂直な方向で自機がいない方向への敵機の移動速度を0以上にし、敵機が自機に撃墜されないと判定された場合には、方向と垂直な方向で自機がいる方向への敵機の移動速度を0以上にする過程を含み、更に、自機移動パターン生成手段が、所定の時間(以下、行動単位時間Tとする。)だけ移動する行動をD回行う自機の各移動先の候補を生成する自機移動パターン生成過程と、衝突判定手段が、自機が、自機の各移動先の候補へ移動する途中に、敵機が既に発射した攻撃弾と衝突するかどうかを判定する衝突判定過程と、自機移動範囲決定手段が、衝突判定過程において衝突しないと判定された位置のX座標の最小値と最大値を決定する自機移動範囲決定過程と、位置判定手段が、敵機の現在位置のX座標が、X座標の最小値と最大値の間にあるかどうかを判定する位置判定過程と、を有し、敵機速度決定過程は、更に、(1)モード判定過程において敵機が自機に撃墜されると判定され、かつ、位置判定過程において敵機の現在位置のX座標がX座標の最小値と最大値の間にないと判定された場合には、方向と垂直な方向への敵機の移動速度を0にする過程と、(2)モード判定過程において敵機が自機に撃墜されると判定され、かつ、位置判定過程において敵機の現在位置のX座標がX座標の最小値と最大値の間にあると判定された場合には、方向と垂直な方向で自機がいない方向への敵機の移動速度を0より大きくする過程と、を含む。
この発明の他の一態様によれば、自機移動パターン生成手段と、衝突判定手段と、到達時間差計算手段と、攻撃目標位置判定手段と、攻撃弾発射手段と、モード判定手段と、敵機速度決定手段とを備えたコンピュータが、画面上に自機と敵機を表示し、W種類の行動を選択する操作によって自機を移動させて、自機に攻撃を加えてくる敵機と闘うシューティングゲーム処理を行う方法であって、モード判定手段が、ある方向に直進する敵機が、その敵機の進行方向に回りこんで攻撃をする自機に撃墜されるかどうかを判定するモード判定過程と、敵機速度決定手段が、モード判定過程において、敵機が自機に撃墜されると判定された場合には、方向への敵機の移動速度を遅くし、敵機が自機に撃墜されないと判定された場合には、方向への敵機の移動速度を速くする敵機速度決定過程と、を有し、自機が攻撃弾を発射する方向をY軸、自機が攻撃弾を発射する方向と垂直な方向をX軸とし、モード判定過程は、自機の現在位置のX座標と敵機の現在位置のX座標の差の絶対値を、自機のX軸方向への最大移動速度で割った値(以下、A値とする。)を求め、自機の現在位置のY座標と敵機の現在位置のY座標の差の絶対値を、敵機のY軸方向への最大移動速度と自機のY軸方向への最大移動速度との差の絶対値で割った値(以下、B値とする。)を求め、A値とB値を比較し、B値の方が大きい場合には、敵機が自機に撃墜されると判定し、A値の方が大きい場合には、敵機が自機に撃墜されないと判定する過程であり、敵機速度決定過程は、更に、モード判定過程において、敵機が自機に撃墜されると判定された場合には、方向と垂直な方向で自機がいない方向への敵機の移動速度を0以上にし、敵機が自機に撃墜されないと判定された場合には、方向と垂直な方向で自機がいる方向への敵機の移動速度を0以上にする過程を含み、更に、自機移動パターン生成手段が、所定の時間(以下、行動単位時間Tとする。)だけ移動する行動をD回行う自機の各移動先の候補を生成する自機移動パターン生成過程と、衝突判定手段が、自機が、自機の各移動先の候補へ移動する途中に、敵機が既に発射した攻撃弾と衝突するかどうかを判定する衝突判定過程と、自機移動範囲決定手段が、衝突判定過程において衝突しないと判定された位置のX座標の最小値と最大値を決定する自機移動範囲決定過程と、到達時間差計算手段が、衝突判定過程において衝突しないと判定された場合には、自機が衝突しないと判定された位置へ移動するのに必要な時間と、敵機が新たに発射する攻撃弾が衝突しないと判定された位置へ移動するのに必要な時間との差の絶対値を計算する到達時間差計算過程と、攻撃目標位置判定手段が、差の絶対値が所定の値よりも小さいかどうかを判定し、その差の絶対値が所定の値よりも小さい場合には、衝突しないと判定された位置を攻撃目標位置とする攻撃目標位置判定過程と、攻撃弾発射手段が、攻撃目標位置へ向けて敵機に新たな攻撃弾を発射させる攻撃発射過程と、を有する、ことを特徴とするシューティングゲーム処理方法。
According to one aspect of the present invention, there is provided a computer including own aircraft movement pattern generation means, collision determination means, own aircraft movement range determination means, position determination means, mode determination means, and enemy aircraft speed determination means. This is a method of processing a shooter game that displays an enemy aircraft and enemy aircraft on the screen, moves the aircraft by an operation of selecting W types of actions, and fights enemy aircraft attacking the aircraft. The mode determination means determines whether the enemy aircraft that goes straight in a certain direction is shot down by the enemy aircraft that goes around in the traveling direction of the enemy aircraft and attacks it, and the enemy aircraft speed determination means However, if it is determined in the mode determination process that the enemy aircraft is shot down by the aircraft, the movement speed of the enemy aircraft in the direction is slowed down, and the enemy aircraft is determined not to be shot down by the aircraft. Increases the speed of enemy aircraft moving in the direction Possess a decision process, a, Y-axis direction of own apparatus to fire attack bomb, and a direction perpendicular directions apparatus itself to fire attack bomb and X-axis, the mode determination process, the current location of the terminal The absolute value of the difference between the X coordinate and the current position of the enemy aircraft is divided by the maximum movement speed of the aircraft in the X-axis direction (hereinafter referred to as A value), and the current location of the aircraft Divide the absolute value of the difference between the Y coordinate of the enemy aircraft and the Y coordinate of the current position of the enemy aircraft by the absolute value of the difference between the maximum movement speed of the enemy aircraft in the Y axis direction and the maximum movement speed of the enemy aircraft in the Y axis direction. The A value is compared with the B value, and if the B value is greater, it is determined that the enemy aircraft will be shot down. when is large, the process der determines that enemy aircraft is not shot down in the multifunction peripheral is, the opponent's aircraft speed determining process, it is determined yet, in the mode determination process, and the opponent's aircraft is shot down in the multifunction peripheral If the enemy aircraft moves in a direction perpendicular to the direction in which the aircraft is not in the direction of 0 or more and it is determined that the enemy aircraft will not be shot down by the aircraft, machine the moving speed of the enemy machine saw including a process of zero or more in the direction in which there are, furthermore, ship movement pattern generating means for a predetermined time (hereinafter referred to as action unit time T.) action to move only The own aircraft movement pattern generation process for generating each destination candidate of the own aircraft to be performed D times, and the collision determination means, the enemy aircraft has already been fired while the aircraft is moving to each destination candidate of the own aircraft Collision determination process for determining whether or not to collide with the attacked bullet, and the own-movement movement in which the own-movement range determination means determines the minimum and maximum X-coordinate values of the position determined not to collide in the collision determination process The range determination process and the position determination means determine that the X coordinate of the current position of the enemy aircraft A position determination process for determining whether or not it is between the minimum value and the maximum value, and the enemy aircraft speed determination process further determines that the enemy aircraft is shot down by the own aircraft in (1) mode determination process In the position determination process, if it is determined that the X coordinate of the current position of the enemy aircraft is not between the minimum value and the maximum value of the X coordinate, the movement speed of the enemy aircraft in the direction perpendicular to the direction is set. And (2) in the mode determination process, it is determined that the enemy aircraft is shot down by the own aircraft, and in the position determination process, the X coordinate of the current position of the enemy aircraft is the minimum value and the maximum value of the X coordinate. In the case where it is determined that the vehicle is in between, a process of increasing the moving speed of the enemy aircraft in a direction perpendicular to the direction in a direction where the own aircraft is not present to be greater than zero is included.
According to another aspect of the present invention, the own aircraft movement pattern generation means, the collision determination means, the arrival time difference calculation means, the attack target position determination means, the attack bullet launching means, the mode determination means, and the enemy aircraft A computer equipped with a speed determination means displays the own aircraft and enemy aircraft on the screen, moves the aircraft by an operation of selecting W types of actions, and fights the enemy aircraft that attacks the own aircraft a method for processing a shooter, the mode determining means, the enemy machine straight in one direction it is determined mode whether shot down ship to attack crowded around the traveling direction of the enemy If the determination process and the enemy aircraft speed determining means determine that the enemy aircraft is shot down by the own aircraft in the mode determination process, the enemy aircraft is slowed down in the direction and the enemy aircraft is If it is determined not to be shot down, Possess the enemy aircraft speed determination step of the moving speed of the machine, a, Y-axis direction of own apparatus to fire attack bomb, the apparatus itself and perpendicular direction to fire attack bomb and X-axis, the mode In the determination process, the absolute value of the difference between the X coordinate of the current position of the own aircraft and the X coordinate of the current position of the enemy aircraft is divided by the maximum movement speed in the X-axis direction of the own aircraft (hereinafter referred to as A value). )) And calculate the absolute value of the difference between the Y coordinate of the current position of the aircraft and the Y coordinate of the current position of the enemy aircraft, and the maximum movement speed in the Y axis direction of the enemy aircraft and the maximum value in the Y axis direction of the own aircraft. Find the value divided by the absolute value of the difference from the moving speed (hereinafter referred to as B value), compare the A value with the B value, and if the B value is greater, the enemy aircraft will shoot down to your own aircraft. is a determination, if the a side value is large is, the process der determines that enemy aircraft is not shot down in the multifunction peripheral is, the opponent's aircraft speed determining process may further provide a mode determination process, the enemy If it is determined that the enemy aircraft will be shot down by the aircraft, the movement speed of the enemy aircraft in the direction perpendicular to the direction in which the aircraft is not present is set to 0 or more, and the enemy aircraft is determined not to be shot down by the aircraft. in this case, it viewed contains a process of the moving speed of the enemy machine in the direction in which the ship in a direction perpendicular to the direction above zero, further, ship movement pattern generating means for a predetermined time (hereinafter, action units It is assumed that time T.) The movement pattern generation process for generating each movement destination candidate of the own apparatus that performs the movement only D times, and the collision determination means, the own apparatus, each of the movement destination candidates of the own apparatus A collision determination process for determining whether an enemy aircraft collides with an already-launched attack bullet while moving to the position of the X coordinate of the position determined by the own aircraft movement range determination means as not colliding in the collision determination process The aircraft movement range determination process that determines the minimum and maximum values, and the arrival time difference calculation means When it is determined that there is no collision in the collision determination process, it is determined that the time required to move to the position where it is determined that the aircraft does not collide and the attack bullet that the enemy aircraft newly fires do not collide. The arrival time difference calculation process for calculating the absolute value of the difference from the time required to move to the target position and the attack target position determination means determine whether the absolute value of the difference is smaller than a predetermined value, and When the absolute value of the difference is smaller than the predetermined value, the attack target position determination process in which the position determined not to collide is set as the attack target position, and the attack bullet launching means is directed to the enemy aircraft toward the attack target position. A shooting game processing method, comprising: an attack firing process for firing a new attack bullet.

ある方向に直進する敵機が、敵機の進行方向に回り込んで攻撃をしてくる自機に撃墜される可能性がある場合、すなわち、自機と敵機の距離が離れている場合には、その方向への敵機の移動速度を遅くすることにより、敵機が発射する攻撃弾により自機の移動をさえぎる壁(図6参照)を作りやすくなり、敵機の防御力が増す。また、ある方向に直進する敵機が、敵機の進行方向に回り込んで攻撃をしてくる自機に撃墜される可能性がない場合、すなわち、自機と敵機の距離が近い場合には、その方向への敵機の移動速度を速くすることにより、敵機が自機の周りを速い速度で移動しながら、八方から囲むようにして自機に向けて攻撃弾を発射することができるため、敵機の攻撃力が増す。
この結果、敵機の攻撃がより知的になる。また、個々の敵機が上記のアルゴリズムに従って行動することにより、敵機同士間で連携が生まれるため、全体としてよりゲーム性の増したシューティングゲームを実現することができる。
When an enemy aircraft that goes straight in a certain direction may be shot down by the enemy aircraft that attacks in the direction of the enemy aircraft, that is, when the distance between the enemy aircraft and the enemy aircraft is far By slowing down the movement speed of the enemy aircraft in that direction, it becomes easier to create a wall (see FIG. 6) that blocks the movement of the own aircraft by the attack bullets fired by the enemy aircraft, and the defense power of the enemy aircraft increases. Also, if there is no possibility that an enemy aircraft that goes straight in a certain direction will be shot down by the enemy aircraft that goes around in the traveling direction of the enemy aircraft, that is, the distance between the enemy aircraft and the enemy aircraft is short By increasing the movement speed of the enemy aircraft in that direction, the enemy aircraft can shoot attack bullets toward itself by surrounding it from eight sides while moving around it at high speed. Increases attack power of enemy aircraft.
As a result, enemy aircraft attacks become more intelligent. Further, since each enemy aircraft behaves according to the above algorithm, cooperation between enemy aircraft is born, so that it is possible to realize a shooting game with improved game characteristics as a whole.

[理論的背景]
<シューティングゲームの説明>
図6に、本発明の処理の対象となるシューティングゲームを例示する。画面上には、自機1と自機1の攻撃弾3、敵機2と敵機2の攻撃弾4が表示される。攻撃弾3、敵機2、攻撃弾4は、複数存在していても良い。自機1、敵機2、攻撃弾3、攻撃弾4は、X軸とY軸で構成される2次元の平面上に位置するものとする。
ユーザは、自機1を操作して、敵機2と闘う。ユーザは、一回の操作で、W種類の移動速度(方向と速さ)で、行動単位時間Tだけ自機を移動させることができる。自機1が取り得るW種類の移動速度(Vsx(w),Vsy(w))は予め決められており、それぞれの移動速度(Vsx(w),Vsy(w))には、移動速度番号w(w=1,…,W)が付けられているものとする。以下では、移動速度番号wを選択する行動のことを行動(w)という。また、ユーザは、W種類の速度による移動と同時に、敵機2を攻撃するための攻撃弾3を発射する操作をすることができる。自機1から発射された攻撃弾3は、画面の上方に向かって直進する。
[Theoretical background]
<Explanation of shooting game>
FIG. 6 illustrates a shooting game that is a target of the processing of the present invention. On the screen, the own machine 1 and the attack bullet 3 of the own machine 1, and the enemy machine 2 and the attack bullet 4 of the enemy machine 2 are displayed. There may be a plurality of attack bullets 3, enemy aircraft 2, and attack bullets 4. The own aircraft 1, enemy aircraft 2, attack bullet 3, and attack bullet 4 are assumed to be located on a two-dimensional plane composed of the X axis and the Y axis.
The user operates the own aircraft 1 to fight the enemy aircraft 2. The user can move his / her own device for the behavior unit time T at W types of movement speeds (direction and speed) in one operation. W types of movement speeds (Vsx (w), Vsy (w)) that the own device 1 can take are determined in advance, and each movement speed (Vsx (w), Vsy (w)) has a movement speed number. It is assumed that w (w = 1,..., W) is attached. Hereinafter, the action of selecting the moving speed number w is referred to as action (w). In addition, the user can perform an operation of firing an attack bullet 3 for attacking the enemy aircraft 2 at the same time as movement at W speeds. The attack bullet 3 fired from the own aircraft 1 goes straight upwards on the screen.

敵機2は、行動単位時間Tごとに、移動速度(Vex,Vey)で移動することができる。また、敵機2は移動と同時に、攻撃弾4を発射することができる。敵機2が発射した攻撃弾4は、一定速度(Vbikx(t),Vbiky(t))で移動するものとする。
自機1が、敵機2及び敵機2が発射する攻撃弾4と衝突した場合には、自機1は破壊され、そこでゲームオーバーとなる。逆に、自機1の攻撃弾3が敵機2に衝突した場合には、敵機2は破壊される。自機1の攻撃弾3によりすべての敵機2を破壊した場合には、ユーザは、そのゲームに勝利することになる。
以下では、自機のX軸方向、及び、Y軸方向の移動速度の最大値をVsmax、敵機のX軸方向の移動速度の最大値をVexmaxとする。また、自機の現在位置を(Xs,Ys)、敵機の現在位置を(X,Y)とする。そして、例えば、Vexmax>Vsmaxとする。
The enemy aircraft 2 can move at the moving speed (Vex, Vey) every action unit time T. Further, the enemy aircraft 2 can fire the attack bullet 4 simultaneously with the movement. Assume that the attacking bullet 4 fired by the enemy aircraft 2 moves at a constant speed (Vbikx (t), Vbiky (t)).
When the own aircraft 1 collides with the enemy aircraft 2 and the attack bullet 4 fired by the enemy aircraft 2, the own aircraft 1 is destroyed and the game is over there. On the contrary, when the attack bullet 3 of the own aircraft 1 collides with the enemy aircraft 2, the enemy aircraft 2 is destroyed. When all the enemy aircrafts 2 are destroyed by the attack bullet 3 of the own device 1, the user wins the game.
Hereinafter, it is assumed that the maximum value of the moving speed in the X-axis direction and the Y-axis direction of the own aircraft is Vsmax, and the maximum value of the moving speed in the X-axis direction of the enemy aircraft is Vexmax. Further, the current position of the own aircraft is (Xs, Ys), and the current position of the enemy aircraft is (X, Y). For example, Vexmax> Vsmax.

<安全行動パターンの説明>
以下では、本発明を理解する上で必要になる「安全行動パターン」の概念について説明する。自機がW種類の速度による移動を所定の回数(D回)だけ行うことができるとする。このとき、自機が取り得る全行動パターンについて、自機が敵機の攻撃弾により破壊されるかどうかを調べる。すなわち、各行動の深さd(d={1,…,D})においてW種類の移動速度による移動を行うことによって自機が取り得る全行動パターンについて、自機が敵機の攻撃弾により破壊されるかどうかを調べる。全行動パターンのうち、自機が攻撃弾により破壊されない行動パターンのことを安全行動パターンとする。逆に、自機が攻撃弾により破壊されてしまう行動パターンのことを死亡行動パターンとする。全行動パターンと安全行動パターンと死亡行動パターンの間には、全行動パターン数=安全行動パターンの総数+死亡行動パターンの総数、という関係がある。
<Description of safe behavior patterns>
In the following, the concept of “safety behavior pattern” necessary for understanding the present invention will be described. It is assumed that the own device can move a predetermined number of times (D times) at W speeds. At this time, with respect to all the action patterns that the aircraft can take, it is checked whether or not the aircraft is destroyed by the attacking bullet of the enemy aircraft. That is, with respect to all the action patterns that the aircraft can take by moving at the movement speed of W types at the depth d (d = {1,..., D}) of each behavior, Find out if it will be destroyed. Among all action patterns, an action pattern in which the aircraft is not destroyed by an attack bullet is defined as a safe action pattern. Conversely, a behavior pattern in which the aircraft is destroyed by an attack bullet is defined as a death behavior pattern. Between all behavior patterns, safety behavior patterns, and death behavior patterns, there is a relationship that the total number of behavior patterns = the total number of safety behavior patterns + the total number of death behavior patterns.

例えば、W=3、D=3の場合の安全行動パターンの例を図10に示す。図10においては、※1、※2、※3において衝突が起こるものとする。また、図10において、実線は、各深さdにおいて、w=1の行動を選択した場合の自機の描く軌跡を表している。破線は、各深さdにおいて、w=2の行動を選択した場合の自機の描く軌跡を表している。一点鎖線は、各深さdにおいて、w=3の行動を選択した場合の自機の描く軌跡を表している。枝の末端に○が示されているものが安全行動パターンであり、枝の末端に×が示されているものが死亡行動パターンである。
以下では、安全行動パターンに従って移動した位置のX座標の最大値をXmax、安全行動パターンに従って移動した位置のX座標の最小値をXminとする。XmaxとXminは、後述するように、例えば、縦型探索、横型探索といった探索計算によって求める。
For example, FIG. 10 shows an example of a safe behavior pattern when W = 3 and D = 3. In FIG. 10, it is assumed that a collision occurs at * 1, * 2, and * 3. Further, in FIG. 10, a solid line represents a trajectory drawn by the own device when an action of w = 1 is selected at each depth d. A broken line represents a trajectory drawn by the own device when an action of w = 2 is selected at each depth d. An alternate long and short dash line represents a trajectory drawn by the own device when an action of w = 3 is selected at each depth d. A pattern with a circle at the end of a branch is a safe behavior pattern, and a pattern with a cross at the end of a branch is a death behavior pattern.
In the following, it is assumed that the maximum value of the X coordinate of the position moved according to the safe behavior pattern is Xmax, and the minimum value of the X coordinate of the position moved according to the safe behavior pattern is Xmin. Xmax and Xmin are obtained by search calculation such as vertical search and horizontal search, as will be described later.

<敵機の移動速度の決定>
上記のようなシューティングゲームにおいて、以下のようにして、敵機の移動速度(Vex,Vey)を定めると良い。
まず、自機が敵機の攻撃弾により破壊されるかどうかを考慮せずに、敵機が、敵機の進行方向に回り込んだ自機の攻撃により破壊される可能性があるかどうかを判定する(図5、ステップS161)。その後、敵機が、敵機の進行方向に回り込んだ自機の攻撃により破壊される可能性があるものについて、自機が敵機の攻撃弾により破壊されるかどうかを考慮して、敵機が、敵機の進行方向に回り込んだ自機の攻撃により破壊されるかどうかを判定する(図5、ステップS162〜ステップS166)。
例えば、|Xs−X|/Vsmax≦|Ys−Y|/|Vexmax−Vsmax|である場合には、図13に示すように、敵機の進行方向に自機が回り込むことができる。このため、敵機が、敵機の進行方向に回り込んだ自機の攻撃により破壊される可能性がある。しかし、|Xs−X|/Vsmax≦|Ys−Y|/|Vexmax−Vsmax|であっても、Xmax<X、もしくは、X<Xminである場合には、自機が、敵機の進行方向に回り込んで敵機を破壊するのは不可能である。Xmax<X、もしくは、X<Xminである場合には、自機の安全行動パターンの中に、自機が敵機の進行方向に回り込むような行動パターンがないためである。言い換えれば、Xmax<X、もしくは、X<Xminである場合には、自機が、その位置(X,Y)に位置する敵機の進行方向に回り込むような行動パターンは死亡行動パターンであるため、自機が、その位置(X,Y)に位置する敵機の進行方向に回り込むような行動パターンを取れば、自機は敵機が既に発射した攻撃弾により破壊されてしまうためである。
<Determining the movement speed of enemy aircraft>
In the above shooting game, the movement speed (Vex, Vey) of the enemy aircraft may be determined as follows.
First, whether or not there is a possibility that the enemy aircraft will be destroyed by the attack of the enemy aircraft that went around in the traveling direction of the enemy aircraft, without considering whether or not the enemy aircraft is destroyed by the attack bullet of the enemy aircraft The determination is made (FIG. 5, step S161). After that, regarding enemy aircraft that may be destroyed by the attack of the enemy aircraft that travels in the direction of advance of the enemy aircraft, whether the enemy aircraft is destroyed by the enemy's attack bullets, It is determined whether or not the aircraft is destroyed by the attack of its own aircraft that has entered the traveling direction of the enemy aircraft (FIG. 5, Steps S162 to S166).
For example, when | Xs−X | / Vsmax ≦ | Ys−Y | / | Vexmax−Vsmax |, as shown in FIG. 13, the own aircraft can go around in the traveling direction of the enemy aircraft. For this reason, there is a possibility that the enemy aircraft is destroyed by the attack of the own aircraft that has entered the traveling direction of the enemy aircraft. However, even if | Xs−X | / Vsmax ≦ | Ys−Y | / | Vexmax−Vsmax |, if Xmax <X or X <Xmin, the own aircraft is traveling in the direction of the enemy aircraft. It is impossible to go around and destroy enemy aircraft. This is because when Xmax <X or X <Xmin, there is no action pattern in which the own aircraft wraps around in the traveling direction of the enemy aircraft in the safety behavior pattern of the own aircraft. In other words, when Xmax <X or X <Xmin, the behavior pattern in which the aircraft turns around in the traveling direction of the enemy aircraft located at the position (X, Y) is a death behavior pattern. This is because if the aircraft takes an action pattern that turns around in the traveling direction of the enemy aircraft located at the position (X, Y), the aircraft will be destroyed by the attack bullets already fired by the enemy aircraft.

|Xs−X|/Vsmax≦|Ys−Y|/|Vexmax−Vsmax|である場合には、敵機が、敵機の進行方向に回り込んだ自機の攻撃により破壊される可能性があるため、敵機は、防御モード・自機囲い込みモードにおける敵機行動制御アルゴリズムに従って行動する(図5、ステップS162〜ステップS168)。具体的には、Y軸方向には遅く動き、敵機が発射する攻撃弾によって自機を囲い込む壁を作り、敵機の防御能力を高める。例えば、敵機は、Y軸方向には、Vsmax/2の移動速度で移動する。また、|Xs−X|/Vsmax≦|Ys−Y|/|Vexmax−Vsmax|であり、かつ、Xmax<X、若しくは、X<minである場合には、上述したように、敵機が、敵機の進行方向に回り込む自機の攻撃によって破壊されることはないため、X軸方向には移動しない。また、|Xs−X|/Vsmax≦|Ys−Y|/|Vexmax−Vsmax|であり、かつ、Xmin<X<Xmaxである場合には、上述したように、敵機が、敵機の進行方向に回り込む自機の攻撃によって破壊される可能性があるため、敵機は、X軸方向であって自機がいない方向に0以上の速度で移動する。例えば、Xmin<X<Xmaxである場合には、X軸方向であって自機がいない方向に向かって、Vexmaxの移動速度で移動する。   When | Xs−X | / Vsmax ≦ | Ys−Y | / | Vexmax−Vsmax |, there is a possibility that the enemy aircraft may be destroyed by the attack of the own aircraft that has entered the traveling direction of the enemy aircraft. Therefore, the enemy aircraft behaves according to the enemy aircraft behavior control algorithm in the defense mode / own device enclosure mode (FIG. 5, Steps S162 to S168). Specifically, it moves slowly in the Y-axis direction and creates a wall that surrounds itself with attacking bullets fired by enemy aircraft, thereby enhancing the defense capability of enemy aircraft. For example, the enemy aircraft moves at a moving speed of Vsmax / 2 in the Y-axis direction. Further, when | Xs−X | / Vsmax ≦ | Ys−Y | / | Vexmax−Vsmax | and Xmax <X or X <min, as described above, the enemy aircraft is It does not move in the X-axis direction because it is not destroyed by the attack of its own aircraft that goes around the enemy aircraft. Further, when | Xs−X | / Vsmax ≦ | Ys−Y | / | Vexmax−Vsmax | and Xmin <X <Xmax, the enemy aircraft advances the enemy aircraft as described above. Since there is a possibility of being destroyed by the attack of the own aircraft that goes around in the direction, the enemy aircraft moves at a speed of 0 or more in the direction of the X axis and the direction in which the own aircraft does not exist. For example, when Xmin <X <Xmax, the robot moves at a moving speed of Vexmax toward the X-axis direction and the direction where there is no own device.

|Xs−X|/Vsmax>|Ys−Y|/|Vexmax−Vsmax|である場合には、図14に示すように、敵機が、敵機の進行方向に回り込んだ自機の攻撃により破壊される可能性はないため、敵機は、攻撃モードにおける敵機行動制御アルゴリズムに従って行動する(図5、ステップS169〜ステップS1611)。具体的には、Y軸方向に速く動き、様々な方向から自機に向けてまばらに攻撃弾が発射されるようにする。例えば、Y軸方向には、Vsmax×2の移動速度で移動し、また、X軸方向には移動しないか、X軸方向であって自機がいる方向に0以上の速度で移動する。   When | Xs−X | / Vsmax> | Ys−Y | / | Vexmax−Vsmax |, as shown in FIG. 14, the enemy aircraft is attacked by the enemy aircraft that has entered the traveling direction of the enemy aircraft. Since there is no possibility of being destroyed, the enemy aircraft behaves according to the enemy aircraft behavior control algorithm in the attack mode (FIG. 5, steps S169 to S1611). Specifically, the attack bullets are sparsely fired from various directions toward the aircraft, moving fast in the Y-axis direction. For example, it moves at a moving speed of Vsmax × 2 in the Y-axis direction, and does not move in the X-axis direction, or moves at a speed of 0 or more in the direction of the X-axis and where the own aircraft is.

このように、敵機の移動速度を決めることによって、早期に行動範囲が狭められた自機を、攻撃力に優れた敵機で追い込むという戦術が可能となり、よりゲーム性が増したシューティングゲームを実現することができる。
なお、|Xs−X|/Vsmax≦|Ys−Y|/|Vexmax−Vsmax|ではなく、|Xs−X|/Vsmax<|Ys−Y|/|Vexmax−Vsmax|あるかどうかを判定して、防御・囲い込みモードか、攻撃モードかを決定しても良い。また、Xmin<X<Xmaxではなく、Xmin≦X≦Xmaxかどうかで、敵機がX軸方向であって自機がいない方向に移動するかどうかを決定しても良い。
In this way, by determining the movement speed of enemy aircraft, it becomes possible to tactics of chasing the own aircraft whose action range was narrowed early with enemy aircraft with excellent attack power, and shooting games with increased game characteristics Can be realized.
It is determined whether or not | Xs−X | / Vsmax ≦ | Ys−Y | / | Vexmax−Vsmax |, but | Xs−X | / Vsmax <| Ys−Y | / | Vexmax−Vsmax | It may be determined whether the mode is a defense / enclosure mode or an attack mode. Further, it may be determined whether or not the enemy aircraft moves in the X-axis direction and the own aircraft does not exist depending on whether Xmin ≦ X ≦ Xmax, not Xmin <X <Xmax.

<攻撃弾の発射の方法>
上記の敵機の移動速度の決定方法と同時に、以下に述べるように、「安全行動パターン」の数が少なくなるように敵機に攻撃弾を発射させると効果的である。敵機が攻撃弾を発射する時点で存在している自機の取り得る「安全行動パターン」の数を減らすことができれば、敵機は自機を効率的に追い詰めているということができるためである。また、敵機の移動速度が遅い場合に、安全行動パターンの中に含まれる位置のひとつを通過するように多くの攻撃弾を狭い間隔で発射すれば、自機の移動をさえぎる壁が作りやすくなるためである。
以下では、ある位置に自機が到達するのにかかる時間と、その位置に敵機が発射する攻撃弾が到達するのにかかる時間との差の絶対値が所定の値Cよりも小さい場合には、その位置のことを攻撃弾の目標位置(以下、攻撃目標位置とする。)と呼ぶ。所定の値Cは、例えば、自機の大きさと敵機攻撃弾の大きさの和の半分をS、敵機の攻撃弾の速度をVeとすると、S/Veとすることができる。また、自機の大きさとしては、例えば、自機の形状に内接する円の直径、敵機攻撃弾の大きさとしては、敵機攻撃弾の形状に内接する円の直径を取ることができる。
<Method of launching attack bullets>
Simultaneously with the method for determining the movement speed of the enemy aircraft, as described below, it is effective to fire an attack bullet at the enemy aircraft so that the number of “safe behavior patterns” is reduced. If the enemy aircraft can reduce the number of “safe behavior patterns” that can be taken by the own aircraft at the time of firing the attack bullets, it can be said that the enemy aircraft is effectively pursuing the own aircraft is there. Also, when enemy aircraft move slowly, it is easy to create a wall that blocks the movement of your aircraft if you launch many attack bullets at narrow intervals so that they pass through one of the positions included in the safe action pattern. It is to become.
In the following, when the absolute value of the difference between the time it takes for the aircraft to reach a certain position and the time it takes for an attack bullet fired by the enemy aircraft to reach that position is smaller than a predetermined value C Is called the target position of the attack bullet (hereinafter referred to as the attack target position). The predetermined value C can be, for example, S / Ve, where S is half of the sum of the size of the own aircraft and the size of the enemy attacking bullet, and Ve is the velocity of the attacking bullet of the enemy aircraft. Also, as the size of the own aircraft, for example, the diameter of a circle inscribed in the shape of the own aircraft, and as the size of the enemy aircraft attack bullet, the diameter of a circle inscribed in the shape of the enemy aircraft attack bullet can be taken .

ある位置に自機が移動するのにかかる時間と、その位置に敵機が発射する攻撃弾が移動するのにかかる時間との差の絶対値がS/Veよりも小さい場合には、敵機がその位置に向けて攻撃弾を発射すると、その位置に移動する行動を選択した自機が、攻撃弾とその位置において衝突するのである。
ここで、自機の攻撃目標位置への到達時間が短いほど、敵機が発射する攻撃弾によって減らすことができる自機の安全行動パターンの数は多いということができる。なぜなら、自機の移動パターンの探索木の根元の近くにある(浅い深さにある)節点を攻撃目標位置とすると、その節点から分岐する安全行動パターンのすべてをなくすことができるためである。
If the absolute value of the difference between the time it takes for the aircraft to move to a certain position and the time it takes for the attacking bullet fired by the enemy aircraft to move to that position is smaller than S / Ve, When an attack bullet is fired at that position, the aircraft that selected the action to move to that position collides with the attack bullet at that position.
Here, it can be said that the shorter the arrival time of the own aircraft at the attack target position, the greater the number of safe action patterns of the own aircraft that can be reduced by the attack bullets fired by the enemy aircraft. This is because if a node near the root of the search tree of the movement pattern of the own device (at a shallow depth) is set as the attack target position, all of the safety action patterns branched from the node can be eliminated.

このような、自機の移動パターンの探索木の根元の近くにあり、自機が到達することができる時間が短い攻撃目標位置を見つけるために、以下に述べる第1実施形態では縦型探索を用いる。また、第2実施形態では、横型探索を用いる。これらの実施形態は一例であり、他の探索方法を用いても本発明を実施することができる。すなわち、探索の方法は、後述する縦型探索と横型探索に限定されない。
縦型探索とは、子節点を優先して探索するものである。例えば、D=3、W=3の場合、図11に示すように、行動単位ごとの移動経路につけた番号の順番でそれぞれの経路を探索する手法である。以下に述べる第1実施形態では、衝突が起こった場合には、衝突が起こった箇所より後の経路を探索しない。例えば、※1(6の経路)において衝突が起こった場合には、7〜9の経路については探索しない。この場合には、6の経路を探索して衝突が発生した後に、10の経路を探索することになる。また、ひとつでも適切な攻撃目標位置が見つかると、その攻撃目標位置に到達するまでの時間より、自機の到達時間が長い位置については探索を行わない。例えば、図5に示すように、深さd=2の探索で、○(15の経路)において適切な攻撃目標位置が見つかった場合には、自機が、現在位置から○で示された攻撃目標位置に到達するまでの時間よりも、自機の到達時間が短い位置についてのみ適切な攻撃目標位置と成り得るかどうかを調べる。
In order to find an attack target position that is close to the root of the search tree of the movement pattern of the own device and that can be reached by the own device, the vertical search is used in the first embodiment described below. . In the second embodiment, horizontal search is used. These embodiments are merely examples, and the present invention can be implemented using other search methods. That is, the search method is not limited to the vertical search and the horizontal search described later.
A vertical search is a search that gives priority to child nodes. For example, when D = 3 and W = 3, as shown in FIG. 11, each route is searched in the order of the numbers given to the movement routes for each behavior unit. In the first embodiment described below, when a collision occurs, the route after the location where the collision occurs is not searched. For example, when a collision occurs in * 1 (route 6), the routes 7-9 are not searched. In this case, after the route 6 is searched and a collision occurs, the route 10 is searched. If even one suitable attack target position is found, the search is not performed for a position where the arrival time of the own aircraft is longer than the time required to reach the attack target position. For example, as shown in FIG. 5, when a suitable attack target position is found in a circle (15 routes) in a search with a depth d = 2, the own aircraft is attacked with a circle from the current position. It is examined whether or not an appropriate attack target position can be obtained only for a position where the arrival time of the own aircraft is shorter than the time required to reach the target position.

また、横型探索とは、ある節点から探索を開始して、その節点に接続している節点を全て調べた後、その調べた節点に接続している子節点を順番に調べて行く探索方法である。例えば、D=3、W=3の場合、図12に示すように、行動単位ごとの移動経路につけた番号の順番でそれぞれの経路を探索する手法である。以下に述べる第2実施形態では、衝突が起こった場合には、衝突が起こった箇所より後の経路を探索しない。例えば、※1(5の経路)において衝突が起こった場合には、16〜18の経路については探索しない。この場合には、15の経路を探索した後に、19の経路を探索する。また、ひとつでも適切な攻撃目標位置が見つかると、その攻撃目標位置に到達する時間よりも、自機の到達時間が長い位置については探索を行わない。例えば、図12に示すように、深さd=2の探索で、○(7の経路)において適切な攻撃目標位置が見つかった場合には、自機が、現在位置から○で示された攻撃目標位置に到達するまでの時間よりも、自機の到達時間が短い位置についてのみ適切な攻撃目標位置と成り得るかどうかを調べる。   In addition, horizontal search is a search method in which a search is started from a certain node, all nodes connected to the node are examined, and then the child nodes connected to the examined node are examined in order. is there. For example, in the case of D = 3 and W = 3, as shown in FIG. 12, each route is searched in the order of the numbers assigned to the movement routes for each action unit. In the second embodiment described below, when a collision occurs, the route after the location where the collision occurs is not searched. For example, when a collision occurs in * 1 (route 5), the routes 16 to 18 are not searched. In this case, after searching for 15 routes, 19 routes are searched. If even one suitable attack target position is found, a search is not performed for a position where the arrival time of the own aircraft is longer than the time to reach the attack target position. For example, as shown in FIG. 12, when a suitable attack target position is found in a circle (path 7) in a search at a depth d = 2, the own aircraft is attacked by a circle from the current position. It is examined whether or not an appropriate attack target position can be obtained only for a position where the arrival time of the own aircraft is shorter than the time required to reach the target position.

図1、2を参照して、本発明の第1実施形態(縦型探索)によるシューティングゲーム処理方法を実施するためのシューティングゲーム処理装置1000を説明する。図1は、シューティングゲーム処理装置1000の機能構成例を示す図である。図2は、シューティングゲーム処理装置1000の処理例を示す図である。
シューティングゲーム処理装置1000は、例えば、自機移動パターン生成部10、攻撃弾位置推定部20、衝突判定部30、攻撃目標位置判定部40、攻撃目標位置バッファ50、自機移動パターンバッファ51、敵機攻撃弾状態バッファ52、自機移動範囲バッファ54、攻撃弾発射部60、自機移動範囲決定部70、敵機速度決定部80から構成される。
自機移動パターン生成部10は、例えば、初期化部101、制御部102、バッファ103、位置更新部104、記憶部105から構成される。
攻撃弾位置推定部20は、例えば、記憶部201、位置取得部202から構成される。
攻撃目標位置判定部40は、例えば、到達時間差計算部401を含む。
敵機速度決定部80は、例えば、モード判定部801と位置判定部802から構成される。
A shooting game processing apparatus 1000 for carrying out the shooting game processing method according to the first embodiment (vertical search) of the present invention will be described with reference to FIGS. FIG. 1 is a diagram illustrating a functional configuration example of the shooting game processing apparatus 1000. FIG. 2 is a diagram illustrating a processing example of the shooting game processing apparatus 1000.
The shooting game processing apparatus 1000 includes, for example, the own device movement pattern generation unit 10, the attack bullet position estimation unit 20, the collision determination unit 30, the attack target position determination unit 40, the attack target position buffer 50, the own device movement pattern buffer 51, the enemy The machine attack bullet state buffer 52, the own machine movement range buffer 54, the attack bullet firing unit 60, the own machine movement range determination unit 70, and the enemy aircraft speed determination unit 80 are configured.
The own device movement pattern generation unit 10 includes, for example, an initialization unit 101, a control unit 102, a buffer 103, a position update unit 104, and a storage unit 105.
The attack bullet position estimation unit 20 includes a storage unit 201 and a position acquisition unit 202, for example.
The attack target position determination unit 40 includes, for example, an arrival time difference calculation unit 401.
The enemy aircraft speed determination unit 80 includes a mode determination unit 801 and a position determination unit 802, for example.

<準備>
自機の行動の回数(探索の深さ)D、自機の取り得る行動wの種類の数W、各行動wを取ったときの自機の速度(Vxw,Vyw)、行動単位時間Tは予め設定され、自機移動パターン生成部10の記憶部105に格納されているものとする。
例えば、D=5、W=9に設定することができる。また、各行動wを取ったときの自機の速度(Vxw,Vyw)としては、例えば、W=9の場合、(Vx1,Vy1)=(0,1)、(Vx2,Vy2)=(1,1)、(Vx3,Vy3)=(1,0)、(Vx4,Vy4)=(1,−1)、(Vx5,Vy5)=(0,−1)、(Vx6,Vy6)=(−1,−1)、(Vx7,Vy7)=(−1,0)、(Vx8,Vy8)=(−1,1)、(Vx9,Vy9)=(0,0)とすることができる。
また、行動単位時間Tの長さは、自機の大きさが0でないとした場合、自機が移動によって掃く領域がカバーすることができない領域が各深さの移動において発生しないようにすることが重要である。自機が移動によって掃く領域がカバーすることができない領域が存在すれば、求まったXmax,Xminは、実際に自機が移動することができる領域の一部については考慮していないことになるからである。このため、より適切な攻撃目標位置を見つけるためには、例えば、自機の形状に内接する円の直径を自機の速度で割った値を、上記行動単位時間Tとして設定する。
敵機の攻撃弾の速度(Vbikx(t),Vbiky(t))は、予め設定され攻撃弾位置推定部20の記憶部201に格納されているものとする。
以下では、tを自機が行動を開始してからの経過時間、時刻tでの自機の位置を(Xs(t),Ys(t))、敵機iの発射したk番目の攻撃弾の時刻tでの位置を(Xbik(t),Ybik(t))とする。ここで、tは、処理単位時間τごとに離散的な時間を取るものとする。
<Preparation>
Number of actions of own machine (depth of search) D, number W of kinds of actions w that can be taken by own machine, speed (Vxw, Vyw) of own machine when taking each action w, and unit time T of action It is assumed that it is set in advance and stored in the storage unit 105 of the own device movement pattern generation unit 10.
For example, D = 5 and W = 9 can be set. Further, as the speed (Vxw, Vyw) of the own device when each action w is taken, for example, when W = 9, (Vx1, Vy1) = (0, 1), (Vx2, Vy2) = (1 , 1), (Vx3, Vy3) = (1, 0), (Vx4, Vy4) = (1, −1), (Vx5, Vy5) = (0, −1), (Vx6, Vy6) = (− 1, -1), (Vx7, Vy7) = (-1, 0), (Vx8, Vy8) = (-1, 1), (Vx9, Vy9) = (0, 0).
The length of the action unit time T should be such that if the size of the aircraft is not 0, an area that cannot be covered by the area swept by the movement of the aircraft does not occur at each depth of movement. is important. If there is an area that cannot be covered by the area swept by the own machine, the determined Xmax and Xmin do not consider a part of the area in which the own machine can actually move. It is. For this reason, in order to find a more appropriate attack target position, for example, a value obtained by dividing the diameter of a circle inscribed in the shape of the own device by the speed of the own device is set as the action unit time T.
Assume that the velocity (Vbikx (t), Vbiky (t)) of the attacking bullet of the enemy aircraft is set in advance and stored in the storage unit 201 of the attacking bullet position estimation unit 20.
In the following, t is the elapsed time from the start of the action of the ship, the position of the ship at time t is (Xs (t), Ys (t)), and the kth attack bullet launched by the enemy aircraft i. (Xbik (t), Ybik (t)) at time t. Here, t takes a discrete time for each processing unit time τ.

<ステップS1>
自機移動パターン生成部10の初期化部101は、t=0,d=1、Db=D,tb=D×Tとして、これらをバッファ103に格納する。また、初期化部101は、時刻tにおける自機の位置(Xs(t),Ys(t))を自機の現在位置に設定して、これを自機移動パターンバッファ51に格納する。
<ステップS2>
自機移動パターン生成部10の制御部102は、w(d)=1とする。ここで、w(d)は、深さdにおける自機の移動速度番号wである。
<ステップS3>
自機移動パターン生成部10の制御部102は、w(d)と(Xs(t),Ys(t))の値を、それぞれ自機移動パターンバッファ51に格納する。また、自機移動パターン生成部10の制御部102は、時刻tにおける攻撃弾の位置(Xbik(t),Ybik(t))を、敵機攻撃弾状態バッファ52に格納する。
<Step S1>
The initialization unit 101 of the own device movement pattern generation unit 10 stores these in the buffer 103 as t = 0, d = 1, Db = D, tb = D × T. Further, the initialization unit 101 sets the position (Xs (t), Ys (t)) of the own apparatus at time t to the current position of the own apparatus, and stores this in the own movement pattern buffer 51.
<Step S2>
The control unit 102 of the own device movement pattern generation unit 10 sets w (d) = 1. Here, w (d) is the moving speed number w of the own device at the depth d.
<Step S3>
The control unit 102 of the own device movement pattern generation unit 10 stores the values of w (d) and (Xs (t), Ys (t)) in the own device movement pattern buffer 51, respectively. Further, the control unit 102 of the own aircraft movement pattern generation unit 10 stores the attack bullet position (Xbik (t), Ybik (t)) at the time t in the enemy aircraft attack bullet state buffer 52.

<ステップS4>
自機移動パターン生成部10の制御部102は、バッファ103からtを読み出し、tをインクリメント幅τだけインクリメントする。インクリメントされたtは、バッファ103に格納される。tのインクリメント幅τは、行動単位時間Tより小さい値、好ましくはTを複数等分する値であれば、どのような値でも良い。例えば、Tを0.3秒〜1秒としたとき、このTを10等分する時間間隔である0.03秒〜0.1秒をτに設定することができる。
また、自機移動パターン生成部10の位置更新部104は、自機の移動速度(Vx(w(d)),Vy(w(d))でtのインクリメント幅τだけ移動した後の自機の位置を計算する。具体的には、位置更新部104は、(τ×Vx(w(d)),τ×Vy(w(d)))を計算して、位置の変位量を求め、これに(Xs(t−τ),Ys(t−τ))を加算することにより、自機の位置を更新する。インクリメント幅τでインクリメントした後の自機の位置、すなわち、更新後の自機の位置(Xs(t),Ys(t))は、衝突判定部30に出力される。
<Step S4>
The control unit 102 of the own movement pattern generation unit 10 reads t from the buffer 103 and increments t by the increment width τ. The incremented t is stored in the buffer 103. The increment width τ of t may be any value as long as it is a value smaller than the action unit time T, preferably a value that equally divides T. For example, when T is set to 0.3 seconds to 1 second, 0.03 seconds to 0.1 seconds, which is a time interval for dividing T into 10 parts, can be set as τ.
Further, the position update unit 104 of the own device movement pattern generation unit 10 moves the own device after moving by the increment width τ of t at the moving speed (Vx (w (d)), Vy (w (d)) of the own device. Specifically, the position updating unit 104 calculates (τ × Vx (w (d)), τ × Vy (w (d))) to obtain a displacement amount of the position, By adding (Xs (t−τ), Ys (t−τ)) to this, the position of the own apparatus is updated, that is, the position of the own apparatus after being incremented by the increment width τ, that is, the updated position. The machine position (Xs (t), Ys (t)) is output to the collision determination unit 30.

<ステップS5>
攻撃弾位置推定部20は、攻撃弾の位置(Xbik(t),Ybik(t))を更新する。すなわち、τ時間経過後の攻撃弾の位置(Xbik(t),Ybik(t))を計算する。
具体的には、記憶部201に記憶された攻撃弾の速度(Vbikx(t),Vbiky(t))を読み出し、これをτ倍したものを、位置取得部202が取得した更新前の攻撃弾の位置(Xbik(t−τ),Ybik(t−τ))に加算することにより、更新後の攻撃弾の位置(Xbik(t),Ybik(t))を求める。
更新後の攻撃弾の位置(Xbik(t),Ybik(t))は、記憶部201に記憶される。また、更新後の攻撃弾の位置(Xbik(t),Ybik(t))は、衝突判定部30と自機移動パターン生成部10に出力される。
<Step S5>
The attack bullet position estimation unit 20 updates the position of the attack bullet (Xbik (t), Ybik (t)). That is, the attack bullet position (Xbik (t), Ybik (t)) after the elapse of τ time is calculated.
Specifically, the velocity (Vbikx (t), Vbiky (t)) of the attack bullet stored in the storage unit 201 is read, and the attack bullet before update acquired by the position acquisition unit 202 is multiplied by τ. Is added to the position (Xbik (t−τ), Ybik (t−τ)) to obtain the updated position (Xbik (t), Ybik (t)) of the attacking bullet.
The updated attack bullet positions (Xbik (t), Ybik (t)) are stored in the storage unit 201. The updated attack bullet positions (Xbik (t), Ybik (t)) are output to the collision determination unit 30 and the own movement pattern generation unit 10.

<ステップS6>
衝突判定部30は、自機と攻撃弾が衝突したかどうかを判定する。衝突したかどうかは、予め設定され、図示していない衝突判定部30内の記憶部に記憶された自機の形状、攻撃弾の形状と、自機移動パターン生成部10から出力された更新後の自機の位置(Xs(t),Ys(t))、攻撃弾位置推定部20から出力された更新後の攻撃弾の位置(Xbik(t),Ybik(t))とから判断される。
例えば、更新後の位置に置かれた自機の形状と更新後の位置に置かれた敵機の攻撃弾の形状が重なった場合には、自機と攻撃弾が衝突したと判定することができる。
衝突がなかったと判定された場合には、衝突がなかった旨の信号が、自機移動パターン生成部10と自機移動範囲決定部70に出力される。その後、ステップS7aの処理を行う。
衝突があったと判定された場合には、衝突があった旨の信号が、自機移動パターン生成部10に出力される。その後、ステップS12の処理を行う。
<Step S6>
The collision determination unit 30 determines whether or not the own aircraft and the attack bullet have collided. Whether or not the vehicle has collided is set in advance and is stored in a storage unit (not shown) in the storage unit 30, the shape of the own aircraft, the shape of the attack bullet, and the updated output output from the own device movement pattern generator 10 Is determined from the position (Xs (t), Ys (t)) of the own aircraft and the position (Xbik (t), Ybik (t)) of the updated attack bullet output from the attack bullet position estimation unit 20 .
For example, if the shape of the own aircraft placed at the updated position and the shape of the attack bullet of the enemy aircraft placed at the updated position overlap, it can be determined that the own aircraft and the attack bullet have collided it can.
When it is determined that there is no collision, a signal indicating that there is no collision is output to the own apparatus movement pattern generation unit 10 and the own apparatus movement range determination unit 70. Thereafter, the process of step S7a is performed.
If it is determined that there is a collision, a signal indicating that there is a collision is output to the own-movement pattern generation unit 10. Then, the process of step S12 is performed.

<ステップS7a>
ステップS7aは、自機が敵機の攻撃弾に撃墜されないで移動することができるX軸方向の移動範囲の最大値・最小値を求めるための過程である。ステップS7aは、図3に示すように、ステップS71〜ステップS74から構成される。
≪ステップS71≫(図3)
衝突がなかった旨の信号を受け取った自機移動範囲決定部70は、自機移動範囲バッファ54に格納されているXmaxを読み出し、Xs(t)との大小関係を比較する。
Xmax<Xs(t)であれば、ステップS72の処理を行う。
Xs(t)≦Xmaxであれば、ステップS73の処理を行う。
なお、自機移動範囲バッファ54にXmaxが格納されていない場合には、自機移動範囲決定部70は、Xs(t)をXmaxとして自機移動範囲バッファ54に格納して、ステップS8(図2)の処理を行う。
<Step S7a>
Step S7a is a process for obtaining the maximum value and the minimum value of the movement range in the X-axis direction in which the own aircraft can move without being shot down by the attacking bullets of the enemy aircraft. Step S7a includes steps S71 to S74 as shown in FIG.
<< Step S71 >> (FIG. 3)
Receiving the signal that there was no collision, own device movement range determining unit 70 reads Xmax stored in own device movement range buffer 54 and compares the magnitude relationship with Xs (t).
If Xmax <Xs (t), the process of step S72 is performed.
If Xs (t) ≦ Xmax, the process of step S73 is performed.
If Xmax is not stored in own apparatus movement range buffer 54, own apparatus movement range determination unit 70 stores Xs (t) as Xmax in own apparatus movement range buffer 54, and performs step S8 (FIG. 8). Process 2) is performed.

≪ステップS72≫
自機移動範囲決定部70は、Xmax<Xs(t)の場合には、Xs(t)を新たなXmaxとして、自機移動範囲バッファ54に格納する。その後、ステップS8(図2)の処理を行う。
<< Step S72 >>
If Xmax <Xs (t), own device movement range determination unit 70 stores Xs (t) as new Xmax in own device movement range buffer 54. Then, the process of step S8 (FIG. 2) is performed.

≪ステップS73≫
自機移動範囲決定部70は、Xs(t)≦Xmaxの場合には、自機移動範囲バッファ54に格納されているXminを読み出し、Xs(t)との大小関係を比較する。
Xs(t)<Xminであれば、ステップS74の処理を行う。
Xmin≦Xs(t)であれば、ステップS8(図2)の処理を行う。
なお、自機移動範囲バッファ54にXminが格納されていない場合には、自機移動範囲決定部70は、Xs(t)をXminとして自機移動範囲バッファ54に格納して、ステップS8(図2)の処理を行う。
<< Step S73 >>
When Xs (t) ≦ Xmax, own device movement range determination unit 70 reads Xmin stored in own device movement range buffer 54 and compares the magnitude relationship with Xs (t).
If Xs (t) <Xmin, the process of step S74 is performed.
If Xmin ≦ Xs (t), the process of step S8 (FIG. 2) is performed.
If Xmin is not stored in own device movement range buffer 54, own device movement range determination unit 70 stores Xs (t) as Xmin in own device movement range buffer 54, and performs step S8 (FIG. 8). Process 2) is performed.

≪ステップS74≫
自機移動範囲決定部70は、Xs(t)<Xminの場合には、Xs(t)を新たなXminとして、自機移動範囲バッファ54に格納する。その後、ステップS8(図2)の処理を行う。
<ステップS8>
自機移動パターン生成部10の制御部102は、ステップS3のときから、行動単位時間Tが経過したかどうかを判定する。すなわち、バッファから読み出したtがd×Tよりも大きいかどうか、つまり、t≧d×Tかどうかを判定する。
t<d×Tであれば、ステップS4の処理を行う。すなわち、tがステップS3の時から行動単位時間Tを経過するまで、ステップS4〜S8を繰り返す。
t≧d×Tであれば、ステップS9の処理を行う。
<ステップS9>
自機移動パターン生成部10の制御部102は、バッファ103から読み出したdを1だけインクリメントする。インクリメントされたdは、バッファ103に格納される。
<ステップS10>
自機移動パターン生成部10の制御部102は、バッファ103から読み出したdが、バッファ103から読み出したDbより大きいかどうかを判定する。すなわち、Db<dかどうかを判定する。
Db≧dであると判定された場合には、制御部102は、ステップS2の処理を行う。
Db<dであると判定された場合には、制御部102は、ステップS11の処理を行う。
<< Step S74 >>
If Xs (t) <Xmin, own device movement range determination unit 70 stores Xs (t) as new Xmin in own device movement range buffer 54. Then, the process of step S8 (FIG. 2) is performed.
<Step S8>
The control unit 102 of the own device movement pattern generation unit 10 determines whether or not the behavior unit time T has elapsed since step S3. That is, it is determined whether t read from the buffer is larger than d × T, that is, whether t ≧ d × T.
If t <d × T, the process of step S4 is performed. That is, steps S4 to S8 are repeated until the action unit time T elapses from when t is step S3.
If t ≧ d × T, the process of step S9 is performed.
<Step S9>
The control unit 102 of the own device movement pattern generation unit 10 increments d read from the buffer 103 by one. The incremented d is stored in the buffer 103.
<Step S10>
The control unit 102 of the own device movement pattern generation unit 10 determines whether d read from the buffer 103 is larger than Db read from the buffer 103. That is, it is determined whether Db <d.
When it is determined that Db ≧ d, the control unit 102 performs the process of step S2.
When it is determined that Db <d, the control unit 102 performs the process of step S11.

<ステップS11>
自機移動パターン生成部10の制御部102は、バッファ103から読み出したdを、1だけデクリメントする。デクリメントされたdは、バッファ103に格納される。
<ステップS12>
自機移動パターン生成部10の制御部102は、バッファ103から読み出したtを(d−1)Tに設定する。(d−1)Tに設定されたtは、バッファ103に格納される。また、自機移動パターンバッファ51に格納されたw(d)を読み出し、1だけインクリメントする。インクリメントされたw(d)は、自機移動パターンバッファ51に格納される。
<ステップS13>
自機移動パターン生成部10の制御部102は、記憶部105から読み出したWと、自機移動パターンバッファ51から読み出したw(d)の大小関係を比較する。
W<w(d)であれば、自機移動パターン生成部10の制御部102は、ステップS15の処理を行う。W≧w(d)であれば、自機移動パターン生成部10の制御部102は、ステップS14の処理を行う。
<ステップS14>
自機移動パターン生成部10の制御部102は、自機移動パターンバッファ51から、時刻tにおける自機の位置(Xs(t),Ys(t))を読み出す。また、敵機攻撃弾状態バッファ52から、時刻tにおける攻撃弾の位置(Xbik(t),Ybik(t))を読み出す。その後、ステップS3の処理の処理を行う。
<Step S11>
The control unit 102 of the own device movement pattern generation unit 10 decrements d read from the buffer 103 by one. The decremented d is stored in the buffer 103.
<Step S12>
The control unit 102 of the own device movement pattern generation unit 10 sets t read from the buffer 103 to (d−1) T. (D-1) t set in T is stored in the buffer 103. Also, w (d) stored in own device movement pattern buffer 51 is read and incremented by one. The incremented w (d) is stored in the own movement pattern buffer 51.
<Step S13>
The control unit 102 of the own device movement pattern generation unit 10 compares the magnitude relationship between W read from the storage unit 105 and w (d) read from the own device movement pattern buffer 51.
If W <w (d), the control unit 102 of the own device movement pattern generation unit 10 performs the process of step S15. If W ≧ w (d), the control unit 102 of the own device movement pattern generation unit 10 performs the process of step S14.
<Step S14>
The control unit 102 of the own device movement pattern generation unit 10 reads the position (Xs (t), Ys (t)) of the own device at time t from the own device movement pattern buffer 51. Further, the position (Xbik (t), Ybik (t)) of the attacking bullet at time t is read from the enemy aircraft attacking bullet state buffer 52. Thereafter, the process of step S3 is performed.

<ステップS15>
ステップS13においてW<w(d)であると判定された場合には、自機移動パターン生成部10の制御部102は、d=1か否かを判定する。
d≠1と判定された場合には、ステップS11の処理を行う。
d=1と判定された場合には、ステップS16aの処理を行う。
<ステップS16a>
ステップS15において、d=1と判定された場合には、自機のX軸方向の移動範囲の最大値Xmax、最小値Xminを求める探索を終了する。そして、敵機速度決定部80が、自機のX軸方向の移動範囲の最大値Xmax、最小値Xminを基にして、敵機の移動速度を決定する。ステップS16aは、図5に示すように、ステップS161〜ステップ1611から構成される。
<Step S15>
If it is determined in step S13 that W <w (d), the control unit 102 of the own movement pattern generation unit 10 determines whether d = 1.
If it is determined that d ≠ 1, the process of step S11 is performed.
If it is determined that d = 1, the process of step S16a is performed.
<Step S16a>
If it is determined in step S15 that d = 1, the search for obtaining the maximum value Xmax and the minimum value Xmin of the movement range of the own device in the X-axis direction is terminated. Then, the enemy aircraft speed determination unit 80 determines the movement speed of the enemy aircraft based on the maximum value Xmax and the minimum value Xmin of the movement range of the own aircraft in the X-axis direction. Step S16a is composed of steps S161 to 1611 as shown in FIG.

≪ステップS161≫(図5)
まず、敵機速度決定部80のモード判定部801が、|Xs−X|/Vsmax≦|Ys−Y|/|Vexmax−Vsmax|かどうかを判定する。
|Xs−X|/Vsmax≦|Ys−Y|/|Vexmax−Vsmax|である場合には、図13に示すように、敵機が、敵機の進行方向に回り込んだ自機の攻撃により破壊される可能性があるので、敵機速度決定アルゴリズムは、防御モード・自機囲い込みモードに移行する。具体的には、ステップS162〜ステップS168の処理を行う。
<< Step S161 >> (FIG. 5)
First, the mode determination unit 801 of the enemy aircraft speed determination unit 80 determines whether or not | Xs−X | / Vsmax ≦ | Ys−Y | / | Vexmax−Vsmax |.
When | Xs−X | / Vsmax ≦ | Ys−Y | / | Vexmax−Vsmax |, as shown in FIG. 13, the enemy aircraft has been attacked by its own aircraft that has turned around in the advancing direction of the enemy aircraft. Since there is a possibility of being destroyed, the enemy aircraft speed determination algorithm shifts to the defense mode / own device enclosure mode. Specifically, the processes in steps S162 to S168 are performed.

|Xs−X|/Vsmax>|Ys−Y|/|Vexmax−Vsmax|である場合には、図14に示すように、敵機が、敵機の進行方向に回り込んだ自機の攻撃により破壊される可能性がないので、敵機速度決定アルゴリズムは、攻撃モードに移行する。具体的には、ステップS169〜ステップS1611の処理を行う。
≪ステップS162≫
敵機速度決定部80の位置判定部802は、自機移動範囲バッファ54から読み出したXmaxと敵機の現在位置のX座標(X)との大小関係を比較する。
When | Xs−X | / Vsmax> | Ys−Y | / | Vexmax−Vsmax |, as shown in FIG. Since there is no possibility of being destroyed, the enemy aircraft speed determination algorithm shifts to the attack mode. Specifically, the processing of step S169 to step S1611 is performed.
<< Step S162 >>
The position determination unit 802 of the enemy aircraft speed determination unit 80 compares the magnitude relationship between Xmax read from the own aircraft movement range buffer 54 and the X coordinate (X) of the current position of the enemy aircraft.

Xmax<Xであれば、ステップS163の処理を行う。
X≦Xmaxであれば、ステップS164の処理を行う。
≪ステップS163≫
Xmax<Xのときには、敵機が、敵機の進行方向に回り込んだ自機により破壊されることはないため、敵機はX軸方向には移動しない。また、ステップS161において、|Xs−X|/Vsmax≦|Ys−Y|/|Vexmax−Vsmax|と判定されており、防御モード・自機囲い込みモードにあるため、敵機はY軸方向にはゆっくりと進む。このため、例えば、Vex=0、Vey=−Vsmax/2とする。敵機速度決定部80は、この移動速度に従って敵機を移動させる。
If Xmax <X, the process of step S163 is performed.
If X ≦ Xmax, the process of step S164 is performed.
<< Step S163 >>
When Xmax <X, the enemy aircraft does not move in the X axis direction because the enemy aircraft is not destroyed by the own aircraft that has entered the traveling direction of the enemy aircraft. In step S161, it is determined that | Xs−X | / Vsmax ≦ | Ys−Y | / | Vexmax−Vsmax |, and the enemy aircraft is in the Y-axis direction because it is in the defense mode / own device enclosure mode. Proceed slowly. For this reason, for example, Vex = 0 and Vey = −Vsmax / 2. The enemy aircraft speed determination unit 80 moves the enemy aircraft according to this movement speed.

≪ステップS164≫
敵機速度決定部80の位置判定部802は、自機移動範囲バッファ54から読み出したXminと敵機の位置のX座標(X)との大小関係を比較する。
X<Xminであれば、ステップS165の処理を行う。
Xmin≦Xであれば、ステップS166の処理を行う。
<< Step S164 >>
The position determination unit 802 of the enemy aircraft speed determination unit 80 compares the magnitude relationship between Xmin read from the own aircraft movement range buffer 54 and the X coordinate (X) of the enemy aircraft position.
If X <Xmin, the process of step S165 is performed.
If Xmin ≦ X, the process of step S166 is performed.

≪ステップS165≫
X<Xminのときには、敵機が、敵機の進行方向に回り込んだ自機により破壊されることはないため、敵機はX軸方向には移動しない。また、ステップS161において、|Xs−X|/Vsmax≦|Ys−Y|/|Vexmax−Vsmax|と判定されており、防御モード・自機囲い込みモードにあるため、敵機はY軸方向にはゆっくりと進む。このため、例えば、Vex=0、Vey=−Vsmax/2とする。敵機速度決定部80は、この移動速度に従って敵機を移動させる。
<< Step S165 >>
When X <Xmin, the enemy aircraft does not move in the X-axis direction because the enemy aircraft is not destroyed by the own aircraft that has entered the traveling direction of the enemy aircraft. In step S161, it is determined that | Xs−X | / Vsmax ≦ | Ys−Y | / | Vexmax−Vsmax |, and the enemy aircraft is in the Y-axis direction because it is in the defense mode / own device enclosure mode. Proceed slowly. For this reason, for example, Vex = 0 and Vey = −Vsmax / 2. The enemy aircraft speed determination unit 80 moves the enemy aircraft according to this movement speed.

≪ステップS166≫
敵機速度決定部80の位置判定部802は、自機の現在位置のX座標の値Xsと敵機の現在位置のX座標(X)との大小関係を比較する。
Xs<Xであれば、ステップS167の処理を行う。
X≦Xsであれば、ステップS168の処理を行う。
<< Step S166 >>
The position determination unit 802 of the enemy aircraft speed determination unit 80 compares the magnitude relationship between the X coordinate value Xs of the current position of the own aircraft and the X coordinate (X) of the current position of the enemy aircraft.
If Xs <X, the process of step S167 is performed.
If X ≦ Xs, the process of step S168 is performed.

≪ステップS167≫
ステップS164とステップS165において、Xmin<X<Xmaxと判定されているので、自機の安全行動パターンの中に、敵機の進行方向に回り込んで自機を攻撃するパターンがある。このため、敵機が自機に撃墜される可能性がある。敵機は、自機の攻撃弾を避けるために、X軸方向であって自機がいない方向に向かって移動する。また、ステップS161において、|Xs−X|/Vsmax≦|Ys−Y|/|Vexmax−Vsmax|と判定されており、防御モード・自機囲い込みモードにあるため、敵機はY軸方向にはゆっくりと進む。このため、例えば、Vex=Vexmax、Vey=−Vsmax/2とする。敵機速度決定部80は、この移動速度に従って敵機を移動させる。
<< Step S167 >>
In step S164 and step S165, since it is determined that Xmin <X <Xmax, there is a pattern in which the enemy aircraft goes around in the advancing direction and attacks the enemy aircraft in the safety action pattern of the aircraft. For this reason, enemy aircraft may be shot down by itself. The enemy aircraft moves in the direction of the X axis and away from the enemy aircraft in order to avoid the attack bullets of the enemy aircraft. In step S161, it is determined that | Xs−X | / Vsmax ≦ | Ys−Y | / | Vexmax−Vsmax |, and the enemy aircraft is in the Y-axis direction because it is in the defense mode / own device enclosure mode. Proceed slowly. For this reason, for example, Vex = Vexmax and Vey = −Vsmax / 2. The enemy aircraft speed determination unit 80 moves the enemy aircraft according to this movement speed.

≪ステップS168≫
ステップS164とステップS165において、Xmin<X<Xmaxと判定されているので、自機の安全行動パターンの中に、敵機の進行方向に回り込んで自機を攻撃するパターンがある。このため、敵機が、敵機の進行方向に回り込んで攻撃をする自機に撃墜される可能性がある。敵機は、自機の攻撃弾を避けるために、X軸方向であって自機がいない方向に向かって移動する。また、ステップS161において、|Xs−X|/Vsmax≦|Ys−Y|/|Vexmax−Vsmax|と判定されており、防御モード・自機囲い込みモードにあるため、敵機はY軸方向にはゆっくりと進む。このため、例えば、Vex=−Vexmax、Vey=−Vsmax/2とする。敵機速度決定部80は、この移動速度に従って敵機を移動させる。
<< Step S168 >>
In step S164 and step S165, since it is determined that Xmin <X <Xmax, there is a pattern in which the enemy aircraft goes around in the advancing direction and attacks the enemy aircraft in the safety action pattern of the aircraft. For this reason, there is a possibility that the enemy aircraft will be shot down by its own aircraft that goes around and attacks the enemy aircraft. The enemy aircraft moves in the direction of the X axis and away from the enemy aircraft in order to avoid the attack bullets of the enemy aircraft. In step S161, it is determined that | Xs−X | / Vsmax ≦ | Ys−Y | / | Vexmax−Vsmax |, and the enemy aircraft is in the Y-axis direction because it is in the defense mode / own device enclosure mode. Proceed slowly. For this reason, for example, Vex = −Vexmax and Vey = −Vsmax / 2. The enemy aircraft speed determination unit 80 moves the enemy aircraft according to this movement speed.

≪ステップS169≫
敵機速度決定部80の位置判定部802は、自機の現在位置のX座標の値Xsと敵機の現在位置のX座標の値Xとの大小関係を比較する。
X<Xsであれば、ステップS1610の処理を行う。
Xs≦Xであれば、ステップS1611の処理を行う。
≪ステップS1610≫
ステップS161において、|Xs−X|/Vsmax>|Ys−Y|/|Vexmax−Vsmax|と判定されており、攻撃モードにあるため、敵機はY軸方向には速く移動する。また、X軸方向には移動しないか、もしくは、X軸方向であって自機がいる方向にむかって移動する。例えば、Vex=Vexmax、Vey=−Vsmax×2とする。敵機速度決定部80は、この移動速度に従って敵機を移動させる。
<< Step S169 >>
The position determination unit 802 of the enemy aircraft speed determination unit 80 compares the magnitude relationship between the X coordinate value Xs of the current position of the own aircraft and the X coordinate value X of the current position of the enemy aircraft.
If X <Xs, the process of step S1610 is performed.
If Xs ≦ X, the process of step S1611 is performed.
<< Step S1610 >>
In step S161, it is determined that | Xs−X | / Vsmax> | Ys−Y | / | Vexmax−Vsmax |, and since it is in the attack mode, the enemy aircraft moves fast in the Y-axis direction. Further, it does not move in the X-axis direction, or moves in the X-axis direction toward the direction where the own machine is located. For example, Vex = Vexmax and Vey = −Vsmax × 2. The enemy aircraft speed determination unit 80 moves the enemy aircraft according to this movement speed.

≪ステップS1611≫
ステップS161において、|Xs−X|/Vsmax>|Ys−Y|/|Vexmax−Vsmax|と判定されており、攻撃モードにあるため、敵機はY軸方向には速く移動する。また、X軸方向には移動しないか、もしくは、X軸方向であって自機がいる方向にむかって移動する。例えば、Vex=−Vexmax、Vey=−Vsmax×2とする。敵機速度決定部80は、この移動速度に従って敵機を移動させる。
上記の処理を、一定時間(例えば、行動単位時間T)ごとに行う。
以上が、第1実施形態によるシューティングゲーム処理装置1000の概要である。
<< Step S1611 >>
In step S161, it is determined that | Xs−X | / Vsmax> | Ys−Y | / | Vexmax−Vsmax |, and since it is in the attack mode, the enemy aircraft moves fast in the Y-axis direction. Further, it does not move in the X-axis direction, or moves in the X-axis direction toward the direction where the own machine is located. For example, Vex = −Vexmax and Vey = −Vsmax × 2. The enemy aircraft speed determination unit 80 moves the enemy aircraft according to this movement speed.
The above processing is performed every certain time (for example, behavior unit time T).
The above is the outline of the shooting game processing apparatus 1000 according to the first embodiment.

図7〜9を参照して、本発明の第2実施形態(横型探索)によるシューティングゲーム処理方法を実施するためのシューティングゲーム処理装置1001を説明する。図7は、シューティングゲーム処理装置1001の機能構成例を示す図である。図8、9は、シューティングゲーム処理装置1001の処理例を示す図である。
シューティングゲーム処理装置1001は、自機移動パターン生成部11が順列作成部106と順列獲得部107を有する点、自機移動パターン生成部11の制御部112の動作が、シューティングゲーム処理装置1000の自機移動パターン生成部10の制御部102の動作と異なる点、順列データバッファ53を有する点で、図1に示したシューティングゲーム処理装置1000と異なる。シューティングゲーム処理装置1001の他の機能構成は、シューティングゲーム処理装置1000の機能構成と同じである。
With reference to FIGS. 7-9, the shooting game processing apparatus 1001 for implementing the shooting game processing method by 2nd Embodiment (horizontal search) of this invention is demonstrated. FIG. 7 is a diagram illustrating a functional configuration example of the shooting game processing apparatus 1001. 8 and 9 are diagrams illustrating a processing example of the shooting game processing apparatus 1001.
The shooting game processing device 1001 is different from the shooting game processing device 1000 in that the own device movement pattern generation unit 11 includes a permutation creation unit 106 and a permutation acquisition unit 107, and the operation of the control unit 112 of the own device movement pattern generation unit 11 It differs from the shooting game processing apparatus 1000 shown in FIG. 1 in that it differs from the operation of the control unit 102 of the machine movement pattern generation unit 10 and has a permutation data buffer 53. Other functional configurations of the shooting game processing device 1001 are the same as the functional configurations of the shooting game processing device 1000.

<準備>
第1実施形態と同様に、自機の行動の回数(探索の深さ)D、自機の取り得る行動wの種類の数W、各行動wを取ったときの自機の速度(Vxw,Vyw)、行動単位時間Tは予め設定され、自機移動パターン生成部の記憶部105に格納されているものとする。
また、敵機の攻撃弾の速度(Vbikx(t),Vbiky(t))は、予め設定され攻撃弾位置推定部20の記憶部201に格納されているものとする。
以下では、tを自機が行動を開始してからの経過時間、時刻tでの自機の位置を(Xs(t),Ys(t))、敵機iの発射したk番目の攻撃弾の時刻tでの位置を(Xbik(t),Ybik(t))、dを現在評価している自機行動順列の要素の総数、jを現時点で評価している自機行動順列番号、deを現時点で評価している自機行動順列の要素番号、w(d,1,j),…,w(d,de,j),…,w(d,d,j),j番目の自機行動順列とし、各w(d,de,j)には自機の移動速度番号が定められているものとする。また、tbを攻撃目標位置が見つかった時刻、Dbを攻撃目標位置が見つかった場合の探索の深さとする。ここで、tは、処理単位時間τごとに離散的な時間を取るものとする。
<Preparation>
Similar to the first embodiment, the number of actions (depth of search) D of the own machine, the number W of the types of actions w that the own machine can take, and the speed (Vxw, Vyw), the action unit time T is set in advance and is stored in the storage unit 105 of the own device movement pattern generation unit.
Further, it is assumed that the velocity (Vbikx (t), Vbiky (t)) of the attacking bullet of the enemy aircraft is preset and stored in the storage unit 201 of the attacking bullet position estimation unit 20.
In the following, t is the elapsed time from the start of the action of the ship, the position of the ship at time t is (Xs (t), Ys (t)), and the kth attack bullet launched by the enemy aircraft i. Is the position at time t (Xbik (t), Ybik (t)), d is the total number of elements of the own apparatus action permutation currently evaluated, j is the own apparatus action permutation number currently evaluated, de , W (d, 1, j), ..., w (d, de, j), ..., w (d, d, j), jth self It is assumed that the machine action permutation is set, and each w (d, de, j) has its own moving speed number. Also, tb is the time when the attack target position is found, and Db is the search depth when the attack target position is found. Here, t takes a discrete time for each processing unit time τ.

<ステップS1>
自機移動パターン生成部11の初期化部101は、d=1,k=1,Db=D,tb=D×Tとして、これらをバッファ103に格納する。また、初期化部101は、時刻tにおける自機の位置(Xs(t),Ys(t))を自機の現在位置に設定して、これを自機移動パターンバッファ51に格納する。
<Step S1>
The initialization unit 101 of the own device movement pattern generation unit 11 stores these in the buffer 103 as d = 1, k = 1, Db = D, tb = D × T. Further, the initialization unit 101 sets the position (Xs (t), Ys (t)) of the own apparatus at time t to the current position of the own apparatus, and stores this in the own movement pattern buffer 51.

<ステップS2>
自機移動パターン生成部11の順列作成部106は、すべての、jとdeについて、自機行動順列w(d,1,j),…,w(d,de,j),…,w(d,d,j)を作成し、これを順列データバッファ53に格納する。また、j=1としてバッファ103に格納する。上記自機行動順列は、自機が取り得る移動速度番号の順列である。
例えば、d=1の場合、順列作成部106は、すべてのjとdeについて、以下のような9(=9の1乗)個の自機行動順列w(d,1,j),…,w(d,de,j),…,w(d,d,j)を作ることができる。
j=1:{w(1,1,1)=1}
j=2:{w(1,1,2)=2}

j=8:{w(1,1,2)=8}
j=9:{w(1,1,9)=9}
また、例えば、d=2の場合、すべてのjとdeについて、以下のような81(=9の2乗)個の自機行動順列w(d,1,j),…,w(d,de,j),…,w(d,d,j)を作ることができる。
j=1:{w(2,1,1)=1,w(2,2,1)=1}
j=2:{w(2,1,2)=1,w(2,2,2)=2}

j=80:{w(2,1,80)=9,w(2,2,80)=8}
j=81:{w(2,1,81)=9,w(2,2,81)=9}
さらに、例えば、d=3の場合、すべてのdとdeとjについて、以下のような729(=9の3乗)個の自機行動順列w(d,1,j),…,w(d,de,j),…,w(d,d,j)を作ることができる。
j=1:{w(3,1,1)=1,w(3,2,1)=1,w(3,3,1)=1}
j=2:{w(3,1,2)=1,w(3,2,2)=1,w(3,3,2)=2}

j=728:{w(3,1,728)=9,w(3,2,728)=9,w(3,3,728)=8}
j=729:{w(3,1,729)=9,w(3,2,729)=9,w(3,3,729)=9}
<Step S2>
The permutation creation unit 106 of the own device movement pattern generation unit 11 performs the own device action permutation w (d, 1, j),..., W (d, de, j),. d, d, j) are created and stored in the permutation data buffer 53. Further, j = 1 is stored in the buffer 103. The self-device action permutation is a permutation of movement speed numbers that the self-device can take.
For example, in the case of d = 1, the permutation creation unit 106, for all j and de, has the following 9 (= 9 to the 1st power) number of own action permutations w (d, 1, j),. w (d, de, j),..., w (d, d, j) can be created.
j = 1: {w (1, 1, 1) = 1}
j = 2: {w (1, 1, 2) = 2}
...
j = 8: {w (1, 1, 2) = 8}
j = 9: {w (1,1,9) = 9}
Further, for example, when d = 2, for all j and de, 81 (= 9 to the second power) permutation w (d, 1, j),..., W (d, de, j),..., w (d, d, j) can be created.
j = 1: {w (2, 1, 1) = 1, w (2, 2, 1) = 1}
j = 2: {w (2, 1, 2) = 1, w (2, 2, 2) = 2}
...
j = 80: {w (2,1,80) = 9, w (2,2,80) = 8}
j = 81: {w (2,1,81) = 9, w (2,2,81) = 9}
Further, for example, in the case of d = 3, for all d, de, and j, 729 (= 9 to the third power) self-action permutations w (d, 1, j),. d, de, j), ..., w (d, d, j) can be created.
j = 1: {w (3, 1, 1) = 1, w (3, 2, 1) = 1, w (3, 3, 1) = 1}
j = 2: {w (3, 1, 2) = 1, w (3, 2, 2) = 1, w (3, 3, 2) = 2}
...
j = 728: {w (3,1,728) = 9, w (3,2,728) = 9, w (3,3,728) = 8}
j = 729: {w (3,1,729) = 9, w (3,2,729) = 9, w (3,3,729) = 9}

<ステップS3>
自機移動パターン生成部11の制御部112は、de=1,t=0としてバッファ103に格納する。また、自機が選択すべき移動速度番号をw(d,de,j)とする。
<ステップS4>
自機移動パターン生成部11の制御部112は、バッファ103から読み出したdがd=1かどうかを判定する。d=1であれば、ステップS5の処理を行う。d=1でなければ、ステップS18の処理を行う。
<ステップS5>
自機移動パターン生成部11の制御部112は、バッファ103からtを読み出し、tをインクリメント幅τだけインクリメントする。インクリメントされたtは、バッファ103に格納される。tのインクリメント幅τは、行動単位時間Tより小さい値、好ましくはTを複数等分する値であれば、どのような値でも良い。例えば、Tを0.3秒〜1秒としたとき、このTを10等分する時間間隔である0.03秒〜0.1秒をτに設定することができる。
また、自機移動パターン生成部11の位置更新部104は、自機の移動速度(Vx(w(d,de,j)),Vy(w(d,de,j))でtのインクリメント幅τだけ移動した後の自機の位置を計算する。具体的には、位置更新部104は、(τ×Vx(w(d,de,j)),τ×Vy(w(d,de,j)))を計算して、位置の変位量を求め、これに(Xs(t−τ),Ys(t−τ))を加算することにより、自機の位置を更新する。インクリメント幅τでインクリメントした後の自機の位置、すなわち、更新後の自機の位置(Xs(t),Ys(t))は、衝突判定部30に出力される。
<Step S3>
The control unit 112 of the own device movement pattern generation unit 11 stores de = 1 and t = 0 in the buffer 103. The moving speed number to be selected by the own device is assumed to be w (d, de, j).
<Step S4>
The control unit 112 of the own device movement pattern generation unit 11 determines whether d read from the buffer 103 is d = 1. If d = 1, the process of step S5 is performed. If d = 1 is not satisfied, the process of step S18 is performed.
<Step S5>
The control unit 112 of the own device movement pattern generation unit 11 reads t from the buffer 103 and increments t by the increment width τ. The incremented t is stored in the buffer 103. The increment width τ of t may be any value as long as it is a value smaller than the action unit time T, preferably a value that equally divides T. For example, when T is set to 0.3 seconds to 1 second, 0.03 seconds to 0.1 seconds, which is a time interval for dividing T into 10 parts, can be set as τ.
In addition, the position update unit 104 of the own device movement pattern generation unit 11 uses the moving speed (Vx (w (d, de, j)), Vy (w (d, de, j)) of the own device and the increment width of t. Specifically, the position update unit 104 calculates (τ × Vx (w (d, de, j)), τ × Vy (w (d, de, j))) is calculated to determine the displacement amount of the position, and (Xs (t−τ), Ys (t−τ)) is added to this to update the position of the own device. The position of the own machine after being incremented in step 1, that is, the updated position of the own machine (Xs (t), Ys (t)) is output to the collision determination unit 30.

<ステップS6>
攻撃弾位置推定部20は、攻撃弾の位置(Xbik(t),Ybik(t))を更新する。すなわち、τ時間経過後の攻撃弾の位置(Xbik(t),Ybik(t))を計算する。
具体的には、記憶部201に記憶された攻撃弾の速度(Vbikx(t),Vbiky(t))を読み出し、これをτ倍したものを、位置取得部202が取得した更新前の攻撃弾の位置(Xbik(t−τ),Ybik(t−τ))に加算することにより、更新後の攻撃弾の位置(Xbik(t),Ybik(t))を求める。
更新後の攻撃弾の位置(Xbik(t),Ybik(t))は、記憶部201に記憶される。また、更新後の攻撃弾の位置(Xbik(t),Ybik(t))は、衝突判定部30と自機移動パターン生成部11に出力される。
<Step S6>
The attack bullet position estimation unit 20 updates the position of the attack bullet (Xbik (t), Ybik (t)). That is, the attack bullet position (Xbik (t), Ybik (t)) after the elapse of τ time is calculated.
Specifically, the velocity (Vbikx (t), Vbiky (t)) of the attack bullet stored in the storage unit 201 is read, and the attack bullet before update acquired by the position acquisition unit 202 is multiplied by τ. Is added to the position (Xbik (t−τ), Ybik (t−τ)) to obtain the updated position (Xbik (t), Ybik (t)) of the attacking bullet.
The updated attack bullet positions (Xbik (t), Ybik (t)) are stored in the storage unit 201. The updated attack bullet positions (Xbik (t), Ybik (t)) are output to the collision determination unit 30 and the own movement pattern generation unit 11.

<ステップS7>
衝突判定部30は、自機と攻撃弾が衝突したかどうかを判定する。衝突したかどうかは、予め設定され、図示していない衝突判定部30内の記憶部に記憶された自機の形状、攻撃弾の形状と、自機移動パターン生成部11から出力された更新後の自機の位置(Xs(t),Ys(t))、攻撃弾位置推定部20から出力された更新後の攻撃弾の位置(Xbik(t),Ybik(t))とから判断される。
例えば、更新後の位置に置かれた自機の形状と更新後の位置に置かれた敵機の攻撃弾の形状が重なった場合には、自機と攻撃弾が衝突したと判定することができる。
衝突がなかったと判定された場合には、衝突がなかった旨の信号が、自機移動パターン生成部11と自機移動範囲決定部70に出力される。その後、ステップS7aの処理を行う。
衝突があったと判定された場合には、衝突があった旨の信号が、自機移動パターン生成部11に出力される。その後、ステップS17aの処理を行う。
<Step S7>
The collision determination unit 30 determines whether or not the own aircraft and the attack bullet have collided. Whether or not the vehicle has collided is set in advance and is stored in a storage unit (not shown) in the storage unit 30, the shape of the own aircraft, the shape of the attack bullet, and the updated output output from the own device movement pattern generation unit 11 Is determined from the position (Xs (t), Ys (t)) of the own aircraft and the position (Xbik (t), Ybik (t)) of the updated attack bullet output from the attack bullet position estimation unit 20 .
For example, if the shape of the own aircraft placed at the updated position and the shape of the attack bullet of the enemy aircraft placed at the updated position overlap, it can be determined that the own aircraft and the attack bullet have collided it can.
When it is determined that there is no collision, a signal indicating that there is no collision is output to the own apparatus movement pattern generation unit 11 and the own apparatus movement range determination unit 70. Thereafter, the process of step S7a is performed.
If it is determined that there has been a collision, a signal indicating that there has been a collision is output to the own movement pattern generation unit 11. Thereafter, the process of step S17a is performed.

<ステップS7a>
ステップS7aは、自機が敵機の攻撃弾に撃墜されないで移動することができるX軸方向の移動範囲の最大値・最小値を求めるための過程である。ステップS7aは、図3に示すように、ステップS71〜ステップS74から構成される。
<Step S7a>
Step S7a is a process for obtaining the maximum value and the minimum value of the movement range in the X-axis direction in which the own aircraft can move without being shot down by the attacking bullets of the enemy aircraft. Step S7a includes steps S71 to S74 as shown in FIG.

≪ステップS71≫(図3)
衝突がなかった旨の信号を受け取った自機移動範囲決定部70は、自機移動範囲バッファ54に格納されているXmaxを読み出し、Xs(t)との大小関係を比較する。
Xmax<Xs(t)であれば、ステップS72の処理を行う。
Xs(t)≦Xmaxであれば、ステップS73の処理を行う。
なお、自機移動範囲バッファ54にXmaxが格納されていない場合には、自機移動範囲決定部70は、Xs(t)をXmaxとして自機移動範囲バッファ54に格納して、ステップS11(図8)の処理を行う。
<< Step S71 >> (FIG. 3)
Receiving the signal that there was no collision, own device movement range determining unit 70 reads Xmax stored in own device movement range buffer 54 and compares the magnitude relationship with Xs (t).
If Xmax <Xs (t), the process of step S72 is performed.
If Xs (t) ≦ Xmax, the process of step S73 is performed.
If Xmax is not stored in own apparatus movement range buffer 54, own apparatus movement range determination unit 70 stores Xs (t) as Xmax in own apparatus movement range buffer 54, and performs step S11 (FIG. Process 8) is performed.

≪ステップS72≫
自機移動範囲決定部70は、Xmax<Xs(t)の場合には、Xs(t)を新たなXmaxとして、自機移動範囲バッファ54に格納する。その後、ステップS11(図8)の処理を行う。
<< Step S72 >>
If Xmax <Xs (t), own device movement range determination unit 70 stores Xs (t) as new Xmax in own device movement range buffer 54. Then, the process of step S11 (FIG. 8) is performed.

≪ステップS73≫
自機移動範囲決定部70は、Xs(t)≦Xmaxの場合には、自機移動範囲バッファ54に格納されているXminを読み出し、Xs(t)との大小関係を比較する。
Xs(t)<Xminであれば、ステップS74の処理を行う。
Xmin≦Xs(t)であれば、ステップS11(図8)の処理を行う。
なお、自機移動範囲バッファ54にXminが格納されていない場合には、自機移動範囲決定部70は、Xs(t)をXminとして自機移動範囲バッファ54に格納して、ステップS11(図8)の処理を行う。
<< Step S73 >>
When Xs (t) ≦ Xmax, own device movement range determination unit 70 reads Xmin stored in own device movement range buffer 54 and compares the magnitude relationship with Xs (t).
If Xs (t) <Xmin, the process of step S74 is performed.
If Xmin ≦ Xs (t), the process of step S11 (FIG. 8) is performed.
If Xmin is not stored in own device movement range buffer 54, own device movement range determination unit 70 stores Xs (t) as Xmin in own device movement range buffer 54, and performs step S11 (FIG. Process 8) is performed.

≪ステップS74≫
自機移動範囲決定部70は、Xs(t)<Xminの場合には、Xs(t)を新たなXminとして、自機移動範囲バッファ54に格納する。その後、ステップS11(図8)の処理を行う。
<ステップS11>
自機移動パターン生成部11の制御部112は、ステップS3のときから、行動単位時間Tが経過したかどうかを判定する。すなわち、バッファ103から読み出したtがde×Tよりも大きいかどうか、つまり、t≧de×Tかどうかを判定する。
t<d×Tであれば、ステップS5の処理を行う。すなわち、tがステップS3の時から行動単位時間Tを経過するまで、ステップS5〜S11の処理を繰り返す。
t≧d×Tであれば、ステップS12の処理を行う。
<ステップS12>
自機移動パターン生成部11の制御部112は、現d,j,de値での自機位置(Xs(d,de,j),Ys(d,de,j))のデータを、自機移動パターンバッファ51に格納する。また、自機移動パターン生成部11の制御部102は、現d,j,de値での敵機の攻撃弾の位置(Xbik(d,de,j),Ybik(d,de,j))のデータを、敵機攻撃弾状態バッファ52に格納し、図9に示すステップS13の処理を行う。
<< Step S74 >>
If Xs (t) <Xmin, own device movement range determination unit 70 stores Xs (t) as new Xmin in own device movement range buffer 54. Then, the process of step S11 (FIG. 8) is performed.
<Step S11>
The control unit 112 of the own device movement pattern generation unit 11 determines whether or not the behavior unit time T has elapsed since step S3. That is, it is determined whether or not t read from the buffer 103 is larger than de × T, that is, whether t ≧ de × T.
If t <d × T, the process of step S5 is performed. That is, the process of steps S5 to S11 is repeated until the action unit time T elapses from when t is step S3.
If t ≧ d × T, the process of step S12 is performed.
<Step S12>
The control unit 112 of the own device movement pattern generation unit 11 uses the data of the own device position (Xs (d, de, j), Ys (d, de, j)) at the current d, j, and de values as the own device. Store in the movement pattern buffer 51. Further, the control unit 102 of the own-device movement pattern generation unit 11 uses the current d, j, de values of the enemy aircraft attack bullets (Xbik (d, de, j), Ybik (d, de, j)). Is stored in the enemy aircraft attack bullet state buffer 52, and the process of step S13 shown in FIG. 9 is performed.

<ステップS13>(図9)
自機移動パターン生成部11の制御部112は、バッファ103から読み出した自機行動順列番号jを1だけインクリメントする。インクリメントされた自機行動順列番号jは、バッファ103に格納される。
<ステップS14>
自機移動パターン生成部11の制御部112は、バッファ103から読み出した自機行動順列番号jが、j=wのd乗かどうかを判定する。
j≠wのd乗であれば、ステップS3(図8)の処理を行う。すなわち、すべての自機行動順列番号jについて、ステップS3〜S12の処理が繰り返されることになる。
j=wのd乗であれば、ステップS15の処理を行う。
<ステップS15>
自機移動パターン生成部11の制御部112は、バッファ103から読み出したdを1だけインクリメントする。インクリメントされたdは、バッファ103に格納される。
<ステップS16>
自機移動パターン生成部11の制御部112は、バッファ103から読み出したdが、バッファ103から読み出したDbより大きいかどうかを判定する。すなわち、Db<dかどうかを判定する。
<Step S13> (FIG. 9)
The control unit 112 of the own device movement pattern generation unit 11 increments the own device action permutation number j read from the buffer 103 by one. The incremented own device action permutation number j is stored in the buffer 103.
<Step S14>
The control unit 112 of the own device movement pattern generation unit 11 determines whether or not the own device action permutation number j read from the buffer 103 is j = w to the d power.
If j ≠ w to the power d, the process of step S3 (FIG. 8) is performed. That is, the process of steps S3 to S12 is repeated for all the own machine action permutation numbers j.
If j = w to the d power, the process of step S15 is performed.
<Step S15>
The control unit 112 of the own device movement pattern generation unit 11 increments d read from the buffer 103 by one. The incremented d is stored in the buffer 103.
<Step S16>
The control unit 112 of the own device movement pattern generation unit 11 determines whether d read from the buffer 103 is larger than Db read from the buffer 103. That is, it is determined whether Db <d.

Db≧dであると判定された場合には、制御部112は、図8に示すステップS2の処理を行う。
Db<dであると判定された場合には、本実施形態による横型探索は終了し、制御部112は、ステップS16a(図5)の処理を行う。
<ステップS17>(図8)
ステップS7の処理において、自機と敵機の攻撃弾が衝突していると判定された場合には、自機移動パターン生成部11の制御部112は、現在のdをdc(k)、現在のjをjc(k)として、自機移動パターンバッファ51に格納する。そして、バッファ103から読み出したkを1だけインクリメントして、このインクリメントしたkをバッファ103に格納する。
When it is determined that Db ≧ d, the control unit 112 performs the process of step S2 shown in FIG.
If it is determined that Db <d, the horizontal search according to the present embodiment ends, and the control unit 112 performs the process of step S16a (FIG. 5).
<Step S17> (FIG. 8)
If it is determined in the process of step S7 that the attack bullets of the own aircraft and the enemy aircraft collide, the control unit 112 of the own aircraft movement pattern generation unit 11 sets the current d to dc (k), Is stored in the own movement pattern buffer 51 as jc (k). Then, k read from the buffer 103 is incremented by 1, and the incremented k is stored in the buffer 103.

ステップS17の処理が終わった後は、図9に示すステップS13の処理を行う。
<ステップS18>(図8)
順列獲得部107は、順列データバッファ53を検索して、現在評価している自機行動順列の要素と同じ要素を持つ順列の自機行動順列の深さdsとその順列番号jsを獲得する。
例えば、図15に示すように、d=2,j=1の自機行動順列が{w(2,1,1)=1,w(2,2,1)=1}であり、d=1,j=1の自機行動順列が{w(1,1,1)=1}である場合には、w(2,1,1)=1とw(1,1,1)=1の部分で、自機行動順列の要素が一致するため、de=1の部分で同じ要素を持つということができる。したがって、d=2,j=1の自機行動順列{w(2,1,1)=1,w(2,2,1)=1}についてのdsは1となり、jsは1となる。すなわち、(ds,js)=(1,1)となる。
After the process of step S17 is completed, the process of step S13 shown in FIG. 9 is performed.
<Step S18> (FIG. 8)
The permutation acquisition unit 107 searches the permutation data buffer 53 and acquires the depth ds of the permutation action permutation having the same elements as the elements of the pertinent behavior permutation currently evaluated and the permutation number js.
For example, as shown in FIG. 15, the self-action sequence of d = 2 and j = 1 is {w (2,1,1) = 1, w (2,2,1) = 1}, and d = 1, j = 1, when the own permutation is {w (1,1,1) = 1}, w (2,1,1) = 1 and w (1,1,1) = 1 Since the elements of the own machine action permutation coincide with each other, it can be said that the part with de = 1 has the same element. Therefore, ds is 1 and js is 1 for the own device permutation {w (2,1,1) = 1, w (2,2,1) = 1} with d = 2 and j = 1. That is, (ds, js) = (1, 1).

また、例えば、d=3,j=1の自機行動順列が{w(3,1,1)=1,w(3,2,1)=1,w(3,3,1)=1}であり、d=2,j=1の自機行動順列が{w(2,1,1)=1,w(2,2,1)=1}であり、d=1,j=1の自機行動順列が{w(1,1,1)=1}である場合には、d=3,j=1の自機行動順列とd=2,j=1の自機行動順列のうち、{w(3,1,1)=1,w(3,2,1)=1}と{w(2,1,1)=1,w(2,2,1)=1}の部分で、自機行動順列の要素が一致する。また、d=3,j=1の自機行動順列とd=1,j=1の自機行動順列のうち、w(2,1,1)=1とw(1,1,1)=1の部分で自機行動順列の要素が一致する。したがって、d=3,j=1の自機行動順列{w(3,1,1)=1,w(3,2,1)=1,w(3,3,1)=1}についてのdsとjsは、(ds,js)={(1,1),(2,1)}となる。   Also, for example, the own machine action permutation of d = 3, j = 1 is {w (3,1,1) = 1, w (3,2,1) = 1, w (3,3,1) = 1. }, And the own action permutation of d = 2, j = 1 is {w (2,1,1) = 1, w (2,2,1) = 1}, and d = 1, j = 1. If the own action sequence of {w (1, 1, 1) = 1}, the own action sequence of d = 3, j = 1 and the own action sequence of d = 2, j = 1. Of these, {w (3,1,1) = 1, w (3,2,1) = 1} and {w (2,1,1) = 1, w (2,2,1) = 1} In the part, the elements of the self-behavior permutation match. In addition, among the own device action permutation of d = 3, j = 1 and the own device action permutation of d = 1, j = 1, w (2,1,1) = 1 and w (1,1,1) = In the part 1, the elements of the own machine action permutation match. Therefore, d = 3, j = 1 per-machine action permutation {w (3,1,1) = 1, w (3,2,1) = 1, w (3,3,1) = 1} ds and js are (ds, js) = {(1, 1), (2, 1)}.

<ステップS19>
自機移動パターン生成部11の制御部112は、dc(k)=ds,jc(k)=jsとなるkが存在するかどうか自機移動パターンバッファ51を検索する。(ds,js)の組が複数ある場合には、それぞれの(ds,js)の組について、dc(k)=ds,jc(k)=jsとなるkが存在するかどうかを検索する。
dc(k)=ds,jc(k)=jsとなるkが存在する場合には、図9に示したステップS13の処理を行う。
dc(k)=ds,jc(k)=jsとなるkが存在しない場合には、ステップS20の処理を行う。
<Step S19>
The control unit 112 of the own device movement pattern generation unit 11 searches the own device movement pattern buffer 51 for k that satisfies dc (k) = ds, jc (k) = js. If there are a plurality of pairs of (ds, js), it is searched whether or not k satisfying dc (k) = ds, jc (k) = js exists for each (ds, js) pair.
If k satisfying dc (k) = ds and jc (k) = js exists, the process of step S13 shown in FIG. 9 is performed.
If k that satisfies dc (k) = ds and jc (k) = js does not exist, the process of step S20 is performed.

<ステップS20>
自機移動パターン生成部11の制御部112は、dc(k)=ds,jc(k)=jsとなるkが存在しない場合には、ステップS18で求まった(ds,js)の組のうちdsの値が最大である(ds,js)を求める。そして、上記dsの値が最大である(ds,js)に従って移動を行った結果の自機位置(Xs(ds,ds,js),Ys(ds,ds,js))と攻撃弾位置(Xbik(ds,ds,js),Ybik(ds,ds,js))を、自機移動パターンバッファ51から読み込む。また、t=T×(d−1)、de=dとして、このtとdeをそれぞれバッファ103に格納する。
<Step S20>
When there is no k that satisfies dc (k) = ds, jc (k) = js, the control unit 112 of the own-device movement pattern generation unit 11 is the group of (ds, js) obtained in step S18. (ds, js) having the maximum value of ds is obtained. Then, the own position (Xs (ds, ds, js), Ys (ds, ds, js)) and the attack bullet position (Xbik) as a result of movement according to the maximum value of ds (ds, js). (Ds, ds, js), Ybik (ds, ds, js)) is read from the own movement pattern buffer 51. Further, t = de × d and t = de are stored in the buffer 103, respectively.

<ステップS16a>(図9)
ステップS16において、Db<dと判定された場合には、自機のX軸方向の移動範囲の最大値Xmax、最小値Xminを求める探索を終了する。そして、敵機速度決定部80が、自機のX軸方向の移動範囲の最大値Xmax、最小値Xminを基にして、敵機に移動速度を決定する。ステップS16aは、図5に示すように、ステップS161〜ステップ1611から構成される。
≪ステップS161≫(図5)
まず、敵機速度決定部80のモード判定部801が、|Xs−X|/Vsmax≦|Ys−Y|/|Vexmax−Vsmax|かどうかを判定する。
|Xs−X|/Vsmax≦|Ys−Y|/|Vexmax−Vsmax|である場合には、図13に示すように、敵機が、敵機の進行方向に回り込んだ自機の攻撃により破壊される可能性があるので、敵機速度決定アルゴリズムは、防御モード・自機囲い込みモードに移行する。具体的には、ステップS162〜ステップS168の処理を行う。
|Xs−X|/Vsmax>|Ys−Y|/|Vexmax−Vsmax|である場合には、図14に示すように、敵機が、敵機の進行方向に回り込んだ自機の攻撃により破壊される可能性がないので、敵機速度決定アルゴリズムは、攻撃モードに移行する。具体的には、ステップS169〜ステップS1611の処理を行う。
<Step S16a> (FIG. 9)
If it is determined in step S16 that Db <d, the search for obtaining the maximum value Xmax and minimum value Xmin of the movement range in the X-axis direction of the own machine is terminated. Then, the enemy aircraft speed determination unit 80 determines the movement speed of the enemy aircraft based on the maximum value Xmax and the minimum value Xmin of the movement range in the X-axis direction of the own aircraft. Step S16a is composed of steps S161 to 1611 as shown in FIG.
<< Step S161 >> (FIG. 5)
First, the mode determination unit 801 of the enemy aircraft speed determination unit 80 determines whether or not | Xs−X | / Vsmax ≦ | Ys−Y | / | Vexmax−Vsmax |.
When | Xs−X | / Vsmax ≦ | Ys−Y | / | Vexmax−Vsmax |, as shown in FIG. 13, the enemy aircraft has been attacked by its own aircraft that has turned around in the advancing direction of the enemy aircraft. Since there is a possibility of being destroyed, the enemy aircraft speed determination algorithm shifts to the defense mode / own device enclosure mode. Specifically, the processes in steps S162 to S168 are performed.
When | Xs−X | / Vsmax> | Ys−Y | / | Vexmax−Vsmax |, as shown in FIG. Since there is no possibility of being destroyed, the enemy aircraft speed determination algorithm shifts to the attack mode. Specifically, the processing of step S169 to step S1611 is performed.

≪ステップS162≫
敵機速度決定部80の位置判定部802は、自機移動範囲バッファ54から読み出したXmaxと敵機の現在位置のX座標の値Xとの大小関係を比較する。
Xmax<Xであれば、ステップS163の処理を行う。
X≦Xmaxであれば、ステップS164の処理を行う。
≪ステップS163≫
Xmax<Xのときには、敵機が、敵機の進行方向に回り込んだ自機により破壊されることはないため、敵機はX軸方向には移動しない。また、ステップS161において、|Xs−X|/Vsmax≦|Ys−Y|/|Vexmax−Vsmax|と判定されており、防御モード・自機囲い込みモードにあるため、敵機はY軸方向にはゆっくりと進む。このため、例えば、Vex=0、Vey=−Vsmax/2とする。敵機速度決定部80は、この移動速度に従って敵機を移動させる。
<< Step S162 >>
The position determination unit 802 of the enemy aircraft speed determination unit 80 compares the magnitude relationship between Xmax read from the own aircraft movement range buffer 54 and the value X of the X coordinate of the current position of the enemy aircraft.
If Xmax <X, the process of step S163 is performed.
If X ≦ Xmax, the process of step S164 is performed.
<< Step S163 >>
When Xmax <X, the enemy aircraft does not move in the X axis direction because the enemy aircraft is not destroyed by the own aircraft that has entered the traveling direction of the enemy aircraft. In step S161, it is determined that | Xs−X | / Vsmax ≦ | Ys−Y | / | Vexmax−Vsmax |, and the enemy aircraft is in the Y-axis direction because it is in the defense mode / own device enclosure mode. Proceed slowly. For this reason, for example, Vex = 0 and Vey = −Vsmax / 2. The enemy aircraft speed determination unit 80 moves the enemy aircraft according to this movement speed.

≪ステップS164≫
敵機速度決定部80の位置判定部802は、自機移動範囲バッファ54から読み出したXminと敵機の位置のX座標(X)との大小関係を比較する。
X<Xminであれば、ステップS165の処理を行う。
Xmin≦Xであれば、ステップS166の処理を行う。
≪ステップS165≫
X<Xminのときには、敵機が、敵機の進行方向に回り込んだ自機により破壊されることはないため、敵機はX軸方向には移動しない。また、ステップS161において、|Xs−X|/Vsmax≦|Ys−Y|/|Vexmax−Vsmax|と判定されており、防御モード・自機囲い込みモードにあるため、敵機はY軸方向にはゆっくりと進む。このため、例えば、Vex=0、Vey=−Vsmax/2とする。敵機速度決定部80は、この移動速度に従って敵機を移動させる。
<< Step S164 >>
The position determination unit 802 of the enemy aircraft speed determination unit 80 compares the magnitude relationship between Xmin read from the own aircraft movement range buffer 54 and the X coordinate (X) of the enemy aircraft position.
If X <Xmin, the process of step S165 is performed.
If Xmin ≦ X, the process of step S166 is performed.
<< Step S165 >>
When X <Xmin, the enemy aircraft does not move in the X-axis direction because the enemy aircraft is not destroyed by the own aircraft that has entered the traveling direction of the enemy aircraft. In step S161, it is determined that | Xs−X | / Vsmax ≦ | Ys−Y | / | Vexmax−Vsmax |, and the enemy aircraft is in the Y-axis direction because it is in the defense mode / own device enclosure mode. Proceed slowly. For this reason, for example, Vex = 0 and Vey = −Vsmax / 2. The enemy aircraft speed determination unit 80 moves the enemy aircraft according to this movement speed.

≪ステップS166≫
敵機速度決定部80の位置判定部802は、自機の現在位置のX座標の値Xsと敵機の現在位置のX座標(X)との大小関係を比較する。
Xs<Xであれば、ステップS167の処理を行う。
X<Xsであれば、ステップS168の処理を行う。
≪ステップS167≫
ステップS164とステップS165において、Xmin<X<Xmaxと判定されているので、自機の安全行動パターンの中に、敵機の進行方向に回り込んで自機を攻撃するパターンがある。このため、敵機が自機に撃墜される可能性がある。敵機は、自機の攻撃弾を避けるために、X軸方向であって自機がいない方向に向かって移動する。また、ステップS161において、|Xs−X|/Vsmax≦|Ys−Y|/|Vexmax−Vsmax|と判定されており、防御モード・自機囲い込みモードにあるため、敵機はY軸方向にはゆっくりと進む。このため、例えば、Vex=Vexmax、Vey=−Vsmax/2とする。敵機速度決定部80は、この移動速度に従って敵機を移動させる。
<< Step S166 >>
The position determination unit 802 of the enemy aircraft speed determination unit 80 compares the magnitude relationship between the X coordinate value Xs of the current position of the own aircraft and the X coordinate (X) of the current position of the enemy aircraft.
If Xs <X, the process of step S167 is performed.
If X <Xs, the process of step S168 is performed.
<< Step S167 >>
In step S164 and step S165, since it is determined that Xmin <X <Xmax, there is a pattern in which the enemy aircraft goes around in the advancing direction and attacks the enemy aircraft in the safety action pattern of the aircraft. For this reason, enemy aircraft may be shot down by itself. The enemy aircraft moves in the direction of the X axis and away from the enemy aircraft in order to avoid the attack bullets of the enemy aircraft. In step S161, it is determined that | Xs−X | / Vsmax ≦ | Ys−Y | / | Vexmax−Vsmax |, and the enemy aircraft is in the Y-axis direction because it is in the defense mode / own device enclosure mode. Proceed slowly. For this reason, for example, Vex = Vexmax and Vey = −Vsmax / 2. The enemy aircraft speed determination unit 80 moves the enemy aircraft according to this movement speed.

≪ステップS168≫
ステップS164とステップS165において、Xmin<X<Xmaxと判定されているので、自機の安全行動パターンの中に、敵機の進行方向に回り込んで自機を攻撃するパターンがある。このため、敵機が自機に撃墜される可能性がある。敵機は、自機の攻撃弾を避けるために、X軸方向であって自機がいない方向に向かって移動する。また、ステップS161において、|Xs−X|/Vsmax≦|Ys−Y|/|Vexmax−Vsmax|と判定されており、防御モード・自機囲い込みモードにあるため、敵機はY軸方向にはゆっくりと進む。このため、例えば、Vex=−Vexmax、Vey=−Vsmax/2とする。敵機速度決定部80は、この移動速度に従って敵機を移動させる。
<< Step S168 >>
In step S164 and step S165, since it is determined that Xmin <X <Xmax, there is a pattern in which the enemy aircraft goes around in the advancing direction and attacks the enemy aircraft in the safety action pattern of the aircraft. For this reason, enemy aircraft may be shot down by itself. The enemy aircraft moves in the direction of the X axis and away from the enemy aircraft in order to avoid the attack bullets of the enemy aircraft. In step S161, it is determined that | Xs−X | / Vsmax ≦ | Ys−Y | / | Vexmax−Vsmax |, and the enemy aircraft is in the Y-axis direction because it is in the defense mode / own device enclosure mode. Proceed slowly. For this reason, for example, Vex = −Vexmax and Vey = −Vsmax / 2. The enemy aircraft speed determination unit 80 moves the enemy aircraft according to this movement speed.

≪ステップS169≫
敵機速度決定部80の位置判定部802は、自機の現在位置のX座標の値Xsと敵機の現在位置のX座標(X)との大小関係を比較する。
X<Xsであれば、ステップS1610の処理を行う。
Xs<Xであれば、ステップS1611の処理を行う。
≪ステップS1610≫
ステップS161において、|Xs−X|/Vsmax>|Ys−Y|/|Vexmax−Vsmax|と判定されており、攻撃モードにあるため、敵機はY軸方向には速く移動する。また、X軸方向には移動しないか、もしくは、X軸方向であって自機がいる方向にむかって移動する。例えば、Vex=Vexmax、Vey=−Vsmax×2とする。敵機速度決定部80は、この移動速度に従って敵機を移動させる。
<< Step S169 >>
The position determination unit 802 of the enemy aircraft speed determination unit 80 compares the magnitude relationship between the X coordinate value Xs of the current position of the own aircraft and the X coordinate (X) of the current position of the enemy aircraft.
If X <Xs, the process of step S1610 is performed.
If Xs <X, the process of step S1611 is performed.
<< Step S1610 >>
In step S161, it is determined that | Xs−X | / Vsmax> | Ys−Y | / | Vexmax−Vsmax |, and since it is in the attack mode, the enemy aircraft moves fast in the Y-axis direction. Further, it does not move in the X-axis direction, or moves in the X-axis direction toward the direction where the own machine is located. For example, Vex = Vexmax and Vey = −Vsmax × 2. The enemy aircraft speed determination unit 80 moves the enemy aircraft according to this movement speed.

≪ステップS1611≫
ステップS161において、|Xs−X|/Vsmax>|Ys−Y|/|Vexmax−Vsmax|と判定されており、攻撃モードにあるため、敵機はY軸方向には速く移動する。また、X軸方向には移動しないか、もしくは、X軸方向であって自機がいる方向にむかって移動する。例えば、Vex=−Vexmax、Vey=−Vsmax×2とする。敵機速度決定部80は、この移動速度に従って敵機を移動させる。
上記の処理を、一定時間(例えば、行動単位時間T)ごとに行う。
以上が、第2実施形態によるシューティングゲーム処理装置1001の概要である。
<< Step S1611 >>
In step S161, it is determined that | Xs−X | / Vsmax> | Ys−Y | / | Vexmax−Vsmax |, and since it is in the attack mode, the enemy aircraft moves fast in the Y-axis direction. Further, it does not move in the X-axis direction, or moves in the X-axis direction toward the direction where the own machine is located. For example, Vex = −Vexmax and Vey = −Vsmax × 2. The enemy aircraft speed determination unit 80 moves the enemy aircraft according to this movement speed.
The above processing is performed every certain time (for example, behavior unit time T).
The above is the outline of the shooting game processing apparatus 1001 according to the second embodiment.

上記実施形態では、敵機の移動方向しか定めていないが、敵機の移動方向を定めると同時に、敵機に攻撃弾を発射させるようにしても良い。本発明による敵機の移動速度の決定の処理と、以下に説明する攻撃弾発射の処理を同時に行うことにより、防御モード・囲い込みモード時においては、より効果的に自機を囲い込み、敵機の防御力を上げることができ、攻撃モード時においては、より効果的に自機を攻撃することができる。具体的には、第1実施形態においては、ステップS17aとステップS18aを設ける(図2)。第2実施形態においても、ステップS17a(図8)とステップS18a(図9)を設ける。
以下、第1実施形態におけるステップS17aとステップS18aの処理について説明する。
In the above embodiment, only the movement direction of the enemy aircraft is determined. However, the enemy aircraft may be fired at the same time as the enemy aircraft movement direction is determined. By simultaneously performing the process of determining the movement speed of the enemy aircraft according to the present invention and the process of launching the attacking bullet described below, the enemy aircraft is more effectively enclosed in the defense mode / enclosure mode. Defense power can be raised, and in the attack mode, you can attack your aircraft more effectively. Specifically, in the first embodiment, step S17a and step S18a are provided (FIG. 2). Also in the second embodiment, step S17a (FIG. 8) and step S18a (FIG. 9) are provided.
Hereinafter, the process of step S17a and step S18a in 1st Embodiment is demonstrated.

<ステップS17a>
ステップS17aは、敵機が攻撃弾を発射する目標位置、すなわち、攻撃弾発射位置を求めるステップである。ステップS17aは、図4に示すように、ステップS171〜ステップS173から構成される。
≪ステップS171≫
衝突がなかった旨の信号を受け取った自機移動パターン生成部10の制御部102は、バッファ103から読み出したtとtbの大小関係を比較する。
t<tbであれば、ステップS172の処理を行う。t≧tbであれば、ステップS8(図2)の処理を行う。なお、t≧tbであれば、第2実施形態の場合は、ステップS11(図8)の処理を行う。
<Step S17a>
Step S17a is a step of obtaining a target position where the enemy aircraft fires an attack bullet, that is, an attack bullet firing position. As shown in FIG. 4, step S17a includes steps S171 to S173.
<< Step S171 >>
The control unit 102 of the own movement pattern generation unit 10 that has received the signal that there is no collision compares the magnitude relationship between t and tb read from the buffer 103.
If t <tb, the process of step S172 is performed. If t ≧ tb, the process of step S8 (FIG. 2) is performed. If t ≧ tb, the process of step S11 (FIG. 8) is performed in the second embodiment.

<ステップS172>
攻撃目標位置判定部40の到達時間差計算部401は、敵機の現在位置(X,Y)に位置する敵機が、(Xs(t),Ys(t))を目標位置として攻撃弾を発射したときに、その攻撃弾が(Xs(t),Ys(t))に到達するのに要するTnを計算する。そして、自機が上記目標位置(Xs(t),Ys(t))に到達するのに要する時間tと上記到達所要時間Tnの差の絶対値を計算する。
攻撃目標位置判定部40は、上記到達所要時間Tnとtの差の絶対値が、記憶部105から読み出した所定の値Cよりも小さいかどうかを判定する。所定の値Cは、例えば、自機の大きさと敵機攻撃弾の大きさの和の半分をS、敵機の攻撃弾の速度をVeとすると、S/Veとすることができる。また、自機の大きさとしては、例えば、自機の形状に内接する円の直径、敵機攻撃弾の大きさとしては、敵機攻撃弾の形状に内接する円の直径を取ることができる。
S/Ve>|t−Tn|であれば、(Xs(t),Ys(t))を攻撃目標位置とすることができる。敵機が(Xs(t),Ys(t))を目標位置として攻撃弾を発射すれば、自機を破壊することができる可能性があるからである。この場合、ステップS173の処理を行う。
<Step S172>
The arrival time difference calculation unit 401 of the attack target position determination unit 40 causes the enemy aircraft located at the current position (X, Y) of the enemy aircraft to fire an attack bullet with (Xs (t), Ys (t)) as the target position. Tn required for the attack bullet to reach (Xs (t), Ys (t)) is calculated. Then, the absolute value of the difference between the time t required for the aircraft to reach the target position (Xs (t), Ys (t)) and the required time Tn is calculated.
The attack target position determination unit 40 determines whether the absolute value of the difference between the required arrival times Tn and t is smaller than a predetermined value C read from the storage unit 105. The predetermined value C can be, for example, S / Ve, where S is half of the sum of the size of the own aircraft and the size of the enemy attacking bullet, and Ve is the velocity of the attacking bullet of the enemy aircraft. Also, as the size of the own aircraft, for example, the diameter of a circle inscribed in the shape of the own aircraft, and as the size of the enemy aircraft attack bullet, the diameter of a circle inscribed in the shape of the enemy aircraft attack bullet can be taken .
If S / Ve> | t−Tn |, (Xs (t), Ys (t)) can be set as the attack target position. This is because if the enemy aircraft fires an attack bullet with (Xs (t), Ys (t)) as the target position, it may be possible to destroy the aircraft. In this case, the process of step S173 is performed.

S/Ve<|t−Tn|であれば、(Xs(t),Ys(t))を攻撃目標位置とすることはできない。この場合、ステップS8(図2)の処理を行う。この場合、第2実施形態では、ステップS11(図8)の処理を行う。
<ステップS173>
S/Ve>|t−Tn|であれば、(Xs(t),Ys(t))を攻撃目標位置とすることができるため、攻撃目標位置判定部40は、(Xs(t),Ys(t))を、攻撃目標位置(Xdes,Ydes)として攻撃目標位置バッファ50に格納する。また、tb=tとして新たにtbを設定し、これをバッファ103に格納する。その後、ステップS8(図2)の処理を行う。第2実施形態では、その後、ステップS11(図8)の処理を行う。
以上が、ステップS17aの説明である。次に、ステップS18aについて説明する。
If S / Ve <| t−Tn |, (Xs (t), Ys (t)) cannot be set as the attack target position. In this case, the process of step S8 (FIG. 2) is performed. In this case, in the second embodiment, the process of step S11 (FIG. 8) is performed.
<Step S173>
If S / Ve> | t−Tn |, since (Xs (t), Ys (t)) can be set as the attack target position, the attack target position determination unit 40 determines (Xs (t), Ys). (T)) is stored in the attack target position buffer 50 as the attack target position (Xdes, Ydes). Further, tb is newly set as tb = t, and this is stored in the buffer 103. Then, the process of step S8 (FIG. 2) is performed. In the second embodiment, the process of step S11 (FIG. 8) is then performed.
The above is the description of step S17a. Next, step S18a will be described.

<ステップS18a>(図4)
ステップS18aは、ステップS17aで求めた攻撃目標位置に向けて敵機に攻撃弾を発射させるステップである。具体的には、攻撃弾発射部60が、攻撃目標位置バッファ50から読み出した攻撃目標位置(Xdes,Ydes)に向けて、敵機に攻撃弾を発射させる。
上記実施形態による探索では、一度攻撃目標位置が見つかった後は、自機がその攻撃目標位置に到達するよりも短い時間で到達することができる位置についてのみ(t<tb,ステップS171)、攻撃弾の目標位置となり得るかどうかを探索している。そして、新たな攻撃弾の目標位置が見つかった場合には(ステップS172)、その新たな攻撃弾の目標位置で、攻撃目標位置バッファ50が更新される(ステップS173)。このため、上記実施形態による探索を終えたときに、攻撃目標位置バッファ50に格納されている攻撃目標位置(Xdes,Ydes)が、自機が最も短い時間で到達することができる攻撃目標位置となるのである。
以上が、ステップS18aの説明である。
<Step S18a> (FIG. 4)
Step S18a is a step of causing the enemy aircraft to fire an attack bullet toward the attack target position obtained in step S17a. Specifically, the attack bullet launcher 60 causes the enemy aircraft to launch an attack bullet toward the attack target position (Xdes, Ydes) read from the attack target position buffer 50.
In the search according to the above-described embodiment, once the attack target position is found, the attack can be performed only for positions that can be reached in a shorter time than when the own aircraft reaches the attack target position (t <tb, step S171). We are searching for the target position of the bullet. When a new target position of the attack bullet is found (step S172), the attack target position buffer 50 is updated with the new target position of the attack bullet (step S173). For this reason, when the search according to the above embodiment is completed, the attack target position (Xdes, Ydes) stored in the attack target position buffer 50 is the attack target position that the aircraft can reach in the shortest time. It becomes.
The above is the description of step S18a.

行動単位時間Tの設定方法としは、以下のようなものがある。
例えば、自機移動パターン生成部10と自機移動パターン生成部11の操作履歴記録部108が、プレイヤーの操作履歴についてのデータを取っているものとする。行動単位時間設定部109は、操作履歴記録部108に記録された操作履歴データから、自機が移動方向を変更した時間の間隔の平均値を計算し、この計算結果を行動単位時間Tとして設定することができる。
これにより、プレイヤーの癖を考慮した攻撃弾の発射が可能となる。
There are the following methods for setting the behavior unit time T.
For example, it is assumed that the operation history recording unit 108 of the own device movement pattern generation unit 10 and the own device movement pattern generation unit 11 takes data on the operation history of the player. The action unit time setting unit 109 calculates the average value of the time interval when the own device changes the moving direction from the operation history data recorded in the operation history recording unit 108 and sets the calculation result as the action unit time T. can do.
This makes it possible to fire attack bullets that take into account the player's trap.

また、攻撃目標位置の探索において、自機の行動の度ごとに行動単位時間Tを変更することができる。例えば、自機の行動の回数が多くなるほど、言い換えれば、探索の深さdが深くなるほど、行動単位時間Tの長さを指数関数的に大きくすることができる。探索の深さdが深くなるほど、行動単位時間Tを長くすることにより、限られた深さの探索においても、より未来の状態まで考慮した探索を行うことができる。このために、例えば、行動単位時間設定部109は、第1実施形態におけるステップS9(図2)の処理において、または、第2実施形態におけるステップS15(図9)の処理において、dをインクリメントした後に、Aexp(d)を計算し、この計算結果を行動単位時間Tに設定する。ここで、Aは1より大きい任意の実数である。   In the search for the attack target position, the action unit time T can be changed for each action of the own machine. For example, the length of the action unit time T can be increased exponentially as the number of actions of the own machine increases, in other words, as the search depth d increases. By increasing the action unit time T as the search depth d becomes deeper, even in a limited depth search, it is possible to perform a search that considers even a future state. For this purpose, for example, the behavior unit time setting unit 109 increments d in the process of step S9 (FIG. 2) in the first embodiment or in the process of step S15 (FIG. 9) in the second embodiment. Later, Aexp (d) is calculated, and the calculation result is set as the action unit time T. Here, A is an arbitrary real number larger than 1.

また、自機が現在速度を未来において一定時間Tcだけ継続してから、攻撃目標位置を求める探索をするようにしても良い。探索計算を実質的に一段深く行うことができるためである。すなわち、自機が現在速度を未来において一定時間Tcだけ継続したと仮定した後に、D=5の探索を行う場合には、実質的にD=6の探索を行ったのと同じ探索を行うことができる。
ユーザが画面に表示された自機、敵機、攻撃弾を見てから、自機の行動を決めて、その行動を入力するには、行動単位時間T以上の時間がかかることが普通である。したがって、自機が現在速度を未来において一定時間Tcだけ継続したとして、攻撃目標位置を求める探索を行うようにしても問題は生じない。また、自機と敵機の行動選択のタイミングが同時ではない場合、すなわち、敵機が行動を選択する場合に、自機が移動中である場合においても、自機が現在速度を未来において一定時間Tcだけ継続したとして探索を行うことにより、敵機が行動を選択することができる。
Alternatively, the search for the target position of the attack may be performed after the own device continues the current speed for a certain time Tc in the future. This is because the search calculation can be performed substantially deeper. That is, when it is assumed that the current speed has continued for a certain period of time Tc in the future, when searching for D = 5, the same search as that performed for D = 6 should be performed. Can do.
It is common for a user to take action unit time T or more to determine his own action after inputting his / her own enemy, enemy aircraft and attack bullets displayed on the screen and to input the action. . Therefore, there is no problem even if the search for the target position of the attack is performed, assuming that the current device continues the current speed for a certain time Tc in the future. Also, if the action selection timing of the own aircraft and the enemy aircraft is not simultaneous, that is, if the enemy aircraft selects an action, even if the own aircraft is moving, the own aircraft will keep the current speed constant in the future The enemy aircraft can select an action by performing a search assuming that the time Tc has continued.

第1実施形態において、自機が現在速度を未来において一定時間Tcだけ継続した後に、探索を行うために、第1実施形態のステップS1又は第2実施形態のステップS1おける処理において、初期化部101は、時刻t=0における自機の位置(Xs(t),Ys(t))を、自機が現在速度を一定時間Tcだけ移動した位置に設定する。また、第1実施形態のステップS5又は第2実施形態のステップS6の処理において、攻撃弾位置推定部20は、位置取得部202が取得した敵機が既に発射した攻撃弾の現在位置から、その攻撃弾が一定時間Tcだけ移動した位置を計算することにより、更新前の攻撃弾の位置(Xbik(t−τ),Ybik(t−τ))を求める。また、ステップS172の処理において、攻撃目標位置判定部40は、S/Ve>|t−Tn|かどうかではなく、S/Ve>|t+Tc−Tn|かどうかを判定する。
その他の処理は、上記各実施形態と同じである。なお、上記一定時間Tcには、例えば、実施例1で説明した自機が移動方向を変更した時間の間隔の平均値を設定することができる。
In the first embodiment, in order to perform a search after the own device continues the current speed for a certain time Tc in the future, in the process in step S1 of the first embodiment or step S1 of the second embodiment, the initialization unit 101 sets the position (Xs (t), Ys (t)) of the own apparatus at time t = 0 to a position where the own apparatus has moved the current speed by a fixed time Tc. Moreover, in the process of step S5 of the first embodiment or step S6 of the second embodiment, the attack bullet position estimation unit 20 calculates the attack bullet from the current position of the enemy bullet already fired by the enemy aircraft acquired by the position acquisition unit 202. The position (Xbik (t−τ), Ybik (t−τ)) of the attacking bullet before update is obtained by calculating the position where the attacking bullet has moved for a certain time Tc. In the process of step S172, the attack target position determination unit 40 determines whether S / Ve> | t + Tc−Tn |, not S / Ve> | t−Tn |.
Other processes are the same as those in the above embodiments. Note that, for example, the average value of the time interval when the own device described in the first embodiment changes the moving direction can be set as the fixed time Tc.

第1実施形態のステップS18もしくは第2実施形態のステップ21において、攻撃弾発射部60は、攻撃目標位置バッファ50に攻撃目標位置が格納されていない場合には、攻撃弾発射部60は、自機の現在位置に向けて攻撃弾を発射するようにすることができる。   In step S18 of the first embodiment or step 21 of the second embodiment, if the attack target position is not stored in the attack target position buffer 50, the attack bullet launching section 60 It is possible to fire an attack bullet at the current position of the aircraft.

また、ステップS18aにおいて、攻撃弾発射部60は、攻撃目標位置バッファ50に攻撃目標位置が格納されていない場合には、攻撃弾発射部60は、自機の現在位置に、あるランダムな変位を与えた位置に向けて攻撃弾を敵機に発射させることができる。
例えば、攻撃弾発射部60の乱数発生部61が、X軸方向の変位量とY軸方向の変位量のそれぞれについてのランダムな値を生成する。攻撃弾発射部60が、自機の現在位置に上記生成されたX軸方向の変位量とY軸方向の変位量を加算した位置に向けて攻撃弾を敵機に発射させる。
具体的には、自機の形状に内接する円の直径をMとすると、X軸方向の変位量,Y軸方向の変位量の幅を、−3M〜3M程度にすると良い。例えば、自機の形状の大きさが30ドットの場合には、X軸方向の変位量,Y軸方向の変位量としては、それぞれ、−50〜50の値をランダムに取ることができるようにすると良い。
In step S18a, if the attack target position is not stored in the attack target position buffer 50, the attack bullet launching section 60 applies a random displacement to the current position of its own aircraft. Attack bullets can be fired at enemy positions toward a given position.
For example, the random number generator 61 of the attack bullet launcher 60 generates a random value for each of the displacement amount in the X-axis direction and the displacement amount in the Y-axis direction. The attack bullet firing unit 60 causes the enemy aircraft to launch an attack bullet toward a position obtained by adding the generated displacement amount in the X-axis direction and the displacement amount in the Y-axis direction to the current position of the own aircraft.
Specifically, if the diameter of a circle inscribed in the shape of the machine is M, the width of the displacement amount in the X-axis direction and the displacement amount in the Y-axis direction is preferably about −3M to 3M. For example, when the size of its own shape is 30 dots, the displacement amount in the X-axis direction and the displacement amount in the Y-axis direction can each take a value of −50 to 50 at random. Good.

ステップS18aにおいて、攻撃弾発射部60は、攻撃目標位置バッファ50に攻撃目標位置が格納されていない場合には、攻撃弾目標位置が見つかっていない旨の信号を自機移動パターン生成部10に出力するようにしてもよい。
上記信号を受け取った自機移動パターン生成部10は、自機が現在の速度を維持すると仮定して、自機が現在の速度を維持する行動を取り続ける場合の自機の移動先を生成する。攻撃目標位置判定部40は、その移動先に至るまでの各位置について、適切な攻撃弾目標位置と成り得るかどうかを判定する。すなわち、その移動先に至るまでの各位置について、その位置に自機が移動する時間と敵機が発射する攻撃弾がその位置に移動する時間の差の絶対値が、所定の値Cよりも小さいかどうかを判定する。所定の値Cよりも小さい場合には、その位置を攻撃目標位置とすることができる。攻撃弾発射部60は、その攻撃目標位置に向けて攻撃弾を発射する。
In step S <b> 18 a, when the attack target position is not stored in the attack target position buffer 50, the attack bullet launching unit 60 outputs a signal to the subject movement pattern generation unit 10 that the attack bullet target position has not been found. You may make it do.
Receiving the signal, the own-device movement pattern generation unit 10 assumes that the own device maintains the current speed, and generates the destination of the own device when the own device continues to take action to maintain the current speed. The attack target position determination unit 40 determines whether or not each position up to the movement destination can be an appropriate attack bullet target position. In other words, for each position up to the destination, the absolute value of the difference between the time for the aircraft to move to that position and the time for the attack bullets fired by the enemy aircraft to move to that position is greater than the predetermined value C. Determine if it is small. When it is smaller than the predetermined value C, the position can be set as the attack target position. The attack bullet launcher 60 launches an attack bullet toward the attack target position.

また、実施例9で述べたように、ステップS18aにおいて、攻撃弾発射部60は、攻撃目標位置バッファ50に攻撃目標位置が格納されていない場合には、攻撃弾目標位置が見つかっていない旨の信号を自機移動パターン生成部10に出力する。
上記信号を受け取った自機移動パターン生成部10の制御部102は、記憶部105に格納された所定の値Cを読み出し、所定の値Cをより大きな値に設定しなおして記憶部105に格納する。そして、上記シューティングゲーム処理装置の処理を再度実行するようにしてもよい。その際、自機の移動範囲決定ステップS7aと敵機の速度決定ステップS16aの処理は省略することができる。
Further, as described in the ninth embodiment, in step S18a, when the attack target position is not stored in the attack target position buffer 50, the attack bullet launching unit 60 indicates that the attack bullet target position has not been found. The signal is output to own device movement pattern generation unit 10.
Receiving the signal, the control unit 102 of the own movement pattern generation unit 10 reads the predetermined value C stored in the storage unit 105, resets the predetermined value C to a larger value, and stores it in the storage unit 105. To do. And you may make it perform the process of the said shooting game processing apparatus again. At that time, the processing of the moving range determination step S7a of the own aircraft and the speed determination step S16a of the enemy aircraft can be omitted.

また、実施例9で述べたように、ステップS18aにおいて、攻撃弾発射部60は、攻撃目標位置バッファ50に攻撃目標位置が格納されていない場合には、攻撃弾目標位置が見つかっていない旨の信号を自機移動パターン生成部10に出力する。
攻撃目標位置が見つかっていない旨の信号を受け取った自機移動パターン生成部10の制御部102は、記憶部105に格納された探索の深さDを読み出し、1だけインクリメントしたD+1の値を新たなDとして記憶部105に格納する。そして、上記シューティングゲーム処理装置の処理を再度実行するようにしてもよい。その際、自機の移動範囲決定ステップS7aと敵機の速度決定ステップS16aの処理は省略することができる。
制御部102は、インクリメントしたD+1が一定の値Dcになったら、探索を終了する。すなわち、インクリメントしたD+1が一定の値Dcになった場合には、各処理を停止する。
Further, as described in the ninth embodiment, in step S18a, when the attack target position is not stored in the attack target position buffer 50, the attack bullet launching unit 60 indicates that the attack bullet target position has not been found. The signal is output to own device movement pattern generation unit 10.
Receiving the signal that the attack target position has not been found, the control unit 102 of the own movement pattern generation unit 10 reads the search depth D stored in the storage unit 105 and newly adds a value of D + 1 incremented by one. Stored as D in the storage unit 105. And you may make it perform the process of the said shooting game processing apparatus again. At that time, the processing of the moving range determination step S7a of the own aircraft and the speed determination step S16a of the enemy aircraft can be omitted.
When the incremented D + 1 reaches a certain value Dc, the control unit 102 ends the search. That is, each process is stopped when the incremented D + 1 becomes a constant value Dc.

上記実施形態では、自機が最も短い時間で到達することができる攻撃目標位置についてのみ攻撃弾を発射したが、攻撃目標位置が見つかるごとに、攻撃弾発射部60が、その攻撃目標位置に向けて攻撃弾を敵機に発射させるようにしてもよい。   In the above embodiment, the attack bullet is fired only for the attack target position that the aircraft can reach in the shortest time. However, every time the attack target position is found, the attack bullet launching unit 60 is directed to the attack target position. The attacking bullets may be fired at the enemy aircraft.

行動単位時間Tを、自機と敵機の距離の長さに応じて長くしても良い。具体的には、行動単位時間設定部109が、各実施形態におけるステップS1の処理を実行する前に、自機の現在位置と敵機の現在位置の距離を計算し、その距離が長ければ長いほど、行動単位時間Tを長く設定して、記憶部105に格納する。
自機と敵機の距離が長いほど行動単位時間Tを長くすることにより、言い換えれば、自機と敵機の距離が短いほど行動単位時間Tを短くすることにより、自機と敵機の距離が短くより緊迫感が増す接近戦において、敵機の動作をより精密に制御することが可能になりよりゲーム性が増す。また、自機と敵機の距離が長く、敵機の行動についての精密な制御が必要でない場合には、行動単位時間Tを長くすることにより、シューティングゲーム処理装置における処理の負担を軽減することができる。
The action unit time T may be increased according to the distance between the own aircraft and the enemy aircraft. Specifically, the behavior unit time setting unit 109 calculates the distance between the current position of the own aircraft and the current position of the enemy aircraft before executing the process of step S1 in each embodiment. The action unit time T is set longer and stored in the storage unit 105.
The longer the distance between the enemy aircraft and the enemy aircraft, the longer the action unit time T. In other words, the shorter the distance between the enemy aircraft and the enemy aircraft, the shorter the action unit time T, so that the distance between the aircraft and the enemy aircraft. In a close battle with a shorter and more tense feeling, it becomes possible to control the movement of enemy aircraft more precisely and the game performance is further increased. In addition, when the distance between the enemy aircraft and the enemy aircraft is long and precise control of the behavior of the enemy aircraft is not necessary, the processing unit time can be reduced by reducing the processing load on the shooting game processing device. Can do.

その他の実施例・変形例について
上記の実施例を組み合わせて行っても良い。
また、上記シューティングゲーム処理装置の処理機能をコンピュータによって実現することができる。この場合、シューティングゲーム処理装置の処理機能の内容はプログラムによって記述される。そして、このプログラムを、図16に示すようなコンピュータで実行することにより、上記シューティングゲーム処理装置の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
Other embodiments and modifications may be combined with the above embodiments.
The processing function of the shooting game processing device can be realized by a computer. In this case, the content of the processing function of the shooting game processing device is described by a program. Then, by executing this program on a computer as shown in FIG. 16, the processing functions of the shooting game processing device are realized on the computer.
The program describing the processing contents can be recorded on a computer-readable recording medium. As the computer-readable recording medium, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used. Specifically, for example, as a magnetic recording device, a hard disk device, a flexible disk, a magnetic tape or the like, and as an optical disk, a DVD (Digital Versatile Disc), a DVD-RAM (Random Access Memory), a CD-ROM (Compact Disc Read Only). Memory), CD-R (Recordable) / RW (ReWritable), etc., magneto-optical recording medium, MO (Magneto-Optical disc), etc., semiconductor memory, EEP-ROM (Electronically Erasable and Programmable-Read Only Memory), etc. Can be used.

また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, the computer reads a program stored in its own recording medium and executes a process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good. Note that the program in this embodiment includes information that is provided for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).

また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ユーザ端末を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
以上の各実施形態の他、本発明であるシューティングゲーム処理方法、その装置等は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
In this embodiment, the user terminal is configured by executing a predetermined program on the computer. However, at least a part of the processing contents may be realized by hardware.
In addition to the above embodiments, the shooting game processing method, the apparatus thereof, and the like according to the present invention are not limited to the above-described embodiments, and can be appropriately changed without departing from the spirit of the present invention.

シューティングゲーム処理装置1000の機能構成を例示した図。The figure which illustrated the function structure of the shooting game processing apparatus 1000. シューティングゲーム処理装置1000の処理を例示した図。The figure which illustrated processing of shooting game processing device 1000. 自機移動範囲決定ステップS7aの処理を例示した図。The figure which illustrated the process of own machine movement range determination step S7a. 攻撃弾発射位置判定ステップS17aの処理を例示した図。The figure which illustrated processing of attack bullet firing position judging step S17a. 敵機移動速度決定ステップS16aの処理を例示した図。The figure which illustrated the process of enemy aircraft moving speed determination step S16a. シューティングゲームの模式図。A schematic diagram of a shooting game. シューティングゲーム処理装置1001の機能構成を例示した図。The figure which illustrated the function structure of the shooting game processing apparatus 1001. シューティングゲーム処理装置1001の処理を例示した図(1)。The figure (1) which illustrated processing of shooting game processing device 1001. シューティングゲーム処理装置1001の処理を例示した図(2)。The figure (2) which illustrated processing of shooting game processing device 1001. 安全行動パターンを示す図。The figure which shows a safe action pattern. 縦型探索の探索順序を示す図。The figure which shows the search order of a vertical type search. 横型探索の探索順序を示す図。The figure which shows the search order of a horizontal type search. 防御モード・囲い込みモードの状況を表わす図。The figure showing the condition of defense mode and enclosure mode. 攻撃モードの状況を表わす図。The figure showing the condition of attack mode. 自機行動順列の要素の一致の例を説明するための図。The figure for demonstrating the example of a coincidence of the element of self-machine action permutation. シューティングゲーム難易度判定装置をコンピュータにより実行するときの機能構成を例示した図。The figure which illustrated functional composition when a shooting game difficulty level judging device is performed with a computer.

符号の説明Explanation of symbols

1:自機,2:敵機,3:攻撃弾,4:攻撃弾,5:CPU,6:RAM,7:出力部,8:補助記憶部,9:入力部,9’:バス,10:自機移動パターン生成部,11:自機移動パターン生成部,20:攻撃弾位置推定部,30:衝突判定部,40:攻撃目標位置判定部,50:攻撃目標位置バッファ,51:自機移動パターンバッファ,52:敵機攻撃弾状態バッファ,53:順列データバッファ,54:自機移動範囲バッファ,60:攻撃弾発射部,61:乱数発生部,70:自機移動範囲決定部,80:敵機速度決定部,101:初期化部,102:制御部,103:バッファ,104:位置更新部,105:記憶部,106:順列作成部,107:順列獲得部,108:操作履歴記録部,109:行動単位時間設定部,112:制御部,201:記憶部,202:位置取得部,401:到達時間差計算部,801:モード判定部,802:位置判定部,1000:シューティングゲーム処理装置,1001:シューティングゲーム処理装置 1: host aircraft, 2: enemy aircraft, 3: attack bullet, 4: attack bullet, 5: CPU, 6: RAM, 7: output unit, 8: auxiliary storage unit, 9: input unit, 9 ′: bus, 10 : Own device movement pattern generation unit, 11: own device movement pattern generation unit, 20: attack bullet position estimation unit, 30: collision determination unit, 40: attack target position determination unit, 50: attack target position buffer, 51: own device Movement pattern buffer, 52: Enemy aircraft attack bullet state buffer, 53: Permutation data buffer, 54: Own aircraft movement range buffer, 60: Attack bullet emission unit, 61: Random number generation unit, 70: Own aircraft movement range determination unit, 80 : Enemy aircraft speed determination unit, 101: initialization unit, 102: control unit, 103: buffer, 104: position update unit, 105: storage unit, 106: permutation creation unit, 107: permutation acquisition unit, 108: record operation history Part, 109: action unit time setting part, 112: Control unit, 201: storage unit, 202: position obtaining unit, 401: time difference calculating portion reaches, 801: mode determination unit, 802: position determining unit, 1000: Shooting game processing apparatus, 1001: Shooting game processing apparatus

Claims (17)

自機移動パターン生成手段と、衝突判定手段と、自機移動範囲決定手段と、位置判定手段、モード判定手段と、敵機速度決定手段とを備えたコンピュータが、画面上に自機と敵機を表示し、W種類の行動を選択する操作によって自機を移動させて、自機に攻撃を加えてくる敵機と闘うシューティングゲームの処理を行う方法であって、
モード判定手段が、ある方向に直進する敵機が、その敵機の進行方向に回りこんで攻撃をする自機に撃墜されるかどうかを判定するモード判定過程と、
敵機速度決定手段が、上記モード判定過程において、上記敵機が上記自機に撃墜されると判定された場合には、上記方向への敵機の移動速度を遅くし、上記敵機が上記自機に撃墜されないと判定された場合には、上記方向への敵機の移動速度を速くする敵機速度決定過程と、
を有し、
自機が攻撃弾を発射する方向をY軸、自機が攻撃弾を発射する方向と垂直な方向をX軸とし、
上記モード判定過程は、自機の現在位置のX座標と敵機の現在位置のX座標の差の絶対値を、自機のX軸方向への最大移動速度で割った値(以下、A値とする。)を求め、自機の現在位置のY座標と敵機の現在位置のY座標の差の絶対値を、敵機のY軸方向への最大移動速度と自機のY軸方向への最大移動速度との差の絶対値で割った値(以下、B値とする。)を求め、A値とB値を比較し、B値の方が大きい場合には、上記敵機が上記自機に撃墜されると判定し、A値の方が大きい場合には、上記敵機が上記自機に撃墜されないと判定する過程であり、
上記敵機速度決定過程は、更に、上記モード判定過程において、上記敵機が上記自機に撃墜されると判定された場合には、上記方向と垂直な方向で自機がいない方向への敵機の移動速度を0以上にし、上記敵機が上記自機に撃墜されないと判定された場合には、上記方向と垂直な方向で自機がいる方向への敵機の移動速度を0以上にする過程を含み、
更に、
自機移動パターン生成手段が、所定の時間(以下、行動単位時間Tとする。)だけ移動する行動をD回行う自機の各移動先の候補を生成する自機移動パターン生成過程と、
衝突判定手段が、自機が、上記自機の各移動先の候補へ移動する途中に、敵機が既に発射した攻撃弾と衝突するかどうかを判定する衝突判定過程と、
自機移動範囲決定手段が、上記衝突判定過程において衝突しないと判定された位置のX座標の最小値と最大値を決定する自機移動範囲決定過程と、
位置判定手段が、敵機の現在位置のX座標が、上記X座標の最小値と最大値の間にあるかどうかを判定する位置判定過程と、
を有し、
上記敵機速度決定過程は、更に、
(1)上記モード判定過程において上記敵機が上記自機に撃墜されると判定され、かつ、上記位置判定過程において敵機の現在位置のX座標が上記X座標の最小値と最大値の間にないと判定された場合には、上記方向と垂直な方向への敵機の移動速度を0にする過程と、
(2)上記モード判定過程において上記敵機が上記自機に撃墜されると判定され、かつ、上記位置判定過程において敵機の現在位置のX座標が上記X座標の最小値と最大値の間にあると判定された場合には、上記方向と垂直な方向で自機がいない方向への敵機の移動速度を0より大きくする過程と、
を含む、
ことを特徴とするシューティングゲーム処理方法。
A ship moving pattern generating means, a collision determination means, a ship moving range determination unit, a position determining unit, a mode determination unit, a computer equipped with the enemy machine speed determining means, the own device and enemies on the screen A method of displaying a machine, moving a ship by selecting an action of W type, and processing a shooting game to fight an enemy machine that attacks the ship,
A mode determination process in which the mode determination means determines whether an enemy aircraft that goes straight in a certain direction is shot down by the enemy aircraft that goes around in the traveling direction of the enemy aircraft and attacks.
When the enemy aircraft speed determining means determines that the enemy aircraft is shot down by the own aircraft in the mode determination process, the enemy aircraft speed is decreased, and the enemy aircraft is If it is determined that the aircraft is not shot down, the enemy aircraft speed determination process to increase the speed of movement of the enemy aircraft in the above direction,
Have
The direction in which the aircraft fires the attack bullet is the Y axis, the direction perpendicular to the direction in which the aircraft fires the attack bullet is the X axis,
The mode determination process is a value obtained by dividing the absolute value of the difference between the X coordinate of the current position of the own aircraft and the X coordinate of the current position of the enemy aircraft by the maximum movement speed in the X axis direction of the own aircraft (hereinafter referred to as A value). And the absolute value of the difference between the Y coordinate of the current position of the own aircraft and the Y coordinate of the current position of the enemy aircraft, and the maximum movement speed of the enemy aircraft in the Y axis direction and the Y axis direction of the own aircraft. The value divided by the absolute value of the difference from the maximum movement speed (hereinafter referred to as B value) is obtained, and the A value and B value are compared. If the B value is greater, the enemy aircraft It is determined that the enemy aircraft is not shot down by the own aircraft when it is determined that the enemy aircraft is shot down and the A value is larger.
In the enemy aircraft speed determination process, if it is determined in the mode determination process that the enemy aircraft is shot down by the own aircraft, an enemy in a direction perpendicular to the direction in which the own aircraft is not present. If the aircraft's movement speed is set to 0 or higher and it is determined that the enemy aircraft is not shot down by the own aircraft, the movement speed of the enemy aircraft in the direction in which the aircraft is in a direction perpendicular to the above direction is set to 0 or higher. Including the process of
Furthermore,
A self-movement pattern generation process in which a self-movement pattern generation unit generates candidates for each movement destination of the self-machine that performs an action that moves for a predetermined time (hereinafter referred to as a behavior unit time T);
A collision determination process in which the collision determination means determines whether the enemy aircraft collides with an attack bullet that has already been fired while the aircraft is moving to each destination candidate of the aircraft,
The own-machine movement range determination means determines the minimum value and the maximum value of the X coordinate of the position determined not to collide in the collision determination process,
A position determination process in which the position determination means determines whether the X coordinate of the current position of the enemy aircraft is between the minimum value and the maximum value of the X coordinate;
Have
The enemy aircraft speed determination process
(1) It is determined that the enemy aircraft is shot down by the own aircraft in the mode determination process, and the X coordinate of the current position of the enemy aircraft is between the minimum value and the maximum value of the X coordinate in the position determination process. If it is determined that the enemy aircraft does not move in the direction perpendicular to the above direction,
(2) It is determined that the enemy aircraft is shot down by the own aircraft in the mode determination process, and the X coordinate of the current position of the enemy aircraft is between the minimum value and the maximum value of the X coordinate in the position determination process. If it is determined that the enemy aircraft is moving in a direction perpendicular to the above direction and where the aircraft is not present,
including,
A method for processing a shooting game.
自機移動パターン生成手段と、衝突判定手段と、自機移動範囲決定手段と、到達時間差計算手段と、攻撃目標位置判定手段と、攻撃弾発射手段と、モード判定手段と、敵機速度決定手段とを備えたコンピュータが、画面上に自機と敵機を表示し、W種類の行動を選択する操作によって自機を移動させて、自機に攻撃を加えてくる敵機と闘うシューティングゲームの処理を行う方法であって、
モード判定手段が、ある方向に直進する敵機が、その敵機の進行方向に回りこんで攻撃をする自機に撃墜されるかどうかを判定するモード判定過程と、
敵機速度決定手段が、上記モード判定過程において、上記敵機が上記自機に撃墜されると判定された場合には、上記方向への敵機の移動速度を遅くし、上記敵機が上記自機に撃墜されないと判定された場合には、上記方向への敵機の移動速度を速くする敵機速度決定過程と、
を有し、
自機が攻撃弾を発射する方向をY軸、自機が攻撃弾を発射する方向と垂直な方向をX軸とし、
上記モード判定過程は、自機の現在位置のX座標と敵機の現在位置のX座標の差の絶対値を、自機のX軸方向への最大移動速度で割った値(以下、A値とする。)を求め、自機の現在位置のY座標と敵機の現在位置のY座標の差の絶対値を、敵機のY軸方向への最大移動速度と自機のY軸方向への最大移動速度との差の絶対値で割った値(以下、B値とする。)を求め、A値とB値を比較し、B値の方が大きい場合には、上記敵機が上記自機に撃墜されると判定し、A値の方が大きい場合には、上記敵機が上記自機に撃墜されないと判定する過程であり、
上記敵機速度決定過程は、更に、上記モード判定過程において、上記敵機が上記自機に撃墜されると判定された場合には、上記方向と垂直な方向で自機がいない方向への敵機の移動速度を0以上にし、上記敵機が上記自機に撃墜されないと判定された場合には、上記方向と垂直な方向で自機がいる方向への敵機の移動速度を0以上にする過程を含み、
更に、
自機移動パターン生成手段が、所定の時間(以下、行動単位時間Tとする。)だけ移動する行動をD回行う自機の各移動先の候補を生成する自機移動パターン生成過程と、
衝突判定手段が、自機が、上記自機の各移動先の候補へ移動する途中に、敵機が既に発射した攻撃弾と衝突するかどうかを判定する衝突判定過程と、
機移動範囲決定手段が、上記衝突判定過程において衝突しないと判定された位置のX座標の最小値と最大値を決定する自機移動範囲決定過程と、
到達時間差計算手段が、上記衝突判定過程において衝突しないと判定された場合には、自機が上記衝突しないと判定された位置へ移動するのに必要な時間と、敵機が新たに発射する攻撃弾が上記衝突しないと判定された位置へ移動するのに必要な時間との差の絶対値を計算する到達時間差計算過程と、
攻撃目標位置判定手段が、上記差の絶対値が所定の値よりも小さいかどうかを判定し、その差の絶対値が所定の値よりも小さい場合には、上記衝突しないと判定された位置を攻撃目標位置とする攻撃目標位置判定過程と、
攻撃弾発射手段が、上記攻撃目標位置へ向けて敵機に新たな攻撃弾を発射させる攻撃発射過程と、
を有する、
ことを特徴とするシューティングゲーム処理方法。
Own aircraft movement pattern generation means, collision determination means, own aircraft movement range determination means, arrival time difference calculation means, attack target position determination means, attack bullet firing means, mode determination means, enemy aircraft speed determination means Of a shooting game that fights against an enemy aircraft that attacks itself by moving the aircraft by an operation of selecting W types of actions. A method of processing,
A mode determination process in which the mode determination means determines whether an enemy aircraft that goes straight in a certain direction is shot down by the enemy aircraft that goes around in the traveling direction of the enemy aircraft and attacks.
When the enemy aircraft speed determining means determines that the enemy aircraft is shot down by the own aircraft in the mode determination process, the enemy aircraft speed is decreased, and the enemy aircraft is If it is determined that the aircraft is not shot down, the enemy aircraft speed determination process to increase the speed of movement of the enemy aircraft in the above direction,
Have
The direction in which the aircraft fires the attack bullet is the Y axis, the direction perpendicular to the direction in which the aircraft fires the attack bullet is the X axis,
The mode determination process is a value obtained by dividing the absolute value of the difference between the X coordinate of the current position of the own aircraft and the X coordinate of the current position of the enemy aircraft by the maximum movement speed in the X axis direction of the own aircraft (hereinafter referred to as A value). And the absolute value of the difference between the Y coordinate of the current position of the own aircraft and the Y coordinate of the current position of the enemy aircraft, and the maximum movement speed of the enemy aircraft in the Y axis direction and the Y axis direction of the own aircraft. The value divided by the absolute value of the difference from the maximum movement speed (hereinafter referred to as B value) is obtained, and the A value and B value are compared. If the B value is greater, the enemy aircraft It is determined that the enemy aircraft is not shot down by the own aircraft when it is determined that the enemy aircraft is shot down and the A value is larger.
In the enemy aircraft speed determination process, if it is determined in the mode determination process that the enemy aircraft is shot down by the own aircraft, an enemy in a direction perpendicular to the direction in which the own aircraft is not present. If the aircraft's movement speed is set to 0 or higher and it is determined that the enemy aircraft is not shot down by the own aircraft, the movement speed of the enemy aircraft in the direction in which the aircraft is in a direction perpendicular to the above direction is set to 0 or higher. Including the process of
Furthermore,
A self-movement pattern generation process in which a self-movement pattern generation unit generates candidates for each movement destination of the self-machine that performs an action that moves for a predetermined time (hereinafter referred to as a behavior unit time T);
A collision determination process in which the collision determination means determines whether the enemy aircraft collides with an attack bullet that has already been fired while the aircraft is moving to each destination candidate of the aircraft,
The own- machine movement range determination means determines the minimum value and the maximum value of the X coordinate of the position determined not to collide in the collision determination process,
If the arrival time difference calculation means determines that there is no collision in the collision determination process, the time required for the aircraft to move to the position determined not to collide and the attack that the enemy aircraft newly launches An arrival time difference calculation process for calculating the absolute value of the difference from the time required for the bullet to move to the position determined not to collide;
The attack target position determining means determines whether or not the absolute value of the difference is smaller than a predetermined value. If the absolute value of the difference is smaller than the predetermined value, the position determined not to collide is determined. Attack target position determination process as an attack target position,
An attack firing process in which the attack bullet launching means launches a new attack bullet to the enemy aircraft toward the attack target position,
Having
A method for processing a shooting game.
請求項1に記載のシューティングゲーム処理方法において、
更に、
到達時間差計算手段が、上記衝突判定過程において衝突しないと判定された場合には、自機が上記衝突しないと判定された位置へ移動するのに必要な時間と、敵機が新たに発射する攻撃弾が上記衝突しないと判定された位置へ移動するのに必要な時間との差の絶対値を計算する到達時間差計算過程と、
攻撃目標位置判定手段が、上記差の絶対値が所定の値よりも小さいかどうかを判定し、その差の絶対値が所定の値よりも小さい場合には、上記衝突しないと判定された位置を攻撃目標位置とする攻撃目標位置判定過程と、
攻撃弾発射手段が、上記攻撃目標位置へ向けて敵機に新たな攻撃弾を発射させる攻撃発射過程と、
を有する、
ことを特徴とするシューティングゲーム処理方法。
The shooting game processing method according to claim 1,
Furthermore,
If the arrival time difference calculation means determines that there is no collision in the collision determination process, the time required for the aircraft to move to the position determined not to collide and the attack that the enemy aircraft newly launches An arrival time difference calculation process for calculating the absolute value of the difference from the time required for the bullet to move to the position determined not to collide;
The attack target position determining means determines whether or not the absolute value of the difference is smaller than a predetermined value. If the absolute value of the difference is smaller than the predetermined value, the position determined not to collide is determined. Attack target position determination process as an attack target position,
An attack firing process in which the attack bullet launching means launches a new attack bullet to the enemy aircraft toward the attack target position,
Having
A method for processing a shooting game.
請求項2又は3に記載のシューティングゲーム処理方法であって、
上記自機移動パターン生成過程は、自機の現在位置を根とし、行動単位ごとに自機が取り得る各速度で決まる経路を枝とする行動パターンを探索木として構成する過程であり、
上記根に近い各枝経路から順に、上記衝突判定過程と上記到達時間差計算過程と上記攻撃目標位置判定過程により、攻撃目標位置を探索する、
ことを特徴とするシューティングゲーム処理方法。
A shooting game processing method according to claim 2 or 3,
The own machine movement pattern generation process is a process of constructing a search tree with an action pattern having a route determined by each speed that can be taken by the own machine for each action unit as a branch, based on the current position of the own machine.
In order from each branch path close to the root, search for an attack target position by the collision determination process, the arrival time difference calculation process, and the attack target position determination process.
A method for processing a shooting game.
請求項2又は3に記載のシューティングゲーム処理方法であって、
上記自機移動パターン生成過程は、自機の現在位置を根とし、行動単位ごとに自機が取り得る各速度で決まる経路を枝とする行動パターンを探索木として構成する過程であり、
上記根から限界深さに至る各行動パターンを予め決めた順に、その行動パターンにおける各経路において、上記衝突判定過程と上記到達時間差計算過程と上記攻撃目標位置判定過程により攻撃目標位置を探索する
ことを特徴とするシューティングゲーム処理方法。
A shooting game processing method according to claim 2 or 3,
The own machine movement pattern generation process is a process of constructing a search tree with an action pattern having a route determined by each speed that can be taken by the own machine for each action unit as a branch, based on the current position of the own machine.
Search for the attack target position by the collision determination process, the arrival time difference calculation process, and the attack target position determination process in each route in the action pattern in the predetermined order from the root to the limit depth. A shooting game processing method characterized by the above.
請求項2〜5の何れかに記載のシューティングゲーム処理方法において、
上記攻撃目標位置判定過程は、更に、攻撃目標位置が複数存在する場合には、自機が最も短い時間で到達することができる攻撃目標位置を決定する過程、を更に有し、
上記攻撃発射過程は、上記自機が最も短い時間で到達することができる攻撃目標位置へ向けて敵機に新たな攻撃弾を発射させる過程である、
ことを特徴とするシューティングゲーム処理方法。
In the shooting game processing method according to any one of claims 2 to 5,
The attack target position determining process further includes a process of determining an attack target position that the aircraft can reach in the shortest time when there are a plurality of attack target positions.
The attack launch process is a process in which the enemy aircraft launches a new attack bullet toward the target position where the aircraft can reach in the shortest time.
A method for processing a shooting game.
請求項2〜6の何れかに記載のシューティングゲーム処理方法において、
上記到達時間差計算過程は、上記攻撃目標位置判定過程において攻撃目標位置が見つかったときには、上記攻撃目標位置に自機が移動する時間よりも、上記攻撃目標位置以外の衝突しないと判定された位置に自機が移動する時間の方が短い場合のみ、自機がその衝突しないと判定された位置へ移動するのに必要な時間と、敵機が新たに発射する攻撃弾がその衝突しないと判定された位置へ移動するのに必要な時間との上記差の絶対値を計算する過程であり、
上記到達時間差計算過程は、更に、最後に見つかった攻撃目標位置のみを攻撃目標位置とする過程を有する、
ことを特徴とするシューティングゲーム処理方法。
In the shooting game processing method according to any one of claims 2 to 6,
In the arrival time difference calculation process, when an attack target position is found in the attack target position determination process, the time other than the attack target position is determined as not to collide with the time when the aircraft moves to the attack target position. Only when the time it takes for the aircraft to move is shorter, it is determined that the time required for the aircraft to move to the position where it was determined that it will not collide, and the newly launched attack bullets will not collide. Is the process of calculating the absolute value of the difference from the time required to move to
The arrival time difference calculation process further includes a process in which only the last attack target position found is the attack target position.
A method for processing a shooting game.
請求項2〜7の何れかに記載のシューティングゲーム処理方法において、
上記所定の値は、自機の大きさと敵機が新たに発射する攻撃弾の大きさの和の半分をその攻撃弾の速さで割った値である、
ことを特徴とするシューティングゲーム処理方法。
In the shooting game processing method in any one of Claims 2-7,
The predetermined value is a value obtained by dividing half the sum of the size of the own aircraft and the size of the attacking bullet newly fired by the enemy aircraft by the speed of the attacking bullet,
A method for processing a shooting game.
請求項2に記載のシューティングゲーム処理方法において、更に、
上記コンピュータは、行動単位時間設定手段を備え、
上記行動単位時間設定手段が、自機の現在位置と敵機の現在位置の距離を計算し、自機と敵機の距離が長いほど上記自機移動パターン生成過程における行動単位時間Tを長く設定する行動単位時間設定過程を有する、
ことを特徴とするシューティングゲーム処理方法。
The shooting game processing method according to claim 2 , further comprising:
The computer includes action unit time setting means,
The action unit time setting means calculates the distance between the current position of the own aircraft and the current position of the enemy aircraft, and the longer the distance between the own aircraft and the enemy aircraft, the longer the action unit time T in the process of generating the own aircraft movement pattern. A behavior unit time setting process to
A method for processing a shooting game.
請求項2〜9の何れかに記載のシューティングゲーム処理方法において、
上記衝突判定過程と上記到達時間差計算過程と上記攻撃目標位置判定過程により探索しても上記自機の各移動先の候補のいずれについても攻撃目標位置が見つからない場合には、
上記所定の値をより大きな値に変更して、上記衝突判定過程と上記到達時間差計算過程と上記攻撃目標位置判定過程とを再度実行する、
ことを特徴とするシューティングゲーム処理方法。
In the shooting game processing method in any one of Claims 2-9,
Even if searching by the collision determination process, the arrival time difference calculation process, and the attack target position determination process and no target position is found for any of the destination candidates of the aircraft,
The predetermined value is changed to a larger value, and the collision determination process, the arrival time difference calculation process, and the attack target position determination process are executed again.
A method for processing a shooting game.
請求項2〜9の何れかに記載のシューティングゲーム処理方法において、
上記衝突判定過程と上記到達時間差計算過程と上記攻撃目標位置判定過程により探索しても上記自機の各移動先の候補のいずれについても攻撃目標位置が見つからない場合には、
上記攻撃発射過程は、自機の現在位置にあるランダムな変位を与えた位置へ向けて敵機に新たな攻撃弾を発射させる過程である、
ことを特徴とするシューティングゲーム処理方法。
In the shooting game processing method in any one of Claims 2-9,
Even if searching by the collision determination process, the arrival time difference calculation process, and the attack target position determination process and no target position is found for any of the destination candidates of the aircraft,
The attack launch process is a process of launching a new attack bullet to the enemy aircraft toward a random displacement position at the current position of the own aircraft,
A method for processing a shooting game.
請求項2〜9の何れかに記載のシューティングゲーム処理方法において、
上記衝突判定過程と上記到達時間差計算過程と上記攻撃目標位置判定過程により探索しても上記自機の各移動先の候補のいずれについても攻撃目標位置が見つからない場合には、
上記DをD+1として、攻撃目標位置が見つかるまで、上記衝突判定過程と上記到達時間差計算過程と上記攻撃目標位置判定過程とを再度実行する、
ことを特徴とするシューティングゲーム処理方法。
In the shooting game processing method in any one of Claims 2-9,
Even if searching by the collision determination process, the arrival time difference calculation process, and the attack target position determination process and no target position is found for any of the destination candidates of the aircraft,
D is D + 1, and the collision determination process, the arrival time difference calculation process, and the attack target position determination process are executed again until an attack target position is found.
A method for processing a shooting game.
請求項12に記載のシューティングゲーム処理方法において、
上記Dが一定の値になったら、上記の各過程を実行するのを止める、
ことを特徴とするシューティングゲーム処理方法。
The shooting game processing method according to claim 12,
When D reaches a certain value, stop executing the above processes.
A method for processing a shooting game.
画面上に自機と敵機を表示し、W種類の行動を選択する操作によって自機を移動させて、自機に攻撃を加えてくる敵機と闘うシューティングゲーム処理装置であって、
ある方向に直進する敵機が、その敵機の進行方向に周りこんで攻撃をする自機に撃墜されるかどうかを判定するモード判定手段と、
上記モード判定手段において、上記敵機が上記自機に撃墜されると判定された場合には、上記方向への敵機の移動速度を遅くし、上記敵機が上記自機に撃墜されないと判定された場合には、上記方向への敵機の移動速度を速くする敵機速度決定手段と、
を有し、
自機が攻撃弾を発射する方向をY軸、自機が攻撃弾を発射する方向と垂直な方向をX軸とし、
上記モード判定手段は、自機の現在位置のX座標と敵機の現在位置のX座標の差の絶対値を、自機のX軸方向への最大移動速度で割った値(以下、A値とする。)を求め、自機の現在位置のY座標と敵機の現在位置のY座標の差の絶対値を、敵機のY軸方向への最大移動速度と自機のY軸方向への最大移動速度との差の絶対値で割った値(以下、B値とする。)を求め、A値とB値を比較し、B値の方が大きい場合には、上記敵機が上記自機に撃墜されると判定し、A値の方が大きい場合には、上記敵機が上記自機に撃墜されないと判定する手段であり、
上記敵機速度決定手段は、更に、上記モード判定手段において、上記敵機が上記自機に撃墜されると判定された場合には、上記方向と垂直な方向で自機がいない方向への敵機の移動速度を0以上にし、上記敵機が上記自機に撃墜されないと判定された場合には、上記方向と垂直な方向で自機がいる方向への敵機の移動速度を0以上にする手段を含み、
更に、
所定の時間(以下、行動単位時間Tとする。)だけ移動する行動をD回行う自機の各移動先の候補を生成する自機移動パターン生成手段と、
自機が、上記自機の各移動先の候補へ移動する途中に、敵機が既に発射した攻撃弾と衝突するかどうかを判定する衝突判定手段と、
上記衝突判定手段において衝突しないと判定された位置のX座標の最小値と最大値を決定する自機移動範囲決定手段と、
敵機の現在位置のX座標が、上記X座標の最小値と最大値の間にあるかどうかを判定する位置判定手段と、
を有し、
上記敵機速度決定手段は、更に、
(1)上記モード判定手段において上記敵機が上記自機に撃墜されると判定され、かつ、上記位置判定手段において敵機の現在位置のX座標が上記X座標の最小値と最大値の間にないと判定された場合には、上記方向と垂直な方向への敵機の移動速度を0にする手段と、
(2)上記モード判定手段において上記敵機が上記自機に撃墜されると判定され、かつ、上記位置判定手段において敵機の現在位置のX座標が上記X座標の最小値と最大値の間にあると判定された場合には、上記方向と垂直な方向で自機がいない方向への敵機の移動速度を0より大きくする手段と、
を含む、
ことを特徴とするシューティングゲーム処理装置。
A shooting game processing device that displays its own aircraft and enemy aircraft on the screen, moves itself by an operation of selecting W types of actions, and fights enemy aircraft that attack itself.
Mode determination means for determining whether an enemy aircraft that goes straight in a certain direction is shot down by its own aircraft that attacks in the direction of travel of the enemy aircraft,
When the mode determination means determines that the enemy aircraft is shot down by the own aircraft, the movement speed of the enemy aircraft in the direction is slowed down and the enemy aircraft is determined not to be shot down by the own aircraft. If so, enemy aircraft speed determining means for increasing the movement speed of the enemy aircraft in the above direction,
Have
The direction in which the aircraft fires the attack bullet is the Y axis, the direction perpendicular to the direction in which the aircraft fires the attack bullet is the X axis,
The mode determination means is a value obtained by dividing the absolute value of the difference between the X coordinate of the current position of the own aircraft and the X coordinate of the current position of the enemy aircraft by the maximum movement speed of the own aircraft in the X-axis direction (hereinafter referred to as A value). And the absolute value of the difference between the Y coordinate of the current position of the own aircraft and the Y coordinate of the current position of the enemy aircraft, and the maximum movement speed of the enemy aircraft in the Y axis direction and the Y axis direction of the own aircraft. The value divided by the absolute value of the difference from the maximum movement speed (hereinafter referred to as B value) is obtained, and the A value and B value are compared. If the B value is greater, the enemy aircraft It is a means to determine that the enemy aircraft is not shot down by the own aircraft when it is determined that the enemy aircraft is shot down and the A value is larger.
The enemy aircraft speed determining means is further configured such that when the mode determining means determines that the enemy aircraft is shot down by the own aircraft, the enemy aircraft speed is determined to be an enemy in a direction perpendicular to the direction in which the own aircraft is not present. If the aircraft's movement speed is set to 0 or higher and it is determined that the enemy aircraft is not shot down by the own aircraft, the movement speed of the enemy aircraft in the direction in which the aircraft is in a direction perpendicular to the above direction is set to 0 or higher. Including means to
Furthermore,
Own-device movement pattern generation means for generating candidates for each destination of the own device that performs an action that moves only for a predetermined time (hereinafter referred to as action unit time T);
Collision determination means for determining whether or not the enemy aircraft collides with an attack bullet that has already been fired while the aircraft is moving to each destination candidate of the aircraft,
Own-machine movement range determination means for determining the minimum value and the maximum value of the X coordinate of the position determined not to collide in the collision determination means;
Position determination means for determining whether the X coordinate of the current position of the enemy aircraft is between the minimum value and the maximum value of the X coordinate;
Have
The enemy aircraft speed determining means further includes:
(1) The mode determination means determines that the enemy aircraft is shot down by the own aircraft, and the position determination means determines that the X coordinate of the current position of the enemy aircraft is between the minimum value and the maximum value of the X coordinate. In the case where it is determined that the enemy aircraft does not move in the direction perpendicular to the above direction,
(2) The mode determining means determines that the enemy aircraft is shot down by the own aircraft, and the position determining means determines that the X coordinate of the current position of the enemy aircraft is between the minimum value and the maximum value of the X coordinate. Means for increasing the moving speed of the enemy aircraft in a direction perpendicular to the above direction in the direction in which the own aircraft is not present,
including,
A shooting game processing apparatus characterized by that.
画面上に自機と敵機を表示し、W種類の行動を選択する操作によって自機を移動させて、自機に攻撃を加えてくる敵機と闘うシューティングゲーム処理プログラムであって、
自機が攻撃弾を発射する方向をY軸、自機が攻撃弾を発射する方向と垂直な方向をX軸とし、
ある方向に直進する敵機が、その敵機の進行方向に回りこんで攻撃をする自機に撃墜されるかどうかを判定するモード判定過程と、
上記モード判定過程において、上記敵機が上記自機に撃墜されると判定された場合には、上記方向への敵機の移動速度を遅くし、上記敵機が上記自機に撃墜されないと判定され
た場合には、上記方向への敵機の移動速度を速くする敵機速度決定過程と、
所定の時間(以下、行動単位時間Tとする。)だけ移動する行動をD回行う自機の各移動先の候補を生成する自機移動パターン生成過程と、
自機が、上記自機の各移動先の候補へ移動する途中に、敵機が既に発射した攻撃弾と衝突するかどうかを判定する衝突判定過程と、
上記衝突判定過程において衝突しないと判定された位置のX座標の最小値と最大値を決定する自機移動範囲決定過程と、
敵機の現在位置のX座標が、上記X座標の最小値と最大値の間にあるかどうかを判定する位置判定過程と、
をコンピュータに実行させるためのシューティングゲーム処理プログラムであって、
上記モード判定過程は、自機の現在位置のX座標と敵機の現在位置のX座標の差の絶対値を、自機のX軸方向への最大移動速度で割った値(以下、A値とする。)を求め、自機の現在位置のY座標と敵機の現在位置のY座標の差の絶対値を、敵機のY軸方向への最大移動速度と自機のY軸方向への最大移動速度との差の絶対値で割った値(以下、B値とする。)を求め、A値とB値を比較し、B値の方が大きい場合には、上記敵機が上記自機に撃墜されると判定し、A値の方が大きい場合には、上記敵機が上記自機に撃墜されないと判定する過程であり、
上記敵機速度決定過程は、更に、上記モード判定過程において、上記敵機が上記自機に撃墜されると判定された場合には、上記方向と垂直な方向で自機がいない方向への敵機の移動速度を0以上にし、上記敵機が上記自機に撃墜されないと判定された場合には、上記方向と垂直な方向で自機がいる方向への敵機の移動速度を0以上にする過程を含み、
自機が攻撃弾を発射する方向をY軸、自機が攻撃弾を発射する方向と垂直な方向をX軸とし、
上記敵機速度決定過程は、更に、
(1)上記モード判定過程において上記敵機が上記自機に撃墜されると判定され、かつ、上記位置判定過程において敵機の現在位置のX座標が上記X座標の最小値と最大値の間にないと判定された場合には、上記方向と垂直な方向への敵機の移動速度を0にする過程と、
(2)上記モード判定過程において上記敵機が上記自機に撃墜されると判定され、かつ、上記位置判定過程において敵機の現在位置のX座標が上記X座標の最小値と最大値の間にあると判定された場合には、上記方向と垂直な方向で自機がいない方向への敵機の移動速度を0より大きくする過程と、
を含むことを特徴とするシューティングゲーム処理プログラム。
It is a shooting game processing program that displays an own aircraft and enemy aircraft on the screen, moves the aircraft by an operation of selecting W types of actions, and fights enemy aircraft that attack the aircraft.
The direction in which the aircraft fires the attack bullet is the Y axis, the direction perpendicular to the direction in which the aircraft fires the attack bullet is the X axis,
A mode determination process that determines whether an enemy aircraft that goes straight in a certain direction is shot down by its own aircraft that attacks in the direction of travel of the enemy aircraft,
If it is determined in the mode determination process that the enemy aircraft is shot down by the own aircraft, the movement speed of the enemy aircraft in the direction is slowed down and the enemy aircraft is determined not to be shot down by the own aircraft. Is
The enemy aircraft speed determination process to increase the movement speed of the enemy aircraft in the above direction,
A self-movement pattern generation process for generating candidates for each movement destination of a self-machine that performs an action that moves only for a predetermined time (hereinafter referred to as action unit time T);
A collision determination process for determining whether an enemy aircraft collides with an attack bullet that has already been fired while the aircraft is moving to each destination candidate of the aircraft,
A process of determining a range of movement of the aircraft, which determines a minimum value and a maximum value of the X coordinate of the position determined not to collide in the collision determination process;
A position determination process for determining whether the X coordinate of the current position of the enemy aircraft is between the minimum value and the maximum value of the X coordinate;
A shooting game processing program for causing a computer to execute
The mode determination process is a value obtained by dividing the absolute value of the difference between the X coordinate of the current position of the own aircraft and the X coordinate of the current position of the enemy aircraft by the maximum movement speed in the X axis direction of the own aircraft (hereinafter referred to as A value). And the absolute value of the difference between the Y coordinate of the current position of the own aircraft and the Y coordinate of the current position of the enemy aircraft, and the maximum movement speed of the enemy aircraft in the Y axis direction and the Y axis direction of the own aircraft. The value divided by the absolute value of the difference from the maximum movement speed (hereinafter referred to as B value) is obtained, and the A value and B value are compared. If the B value is greater, the enemy aircraft It is determined that the enemy aircraft is not shot down by the own aircraft when it is determined that the enemy aircraft is shot down and the A value is larger.
In the enemy aircraft speed determination process, if it is determined in the mode determination process that the enemy aircraft is shot down by the own aircraft, an enemy in a direction perpendicular to the direction in which the own aircraft is not present. If the aircraft's movement speed is set to 0 or higher and it is determined that the enemy aircraft is not shot down by the own aircraft, the movement speed of the enemy aircraft in the direction in which the aircraft is in a direction perpendicular to the above direction is set to 0 or higher. Including the process of
The direction in which the aircraft fires the attack bullet is the Y axis, the direction perpendicular to the direction in which the aircraft fires the attack bullet is the X axis,
The enemy aircraft speed determination process
(1) It is determined that the enemy aircraft is shot down by the own aircraft in the mode determination process, and the X coordinate of the current position of the enemy aircraft is between the minimum value and the maximum value of the X coordinate in the position determination process. If it is determined that the enemy aircraft does not move in the direction perpendicular to the above direction,
(2) It is determined that the enemy aircraft is shot down by the own aircraft in the mode determination process, and the X coordinate of the current position of the enemy aircraft is between the minimum value and the maximum value of the X coordinate in the position determination process. If it is determined that the enemy aircraft is moving in a direction perpendicular to the above direction and where the aircraft is not present,
A shooting game processing program characterized by comprising:
請求項15記載のシューティングゲーム処理プログラムを記録したコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium on which the shooting game processing program according to claim 15 is recorded. 請求項1に記載のシューティングゲーム処理方法において、更に、  The shooting game processing method according to claim 1, further comprising:
上記コンピュータは、行動単位時間設定手段を備え、  The computer includes action unit time setting means,
上記行動単位時間設定手段が、自機の現在位置と敵機の現在位置の距離を計算し、自機と敵機の距離が長いほど上記自機移動パターン生成過程における行動単位時間Tを長く設定する行動単位時間設定過程を有する、  The action unit time setting means calculates the distance between the current position of the own aircraft and the current position of the enemy aircraft, and the longer the distance between the own aircraft and the enemy aircraft, the longer the action unit time T in the process of generating the own aircraft movement pattern. A behavior unit time setting process to
ことを特徴とするシューティングゲーム処理方法。  A method for processing a shooting game.
JP2006166301A 2006-06-15 2006-06-15 Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof Active JP4976754B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006166301A JP4976754B2 (en) 2006-06-15 2006-06-15 Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006166301A JP4976754B2 (en) 2006-06-15 2006-06-15 Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof

Publications (2)

Publication Number Publication Date
JP2007330535A JP2007330535A (en) 2007-12-27
JP4976754B2 true JP4976754B2 (en) 2012-07-18

Family

ID=38930561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006166301A Active JP4976754B2 (en) 2006-06-15 2006-06-15 Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof

Country Status (1)

Country Link
JP (1) JP4976754B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6441447B2 (en) * 2017-12-14 2018-12-19 株式会社バンダイナムコエンターテインメント Programs and computer systems

Also Published As

Publication number Publication date
JP2007330535A (en) 2007-12-27

Similar Documents

Publication Publication Date Title
JP7714862B2 (en) Virtual object control method, apparatus, device, and computer program
JP7604748B2 (en) Virtual object control method, device, terminal and computer program
US20150231509A1 (en) System, Method, and Apparatus for Smart Targeting
JP7553178B2 (en) Method, apparatus, device and computer program for displaying target marks
US20230330530A1 (en) Prop control method and apparatus in virtual scene, device, and storage medium
JP7648284B2 (en) VIRTUAL OBJECT CONTROL METHOD, VIRTUAL OBJECT CONTROL DEVICE, COMPUTER DEVICE, AND COMPUTER PROGRAM
US20230078592A1 (en) Ability casting method and apparatus for virtual object, device, medium and program product
JP6193586B2 (en) Program, system, and method
JP7170397B2 (en) Program, image processing method, and image processing apparatus
Hagelbäck Hybrid pathfinding in StarCraft
JP2023541697A (en) Position acquisition method, device, electronic device, storage medium and computer program in virtual scene
Michalski et al. Smaclite: A lightweight environment for multi-agent reinforcement learning
JP2023548802A (en) Stage screen display method, device, and equipment
CN111202983A (en) Method, device, equipment and storage medium for using props in virtual environment
JP4976754B2 (en) Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof
CN117298580A (en) Virtual object interaction method, device, equipment, medium and program product
JP4804230B2 (en) Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof
JP4996275B2 (en) Difficulty determination method, device, program
JP4804224B2 (en) Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof
CN114210062A (en) Using method, device, terminal, storage medium and program product of virtual prop
Williamson et al. Heatmap Weighted A* Algorithm for NPC Pathfinding and Graph Switching
CN118022330A (en) Virtual object interactive method, device, equipment, medium and program product
CN116116001B (en) Virtual object control method and device, terminal equipment and storage medium
JP4804240B2 (en) Enemy aircraft attack control method of shooting game, apparatus thereof, program thereof, and recording medium thereof
Tian Artificial Intelligent Player for Bullet Hell Games Based on Deep Q-Networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110506

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110818

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110905

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120403

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120413

R150 Certificate of patent or registration of utility model

Ref document number: 4976754

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150420

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350