【Godot4.x】タイルマップの基本的な使い方

この記事ではタイルマップの基本的な使い方を解説します。 タイルマップの基本的な使い方 基本プロジェクトのダウンロード 今回使用する素材(プロジェクト)を以下からダウンロードします。 http://syun777.sakura.ne.jp/tmp/godot-data/TilemapTest.zip 素…

【Godot4.x】タブメニューUIの作り方

今回はタブメニューのUIを作成する方法について説明します。 タブメニューの作り方 メインシーンの作成 プロジェクトを作成して、Mainシーン (Node2D) を作成します。 TabContainer ノードを作成する 続けて Mainノードの下に TabContainer ノードを追加しま…

【Godot】Steam版のGodotで "Shift+Tab" を押すとSteamオーバーレイが表示されてしまう問題の対処方法

Steam版の Godot Engine を使っている方が対象の記事です。 Steam版の Godot Engine はアップデートが自動で行われて便利なのですが、「Shift+Tab」を押すと Steamオーバーレイが表示されてしまう問題があります。 「Shft+Tab」はタブのインデントを削除する…

【Godot】Godot3.5から4.0への移行メモ

2023/3/10 あたりから Steam版の Godot Engine も v4.0 にアップデートしていて「ついに移行せねば……」と思って移行したのですが、少し引っかかったところがあったので、備忘録を残しておきます。 3.5から4.0への移行メモ コンバート前の注意点 古いプロジェ…

【Godot】Nodeやスクリプトのクラスを外部から扱う場合の使い分け方法

この記事では、Nodeやスクリプトで定義したクラスの扱い方について解説します。 この記事はGodot3.xを基準に書いています Godot4.xに読み替える場合は、以下の置き換えを行います インスタンス生成の "instance()" を "instantiate()" にする "onready" を "…

ジャンプアクションゲームで動きを気持ち良くする方法

この記事ではジャンプアクションゲームで動きを気持ち良くする方法について書きます。 ジャンプアクションゲームで動きを気持ち良くする5つの方法 1. ジャンプ・着地するときにスケールを適用する キャラクターがジャンプ、または地面に着地したときにスケー…

【Godot】15パズルの実装サンプル

Godot Engine で15パズルの実装サンプルを作ったので、プロジェクトファイルと簡単な解説を書きます。 15パズルの実装サンプル プロジェクトファイル プロジェクトファイルは GitHub にアップロードしているので、以下のURLからダウンロードできます。 https…

弾を撃つゲームで見た目を良くする11の方法

今回は弾を撃つ要素があるゲームで見た目を良くする11の方法について書きます。 なお動作サンプルは以下のページから確認できます。 http://syun777.sakura.ne.jp/tmp/godot/bullet-test/ 弾を撃つゲームで見た目を良くする11の方法 1. 弾のスプライトを変更…

【Godot】XMLParserの使い方

今回は Godot Engine で XMLファイルを読み込むための XMLParser の使い方について紹介します。 XML Parser の使い方 XMLとは XMLとは以下のように <タグ名> で構成されるデータ構造のファイルです。 <player> <param name="勇者" class="hero"> <hp>123</hp> <mp>10</mp> </param> </player> JSONやConfigFileと比べるとやや冗長な記述で…

【Godot】倉庫番の実装サンプルと解説

定番パズルゲームの「倉庫番」を実装したのでサンプルコードとその解説をします。 倉庫番の実装サンプル プロジェクトファイル プロジェクトファイルは GitHub の以下のページからダウンロードできます。 https://github.com/syun77/gd_sokoban なお使用して…

HTML5出力したゲームを itch.io へアップロードする方法

今回は itch.io へのゲームのアップロード方法について説明します。 なお、アカウントは作成済みとして説明をしていきます。 itch.io へのゲームアップロード方法 itch.io とは itch.io とはインディーゲームを購入して遊んだり販売したりできるサイトで、主…

【Godot】文字列操作の便利関数まとめ

今回は文字列 (String) に関する便利そうな関数をまとめてみました。 Stringの関数 基本情報 length(): 文字列の長さを求める print("abc".length()) # 3文字 empty(): 空文字かどうか if("".empty()): print("空文字チェック") count(): 指定の文字の出現回…

【Godot】文字列を式として評価する方法

この記事では文字列表現を式として評価する(演算結果を求める)方法について書きます。 文字列を式として評価する方法 Expressionクラスの基本的な使い方 Godot Engine (GDScript) には、"Expression" というモジュールが用意されているのでそれを使うと文…

グリッド制のゲームでよく使う座標系について

今回は Grid-based (グリッド制) のゲームを作るときによく使われる座標系とその変換方法について書きます。 グリッド制のゲームでよく使う座標系について グリッド制のゲームとは グリッド制は、パズルゲームやターン制ストラテジー、昔ながらのターン制ロ…

【Godot】警告「Integer division, decimal part will be discarded」を消す方法

この記事では、警告「Integer division, decimal part will be discarded. (整数除算、小数部は切り捨てる)」を消す方法について紹介します。 警告「Integer division, decimal part will be discarded」を消す方法 整数除算とは GDScriptでは、整数同士の除…

【Godot】print関数まとめ

Godot Engine で用意されている print関数をまとめた記事となります。 print関数のまとめ print関数とは print関数とは、主にデバッグ用として使う機能です。例えば print() を呼び出すとエディタの下部に print() の内容が出力されます。 もし表示されない…

【Godot】ラン&ジャンプゲームのチュートリアル

この記事はGodot Engine Advent Celendar 2022 21日目の記事となります。 この記事では、Godot Engine を使用した Jump ’n’ run game (ラン&ジャンプゲーム) の作り方を解説します。 ラン&ジャンプゲームの作り方 ラン&ジャンプゲームとは ラン&ジャンプ…

【Godot】Stomping Shooterで使った技術と得られた知見まとめ

Godot Engine Advent Celendar 2022 15日目 この記事はGodot Engine Advent Celendar 2022 15日目の記事となります。 Godot Engineでのゲームの試作として上に登るアクションゲームを作ったので、得られた知見と使った技術をまとめてみました。 ゲームの情報…

【Godot】マッチ3ゲームの実装サンプルと解説

この記事はGodot Engine Advent Celendar 2022 14日目の記事となります。 Godot Engine で Match-three game (マッチ3ゲーム) のサンプルを作成したので紹介です。 プロジェクトファイルは GitHub からダウンロードできます。 https://github.com/syun77/gd_…

【Godot】吉里吉里のKAGっぽいスクリプトを自作するヒント

この記事はGodot Engine Advent Celendar 2022 9日目の記事となります。 今回はノベルゲームエンジンである「吉里吉里」のKAGスクリプトを自作するヒントについて書いていきます。 Godot Engineには「Dialogic」という強力なプラグインがあるので自作する必…

【2022年】ゲーム開発で使っている環境・ツールの紹介

2022.12.7現在、私が使っているゲーム開発環境を紹介します。 PC PCは M1 Mac mini (2020) と Macbook (2016) を使っています。ただ macOSは、ゲーム開発に関連するツールが「Windowsでしか使えない」「対応していない」「Windowsと比べて使い勝手が悪い」な…

【Godot】Godot Engine の Tips (逆引き)

この記事はGodot Engine Advent Celendar 2022 2日目の記事となります。 グラフィックス 矩形 (四角形) を描画したい 画像リソースを用意せずに、ひとまず四角形を表示したい場合、ColorRect ノードを追加すると四角形を表示できます。 ColorRectノードにつ…

【Godot】HTML5へのエクスポート手順

この記事では HTML5 (Web版) へのエクスポート手順について説明をします。 HTML5へのエクスポート手順 エクスポート設定の追加 メニューから「プロジェクト > エクスポート」を選びます。 エクスポート設定から「追加 > HTML5」を選びます。 エクスポートテ…

【Godot】KinematicBody2Dの is_on_floor() と One wayコリジョンの使い方

この記事では KinemetaicBody2Dの is_on_floor() の使い方と、One way 床 (一方通行床) の使い方を解説します。 KinematicBody2D.is_on_floor() の使い方 KinematicBody2Dについて KinematicBody2Dとは、物理エンジンで動作するノードでありながら、移動パラ…

【Godot】スロー再生する方法

今回はスロー再生(ゲームスピードをゆっくりにする)方法を紹介します。 _process() の delta の値を乗算する 特定のオブジェクトのみスローにする場合はこの方法を使います。更新関数である _process() の引数 "delta" に 1.0 以下の係数を乗算することで…

ゲームジャンルを組み合わせる方法

「How To Combine Video Game Genres (ゲームジャンルをどうやって組み合わせるのか?)」という動画が参考になったので、個人的にまとめてみました。 ゲームジャンルを組み合わせる方法 ジャンルを組み合わせると新しいゲームが生まれる? 「アイデアの作り…

ロック&キーパズルの作り方

今回はWhat Is the Lock and Key Design Pattern?という記事を個人的にまとめたものとなります。 ロック&キーパズルの使い方 ロック&キーパズルとは ロック&キーパズルとは、プレイヤーの進行を妨げる「ロック」とそれを解除する「キー」の組み合わせで構…

ゲームデザインにおける「フィードバックループ」の使い方

この記事では、ゲームデザインにおける「フィードバックループ」について説明をします。 フィードバックループとは Feedback loops (フィードバックループ) というのは、ある行動に対して得られた結果を入力として繰り返し再利用することです。 まず、入出力…

知育ゲームZoombinisの紹介と解説

Zoombinis (ズンビーニズ) とは、教育を目的としたパズルゲームで、1996年に発売されたゲームです。 とても優れた設計を持つパズルゲームであるのにも関わらず、日本では知名度が低い(ような気がする)ので、今回記事にしてみました。 ちなみに過去作が様々…

ターン制バトルで起こりがちな「3つの問題点」の解決方法

ターン制RPGについて調べていたら、 How Do You Improve Turn Based Combat? : Turn-based (ターン制) のバトルをどのように改善するのか? という面白い動画があったので、その内容を個人的にまとめてみました。 ターン制バトルの問題となるポイントと改善…