【軽量】godot engine【無料】 part5

1名前は開発中のものです。
垢版 |
2025/10/16(木) 19:43:11.63ID:qiBhYhwj
Godotエンジンは機能豊富な、クロスプラットフォームのゲームエンジンであり、2D・3Dゲームを単一のインターフェイスで製作することができます。
基本的なツールは一通り用意され、ユーザーはプログラムの再発明をすることなくゲーム製作に集中できます。
製作したゲームは主要なデスクトップ環境(Linux, MacOS, Windows)や、モバイル(Android, iOS)、Webベース(HTML5)環境にワンクリックで書き出せます。

GodotはMITライセンスの下、完全に自由でオープンソースです。
利用に関して特に制限はありませんし、利用料を請求することもありません。
エンジンのコードの最後の一行まで、ゲームは製作したユーザーのものです。
Godotは自主的なコミュニティによって開発されており、エンジンを期待にかなうものにするため、ユーザーの方々も自由に参加できます。
Godotは非営利団体Software Freedom Conservancyによって支援されております。

■公式サイト
https://godotengine.org/
■コミュニティ
https://godotengine.org/community/
■ドキュメント
https://docs.godotengine.org/ja/4.x/
★次スレは>>950がたててください
前スレ
【軽量】godot engine【無料】 part3
https://mevius.5ch.net/test/read.cgi/gamedev/1708131114/
【軽量】godot engine【無料】 part4
https://mevius.5ch.net/test/read.cgi/gamedev/1722379579/
2025/10/25(土) 12:32:15.90ID:NnKvsApL
生存確認?
2025/10/25(土) 12:32:54.29ID:NnKvsApL
お、落ちんくなったんかな。前スレ消化しーましょ
4名前は開発中のものです。
垢版 |
2025/10/25(土) 12:35:37.14ID:NnKvsApL
age忘れちゃった
2025/10/25(土) 15:09:38.71ID:I6KVrXlp
>>1
スレ進行遅いからもし次スレ立つなら>>980が立てるにして良いじゃない?
6名前は開発中のものです。
垢版 |
2025/10/25(土) 15:18:45.25ID:NnKvsApL
ん、同意。次スレ立てる人にお任せ
7名前は開発中のものです。
垢版 |
2025/10/31(金) 20:34:25.77ID:eonHQS1X
https://store.steampowered.com/app/1693260/_/?l=japanese
こういう倉庫番なんだが倉庫番って配列に数字いれてステージ作るやん
視覚的にステージ作りたいんだが、タイルに番号つける→配列に変換
という作業するしかないのか?
2025/10/31(金) 21:44:02.46ID:xHyuqnI9
TileMapLayerを使う、エクセルの表から変換する、画像から変換する、テキストから変換する
パッと思いつくのでこんな所、配列に変換する視覚的な元情報は好きに選べるぞ
なんだったら配列その物も視覚的に書けるだろ
9名前は開発中のものです。
垢版 |
2025/11/01(土) 04:56:22.44ID:iF+OSGF+
カスタムレイヤで番号つけられるね
そういや
10名前は開発中のものです。
垢版 |
2025/11/01(土) 17:40:34.20ID:iF+OSGF+
少し変わったコンセプト考えて、実際に取り掛かると実装ムズとなることがある
無理矢理にでも形にすべきか
コンセプト変更してもいいけどな
11名前は開発中のものです。
垢版 |
2025/11/01(土) 20:47:03.03ID:RRGXHTlP
512 x 288のドット絵を等倍、2倍、3倍で表示できるようにして、高精細フォントを使いたいからメイン画面はサブビューポートを使う。
やりたかったのはこれだけなのに画面サイズ変更機能作るのに2週間くらいかかった
canvasitemとviewportで全然違うのややこしすぎるわ
2025/11/01(土) 21:10:09.62ID:sH0XpPsB
おつかれさん。サブビューポートの使いどころさんがいまだに分からないや
しかし、ドット絵を三倍か、なかなか勇気のある事をする
2025/11/01(土) 21:50:03.25ID:+375yu1T
サブビューポートさんは
この間パーティクルにラベル使ってダメージ表記作りたい時に使った
14名前は開発中のものです。
垢版 |
2025/11/04(火) 14:17:10.57ID:Mk8eOtM6
ローグ作りたいが道は遠い
2025/11/04(火) 21:12:47.46ID:AqohUvOo
ローグみたいな有名でオープンソースの元ネタも豊富なものは
「ローグスタイルのゲームつくって」ってAIに言えばサクッとつくってくれるんじゃないの
2025/11/05(水) 12:06:45.40ID:BBV6eM8H
そりゃ作ってはくれるでしょ(作ってくれるとは言っていない)
そのあとが問題なんだよな
17名前は開発中のものです。
垢版 |
2025/11/05(水) 13:16:51.05ID:hChDyjhf
さわれないからな、、
2025/11/07(金) 01:44:01.02ID:NCON4E65
IMEの入力中(文字に下線ある状態)にそのTextEditを削除するとその次のキー入力が押下イベントだけ発火して解放イベントが来ない
っていう現象に見舞われてるけどこれどうにかなる?
apply_imeやcancel_ime、release_focusしても無駄でした
2025/11/07(金) 02:27:51.26ID:lnTYGdBs
言っている意味が良く判らんかった
解放イベントはfocus_exitedと仮定すると
TextEdit(内のテキスト)を削除してもカレットはそこにあるのだから解放イベントは発生しないであってるんじゃないのかな?
解放イベントとはなんぞ?
2025/11/07(金) 12:47:12.11ID:NCON4E65
すみませんもうちょっと詳細に書きます
例えば以下のスクリプトを適当なノードに貼り、その子にTextEditを持たせるとします

func _physics_process(_delta: float) -> void:
if Engine.get_physics_frames() == 500: #時間経過で$TextEditを削除
$TextEdit.queue_free()

func _input(event: InputEvent) -> void:
if event is InputEventKey: #キー入力を記録
print(event)

この状態で適当なキー(たとえば右矢印キー)を押して離すと下記のように出力されます
InputEventKey: keycode=4194321 (Right), mods=none, physical=false, location=unspecified, pressed=true, echo=false
InputEventKey: keycode=4194321 (Right), mods=none, physical=false, location=unspecified, pressed=false, echo=false
自分が解放イベントと呼んでいるのはpressed=falseなInputEventKeyの事です

TextEditに何かしら日本語を入力して確定せず待機し、TextEditがqueue_freeで削除されるまで待ちます
その後に右矢印キーを押して離すと下記のように出力されます
InputEventKey: keycode=4194321 (Right), mods=none, physical=false, location=unspecified, pressed=true, echo=false
見ての通りpressed=falseなInputEventKeyが出力されません、
同様にインプットマップの組み込みアクションであるui_rightなども入力され続ける状態になっています
次に何かしらキーを離した時は通常の挙動に戻ります

削除そのものが原因ではなく、コードによりIMEの確定待ち状態が解除されることが原因のようです
上記コードのqueue_freeをapply_imeやcancel_ime、release_focusに変更しても同じ現象が起こります
TextEditに限らずLineEditでも同じ現象が起こります
2025/11/07(金) 12:52:58.37ID:NCON4E65
コードのインデント消えちゃったけど雰囲気で読み取ってください
修正待ちバグ案件な気もしてきた
2025/11/07(金) 14:02:09.22ID:lnTYGdBs
現象は確認できたけど対応策は判んないな
Linux環境では起きなかったのでWindows環境限定と思う
入力中のTextEditを削除する要件ってのが良く判らんがそこら辺から対策できるんじゃないのかね?
2025/11/07(金) 15:51:14.73ID:c4lPyYM9
はーおもしろいバグ見つけたね
これはチケット切りましょ、なんなら自分でプルリク送りましょ
2025/11/07(金) 22:41:42.71ID:NCON4E65
やっぱりキツいですかねー
やりたいのが制限時間尽きたら入力ダイアログ閉じるみたいなシンプルな動作なんだけどバグ回避するのも結構難しそう

バグ報告とかやったことないけどどうにか調べてやってみますわ……
2025/11/07(金) 23:47:34.19ID:lnTYGdBs
IME制御がOSの管理下でGodotEngineから制御しきれてないのが原因と仮定して
win32apiのkeybd_eventでVK_ESCAPEを下げ上げしてIME操作を取り消した所、問題の回避に成功したと思われ
ui_rightが押されっぱなしの挙動はなくなりました

ログはこんな感じ(IMEオン→1キー入力→取り消し操作の時間まで待機→右カーソル入力)
InputEventKey: keycode=8388607 (Unknown), mods=none, physical=false, location=unspecified, pressed=false, echo=false
InputEventKey: keycode=8388607 (Unknown), mods=none, physical=false, location=unspecified, pressed=true, echo=false
InputEventKey: keycode=4194321 (Right), mods=none, physical=false, location=unspecified, pressed=true, echo=false
InputEventKey: keycode=4194321 (Right), mods=none, physical=false, location=unspecified, pressed=false, echo=false
26名前は開発中のものです。
垢版 |
2025/11/08(土) 08:56:20.17ID:ZjDMOKGY
小さなモックはサクッと作れるようになりたい
2025/11/08(土) 09:57:55.85ID:0lkI1PxY
>>25
質問者です
ちょっと俺のスキル足りなくて理解し切れてないんだけど希望ありそうなのはありがたい
ありがとう
2025/11/08(土) 10:19:28.84ID:DnZpcrSa
>>27
IMEの候補ウインドウが表示されている時に人がエスケープキーを押して取り消す操作を
Windowsに備わってるAPI呼び出し関数を使って再現する方法を取っています

Windowsの機能を呼ぶためのDLL群の事をWin32APIと呼び
今回はキーボードの入力イベントを再現するkeybd_event関数を利用しています
Win32APIはGDScriptよりもC#からの方が呼び出すのが容易なのでC#で機能を作りました
やってる事はありきたりな方法なのでブラウザのAIにでも聞けば教えてくれると思います
2025/11/08(土) 10:26:53.09ID:DnZpcrSa
Godotのプロジェクト内でGDScriptとC#は同時に利用できるので
keybd_eventを呼び出す為だけの.csファイルを用意してGDScriptから呼び出しました
提示ソースのqueue_free()がkeybd_eventの呼び出し関数に置き代わりになります
問題の発生しないcance_ime()代替関数と言えるかもしれません
30名前は開発中のものです。
垢版 |
2025/11/09(日) 06:23:31.32ID:tZtmJDi3
C#とGDscriptどちら使うもんなの
2025/11/09(日) 14:15:38.48ID:yrrBSKKL
ワナビ2057の場合は、GDScript。
それ以外の人は、好きな方を使う。

以上、次の質問どうぞ。

Choosing Between C# and GDScript in Godot | Patrick T Coakley
ttps://patricktcoakley.com/blog/choosing-between-csharp-and-gdscript-in-godot/
32名前は開発中のものです。
垢版 |
2025/11/10(月) 19:32:24.87ID:A216r14H
godot用のvscode拡張で、高機能なやつなんだっけ
ピエロみたいなマークのやつ
33名前は開発中のものです。
垢版 |
2025/11/11(火) 05:45:35.64ID:Yis2Hx0Z
コードって全て型つけしたほうがわかりやすくなるんやろ?
untyped decralationをエラーにしといたほうがいいのかい?
34名前は開発中のものです。
垢版 |
2025/11/13(木) 13:19:49.42ID:S8ZzI1Dx
配列の型なんだけど、variant使うのがいいのかね?
intにすると空の[]すら入れられないみたい。
色々面倒やな
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況