🤖 2Dグリッドベース移動
はじめに このチュートリアルでは Godot で 2D ゲームにおける「グリッドベース移動」を実装してみます。できるだけシンプルに。 そもそもグリッドベース移動って何なん?という方もいらっしゃるかと。グリッドベース移動とは、グリッド(格子状の線)で等間隔に区分されたゲームの画面上をキャラクターなどのオブジェクトが 1 グリッド(1 マス)ずつ移動する動きのことです。 少し昔のゲームを例に...
はじめに このチュートリアルでは Godot で 2D ゲームにおける「グリッドベース移動」を実装してみます。できるだけシンプルに。 そもそもグリッドベース移動って何なん?という方もいらっしゃるかと。グリッドベース移動とは、グリッド(格子状の線)で等間隔に区分されたゲームの画面上をキャラクターなどのオブジェクトが 1 グリッド(1 マス)ずつ移動する動きのことです。 少し昔のゲームを例に...
はじめに Godot 4.3 から、従来使われてきた TileMap クラスが Deprecated(今後もうアップデートされないってこと)になって、その代わりに TileMapLayer クラスが新たに追加されました。ということで、TileMapLayer で実際にタイルマップを作ってみたいと思います。 記事作成当時の筆者の環境 Godot のバージョン: 4.3 コンピュータのモデル: MacBook Air M1, 2020 OS: macOS 14.6.1 画面の大きさを設定する 今回は 16 x 16 px のタ...
今回のテーマは 2D ゲームのアニメーションステートマシンの実装だ。ステートとは「状態」のことで、ステートマシンというのは、キャラクターのある状態からある状態への遷移を制御する仕組みのことだ。 ある状態からは限られた状態にしか遷移できなかったり、状態によって今のアニメーションが終了してから次の状態に遷移させるのか、ただちに遷移させるのかの違いがある。例えば、「idl...
この記事では、2Dゲームにおけるシンプルな近接攻撃の当たり判定を実装する方法を紹介する。 一般的によく使われる手法で、攻撃するオブジェクト(プレイヤーキャラクターなど)に攻撃時のみ有効になる衝突形状(Hit Box という)を用意し、攻撃を受けるオブジェクト(敵キャラクターや破壊できる樽や木箱、草など)には攻撃を受ける範囲となる衝突形状(Hurt Box という)を用意し、攻...
この記事では、AStar というアルゴリズムを利用して、2D ゲームにおけるグリッドベースの経路探索の実装方法について紹介する。なお、グリッドベースではない 2D 経路探索については、「Godot で作る 2D 経路探索 」の記事で紹介しているので、作りたいゲームに併せて記事を選んでいただければ幸いだ。 このチュートリアルで最後にできあがるプロジェクトのファイルは GitHubリポ...
このチュートリアルでは 2D ゲームにおける経路探索 (Path Finding) について紹介する。経路探索というのは、例えばあるオブジェクトをある目的地へ移動させる際に、オブジェクトから目的地までの移動可能な最短経路を割り出す機能だ。なお、AStar というアルゴリズムを利用したグリッドベースの経路探索については「Godot で作る 2D グリッドベース経路探索 」の記事で紹介している。 Godot 3.4 までは経...
今回の記事では、2Dゲームでの画面揺れの実装方法を紹介する。ゲームに絶対に必要な要素ではないが、うまく使えばプレイヤーのゲーム体験をよりインタラクティブにでき、ユーザエクスペリエンスに直接影響を与えることができる。例えば、銃を撃った時や敵からダメージを受けた時、高いところから落ちた時など、使えそうな場面は山ほどある。ちなみに、このような必要ではないものの追加...
今回のチュートリアルでは、進化形マッチ3パズルゲームと銘打って、盤面上で1つのピースを一定時間(数秒間)自由に動かして同じ色のピースを3つ以上並べて消すタイプのパズルゲームをを作っていく。 これはモバイルゲームで人気を博した「パズル&ドラゴンズ(Puzzle & Dragons)/ 通称パズドラ」のようなパズルをイメージしていただくとわかりやすいだろう。 ただ...
今回のチュートリアルではマッチ3パズルゲームを作っていく。マッチ3(スリー)パズルゲームとは、盤面のグリッドに沿って均一に並べられた複数のカラフルなピースのうちの1つを、1マス動かして同じ色のピースを3つ以上並べて消すタイプのパズルゲームの総称だ。うまく動かすと、一回の操作で連続的に複数のピースを消すことができ、なんとも気持ちの良いプレイ感覚を味わうことがで...
このチュートリアルでは、スマホゲームで大人気の ディズニーツムツムのような同じ色のドロップをなぞってつなげて消すタイプのゲームの作り方を説明する。ちなみにディズニーツムツムを知らない方は以下のリンク先を一度ご覧いただきたい。 LINE:ディズニー ツムツム Other Tutorials 「パズル&ドラゴンズ」のようなゲームを作ってみたい場合: Godot で作る進化形マッチ 3 パズルゲーム 「キャンディーク...
このチュートリアルでは、2Dトップダウンシューティングにおける「ホーミングミサイル」を作っていく。ホーミングミサイルというのは、ターゲットを追跡するミサイルのことだ。 Environment このチュートリアルは以下の環境で作成しました。 ・Godot のバージョン: 3.4.2 ・コンピュータのOS: macOS 11.6.5 このチュートリアルでは、ホーミングミサイルの作成にフォーカスするため、それ以外の部分は事前に...
このチュートリアルでは、2Dトップダウンシューティングゲームの「弾幕」を作っていく。弾幕というのは、敵キャラクターから放たれる大量の弾(またはそれに類似する遠距離攻撃)のことで、弾が幕のように隙間なく飛んでくるので「弾幕」という。プレイヤーはその隙間を縫うようにうまくかわしながら、敵キャラクターを射撃して倒していくゲームを弾幕シューティングゲームという。単に...
このチュートリアルでは、2Dトップダウンシューティングゲーム(見下ろし型シューティングゲーム)で一般的によく登場する銃を4種類作っていく。具体的には以下の通りだ。 ハンドガン ショットガン マシンガン レーザーガン Environment このチュートリアルは以下の環境で作成しました。 ・Godot のバージョン: 3.4.2 ・コンピュータのOS: macOS 11.6.5 このチュートリアルでは、銃の作成にフォーカスするため...
第15回目の今回はいよいよこのチュートリアルのシリーズの最終回だ。最終回はプラットフォーマーのレベルデザインに比較的よく使われるいくつかの仕掛けを追加していく。具体的には以下にリストアップしたトラップやギミックの類だ。 動く床 落ちる床 高く飛べる床 火が出る装置 飛んでくる鉄球 今回は Part 1 でインポート済みのアセットからたくさんのスプライトシートを利用する。例によって、...
第14回目の今回は、プレイヤーキャラクターのアクションをアップデートしていく。具体的には以下にリストアップしたジャンプとダッシュの動きや演出を追加していく。 落下時のアニメーション 壁ジャンプ ダブルジャンプ(2段ジャンプ) 走っている時の砂埃 ダッシュ時のゴーストエフェクト(残像効果) おまけのような内容だが、作って実際にプレイすると非常に楽しいところなので、是非やっ...
第13回目の今回は、ゲームにサウンドを追加する。ゲームに使われるサウンドというのは、大きく分けて2種類ある。バックグラウンドミュージック(BGM)と効果音(サウンドエフェクト:SFX)だ。Godot Engine ではどちらも追加する方法に大きな違いはない。素材さえ用意すれば、追加するのは比較的簡単だ。特定のタイミングでサウンドを鳴らしたい時、例えば、プレイヤーキャラクタ...
第12回目の今回は、ゲームプレイ画面に光と影の演出、というテーマでやっていく。前回に引き続き、ビジュアル面でのゲームのアップデートだ。結果が目に見えてわかりやすいのと、今回もスクリプト不要の内容なので、気楽にやっていこう。 Memo: 過去のシリーズをまだご覧になっていない方は、そちらを先にご覧いただくことをおすすめします。 Godot で作るプラットフォーマー 公式オンライ...
第11回目の今回は、ゲームプレイ画面の背景を作る。 背景と言っても、ただテクスチャ画像を一枚ペタリと貼り付けて終わりだと面白くない。それに、カメラがどれだけ動いても背景が途切れなく繋がっている状態を作るには、ちょっとした工夫(というか Godot の機能)が必要だ。 また、プラットフォーマーのゲームでは、大抵、背景がいくつかのレイヤーに別れており、プレイヤー(カメラ)が動い...
第10回目の今回は、ゲーム開始時に表示されるスタート画面を作る。タイトル画面、スタートメニューとも言う。 それだけだと、前回と比べて簡単すぎるので、ゲーム開始時にプレイヤーキャラクターを選択できる仕組みも実装する。画面遷移のイメージは以下の通りだ。 まずゲームを始めるとスタート画面が表示される。 スタートボタンを押すとプレイヤーキャラクター選択画面に遷移する。 プレ...
第9回目の今回は、ゲームオーバーの仕組みを実装していく。 世に出ているプラットフォーマーゲームにはほぼ確実にゲームオーバーの仕組みが存在する。ゲームオーバーになるかもしれない緊張感がなければプラットフォーマーの面白さは激減する。だから、ゲームオーバーの実装は必要不可欠だ。さらに、ゲームオーバーの条件設定もまたゲームの難易度を左右するため非常に重要だ。 一般的にゲ...