[過去ログ]
【軽量】godot engine【無料】 part3 (1002レス)
【軽量】godot engine【無料】 part3 http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
118: 軌道予測 [] 2024/03/09(土) 06:47:06.36 ID:HzeElu7U 初速、方向ベクトル、力、時間の4要素がおそらく必要なんですね 運動方程式物理の本買ったんですけど、数学への抵抗感なくなればいいなぁ(*´ω`*) http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/118
119: 軌道予測 [] 2024/03/09(土) 11:31:15.25 ID:HzeElu7U Programmingの理解が遅い人って何が問題なんでしょうか 自分のことですけども 抽象化、というかイメージ化が出来てないのかも http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/119
120: 名前は開発中のものです。 [sage] 2024/03/09(土) 12:48:53.19 ID:TY4JoG/O 理解できないのは理解できるサイズまで対象を分解できていないから 思い描いているイメージを具体化できてない 抽象的かつ大雑把過ぎるので細かい要素に分割する 分割した要素毎に必要な知識を理解する Peglinを作りたい→軌道予測線を描きたい 線を描くとは→線分を画面に表示する 軌道予測とは→放物運動の開始から終了までの線分を描くための座標を取得する 放物運動とは→等速運動と自由落下する運動 座標の取得とは→放物運動の計算式から得られる 放物運動の計算式とは→(a)物理エンジンから取得するか(b)自前で自前で計算するかの二択 (a)物理エンジンで取得する→RigidBodyを実際に投げた結果から座標を取得する 実際に投げるには→他に影響を与えずに投げた結果を得るには特殊な手法が必要 特殊な手法とは→>>69が提示 (b)自前で計算する→放物運動の計算式を作る 計算式を作る→線分を描くために時間経過毎の座標を取得する→>>116で提示 要素を分解するとこんなもんか? 放物運動の計算は複雑な計算式は不要で時間経過毎に等加速と自由落下を加算するだけ 判らないなら判る所まで分解して考える http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/120
121: 軌道予測 [] 2024/03/09(土) 18:53:53.21 ID:HzeElu7U >>120 1つずつ単体テストみたいなことをやるといいんですかね? http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/121
122: 名前は開発中のものです。 [sage] 2024/03/10(日) 01:50:55.82 ID:sSa6etmR コードを書いた時に単体テストする必要なく動くと言える事 勘違いもあるので単体テストばりに実際に確認が取れると尚良い それが出来るなら理解したと言えるだろう 例えば線を描くならこうなる これだけだと線分配列pointsの中身が無く動かないが あれば動くと自信を持って言える 短いコードで動作条件も少ないので実際に動かしてテストするのも容易だろう var points:Array $Line2D.clear_points() for point in points: $Line2D.add_point(point) 分解した個々の要素が理解できたら次の課題は 目的の機能を実現する為に個々の要素を合成する事に変わる 下位工程の知識が曖昧なまま作業を進めるとやり直しが発生し効率が落ちる 余談になるが線を描く方法はdraw_line()を使う方法もある CanvasItemクラスの継承が条件でLine2Dの様な子ノードが不要 但し描画処理は_draw()で行う必要がある func _draw() -> void: for idx in range(points.size() - 1): draw_line(points[idx], points[idx + 1], Color.RED, 4) 手法それぞれメリットデメリットが存在するので目的に合わせて選択する 知識が多い方が問題解決方法を多く選択できるので何かと有利に働く 慣れない間は混乱の元にもなるので一つ一つ知識固めをする事を勧める http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/122
123: 軌道予測 [] 2024/03/10(日) 09:50:48.90 ID:uoG0dKmX どうも 必要な要素が把握出来てないのかもですね 線はline2dでやってみます http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/123
124: 軌道予測 [] 2024/03/11(月) 14:26:20.28 ID:CzcLH5L4 gdscriptでは関数入れ子はサポートされてないんですかね? http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/124
125: 名前は開発中のものです。 [sage] 2024/03/11(月) 23:30:22.40 ID:ZDvnxGD5 されてる 例としてはこんな感じ func my_function(): var f = func inner_function(x)->String: return "inner_function called from %s" % [x] print(f.call("my_function")) http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/125
126: 軌道予測 [] 2024/03/12(火) 10:22:31.68 ID:6dOLlAtw myfnctionのプロパティー化しないと駄目ということですかね http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/126
127: 名前は開発中のものです。 [sage] 2024/03/12(火) 10:43:32.43 ID:Ui38L6jh 短いコードなのだから疑問に思ったら自分で試してみれば良いじゃない var f = func inner_function(x)->String: return "inner_function called from %s" % [x] func my_function(name): print(f.call(name)) 公式ドキュメントはこちら https://docs.godotengine.org/ja/4.x/classes/class_callable.html http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/127
128: 名前は開発中のものです。 [sage] 2024/03/12(火) 11:23:29.64 ID:Ui38L6jh 関数の実体はCallableクラスで変数fに代入しなくても扱えるし引数で渡す事もできる 関数でもループでもifブロックでもネストが増えれば難読化するので不用意には使わない func _ready(): my_function(external_func) func external_func(name:String): return "external_func called from %s" % [name] func my_function(ext_func:Callable): print(ext_func.call("my_function")) http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/128
129: 軌道予測 [] 2024/03/12(火) 15:08:54.31 ID:6dOLlAtw ありがとう 今すぐ使うわけじゃないんだけど知識として知りたかったんだ 会話に飢えてるのかも http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/129
130: 軌道予測 [] 2024/03/15(金) 14:19:26.75 ID:z+ILEsEI ペイントソフトの筆のように線を描くのは可能でしょうか? ペイントソフトってよく見ると点を打ってるんですよね line2dとそれにコリジョンつけるためのsegment shapeあたりで調べてます http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/130
131: 軌道予測 [] 2024/03/15(金) 14:44:55.65 ID:z+ILEsEI あ、描くのはすんなり行けたナリ(*´ω`*) http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/131
132: 軌道予測 [] 2024/03/15(金) 20:10:53.69 ID:z+ILEsEI https://docs.godotengine.org/ja/4.x/classes/class_segmentshape2d.html segment shapeで太さは指定出来ないっぽい となると頂点を打って、ぐるっと囲む感じでコリジョンを作るって感じなのね http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/132
133: 名前は開発中のものです。 [sage] 2024/03/15(金) 20:19:43.83 ID:v4U5bWGM カプセルとかの単純形状系でもいけそう http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/133
134: 軌道予測 [] 2024/03/16(土) 03:54:55.34 ID:ECp53ZYt ライン描いてそれをコリジョン化する感じ unityならアセットでサクッとできるんだけろうけど、godotだとサンプルが少ないナリ http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/134
135: 軌道予測 [] 2024/03/16(土) 09:40:56.08 ID:ECp53ZYt >>133 Q REMASTEREDとか、あれを単純図形でいけるかな? まあペイントソフトも玉のテクスチャを連続させてるだけだよね http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/135
136: 軌道予測 [] 2024/03/16(土) 12:06:33.95 ID:ECp53ZYt https://imgur.com/a/KTYggOG 単純図形をフレームごとにadd_childしてるのじゃが、一定間隔でadd_childしたとしてもつながるほど短い間隔になる保証はないのだけど、何か方法はありますかね? http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/136
137: 軌道予測 [] 2024/03/16(土) 12:16:39.25 ID:ECp53ZYt elapseTime+=delta if elapseTime >= 0.001: print("hoge") たとえばelapseTimeでこんなふうにして実行しても、フレーム以上の描画スピードにはならんわけよね(*´ω`*) http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/137
138: 名前は開発中のものです。 [sage] 2024/03/16(土) 13:03:45.25 ID:+bq7XejG 2点の線の間を埋めたい時は線形補完を使用する Vector2にlerp()という線形補完メソッドがある 2点の位置ベクトルaとbが存在する時 for t in range(10): var p = a.lerp(b, 0.1 * t) でa-b間を通る位置ベクトルpを10得られる 公式ドキュメント https://docs.godotengine.org/ja/4.x/tutorials/math/interpolation.html http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/138
139: 軌道予測 [] 2024/03/16(土) 13:13:32.53 ID:ECp53ZYt 多分、描いた線をコリジョン化したい場合は、ジオメトリー系を使うみたいです 今から調べます http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/139
140: 名前は開発中のものです。 [sage] 2024/03/16(土) 13:42:11.02 ID:33L2QT9a Qは一定間隔で円なの普通に見てわかるな >>133でカプセルっつってんだからカプセルか間に長方形挟むでもいいと思うけど直線がダメか http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/140
141: 軌道予測 [] 2024/03/16(土) 14:03:51.94 ID:ECp53ZYt 1フレームあたり座標をずらしたものを複数個追加する方法でいけるかもね http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/141
142: 軌道予測 [] 2024/03/16(土) 17:55:12.95 ID:ECp53ZYt ↑駄目だった やっぱりカーソル早く動かすと1フレームあたりの描画量が足りなくて、点々になっちまう(*´ω`*)、、、、 ジオメトリあたり試してみるナリが、godotの場合、線を引いてそれにコリジョンをつけるには何の機能がいいの? http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/142
143: 軌道予測 [] 2024/03/18(月) 06:18:37.02 ID:sBH5kPda line2dにコリジョンつけたいんだけど、方法ある? segmentshapeで太さ出せるだろうか? http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/143
144: 名前は開発中のものです。 [sage] 2024/03/18(月) 12:34:34.92 ID:/glnBgCG SegmentShape2Dで太さは指定できない 厚みを持たせるなら元ネタ同様に球を並べるか二点を通るポリゴンを自分で作る 二点の中点にRectangleShape2Dを置いて傾けるという方法でも可能 http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/144
145: 名前は開発中のものです。 [sage] 2024/03/18(月) 13:18:28.54 ID:/glnBgCG 端の処理を考えたらCaosuleShape2Dの方が綺麗にできる http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/145
146: 軌道予測 [] 2024/03/18(月) 13:26:05.86 ID:sBH5kPda rectangleshape2dだと曲線とか難しそうですね 玉連続の場合、1フレームあたりに複数個追加しないと玉が飛ぶんですが、どういうやり方があるんでしょうか。 http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/146
147: 名前は開発中のものです。 [sage] 2024/03/18(月) 13:30:42.80 ID:/glnBgCG 使える情報は前フレームの座標と現フレームの座標 フレーム間の座標は自分で作るしかない 回答は>>138 http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/147
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 855 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.024s