6/12/2025

Post

Godot エンジンで右に歩いてスライムに出会うまで

概要

Godot Engine を使用して、右キーを押すとキャラが右に歩く / スライムにぶつかると戦闘画面に遷移する という簡単なゲーム(ゲームと言うか、デモ?)を作成しました。

キー入力が必要なので、スマホ対応は NG です。

https://mi-ki-ri.github.io/Walking_and_Meet_Slime/ こちらのリンクからプレイできるので、よかったら試してみてください。

作業内容

右キーを押して歩くフィールド画面、そしてスライムにぶつかると出てくる戦闘画面の 2 種類を使い分けるのが主眼です。

メインのスクリプトファイル( gameManager.gd )のループは一つ( _process(delta)関数 )で、フィールド画面と戦闘画面は phase という変数で切り替えています。

イメージ的には、

...
func _ready():
  var phase = "field"

func _process(delta):
  if phase == "field":
    # フィールド画面の処理
    fieldPhase.update(delta)
  elif phase == "battle":
    # 戦闘画面の処理
    battlePhase.update(delta)
  else:
    ...

こんな感じです。そして各フェイズと phase 変数はグローバルで持ちたかったので、 Global.gd というスクリプトを用意し、Godot のプロジェクト設定 -> グローバル から読み込みました。

各フェイズ自体は gameManager.gd の中で定義しています。おかげでファイルが長くなってしまいました。

...

class fieldPhase:
  func update(delta):
    # 更新処理、キー入力処理
    draw()

  func draw():
    # 描画処理
    for player in players:
      player.object.position.x = player.elapsed_road * 32 + player.position_x + player.position_x_offset
    pass
...
class battlePhase:
  func update(delta):
    # 更新処理、バトルのロジック
    draw()

  func draw():
    # 描画処理

こんな感じです。

そして素材! たったこれだけの素材を用意するのが結構大変でした。

これからはどんどん使いまわして、制作スピードを上げていきたいです。

まとめ

今はまだデモをたくさん作る段階だと思っているので、これからもどんどん使いまわしていきたいです。

今回フィールドがメインでバトルは省略されているので、次回は逆にバトルをメインにしたい。

ゼラチナ(スライムの名前)はこれからも何度も出てくる(そして倒される)予定です。

もう一度リンク

https://mi-ki-ri.github.io/Walking_and_Meet_Slime/ こちらのリンクからプレイできます。

#制作 #godot #gamedev