thanks to you i now have vertex lighting working with a basic video showing it off. need to figure out how to do this better but so far i can run over 200 something lights
Hi, thanks for the interesting video. I am looking for a way to pass on a subtree, dynamically... I would want for my main state tree to have an attack state, that is a linked subtree. And for this subtree not to be known at compile time, but rather that each actor sets its own attack subtree from data. Does anyone knows how to do this ?
I did that once, i don't remember how well it worked but you can set state tree asset at runtime. Just gotta do it from C++. It might even be in one of my videos, try looking through those related to state trees, but it shouldn't be too hard to make your own wrapper.
What is the rest of line #18? It is cut off and I never saw you scroll over. "UFUNCTION(BlueprintCallable, meta = (DisplayName = "Set Decal Size", Keywords = "Set Decal Size", Category = "Decals"
It's just a right parenthesis, full line is UFUNCTION(BlueprintCallable, meta = (DisplayName = "Set Decal Size", Keywords = "Set Decal Size"), Category = "Decals")
Calling it Viewmodel is misleading as it really seemed like a UMG to render 3D Models on screen, for example inventory objects. etc. They should have called it differently...
It comes from the design pattern (MVVM) where the model is basically the logic (data) and the view is UI. There's only so many words to describe things so many of them are generalized. Model can be generally understood as something to be based upon, a set of data to be reproduced. In 3D modelling a model is a single instance you shape, in games it's a base for an instance and in programming it could be a class. AI systems also use "models" as a behavior scheme, for example LLM which is a Large Language Model.
I feel like im spamming your comments but i found something you might be interested in and want to contribute back. Instead of full sampling the the texture with UV coordinates you can sample it with x and y or u and v textle coordinates. Its not documented well but in hlsl you can TexObject.Load(0,int3(X,Y,0)) to access your texture sample as a 2d array so it could hold a full transform which is what im using it for EDIT: turns out it is TexObject.Load(int3(X,Y,0))
BeginLoadingScreen function is called, but video and widget are not displayed when the game starts or changes levels. I checked in StandaloneGame and on mobile. What could be the reason? UE 4.27 and 5.1
heheh it works it works it works! made some changes but thank you thank you thank you! I got one textle transferring and soon i should have hundreds but i plan on using this for vertex lighting for retro games. i got a demo i uploaded on my channel. i plan on uploading more once its working way better!
Hi MrKosiej! Great tutorial first of all! One question: this blueprint spawns dynamic mesh and projects M_Fill decal on surface, but how to start projecting the decal which is added in Actor? (M_ProjectionDecal)
If you refer to variables in STT, it's to have them editable in ST. Expose on spawn is not really necessery in this case, but it's useful in general for object you want to construct as this exposed pin will be visible on construction. Expose on spawn also requires instance editable so i just check both out of habbit.
Indeed (finally :D), but it returns just one object, so if you have more objects, you need to do it multiple times, and for same classes, it won't work as it just returns the first one. It also does not returns the picked class so you need to cast or use interfaces anyway.
Begin loading screen triggers when the map is already loading, so after the world has been cleared. If you want to add a fade, you need to do that before opening a map. The easiest way if you want to use it everywhere would be making your own wrapper for open level where you have a fade and then open a new level after fade finishes.
My metahuman head was of a different body. The pelvis was not fully formed, but I connected it to the neck bone. And it turned out perfect. Maybe it will be useful to someone.
Hi thanks for the videos! was just wondering would it be possible for you to link a unreal project with your bp state tree component already in it so the new viewers could just download and migrate the component into their projects, Many thanks again, and kind regards - The Wok
My videos are not open source production ready solutions for projects, it's rather loose knowledge from my dev adventures i share with the world. So i think it would be a bad idea for me to share the files instead of letting you build it yourself. My code is not error free and a lot of things you can do differently or better, and you should. When you work on ready projects, you are leaning towards understanding how the code works, not the idea and the path. When you build it yourself, you can more easily integrate it with your existing framework and know how every node was placed and hopefully why, so you can extend it and modify as you see fit. I realize it's probably not a best move in terms of getting to wider audience, but i don't want to raise more copy pasters but independent thinkers. I wish you the best on your journey, and if you get stuck, don't be afraid to ask.
Hey, this is a very smart way to approach arrays in materials! My only concern is that iterating through the array in a custom node might be static (not changeable in runtime). Did you try changing the cube positions in runtime to see if they work?
Its like any other parameter. If you want cubes to be movable then just keep passing new values to the DMI. Custom node does not change anything, it just processes passed values.
My planned use case: I'm on an Epic Journey to make all things 100% procedural. Procedural modelling, procedural textures, procedural rigging, procedural animation... everything. I currently have a 100% procedural humanoid model in Blender, and I'm writing a translation plugin that will translate it into Unreal's Dynamic mesh system. Combine that with this new Texture graph... and 100% procedural humanoids created at runtime... that can be edited at runtime. The ultimate polymorph character. Current version is a proof-of-concept only. Not even "Alpha" quality. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-XZ171UCxfXA.html
Definitely a prototype quality but looking cool :D. Fully procedural characters would be very nice for game dev, especially if you can deeply control the quality and optimization.
@@MrKosiej That's the plan. Not only is it great for *rapid* game development, but it'd allow all NPCs and Enemies to be entirely unique. Hoard of goblins, no 2 alike. Etc. But, it would also open up entirely new gameplay elements. Give players control of the inputs of procedural objects, like houses, walls, streets, even entire worlds... ^_^
Hey I tried it, but it didn't worked. I get error codes like it could not found a function name GetProperty Value, this is out of the Event Graph of the Face AnimBP. :(
State Tree has huge potential for a player skills type of system that integrates with an external system like GAS. Do you know how to handle event based states within a state tree? I noticed with State Tree each state is connected to a root state and the state will be auto selected. But I couldn't see a good way to handle states that are event driven and only allow a transition into that state when an event fires. I know we have send event to state tree, but the state itself will be auto selected if it's added as child of the root state. I can add a sibling state but when setting a transition to and from it based on an event I get an annoying "verify this is intentional" warning for each time I do it. An example of this would be like a hit reaction state or a parry state that only runs when an event triggers a transition to that state. How do you properly handle such things with State Tree?
First of all, it's a pretty dated video by now. We have UE5.3 and 5.4 that changed a lot in state trees. In that version you have more control on the states flow, their entry is event based (instead of functional), you can select proper selection behavior (for example always enter, or always move to children), so I recommend checking out what's new before moving on. As for the answer: - Sibling root states are perfectly fine, but they're meant to be of type subtree. To jump to a subtree you use type linked state. - Any state's selection behavior can be changed. If you mark Root as Try enter or None, it won't auto select any children. With that you can just enter the state tree but it won't do anything without manual instructions.
This is definitely a cool method, but it doesn't scale very well because you are doing a texture sample multiplied by the number of pixels in your render target *per pixel* on the screen. As you can imagine this will get expensive very quickly and should only be used with tiny render targets! (small arrays) I tried something like this myself but ultimately had to abandon it because I couldn't get past a couple hundred array elements before my GPU started to light on fire :(
Yeah, I totally agree. I made this specifically with fog in mind and in my scenario i just had a few characters positions at a time that needed to be passed to the shader. So it worked very nicely, but it would definitely be heavy when scaled up.
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 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.
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
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.
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.
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
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!