it comes from object oriented programming languages, which all have these concepts: class is the declaration of objects that you create (instantiate) when you run the code. so the class is the blueprint specification for one or more instances of objects based on that class blueprint.
yeah i imagine that's where the word blueprint come from too, because a class is a "blueprint" for what an object should be like. Clever naming on epic's apart, makes it a little confusing to explain though XD
I created the project in the "Third-Person" pre-made, and I can't find the PlayerController. So, I got the bright idea to simply copy-paste the input codes from the engine's pre-made player character's input code onto the newly made player character. Compiling is taking ages and I'm not sure of that even works.
compiling taking a long time is strange. because if it doesn't work it should just give you an error (very obvious red text). but yeah i'm sure that copying character's code into a newly created character is going to result in a few issues
@@thegamedevcave I believe the main culprit is that the BaseplayerCharacter I'm tinkering with doesn't have inheritance to the "Character" class which the built-in PlayerCharacter has.
@@StonegazeSteam how did you make this class? If you make it in engine through “make new c++ class” and chose character (or any child classes of character) from those menus it should inherit from the character class. You can see the parent class in the .h file at the start of the actual class so it should look something like this Class baseplayercharacter : character { **Class code** }
How can I integrate this with ctrl rig? I have a ctrl rig set up but the rig moves all bones, which isn’t what I want, whereas IK ctrl has the set up structure I need but I have to animate the rig
this IK rigging is mostly what is used to retarget (or at least, it was before auto retargeting become a lot more powerful in recent updates) this is separate from control rigs. here's a video about control rigs ": ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-xrZmMI1gk_E.html and a video about the new modular control rigs in unreal 5.4 : ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-JsG2brGlevo.html
If an object exists in memory and you perform a "successful" cast (hard cast) it will have no ill effects because the object is already loaded into memory. that makes sense, but the part that confuses me is why is it bad to have a Cast just laying around, you could have as many cast as you want and there will be no negative side effects because it is already loaded in memory...unless each cast actually creates a copy of the object it is casting to in memory. Each time you cast you have to create memory big enough to hold the object. Or maybe we are talking about two different types of memory: RAM and ROM(Disc) memory. maybe a Hard Ref will place an object in RAM even if you might not want or need it there yet resulting valuable recourses being unnecessarily used. I am still not sure; could you explain Hard and Soft reference as the relate to RAM and Disc memory?
The issue is that hard references will ALWAYS keep the asset they’re referencing in memory, even if no object that uses them exists. So if you have a blueprint that has a hard reference to another blueprint that only appears in certain situations (like a specific level, only a handful of times in the game), it will now always be around in memory regardless of an object of that type actually exists. If you’re making a small game, that’s probably fine but this issue scales up pretty quickly… before you know it you’ve hard referenced so many things in so many different blueprints, you now have half the assets in your game loaded at all times, making your game use dozens of GB of ram.
I'm having trouble getting the inSight / inAttackRange checks to work apparently due to the Physics.CheckSphere functions and possibly the masks (otherwise everything is working well). Does this still work in the newest versions of Unity? It looks like the layer mask (playerLayer here) is actually ignored according to the documentation, not checked, and that OverlapSphere checks the specified layer mask rather than CheckSphere
I'm trying to understand the block tag part. I have it set up where the enemy has a damage player effect class and the target blocked tag is player. Invincible, so whenever the player receives damage they get a short time of invincibility. But my player still takes damage for some reason. The invincibility ability class even has block abilities tag event.damage.
what you explain sounds like it should work. How are you applying the tag? as part of an invincibility gameplay effect? that would be the recommended way to do things I believe. Make an effect that applies a tag to the player, and set that effect to have a duration, that way it will apply the tag, last for X time and remove the tag at the end of the invincibility effect.
@@wildbard4112 if you have discord, you can join the server linked in the video description so you can provide some screenshots, i believe based on what you've told here that it should work, but maybe there's an issue elsewhere that might be causing problems. It's hard to diagnose issues without seeing the blueprints themselves
Question: would you recommend substance painter, or are other options like Mixer also good as free alternatives? I know painter is the best software for texturing but with the price and their TOS there are a lot of problems...
it is the best software that i am aware of. Mixer seems pretty good for the most part though as a free alternative. As far as their TOS goes, it's worth double checking yourself (in case you haven't yet) what subtance's TOS says. there's been a lot of bad stuff coming out around adobe's TOS but as far as i understand that's centered around the creative cloud package mostly. It's entirely possible that substance operates under another TOS. (you can just straight up buy it on steam for instance, which isn't possible with other CC applications, so i imagine there might be more differences.) Now, even if the TOS for substance isn't as batshit insane as the rest of CC, of course it's worth considering if you want to give adobe money or not. If you're working professionally, maybe look into mixer if you want to avoid adobe. If you're working just on personal projects... I mean i would never advocate for anything illegal... but i hear sailing the high seas is rather pleasant this time of year...
Hi! I'm just starting to learn how to create games and I had a question in the video "How to Make Circular Progress bars in Unreal Engine (Round HP bars)." I can't figure out how to get blueprint to read the game data and show it. Could you share a link to a video where this is explained in detail?
Hello!I'm just starting to learn how to create games and I can't figure out how to get blueprint to read game data and show it. Could you share a link to a video where this is explained in detail?
might be worth your time looking through my unreal basics course playlist to get a decent grasp on fundamentals first :) ru-vid.com/group/PLoReGgpfex3x295NSo3hZD6Ylq6hPqdz8
very much depends on what youre trying to save on honestly. As so often with optimization, context is key. there usually isn't a single "make it better" button. but in general distance fields are fairy well in gpu performance yeah. You optimization will often come from limiting draw calls, not so much from optimizing a few nodes and functions inside a single material. (within reason)
Gameplay Tags are great but they're so much more work compared to Actor Tags, especially for smaller games. It's weird I have to add a variable to every actor that needs a tag, then if I don't want to cast everytime I need to check if an actor has a gameplay tag from another actor then I need to make an interface and attatch it to every actor that has them. I think sometimes an Actor Tag is a simpler and more viable solution, but mostly for smaller games, I would never use Actor tags for large games. Anyway just adding my 2 cents, you did a great video covering the basics.
yeah they can be a bit of a handful to work with, i still think for a lot of things it's very much worth it to do but only for things that are reoccurring on a project wide basis. If one actor just needs to tag another actor as something which nobody else cares about, just using actor tags makes way more sense as i understand (I dont really use them much myself). And when/if using GAS, that will pretty much make your whole workflow centered around gameplay tags (which can be great, but also frustrating at times)
I have been using event graphs, where are you putting the main tower controller logic at? Since that is code shared between all instances of a tower? You just sort of rushed over that at the start of the video and I am a bit confused. Seems like every child gets its own fresh empty event graph.
that's what the child blueprints do, it takes all the code from the parent and also runs it/ has acces to it. so you dont see it in the event graph, but it's still running. Try it, make an actor and hook a print string node up to the event tick, then make a child bluerint of it and add nothing to it's event graph. if you put the child blueprint into your level you'll note that it does a print string every frame. That is because the parent blueprint's code is doing that.
I'm having a problem. When I move the spline it doesn't update unless I change something in the details panel or undo. Is this a problem with me running UE 5.4? Great tutorial though!
Great tutorial! Is there a way to set up the ik but with more than 3 bones? I have a mermaid with a tail that has like 6 bones and couldn't figure out how to go about setting that up in the UE control rig
I believe there is a node called "simple IK" which lets you put in the first and last bone of the chain instead, i think that should work with longer chains of bones too for something like a tail :)
@@thegamedevcave Thank you! That is what I was looking for. Though I think I might have found a better solution using the distribute rotation. I think that might behave more tail like
Thanks for this awesome walkthrough!! I like your flow of just stopping and explaining the details of something or showing why another thing won't work. Very easy to follow :)
Great series! One issue I have is about runtime variables like durability. You can add the max durability to the data asset, but you can't set the current durability as well, as its shared by all instances of that data asset. I could add them to the inventory struct, but then I would lose the inheritance advantage and every item would have something like durability. Do you have an idea, how you can add runtime data like current magazine ammo, durability, etc. to a data asset driven inventory, that still keeps the inherited structure ?
yeah, dont try to edit anything about the data asset itself while data aseets can be changed on runtime, you should really treat them as assets, not just blueprints, you wouldn't try to change data about a static mesh for instance either, same goes for data assets. instead metadata like that should go into the itemslot. i'm working on a followup series that'll include some metadata stuff like durability. For something like durability speficailly, i'd probably just put that as a variable on the slot itself. and disable it when it hold an item doesn't have durability. For other kinds of metadata i'm working on setting up a ssytem that uses custom Objects that can hold any amount of data of functions you want :)
@@thegamedevcave I'm looking forward to your video about it. For now I'm trying an approach using a blueprint of type object, which also has the usual inheritance set up (item -> equipment -> weapon). The object has an attribute for the data asset and the equipment has an attribute for durability and the inventory struct has the object instead of the data asset. Feels a bit clunky too though, and I'm not sure if I'll get issues with that approach later. Like I already noticed, but both my approach and probably yours too has an issue with metadata for each item of the stack, as it saves metadata for the full stack and not one item. If you have something like a health potion with multiple uses but also stackable, I'm not sure how it would work with either approach .. besides making them non stackable to begin with, or move the one that does not have all uses left to a new slot and make it unstackable :/
@@Lilium___ i can't think of many games where items with metadata are stackable in an inventory system honestly. Probably for this exact reason. an item slot usually is just a reference to an item with a number telling you how many of that item there are. if each item needs to actually be it's own individual thing, each slot needs to turn into an array instead. But i also dont think you'll want to do that because if each item in a stack is unique, how does a user interact with a specific item in that stack? If items have different behaviour, it's probably better for the user too if they don't stack so they can acces "potion that heals 50 health" speratly from " potion that heals 100 health" . combing those within 1 stack will probably lead to game design issues rather than programming issues. which is why i dont think you see this type of unique item stacking that much in games.
@@thegamedevcave Yeah I think that's what it comes down to in the end. I've seen some games that let you stack weapons with full durability, but then again you can only equip one weapon (and not a stack), so the metadata of the stack will never be updated, only one item at a time, when its equipped. Having an array of metadata, one for each item of the stack can solve that, but as you mentioned that can be very clunky for the user. Technically if you have a cake that can be eaten 6 times, you can make it stackable and just subtract one after every 6th use. But good luck implementing that without making the whole system clunky. Thanks for the input, I'll stay with non-stackable items with metadata, otherwise it will just get too complex for almost no gain.
you're 100% right. i kind of did a shit job explaining what i needed here. what i was looking for wasn't just a waiting node from blackboard time (because yeah, that already exists thankfully) but more or less an async wait node. Something that counts up in the background while the rest of the tree is allowed to keep running and then after X amount of time flips a bool (or in this case actually an enum value) so the tree starts to run the other branches, until the timer rolls over again, at which point it'll switch back :)
@ghostgamer260 replied this in the comments with "If you make a variable from that cyan dot by right clicking it’ll make one for you." and iit works. He refers to the cyan dot at the load Stream Level node
@@svendkorsgaard9599 its a bit too common and overused. For allot of people it may seem lazy and that kinda ruins the vibe of the video. But do whatever you want if you happy with the results.😁