#blueprint
402296 messages · Page 563 of 403
@pine trellis go into 'Options' in the launcher for that engine install, and download debug symbols
You may need to install VS to step through though
I need to work with input axis values a lot, so thought of making it a different script alltogether
In that example @pale grotto the helicopter would be a pawn, so the input would be done there
@pine trellis no
Go into the launcher, and select the options from the drop-down menu next to your engine install
There's an option in there to also install debug symbols
And C++ source code
You'll need both really to debug properly
I would still use the development option once I get the debug symbols???
In that example @pale grotto the helicopter would be a pawn, so the input would be done there
@glacial eagle Many thanks, I'll try this method.
In that example @pale grotto the helicopter would be a pawn, so the input would be done there
@glacial eagle Probably making a .h file for input and including it in the pawn ?
@glacial eagle do I just p ick the debug symbols right? not everything else ?
yep
you would override SetupPlayerInputComponent() from APawn
Add the bindings there
It's really worth looking at Epic's content examples btw
They cover all of this
Ok, I'll look into that
@pale grotto I put input events in the pawn and controller.
For a helicopter, I'd put everything that controls the helicopter in the pawn. I'd put pause and menu and other non-pawn input in the playercontroller
@pale grotto you can just as easily put all the input in the player controller though, and just have it call functions and events on its possessed pawn. That might work a little bit better if you intend to make pawns completely agnostic as to whether they are controlled by a player controller or AI controller
@pale grotto you can just as easily put all the input in the player controller though, and just have it call functions and events on its possessed pawn. That might work a little bit better if you intend to make pawns completely agnostic as to whether they are controlled by a player controller or AI controller
@faint pasture Yeah, this makes sense. I'll put it in the player controller then. Some helicopters can have different abilities, in a multiplayer games. So Adding it to PlayerController seems a good idea.
PlayerController can check what kind of helicopter pawn it has and assign inputs accordingly
@pale grotto Why not just implement the inputs differently in the different helicopters? That's sorta the point of having input on the pawns.
that's exactly why the input should go in the helicopters 😄
I guess the kind of "Input Manager" I am thinking is the pawn itself.
The fact that blueprint boolean nodes like AND and OR don't short circuit is mildly annoying
Hey! I'm working on checkpoints. Sry for such a broad question, but what would be a good approach to save/load the end-state of a sequencer to a persistant object, such as the game instance?
I've thought about "scrubbing through" the sequencer at begin play, but just assume there is a better solution to it.
What's the best way to make it so AI can't overlap with trigger boxs? I set up a custom collision object type for the AI but then they can't walk anywhere when I set it to them?
Hi, im having an issue where im using a springarm for weapon sway but its moving my character outside of my body, it there a way i can lock springarm to go side to side and up not forward and backwars
so ive created a sphere collision for when an enemy attacks that will be the point that collides with the player to register a hit. the problem is the sphere collider isnt showing in game
Nevermind just checked the hidden in game box
my next problem is no matter what position i change it on enemy or any where else it shows on the stairs and not next to player
ah
it needs to be attached to the enemy
one second
just launching up a project with this
Okay thank you
single player or multi?
@winged sentinel spring arm length?
Single player
so you are using sphere collision for your enemy right?
may i suggest something different?
If you can show me how to do it pal, new to unreal. Only second day on it
not right this second, but I can yes.
however
instead of doing it based on sphere collision do it based on a hitbox from the player
so if you open up your player
Thank you, the only reason I'm doing it this way is because I'm following a tutorial
yeah there are a ton of different ways of doing everything
but if you do it this way
@rough wing Ill take a look
eseentially the logic is If the hitbox from the player collides with the sphere from the monster it will do your attack logic
you just put a hitbox infront of the player where their weapon swing is
and that hitbox activates animnotifystates
so during a certain point of the animation it activates that hitbox and allows collision
So what component do i need to add to my player bp
Thank you
no
one sec im just finding the logic for how this works
i highly
highllllllyyyyyy recomend this course
one of the first lessons is doing exactly what you need
thats where i built all that from and it works great
@subtle pulsar How to do hit detection all depends on how accurate you need it to be. I can think of at least 5 ways to accomplish hits:
- Multiple single line traces from the weapon during an attack, 2) capsule/sphere/box trace around the weapon during an attack, 3) permanent collision capsule/sphere/box around the weapon and it is activated only during an attack triggered by an animation notify, 4) permanent "hit zone" in front of characters that gets a list of characters inside it during an attack triggered by an animation notify, 5) all attacks are simple attacks and they either hit or miss based on random rolls and current target.
^^^
#4 is currently being suggested
Yeah exactly!
It really depends on what you need it for
if you are doing that top down style like your screentshot you don'
I personally went with #2, but I need to know what bones are being hit.
need to worry as much about the verticality of the models
number 2 is great and good for equipment swaps but takes a couple extra boney steps
how can i lock the rotation of spring arm?
#2 looks like this in the end.
wiw
wow*
that is some sexy collision @proud hull
@cosmic portal you want to lock the rotation of a spring arm??
yes
@proud hull that looks amazing pal how would I go about doing that?
you would need a tutorial to run you through that
I put a box collider around the part that can do damage, in the example it was the claw of the monster. Then I use a timer to do a multiboxtrace from the start position and the end position.
oh thats smart
I setup the timer on begin play and just pause it. Let anim notify determine when to unpause and pause again.
ohhhhhhhhhhh
Unreal tell me there is an infinity loop. But there isn't? My GPU Driver Crashes while the engine was open yesterday which crashes the Editor too and since that i get this problem. (its not crashing because of the engine, its crashed while watching a video). Maybe a bug?
If I spawn 30 and more NPC and everyone fires and hit each other and the player, it may spams to fast the events for the engine that it "thinks" there is a infinity loop?
The Performance is good enough for me, 8ms Gamethread with this unplayable amount of enemies.
shit i may change over to that
at the minute i have this but the sphere isnt staying with the weapon
yeah thats great. I have it set to a straight hitbox that turns on and off with animnotify
Did you attach the sphere to the weapon?
you need to attach
i moved it to the weapon
Parent socket it is called in details.
Let me open my project and I'll get you all some screenshots of the trace system I'm using.
click on the sphere
go to details on the right
if you cant find it search for parent
This was the reason I personally needed more accurate hit detection: https://cdn.discordapp.com/attachments/748189959999193221/774428517567430696/2020-11-06_18-18-23.mp4
oh yeah thats looking slick man
i moved it to the weapon and now this happens
sort of goes around and stays there at the end
When the weapon swings, does the sphere at least move? You may need to readjust its relative position.
How many slots does the weapon have?
yeah it moves and just the one for the only attack
is there anyway to lock an axis on a springarm?
I don’t use that type of collision so I’d have to play around first before I can answer much on it. And Salazar I think you can set it to absolute rotation to true
Is there a way for a blueprint to check if a mesh is attached to a socket
Store a reference for the item
Check the reference
Set a Boolean when the items spawns (event play)
@winged sentinel uncheck inherit roll in the spring arm. I believe that is what will prevent your camera from rocking.
Just dragged off from the mesh. Will GetAttachSocketName work?
And then set a reference to that Boolean
Yeah but he will still need to get a ref for it no?
I’ll go with booleans if necessary, but I’d like to see other options first
One sec there’s actually a forum post on this I’ll link it
Hey Everyone
As an example, I have an actor BP which is just a Table and I have created a Socket on that table so I can attach other actors to it.
Basically
Also, I have a reference to the mesh
It’s inside of the actor that’s checking for a socket
GetAttachSocketName works. I use it to remove hit detection box colliders from limbs that have been chopped off.
Box collider is attached to the limb. So a simple comparison lets me know if that limb has a collider.
Ah niceeee
I'm sure there's a much better way to do this, but is there any reason it won't work?
It needs to check if the lower receiver is attached to a socket in the stock
Aside from booleans that change when a part is attached or removed, this is the only way I can think of checking at the moment
That should work. You can also skip converting the name to string and just run the equals test on the name itself.
Didn’t think of that. Good to know it can check the name as it is
Some more to go with the hit trace logic. This is the montage that triggers it:
There won’t be any issues if there isn’t a socket, right?
It will just return "None"
Great
When I used Roblox, doing something like this would cause it to scream at you since this would be the equivalent of getting a name from something that doesn’t exist
I wasn’t sure if Unreal automatically checked whether the socket existed
I'm sure that function does check that, which it then determines it should return "None".
@subtle pulsar what is your animation missing?
The notify?
You have to manually add them to your animation montage.
I couldn't figure out how to give a single notify a beginning and end so I went with making 2 of them instead. Couldn't find any notify duration or anything.
Also never bothered to do further research on it, haha.
Im trying to make a copy of my cine camera settings when i push a button on a widget. does anyone have a good idea on how to start?
@proud hull that animation montage in that part In the animation
@proud hull Ill try thanks
Somehow it did not occur to me that I don’t need an extra Bool when checking if one has to be changed every tick
Just check if it’s already been changed
This is why folks like myself should not be allowed in UE when only half a brain cell is awake
Notifies are a system for setting up and receiving events in Animation Sequences to perform external actions.
After actually reading that myself, I now realized I should be using a notify state instead of a regular notify.
Hey, i'm trying to add multiple same actor for the spotlight but i got a limit of light
What is the best way to add multiple same actor for a light ?
I need to do on bp to get access to all the same and modify them in game, like turn on/off.
this is the way i've done to get all the same actor of light, but yeah i need to find a way to not have this limit of light.
I was confuse at first why i've got an limit, and then i read that we only get a limit with the "Stationnary" mode.
Well i think i will just go change Stationnary to Movable.
"hoping it won't consume a lot in performance." 😆
Looking for a good dash solution
like Celeste
3rd Person
current ref: https://blueprintue.com/blueprint/-1r_8k8w/
Am not too sure how to explain this but I created a blend space, when idle is 0, walk anim is 400 and run anim is 1200
And i created a blueprint where you can only go at 400 speed unless shift is pressed then you can go to 1200 speed
that works pretty fine
but my problem is that when am at 400 speed the run animation plays, but the run animation is only suppose to play past 400 speed, when is 400 speed or below only the walk anim should play
So any help would be appreciated! thanks
Performance question about overlaps and traces.
I have a flying vehicle and I am creating collision warning system for it. I thought that I would use several collision volumes that would trigger when object get near. But my thinking about overlaps was flawed and it is not so simple to get it working with landscape and everything else.
How much of a performance hogs are traces. My second option is do sphere trace by channel. Plan is to put these in 8 corners shooting at random direction (basically a detection cone).
how big of a hit are 8-10 constantly running traces?
I think I will try it 🙂
@raven pilot can you take a screenshot of the blendspace
@zinc portal pretty much zero
Is it possible to search for a Bool by name within another actor as long as there’s a reference to the actor itself? This will be for a modular gun, so I need a way to check for the Bool after the two actors have been attached since they’ll be separate at the start of the game
You don't normally do that. Normally the actors just have a base class. Or worst case, you make an interface that returns your bool on those actors.
I’m sure there are better ways, but I just need to know if it’s possible for now
I know this isn't really the right place to ask but since its still BP I guess someone might know. I already posted in in UMG and on another channel but nobody is answer (could be because nobody know) but here it goes I am trying to pass some parameters to the newly created widget but for some reason when I print out the value in the new widget the string its empty
The bottom image is the UI_ServerSlot widget
@pulsar surge yes of course
Trying to rotate an actor 90deg on an event, I've created a curve between 0 and 1 and a timeline which uses this curve, on the event I'm lerping the curved timeline float value with a rotator but it's overshooting the 90deg a bit
Hey guys! Anyone know anything about collision boxes? I am making a super simple demonstration for a school project but I am struggling with something. There are 3 things in my scene. My character, an actor, and an AI character. I need my character, but not the AI, to be able to overlap with the actor (to pick it up basically). So obviously I just turn off collisions on the AI right? Well I need my character to take damage when within a certain range of the AI. So I need a collision between the AI and my character. So in short how do I:
MyCharacter overlap actor and AI
AI overlap MyCharacter but not actor
Actor overlap MyCharacter but not AI
@rose hazel You can't really 'search' for a variable in programming. That's why I said common class or interface. You have to get it from somewhere. The only other choice is to chain a bunch of casts til one succeeds.
does anyone know which one of these debugs I pack my game as? I just downloaded the debug symbols and it took a while
DebugGame is the option with most debugging things enabled
I'm not entirely sure what the difference between that and Development is, but DebugGame is the one most likely to work with the debugging facilities. Shipping has all of it stripped out, and has the best performance
your max speed is set to 1200
but you want max 600
isnt that what you said?
@raven pilot
also
I would do that in a blendspace 1d
@pulsar surge the max speed actually works pretty fine
the max speed is 400 by default, and when i press shift, it goes up to 1200, thats luckily works great
The problem is that when the speed is 400 or below its suppose to play only the walk animation
@pulsar surge the max speed actually works pretty fine
the max speed is 400 by default, and when i press shift, it goes up to 1200, thats luckily works great
The problem is that when the speed is 400 or below its suppose to play only the walk animation
try it in a blendspace 1D instead
my message didnt send
but in BS 1D is there direction? like left and right
oh, so i shouldnt use 1d?
i was watching a couple tutorials and i did everything they did and double checked and it worked fine for them
third person character BP
event graph
yea this is just a single player, a single character
put a print string at the end of that
on each one
have the target print out the walk speed
lets see if its actually getting the correct numbers first
they could be instantly being overridden somewhewre
where*
k
is it something like this?
connect the green to the purp
k
otherwise it will just say Hello
what ever is in the box or whatever it is referencing it will pop out
ohhh okay i see
its one of your best debug tools to start with
that way you can see where your logic is going wrong
nice, never knew of it, good info
throw a print string up after any logic you want to check to see if it gets there
i prefer it over breaks
nice
@earnest tangle thanks !
exactly
so now when you run
it should show on screen your walk speed value
and when you release as well
ohh
maybe
what is it
it might work sometimes adding an additional check works
right after your set walk speed
create a new boolean called SprintOn
oh kay
Set the boolean to true on the walk speed addition and false on the minus
at the begining of the logic check if that is true or false with a branch
on release check to see if sprint is on if it is set to off and continue your logic
if it isn't on you don't want it do anything
okay
ohhh
are your variables set to Reliable
@faint pasture thanks
your character movement is being processed first
make sure those variables in there are set to relaible
you walk speed
ensure that bastard is reliable
click on the variable
go to the right details panel
little box will say replicated
make sure its checked
sorry not replicated
reliable
dont need it repliacted
try that first before adding the branchs. that may fix the issue
one second and no thats replicated movement
okay lets try something else
i don't think that will actually work here
you are having a weird issue
it could be the system isn't getting the information correctly
hmmm
theres one thing i see on these blueprints
often
is a validated get
try this
follow along with me
okay sensei
this i think has the highest chance of fixing it
kay
right after your button press
yes
drag your character movement out as a get
right click on it and press convert to validated get
nice, like this '
like this ?
before
we want it to do this first
from the target drag off and type self you want to get a ref to self here
I am hoping this fixes it, if not I think its an issue with the BS. That logic should work just the way you have it
is it from this target?
you dont want that is not valid connecting there
we are just doing the 1200 walk speed right now
we will do this again on the release
ok
with the way you have it setup
if this was done with a custom even then yes thats how it would be done
k
so on the validated get drag off from the target and get a ref to self
side note I was just reading into this and I think alot of people do this with functions
so once you have your ref to self
drag off the character movement into the setwalk speed target
something like this?
one second
k
I dont get it, I downloaded the debug symbols and packed the game in gamebug mode my game crashed but it gives me the same logs as before? where is all the good stuff the DEBUG GAME option is suppose to have?
sorry senpai im just going along with you
you can actually delete the ref to self
i dont think we need it here
okay
so now
no problem dude
if the is not valid
off*
throw another print spring in there and just type in the box something like Character Movement is in Valid
this will debug it right away for us and tell us if its coming back valid or not
if its not coming back valid right off the bat from the press then there is an initialization problem with the original values
k
print string* lmao damn my bad keyboard skills
change the print string to either in validor is not valid
it doesnt really matter we know what its doing but good not to confuse ourselves lol
then do a quick test
it shouldnt break anything and should tell you wether or not its valid
ohhh wait
take off the set false for the sprinting
connect that back to the set walk speed 600
other ideas i was thinking is you may need to check the walk speed value
if this doesnt work we can hard code the walk speed
kay
let me know what happens after test
k
This won’t fix the issue yet
Or shouldn’t
It’s just a debug thing for now
Just to see where it’s screwing you
No you see how you have it connected to the validated get
The on release should just be normal for now
Not connected to the validated get
Just have it go right to the set sprinting false
like this?
What we are essentially trying to figure out is: is the walk soeed being setup correctly and the blendspace isn’t doing the wrong thing or is the blendspace correct and the logic is wrong
Yes now connect the set sprint true to the validated get
oh i see
And connect the set sprint false directly to the set walk speed 600
yes but the walk speed is 400
I mean whatever you had the release logic doing before we added the get
Just have it do that
Release -> set sprint -> set walk speed
Does a message pop up in the upper left saying is not valid?
no in the midde
lol
All you’re doing is setting what they are currently walking at
Not what the max is
When it’s released and pressed you need to set the max not the current
Fuck lmfao
You need to ensure the max speed is being set and reset
Not the current
lol
im just getting you the command
dont be to hard on Evan
fair enough
🍉
you mean the sprint variable?
alrighty
yes
we can actually use blueprints for this
i think thats where you are getting fucked up
my max walk speed works
how does the system know
Also don't need a validated get since you know that component exists in the character.
hmmm
You need that input for both set nodes
his issue is
that variable he created is not actually changing the walk speed
and he doesnt need it
That is a variable within the character movement component, he didn't create it.
if you get a character movement
so delete validated node?
oh thats why i asked haha
Oh that character movement one?
yeah set it back the way you had
kk
I assumed that was the auto-generated variable of the character movement component.
i got the character movement
k
Unless he uses them for animBP or something
Oh, hehe
no
hahaha
just disconnect the character movement for now
we are using that for something else
lets go from the begining yeah?
delete it all
ill work with out
Oh, hehe
@proud hull oof yea, the speed values worked okay but the animation was working well, it was stuck at run animation
yeah that means your max speed value isnt being set correctly
delete it all
@pulsar surge alright then
k
you want that original node you had
so just a get?
ok from released
mhm
Simplest sprint:
bahah yep
Basically had it the whole time
yep it was basically what i was going to do
this is the most simple way you can do it
the only thing i would do is add a print string and connect the output of the sets to just make sure you are getting the right speed
k
But the issue is @proud hull is that he basically already had this
his original picture is this basically
the only difference was he was setting the booleans
He just forgot to hook up the 2nd set and was getting an error
Good afternoon! I may be trying to do the wrong thing (brand new to UE4) here however:
How does one access an asset from within a blueprint? I'm trying to figure out how to add buoyancy/swimming when underneath the new water system in 4.26. I have a "Water Waves" asset which has a wave source for the gerstner waves. I figure I can tie into this and do some logic within the character blueprint, but I can't for the life of me figure out how to tie in an asset reference so that both the WaterBody and the Character get the same wave generator source.
Edit: I've tried adding a variable to the FirstPersonBP, but can't find the right type
Alternative sprint, toggle it on/off:
and yes senpai thats correct
test it and see what it does and what values it orints out
if the values are 1200 and 400 the logic is correct
Good afternoon! I may be trying to do the wrong thing (brand new to UE4) here however:
How does one access an asset from within a blueprint? I'm trying to figure out how to add buoyancy/swimming when underneath the new water system in 4.26. I have a "Water Waves" asset which has a wave source for the gerstner waves. I figure I can tie into this and do some logic within the character blueprint, but I can't for the life of me figure out how to tie in an asset reference so that both the WaterBody and the Character get the same wave generator source.
Edit: I've tried adding a variable to the FirstPersonBP, but can't find the right type
@gentle pulsar is the water waves a particle system?
if the values are 1200 and 400 the logic is correct
@pulsar surge alright will do that now
It's a "WaterWavesAsset" I think
for the sprint
@raven pilot so was the original problem that your blend space was getting stuck in sprint?
Run animation I mean
how do you get the set to green one to set with the blue targetr
@proud hull can you add me i have a question
@raven pilot so was the original problem that your blend space was getting stuck in sprint?
@proud hull yep
how do you get the set to green one to set with the blue targetr
@whole mirage what do you mean
@whole mirage drag character movement to your graph:
okay ill try
look at you go
@whole mirage then drag off that node and type in "max walk":
ill try thanks
looks like its working?
@raven pilot so it is your blend space that needs the values changed.
ohhh i see
It's a "WaterWavesAsset" I think
@gentle pulsar did you watch a tutorial on it? my guess might be having like a socket for the effect to come from
and maybe like a condition for when to play like only when movement changes in water
the animations are weird
thank you so much @proud hull
yeah so like I was saying earlier Senpai if we do this and you get the correct values printed out
@raven pilot your blend space isn't setup for the values of 400 and 1200
You can easily change it in your blend space
Max of 1200 and have 3 sections, each would be multiple of 400
0, 400, 800, 1200
@raven pilot your blend space isn't setup for the values of 400 and 1200
@proud hull heres my BS
Actually that looks correct, hehe
Let's see your animbp
Where you set the values
from character movement
anim update event specifically
oh okay
hey can yall help me with something real quick? im trying to access a boolean from another blueprint and it doesnt like it
@gentle pulsar did you watch a tutorial on it? my guess might be having like a socket for the effect to come from
and maybe like a condition for when to play like only when movement changes in water
@raven pilot No tutorial as it I imagine the preview is too new.
The tutorial I did before trying out the new water system in 4.26 used a physics volume set to "water", however that'll just be a cube.
The water system has a socket for the Water Waves Asset Reference but I don't know how to add a similar socket to my blueprint
@lime mason What does the error say?
The property associated with Is Breaking Constraint could not be found in '/Game/ThirdPersonBP/Blueprints/ThirdPersonCharacter.ThirdPersonCharacter_C'
@pulsar surge @proud hull heres my BP
why do you have vector length squared in there
Change that to what @pulsar surge showed
should that not be just vector length
How many times per second is behavior tree being executed?
@raven pilot No tutorial as it I imagine the preview is too new.
The tutorial I did before trying out the new water system in 4.26 used a physics volume set to "water", however that'll just be a cube.
The water system has a socket for the
Water Waves Asset Referencebut I don't know how to add a similar socket to my blueprint
@gentle pulsar this is probable to advance for me but the asset is a particle? like what is it?
@lime mason compile and save everything, close and reopen editor?
Common tech support "reboot?"
why do you have vector length squared in there
@pulsar surge hahaha thats what the youtubers devsquad showed me to do
They are super fast, that's why
Yes, that should work now
ayy there you go
kay lets find out
@pulsar surge @proud hull YOU GUYS ARE NOT GOING TO BELIEVE THIS. IT WORKED!
WOOOOOOOOOOOOOOOOOOOOOOOOOOO
i would believe it because your math is all getting fucked up there lmao
@proud hull why did that work restarting the editor
Yeah, 34.6 would equal 1200
lol
lol
@lime mason normal editor bugs, when all else fails, maybe a reboot works.
@raven pilot Not a particle system, it's ... a class? UWaterWavesAssetReference I think
anyways
lol
glad it worked for you Senpai
@pulsar surge thanks men, i wonder why the tutorial told me to use vector squared tho
Tbh we should have checked that first but that’s all part of the debug fun. Hopefully you learned a few things anyways
They are probably doing additional logic somewhere else
Or setting the values differently
@raven pilot Not a particle system, it's ... a class?
UWaterWavesAssetReferenceI think
@gentle pulsar oh kay, do you think you can make the waves come from a socket?
Tbh we should have checked that first but that’s all part of the debug fun. Hopefully you learned a few things anyways
@pulsar surge hahaha yea i learned a lot, am super new so it was a goo learning experience
I do that for projectiles
oof yea thats what i was thinking
And senpai feel free to add me and dm me anytime with questions
I’ve just opened up a game studio and I am doing a ton of learning and dev work right now so I always love a good debug practice
@raven pilot This is where my knowledge really runs out unfortunately. In theory in unity I'd add a variable/property to my class like UWaterWavesAssetReference WaterWavesReference; and then I'd be able to attach the asset. I have no clue what the equivalent in UE4 is, or if it's even possible with blueprint... maybe I have to do some c++ instead to make this work
I’ve just opened up a game studio and I am doing a ton of learning and dev work right now so I always love a good debug practice
@pulsar surge thats sounds really great, I hope your game studio becomes the next innersloth
Hahaha thanks dude. Lots of work ahead but have a good team and some great concepts
@raven pilot This is where my knowledge really runs out unfortunately. In theory in unity I'd add a variable/property to my class like UWaterWavesAssetReference WaterWavesReference; and then I'd be able to attach the asset. I have no clue what the equivalent in UE4 is, or if it's even possible with blueprint... maybe I have to do some c++ instead to make this work
@gentle pulsar if you want the asset to play in water when you move, am pretty sure your gonna need c++ or blueprints
but in UE, from my very limited knowledge, an easy solution would be for the asset to come from a socket, making a socket is super simple
and then you can just program conditions or branches
I’m always looking for freelance guys so get to work learning so I cna hire you
Lmao
Hahaha thanks dude. Lots of work ahead but have a good team and some great concepts
@pulsar surge sounds great, hopefully in about 2 years when i have a good foundation i can be some help
Check out dev addicts senpai
Jeff has some $20 courses on teachable on dungeon crawlers, souls like, and FPS
They are amazing courses and after you finish even one you’ll feel super super confident. The guy does amazing work. In a month you’ll be able to start going hard if you put the time in with the courses
also has tons of youtube vids
haha i searched up dev addicts and i just got like mental disorders @pulsar surge
They are amazing courses and after you finish even one you’ll feel super super confident. The guy does amazing work. In a month you’ll be able to start going hard if you put the time in with the courses
@pulsar surge i generally watch youtube videos, i did buy a course before a few years ago when i was younger and was super excited to first get into unreal
But would you say that courses are much better than youtube videos?
yes
thats why you pay for them
I learned more in one course then i did with months of youtubing
and its constantly updated and improved
haha nice, i will probable have to try that, and 20$ is pretty nice
for $20 you get an insannnnneeeeeee amount of knowledge
is there any way to spawn a mesh, or do i have to make an actor from it before i can spawn it in the world?
add the static mesh component node
what has scared me about courses is that if I spend money on one, i get worried that the course might not teach me what i need and that i will need to buy another one but thats kinda just a weird fear, i assume its paid for a reason @pulsar surge
oh nvm, i have to select the mesh in the details i guess
but the rpg course looks like something that I would buy
agreed senpai
however
i did the dungeon crawler course (thats what the screens i provided are for) and it covers litteraly everything
even texture and material editing
anyone know why if i try to use this subclass I cannot move my player anymore?
probably because you paired GameMode with GameStateBase or the other way around
either they both inherit from one with Base or neither one does
if your GameMode inherits from GameModeBase, your GameState has to inherit from GameStateBase
if your GameMode inherits from GameMode, your GameState has to inherit from GameState
your output log also screamed at you if you mismatched them
i don't see any point in Base variations even existing
but at least all you need to do is delete the Base bit and fix the include
well i wanted to use the gamestate because it has multiplayer functionality
yah about to do taht
they work in pairs
GameModeBase with GameState or GameMode with GameStateBase can never start the match
which means BeginPlay on the World won't get called
still not working
changed from GameModeBase.h to "GameMode.h"
nvm
I forgot to change the derived class shit
Will this continueously update if I change the variable for the Game Mode?
This is in a Widget HUD
then whats an alternative for me to show text variables in my HUD?
with events/functions
@solemn musk if you change the game mode from Missions to another mode, then the cast fails and it doesn't return anything.
The Missions is a text Variable, the one being cast is a Game Mode
Ah, nvm, I thought you were asking if you changed the actual game mode.
nah lmao
try updating it only when needed
Yeah, that should work. If you change the missions variable in the missions game mode, it will updated there.
now it will run every frame (as long as the widget exists)
Event driven is always best indeed
huh
UMG bind events run every frame.
You could have the change only occur when the missions variable is updated.
Using a bind, even when it isn't updated, it will still re-set that text.
Majority of the time it has very little impact though.
If you have too many UI binds and tons of other events that must run on tick as well, then you may notice the impact.
So if my HUD has a couple components with the one Text thats needed to change, how do I update that text then from the event?
make the event inside event graph of your widget
which will change the text for you textblock
and call that even
So I was just talking to one of the instructors and to reference another variable from another actor you need to use an interface
I could not remember for the life of me what we did for that reference
Actually I think I have one similar thing of what im trying to do on a project I was messing around with last year
Just... gotta wait for it to download since its in a zip file on my Drive
@solemn musk By HUD do you mean you are using the actual HUD class or do you simply mean you are displaying widgets?
So the widget that would display your missions variable information, when it is created, you need to store a reference of it in the blueprint that updates the missions variable.
Looks like you are using game mode, so that can be accessed from basically anywhere.
My plan is to have the variable change depending on the map
So once the map loads, itll grab the variables from the Game Mode, and set them, then when the player spawns, itll show the Widget with the text set
Make a widget reference variable in your game mode, and when the widget is created it fills that reference.
Then they can interact however you like.
Direct reference is always best. Then there are multiple other ways to get a reference after that.
yeah and then the widget will update the text with triggers thatll simply cast to the Game Mode originally and set from there
In this case you will have the game mode do all the work. The widget will just display the info in game mode.
Create widget, store reference of it in game mode, change missions variable in game mode and also use that reference to change widget text in game mode.
Hello boys, simple ask : In Unreal FrontEnd, is there a way to have a better highlight of problematic value on the left filter panel ? To Avoid looking one by one, every filter :
Second one : Try to debug some hitch, i know it's not from Game Thread as on hitch, everything is on CPU Stall.
I think it's maybe come from i/o operation
just an ask about this : having every asset in one pak file can produce this effect ?
@trim matrix that's not what I meant. I don't have access to gameplayStatics from an object
I want to have access to GameplayStatics on theaeketplace version blueprint
Marketplace*
why does that keep getting triggered
I set it when initializing and it keeps getting deleted every millisecond
@lucid granite you are setting that reference to itself and it is not valid to begin with.
I currently have a carbine that’s broken up into 5 actors, but can spawn with all of them attached via sockets. According to the world outliner, none of them are children of each other, but I can find out which meshes are attached to each socket. If I have a mesh in one actor connected to a socket in another, is it possible for the second actor to reference the first via the mesh that’s attached?
The way it’s currently set up, the stock has 3 booleans - SpawnReceiver, SpawnBarrel, and SpawnMag. The receiver has SpawnAction
@lucid granite closer, but you can run that cast and set on is not valid.
Haha. Looks perfect now.
@trim matrix here’s the action spawn within the receiver. The other parts work the same way within the stock’s blueprint
strange, it had to be set quite a few times before it stopped
When the game generates random loot, the bools will all be randomized. Weapons used by NPCs will always be set to true
Tick hit a few times before it recognized the change. You can run that on begin play if it only needs to be set once anyways. Or add a do once node.
Will there be a way to make the actors children of the stock without all of the static meshes falling apart?
@lucid granite maybe add a short delay between the add to viewport and the cast node. Something like 0.2 seconds.
Can also leave it on tick, it doesn't really hurt that it runs a few times before it finally grabs the reference.
here's what it looks like with the current system. The stock was the only actor out of the 5 placed in the world
This is the first working system I've made that stays together
I think that is in begin play now and not on tick, so should be ok.
You might even be able to lower the delay, most of the time 0.2 seconds is enough.
hmm
so why does the delay make it work and what is the way around using a delay?
but also not using a tick (I try and not use tick)
You can put it on a looped timer that destroys itself once the reference is found.
It's a timing issue, so no perfect solution really.
testng
actually it didn't crash
or not crash, but the null-check issue didn't spike
I need to run that after I give the player-state to the widget
It is safe to remove that isValid node as well. The cast will automatically do that check for you.
nice, that will make it shorter
also
that function fails in the widget so that is why I am passing it in via blueprint
I am thinking that maybe creating a C++ timer that loops until that function works may solve the issue.
If you are using C++ use OnRep, if blueprint only, then you need some trickery.
what is OnRep?
on replicate, but not sure how it is used during initlization
actually I think I was told that widgets don't replicate
so I don't think I can use that here
The problem is you are setting a reference to the player state, which is still null when that begin play is called.
I need my widget to send a message.
So maybe sending it to the Game-State then to the Player State (because it has RPC) then back to the widget now that the message is replicated.
I know I can get the Game-State easily in the widget so maybe that is the way to go.
I found the issue with my Widget not updating, I think because I had a startup animation so the text wouldnt change.
When the widget gets created it makes the text slide in for a neat affect
I had a test one without it and it seemed to work
wait nvm I mustve changed something on the actual widget cuz it seemed to work even with a slight animation
bRuh
so this worked, I set the player state ref to the widget object and then I called the function that binded the delagates
I managed to make it work, since I am using different Game Modes for my games actual modes, i had the detection use the other Game Modes widget instead of the one I wanna use
actually that fails without that delay
so having that short little delay makes all the difference.
I looks a little error prone to me though
@proud hull would u know if there is a way to a thirdperson character camera to a bone, I’m trying to use camera animations from blender
@winged sentinel Does your camera still have the same issue as in the latest video you posted? If so, you can set the camera lag in the spring arm.
You probably want it disabled for first person view.
Camera lag enabled:
Camera lag disabled:
can someone tell me what I'm doing wrong
why is this not doing anything 😦
I called the function in event begin play but it never starts the tick or does anything
oh never mind I figured it out
just needed to do this
That will cause the timed event to keep setting up new timers for itself.
Make a separate custom event to hook up to the timer and call that new event instead of the enemy in range tick event.
The timer will then do the trace once it is setup.
Or a do once after "then 1" in your sequence that is reset when the timer stops.
uhhhhhhhhhhhhhh
okay I think I understand what you're saying
if you could show an example that would help a lot though
@fickle blaze this is for hit detection?
I posted a good example earlier today for accurate hit detection.
Video example here: #blueprint message
Logic here: #blueprint message
And here: #blueprint message
In that example I setup the timer on begin play and then instantly pause it. Then the attack montage triggers the unpause and pause of the timer.
Using anim notifies, you can then narrow down the traces to only occur during the part of the animation that would do damage.
For instance, I didn't want the attack to hit when the monster raised their claw. Only when the claw was swung downward.
ahhhh yeah that's a cool system
and i guess since it's so well made you could have a lot of them going
since they only tick when they need to
I actually converted to notify state earlier too, hehe.
Didn't realize there were two types of notify.
Had a small problem where traces of other hit boxes were running even when they weren't animated and this solved it by cleverly setting the notify name to match the hit boxes being used in that particular animation.
So I made an enemy that wanders in the map, it works, cool, but does the NavMesh not function if using the Spawn Actor in the code?
It doesnt work for the actors who are spawned
Are you spawning them outside the bounds of your nav mesh?
the placed actors function as normal
No, im just spawning them ontop
I even spawned in a test Actor and copied the location cords
How can a client tell a server owned object to run an event? In this case I need to update a containers struct inventory after someone closes it
I dont know if like the Actor is placed in the Editor it tells the actor that the NavMesh exists and spawning via code doesnt work that way or if I need an extra component to make sure it works
its just strange imo
Can I somehow run breakpoints on second execute? I am really having difficulties with debugging.
😮
really good idea, i'll try that
thanks
i was incrementing integers instead of that but wasnt helping 😅
@solemn musk Is the spawned actor being possessed by the AI controller?
yeah
I looked and found that SpawnAI from Class might work so im going to try that
Huh that seemed to work
@ionic gull You need to route through something the client connection owns, typically the PlayerController or Pawn. I'd Run On Server an event on the Pawn to notify the container to update.
@faint pasture Thank you! that will help a lot!
Or am I better off creating a new blueprint base class, and creating child blueprints that inherit from that base class?
Is this for the items or what?
hello, how do you guys pause the game but keep the keyboard and gamepad events flowing into widget screen?
@desert juniper
If it is for items then use child blueprints and add things for different types of items then make children nod them and change stuff around on them
Hey guys i am bit brainstorming, perhaps you can throw me some ideas
i want to check if two pawns are on the same puzzle tile. What is the best way to approach it?
I have thought of two ways so far
one. I have a colbox on my tile, where i check the array lenght of the class type pawn
other one i do a colbox around pawn and check if it intersects with another pawn
are the actors aware on which tile they are?
goal is, when two pawns are on a tile, they placement gets shiftet, e.g. left and right, so they dont stand together at the same point
hmm
not realy
they get controlled by the player controller, which just checks if a tile is below the player
well then i would start to add that, when they move they could check on which tile they are and store that
then you can search in the tile size radius for other actors and ask them on which tile they are
and sets the player to middle of tile
or as you suggested make the tiles aware of it, if someone steps on them, store that, if someone leaves remove them from the list
i have that already
well, yet only the amount
yes good idea
but that should be then a good way to do it
make an array of pawns and check how many on tile. shift accordingly?
yea, so that the tile controls where the players should stand
anyone has a good suggestion on how to move a vector to a defined angle while keeping the distance to another vector? i have created that to set the location of my lookAt goal, but its a whole mess and doesn't really work for x/y, so i wonder if there's a sane solution which i couldn't come up with
specially the bottom right comment section is a math disaster... 😄
just a vector in relation to another vector
Are you trying to rotate one vector around another at a set distance?
i think my solution for the yaw (z-axis) is kinda okay
yes Authaer
but im struggling specially with the x/y thing as it's not one axis to rotate around
It is. You're only rotating around Z
ok let me explain what it is for its the lookAt goal for my actor, so Z axis is to limit the yaw
but for the pitch it's relevant where the lookAt goal is on x/y axis
if i move it further away, the pitch will go down (less head pitch)
hmm
but i want to move it away while keeping the yaw
this is for a character look angle?
yes
so to speak you have a "box" where you can look around
the furtherst points
i have made something similliar previously
well, rather a field of view
to create a "facek" collision box
perhaps this might help as an idea
sec
i had a moving actor and a fixed actor
the fixed actor was my point from where i calculated for the moving actor where to go the furthest away
perhaps you can take a crosshair or something similliar as a fixed actor
clamping would work, but the results would differ to what i want
ok
If you have two vector points, and one needs to rotate around the other at a set range and you're only doing this on X/Y, then all you need to do is get the unitdirection from the center vector to the one that moves. Rotate that new unitdirection around the Z axis, and then multiply the new unitdirection by the max distance.
The same math works for pitch. Pitch moves via X and Z. Just rotate it around Y
for yaw it's easy as you said as i can totally ignore the z axis and work with the x/y distance
wait let me rethink with what you said for a minute, my brain is melting xD
Think about a ball rolling in place. If you spin it in place like a top, that's yaw. If you roll it in place forward or backwards, that's pitch. The same math applies, just different vectors and axis.
ah yea, thats how pitch actually works, but thats not my problem
i want to affect the pitch by moving the vector on the x/y axis away from the actor, that way the pitch also changes (unless you are on the same z-axis which for my solution is irrelevant)
the result actually affects pitch and roll
i move the lookAt goal away on x/y then i aim the head at the goal (that way i don't have to deal with the pitch/roll of the actual head)
but i think i have an idea now
as i know the Z angle and the pitch, i should be able to calculate the other parts
end of the day its all tris 😄
If I'm understanding right, then all you would need to do for the pitch is find the rotator from the start to the new vector after moving on X/Y? Are you wanting it to affect the roll or avoid affecting the roll?
it should affect the roll, not the pitch. the problem im having is where to move it for that
without affecting the yaw either
that for the 2nd troublesome step which was in the bottom right of the screenshot
first i move the vector so that the yaw is fine for me, 2nd step is to get the pitch within range
by affecting the roll
no wait
no roll
ffs no roll at all 😄
that what all this should avoid actually
i dont want to end up with a tilted head, because thats what it would lead to if i let it solve by IK
I'm just having trouble visualizing the end result. If I do understand correctly, it should be as easy as using a directional vector from the head location, to the target location, and converting it to a rotator. This negates any roll because directional vectors can't account for it.
yea i think you are right, what i need is the directional vector
i get it by just normalizing v1-v2?
i'm a bit stupid in vector maths and controlrig doesn't have all the foolproof nodes 😛
nvm, clamp length to 1 seems to do the trick
lol
🙂
i had kinda the same issue path, ending up using clamp to simplify everything
clamp good, clamp is stron clamp is claptrap
i am struggeling on the next step
i have spawwned several pawns. I want to put them into an array so i can exchange the models later on but keep the same functionallity across all pawns
issue is. i need to cast my pawn to the player controler. I do not understand how to get out of the cast an array
i dont want to make an array, i want to get the array and set it
any idea on how cast an array?
@spark steppe Stepped away a minute. Let me double check, but I think the math on the unit direction is Normalize(TargetVector - StartVector)
or is that a bad idea to cast arrays?
@hollow drift Can I ask why you're using a bunch of different pawns and not just swapping out a mesh?
i thought i could use the same script over again
but think make stuff just way to complicated..
If you have a bunch of different looks for the same character type, and you want to keep that character's stats or whatever when switching looks, you're better off just swapping out a mesh. At least that's what I took from your question.
sorry i ment i use the same pawn
just an array of pawns
made with an for loop
i have several characters
but they share the same function. so i thouht i could do it over 1bp
Or leme rephrase it:
I want to spawn 3 pawns. Each sharing the same options but having different mesh. So far i just made a foor loop. The index of foor loop i will use to control who gets what mesh by making a variable and so on
issue is. i have bound my pawn to a custom player controler
in order to reference the object i did a cast to player controler
Okay. But why do you need three different characters. Is it only for the look?
but it wont work if its just an object reference, i need array since several pawns are in the level so to speak
i need 3 characters, since the game requires 3
look doesnt matter for the moment. I have already a general idea how to do so
but what could i do instead of casting, to reference a non child object to player controler
or how to cast an array of objects
Ah, okay. I misunderstood the first question. Generally if you want to cast an array of objects, you'd just for loop over the original array, cast and add that pointer to the new array of the casted type.
and get the value out of the cast and connect it with a get copy, where i can set which pawn i want to manipualte
ill use a get to specify which pawn has been selected
later on
but how do i get it first out of an cast
if i do a "make" array
i think i will have 012
then 000
then 000
since you cannot make an array out of an array?
Okay. I'm going to back up a bit. What is your end goal? Why not keep an array of these when they're spawned? That array could be of the casted type, and then you wouldn't need to worry about it.
"That array could be of the casted type"?
what do you mean by that?
how do i do the connection between "as pirate pawn" and "selected pawn"
I am a bit confused hahaha
i want to keep the array
i need it during the whole game
if a player dies and so on
What type is SelectedPawn?
Is this array only ever going to have PiratePawns in it?