[過去ログ] 【軽量】godot engine - part2 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
802: 2024/01/27(土)16:39 ID:JYsp1BmQ(5/5) AAS
godotに戻ってきて良かった
軽いのは正義
開発へのハードルが低くなる
803: 2024/01/27(土)18:57 ID:iAyWuXN8(2/2) AAS
エディターの構成とかスクリプトとの連携とか全体的にGodotの方が洗練されてるんだよな
Unityはデファクトスタンダードでアセット類が多いってだけで作り的には大分とっ散らかってる
804(1): 2024/01/28(日)00:05 ID:ikqtEjYO(1/2) AAS
キャラクターボディとスタティックボディの衝突シグナルはどうやれば取れますか?
ドキュメントを探してみましたがそれらしいものがリジッドボディしか見つからず困っています
805(1): 2024/01/28(日)00:31 ID:gcvmSnRI(1) AAS
>>804
シグナルじゃなくてmove_and_なんとかの返り値や関連メソッドで判別する
806: 2024/01/28(日)00:51 ID:ikqtEjYO(2/2) AAS
>>805
ありがとう 無事見つかりました
807: 2024/01/28(日)02:59 ID:JWmTbwcH(1) AAS
他ツールでも結局最終的に頼りにしてるのは公式ドキュメントのサンプルコードな自分
個人サイトとかだと参考にはなれど権利とかライセンスがとかめんどくさくてさあ
808: 2024/01/28(日)05:59 ID:pEcrIiHG(1/7) AAS
get_tree().paused = trueでポーズ画面作ってるんですが、get_tree().paused = falseで戻せないです
入力受付なくなるのでプロセスが止まっているらしいです
入力も受け付けなくなる感じ?
809: 2024/01/28(日)06:15 ID:TmRS1aaH(1/2) AAS
_process()は止まるけど_input()側で入力受付出来なかったっけ
func _input(event):
if event.is_action_pressed(入力キー):
get_tree().paused = !get_tree().paused
810(1): 2024/01/28(日)06:22 ID:pEcrIiHG(2/7) AAS
ありがとうございます
ポーズ画面作る場合はpausedを使うのでいいんですかね?
extends Node2D
# Called when the node enters the scene tree for the first time.
func _ready():
get_tree().paused = true
# Called every frame. 'delta' is the elapsed time since the previous frame.
省5
811(1): 2024/01/28(日)06:56 ID:TmRS1aaH(2/2) AAS
>>810
すまねえこういう事だった
ノードのProcessModeがWhenPausedかAlwaysじゃなきゃ_processも_inputも止まると
外部リンク[html]:docs.godotengine.org
ちゃんと一時停止の例まで載ってた
812: 2024/01/28(日)09:59 ID:pEcrIiHG(3/7) AAS
>>811
ポーズモードという仕組みあるんすね
ありがとうございました
リファレンス避けてた自分が悪かたです
813: 2024/01/28(日)12:20 ID:pEcrIiHG(4/7) AAS
gptくんグーグルより的確すぎる
814: 2024/01/28(日)13:07 ID:pEcrIiHG(5/7) AAS
func _on_body_entered(body):
fail_text.visible = true
get_tree().paused = true
await(get_tree().create_timer(2).timeout)
get_tree().reload_current_scene()
get_tree().paused = false
衝突したときにリトライ処理をさせたいのですが、こういうコードの書き方だとシーンがリロードされたあとにbodyenterdが呼ばれるので、エラーになりますよね。
省2
815: 2024/01/28(日)17:01 ID:pEcrIiHG(6/7) AAS
4.21になってからノード追加するときとか数秒もたつくな
816: 2024/01/28(日)17:51 ID:pEcrIiHG(7/7) AAS
スクリプトのついていないノードを複数取得して、同じ回転を適用するみたいなことは出来ないかな?
これは別シーンで作って呼び出す形でやるのかな?プレファブ的な
817(1): 2024/01/28(日)22:35 ID:YtecBqKa(1) AAS
Object.get_script でnullが返るノードを処理すればいいけど
グループに入れておい一括処理すればいいんでね
818: 2024/01/29(月)05:49 ID:Egx9C970(1/4) AAS
>>817
ありがとう
多分一般的なやり方じゃないですよね
同じものを使いまわしたいならプレハブ化(シーン)するのが一番ですよね
819: 2024/01/29(月)05:57 ID:Egx9C970(2/4) AAS
動きは共通で、大きさだけ変えたいなんて場合は、スクリプトだけ共通にすればいい感じだね
理解
820: 2024/01/29(月)11:11 ID:rbb+bJBP(1) AAS
スクリプトからインスタンス化すると2つ目以降のノード名がへんてこになるからどうやって取得したもんかと思ってたけど
グループで行けたわ、なるほどありがとう
821: 2024/01/29(月)16:55 ID:Egx9C970(3/4) AAS
ゲームエンジンってどれも似たようなもんかな
将来、ユニティに戻るかもしれんし
今は軽さ、手軽さ重視
pcもちょい古いしな(*´ω`*)
822(1): 2024/01/29(月)19:48 ID:Egx9C970(4/4) AAS
godotってノードの一時的な無効化って出来ないのかな?
目玉マーク押すと非表示にはなるけど、コリジョンとか残ってるし
823(1): 2024/01/30(火)02:03 ID:qihJ4G8z(1) AAS
基本的には似たようなもん
覚えた要素がアップデートで変わるだけで混乱する人も居るので人による
824: 2024/01/30(火)10:12 ID:94z45r+P(1/2) AAS
>>822
目玉マークは視覚的に消すだけなんだね
コリジョンなんかの機能を消すには、プロセスのdisableか
>>823
どうも
825: 2024/01/30(火)12:17 ID:94z45r+P(2/2) AAS
動く床と壁粘着ってけっこうめんどいな
動く方向が同じだとひっついてトレなくなる
826: 2024/02/01(木)10:46 ID:d1tWUBD1(1/3) AAS
エラーしたコード書くとウインドウがフリーズするけども、いちいち閉じるのが面倒なんですが、unityのようにエラーがあったらプレイ出来ないような設定にできますかね?
827(1): 2024/02/01(木)13:03 ID:RbvII5uE(1/2) AAS
状況が判らないなエラーコード書いたらハイライト表示されてフリーズはしないが
828: 2024/02/01(木)15:11 ID:d1tWUBD1(2/3) AAS
親ノードのスクリプトから子ノードを取得して、子ノード(rigidbody2d)のメソッドを使いたいのですが、この場合はオートコンプリートは出ないものですか?(apply_impulse)
子ノードにスクリプトつけて、そこからなら効くんですが
>>827
プレイ画面のことでした
エディターのエラーを見て実行しなければいいだけなんですけどもね
829(1): 2024/02/01(木)15:57 ID:RbvII5uE(2/2) AAS
ノードをget_nodeで取得していると仮定するとこうかな
var node = get_node(path) as RigidBody2D
エラーがあっても可能な限り止まらないで動作させるポリシーらしいので
動かす動かさないは利用者に委ねられるのでしょう
830(1): 2024/02/01(木)19:13 ID:wFSVR3t/(1) AAS
みんなgodotでシコシコどんなゲーム作ってるん?
ちなみに俺は何も作ってない
831: 2024/02/01(木)19:51 ID:d1tWUBD1(3/3) AAS
>>829
その書き方でいけました
しかし、readyの中だと出るのにprocessの中だとでません
これって正常な仕様なんでしょうか?
832: 2024/02/01(木)20:58 ID:2YEqIkXl(1) AAS
var a : RigidBody2D
こうじゃないの
ダックタイピングしないときは型は書いた方がいい、可読性が全然違う
833(1): 2024/02/01(木)21:13 ID:Fw0MlK/N(1) AAS
短くしたかったので一行に纏めたのが良くなかった
宣言と初期設定と使用が分かれるならこんな感じ
_readyの中で型指定しても_processからは見えないから上位で型指定する
var node:RigidBody2D
func _ready()
node = get_node(path)
func _process(_delta):
省1
834(1): 2024/02/01(木)22:23 ID:9xF8Tfdc(1) AAS
>>830
寒いからやってない
ローグライクゲームのダッシュって実装がめんどくさいな
835: 2024/02/02(金)00:02 ID:csXE6Gch(1/2) AAS
自分はreadyの中でよそのシーンをインスタンス化しても何故かシーンツリーに登録されないから
だんだんready使わなくなったなあ
readyは全ノード読み込み済みの最初のアップデートと云うけれど、なんか挙動が掴み切れないというか
836(1): 2024/02/02(金)01:00 ID:1cSrS8bV(1/13) AAS
多分ノードツリーを変更する場合はcall_deferredを挟むのと良いのではないかな?知らんけど
837: 2024/02/02(金)01:57 ID:csXE6Gch(2/2) AAS
>>836
こんな感じに書き換えたら行けましたぞ
ありがとう!
func _ready():
node = node_scene.instaniate()
get_tree().root.call_deferred("add_child, node)
ちなみにルートにぶら下げないで、単に
省5
838: 2024/02/02(金)02:19 ID:1cSrS8bV(2/13) AAS
root配下の全ノードを処理している最中にノードの変更があった場合にどうするのが正しいのか?
ノード変更のタイミングによってノードがあったりなかったりすると不安定な挙動になる
なので確実に_readyや_process等のノード処理の完了後に動作させる為にcall_deferredを使う
add_child(node)で動くのはたまたまな可能性があるのでcall_deferredお勧め
839: 2024/02/02(金)02:27 ID:1cSrS8bV(3/13) AAS
ソースを見てないので推測だが一般的にツリーノードは再帰処理で回しているはず
root直下のノード群は最初に取得済となって後から追加しても無視されると思われる
840(1): 2024/02/02(金)05:57 ID:KtCPrk0G(1/6) AAS
>>833
ありがとう
自動型つけってこういうデメリット?があるんですね。自動で取得したノードの型まで取ってくれるわけではないのはなぜなんでしょうか。
あと、型つけ忘れたりありますが、gdscriptで型付け強制出来ますかね
841: 2024/02/02(金)11:21 ID:HJWQqSOJ(1) AAS
>>834
ダッシュって次の曲がり角までスキップ(早回し?)するアレ?
ローグライクって周りのマス参照したりターン制御したりダンジョン自動生成したり複雑だよな
俺も作ってみるか
842(2): 2024/02/02(金)13:26 ID:1cSrS8bV(4/13) AAS
>>840
ノードの型は実行時に取得するまで判らないので編集時はコードから判断される
型指定は宣言時に自分で行う
宣言時に初期設定も終わらせるなら
var rigidbody := get_node(path) as RigidBody2D
で宣言時の型指定を省略できる
付け忘れ対策はlintの様な外部ツールを使うしかないと思う
省2
843(1): 2024/02/02(金)13:56 ID:SAYqJfSZ(1/2) AAS
>>842
調べたらプロジェクト設定 debug/gdscript/warnings/untyped_declaration を errorに設定するとエラーになるっぽい
使うならエディタ設定の型ヒントをオンにしたほうが良さそう
他にも使えそうな警告がいっぱいあった
844: 2024/02/02(金)14:04 ID:1cSrS8bV(5/13) AAS
エディタの設定だと思ってプロジェクトの方見てなかったありがとう
845: 2024/02/02(金)14:30 ID:KtCPrk0G(2/6) AAS
>>842
明治してやらないと駄目なんですね そう受け入れます
untyped decralationを設定したらそうなりました
ありがとう(*´ω`*)
unityと併用すること考えたら型付けしといたほうがいいですね
846(1): 2024/02/02(金)14:41 ID:KtCPrk0G(3/6) AAS
スクリプトのデフォルトコードって型付けされたものになるもんですか?
自分の環境ではならないです
847: 2024/02/02(金)14:51 ID:bD7U8OGn(1/2) AAS
ローグライクみたいなコテコテの2DRPGならjs使えるツクールの方が向いてるんじゃないの
作るなとは言わんけどシステム的に要求が多すぎて挫折しがち
848(1): 2024/02/02(金)15:21 ID:1cSrS8bV(6/13) AAS
試しに今触ってるプロジェクト設定のuntyped_declarationを変更してみたが後から変更だと修正キツイ
他のIgnoreになってる設定を有効にすると更にキツイ
自分が使うなら開発開始時にuntyped_declarationを有効にするまでかな
>>846
デフォルトコードの意味が解らんのでエスパーするが変数宣言は以下の様な書き方ができる
var a #Variant型になる
var a = 0 #Variant型になる
省2
849: 2024/02/02(金)15:29 ID:bD7U8OGn(2/2) AAS
型付けもライフサイクルもドキュメント見りゃ大体丁寧に書いてあるけど皆そんなドキュメント見ないのかな
850: 2024/02/02(金)15:36 ID:zgD08SYH(1/2) AAS
他の言語触った事ない(GDが初めて)ならドキュメントの見方読み方もよくわかんないんじゃない
851: 2024/02/02(金)15:42 ID:1cSrS8bV(7/13) AAS
自分で調べられる人は質問しないから質問が多く見えるのだと思う
852: 2024/02/02(金)16:00 ID:Qx6M1fJu(1) AAS
あくまで主観だけどGodotのドキュメントは他の言語に比べて大分分かりやすい方だと思う
質問多いのは構わないけど書いてあるのに読まない知らないはドキュメントが勿体ないなと
853(2): 2024/02/02(金)16:06 ID:1cSrS8bV(8/13) AAS
Godotのドキュメントは読みやすいし使いやすいと思うが
使いたい関数がリファレンスに無いのかって質問にリファレンスに書いてるって答えても調べてくれないからな
調べ方を書いても反応なかったのでどうしていいか判らんな
854: 2024/02/02(金)16:17 ID:SAYqJfSZ(2/2) AAS
デフォルトコードうんぬんはエディター設定の型ヒントを追加のやつじゃないかな
スクリプトテンプレートにも型が付くようになる
855: 2024/02/02(金)16:28 ID:1cSrS8bV(9/13) AAS
あーそういうことね完全に理解した
856(2): 2024/02/02(金)17:38 ID:KtCPrk0G(4/6) AAS
>>848
スクリプトを新規作成したときに、readyとprocessに自動的に型を指定してほしいなと できれば
しかし、gdscriptでも型付けというのはしたほうがいいんでしょうか?
そのほうがトラブルは少なそうですが
857(1): 2024/02/02(金)18:18 ID:1cSrS8bV(10/13) AAS
>>856
>>843の
>使うならエディタ設定の型ヒントをオンにしたほうが良さそう
が答えで[エディタ設定][テキストエディタ][自動補完][型ヒントを追加]でわかるかな?
構文チェックはあればあるほどバグが入り込みにくくはなるけど不便になっていくので
個人や組織で必要に合わせて調整するもの
自分の感覚だとuntyped_declarationと型ヒントを追加を有効にするが実用範囲だけど
省1
858: 2024/02/02(金)18:40 ID:KtCPrk0G(5/6) AAS
>>857
どうも、英語情報調べてるだけじゃ分からん情報でありがたい
このスレも賑わって嬉しい
1週間程度のそんな大きくないプロジェクトなので、untyped declarationなしで、部分的に型付けを使う方式にしたいと思います
混合しないほうがいいのかもですが
859: 2024/02/02(金)21:32 ID:KtCPrk0G(6/6) AAS
godoもなんかたまに重いことがあるな
本体とプロジェクトのサイズが小さいだけで、動作の軽快さってのはそんな変わらん?
860: 2024/02/02(金)22:23 ID:1cSrS8bV(11/13) AAS
GDScriptは他のコンパイル言語と比べて処理速度は遅い
速度が必要な処理はC#やGDExtensionで多言語に処理を投げる
がしかし個人製作の場合はこれが問題になる事は少ないだろうと思う
プログラムは適当に書いても動くが性能を求めるなら効率の良いコードを書かなければならない
プロファイラーを使うか自前コードで計測して遅い部分を把握する
外部リンク[html]:docs.godotengine.org
適当エスパーしとくと
省3
861: 2024/02/02(金)22:29 ID:zgD08SYH(2/2) AAS
多分エディタの動作の話だと思う
862: 2024/02/02(金)22:38 ID:1cSrS8bV(12/13) AAS
エディタだと大本の環境依存すぎて難しいな不便だけど自動補完を切るとかかな?
863: 2024/02/02(金)23:26 ID:1cSrS8bV(13/13) AAS
環境の話題ついでだけどAndroidでもRaspberryPiでも動くから
重くて不便な環境で嫌気差す可能性もあるが
安上りな教育環境として利用できるかもしれないと思いましたまる
864: 2024/02/03(土)06:30 ID:AdVKjLlX(1/4) AAS
バージョン4になってから微妙にもたつく様になったと思う
unityとエディタの重さ自体は変わらん感じ
プロジェクトの小ささはいいけどね
865: 2024/02/03(土)10:56 ID:AdVKjLlX(2/4) AAS
gptがコードの間違い探してくれるのは助かる
無能だからコードのエラーが解決出来ない
866: 2024/02/03(土)12:41 ID:nzYZB8x1(1) AAS
エディタはUIを詰めれる感じはするね
Unityからくると余白の大きさにびっくりする
あとアニメ画面が操作メニューと設定同じ位置に表示されてたり(Ver3のがマシ)
日本語表示でFPS隠れてたり
867: 2024/02/03(土)14:51 ID:xJ6rlQCu(1) AAS
3万円で買った6年前のThinkPadでも余裕で動く
何ならブラウザで30個タブ開いてチュートリアル動画流しながらでもギリ動く
868: 2024/02/03(土)15:24 ID:AdVKjLlX(3/4) AAS
しかし、軽くてありがてぇ
シンプルでありがてぇ
unityはメニュー多すぎてパンクする
869(1): 2024/02/03(土)18:17 ID:AdVKjLlX(4/4) AAS
staticobdyって当たり判定にはあまり使わない?
area2dのほうがそれ用のシグナル多いし
すり抜けじゃなくて、衝突はさせたい
870(1): 2024/02/04(日)12:38 ID:SE6INxAw(1/2) AAS
self自体に型付けってありますか
self.apply_central_force()
こうselfをつけると補完が出ないですので、selfに対して型付けが必要なのかも
>>869
871: 2024/02/04(日)16:48 ID:SE6INxAw(2/2) AAS
コリジョンマスクって衝突させるものと、衝突されるものを、双方向に指定しないと挙動がおかしくなるもの?
片方からのみ指定すると挙動がおかしい
ただ、単にすり抜けるなら分かるけど、衝突はするという
ただ、衝突の結果がおかしい
872: 2024/02/05(月)10:42 ID:SIExHF/s(1/7) AAS
衝突判定で使うオブジェクトの違いはここら辺読めば良いんじゃない?
外部リンク:www.reddit.com
外部リンク:code.luasoftware.com
PhysicsBodyが衝突したとき片方はMaskオンで片方はMaskオフの場合
Maskオンは接触の影響を受けMaskオフは影響を受けない(ほぼStaticBodyと同じ)
873(1): 2024/02/05(月)11:15 ID:SIExHF/s(2/7) AAS
selfで補完されるものはconstやstatic指定された静的な物でメンバーが出ないのは理由があるのだろう
ピリオド押せばメンバーは表示される
そうでなければvar _self: = selfと変数宣言して_selfでアクセスすればそれっぽい結果は得られる
874: 2024/02/05(月)13:14 ID:Xd01vtLL(1/9) AAS
>>853
そういう人はサンプルコードまで提示しないとダメな教えて君タイプでしょう
875: 2024/02/05(月)13:14 ID:Xd01vtLL(2/9) AAS
>>853
そういう人はサンプルコードまで提示しないとダメな教えて君タイプでしょう
876: 2024/02/05(月)13:18 ID:Xd01vtLL(3/9) AAS
GDScriptは
ほとんどPython
でも
defではなくfunc
変数も宣言しないと使えない
この辺りはゲームエンジンに必要な
処理速度に合わせている
877: 2024/02/05(月)13:22 ID:Xd01vtLL(4/9) AAS
Godot 2.0の頃から
ダウンロードしていたけど
Unity炎上の敵失とはいえ
5ch.netで
Godotを
議論する
時代が来るとは
省1
878: 2024/02/05(月)14:12 ID:qsxLl75u(1/5) AAS
>>873
そうしないと出ない理由ってなんでしょうか?
selfって付けなくていいものでしょうか、お決まりとして付けていましたが
879: 2024/02/05(月)14:27 ID:Xd01vtLL(5/9) AAS
>>856
型付けした方が
トラブルが少なくなりそうなのと
処理速度の向上が期待できそうだけど
実際のところ
どうなんだろう?
880(1): 2024/02/05(月)14:32 ID:qsxLl75u(2/5) AAS
個人制作レベルで速度を気にしなくてもいいかなと、今のところ考えてます
まず完成目指さないと自分は
881: 2024/02/05(月)14:39 ID:SIExHF/s(3/7) AAS
何故お決まりと思ったのかが疑問だがselfを使う必要はまず無い
メンバ変数のsetgetを呼び出すのに使う例と古いconnect関数を使う例くらいしか見かけない
ローカルとメンバでやむなく同名使った時くらいしか必要ないと思うしそんな事はしない方が良い
882: 2024/02/05(月)14:42 ID:Xd01vtLL(6/9) AAS
>>880
完成品を作れないのに
いきなり
オープンワールドを作りたい、みたいな
初心者が多いよね
上下前次1-新書関写板覧索設栞歴
あと 120 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.017s