[過去ログ]
【軽量】godot engine【無料】 part3 (1002レス)
【軽量】godot engine【無料】 part3 http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
41: 名前は開発中のものです。 [] 2024/02/27(火) 17:58:16.94 ID:BNNCM4m5 https://www.youtube.com/watch?v=2eqRX3rZrZE 予測軌道の描画かなり難しそうなんだけど、簡単にやる方法ないかな? 仮の弾丸を発射させることを考えてみたけど http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/41
42: 名前は開発中のものです。 [sage] 2024/02/27(火) 18:34:17.04 ID:zilPbKX1 コードを書き忘れないにはテンプレート化して最初からコードが書かれている状態にする https://docs.godotengine.org/ja/4.x/tutorials/scripting/creating_script_templates.html 予測軌道を描きたければ物理エンジンに頼らず自前の物理演算式を用意する https://karanokan.info/2018/08/01/post-672/ http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/42
43: 名前は開発中のものです。 [] 2024/02/28(水) 10:16:40.11 ID:Dy7hE2G/ >>42 カスタムテンプレートってコピペと大差ない? characterbodyには最初から付いてるね >>42 なるほど characterbodyのスクリプトで弾丸を動かすのですか。 rigidbodyを使ったら予測が難しくなりますか。 http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/43
44: 名前は開発中のものです。 [sage] 2024/02/28(水) 10:41:06.33 ID:iBFNXgc5 テンプレートは自動化されたコピペ、自動なら手間要らずで忘れる事もない contact_monitorに関しては処理が重いから初期値がオフなので そこを意識しないと別な問題を誘発する 予測軌道を描くには点や線の座標が必要になる RigidBodyを使って座標取得はできなくはないが手間が掛かる RigidBodyを使う場合はどうすればできるか考えてみて欲しい その手間を無くす為に自前で座標を計算する http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/44
45: 名前は開発中のものです。 [] 2024/02/28(水) 11:10:36.60 ID:Dy7hE2G/ >>44 ありがとう チャレンジしてみます 確かにrigidbodyを使う場合、物理エンジンの中?に触らないといけないイメージ http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/45
46: 名前は開発中のものです。 [sage] 2024/02/28(水) 11:21:17.38 ID:iBFNXgc5 物理エンジン内は触れないから 状態を保存し必要な所まで時間を進めて座標を取得し状態を戻す手順になる 文章にすると一行だが状態の保存と復元は処理コストがとても高い ゲーム物理はなんちゃってで十分なので本格的演算は不要 初速と重力加速度だけでそれっぽく動く http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/46
47: 名前は開発中のものです。 [] 2024/02/28(水) 12:31:35.28 ID:Dy7hE2G/ https://karanokan.info/2018/08/01/post-672/ >>46 これはあえて、rigidbodyを使ってやってるんでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/47
48: 名前は開発中のものです。 [sage] 2024/02/28(水) 13:06:22.58 ID:iBFNXgc5 そのスクリプトは黒で予測軌道を描く部分だけでRigidBodyを使った計算はしていない 19行目が初速 vel = new Vector3(initVel * Mathf.Cos(angle), initVel * Mathf.Sin(angle), 0); 33行目が重力加速 y = vel.y * time - 0.5f * gravity * time * time; 時間毎に線分を描いている 実行結果はRigidBodyを使って線分通りに動くかの確認 RigidBodyと全く同じにしようすると計算が若干複雑になる y = vel.y * time - 0.5f * gravity * (time * time + time * Time.fixedDeltaTime); 適当に見繕った参考ページでUnityの例なのでRigidBodyの挙動は異なる可能性がある RigidBodyを模倣するより座標を自前計算する方が楽 http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/48
49: 名前は開発中のものです。 [] 2024/02/28(水) 15:11:50.00 ID:Dy7hE2G/ ありがとう 一定間隔で座標を取る感じですね http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/49
50: 名前は開発中のものです。 [] 2024/02/29(木) 12:21:24.56 ID:DIGOgAn2 characterbodyでボールの挙動をする場合、バウンドやフリクションの設定も自分で作る感じでしょうか? move_and_collideで初速と重力は出来ました http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/50
51: 名前は開発中のものです。 [sage] 2024/02/29(木) 12:53:46.44 ID:HPBXgIgC 反射や摩擦も反映して予測軌道として表示したければそうなる 実現は可能だが要素を足せば足すほどコードも複雑になる 全ての物理現象に対して予測線は必要なのか動作停止まで予測線を描くのか? 何をしたいかによるが自分なら射出方向と最初のヒットまで表示できていれば十分とする ゲームでそこまで処理している例が思いつかないが何か知っている物はあるかい? 投擲武器で反射後まで予測してるのはあった気はするが実装としてはコスト高 大抵は最初の接触点までで最後まで反射させるのは直線移動の物だと思う http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/51
52: 名前は開発中のものです。 [sage] 2024/02/29(木) 13:09:07.90 ID:HPBXgIgC 反射や摩擦を含んだ挙動が必要ならRigidBodyを使うと良い 予測線処理に自前演算を勧めたが最初の接触までの予測はそれで行い 実際の挙動はRigidBodyに任せるという方法も取れる 自前演算と標準の演算で結果に差がでるかもしれないが誤差で許容する どれくらいの精度が必要か開発コストは見合っているかの判断が要求される http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/52
53: 名前は開発中のものです。 [] 2024/02/29(木) 13:10:48.11 ID:DIGOgAn2 ありがとうございます 反射後の予測軌道ではなくて、単にブロック崩しのような壁バウンドを作りたかったです(重力あり) 説明が悪かったです frictionの記事は見つかりました バウンドは単純にノーマルを逆にすればいいんですね コードでやるのは初めてなので http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/53
54: 名前は開発中のものです。 [] 2024/02/29(木) 13:14:39.43 ID:DIGOgAn2 >>52 そっちのほうがスマートかもしれないですね http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/54
55: 名前は開発中のものです。 [sage] 2024/02/29(木) 13:18:05.73 ID:HPBXgIgC ブロック崩しで良いなら 反射は反転で良いし壁に角度があってもそれほど処理は複雑にならない 摩擦も壁に当たったら適当に減速で良い 厳密な物理シミュレーションする必要がなければ自分で作った物理法則で問題ない 予測軌道で最初の方向性を示すだけで良いならRigidBodyに任せるのが楽 http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/55
56: 名前は開発中のものです。 [] 2024/02/29(木) 14:26:27.07 ID:DIGOgAn2 https://youtu.be/D562d3qd98M?si=5RayWB3a3dH67mpb&t=22 こんな感じの物理ありのものですね 玉の動きを見ると物理っぽくない感じです http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/56
57: 名前は開発中のものです。 [] 2024/02/29(木) 14:26:37.93 ID:DIGOgAn2 peglinというゲームです http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/57
58: 名前は開発中のものです。 [sage] 2024/02/29(木) 15:14:10.01 ID:HPBXgIgC 放物線を描いてるから重力はある物理演算だね 予測軌道は初回ヒットまででヒット後は軌跡を描いて跳ね返り表現 単純だから自前でやっても良いしRigidBodyでやっても良い RigidBodyの方が物理パラメータ色々弄るの楽だからRigidBodyを勧めるかな 今までの知識を纏められたら同じ物は作れるんじゃない? http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/58
59: 名前は開発中のものです。 [] 2024/02/29(木) 17:11:25.31 ID:DIGOgAn2 どうもです じゃあ勉強がてらコードでやってみます http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/59
60: 名前は開発中のものです。 [] 2024/02/29(木) 17:16:30.98 ID:DIGOgAn2 まよったらエンジンに頼らない方向で作成してみる 難しすぎて出来ないことならともかく http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/60
61: 名前は開発中のものです。 [] 2024/02/29(木) 20:06:33.97 ID:DIGOgAn2 何度もごめんなさい https://youtu.be/174vFOCbONI?si=RU6NyS9XwuCQzUUT&t=133 よくあるブロック崩しはこの動きですが、スクリプトだと勢いが徐々に減算していく動きっていうのは難しいんでしょうか。 http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/61
62: 名前は開発中のものです。 [sage] 2024/02/29(木) 20:28:47.87 ID:HPBXgIgC 衝突時や毎フレーム速度を減少する 空気抵抗的に徐々に速度を落とすなら毎フレーム減速すれば良い コードで実現するのは難しいと思い込んでいる様に思われるが少し違う 再現したい事象はどういう式で成り立っているかの数学的知識が求められている 演算式をコード化するのは機械的作業でしかない http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/62
63: 名前は開発中のものです。 [sage] 2024/02/29(木) 20:34:52.28 ID:QQLqWhwV ていうか張り付けた動画に>>62の言ってる衝突時の減衰のヒントあるよね、ちゃんとコード読もう http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/63
64: 名前は開発中のものです。 [sage] 2024/02/29(木) 20:51:41.92 ID:HPBXgIgC リンク再生して等速運動しかしてないなって思ってたが時間指定付いてたの気が付いてなかったわ 確かに動画内で説明してるな 今は英語判らなくても自動翻訳で日本語字幕付けられるから上手く使う癖は付けた方が良いな とは言え自分も先日どうしても判らない処理の解説が動画しかなかったので翻訳も付けて見てみたが やっぱり判らなかったので苦手意識があると内容が理解し難くなるってのはあるかもね http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/64
65: 名前は開発中のものです。 [] 2024/03/01(金) 12:37:24.64 ID:NSS/yx2e >>62 >>63 ありがとうございます 多少の数学の知識が必要になるんですかね 公式など探してみます http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/65
66: 名前は開発中のものです。 [] 2024/03/01(金) 13:22:36.85 ID:NSS/yx2e 物理エンジンもこのようにコードで制御しているのでしょうか より複雑でしょうけども http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/66
67: 名前は開発中のものです。 [sage] 2024/03/01(金) 16:40:07.75 ID:7q9U3fNz ゲームエンジンも物理エンジンもプログラム 昔は全部自分で作っていたものがライブラリ化されエンジンとなった 既にある同じ目的のコードを自前で書くのは無駄なのでエンジンが使われる 既にある物を自前で作るのは「車輪の再発明」と言われ忌避される事が多い しかしながら原理を知らずに使っていると様々な弊害もあるので 同じ物を作れなくともある程度の理解はあると良い エンジンが望み通りに動かないなら自分で対処する事になる 数学や物理学に対して開発者はどうあるべきかは以下の「まえがき」を読んでみて欲しい https://codezine.jp/article/detail/10873 http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/67
68: 名前は開発中のものです。 [] 2024/03/01(金) 17:18:58.23 ID:NSS/yx2e >>67 上のpeglinくらいんものはコードでやってみます(*´ω`*) http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/68
69: 名前は開発中のものです。 [sage] 2024/03/01(金) 17:44:41.28 ID:WaedCGGn 軌道予測はgodotの物理だと予測用のオブジェクト用意した上で実際に動かして軌跡保存してみたいな手法はあるみたい? https://github.com/godotengine/godot-proposals/issues/2821#issuecomment-1941706422 http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/69
70: 名前は開発中のものです。 [] 2024/03/01(金) 17:47:21.10 ID:NSS/yx2e https://www.sbcr.jp/product/4797376999/ そういえばこれを持っていたけど、このくらいの理解では足りないのかな? この本のあまり理解出来なかったけど http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/70
71: 名前は開発中のものです。 [sage] 2024/03/01(金) 18:08:03.91 ID:7q9U3fNz 知識は多ければ多い方が良い 無駄知識でも間違った情報でもそうだと知っていれば役に立つ事もある その本は題目を見る限りでは有用な情報なので理解できるならその方が良い 内容が難しく理解出来ないならもっと簡単な所から進めるべき 原理を理解できなくても目的通りにエンジンを使えていれば及第点 コードで目的を達成する手段があれば十分 何かあった時に自分で対処する為にそれらの知識が必要 知識が多い方が解決手段を多く選べる http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/71
72: 名前は開発中のものです。 [sage] 2024/03/01(金) 18:16:46.47 ID:7q9U3fNz >>69 move_and_collideを1フレーム中に連続使用するのは思いつかなかった この方法で行けそうな気はするね 自前でやると誤差が気になったのでエンジンに任せられるならその方が良いね http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/72
73: 名前は開発中のものです。 [] 2024/03/01(金) 18:25:11.08 ID:jbulu0J9 すいません、初心者ですが質問させてください。 数学で言えば、1.7320508のアークタンジェントは約60ですよね? でも、godotで print(atan(1.7320508)) と書いても print(atan2(1.7320508 , 1) と書いても、 1.04719.......と謎の数字を返してきます。 これは何の数字ですか? 座標から角度を求めるのってどうやればいいんでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/73
74: 名前は開発中のものです。 [] 2024/03/01(金) 18:30:36.78 ID:NSS/yx2e >>71 ありがとう 物理なしでやります 案外、脱線しているときにアイディアでたりしますしね(*´ω`*) http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/74
75: 名前は開発中のものです。 [sage] 2024/03/01(金) 18:36:19.64 ID:7q9U3fNz 戻り値に想定している単位が違うのじゃろ print(rad_to_deg(atan(1.7320508))) print(rad_to_deg(atan2(1.7320508, 1))) http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/75
76: 名前は開発中のものです。 [sage] 2024/03/01(金) 18:40:34.74 ID:l95YCyF0 >>73 2π(6.28...)が360°のラジアン(弧度法) http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/76
77: sage [] 2024/03/01(金) 18:44:28.99 ID:jbulu0J9 >>75、76 あーラジアンでしたっけ… もともと数学苦手なうえにもう忘れてました rad_to_degって組み込み関数があるんですね 覚えておきます ありがとう http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/77
78: 名前は開発中のものです。 [sage] 2024/03/01(金) 18:47:49.94 ID:7q9U3fNz ちょっと回答が投げやりすぎた 座標から角度の変換はVectorクラスに便利メソッドあるからそれ使うと良いよ print(rad_to_deg(Vector2(1, 1).angle())) http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/78
79: 名前は開発中のものです。 [] 2024/03/02(土) 06:26:20.23 ID:fHi1iYWZ godotって3dオブジェクトを2dとして扱う機能はないんですよね。 unityのように http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/79
80: 名前は開発中のものです。 [] 2024/03/02(土) 11:35:55.96 ID:fHi1iYWZ エディタをフローティングにすると画面大きくて使いやすい 今まで気づかなかった(*´ω`*)、、、 http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/80
81: 名前は開発中のものです。 [] 2024/03/02(土) 11:37:49.45 ID:fHi1iYWZ しかし、gptがあるとだいぶ楽だねぇ godot4には対応してないみたいだけど http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/81
82: 名前は開発中のものです。 [sage] 2024/03/02(土) 19:41:02.09 ID:2foM6lQ9 無いわけじゃないけど 自分の知る限りはビューポート使うか3D素材をgodot外で2Dに起こすくらいじゃないか もっと効率のいい方法があるなら自分が知りたいくらいだ じゃなきゃ最初から3Dシーンで2.5Dゲーム作るほうが早いだろうな http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/82
83: 名前は開発中のものです。 [sage] 2024/03/03(日) 02:31:35.80 ID:EG5KL4S5 Unityは3Dオブジェクトを2Dにしてるんじゃなくて2Dを全部3D空間上に配置してて、2Dのテンプレートも内部的には全部3Dだからそういうことができてるように見せかけてるだけ http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/83
84: 名前は開発中のものです。 [] 2024/03/03(日) 04:50:28.56 ID:UwGRXxZo あの2d表示が便利だなと思うこともありますよね 3dから2d素材作るために一度画像にレンダリングしないといけないのも手間ですし http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/84
85: 名前は開発中のものです。 [] 2024/03/03(日) 04:55:09.45 ID:UwGRXxZo スキルもないしコツコツと小さいクソゲー作るしかないね http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/85
86: 名前は開発中のものです。 [] 2024/03/03(日) 06:30:48.29 ID:UwGRXxZo 他人のコードを読む能力がないわ 難しいね 他人のコードは http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/86
87: 名前は開発中のものです。 [] 2024/03/04(月) 14:33:40.24 ID:Y8uyU2JR 質問なんですが、下にあるデバッガーの位置は変更出来ないのでしょうか? 少し邪魔に感じることがあり、フローティング表示にしたいのですが http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/87
88: 名前は開発中のものです。 [sage] 2024/03/04(月) 14:39:30.96 ID:MRQbhd4x >>69 コードをコピペして動かしてみた 予測軌道は描けたが実際のRigidBodyの挙動とは同じにならなかったので調整は必要そう 書かれていない初期設定部分で正しく調整されているのかも知れない 物理エンジンは自分の思い通りに動かない事が多くて悩ましい http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/88
89: 名前は開発中のものです。 [sage] 2024/03/04(月) 14:47:11.25 ID:MRQbhd4x >>87 フローティングボタンが付いてないのだから出来ないのだろう 現在開いているタブクリックで最小化するので十分ではないのか? http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/89
90: 名前は開発中のものです。 [] 2024/03/04(月) 15:15:45.96 ID:Y8uyU2JR ありがとう 諦める 実行すると勝手に開いたりするのが煩わしいなと感じて http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/90
91: 名前は開発中のものです。 [sage] 2024/03/04(月) 15:49:14.81 ID:MRQbhd4x [エディタ設定][実行][出力][Always Open Output on Play]をfalseにする 変更反映はエディタ再起動後 http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/91
92: 名前は開発中のものです。 [] 2024/03/04(月) 16:51:04.53 ID:Y8uyU2JR ありがとう http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/92
93: 名前は開発中のものです。 [] 2024/03/04(月) 18:19:56.65 ID:Y8uyU2JR extends Node2D var line2d_node:Line2D var mouse_pos func _ready() -> void: line2d_node = get_node("Line2D") func draw_to_cursor(): for i in range(1): # 点を打つ処理 var line_point = self.position line2d_node.add_point(self.position) line2d_node.add_point(mouse_pos) print("draw") line2d_node.clear_points() 連投すみません 数時間やって解決出来なかったので質問させてください 上で放物線の質問をしたものです。 自キャラを起点としてマウス位置にline2dを伸ばしたいのですが、描画されません。 画像のように線を1本だけ描きたい感じです clear_points関数がなければ描画されるので、この部分の処理がまずいのだと思います。 inputでdraw_to_cursorを実行しているので、マウスを動かしたときに処理が走りますが、瞬時に消えてしまうから問題なのだと思います。 しかし、process内でやってもすぐ消えてしまいます(ラインが描画されない)。 sssp://o.5ch.net/22nar.png http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/93
94: 名前は開発中のものです。 [sage] 2024/03/04(月) 18:58:36.71 ID:maXrH/rV 点追加→描画→クリアじゃなくて最初にクリアしてから点を追加する様にすればいいんじゃない? それかLine2dは使わずdraw_line()で描くとか http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/94
95: 名前は開発中のものです。 [sage] 2024/03/04(月) 21:05:07.83 ID:MRQbhd4x ほぼ正解なのに後一考が足りないのが惜しい clear_points()が何をする命令かを理解し 処理の最後にclear_points()するとどうなるのか考えれば自明だと思うのだがな http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/95
96: 名前は開発中のものです。 [] 2024/03/05(火) 05:33:04.51 ID:NetOoeu2 リファレンス見直してみます ありがとう 消し方の部分ですね http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/96
97: 名前は開発中のものです。 [] 2024/03/05(火) 06:35:57.44 ID:NetOoeu2 godotってaiインテリセンスとかないのですかね? visual studioのあれは楽すぎてビビった記憶があります 先の先まで先読みしてくれるので http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/97
98: 名前は開発中のものです。 [] 2024/03/05(火) 12:37:06.97 ID:NetOoeu2 >>95 こんなふうに描画関数内の削除ではなく、フレーム内で削除するようにしたらうまくいきました。 どうもコードの流れが分かってないみたいです https://imgur.com/a/GgVKnGF 図にしてみましたがこれの違いを言語化出来ないでしょうか? https://ideone.com/hZmhwc extends Node2D var line2d_node:Line2D var mouse_pos func _ready() -> void: line2d_node = get_node("Line2D") func _process(delta: float) -> void: mouse_pos = get_global_mouse_position() line2d_node.clear_points() if Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT): draw_to_cursor() func draw_to_cursor(): for i in range(1): # 点を打つ処理 var line_point = self.position line2d_node.add_point(self.position) line2d_node.add_point(mouse_pos) print("描画") http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/98
99: 名前は開発中のものです。 [] 2024/03/05(火) 13:32:23.84 ID:LGdF4KOk 図表が何の例なのかが判らないのでそれとは違う話をする GUIアプリはライフサイクルに従って動作する Godotの良い例が見つからなかったのでUnityのライフサイクルを元に話を進める https://docs.unity3d.com/Manual/ExecutionOrder.html 図中の処理を以下の様に読み替えて欲しい Awake=_init() Start=_ready() FixedUpdate=_physics_process() OnMouseXXX=_input() Update=_process() ここで注視するのは画面描画のタイミングでそれは各種Renderingのステージで行われる Initialization:初期化 Physics:物理演算 Input events:入力反映 Game logic:ゲーム処理 を経て、それらの処理で作られた描画データを元に描画が行われる 描画後は物理演算から繰り返し これはUnityの例なのでGodotにおいては実行順が異なる可能性がある http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/99
100: 名前は開発中のものです。 [sage] 2024/03/05(火) 14:58:24.96 ID:2jT49Fhn そもそもdraw_to_cursor内に描画処理は入ってない add_pointは後から_draw()で描画される事になる線を構成する点を追加するというだけ http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/100
101: 名前は開発中のものです。 [sage] 2024/03/05(火) 16:14:33.95 ID:WbtfMd0/ >>97 vscode経由でやればできるにはできるけど gdscriptだと実用レベルのコードはほぼでないよ http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/101
102: 名前は開発中のものです。 [] 2024/03/06(水) 06:26:28.33 ID:0YKHfOtY >>99 返信遅れてごめんなさい 寝不足でずっと寝てました >>100 あっそうか、マウスクリック時にしか描画されないという点が問題だったんですね >>101 unity c#より記述量少ないからなくてもいいかもですね http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/102
103: 名前は開発中のものです。 [sage] 2024/03/06(水) 06:39:24.06 ID:xC/Ga180 自分は同じような内容列記するときだけ使ってるかな APIの使い方が間違ってたり、文法がおかしかったりと普段使いはむしろ邪魔 http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/103
104: 名前は開発中のものです。 [] 2024/03/06(水) 06:45:51.37 ID:0YKHfOtY 放物線あと2日くらいで完成させる(*´ω`*) http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/104
105: 名前は開発中のものです。 [] 2024/03/06(水) 06:49:31.06 ID:0YKHfOtY インテリコードっていう呼び名でしたっけね http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/105
106: 名前は開発中のものです。 [] 2024/03/06(水) 17:57:53.24 ID:0YKHfOtY is_mouse_button_pressedはありますけど、 マウスにjust pressed系はないんですかな? http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/106
107: 名前は開発中のものです。 [] 2024/03/06(水) 18:12:02.85 ID:0YKHfOtY あっ、action pressのほうでやるんすね ごめんなさい(*´ω`*) http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/107
108: 名前は開発中のものです。 [sage] 2024/03/06(水) 18:15:22.40 ID:mNCkxtfo そもそもjust pressedはactionにしかない http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/108
109: 名前は開発中のものです。 [] 2024/03/07(木) 14:31:20.08 ID:pWb+fA4v >>105 IntelliCodeはGDScriptに対応してないね VSCodeでGDScriptを書いても無理だわ http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/109
110: 名前は開発中のものです。 [sage] 2024/03/07(木) 15:51:23.86 ID:qvtd0tl6 今日仕入れた豆知識 ランダムでtrueかfalseの2択を使いたい時 var random : bool = randf() > 0.5 この1行でOK http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/110
111: 名前は開発中のものです。 [] 2024/03/08(金) 10:20:06.16 ID:G13/EPQ6 randiの方が早いよ http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/111
112: 名前は開発中のものです。 [sage] 2024/03/08(金) 15:09:31.48 ID:4aurAYnx 速度詰めるなら(randi() & 1) == 1;とか? http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/112
113: 軌道予測 [] 2024/03/08(金) 19:43:07.94 ID:vGL0nvHr 軌道予測の者です 考え方として、予測軌道を描きたい場合、軌道予測用のオブジェクトを一度投げないと、ポイントを取得出来ないのではないでしょうか? 物理を使わない場合、方角と力の値があれば、そこから事前に予測出来るのでしょうか? 方法を思いつかなかったので質問させてください >>109 ですよね(*´ω`*) http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/113
114: 名前は開発中のものです。 [sage] 2024/03/08(金) 23:32:43.87 ID:Eb0+PHr0 >>69 >>88の解決法が判った 予想通り初期設定が足りていなかった RigidBody2Dのcustom_integratorを有効にする事できっちり同じ挙動になった 衝突まで出来たが反射が出来てないので課題は残る http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/114
115: 名前は開発中のものです。 [sage] 2024/03/08(金) 23:52:05.37 ID:Eb0+PHr0 >>112に補足 速さを求めるなら==は要らない bool型に代入すると型変換で遅くなるので代入するならint型 var random:int = randi() & 1 しないなら if randi() & 1: pass だけどゲームで使う分には誤差だから判りやすい記述が良いと思う http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/115
116: 名前は開発中のものです。 [sage] 2024/03/09(土) 00:57:45.63 ID:TY4JoG/O >>113 >物理を使わない場合、方角と力の値があれば、そこから事前に予測出来るのでしょうか? できる 予測用のオブジェクトを投げなくても計算で求められるが RigidBodyがやってくれている計算と同等の処理は必要 ノードツリーにSprite2Dがあるとして以下のコードで右上方向に投げた場合の再現ができる var d:Vector2 = Vector2(500, -500) #初期運動量 func _physics_process(delta: float) -> void: d += Vector2(0, 980.0 * delta) #運動量に経過時間分の重力加速度を加算 $Sprite2D.position += d * delta #座標に経過時間分の運動量を加算 リアルタイム制のゲームは座標計算→描画を繰り返し行うのが基本 前回の座標計算からの経過時間を元に計算を行う 概ね運動量に経過時間を掛ける事で求められる http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/116
117: 名前は開発中のものです。 [sage] 2024/03/09(土) 01:59:11.51 ID:TY4JoG/O 言い回しは運動量dじゃなく速度velocityとした方が良いかな? http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/117
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
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 881 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.013s