2022-01-01から1ヶ月間の記事一覧
今回はエディタ拡張(Godot Engineのエディタに直接機能を追加)に簡易CSVエディタを追加する方法について解説します。 エディタ拡張にCSVエディタを実装する方法 プラグインを新規作成する プラグインを新規作成するには、メニューから「プロジェクト > プ…
Vector2 でよく使いそうな関数をまとめてみました。 Vector2でよく使いそうな関数 float angle(): ベクトルがなす弧度(ラジアン)を求める 得られる値はラジアンなので、角度が欲しい場合は rad2deg()関数で変換します。 float angle_to(Vector2 to): 2つのベ…
ホーミングレーザーっぽい挙動の実装サンプルを作成しましたので、プロジェクトファイルを公開しておきます 更新履歴 ・2022.12.3: 角度差を求める計算が間違っていたので修正しました TestHorming3.zip 以下、簡単な解説を行います。 ホーミングレーザー解…
この記事ではラジオボタンを作成する方法を紹介します。 ラジオボタンの作り方 素材のダウンロード 今回使用する素材を以下からダウンロードします。 準備中... ダウンロードしたら、フォルダに含まれるデータをプロジェクトに追加します。 各データの説明は…
ゲーム開発を始める前に知っておくべきこと(Making Your First Game: Basics - How To Start Your Game Development)という動画があります。 これは、ゲーム開発の初心者が最初に作るゲームは、どのような方針で作っていくのが良いかのアドバイスをまとめた…
この記事では実行中のゲームをPNG画像で保存する方法を解説します。 スクリーンショットをPNG画像で保存する方法 サンプルとして以下のようなオブジェクトが動き回るコードを書きます。 そのシーンに以下のコードを記述します。 extends Node2D # ビューポー…
公式のサンプルですが、使い勝手が良さそうだったので紹介です。 shader_type canvas_item; render_mode blend_premul_alpha; // This shader only works properly with premultiplied alpha blend mode. // オーラの幅 uniform float aura_width = 4.0; // …
今回はマス目を移動してすべてのマスを一筆書きで移動するゲームの作り方を紹介します。 とてもシンプルなものでゲームと言えるか微妙なところですが、マス目移動を行うゲームの基本になるかと思います。 一筆書きゲームの作り方 素材データ 今回使用する素…
この記事では、リソースパス(res://)とユーザーデータパス(user://)の違いについて説明をします。 リソースパスについて リソースパスとは「res://」で始まるパスです。例えば以下の用途で使用します。 シーンを preload() で読み込む 画像ファイルを load()…
今回は謎解きゲームで使いそうな数値入力UIの作成方法を解説します。 数値入力UIの作成方法 素材データのダウンロード 今回は日本語テキストを使用したいので、以下のサイトなどから日本語フォントをプロジェクトに追加しておきます。 https://fonts.google.…
この記事では、Godot Engineで標準実装されている多言語(各言語に対応する翻訳)テキストに対応する方法を説明します。 多言語対応の方法 翻訳テキストを用意する Godot Engineが標準で対応している翻訳データは「CSV」形式のファイルとなります。 例えば以…
この記事では、 Visual novel (ノベルゲーム) を作りたいけれどもシナリオがなかなか書けない…という人のために、最初のステップとしてどのようにシナリオを書いていくのが良いのかを書いていきます。 なお注意点として、ここで紹介している方法は、あくまで…
この記事では AnimationPlayerを使用したアニメーションの実装方法について紹介します 点滅アニメーションの作成 まずは頂点カラーを変えるだけの簡単なアニメーションを実装してみます。 ルートノードの作成 Node2Dを作成して名前を「Player」に変更してお…
ゲームの紹介動画を保存する方法と、それをGIF画像に変換する方法を紹介します。 動画の保存方法 QuickTime Playerの起動 QuickTime Playerを起動します。QuickTime Playerは「アプリケーション」フォルダにあります。 録画方法 メニューから、「ファイル > …
今回は残像エフェクトの作り方を解説します。 残像エフェクトの作り方 残像エフェクトの仕組み 今回紹介する残像エフェクトは、プレイヤーの移動した位置にそのフレームでの画像を残す方法となります。 そして時間経過で少しずつ透過しながら消えるようにし…
今回はモザイクシェーダーの作り方について解説します。 モザイクシェーダーの作り方 画像素材の追加 まずは以下の画像をプロジェクトに追加します。 http://syun777.sakura.ne.jp/tmp/godot-data/mosaic.zip なお上記データには「white.png」というダミーデ…
この記事ではオブジェクトの動きを一時停止する方法について解説します。 get_tree().paused で停止する方法 Godotには "get_tree().paused" というフラグに "true" を設定することで、ゲーム全体を停止させることができます。 実装方法については以下の記事…
今回は小さなゲームで物語をどのように表現するのかを考えてみました。 参考にしたのはこちらの記事です。 [GDC 2019]カジュアルなモバイルゲームで,物語をなるべく小さくプレイヤーに伝える方法とは Candy Crush シリーズで知られる、King社による講演内…
今回はマウスでオブジェクトを選択したときに表示されるツールチップの実装方法について紹介します ツールチップの実装方法 素材データ 今回使用する素材データです。 ToolTips.zip ToolTipシーンの作成 "Control" ノードをシーンとして作成し、名前を "Tool…
Android向けにビルドをしたら以下のエラーが表示されました AAPT: error: failed to read PNG signature: file does not start with PNG signature. 調べたところ、こちらの記事によると 解決策: 元ファイルを.pngにしてからアイコンを作ると解決。 error: …
今回はYSortを使用した描画順の制御について解説します。 YSortノードはGodot4.xでは削除されました Godot4.xで YSort を行いたい場合、CanvasItem にある "y_sort_enabled" を true にすることでYSortが有効となります。 bool y_sort_enabled =false void s…
この記事では、Godot Engine をソースコードからビルドする方法する方法を解説します。 ソースコードからのビルドする理由は主に以下の3つになると思います 実行ファイル化されていない最新のビルドを取得したい場合 エンジンの挙動をカスタマイズ、不具合…
ゲームデザインに関する本はいくつかありますが、そのなかでも私がオススメしたい本「ゲームメカニクス おもしろくするためのゲームデザイン 」の内容を少しだけ紹介します。 ゲームメカニクス おもしろくするためのゲームデザイン (Professional Game Devel…
この記事では、複数の背景を異なる速度で移動させることで、擬似的に奥行きを表現する「多重スクロール」の実装方法について紹介します。 多重スクロールの実装方法 素材データ 今回使用する素材データです bg_parallax-1.zip このデータには以下の2つのファ…