Тёмный
MrKosiej
MrKosiej
MrKosiej
Подписаться
I'm making gaems
UE5.4 State Tree Data Management
27:26
Месяц назад
UE5.4p Texture Graph
25:59
2 месяца назад
UE5 Fog of War using Arrays in Materials
11:16
3 месяца назад
UE5 Arrays in Materials
30:10
3 месяца назад
UE5 Event Node
1:08
6 месяцев назад
UE5.3 State Trees with Smart Objects
39:38
7 месяцев назад
UE5.2 State Tree Simple Skills System
20:00
11 месяцев назад
Комментарии
@Poqets
@Poqets 3 часа назад
Yo, I'm glad you've just uploaded an updated method, I'm working on something that could use this technique!
@l_t_m_f
@l_t_m_f 3 часа назад
interesting idea, thanks for sharing.
@NicholasBieber
@NicholasBieber 17 часов назад
Oooh! Gorgeous! What a good introduction!
@MrKosiej
@MrKosiej День назад
The generation times were super slow in the video because I kept the resolution value very high (5). Make sure it's adjusted in your code :)
@MCA-GK
@MCA-GK 2 дня назад
This topic is too old but have much more power
@thegeekrelief
@thegeekrelief 4 дня назад
Thanks for the video. I've been diving in to the StateTree/SmartObject/GameplayInteractions source to get an understanding of what's going on. Your's and UnrealDevOp's videos have been helpful in getting a feel for how all the stuff works together. You might have already fixed this, but you have a typo at 19:11 for UMRKStateTreeComponent meta specifier BlueprintSpawnableComponent.
@MrKosiej
@MrKosiej 4 дня назад
Yeah, sometimes typos happen, compiler always let you know when you try to compile tho :v
@thegeekrelief
@thegeekrelief 4 дня назад
@@MrKosiej ah fair enough. noob mistake :D I assumed all specifiers weren't statically checked. While reading the StateTree code, I noticed the use of HasMetaData to check for specifiers. I guess they must be custom, but I'm not sure how a typo in BlueprintSpawnableComponent could be differentiated from a custom specifier unless they were registered somewhere.
@MrKosiej
@MrKosiej 4 дня назад
Sorry for audio crackling, i was too close to mic cuz I was in a beef mode :V
@codywst
@codywst 13 дней назад
Thank you so much for this, got me started. One question I have. I want to make an actor (a controllable region/province/state) that is created when the spline loops. With it I will have modules attached to the parent. What BPP's will I use to make the parent as when I type in spline there are lots of options. Thank you
@Jacky_SR
@Jacky_SR 28 дней назад
Brilliant! Thanks a lot for sharing this.
@charons.5549
@charons.5549 Месяц назад
i did that step by step but the metaballs still dont affect each other.
@yujack5910
@yujack5910 Месяц назад
Hello RU-vidr, firstly, the state tree can interact with smart objects in version 5.1, and it doesn't require the interact plugin, on mass AI.
@MrKosiej
@MrKosiej Месяц назад
Hello Commenter, firstly, it's not about just interaction but additional ways we can utilize it through this plugin, like using state tree assets as behaviors in smart objects. I covered simple interaction in my other video.
@user-xx6pd4lq6o
@user-xx6pd4lq6o Месяц назад
Hi, i went through your code, and the variable TexSampler is referenced but is not defined anywhere? What does this variable do?
@MrKosiej
@MrKosiej Месяц назад
It's a way of getting a sample of the texture, you can think of it like Tex.Sample and you can use that version instead.
@user-pb4vb6pk8z
@user-pb4vb6pk8z Месяц назад
Great video!
@BernardoReisSouza
@BernardoReisSouza Месяц назад
Hi MrKosiej, great video as usual! I haven't had the chance to test 5.4 yet as several of the plugins I used are still not compatible, but I'm excited about the things you showed in your recent videos, specially the ability to have the controller like you showed. I will definitely experiment with the approach you suggested, since my approach with blackboards work, but it's a bit cumbersome and requires a lot of boilerplate. Also, one thing that I'd like to highlight and I really hope Epic address in future updates, is the amount of state tree related things that are C++ only. Even though I'm very familiar with C++, there are several things I prefer to do with blueprints and currently state trees are still a bit limited in that sense. One example are state tree events. I found the need to send data along with the event, and I was surprised to realize state tree events actually support payloads along with the tag that acts as the event name, but you can't use event payload in blueprints.
@MrKosiej
@MrKosiej Месяц назад
Yeah, i noticed some things exposed to blueprints that suggest something more should be possible but there's no way to use it without going to c++ :v or at least it seems not possible :P maybe ill find something later
@UnrealMomon
@UnrealMomon Месяц назад
State Tree definitely needs some system implemented for data management, either through adding official support for Blackboard or by creating some scratch pad system that allows you to store and read variables from it. There's also a lot of interesting and good changes to State Tree in the release version of 5.4. The new state tree AI component schema comes with a new Move To task, hopefully in new versions they will add a lot of the default tasks you can find for Behavior Trees. Another interesting change is the addition of states having their own parameters. Speaking of parameters there's also a really great change with them, in 5.3 and older if you changed the value of a parameter in the state tree asset, state tree would ignore that and only take the values set from the state tree component class defaults from the blueprint. Now, it will take the values for the parameters from the state tree asset by default and if you want to override them from the component blueprint class defaults you need to check a bool. This is far better because now this will allow you to set default data to change AI behaviors from the state tree asset itself without the need to modify it from the blueprint component class defaults. Makes things more modular. I still have a list of things I'd like to see them change or add, but they're slowly getting there! Hopefully Epic continues to make great changes to state tree!
@tmdquentin5095
@tmdquentin5095 Месяц назад
Thanks, helpful approach
@renisrrenis9225
@renisrrenis9225 Месяц назад
how to make state tree tasks and evaluators in c++?
@MrKosiej
@MrKosiej Месяц назад
I didn't use c++ for that but my guess would be - same as any other c++ class.
@renisrrenis9225
@renisrrenis9225 Месяц назад
@@MrKosiej yeah, i slowly figuring out bit by bit right now.
@michaelebert9163
@michaelebert9163 Месяц назад
Been watching articles about this sort of setup elsewhere, but never attempted it. Appreciate this tutorial, but have not been able to get it to work. Not sure why but my Shader spits out a "Gradient instruction in a loop with varying interation, attempting to unroll the loop".
@MrKosiej
@MrKosiej Месяц назад
I never got this warning, but try adding [unroll] statement before the loops, let me know if it works.
@michaelebert9163
@michaelebert9163 Месяц назад
@@MrKosiej ​ Thanks, I am going to still try it out, but I was pretty determined to get something in over the weekend, so I eventually I did the Canvas Render target which worked great. My map is about 16,000 individual hexagons that can be revealed, and the render target has them all tracked. I posted a video on my channel of what the end result looks like.
@HR-zg9ci
@HR-zg9ci Месяц назад
thx! I hope unreal will break the limitations and enable that textures can be animated. This would be amazing I think
@fbi555
@fbi555 Месяц назад
Texture can be animated, lol. You animate the textures in the materials. It makes no sense to animate a png file or similiar because its simply mot possible
@RhoIzquierdoArt
@RhoIzquierdoArt Месяц назад
Could you cover the blueprint version in more detail?
@RhoIzquierdoArt
@RhoIzquierdoArt Месяц назад
I can follow up to 11:26, but then it gets confusing
@MrKosiej
@MrKosiej Месяц назад
I'm planning on revisiting this topic in the future cuz i'm still not happy with how it works :v So yeah, and i might even split it into parts because it might get long.
@l_t_m_f
@l_t_m_f 2 месяца назад
That is a very intersting new addition. Thanks for covering it.
@unrealdevop
@unrealdevop 2 месяца назад
I think Slot Linking is broken, I've been stuck on this for about a week now and just stumbled across your video, have you figured out what's up with those? In that GDC video he sets them up to be linked but I don't think they were working in that one either....I find it odd too how he did that entire video in 5.4 a year ago lol Also: I noticed that in both the GDC video and in mine the Looping animation starts blending out between loops, this causes a visual Jerking as the animations loop back around....but maybe something else is causing it.
@MrKosiej
@MrKosiej 2 месяца назад
Yeah i was playing around other SO related stuff like slot linking, wanted to make a video but didn't figure out how to make it work yet ¯\_(ツ)_/¯ . Will make one tho if i'm able to use it for something, but i'll come back to it after full 5.4 release.
@unrealdevop
@unrealdevop Месяц назад
@@MrKosiej Yeah I figured it out and made a video on it if your interested. This system is a bit confusing.
@CodyNewhouse
@CodyNewhouse 2 месяца назад
Newbie question. How did you get the arrows to appear on the connections between blueprint nodes?
@MrKosiej
@MrKosiej 2 месяца назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-wss5jzTVmO0.htmlsi=vJU0acB4QodgWOJZ&t=64
@CodyNewhouse
@CodyNewhouse 2 месяца назад
@@MrKosiej Thanks.
@user-fo8cp6zs2j
@user-fo8cp6zs2j 2 месяца назад
I hav a question,fog distance to landspace is erro,I Don‘t konw why.Dose it landspace auto detection to fog?
@user-fo8cp6zs2j
@user-fo8cp6zs2j 2 месяца назад
and this is a very good tutorial
@KittehBit
@KittehBit 2 месяца назад
Yes, I would like to know more about this view stuff. :)
@MrKosiej
@MrKosiej 2 месяца назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-RHt4DakPRcw.html
@KittehBit
@KittehBit 2 месяца назад
Nice video again, thx. The transition event trigger is a very nice way to abort some action or npc behaviour. I was wondering how I would do that in a state tree, now I know. :)
@KittehBit
@KittehBit 2 месяца назад
Not sure, but I think you may also need the "Ai Behaviors" Plugin enabled.
@MrKosiej
@MrKosiej 2 месяца назад
Most likely yes, i always have it enabled because i mainly use it for AI, so i just forget about it xd. Thanks for a reminder
@KittehBit
@KittehBit 2 месяца назад
@@MrKosiej Ye, I have no clue what "AI Behaviors" brings to the table, but I'm learning UE and in my notes I put it as necessary XD. Great videos btw, thx. :3
@ijerofei
@ijerofei 2 месяца назад
Hoping documentation will come out with full release in a month. Thanks for the video!
@MrKosiej
@MrKosiej 2 месяца назад
Watch part 2: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-2qm36e_apNQ.html
@magisoftworks8547
@magisoftworks8547 2 месяца назад
Subscribed! Great Tutorials. Thanks for making them! How did I go so long without using State Tree's! Please keep them coming. :)
@MrKosiej
@MrKosiej 2 месяца назад
Glad you enjoyed :D New video about State Trees with Smart Objects coming this week.
2 месяца назад
Using it to continuously update a displacement map used with nanite tesselation might be a fun way of increasing room temperature :)
@user-eu8rd5gk3r
@user-eu8rd5gk3r 2 месяца назад
Great Tutorial! and I have a quest for [global view model collection]. I print they in Game Instance, My [Viewmodel Engine Subsystem] is Valid, [Viewmodel Binding Subsystem] is Vald, but the [Viewmodel Game Subsystem] is not valid, when i use node [add view model instance] retrn value is always [false]. I can use [ manual ], but I cannot use [ Global View model Collection], I need manual open [Viewmodel Game substyem]?
@MayorAwesome
@MayorAwesome 2 месяца назад
Excellent explainer! Thank you.
@ijerofei
@ijerofei 2 месяца назад
I like how the logic driver plugin works. You are not creating different assets for tasks, not much syntax while programming. Everything in one asset
@UnrealMomon
@UnrealMomon 2 месяца назад
Logic driver is too much like the animation blueprint graph and doing everything in a single asset can lead to a bunch of major issues when the project becomes big and complex later down the road. The graph being like animBP graph can lead to hugely messy and hard to read graphs, everything done in a single asset can become massive and hard to maintain, hard for new team members to read and understand how is it working, and less modular because the code isn’t separated into different tasks that can be reused. Logic driver is a cool plug-in, and has its uses but it’s not ideal for a big complex AAA projects. State Tree is specifically designed to avoid this mess. That’s why it’s a tree and not a graph.
@ijerofei
@ijerofei 2 месяца назад
@@UnrealMomonyes, you are right! I forgot about that Im a single developer =)
@MrKosiej
@MrKosiej 2 месяца назад
Note: State Tree parameters actually work, you just can't add them from the parent State Tree, you have to do that from child State Tree and it will show when selected in the parent, then you can change them. Also, you can go back to the parent state tree by executing Tree Succeeded/ Tree Failed on the child State Tree.
@l_t_m_f
@l_t_m_f 2 месяца назад
I don't think it's meant to be a replacement of material graphs, because material are multiple textures. This new graph is to generate what would essentially be the equivalent of single maps in memory.
@caden6305
@caden6305 2 месяца назад
Spot on, it's an alternative to the middle ground that is Substance Painter for texturing.
@biiiiioshock
@biiiiioshock 2 месяца назад
It's promising! I like your content since you cover less usual areas of the engine, I found a new plugin that might interest you in 5.4: "Geometry Mask". I’ve never heard of it before stumbling on it while looking through the plugin list
@MrKosiej
@MrKosiej 2 месяца назад
The geometry mask is most likely connected to (or is an expansion of) new Motion Design plugin, there's already a coverage of Motion Design so i'll let others talk about it :v
@NeytozINF
@NeytozINF 2 месяца назад
Nice. In 5.4 they added some Gameplay Interactions Plugin that also combines StateTree and SmartObjects.
@MrKosiej
@MrKosiej 2 месяца назад
Thanks for letting me know. I'm currently going over new features and a lot of them are not getting covered anywhere, so i guess more content for me :V
@MrKosiej
@MrKosiej 2 месяца назад
NGL Gameplay interactions plugin is pretty cool :v Gonna cover it in the next video
@MayorAwesome
@MayorAwesome 2 месяца назад
Maybe you could take the player's name and generate a PBR material with textures from the texture graph. Can you get a text input? Make a black and white map, then normal from height map.
@MrKosiej
@MrKosiej 2 месяца назад
I didn't see any text inputs and I wouldn't bet on them appearing. I think at most we'll get font samples like in materials.
@ijerofei
@ijerofei 2 месяца назад
It can be more interesting if they add texture graphs support to materials like texture samples. Thank you for the video!
@MrKosiej
@MrKosiej 2 месяца назад
True, it would be cool to just plug in a graph like a texture sample, but my guess is that there's a solid chance it will come in the future, it's still experimental after all. Maybe they have plans to integrate it with strata. State trees started pretty bare bones and are constantly getting just the right features i need at the moment xd
@faxcorp
@faxcorp 2 месяца назад
Great info. Glad you shared. Interesting
@carlosrivadulla8903
@carlosrivadulla8903 2 месяца назад
this is absolutely amazing. It's a shame that AI is trying to erase material authoring, it was my favorite thing. Btw, do we know if Quixel guys are behind this project?
@MrKosiej
@MrKosiej 2 месяца назад
Just like i said in the video, i didn't find any info about this on the internet, I just found it by looking through plugins :v
@faxcorp
@faxcorp 2 месяца назад
What do you mean AI erasing material authoring?
@carlosrivadulla8903
@carlosrivadulla8903 2 месяца назад
@@faxcorp you saw it yesterday, with Adobe substance sampler now u can just prompt what material u want...
@faxcorp
@faxcorp 2 месяца назад
@@carlosrivadulla8903 Wow. I didn't see that. Was that on State of Unreal? Ill search around, thanks
@BernardoReisSouza
@BernardoReisSouza 3 месяца назад
Excellent video and very useful information about StateTrees, specially given how very little documentation is available about it. @MrKosiej, one thing that I couldn't figure out is how to store state in between tasks (for example a given task sets the value of a variable that is used by that same task again the next time it runs, or maybe by another task in the three). I know I can probably use the actor associated with the context and store everything in it, but I think it would be cleaner to keep these variables inside the tree itself. I've tried using bindings, but for some reason I can only read from bound variables, never write to them. Do you have any advices in that regard?
@MrKosiej
@MrKosiej 3 месяца назад
Sure. Make a new class of type object and use it as a place to store your variables. Make a new class of type state tree task that will construct and save that object to a variable, change its category to Output. Put this task in global tasks in your state tree. Now you can bind that object to any task in your tree and from any task you can access this object and change the stored variables. This will run per instance so every tree will have its own "store", and you can have multiple stores of multiple types if you want. That's probably the closest we can get without an official data management system in state trees from epic.
@BernardoReisSouza
@BernardoReisSouza 3 месяца назад
Oh, that's a good idea! I was hoping epic would have provided a proper way to do something like that, like the blackboard in behavior trees, but I think your suggestion will work pretty well for what I need (and is kind of a blackboard anyway). Thanks @MrKosiej !
@BernardoReisSouza
@BernardoReisSouza 2 месяца назад
​@@MrKosiej I had an idea about this topic that seems to work (although I haven't done extensive testing yet) and I though of sharing it with you. Here's what I did: - I moved my StateTreeComponent to the AiController as the BrainComponent (previously it was on my characters) - I subclassed AiController and exposed a UProperty of type UBlackboardData so I can configure it in the details panel of my AIControllers - Then, in the OnPossess method of my controller, I call the method UseBlackboard and pass the asset. That will automatically instantiate a BlackboardComponent on my AIController - Finally, I changed the context of my StateTrees to be my custom AIController. That way, I have access to both the character itself if I need (through the controlled pawn), as well as the BlackboardComponent, so I can read/write any variables I need I know someone may ask why not storing the variables (or the blackboard data) directy in the actor or whatever, but I like to keep AI related variables in AI related components, and I think keeping everything in the AIController makes the character slightly less coupled to the AI.
@MrKosiej
@MrKosiej 3 месяца назад
Check out my fog of war using arrays in materials ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-5QiJoXuvZYw.html
@MrKosiej
@MrKosiej 3 месяца назад
Check out my fog of war using this method ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-5QiJoXuvZYw.html
@sebastianavena
@sebastianavena 3 месяца назад
You saved me :D
@skippyzk
@skippyzk 3 месяца назад
i can't even get root motion working on metahmans at all! thanks for video
@nekodonut7747
@nekodonut7747 3 месяца назад
@carlosrivadulla8903
@carlosrivadulla8903 3 месяца назад
now I need a tutorial that explains this tutorial
@MrKosiej
@MrKosiej 3 месяца назад
xd yeah, it's a bit advanced, but the idea is pretty simple. We basically use textures as arrays and store up to 4 floats in a pixel (rgba). Since we're creating the texture, we can make it whatever size we want. If the size changes, we need to make another texture. Once we store data in pixels we pass it to a material and use a loop in hlsl to work on that data. Hope that little summary helps. Let me know what needs further explanation and i might even do an update video.
@coystt7233
@coystt7233 3 месяца назад
🤣😂
@coystt7233
@coystt7233 3 месяца назад
@@MrKosiejI just want something that I can change the decals on a car during runtime, I thought this was it but don't think it is
@MrKosiej
@MrKosiej 3 месяца назад
Just use DMI then
@MrKosiej
@MrKosiej 3 месяца назад
So i've been messing around with those +1; *2 places and yeah, i was right on the video that i made an error somewhere and this was just a poor patch. You should just plug actor's length straight into Create Redner Target width (10:10) and in the second place (16:55) it can't be *2 or it will break later. But here you can't leave 0 because it doesn't grab the first index, but adding even 0.1 here (instead of *2) will work with any number of elements (tested with 8). I guess that's the remaining mystery. Logic says it should be 0,0 but probably low level code says otherwise. Comment if you solve it :)