#blueprint
1 messages ¡ Page 196 of 1
if the radius of damage is reaching the guy and the fatherest barrel shudnt it affect the others ? like atleast the ones close to the guy
probably not if the inner radius is exactly the same as the outer radius?
you're drawing an empty circle not a full circle
least that's how I compute that
oh maybe
I thought inner and outer were for falloff
i don't use the radial damage, I just do a sphere trace and damage the things
why is this failing? The socketname is correct, the target is the actor who has a skeleton with the socketname, and everything else should work on its own
(prints false)
okay ive made some progress it prints true, that I've grabbed it, but uh my characters tps to a position on the map
and my event graph
please let me know if you need any other information im lost rn. Essentially this is a function to pickup an item. And essentially i want that item to attach itself to the player's hand whent eh function is called
Try changing location and rotation to snap to target
hey everybody when i change levels my int variable resets to its default value is there a way to save it as its current value while changing levels? thanks
Is the pickup set to simulate physics?
something like this?
Essentially everything is lost when you travel between levels.
You can persist values in a custom game instance or use a save game.
nvm figured it out sorry for ping
yeah i dsiabled physics on pickup
I think the player is getting atached to the mesh for some reason
but yeah ur method did work, sorta, now im not tping everywhere, but I am tping like one foot above the bal
yeah I think i switched it around
the parent should be the actor mesh
Prob be better to attach to mesh and create a socket on skeleton and type that into socket name on attach actor to component
Anyone know how I can get the "unreal editor subsystem"?
https://dev.epicgames.com/community/learning/tutorials/M6LY/unreal-engine-get-editor-world-deprecated-resolved
This post tells me I need to include the "Editor Scripting Plugin" but I don't have a plugin with that exact name. I've tried "EditorScriptingUtilities", "EditorScritableToolsFramework" and "UnrealEd" which is the actual plugin the unreal editor subsystem code is part of but none of them allow me to get an instance of the editor subsystem node in blueprint
I have a widget controller listening for gameplay tags to create a widget from a data table, right now I am trying to make widgets populate when the character is standing in fire - I can get the widget to create/add to a panel on overlap, but I'm not sure how to go about destroying the widget when the tag is removed (which happens onendoverlap).
I know I can just cast and destroy it per onendoverlap, but I'm trying to keep dependencies limited - is there a way (I'm assuming cpp) to fire an event when a tag is removed?
yeah i have it attach to mesh. I did type in the socket name, do u see any issues?
Did you RemoveFromParent?
essentially when the func runs, the item freezes in place, so physics off, but for some reason it aint locking into the player.
Like the player moves around, the item dont follow
Well that would be how to take it off I guess, I'm just wondering when I should call that
I'd rather not just slap it on the BP after the endoverlap
Oh sorry haha I misunderstood what you were asking
What bp is that the target is self
And location and rotation snap to target
This is the code I've got that captures whatever is in the message tag datatable
I reckon I ought to be able to code around that function to listen for when things leave, maybe
im in bp_item
everything ive mentionsed so far in that class
yeah behavior is the same with that asettings
You might check out OnAbilityEnded I've never used GAS, but I just searched for DECLARE_<various-delegate-type> on the ability system component header and found it
in particular this one is just a multicast delegate (not dynamic so no blueprint)
I really need to read the documentation, I'm kind of playing UE5 coding as if it were a survival sim rn đ
Make sure socket name correct. If you don't know it's case sensitive
It might not be what your looking for, but that's the best I can help haha
it is i copied it excatly
Is the function being called?
yuh
You want it snap to target so I'd leave it at that
Show your trace
at all
its 100% called bcuz after this i place it in my inventory
and i have other checks, im definitely grabbing that ball
essentially
I add it to my inventory
so an array
and then i call the function displayed in the ^ image
and its supposed to attach itself to the actor which is being passed in
and yeah the cast works fine
and the attach actor to component is returning true
so how is this happening
What's the component hierarchy for item
Try making mesh the root
Np
Hello, I have the top down project open and i'm trying to create a camera that moves based on where my mouse is. If the camera is completely top down (90 degrees) this logic works fine, but in the project the camera is at -50 degrees. How can I get the same effect with the camera rotated?
Sorry I just saw this. The issue I was having was that the trace was passing through objects and hitting multiple triggers I didn't want it to hit. I had the actors set to block their channel but it wasnt working. For whatever reason restarting my computer worked and fixed it. Was struggling with it for about an hour.
Clamp when set rotation?
Unfortunately that did not work. No idea what is causing it. I even remade the whole thing and it still doesnât work
sorry but you're getting world rotation and then setting relative rotation, and also adding local rotation, what am I missing here?
and usually door opening logic is done with a Timeline and a Lerp between 2 fixed points so it's much cleaner than this
on a side note, it's much cleaner to just GET a variable again rather than drag spaghetti noodles across the whole screen.
you can select your initial get and ctrl+ D to duplicate where the cursor is, or copy and paste
i have a shpere that i gave her an impulse of 1600
and the shpere should to arrive a Cube.
i checked simulate physics for the sphere.
and i used Physics Material.
i only changed Friction to 0 and Restitution to 1.0
if the ball hit on the cube in the middle or in any place with no angle so the back speed is correct and not change
but for example if i rotate the cube a bit and the ball hit the cube when there is some angle so the back speed from the cube is slower and ball change his speed.
i want that no matter where the ball hit , that can be with angle or if the cube rotate or whenever the ball hit the speed will not change.
why is that happened to me and how to change that?
Can Anyone help me with Lights toggling at Night
You got a switch in your room?
Get up. Walk to it, flick it on
đ But i want it to be automatic
600 means morning 6 and 1200 means 12 and so on
turn off light at 6(600) and on light at 18(1800)
Uh
I donât recall exactly but are you sure that is the right format ?
Yes
oh i get the node
Oh thatâs a thing? Is it a plug-in or built-in
plugin
ultra dynamic sky
Yeah
is this the main way to turn off and on lights? or there is any other good one
Not 100% sure, but you could try #lighting if that doesnât work for you
no it works just wanted to know any other good one if exists
there is activate but i don't see any option of activation setting in details pannel of point light
Toggle vissibility will just turn the light invisible right away
Would be nicer if you dim it according to time and slowly reaching 0
When 0, then you can make it invisible to save performance (if neccessary)
Okay
Okay so one more thing due to event tick i am using Do Once but i don't want to use as it will not create loop
What can i do?
i have a shpere that i gave her an impulse of 1200
and the shpere should to arrive a Cube.
i checked simulate physics for the sphere.
and i used Physics Material.
i only changed Friction to 0 and Restitution to 1.0
if the ball hit on the cube in the middle or in any place with no angle so the back speed is correct and not change
but for example if i rotate the cube a bit and the ball hit the cube when there is some angle so the back speed from the cube is slower and ball change his speed.
i want that no matter where the ball hit , that can be with angle or if the cube rotate or whenever the ball hit the speed will not change.
why is that happened to me and how to change that?
in every tutorial that i look they did exacly what i did and that work for them but not for me
Are you here?
Why do you need a loop?
not a loop but when i remove do once lights toggles every frame
Do once only runs once per runtime
But I understand your conundrum
One way would be to just set a timer by event on begin play
Alternatively
You can maybe bind and unbind dispatchers as needed
But maybe easiest would be to have each side of the branch reset the other Do Once
For example: if Daytime == True -> Toggling -> Reset the bottom Do Once. If Daytime == False -> Toggling -> Reset the top Do Once @white thicket
Okay reseting can help i guess
Resetting the opposing do once should do the trick, at least in my mind at 3am
Hey guys, are the actor blueprints share their instance each other?
Try rephrasing
This worked
I mean, the second box registed 2 lights and the first box registed 1 lights
but when I tried to turn the light, always turn on 2 lights
so their seem like shared instance (just guess)
Also I think Timer would be Good instead of event tick for this system
There is no sharing instances. There is sharing the same code and you are iterating over an array of lights. But either way Iâm still confused about what youâre seeing sorry
Where is your F key? It seems like there is no difference which box you are ''aiming'' with the F key?
Tick is prly fine too tbh
@trim matrix You should have event Interact that when you come into the box you click and it activates lights that are on the box.
Not to mention that is Colliding branch is completely being bypassed
Yea that got me confused as well, also having Is In Collision is on the Player Controller? or Pawn? (then maybe it would make sense if you have Overlap event that sets that collision so it let's you fire that event only when you are in collision with the light, but if you are in collision with at least 1 then this will work for all lights and not the only one you are colliding with), but it's still does not make too much sense.
Will not be more performance effecient then tick?
f key on box bp
Itâll run less often but perf might not matter that much in this case (youâre not really doing anybody heavy)
i have a shpere that i gave her an impulse of 1200
and the shpere should to arrive a Cube.
i checked simulate physics for the sphere.
and i used Physics Material.
i only changed Friction to 0 and Restitution to 1.0
if the ball hit on the cube in the middle or in any place with no angle so the back speed is correct and not change
but for example if i rotate the cube a bit and the ball hit the cube when there is some angle so the back speed from the cube is slower and ball change his speed.
i want that no matter where the ball hit , that can be with angle or if the cube rotate or whenever the ball hit the speed will not change.
why is that happened to me and how to change that?
in every tutorial that i look they did exacly what i did and that work for them but not for me
yeah perfect timing not needed though
If you are planning on invalidation and clearing timer from time to time then it might be good idea but if it's supposed to be firing from the start of game till finish then tick is more performant than timer by event but I might be wrong.
Then this event is not gonna event work because Inputs must be on Player Controller or on something that is possesed by player.
Build, test, optimize, but yeah
hmm So the F key event should be on FirstPlayerBP?
Yes
got it thank you
can i put image on floor?
yes
how
Import image into engine create a material that uses image texture as base color. Set floor material to material you created?
says you, i'd play the hell out of that disco masterpiece
Hey guys, is there any way to compare rotator or float as nearly float ?
Nearly equal (Transform) and split struct
I tried this but it's alaways returned false
make the tolerance higher
it works thank you
But i wonder why compare rotation is not working?
wouldnt this be because of normalized rotation axes and stuff like that i.e. -180 = 180 = 540 = 900
you can use the node normalize axis on a float to make sure it always falls between -180 and 180 iirc
oh then I gotta compare that normalized (x?, or Y whatever) float
hmm it's always false though
going to need more context
is this something that's always rotating a little? if so it probably never hits exactly -15
if you're printing it there, you can see it's -15.225
so youd need a nearly equal node for the float and set the tollerance higher than 0.225. but i assume it can be greater than that?
thatll work unless it goes greater than -15.5 or lower than -14.5
hmm then I have to use this way? but I only want to know what's angle of camera so I think it's okay to do with my way
it entirely depends on what you're trying to do
you need to tell us what effect you want to achieve and in what context if you want better response
I'm creating the shadow puzzle so I think I have to know player rotation and compare with random value (like -15) and I've been figured it out compare float
Hey everyone, I am working on a third person project where I am automating some movements, the problem is when the character goes to a certain position I want the camera to face where they are looking at, which I am struggling how to automate.
I thought if I can attach the camera to the character's back (socket) that could work, (as the camera will always look in front) but I can't seem to attach it as the camera boom is an inherited component.
It would be nice if I could get some help regarding this!
Thank you,
What do you have so far ?
Set control rotation to the direction of where the character is looking. (Capsule forward vector?)
Nothing really, I've tried a few things mainly with camera boom changing rotation and such but not really giving the result i wanted
I see, I will try this and see if it works
Well there is a lot of tutorials probably on camera following the player, did you try any of them already?
Actually I retract what I said
You probably want the direction of the input
Or the actor rotation, I am not sure kinda have to hack it and see if it work
Are Datatables the Common solution to handle Item Data?
Or are there other strategies?
Data assets are pretty sweet
I use Data Assets. I want to learn deeper into Primary Data Assets and proper usages but that's down the road
one more vote for Data Assets, they are amazing
actually, I just had to get the controller and set the control rotation there once the movement is executed !
Thank you though,
If you don't need hierarchy, data assets. If you do, make your own item base uobject.
What about using both? Like you can still have hierarchy but use data asset at the end of hierarchy? Or not really?
damn I forgot how to put controller inputs in ue4 .. any video?
Data assets don't support hierarchy very well. (States it in the description)
Data assets are just a special type of uobject that self constructs and everything that uses the data asset uses the same uobject I believe.
So I can't see why you couldn't use data assets in your uobject item base for defining your static data but I'm not sure if there are any benefits though as you'd be splitting your item data across different places which isn't nice to work with.
Data assets support hierarchies just fine. Your base just needs to be a subclass of a data asset rather than an instance of a data asset
I.e, once you have your data asset definition, make a blueprint that subclasses that data asset type and use it to set the base values. Then for your âleaf nodesâ of your hierarchy, create a data asset instance of the blueprint subclass you just made. Itâll use data inheritance to set the values from the base class. Itâs very useful!
I'm planning to have hierarchy like Interactable > Selectable > Damagable > Unit for example and put Data Asset into the Unit and this Data Asset will also change some variables of the classes above. I'm not sure yet if it will work but I'm testing.
Has anyone else encountered issues drawing to a RenderTarget's Alpha channel?
Hi everyone! đ
Has anyone ever implemented a building system like in The Sims 3 / 4 (or RTS) in Unreal Engine 4 / 5? For a life simulation game or RTS.
I need some tips how I can realize such a building system. Starting from the landscape changes (the player should be able to raise and lower the terrain, e.g. to place pools or cellars). I have no idea, how to realize this.
My first thoughts on this are:
- The landscape in UE 5 is not editable at runtime --> so my idea is to leave holes in the terrain and place plots of lands there, which are generated prozedural and the player can change them. Is this a good idea? Are there better ones?
- How can I draw a Grid like in this video?
https://youtu.be/rd-m-aEG268?t=135
Do I need to place actors there? Or are there some commands to draw lines in the world? - How can I generate walls and replace the materials / wall painting / wallpaper at runtime?
- How can I hide the ceiling or walls, if the player is inside of the house?
Thanks for your advice!
Iâve been learning game development for about 6 months now, and on October 3rd I gave myself a challenge: learning how to create a life simulation game.
For the first two weeks, I uploaded a short video to show a feature I created every day, and now that itâs been 30 days, itâs time to reveal what Iâve learned!
Hey Iâm Arnie, and this is my Gam...
I assume you're referring to creating a child of the primary data asset which yes you can do.
Epic themselves however don't recommend this.
'Assets can be made in the Content Browser using native classes that inherit from UDataAsset. If you want data inheritance or a more complex hierarchy, we recommend creating Data Only Blueprint Classes.'
Why do they not recommend this?
@frosty heron Wanted to thank you. Thanks for sending me the correct way. Almost got my first prototype working
I don't know the reason but if I was to guess I would imagine it's down to how they function with the asset manager.
The same message appears on the description and multiple documentation relating to it so I'm sure there's a reason lol.
I'm making logic for when the player drops an item, any ideas on how to make it more realistic? Because the angle and whatnot is horrible
I just want it to fall the floor and then get the floor's rotation and then stick to the floor
But I have no idea how to do that, unless I make a BP_Floor object or something, and only use that for my floors
Question #2) Is this bad code etiquette? All i'm doing is getting the item at the specified index and returning it if its there. Otherwise it'll be null. Issue is, since the "get" node can return null it may hv probleems afterwards. Is it worth putting an if statement there? Or can I just leave it with the errors. Because right now its just sending the error msg and returning null, which is what I want. I just don't want the error msg.
I dug into this around a month ago and wasnât able to find the reason for this comment. Thatâs not to say it doesnât have a good reason, but I did find that other industry professionals seem happy using data asset inheritance though.
Thatâs being said I would like to hear about why itâs not recommended if there is a good reason
Yea, I'd like to know as well. Until I know, I wouldn't personally recommend it lol. I might have a dig through the c++ at some point to see if there are any additional comments.
Accessed none and out of bounds messages are annoying and can flood the logs if not handled.
Regarding your drop item function, set the world location so it's outside the characters collision. If you don't the collision can cause it to launch off in random directions when you enable the collision.
so the target here is a component with childc omponents. Is there any way to only affect the scale of the parent component not the childs?
It's scaling whatever you connect to it. If that is the root component then every child would be affected unless their scale has been set to absolute.
How do i set to absolute
*wrong reply
How do i set to absolute
What the component selected in the viewport tab, where you can set the scale, there's a dropdown you can change.
I considered placing it right in front of player but I'm worried they may accidentally drop it off the map or into a wall. And then I gotta do like EQS or smth to figure out where to go which sounds much more complicated than just putting it at player location (cuz player cant go to invalid location)
adding on to this, (please help), this is how my item drops to the floor right now. I made the z tiny as hell, so it looks like a 2d item, but like the angle is off
Generally speaking if I have children and parents and I want to set some data from children to parent I just set these variables on begin play of children and then at the end I call to parent right?
don't know how its phasing thru the floro halfway liek that
Yes, the call to parent is only needed if you need to call the logic from the parent.
Show the collision on the mesh? (In the static mesh viewer)
is there a better way of changing the collision response? Like I don't wanna have like 5 of these nodes to change 5 things.
but i scaled the z to like 1/10th of that
I scaled it bcuz I want it to look like an item, I feel like i'm approaching this wrong
this is the visibility collision (after scale)
why doesni tjust lie flat why it slanted
like i don't hv any wind in my game it should like lock in place uk?
even now its swaying randomly
It sounds like it's overlapping the floor. Is it moved to that spot or is that how it ends up when it falls?
If that's the case I would imagine it's struggling with the small collision. I would just make a disc shape in blender and then set the collision in UE so you don't have to scale it. Really thin collisions can cause a lot of issues.
or i was thinking I could let it fall, doing a line collision downwards every 1 second and as soon as it hits anything solid it'll adopt that object's rotation and lock
I can do all of that, except for the get floor rotation
Hey there! Using Unreal Blueprints to make a beat em up. 3d space, 2d look--ortho camera. Right now, I'm having issues with my sprite's interaction with the level colliders when she turns to the left--see video. Anyone have any ideas? I'm rotating her when she turns left via the BP
I'm tryna have pawns ignored by this line trace by channel, but it seems I can't change the actors to ignore array elements? Can someone help me understand whats going on
this is Unreal's reason for not lettign me change the array
Is there a reason you don't want to just create a mesh with correct collision that you don't need to scale?
if im beign honest, I haven o idea how to do that, and also this is all being done in the BP_ItemBase, so I want it to be easy to create new items and having to create a 2d image each time and scaling it in blender would be a pain
like i can create a flat cube
You'll have to populate the array at runtime.
but idk how to modify the collisions and whatnot
oh
tahts dumb
is there any way to populate that array with all actors
or do i hv to specify like BP_MyCharacter, BP_EnemyAI, BP_RandomBirdInTheSky
Hi ! How can I draw a simple UI line along a Spline in blueprint ? I want to show a path. Surely using a Spline Mesh isn't necessary right ?
It seems like you're making your life harder by not doing things the normal way. đ¤ˇ
You can still have a flat cylinder that you can change their material on if needed.
Depends on whether you want it in 2D or 3D space.
2D Space
I have a basic Spline drawn from coordinates to illustrate a Flight Plan and need just a very simple colored line to illustrate it
Then even a spline mesh component won't help you. PostProcess might. Or arranging a set of widgets each frame tick along the spline.
In a widget there's an 'OnDraw' function you can override. There are a few draw nodes you can use in here for lines. You can get the points for you spline and use the data accordingly depending on the node you use.
Alright I'll check, thank you !
Does anyone have any experience with the Variable Access Library on the marketplace?
it's causing me to pull out what little hair I have left.
How do I put my variables into groups/folders? A plugin I downloaded has variables grouped into little drop-down menus.
You set it by category
Click the variable, on the right hand sided viewer, you'll have a drop down option for Category, you can do whatever you want with that and then sort the variables into their categories.w
@dark drum could you answer this?
Yes but you shouldn't do it. You probably want to look into custom trace channels. đ
That function doesnt exist ? I'm on 5.4, it doesnt show up in the override list
When you specify the name of the category, use a | character to denote a sub category.
Ah, found this node, just have to supply it with my points
'OnDraw' is a function on the HUD class and on widgets. You'll need to override the on draw function to get the 'context' you need for that node.
Fixed the code to use a timeline and lerp. Got it to work, no more spinning around and it stops where it should, however now this is my new issue. ^^^^
I take it that the Variable Access Function Library has not been used by anyone?
There's almost no documentation and no discord. I feel like I got dupped.
Thank you
If Anyone could help me with this is would be great, you can see the rest of my blueprints by clicking the person I replied to and scrolling up just a bit
This is an easy fix
Tick fires every single frame. So if you put your timeline on it, which is a latent action, youâre going to get a spaz demon door from hell like you have
Additionally
Your timeline isnât even connected properly
You want Play and Reverse. Set new time has nothing to do with it
When I connected it with play and reverse, it wouldn't do anything, I had to play with it a bit and these are the connections that allowed me to get to this point
Itâs cause youâre doing it all wrong
OnInteract -> if DoorIsClosed -> Play -> ifDoorIsOpen -> Reverse
Ok give me a sec
Youâll prly also want to add a bit more logic if you donât want to be able to interact with the door while the timeline plays (either another bool or a do once with a reset on completion)
Well wouldn't that kinda just make it so OnInteract, the door opens to 110 degrees, then obviously on reverse it just closes? The Amenesia door system allows the player to drag their mouse to linearly open the door, which is why I have the turn rate (which is the mouse turn rate) * the sensitivity the player has their mouse set to and plugged it into the timeline. Which I thought would update the tracks position correctly, which is did but then yea I ended up with the door jittering
Oh I see, I didnât know what this Amnesia mechanic was
Yea, my game is practically done just decided to implement a new door system at the end which was dumb planning on my part. I had a functioning door system until I decided to change it lol
Well at that point the timeline might be overkill
I'm kinda at a stand still. The only tutorial for a system like this was from UE4, and I tried that before making my own and it doesn't work anymore unfortunately
I come with a very irritating problem that probably has a very simple solution, that i'm overlooking. My axis movement is all messed up, W is right, D is forward and so forth. i'm following a tutorial on making a platformer and i'm following this tutorial to the letter, but i just don't understand what is going Anyone know whats going on? Thanks in advance!
I havenât tried doing something like this before tbh, idk how Iâd approach this off the bat @trim matrix
alright I manged to do it, but it is incredibly low performance and I end up with like 1 FPS. My flight plan lasts for like hours, with every point saved every second during the flight :/
There's no more performant way of drawing a line ?
Yea fair enough, just one last thing then, what would be a better way to constantly check the placement of the mouse then if not Event Tick? I have the OnInteract set to check if the player is looking at the door, which means it only runs twice which is when the player starts holding LMB and when they stop, so I don't think it'd be ideal. And Event Tick seems to just break it
If I can find a solution I'll post it and possibly make a tutorial on it as judging by the comments on the tutorial I found people want a system like this
Show how you're doing it.
You can just get mouse position on viewport from the triggered pin of your mouse down IA, thatâll fire every trick if the trigger is set to Down or None
The only node available is "Draw Line", singular, so I'm using a For each loop with the amount of points I have, and it draws a line every time using the previous point as the origin for that new line.
I guess that's the problem, it must create thousands of lines in the background
But there's no "draw lineS" (plural) node or Draw Spline node for that specific use
Maybe using Niagara to draw a Ribbon along my flightplan
You shared a screenshot of the 'Draw Lines' function.
it wasnt under the HUD category, it's under "Painting", wasnt the correct one
That's fine as long as it's called inside the 'OnDraw' function.
Ah ! the "Draw LineS" required a Context I wasnt sure where to get, but it's in the function override.
It's called "OnPaint" tho, is it the one you're talking about ?
Alright it works
When i'm spawning in AI classes, is it better to have a blueprint that contains all of the information I need (weapons, skin, helmet, etc), or is it better to have like an empty blueprint class that just spawns in a specific data asset with everything I need?
how to expose a component in blueprint as public
Components in BP are public by default but select it and in the details panel, untick private.
Do you have any idea why the anim instance state machine switches to state, and ignoring the duration time?
Are custom Structs generally considered okay to use? Or would it be better to just have an actor with separate variables that can be referenced instead?
Ex) In a dungeon generator, I want to keep track of each Room's variables so I can check/manipulate them again later. Is this better done via a Struct or by having a separate BP for the Room itself and making the Dungeon BP add a bunch of Room BPs to it?
for one thing the movement is usually relative forward and right
so your just moving in the x, but your saying w doesn't go + 1 ?
Iâd use the structure in an actor component
Custom structs are fine to use, although they're best created in C++. Blueprint structs can be buggy (although I've personally not had super many issues with them). For your use case having a struct to keep track of room properties sounds like a wise idea (it brings the benefit of also being easy to save). Though I'd also have an individual actor for each room, I think.
your world direction is probably incorrect, and like i mentioned you could be using forward vector, and right
Asking again, does anyone have any experience with the variable access library in the marketplace?
It basically does away with casting and uses soft references to get info by name, but Iâm having nothing but issues accessing components
The documentation was useless
that looks like a nightmare
unfortunately it's something off the marketplace, you would need to find someone else who has used it or knows how to use it which is a lot more difficult than getting general help
your chances of success are a lot lower
W went +1 in the Y, it was weird but eventually I did fix it, by switching around the directions, but then I added the get control rotation and get vector bits to the movement and it was reversed again, so I undid what I did to fix it initially then it's all fine now.
my brain hurts but everything seems to work now
Yeah; itâs a bummer. I feel like I got dupped. Itâs incredibly useful in theory, but if it doesnât work than itâs useless
is it possible to reach out to the creator ?
It looks like it is very straight forward. You plug in a reference to the object you want to access and then either get or set a variable of a specific type for that object.
Anyone know how to make a similar system like the one from this video https://www.youtube.com/watch?v=ab9ZZ0fUIJs&t=735s with a pipe that pulls some objects that are simulating physics into it if the objects enter a box collision
Can I make a game in just 8 hours? Come along and let's find out together!
I've been seeing this type of content for a while now and everytime I do I think to myself, I wonder if I could do that? So today I tried the 24 Hour Game Challenge but to keep it fair to those who actually do it one day cut my time in half plus some. I hope you guys enj...
Probably just an overlap that then applies a force to the thing that overlapped.
Right, but when I follow the method for getting info from a component, it doesnât work. It should be fairly straightforward, but itâs not.
Get owner â> get object by name (player component)â> get int by name â> print string
sry for late answer, I saw that you have some tutorials, what method for item data do you use there?
I personally use a uobject item base. This is because it allows hierarchy as well as mutable data in the item itself.
yeah this sounds interesting. I saw DT at Marketplace and adapt this
it feels bulky :/
I'am new to UE (startet about 5-6 Weeks ago) but came from Web Dev.
Personally, I don't think it would scale well anyway. Because all the variables are created dynamically, you'd have to know that you placed the variable on the actor at some point to know you can call it.
I can see it resulting in loads of bugs and being awful to work with in the long run. Too much fuzziness with if something has a variable or not.
The DT Strategy they used was okay at first glance but actually I have stomach ache with it
I would only recommend using a data table for an inventory system if the items would be pretty simple and you need to be able to edit the data externally.
As things get more complex it becomes a pain to manage. You either have tons of redundant data or end up splitting data across multiple data tables which again, I don't think is very nice to work with.
DTâs have its use, but I think Data Assets or UObjects are better suited for inventories and what not
Thatâs a bummer to hear, but it makes sense. Wonder if I can get a refund.
Yeah, my Items aren't so complex I think (Some Different Types, Gear (Weapons, basic Armor Slots), Ressources, Consumables, Seeds)
And I need a way to create Recipes for some stuff (crafting)
based on different actors
for Example "seed machine" to get Seeds from Vegetables
In my opinion, not complex would be no hierarchy. When you need hierarchy different item types often need their own set of variables.
so my stuff is complex, hm
yeah my actual stuff has different set of variables
seeds has there own growtimes and intervals for example
can I find some good tutorials where the UObject approach will be explained with good examples?
I've not come across any myself which is why I started my series. It might be enough to get you going.
How do i round the seconds up so it's a whole number rather than a decimal?
How do i do this for minutes too?
@ivory spoke i definitely recommend data assets. At first glance it might seem like creating g a new asset for every object would be worse, but it's better in every way. It does make it easier to make inventory objects that might share most things accept a texture and basic info. You also get to use the asset manager which is a very efficient way to load them. Even if you have hundreds to thousands.
Has anyone watched the Ryan Laley inventory series and know how I would add an equipment bar to it?
So for Example for different Vegetables I need to create a new Asset (Pumpkin, Cucumber, Starberry ... etc)?
Epic has stated that you shouldn't use data assets if you require hierarchy.
What does hierarchy in this context mean?
So you'd have a base item class, then you had children such as tools, weapons, consumables, ammo etc... of which you would then have children of those types.
Yeah, you can create a new primary data asset as a base for the item classes and in there put all relevant info. You could also do this with a single primary data asset (the class to inherited data assets from) it depends on preference. For. Me. I like using inheritance because I can add the properties I know every object will have and then inherited a new subclass for a sub type.
Anyone know if having an Alt+code in a Input Pin's name will be bad?
it compiles and runs... for now
Why is this? The point would be to have options with the asset manager on how to load them?
so Base Item (set of base variables), Children: Tools -> with his own set of additional vars, Weapons with own Variables etc.?
You'll have to ask epic. I don't know the reason why, just that the description says this.
'Assets can be made in the Content Browser using native classes that inherit from UDataAsset. If you want data inheritance or a more complex hierarchy, we recommend creating Data Only Blueprint Classes.'
UObjects need c++?
No, you can create a child of object.
Ok, so UObjects seems to have more advantages?
This doesn't say anything about avoiding inheritance though.
In your tutorial, you use UObject approach?
I do yea.
Yea, I meant to say doesn't recommend lol.
All stuff are working actually, and now I remake it xD
Hope the Results is worth it xD
UObject Inventories > Struct inventories by far. Unless you're a programmer from 1990 and can't understand how other people might hate dealing with crappy architecture.
Well if I created a data only bp class and I still wanted to load it with the asset manager I would be going Into cpp and setting up the primary asset ID uproperty. At this point it's basically a data asset. Just with a bit less of the initializations that data assets have built in.
Just working with large structures in general is a nightmare.
are uobject inventory / item handling are better then dt ? the simple check for get this from inventory is a nightmare
UObject does meant not datatable. Don't mix that up.
UObject Vs Struct for containment of runtime values.
DataAsset vs Datatable for static definitions
You can do either with either. But in general, a UObject inventory made with DataAssets will be a lot easier to work with and more scalable.
actually I defined Structs and datatables
and work actually on actor to produce some stuff (seeds for this example)
so I have a recipe list (actual also dt where I say input item = pumpkin, output item = pumpkin seeds)
the actor check ok only this list of items can be inserted (recipe list for this actor) -> i need to check if the item player want to input is on the list
this checks seems laborious for me -> ( I need to break the structs and then check is dt and rowname equal) maybe there is a better way but this is my actual approach
You would store the item types as a class ref that you'd just check the class of the item objects in the inventory to see if it matches the same class.
As for the output, if it matches you remove the pumpkin and the use the output class to construct a new item object specified in the output.
Need defining tags on your items in their static data. You garden things can just compare if it has the tag in it's definition. Tag any items that are meant for gardens. Can even do subtags for different garden types. Small, Medium, Large, Alien, Etc
But either way uobject or data asset, you'd be in a much better position.
My tutorial would probably be a good starting point and could be tweaked if you want to use data assets instead. You just have to remember that data assets should be treated as read only though.
While you're at it. Don't forget to look up TileView or ListView widgets for your inventory. If you had a struct based inventory you might not have been using them.
It is nice that actualy all stuff seems to Work but I learned so much. Some stuff need a rework
Yeah my actual Widgets used grid Panels
I have a inventory, actionbar and a sellbox
I'm not a fan of the list view widget. Seems like a convoluted way to add widgets to a vertical box. Are there any advantages to using the list view?
Many. For starts it instances them. If you have 200 items in the inventory but only see 13. Your way has 200 widgets in a vertical box. Listview has 13.
Second is that you do a lot less CPU work because of that instancing. You only set up, up to 13 widgets at a time in this case instead of 200.
Which means 13 textblocks set instead of 200, 13 icons set instead of 200, 13 etc etc etc instead of 200.
All of the Widgets are early prototypes and Main Focus was to interact with Actors ( sell stuff, choose Item for usage (hotbar))
So I should use Listview?
Good to know. I guess I'll be looking at swapping them out at some point.
Just much easier to optimize. Plus if you consider filtering and sorting. Listview you simply take the array of objects and filter or sort the array and put it back in the Listview. You don't need to manage clearing, caching, etc.
Widget stuff is horror for me đŤŁ
I think it's safe to say it is for everyone haha.
Ok this make to feels a Bit better for me
Puh this will be a huge rework
But IT will be payed out with scale If the Project
I got my core system up and running in a few days and then spent 2 weeks on UI. đ
Yeah the Same for me
i so really fast can I do a small Game Tests for some features ( Farm System, simple Combat Tests, weather, day night)
Maybe one week with First Hands on ue
Then i restart Project make These Things a Bit cleaner better, Work Things more Out and search for some Tutorials or Marketplace stuff i May use ( for example the ultimate Sky system
the ui Takes me two weeks and IT IS totally rough
Yeah there no going back to the pre-UE life. Once your hooked that's it.
At least it was for me 4 years ago.
Hmm, what did I miss? I have Parent Class and Child. Child is in the level. On click I take Hit Actor and I'm casting to the parent but the cast fails?
The Multiplayer stuff also Takes me two weeks
Multiplayer should be done as you go along. How you would do stuff can change massively for multiplayer.
So no really MP but that all mechanics works replicated
Yeah I basicly rework all for mp
Print the hit actor to check it's hitting what you think.
hello, sorry to interrupt, but i have a request for anyone here
But this was also a learning
i have an assignment due today and i was procrastinating, I got some of the information down but i feel like Im not understanding something or i missed something from the lectures i watched, I just need some help with it or someone to tell me what im doing wrong so i can fix it, specifically for blueprints in Unreal 5
Since them I can See how it must be implemented to Work on mp
I was going crazy, thanks xD
Was something in the way? Lol
show the blueprints, and say whats it doing, what it's expected to be doing
you should get better help that way
I forgot to check Collision setting to block hit on this... i was reworking stuff whole day and my brain is fried
Ahh, yea that would do it.
Similar to me for interact trace... Every time I add a new actor to interact. It doesnt work... at the end it is the collision setting for interact trace, every time
I have an option that automatically sets the collision setting that's enabled by default for this reason lol.
Smart solution đ¤ŁđŤŁ
@dark drum Widgets are what I was trained on. đ There's a reason I dramatically simplify everything and take care to consider how it can be accessed easily from UI in a dynamic way. UI is really easy when you don't constantly nailgun your own feet with your own gameplay code.
I will completly rethink my widgets, the Data stuff is actualy better as on my First trys. But the controls....
I will need often Interfaces for boxes, Shops, other actors
So i have to Switch between two Arrays for example maybe also three
Info Focus in gamepad controls so i want to do simple left right top down navigation. I struggle with switches to the other grids and my actualy Key Management
I'am Sure I don't use best practise actualy đ¤Ł
You probably won't need to use interfaces. Inventories and items should be consistent so getting the data should be the same way regardless.
Whenever I start the game online, the linetrace of all clients is spawned on the server and the client itself only checks the 2nd line trace that appears on the server on the server itself, how can I solve this?there are actually 3 line traces in the photo, it is not visible because it comes to the client's head.blueprints written on the player controller
For my next Iteration I will try to Put actor ref into the Widget and create Basic function to get the Data i need for example Box "Item Array" or other actors "Ressources" or "Output" array
Player 0 camera manager? Should you not just use the line trace on client and then if whatever condition is true then get the server to check?
Or am I missing something?
But implement nice gamepad Controls to Switch between Players inventory and Actors ... ITS horrible for me actualy
Thanks you all for this Massive Input. I have alot of new todos in my list. I Wish you all a good night!!
Even better you could just send Struct of data to the Widget from where you are creating, but reference of the thing won't be bad too I guess since if widget is created then that thing is also in the game.
Why are you even needing to multicast this at all when you're setting the values in replicated variables? You'd effectively be overriding either what the server is sending, or using the server's value depending on the timing of things.
Futher, the player controller only exists on the server and the owning client, no other clients would receive that multicast, so if your intention is hoping that all clients would receive the replicated variable data and perform the actions within that mutlicast, they will not.
The reason why I replicated the variables is to try it completely.Actually, there is a situation with the character ref as if I solved the problem.When I removed the character ref and replaced it with the camera manager location, it worked properly.I think I need to work on the references a little more.
I don't know multiplayer very well, I'm still learning. thanks for the information you have provided. where do you suggest I write these blueprints?
Where you put things depends on the needs of what it is you're doing and how it relates to the things in the scene, and in terms of multiplayer could also depend on whether or not the thing you're doing actually needs to be replicated out to everyone or not. There is no one answer to where you should be putting a line trace.
An example, I don't necessarily need to have a line trace done by all clients.... I could pass them the results of a line trace performed on the server or replicate what the server wants to happen based on that line trace without having to directly communicate anything about the line trace.
It was meeting all my requests offline, but things really change when I switch to the online part. What I want to do is to connect a line trace to the event tick and meet all the requirements through it. I don't know if such a thing is possible online.
as I understand what you said. In short, you say that it does not always need to be replicated
Out of curiosity what are the requirements?, Like what is it the trace is doing?
These are the ones that come to my mind: interact, Placeable Items, Retrievable Items, type of item to break etc.
Maybe I am not doing it the best way as I'm still learning myself but the way I done it was by making 2 functions, 1 for a line trace when a keybind is pressed then passes to the sever, and another for clients on event tick (for showing info on stuff you look at).
I don't think you would want to run on server / multicast the traces of all clients on an event tick, if that makes sense? For example if the client interacts with a door then it can be passed to the server and it will run the logic and update variables (In this case I think you would have an RepNotify bool for if the door is open or closed) then multicast the animation of the door opening.)
at least to my understanding anyway, I'm sure somebody will correct me if I'm wrong
Someone kill me please. Been trying to find this stupid runaway loop all day and came up with nothing. Worse, my dungeon generator now functions less well than it did this morning. I may just revert.
It should give you a list as to what is looping.
Yeah but the things it points at don't even make sense in terms of looping that hard.
A calls B calls C calls D calls A
It works as I showed in the video. I followed this way because I thought it made sense that way.
I think it's just angry that I'm looping "For Each" through my array of custom Room Structs, and then through each of the struct's arrays, but even then it shouldn't reach a million loops since I'm only adding 10 rooms with a max area of 20 tiles.
But I literally cannot figure out wtf is wrong
Depends on what all you're doing in those loops. The BP loop counter isn't specific to loop counts. It's kind of a function counter. So a 1k loop can still easily trigger it if you do enough function calls in the loop.
Wow, I hate that.
The major killer is calling pure functions through multiple loops. Because loops are a macro. So accessing the index or loop item accesses the array. And if you're passing that from something in one loop, and then breaking a struct to get another array and looping it. You're getting that array again in every iteration of the second loop.
That might do it. So, issue 1 is tentatively answered. Moving to issue 2, for some reason my generator randomly decides to put a room where it shouldn't, and I haven't been able to figure out why...
Is it possible it thinks "ROGUE LOOP!!" and kills itself prematurely?
Possibly targeting a previous location?
Like...
This is a good example.
The pure node on the left is ran 70 times, because it's being accessed 70 times through the loops.
I have a VERY weird bug going on.
My custom VR pawn, stopped simulating physics on release, for objects.
Funny thing is, my backup VR pawn works fine.
I tried to delete all logic apart from the grab/release, I tried copying the related code and functions from the backup pawn and made sure nested functions are also from the backup pawn, I checked class settings and class defaults, and also checked around and there is no casting to my VR pawn. I even checked time dilation and trace channels, everything looks the same đ
hey guys i have a blueprint for a ClosetDoorL and ClosetDoorR, when im hiding in the closet i want to disable the function of flashlight in my character bp, im thinking i did it right here but its not working. any ideas?
just put it in its own mapping context and then remove and add the context as needed. Done deal.
Yeah - makes sense. Is there a better way to access a bunch of arrays from a Struct without exploding UE?
im still fairly new to dev, how can i do that?
you have an IA_Flashlight. How did you do that?
just created an input
ok, and then?
added it to imc default
there you go
now create a new IMC
remove it from the default
put it in the new one
you could add 2nd one on top of the first one by setting priority and then just removing it when you need to access switching again
are you saying create another imc for when im in the closet?
then onEnteringCloset -> get player controller, -> get enhanced input local subsystem drag from it -> remove mapping context.
onExitingCloset -> readd it
or another IMC just for the flashlight and any other stuff that needs to only work outside the closet
when you understand it its crazy powerfull tool
much more straighforward ''modes'' nstead of using booleans and diging yourself a grave with amount of them
yea i havent played with it much so im just using the templates and adding the the current imc, so when i create a new imc does it need to be called on the closet blueprints?
you can call it from any blueprint I think if you Get Player Controller there
Honestly. Most of this looks optimized as far as BP goes. But there are a lot of loops here in this one function. Depending on what is in these structs, I could see this triggering the loop counter easily.
Without C++, I would say you need to spread this out over some frames.
Yeah. This function searches my list of possible Rooms for one that fits against a Door without overlapping any existing Tiles.
Elaborate on spreading it over some frames?
hm you can make a blueprint function call into an async task of some sort? not something ive tried looking into yet
with like, idk a yield node
I suppose I could also just scrap it and start over, and make it generate one Room at a time, but I feel like that's boring
Like uh... Hard to express easily. But I mean doing some logic, do a DelayUntilNextTick, do more logic, wait do more, wait, etc until it's all done. It's not the easiest thing to start doing, but once you get used it it, it's really worth it. You get much less hitching in the game, better loading screens, and you can pass console certifications. đ
Interesting.
makes sense to me, delay until next tick would be the yield node i was figuring existed
do i gotta add the imc to the project settings?
Bonus question: Am I messing up by doing the planning and math via the construction script?
will it resume the blueprint at that point without being called again, i assume?
Only latent async task I used is Gas task
Unsure. I'd say no unless it's causing issues.
But you can see load async code as well
It will have a pin in the bp when a certain task is complete. Basically just a delegate broadcast
Nah, just use Get Player Controller > Get Enhanced Input > Add Mapping Context/ Remove Mapping Context based on situation. You just need to think when you want player to have input that switches doors and when it doesn't need it because it does anything else.
Treat it like now player enters Opening/Closing Door mode, when he leaves remove it so you are back to the ''default'' one that you already have.
It's basically just a callback delegate. BP just allows these without creating a specific function to handle the callback and instead triggers the exec line past the latent node.
Yeah, what Cold said. đ
Alright, I'll see what I can figure out. Thanks for the advice!
ahhhh that makes sense, ok thank you
My final advice would be C++. Even if just to create nodes to loop through data. Generation stuff is really brutal in BP due to copies and such everywhere and the general issues with performance. You do a ton of loops, recursion and data lookup for generation and BP just breaks down with this stuff. Couple loops in a C++ function won't blink where as the same thing in BP can cause a frame spike, or break the loop counter.
https://www.youtube.com/watch?v=CKPd1zC6XZ8
Hey y'all, I want to figure out how to do exactly what's going on in this video. There's not a ton of documentation on splines.
I want to do this, but perhaps automatically. So when I get within a certain distance (easy blueprint) of the spline, it only once adds 3 points between the last and second to last point ALONG the curve that's already created.
Hi all,
I am wanting to build some lag-free custom multiplayer character movement in blueprints, but can't do it with a server authority without introducing network lag.
I have found this pack on marketplace: https://www.unrealengine.com/marketplace/en-US/product/general-movement-component but it has a lot of features that aren't required for our project and feels a bit like overkill.
But then again, maybe it isn't overkill. "Implementing lag-free, server-authoritative multiplayer movement is a notoriously difficult task and very hard to get right - the GMC will help you immensely with this by automating almost all of the complex setup required for you."
Are there any other plugins or solutions to this problem? Our team has a lot of blueprint only devs and would much prefer to design our movement abilities in blueprints. They aren't complicated -- they just need to be lag-free.
Thanks!
understandable, but without using #cpp you won't get very far along towards that lag-free goal.
#multiplayer can help but bp only multiplayer is...difficult at best
Does anyone know a good tutorial for equiment slots for ue5?
I've got a 'Make Soft Reference' and not a 'Resolve Soft Reference'
Thank you. Basically I am just hoping for a plugin which can work some C++ magic to allow creation of custom character movement in blueprints without having to run the input through the server first
I think it's called network prediction but I don't know all the terms
You can only go so far with blueprint when it comes to that. Even with those plugins (GMC) from what I heard.
The term you looking for is client prediction btw
Right now you have 3 choices, the cmc, GMC or mover 2.0. All of them require cpp at some point if you are doing multiplayer from what I read
nevermind! fixed it
Share the solution đŞ
I just made the Item Mesh a soft object reference innately instead of a hard object reference
Any super cracked spline users out there that can answer this
Great thanks. Seems that Move 2.0 still has some issues to iron out. GMC seems robust but might be overkill -- their whole point is network custom movement without C++ it seems
And yeah final alternative to do C++ with CMC ourselves I suppose
I'm not super cracked at it, nor do I know how to use one since I'm new to all this. but this might help? https://forums.unrealengine.com/t/add-spline-point-in-runtime-from-blueprint/467319/2 after that I'd assume they just spawn a sphere actor, and trace the hit position under the cursor (or line trace) and change the values accordingly??? Not sure if this is helpful but yea
That's the path of least resistance and thankfully someone made guide about it already. Look up delgoodie cmc video
C++ is great @mighty coral, join the dark side đ
depends
what depends
C++ can be not great sometimes
(hard)
@worthy jasper any more questions on advanced BP stuff?
not from you xD
you dont know advanced
your not even novice
question me
Well then yeah, I am bias asf I was just saying its great đ
already asked a question and it took a minute to get that answer....ive procrastinated enough on my project tonight XD
and to clarify I dont hate you. Not at all. But it is a little tone deaf when your saying something is easy when answering a simple question is hard for you in your learning stage đ
Can you guys go back to C++? We like actually having vaguely intellectual conversations in BP.
"join the dark side" is enough to sell me on just about anything đ đš đ
what you think we do in cpp? We....ok fine
The dark side would be blueprints though tbh, just addressing the analogy
Yeah thanks I just found this. Also learned from this video that the CM component as it is already supports networked predicted teleporting which is cool
we await you in #cpp
đ Pretty much. But for real, don't let Cat get to you. Still not sure if he's a troll or a gpt bot.
I knew you hated me :3
I'm neither
nah cat doesnt get to me was just having a little fun. Im going with troll and chatgpt bot XD
Hate implies care. Don't have time for that.
A bet cat knows advanced blueprint networking strats (not /s)
that's a great ass response
anyone working on a spiritual sequel kind of game?
Every game made in the last 20 years?
What's the best advice you have on blueprints?
no, being inspired by different games is one thing but basing the entire premise and gameplay primarily around one game is different imo
(my answer was to Authaer) but my advice would be to understand BP and then when you are confortable, learn C++
anyway, there's a little less known game called Space Rangers HD https://www.gamespot.com/a/uploads/scale_super/gamespot/images/2006/040/reviews/712226-920464_20060210_002.jpg
i'd love to see this game done in 3D one day
Would it be better in 3D?
yes because that's what the original devs intended but could never make
Could be neat.. Man I miss old UI styles.
my man
diagetic is the way to go
me and all my homies HATE our immersion being ruined
AGS is for New World
I could really use some help here. I was following a tutorial and I have no idea why this isn't working properly.
I am implementing an interaction system. The way this system is set up is probably more complicated than it needs to be. When I press the input key to interact, "IA_InteractHold", the player character should try to interact from this function in an actor component.
I end up with this error:
I'll show screenshots for the rest of the code in the next message
I have it set up so that the player character trace will detect the interactable object, which displays an outline and a widget. After pressing E, it should execute a function. In this case I have it set up so that a light will be set to visible, but nothing happens. The "BP_TestInteractionItem" is the actor I'm using to test this
The part you set the variable need to see more to the left and what event it is
which part?
the current interaction widget variable?
If so, that's in the screenshots that show all of the AC_InteractionTrace Event Graph
Why the DoOnce?
Like the trace is it running on tick or what
But your trying to get widget that doesn't exist yet I think just by glancing I'm on phone so it's a pain go look at
I followed this tutorial series on youtube
https://www.youtube.com/watch?v=yTkdnibL42E&list=PL3TrrCsmmxlmNTR5FbExgWsK7p-DjBIZA
Check out my inventory system:
đżhttps://www.unrealengine.com/marketplace/en-US/product/multiplayer-inventory-drag-drop
Series for an interaction system. In this video I only show how to use the system after you finished the whole series. This is NOT a tutorial were you're implementing/creating the actual system.
Here is the playlist to the who...
Is there a more stream lined way that I could do this?
Question. I made a dialogue system based off of a tutorial, but the dialogue is timed. Is there a way to keep the dialogue shown until the player interacts with it?
Here's the whole bp for the hud
Let me know if anything else is needed
Did you find a solution?
no
I ended up storing the variables somewhere else
I need a little help, I'm trying to clamp the rotation of my character, I cannot figure out how to clamp it properly. The method I am using is to rotate the upper torso of the character with the camera, however it breaks whenever I try to clamp it, or only works if I look a certain way. Any help is appreciated !
where are you trying to access it?
from AnimBp, or even the Bp of the character
Was just looking for this and found a solution, although very hard to find, so I am relaying this so it can get out more! Once you add a variable to control rig, it is then accessible within your animation blueprint. If you donât have an animation blueprint yet, there is now a âControlRigâ node that you can place in the AnimGraph. You can then ...
I already read it, and the conclusion seems to be that there is no way
Hello devs , plesae help , i am trying to set Scalability Settings to Low ,but Textures , Effects , Shadows and Post Proccessing is got reset to Epic every time , how to fix it ? anyone faced same issue ? plesase helppp
You should use overlapping event to detect when you are in the range of interaction and then when you interact you interact with the thing that you overlapped.
Or when you click IA_interact it shoots line trace, checks what it hit and send event Interact to that actor. Donât use do once and so many booleans. Do it in the most simple way - click - check - send interface event > interface event on that thing does something (can be different thing on each item). Then you can add boleans and checks that you need.
Sounds like you need to put the actor rotation into account
Btw that start and end location can probably be done in the anim blueprint
Also I don't see any clamping logic there?
I removed it all, it was such a mess.
I definitely do, this is what I'm unsure of
if you could share once you're home, I'd like to learn
Yeah sure, it's not exactly the same use case but I don't see how the math would be diff
Find look at rotation but involve the actor rotation, iirc I have to subtract one of the axis.
Then it would work on all angle
oh wow ok
yeah I've spent probably 6 hours getting it to where it's at
a lot of it was getting it to initially work
Well I can't do math, got this from the internet
I feel that
Had my challenges too, did this like more than 8 years ago.
oh damn
yea I been using ue5 for like a week
my biggest accomplishment so far has been a small 2d top down with projectiles, killable actors that spawn randomly and mouse rotation in the 2d top down
Hi everyone!
I'm having an issue with my PS5 console. When I install a new version of Unreal game, the save data from the previous version gets corrupted. However, if I reinstall the same version of the game, the save data remains intact unless a new build of the game is installed.
Does anyone know what could be causing this problem?
@fiery sierra are you just doing it for hobby or more than a hobby?
If you are comfortable with bp, you should start learning cpp imo. I regret not learning it earlier
as a hobby, the goal is to get my GED and do this full time at some point. but I actually know C++ ! I would just need to learn the namespaces etc đ
Well that's just the intro, I know a very tiny bit of it but enough to make little things here and there that's not possible in bp
You should at least declare your structs in cpp
Save your self from corrupting your project
oh definitely, I wanna learn the engine a lot. My boyfriend is about to graduate with a BA in game design from full sail university, and we wanna make games together, so I pretty much said now is better than ever to start learning.
I previously did C++ menus on CoD but I just wanna do this shit tbh
and enums đ
So how would you go about accessing the stuff declared in cpp or h files? (if h is even useable in ue5)
I heard about the issue with enum, but I never experience it my self.
Still I declare the enum in cpp now anyway since if I do it in bp, it won't be reachable in the cpp land
For structs, you just access it normally. It will exist in the blueprint if you declare the struct as blueprint type
Variables declared in the header marked with UPROPERTY and blueprint read, will be visible in your blueprint
If you are considering using cpp at some point , better to start declaring variables there before you start the game with your bf
Saves you time from refactoring
Hey folks
I'm trying to limit the rotation rate of enemies because right now the just "snap" the rotation towards their destination when this destination change.
Where would I find such a setting (if there is one). I tried adjusting "Rotation Speed" and "Rotation Rate" in the screenshot without luck:
1200 is pretty fast imo
tried setting it to 0,12. No difference
If you are using cmc, I'm pretty sure rotation speed does the trick for me
How are you rotating the character?
I'm not doing it manually. Just using an "AI Move to" node.
Sorry not rotation speed, it should be rotation rate
Play around with each of the axis
Try to uncheck Use Controller Rotation Yaw
in class defaults in Pawn category
and then you have to go to Character Movement and check Use Controller Desired Rotation (true)
Testing
and then you can use Rotation Rate (Z) that is Rotation Rate per second
That sounds like the solution
so if you set it to 10 it's gonna take 36 seconds to rotate 360*
if you set it to 360 (default) its gonna take 1 second to fully rotate
Now it is indeed affecting rotation rate. So it accomplished what I asked for.
Sadly it still looks janky. Probably can't get around that without updating destination much more frequently though.
(The issue is enemies moving along a spline looking janky when they turn corners)
Only update destination every 0,2 secons at the moment because I try to have it somewhat performant.
cant you just update on tick ?
But I highly appreciate your help. It does at least smooth it a bit.
chiming in at the end here, got no clue what you're doing đ
Could. Just seems the "AI Move To" node is already taking up quite a bit of performance when looking in UE Insights tool.
So was trying to reduce how often I do it đ
I think putting it on tick with 0.2 rate is a bad idea?
yes
There must be better way đ
if you go tick, just to full tick
Doesn't look great đ
I tried this too, I'm sure it's not the right way to optimize, it just looks horrible
Could maybe do logic for making it tick at 0,2 and then when a turn is ahead up it to every tick, and then back to 0,2 or something after turn.
It's a predefined path, so should be doable.
I really wish I could help you with the right anserw, but I think (just talking from my experience), it's not something you have to really worry so much right now?
My A.I follow my player on tick
Best thing is probably to run a test with 0,2 and every tick and see what difference it actually makes in UE Insights first.
I don't see any performance drop
you want to look at the thing in UPathFollowingComponent
uhh i forgot what is it exaclty
You know I was really stressing about performance in my game and recently I packed it, spawned 50 character meshes and it was working without any lag, meanwhile when it was in the editor it was strugling đ
but it matters with the facing of the actor towards its sub-goal
and also the velocity of it
Not sure what this is
UPathFollowingComponent is automatically added to the controller when AIMoveTo is used
Gc don't really do wounder in editor. Most of the stuff that is loaded, remain loaded
I'm not that lucky (probably experienced is a better word) đ
I made a space war mini game inside a game I'm working on.
Finished it, then when it comes to test, I scrapped it because I was lagging in editor.
Turns out it didn't even cost me 2 frames in packaged
Running only 30-60 fps in my packaged game.
Don't expect all players to have comparable PC specs (not that mine are super good)
Anyway I set the goal every tick for my A.I. no issue on performance on my end that I see
BT is running every tick
Okay. Goal = MoveTo?
Or you mean something else?
Move To gets called every frame too iirc
Move To (goal (vector))
Since my character constantly moving
Okay. Thank you. Will have to test in the end. Gets me a clear answer.
Move to is not called every tick, it simply fires a Move To event. Observing the target actor/location might be doing that though
The context is a behavior task that runs moveto every tick
A.I related
I get that, but the BTT also only fires that once
Depend on how you set up the BTT
firing it on tick means their path will be updated every tick
Mine just keep running it every tick as long my A.I is in following mode
Well, if you setup your BTT to constantly call MoveTo, thats something to optimize already to only call when necessary
Yup, and if I call it once then I would be doing it incorrectly
Since it will just move to the initial location of the player instead following the player all the time
There's already dynamic nav mesh update and observing your target location/actor for any changes
I dunnoe about optimisation
Did you check to observe the value?
you need to use Actor rather than Location tho
But I am not gonna optimise something when I don't need to yet
Its a check box in the MoveTo BTT
and its the AI stealing all the resources?
Better earlier than later, its a general approach to do things right in the first place
when you have the actor reference, the path following component will update the goal to the target location
Isn't that called micro optimisation?
No not all. Was just a noticeable part, so tried to optimize it a bit.
Calling Move on on every tick? Not really
Gotcha
Well not gonna argue with something I don't know about
isnt there specifically a spline move comp aswell? if they're moving along splines..
But I am not seeing performance issue on my end
You just check observe value and your issue is fixed, rerunning a task can also block other logic in your BT ad overall this is not the idea with BTTs unless actually necessary
predefined path aka spline could just go with a regular tick update imo
observe here will move to the blackboard key actor without having to rerun the task from the BT
oh if we are asking the ai to move along a spline (with actual curve)
tick is the only way
tick is always the way for movement đ
ai move to is just basically straight lines
AI move to uses a specific pathfinding route
if you want to follow a spline, thats a different story
Indeed
tricky to get ai moveto to follow a spline
can be done, but tricky
overriding nav area under spline etc
You can basically split it into a few MoveTo tasks by dividing the length/distance of the spline with the distance per move to, something like 100/200/500 unreal units depending on how precise it should be
Then just move to that location using the "Get location along spline distance" and each time it moves, you move to its current distance + to add distance
Im also using splines in my AI setup
I indeed want to move along a Spline with a curve (and turns). Watching your inputs intensely đ
I mean sometime we get to the point where people fear line trace on tick.
Again I know nothing about move to performance wise but just saying before I optimise something that is not an issue, I would at least would like to know if someone already profile or have issues with it.
Again, wouldnt use tick to move to each unique point of a spline though
i limit myself to 5k traces per tick
thats enough
I will keep that standard in mind
performance is one, but requiring it is different tho
If you are ticking a trace for user interaction, its fine. If you are tracing 100 AIs at once, and depending on the trace type, things will start getting slow. For example, having a few sphere traces in game going on at tick will already crash your FPS
Sometimes, there are better approaches than using a more heavy approach to do the same thing
So you guys are saying I should not use an "Ai Move To" node on tick since I use a Spline.
What should I use instead?
For a spline, its a bit different. I would suggest making a few Move To tasks depending on the length/distnace of your spline
then each time it reaches that spot (or potentially sooner so it wouldnt stop) you increase your target location
personally, if i need the enemy to strafe/run around target, i just use addmovementinput on tick like a player would
You can use the Get Location At Distance Along Spline node for this
I feel like that is what I already do.
But you are saying I should not do it on Tick, but rather be strategic about when I do it? (Near curves/corners?)
when do you call this though?
Now on every Tick because it looks janky otherwise.
Have you tried calling this before it reaches its target location?
I think I do that all the time? Trying to set a distance far enough away (depending on movespeed) that the pawn would not get there before I call the function again.
so its not really then called on every tick
your branch is
what I mean is, you set your character to go to spline distance 100, once its reaching that distance - acceptance radius, only then trigger to move to the next point which would be current target distance + whatever your distance increase value is
So acceptance Radius is basically ignoring calling that node again if it is not within that Radius?
No, thats the radius the pawn will stop moving if within the range
Ah
But in your tick, before calling this event, you can check if your current location is close to your target location and if so, then call move to again but with the increased distance this time
Is it possible to disable an emssive material on event?
Make a dynamic material instance of the emissive material, then set its scalar parameter value for emissive to 0, but for that you must first have a scalar parameter in the material that is used for the emissiveness
Right. But I would still be calling it very often because I would only set the new Distance slightly further ahead.
And I set the new Distance slightly further ahead, because otherwise at corners it will skip across and shortcut the curve if I don't.
If you have 10 points to go to, you should call the Ai Move To 10 times, not on tick.
why not increase the distance by a few units like 100/500 depending on how precise it should be?
yeah, per point would be good too
Right. But then I would need it to not just move in a straight line, but follow the Spline if possible?
Otherwise 10 points is not nearly enough if the spline curves.
your spline points are following the spline path though
but thats what I mentioned above
You can add more spline points on the spline if you want it to be more accurate
make it use distance and decrease it by the amount that feels good
for example, make it move to every 1m(100uu) passed
My AI's will do this if I set a long distance.
Yes, if you skip corner point
cause you do have a mid point there
spline points refers to each spline point, not just the start/end points
Oh, you can actually get the Spline "points" (little grey square on Spline?)
You need For Each Loop > Get 00 Spline Point > Get Spline Point Location > Set Target Location > Ai Move to
on succes you> Spline Point +1 > Get Spline Point Location > Set Target Location > Ai Move to > Success
Spline Point +1 > Set Target Location > Ai Move To > etc.
I just got a distance along Spline and considered that a "point" in my head.
You can do almost anything with the spline.
You can get spline location at point (index).
And if I curve a spline instead of a corner, I just need to make sure I place enough "Points" on the spline along the curve when I make the actual Spline right? (Again to avoid Shortcuts)
This is awesome. Sorry for being so slow đ
Thank you all.
Right, you basically just need trigger that will start moving and adding +1 to current location.
I have a VERY weird bug going on.
My custom VR pawn, stopped simulating physics on release, for objects.
Funny thing is, my backup VR pawn works fine.
-both are using the same grab component
-I tried deleting all other logic and just kept grab/release.
-I copied the same logic from the backup pawn
-Checked for 'casting' nodes, there are none.
-Checked class defaults and class settings
-Checked time dilation
-Checked input mapping and begin play nodes, all are the same.
I don't know what else to do đĽ˛
HELP!
does the logic fire at all?
where is the call that simulates physics tho?
I guess its within the unreal template's grab compoennt function for releasing
you can probably add a breakpoint within that functiont o check whats going on
it runs through that fine. Yes it is the grab component. The backup pawn is using that exact same component and it works fine
Which means the problem is not in the grab component, nor in the items getting grabbed. It's the pawn, but everything looks like EXACTLY the same
I even tried duplicating it in case there was something bugged
does that simulate physics node get called? Did you print string it to make sure?
Yea, it says true but stays at exactly the same place
was that print string added right after the simulate physics? is there any other logic could disable physics again?
It can also be the chaos sleeping physics thing
maybe for testing, apply some force to it right after simulating physics
The problem is not in the object, as it works fine with the backup pawn.
Doesnt matter, it could still sleep and not properly apply physics. Id suggest trying that
You can also try calling Wake All Rigidbodies on the physics component
Hello Everyone,
can someone help me?
I am using this node to move my actor and at a spcfic point I want the actor movment going to 0 how can I do it?
I tried to put in impluse the yellow one value =0 it doesnot work. Does anyone know how to change my actor speed to 0?
Thanks
I am using phsysics in it
It works better than normal and do you know how to do that for rotation too?
I mean set it to 0
set physics angular velocity
Thanks so much. I am new to UE that is why I donot know too much
Hello! I was wondering about some best practices when it comes to implementing UI.
So far I know of two ways.
I got a levelloader map which loads in each level/phase whatever you want to call it, each of them needs to get a different UI.
Is it better to have one parent UI and then hide and show the elements I need for each level after I load them in
Or should I have one UI BP for each of the levels and completely remove all UI's and then add the one I need for that level?
Or is there a better third option I don't know about yet? đ
Definitely separate UIs for different levels, sounds more maintainable
Things to consider. Widgets are expensive. Not immediately. But due to the way people plaster them everywhere, they add up fast. Every widget that is not cached(they don't do this by default you have to put them in invalidation boxes), will tick it's dimensions every frame in a thing called Prepass. This runs on every widget in the hierarchy except for collapsed widgets. So you can just collapse them right? Except that there's another function that'll hit test widgets, and it has to filter out the collapsed ones, so it costs a ton even for collapsed widgets. TLDR, just don't put useless stuff in your widgets that'll never be seen.
Might be a stupid question, but can I set a "Rotation" for a Spline Point?
I have flying aircraft following the Spline and are looking for some way to make them "roll". Wondering if I can interpolate to a roll based on Spline Point Rotation/roll?
you can roll a spline point but ideally not the whole pline, as that would offset your spline point locations
each spline point has a transform including a rotation roll
So I could just set a rotation like this, even though I can't see it changing visually?
@young meteor You need nav areas.
Create Nav Area Classes and then apply Navigation Query Filters to them to change where Pawns on different teams are allowed move on the NavMesh.
Need help creating custom volumes for NavModifers?
Custom Shaped Volumes: https://youtu.be/3_A7WTIo9Ws
Custom Shaped NavModifiers: https://youtu.be/7CYSoJYpKtU
Follow along:
0:00 - Intro and Setup
1:...
Was able to right click and say show "roll"
Not just a nav mesh volume?
It is just a character walking. The mesh is just an aircraft.
ah thats different
if you are using nav mesh then you would probably get the roll of the spline and apply it to the mesh component only
Right, exactly.
roll of the current spline rotation role at the currentt distance
It will only happen at curves/corners so think I will just make a point before and after a corner with no roll, and then the actual corner point with whatever roll I want.
Then interpolate to and from it
I'd be inclined just to give the spline to the AI and have it steer it's movement towards the point on the spline ahead of it. Rotations can be done based on it's figured velocities.
Is this expensive use of Event tick?
No. But why are you doing that on tick and not when you set the Food pointer?
you are binding on event tick, you just need to bind once and whenever the disaptcher is called, the binded event would fire
@young meteor then id agree with @maiden wadi, calculate and interpolate with some math, would by easier to work with when mkaing more and bigger paths
Not sure how to go about it from there. Any node or topic I should look up on Youtube to learn about it?
You can get the closest point on a spline to a supplied vector. You can use that to get the time of the spline, add a little bit to get the new point and have the AI move towards it.
Movement components, and by that extention pawns, work by adding a movement input in a direction. So instead of doing AIMoveTo. Each tick you can figure where the AI needs to go by getting the spline and doing AddMovementInput in the direction that is ahead of it. If you get the distance along spline the actor is add and then add a small number to it, you can get the direction it needs to move towards. You can then use it's velocity to do interpolated roll animations as the movement component will be setting this each frame.
Do keep in mind this approach will not allow for any pathfinding though, depends on the kind of movement and levels you are making
Good point. Thank you.
No it's not a bug or error, just a note about the array. The array you pass in will be a copy so any edits to the array won't affect the array that was originally supplied.
oh okay thanks
TBH I'd love to know why that note exists. Like any C++ person can clearly see the const& array. And in BP you just assume they're copies most times anyhow.
I think arrays are pass by ref by default when added to functions so probably to prevent confusion.
But it's an RPC. "Like yeah, I was totally confused why my array by ref couldn't be accessed on ComputerB when it's from ComputerA, that's really weird."
yeah only makes sense in delegates/dispatchers in bp
I think its because you used to be able to uncheck the pass by reference in an older version and now its disabled? just guessing.
why is it even enabled? đ
Is it possible to have Parent and Child. Parent has Interface Select This, there is some generic part of code for everything, and then in the Child I could add individual logic on top of what happened in Parent on Select This? If so, how?
does it even make sense to pass by ref in an RPC?
Like it's incoming data that is serialized in your machine
Exactly
It is a ref to the array, it's just const.
so It make no sense to me to pass by ref
im just saying I cant change it
Everything in RPCs is passed as const TArray<Type>& Name. Cause it'll copy when it arrives on the machine, but you don't want it copying all the way through BP, so it's passed as a const ref.
I don't get the message myself in 5.4 though. đ¤ˇââď¸
Yes, you can override the interface function and do a 'call to parent' when you want the logic on the parent to be called.
I dont recall seeing this in RPCs, maybe he is also binding it somewhere
If I do this, and in the parent I have branch, will this have effect on what is after Call To Parent? Like if there is false to not execute it further, will it affect the flow? Or it's gonna execute parent and then what ever is next?
What happens inside the parent won't affect the flow in the child. Think of it as another function call.
Okay, got it, thanks
Is there a difference between these two? Functionality wise
if you click inside the macro, you will see they are the same
This is the top is valid node.
Glad you found it helpful. đ
Pattym and Ghislain Girardot, slowly changing how I feel about youtube. đ
Play montage is looping the montage animation , how do i stop it from looping
maybe your montage section is set to loop?
Ghislain is an incredible artist. I love watching his videos just for the concepts.
Hey, regarding the UObject Item stuff - is it right that every item will be a uobject? is there a way to manage this objects in a list (as data tables does) or is this the way to go :)?
His tech art demonstrations are what started me down some of my most recent learning paths. He has some amazing content and presents it in a very easy to follow manner.
You're mixing the static data and runtime data again. You still put the static data in datatables or data assets. You instantiate uobject to hold runtime data.
If you want to edit data in bulk, the closest you can get is by selecting the objects you want to edit and then right click, asset actions a click edit selection in property matrix.
Agreed.
It bugs me that you can set a variable as instance editable and private but it doesn't actually show up when the component is selected to set it's default value. :/
You have to open the property matrix to change it.
Oh, BP private actually works? I swear I tried using that once and I could still use it in another class.
Yea it works. I do wish you could set variables as protected though so you didn't have to create getter and setter functions just to handle them in a child BP.
I have actually never focused on that in BP. đ I'm meticulous about it in C++ these days.
I've found myself using private and protect stuff more. Mainly for my own sanity when i don't look at something for a while. Stops me from doing something stupid a system won't handle well haha.
Even setting a BP as abstract can be useful so you can't create base classes that wouldn't actually function lol.
Having private checked and still copying a Set node from one BP to another bypasses it though, at least it did in previous versions
could someone explain something for me?
Im currently learning, and I realised if I put "AI MoveTo" right after cast to FPS_Character_BP it moves to x00 y00 z00, but if i put it after the "SET" as shown in the picture it follows the character, could someone explain it to me why that makes a difference?
It should flag as an error now.
because you are moving to GoalActor before you set it, so its moving to nothing
in that case you would do this
but, no need to cast at all if you are only using it as a GoalActor as it takes an Actor object reference
ah, yea i see it now ^^ thanks ^^ its so easy to get lost in the wrong thought
They're probably using the cast as a filter.
im following a course so i think it will clean up a bit later, first it was making it print a string instead of moving, and now im adding movement as a task
This was the correct solution to the task x)
right, not sure how I missed that đ¤Ł
Hm, I need to see an example or work with it. This evening I will start based on pattyms tutorial maybe this will enlight me :/
What do you mean by example? example of what exactly?
I'm following a youtube tutorial and I have a problem with this for each loop only outputting the first state in the make array node. The reason for the make array node is to make it so that tiles on my grid will be displayed with color in that order. Right now it only shows the first color
In the inventories you are used to. You have an array of structs holding runtime data. And then you have a datatable which holds their non changing static data.
This translates directly to having an array of UObjects holding runtime data and still having a datatable holding the non changing static data.
branch most likely never being true?
States is empty?
Set your States from that make array, then loop
Ah wait, you are returning
the function would end short in the very first return, which stops the function
@dark drum @maiden wadi mentioned that i mixing static data and runtime data. And I put static data still in Datatables. Actually I dont know how this will work. Actually I also have no clue what "You instantiate uobject to hold runtime data" exactly mean. Hope I will get it after you video 𤣠.
what is this even supposed to be doing? đ
I don't use a datatables, I'm to indecisive to commit to static data for items haha.
So you would advice to any kind of hiding in UIs? Just add whichever UI BP you need to the viewport and remove all those that you aren't using, not showing/hiding when needed, even within the same level?
You should, at the very least for stuff like descriptions and such. It avoids savegame bugs. You release 1.0. Designers decide to change a name or a typo needs fixed, or localization breaks the FText key etc etc etc. If you have this as static data, it just gets fixed. If you save this with the item, it'll load broken.
just use something like this @sinful topaz
In my approach, all the data is mutable for each item. You could if you wanted use a data asset on the uboject for storing your immutable (not changing) data for your item.
That said. I don't use Datatables either. Every item has a UDataAsset that defines it. Each UObject item in the game just has a pointer to that data asset.
and that Data Asset just provide default values I suppose?
when it comes to saving, do you just store them in a struct?
Depends on where you save it I guess
Hiding small things is fine here and there. But if you have many things that change based on the level and are not seen, I would just remove them instead of hiding. Or make different sets of UI.
Yea definitely. I normally use getters in the uobject for most data anyway so having it pull static data from a data asset is a pretty quick change later down the line.
I just save the UObject. I use the Serialize method so it saves and reloads everything in the object automatically. No extra structs needed.
isnt this causing way larger files?
like lets say you would save that on a DB later on
Why? It's the same data.
oh not sure how serialize data works, is it saving all variables and class?
There's a SaveGame flag that lets it only grab stuff marked SaveGame.
It should just be the variable with the 'Save Game' flag i believe. Serializing a uobject isn't exposed to BP though so you'd need to use C++ to do it.
It would be the same as creating a separate struct and putting the data in said struct and reloading from it. This is just much less tedious and manual. Cause I just mark the right properties.
Right, I remember making json files for a similar approach but I guess this is a more built in feature
Right, so then I guess its the same approach almost
Thought it was doing some sort of memory saving for the whole object etc.
I'm still not sure why Epic won't expose that for BP stuff. Serialize and letting people set Actor's spawned names.
I guess same reason as always. "Every studio has a programmer".
I use a structure for the data inside every item and then handle the serializing myself for the unique variables in each item type. It's not too complicated but yea it is a little tedious lol.
Yea, even just being able to get a string of the variable marked with the 'save game' flag would be useful.
I made an inventory system once where the items were save game objects. Made saving a breeze haha. I wouldn't recommend it though as you end up with a ton of save files.
I need to learn how to do this đ
Yea, i'm just waiting for @maiden wadi to drop his first tutorial. đ
Is someone able to help me with this?
Instead of setting the widgets visibility when all the texted has been added, have it set when the player interacts.
@dark drumWhy do I need this Validated Get for the Item Type. It messes things up even with Updating Item Mesh on begin play