数学

【Godot】弾幕2DSTGの基本

今回はGodot Engineで弾幕2DSTGを作るときに知っておきたい基本をまとめておきます。 数学 ベクトル これは2Dゲームを作るときに共通することですが、座標や速度などはベクトルを使います。 ベクトルとは「向きと大きさの2つを同時に持つ量」のことで、物体…

【Godot】2つの角度差の最短を求める

2Dゲームを作るときにたまに必要になるのですが、計算方法をすぐに忘れてしまうので、個人的なメモとして記事にしました。 具体的には、キャラクターが「左」を向いているとします。そして「上」に敵がいるとします。 そうした場合に敵の方向に回転するとき…

FPSカメラの作り方

フィールドを歩き回るような3Dのゲームを作る際に、主観視点で周りをグルグル見渡せるカメラがあると便利です。ちょうどFPSゲームで使われるカメラです。この記事では、そういったFPSカメラの作り方を説明したいと思います。 作り方概要 FPSカメラを作るには…

穴掘り法によるダンジョンの自動生成

はじめに ダンジョンの自動生成では、最もお手軽と思われる穴掘り法を解説します。このアルゴリズムは、迷路ゲームや Roguelike (ローグライクゲーム) 、 Dungeon crawler (3DダンジョンRPG) のダンジョンとして利用できる仕組みなのではないかと思います。 …

2D矩形マップとの当たり判定

この記事では、矩形状に区切られたマップとの衝突・応答判定を行う方法の解説します。 2D矩形マップとは? 矩形マップは、縦軸・横軸からなる2次元の表です。なので、たいてい矩形マップを読み込むと、2次元の配列になり、以下のように「座標」をキーに、…

イージング関数を使ったUI挙動の作り方

イージング関数を使ったUIの動きの実装例を紹介しています

多関節の作り方

多関節を実現する方法は、 CCD法 インバースキネマティクス(IK) などの方法があるみたいです。 シューティングゲームアルゴリズムマニアックス(Cmagazine)にIKでの実装方法がのっていたので、その実装方法の紹介となります。 シューティングゲームアルゴリズ…

曲線の作り方

曲線を使うメリット 例えば、放物線を描いて動く敵を作るとします。その場合に、 x 0 1 2 3 4 5 6 7 8 y 16 9 4 1 0 1 4 9 16 という座標のパターンを持つとします。 そのとき、この敵の移動を直接数値で保持すると以下のようなテーブルが必要となります。 x…

重み付けの確率計算アルゴリズム

今回は重み付けの確率計算の方法について解説します。 確率の計算方法 重み付けの説明の前に、基本的な確率計算の方法について確認しておきます。 まずは、サイコロで1の目が出る確率の求め方です。 6面体のサイコロは6通りのパターンがあり、それぞれが均等…

ゲームプログラムでの「sin()」の活用法

今回はゲームプログラムでの「sin()」の活用法について解説します。 sin()とは sin()とは正弦関数でサインカーブとも呼ばれ、 y=sinx という式で表現されます。 この関数は xの値が2πごとに、yを1とマイナス1との間を常に動かすという特徴を持っています。 …