#blueprint
1 messages · Page 228 of 1
You want its current state
(You might want to check that movementmode == walking instead)
this one
this one is for setting the value
which one am i looking for
Get
sorry if im making it more difficult im new to the whole is grouned stuff
Set is for changing
Get is for reading
ok, but you also need to read the nodes. if you need to READ a value, the node that SETS it is definitely not it
ofc my bad
but ive added the get movement mode now
what should i add to the movement mode
should i get the current state and the compare it to the state i want set and if they are the same player can dash if they arent they cant dash
IF walking AND NOT dashing THEN launch
I think this is a correct logic for your situation
can you try to implement it yourself?
should it be if walking and not jumping then lauch as i dont want it to trigger if jumping
let me check your screenshots quickly
ahh, I don't think we need to test for jumping. once the character is off the ground, is falling will be true
thats great do i have to implement it differently now
when i do my isfalling check it grabs it from my animation blueprint
animation bp? something's fishy here
i have a blueprint that does all my animations i have idle walking and jumping and my jumping is just my fallling animationm so i put it under isfalling
uhh, let's think about animations later
the logic we need to implement here shall be in a character
the animations is all wired up they all work
Sounds like you're working out of context
wdym
(side note: the "Context Sensitive" is so bs setting. as a programmer I would love it to show first the type's variables and functions and only then look elsewhere. #justcomplaining)
yeah whenever i try any isfalling it always grabs from my other bps not from any character movement or movement mode
you have this, now drag from the green pin and type Equal in the popup window. select enum equal
done
forgot IsFalling for now. let's try what I wrote earlier:
IF walking AND NOT dashing THEN launch
so do i put the enum equal to walking
yes
now we need IsDashing and we need to negate the value of it
so similar. grab the IsDashing, drag from its pin and type the keyword in the popup
my IsDashing Boolean?
well, not mine 😛
do i then type negate
can you just try? it will be reaaaalllyyyy helpful if you start doing this
Couldnt agree more
im trying it is all very confusing once i learn it i will understand alot morew
"what can i do with this?" and you drag the pin and start tinkering
trying to get you there. and deliberately avoiding giving you the answer on the plate
lol my bad im trying to click on
looks familiar
no
leave walking alone
grab your IsDashing
and negate that
separately
and why did you SET again? does it make sense?
i got there eventually lol
so we have both, now we need to connect them with AND
drag either walking or this NOT end
and type AND
I love the tongue twisting end and AND 😛
ok, maybe not twisting, but you get the point
perfect
so now as long as we are walking AND not dashing, the logic can execute
hold on. no one said we are in a function here 😛
I can’t rmbr the way I do it but yeah you can add a DA at runtime
Oh snap 😂
amazing i got to there eventually lol
@shrewd sorrel can you now take this and hook to your Branch right before Launch Character?
but change from False to True on the Branch output
so just hook up the CanDash functionm on my branch
so was that in the CanDash function? we need to make it return a value first
yes it was
click on this and in the details on the right add Output parameter
done
type boolean, which is one by default
name it accrodingly
in the same panel select Pure
do i just name it anything
this is for functions that do not change anything, just read the state. and as you can see, we are not changing state indeed, so safe to check that
(I usually just have it as ReturnValue, as the funcrion name states what it is )
or RetVal for people who don't like long names
Out ;-]
you go out 😛
not quite
god damnit lol
ok. let's pause here. can you go in your head through this
and see what is happening
wait did i hook it up to the wrong thig
i shouold hook it up to the branch conditon right
I don't know 
i think thats right lol
(yes)
what do i then do with the spare is isdashing boolean do i just delete that
it's not spare
look into your new CanDash function
you are using IsDashing there, right?
it's not going to set itself to true or false
no i mean in my player character blueprint
do i have to then hook it up to something inside that script too
hold on. what?
we wrapped the logic in a function so now we don't have to think much
if we want to check whether we can dash
thank god for that lol
ok, run it and see what fails
1st thing
this SET has to set to true
already did that
yes
hook the result to the output xD
that worked
imagine I have to have your code abstracted in my brain and try to follow. sometimes it's hard to see it all 😄
thank you so much it works perfectly now
and I have no imagination (aphantasia)
yay
now try to understand HOW and WHY it works
like, really leave this thing behind with "yes, I know what's happening here now" feeling
it works because it checks if its only walking and not dashing then its allowed to dash only if its walking
right
and it still works fine with my sprinting too
you kind of repeated the walking part twice, but yes, that's the logic
yeah i do that alot lol
for the future. try to first think your problem through. and don't hesitate to open paint or take pen & paper to sketch it out first
ofc thanks bud
what you need to happen, under what conditions. what variables do you have, what you need to create. and just do quick checks on components. drag from the pin and type something that sounds correct. often you will find the variable or function is already there just to be used
that makes sense
it's a bit bloated, given how huge the engine is and how badly they implemented the search, but at least it gives you more than less, so it's a matter of good filtering 😄
very true lol
good luck on your endeavours
but tbh ive done well with only strarting this project yesterday took time but i got the whole third person movement animations and thanks to your help a fully finished dashing mechanic so once i get home later im gonna work on fixing my combat animations
im yet to touch a yt tutorial
great progress
so thats good for me
I'd suggest forcing yourself through a lengthy tutorial that just shows you the basics of the editor. you know, the sightseeing type of video that goes for 2-5 hours and just talks widely about what's available and some basics how to usue stuff
i might lol
it might be boring, but it's a good investment imo
the worst thing is not knowing something exist
ive pretty much only been using unreal for about a month i did unity game development for about 2 years
and wasting hours trying to figure something out
the more I suggest just grabbing popcorn and watching such introductory video
you just need to get shown what's available
Oh yeah
Engine api is massive. Tons of stufd already exist
You just gotta know what its named and in which context it exists
I appreciate the help from both of you tho
any idea why this binding is breaking?
i see both of these happen
but this one doesn't trigger
there's no unbinds of any kind anywhere
Ai only executes on server
Would be my first guess
So you've only bound to it on the server
Also... crystals died should be an onrep variable
Not an rpc thing
So execute on all is ment to do what
With a multicast
Thats a multiplayer concept
it's just singleplayer with some of the code being MP-ready (but not being used as such)
Not easy to guess that with the context you provided. (And even then the multiplayer ready part should be revised )
I have an actor component which has some variables which should only appear when another variable is set. How can I do it? I thought maybe constructor script could do that but there doesn't seems to be any in the actor component.
Also it seems your interface messages can just be event diapatchers from the component.. those can be directly bound in editor
C++
EditConditionHides / EditCondition and similar meta specifiers
there is no multiplayer planned in any capacity, i don't see how that's relevant
Can't do it in blueprint?
No, not in bp
interface messages are calling into the actor not the component
😭
Im aware
and they can't be bound in editor unless i'm making subclasses
this is a boss setup using a base AI class
with a manager actor that wakes up the AI (whereas usually the AI is automatically woken up on begin play)
so the fight doesn't start until ceonditions for it are met
Like most boss fights / setups
Not sure why you cant still bind them at editor time in the baseclass
at this point im thinking of just setting up teleporters and using the auto wakeup setup (since that's causing issues too)
but these binds need to work regardless
the what?
Event dispatchers
the whole point of the manager actor is to isolate the custom code from the core code that sets up the behaviour tree
For sure , encapsulating logic in a manager component makes sense
it's an actor, not a component, but yeah...
the idea being this boss isn't vulnerable till crystals are dead... i got it to work under certain conditions
but those conditions wouldnt 100% of the time initialize properly
so 1 boss + 4 crystals, most of the time you'd end up with atleast 1 actor completely missing
Timing issues in other words
more like WP issues
Just put crystals dead into the gamestate
something seems to be unloading them for who the **** knows what reason
Boss only cares about some crystals dead = 4
Crystals dying only needs to tell gamestate that they died
why do i need game state
for all intents and purposes, the encounter manager actor is the game state
If you're struggling with them being unloaded
i don't see how changing what actor tracks the info will help
im not, im using the method of spawning that doesn't have that issue
using SpawnActor has issues, preplaced and WP-managed (via component) actor don't have that issue
the WP manager component can quietly unload the actors for whatever reason (it should trigger some event when it does it, but it's not, i dont care to be fixing something like that...)
so preplaced actors can destroy the component before any initialization begins and the managed actors cannot be used with the manager actor because they don't exist as a hard reference
but spawned actors exist in the "get rekt" state where timing matters so i can't use it
even more fun is that when i did try to spawn the actors at runtime, they'd remain in the editor AFTER ending play
don't even wanna get started on that, so yeah, preplaced actor that calls the hardcoded init it is (that's the one that destroys WP manager, so stock WP unloads it afterwards)
I'm getting this error, but after refreshing the node, everything is fine, but then after a restart of the engine the error comes up again.
I even tried replacing the node, what can i do about it?
the wp component-managed actors are 100% correctly loading and unloading, but i'd need to tie in their boss logic directly into their BPs
which... i guess could work?
it's like 3000 hrs of work and now there's only some memory issues coz gotta make something into a soft ref
and this is left as like really big obvious technical problems
such a headache
Why directly ? Also, cant you place the actors in the persistent level?
Probably a simple one here but cant get this to work - "product name" appears as None on the created widget. Widget creates fine. Had it working yesterday jumped on today and its not working..
and they are placed directly
they're just managed with a component that loads them in based on distance (and loads low cost imposter actors at higher distances)
is one of them None or are all None?
They are all none
Print string from the loop works as you'd expect. Its just when its passing the other widget. I would do it the longer way but I only wanted a quick list 😄
that's whack, data tables should not have repeat rows
Yeah im totally confused by it
Will open in C++ and have a look . I remember a bug in 4.something about this
Make sure you are using Product Name correctly in the widget, look like something isn't connected
Could it be that. Lemme try
all connected okay
and where is that used ?
oh really. Learn something new everyday okay ill set it instead
Just do OnConstruct -> setText (ProductName)
The container widget,
Does that have any preplaced product widgets ? Or is it empty?
Its empty
I know i should do it the other way but this was quick and dirty.. It WAS working last night lol
You don't create a widget to give to the listview. You create a data object. Just a basic UObject and then give that to the listview. The listview creates it's own widgets for those objects and you override the OnUserEntry..Set.. whatever that function was and cast to your specific data object there to pull your ProductName
This CreateWidget here shouldn't be a CreateWidget, but a ConstructObject, and instead of a widget, it should be a UObject with your RowName on it. Better yet a full DataTableRowHandle
Alrighty I'll do it that way 🙂 Thanks!
😄
How do I update the value of this index?
thank you!
Thank you so much!
all working cheers guys was just more weirded out that i had it working the stupid way 😄
😄 You can use a widget as the data object on accident. Cause widgets themselves are objects so you can store the data on them and use them the same as as a basic data object. But it's not advised since it creates a ton more objects and such than a simpler data only object.
Ended up going for the uniformed grid view as it allows me to what I wanted 😄
working all fine
Might not the be right way but its just a quick cheat menu while testing
Also
You can deduct row and column from index
Index % ItemsPerRow = row
Index / ItemsPerRow = column
Deduct... what am I, 70!?
There is also a Tileview, that works just like the Listview, except that it uses wrapping blocks like a grid.
If you're going to have >30 things, I advise Tileview/Listview just for the runtime performance. You hit 200 widgets in a grid and you'll be paying some hefty slate Prepass costs.
30!?
uhhhh. I just found out that calling get overlapping actors also call the end overlap event? This is so weird
GetOverlappingActors on which class?
on a sphere collision
Bit odd. It's code just populates an array.
Sounds like something else is going on
I have been stuck at it for 10 min and after making like 15 print I figured out that end overlap event was firing just after calling get overlapping event and to ensure I also made a delay to call it and it still did that
aah nevermind
I am an idiot
Forget whatever I said
yeah
Bugs with these ancient blocks are pretty rare
Atleast most of em... those that are buggy are mostly known to people around the block
Now I feel like a really big idiot.
CAC Im looking at you
whats CAC?
Newer systems on the other hand... might have some quirks here and there
Child actor component
🤔
nvm I am gonna try to find a better approach to do it now
bye
and thanks for listening to my rubbish
I used CACs on Atre. But they're literally just a visual actor with no real gameplay logic. Doesn't serialize with the map or savegame. 😄 They work good in that regard. Like a collection of meshes basically.
I get to swap them just by passing the correct class when gameplay state changes, which is nice.
As long as you know/understand the quirks its usually not a problem to use them^^
I have been trying to understand this overlap event and please guide me. I don't know how and when it works? As far as I see as long as the response type of both the bodies match it triggers? Then whats the role of object type?
No, its too weird
How does it works?
Your colliders determine what types of objects they overlap with. This can be confusing when you’re doing a test with two actors of the same class overlapping with each other. But they don’t need to be the same.
No, I mean when does a sphere collision detects an overlap. What things need to be set to what?
I know sphere collision and mesh are different
objects have "types". then you decide with which types you want no collison, with which overlap events, with which blocking collision
When it overlaps with a collider of the object type it is looking for
That is set to overlap with it
Is that it?
That’s it
Is the opposite possible? Like if my sphere collision object type matches with the overlap response type of other collider will my collision still detect it?
Sounds like you would want to begin some logic on BeginOverlap of the other acre
Actor
?
Sorry what?
I just want to know because its too hard to figure out when it will overlap?
Generate the overlap event
And when not
if you are confused that much, just create a test scenario and see in action what's happening and when
will give you more knowledge and understanding than any answer you can get here
Its confusing because of the scenrio I have created. I made a new collision type. And set it to ignore by default to all. Now if I set the collision response of actor mesh in the world as response to the new type as overlap and set my sphere collision object type to the new type. My sphere collision still detects it
Its because of the scnerios I have created so far. Its so confusing
Just post some pictures
What should I send pictures of when I am here trying to learn🥺
As far as I understand. If either side's response and object type matches, it would trigger.
Its getting hard to understand why its even working.
I'll smack my head around a bit more😔
Your actor and it’s components, and your collision settings
I think I understand
Both bodies needs to overlap for the overlap event to trigger
If I can overlap it but its set to ignore me I can't detect it.
Thats the final conclusion I came to
Because the event is not triggering even when I can detect it.
But it can't detect my sphere collision
So its a mutual thing?
Youd be hard pressed to only make one body overlap
Yes
What? I am sorry english is not my first language. Could you type it in a more simpler way😅
Q: Is there any way to get a fly-camera in a blueprint editor viewport?
It is really quite awkward to create multi-actor blueprints, or even arrange components that have their own transform, with only an orbit cam
OMG its working now
nvm
Hi everyone! I am a newbie.
I have a waiting mechanism using Event Dispatcher.
And I shoud use this waiting mechanism 2+ times
How can I make it reusible? I tried make function but it doesn't work, I have problem with event.
wasn't it a default in UE5 🤔
i was in some weird state i guess
don't drink and code
Event dispatchers are for when you don’t necessarily know what logic to trigger when a thing happens. You just want to be able to setup listeners for that thing.
If you have only one thing that you want to happen whenever that event occurs and you want it to happen every time you can just call custom events direcgly
Dispatchers should be a bit rare in your code
Thank you for the answer but I am confusing
" You just want to be able to setup listeners for that thing." - Should I use Custom Event for this?
Speaking event sounds like a useful dispatcher to me but guess it depends
But i guess direct event call might work aswell. Depends a bit on the relationship between A and B and hiw tied together they should be
If the speaking event came from something like a component, having a dispatcher unties it from the owning actor type
What is "event souods" ?
if you have some saga (a sequence of events) going on, I would suggest making that into a "thing" and driving your logic either directly by it or indirectly by poking it about the state and making decisions based on that
It's complicated, need time to figure it out ((
Based on variable, right? For example variable IsSpeaking:true or false, right?
More like SequenceID or something
sounds very limited. but the answer is: whatever the state is needed to drive the logic
Bool makes it just binary, a or b
.. is that all you ever need ?
I want something like this
startSpeaking>WaitForEndSpeaking>DoActions>startSpeaking>WaitForEndSpeaking>DoActions
Boolean variable is possible solution, but in this case I need to use While loop for wait expected boolean state
And as far I understand using While loop is bad idea
While loop is thread block, so yeah bad idea
Depending on what this is for. Flowgraph maybe.
Just a conversation it seems
With the option to do an action
So its just a question of managing exec flow
Could also be a simple level sequencer, depending on the case.
They allow event broadcasts to do things in their graph as well.
Do people use those for in game dialogue ?
I need investigate this, thank you
Maybe this is solution
Seems such overkill, but on the other side, such controls are neat
Cinematic dialog.
Less useful for generic run of the mill NPC dialogue.
But the above looks like cinematic stuff. Someone talks for x duration. Do stuff, someone talks for x duration, do some other stuff. Very linear. Could easily be a sequencer.
I will also investigate sequencer solution, thank you very much!
Guess the action part makes in sequencer worthy
Can you do interrupts in sequencer aswell?
this works perfectly fine but for some random reason it still only chooses the same animation instead of picking out of the random 4
how would i change it to work
Increment on completed
increment on float or int??
Combo = (combo + 1) % ComboCount
Int, since thats what your combo index is...
Im more fan of using sections for combos
Retains the logic inside the same montage
so like this
How do I make it so that an actor acts like it don't exist
I don't want to always destroy and create actors. Instead just want them to completely disappear and appear when needed
i thought of that but i did seperate ones so im able to switch animations alot easier
Remove the top increment
On completed
Set attacking false 🙂
(Which isnt true but its how yournlogic seem to be laid up)
Are you interrupting the montage ?
its just playing the montages onto the mesh itself throug the play montage component
should i have the montages on loop?
Nah
that didnt fix it lol
Need to see more of the logic
thats the full logic atm
rn it allows me to do the combo but then after that i cant attack again so i think i just need to have a way to reset the whole script to be able to repeat it right?
You didnt do my combo logic
AttackCounter = (AttackCoubter+1) % NumberofAttacks
This loops it
so +1 then divide by number of attacks
do i attach it to anything or does that work on its own
how do i attach that as theres not white attach points
The output of the modulo
Yepp
so it should work now
Test it
perfect thank you
now to try and not break it by adding the other part of it
im adding a feature now that the attacking only works if the weapon is equipped
Interrupts as in skip past part of the dialogue, or?
Yeah, player skipping for instance
I'd assume so. A lot of games use sequencers for cutscenes and such and you can skip through sections of them. They're basically just a movie track so I can't imagine you can't scrub to a specific part.
Hmm fair point
Haven't personally used them as much as I'd like. 😄 Something I need to dig more into at some point.
But not very dynamic then i guess
Swapping ends based on player input
Unless you set them all up in the sequencer ..ugh
Nah. Like I said above, not great for dynamic, but if it's like a linear cinematic thing then it's great. Probably due to comfort, but i'd still be inclined to use Flowgraph for control. Even if I had 100 sequencers set up and wanted to play them at varying times based on flow.
Sounds like a neat plugin
I like Flowgraph cause it'd let me set up stuff nicely. I can push a cinematic set of widgets up which will also block gameplay, but receive my inputs like skipping and such and I can bind that in the flow node, and then push the actual cinematic if needed.
Gotta try it at some point
Then I could just make data assets or keys or something that the node can take in. Spam the same node everywhere you need a new cinematic or dialogue and just change it's instance data.
I've only dabbled with it a bit, mostly with that tutorial on Atre, but I have to say that it's a gamechanger for system flow.
So its a bunch of uobjects wrapped in custom nodes ?
Sounds very convenient if so
hello
▲ Blueprint Runtime Error: "Accessed None trying to read property As Food Spawner"
im trying to make a food spawner thats spawns a actor wich is food
so im trying to give it a limit so its not inf respwaning
these pic are in the food actor *
here the food spwner bp
idk why i keep getting accesd none trying to read property as a food spawner
- it is working
so its wired tbh
im trying to put a limits so the food cant respwan inf as i sadi so when i eat the food
it should -1 from the current food spawned
or the number of food
so it can spawn again
(Making internal functions to handle the data changing (food -1) is a far cleaner approach, more in-line with general oop principles)
o soo
trying to cas the function
leme try it
Doesnt change anything else about it ofc. Just letting you know
xD ok thx i guess
Accessed none is probably a timing issue, where the reference is accessed before its set. You can remive such errors by ensuring validity of references before you access them
E.g. IsValid
Encapsulating logic makes it less cumbersome to troubleshoot or change it later on 😄
oh
now i can fix it i think
thx @gentle urchin :party_manny:
You definitely do not want to be calling delay on tick
You would make this a lot better by making the food spawned something that is exposed on spawn to guarantee that your reference is set from the beginning
Then start a looping timer on begin play to handle the spawning of the food rather than doing it on tick
When the food is eaten or whatever it should tell the spawned to trigger an event that decrements the count and restarts the spawning timer
@tough heart
how do I get the node below the spring arm in UE4?
Drag off of Spring arm. GetRelativeRotation, and then right click the purple pin and split the struct.
thanks 🙂
idk if im doing this right but i think im in the right direction so basically if needs to attach to my attacking code by having attacking only work if the weapon is equipped i have made this can attack function to help define that
A function called Can Attack should return a Boolean variable that says whether or not it can attack
how would i code that into my function
Add a return node
so that is correct?
Drag the bool into it or add it to the outputs in the details
No you don’t have a return node
i mean like without the return node
Ehh
i have added the return mode
Not really. What you should probably be doing is branching off of Can Attackif you can, then you do the attack logic
Show it
bet let me code that really quick
okay
thats what i have rn
but if u think other way is better i can code that
Drag the red pin into the output node
Show again
okies
that dosent work unless ive wired it into my combat wrong
i think branching probably is the way to do it
i think i forgot something so i added it
Ok so now you’ve set up this function to return a bool. I don’t think you have the logic in there that you want but it’s at least a start.
Let’s take a look at the part where you are calling it now
We will fix the function later
Pretty good
i still attacks when not equipped so i think the function needs fixing
First of all I’m pretty sure you want to drag off of True instead of false. Because you asked if you can attack, and should only attack when you can
still does the same thing
^^^
Second I think you want your Can Attack function to return True if Equipped is set to True AND Attacking is set to false
So go rewrite your function to do this. You should not be setting any variables in your function. Ideally function calls don’t change anything. They just calculate stuff.
CanAttack = Equipped AND NOT Attacking
what part am i missing
Attacking?
is it the set attacking true?
You dont want to set any variable in there
how should it look
Equipped goes into AND
Attacking goes into NOT goes into the same AND
The AND goes into the output
Delete the set attacking node and the == node
Hi, I have a quick question.
Is a soft object reference better than a hard reference?
Quick answer: it depends
What do you mean?
Hard ref means “load the object now” soft ref means “don’t load it just yet”. But if it’s already loaded, the answer is moot
thanks.
I find soft refs useful for DAs
So you can iterate over them without loading everything right away
I still can't get over the fact that interfaces are so widely popular because people won't learn linkers.
how do i stop player movement when attacking
Depending on the case, if they're primary DAs, you can just use the asset manager to get yourself a nice simple list of asset IDs.
Yeah they’re children of a primary DA, I haven’t tried the asset mgr yet
Linkers are cpp only?
No, Any hard ref causes a linker, which forces the reffed class to load before the class with the hard ref. Same as any property or type.
Asset manager is nice though. Cause you get to do things like this.
Oh I c what you mean. I thought it’s related to lnk errors 😅
ive tired multiple ways in getting this to work but i phyiscally cant figure it out basically im wanting to add when the player is attacking player movement cant not be used and it moves the player forward by a set amount every time the attack is called so it looks like the attack is moving the character forward
In your player controller where you’re reading the inputs to apply movement, check if they are attacking and only apply the inputs if they are not
okay let me try do that one first
this is my movement idk how i would set it up with this
would it just be a simple true or false branch
with attacking is its varriable
so if attacking is true do nothing but if its false then move
Yes
im suprised i understood that
Easier to just enable or disable the movement component probably along side the boolean set.
Interesting
i find branching easier for me
Ignore movement input...
Now you don't need to branch at all regardless of what gives input to the character.
okay now im wanting to add a forward force to the player when attacking so it moves the player forward
i tried the launch character one but i dont see it actually workin
but im a try it again really quick
that dosent work unles im doing it wrong
this is how i have it set
Ideally that’s on the montage itself as root motion
i got it working for now i will be changing it after
This too. 😄
is there a way to have two animations running at the same time
blend
because i want to be able to keep my movement animations while also triggering the equip and sheathe animation
because it just stops my movement animatioons
You’ll have to blend the slots in the anim graph
It’s not a blend space. It’s blending the slots.
blend, not blend space
Welcome to my new series, Advanced Animation Application [for Unreal Engine]. Today we're creating babby's first AnimBP and learning how to transfer variables from the CharacterBP to the AnimBP. This video serves as a precursor to the rest of the series - ensuring that you're up to speed with the very basics of setting up an Animation Blueprint....
enjoy
thanks
he's using UE4 there, but most things are the same and you mostly need to learn the basics anyway
ive watched the video but i dont understand how i implement my movement always running when doing my montages because i already have what he showed set u for movement
The movement part is your base pose in the anim graph
You blend it with the slot to use your overrides
watch whole playlist
And now you blend that slot with the upper body slot for the upper body only overrides
is my montages my uper body slots then
thats how i have the graph set up @rugged wigeon state machine is for the movement
Pipe the second node into blend pose by weight or something
Then you need to specify that the second slot is for the upper body bones only
Idk the exact steps by memory
the problem with my animation for drawing and putting away the weapons it moves the lower body also
Hello, I have this code that moves my projectile spawner on a spring arm, but whenever I hit the end of the clamp during gameplay, the arrow freaks out and moves around wildly instead of just stopping the movement going further, how do I fix this?
End of which clamp? Pitch?
I set my clamp to -89 , 89
probably for that reason
Does anyone know how I can get the map name from a world asset?
Try setting clamp to:
thanks this fixed it 🙂
You’re going to set it up so that the animation can only affect upper body bones. Doesn’t matter what the lower body does in the actual animation
Unreal engine equivalent to Unity’s Multi aim constraint?
Hello everyone. I’m trying to make an fps game with a full character, not just the hands like in the template and I’ve come across an issue with the fps camera and rotations. I want my upper body, including arms and head, to rotate toward the direction of my camera. I know that one solution might be blend spaces, but that would just be too many of them, I feel.
Are there any good tutorials on this issue? What would be the most elegant solution to this problem? Is there something similar to that Unity multi aim constraint component?
Thank you in advance 🤞🏻
You use a control rig and some aim nodes to point at a target point
I’ve seen some control rig in action, I was wondering if there might be a simpler solution 😕
Either way, do you recommend any particular video tutorial for this?
Control rigs are potentially very complicated. But your use case does not require much in the way of actually rigging the skeleton. You just need to set a point and call aim nodes on the head and spine bones.
Hey, does anyone know if you can rebuild a navmesh on call in blueprints?
How to widget component always face camera for all players in multiplayer (without screen space)
I have a scroll box that just blacks everything out when I scroll down. Anyone know what the problem might be?
sometimes I can see through it, so it seems like theres like a layer that gets placed over the text
How do I stop these 2 actors from overlapping when spawned?
shadow image i think
is that in details?
Yeah its one of the options in the details panel on the scrollbox, I had the same issue with a giant dark circle that appears when scrolling
Holy shit, thank you. Next beer on me. That was driving me absolutely nuts. I have no idea how, but there was actually a texture and a tint assigned to that variable.
I will sort it all tommorow
Get the player controller and get the camera from that. Widgets shouldn’t generally replicate so it’s all local
well if they're spawning at designated spawn points in an array, remove that point from the array each time you spawn an object
he's gonna use get player controller 0 in a multiplayer context now hehe 😄
I have it set to spawn the actors randomly.
ok, then after spawn, get overlapping actors, for each loop, cast to that bp, and if successful destroy self
So simple, yet so genius!!!
Ill check it out as soon as I get back, thaks
how do I get a float to have a target input like in this image here? I dragged off my target and chose "set view pitch min" but it comes without it
That target is there because you’re setting the View Pitch Min variable of an arbitrary actor of whatever class that is
When there’s no target input that means the class instance will be setting it on itself
If you are intending to set your own internal variables then you don’t want to have the target node. If you really want to be setting data values on another actor then start with a reference to that actor, drag it out, and say set View Pitch Min.
But you generally don’t want to set values on other actors
thanks got it, why is it not a good idea?
It gets messy. Ideally things should be the only things to modify their own values. Most
Programming languages are explicit about this but blueprints don’t allow you to be strict about it
More generic term is encapsulation. Things should be allowed to modify their own state and call methods on other classes, but should never modify state directly on another thing without the use of a method.
While not specifically logic breaking, encapsulation allows systems and things to be easier to follow. You know that something is affected by specific things instead of... from anywhere.
thanks makes sense
Anyone have any opinions on writing C++ vs scripting with BP?
The officially supported opinion and the fact will be it's always better to use a mix of both, rather than treating it as one versus the other.
C++ generally for core systems and base classes, BP for BP exclusive things and quick gameplay actions. The mix is up to you though. Doing most of it through C++ and only using BP for asset referencing is equally as valid as doing everything in BP and using C++ only to declare structs, enums and expose things to BP, depending on the game of course, some games will need a heavier mix of C++, especially multiplayer ones.
For me, C++ for generic systems and infrastructure, BP for gluing them together for gameplay.
Yeah same thing was bugging me, I didn't realize it was a scroll box setting that was messing with it until later on XD
I don't think this is going to work, the widget component and camera are already inside of the BP_ThirdPersonCharacter and I'm trying to set the widget to always face the camera. When I do it with the widget and camera vectors, it only affects the character the client controls. I.E. the other characters widgets will not rotate toward the camera
You shouldn't be doing this anyhow. Rotating stuff to face the camera is expensive. You get 30 widgets, that is 30 things that need to be rotated to face the camera every frame.
Avoiding screenspace isn't the answer, using depth projection is. One of the reasons I really like the indicator system in Lyra.
I would be curious to hear more on this. Sounds like it’s just doing some sort of world space calculation to infer the size based on distance from camera? Is this built in or custom implemented in Lyra
Trying to do depth projection made too many issues for me
The code already exists in engine, Lyra's indicators just made use of it. Running AFK for a few, but I can dig it up after.
Also I was going to find a way to not need to do it every frame, just when a camera is moved/rotated
Hey, i have a large planet in my games sky, 3200 scale - the scale is causing it to use 1.5ms in rendering time. Things i've tried to fix it:
- changing the material
- turning off shadows
- turning off lighting
- turning off reflections
- turning off collision
Also i should mention it's absolutely the sphere mesh itself as checking/unchecking visible is what causes the performance drop. And I can't fake the size by making it small and bringing it closer due to volumetric clouds being behind it
Event driven stuff is a worthy goal, but rather pointless in the end if you have any sort of consistent movement game. This would only help people who AFK and nothing on screen is moving. Because you need to update the WidgetComponent that moves, and update them all if the camera moves. Which becomes a complicated task in itself that you could end up paying even more for. What if everything on screen is moving and you're moving the camera? Without an extra check per actor, you're paying the cost twice per frame now at worst case. And you should always code for worst case.
Let me get a video, maybe theres a solution using screen space still, I already modified it to fake/change depth perception for yourself, but distance from another person is becoming a factor
Depth is just a distance check mostly. Component to Camera distance. But unless you have control over the container of the widget, which you don't with WidgetComponents, you have to give the owning component to the widget in the component so that it can do that itself to scale it's own contents.
How do you do distance check from yourself(the same widget on another player) to change the size of their widget on your screen though?
Without changing your own lol
It's per widget.
You pass the component housing the widget into the widget via GetUserWidgetObject or whatever the call is. Cast it to the widget it's showing, and set some ref as Self from the widget component. Then in the widget you can distance check that widget component ref to the camera. Local camera location can always be retrieved anywhere via GetPlayerCameraManager
That will allow a clients widget to be a different size than the same widget on a different client?
Widgets aren't networked. They're all local only.
Maybe I'm not explaining my problem well enough. The widget on another client should appear smaller the further away you get from them. Currently it stays the same size no matter how far you run if you look in their direction.
Meanwhile your own widget should not appear to change size
I was mistaken on this. I swear they used to use some calls in the LocalPlayer or PlayerController that did this. But I think it's roughly the same. They just do a basic dist check it seems. Like here in Project, this is a case with the componentpoint setting. It just dist checks to the view's location to the component's location
It wouldn't because widgets aren't networked. A change to a widget is only ever going to affect the client it changed on
World space fixes it which is why I was looking for a solution there
You're explaining it fine. You're just not understanding. You have two clients. You have a widget component on some chest actor. The chest is 200m from ClientA. It is 500m from ClientB.
On ClientA, the widget locally ticks and is scaled to match what it should be at 200m.
On ClientB, the widget locally ticks and is scaled to match what it should be at 500m.
ClientA does not care about the fact that ClientB is 500m from this actor or widget because it's doing this locally for itself.
ClientB does not care about the fact that ClientA is 200m from this actor or widget because it's doing this locally for itself.
And on top of this, if for any reason you ever support local coop, RIP world space widgets. Cause you'll have Player1 fighting over Player2, cause they're in the same world and machine unlike ClientA and ClientB who are on separate machines that only need to do it once locally.
If there was an object in the world that I needed to do this it would be easy, but the widget is on the character itself
Maybe I don't understand then, because You are basically making the same widget two different sizes at the same time on the same client
No.
This is what I need
I'm making ONE widget a certain size on one machine.
I'm making a completely different widget, that just happens to be associated to the same actor on another machine a different size.
Which is what I mean when I say they're local only. Each machine has a widget for the actor. Each machine locally sets the size differently for their own widget for that actor.
Think less networking. Don't treat the widget as replicated. Think about it from a singleplayer perspective. This client has a widget for this actor, and that is all that matters.
Alright, that makes sense, how would you code that though? anything I put in the widget affects itself
It should affect itself, from the distance to it's owning component and the local camera.
ah, distance from component to camera, 😅 ill try this
Thanks
🤔
Made sense before, now I feel like its going to affect both again
try not to forget how self works
yeah, no matter how far i run, the camera is still the same distance away from the widget
is the camera not on the char?
It is, but i need the widget that is on another client/character to change size
while keeping own widget same size
so I need distance from other client widget to camera
Im probably thinking about it wrong again
or distance from this camera/char to the other actor instance
no
you really shouldn't try going for multiplayer as your first game, esp. without having the basics down first but yeah
you can get refs by interacting with said instances, line traces are one way
get actor of class with for each loop is one of the worst ways to do this, tho it has its uses sometimes.
Pending on what you mean by first, It's not. I'll never learn stuff about multiplayer unless I start doing it.
if you want to learn #multiplayer start with the pins in that channel, especially the compendium.
but I'd recommend getting some more practice on UE basics first, even if you made a game in other engines.
The owning actor needs to pass the widgetcomponent to the widget.
This is still going to be an adjustment on tick right? Curious why doing this is meaningfully more expensive than rotating?
There are many other factors.
For starts, Widgetcomponents are SceneComponents. Which means that every time anything they're attached to moves, they move. Minor cost initially, but it starts hurting as you scale up to dozens or hundreds of actors on lower end platforms.
Second is that WidgetComponents do not collapse their widget hierarchy when no longer in view. This means if you have a large map, and a bunch of stuff has widget components, even a simple widget with a border and a textblock to show a name gets insanely expensive even if their widget component is stationary because of slate prepass.
We dealt with that on Red Solstice 2. We have large maps with literally hundreds of widget components. I think some of the medium sized maps had something around 500-700 of them. Lockers, pickup items, other characters, etc etc etc. Most were literally a border and a textblock. But we were paying over 2ms on a decent machine for slate prepass for it all because it was just a fuck ton of widgets.
And don't forget that CPUs are absolutely wonderful at doing work in order on simple sets of data. Ticking through hundreds of registered indicators to see if they should even be considered for display before doing the majority of the work goes a long way.
This seems to be a set of arguments not to have needless widget components. I guess you’re saying to only spawn the widget into screen space when needed and imply that it’s in world space by sizing dynamically.
More so than depth sizing being faster than rotation adjusting?
More saying that something like the indicator system is far superior to widget components.
But I would bet that comparing the rotation of world space, to the depth projection of screen space. I can almost promise that depth will win. Finding distance is super cheap.
Ok I’ll look into it later
i have these 2 child actors exo skeleton from marketplace,Implemented them into my project but its suppose to be attached to this players mesh etc but its not.
sockets also are named right and skeleton has been set to work with it
when playing ingame the exoskeleton does not appear at all nor no errors
I'm currently recreating a lot of the stuff from the Cropout sample to learn and I've encountered a strange issue. This batch of code always returns spawn as:
Blueprint Runtime Error: "Accessed None trying to read property Spawn". Node: Placement Mode Graph: EventGraph Function: Execute Ubergraph BP Player Blueprint: BP_Player
As far as I can tell my implementation of the interface and UI is almost identical to the sample's, but I'm simply expanding upon the building system for my project.
Any idea why I'd be getting this error?
Question , why would a skeleton act this way on a character?
im using a BP that overrides the default character with my own.
so im gessing the controller is not referacing my sceleten corectly ?
Either your SpawnActor node has an invalid class input, or it's failing to spawn due to collision issues. So it's returning null and you're trying to use that right after on the PlacementMode function.
Ah it can return null if it collides with something?
I guess I've never had it happen before so I wouldn't expect that behavior
You can reparent an animation blueprint or create a child if you want to change the skeleton.
Doesn't seem like it is a collision issue as even when setting the spawn method to always spawn it still returns null. Is there a way to check if its an invalid class? I wouldn't think that's it but I guess it is possible
Class should have an IsValid function for it. I don't think it has a macro like pointers do, but easy enough to feed it to a branch.
Yup, that's put me on the right path -- the class is invalid.
Now my next question is, what makes a class invalid?
"reparent"
had not herd of that
I'll grab a screen shot of it for ya, one minute
Dunno. Usually just not setting it.
Yeah that's my experience in the past but it shouldn't be the case here. It seems like when the interface sends data it gets, for lack of a better term, "lost".
Hey vy'all! I have a data table where character names are set, they're stored in an enum--I want each character name to render as a different color in the "character name text"--how do I do that?
Shouldn't be. How are you pulling the class?
not sure what I change that to 🤔
If your anim BP is already set to your skeleton then the animations themselves probably haven't been retargeted to your skeleton
Plug the Enum from SDialogueInfo into the bottom of the Select. Then plug a MakeLinearColor into the top select entry. Then set them all.
thank you so much!!!!
Well I feel pretty stupid, in my messing with this to figure out what was going on I never set the class reference in the original event call. This helped me realize it, thank you so much!
Always something simple 🤦♂️
collision was still the actual issue though
!!!!!!!!!! your right, it just hit me that the idle is working ( its my own idle) its the run jump etc from quinn that is not working
now to find were I set that
Just locate the anim you want, in this case it is probably the run, and right click -> select retarget -> choose your skele
Then make sure you swap all the references in your anim BP
You can retarget entire anim blueprint to diff skeleton
At least in UE 4
Alternatively there is also anim blueprint template, should you need multiple skeletons to use the same anim blueprint.
thanks, just need to find were they hid these default clips
Having some issues with this solution, I think because it converts the enum to text before setting so maybe the color info is getting lost, or I need to set the color specifically somewhere--I'm very new so prob not doing the solution right
thanks that did fix the skeleton , but the retargeted clips are a bit goofy.
any recourses on ere I can edit them ?
You can check the retarget manager (I forget what its called) to ensure the bones are being mapped properly. Aside from that you'd need to change your skeleton iirc.
got it working , thanks
got it working after some tweaks
bump
Inspect it using the modeling tools and try remeshing it if it has an excessive amount of tris. But also do proper #profiling using Insights and the like to see what exactly is causing it
Does anyone have experience with enhanced inputs in blueprints? I am struggling a bit.
I have movement working, but my main problem is a bit more complex.
I have a gameplay ability that I want to call "move" within. In order to call move I need to read the Input Action Value reference into it. (FInputActionValue&) And I'm not sure how to go about pulling that
I have access to the player character within it and the player controller etc if that helps
Wdym by move within?
What I have set up is a branch.
If skill range <= Target Distance -> return true.
Which then activates the skill
If its not true I want to tell it to move player towards location and try again.
I have a function that works with this but it needs an input action value so I know if there's anything conflicting with it.
think i got it
yeah got it theres a simple move to that works... Kinda needs some polish and other factors but for now it'll do
Yeah I don't think input is much use here, isn't that something that is evaluated every frame.
Would just look at how top down template does it. Probably with simple move to
yeah simple move to is nav mesh based.
It KIND of works but I need to add some stuff to it or overwrite it so if it reaches the location it knows to activate the ability. but for tonight i'm happy. I can now run towards and just reclick
Might have callbacks like on move completed, not sure.
yeah i need an interrupt or something too
because it keeps trying to move on interrupt
I'll take a look at it and figure it out
Maybe use a move to instead simple move to, there should be pins you can use and have a branch that checks if the movement result is successful.
Hi yall. Been trying to set up interactive objects with screen space frames around them ala Deus Ex, using this forum post as a guide to at least help me convert a 3d bounding box into a 2d one in screen space:
https://forums.unrealengine.com/t/scene-actors-bounding-square-screen-space/459787/2
Followed the solutions blueprint set up pretty much to a T, which everyone in the thread agrees works but then the result I get is a 2d box that bounces around the screen instead of adheres to the object I want it to as seen in the gif (the one with the red box.) I'm super stuck on this one if anyones got any ideas?
Hello, I cannot reproduce the tighter fit bounding box solely in Blueprints, but I can get you everything after that point, and the simpler 3D-bounding box in 2D space method: For this example, I simply create the widget in the level BP, and assign it to my Actor. Level BP: Next in the widget, we create an override function for OnPaint, t...
Im doing something akin to this for my screenspace world location widgets I think.. not exactly a box but same principle i'd think
ideally I'll want it to be a widget pretty much exactly like Deus Ex instead of just debug lines, but I figure this is at least a good starting point for getting the 3d->2d bounding box data
Looks mostly like a centered widget with bounds applied to its size
I asked this in #virtual-reality so I have a little base but it ddin't work : how do I make a bp allowing me to play sound from an object while grabbing it only ?
Additionnally, with the laser I've been working on last time, I want it to react to a specific blueprint only, what do I need to do from this point ?
@tight moonbest would be to have each object know when it is being grabbed and produce the sound when it is; regarding your line trace (laser), you can check if the Hit Actor is derived from a given class or has a tag, and react only in that case. Doing Get All Actors of Class on every tick is not very efficient.
Well, here comes the dreadful question :
How do I do that 😔
@tight moonregarding the grabbing, you start with having in each actor a boolean variable which is set to true when the actor is grabbed and to false when it is dropped. Then you check that variable and if it is set to true you use that information to play your sound.
If they share a common base, adding the bool to the class should be fairly straight. Then casting the hit actor to the grabbable base class and updating the bool would be the next stepp
For the sound I had something like this in the object blueprint. Although it wouldn't work since the input wouldn't even start. I need the sound to play only after using the actual input.
You are setting Is Held to false on grab, so it will never go past the Branch attached to the input. It should be set to true on Grab and to false on Release/Drop
So, added the OnDropped event, the variable is set to true for the grabbed and on false for the dropped. Moved back the rest to the pawn but still nothing 🤔
@tight moonyou need to apply some basic debugging techniques to see what is happening and what is going wrong. For example, put a Breakpoint on the Branch which is called from the input and follow the code from there step by step
Do you see the output of that Print String after the branch?
Well... nope, nothing happens after just pressing an input. It seems it doesn't reach the branch.
If it never hits the branch it means your input event is not being called
Which very likely indicates that input is not set up correctly
So your first fix is to make the input work properly
You mean, the variable ? There's a print right after the input and this one works.
That's then different from the code above
If you added a Print String immediately after the input event and it prints something, then the input works. If it gets to the Branch and doesn't go past it, it means the boolean variable which controls the branch is False. You need to figure out why
To be sure there's no confusion : here's how it looks like atm. The first screenshot is in the object BP, the second in the pawn, the 2 are separated (the input won't work if in the object bp). That's where I am rn, and I don't really know why would the held variable be false.
A design principle is that inputs are handled through the player and, if non player actors need to be informed about it, they get a message from the player (like it already happens with the Grab/Release events)
PCG can be packaged just fine -- shouldn't you try to fix the packaging issues rather than resort to the drastic measure of a complete rewrite?
You can ask in #packaging or #pcg-framework for assistance if you provide more details about what doesn't work in a packaged build!
Well that's the moment I get stuck : I don't know how to make the branch trigger, while making sure it only triggers when grabbing the object...
https://www.youtube.com/watch?v=EM_HYqQdToE should be a good starting place if you havnt watched it already
Announce Post: https://forums.unrealengine.com/showthread.php?101051
This Training Stream takes a look at Blueprint Communication. We find that Unreal Developers of all levels can sometimes struggle through the concepts behind moving data between objects. So in this video we'll take a look at the different ways to make Blueprints talk to one an...
thank you, I wanna try both of the possibilities.
Does anyone know if it's possible to limit the gameplay tags that are shown for a variable selection to a specific .ini?
you can apply some custom filter
/** Returns "Categories" meta property from given handle, used for filtering by tag widget */
GAMEPLAYTAGS_API FString GetCategoriesMetaFromPropertyHandle(TSharedPtr<class IPropertyHandle> PropertyHandle) const;
Set Array Elem literally doesn't add it. The exec only goes when the ItemObject is valid and it goes through and it prints Got Here and false aka the element is not valid , after I literally just add it.
So if you do it in a for loop you don't need to set it to true?
seems your equipment array is empty
I usually pre-populate them, and assign a specific index per slot
Because im copying this functionality from an already working system and its not set to true there though.
it doesnt matter how yo do it, if the element doesnt already exist
but then that system has a valid array entry at the specified index
you can verify this by either inspecting the array at breakpoint
or do "IsValidIndex" on the array
ok I'll do just that. Thank you so much!
(it wont fix you missing entry problem)
you need to resize the Items array to how many slots you have (-1)
I checked that to true and now it's adding it
that means if whoever equips something, specifices an invalid index, they'll get the equipment added anyways
I just the index to zero to test it
index 100 will also work
So I need to do do this then. How do I do this?
I suppose you got a NumberOfSlots variable?
Yea I can add it
so on beginplay or init you'd just take the empty array and resize it
to numberOfSlots
Ok
It's weird because in this inventory system I have from a tutorial, I don't see him doing that anywhere
well are the slots added manually to the variable?
thats another option (just tedious and not very flexible)
In his system, there's a grid with Tiles, and each Index corresponds to a Tile
But he never actuallys sets the size of the array
there's really only those 3 options;
- Resize with array variable
- Manually add slots to the array variable through the details panel
- Let newly added items resize the array
yea yea this is great information, I'm writing this down
So, regarding my situation... turns out I just needed to set the variable's default value to true...
That said the variable works constantly, I still don't really know how to make it grab dependant (I've seen the link for the bp video, but I don't really have the time for the 2h and I also don't have any sound on my end).
You are basically asking someone else to do the work for you, that is not the spirit of this community. This said, look back at the logic of your code. When you grab an actor, that actor is notified about the grab so it can act on it. That is your entry point for additional logic (like playing a sound). Same for the release.
If you want the grabbed actor to be notified about something else, you can implement a similar logic as for the grab/release. e.g. player presses a button --> input event is triggered in the player --> player checks if it is holding an actor --> if yes, held actor is notified about that event
I think you may greatly benefiting from watching that blueprint communication video which was recommended to you. If you have no audio, you can watch it with automatic subtitles.
And a beginner would end up spending more than 2 hours anyway learning blueprint coms.
If watching the video once suffice, that do be a very small price to pay.
and we all value our own time
I didn't know the video existed. Took me months before it clicks on reference and blueprint coms.
same
additionally, what people really need to start doing is leave their BP spaghetti mess and just think their issues on paper. first establish dry logic what has to happen, then implement it
months of accessed none
videos i watched (youtube tutorials) always just "we fix this by doing isValid"
which is kinda true, but at the same time not. They never went into the specifics of why it would be invalid, and what that ment
It seems to me that what we consider logical isn't as easily graspable if you're coming from outside the world of some programming language
even if the logic can the be quite literal
IF X AND Y DO Z
but people live their lives making conditional thinking and decisions all the time
they do indeed
so just to the same but for the problem in code
IF I want to get on that bus THEN I have to run
it's all the same
IF Starving THEN Eat()
the discrepancy starts with state management though. when they flip the switch, there is no bLightOn, they don't think that way. it just...is, light magically happens and electricity keeps flowing 😄
it quickly spirals 😛
so I guess realizing that might be quite important. "oh, nothing is going to magically know the light is on, I need a variable for that"
Guess there should be some entry level basics, walking through very basic things in some in-editor tutorial thing
nobody really used that feature much huh
itneractive tutorial...that would be something
and you cannot use UE unless you pass 
"make this door open, by using the BP_Key, blueprint and setting op the logic for interacting with the door by using the assigned Door_Interface"
hmm seems this learning interface has been removed? 😮
this little guy
What are peoples thoughts about storing actor references in a data asset at runtime? The data wouldn't need to be saved on exit or anything. I'm just trying to think of any reasons why it might not be a good idea lol.
you break the static nature of a data asset , i guess
I do it myself currently, but I dont really like it D:
These days I usually wrap DA reference in some uobject/actor instance for that dynamic data
To make it laugh. 🙂
I'm wanting to utilize the fact you can get a data asset from anywhere and possibly use DA as a way of having runtime groups of names/tags actor references. This does mean wrapping them in a uobject/actor wouldn't be suitable.
Is there a reason you don't like it? Or is it just that they're supposed to be static which makes you dislike it?
I actually do that. It's really fun and more clear , especially when the logic I wrote actually works, it's like chef's kiss
sounds like you'd want a subsystem really
but yes, it's just because of the static part that I dont like it
im stuffing thousands of transforms in there currently, and it just sits wrong with me 😄
but it was quick and dirty when i did it , and so it just stayed like that 😛
I don't think you have access to subsystems in uobjects without world context though.
can't you just provide world context ?
I could but that would require me to do C++ lol.
Well I've just setup the DA method and it works pretty well haha. Now I can have named actor collections for scripted events. It works suprisingly well.
I feel like this is simpler than setting up a sub system. 🤔
simpler but less correct
i guess
Im normally using some world manager for actor collections etc
but requires world context , as you said
I guess that depends on what you're trying to achieve. It is nice that I can easily add references to the DA via the editor as well. Saves having to call some logic on begin play to do it.
I do feel like I've overlooked something big though but it all seems to work. I guess testing is required.
huh, can you add references in-editor ?
Yep, it feels wrong but so right. lol.
xD
idk, i like doing the beginplay setup, as then I know it just works, for all my actors, regardless of streaming in/out and whatnot
You can still do that for dynamically spawned items. 😛
It seems to handle level changes too. In editor, it just says the actor isn't loaded but updates when you load the level there in.
I guess someone could clear all the refs with a single click. 😅
Wasn't for anything specific but it could be used for Doors, NPCs or collections that contain the actors for a scripted event.
So the only issue I've found so far with adding the refs via the editor is that if the actor is destroyed at runtime, it'll flag that it's unloaded instead of saying its not found. 🤔 Not sure it's even possible to portray this with just a soft object ref. Maybe dynamically adding and removing them is best.
Yes it is! Superior
this solution opens so many doors
Hey guys, got a question. ive made a widget/menu when pressing the start button of my controller. Problem is, I cannot seem to go back to my character after making a selection. Once I'm in the UI, the inputs don't listen to the inputs of my character anymore. And within the UI, i tried giving it a ''Close Menu'' button.. But I cannot figure out how to reactivate the movement of my character. (Everything works except moving around).
First image is inside the character BP, second is inside the Widget graph. Any ideas?
Hi guys
Fsr my Destroy component node is not quite working - any ideas why?
The one from reset event
This is like a building system
Reset is triggered by cycling through parts
https://forums.unrealengine.com/t/orthographic-camera-and-multiple-window-sizes/2021809
Anybody here have a solution for this orthographic projection camera issue? When I play in a new editor window and set it to the size of a mobile portrait mode, it becomes really squished. I can’t figure out how to fix this with the current parameters.
Hi all, I’m using the updated Orthographic Project from UE 5.4, and while the game looks fine in the main viewport, when I play in a new editor window and set it to the size of a mobile portrait mode, it becomes really squished. I can’t figure out how to fix this with the current parameters. Does anyone have a solution for this?
Hey, Question:
I’m doing physics based character movement in Blueprints, and want to limit the input movement to a max speed/velocity. But allow other physics sources to affect the character freely (exceeding the max cap).
So far I have only been able to limit the velocity as a whole, which negating other sources of physics if they are in the same direction as the already capped max speed. (see image)
Any ideas?
Instead of destroying the preview mesh, if the component already exists, just update the mesh it uses.
Is it not possible to create a Widget from within a Blueprint Library Function?
At first glance it looks like it's being constructed correctly (check if return value is valid). Are you adding it to the viewport after this or have you forgotten to call "Add To Viewport"?
I want to make sure my information is correct,
Is casting to something that has been loaded into memory or into the game world free?
It’s not free but it’s not expensive
I indeed forgot to add it to viewport. 😄
Still get an error in the log though.
It is now being created and shown.
Looks like you have something broken in your tooltip
Sorry the function in the Blueprint library I'm running is called "ShowTooltip"
So it is in that function I assume. And it is "complaining" about the "Create Widget" node
Could it be the "Owning Player" part?
The rest is just variables basically.
Okay so I hope I can explain it correctly, but on the left is a part of my references on these actors and the sizemaps are huge. If i'm correct the way on the right should reduce the sizemaps, but I'm not 100% sure. Could someone clarify?
can you show those sizemaps?
How come the Get Component Bounds for a rotated capsule is bigger than it should be? Box shape has the correct size when rotated
Well they are even bigger than just this part because a UI knows about the towers and the level management knows about the UI and that level management knows about stuff in other levels and so on and so on. It's a mess and not sure how to fix it so I thought start small
This won't have anything to do with adding it to viewport, or the OwningPlayer. You have a node somewhere called SlotAsCanvasSlot
rotated box is fine
Rather than clamping the velocity, test if it is above maximum speed when doing input movement, and if it is, then just don't add more velocity from input
You can leave the Component in the parent. Just don't specify a mesh or particle system in it.
I tried that, but it still knows about the mesh 🤔 I'll take another look
Then something else in the parent links it, if you're looking at the parent's sizemap. the parent will not know about a mesh specified in the child.
Okay, I'll check thanks
@final berry As a case point. I have an AnimalBase class here. Has basically nothin gin it except for a specified special AI Controller. It's a character class, so it has a skeletal mesh. But as a noted point the mesh and animbp are empty.
B_Chicken on the other hand has a skeletal mesh linker. Because that class has it specified in the MeshComponent.
Crystal, thanks for the clarification 🙂
I believe unhooked nodes still show up in the size map. Just in case you've have left over stuff from refactoring.
Yeah, they will. Any variables as well that have been populated.
question, it gets very verbose when I need to spawn an actor which can take different values depending on booleans or some other conditions, is for example a way to have a branch node without an execution pin?, so I can not interrupt the flow, nor create 2 different spawning boxes
Im sure many encountered this encumbrance before.
Select probably
Thanks for the idea!
This is better then what I currently have, but not entry what i'm trying to do. This will halt my input movement when I'm above max speed, even if the speed is coming from another physics source and not the player input.
Hey fellas, i have a question regarding a "coding"-style in blueprint. In the picture i provided you can see "target arm length" outputs its value with other variables into "FInterpTo". This function then outputs its value into "Target Arm Length" back again. All this happens within the exact same step for the "SET Target Arm Length" here.
My questions are: Is that a common coding style here? And am I right to assume that the value of "Target Arm Length" gets read first and set at the end after wards, e.g. in C# "targetArmLength=FInterpTo(Current, targetArmLength, DeltaTime, InterpSpeed);"?
I looked into it but didnt understand how to use it really
if its usable at all in my case