A step by step bazel beginner guide
48:42
Пікірлер
@łłłł-s2x5i
@łłłł-s2x5i 6 күн бұрын
Ok I already have a working Grid System but I think I made some thing my PC dosent like Compilieng it takes (no joke) 10 secs its madness. I hope yours is fixing my Problem
@MarshallMcGee
@MarshallMcGee 15 күн бұрын
Hey there! Brand new to lighting in unreal, I’m curious, does this technique become a bit harder to apply if you’re doing a day/night cycle? Like you’d have to find a way to blend between different sky colors etc.
@struggling3dartist910
@struggling3dartist910 21 күн бұрын
is this going to be affected by frame rate?
@skeletony7515
@skeletony7515 29 күн бұрын
Vaib
@rattha932
@rattha932 Ай бұрын
You have no idea how many times I tried looking up for a ‘proper’ hexgrid tutorial, you’ve earned a sub mate!
@gisli
@gisli 14 күн бұрын
Happy to hear! :D waiting for live to calm down a bit to continue with the series
@relaxtoe
@relaxtoe Ай бұрын
Apparently if you don't select "Swizzle" and select "Scalar" it looks like it lets you input a Vector; there can be 2 or 3 inputs if you have selected Axis 2D or Axis 3D for whichever input action. Just to let everyone know, only the first input does anything. You'd need to use "Swizzle".
@benmerrick3d
@benmerrick3d Ай бұрын
Do you know how to place these tiles from a texture? Ie water tiles on white part of texture land on black, etc? That would make it really easy to customise
@АндрейЗнак-и1б
@АндрейЗнак-и1б Ай бұрын
Thanks, collision preset also can change by the way get class?get
@CharlieTheA
@CharlieTheA Ай бұрын
Excellent tutorial, though I had to back up a few times and replay where I missed something. I'm just getting started with Unreal though so maybe it's just my lack of familiarity. Thanks, looking forward to the next one.
@sv9141
@sv9141 Ай бұрын
Cool, works awesome and its a perfect starting point for my project. Any tips on how to prevent faster movement speed in diagonals?
@natn8r124
@natn8r124 Ай бұрын
Thanks a ton!! Love the easy walkthrough!!!
@gisli
@gisli Ай бұрын
Glad it helped!
@angelomosca8649
@angelomosca8649 Ай бұрын
Hey man, thanks, nice tutorial! A strange thing happened to me. Following your instructions, when I pressed W it went backwards and when I pressed S it went forward. In the input mapping I inverted the "negate" modifiers, attributing it to the W instead of the S. Strangely now the movement is correct, even if the logic is backwards ¯\_(ツ)_/¯
@sv9141
@sv9141 Ай бұрын
same here. I rotated the player start object 180 and now it works ok
@jennaschulte212
@jennaschulte212 Ай бұрын
Thank you so much for this tutorial! I cant wait for future tutorials in this topic! Amazing job!
@gisli
@gisli Ай бұрын
Thanks a lot! I'm still working on it, hopefully it'll be informative and fun
@isaacwardmusic
@isaacwardmusic Ай бұрын
Do you have a video showing where you made BP_BouncingBall?
@jorged.velazquez7579
@jorged.velazquez7579 Ай бұрын
Omg thanks! There's no spanish info of this :c your explanation is aweasome even for an spanish listener like me!
@gisli
@gisli Ай бұрын
Thanks for your comment! it means a lot. I try to make tutorials that are easy to understand and explain in an accessible way so I'm very happy to hear that it translates well into different languages!
@vbrao
@vbrao 2 ай бұрын
Such minuscule fonts,
@gisli
@gisli Ай бұрын
Sorry about that! this was one of my first videos and I didn't pay close enough attention to this
@patrickmoates8030
@patrickmoates8030 2 ай бұрын
I'm glad you've taken steps to look after yourself. You, and who you will be, absolutely deserve this consideration and the benefits it brings. Btw. I just found your channel and your content is amazing. However, you partnership with yourself, in working on yourself and taking care of your mind and spirit, is modular to everything you do. So no matter what happens, if you never make another video-- do keep looking out for yourself. It's a friendship worth your time.
@gisli
@gisli Ай бұрын
Thank you for your kind and insightful words! I think its important to also create honest and open content and share even when things aren't perfect. I've started to feel more inspiration and motivation but it takes time. Building upon you comment I kept thinking "I need to get back to how I was" when in all honesty, I'm evolving and should much rather be thinking about where is the path forward and how can I walk confidently in the direction I'm passionate with
@patrickmoates8030
@patrickmoates8030 Ай бұрын
@@gisli Hi, again. I know it's been a month since we spoke but I wanted to check in on you and see how you've been doing.
@gisli
@gisli Ай бұрын
@@patrickmoates8030 Thanks for your message! Its been a busy few weeks, went to Gamescom last week to help a startup that I'm involved with, done a few short contract gigs. And next week I'll start a full time position in a new country :D Haven't had much time to focus on the channel with everything that's going on, but I'm hoping that once I settle in the new country I can continue making content D:
@patrickmoates8030
@patrickmoates8030 25 күн бұрын
@@gisli That's great to hear man. Sorry for the late reply. Keep being kind to yourself.
@appleseedgames6934
@appleseedgames6934 2 ай бұрын
My script I made wasn't showing up in the actors parent dropdown list which lead me down a big rabbit hole which caused my project to become corrupt, how wonderful
@gisli
@gisli Ай бұрын
That sucks! I strongly suggest checking out some sort of version control. I personally use git (but I know many people don't like if for game dev). One thing that you can try, is deleting your "Saved, Intermediate and Binaries" folders from your project. Its very likely that your corruption is hiding somewhere in there and just needs to be regenerated
@mrh8984
@mrh8984 2 ай бұрын
Just what I need. But I set this up, hit play, I have it set to a key stroke press and when I hit the key (R) it disappears, ideas?! I even set the distance to 0 and it disappears. Would love some guidance. Thanks.
@mrh8984
@mrh8984 2 ай бұрын
I was using the First Person Example to test, and as soon as I hit the key it would actually send it under the ground as the ground level Z is 190 and the cube would go under the ground geometry and go to 0. So I set the Z location in SetActorLocation to 190. Question now is how can I just add movement to wherever the cube is to begin with? without it going to 0 and without having to SetActorLocation to 190.
@gisli
@gisli Ай бұрын
The trick there is you want to first (in the tick function). call "GetActorLocation) which will give you the 3D position of your cube. Then its just a matter of adding ( + ) some value, for example (1,0,0) to the current actor location. Then lastly, you call "SetActorLocation" with the result of your add function Hope this makes sense :D
@StefanoCelsan
@StefanoCelsan 2 ай бұрын
Thanks, this helped out a lot!
@gisli
@gisli Ай бұрын
Glad it helped!
@meida_oficial
@meida_oficial 2 ай бұрын
Love it ❤
@gisli
@gisli 2 ай бұрын
Awesome! Happy to have helped :D
@t3hpwninat0r
@t3hpwninat0r 2 ай бұрын
Great video! I had wondered about how to do the coordinates calculations for this in the past but I'm not good at math and wasn't even sure if hex grids would be better than square grids in my project so I gave up on that and just used a simple square grid. There is only one piece of feedback I have: you can combine the nodes into a function that takes the loop indices as inputs and returns the coordinates of the static mesh instance as an output. You could even add a boolean input "WorldCoordinates" to return world coordinates in the output rather than each tile's actor-relative local coordinates to make the function more useful. This does two things: first the graph will look much cleaner and second you can call this function from another event graph to find out where to place something if you want it to appear on top of a specific tile :)
@lukebrowell9062
@lukebrowell9062 2 ай бұрын
Imagine that your hexagons are each made of 6 equilateral triangles. Now imagine a grid of equilateral triangles, each alternating its direction either pointing up or down. Now look at your formula for height: Square root of three multiplied by the radius (which is also the length of side of your equilateral triangles). An equilateral triangle can be split into two right angle triangles. Now look at how Pythagoras can be simplified for your use case.
@gisli
@gisli 2 ай бұрын
That's a great explanation! It really looked like "magic" but now I have a pretty good understanding of this
@crazyguy7585
@crazyguy7585 2 ай бұрын
very few people know that unreal 5 have C++ Header preview tool in Editor tool section their is a tool to convert blueprint to C++ tool name C++ Header preview tool. can u cover that also in ur future videos.
@gisli
@gisli 2 ай бұрын
I had no idea! definitely something I want to check out :D
@Kayioki
@Kayioki 2 ай бұрын
This was perfect, helped me out modifying the original top down view that comes with unreal engine that does not come with wasd movement I used this to change the click based movement. thanks. I'm new to this stuff and it was easy to follow. Also is it posible to add to this method jumping? I guess it will have something to do with the Z access that was not used in the controller view
@gisli
@gisli 2 ай бұрын
Glad you liked it! The Third Person Pawn has a function called "Jump" that handles jumping so you might be able to hook up the enhanced input and trigger that command. But I'll admit, there comes a point where its easier to not start with the templates, they are great for learning but once you get a hang of how the input works, camera and movement its sometimes better just to try and set it up to do exactly what you need for your game
@Kayioki
@Kayioki 2 ай бұрын
@@gisli Yes! I found out how to add it it was simpler that I expected.
@leonv983
@leonv983 2 ай бұрын
Thank you, man. I've been looking through unreal docs and numerous tuts, but your case was the ideal implementation for me (clicking objects with mouse without using UMG). Cool cool cool
@gisli
@gisli 2 ай бұрын
Glad it helped!
@Murmur95
@Murmur95 2 ай бұрын
next tutorials when? I was hoping to randomize terrain on the hexes but I noticed that they are all the same material.
@gisli
@gisli 2 ай бұрын
In this video we are using Instanced Static Meshes so if you apply a material to it then all the tiles will end up having the same material. I'm still working on the next one! happy to hear that you are excited for it. gives me motivation to make it even better :D
@Hamad_S
@Hamad_S 3 ай бұрын
Thank you very much! It is really helpful tutorial. Please make more! I noticed your compilation is fast. Could you please share tips on how to speed up compilation time like yours?
@gisli
@gisli 2 ай бұрын
Thanks a lot! I appreciate your comment Great catch on the compile time, I'm using hot reload, but its hard to see in the video because my floating head is in-front of it. Hot Reload lets you compile c++ without having to restart the editor and can be very quick. This video doesn't show it very well but I think there is some good documentation for it on the epic website
@squidz2720
@squidz2720 3 ай бұрын
Great video man! Would definitely like to see more of this series!
@gisli
@gisli 2 ай бұрын
Glad to hear! I've already started the next chapter so hopefully you won't have to wait long
@Shushpo
@Shushpo 3 ай бұрын
Big thanks! Just what I needed when trying to trigger all of my enemy spawners at once
@gisli
@gisli 3 ай бұрын
Glad it helped 💪
@jobru5618
@jobru5618 3 ай бұрын
Don't give up 🔥
@waltch5711
@waltch5711 3 ай бұрын
This is how a tutorial should look like. Great video.
@gisli
@gisli 3 ай бұрын
Happy to hear! I'll hopefully be able to make the next one in the series soon!
@tee-hee9553
@tee-hee9553 3 ай бұрын
I love you My Hero, you save my life
@gisli
@gisli 3 ай бұрын
Glad it helped! :D
@bauzel5890
@bauzel5890 3 ай бұрын
If i do this in UE 5.4 my actor or mesh dissapears when i play the level. But i get the correct coordinate output from the actor as string. So the moving works. Anybody knows why the objects get invisible when moved?
@gisli
@gisli 3 ай бұрын
There is a chance that your object is moving too fast and it disappears out of view. There is a pause button that you can press, and go to the outliner (list of actors in the scene). So when you play the game you could find the actor that disappears in the outliner and look at the location. Maybe the location is a very high number which means you are moving too fast
@v-tr7vg
@v-tr7vg 3 ай бұрын
create a video on click event when you hover on any object its shows interact and when you click its give you option to select.. hope you understand this type of video is not available on youtube.
@polatbey7261
@polatbey7261 3 ай бұрын
Welcome back! 🎉🎉
@gisli
@gisli 3 ай бұрын
Glad to be back! Thank you!
@lucasamaro8860
@lucasamaro8860 3 ай бұрын
great video
@gisli
@gisli 3 ай бұрын
Thanks! I really appreciate it!
@Zurlak
@Zurlak 3 ай бұрын
Thank you very much! This is a very cool video and I got it! I really hope for new lessons. This is the only lesson in which I was able to do this.
@gisli
@gisli 3 ай бұрын
Glad you liked it! I've started to work on the next lesson so hopefully it'll be ready soon
@VV4fflew4ffle
@VV4fflew4ffle 3 ай бұрын
The fact that the base module used modifiers freaked me out. thank you so much for this tutorial. it contained the small pieces i needed to complete movement
@gisli
@gisli 3 ай бұрын
Glad it was helpful!
@MrButiier
@MrButiier 3 ай бұрын
Welcome back! 🎉 It's great to hear that you took some time for yourself and came back refreshed but remember to keeping taking care of yourself. Looking forward to seeing what you create next!
@gisli
@gisli 3 ай бұрын
Thanks! Looking forward to the next steps, what ever they will be :D
@HajahBoy
@HajahBoy 3 ай бұрын
i'm using unreal engine 5.3,my project file map are failed to load map problem & i'm try autosave map open but unfortunaly same at this map, please resolve my problem 🤕🤕
@gisli
@gisli 3 ай бұрын
Hi, Its very difficult to figure out what the problem is with so little information. It sounds like something happened that corrupted your file and if you are not using source control like perforce or github then there is not much to be done Do you have a backup of the map that you can restore? Hope you find a solution!
@HajahBoy
@HajahBoy 3 ай бұрын
@@gisli thank you bro i'll solve problem but late seen your comment😅
@julianelischer6961
@julianelischer6961 3 ай бұрын
sounds interesting but I can't read anything on the screen
@gisli
@gisli 3 ай бұрын
Yeah, you are right... I only realized this after recording and uploading, and many people have pointed this out :/ My later videos are better in this regard, I'm hoping I can re-record this soon with more readable font and updated for the latest version of bazel
@julianelischer6961
@julianelischer6961 3 ай бұрын
@@gisli if you can that would be great.. I'm using bazel (blaze) inside google but your video was a great starter.
@julianelischer6961
@julianelischer6961 3 ай бұрын
a video on '"concepts" would be great.. more a whiteboard session.
@MrButiier
@MrButiier 4 ай бұрын
Thanks for another great tutorial! Very clear and concise.
@gisli
@gisli 4 ай бұрын
Thanks! Your comment means a lot!
@renemiche735
@renemiche735 4 ай бұрын
Nice, clear and simple! Thanks. How to interact with the grid now? Like case selection and paths ?
@gisli
@gisli 4 ай бұрын
Thanks! I'm thinking about starting with selection first and showing how to do a highlight when you mouse over the grid, and then do "something" when you click on it. Doing a path is pretty interesting. There is probably an algorithm for paths on a hexagon grid that I would have to learn before I make a tutorial. Sounds pretty fun!
@HajahBoy
@HajahBoy 4 ай бұрын
thanks for your help, you help this concept used to my problem solved 😇😇
@gisli
@gisli 4 ай бұрын
Happy to help, good luck with your project!
@invert6actual585
@invert6actual585 4 ай бұрын
is there a way to do this without using get all actors of class?
@gisli
@gisli 4 ай бұрын
Yeah definitely! One way would be to make it so that on BeginPlay each one of the spheres register itself to a global object. For example, create an array on the gamemode called "ActorsToMonitor" or something like that. That way you don't have to do GetAllActorsOfClass() but can rather do GetGamemode->GetActorsToMonitor and loop through that to bind This is a pattern called "publish-subscribe" in computer science and can be tricky to solve well in some cases. The problem to solve is you need to know which actors are publishing (or broadcasting events) and which actors should subscribe (or bind to the events). But if the pub-sub relation ship never changes. that is on BeginPlay the actor should always just listen to a set number of actors then GetAllActorsOfClass is fine If you want to do this dynamic, where new actors are spawned into the level and you want the listener to bind to the new actors then having them register to a global object like I mentioned could work. The real tricky part starts when you need to also remove the bindings based on some criteria, like if an actor has moved too far away from the listener then remove the binding and if it gets close enough add it :)
@Marmazetka
@Marmazetka 4 ай бұрын
Perfect lesson. Really big thank you! It's not hard. Just without lessons you need many time for this :) PS. Am I understanding correctly? If I want use Pawn BP, I need to fix C++ file because "Charapter" BP is a special case of "Pawn" BP (Override) , right?
@gisli
@gisli 4 ай бұрын
Thanks for you comment! The character class is a special version of the pawn (a subclass). What the character class does (among other things) is add the CharacterMovementComponent which means that its a pawn, with extra logic to move like a character. The blueprint versions are subclasses of these classes. so the pawn blueprint Inherits from the pawn c++ class and the character BP from the character c++ So if you want to use a Pawn blueprint, and not a character blueprint then you can change it in the "Class Defaults" section of the blueprint and switch the parent class. But if you do that then you lose all the extra logic you get from the character. Hope that makes sense :)
@Marmazetka
@Marmazetka 3 ай бұрын
@@gisli Thank you. I will not make this. I just want to understand it :) Thnk you
@ToppledTurtle834
@ToppledTurtle834 4 ай бұрын
Modulo gives you the remainder of number after dividing it by the number you put in. So every even number divided by 2 has a remainder of 0 and every uneven number will have a remainder of 1. If you would input modulo 3 it would return a 1 every third number as every 3 integers the cycle of what remains after dividing repeats
@gisli
@gisli 4 ай бұрын
Again, great explanation. I've always just thought of the modulo operator as a "trick" to figure out odd or even numbers and this clears it up!
@ToppledTurtle834
@ToppledTurtle834 4 ай бұрын
The reason for that being the sqrt(3) *size is simply pythagoras. We know a side=size. if you make a right angle triangle from the middle to a corner and to the middle of a side you get a right angle triangle with sides: 1*side for the long side and 1/2*side for the other side. let's say side=x to make it easy and solve: x^2-(1/2*x)^2= (hight/2)^2 or 3/4*x^2 = (hight/2)^2. This as 1/2^2 is 1/4 and 1 -1/4 =3/4 Then take the sqrt of both and you get sqrt(3)*sqrt(1/4)*x=1/2*hight or sqrt(3)*1/2*x = 1/2*hight. And this finally gives hight = sqrt(3)x
@gisli
@gisli 4 ай бұрын
Awesome! thanks for this explanation, it really helped me understand this better! The more I learn about how this works, the more I want to remake the video to include the full information. Its not complex when its laid out like you did
@snowy0110
@snowy0110 4 ай бұрын
Great tutorial! I really miss testing documentation for UE. Btw, I can't see any list output when "Automation list" is run. Do I do something wrong? I have created one functional test: FTEST_BasicTestLevel.umap and I put there one testing actor: BP_BasicTest.uasset. When I run it through the editor itself, everything is fine. But I can't run it through command line (I need it for CI). 😞
@gisli
@gisli 4 ай бұрын
Thanks! I must admit that I can't remember well enough how to discover tests in levels like you mentioned. Any time I do this I have to do a lot of re-discovery to get it working. The next time I setup testing in an empty project I'll definitely make a cheat sheet. One thing I remember is that the discovery is very dependant on a naming convention. So there is a chance that your BP_BasicTest does not follow the right convention. Another thing that might be good to check out is when you run it from the editor, to see if you can find the actual command that the editor runs. That way you might see which discovery flags you are missing