#blueprint
1 messages · Page 322 of 1
It becomes a pain to move some of this to C++ later as you usually have a lot of references across your game to a lot of stuff. E.g. a struct being used in several places. If that struct was created in the Content Browser instead of C++, you can't use it in C++. If you later want to recreate this Struct you'd need to replace it in the Blueprints.
Same goes for Enums and fwiw Blueprint Classes themselves
If you are just toying around, this doesn't matter too much.
But if you are planning on shipping that project and you later want to move stuff to C++, you might be better off starting with that initially.
Yeah and?
Function Library functions remain static and don't store anything. The thing you are passing by ref is storing the data.
And if your object/actor/widget/component/etc. classes, Enums, Structs, etc. are all in Blueprints, what exactly are you passing to that C++ function?
The C++ function can't declare any of those types.
It's a domino effect if you start requiring some of your stuff in C++ suddenly.
makes sense, i would do it just for performance tbh
That's one of the main arguments, yes.
The other one is that, given Blueprints are a subset of C++, there are a lot of functions, classes and properties in C++ available that Blueprints don't have access to.
That is especially painful when doing multiplayer stuff.
I think when I learned enough of how a specific system works, like Enums, Structs, Interfaces, EventDispatchers, and so on... then I would be ready to try at C++ a bit, right now its just too much, and I need to repeat some stuff which confuses me, in another context, until my chicken brain gets it 😄
Thanks 👍
Yeah, I would suggest sticking to Blueprints if you are learning, as long as you are fine to redo your stuff later to learn C++.
Or stick with BP forever and miss out on the wonderful world of C++ :D
ive heard of games from full bp project so it could happen
Yeah, it depends on the game.
i was working on large data so i had to make a BFL for a few functions to gain a boost
Big and complex games, games that steer away from the standard UE formula, or Multiplayer games often require C++ and hit the limits of Blueprints quicker.
There is also an argument for C++ when working in a team.
As Blueprint assets can't be merged.
the more Im confident with BP the more likely I start C++, simple as that xD
Right now still struggling with Functions, Interfaces, EventDispatchers and getting a general blueprint communication "visual mindmap when 3 BP's are involved in the whole shebang. Im still often looking where a part of a function was in which blueprint. No C++ for me
Yeah I think that’s the right call - as long as you’re not intending to start a big project right now
Yeah all good. Just trying to ensure you understand the bigger picture.
I would caution against expecting a clean conversion to C++ months/years into a previously BP-only project. (Although defining enums and structs in C++ from the start does help with that)
Yeah I said that already, I believe.
(i realize some variation of what I just said has already been said)
There is progress every day, so Im okay with this. My project has few goals, and Im okay if it gets stuck, I cant expect my first real project to be a hit on steam lmao
that would be nice
but the second time around it's usually better when your learning
because your thinking that much more ahead
And I will get stuck, thats for sure.
Yeah I do get it, the more I sit down on the same project, with the same goals, the project doesnt get easier, it gets much harder because the realization kicks in on how much actual work there is to do a simple thing sometimes. It all feels hard in the head, but in reality once I start doing it, there is much more to it. I think this is why we tend to overscope too.
yeah I already have a few interesting ideas lined up to try after this one!
it doesn't get easier in the short term, but it does get way easier in the long term. Having to refactor systems that you didn't plan appropriately is something that often can take even longer than your initial system setup so it's a benefit that you know what you're planning for because the alternative is having to rewrite it all later and trying to fit it on top of a system that already exists
I can imagine. I think to avoid such pain, project iteration is key. I guess doing "little mechanics" instead of trying full games is better sometimes. No goal but a clear "something fun to do"
Its not my first attempts, but definitely a clear idea where for some reason was able to start after years of procrastinating.
But I can see all the mess slowly creeping in already
You can get a lot of mileage out of trying a thing in isolation, then trying it together with other things.
Like making an inventory system on its own, a weapon system on its own, then building a project that contains both
Sounds like your expectations are exactly in the right place
Would you recommend reusing one of the systems, or just make from scratch? My head tells me always from scratch because it always gets better
It would be a good exercise to try to reuse it, at least once. It’s ok to walk away from a reuse attempt, but regardless of whether it works when you’re done you can learn something
Maybe it’s just one thing you wish you set up differently
I guess the more painful something was to make, the more it should be tried again, unless it cant get better haha.
But yeah, its fun when it works, and fun to solve the problems up to a certain pain threshold
Generally the things that are painful to do are because you're missing something fundamental about it that isn't clicking yet. Redoing them in different ways can give you great perspective and often lead you to avenues you didn't think were necessary or even options that can make said hard thing easier, and even lead to new tasks being easier.
I am trying to implement an Ai, using pawnsensing which when sees a the playing character having a specific tag ("Stealing") it starts chasing it using AIMoveTo and then it only stops chasing it, when it moves out of its sight. This seemingly simple to implement code has me stuck for a couple of days...
Heres the entire logic:
On See Pawn: Sequence 0: if seen Actor has tag "stealing" -> set IsChasing = true and store SeenActor
Sequence 1: if (IsChasing) -> AIMoveTo the character, then set its On Fail to set JustStartedPatrolling = true
Sequence 2: If SeenActor is not the playerpawn0 (in single player game it has to be) then set IsChasing to false
Sequence 3: if(JustStartedPatrolling) -> Retriggerable Delay of 1 sec, and then start Patrolling. and then set JustStartedPatrolling to false.
wheres the mistake? What happens is that it starts chasing, but never stops. It should stop when it loses sight.
Hey yall, I swear I have tried to google this so much, but I cant seem to find the Async Load Asset Node off of an Actor Soft Class Reference. I can only find the blocking version. Is there some kind of method level declaration i need to toggle to enable async nodes?
Are you trying to do this within a function?
yea a function in a player controller
so its showing up intthe contextual menu in the event graph, but not in the function
nvm i think i see my issue, thanks for pointing this out
Can someone explain to me why is it that whenever I move the mesh that is connected to my players camera in the blueprint viewport it doesn't gets updated in game play, if I move the mesh up or down it doesn't change.
No problem! Async actions like this (and delay) can’t be used in functions
tyty
I am trying to convert my old building placement system over to use soft references, this part just wasnt 1-1
Oh, nice! Hopefully it goes smoothly now
thanks! here's hoping
lets gooooo
these used to be selectable and they arent now, but basic building placement is now async-ified
Hey my dudes/dudettes... So I'm trying to make a very simple dismemberment system that is dynamic and doesn't require me to split a skeletal mesh into static mesh parts to be spawned during dismemberment. The way I'm doing this is by calling "Hide Bone By Name" on the selected appendage (which also hides that bone's children) and then spawning a copy of the skeletal mesh, calling "Hide Bone By Name" in a foreach loop of all the mesh's bones, and then calling "UnHide Bone By Name" on the chain of bones, which I am finding by creating a local array of names from the bones found with "Bone Is Child Of" for the bone that was hidden to start with. The UnHide portion is not working however, probably because I hid the root and bones that are parents of the appendage bones. Is there any way to hide parents but unhide children? Like, all the spine, pelvis and clavicle bones need to remain hidden but I need to be able to unhide upperarm_l and below, etc. Thanks ahead of time.
Turns out I was overcomplicating it. Here's the simple function in my Dismemberment actor component that does the trick:
Soft actor references can only be meaningfully async loaded when async loading a map or using level streaming.
Soft actor references are only really for pre placed actors in a map. (As far as I'm aware)
Soft object type references are more for things like sounds, textures, meshes etc...
I've never come across the 'break constraint' node. I assume it pretty much detaches the bone?
Basically. From what I can tell, the bone is still a part of the skeletal mesh, but it is no longer constrained by any movement from its parent.
What happens to the mesh portion? Does it cap the ends or does it stretch the faces?
Well, that seems to varry based on the bone for me. When I choose a thigh for instance, the whole leg comes off with no stretching. When choose neck or head, the neck stretches. I'm assuming this has something to do with how the bones are skinned to the mesh
This testing is being done on the UE4 Mannequin btw. So I'm not sure how that's skinned
Amusingly, I found another use for soft actor refs. I use them in threading code. 😄 I map stuff to them and compare on the other thread with their name, and then I still have an easy getter to them on the gamethread through the softref. So I don't have to worry about the UObject lifetime.
Interesting. Not a bad use if multithreading, i never really thought about using them for this.
What does the "transform space" enum do in this case? The official docs are utterly useless here 😒
It'll be the transform that the tranforrm is relative to.
lol
does this feature work properly? i'm getting wonky results and i'm trying to figure out if i'm expecting too much or have busted maths
Define wonky.
oh just I've got some idea of a linear algebra transform I want to make and I'm seeing results that are... not that
Also you're retrieving the transform of a socket using a bone name. They aren't the same thing.
presumably due to mismatch of coordinates between different bones and assets and whatnot
😦
in short:
I've got a character skelly mesh with this hierarchy:
Right.
what i'm trying to achieve is to procedurally animate the "Bn_Hand_R" bone such that it, well swings a weapon
i've managed this just fine for a "slashing" kind of attack but I'm struggling with a "stab" attack (for a reason I'll explain in a sec)
the way i'm doing this right now is I'm animating the Bn_IKTarget_R bone using FK at runtime and have the anim rig set up so that BN_Hand_R (or its socket, cant recall) try to reach the "target" bone using IK
(for the record this nonsense actually works in principle)
anyway as part of my stab attacks I'm trying to get the position of the head relative to the bn_torso bone
so I can set the target bone (child of torso) to the head position
(eventually im going to draw a line from it to determine stab positions, just how I want to approach the actual animation)
issue i'm having is that this is utterly confounding me
you can see here that the target bone is... not going where I would think it would go (the target goes from the torso base to the right hand end)
to get this transform - torso to head - i've written this node:
I'm just trying to figure out what i've borked here
particularly annoying is that.. i've kind of done this before, and I just don't remember how, and can't find it in blueprints (i really gotta learn C++ at this point, im finding BPs really hard to maintain)
unreal doesn't have bone ends/bone length
you probably want the target relative to the parent bone, and then aim your bone at the target?!
yup
target relative to parent bone
this is the part that isnt working for me
i'm trying to get the head location relative to the target's parent bone
but there's like a chain of bones involved (neck bone)
trying to figure out the least dumb and annoying way to do this
also, what really helps when calculating things like that are the MakeAbsolute and MakeRelative nodes
which bundle up the whole space transform for you
fair enough
it's just compose after all
so is the make relative (with an inversed value), so i thought both exist
anyway im like severely sick atm so will have to call it for now, thanks for the help all, I appreciate it. I'll just have to check my old blueprints to figure out how I solved this in the past
one last this
thing
is there a way to see blueprint definitions
cause "goto definition" doesnt do anything for mme when i click on default nodes
this combined with the frankly embarrassing docco is being a real PITA
i think you need to setup an source accessor plugin in your editor/project settings
so that it can open your IDE, and maybe even needs a source engine build 🤔
I'm pretty sure RTS Actor gives the transform in actor space (the actor the owns the scene component). If you wanted world space, you should just need to transpose with the actors world transform.
the node has RTS World, too
that's what I figured, was just unsure about the docs - thanks for clarifying 🙂
v0v
you'e probably right though
i'll look into this later
just wanted to sanity check that its possible
figured it was, but you know... learning UE has been, to put it frankly, miserable
again, i really appreciate your help 🙂 thank you
i think all that Transform stuff just requires practice
I attempted this for a project... Yea not fun and even then it only sort of worked. You'd have to get the bone chain and transpose each bone by it's parent. All the stuff epic has that would make this super easy are editor only stuff. :/
The reason why is because you can have the same skeleton but different skeletal meshes that use it that have different offsets and stuff.
at some point it gets easier to grasp (at least that was my experience)
you dont? You take the bone transform in world space and the parent bone transform in worldspace and subtract them and take the vector length
not my first rodeo so i'm holding on to this
but blueprints are becoming... less and less fun the more I use them
i would do the calculation in world or actor space and ignore bone scale
just take the locations => delta => vector length
and i got sidetracked from my refactor... 😄
i think i'll experiment with that tbh
Oh sorry, you're right, I didn't realise the goal is to get the bone length. 🤦♂️
oh i am not struggling with that
i'm struggling with getting particular bone positions relative to other bones
getting bone lengths was AIDS too but y'know (your idea with world space is way better ngl)
also you are not getting the reference transform there
there's afaik no node for that
reference transform? sorry, i don't understand what you mean, which ref transform?
unless you mean something else by reference
reference transform is usually also what the reference pose has
maybe i just misunderstood your BP
oh i meant the transform of the input "reference bone" i.e. the bone to get the target transform's relative to
i guess i've accidentally used a term i shouldnt have
apologies if this is unclear i am legitimately feverish atm
I think I'm using that but will investigate
sorry i think I wrote this like an actual year ago part time
the animation system itself I mean
Yea the control rig is nice, confusing at first but nice.
which btw. has bone chain length node 😛
problem: when I use my grappling hook the rope always straightens itself somewhere straight on the right side really far out of the map
what I want is obviously to have it attach straight to the thing its supposed to attach, which is where the crosshair is pointing
3rd person & 1st person modes are both available
This is a function I have on the other blueprint
my character blueprint contains this "Grapple" function
& this is the function
the camera mode isn't the problem, im able to navigate towards my target, the only problem is the preview of the rope
the only problem is creating the illusion that this movement is actually real and not just floating around
I've had such a hard time trying to simulate this effect more realistic, but I couldnt with just one cable, so i've added another one cable component into my character bp
so one cable is owned by my character (which should be there enabled & visible only when I need to explain the player that his cable is attached to a target & then invisible again when not used), and one is owned by this blueprint called " BP_shooting_web_item_inv" <--- this particular one just swings around like a realistic physics body cable, its function is to just wave around with simulated physics of a real rope
so the 2nd one is always attached to player's hand when he needs it & my idea was to always have one or the other become visible, but NOT both.
I know this is not the best way of doing things, it's just an idea that I came up with after 2 days of trying to figure how this thing works & couldn't
How do I remove the cursor from the widgets if I'm using the gamepad? this dont work
Thank you for checking me on this! I will say that I am definitely still early in learning and mostly am just basing myself off some random tutorial so I have no expectation that I am right.
As I have it now, my player controller has two soft references one to a placeable actor and one to a type of placeable actor. I have it now such that on toggling build mode, it async loads the asset, then calls the function which tries to spawn that actor off screen which on explaining I now realize it loads it whether or not I am enabling or disabling build mode so I will probably adjust that.
Conceptually though, not always having the building actor loaded into my player controller makes some sense to me, but I might not have the full picture yet.
I can't say that this will be the biggest performance increase I could do and in all actuality this system is still in prototyping as I haven't worked out building selection yet. I was planning on having maybe some kind of event which was like building selected which may also be a good spot to async load the building, I am not sure. At the end of the day I am just kind of blindly applying some best practice I saw which was to try and deal with soft references as much as possible to make things modular and (in some far flung future) moddable.
I would also mention that I have not built anything to save these new buildings into the game state ( I think?) so I still have a long way to go, the only but I'm really claiming to have tried to make async is the initial placement
Using soft references is generally a good thing particularly for larger assets that might not always be used at a given time. For actors you would spawn dynamically at runtime, you would normally use a soft class reference instead of the soft object. You can then use the async loaded class to spawn the desired actor.
For clarity, for a soft actor reference to be functional, an actor must first exist in a level/map. When adding/spawning them dynamically at runtime, they'll never be saved with the map so on restart or level switch the soft ref would no longer function. Adding to this, if the actor was destroyed, the soft ref would show it as not being loaded and any attempts to load it wouldn't do anything. You would have to spawn in a new version.
In regards to a building system, the part that I would probably async load would be the static meshes. Of course this can depend on how you've chosen to approach the building system.
hi, im new to sonctruction script, i waswonderingig anyone can help me figure out the following:
i want to change the width of a spline mesh. i thought this would be dead simple but i see when i adjust the relative transfrom it changes completely everything about the shape.
anyone that is savvy in construction sript that can help me with this issue? i swear it should not be too complicated but here i am
As far as I can tell I am using a soft class reference. I do need to rework this section as it will do this every time i receive a toggle build mode event. I think it is ok for my build modes soft reference to no longer function on restart or level switch because it should only live so long as you are in build mode (and eventually only with a building selected) and switching maps should likely move me out of build mode anyways. I hope I am making some sense, am i missing what you are trying to impart?
this set placement mode is for the actor which follows the cursor projected onto the ground, as like a ghost of the building, I have another chunk which listens for a left click while in build mode to actually turn the ghost into a dynamically spawned actor which sits at the ghosts current transform
I think I see what you mean about the static meshes, as right now the thing that follows my cursor is effectively a fully functional building that I keep repositioning, rather than just the mesh for identifiying placement
Ty for your help btw
From memory I think I am using the soft object reference only inside one of those two ( I have to head into work now so I can't check)
Yea it looks likes you're using the soft class ref so you should be fine.
One thing I would mention is that it can be good to put all the build system logic into an actor component that then lives on you're player character or controller. (Controller would probably be best for an RTS type game)
I will definitely look into that thank you
I have a node which samples multiple points along a spline, and I'm trying to feed the output of that node into a Loop node, to loop over the points and apply a subgraph to each point.
This is not what happens. Instead, the loop receives a list of points.
The pipes are the main splines, the rainbow cubes are the points sampled on the splines, and the lesser splines are there for debugging.
The goal is to execute a subgraph for each point marked by a rainbow cube, which projects 4 splines outward in N, E, S, and W.
But what happens is the subgraph creates a spline with all points that should have been individually looped and individually fed into the subgraph.
Here I am putting in more input points to make the behavior more obvious. It's creating one spline out of all the points fed in to the loop, rather than executing the subgraph in a loop
What is the correct way to take the output of a list (here a list of points sampled from a pipe spline), and execute a subgraph for each?
Hi I am trying to make my own movement system as I believe that the character movement component is too cluttered with things I don't need so far I have got WASD to work. However, my gravity isn't great. I am also trying to make a line trace system that will detect if it is on the ground or not but I want it to have 4 line. 1 line from the front left and right and for the back left and right to help me see if the player is on the ground. My jump is also not great as once you jumped it snaps you instantly to the ground.
Gravity is about 9.81 m\s so you'd need to reduce the z velocity by 981 * Delta time every tick.
You can then add a modifier value if you want more or less gravity. (Gravity scale)
i want this change to be smooth but i cant find the node where i can connect the timeline to it, any1 know a node that has seperate connecetions for xyz
nvm i think its "vector set"
How may I add an object reference to the float I created on the right side so that it connects like what is shown on the left?
Trying to make a rotation function with my own float. Tried to reverse engineer the first one (that I did not write myself) but cannot find out how to add the connection node.
drag out from the spring arm variable, and then search for target arm length, it should be there
then when you click on that, it should have them connected
i am trying to add a variable that modifies the rotation, i don't think the length var is of interest to me
right click, break
well from the images you show and the question it seems like you wanted to duplicate whats on the left, but if you want to rotate it i would just take the rotation, add/subtract to it, then set the rotation
you could use a variable for the amount of rotation to apply
but ya that target arm length is for something like zoom not rotation
yeah i am trying to demystify why one of the floats can read information from a target node and the other one can't in this case
i'm not sure what your asking ?
"one of the floats can read information from a target node and the other one can't in this case" <-- are you asking why your float doesn't have a target connection ?
yes why can it not interface with an input node, it appears to have the same characteristics as the float that I created myself
because your float is local to self
you don't use target
you could probably use self
and get a target
basically the target is self without it
but you can get self, pull from that and get your variable
and it will look like the one from the spring arm, it just has a taget because it's comming from another source
you can basically assume without it that target is self, but local variables don't explicitly say that
Thank you, that's very helpful. Only in this mess (other than being a complete idiot) because I spent like 2 hours trying to export the rotational variable already inherent to the spring arm before I tried to create my own var
i still don't see why your using target arm length for rotation thats incorrect
but maybe you just was wondering and that aside from the point ?
this is fundamentally helpful still
ya your local variables don't have a target
if you were in a differen bp, and got the ref to that bp, then drag out, then it would have target connected
so your trying to change the angle of the spring arm by a certain amount ?
hi everyone. where can i find the: set start and end scale node for a spline component?
i cannot find it and i have no idea how i can make objects thicker along a spline mesh
so where it says 425 would that change to 981 then multiple it by delta and plug it into Z?
trying to change the transform rotation of the Z axis for the spring arm on key press
all i am getting right now is some arbitrary camera tilt. it "looks" like it makes sense to me
Yes.
do you have use pawn control rotation on ?
you set a variable, but you never actually set the rotation, this does nothing
Hey everyone, I’m having trouble exporting my Blender armature (named “Rain”) into UE5.5 and preserving root motion correctly—any help would be awesome. Here’s the full situation:
I started with a Mixamo rig in Blender and edited/stitched together multiple Mixamo animations to create new clips. In Blender, I renamed the Mixamo hip bone (which is the true root in the Mixamo rig) to “Root” and made sure all other bones are children of it. However, when I export to FBX and import into Unreal, the Armature object “Rain” still appears above “Root” in the Skeleton Tree, so Unreal treats “Rain” as the top‐level bone. I’ve tried setting the Armature FBXNode Type to both “Null” and “Node” and toggling “Only Deform Bones” on/“Add Leaf Bones” off, but “Rain” remains as a fake root.
Because root motion wasn’t translating on my own rig, I retargeted my stitched-together animations from Rain to Unreal’s default mannequin. The retargeting itself works fine, but when I enable root motion and set the root to zero, the translation still doesn’t apply (whereas native Unreal rig animations behave correctly). It turns out the animation curves themselves reference “Rain” for translation, so simply renaming or retargeting hasn’t fixed it.
I also tried two additional approaches in Blender, but neither solved the issue:
Renaming the Mixamo hip bone directly to “Root” (so the original hip is now called “Root”), then exporting/importing/retargeting again.
Creating a brand-new bone named “Root,” parenting the original Mixamo hip to that new “Root,” and transferring all location X/Y/Z data from the hip to the new bone, then exporting/importing/retargeting once more.
In both cases, Unreal still shows “Rain” as the top-level bone, and root motion remains broken because the animation data still drives translation on the “Rain” node. Has anyone else run into this exact issue—or found a reliable way to strip out the “Rain” node so that “Root” is the actual top-level bone without breaking the animation curves? Or is there another workflow that preserves root motion correctly when using a Mixamo-derived Blender rig? Thanks
no it is turned off in the top down preset
i would get world rotation
and set world rotation
but what your doing might work
do you see the set world rotation that you put in there ?
notice the rotation is set to 0,0 0,0 0,0
yep. my logic i am working with is Get Rotation (x,y,z) -> Break rotator (Z) -> add/sub -> Set World Rotation (updates in node to + or - the amount as button is pressed) but do i have to insert data into the XYZ node do u think? and if so i can't find a suitable component
you can split the pins
thats how i got x,y,z
here we just get the world rotation, add to z (pass a negative number to reverse), and keep x and y as the same
classic simple rotation with a variable
so instead of break rotator, right click on the return value and click split, i said break last time i meant split pin
okay i will try to replicate. changed my blueprint around and broke my brain with these node splits
but that is very helpful
ya split the pins is a very useful thing, especially for something like this where you want to alter just one value
totally.
Okay but there seems to be a issue now. I made myself spawn in the air to test the gravity but the gravity only works when I am moving.
Show how you've set it up.
whats the deceleration on your floating pawn movement
it defaults to 8000
Basically the exact same what I said
so where it says 425 would that change to 981 then multiple it by delta and plug it into Z?
I do think the issue is the FloatingPawnMovement however, I don't want to use the character movement
The defult
try to set it to a really low number, see if that changes just as a test
lower then the amount your pushing down
you might as well turn friction down as well
since you'll be customizing this ?
Yes I am aiming to make my own movement for a anime game I working on.
I changed all the numbers lower and still no difference as the same issue occurs
You would only multiply the gravity bit by delta time.
I have a function to grab and move physics objects (think Deus Ex, Prey, etc) and I want to prevent the player grabbing them while they are standing on top, because it allows you to surf those objects into the sky. I had this solved in 5.4 by checking the player collision sphere relative to the object (negative normal to the grabbed object means you are standing on top, so it drops), but for some reason this does not want to work in my new 5.5 project. Does anyone here maybe have an idea why?
Open to entirely other solutions as well, because this approach prevents players grabbing anything below them, even if they are not standing directly on top of the object...
That end trace location is most likely the issue. World location * 10. 👀
I would assume you just want to set the end location 10 lower on the Z instead of multiplying it.
As an alternative approach though, you could just get the look at rotation from the player to the grabbed object and if the pitch is below a threshold it drops. Or even skip the look at rotation all together and just use the camera rotation if its more of a first person game.
But I still have the issue with the character not using gravity unless it is. I want the gravity to happen naturally.
Not sure on that one to be honest but as a guess you're setting the velocity to 0,0,0 somewhere else. Show how you handle the movement inputs from the player.
thank you so much buddy I made a lot of progress today because of your guidance.
will try to work on it more but I think I have the knowledge to move forward on my own.
try the add input vector node
Wish I knew what I was doing a year ago when I set this up, because nothing that I do with the trace properties seems to make a difference... think I'll just do it through the camera then, thanks ✌️
check the trace is hitting the object you are on top off
and possibly add a dot product to the normal with the up vector of the world
Could someone please explain why neither of these objects detect an overlap on them , Both Static Mesh have Collision primitives added to the actual mesh but neither of them trigger an overlap?
Yep it works to an extent. This is because it now snaps which is good (having tested jumping with it) but now when it does snap and I press WASD then it only goes in that direction I tried changing the decceleration to fix this isssue but it work
They are set to overlap with their object types (World Static and World Dynamic) both have Generate Overlap Events ticked, So im kinda out of idea's atm xD
so your saying your overlap event isn't firing ?
would have to see that code to try to figure out what your saying
i'm assuming your print stringing the name but no print string ?
The movement was working fine until the input vector. But then the gravity doesn't work
Correct theres no print string from either actor
Never mind turned out I just needed to make Z -2 or something and the snap would still work
this is odd even if i set the enemy to block all it doesnt even block Im sure i missed something small but cant think what atm
nvm im dumb i forgot i was setting to No Collision upon spawning of the Actor... doh!
Not quite understanding, the function "Rotate Camera Left" works just fine, passing a continuous positive value to my world rotation.
"Rotate Camera Right", which is completely identical, but with another mapped key, passing a continuous negative value is completely broken. Why could this be?
video for context, first showing Rotate Camera Left and then using the other key for Rotate Camera Right.
Breaks the other function if the add and subtract are switched as well, so something with the subtraction of the value seems to kill it entirely
it's setting itself to the negative of itself. that is unexpected. can i reverse the addition value instead? 
try to flip the -
possible solution
"The order affects the sign"
addition doesn't matter how you order it
"The key difference is that addition is both commutative (order doesn't matter) and associative (grouping doesn't matter), while subtraction is neither."
you can make one function, and just make the value a negative and it will go the opposite way, because + a negative, is the same as minus the absolute of the negative
what the heck
ok that worked perfectly
i would not have figured out that the order of those unnamed connections had any meaning
because maths
thanks a million once again, have an amazing day 
interestingly if one value is negative, the addition still applies and order doesn't matter
Ok so... I know how nuts this sounds, but bear with me...
I'm making a card game with the option to create deep copies of cards. I created a lot of boilerplate code to deal with the copying, but it came with some... 'liberal' use of cast nodes, primarily to cast from an 'AbstractCard' class to one of many other derivatives. The thing is... this only amounts to like 5 different types of cards (e.g. Creature Card, Spell Card, etc.) with unique ways to handle their copying. I know that Cast nodes are atrocious for performance because of hard references, but I'm curious if the effect is that bad if it's always referencing the exact same 5 or so classes whenever it's called?
The tree might look as follows:
AbstractCard -> Creature -> LOTS of creatures
-> Spell
-> +3 types
^ Cast to these ^
So my question is if a lot of casts are done but only to 5 classes, is it that bad
These are only objects if that matters
it's only bad if its hurting performance
Ok sure, but I was hoping to avoid getting to that point and was just asking for some guidance
theres nothing inherently horrible about casting, it matters what your casting too and how long it is in memory, for instance if it's already in memory the cast is basically free
Ok here's a more detailed example:
Abstract Card
||
\/
Creature Card
|| ||
\/ \/
Cr_A Cr_B
Suppose an object of Cr_A casts an object - that was original Cr_B, but is only referenced as Abstract Card - to Creature Card. Does it permanently load Cr_B, or only Creature Card?
If it's the former, I have a problem
Casting in BP causes linkers. Linkers cause the thing linked to to need to be loaded for the thing doing the linking to function.
This is only an issue if you end up in cases where the things being linked to are not always in use, and you're having memory issues cause the things being linked too are huge classes with tons of assets linked to them.
Casting itself has no real runtime cost. It's all memory management.
Yes, but I heard these persist indefinitely until the game stops?
https://gyazo.com/cb39ddcb9794d15c470d528e2a0bf34a any way to make the gun rotate with the aim offset pitch? I was using a 1d offset but the arms dont seem to follow. I have layered blender per bone set at spine 01 hm
If thing A casts to thing B, then thing B will be loaded as long as thing A is loaded. If thing A is loaded through the entire game, then thing B will be loaded through the entire game, because thing A clearly requires thing B to function.
Suppose A is secretly C which is a subclass of B - would casting to B also load C, or just B?
If A is C which is a Subclass of B, then A and B are already loaded when you have C regardless of casting since they inherit.
Effectively I'm in a situation where I might need to copy hundreds of card objects. But the casts they all do are only to their base classes, so I'm curious if that's a performance nightmare in the making or if it's fine.
You should take a look at your sizemaps for a start. They'll help you understand if there's even an issue to consider.
If your core classes have small sizemaps, cast to them all you like, it won't cause issues.
It seems that the sizemap displays the size of all its references as well, is there a way to determine just the raw data size?
Not sure what you mean by raw data size?
In the sizemap, it's displaying not just the class but also things like references to widgets that don't exist yet in the context - bloating the memory size
They do exist though. You're linked to them.
Either through some class or pointer property, or casting.
Just as an example, I have a widget that just relays the card information. This is not referenced in the card itself anywhere.
Yet is part of the sizemap for some reason
It is somewhere or it wouldn't be in the sizemap. Is the widget directly under the class you're viewing or is it linked under something else?
Can you show the sizemap?
Wait, a question - I do have a class reference inside of the object, to make sure that a manager can get the correct widget for the card. Does that cause the entire widget to be loaded?
That counts as a linker. Class or Pointer references that are not Soft and of a parent type count as linkers. This is why casting does as well because the output of a cast node is a pointer of the type.
But if I were to spawn two of the same object, it would share those references?
I'm trying to just get a number that says 'Spawning one of this object will make the memory increase by N'
Instances don't count for this. Linkers are for CDOs. CDO being Class Default Object. CDOs are templates to which you create instances out of. The sizemap is a web of all of the linked CDOs required for said class to function. If you create an instance from any of these it does expand memory as a new instance of something needs it's own data, but it has nothing to do with the sizemap.
Oh.
Is there any place I can look for a sizeof()?
Since all my cards are interlinked with a lot of other stuff, the sizemap just makes me panic
That I don't know if there is something to look at easily without your own function for it in C++. What class are your cards made from?
Just UObject, albeit a blueprint version
Anything that visualizes it becomes an actor, but everything else is the bare minimum class
Is UObject alone quite big?
Depends on who you ask. Not really though. You're looking at dozens of thousands even on a bad platform like Switch before you need to be worried. PC supports millions.
Like uhh.. Sec
I'm gonna ballpark around 30 UObject-variant objects go on each card, so I feel like I'm safe then. Thank you!
An empty blueprint UObject class seems to be about 48 bytes. A single integer added moves it to 56. Another one doesn't add anything, I assume this is from byte alignment because it allocated enough to hold two 32bit integers with the first one. A third integer pushes it to 64 bytes. two more takes it to 72.
Either way. These are bytes. So something like 14k of these with 5 integers can fit in a megabyte I think.
There's very little you can do as a programmer, that your artist who needs an 8k texture for a monster's toenails will not outdo you on.
Yup, just covering my tracks. Thanks for checking!
any idea how to get my players velocity so it wont consume stamina when not moving
Not moving, or not running?
If the player isnt moving or running I dont want it to consume stamina
If you want it to be when running, I think it becomes simple - just check 'IsRunning' as well as the input from the character controller, to see if the player is doing an input.
What's the problem currently?
so when the player isnt moving and i hold shift it still drains the stamina
Yeah, just check the input from the character controller then. It's a vector of X and Y (I think?), so if it's greater than 0 then your player is moving.
No worries! Is this just a third person/first person controller?
Third person, I renamed my BP_ThirdpersonChar to BP_Player
Ok, I believe if you look inside of the character controller you'll see an event along the lines of Movement
yes I see the character controller
Just find out where it's getting player input, and save that to a public variable. Then you can access it in the player as needed.
Can I see what you did?
this is my entire code...
Okay so I fixed the stamina issue when im not moving now, if im holding sprint when not moving then start to move it doesnt drain stamina
Thats because the events are based off the key presses you are performing id get the character movement component and then compare your current velocity so that if you are moving and you are sprinting consume stamina of your velocity is zero dont consume stamina.
Okay so I swapped it to ongoing only...
From yesterdays work I managed to get this which is good for a starting point as I tweak the values more to what I want and to build on the system. I think this is a good starting point for my custom anime movement
How can I know which gamepad I have connected so I can change the widgets to fit the gamepad that’s connected? Xbox, PlayStation, etc.
Base it off the input
Check out CommonUI, they have action widgets which update based on the recent inputs detected.
This article goes over it but if you want true gamepad type detection you'll need to use C++.
In this post, I will guide you through a solution to detect your console controllers (using PS5 as an example) in your Unreal Engine project. We'll achieve this with the help of Unreal Engine's GameInput plugin and its integration with Common Input. I'll clarify how mapping and detection work, even beyond the GameInput plugin.
There's only a handful of unique input keys on the different gamepads so isn't that helpful when trying to detect the type of gamepad.
I use any key pressed then get the type of input used, kbm, xsx etc then swap the on screen ui for the correct input based off the input of the "any key press"
Yes, thats fine for knowing if it's M/K or a Gamepad but it wouldn't distinguish between a PS4 controller or an XBox controller.
I am using custom stuff for that to identify them can send my set up over if you'd like to see its pretty solid.
I have input data sets for each input type kbm xsx ps4 ps5 switch and xbox1
Have considered making it a little template to post on fab as it probably be helpful to people
custom stuff for what? detecting if it's a PS or XBox controller?
Detecting the type of controller used so it csn apply the correct buttons to the ui
You are acting like this is some impossibility xD ill upload the system and send it to ya so you can see gotta have json plugin and common ui for it to work as a heads up
I never said it was impossible. I said you need C++ for true support as there's no way to access the hardware ID in BP. 🤷
I even shared an article that goes through it.
Like i said custom stuff i should have been more clear that I am using c++ classes. Again happy to share the system with you this does something very similar with its system for input handling https://www.fab.com/listings/899d8fd6-ce40-4c4e-aa82-3fce041fe3ce
🎥 VideosFeature OverviewQuick Start GuideIntegration into Player Controller, Character, GameMode & Game Instance🕹️ DemoExample Demo - Try it out before you buy! 🛒📚 Documentation & GuidesLatest UE 5.3+ Common UI (MSP 2.2.0+) | Legacy Documentations💬 Support Discord | marketplace@moonville.dev🔗 Works with Easy Multi ...
Ill isolate the feature and throw it in a blank project for ya might help some people out!
The stuff for the most part is already setup and accessible in UE. 🤷
CommonUI and CommonInput, you just need to configure it. The below article from epic shares some of the hardware ID used by some of the common gamepads.
Oh didnt even know lol that might be less work then my current set up for others for sure will have to play around with it and see if it acheives the same affect I have now.
Also I have to ask is there a reason you've been so condescending or is it just the way you type cause its very off putting and makes you come off not so nicely lol
@dark drum
Most likely a combination of things, but from my perspective you weren't actually answering Monky's question and after gently pointing that out you then went on to try push a product from fab. (or give it away for free, not sure to be honest)
Plus I'm British.
Wasn't pushing it was just sharing an example of a system similar to how I did it based off their documentation which uses a similar set up! You are still being condescending and to say "well I am british" is saying that's a normal thing in your country and that is just plainly wrong I doubt most British people are going agree that being British makes you condescending as you are implying. Gonna drop it here as you aren't really worth engaging with when this is your attitude. I wish you all the success in the world but for sure work on that.
No worries. 👍
Hey anybody got an tutorial or a solution for motion matching and jumping? I migrated the animations form the sample game, made a PSS with default values, created Databases for Jump, Walk, Run, Crouch & Idle, I use a chooser set to "interrupt when DB change" and the Default trajectory now I got the problem that jumping isn't really working, sometimes I walk in air sometimes I lean forward while jumping and don't rly have a land animation either, any solutions? Or at least a valid tutotial because it seems so barely documented
Also I'm not sure if this is the right channel after all, was looking for an animation channel and couldn't find it , so this made the most sense here because of AnimBPs
How to make the mouse disappear when the controller is active in widgets? this dont work
/portfolio freelance
i've come up with a stamina and sprint system, is this good practice?
Heyguys. I want to launch an enemy of class character up in the air. But neither LaunchCharacter nor AddImpulse do anything on neither of the 3 axis. why could that be?
Is there any particular reason you're using timers here?
Select the character movement component. Go to the details panel, search for controller and screen shoot whats there.
I would personally evaluate every frame instead of 0.1
I actually fixed it by now 🙂
You will get choppy result
Cool, but cooler if you share the solution.
I had physics turned on in the character settings. Turning it off solved it.
Why is that? Does your stamina really need to update 60 times a second ?
<@&213101288538374145>
<@&213101288538374145>
.... jinxed 🙂
ye, bcs i want to regen and deplete the stamina at the rate i want and to start/stop regen/deplete
ColdSummer indicated why already - you end up with choppy values. Using tick allows it to transition smoothly. One could argue that you can just interpolate the value when displaying it to make it look to transition smoothly but then that uses tick itself too, and the value also wouldn't be accurate when it is being displayed.
i wanted to add a heavy breathing sound when the player reaches under 25 stamina, but this seems to not work out, any ideeas? i cant find anything online
using event tick?
Seems like a lot of overhead for something this minor, maybe not on only one actor so i guess as long as its only the player it doesnt matter
to my stam and sprint system up
if stamina < 25 play sound (breathing)
You're only calling "Check Energy" the first time when starting the input. Since it'll be false most of the time when you start sprinting, "Check Energy" never gets called again.
i did that as you can see, but it doesnt work only when i stop sprinting, and also if i stop and start stop and start sprinting the sound is replicating itself
when should i call it?
During your "Stamina Deplete" event, you should put in a call to "Check Energy" as well, but you'll need some additional logic to prevent the logic from continually spawning sounds. You can use Spawn Sound Attached which gives you a reference and check if it's playing or not to then call to play it again (or something like this).
Just add the check after ongoing .....
Sprint-ongoing-checkstamina-if<25 play sound at location,2d or attached whatever you need ....
Save the sound as variable "active sound" and before you play the sound you check if that variable is valid, if not play sound if valid do nothing
Hello, I'm trying to make a game with Water plugin from Epic to use a Ship and I'm figure out how to make the water body go up and down to fill rooms and navigate throw it. Any tip or someone can share experience about this please?
Hey there, working with UE 4.26.2 to mod a game. The way modding works is you have a mod folder outside of the game's folder where you make your blueprints. Is there somehow a valid way to transfer assets from one mod's folder into another without having a lot of reference errors? I mean, the migrate option is supposed to do exactly that but I still get a bunch of reference errors, DataTables not being editable, etc. Maybe it has something to do with the fact that the blueprints are also referencing assets from the main game's folder? Any suggestions?
it doesnt work
Because your not setting your sound variable it will always be invalid
and you should play the sound when its invalid not when its valid
could you not just make it a play sound 2d node if it's always on the character? then you wouldn't even need to input a location
it still doesnt work.. i cant understand this
it seems like the "ongoing" section isnt working for me, i put a print string when stam is under 25 and it doesnt show anything
What trigger are you using and why are you using ongoing
So your input isnt set up properly
On a down/no trigger OnGoing will not do what you think it does. Use Triggered if you want something to happen on tick while the input is actuated
I have a question, why is the default animation blueprint graph doing all these on tick? ⏰
couldn't these values be received here through some other more optimized way? 📩
Also I've added these to the tick, but it just looks so bad
Not really. The only non-tick way of doing it would be event driven, but some of these values do not have dispatchers that are called when the value changes that the anim blueprint could bind to in order to know that the value changes, therefore, you have to poll for the value.
could things like holds cake, holds plant etc be done in a more optimized way?
There's little point in doing so since you're going to be polling anyway and the performance gain in doing so would be minimal, but it would be to create event dispatchers, call them when the bools change, and bind to them in the animation blueprint to then have the values change as needed.
alright another question, whats the point of fixing redirectors?
It's so you don't have to have a fake asset that points to something that's been moved from that location.
what if things arent re-moved, but they've been simply moved
If something is removed then there woudln't be a redirector.
i havent fixed redirectors since ive started my project a year ago, the last time I tried to do it on my content folder it was loading for like an hour so I had to stop it
You could try fixing up redirectors in folders rather than the entire project. I believe you could even sort the content browser to show redirectors, and maybe do them in small batches?
I usually like to fix redirectors as soon as I've messed around with reorganizing for just such a reason.
This is the problem that I have and is why im asking about redirectors
the problem isn't with blueprints thats been replaced or moved or delated, its with some random blueprints, usually ingredient inv_item blueprints
this error goes away if I rename an image there
I had a similar problem like this when I tried to put a breakpoint on a specific part of code that wasn't executing
and errors like this would go away if I was sometimes keeping a blueprint open
etc.
but this specific issue idk why it is happening
possibly because you have too many redirectors
if there are name overlaps it could be mucking things up.
I dont think there are name overlaps. I've had chatgpt write me specific keywords for each image name so that I can look up & search data table elements via searching related keywords & speed up my search workflow too, i made my search kinda work like google where writing related words helps you find what you look for, so no name overlaps
Weird problem, I'm trying to do a line trace downwards from in front of the player, tracing simple on visibility channel, but it's just refusing to grab the right hit location.
Same setup with a horizontal trace in front of the player properly does the hit. IDK what could be the issue here.
Oops I was doing it in the wrong direction 
Was just about to say, your trace is green, so the whole distance is a hit.
Usually means you started tracing inside geometry.
I was investigating spiritual cults on stream today, I guess it brainrotted me a bit
Hello, quick question : I made a helicopter I replicated everything and it almost work. The only thing that dont work is the up and down of my Helicopter when ONLY the client drive it.
Here the UP and Down is SHift to go up dans Ctrl to go down
Here what happen:
If anyone know why I mean I got a idea why but dont know how to do it like making a Event for the up dans down
eventually i figured it out. I created 2 new functions , check stamina and checkstamina2, one is for the deplete stamina function to check when is under 25 stamina to play the sound, and the other for the regen stamina function to check when is above 25 to stop the sound.
or maybe I should do a fonction
Inputs only happen on the local machine. Replicated values will only be replicated if set by the server, the client doesn't replicate changes to replicated variables to the server. If you want the client to tell the server to set a replicated variable, you have to use an RPC to do so.
Ok i go google how to do that
Thank you very mmuch
Clean up your redirectors. See if it fixes the problem. If it doesn't then we can continue speculating on what the problem might be.
hey yall, how do i get the owning player controller from a widget blueprint?
this node doesnt seem to work
i'm pretty sure it does, as long as you provide an owner when spawning the widget
if you have a sngleplayer game you can just "get player controller"
i do not unfortunately
hmmm it still seems to print nothing
If you cant get it to work otherwise you can create a actor variable on your widget make it exposed on spawn now when you spawn that widget in the player you can just pass a reference to self into it
Does anyone know how I can make it so that when the player looks through the Red side, certain numbers show up or others disappear, and when the player goes to the Blue side other numbers again, either show up, or are removed?
I think you would have to make it like two "portals" into two different scenes which look identical for the most part
Alternatively you could do some tricky math with the line of sights to determine things ( might just be a matter of raycasts, maybe not super tricky )
many ways to skin a cat
I thought this would be an easy effect to make lol The "portal" makes sense, but deff a lot more work than I wanted to do. Im testing out custom depth stencils to see how that would look. If not, looks like your idea is the best way. Thank you for the reply
I think the raycasts would be simpler than portals, but yeah. Good luck : )
But the portals might be more flexible if you want to take the puzzle further... depends on if it's a one-trick pony or a core mechanic
Actually, rethinking that, yeah, i agree. raycasting would be easy to set up. Its only for this one event, so not core mechanic, thats why I was looking for a relatively quick way to do this. Raycasting will do this effectively
You could use a custom depth with a stencil buffer in a material to assign a single channel for the extra alphas for each number set. I dont have the articles or tutorials linked, but just look up stencil buffer and custom depth materials to get an idea
This was what I was starting with, but I dont want the player to be able to see it through other objects. If I cant get raytracing to feel "normal" ill continue with this route lol. Thank you
This is a compromised account (which is now deleted)
I've seen it in a few other discords
Thanks mods
You want to use overlapping custom depths (each lens woudl use a different depth, you would use the lense overlaps with the text to determine which set to show)
https://medium.com/unreal-engine-technical-blog/overlapping-custom-depth-stencils-a084aa763f10
would anyone be able to recommend any courses for programming? whether its paid or free idm. I'm trying to do things in my game revolving around game and player states but ive got no idea where to start, and because its specific for my game it makes it harder to work out what i need to find
look up beginners guide to blueprints on youtube, theres some decent stuff to get you started. I would start with that get an introduction into what a blueprint is and how blueprints work
Unreals beginner course is ok as a starting point
I would recommend Coqui Games, he has a series for begginers.It contains like 20 videos each explaning a thing like events, maths, functions, timers, event dispatchers etc. every foundamental thing in unreal
Hi, any Camera Gurus here? Has anyone been able to possess a pawn without having that quick cut of the camera you see in every tutorial? Instantly switching the camera pov to the new pawn can be jarring. I'm trying to achieve something smoother like this. I have some ideas to solutions but I'm curious if anyone has run into this issue and solved it before.
You can use "Set View Target With Blend", then posses the pawn after the blend done (Make sure to enable camera lag on your pawn spring arm)
Ooh actually I think you can just posses the pawn directly with the camera lag
Is there a way to add camera lag to the possession? My current solution I am thinking of is:
Pause game.
Set view target with blend to pawn.
Once it reaches do possess and hope no stutter or quick cut on possess. But this might cause camera rotation problems.
BP doesn't have any version of a Final operator does it?
Hi, is there any node that allows changing the Physics Constraint Angular Rotation Offset during runtime? I know there is one for limits, but I haven't found anything about the offset
I got it sorted out for FP blending with lower body thanks think I need a simpler FP blendspace rn its 8 directions and seems to shift I thinkhttps://gyazo.com/2b1463646f75bbee37ff3aa2ac86d74d
I used the two bone IK but my variables that I set in my player character(sandbox character) aren't affecting the anim blueprint, idk how to fix this bc the reference to the player character is valid, any clue?
Can anyone point me to a reliable tutorial for, say, creating a shop widget with BP for transactions, as well as adding and subtracting items from the inventory? I've made separate structs for types of items, as well as tables. But I'm not sure how to set the shop to function properly. So far, the widget looks like this:
Mate.... no one knows how youve set up your inventory, no tutorial will fit exactly your setup
Never mind. I found a tutorial and I'm starting things over to follow it.
anyone know how to detect the bone hit when doing a line trace? ive been at it for hours and cant figure it out, it always returns "none" when i make a line trace from the enemy directly to the player's head bone
Does your SkeletalMesh have a PhysicsAsset?
Iirc you'd need to assign collision to specific bones if you want that to work.
But I'm a bit rusty on that part.
And you'd need to make sure that the Capsule isn't the thing that blocks the trace initiall I guess, as that might return a single hit with that as the result instead of the SkeletalMesh.
Weird issue, I can not edit Rotation value, it changed every time I set value.
It just looks like rotation normalisation to me. Rotators attempt to normalize the rotation values between -180 and 180. This can cause what looks like values jumping.
The half size of the box. So if you wanted the box to be 100, then you'd use 50,50,50.
The center is where the box is placed and is most likely what you want to randomize.
can i get the half size from thee box extent node ?
or do i need to calculate it myself ?
or wait
just divide by 2...-.-
That would do it. Don't forget to use the boxes location as the center if you're using it as a visual representation of the area you want the point to be inside.
Just connect the world location to the 'center' on the random point node. This should replace the need to add it afterwards.
Also, it might be worth multiplying the box extent (after your division) by the world scale of the box as well.
ive learned the hard way to never scale boxes xD
just make it expose on spawn and u change it the same way as scale so way easier
Yeah, I was think so, but now how I can input value. 
Yea it can complicate things when you throw scale into the mix. 😅 If you're not using it, there shouldn't be any need to multiply it then.
what value are you trying to set it to?
Its hard to give specific advise without knowing more about your setup but generally the shop would work similar to your inventory system. The shop would have it's own inventory with items that can be sold, before transfer though, you would check if the player has the correct amount of currency.
Oh, it is gimbal lock issue, I am not set value greater than 90 and it is fine.
That's what it's called. Glad you figured it out. 🙂 Gimbal lock is a pain in the back side.
is there a way to use Control rig to create a Level Sequence but for spawned actors?
I don't want to have, for example, 20 different Level Sequences in which I have, for example, 10 actors who are completely unnecessary during the game, only for cutscenes
it's about optimization
e.g. I have 20 metahumans, why should they be on the map if the sequence is not active
"Quaternions are the primary solution to gimbal lock"
"Instead of directly modifying pitch, yaw, and roll values (which can cause gimbal lock), create quaternions for each rotation axis and multiply them together. This gives you the mathematical benefits of quaternions while avoiding the singularities that plague Euler angles."
i only know about it because i tried to build my own engine a few times, and needed to use matrix mathematics
Yea I need to look more into Quats myself. I had an issue where trying to lerp between two rotations caused it to go the opposite way it was supposed too when the yaw amount was bigger than 180. I could never figure it out with Quats.
My current method still uses Rotators but if I try to rotate on the pitch it stops at a specific angle. 😅
@lofty rapids do you have any BP examples of using Quats?
i don't, i used quats in c
No worries, thought it was worth an ask with us being on the subject. 😅
there's a slerp method which uses the shortest distance to lerp (at least in cpp)
Casting question
I have a line trace that comes from the player to see whats in front, does the cast of the hit object store all instances of that object in memory (i.e if the level had x1000 BPM_InteractionV2) or just the single one iteration that is hit and stored as a reference?
another workaround which may work is to use 2 transforms and blend/lerp them, as transforms use that method by default
Question regarding the Construction Script
I have an** ActorToIgnore** array that I can select in level (Instance Editable) and I have another array that acts like an actor cache of the original ActorsToIgnore called ActorsToIgnoreCache, which is automatically updated through the construction script.
Problem I'm having is that I have to have ActorsToIgnoreCache variable set to instance editable to actually be updated. Is that basically by design, that construction script cannot update non-instance editable variables?
i'm not sure i understand the question ? casting can be complicated, but i'm pretty sure the hit actor is already loaded if it's on screen ?
it will just load what you hit not all of them
it's a reference to a single thing, if i understand it correctly what your asking
Yea thank you that helps a lot
I was 50% sure that's how it worked xD
I am not too fussed on a hard reference to one item but was worried if the level grew it would be exponentially bad
i think like i mentioned since the thing is loaded on screen it's probably a free cast
but i'm still learning
yea I am pretty sure thats how it goes, from what I read there is still overhead but its significantly less if its a loaded asset already
A cast forces the the CDO (Class Default Object) to be loaded. This is used when creating an object of a given class of which includes anything it also references. Beyond that, the cast is just a check to see if an object is of a specific type and returns an updated reference type.
If you're concerned about what is or isn't loaded, you should look at soft references, class hierarchy and function only base classes. This is only actually a problem for larger games as for smaller games most things are used in the level from the get go. There are of course exceptions for things, such as bosses, VFX and audio but this can be mitigated using soft references and good class hierarchy.
Hopefully this helps. 🙂
yea that does help thanks, I have been toying with using intefaces but I honestly don't know how to make it work for my condition
Current System
Player LineTraces > Hits Object > Gets Ref
Inteface System
Player LineTraces > Hits Object w/ Implemented Inteface > ???
I struggle to see the link on how I would get valuable information sent or recieved, so clearly I am missing something important! 😄
an interface is basically a set of function signatures
yea I know what they are, used them in the past, but cant make it work in my head with this current setup specifically
you don't really have to check for the interface, i think it's good to do on a trace to find the specific one
sure but in the example, all I can extract is Does it have one? not if it does have one then do 'x'
I have no idea how to relate to the specific actor being looked at for example
An interface is for when you have different classes that don't share a common parent but need to have/implement the same set of functions.
So in the context of interactable, it could be used for triggering focus type events or triggering the interaction without needing to worry about casting to a specific class type.
after you cast, the return value is the reference to that thing
and you implement the functions of the interface on that bp
and then just call the functions
but this is to avoid casting
Don't use interfaces to 'avoid' casting. Use an interface because you need to use an interface.
well you could also use hit actor
without casting
but ya like mentioned it's not meant to avoid casting
oh ok so thats good then I am doing it the way its meant to be done! 😄
Intefaces are usually touted as an alternative to casting
think thats what was getting me confused
but you can just use the hit actor
in this case you don't need to cast i'm fairly sure of that
I cant, it wont give me the variables of the actor
interesting
I wouldnt be able to get the Object Information Struct for example
that information is exposed after the hit actor from the cast to the class
well right, but you would still be able to run the functions i think
of an interface
i'm like 95% sure of that
Yea there's a lot of misinformation surround casting and interfaces. People use interfaces as a lazy mans memory management. 🥲 Interfaces in my opinion should be the last opinion when nothing else is suitable (such as hierarchy or components)
You can get yourself into a right mess over using interfaces and actually end up loading everything you were trying to use them to not load. 😅
I believe you are right yea, but I already have the cast saved as a reference, so I can directly access what I need when I need it (basically its a linetrace that updates 0.05 timer to see whats infront for picking up ect)
lmao tell me about it, I have been digging through the same old stuff thinking I am missing something
it's a common confusion
If all your interactables are a child of the Interaction BP then you could just cast and call the relevant interact function. If not, then an interface might not be a bad option. Personally though, I lean more towards using a component instead.
if you are using the interface to interact, just hit actor, run function, and implement the interface in each one makes the code fairly simple
yea currently I have Storage / Container (2 types of storage basically) / Item all stemming from the BPM_Interaction, so it acts as a laying of how they talk to children of the same parent
The component approach is very nice, because suddenly you can have an actor which is normally not interactable suddenly be interactable
could you explain what you mean by a component approach instead? not sure I am following!
Instead of using an interface for communication you can make an actor component which you can look for instead
oh I see what you mean! like an actor as a container for world info that kind of thing?
I guess you could call a component an extension of an actor without a world position? I (personally) find it much better to compartmentalize large functionality within multiple components so you do not end up with one huge actor harboring all the logic
As in when you add a static mesh to an actor, that's a static mesh component. There's loads such as audio components particles etc...
You can make your component by extending from 'Actor Component' that can then be added to an actor. They're great for creating reusable logic.
Even when not reusing logic it can be effective to put things into components so you can switch out pieces of your code without having to touch other parts of it
I see what you mean!
Yea definately, and I do aim to try and keep things reusable or at least as much as possible! new projects are always a mess xD
also yea you are 100% right, I was being a dumb dumb I can BPI (Message) from the hit actor duhhh xD
thanks for your help @dark drum @lofty rapids @merry mirage figured out what my alternatives are for the given situation! ❤️ 😄
No probs, the hardest part is figuring out which method is best for you're project. 😅
yea tell me about it, god damn. not done UE for a about a year after a major project and knowledge falls through the cracks! 😄
it do be like that
Hi, new here ! I'm starting an asymmetrical VR simulation tool with a simple control panel on the computer and the interactive simulation in VR, I'm struggling finding resources on how to set up asymmetrical controls, has anyone have some experience with this ?
Animation blueprint programming question : In which of these state machines would my swimming system skeleton chereography go into?
I'm trying to set up some basic combat for a hack and slash type game using an animation pack, haven't set up hit registry yet just the animations, but I wanted the player to move with the animations so I toggled root motion on. Seems like the root motion very aggresively shoves other actors around, what's the best way to fix this? Should I modify collision while attacking? Ditch root motion and move the player using code (not sure how to do this with the animation timing)?
https://streamable.com/75cvzg
yeah im using a physics asset, i think the trace is hitting the capsule collider though. do people generally make a new object channel or trace channel for it? or another way?
Hi, Can anyone tell me how to write a name in the jersey of a player using material?
line trace/sweeps should give you a body index
open the physical asset of the manny/quinn/yours and see if all the bodies have collision setup
Just a question: is it better to use animations to simulate rotation on objects or moving etc than timelines?
In what context?
Not likely to be much difference between the two besides how you feel like they feel to control. You're still paying for scene component transform updates and whatnot.
Only real way to get a good performance boost on rotations is if you can WPO them in a shader. But you lose collisions and the like. But it's vastly faster for things like a pickup hovering up and down and rotating.
There is overhead for using a skeletal mesh when compared to just a static mesh.
Some, but depending on the case you'll pay less for the animations because they're done in C++ and sometimes threaded.
More of an implementation sort of thing though. Chests are an example. It's easier to animate a chest opening from 0-1 and be able to use that fluidly with movie tracks and such too, or even make multiple pop open animations and randomize them. Where as with a timeline you kind of have to code that stuff in yourself manually in a not so user friendly way. But performance between the two likely won't be anything to consider unless you're planning on opening 100,000 chests at once.
Yea. I'd imagine use case would be important.
IMO I can't come up with a good reason to use timeline animation over a normal animation in cases where they would actually be interchangable.
Hello am a novice currently having trouble my lock on feature is toggle only im trying to change it to be hold down the r1 shoulder button for lock on but its instead turning its self of an on rapidly as its being held instead
Edit: just noticed this didn't have an end to the question I wanted to ask how would I How would i fix the issue I could provide blueprint details and a video if need
ok.....
sorry I forgort to put the scond part of the question in How would I fix this
No one knows
This is like asking
My car makes weird sound how to fix?
And then leaving your car at home
Show you're input action setup you use to trigger the lock on.
And the setup surrounding the event node itself.
As a quick skim, i think you just need to enable 'Is One Shot' on the hold trigger. This should mean the triggered pin on the event node will only fire once instead of every tick while held.
Where is the toggle lock on function?
in the event graph
ah i see its a event
thanks that stopped the issue where it was firing over and over again but it still doesn't stop locking on when I let go of the button
Well what is happening ?
You hold shift and it fires every .1 seconds it calls your toggle lock on checks if your locked on and then enables and disables it every .1 seconds
Because it only fires once now
Hook your completed up to your toggle lock on as well and it should work
got ya also sorry if I'm irritable i haven't slept since yesterday I'll try it and get back to you soon
Is this where I ask for help for Unreal Engine?
Every channel on here is a UE help channel, almost.
Oh, alright sweet
In this Unreal Engine Blueprint Tutorial we continue or exploration of For Loops and Arrays to find the closest object in a scene. This is the second of several methods to achieve the goal and is part of our Blueprint Fundamentals series.
🌟 This tutorial strives to offers insights, advice, and techniques for creating with Unreal Engine and...
So I'm following along with this tutorial but testing my blueprint doesn't seem to have the same outcome it's supposed to (determining the closest object and drawing a debug sphere around said object). The first method seems to work fine, but the second one doesn't and gives me errors when I stop the playback. I'm gathering photos and a recording to show this right now.
so this is the first method that AskADev used in the video before the one above, which works just fine.
And here's my second method where all the distances are put into an array first, and then the minimum is found.
Then, here's my the event graph back in the Third Person BP
(the functions are also in the 3rd person BP)
So what I'm expecting is for 2 debug spheres to be drawn around the closest object and for it to update when there is a new closest object.
Instead this is what happens.
What am I doing wrong??
what are the errors ?
I'm expecting the second method to do the same thing as the first method, it's just another way to do it.
no errors when you stop the project ?
Now that you mention it, yes, but only if I set the duration on the second debug sphere to something less
If the Distances array is not a local function variable you need to clear it first
Ohh let me try that
Hi! I need some help with creating my 0G character. I am experiencing a few issues when it comes to camera jitter and gimbal lock. I am using the UE5.6 First Person Template (Variant Arena Shooter)
- The gimbal lock happens when I don't have a weapon (can't look up and down) or if I do have a weapon and I am rolled aroundanywhere from 45 - 135 degrees left or right.
- When I move or fire a weapon, I experience jarring camera shaking
not sure, where to post this. my UE 5.5.3 is crashing pretty frequently when I testplay, giving me this error:
"LoginId:591f6aa44bfb388adbb8b3aa14910d29
EpicAccountId:8696becb758646aab206c3485781b11b
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00000000000000a0
UnrealEditor_Engine
UnrealEditor_Renderer
UnrealEditor_RenderCore
UnrealEditor_Core
kernel32
ntdll"
It's really getting on my nerves. Any suggestions? I can also provide the log.
how much memory do you have?
i know that the solution to gimbal lock is quaternions, i have not used them in blueprints before
"Quaternions use a 4-dimensional mathematical object to represent 3D orientation. The additional component ensures that each possible orientation is uniquely represented, and avoids the gimbal lock problem."
i think so, but i have not tested it yet i have not had the problem
48 GB Ram. never really touching the limit.
And if they are, un-uptodate them by a few months. There's been some mentions that the latest drivers cause some fucky stuff with 5.5
I'm still on 572.83 NVidia. Was about to update when some people at work started having odd crashes in playtests we couldn't explain. And some people in other studios have mentioned the same, that there were some issues with the drivers at the time, this was ~2 weeks ago.
Maybe you are trying to access array element that does not exist?
I guess so. but I can check.
I had the same problem
how would I know?
You will get a different ensure for that. EXCEPTION_ACCESS_VIOLATION is a null pointer access.
uh sorry, but you could have an null variable
here's a log, if someone wants to take a loog. the engine crashes with about every other playtest. 😐
there were a lot of warnings in there earlier that I'm using nanite on meshes with materials that are not nanite suitable, but it didn't help disabling it.
if so then how to find it?
You did look at their post, right?
Like you see the callstack there, why are you telling them to go put an IsValid in engine code?
thats an editor crash i bet it pops up and everything goes away
i don't think it has to do with the code, but the editor itself ?
sorry, i didn't open entire log
You're 100% that this is the log from that crash? This log looks like it closed fine. It doesn't have any ensures or anything.
Not that.
UnrealEditor_Engine
UnrealEditor_Renderer
UnrealEditor_RenderCore
UnrealEditor_Core
kernel32
ntdll"```
thats a fatality
pretty sure? I Mean, I can produce another one.
at least I know, it only happens on the map I'm working on, not on my test map. so it's probably something I caused.
"LoginId:591f6aa44bfb388adbb8b3aa14910d29
EpicAccountId:8696becb758646aab206c3485781b11b
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION 0x00000acc96880000
UnrealEditor_Renderer
UnrealEditor_Renderer
UnrealEditor_Renderer
UnrealEditor_RenderCore
UnrealEditor_RenderCore
UnrealEditor_RenderCore
UnrealEditor_RenderCore
UnrealEditor_Core
UnrealEditor_Core
UnrealEditor_Core
UnrealEditor_Core
UnrealEditor_Core
UnrealEditor_Core
UnrealEditor_Core
kernel32
ntdll"
Off the wall question. Do you have any upscalers in the project? NVidia DLSS or AMD FSR for instance?
not that I know. I don't know what this is.
oh, btw, in rare cases I get this message: Fatal error:
Pure virtual function being called
0x00007ffdbd5859e4 VCRUNTIME140.dll!UnknownFunction []
0x00007ffd4b49e281 UnrealEditor-Renderer.dll!UnknownFunction []
0x00007ffd4b47da5c UnrealEditor-Renderer.dll!UnknownFunction []
0x00007ffd4b495ff2 UnrealEditor-Renderer.dll!UnknownFunction []
0x00007ffd88558fab UnrealEditor-RenderCore.dll!UnknownFunction []
0x00007ffd8853218c UnrealEditor-RenderCore.dll!UnknownFunction []
0x00007ffd884ee4a0 UnrealEditor-RenderCore.dll!UnknownFunction []
0x00007ffd8846c554 UnrealEditor-RenderCore.dll!UnknownFunction []
0x00007ffd6c43ee35 UnrealEditor-Core.dll!UnknownFunction []
0x00007ffd6c43eb6f UnrealEditor-Core.dll!UnknownFunction []
0x00007ffd6c4661ad UnrealEditor-Core.dll!UnknownFunction []
0x00007ffd6c42b0d6 UnrealEditor-Core.dll!UnknownFunction []
0x00007ffd6c637e23 UnrealEditor-Core.dll!UnknownFunction []
0x00007ffd6ca8c0bd UnrealEditor-Core.dll!UnknownFunction []
0x00007ffd6ca835df UnrealEditor-Core.dll!UnknownFunction []
0x00007ffdd60e7374 KERNEL32.DLL!UnknownFunction []
Crash in runnable thread Background Worker #3
I was just about to suggest that it might be an async thing crashing. 😄
Your log cuts off with no errors or even shutdown code. Have only ever seen that when another thread crashes.
So.. Yeah. Lower rendering settings, try older drivers, turn off some other rendering settings.
AI suggests that the editor might try to reference something, that is already destroyed or so.
Good afternoon fellow devs. I'm developing a very simple dismemberment system but I'm having a weird collision issue. When my melee weapon overlaps the enemy skeletal mesh, it registers a collision (both the weapon mesh and the enemy meshes are ticked to overlap in the same channel) but the hit result on the overlap always returns "none" for Hit Bone Name.
did you try the hit events instead of overlap ?
"Hit events, give information about the hit, including the bone name if a skeletal mesh was hit. "
I have not tried that. I don't really want a hit event because I don't actually want collision enabled on the weapons or the enemy meshes. Hmmm
I'm a dumbass. I know why it's not working. I'm looking at the skeletal mesh overlap event not the weapon mesh overlap so of course there's no bone
something else I get a lot is these messages. but I guess this wont cause crashes?
Ahh! Thank you so much!! This worked!! Though, would you tell me what the difference is by making it local?
I'm also not sure what clearing means
By clearing I meant emptying the array of any elements.
If the variable is local it's initialized to default value when you call the function (ie. you get an empy array)
you can clear the contents of the array, the way you had it it just kept adding to it every time it ran so it was getting really big
if you cleared it before you looped and added, then it would start over
Can any one help or point me in the direction of troubleshooting setting a var on an actor on the server via an input action.
Im casting to the actor in my player controller and using that reference to call an event on the actor.
Image
Im pretty sure I want to keep the actor owned by the server but ideally id like to set a reference to the player controller that clicked on it in it so it can be used for something else asking here as well as i have had responses here and not in the multiplayerr channel
@ashen night @lofty rapids I see, so when it's local, it sort of like resets each time?
it resets every time the variable is local to the function, so when the function runs the variable is created again and when it's done it's destroyed
you can find out more by looking up scope and Garbage Collection
the variable is scoped to that function
if it's not local and your using from the actual actor inside the function thats an outer scope that stays the same, so if you change it after the function happens it's still different and accessible
i believe it's called a "side effect"
I see, thank you for telling me! I'm very new still, so alot of what you said doesn't make sense to me, but I'll start here!
It's impossible to say without a decent crash log or at least a callstack with symbols to see what line in which function it crashed on to have an idea what it was. All we know is you hit a nullpointer access somewhere in rendering code, which can happen for a lot of reasons. Drivers, faulty hardware, out of memory, could even be engine code based on what your map is rendering out. But there's no way to know for sure without more data.
and even with more data these problems are notorious for being hard to figure out
Collision issues revisited: Here, I have a sprite (billboard) with a collision sphere on it. This is so I can catch raycasts on the sprite in my game. The items these are attached to spawn in a small cloud - sadly, they are bouncing into one another with these collision settings and their movement is getting all fouled up. I can't ifnd any other settings that will be receptive to my raycasts however. Am I missing something, such that I can make these items ignore collision with each other and only react to my raycast?
so I'm trying to make a magic system for a vr game where by putting your hand in certain positions it does magic but I can't think of how I would implement this. All the contents in the unreal VR Template are all squished together so I can't just put a hitbox in there (at least with what I've tried that didn't work)
Can anyone give me some feedback on this issue? https://forums.unrealengine.com/t/checkpoint-name-not-carrying-over-through-saves/2550660
Basically, I want to have a CurrentCheckpoint variable in my save/load game functions so that I can switch on the checkpoint to load/unload specific things. When I spawn in I get 2 ticks where the CurrentCheckpoint isn't set, which I've heard is because I'm loading the level in my UsePlayerSave function (attached photo) which is destroying all the data, and then its teleporting me and setting the checkpoint. How can I load the level first, AND THEN load all the data associated with the level?
Hey everyone. I followed this tutorial here and made a checkpoint system. I wanted to have it track the map so that it could load the correct map you were last on when continue is pressed. I then added a CurrentCheckpoint variable and made each checkpoint have a name so that when reloading the game from continue it would set the correct tasks, v...
The moment you open a level, you're loading into a new world so nothing after "open level" really executes.
If you want to do something once the level loads, like moving the player to a specific checkpoint, then you need to store that somewhere like your save game, or in the game instance and on begin play read the data that you want and perform the actions needed.
I would personally love to know how async loading could ever resolve this issue. But yeah there's a lot of misconceptions here on setting up the map post load.
Hey... is there anyone that can please help me create a quaternion IA_MouseLook system? Any help will be appreciated. Thanks!
Need more info on what you're trying to do.
So, Im trying to make a 0g player character with rolling, but I have gimbal lock in the stock mouselook input action. Earlier today i was told to make a quaternion system, but I don't know how to do that?
Well thats exactly what I am doing. The screenshot shows a function inside of my GameInstance. All of the saving and loading happens inside the GI. The problem is that while things like my vector and control rotation are being remembered and set, the CurrentCheckpoint isnt. If I didn't do the level loading in the GI, where else would I do it so that I could load different levels?
Would you like to go into VC to talk about this?
Not particularly.
It's not exactly what you're doing. You're opening a level, which causes everything to unload and any executions that are after "Open Level" won't execute - basically that whole function stops working the moment "Open Level" is called.
To do this appropriately, you'd still call "Open Level" at some point, but you have to use some other begin play, like on your game state or game mode, or even your level blueprint to then ask the game instance or save game for the data it needs to proceed with setting up whatever other details. These other begin plays happen after the level is loaded. You may even need to use the game mode's "Find player start location" function to read the data from the game instance so it can put the player in the appropriate spot etc.
Ok just a question. I will show you what my BP is right now: (this is how I tried to make 3d mouse looking)
Okay, that makes much more sense thank you. It was my understanding that Event Init in the GI happens before anything else. Theoretically, the order goes PressPlay->GameInstance->GameMode no?
Trying to simplify this down, I need to load the level, then request the CurrentCheckpoint, then set things based on that.
Init does happen before everything else, and if you are using that to execute this function, then it won't work as your player controller and pawn likely would not be spawned by the time the Init event is called.
There is an order to things, and that includes when you move into a new level, the game mode needs to load again, then it spawns a player controller again, and then a pawn for that player controller, etc.
If I wait to load the save data somewhere like the LevelBP, would it spawn me wherever the PlayerStart is, and then teleport to the last set location once I load the data?
this is the method im using in the GameInstance
It can, but it also depends on what happens first which can vary. Begin Play of the level blueprint may be too soon even. That's why I was starting to say you may need to override the "Find Player Start" in GameMode.
What would Find Player Start get me?
Would that not just, well, find the player start?
It allows you to use some logic to tell the game mode where to spawn the player.
By default it just picks a random player start location that is placed in the level.
You can override it to tell it to read your save game and use "Checkpoint 2" or whatever actor.
and if not, then use the first playerstart it finds.
So would it be smarter to transition this system to one that uses PlayerStarts instead of just tracking the vector when the collision happens?
You don't have to specifically use playerstarts, but it's one of the built in ways of handling player spawning. You should be overriding the built in logic so it fits to what you need rather than it doing its thing, and then you doing something else somewhere else at a point in time where it may not be appropriate.
I have an array of Json Object Structures. I'm adding item to the array one by one. When I look at the array preview, it look like each items are the same (whereas I do make seaprate struct ). But in reality if I check what's inside, the content is the right one.... Any idea what could go wrong ?
The problem is that when i try to serialize my array to json (API Communication), I got a json with all value repeated.. not expected.
GameMode is what typically handles players joining into a game and restarting them. It has several overridable functions that allow you to customize how the GameMode should handle these scenarios. So here as an example, overriding "ChoosePlayerStart" would allow you to have the GameMode pick where a player should be spawned at - and you just feed it an actor reference. You don't have to use this, but the flow goes for a joining player...
PostLogin(PlayerController) -> HandleStartingNewPlayer(PlayerController) -> RestartPlayer(PlayerController) -> { RestartPlayerAtPlayerStart(Player, FindPlayerStart(Player)) } which then gets the default pawn class and spawns it, and makes the player controller control it.
There's some more functions that work in here too... Like FindPlayerStart which you may want to use to actually locate the actor in the level you want to use.
Which could be your checkpoint actor if there was one.
Lol, this engine. I got bored and decided to check out that pitch gimbal lock. Neat shit. You can fix an issue that plagues people and causes them to go make quaternion systems for their camera stuff by commenting out some shit code in the camera manager. Love presumptuous ideas in coding.
Looks to be a good idea to use this since you can use tags with playerstarts apparently... So if you subclassed a PlayerStart for your checkpoint, it could simplify things.
Got it. So I could theoretically use a system like this, and then have the GameInstance hold the proper tag right?
Yes
Okay so I've set up something of a system, but I'm still facing the problem of the open level destroying all the data. How can I load the level based on what the SaveGame says without destroying the data?
The data either needs to be stored in the game instance or in a save game. After the level is loaded you should be able to read the data from the game instance or from the save game. I'm fairly certain that if you've loaded a save game object in the game instance and saved its reference there, then it should persist after the level load.
trying to make a gesture based magic system for a VR game and I have a collision box parented to the camera with some basic logic (just trying to make the trigger currently) but it only fires when it fails (e.g. something that is not the player's hand touches it)
Is that motion controller variable even valid?
should be, but either way I've tested it with all three of the references that are seen there in the first screenshot
You might want to print the name of what your are overlapping. That is usually quite eye opening
how do I get the name of something? I didn't know that was a possibility lol
Most things will auto cast if you drag them onto a string pin
But for objects it's probably get display name
Only meant for debugging btw. I have seen people use it for gameplay.
thank you very much, I'll get that test going and see how it goes
Might need to check the logs afterwards or while playing. The on-screen messages in VR tend to be hard to read
so I tested it and it seems that it just doesn't recognise the right hand at all
it prints out other objects fine (even when being held) but it's not printing anything when I put either hand in
Might be a problem of your collision setup. Would be good to ensure that your hand mesh has collision and that the collision profiles of both are overlapping each other's object types etc
oooh I didn't even realise I could change the collision settings, I'll have a look at that rq
I've tried fiddling with the settings a bit for the hand but the collision box still ignores it (screenshot 1 is the collision settings for the hand, 2 is for the collision box)
Is it something else like the collision box being part of the VRPawn blueprint that's messing with it?
Try enabling the Generate Overlap Events checkbox on the left
It could be that it's due to being part of the VR Pawn. I think I usually had the controllers as separate actors, spawned runtime in. But let's try the checkbox first.
Gotta walk the doggo now. Will check the channel later again.
unfortunately I turned on generate overlap events but it still won't register the hand. I'll try seeing if I can fiddle around with it a bit more and let you know how that goes. Hope you have fun walkin' the dog!
came across this forum post where someone had a similar problem and it was solved but I can't seem to find an 'initialize physics' option anywhere in my VRPawn and the Simulate Physics tickbox is greyed out
https://forums.unrealengine.com/t/how-to-use-box-collision-with-vr-hands-on-ue5/1208454/4
That InitializePhysics looks like it should be on the Hand Component.
I haven't done VR in a while, so not sure.
ooh apparently the vr hands don't have a physics asset
Could that be the reason that it's having a fit?
I just ask since I also can't find an InitializePhysics in the hand component in the VRPawn or in the asset itself
PhysicsAsset might be needed, yes, as the SkeletalMesh otherwise has no collision.
Your HandComponent seems to just be a SkeletalMeshComponent then. That will not have any custom HandProperties.
It#s also questionable if the screenshot with the InitPhysics is from something custom.
ah I see yeah I am not too sure, I'll follow a tutorial to add physics to the hand and see if that can help remedy the issue
Just keep plugging away at it and come back if you run into specific issues. Takes a while but you usually only walk that path once. Next time you know how it works.
yep! Either way this is for a school project all about learning while making a game to I think it fits perfectly! There's no fun just knowing everything without experimenting
got it working!!! GESTURE BASED MAGIC!!! IT'S SO COOL!!!
only problem left is that it checks if any part of the player is touching it, not just the right hand but I wasn't able to find a fix for that since getting a reference to the right hand didn't work due to it looking for 'VRPawn_C_0.HandRight' rather than just 'HandRight'
Hi all, what are the pros / cons of using Actor On Click vs. a trace channel from the mouse to select something in an RTS/ARPG top-down game?
Ah, maybe this is more like it?
it ends with the fatal error.
How can you pause the gameplay only without affecting delays and Set timer by event/function nodes in widgets?
I've tried:
- Set game paused
- "slomo 0" command
- "Pause" command
- Set global time dilation
All of them also affected the nodes described
Short answer is you can't. Tick is handled differently in widgets. A work around is having a BP in the level with 'Tick Even when Paused' enabled that is used for handling things such as timers. This of course isn't always going to be ideal but might work for your needs.
Fair enough, seems like thats one of these problemd where you got to be ✨ creative ✨ again
Hi, i have this simple BP to open a level after an introductory sequence. I'd like to know if it's possible to add some kind of fading effect after the delay before the level open so transition if not so harsh (I'm coming from a sef lit pure white material and goind to a pure black)
I believe theres a fade function on the camera manager you could use.
A bit. Can you install symbols? In the Epic Games Launcher, find your Engine install, go to Options and check the Editor symbols for debugging. Should give a lot more info in those callstacks after that.
found this one as well : https://www.youtube.com/watch?v=en0Z7zYeAn0
In this video I will talk about how you can change levels in unreal engine 5 with a fading effect using blueprints and widgetblueprints .
🟥🟥🟥🟥
If you're passionate about creating stunning environments, be sure to check out my Udemy course on Unreal Engine 5 + Blender Environment Design for Beginners. Learn how to design a beautiful ...
Thanks @copper lion and @dark drum pattyn
Not sure if there's a better channel for this but does anyone have any ideas why reimporting a static mesh would fail? If I was to import the FBX as a new mesh it imports fine.
Does your output log have any info in it when you try the failed import?
Nope. 😕 Just gives me this.
sure, I'll try
holy, why is editor symbols 38 GB 😄
Oh, that's nothing.
My launcher engine with symbols is 73gb. My source install is 335gb.
Guys i have a question, i implemented the crouch system with animations and everything works fine, but when i put my character mesh hidden in game the crouch doesnt work anymore, i dont want my character to be seen in game(its first person) , i want it to crouch even if its hidden in game, the animation to still be played
I can't find anything in source code for this. :/ Error might be coming from a Json as far as I can tell. Not very descriptive.
what's also weird is that I can't bake lighting, also makes the engine crash. maybe tis is somehow connected. as someone suggested earlier I will try to set graphics drivers to earlier state.
There is a boolean on the... Skeletal Mesh? I think? To update even when not seen. Sec and I can look.
Unsure, but it might be what causes it.
i cant find it
I figured it out. There was a name change in the blend file for the specific mesh. So 'Plane.013' was changed to 'Plane.001' so the reexported FBX didn't have the mesh the re-importer was looking for. (Got to love blenders jankey double names)
It would have been nice if the logs were a little more descriptive though. 😅
This I believe. Try setting this to always tick and refresh bones if it's not and see if that helps.
yoo thank you man ❤️
it works
the camera is clipping through walls like crazy when crouched
this is after installing symbols. I guess, this is more detailed?
I suspect the crash has something to do with my particle systems.
the log contains this a lot:
"[2025.06.13-11.39.52:324][ 68]LogNiagara: NiagaraStaticMeshDataInterface used by CPU emitter and does not allow CPU access. System: NiagaraSystem /Game/FFC/Partikel/Systeme/Feuer_Explosion/NE_Feuer1.NE_Feuer1, Mesh: StaticMesh /Engine/EditorMeshes/ArcadeEditorSphere.ArcadeEditorSphere"
it might have something to do with my NS having the options to set a staic mesh to spawn the particles on, yet mostly I don't set one.
Hi there!
I have a system where I run on / off splitscreen whenever needed. And just found out it's not very clear for me how to add Widget Components, to be visible for both players. I'd realy love to avoid spawning them twice, as in some cases - there will be just one player, or 2 players but splitscreen would be turned off etc.
Any tips? Tried to set Owning Player for the widget, but tbh. I'm having issues with setting that up with blueprints.
this is a log where it crashed when trying to bake lighting (happens with the internal bake system as well).
baking/building? in a different very simple map works. so this might have to do with the meshes I got in the more complex one.
Has anyone had a similar issue where sounds aren't playing in editor?
I also scanned the web for similar errors
https://forums.unrealengine.com/t/sound-doesnt-work-in-editor/120216
My sound works in the packaged game but nothing plays in editor. Even when I try to preview a sound in the content browser, when I click the play button nothing happens. I am using version 4.21 on Windows and even when I check the Windows volume mixer Unreal Engine does not show up in the list with the other apps I have open. I have made sure ...
the sounds are playing on other people's unreal editor
so, i have alot of projects stored on an hdd that i need to re* format. I was just wondering how i can backupp all of my projects to my SSD
By copying them fwiw.
I would have those on a cloud server in a version control setup, but if you can't have that then yeah, copy?
Noob question:
If I use only Blueprint I have to install Visual Studio, maybe also to compile , or compule faster,and package the game project?🤓
You'll need VS to package your game. I don't believe you need it just to run the editor.
I’ve just reinstall UE5.3
-
can I install also the last Visual Studio version or I have to install the previous?
-
Installing VS it will be install also the Windows SDK or I have to install it separately?
"can I install also the last Visual Studio version or I have to install the previous?" <- i use vs2022 for 5.3.2
"You can install the Windows SDK as part of your Visual Studio installation or separately. "
"However, integrating it with your Visual Studio installation during the initial setup is the best approach"
but you could also just install the build tools i think, but i never did that
but the web says you can do that and nenver have to use visual studio
just the build tools
you need the tools installed, but you never have to actual open Visual Studio if it's bluepprint only
Is editing structs not allowed inside a function even if that struct is passed by reference?
so kinda broad question here. Im updating the camera system for my game. Is it typically better to have the camera be an object outside of the player for maximum control? Or am I handicaping myself by keeping it stuck on a boom inside the player?
Rn im trying to just keep it following the player but also give it some gentle sway through a mix of camera lag and "look at" rotators but idk if maybe im overcomplicating it
in my experience both has pro's and con's and it's really hard to give a general advice
would it help if I was a little more specific on what im trying to do?
i won't give you advice, because i'm not convinced enough to see all the pitfalls and what not
fair enough
but what i can tell you, which would have helped me make saner decisions, is that you can set an component to absolute world space, so that it doesn't follow the actor
and you can control that separate for location/rotation
Sways sound like a camera shake. It's also worth noting that there's a whole new camera suite in the engine now that some people have taken a shine too. I haven't looked at it yet though.
so I could theoretically set the camera boom to absolute world with in the player BP and dive its position seperatly?
which can avoid a lot of issues, like jitter introduced through physics, etc.
If you're refering to the camera manager stuff ive looked into that too but for some reason, at least on my end, it produces really inconsistent results. I might be doing something wrong but I does NOT behave the way I feel it should especailly if you tell it to change things like FOV
I meant Gameplay Cameras
I might try that then, especially since what im doing is a 2.5 platformer thing. I could probably do the world position set up like you said and make it match the player's position (mostly) and then "drift" based on other stuff
that I have not heard of
I don't know what they do though. Just seen people mentioning them a lot lately. Almost seemed like a more official version of what Lyra's camera system was doing, at a glance.
I'll give it a look then, thx for the tips both you guys 👍
some tips to do a dialog system or someone that can help me ? in that case text me in priv
You should be able to edit structs like that, but I think the bigger question is how did you get a custom event inside a function? That might be the real reason it's got a problem. Last I checked custom events can't be inside functions
real quick, I know what you mean by absolute world position. But to do that are you just refering to this? Or is it a different toggle you're refering to
We can't edit structs inside functions, had to use a macro instead. Also yeah forgot that we can't have custom events as well.
yea, there's also a function to toggle it at runtime
I see the function input getter for some reason doesn't have a diamond pin. Did you change it to ref after placing the getters? Maybe the nodes need to be refreshed? I'm positive you should be able to edit a struct this way
I cant seem to find that node. I assume I drag off the component and look for something like "set transform type, or space"?
or does it have some special name
how did you get a reference to the struct ?
something with SetAbsolute
i don't recall the exact name nvm, SetAbsolute is the exact name 😄
so if I set those to true its the equivilant of manually setting it to world location?
cool cool thanks
Does this also disconnect it from the actor transform updates, or does it do "inversed" changes along the way 😆
hi, i have a question for cable systems, whats the non-controversial accepted way of doing cable grappling systems?
I found a youtube tutorial where the attachment is made using the end of the cable rather than the start
and he uses Set World Location node to attach the start of the cable to line trace hit points, and so it looks like a batman/spiderman gapple mechanic
but what I found when this youtuber was using attach end, to his hand, i found that it looked much better and the rope actually looked like it had more proper rope simulation physics
so this little hack made it look so much better
im talking about this video specifically
Welcome to another Unreal Engine 5 tutorial! In this video, we’ll dive into creating a Grappling Hook System using blueprints. This guide is perfect for beginners in game development. Follow along as we cover setting up target points, implementing rope physics, and ensuring smooth animations for an engaging grappling experience.
📚 You'll l...
he didnt explicitly show you everything any good about how he did it, he made a really bad tutorial and left his patreon link in the description so that you will get to buy his poorly made patreon subcribption service
If all three are absolute then it completely skips the whole update. If any are still not absolute it'll run the update, but within the update it'll check it again to not set whichever is absolute.
wait
so we could set them all to absolute, make a baseclass which overrides GetTransform() and return a made up relative transform there? we can't
Bump, still didn't sovled. Anyone have an idea?
Hi together, since hours i try to implement an ingame axis tool like the editor one (see image).
Honestly my biggest problem atm is to see the axis tool always event if it inside a object. Any tips or useful links which helps me?
i think what you could possibly use is a custom depth
MARKETPLACE:
Our Projects: https://www.unrealengine.com/marketplace/en-US/profile/Coreb+Games?count=20&sortBy=effectiveDate&sortDir=DESC&start=0
FOLLOW US EVERYWHERE:
Facebook: https://www.facebook.com/Coreb-Games-104135205047796
Twitter: https://twitter.com/CorebGames
Discord: https://discord.com/invite/7HRDUPg7Sn
Instagram: https://www.instag...
this video looks promising, kind of hard to follow but the beginning shows exactly what you trying to do ?
I'm trying to make an array of structs that are all modifiable. I am having a hard time figuring out how to set this up because the struct for any given Rule is unique to that Rule. So for the struct setup it looks like the second image. But when I do this, the struct cannot be modified, it just shows the reference struct type. Does anyone know how I could make the RuleConfig in my data be modifiable even though it would be a different struct for any Rule?
Already tried the custom depth but the stencil part is new to me maybe I can color the different axis with help of the stencil value.
Because I have no glue how to I implement the post process material that the elements are not have a color, more have a translucent effect.
Your reference type likely shouldn't be "Object". You usually can't set references in "Object" variables before runtime. If it's a particular type of asset, then you should use that as the type.
That's the problem, it's a struct but it could be various different structs for the RuleConfig depending on what the selected Rule is.
how do i delete local players in order to create more? im using a game state to transfer data between level change (next round on the same map) but as my players are local (because its a local game) it wont spawn them back in.
im using the array that the local player controllers are stored in to remove them, which it does in fact register it as doing, but it doesnt seem to want to create them afterward. even if i destroy the actors it still doesnt work. It's probably something extremely simple that im just too blind to see
Hey man, sorry to bother you again! I've been working on this system for a bit and I'm stumped again and could use some help. I reworked the system entirely to use the ChoosePlayerStart. The issue I'm facing is that it seems like the CurrentPlayerStart isn't being saved when I hit the checkpoint. I've found that if I set the CurrentPlayerStart to C1 or C2, it properly spawns me at the PlayerStart of the same name, but even though the CurrentPlayerStart is being set when hitting the checkpoint (based on the PrintString) it's not saving. Why might this be?
put your sets that you currently have after "open level" before open level. Not sure if it'll matter in the game instance but it's good to do open level as the last thing you want to do before transitioning to a new level.
You're also never 'loading' current player save from the save game.
or saving to it from what I can tell from your video
Putting the sets before the open level didnt do anything. I thought opening the level in the GI didn't destroy the data like we discussed?
And I'm not getting the 2 none ticks anymore cause it's spawning me at a PlayerStart rather than in the collider
Right, but it's just good form. Don't do anything after Open Level. Leave that as the last thing you do in any function or event.
Got it.
A thing that often confuses me. Is why use an event dispatcher instead of a simple direct call function. I often even lose track of what binded what, and on debugging its hard to tell where its going sometimes.
At the moment i have a functionaility that glows my unit when its selected. My friend told me to use an Event dispatcher, and bind it to the SelectUnit function. So everytime its selected it OnSelectUnit() -> GlowUnit(). Though why not just a damn function call -> GlowUnit()
Edit: I guess its because you can decouple it 🔌, right. that makes sesne
When I hit the checkpoint I'm saving the player. Is that not right?
Is the tag within the structure you're passing to your save and how do you populate the "Current Player Start" with the value from the save when loading?
So the CurrentPlayerStart gets tested from the GameMode on play by comparing all the PlayerStartTags to the CurrentPlayerStart. And I only have 3 variables in my structure, one of them being the CurrentPlayerStart name.
But where are you populating "Current Player Start" with the value from the save?
I'm sorry I'm not fully understanding the question. What do you mean by populating?
Like where is the CurrentPlayerStart getting loaded from when I play?
Would that not be loaded in the structure on Init when it loads the data?
You have a variable called "Current Player Start". You are loading your save game into a variable named "Saved Data". Where are you pulling out the tag from the "Saved Data" variable and calling a set of "Current Player Start" with that tag so your functions can use the saved value.
So sorry for being stupid here lol, I'm still fresh on this whole idea. If I'm understanding things correctly, wouldn't this be where the CurrentPlayerStart is being set? Inside the GameInstance?
I'm using UE 5.3.2
Or would it be here in the first person character? Should I be using this part of the blueprint? I wasn't sure whether to put the UsePlayerSave function in the GI or the FPC.
i hope you find what you seek
I tried copying these blueprints into the GI but it ended up screwing with things.
When you've loaded your save game in your game instance, grab the "Player Save" variable out and pass it into a "Use Player Save" call.
How would I get the PlayerSave variable out and into the GI? Should I cast to the SaveGame where the PlayerSave variable is?
You have a reference to the save game here in your game instance already.
Immediately after both of these SETs of Saved Data, you should then get the PlayerSave structure out, get the tag for the checkpoint out of it, and store the value in "Current Player Start"
Like this?
Doesn't seem to be doing anything... I feel like there's something wrong with it saving the variable rather than loading it.
You have to do if after both.
But then again, it's obviously setting the CurrentPlayerStart correctly, just not loading it.
I didn't think doing it for both mattered since I'm not doing any Async loading
You have to do things in order.
If you end up calling the bottom version it won't populate the variable with the value from the save game.
As it doesn't end up reading the save game to then populate the variable
Did this and it didn't change anything.
Connect both the execution paths at the end there to a print string node and print the Current PLayer Start value.
See what it says... If it says the tag as you expect it, then it's finally loading it... If not, then you're probably not saving it right
So now, how are you actually populating the save game object before saving it.
Well this is the save system. It requests SavePlayer when I collide with the checkpoint.
What calls "Save Player"?
I found it...
So what's in GetPlayerSave, and what here actually updates the save game data that you're then passing to "Save Player"?
the "New Player Start" only sets the "Current Player Start" variable in the Game Instance.
Oh my god I think I finally got it to work. The issue was that I was getting the player save AND THEN setting the CurrentPlayerStart
Thank you SO MUCH for all the help, I'm certainly putting you in my game if you're okay with that lol
Good stuff. And sure go right ahead XD
Also, I'd say save your sanity here - you have 3 functions that all are in the game instance. "New Player Start" should likely be the only one you want to call, and then have that "New Player Start" call to "GetPlayerSave" and then call "Save Player".
That makes perfect sense. God I can't thank you enough I've been struggling with this for DAYS lol. Tysm man
Do these not work in editor?
Starting the game the event is executed, but calling from the details panel in editor it's not.
the function runs fine
Alert
Now i founded that unreal have bug since it was developed in 90’s in its own normalize node with tolerance for blueprint. The tolerance value we pass in blueprint does not affect anything. i think the node have its own tolerance to 0.01 and this is not good value according to unreal cm unit system. So if you change the tolerance it will not work.
And this is the node that is used every where in game dev.
So i think we will need to write our own small code for this in c++.
Or create this type of thing in blueprint function library
There's no need to post this in three channels. That's borderline spamming.
What makes you think the tolerance is broken?
i thought every one is using this node
i think the c++ for this node and the normalize we use in c++ are different functions.
this is the C++ called by that blueprint looks like the tolerance is used correctly. what test did you do that showed incorrect behavior?
if you pass any value less then 0.01 to one axis of vector and left the other ones zero, no matter what is the tolerance it will return zero. And this only happens for lower values but works for values upper then 0.01.
you can do this simple test as i wrote upper.
this sounds to me like it's working properly? if your tolerance is .0001, (.01, 0, 0) or smaller will get rounded to zero and higher values will be normalized
I assume he's putting in a value of, say, 0.001 and using a tolerance even smaller, like 0.0001.
of course i am doing like this
And it's failing because, despite the given tolerance being 0.0001, the default is 0.01 and that's more than the given value of 0.001.
(not that I'm agreeing with the outcome)
sorry i don't follow any of that. he's using .001 for the tolerance? or for the vector values
Look at the implementation of checking the tolerance it is wrong. it should be checked against the length of the vector. not the sum of the squares of axis.
{0, 0, 0.001} fails with a tolerance of 0.0001.
vec(0.001, 0, 0) tollerance = 0.0001
i won't argue about that, but that doesn't mean it "doesn't affect anything." the tolerance is the square length of the vector not the length, but it still affects it
if you think it should compare the length and not the square length then rather than cross posting on this discord you should open a bug or ticket with epic
It compares the length squared? I suppose that makes sense.
yes, see my screenshot
it should be like this tolerance = sqrt(x*x+ y*y+ z*z)
Isn't the point that it's not doing the sqrt of a zero-length vector?
Or near to.
Save some cycles.
no not to avoid the square root but the division that comes after
and because they use FMath::InvSqrt for perf reasons the two are in one operation
so they compare the tolerance before they do that
we will need to check that if all axis are zero we will avoid the sqrt