Tutorial: First Person Movement In Godot 4

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

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

  • @wellhellotherekyle
    @wellhellotherekyle 2 года назад +178

    So two things had changed since this video was published...
    1. The _unhandled_input part, the code should read like this now: _unhandled_input(event):
    (All the stuff after on that line in Branwell's code is no longer necessary)
    2. deg2rad() has been renamed to deg_to_rad()
    (Thank you to Andy Reed for pointing this one out)
    Thanks for the wonderful tutorial Bramwell!

    • @mando1570
      @mando1570 2 года назад +4

      thank you so much my guy your comment really helped me ❤

    • @gustaafmilzink
      @gustaafmilzink Год назад +1

      Thank you!

    • @recker7017
      @recker7017 Год назад +6

      point 1 is invalid, typehints never were necessary

    • @Micahtmusic
      @Micahtmusic Год назад +3

      maybe not necessary, but definitely polite

    • @sechmascm
      @sechmascm Год назад +3

      The other stuff on that line improves performance by a huge margin. The engine doesn't have to guess what everyting is supposed to be and it runs those operations faster. If you want a good game, it is necessary.

  • @justcnoon
    @justcnoon 2 года назад +382

    deg2rad() has been renamed to deg_to_rad() in Alpha 15, if anybody's having an error.

  • @erin1569
    @erin1569 2 года назад +93

    Btw, if you want to have the same autocomplete as Bramwell at 11:47, you should go to Editor>Editor Settings>Text Editor>Completion>Add type hints

  • @alechussak3750
    @alechussak3750 Год назад +110

    set_mouse_mode() and get_mouse_mode() have been removed since this video was made. You can now get/set the Input.mouse_mode property directly:
    SET: Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
    GET: if Input.mouse_mode == Input.MOUSE_MODE_CAPTURED:

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

      how do I do this properly

    • @StephenCodess
      @StephenCodess 11 месяцев назад

      thanks!

    • @NerdWithABeard
      @NerdWithABeard 10 месяцев назад

      This, along with the tip for how to access the other command auto-fills, are much appreciated

    • @351c4v71
      @351c4v71 9 месяцев назад

      thanks, that was very helpful

    • @351c4v71
      @351c4v71 9 месяцев назад

      func _unhandled_input(event):
      if event is InputEventMouseButton:
      Input.mouse_mode = Input.MOUSE_MODE_CAPTURED@koolgabieboi2816

  • @sweetdog2398
    @sweetdog2398 7 месяцев назад +6

    A cool thing you can do with this part:
    var input_dir := Input.get_vector("move_left", "move_right", "move_forward", "move_backwards")
    var direction = (neck.transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
    if direction:
    if is_on_floor():
    velocity.x = direction.x * SPEED
    velocity.z = direction.z * SPEED
    else:
    if is_on_floor():
    velocity.x = move_toward(velocity.x, 0, SPEED)
    velocity.z = move_toward(velocity.z, 0, SPEED)
    is right before the velocity stuff you can add a if is_on_floor so that you cant change directions midair, or you can use an else comman so that you can but its less.

  • @I_can-t_GAMING
    @I_can-t_GAMING Год назад +5

    والله انا كنت واقف على ان الشخصية بتخترق الارض لكن دا اكتر فيديو فادني فشكرا جدا
    💖💖💖💖❤❤
    By God, I was standing on the fact that the character penetrates the ground, but this is the most useful video, so thank you very much

  • @kevindean8312
    @kevindean8312 Год назад +16

    I am complete noob to Godot and this tutorial was excellent. Easy to follow and loved how you actually explained everything. Thank you!

  • @tornisback12
    @tornisback12 15 дней назад

    THANK YOU SO MUCH! I've been searching for a game engine to move up from scratch and eventually settled on Godot. This video taught me heaps and can't thank you enough.

  • @madphoenix9826
    @madphoenix9826 11 месяцев назад +3

    Always nice to find a information dense tutorial for the specific thing you wanna do ^^ Thank you very much!

  • @BlobFish-BlobFish
    @BlobFish-BlobFish 25 дней назад

    This is the only tutorial that actually explains what each line of code means. Thank you, Bramwell!

  • @petethorne5094
    @petethorne5094 2 года назад +13

    This is absolutely brilliant! I just downloaded the Beta (woo!) and within a few mins I had a player running around my test scene. Bought your course a while back and now that things are getting more stable, I'm going to have to stop avoiding building a game!

  • @DEXA_Entertainment
    @DEXA_Entertainment 10 месяцев назад +1

    Very on point, short and helpful! Thank you for teaching not only me but a lot of people too. 😊👍

  • @cultofape
    @cultofape 2 года назад +12

    Love your tutorials! If I can make a request - 3rd person 3d with LMB click on ground movement and proper player rotation. I just can´t make it 100%right

    • @BramwellWilliams
      @BramwellWilliams  2 года назад +7

      I could do something like that for sure ^^ I've done something like that with gridmaps for tiles you can move to: twitter.com/bramreth/status/1453508866134663174

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

      I'm just hoping to use LMB method for camera3D, similar as the way of tutorials does but classic rpg.

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

    This is still such a great tutorial, but I wanted to add that if anyone's gotten a bug when adding camera movement, the fix for me was this line to check MouseMotion was the event type:
    if Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED and event is InputEventMouseMotion:

  • @Drachenbauer
    @Drachenbauer Год назад +6

    i didn´t add a neck node, i rotate the whole character around y instead with the mouse, so i just didn´t get the problem of fixed forward direction, that´s described at 16:15.
    It feels just like a fully functional first person charecter.

  • @YOZA.
    @YOZA. 11 месяцев назад +5

    extends CharacterBody3D
    const SPEED = 5.0
    const JUMP_VELOCITY = 4.5
    # Get the gravity from the project settings to be synced with RigidDynamicBody nodes.
    var gravity: float = ProjectSettings.get_setting("physics/3d/default_gravity")
    @onready var neck := $Neck
    @onready var camera := $Neck/Camera3d
    func _unhandled_input(event: InputEvent) -> void:
    if event is InputEventMouseButton:
    Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
    elif event.is_action_pressed("ui_cancel"):
    Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
    if Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED:
    if event is InputEventMouseMotion:
    neck.rotate_y(-event.relative.x * 0.01)
    camera.rotate_x(-event.relative.y * 0.01)
    camera.rotation.x = clamp(camera.rotation.x, deg_to_rad(-30), deg_to_rad(60))
    func _physics_process(delta: float) -> void:
    # Add the gravity.
    if not is_on_floor():
    velocity.y -= gravity * delta
    # Handle Jump.
    if Input.is_action_just_pressed("ui_accept") and is_on_floor():
    velocity.y = JUMP_VELOCITY
    # Get the input direction and handle the movement/deceleration.
    # As good practice, you should replace UI actions with custom gameplay actions.
    var input_dir := Input.get_vector("left", "right", "forward", "back")
    var direction = (neck.transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
    if direction:
    velocity.x = direction.x * SPEED
    velocity.z = direction.z * SPEED
    else:
    velocity.x = move_toward(velocity.x, 0, SPEED)
    velocity.z = move_t

  • @studiophazer-zw7dd
    @studiophazer-zw7dd Месяц назад

    i looked at two tutorials and yours worked. liked

  • @jwt77
    @jwt77 9 дней назад

    This helped me a lot to get started. Thank you!

  • @theaussieninja8176
    @theaussieninja8176 Год назад +1

    thank your Bramwell for these tutorials I love how you go into great depths on everything I wish more tutorials went into such depth

  • @PanIsTrying
    @PanIsTrying 8 месяцев назад +1

    Thank you kindly for your help in this tutorial. It made me a subscriber

  • @zirathar
    @zirathar 3 месяца назад +2

    thank you bro really you help my life and you make me happy❤

  • @apersimmon
    @apersimmon 9 месяцев назад

    I applied this to a 3rd person player but it was very useful, thanks!!

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

    thank you so much, i was watching another tutorial and it skipped the part in which the player was created, im a complete newbie, now i can continue the other tutorial (which was about creating a map)

  • @jasmanDhaliwal-k4r
    @jasmanDhaliwal-k4r Год назад

    Thank you bro. I am a boy who need these types of tutorials. LOVE FROM PUNJAB

  • @aullvrch
    @aullvrch 2 года назад

    this made me subscribe! By far the most useful and educational vid on this topic I I have seen thus far, with the added bonus of being in godot 4!!

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

    thank you i had no idea how to do something in godot because there was always errors, i didnt think that i will succed following the first tutorial that i clicked on

  • @harryudal3115
    @harryudal3115 9 месяцев назад

    Thank you so much for all the work you have done, this has given me so much help. And I thank you

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

    Just started using Godot, very helpful video to get up & running quickly, many thanks 👍

  • @wolcamophone4783
    @wolcamophone4783 2 года назад +2

    I wish there was a video that really explained how to better understand movement functions tied to kinematic bodies so that you could know exactly what kind of bhopping or air strafing glitches to put in movement fps controllers.

  • @chrisfritz7545
    @chrisfritz7545 Год назад +4

    Just wanted to say thanks for sharing your knowledge. Keep making these videos. You have a great way of explaining what you are doing.

  • @cyphfrix1620
    @cyphfrix1620 Год назад +1

    thanks so much bro, your tutorial is very easy to follow and quick

  • @riisezz0
    @riisezz0 2 года назад +4

    Hey, man. I'm new to Godot and you've really been helping in the transition to Godot 4. I really appreciate you!

  • @ezzie_baby
    @ezzie_baby 23 дня назад

    thank you so much!! this was extremely helpful.

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

    thanks, great video! You explained every step. Much appreciated!

  • @Snakemaster11235
    @Snakemaster11235 Месяц назад

    tysm Bramwell this helped me alot

  • @Phryj
    @Phryj 9 месяцев назад

    This was a big help, thank you!

  • @acedefective2220
    @acedefective2220 9 месяцев назад

    thank you, this tutorial was very accessible and helpful

  • @MurkyJeep
    @MurkyJeep 11 месяцев назад

    Thank you! Explained well and straight to the point.

  • @piimae
    @piimae Год назад +1

    Exceptionally well done tutorial, straight to the point and just the right amount of explaining of the details of the mechanics. Thank you!

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

    Very nice video, thank you so much Bramwell.

  • @pommefrites
    @pommefrites Год назад +1

    Hey, kind of semi-related but this video helped me fix a long-standing issue with the stair catcher in my character controller being offset if my character starts the level rotated at all, which is fine if the player always starts in the same direction with 0,0,0 rotation, but not great if they do, which is most often the case. It has to do with the lines you highlighted around 17:17 and I used a very similar block to calculate the position of the stair catcher ray cast to swing around in the direction of player movement. I then just had to offset it vertically from the neck height to be near the floor and now it works perfectly no matter which direction the player starts in. Anyway, it had been bugging the hell out of me for a whiiiiile, so thanks for your help!

  • @mr.e4327
    @mr.e4327 8 месяцев назад

    Great tutorial, thanks mate!

  • @PAPRPL8
    @PAPRPL8 2 года назад

    Thanks for the tutorial; found it quite helpful and moved at a pace I found keep up with as a beginner.

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

    you are a genius, you solved my problem of collisions

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

    Very nice intro to some 3D player basics. Thank you very much!

  • @AdamHerger
    @AdamHerger 2 месяца назад +1

    Great tutorial Bramwell! I was just wondering if the camera rotation adjusts to the framerate of the user since it's not in the _physics_process(delta) function?

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

    Thank you for this very clear tutorial! It helped a bunch!

  • @sgaming3174
    @sgaming3174 2 месяца назад +1

    Thanks for the tutorial

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

    Hey man thank you so much its working very good and i am very happy!! you just got a Subscriber😉

  • @MP-pv4eb
    @MP-pv4eb Год назад

    thanks for this tutorial!
    I found for me the camera was very twitchy. I'm not sure if there are better solutions for this, but this is what I ended up doing:
    var x_mov = event.relative.x / 1.7
    var y_mov = event.relative.y / 1.7
    neck.rotate_y(-x_mov * 0.01)
    camera.rotate_x(-y_mov * 0.01)
    you might be able to do it in-line (so, neck.rotate_y((event.relative.x / 1.7) * 0.01) for example), but the variables help my readability. Also, change 1.7 to whatever value is comfortable. Larger value will be slower, "smoother" motion.

  • @daniyarm2922
    @daniyarm2922 Год назад +4

    why complicate, it is enough to add in the _input (event) function:
    func _input(e): (well i shorten the EVENT like this :)) )
    if e is InputEventMouseMotion:
    rotation.y -= e.relative.x * 0.005
    head.rotation.x = clamp(head.rotation.x - e.relative.y * 0.005, -1.4, 1.4)
    You can change the numbers however you like. He is only responsible for speed and limit.

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

    Awesome video man

  • @sethwhite4635
    @sethwhite4635 2 года назад +1

    Awesome, thanks for the video!

  • @wukerplank
    @wukerplank 2 года назад

    Very interesting, thank you for putting this together!

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

    the tutorial was great! thank you

  • @RedCatGD
    @RedCatGD 11 месяцев назад

    Thanks a lot ! Helped me out a tone ❤

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

    Love this! Thank you so much.

  • @olmrgreen1904
    @olmrgreen1904 2 года назад

    Awesome video!

  • @Betegfos
    @Betegfos 2 года назад +3

    Nice tutorial. Very useful. How do I change the movement speed depending on the direction of the movement?

    • @payton.a.elliott
      @payton.a.elliott Год назад

      After tinkering around for a while the only way I could get it to work is to put another if statement inside the "if direction:" statement. I replaced the default SPEED const with the walk_speed var. I simply check if move direction is towards positive 1 (which is backwards for the character body), then half walk_speed if they are moving backwards. Otherwise, walk_speed is normal.
      # If moving backwards move at half speed.
      if direction.z > 0:
      velocity.z = direction.z * walk_speed / 2
      else:
      velocity.z = direction.z * walk_speed

  • @S.Johannesson
    @S.Johannesson 8 месяцев назад

    Thank you for this!

  • @adaml.5355
    @adaml.5355 2 года назад

    This is an extremely helpful video.

  • @footballCartoon91
    @footballCartoon91 2 месяца назад

    @7:46, the movement is quite buggy if you "move left" or "move right" because the CharacterBody3D should either strafing left or right OR the Camera3D should just yaw (i.e rotates around the y-axis) without moving the CharacterBody3D too.

  • @recker7017
    @recker7017 2 года назад +1

    a rigidbody fps controller tutorial would be really good

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

    Thanks alot very useful video much love to ya mate

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

    Great Video keep it up!

  • @hectora.3220
    @hectora.3220 8 месяцев назад

    This is great. Short and usefull.

  • @idk-gq8tw
    @idk-gq8tw 11 месяцев назад +1

    Can someone help, i started the scene and when i try to rotate is freezes and it says kennedy.gd 10 @ _ready(): node not found: "neck/camera3d" (relative to "/root/node3d/characterbody3d").

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

    cool good job easy to learn continue the hard work

  • @NarekAvetisyan
    @NarekAvetisyan 2 года назад +2

    Very nice!
    Can you also make a simple tutorial like this for a Age of Empires style camera?

  • @JorgeRosa
    @JorgeRosa 2 года назад +2

    Very cool!

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

    Thank you very very much with your help I finaly make 3d first person controller 😃😃😃

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

    If camera rotation is not working click on the camera in the scene. Then on the right side in the inspector tab under (transform) enable quaternion rotation!!!!

  • @RealJesus
    @RealJesus Год назад +1

    help everytime i look down/right the poc starts spinning and it's uncontrollable

  • @meteroy17
    @meteroy17 Год назад +1

    Is there a way to add other functions like interact, running, crouching, and all that?

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

    I learned so much thank you

  • @petethorne5094
    @petethorne5094 2 года назад +3

    Might be a bug here, if you rotate the Player node in the editor the movement keys are not mapped to the camera any more...

    • @petethorne5094
      @petethorne5094 2 года назад +3

      My hacky fix here is to rotation the basis by the player rotation: var direction = ((neck as Node3D).transform.basis.rotated(Vector3.UP, rotation.y) * Vector3(input_dir.x, 0, input_dir.y)).normalized()

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

      I tried doing that but the keys are still not following the camera when I rotate the Player

  • @shigsy2630
    @shigsy2630 2 года назад +2

    I've written the equivalent in C#, which requires a few differences other than the syntax (e.g. you cant directly modify the Rotation properties so need to create a separate Vector3 and set it to the Rotation, then manipulate and clamp that new Vector 3 before setting the Rotation back to the Vector3). This generally works fine but there is one odd behavior... I can't move the mouse and walk at the same time. So I can stand still looking around with the mouse, or I can walk around with the keys, but I can't do both at once. Any ideas? I suspect differences in how C# handles the Input events. If I'm holding W to walk and then move the mouse at the same time, it doesn't appear to be passing an InputEventMouseMotion event to my _UnhandledInput method. It executes the code in that method but not within the "if" that's checking for the InputEventMouseMotion, so presumably the event is something else (like the key im holding down to walk). If I stop moving (let go of W) and move the mouse, it correctly passes the InputEventMouseMotion to the _UnhandledInput method and I can look around fine.

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

      Care to share your experiment with C#?

  • @JasonLothamer
    @JasonLothamer 2 года назад +4

    Very nice! Just one issue: support arrow keys as well as wasd. With Godot's awesome action system being able to bind mulitple key events there's no reason not to. You'll just make your game impossible for lefties to play if you don't. (Best of all make actions rebindable. But that's significantly harder of course.)

    • @pickolasplays3800
      @pickolasplays3800 11 месяцев назад

      Ok, I'm a left handed individual, I became "right handed" on computers when my brother was bothered by me changing his Minecraft settings, I have learned to use WASD and it hadn't taken long for me and It's much more comfy for me nowadays

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

    thank you so much for this tutorial

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

    yo thx for making this godot 4 tutorial 😎

  • @O-Dog37
    @O-Dog37 11 дней назад

    if Input.get_mouse_mode() = Input.MOUSE_MODE_CAPTURED: does not work for some reason, it says that "Assingment is not allowed inside an expression" pls help

  • @anarchicpancake2840
    @anarchicpancake2840 10 дней назад +1

    15:51 i got up to here with no errors but when i copied the code and ran the game the camera glitched, now it's constantly staring at the ground and i can't rotate it up

  • @darkBuster2002
    @darkBuster2002 Год назад +3

    there is a problem for me Line 17:Assignment is not allowed inside an expression.Line 18:Assignment is not allowed inside an expression.

    • @foldysnootmack
      @foldysnootmack Год назад +1

      I’m having the same issue. Have you figured out how to fix it?

    • @nezbro2011
      @nezbro2011 Год назад +3

      @@foldysnootmack Double equals so type ==

    • @P134-i3p
      @P134-i3p Год назад +3

      @@nezbro2011 Bloody hell really??? DOUBLE EQUALS??? God damn. Good thing I check the comments for answers... Fucking double equals...

    • @nezbro2011
      @nezbro2011 Год назад +1

      @@P134-i3p Yeah not really obvious at first considering there isn't a gap in between the two.

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

      @@foldysnootmack No

  • @BuffHobbit
    @BuffHobbit 2 года назад

    16:00 this is all good but does the player body rotate with the neck? so that the head doesn't just spin around while the body is not. So the body is facing the same way we are looking

  • @opalxo1
    @opalxo1 10 месяцев назад

    I am getting an error on the line :
    20 camera.rotate_x(-event.relative.y * 0.01)
    error reads:
    Attempt to call function 'rotate.x' in base 'null instance' on a null instance.
    I copy and pasted the entirety of the code from the github page and the problem still did not resolve, there are no other errors in the code

  • @KhaoticSanctum69
    @KhaoticSanctum69 Год назад +1

    I have an issue on line 17 of the code that says "assignment is not allowed inside an expression" and idk what's wrong :( can someone please help

    • @Ren-vo8jj
      @Ren-vo8jj Год назад +2

      its 2 equal to signs "=="

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

    something is wrong with my camera.rotate_x(-event.relative.y * 0.01) does it need any nodes?

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

    honestly with everything else I was so surprised when walking in the right direction was just adding a neck..

  • @Dave-n5d
    @Dave-n5d Год назад +2

    12:22 Where did he get this string of code from i dont understand how he got it

    • @kitsunemusicisfire
      @kitsunemusicisfire Месяц назад

      copied and pasted it from a document he had on his pc, just retype all the code and it'll work fine

  • @a_a210
    @a_a210 Месяц назад

    so uhh, i followed this tutorial and i have a bit of a problem, the camera kinda just spins when i move my mouse left and right, but its fine when i move it up and down

  • @pkk11x90
    @pkk11x90 10 месяцев назад +3

    i have a bug in line 17. can someone help? here is script:
    func _unhandled_input(event: InputEvent) -> void:
    if event is InputEventMouseButton:
    Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
    elif event.is_action_pressed("ui_cancel"):
    Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
    if Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED:
    if event is InputEventMouseMotion:
    neck.rotate_y(-event.relative.x * 0.01)
    camera.rotate_x(-event.relative.y * 0.01)
    camera.rotation.x = clamp(camera.rotation.x, deg_to_rad(-30), deg_to_rad(60))

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

      i have the same problem! i don't know how to solve it

    • @BlobFishIsNotABot
      @BlobFishIsNotABot 6 месяцев назад

      The -> void idnt needed in godot 4

    • @auzz4455
      @auzz4455 29 дней назад +1

      func _unhandled_input(event):
      if event is InputEventMouseButton:
      Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
      elif event.is_action_pressed("ui_cancel"):
      Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
      if Input.mouse_mode == Input.MOUSE_MODE_CAPTURED:
      if event is InputEventMouseMotion:
      neck.rotate_y(-event.relative.x * 0.01)
      camera.rotate_x(-event.relative.y * 0.01)
      camera.rotation.x = clamp(camera.rotation.x, deg_to_rad(-30), deg_to_rad(60))

    • @auzz4455
      @auzz4455 29 дней назад

      i think godot have made changes since this video, so its a little tricky finding the correct terminology

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

    why doesnt godot have buttons to instantiate cube plane culinder etc like unity and you have to set the mesh instance yourself?

  • @gameinglizard6984
    @gameinglizard6984 Год назад +1

    OK SO WHEN I AM TOUCHING THE GROUND ITS LAGGY AND WEIRD, it MIGHT BE CLIPIONG idk how do I fix that.

    • @reduxek
      @reduxek 8 месяцев назад +1

      I have this problem too

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

    Why do we rotate the neck node for horizontal movement, but the camera itself for vertical movement? Is it because we want the rotation clamped for the camera?

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

    This is all cool and good, but how do I make camera controls with the right stick on a controller instead of the mouse?

  • @tomtomkowski7653
    @tomtomkowski7653 2 года назад +4

    I wish they would rework objects/nodes/scenes manipulations (position/rotation/scale).
    Right now this is totally overcomplicated in Godot where there are dozens of functions doing similar things and all are different at the same time.
    They should look at Unity's system which is really good.
    global.position() - get, global.position(value) - set, the same for local.position and then the same for rotation and scale - that's it!
    they could add a second (vector) parameter to change instead of set, global.rotation(value,vector.left) - change value of vector left by a value.
    I have no idea why there are really dozens of functions you may use to manipulate and there are totally different - totally lack consistency.

  • @emilyallen7912
    @emilyallen7912 8 месяцев назад +1

    bro is a god

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

    It says if Input.get_mouse_mode = Input.MOUSE_MODE_CAPTURED: isn’t allowed in the expression. Is there a fix to this?

  • @ShadowWolf936
    @ShadowWolf936 9 месяцев назад

    some of the camera script didn't pop up for me like it did for you. anyway i can get the mouse input part?

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

    My jump animation is 60FPS, but my walk animation is 3FPS with 'basic_movements' script. How to fix it ?