GODOT 4 THIRD PERSON PARKOUR (WIP)

Поділитися
Вставка
  • Опубліковано 29 вер 2024
  • After playing with UE5.4 sample demo, i fell in love with it. I just wish i can replicate that project into godot. Adding new feature is fun an all, but this project just take too long to make. So, i decided to called it quit for now and release it as is. I'll add new feature on future update.
    Demo project: www.mediafire....
    Patreon: / brok3ncircuitproject

КОМЕНТАРІ • 56

  • @ElMarcoh
    @ElMarcoh 2 місяці тому +22

    This is awesome, I spent like 2 months just to get some "just ok" animations for my prototype character, I cannot imagine the amount of effort it took to make this locomotion system

    • @Brokencircuitboard
      @Brokencircuitboard  2 місяці тому +5

      To be fair, this is an accumulation of 8-9 month of work since I started godot journey.

    • @edzu2771
      @edzu2771 29 днів тому

      @@Brokencircuitboard were the actual animations that took too long to make or was it the coding of the interactions?

    • @Brokencircuitboard
      @Brokencircuitboard  29 днів тому

      @@edzu2771 Maybe both 😅

  • @Makoima
    @Makoima 2 місяці тому +3

    This is incredible! Excited to see what else you can pull off in Godot!

  • @lucasminatelli4380
    @lucasminatelli4380 2 місяці тому +3

    Just make one more third person shooter example and you be the GODot

  • @Nandinhogamedev
    @Nandinhogamedev 2 місяці тому +3

    Make tutorials bro!

  • @unfunnyman76
    @unfunnyman76 2 місяці тому

    Very nice, how did you make the leaning? Is the leaning based on the player's velocity?

    • @Brokencircuitboard
      @Brokencircuitboard  2 місяці тому

      Yes it is. You have to take into account the current velocity with previous velocity and get the cross product of it.

    • @unfunnyman76
      @unfunnyman76 2 місяці тому

      @@Brokencircuitboard Alright thx

    • @unfunnyman76
      @unfunnyman76 Місяць тому

      @@BrokencircuitboardThe cross product is always 0 in mine. Am I doing it right?

    • @Brokencircuitboard
      @Brokencircuitboard  Місяць тому

      @@unfunnyman76 I can only guess without the actual code. Maybe you don't store the value of previous velocity?

    • @unfunnyman76
      @unfunnyman76 Місяць тому +1

      @@BrokencircuitboardIt works now. I misplaced the leaning logic after the prev_vel = current_vel. My bad, thanks for answering though.

  • @Decoding_Master
    @Decoding_Master 2 місяці тому

    Please give me your ledge grab system 🙂

  • @Pushons
    @Pushons 10 днів тому +1

    we need a open source locomotion for godot so that we as a community build similar thing like ue5s one maybe better and share with the community

  • @Decoding_Master
    @Decoding_Master 2 місяці тому

    Please give me your ledge grab system 🙂

  • @viniciusviana5671
    @viniciusviana5671 2 місяці тому +5

    Nailed it! Gotta study this project anytime. Also amazing to see how influential and groundbreaking Rosen's approach, after all these years it still helping out indie devs.

  • @uhdpixels2
    @uhdpixels2 2 місяці тому +1

    This looks alot like inside

  • @GameDevGeeks
    @GameDevGeeks 11 днів тому

    looks amazing

  • @LucasMuniz-w6d
    @LucasMuniz-w6d 21 день тому

    Wow! Are you can make a Vault Tutorial on Fps? How make this?

    • @Brokencircuitboard
      @Brokencircuitboard  21 день тому

      I deal mostly on third person player. You can check my other video, i do make tutorial of climbing mechanic and touch some basic logic behind how i implement the vaulting mechanic.

  • @Umer-z2u
    @Umer-z2u 2 місяці тому

    bro plz make tutorial

  • @ihatetomatoees
    @ihatetomatoees 2 місяці тому

    Scuffed 😂

  • @user-rx3xl7zn1u
    @user-rx3xl7zn1u 2 місяці тому +3

    This looks really good. I noticed some of the vaulting/mantling animations seem to really slow/stop the character's momentum. Is there a way to maintain the character's momentum as much as possible? I think it would feel better, but like I said, this looks really good even as it is.

    • @Brokencircuitboard
      @Brokencircuitboard  2 місяці тому +3

      For mantling, it easy to do since the the surface is wide. Vaulting in the other hand, we need to fine tune the animation to make sure the hand landed on small vaulting point. I purposely left one ridiculous vaulting animation to show the variety of animation we can use for this mechanic 🤣

    • @NICK....
      @NICK.... 2 місяці тому

      @@Brokencircuitboard are you IKing the hands to grab a plausible position or are the animations static?

    • @Brokencircuitboard
      @Brokencircuitboard  2 місяці тому

      @@NICK.... No ik.

    • @NICK....
      @NICK.... 2 місяці тому

      @@Brokencircuitboard
      ah, i have wondered how hard it would be to make ik in godot

    • @Brokencircuitboard
      @Brokencircuitboard  2 місяці тому +1

      @@NICK.... Tbh i am not a fan of godot ik.

  • @Flamebamboo
    @Flamebamboo 2 місяці тому

    How long did you work on this game perday?

    • @Brokencircuitboard
      @Brokencircuitboard  2 місяці тому

      Hard to say. It took me a total of around 3+ week of work. Around 1-2 hour daily and sometime more than 12 hour depending on the free time i got 😅

  • @TheCommandBox
    @TheCommandBox 2 місяці тому +1

    wow, can you make a third person shooter?

  • @cindytrieuart
    @cindytrieuart 2 місяці тому +1

    Amazing work! The amount of dedication you put into this really shows. Love the small details you added to make it flow better :)

  • @Mdrana-cq8iw
    @Mdrana-cq8iw 2 місяці тому

    didn't you used root motion?

    • @Brokencircuitboard
      @Brokencircuitboard  2 місяці тому

      I do. But root motion alone is not the answer to everything. For this project I use use root motion, non root motion and semi-root motion.

  • @wisiel3861
    @wisiel3861 2 місяці тому +1

    I like it, looks pretty awesome!

  • @drfelipe4943
    @drfelipe4943 2 місяці тому

    layer mask animation ?

  • @tayorain6554
    @tayorain6554 2 місяці тому

    hey does your patreon also has the tutorial on this

  • @uhdpixels2
    @uhdpixels2 2 місяці тому

    This man mastered godot 🔥🔥

  • @bunnybreaker
    @bunnybreaker 2 місяці тому

    Slick stuff 👍🏽

  • @martensmith7853
    @martensmith7853 2 місяці тому

    great job

  • @ShaheerHameed-92
    @ShaheerHameed-92 2 місяці тому

    nice

  • @sebastercats6123
    @sebastercats6123 2 місяці тому

    Awesome! Always wanted to see if some mechanic in Unreal can also be done in Godot.
    Quick question, is the animation of the player's parkour custom-made or from an asset store? And does making the animation smoother require further coding or using better animations?

    • @Brokencircuitboard
      @Brokencircuitboard  2 місяці тому +2

      Most of the animation is either from free marketplace asset or mixamo. Since the skeleton is different, i need to edit most of them with blender. That's the reason why some animation look weird(especially the hand). For smoother animation, good animation is a plus. I found using animationtree is better for smoother transition between animation. I just set xfade time to 0.1 for all transition.. you be surprise by the result.

    • @sebastercats6123
      @sebastercats6123 2 місяці тому

      ​@@BrokencircuitboardSo that's how the animation can look so smooth yet so inconsistent, it's that fade effect. Genius!
      Honestly, it's already impressive enough seeing it almost emulating the Unreal version.

  • @tayorain6554
    @tayorain6554 2 місяці тому

    im ready to pay to get a course on this

    • @Brokencircuitboard
      @Brokencircuitboard  2 місяці тому +3

      Hi, i don't lock my tutorial behind a paywall. Making a video tutorial is just simply take too much time. I'll upload the tutorial when i got the time. You can also subscribe to my patreon to get access to the source code of the project.

  • @Stilgarin
    @Stilgarin 2 місяці тому

    Still better looking and more realistic on UE, sorry about that...

    • @Brokencircuitboard
      @Brokencircuitboard  2 місяці тому

      Agree. Can't compete with multibillion company and dozens of their professional talent.

  • @Mikail4044
    @Mikail4044 2 місяці тому

    extends CharacterBody3D
    @onready var ca = $ca
    @onready var v = $v
    @onready var animation_player = $v/akai/AnimationPlayer
    var SPEED = 1.5
    const JUMP_VELOCITY = 4.5
    var run_speed = 10.0
    var walk_speed = 1.5
    var run = false
    var jump = false
    @export var sens_horizontal = 0.5
    @export var sens_vertical = 0.5
    var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
    func _ready():
    Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
    func _input(event):
    if event is InputEventMouseMotion:
    rotate_y(deg_to_rad(-event.relative.x * sens_horizontal))
    ca.rotate_x(deg_to_rad(-event.relative.y * sens_vertical))
    v.rotate_y(deg_to_rad(event.relative.x * sens_horizontal))
    ca.rotation.x = clamp(ca.rotation.x, deg_to_rad(10), deg_to_rad(-12))
    func _physics_process(delta):
    # Add the gravity.
    if not is_on_floor():
    velocity.y -= gravity * delta
    if Input.is_action_just_pressed("jump") and is_on_floor():
    velocity.y = JUMP_VELOCITY
    if animation_player.current_animation != "f/jump":
    animation_player.play("f/jump")
    else:
    if animation_player.current_animation != "f/fall":
    animation_player.play("f/fall")
    jump = true
    else:
    jump = false
    if Input.is_action_pressed("run"):
    SPEED = run_speed
    run = true
    else:
    SPEED = walk_speed
    run = false
    var input_dir = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
    var direction = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
    if direction:
    if run:
    if animation_player.current_animation != "f/run":
    animation_player.play("f/run")
    else:
    if animation_player.current_animation != "f/walk":
    animation_player.play("f/walk")
    v.look_at(position + -direction)
    velocity.x = direction.x * SPEED
    velocity.z = direction.z * SPEED
    else:
    if animation_player.current_animation != "f/idle":
    animation_player.play("f/idle")
    velocity.x = move_toward(velocity.x, 0, SPEED)
    velocity.z = move_toward(velocity.z, 0, SPEED)
    move_and_slide()
    Dude can u help me
    I need help
    My jump animation not work playing
    If i press jump not playing jump animation and he jump with idle animation
    How to fix this

    • @Brokencircuitboard
      @Brokencircuitboard  2 місяці тому +1

      set idle to play only on floor.

    • @Mikail4044
      @Mikail4044 2 місяці тому

      @@Brokencircuitboard
      How
      Where create that set
      Idk

    • @Brokencircuitboard
      @Brokencircuitboard  2 місяці тому +1

      @@Mikail4044 can't help much without full project. but maybe you can try
      else:
      if is_on_floor():
      if animation_player.current_animation != "f/idle":
      animation_player.play("f/idle")

    • @Mikail4044
      @Mikail4044 2 місяці тому

      @@Brokencircuitboard thanks dude i will try