Godotで避けゲー 2Dチュートリアルにチャレンジ【GodotEngine】

Поделиться
HTML-код
  • Опубликовано: 26 янв 2025

Комментарии • 43

  • @Kiwi_brand2004
    @Kiwi_brand2004 Год назад +28

    皆さんこんにちは、私はペルー出身です。ラテンアメリカのこの素晴らしいビデオ ゲーム エンジンが世界のこの地域で使用されていることを嬉しく思います。 続けてください、幸運を祈っています

  • @nemooom7585
    @nemooom7585 Год назад +7

    「最近Godotが話題だよね」 なぜ話題になっているのか言わないところに、Un◯tyへの優しさを感じました(笑)

  • @ぽちとろ
    @ぽちとろ 7 месяцев назад

    基本的な使い方が学べた気がします。
    良い動画をありがとうございました!

  • @Maru_Inuno
    @Maru_Inuno Год назад

    無茶苦茶分かりやすいです!
    ありがとうございます!!

  • @大場勇弥-s1q
    @大場勇弥-s1q 9 месяцев назад

    今ごろすみません。
    17:10で以下のようなエラーがでます。
    バージョンは4.2.1です。
    main.gd:35 @ _on_mob_timer_timeout(): Node not found: "MobPath/MobSpawnLocation" (relative to "/root/Main").

    • @logic-lab
      @logic-lab  9 месяцев назад +1

      MobPath/MobSpawnLocation
      ノードが見つからないというエラーがでているので
      Mainの子にMobPathノードがあるか
      MobPathノードの子にMobSpawnLocationノードがあるかをチェックして下さい。
      名前が間違っている場合もエラーになってしまうので
      ノードの名前と、パスの名前が一致しているかもチェックしてみて下さい。
      親子関係が間違っているときもエラーになってしまいます。
      ほかのノードの子に入っていないかをチェックしてみて下さい

  • @Noob-wv9ju
    @Noob-wv9ju Год назад +1

    今更ながら失礼します。動画を拝見して自分もチュートリアルに取り組んでみたところ、他の方と同じく17:10のところで何も表示されなくなりました。同コメントの対策手段から様々な場所にブレイクポイントを置いて一時停止をさせたところ、Mainシーンの_readyメソッドが読み込まれていないことがわかりました(同メソッドのnew_game())の行にブレイクポイントを置いたところ一時停止せず)。解決のためのご意見を頂けると恐縮です。バージョンは4.1.3です。

    • @Noob-wv9ju
      @Noob-wv9ju Год назад

      追記 現在のシーンを実行、から再生するときちんと動作しました。普通に再生ボタンを押すとやはり何も映りません

    • @Noob-wv9ju
      @Noob-wv9ju Год назад

      追記2 また、実行できるようになると、敵の出現位置が外周ではなく一回り小さい四角形であることもわかりました。
      ビューポート等プロジェクト設定を再確認しましたが、間違っている点はありませんでした。
      正直わけがわかりません。

    • @logic-lab
      @logic-lab  11 месяцев назад

      @@Noob-wv9ju すでに他のシーンをメインシーンに設定しているかもしれません。ファイルシステムドックの main.tscn を右クリックして「メインシーンとして設定」を選択してみてください。

  • @iron-divider
    @iron-divider Год назад +1

    すみません、hide()で隠したプレイヤーを再度出現させるプログラムはどこですか?
    17:08 のテストで自キャラと敵が全く出てきません。

    • @logic-lab
      @logic-lab  Год назад

      show()で表示させることができます

    • @iron-divider
      @iron-divider Год назад

      @@logic-lab ありがとうございます!試してみます

    • @iron-divider
      @iron-divider Год назад

      できませんでした。動画を何度か見直しチェックしましたが間違いを見つけられませんでした。
      StartTimerあたりにミスがありそうですが、エラーもないので手がかりがありません。

    • @logic-lab
      @logic-lab  Год назад +1

      @@iron-divider ​ソースコードの行数が書いてあるところをクリックするか
      F9ボタンで一時停止マークをつけられるので
      気になるところでストップさせてみてください。
      ストップさせた状態で
      シーンドック(ツリーが表示されているところ)の
      「リモート」「ローカル」と書かれた部分を
      「リモート」にしてみて下さい
      現在使われているノードが表示されるので
      プレイヤーや敵などをクリックして
      インスペクターからパラメーターをチェックして
      座標やVisibleがどうなっているか確認してみると
      なにかわかるかもしれません。
      また、シグナルが接続されているかどうかも
      もう一度チェックしてみて下さい。

    • @古里まもじ
      @古里まもじ Год назад

      画面の左下方面にあるファイルシステムのタグにあるリストの中にmain.tscnがあるはずですのでそれを右クリックしてメインシーンに設定してください

  • @nthdthdyjsehsnw4ethwbt
    @nthdthdyjsehsnw4ethwbt Год назад +2

    未だに4.0の日本語のチュートリアルがver3っぽくて色々破壊的変更あるのに変わってないから英語のリファレンスと行き来しなきゃ正常に動作しないの早めに直してほしいね

  • @touroreo2711
    @touroreo2711 7 месяцев назад

    13:54 で追加したスクリプトはどこに何と言う名前で保存されたんですか?それと拡張子という概念はあるのでしょうか

    • @logic-lab
      @logic-lab  7 месяцев назад +1

      「ノードにスクリプトをアタッチする」のウィンドウの中に
      「パス」という欄があります
      ここに書かれているパスに、保存されています。
      動画ではres://main.gdとなっていますので
      プロジェクトフォルダの直下に、main.gdという名前でスクリプトが保存されている
      という意味になります。
      もしフォルダの中に入っていたら
      res://フォルダ名/main.gdのようなパス名になります
      拡張子は.gdでGodotScriptを表しています。

    • @touroreo2711
      @touroreo2711 7 месяцев назад

      @@logic-lab 丁寧にありがとうございます!左上のMainシーン(型:ノード)とファイルシステムのmain.gdとmain.tscnが頭の中でごっちゃになってました。(私はUnity等も経験ないので(?

    • @logic-lab
      @logic-lab  7 месяцев назад +1

      @@touroreo2711 はじめは分かりづらいですよね><
      わたしもGodotEngineはまだまだ勉強中なので
      いっしょにがんばりましょう

  • @blenderEvd
    @blenderEvd Год назад

    英語のチュートリアルのオリジナル作者として GDQuest について言及する価値はあったと思います

  • @おがけん3
    @おがけん3 6 дней назад

    すみません、バージョンは4.3なのですが、
    extends Area2D
    @export var speed = 400
    var screen_size
    # Called when the node enters the scene tree for the first time.
    func _ready():
    screen_size = get_viewport_rect().size
    # Called every frame. 'delta' is the elapsed time since the previous frame.
    func _process(delta):
    var velocity = Vector2.ZERO
    if Input.is_action_pressed("move_right"):
    velocity.x += 1
    if Input.is_action_pressed("move_left"):
    velocity.x -= 1
    if Input.is_action_pressed("move_up"):
    velocity.y += 1
    if Input.is_action_pressed("move_down"):
    velocity.y += 1

    if velocity.length() > 0:
    velocity = velocity.nomalized() * speed
    $AnimatedSprite2D.play()
    else:
    $AnimatedSprite2D.stop()

    position += velocity * delta
    position = position.clamp(Vector2.ZERO,screen_size)
    このように書いても6:04の所でエラーがでてしまいます。

    • @logic-lab
      @logic-lab  5 дней назад

      nomalizedの部分、つづりがちがうみたいです

      normalized
      また、エラー文を貼ってもらうと特定しやすいです

    • @logic-lab
      @logic-lab  5 дней назад

      あと、move_upとmove_downがどちらもy+1になっているので
      upのほうはy-1にしないと、上にいかなくなっちゃいます
      動画の詳細欄に、公式チュートリアルがあり
      そこでもソースコードを確認できるのでチェックしてみてください

    • @おがけん3
      @おがけん3 5 дней назад

      @ ありがとうございます!無事しっかり動きました!ちなみにエラー文はnomalizedなんて関数?ないよーみたいなエラー文だったので意味がわかりました!

  • @リアルドイツ
    @リアルドイツ 8 месяцев назад

    すみません 17:07 のテストで実行してもデバッグ用のウィンドウが応答しなかったりキャラクタが一切出てきません
    特にエラーは出てきてないのですがすべてのスクリプトの func _process(delta): の上に @warning_ignore("unused_parameter")
    func _process(delta): という警告が出てきました
    原因はなんでしょうか?

    • @logic-lab
      @logic-lab  8 месяцев назад

      すでに他のシーンをメインシーンに設定しているかもしれません。ファイルシステムドックの main.tscn を右クリックして「メインシーンとして設定」を選択してみてください。
      また、警告は_process内でdeltaを使ってないので出ていると思います。
      delta を _deltaに書き換えると消えます。

  • @HinekuLemon
    @HinekuLemon 3 месяца назад

    こっちのゆっくりは、ケンカしないんだな。

  • @user-jc9bh6hg3g
    @user-jc9bh6hg3g Год назад

    スクリプト内の各パラメータの役割なども説明があるとありがたいです

  • @卵パクパクYouTube
    @卵パクパクYouTube 4 месяца назад

    プロジェクトを再生すると、なぜか応答なしになってしまいます

    • @logic-lab
      @logic-lab  4 месяца назад

      実行画面がグレーになってしまうということでしょうか?
      ファイルシステムドックの main.tscn を右クリックして「メインシーンとして設定」を選択してみてください。

  • @Kei-w7m
    @Kei-w7m 8 месяцев назад

    C#やC++では出来ない感じですかね?

    • @logic-lab
      @logic-lab  8 месяцев назад +1

      GodotEngineはC#やC++も使えます!
      GDスクリプトよりも高速なので、経験者だとそちらのほうがいいかもしれませんね。
      外部エディタを別途用意する必要があります
      docs.godotengine.org/ja/4.x/tutorials/scripting/c_sharp/c_sharp_basics.html
      ただC#で開発している人が少ないので、参考にできるサンプルが少ないという欠点はあります

    • @Kei-w7m
      @Kei-w7m 8 месяцев назад

      @@logic-lab なるほどですね…
      教えていただきありがとうございます!C#で作成しようとおもいます!

  • @lambx1606
    @lambx1606 8 месяцев назад

    敵が変なところから生成されるんですけどこれはどういうことなんでしょうか?

    • @logic-lab
      @logic-lab  8 месяцев назад

      変な所というのは、たとえばどこからでしょう?
      Pathでかこんだ所から生成されるはずなので
      パスの囲み方をチェックしてみて下さい

  • @Pudding0118jp
    @Pudding0118jp 5 месяцев назад +1

    extends Area2D
    @export var speed = 400
    var screen_size
    # Called when the node enters the scene tree for the first time.
    func _ready():
    screen_size = get_viewport_rect().size
    # Called every frame. 'delta' is the elapsed time since the previous frame.
    func _process(delta):
    var velocity = Vector2.ZERO
    if Input.is_action_pressed("move_right"):
    velocity.x += 1
    if Input.is_action_pressed("move_left"):
    velocity.x -= 1
    if Input.is_action_pressed("move_up"):
    velocity.y -= 1
    if Input.is_action_pressed("move_down"):
    velocity.y += 1

    if velocity.length() > 0:
    velocity = velocity.normalized() * speed
    $AnimatedSprite2D.play()
    else:
    $AnimatedSprite2D.stop()

    position += velocity * delta
    position = position.clamp( Vector2.ZERO , screen_size )
    ここまで書いたんですけど
    アニメーションはするけどキャラが動かないです...

    • @logic-lab
      @logic-lab  5 месяцев назад +1

      この部分が、elseの中に入ってしまっています
      position += velocity * delta
      position = position.clamp( Vector2.ZERO , screen_size )
      elseの外側に書いてください(タブをひとつ消す)

    • @Pudding0118jp
      @Pudding0118jp 5 месяцев назад

      @@logic-lab 出来ました〜!
      ほんとにありがとうございます!!