Godot 3.1: Creating a Simple 3D Game: Part 3 (Importing from Blender, Rolling & Keys)

  Рет қаралды 135,186

BornCG

BornCG

Күн бұрын

Пікірлер: 355
@Bananeisafree
@Bananeisafree 5 жыл бұрын
Great Tutorials and Great video ! Thank you so much for your hard work ! If Anyone is interested, I found (at my very humble level) a simple way to make the ball mesh rotate more "naturally" relative to the player speed . I don't know if BornCG will tackle that is a later video (if so I'll remove this comment). Basically you want to remove the lines associated to the rotation and just place a the top of the _physics_process(delta) function two line that associates the rotation with the velocity associated. In plain code you would have : $MeshInstance.rotate_z(deg2rad(-velocity.x)) $MeshInstance.rotate_x(deg2rad(velocity.z)) That way the ball will rotate at the same speed as the body is moving, so when you stop and the inertia of the lerp keeps the ball moving, it will keep on rotating slower and slower until the body stops. Hopes it helps someone ! Cheers !!! Cheers !
@bellobods
@bellobods 3 жыл бұрын
Thank you so much!
@mikewest5670
@mikewest5670 5 жыл бұрын
Write $MeshInstance.rotate_z(deg2rad(-velocity.x)) and $MeshInstance.rotate_x(deg2rad(velocity.z)) at the end of each else statement
@imquit1508
@imquit1508 4 жыл бұрын
thx
@vincernio
@vincernio 4 жыл бұрын
Thanks! Was sitting here thinking up all sorts of complex ways I could handle matching the rotation on the lerp, but I never even considered this simple and efficient solution.
@medicinaytalojacs658
@medicinaytalojacs658 4 жыл бұрын
Not perfect... but good enough. Thanks!
@macgyvermankirk572
@macgyvermankirk572 4 жыл бұрын
I was trying to do the same sort of thing by messing around with lerp, it didn't work. Thanks!
@TubeJosch
@TubeJosch 4 жыл бұрын
$MeshInstance.rotate_z(deg2rad(-ROTSPEED * velocity.x/SPEED)) and $MeshInstance.rotate_x(deg2rad(ROTSPEED * velocity.z/SPEED)) should be ideal
@noiJadisCailleach
@noiJadisCailleach 5 жыл бұрын
Ohhh!! Finally 3d tutorials for godot! Found this on reddit a couple seconds ago. Upvoted there too. *Instant subscribe, bell notification.* Imma fully watch this after i finish this current tutorial playlist i'm on.
@DiiaBloodyRain
@DiiaBloodyRain 4 жыл бұрын
wow you are really Committing to godot good luck
@Zevonthethompsongun
@Zevonthethompsongun 4 жыл бұрын
What was the other playlist you learned a lot from?
@5Puff
@5Puff 4 жыл бұрын
Before: Aw man godot is too hard, I can't even master 2d! After this: *I am god*
@arg3882
@arg3882 4 жыл бұрын
loll same
@jbanimations8475
@jbanimations8475 3 жыл бұрын
@@arg3882 Yeah those tutorials kickass.
@HiddenWindshield
@HiddenWindshield 4 жыл бұрын
Just FYI: You don't need a separate constant for the speed of rotation. Since the ball is 1 unit in radius, it will roll 1 radian every time it moves 1 unit. So you can just base the rotation off the velocity vector. (Although one complication is that move_and_slide uses the delta variable automatically, but the rotate methods don't, so you have to do it yourself.) Just add: $MeshInstance.rotate_z(-velocity.x * delta) $MeshInstance.rotate_x(velocity.z * delta) to the bottom of your script and the rotation will always work out perfectly, no matter how you change your speed or whatever.
@GaryParkin
@GaryParkin 2 жыл бұрын
Now that's way cool. It also fixes the ball skidding when it is stopping in the lerp. Thank you. I'll use this.
@marta_na_moto
@marta_na_moto Жыл бұрын
You're my hero. As there is this lerp in the video that author conveniently skipped. I searched thorugh the docs to find how to extract current location from the mesh while your solution is just so idiotically simple.. thanks a looot
@CalmProto
@CalmProto Жыл бұрын
Very helpful, thank you. In Godot 4.0.3 it is now: $MeshInstance3D.rotate_z(-velocity.x * delta) $MeshInstance3D.rotate_x(velocity.z * delta)
@ceasnov
@ceasnov 4 жыл бұрын
This channel is seriously underrated.
@jlslakshmi8816
@jlslakshmi8816 3 жыл бұрын
agreed
@HiveHanging
@HiveHanging 3 жыл бұрын
Totally understand completely agree
@infectia1965
@infectia1965 3 жыл бұрын
Yea he teaches so well !!!
@joel2430
@joel2430 3 жыл бұрын
Great tutorial! :) Highly recommended. I was a bit annoyed that the diagonal speed was higher, so added these lines at the end of the function func _physics_process(delta): if ((Input.is_action_pressed("ui_up") or Input.is_action_pressed("ui_down")) and (Input.is_action_pressed("ui_left") or Input.is_action_pressed("ui_right"))): velocity = velocity.normalized() velocity *= SPEED move_and_slide(velocity)
@mikewest5670
@mikewest5670 5 жыл бұрын
The more I learn about Godot the more I'm impressed about how dynamic and organized it is.
@MikevomMars
@MikevomMars 3 жыл бұрын
Yeah, but simply importing files seems to be a headache 😐
@GaryParkin
@GaryParkin 2 жыл бұрын
@@MikevomMars lol, you should try Unreal Engine. Nothing imports right without serous thought. And the skeletons import tiny.
@_perovskia
@_perovskia Жыл бұрын
Whenever I watch tutorial videos, I always expect to learn one thing simply in the scope of the tutorial. However with these tutorials, they are PERFECTLY on point with what I plan doing with Godot to the point that it becomes spooky! This video is 3+ years old and it still perfectly strikes what I need, thank you!
@dailydoseofeverything7141
@dailydoseofeverything7141 9 ай бұрын
Right click on playerball gltf and click new inherited scene so you can save it
@yakoublat02
@yakoublat02 5 жыл бұрын
Great series ! hope in future to get deeper into game creation in GODOT of curse !
@marc-alexandrelaroche6632
@marc-alexandrelaroche6632 5 жыл бұрын
*course
@nexus_linky
@nexus_linky 4 жыл бұрын
This is how my script ended up: ``` extends KinematicBody """ Steve é a bola mais fofa do universo CG. :3 """ export var speed: float = 5 export var accelaration: float = .1 var velocity := Vector3.ZERO func _ready() -> void: print("Hello 3D Wolrd!") func _physics_process(_delta: float) -> void: var strenght := get_input_axis() * speed var motion := Vector2( lerp(velocity.x, strenght.x, accelaration), lerp(velocity.z, strenght.y, accelaration) ) velocity.x = motion.x velocity.z = motion.y $MeshInstance.rotate_z(deg2rad(-motion.x)) $MeshInstance.rotate_x(deg2rad(motion.y)) velocity = move_and_slide(velocity) func get_input_axis() -> Vector2: """ Retorna o input do usuário em forma de uma direção bidimensional. """ return Vector2( Input.get_action_strength("move_right") - Input.get_action_strength("move_left"), Input.get_action_strength("move_down") - Input.get_action_strength("move_up") ).normalized() ```
@5Puff
@5Puff 4 жыл бұрын
r/Ihadastroke
@heckyes
@heckyes 4 жыл бұрын
Can you teach me everything from now on?
@JTCF
@JTCF 2 жыл бұрын
One cool thing to do by yourself is try to make rotation depend on speed. Some math gets involed and it's pretty interesting. And it looks awesome, especially since we're using lerp (which I also used for acceleration, not just stopping)
@Speed-TV
@Speed-TV Жыл бұрын
I have a question, so what do you do with all of that extra stuff you created like the playerball scene and the stuff in the imports folder
@bryanmarrrty3674
@bryanmarrrty3674 5 жыл бұрын
You're very good at teaching!! Thank you very much for these tutorials. They've been very helpful on guiding me how to use Godot. I played around by myself and led me to this: Almost everything's the same except that the root node of my ball scene is a RigidBody instead of a KinematicBody and the shape of its CollisionShape is a SphereShape. As a result, the behaviour of the ball looked more natural and the ball will fall off the edge rather than floating mid-air. Here's my script: ``` extends RigidBody const movementSpeed = 25 func _ready(): pass func _physics_process(delta): var xSpeed = Input.get_action_strength("ui_right") - Input.get_action_strength("ui_left") var zSpeed = Input.get_action_strength("ui_down") - Input.get_action_strength("ui_up") var movementVec = Vector3(xSpeed, 0, zSpeed) * movementSpeed add_central_force(movementVec) ```
@andreemcaldas
@andreemcaldas 3 жыл бұрын
At 25:20, it is called "right-hand rule": en.wikipedia.org/wiki/Right-hand_rule#A_rotating_body Your thumb points along "axis z", because you are using "rotate_z". Also, as @HiddenWindshield points out, radians is very good! That's because if you multiply "angle in radians" by "sphere radius", you have the amount the sphere has rolled on the ground. Therefore, the angle in radians would be (with the appropriate sign) (delta * speed) / radius.
@ekaterinavalinakova2643
@ekaterinavalinakova2643 4 жыл бұрын
One thing I've noticed is the mesh of the sphere suddenly stops spinning when you let go of the arrow keys. If you don't want it to suddenly stop, but gradually slow down just as the KinematicBody does, in both "else:" areas of the script, add $MeshInstance.rotate_z(deg2rad(-velocity.x)) and see if that works. else: velocity.x = lerp(velocity.x,0,0.12) $MeshInstance.rotate_z(deg2rad(-velocity.x)) else: velocity.z = lerp(velocity.z,0,0.12) $MeshInstance.rotate_x(velocity.z*delta) I found out that velocity.z*delta also appears to work.
@sergiosuarez3120
@sergiosuarez3120 4 жыл бұрын
Dude thank you for making these! :) you teach things in a super clear way. Looking to get into this engine and your tutorials are way better than many of the paid ones, so least i can do is subscribe and like every video! Keep up the great work.
@LiveDimi
@LiveDimi 2 жыл бұрын
One Question, when I add the Material on the Floor (The Colour) and play the Scene, I get a flickering Floor. Does anyone know what causes this? Thanks in advance :)
@dedhead9322
@dedhead9322 5 жыл бұрын
Another great tutorial! I did come across a very easy fix for the diagonal speed issue. If you normalize the speed it solves the problem. I posted it in my comment on the last video. This is my code after this tutorial: extends KinematicBody export var SPEED = 10 export var ROTSPEED = 8.5 func _ready(): pass func _physics_process(delta): var velocity = Vector3(0,0,0) if Input.is_action_pressed("ui_right"): velocity.x += 1 $MeshInstance.rotate_z(deg2rad(-ROTSPEED)) if Input.is_action_pressed("ui_left"): velocity.x -= 1 $MeshInstance.rotate_z(deg2rad(ROTSPEED)) if Input.is_action_pressed("ui_up"): velocity.z -= 1 $MeshInstance.rotate_x(deg2rad(-ROTSPEED)) if Input.is_action_pressed("ui_down"): velocity.z += 1 $MeshInstance.rotate_x(deg2rad(ROTSPEED)) if velocity.length() > 0: velocity = velocity.normalized() * SPEED move_and_slide(velocity)
@sorayabraz
@sorayabraz 4 жыл бұрын
Thank you so much! Your tip is so usefull, it should be at the beginning of the comments!! This issue almost drove me crazy, haha!
@ErikScott128
@ErikScott128 5 жыл бұрын
Alternative code to implement the rotation: if velocity.length() > 0.01: # Use a small value here rather than zero because of floating-point nonsense. var ang_vel = -velocity.length() var ang_delta = ang_vel * delta var rot_axis = velocity.cross(Vector3(0,1,0)).normalized() $MeshInstance.rotate(rot_axis, ang_delta) $MeshInstance.orthonormalize() Line-by-line explanation: We don't want to calculate rotation if the velocity is 0, or very close to zero, so we wrap all this in an if statement. This is because some of the math falls apart if we have a vector with magnitude 0, or very close to 0. The angular speed in radians/sec is just going to be the linear velocity divided by the radius of the ball. The ball has a radius of 1, so it's just the linear velocity. I had to throw in a negative sign because of the order in which I took the cross product. Because we're changing the angle, not the angular rate, we need to get the change in angle associated with the velocity for one step. We can use the delta variable here, which is the physics time step. This is line here is simple numerical integration. We can find the axis of rotation as the cross product of the linear velocity and the "up" (y-axis) vector (this should actually be the contact normal, but we're only rolling on a flat plane here) We can now tell the mesh instance to rotate about that vector by the change in angle calculated earlier. Lastly, we othonormalize the transform matrix, which is good to do periodically.
@voxeledphoton
@voxeledphoton 5 жыл бұрын
Awesome! I was doing something kinda similar. Great explanations, and thanks for letting me know about the floating-point nonsense! This is what I had: func _physics_process(delta): hdir = int(Input.is_action_pressed("ui_right")) - int(Input.is_action_pressed("ui_left")) vdir = int(Input.is_action_pressed("ui_down")) - int(Input.is_action_pressed("ui_up")) velocity += (Vector3(hdir*SPEED,0,vdir*SPEED) - velocity)/10 if velocity!=Vector3.ZERO: $MeshInstance.rotate( Vector3.direction_to(Vector3(velocity.z,velocity.y,-velocity.x)), Vector3.ZERO.distance_to(velocity)/SPEED/PI/DIAMETER ) move_and_slide(velocity)
@thegamingforge8347
@thegamingforge8347 4 жыл бұрын
make more tutorials for 3d games in godot
@Mark73
@Mark73 4 жыл бұрын
What works perfectly is to feed your velocity into the deg2rad function (flip the sign for rotate_z). Basically after your two if blocks do: $MeshInstance.rotate_z(deg2rad(-velocity.x)) $MeshInstance.rotate_x(deg2rad(velocity.z))
@Speed-TV
@Speed-TV Жыл бұрын
I noticed how when you stop moving the ball slows down but it doesn't keep rotating. How do you change that
@segsfault
@segsfault 2 жыл бұрын
Instead of calling deg2rad function everytime your want to rotate, you can make a constant on the top and then use that. example: const playerRotation = deg2rad(5) And then here your can tweak it accordingly and computer will not have to calculate the value everytime
@GaryParkin
@GaryParkin 2 жыл бұрын
So a constant can be a function? That's cool.
@segsfault
@segsfault 2 жыл бұрын
@@GaryParkin no, deg2rad converts the given value in degree to radian and returns it, so what we're doing is we're converting 5 degree to radian and using it later, now since 5 degree to radian is always the same we just separate it out so we don't need to calculate the same thing again.
@GaryParkin
@GaryParkin 2 жыл бұрын
@@segsfault OH! I get it. The function runs once and stores the result in the constant. Still pretty neat. Thank you for the clarification Aditya.
@digbythedog2465
@digbythedog2465 2 жыл бұрын
This is a really good tutorial series so far, even years later
@HalValla01
@HalValla01 5 жыл бұрын
Title: Godot 3.1 [insert other stuff here] First segment of video: Teaching us basic texturing in Blender *I love you*
@MncMarcos
@MncMarcos 2 жыл бұрын
I am very picky with little details haha, so, if you are like me, and you are annoyed by the sphere texture not rotating during the lerp function (the friction), i improvised this: velocity.x = lerp(velocity.x,0,0.1) $MeshInstance.rotate.z(deg2rad(lerp(-velocity.x,0,0.1))) and velocity.z = lerp(velocity.z,0,0.1) $MeshInstance.rotate_x(deg2rad(lerp(velocity.z,0,0.1)))
@Galaxia53
@Galaxia53 2 жыл бұрын
Yes it worked! Although because you wrote down .z instead of _z it didn't work for a while and I wondered why.
@cosmicquestion9184
@cosmicquestion9184 3 жыл бұрын
You wanna make a game, learn GODOT! You wanna use GODOT, learn Blender! You wanna use Blender, learn Gimp! WHERE DOES IT END!?!?!?
@BurnLikeAFlame
@BurnLikeAFlame Жыл бұрын
You wanna use any of these programs, learn how to navigate your operating system!
@hick3y1
@hick3y1 5 жыл бұрын
So far so good, i have my ball rotating, i was getting tilted that the rolling animation stopped the moment i let go of a direction while the ball still moved during the lerp, so i made a lerp for the rolling too, if anyone else wants to do this, then make 2 variables named ROT_UD and ROT_LR, these are for up/down and left/right. set them to 0, then set both to 0 when you are holding both left and right (same for up and down) now set them accordingly to the direction (while holding left set to 5, while holding right set to -5 etc) then finally underneath velocity lerp add these velocity.x = lerp (velocity.x,0,0.1) ROT_LR = lerp (ROT_LR,0,0.08) $MeshInstance.rotate_z(deg2rad(ROT_LR)) duplicate this to up and down like you did with the otherstuff and that should work like mine :) hope this helps
@mikewest5670
@mikewest5670 5 жыл бұрын
i just wrote $MeshInstance.rotate_z(deg2rad(-velocity.x)) in my else statement.... it looks pretty damn close to accurate
@t.theonian24
@t.theonian24 4 жыл бұрын
Could you post the actual code? Mine still stops instantly, so I'm obviously doing something wrong... It does rotate correctly, though.
@bankrupt2555
@bankrupt2555 2 жыл бұрын
thanks i was trying this but couldn't get to work. yours did
@menacheryproductions8353
@menacheryproductions8353 4 жыл бұрын
when i imported the ball,it had changed yellow to black as i moved. can anyone pls reply?
@nsovomabasa5014
@nsovomabasa5014 4 жыл бұрын
Scenario 1: I've seen that happens a lot when I tried to use intel integrated graphics to save some battery juice on my laptop. Changing your graphics api to ES2 seems to work. Scenario 2: Trying to save into gltf file seems to be problematic, so instead use "Save As" to save the gltf file as a scene then everything should work fine
@TanimZunaedAlam
@TanimZunaedAlam 3 жыл бұрын
@@nsovomabasa5014 Thanks! Been trying to figure what might have caused the issue, whatever I tired, didn't work. Scenario 1 worked for me
@sabinsunny655
@sabinsunny655 5 жыл бұрын
Really nice tutorial, very well explained , thanks four your help :)
@varin6494
@varin6494 2 жыл бұрын
Great tutorials, very clear and concise explanations. Thank you so much.
@M2007U
@M2007U 5 жыл бұрын
Xr.Shim : "I tried to make my own model in blender, and imported in to godot, but why all the information for colors are gone ?"
@bob2bucks513
@bob2bucks513 Жыл бұрын
i learned alot but idk how im gonna remember all of this
@mustafanesma5166
@mustafanesma5166 2 жыл бұрын
just keep it going man you'r the best ✌️
@anindyaroythetechmaster
@anindyaroythetechmaster 4 жыл бұрын
20:14 Just click on the output button to collapse it
@agusmulyana929
@agusmulyana929 4 жыл бұрын
the game was stoped when i try to rotate it why ?
@spaghettiman512
@spaghettiman512 3 жыл бұрын
Hi im sorry but after loading in the playerball tres file my steve just kept blinking black then normal even though it moves just normally for some reason, does anyone have the same problem?
@TechWampus
@TechWampus 3 жыл бұрын
i have the same problem, and i can't find a solution :(
@taariqmartin7743
@taariqmartin7743 Жыл бұрын
Please keep it up I love ur video's I'm never lost
@siddharth617
@siddharth617 4 жыл бұрын
You're a Great Teacher !! You make these topics Effortless to understand...
@thedrakko3951
@thedrakko3951 5 ай бұрын
Just a note to make the code better: if u add in the else statement $MeshInstance3D.rotate_z(deg_to_rad(-velocity.x)) and $MeshInstance3D.rotate_x(deg_to_rad(velocity.z)) respectively, it will make the ball keep rotating with the velocity that was assignated with the lerp function/method.
@_xeere
@_xeere 5 жыл бұрын
the rotation in degrees would just be 360 x distance moved/(pi x diameter); you don't need to eye it
@mikewest5670
@mikewest5670 5 жыл бұрын
pft.... math...
@JayeshSarvaiya
@JayeshSarvaiya 3 жыл бұрын
You have created a really helpful series of tutorials, I truly appreciate the time engaged, effort taken and planning done for creating these videos, thanks for making them. 👍🙂
@scigama71
@scigama71 2 жыл бұрын
this is the best godot course ive taken :)
@adaline_exports
@adaline_exports 3 жыл бұрын
You can map rotation directly to the velocity of the player with rotate_z(deg2rad(velocity.x))
@ZivFox
@ZivFox 2 жыл бұрын
ok just decided to start learning Godot, (I have almost no coding experience aside from this series) This is the first tutorial I started following. I wasn't happy with how the ball rolled by the end of the video so I was thinking of a way to tie the mesh rotation to the speed and direction of the ball and I came up with this. if velocity.x != 0: $MeshInstance.rotate_z(deg2rad(velocity.x*-.7)) if velocity.z != 0: $MeshInstance.rotate_x(deg2rad(velocity.z*.7)) and it looks great! the mesh rotates with the speed and direction of the ball. I'm sure there is a better way to do this but I'm just happy I came up with it on my own.
@AntonioNoack
@AntonioNoack 5 жыл бұрын
25:50 *but what you should do is appreciating radians ;), because we just can use them for such thing: we rotate by speed * delta / radius (radius = 1, speed was 6, the result is 5.73° at 60fps)
@boriswilsoncreations
@boriswilsoncreations 5 жыл бұрын
2:13 I'm in the future! Yay! \o/
@richardeadon6396
@richardeadon6396 4 жыл бұрын
I'm so glad I found this series and this channel. Godot and Blender 2.8 look like what I've always wanted as a game dev and I'm learning them effortlessly thanks to you. You're a great teacher. Also 24:05 "in some countries" lol burn
@MidnightTsuki
@MidnightTsuki 4 жыл бұрын
Ball rotates till a complete stop with this. The rotation speed is also affected by the movement speed. if Input.is_action_pressed("ui_right") and Input.is_action_pressed("ui_left"): velocity.x = 0; elif Input.is_action_pressed("ui_right"): velocity.x = SPEED; # $MeshInstance.rotate_z(deg2rad(-8)); elif Input.is_action_pressed("ui_left"): velocity.x = -SPEED; else: velocity.x = lerp(velocity.x, 0, 0.1); if Input.is_action_pressed("ui_up") and Input.is_action_pressed("ui_down"): velocity.z = 0; elif Input.is_action_pressed("ui_up"): velocity.z = -SPEED; elif Input.is_action_pressed("ui_down"): velocity.z = SPEED; else: velocity.z = lerp(velocity.z, 0, 0.1); if velocity.x >= 0.0 or velocity.x = 0.0 or velocity.z
@BacnManYT
@BacnManYT Жыл бұрын
You are an amazing teaher I went from not knowing how to doing anything in godot to knowing how to mess with meshes and coding in the native language GDscript, I am lucky to have found such a gem, it also helps that GDscript is simlar to python as I did some python coding in school, but you break it down better than anyone could thank you!
@VikingVertigo
@VikingVertigo 4 жыл бұрын
To fix the diagonal speed and rotation issue, check if the length of the velocity vector is greater than SPEED, if it is, normalize it and then multiply it with SPEED so the length of the vector is now equal to SPEED: if velocity.length() > SPEED: velocity = velocity.normalized() * SPEED To fix the rotation, you can just use the velocity vector for rotation as well (will also decelerate, because it is already lerped).So you can basically remove all the $MeshInstance.rotate_ from the if statements and treat them just like the move_and_slide. Just add it before or after it: $MeshInstance.rotate_z(deg2rad(-velocity.x)) $MeshInstance.rotate_x(deg2rad(velocity.z)) move_and_slide(velocity)
@vojtastruhar8950
@vojtastruhar8950 3 жыл бұрын
For the ball rolling this works pretty well in my opinion: mesh.rotate_z(deg2rad(-velocity.x)) mesh.rotate_x(deg2rad( velocity.z)) The velocity is already normalized, so you dont get faster rotation when rolling diagonally. Anyways cool video!
@marykadlubowski553
@marykadlubowski553 3 жыл бұрын
When you were coding the Steve ball mesh rotations, why wasn't your constant ROTSPEED = (deg2rad(6)) ? Will it cause trouble elsewhere? I love the series. I watch a part all the way through, itching to start, then watch it again to follow along. I also am making a document with the URL code for each step, so I can jump back and forth quickly. I am just sad I didn't start it until now.
@ronstephen
@ronstephen 4 жыл бұрын
hey, I got an even better and easy idea to rotate that ball. at the end of the lines add: $MeshInstance.rotate_z(-deg2rad(velocity.x)) $MeshInstance.rotate_x(deg2rad(velociy.z)) thanks for your tutorial and inspiration.
@logicalapple_3274
@logicalapple_3274 3 жыл бұрын
just wanted to drop this in - your enthusiasm is really motivating and these tutorials are amazing , you remind me of brackeys but i prefer your way of teaching :)
@frikabg
@frikabg 10 ай бұрын
8:36 about importing the files for the ball. Currently the blender version that I am using is 4.0.0. The blender website is down because it is being DDOS attacked atm so I downloaded this version from the Microsoft store. The options when it comes to extracting files is quiet different but the export process isn't that hard you should be ok. What is very different is the files that you have to copy after you extract the immage with blender. For me after you export the ball image from blender you have 4 files and unless you copy all of them the ball is not loading properly in Godot. the 4 files are playerball.bin playerball.gltf luxo.png and luxopng.import
@xXBrutus67Xx
@xXBrutus67Xx 4 жыл бұрын
If someone cannot import correctly the ball and its material, make sure you have these nodes in Blender : image texture - Principled BSDF - Material output. If your nodes are image texture - Material output, it doesn't work in Godot.
@gamesense4471
@gamesense4471 5 жыл бұрын
Files are not able to download. Please help sir!!
@BornCG
@BornCG 5 жыл бұрын
There is a link in the description of this video right below the video. The link (starts with bit.ly/...) will take you to a download page. The .blend file must be opened in Blender 2.8 and will not work in Blender 2.7x.
@hugoahn5114
@hugoahn5114 2 жыл бұрын
me watching this video with blender 3.0 released and he has 2.8 BETA. Feels good living in the future
@zwiebelsaften9175
@zwiebelsaften9175 3 жыл бұрын
When I try to export the playerball it doesnt work because of "unknown location" WTF? Using Pop OS 20.10
@JayJoeVid4EVER
@JayJoeVid4EVER 3 жыл бұрын
Theoretically (and correct me if I'm wrong) but would it be possible to use $(MainCamera) and add movement functions to that component alone, creating a first person experience without an actual model. Not that I'm considering this or anything but It'd just be cool to learn.
@stevesmith9973
@stevesmith9973 5 жыл бұрын
Thanks for another great video!
@wallybe2946
@wallybe2946 5 жыл бұрын
Really good information Thank-you for the Tutorial
@wadha2314
@wadha2314 4 жыл бұрын
Why is my Luxo material weird? The texture shows only from the bottom, and something appears in the terminal “condition “!p_src” is true.”, can anyone help?
@pnkbtle1401
@pnkbtle1401 2 жыл бұрын
Question. I'm using Blockbench for modeling since it works better for my pc than blender. But how would I make sure it's up to scale with godots? How do I translate scale between two different programs?
@eldadario7339
@eldadario7339 4 жыл бұрын
wow is incredibly great
@thebossladyhashimi5761
@thebossladyhashimi5761 3 жыл бұрын
Hey I actually have a problem with the camera, and I cant see my scene whenever i play the scene is there anything I can do, please? thnkz
@marykadlubowski553
@marykadlubowski553 3 жыл бұрын
Is your camera facing in the correct direction? It seems silly, but I kept thinking the triangle on the camera was the "lens". I was contemplating the void...
@edawg704
@edawg704 3 жыл бұрын
refer to the first video for camera setup
@gihananuruddha8861
@gihananuruddha8861 4 жыл бұрын
@2.55 "….it's really just a sphere, we are going easy here and this sphere in the …." rhymes!
@MITTZdesu
@MITTZdesu 2 жыл бұрын
So, you can't make it so that the player can redirect buttons in the menu, like in "minecraft"? And .. When I saw "blender" and "keys" in one line, it seemed to me that there would also be a mention of exporting forms ]:
@zjeremyyparko
@zjeremyyparko 4 жыл бұрын
The natural rolling speed for a ball is 3 degrees/sec irl. Just change the ROTSPEED constant to 3 and the ball rotation should look more natural.
@MrHatoi
@MrHatoi 4 жыл бұрын
Godot has full support for both .glb and .gltf versions of the format, so it shouldn't make a difference which one you choose. glb is probably actually better for final releases since it produces smaller file sizes.
@frikabg
@frikabg 10 ай бұрын
the video and the current versions of blender and Godot have huge discrepancies ... i can only imagine that things will get much much much worse going forward. For beginners, I would advise them to find newer guides in order to avoid huge headaches going forward.
@thomasamathew4058
@thomasamathew4058 4 жыл бұрын
hey great content..helping me in a big way..can you please help me with an error ? at 16:21 when the ball takes on the skin it is fine in "Steve" scene but when I go to the main "Level" scene the ball becomes a black sphere...I don't know why?...Please help
@bbgamingplay1511
@bbgamingplay1511 4 жыл бұрын
Help whenever I try to type the dollar sign which is Num lock on + alt+ 36 it's ok. But when I try and type 3 it takes me to the end and does not work!! Please help me.
@rileycox9092
@rileycox9092 3 жыл бұрын
Hey bro!! Having a hard time getting the ball to rotate/roll I keep getting an error code about the meshinstance saying the node isnt found, I've checked the code over and over again it works fine, when remove the lines of code pertaining the actions for the meshinstance the ball moves fine, slides back and forth with every press of the arrow key but as soon as I try to code for the rotation of the mesh on the respective z and x axis it doesnt work and I receive the error code mentioned above. Any idea what might be my problem?
@alfredjgreen
@alfredjgreen 3 жыл бұрын
Hi Colin! Can you share the .blender gltf and other files of this tutorial in a zip file please! Chrome blocks the standalone download of these files as dangerous! Thanks!
@subankarhalder9237
@subankarhalder9237 5 жыл бұрын
Thanks for the tutorials, I am learning.
@KrazeeCain
@KrazeeCain 4 жыл бұрын
I tried to make my own quick material using a voronoi generator for the ball instead, and the material isn't applied to the ball when I open it in Godot, nor can I find a way to apply it.
@LoganMTM
@LoganMTM 4 жыл бұрын
Do you really need to createt 500 scenes just to change the sphere mesh??? Why didn't you just the 3d mesh node ?
@Brea0clock
@Brea0clock 2 жыл бұрын
This is an amazing tutorial! But it needs a little updating. For me this was made 1-2 years ago.
@dontdoit7224
@dontdoit7224 2 жыл бұрын
I have an issue, when changing the rad speed it goes extremely fast, the only number that works is 8
@Nothing-dl9li
@Nothing-dl9li 4 жыл бұрын
Why My rotate isn't working? As the character rotates on the Z Axis, it slowly moves to the X Axis
@Mateus_Longo
@Mateus_Longo 2 жыл бұрын
Thank you, sir.
@eddyrouhana4965
@eddyrouhana4965 3 жыл бұрын
Man I i cant open the game from 15:58 minutes in video help me i dont know why i just got confused and i think i deleted steve.tscn cannot open the file
@smayankartha6297
@smayankartha6297 4 жыл бұрын
When i play the scene the ball appears completely black, its only when i move it to certain parts of the floor that the texture comes into appearance. any idea how to solve this issue?
@anavrindlouw3450
@anavrindlouw3450 5 жыл бұрын
I will also share your videos to my friends who are looking learn programming and creating games
@mikewest5670
@mikewest5670 5 жыл бұрын
i took a python course from udemy right before watching these videos and it helped out
@kevindadmun2337
@kevindadmun2337 3 жыл бұрын
when i move the ball up the balls material disappears the ball turns black. how do i fix this?
@antoinecherfane
@antoinecherfane 3 жыл бұрын
Hi i have a problem downloading the files needed. every time i press download it just reloads and does nothing . Help please .
@kallelfiori9767
@kallelfiori9767 3 жыл бұрын
just add a velocity.normalized() at the end to fix de diagonal velocity
@hypermonk33y56
@hypermonk33y56 8 ай бұрын
can you please share the updated script source code for godot 4 as its hard to actually figure out the current syntax coding from an old version to the current one
@sonicbro6446
@sonicbro6446 3 жыл бұрын
how to do you make it so the movement of the player is continuous? or to put it in other words, how make it possible to hold down the direction keys?
@MoKaLu
@MoKaLu 5 жыл бұрын
very nice tutorial, well paced, well explained, you're a very good teacher. Thank you sir.
@BornCG
@BornCG 5 жыл бұрын
Thanks!
@savacristian4245
@savacristian4245 4 жыл бұрын
do I really need to have blender to make Steve have a texture? edit:i just realised how stupid i am
@gamert2525
@gamert2525 4 жыл бұрын
Great thanks sir
@yanko694
@yanko694 3 жыл бұрын
can lerp be applied to the rotation of the ball so that it feels more natural when it stops... right now the rotation stops but the ball still has that tiny slide effect before it stops.
@realjames1
@realjames1 3 жыл бұрын
About 2 hours in and I already learnt so much from this series.
@thehiddenalg8360
@thehiddenalg8360 2 жыл бұрын
could you make a whole like map and then like import it into your game? or how would you get a map into the game?
Новый уровень твоей сосиски
00:33
Кушать Хочу
Рет қаралды 5 МЛН
Intro to GDScript for Programming Beginners
44:14
GDQuest
Рет қаралды 394 М.
3D Movement in Godot in Only 6 Minutes
6:11
GDQuest
Рет қаралды 314 М.
Import 3D Models From Blender into Godot - Godot Quick Tips
7:55
Code with Tom
Рет қаралды 77 М.