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

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

■公式サイト
URLリンク(godotengine.org)
■コミュニティ
URLリンク(godotengine.org)
■ドキュメント
URLリンク(docs.godotengine.org)
★次スレは>>950がたててください
前スレ
【軽量】godot engine【無料】 part3
スレリンク(gamedev板)
【軽量】godot engine【無料】 part4
スレリンク(gamedev板)

2:名前は開発中のものです。
25/10/25 12:32:15.90 NnKvsApL.net
生存確認?

3:名前は開発中のものです。
25/10/25 12:32:54.29 NnKvsApL.net
お、落ちんくなったんかな。前スレ消化しーましょ

4:名前は開発中のものです。
25/10/25 12:35:37.14 NnKvsApL.net
age忘れちゃった

5:名前は開発中のものです。
25/10/25 15:09:38.71 I6KVrXlp.net
>>1
スレ進行遅いからもし次スレ立つなら>>980が立てるにして良いじゃない?

6:名前は開発中のものです。
25/10/25 15:18:45.25 NnKvsApL.net
ん、同意。次スレ立てる人にお任せ

7:名前は開発中のものです。
25/10/31 20:34:25.77 eonHQS1X.net
URLリンク(store.steampowered.com)
こういう倉庫番なんだが倉庫番って配列に数字いれてステージ作るやん
視覚的にステージ作りたいんだが、タイルに番号つける→配列に変換
という作業するしかないのか?

8:名前は開発中のものです。
25/10/31 21:44:02.46 xHyuqnI9.net
TileMapLayerを使う、エクセルの表から変換する、画像から変換する、テキストから変換する
パッと思いつくのでこんな所、配列に変換する視覚的な元情報は好きに選べるぞ
なんだったら配列その物も視覚的に書けるだろ

9:名前は開発中のものです。
25/11/01 04:56:22.44 iF+OSGF+.net
カスタムレイヤで番号つけられるね
そういや

10:名前は開発中のものです。
25/11/01 17:40:34.20 iF+OSGF+.net
少し変わったコンセプト考えて、実際に取り掛かると実装ムズとなることがある
無理矢理にでも形にすべきか
コンセプト変更してもいいけどな

11:名前は開発中のものです。
25/11/01 20:47:03.03 RRGXHTlP.net
512 x 288のドット絵を等倍、2倍、3倍で表示できるようにして、高精細フォントを使いたいからメイン画面はサブビューポートを使う。
やりたかったのはこれだけなのに画面サイズ変更機能作るのに2週間くらいかかった
canvasitemとviewportで全然違うのややこしすぎるわ

12:名前は開発中のものです。
25/11/01 21:10:09.62 sH0XpPsB.net
おつかれさん。サブビューポートの使いどころさんがいまだに分からないや
しかし、ドット絵を三倍か、なかなか勇気のある事をする

13:名前は開発中のものです。
25/11/01 21:50:03.25 +375yu1T.net
サブビューポートさんは
この間パーティクルにラベル使ってダメージ表記作りたい時に使った

14:名前は開発中のものです。
25/11/04 14:17:10.57 Mk8eOtM6.net
ローグ作りたいが道は遠い

15:名前は開発中のものです。
25/11/04 21:12:47.46 AqohUvOo.net
ローグみたいな有名でオープンソースの元ネタも豊富なものは
「ローグスタイルのゲームつくって」ってAIに言えばサクッとつくってくれるんじゃないの

16:名前は開発中のものです。
25/11/05 12:06:45.40 BBV6eM8H.net
そりゃ作ってはくれるでしょ(作ってくれるとは言っていない)
そのあとが問題なんだよな

17:名前は開発中のものです。
25/11/05 13:16:51.05 hChDyjhf.net
さわれないからな、、

18:名前は開発中のものです。
25/11/07 01:44:01.02 NCON4E65.net
IMEの入力中(文字に下線ある状態)にそのTextEditを削除するとその次のキー入力が押下イベントだけ発火して解放イベントが来ない
っていう現象に見舞われてるけどこれどうにかなる?
apply_imeやcancel_ime、release_focusしても無駄でした

19:名前は開発中のものです。
25/11/07 02:27:51.26 lnTYGdBs.net
言っている意味が良く判らんかった
解放イベントはfocus_exitedと仮定すると
TextEdit(内のテキスト)を削除してもカレットはそこにあるのだから解放イベントは発生しないであってるんじゃないのかな?
解放イベントとはなんぞ?

20:名前は開発中のものです。
25/11/07 12:47:12.11 NCON4E65.net
すみませんもうちょっと詳細に書きます
例えば以下のスクリプトを適当なノードに貼り、その子に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でも同じ現象が起こります

21:名前は開発中のものです。
25/11/07 12:52:58.37 NCON4E65.net
コードのインデント消えちゃったけど雰囲気で読み取ってください
修正待ちバグ案件な気もしてきた

22:名前は開発中のものです。
25/11/07 14:02:09.22 lnTYGdBs.net
現象は確認できたけど対応策は判んないな
Linux環境では起きなかったのでWindows環境限定と思う
入力中のTextEditを削除する要件ってのが良く判らんがそこら辺から対策できるんじゃないのかね?

23:名前は開発中のものです。
25/11/07 15:51:14.73 c4lPyYM9.net
はーおもしろいバグ見つけたね
これはチケット切りましょ、なんなら自分でプルリク送りましょ

24:名前は開発中のものです。
25/11/07 22:41:42.71 NCON4E65.net
やっぱりキツいですかねー
やりたいのが制限時間尽きたら入力ダイアログ閉じるみたいなシンプルな動作なんだけどバグ回避するのも結構難しそう

バグ報告とかやったことないけどどうにか調べてやってみますわ……

25:名前は開発中のものです。
25/11/07 23:47:34.19 lnTYGdBs.net
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:名前は開発中のものです。
25/11/08 08:56:20.17 ZjDMOKGY.net
小さなモックはサクッと作れるようになりたい

27:名前は開発中のものです。
25/11/08 09:57:55.85 0lkI1PxY.net
>>25
質問者です
ちょっと俺のスキル足りなくて理解し切れてないんだけど希望ありそうなのはありがたい
ありがとう

28:名前は開発中のものです。
25/11/08 10:19:28.84 DnZpcrSa.net
>>27
IMEの候補ウインドウが表示されている時に人がエスケープキーを押して取り消す操作を
Windowsに備わってるAPI呼び出し関数を使って再現する方法を取っています

Windowsの機能を呼ぶためのDLL群の事をWin32APIと呼び
今回はキーボードの入力イベントを再現するkeybd_event関数を利用しています
Win32APIはGDScriptよりもC#からの方が呼び出すのが容易なのでC#で機能を作りました
やってる事はありきたりな方法なのでブラウザのAIにでも聞けば教えてくれると思います

29:名前は開発中のものです。
25/11/08 10:26:53.09 DnZpcrSa.net
Godotのプロジェクト内でGDScriptとC#は同時に利用できるので
keybd_eventを呼び出す為だけの.csファイルを用意してGDScriptから呼び出しました
提示ソースのqueue_free()がkeybd_eventの呼び出し関数に置き代わりになります
問題の発生しないcance_ime()代替関数と言えるかもしれません

30:名前は開発中のものです。
25/11/09 06:23:31.32 tZtmJDi3.net
C#とGDscriptどちら使うもんなの

31:名前は開発中のものです。
25/11/09 14:15:38.48 yrrBSKKL.net
ワナビ2057の場合は、GDScript。
それ以外の人は、好きな方を使う。

以上、次の質問どうぞ。

Choosing Between C# and GDScript in Godot | Patrick T Coakley
URLリンク(patricktcoakley.com)

32:名前は開発中のものです。
25/11/10 19:32:24.87 A216r14H.net
godot用のvscode拡張で、高機能なやつなんだっけ
ピエロみたいなマークのやつ

33:名前は開発中のものです。
25/11/11 05:45:35.64 Yis2Hx0Z.net
コードって全て型つけしたほうがわかりやすくなるんやろ?
untyped decralationをエラーにしといたほうがいいのかい?

34:名前は開発中のものです。
25/11/13 13:19:49.42 S8ZzI1Dx.net
配列の型なんだけど、variant使うのがいいのかね?
intにすると空の[]すら入れられないみたい。
色々面倒やな

35:名前は開発中のものです。
25/11/18 11:30:55.19 dZjxXGEg.net
var a :Array[int] = [1, 2, 3]
print(a.size()) # Prints 3
a = []
print(a.size()) # Prints 0

36:名前は開発中のものです。
25/11/19 13:30:03.17 v8zT46RE.net
ArrayをArray[int]に簡単に変換する方法あったりするの?
for文で回して配列作り直すしかないんかな
as Array[int]はダメっぽいし

37:名前は開発中のものです。
25/11/19 13:30:04.56 v8zT46RE.net
ArrayをArray[int]に簡単に変換する方法あったりするの?
for文で回して配列作り直すしかないんかな
as Array[int]はダメっぽいし

38:名前は開発中のものです。
25/11/19 14:15:48.17 kHRrMfdl.net
>intにすると空の[]すら入れられないみたい。
は嘘と提示してるだけなので違う話を持ち出されても困る
らしいではなく自分で試せ

>ArrayをArray[int]に簡単に変換する方法あったりするの?
型指定をするのは自分で型を管理できるからなので不用意な変換が発生する設計をしない
変換そのものはできる、自分で調べろ

39:名前は開発中のものです。
25/11/19 14:15:55.11 RIPT4Gyy.net
>>37
var array: Array = [1,2,3]
var int_array: Array[int]
int_array.assign(array)

40:名前は開発中のものです。
25/11/19 14:27:58.58 kHRrMfdl.net
回答書かれてしまったから書くがコンストラクタでもできる
var array: Array = [1,2,3]
var int_array: Array[int] = Array(array, TYPE_INT, "", null) # Array[int]
print(int_array.size()) # Prints 3

マニュアル読め
docs.godotengine.org/ja/4.x/classes/class_array.html

41:名前は開発中のものです。
25/11/19 21:23:07.52 v8zT46RE.net
サンクス
jsonで整数の配列を読み込むと値がfloatになるっぽいんだけどこの状態の配列に対してarr.erase(0)とかで整数の値消そうとしても消せないみたい
だから型をintにする必要があった

42:名前は開発中のものです。
25/11/19 22:06:24.00 kHRrMfdl.net
>floatになるっぽいんだけどこの状態の配列に対してarr.erase(0)とかで整数の値消そうとしても消せないみたい
実際に試してみたか?
var float_array: Array[float] = [0.0, 1.1, 2.2]
float_array.erase(0)
print(float_array.size()) # Prints 2

>jsonで整数の配列を読み込むと値がfloatになるっぽい
ここから何かが違ってるのだろ

43:名前は開発中のものです。
25/11/19 22:21:51.78 rYGTSCKR.net
JSONには数値型はあるが、整数型はない
だからJSONを読み込んで整数の配列を期待するのは間違い

44:名前は開発中のものです。
25/11/19 22:42:47.34 Wy3zyUux.net
ColorRectノードにアウトライン設定する方法インスペクタ上にある?

45:名前は開発中のものです。
25/11/19 22:48:05.89 kHRrMfdl.net
マニュアル読め
docs.godotengine.org/ja/4.x/classes/class_colorrect.html

46:名前は開発中のものです。
25/11/20 00:06:13.55 6YXRCu32.net
所持アイテムのIDをintで管理して配列に突っ込んでJSONで保存、読み込みとかありそうだけどダメなのか

47:名前は開発中のものです。
25/11/20 00:20:06.45 w9GKd/Ei.net
JSON だと数値が整数である保証がないので、全部 float として扱うのは自然ではある

48:名前は開発中のものです。
25/11/20 10:17:07.18 LMUawr+x.net
>>39
多次元だと出来ないみたいだが、どうなん
すべてvariantにすれば楽だが
というか型付けは慣れるべきなのかね

49:名前は開発中のものです。
25/11/20 10:44:32.94 DggAi5Vf.net
普通に方法はあるんだけど、お前に教えても意味がないからな
自力でたどり着いてくれ
そうすれば100年後には倉庫番も作れるようになると思うぞ

50:名前は開発中のものです。
25/11/20 11:13:40.36 vmvD/6dA.net
>>37
ループで回しても簡単では

51:名前は開発中のものです。
25/11/20 11:31:51.52 arARfAiQ.net
コード書きたくないからTypeConverterクラスの様な物が欲しいって事だろ
例を上げてもこれができないあれができないと追加してくるから只の構ってちゃんかな

52:名前は開発中のものです。
25/11/20 12:07:22.97 mWfe6sRz.net
これgodotヤバいか?

「Unity」と「Epic Games」が協業を発表。Unityで開発したゲームが『フォートナイト』上で公開できるようになり、Unreal Engineでは、Unityの強化されたコマースプラットフォームが利用可能に
URLリンク(news.denfaminicogamer.jp)

53:名前は開発中のものです。
25/11/20 12:26:45.80 lNdF/DfM.net
その内容がUnityなりUEなり使う動機になる奴はgodot使ってないだろ

54:名前は開発中のものです。
25/11/20 12:34:12.95 DggAi5Vf.net
そもそもGodotは商業的にみると競合ですらないからな
どっちかというとRobloxに引導を渡しに来た感じらしいぞ

55:名前は開発中のものです。
25/11/20 23:19:39.60 6wpTY0C/.net
Godotは完全フリーだしな
UnityはGodotを敵視出来なくはないがUEは相手にする土俵に居ないね

56:名前は開発中のものです。
25/11/22 16:23:08.65 B9DkC0lF.net
URLリンク(qaqelol.itch.io)
tweenの動作をコード付きで分かりやすく確認できるサイトが公開された

57:名前は開発中のものです。
25/11/24 00:47:32.11 gvI5ouKW.net
ちょっと質問なんだけど

チュートリアルでしか使わないフラグ変数とかイベントのコーディングとかってどうしてる
例えば、プレイヤーのインプットを受け取ったらチュートリアルを進行するってコードをプレイヤーノードにハードコードすると、チュートリアル以外でもそのコードが走るわけじゃん
通常のコードとチュートリアルのコードが混在して見通しも悪くなるし

この辺、うまいことできないもんかな

58:名前は開発中のものです。
25/11/24 07:57:33.04 CzGA/MmK.net
チュートリアル時にのみフラグでチュートリアル用の関数に分岐すれば良くね?
チュートリアル用の関数群を#regionで括れば目障りなら閉じておける

59:名前は開発中のものです。
25/11/24 11:16:58.15 fWWK5SZw.net
最初にチュートリアル専用キャラとかステージとかチュートリアル要素全部まとめたシーンを起動して
終わったら通常のゲームシーンと入れ替えたらいいんじゃない

60:名前は開発中のものです。
25/11/24 13:05:25.40 gvI5ouKW.net
おおサンキュ、フラグか完全入れ替えかって感じ
うーーーんむ……
検討してみます、ありがとう

61:名前は開発中のものです。
25/11/24 17:33:50.68 3iGR3mS8.net
オブザーバーパターンでググって見たら

62:名前は開発中のものです。
25/11/24 22:22:58.57 gvI5ouKW.net
signal使ってるからオブザーバーパターンは踏襲してる、と思う
使ったうえで、どうシステム化するかっていう話
クエストシステムの出来損ないというかモックバージョンというかなんというか……
別エンジンとかで実績あるプラグインとかがどういう仕組みになってるのか見てみるのもいいかもしれない、へべれけなので今日はもうおやすみ~

63:名前は開発中のものです。
25/11/25 23:33:29.72 KJUYXhKB.net
RPGツクールMZ からステップアップでGodot Engineチャレンジしたいんだけど
憶えることと段取りが桁違いで面食らってます…

プログラミングのいろはもわからないから
まずはコードあれこれより

触ってなれた方が良いかな
情報量が多すぎてきつい
でも頑張りたい

64:名前は開発中のものです。
25/11/25 23:43:53.45 smWKdLNS.net
>>63
学習方法は人それぞれ適したやり方があると思うが自分は新しく始める人には公式のGodot入門を読む事を勧めてる
docs.godotengine.org/ja/4.x/getting_started/introduction/introduction_to_godot.html

65:名前は開発中のものです。
25/11/26 04:54:21.55 PFZ7DD8r.net
>>64
ありがとう
がんばってきます

66:名前は開発中のものです。
25/11/26 10:49:07.40 gITLX0v2.net
ゼロ知識状態で今からGodot始めようってなったら自分だったらどうするかなぁ

ゲームから入るんじゃなくて、画面が三つくらいのTODOアプリからってのもいいかも

ツクールやってたなら、まっさらな一画面出して、ツクールにあってGodotにはない機能を実装してけば勝手に上達していく気もするし

67:名前は開発中のものです。
25/11/26 11:20:40.74 q16Vy4Y+.net
作りたいゲームでGUIウィジェットを活用するのでなければ素直に1画面ゲームを作るの良いと思うな
画面複数になったら画面間の連携も考える必要が増える

ゼロ知識状態で
>ツクールにあってGodotにはない機能を実装してけば
は難しすぎるのでないだろうか?

まずは簡単な1画面ゲームじゃないかな
公式のチュートリアルでどうだろうか?
docs.godotengine.org/ja/4.x/getting_started/first_2d_game/index.html

68:名前は開発中のものです。
25/11/26 11:44:57.81 T1mV/H/0.net
Godot 入門なら、俺も公式チュートリアルのお世話になった
でも、Godot でプログラミング入門とかはないよなぁ
ツクールのプラグインあたりから始めるのも悪くないと思う

69:名前は開発中のものです。
25/11/26 13:37:50.81 gITLX0v2.net
まあ自分がやれそうなところからやるのがいいよな

英語に忌避感がなければ GDQuest の興味あるコース(無料と有料あるから注意)やってみるのもいいと思う
Learn GDScript From Zero とか、無料でプログラミングの基礎から練習問題もついててうってつけ
アプリ形式だしこれ自体も Godot で何ができるかわかる良サンプルだよなぁ

70:名前は開発中のものです。
25/11/26 18:47:45.12 OWe/edUk.net
Godotでゲーム作るなら公式飛ばしてYotubeの落ち物ゲー作ってる動画とかを見ながら真似てくのでも良いと思ってる
実力は公式追うのよりはつかないが、自分でも出来るって成功体験は濃い

71:名前は開発中のものです。
25/11/28 18:05:45.46 xVbKFCv3.net
Godot Engine頑張って勉強してます
URLリンク(youtu.be)

難しいけどおもしろいねこれ
Unityより個人的には触りやすいなぁ

72:名前は開発中のものです。
25/11/28 18:18:53.38 +ry6COvm.net
楽しいよね、Godot

プレイヤーと敵に設定してるCollisionのShapeは単純なサークル(だと思ったけど)より、カプセルの方がそれっぽくなるよ

73:名前は開発中のものです。
25/11/28 18:31:01.92 xVbKFCv3.net
>>72
おおっ!情報感謝
置きかえしてみます
ありがとー!


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

6日前に更新/20 KB
担当:undef