Great video, Important thing to practise is to Saturate before lerping since Lerp alpha is 0-1 & saturate clamps to 0-1. Do you always need to saturate before lerping, No, But should you, Yes. I've been avoiding that If node since I figured out you can divide by 0 using it *Long story - Blob shadows*, But I think that is what i need to go back to instead of lerping for my landscape master material going off your example it should work quite well, other way I was going to try was DitherAA, still might with the IF.
@bibCorp7 сағат бұрын
I've been working with GAS for a while now but I always have to return to some kind of tutorial when doing the first steup steps. I loved your first videos so I kept watching your playlist. You are doing a great job explaining all the steps and all the confusing things. People will have to return to this video several times because some UX parts of GAS are extremely poorly designed, but your video is a very good video to return to.
@SquifiMcDougall20 сағат бұрын
I haven't found a fix for this problem of having to regenerate the Visual Studio project files, I think it's actually a feature :D, but a shorter way of doing that is within the Unreal Editor. Tools -> Refresh Visual Studio Code Project. Does the same as right clicking on the .uproject file. Lovely Tutorial, thought I could wing coding the Gameplay Ability System Tutorial of yours, due to prior programming experience, but missing too many basic concepts. Great stuff, will buy you a coffee online later on.
@myarmsrgoneКүн бұрын
Followed all the steps, it doesn't work in 4.1
@aierisfrost8447Күн бұрын
My armature is invisible
@EtoCan497 сағат бұрын
Did you hide the model when it was selected
@TeppuTeppuКүн бұрын
I have noticed that the leg ik doesn't work very well on some models(the paragon belica, free asset), the pole targets are too far away, how do I fix it?
@utkarshvishwakarma7622Күн бұрын
my model stretches it's mesh if dragged very much , how to stop/prevent that?
@KJPiGamesКүн бұрын
Not working, it only works in viewport mode, but there is no on-stage editor in the editor itself. what needs to be done?
@KJPiGamesКүн бұрын
in general, I fixed this problem, I had to delete DefaultRoot and then yes, now it is updated both in the editor and in the view port in Blueprint
@sara-uh8xyКүн бұрын
what would be the other ways to do it? u mentioned other ways.. xD the hacky way was easy to get it into my project just wanted the knowledge of other ways
@thegamedevcaveКүн бұрын
you could save and load it to a save object, that's a bit on the slow side if there is a lot of data since you're reading and writing to disk isntead of all in memory though. having data assets hold some info could be a decent way to keep data persistent through a play session ( do be aware that data assets reset back to default values when you close and re-open the game so you'll still need to save and load data, but only on started and before you close the game) personally i find that the best way is to not open new levels, instead to have 1 persistent level that the game takes place in and all your levels would just be streaming levels in that. that way, you always have a persistent level that data that should persist can exist inside (so your player would be in that for instance). If you take a quick look at any of my livestream VODs you'll see that is how I have myproject set up and the basic setup for it is shown in my video : how to actually load levels in unreal in the end, each method has it's downsides of course but those are some other ways to look into!
@noinoinoi20952 күн бұрын
I'm still at 33:30 but this system seems extremely promising. I've started learning game dev and have setup a simple hp / stamina / mp and damage system using blueprint but GAS seems to sort of enable all the functions necessary for combat gameplay. I'm wondering which would accelerate my learning, should I learn GAS first or write it out on blueprint first to grasp the flow of certain gameplay logic. If some one has any advice 👋
@thegamedevcaveКүн бұрын
if you're having no trouble following along then you should feel free to keep going! having a general understanding of unreal engine or programming in general will help but if you feel like youre not running into problems while following this, keep on going :)
@astty10742 күн бұрын
Ok so basically Unreal helps you a bit with the design of your code, by forcing an already made one that is pretty flexible, I'd say that's a good plus.
@thegamedevcaveКүн бұрын
pretty much yeah! It also comes with a lot of ready made features and systems to work off which saves a lot of time.
@CorporateCupcakes2 күн бұрын
I love the video but how is his mouth so wet
@bighit201002 күн бұрын
Why not just create an actor BP and say it like BP_Sword and have all the variables in there? What is the true benefit of Data Assets vs Actors for items?
@thegamedevcaveКүн бұрын
The main thing to remember is that data assets are just that, assets. they exist as files on disk, not objects inside a level. a data asset has more in common with a 3D mesh or a material than it does an actor. So yeah, for a swrod, espcially if you dont have a whole item system in yoru game, making it an actor makes more sense. But take or instance making an inventory system (something which I recently did a whole series on) The items in your inventory doesn't exist in the world, so you can't use actors to keep all that information, instead every item is a data asset with it's corropsonding values (what mesh it displays when it IS spawned into the world as an actor, what image it displays in the inventory, what value it has in a shop and so on)
@bighit20100Күн бұрын
@@thegamedevcave Hmmm but how is a data asset any different from a struct for inventory purposes? Currently I am building my own inventory system for my prototype game, and I just use a struct for items, and then include that struct in the inventory array and also as a variable in the Item actor. So when I spawn an item in the world, and pick it up, my functionality will take the details from the actor, store it in the inventory array in the item struct, then destroy the actor. If I want to drop the item I can just spawn the actor I want from the details in the inventory struct. I have searched a lot on different forums, but no-one can conclusively explain why Data Asset is preferred over Struct. Besides the obvious "in DA you can perform functions", is there any other benefit??
@thegamedevcaveКүн бұрын
structs are still variables that you write onto another object that exists in memory, data assets (for all intents and purposes) are objects by themselves that exist on disk. if you have minecraft as exmaple : wooden sword has a certain durability, a certain attack damage , attack speed and all that. you would store those things in a data asset so that you can just easily reference that instead of having to indevidually worry about setting all those values anytime something happens to be a wooden sword. then stone sword has different values, iron/diamond and so on all have their own values. Now, do you really want to have to write all those seperate values to a struct every time you make or move an item? probably not, it's prone to making mistakes, and you're needlessly throwing oppertaions to read and write values on the cpu (i will admit, that's probably not going to be an actual problem but still, when it's not needed, you probably should avoid it). with a data asset, the data for that one item exists as a file on disk, so instead of copying over all those values every time, you just refernce that one asset that holds that data, all your wooden swords will look at the wooden sword data asset when they need to know something about their info. stone swords look at the stone sword asset, iron swords and that asset. This also means that if you want to change something about a value on one type of item, you simply change it in your data asset instead of having to dive into your code and find where you set all that stuff in the first place. if nothign else, it will help keep things organized once a game grows past only a handful of items, because going through and finding that in code will be an increasingly massive headache comapred to just a data asset (or even a data table, depending on the needs of the game)
@bighit20100Күн бұрын
@@thegamedevcave I see... thank you for the explanation. The downside of data assets is that you cant use it for data that changes. For example, a sword that loses durability, cant be changed in the data asset, else everyone with that sword will also have the changed durability. So if I understand it right, a data asset is best used for the common values of an object. So in this case, a sword, with its MAX durability, Base Damage, Weight etc, but all other values like current durability, quantity, upgrades etc are better stored in an array using struts?
@thegamedevcaveКүн бұрын
@@bighit20100 yup that’s pretty much correct!
@indiependentgames97502 күн бұрын
...I mostly use tags and strings, thank you for this tutorial because I was not aware of this...👍👍👍
@downtownnikka2 күн бұрын
Texture is everything, You can make a cube look like 100 different thinks with just textures. the trick is fooling the eye into thinking something is there.
@thegamedevcave2 күн бұрын
which is what the high poly mesh is for, to use to bake detail into textures
@kmtsvetanov2 күн бұрын
If I have in my BP_Weapon a "damage" variable, how can I get it ?
@kmtsvetanov2 күн бұрын
Found it. BP_Weapon has a variable "Damage" 10 that is editable and expose on spawn. This is the default value for all weapons. I have BP_Axe with Damage set to 20. To get the damage when a monster is hit I use: - Get Player Character -> Cast to BP_Player -> Get Weapon -> Get Child Actor -> Cast to BP_Weapon -> Get Damage
@koko-nl5tp3 күн бұрын
Thank you man.
@rookiegameplay75193 күн бұрын
EPIC
@Enviksity3 күн бұрын
Good luck!
@ScrapMikan3 күн бұрын
And then the weight paint doesn't work for shit
@smarton16003 күн бұрын
Also, "New Reroute Declaration Nodes" can really help keeping the looks and logic of the materials clean and simple. Because just as you mentioned materials can get really really bulky and a mess, super fast. Reroute nodes are really a game changer (for me at least).
@thegamedevcave3 күн бұрын
for sure! collapsing some node sections down into material functions (especially if they are reused of course) is also a massive help to keep things at a reasonable scale :)
@navidumardaraz71633 күн бұрын
Great explanation
@seansopata51214 күн бұрын
It's important to note that saturate is better for performance over clamping between 0 and 1.
@thegamedevcave3 күн бұрын
Yup! Good point, it is technically cheaper. I would personally not worry about it a lot, its unlikely to cause a noticable difference but best to get into the good habbit of using saturate then possible!
@smarton16003 күн бұрын
This is exactly what I wanted to comment, thanks.
@bakaabsolute12534 күн бұрын
do you know how we can restart sublevel ? for example, u spawned 10 new actors in sub level A, you load sub level B then unload sublevel A, but yours 10 actors spawned dynamically will still be in the game
@thegamedevcave3 күн бұрын
So the issue here is that spawning actors spawns them into the persostant level, not into the same sub level that the spawner exists in (which is really annoying) in c++ you can give it a level to spawn in, as far as i know, blueprint doesnt let you do that so a workaround is to keep an array of actor references on the spawner and when the spawner is destroyed, it loops through that array and destroys all those other actors too. Not an ideal sollution but it'll work
@ThePlagueDoctor_or_SCP0494 күн бұрын
That's actually really useful... *Except I use Maya 2022....*
@yourstarchan4 күн бұрын
I spent a month and I cannot get an answer. Where should I store dynamic data (state) about my item actors while they are in inventory, if keep in mind, that it can be pistol, apple, sword, car key or anything else and everything has their custom dynamic properties some of which are complicated.
@thegamedevcave4 күн бұрын
easiest way to store metadata like that is to add a map that uses string keys (or name keys, which is technically slightly more performant i believe) and add a struct with a few variable types on it. that way you can look for the string "ammo" and read.write to the int variable of that stuct. or you coudl store it all as just strings, i've heard some people do that too.. i'm not too sure if that's a good idea though. the best way though, which is a little more difficult to do, is to add in an extra Object slot to each itemslot, and if there is metadata you put a UObject that hold specific data in there. but that can get complicated pretty quickly and I am not even sure if you could get that all set up in just blueprint to be honest. So, easiest and most straightforward way would be to make that String-struct map where the struct simple has options for a few different types of data. whatever the case, metadata on items is a massive pain to deal with so if you can work around having to implement it (for instance by not having the ammo in the gun, but have the gun just use ammo from the inventory) that's probably a way less headache inducing way to do it
@yourstarchan4 күн бұрын
@@thegamedevcave thank you for the answer. Now I think about to create BaseItemActor and BaseDynamicData for saving mutable data and override function that adds this object to replicated. So, every class just can use this data object and not required to implement any converting to structure functions or casting from string. I think that this is overhead. But I don't know how to implement it easier. Also I really scared about 8th reimplementation of my item system after I learn the GAS. I heard something about AttributeSets but I'm not sure that I can use it for the inventory system. But I will use it for a gameplay item actor logic. Im frustrated.
@jilri18424 күн бұрын
I try to follow all of tue tutorials but sadly I didnt animate it right :<<< After all of the step the only one that is moving is the rig not the body
@judyancheta30264 күн бұрын
Roblox rigging?😅
@GameDevAraz4 күн бұрын
you gotta think about these things before you make em 😅
@thegamedevcave4 күн бұрын
i did, but my initial idea for this rework, which wouldve worked fine, came across an annoying issue, that being that unreal for some reason likes to wipe soft pointers clean on startup so i then had to pivot, trying to use hard pointers, which obviously runs into the issue i discuss here, so only then did i have to start thinking again about what other solutions i could think of.
@GameDevAraz4 күн бұрын
@@thegamedevcave 😂 it happens
@thegamedevcave4 күн бұрын
@@GameDevAraz I probably couldve made the whole thing less shit in the first place so it didn't need a rework to begin with though XD
@hossainpartho70694 күн бұрын
hi the project link is not available
@thegamedevcave4 күн бұрын
hey, i just double checked the link, they do work. but theyre only available for patreons and youtube members on the "cave dweller" tier or higher
@hossainpartho70693 күн бұрын
@@thegamedevcave oh sorry , thanks for replay
@Something.Something5 күн бұрын
Yeah the basic one doesn't have fingers
@ryanjdevlin876 күн бұрын
Amazing explanation ! The use of the ruler like material was pure genius man ! thank you
@thegamedevcave5 күн бұрын
Glad it was helpful!
@searbhreathach97626 күн бұрын
Would it be better to make a simpler version for a combat game? I guess a crafting mechanic is out of the picture, so maybe. Excellent videos I love learning, thanks! 😃
@thegamedevcave5 күн бұрын
it all depends on what you need :) if you just need a hanful of potions and maybe weapons, this system might be a little overkill. if youre going full survival game, you'll want to build some more on top of this system but you could very much extend this to use in a crafting system too.
@searbhreathach97625 күн бұрын
@@thegamedevcave Gotcha. I think I'm looking for basics. I've only watched this video but when I have some time I'll do a follow along. I'm just starting out, the only game I'm working on so far is from a course on Udemy, just something to get me going.
@F4Phantom56576 күн бұрын
Excellent explanation
@GoodguyGastly6 күн бұрын
I need to learn how to do this. How do I even do the little diamond things i can drag around? Like what do I call it?
@fragileglass96226 күн бұрын
You’re not alone. While I love Unreal Engine. Sourcing out bugs is not always an easy task. I spent an entire day last week searching only to find I didn’t attach a node to a custom event. Haha
@almostabsent54646 күн бұрын
If you didn't type "it's not that scary", I wouldn't even come here Material math has always been the worst
@thegamedevcave6 күн бұрын
it also messes with me a fair bit XD but i hope i at least can help make it slightly more intuitive :/
@FPChris6 күн бұрын
Very good so far. Looking forward to watching the whole thing.
@shubhamchauhan72746 күн бұрын
This is working fine but Unreal is bugging out, You have to set the curve in scene and go back and compile again to see the results. I dont know why that is the case if any one have a solution for this let me know.
@knightfaIIvad3r7 күн бұрын
THIS IS AWESOME im trying this but how do you like offset like them? Im doing it on a bipedal rig and they are using the same emtpy
@FAP0W7 күн бұрын
would love to know what the compile time difference was between saving code and playtesting the changes
@thegamedevcave7 күн бұрын
for me, nothing noticeable, both in the 3-5 seconds range. and when using blueprint in unreal instead of c++, there is no compile time at all (not sure how that compares to unity's visual scripting, since i never used that)
@olliverkatana41687 күн бұрын
Thank you very much for such a clear tutorial, now I can say that I"ve got some ability to understand abilities.
@JevoKitano8 күн бұрын
Great tutorial! Thanks dude!
@jyamas13828 күн бұрын
Amazing tuturial thanks a lot! I'm just stuck now at the point where it says that i can't apply this modifier since the curve isn't converted to a mesh. converting the curve to a mesh first kinda makes this method useless or am i missing something?
@The_higuy8 күн бұрын
ツ
@TaylorAmbrosioWood8 күн бұрын
What controller are you using?
@cliffordgardner79758 күн бұрын
I keep getting a "Accessed None trying to read property K2Node_Event_[Interface Input Name]" everytime I try to get a bool variable from my player blueprint even though I set it and when I use print string I get the character value but the moment I put my bool variable i get from my interface into a branch I get this error PLEASE HELP
@thegamedevcave8 күн бұрын
hard to say without seeing your node setup but that sounds like your character may not have the interface implemented? usually an error like that implies an actor variable not being assigned a value though.
@_siulong8 күн бұрын
Once the modular rig is done, I try to load animsequence on the character and convert it to layered control rig to modify the animation but arms and shoulders won't move when animating the spine, is there a way to correct that?
@thegamedevcave8 күн бұрын
i'm thinking maybe the arms are using IK instead of FK for some reason, check if the IK variable on them it set to true (in the animation)
@ChompyPhD9 күн бұрын
I combined this with your particle tutorial from another series and everything worked well, thanks for the videos!
@thegamedevcave8 күн бұрын
If you are just spawning partiles, there is a function for that too instead of spawning an actor. The particles will destroy itself once done but an actor will stay around, so thats worth looking into
@davidbolt93709 күн бұрын
please tell me how you managed to make the dropdown menu for the levels when i search for something like a level variable type within blueprints, none of them allow me top pick available levels😓
@thegamedevcave9 күн бұрын
yeah it's really annoying, blueprints dont allow you to make a level type variable, you need to do it in a weird workaround. if you get a "load level by instance" node and then promote that level instance pin to a variable you can have a level variable. They really dont work very well though (as i show in thsi video with values getting wiped) so i'm guessing unreal doesn't want you to use those as actual variables.
@davidbolt93709 күн бұрын
@@thegamedevcave damn i wanted to use a blueprint data struct to have a handy drop down, but i guess i gotta use a different way ; ( thx for the quick response, really appreciate it!