【軽量】godot engine【無料】 part4 (1002レス)
上下前次1-新
このスレッドは1000を超えました。
次スレ検索 歴削→次スレ 栞削→次スレ
804: 08/17(日)07:00 ID:ZbAJcgXG(2/2) AAS
 はい 
805: 08/17(日)09:26 ID:OtXByaPB(1) AAS
 はいじゃないが 
806: 08/17(日)15:05 ID:9AmcoDI2(1) AAS
 受験で言ったら10数年浪人してるのと同じなのに未だに諦めないのは意味不 
 このままだと10年後も収入ゼロ行進が続くんじゃないの? 
807: 08/19(火)09:10 ID:3t3CLEnJ(1) AAS
 プログラミング苦手なんだが1日1時間からやりゃいいかな? 
808: 08/19(火)10:35 ID:JdP3e7K/(1) AAS
 数学の勉強から 
809: 08/19(火)11:31 ID:GZsC++n5(1) AAS
 落ちこぼれの学年最下位は1日何時間勉強したら偏差値50の平均的な大学に受かると思う? 
810: 08/19(火)13:36 ID:uLkJ1eHB(1) AAS
 下準備とか要らんから作りたいものがあるならさっさと作りなさい 
811: 08/19(火)18:25 ID:jJatJopQ(1) AAS
 作りたいものがあるならBrackeysのチュートリアル動画で今日明日中にGDScriptは終えるべき 
 作りたいものがないなら何もしなくていい 
  
 基本を終えたらChatGPTに「これがやりたい」と伝えればソースコードくれる 
 ソースコードの意味がわからなかったら説明して貰えばいい 
 それでもわからなかったらもっと簡単な実装に変えてくれと言えばいい 
812: 08/20(水)06:35 ID:sxbQP0Ah(1/2) AAS
 connectのcallableってチョウ噛み砕くとつまりなに? 
813: 08/20(水)06:38 ID:w6+HP3Ao(1/3) AAS
 シグナル発呼時に呼ばれる関数名 
814: 08/20(水)06:44 ID:w6+HP3Ao(2/3) AAS
 あ?connect張った側だと着呼か 
 まあCallableクラスは関数を表す 
815: 08/20(水)10:41 ID:sxbQP0Ah(2/2) AAS
 ありがとう 
 思い出してきた 
  
 ってかノードのプロパティにアクセスしてから、カンス名だけ指定したほうがシンプルかなぁ 
 collableの使い所が分からん 
816: 08/20(水)11:26 ID:w6+HP3Ao(3/3) AAS
 自分は1ファイルで見通せる方が好きなのでコードで接続してるが 
 通常はノードで設定した方が設定状況を纏めて見れるし 
 エディタに接続アイコンが表示されるのでシンプルかつ見やすいと思う 
  
 主にシグナル接続をコードで書くのは自前でシグナルを定義した場合になると思うが 
 これもグローバルクラスにすれば標準クラスと同様にノードで設定できる様になる 
  
 connect以外でのCallableの使い所はラムダ関数を使う場合や関数内関数での使用になるかな 
817: 08/20(水)11:26 ID:8BIAqddk(1/2) AAS
 # connect() の Callable とは? 
  
 Godot 4.x から connect() の仕様が変わり、シグナル接続時に Callable クラスを使うようになりました。 
  
 記述例(4.x): 
 button.connect("pressed", Callable(self, "_on_button_pressed")) 
  
 Callable は「あるオブジェクトの特定のメソッドを呼び出すための参照」を表すクラスです。 
 記述例のように connect() によるシグナル接続時に Calalble コンストラクタの第一引数に実行したいメソッドを持つオブジェクト、第二引数に実行したいメソッドを記述します。 
 これらの引数はそれぞれ第一引数はオブジェクト参照、第二引数はそのオブジェクトが持つメソッド名(文字列)となります。 
  
 Godot 4.x では以下のような 3.x の (target, method_name) 形式は廃止され、第2引数に Callable を渡すことが必須になりました。 
  
 記述例(3.x) ※4.x 非対応: 
 button.connect("pressed", self, "_on_button_pressed") 
  
 また上記の記述例(4.x)は以下のショートハンドでも記述可能です。 
  
 記述例( 4.x ショートハンドver.) 
 button.pressed.connect(self._on_button_pressed) 
  
 これは内部的に Callable(self, "_on_button_pressed") を生成します。 
 Godot 公式もこの「Signal プロパティ経由」の記述方法を推奨しており、 
 シンプルかつ Callable を意識せずに利用できるため、実務でもこちらを使うのが一般的です。 
818: 08/20(水)11:28 ID:8BIAqddk(2/2) AAS
 # なぜ Callable を経由するのか? 
  
 簡潔にまとめると、以下のメリットがあります。 
  
 1. 安全性(未定義メソッドを is_valid() で事前検出可能) 
 2. IDE 補完・リファクタリング対応(文字列指定ではできなかった恩恵) 
 3. 統一性(シグナル以外でも「関数参照」として利用可能) 
 4. 柔軟性(ラムダでシンプルに書ける) 
 5. 将来性(Godot 4.x 以降の標準記法) 
819: 08/21(木)07:12 ID:/HImpd/9(1/3) AAS
 tonkusu 
820: 08/21(木)10:04 ID:/HImpd/9(2/3) AAS
 プログラミングっていきなり答え見たほうがいいのか? 
821: 08/21(木)10:26 ID:OYDY07jx(1/8) AAS
 見ないで答えるにはそれを知っていなければならないから最初は必ず見る 
 クイズだとしても知識を持っていなければ答えられない 
 パズルだとしてもルールを知らなければ考えられない 
  
 プログラムとはコンピュータとの対話言語を使った会話 
 言葉を覚えると言う意味では他言語とセオリーは変わらない 
 曖昧さが少ない分覚えやすいまである 
822: 08/21(木)12:09 ID:Ajf2SJxV(1) AAS
 最後はアルゴリズムだからなぁ 
823: 08/21(木)12:24 ID:OYDY07jx(2/8) AAS
 ゲームにおけるデータ処理なら必要なアルゴリズムは辞典読めば事足りると思う 
 ゲームに必要な物ならある程度はエンジンが機能を提供してくれる 
 他がやってない独創的な処理を実装したいなら頭悩ますしかないね 
824: 08/21(木)13:27 ID:zThVp00O(1/3) AAS
 実装したい機能について考え方さえわからない場合も多い 
 Godotではないが答えを見なければ今でも簡単な当たり判定すら実装できていなかっただろうと思う 
825(2): 08/21(木)14:05 ID:/HImpd/9(3/3) AAS
 キャラクターをスイッチしたいのだけども 
 アクティブキャラだけ操作権があって、別キャラと衝突したらそっちに操作権が移る 
  
 シグナルはキャラA,B共にarea2dを使っていてあらかじめ有効化している 
 シグナルのオンオフをいちいち切り替えるのは面倒そうなんで 
  
 a,b両方から衝突のシグナルが飛んでくるんで、フィルタリングしたい 
 フィルタリングの条件分岐に必要な要素って何があるかな? 
  
 現在操作キャラ(a)からのシグナルを無視して、それ以外(b)からのシグナルが来たら、bに切り替えるって流れかな 
 オンオフで対応したほうがシンプルでいいかな 
こういう論理的思考が壊滅的に出来ないみたい 
 練習方法ない? 
826: 08/21(木)14:59 ID:OYDY07jx(3/8) AAS
 自分が理解できない物を論理的に考えるのは無理なのでまず自分が理解できる所まで単純化する 
 コンピュータを指示通りに動く人として捉える 
 相手に自分の考えを伝えるには相手が理解できる言葉を使う 
 相手がどこまで理解できているかを想像する 
  
 >>325の例題を要約すると以下の感じであってるかな? 
 「アクティブ時にのみ操作可能なキャタクターが複数存在する」 
 「操作キャラクターが操作可能キャラクターに衝突すると操作権が衝突した相手に移る」 
 相手が理解しやすい単純な説明を心がける 
 まず概要を伝えて会話する為の基礎を築く 
 シグナルとかArea2Dだとか複雑な話題はなくて良い 
 相手と共通認識ができたらより複雑な話題へ移る 
  
 こんな感じで物事を単純化してそこから徐々に複雑化していく 
 練習方法としては相手が知らない事を説明する事、仕様書を書いて読んで貰う事かな? 
 場を作るのが難しいけどディスカッションを多数こなすのが良いのではないかな 
827: 08/21(木)15:00 ID:OYDY07jx(4/8) AAS
 >>325でなくて>>825だったわ 
828(2): 08/21(木)15:57 ID:OYDY07jx(5/8) AAS
 必要なのかどうか判らんが>>825の制御方法を回答するなら以下かな 
 操作可能キャラクターに現在操作権があるかどうかを判定するアクティブフラグを持たせる 
 操作はフラグが有効な場合にのみ処理する 
 衝突シグナルの発呼はフラグが有効な場合にのみ処理する 
 衝突シグナル発呼後にフラグを無効にする 
 衝突シグナル着呼時にフラグを有効にする 
829(2): 08/21(木)17:37 ID:zThVp00O(2/3) AA×

外部リンク:pastebin.com
830: 08/21(木)18:26 ID:OYDY07jx(6/8) AAS
 ゲームマネージャがアクティブなキャラクターを保持する方式だね 
 その方が今誰がアクティブなのかが即判るので良いかもね 
  
 一つ気になる点としてはAの処理とBの処理の処理順でAが先に処理される場合 
 キャラクターAがBに衝突した際にアクティブキャラクターをBに更新してしまうと 
 その後のB側の衝突処理でBは自分がアクティブキャラクターと認識してAに更新してしまうのではと思う 
 さてどうかな? 
  
 仕様を誰でも判りやすい言語化するのはAIとの対話にも役立つと思うよ 
831: 08/21(木)18:35 ID:OYDY07jx(7/8) AAS
 ちょっと訂正、後から文章足したからキャラクターAの登場がずれた 
  
 キャラクターAとBが存在する時にAとBの処理順がAが先に処理される場合 
 AがBに衝突した際にアクティブキャラクターをBに更新してしまうと 
 その後のB側の衝突処理でBは自分がアクティブキャラクターと認識してAに更新してしまうのではと思う 
832: 08/21(木)19:10 ID:zThVp00O(3/3) AAS
 おっしゃる通りキャラAからキャラBにタッチした時にB側の_on_area_enteredが実行されて再度キャラAに操作権が渡る可能性があるため(物理サーバーがシグナルを発火させる順番に依存するため100%ではない) 
 「アクティブ側だけが切替処理を実行」「同じ物理フレームでの多重切替を禁止」の処理を盛り込む必要ありです 
  
 流石です 
833: 08/21(木)19:31 ID:OYDY07jx(8/8) AAS
 AIが使えるとかなり捗るね 
  
 自分の上げた>>828方式だと発呼するのが一人だけなのが保証されているので複数による切り替えは発生しない 
 >>829方式の場合はもうひと工夫が必要 
  
 これもやり方は色々あるけど一つ方法を挙げておくと 
 即時にアクティブキャラクターを更新するのが問題の発生原因なので更新処理を遅延させる 
 call_deferredを使用すると現フレームと次フレームの間に処理が行われるのでこれを利用する 
  
 より具体的にはアクティブキャラクター更新処理を関数化してcall_deferredで呼ぶ 
 自分で使うならこう書くんだけど行儀が良くないコードなので実用するなら適宜直してね 
  
 (func():gm.active_char = other_char).call_deferred() 
上下前次1-新書関写板覧索設栞歴
あと 169 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.044s