【Godot】Assset Libraryにアセットをリリースしてみた話

Godot Advent Calendar 2023の15日目の記事です。 リリースしたもの FloatableBodyという水中を物体がそれっぽく浮き上がる簡易的な物理システムです。 MITライセンスで無料です! 3D 2D Asset Libraryのリンク godotengine.org 日本語ドキュメント github.c…

【Godot】Godot 4.2のコンピュートシェーダで遊ぼう

Godot Advent Calendar 2023の6日目の記事です。 Godot Engine 4.2がリリースされましたね。めでたい! 2023年は4.0から始まり、3回の大型アップデートがありました。 godotengine.org さて4.2アップデート内容に気になる項目はありましたか? 個人的には沢…

【Godot】EffekseerプラグインをGodot4に対応しました【Effekseer】

はじめに リリース自体は結構前に行っていたのですが、いろいろ忙しくて告知をしていないことに気づきまして…。 改めて告知したいと思います。 Effekseerって? キラキラしたイケてるエフェクトを割と簡単に作れるツールです。 https://effekseer.github.io …

【Godot】Godot4のGDScriptはどれくらい速くなったのか?

Godot Engine Advent Calendar 2022 7日目の記事になります。 結論 Godot4はGodot3と比較して、GDScriptはだいぶ速くなりました。 解説 参考URL だいたいこちらに書かれています。 https://godotengine.org/article/gdscript-progress-report-typed-instruct…

【Godot】エンジンをデバッグビルドしてみよう

Godot Engine Advent Calendar 2022 3日目の記事になります。 はじめに 環境準備 Gitのインストール Visual Studioのインストール Pythonのインストール Sconsのインストール Godotのビルド Godot3編 ソースコードを入手する エンジンをデバッグビルドする G…

【Godot】ノイズテクスチャから毒の沼を作る

やること こちらの動画のテクニックをGodotで実装したいと思います。 Illegal Noise Texture Hacks #gamedev #shader #VFX pic.twitter.com/398aioENGr— Sam @13 (@Sam_Makes_Games) 2020年9月26日 手順 ノイズテクスチャを用意 動画ではPhotoshopの雲模様フ…

【Godot】Editor拡張する (Inspector Plugin編)

みなさんEditor拡張沼に浸かっていますか? ゲームエンジンと言ったらEditor拡張ですよね。 Godot Engineも例に漏れず、強力なEditor拡張が行えます。 ↓こんなこともできました。 GodotのEditor拡張。InspectorPluginでEffekseerのプレビューをインスペクタ…

C/C++のMessagePackライブラリMPackを使う

C++

はじめに MessagePackはオブジェクトシリアライズ用の軽量なバイナリフォーマットです。 テキストフォーマットであるJSONの代わりに用いられることが多く、ソケット通信やファイル記録など使用することができます。 C/C++向けのMessagePackライブラリはいく…

【Godot】Godot3向けEffekseerのプラグインを作りました【Effekseer】

はじめに Godot Engineで使い慣れたエフェクト作成ツールであるEffekseerが使いたくて、Godot上でEffekseerで作成したエフェクトの再生を行うためのプラグインを開発しました。 Effekseerって? キラキラしたイケてるエフェクトを割と簡単に作れるツールです…

【Godot】エラー "Condition "!script_data" is true." を黙らせる

発生した現象 Godot EngineでC++等使ってNativeScriptを実装してゲーム作りをしていると、こんなエラーを見ることがあります。 実行して戻ってくると。 エラーが2倍に増える。 めっちゃウザい! 発生条件 GDNativeのDLLが2つ以上ある Godotエディタのフォー…

【Godot】ディザ抜きシェーダで半透明を表現する

ディザ抜きと呼ばれる手法を使うと半透明の表現ができます。 半透明といえばアルファブレンドですが、最近のゲームではアルファブレンドの代わりとしてディザ抜きがよく用いられています。 ディザ抜き ディザ抜きはアルファブレンドに比べて若干ジャギジャギ…

【Godot】HTTPで画像を取得してテクスチャとして使う

はじめに ネット上の画像をゲーム内で使いたいみたいな状況があるかもしれません (?) Unityだと簡単にできるんですが、Godotでは出来るか気になったので実験してみました。 今回はこの3つのクラスを使用します。 HTTPRequest Image ImageTexture 手順 ノード…

【WebGL】GPUパーティクル、GPUトレイルの実装

概要 8月に勢いで実装したWebGL2で動作するモノです。 デモ https://t.co/kIHcmrcC5BWebGL2のGPUパーティクルのトレイルっぽいやつ pic.twitter.com/O9BLm5jH2b— うえした (@ueshita) 2020年8月8日 リポジトリ github.com 解説 TransformFeedbackは使用せず…

【Godot】トランジション(画面切り替え)をシェーダで作る

はじめに ゲームの画面切り替えの際、フェードインやフェードアウトすることがあります。 こうした画面切り替えの演出をトランジションエフェクトといいます。 今回はちょっと凝った切り替えもやってみようと思います。 例えばこんなトランジション。ノベル…

【Godot】キーコンフィグを作る

はじめに PC向けにゲームを作ると様々な入力デバイスがあることに気づきます。 Godotではプロジェクト設定からインプットマップを設定できますね。 複数のデバイスを1つのactionに割り当てることができます。 しかし、キーアサインを好みに設定したいプレイ…

【Godot】GDScriptのエラー: The class "ClassName" couldn't be fully loaded (script error or cyclic dependency). について

概要 GDScriptを書いているとよく見る「The class "ClassName" couldn't be fully loaded (script error or cyclic dependency).」について解説します。 エラーを調べる GDScriptでスクリプトから別のスクリプト(のクラス)を参照するときに、発生することが…

【Godot】TileMapのコリジョンからタイル情報を検出する

やりたいこと GodotのTileMapで横スクロールな2Dステージを作ったとします。 そこでキャラが乗っているタイルの情報が欲しくなりました。 ダメージ床だったらダメージ処理したり、衝突したタイルを破壊したりできます。 タイル情報を検出する方法 TileSetの…

【Godot】Visual StudioでC++のプラグインを作る

Godot EngineはGDScript以外にもC++で開発することができます。 仕組みをGDNativeといい、Godotのエンジン機能にアクセスすることができます。 一応公式ではGDNativeのビルドツールにSConsを推奨していますが、Visual StudioでC++プラグイン開発したいと思う…

【Godot】Node2DのGizmoを描画する

はじめに Node2DにGizmoを描画したくて色々ハマったので情報をまとめます。 動作環境 Godot Engine 3.2.1 メモ SpatialGizmoは2Dでは動かない SpatialGizmo https://docs.godotengine.org/ja/stable/tutorials/plugins/editor/spatial_gizmos.html 最初これ…