[過去ログ] 【軽量】godot engine - part2 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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
完成品を作れないのに
いきなり
オープンワールドを作りたい、みたいな
初心者が多いよね
883
(1): 2024/02/05(月)14:43 ID:SIExHF/s(4/7) AAS
いろんな説があると思うが自分はとりあえず動くものを完成させる派だな
最初から完璧目指すと計画変更が発生する事に耐えられなくなる
884
(2): 2024/02/05(月)14:49 ID:Xd01vtLL(7/9) AAS
>>870
GDScriptのベースの
Pythonのselfを
確認してみるといいよ

外部リンク:www.sejuku.net
885: 2024/02/05(月)15:03 ID:Xd01vtLL(8/9) AAS
>>883
自分も
完璧主義者の
エヴァンゲリオンの、碇ゲンドウは
ゲーム開発に向かないと思います。
碇ゲンドウはゲーム開発で
ストレスを溜めそう
省1
886: 2024/02/05(月)16:07 ID:Xd01vtLL(9/9) AAS
>>884
selfは
Javaのthisのような
自分自身を参照する感じかな
887: 2024/02/05(月)16:31 ID:Zfn+o/iC(1/2) AAS
アプリによって「マスク」の意味が
真逆だったりするのが落とし穴というか
マスク=見えるよ派
マスク=隠れるよ派
888: 2024/02/05(月)16:39 ID:qsxLl75u(3/5) AAS
>>884
機能的に意味があるというより、明示的に書いておくといいみたいな話を聞いたことがあります
889
(1): 2024/02/05(月)17:12 ID:SIExHF/s(5/7) AAS
Pythonにおいてはクラス変数とインスタンス変数の使い分けで使う
GDScriptは変数宣言が必要なのでPythonの例は完全には適合しない
selfを付けると明示的にメンバ変数と判るくらいのメリット

気になってスタイルガイドを読んでみたがself句の説明はないな
外部リンク[html]:docs.godotengine.org
今まできちんと読んでなかったから自分が守ってない事が沢山あるのに気が付けたのは良かった
890: 2024/02/05(月)17:14 ID:SIExHF/s(6/7) AAS
不完全だけど日本語のページ
外部リンク[html]:docs.godotengine.org
891: 2024/02/05(月)17:35 ID:qsxLl75u(4/5) AAS
godotでテンプレート化って出来ますか?
スタート画面、ゴール画面といった使い回せる部分というのはあると思うんです
エクステンション化するとなるとC言語必要かもしれないし、だいたいそこまでやらずにテンプレ化する方法あるんでしょうか?

>>889
ありがとう
あまり気にしないことにする
892: 2024/02/05(月)17:45 ID:SIExHF/s(7/7) AAS
シーンとスクリプト、他に使っているファイルがあるならそれもコピーすれば動くんじゃない?
AssetLibでaddonsにインストールされてるのがそんな感じだから
addonsに置かないで自前テンプレート用フォルダ作った方が管理はし易いと思う
ついでに言っておくと自前スクリプトでも継承できるから理解できるなら効果的に使える
893: 2024/02/05(月)17:47 ID:qsxLl75u(5/5) AAS
あー、単純にシーンを使いまわせばいいのか
ありがとう
894: 2024/02/05(月)20:49 ID:NnXojcWk(1) AAS
「新しい継承シーン」という機能もあるにはあるが、あまり素人にはお勧めできないか
895: 2024/02/05(月)21:55 ID:Zfn+o/iC(2/2) AAS
ユニーク化を忘れてドツボに嵌る未来
896: 2024/02/06(火)05:10 ID:JvE5m64r(1/3) AAS
ユニーク化?
897
(1): 2024/02/06(火)06:26 ID:JvE5m64r(2/3) AAS
area2dみたいに衝突シグナルを発生させたいけど、衝突もほしい場合って何を使うんですかね
staticbodyだと衝突シグナルがない
重力ゼロにしたrigid使ってみます
1-
あと 105 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.023s