#blueprint
1 messages · Page 59 of 1
I’m looking at the doc. Ok I’ll look on YouTube now thanks couldn’t find this term
something like this would give you points on your screen
Oh because I see a lot of actors with this ability but from a widget I haven’t seen
have an actor tell the widget what to display, the widget doesn't need to run the code
oh, it works in widgets
Like this card here I want to click that widget and project from it to world space
Does it I’ll have to tinker
like make it fly out ?
Yes
Well not really have an emitter attack fly out but a predict projectile indicator fly out
From the card to a location in world space
Obviously the widgets are on a hud so then I would have to be able to trace from the widget location to world space
That’s what I’m going to try and do
should work
I think so too thanks that get me on the right track
Hello all - I have a issue, where the: Destroy actor function, that I was told to add, in a TUT that I am following, are destroying anything it comes in contact with(The pick up system works as it should). Is there a way around this?
You've likely plugged in an actor reference into "Destroy Actor" on your pick up item where it should be set to only destroy self.
alrighty, fun bug
I made a box actor
with no real script
if I jump on it, i sink in it and it sinks a bit into the ground
before it kinda squeezes out
how do i make this not do that?
The tut I follow did like this. And its not happening for him?
my character movement dissapeared from my blueprint?
my character bp had settings for max speed and so forth, and now i also can't move.
i found out some settings are suddenly missing so something is wrong
my blueprint, and this new test one i jsut made
Hi, so I'm calling the name from firebase using a plugin. But I want to send the "name" into my widget. Where do I start? What's the keyword so that I can learn about it? I'm quite new to this, hope you understand. Thank you
just have some sort of call back. Show how you are printing the data
how can i make this parameter accept any enum and not a specific one?
nvm i dont need it
: troll :
enum to byte, byte to int, int ++
PhysConstraints OnConstraintBroken events or IsBroken function seem to be unreliable. Is there any known work around to reliably check if a constraint has been broken? (5.1)
so i figured it out
it turns out that mass differential changes resulting forces
so it clips
is there a term where I can search in google on how to call the "Component_Name_Array" in other blueprint?
not sure what you are talking about specifically
but getting those printed value to your widget is very trivial
since you already have the data, all you have to do is make your widget listen whenever you receive data.
When the event is broadcasted, you want to update your widget.
I made the function for calling the name in an actor bp called "Component_Name_BP" so the array is in there. But I want to use the array in another widget blueprint. or should I call for the data in the widget blueprint directly, no need to make separate bp "Component_Name_BP"?
Widget should just read, you shouldn't need another component at all
simply what you can do here is to pass a reference to the Component_Name_BP to the widget
Widget then can just read w/e value it has
I have the following in my PlayerCharacter (on mouse click anywhere)
I also have a button that toggles the following:
But what is happening now is that when I toggle the menu on, when I clicked on any of the Save/Load/Del buttons, I have a message "No valid actor" from the above screenshot, instead of the menu Save/Load/Del
I have to click the Save/Load/Del button twice before they start to take effect (in which the "No valid actor" message would not be triggered)
Would anyone happen to know what is happening?
alright, thank you 🙂
@frosty heron any clues?
just from that picture alone? nope
you can add breakpoint to debug tho
Two pics actually but yeah what would you need?
I added prints
And apparently on the first click the buttons did not print
I've no idea what I'm looking at tho, it would be really hard to debug from here 🙂
Although the image does change from hover to pressed
you can probably show more code
and hope someone got fresh eyes
I'm awake for 27 hours already
lol ok have a good rest
gl, but yea need more info
those 2 pics, doesn't say much
I'm not sure what other info I should supply hmm
it shouldn't be hard to find out why actor isn't valid when you are expecting it to be valid
find out when it's get set
Erm it shouldn't even go to the actor valid
That's not my issue
My issue is that it is not taking the button input first
wdym by button input?
This
Save/Load/Delete button does not respond to clicking the first time (although hover image does change)
if you need to click twice
Just bind this right away
these*
I think you are binding when you are clicking a button
that's too late
how do I find out which of these types an object is or how do I set it?
Bind on Widget construct or something
No, they are binded on creation
try to bind on construct
see what happend
right, yeah it's hard to see the whole picture from here alone
im not good at reading other ppl code
but it's correct to bind on creation
Yep
So what are you saying
In fact this same code worked on my other project
Save button clicked dont get called? on first click?
Click once, image changes (from hover to clicked and back to hover) but does not get called, 2nd 3rd 4th works fine
Fixed my math lol
Multiplied by getDistanceTo instead of my max interaction distance
Dont care about the image part, make sure the event that needs to run, get to run
Print string save button clicked
and ten did a branch to check distance
see if it print at first try
Yes, I did set a print string, did not fire
this doesn't fire?
But the "Not valid actor" fired instead
(which doesn't fire when I click the button successfully)
the valid actor is apple and orange? I don't see the connection
what's button not registering have anything to do with an actor variable
Yep, doesn't
It's just a route, nevermind about the print content
Print here
What I am trying to say is
Same
doesn't print?
Doesn't print
If it's blocked then second click wouldn't work too isn't it
see what you are hovering when u are on the button
Could be the focus as well
On Hover -> Set Focus to Widget
this may happend if you have multiple widget on the screen
The first click may shift the focus
but wont register for obvious reason
Other than this, i have no more idea
Focus worked! Thanks a bunch mate!
Thanks 🙂
how do I add a blueprint interface to a class from a plugin?
can't you add it the same way you would to any blueprint?
class settings -> Add interface
it's a lidar point cloud object, this is what happens when I double click on it
I can't open it like a regular blueprint
o_o
I probably shouldn't use line trace like this for pickup
because im being too extra 😛
@frosty heron a wild throw but it is not possible to use code to create a blueprint in runtime right?
Runtime? 😄
Anything is possible tbh, but that's outside our expertise
Yeah lol
Like I create a structure during runtime using Dynamic meshes and I want to save the structure as a blueprint to be loaded in other projects/levels
Sounds like Editor time not Run Time
So it's not possible (at least not with blueprints alone)
I'm not sure what you are trying to do
It's certainly possible (im not sure with bp)
Are you talking about prefab?
Just dump some meshes together, then create a blueprint out of it
Structure don't have to be a blueprint ofc,
I had home creation in my game. I just save all of the actors I placed and re-create them whenever the player play the game
I can officially add items to my inventory. aka an aple lmao
apple*
Remove or use in inventory? nah
never seen it
it looks like u are in asset viewer as well
perhaps the lidar point clouds are less blueprint friendly compared to things in the standard engine
I found this, but got stuck along the way
I think that's the way to go, but I didn't have luck when I tried. will try again when I have more time to revisit this project
Not sure if this should be in blueprint , Anyone have ideas why the ! are not lining up correctly in top down view please.
I am using this Blueprint because i found when using world they would not show in certain angles so i thought I could turn them towards the player camera.
I managed to get data from firebase and update into the array. But now how do I get it to update the text block in widget?
I've setup a system that makes the player character actually an AI character where the AI's state tree checks for inputs from the player controller.
This is currently how I define a character as being player controlled. This does however mean the character has to be placed in the level and the 'bPlayerControlled?' var to be ticked. Can anyone think of a better way to handle this? It would be nice to have it where if a character is spawned and possessed by the character it does the relevant things to create the AI controller and set the player controller to use the cam for the actor they no longer possess.
Click the Text Block and in the upper-right corner of the designer there should be an 'Is Variable' option - make sure it's checked.
Then in blueprint get a reference to the widget (Create Widget node if you don't have it yet), and then just set the text.
Also please try to keep any widget-related question to #umg
For those interested, I ended up doing it this way using the possess and unpossess events.
I'd recommend looking into making a Billboard Material if you want something to be facing the camera at all times.
I'm guessing the ! is not lined up due to how it's set up in the widget. If you really want to continue this route, try setting the Allignment on X and Y to 0.5, set the Anchor to the middle, and then line it up in blueprint.
how would you get a condition to tell how fast the player is moving
(i want the sprint to end whenever the players speed <400 or the sprint bar is 0)
Get the length of the velocity on the movement component, that's your speed
thanks
Is there a way to have a condition as a variable in Blueprints? Like a predicate?
hey guys i just recently using unreal and i need some help about blueprint , so i try to make a side scroller shoother game everything when fine but i have no idea how to make my characther look up or down when aiming using my mouse
Aim offset in the animBP is probally what you're after.
ehhh what is aim offset
You can make a function that returns a bool. You can always set it as pure if you want it to perform the check every time it's called. You would just perform the check inside the function and return the relevant bool.
sorry this is my second day touching this engine
It allows you to offset the upper body of a skeleton based on some aim value. It would be best if you google it for an in depth explanation. The UE documentation on it is pretty good.
Yea but I want to know if it's possible store the function as a variable like in C++. Basically what I want, is a map of conditions to effects. If it's true, apply the effect, if not, remove it. And by having the predicate as a variable I can make the application of the effects generic. I guess I could make some kind of blueprint function object or something to provide some generic conditions. Maybe not worth the effort this way.
Ahh ok, I would probably make a uobject that checks the conditions for it to be applied. When you want an effect to possibly be applied, create the object, store it in a relevant place and call a function on it that starts it to perform the relevant checks.
Got it👍🏻 thank you very much
Yea so I'd have to make a class for each condition then? It's not ideal but it's an option. I guess I'll have to see whether we use this much at all and how much overlap there is in conditions.
Hi everyone, I hope I can explain this correctly.
I am interacting with UI in VR using a laser coming from the motion controller pointing forward, I am scaling a 2d Plane model along this laser to act as the visual laser.
I would like to rotate this plane to face the player's camera ( this can't be done in Materials because I am using Stereo layers".
I tried using Find look at rotation but I was confused on how to use that to rotate around the rotation axis " the orange part in the sketch".
here is a sketch explaining the problem:
Hey i have a impact point how would i go adding impulse at the impact point launching it the other direction ?
you want a impact normal
ok
or else if its a location, you can use Add Radial Impulse, though it would affect everything that can be affected in the vicinity.
impact normal then ?
its from a linetrace
so
do i just impact normal times amount ?
y
normal means the surface direction you hit
if red is your hit, the green would be your normal
aye ok
so you want to negate it to push the other direction
yeahyeah
so for the multiplier
any way to find out what is what imean times 10 is equal to what
whats a common valuie'
rather
it since this is physics
it depends on the mass of the object
but if vel change is enabled
yeah
everything will be pushed a similar distance regardless of mass
ok if vel change is disabled
and mass is 500 kg lets say
and formula for that or just test my way ?
usually i just trial and error 🤔
ah ok
okok
you can calculate before and after location to determine the distance/force manually i guess
aye nice
also
why is this wrong am i just dumb
i wanna spawn the system right infron of self
oh
always remember Location + (Direction * Distance)
Is it possible to have a C++ function only be accessible to its direct BP child? Like a BlueprintNativeEvent for private functions or changing the access specifier in a derived BP class?
Generally speaking, is it efficient to cancel the input of one key press with a different key by having the separate, second key change the input mapping context on press and then back again on release? All I want to achieve is have my sprint function (which is in my character blueprint and triggered by holding shift) disabled while aiming (holding the right mouse button) and then re-enabled as soon as aiming stops.
At the moment I have it so that my aim input triggers a series of events that essentially work to counter any effect the sprint button has but now wondering if just having it go to and from "aiming" and "not aiming" input contexts is more efficient.
I think that is how I would describe what I've already done.
Idk if adding removing contexts is really needed.
If you were to change several actions, sure
It to disable just one, not sure
Yeah, it's just one so far and I don't expect that to change.
I'm not sure if my scripting has been the most efficient with this tbh so I was wondering if there was an easier way to tell the game "while this input is being held down, disable this other input".
You can probably do that with contexts but again, I don't see the need if you can just set a bIsAiming boolean
Not everything has to be overcomplicated
Depends on the learner. Epics Learning resources or YouTube I guess.
I just hope I applied the Boolean properly. I understand how it works but it looks a bit spaghetti-like.
Just make sure you watch more than one tutorial, cause most of them have some wrong stuff
Matt Aspland does really basic stuff but I've found some videos instruct you how to make things that you then can't easily build off of.
Ok
I followed this when I started about 2 months ago with 0 experience: https://www.youtube.com/watch?v=Xw9QEMFInYU&t=4369s&pp=ygURdW5yZWFsIGJsdWVwcmludHM%3D
Check out my Premium Courses:
https://smartpoly.teachable.com
DOWNLOAD THE PROJECT FILES HERE:
https://drive.google.com/file/d/1vtTuDNytdPijo4TF9ccLgc7zPcaAbbqh/view?usp=sharing
Want To Learn Game Development?
Check out My Multiplayer Survival Game Course:
https://smartpoly.teachable.com/p/unreal-engine-5-multiplayer-steam-survival-game-cou...
Thxs
Just did this and it didnt work ):
Could anyone else help me fix this plz?
How do I get a variable type for a specific material and relevant instances?
Show screen shoot of what you are trying to grab
I want this material as a variable type
What's the goal here?
How are you going to use the material? You need to know if you need to grab the Material Interface or the material instance dynamic
you can just convert the variable type to material interface if you want the static material
but if you are going to change the parametres dynamically, it has to be dynamic material instance
Aight thanks I think I understand what I gotta do 🙏
How do I increase falling speed while already falling?
Seconded, that's a good one to know how to do.
maybe increase the actors gravity? IDK
Can it just be set like any other variable?
any idea why this would give me inf loop? Even though the value is decreasing. (when I add the set scalar)
I have dissolve effect im adding to player
when they die
the DissolveAmount variable is not being changed in the loop though
and I want it to dissolve player from top
and WhileLoop must finish in a single frame
so you wont get the "lerping" effect you want
ohh
for tha to happen, you want to use a timer/timeline/tick
didnt realize it had to be single frame
in this particular case i suggest a timeline
if you want a effect over time, while loop is not the go-to
Is "cast to" the only way to make a blueprint check a variable within another blueprint?
Is Child Of
I need to know this as well 😔
but to access it, usually cast yes, or interface/get components
if the variable is already the same type you wouldn't need to cast
but if it's not and you know it's if the type u want to cast, then cast away
The context here is that I have "is aiming" as a Boolean variable in my character blueprint and, in my player controller blueprint, I want to have an input event followed by a branch with an "is aiming" condition.
fall faster is just adjusting gravity scale 😆
but I will jump not as high =(, I can probably try to adjust the gravity scale when they are falling down, that's what I had in mind but it feel like a hack than being physically accurate
also kinda trying to figure out how to migitate the length of the character in the air. They slowly lose velocity before falling, but it felt a bit too long and unnatural
thats not exactly how you want to use a timeline
say if i need the timeline to do a lerp of the value from 1 to 0 in 1 second in a ease in/out manner
greets you
Quick question: why does the animation no longer work from a functioning copied opponent's blueprint? It works for him, running and everything, but after I copied the BP the animation no longer works, it simply remains in the idle state.
Of course I remade the variables and also made a new animation bp for the copied version
But why does he stay stuck in his idle pose? I don't understand
I have an actor that spawns enemies based on a data table.
Sometimes it somehow fails and nothing happens. I'm not too familiar with the Async Load Class Asset Node and soft references in general. Do you guys think this part could be what is causing the issue?
If it fails to load or something?
Feel like it should finish loading at some point though, and not stop the flow forever.
why do you need the delay at all
it should be valid when it finished loading the class asset
The delay is more because I have a delay between each monster I spawn (in a tower defense).
Not so much because of Async load.
not sure if this is the problem but I don't see why u have the need to resolve the solve ref
gotta cast the UObject class to AActor class
Hmm, that change might indeed help
Prob not, you might call the load function again before the previous one finished loading
.
cast
Not sure what this means
In particular the UObject part
lAsaka is the lord here 🤗 when it comes to soft ref
Cast the purple class to Actor class
then you can connect it to spawn actor
ideally, you wont really want to load the class this late
Thank you for clarifying
its an unlikely situation, but what if the load takes a few seconds long, the game would have to wait for few seconds before the spawns continue
true, but what is the alternative?
Somehow load all actors up front?
not all, but you can load the next one while on the current wave for example
Very good point
Hi guys, I have this acotr blueprint, with this 4 static meshes component, in the event graph i want to use something that allows me to make each component rotate, i tried to use set updated component but unfortunately it makes rotate only one of the 4 components, can you help me?
I can make that happen from here. Thank you. Still Async loading right? (so it can load in the background without stopping the rest of the game)
the delay node also makes the spawn non-interuptable either, just pointing out
for loading the next one, you can do async load
always async load. You don’t want hitches
its more unlikely that you can clear a wave super fast i believe
from a game balance stand point
when its time you really need it
do a sync load
it would have been already completed loading
when you already async load it from the last wave
its kinda like "i want it NOW"
Mb I missed the part where they’d already async-ed it
a good intermediary anyway would be to have a round cooldown. you want to give some downtime anyway so you don't get bombarded.
like a 5 seconds between waves to restock ammo, heal up etc.
Time for player to rest and you to load your dudes
Would normally agree. In my case though I spawn a mix of different enemies in a wave. So I might only spawn 1 of Actor1, and 1 second later need the new Actor2 loaded and ready to be spawned.
yeah if you have round cooldown, you can start the async load on the timer starts, and sync load (to force it finish immediately if it hasnt done) on the end of the timer
the most famous example, COD zombies does this, just not obviously.
you can probably guarantee that everything will be loaded by the time the round end + cooldown is over, and if not, those enemies could just be prepended to the end of the wave.
saves you hitching the game thread
Haven't done it yet. (Being forced to play two roblox games with my 5 year old) butttt. Ty for helping me Iaska 😛
Nice. So if Async already finished loading, Sync load would basically do nothing?
yeh
the assetmanager keeps track of all assets being loaded
if you ask for something that already exists, it returns it
and half-way Async, would just do the rest Sync from there?
yes
though im not exactly sure if they fixed the default load nodes
doing a sync load would force every running async to become sync
afaik
but thats probably fine
I will figure a way to load it Async a while before needed and then do a Sync right before just in case.
in that case, you gotta have 4 of those component i believe.. though not very intuitive, the rotating component isnt built to supoort multiple component updates
unless you are dealing with super high poly meshes..
i dont think loading them will take too long..?
🙏
techtip about timeline 😉
- always use 1 second timeline to design the curve when possible.
- then adjust the playrate of the timeline to suit duration needs. [PlayRate = TimelineLength/Duration]
@opal kraken Use timeline and set the rotation on each comp
I did it like this, the last value on the timeline is set to 360 so it makes a full rotation, it works like that
Tick -> foreach component -> update rotation
Yeah actually follow what adriel says
If you want it to spin continuously that is. If it's a temporary thing like opening a door then a timeline is fine
I don't know why I say timeline
All of this stuff is on c++ or they can be used with nodes too?
Blueprint event tick
Ah ok find it, but before i was trying to create an array of components but i couldn't
(Delta time * Spin rate per second) + Current rotation ?
I'd use add local rotation but yeah
the amount to add is rate * deltatime
How can i add components on this array?
Make array
You can add them on construction script. reason you can't see it in editor time is , they are not constructed yet.
You probably don't even need to do that tho
nah
ahh ok
It needs to be rotated differently every frame so it has to be on tick somewhere
I mean the loop part
Gotchya
Haha nice winter/holiday cat
everyone on Christmas vibe 🐱
need my self santa hat too
It works like that, it's wrong?
0o how do you even manage to plug that
What the array or the event tick ahahahaha
Btw you need to account for delta time
If u don't account for delta time, the computer with more FPS will spin the fan faster
that is a shorthand for "For each do this"
something to discover everyday
only applicable when calling function on an object
but not default recommended since it doesnt do valid check
delta time * the spin rate per second
And then i plug it into the z rotation?
Hello friends, why don't my bullets hit? They go through the opponent.
What does the collision have to be set to?
sorry im a noob
5 degree per second sound pretty slow, might want to adjust if it's not the speed that you want
Yes i set 180 now
so full rotation in 2 seconds?
Like this?
They both have to block each other and generate hits
yes
Is there any way I can clamp the third-person character camera so it doesn't clip through the player legs?
Yup now they are not frame dependent
ok but how can i do that xD
I mean I gave you the answer, not sure what you’re looking for. If you don’t know where the collision settings are, they’re in the details panel when you select the mesh or collision box
yes sorry im searching it to post my settings
i posted the wrong collision settings
is there a way to lock the window size of the game?
hmmm like?
project settings -> Allow Window Resize
maybe?
its on Default my collision preset for the bullet mesh
@frosty heron @remote meteor like I want a resolution and screen size of 800x600
like FIXED and can never be changed?
make the yaw = 5 x DeltaSeconds
yup
then later yaw = Speed x DeltaSeconds
Change it to BlockAll or custom (on both objects) and check the box that says generate hit events (iirc)
like a classic DOS game
Ok thanks a lot i go for it
yeah you want to set the resolution to 800x600 windowed using the game user settings on game startup, then in your project settings untick Allow Window Resize and maybe the maximize and minimize
have u tried playing with small widnow in 2 k monitor 😄
rip 4 k monitor ppl too
they gotta squint
oh I thought the resize is disabled?
well it's a VN base and it has a 2D background, if you scale it, it looks pretty bad
its not like 480x320
ideally you wouldnt want to fix the resolution like that
scalable ui is more desired
where is the game user settings class? I guess it's like game instance? make my own and load that?
though i forgot whether if you can call this as early as gameinstance init
oh, now you can
nice
what would the game instance init event be called?
you mean when?
I want to hide child bp that is inside an actor in the editor, when i click the eye icon that hides it then edit the main bp , it shows again ..
I also activated hidden in game inside the bp , wont work in the editor
I just dont wanna see it , its in the way
@sour cliff change the visible then
in the details panel when you select the component
Do u mean to click the eye icon to hide it?
no
Is there a way to call a timeline in a function with its float variable it outputs?
Select the component ( the cursed child bp ) then look into the detail panel. There is visible box , you can untick it to not render
Not mean to change the inside, but what you can do is change the play rate of the timeline
btw you can't call timeline in a function, that's custom event so that's fine
yea I just need dissolve amount
I don't know how to get that var
inside function
Wow thank u so much, that was annoying
Function happend in a single frame
if you are going to use timeline, do it in event graph
timelines are used in an event graph
you can then call functions from the update/finish event though
yea Im only using set scalar though
Was just trying to consolidate it into one thing. I'll just turn entire thing into an event lol
I would probably encapsulate everything into component for a dissolve effect
Need to dissolve an enemy? An NPC, an object?
just throw dissolve comp to it
going to
oh wait, can't have timeline in Component
Yeah but there is a workaround ofc
thats fine
I have a base class for mobs
I can just add it to my base class for OnDeath
character base class is fine 🤷
is there a way to (re)compile all BPs at once?
clicking play in editor should compile any uncompiled bp
<PATH TO UE>/Engine/Binaries/Linux/UE4Editor-Cmd <PATH TO PROJECTS>/<ProjectName>/<ProjectName>.uproject -run=CompileAllBlueprints
🙂
Just don't use bp struct
fun
declare it in cpp and call it a day
ehm and also replace Linux by Windows or whatever it is for the weirdo OS
learning C++ is on my list
U dont even have to know C++
I'm on windows 😄
Starting with putting your structs and enums in C++ is a great way to start.
yeah, base classes in c++ and structs (and enums too I guess!)
I work in C++ all the time but I've still never once made a C++ actor. Just components and subsystems and stuff like that.
good to know.. I'll perhaps start with this for getting some C++ into my stuff
If I remember correctly epic were saying in their advanced BP talk that you should set up your base classes in C++ so you don't need to cast to the actors to get values out of them? wouldn't that mean actors?
casting in BP comes with overhead that loads them to memory. This can be very nasty as your project get bigger. You can end up loading the entire game in the main menu for example (like my old project 😦 )
Casting to generic class is preferable so u don't have to load the children clasas.
Casting to C++ class is free and doesn't load to memory
alright I see
yeah I've got some very bad practice of using hard refs everywhere
I'm afraid I'm doing the same thing in my current project 😄 luckily scope is limited and I'm basically done
if you are looking to make a scaleable game that is quiet big in size, deffinitly need to learn cpp
but if your scope is prototype to practice then bp should suffice
this would likely help also for casting etc..
In this episode of be a better game dev, we will be looking into hard and soft references.
Join the Discord server here: https://discord.gg/zBeebU7uv3
Support the work of LeafBranchGames on Patreon here: https://www.patreon.com/LeafBranchGames
yup will check these out for sure 🙂
I asked this in #ue5-general but it might be better suited in here:
Anybody else getting a 100% reproducable crash when changing an Instanced Struct inside a struct to any other variable type? (UE 5.3.2)
I just have a question. When I test everything in unreal engine, everything works correctly, but when I export it as an exe, there is a delay on my sound effects. I use Play 2D sound for this, but it is noticeably slower than in the editor, almost 1 second. In my game I use the Event tick very often but only like 5 or 6 times in one stage at difrend BPs, but it is my first project to try everything out a bit. So my programming is not optimal but it is a very small project. So I wonder why this is and how I can solve this.
How are you testing in the editor?
play this livel in editor viewport then evrything is oke but only if i package project for windows en test it on the exe is bad
Hello, does anyone has a quick work around for the SetTimer node? The issue that I'm facing is that calling it with the same function/event makes it reset the one that was set previously (if it was not triggered yet), making it impossible to cascade multiple calls simultaneously.
I mean, if I do this, only one (the last) event will be triggered
What are you trying to do, exactly?
I'm trying to setup a simple enemy spawner, and the spawn queries may interfere with each other delay wise
I'm not sure how to help with this one. Maybe it has something to do with loading up the sound effect in the packaged game?
So if I query to spawn an enemy after 15 seconds, but I query another spawn during these 15 seconds, the first query is lost
Do you have a delay on the delegate event?
Use a single looping timer with 1 second interval. Keep track of how many enemies have spawned by incrementing an integer. Once you've reached the number of enemies you want spawned, you can stop the timer.
wdym? My delay is the timer
Well any code you have on that custom event delegate should run instantly. Nothing should be preventing it from triggering once it fires the first time.
Yeah, I thought about making something like that, but it's just more complex
If anything it's less complex.
Datura's method is WAY better than cascading timers. I've never seen anyone try something like that before.
i dont know what this is can it help to make stuff good ?
Alright, I'll try to do that instead
I mean... I've never seen that error, so I'd try to fix that and see if that fixes your issue first. Might need to google what it wants you to install exactly.
Okay. I'm struggling with culling some static mesh components in a blueprint. This BP actor has 4 static meshes in it. 1 of them, the barrel, culls just fine at a certain camera distance (seen in the image without the barrel) but the arrows don't cull. They're all set up the same in their detail panels as far as I can tell. Any idea what I'm missing?
They seem to be entirely default settings other than collisions (which are the same, but custom) and materials, which are different.
This'll make it start from begin play, but otherwise you can just call "Start Spawner" whenever you want it to spawn the number of enemies you desire again.
It's actually not exactly what I was asking for, as the enemies are not spawning at some constant spawn rate. Queries can arrive at random time with random delay
Are you async loading the actor class that's spawning?
Nope, it has nothing to do with memory management. The reason for such a system is not due to any technical problem, it's just a gameplay feature
Then there's no reason an event wouldn't figure every second, even with cascading timers.
Triggering the "Set timer by event" multiple times will reset the timer, yes.
But triggering 4 timers at once will cause all 4 of them to trigger back to back as expected.
So long as you don't call that again.
If you need to override a spawn not using a timer, then just call the spawn directly.
The spawn function*
Are you saying that all 4 of them will cause the event to be fired, i.e. it'll be fired 4 times?
Yeah.
If you're setting 4 individual timers, they're all going to tick individually and trigger when they're up.
??
Yeah. I was going to suggest a queue system as well.
But unless there's an async delay of some sort, then a queue shouldn't be necessary.
Because even if you called the function 60 times/second it should just spawn in 60 enemies in a single second.
Shouldn't be a problem.
I would imagine it to do it that way, but the source code tells me otherwise:
FTimerHandle UKismetSystemLibrary::K2_SetTimerDelegate(FTimerDynamicDelegate Delegate, float Time, bool bLooping, float InitialStartDelay, float InitialStartDelayVariance)
{
FTimerHandle Handle;
if (Delegate.IsBound())
{
const UWorld* const World = GEngine->GetWorldFromContextObject(Delegate.GetUObject(), EGetWorldErrorMode::LogAndReturnNull);
if(World)
{
InitialStartDelay += FMath::RandRange(-InitialStartDelayVariance, InitialStartDelayVariance);
if (Time <= 0.f || (Time + InitialStartDelay) < 0.f)
{
// removed
}
FTimerManager& TimerManager = World->GetTimerManager();
// It uses the same handle for exactly that delegate to set up the timer
Handle = TimerManager.K2_FindDynamicTimerHandle(Delegate);
TimerManager.SetTimer(Handle, Delegate, Time, bLooping, (Time + InitialStartDelay));
}
}
else
{
// removed
}
return Handle;
}
What part of the source code is telling you that having multiple timers will only trigger one of them?
This gets the timer handle associated with that delegate
TimerManager.K2_FindDynamicTimerHandle(Delegate);
This associates a new timer with the timer handle for that delegate, overriding the existing one
TimerManager.SetTimer(Handle, Delegate, Time, bLooping, (Time + InitialStartDelay));
What does call the IncomingQuery?
Whatever it is that's creating the query you're talking about.
Yeah, calling this makes it print one single hello after 4 seconds
I think the timer is dependent on the delegate. So each timer attached to the same delegate is retriggering after each "set timer" node.
Meaning, yeah. You're right. Each timer is treated as the same timer because they share a delegate.
And the source code confirms that by saying that each timer handle is paired to that delegate.
Uhh, in my case I have a spawn point that has a Spawn event, calling which makes it set a timer on its own, so that the caller doesn't have to bother about it. The owner has only to give it a delay time
Interesting find, and good to know, but this is still a very odd way to handle a spawning system and I wouldn't recommend wasting time trying to find a way around this. I'd use a single timer that loops and use a queue or some other way to determine when to spawn the enemy.
One way around I found is creating a new object handling each timer, but that's very lame 😄
So, you have an overlap event that sets a timer and spawns an enemy after x seconds?
And you want it to be triggerable multiple times?
What is it you're attempting to query every second?
This sounds like what you really need is a BP_Enemy blueprint that has an event dispatcher that you can have your spawner bind to. You'd call that event dispatcher when you want your spawner to do whatever it is you want it to do (like if the enemies dies).
Essentially I have cycles in my game. When a new cycle starts, the spawn point gets an event, and upon that it might want to spawn like 5 enemies, but everyone might be spawned after some delay, for instance the first one is spawned after 5 seconds, the second one after 10, and so on. Every timer is set up the same frame. It's done relatively rarely though, so there might be up to 5 simultaneous queries at most
uh, I don't really like this solution. There would be invisible enemies waiting for their time to spawn, seems error prone or something
You're misunderstanding.
So how do you determine the delay times?
The spawn point knows how many enemies it wants to spawn on a particular cycle with a certain delay, it's just a prior to play time setup, in C++ terms it's kind of a TMap<Cycle, TArray<TPair<EnemyClass, Delay>>>
Which sounds like a continual spawn rate based on the enemy class.
Oh a TMap of a TArray...
If it's map, then you'll want to trigger a single timer that triggers a spawn. After the spawn, check the keys in the timer and find the next delay. Start the timer again with that next delay. If no additional keys are in the map, then do nothing.
So the spawner would be responsible for more than 1 type of enemy at a time, hence why you want multiple timers as they could be spawning at different rates?
If you want to trigger a second timer with a new spawn delay you could try making a "spawnTimerComponent" that you create and attach to the spawner any time you want, which can then asynchronously be ticking down and trigger the spawn function when eit's finished, then remove itself from the spawner.
Just for the quick explanation sake 😄
Or if you don't need asynchronous timers, then I'd suggest just creating a spawn queue you add new spawns to with a custom delay. Then it'll just keep looping through that array/map as things get added to it. And if there's nothing in the map, you could either pause the timer, clear it, or just let it keep looping, doing nothing.
You could also just use delay.
It works kind of the same way
Oh right.
How about using Component?
A component that spawn a timer
Calling the timer again, indeed reset the timer.
I get around this by spawning a component. Other people use UObject
pick your poison I guess
Maybe I got you wrong, but wouldn't I need to keep track of the current spawning entry? Also, they would need to be sorted in descending order
UObject seems to be the simplest
Since I only have at most like 5 timers at a time, it's not going to hurt anything
Make a UObject that execute a timer in it. Dispatch an event when it's finished the countdown
When you want to make a timer just construct the Uobject
Yeah, made it like that
I mean, if you wanted to keep it contained, and you know that you can have at most 5 timers running on one spawner, then why not just code 5 separate delgates anyway?
Use them as needed.
I'm not sure whether DelayQueries is even rquired. I thought that they might be GCed or something
uh, it looks ugly 😛
Just make a spawn component or a uobject. @tepid willow
hey can someone help me out? tell me why neither of these work. I'm trying to make it so it prints when you click a specific component in the blueprint. Or so that it outputs the component clicked. Thank you!
hey guess im trying to make an interaction system, and its not working. here is a screen shot, and i am using the top down project.
its letting me click on things, its printing the name of the static mesh in the BP in the scene i am trying to click though, not the BP its self. i think that is why the cast isn't working
First of all, are you seeing your line trace debug lines? It seems like it's just tracing from 300uu above your mouse and tracing down to the mouse, which.... is odd? Why not just use "Get hit result under cursor"?
Just needs a few tweaks so it reads from your data how long you want the timer to be 😛
Each of those delegates could easily call into a function that performs the actual spawning that you could get the data for from your array.
i fixed, i changed the type to something elese and that fixed it, sorry.
I'm guessing that that second cast node is failing for you. Probably because you're casting to see if the actor is a bpi interactable, but what you're probably meaning to do is check if it's implementing that interface. If I were you i'd just remove that second cast and call the BPI Interact directly. There's no reason to cast when using an interface. If it can't interact because it doesn't have the interface, it just won't do anything.
i had it sending a message first and that didnt work, its bc i had it lookingfor world Static, so it was reading the mesh, instead of the blueprint. but ill b changing that back to a send message now too to save memory
Ah. I see. Yeah. I typically like to make an "Interactable" object type when I set up an interaction system, that way I can trace for it without hitting every other object in the game world.
I was told how to Cast from my Hud Widget to my PlayerState. How do I cast from my PlayerState to my HUD Widget?
You need a reference to your HUD widget, you don't necessarily need to cast.
I don't have a reference to my HUD widget in my PlayerState.
Then it won't be easy to get into it from the playerstate.
You could work the opposite way and have an event dispatcher in your playerstate and call it where you need it to do something, then in your widget you can bind to it on construct so that it can do what you need when it gets called.
I got into the PlayerState from my HUD widget without a reference to the PlayerState?
You did have a reference. You had the Owning Player which contains the "Player State" reference.
does the Owning Player have a reference to that HUD widget?
Get Owning Player in the widget returns the player controller that the widget was created for. If you happen to have created your widget in your player controller, then it could if you had created the reference in your player controller class, and you would need to cast the Owning Player to your custom player controller class to get that stored reference.
Same thing in your playerstate - you could technically get the owner of the playerstate which should be a player controller reference... You could then cast to your custom player controller class and retrieve the reference if you had created it.
I changed the game mode blueprint in the project settings but it's still calling the old one. where is the game mode blueprint really set?
this is my custom Controller, is that what you are talking about?
if i press delete on the old game mode blueprint it says "the level" is using it. but it's not in the level's outliner
Yep. The return value from the Create W HUD Widget node is the reference to the widget.
You can promote that to a variable.
in World Settings
ok, I promoted it to a variable
How would I go about setting the player controller via bp in the gamemode?
i named the output variable of a function the same as the function and the output disappeared in the properties panel but was still on the node. i had to recreate the function. did i trip over something
the function was called "GetActorsOnTeam" and the output was called "ActorsOnTeam"
Id make it data driven
OK IT"S TIME TO SPAWN SOMETHING MAYBE
checks notes
1 SKELETON COMING RIGHT UP
notes = array of SpawnOrders which encode the thing to spawn, and the spawn rules or intervals
Timer -> SpawnThingsMaybe
SpawnThingsMaybe -> for each SpawnOrder -> should we spawn something?
The game mode has a variable called PlayerControllerClass. If that's accessible in blueprints, that's probably how you'd be able to set it.
you would just fill it out with stuff like
Skeleton, 3-5, 10s
Ogre, 1, 30s
BossDragon, 1, 90s
You'd also want some variable in the structure to keep track of the last time the spawn happened.
maybe i'm just new to blueprint but i'm getting all sorts of weird behavior. local variable causes compile error because it claims it's "not visible to blueprint" but then when i delete and remake it, it decides it's fine
it won't let me name the local variable "Result"
maybe that's because it's the same as the name of the output variable?
These kind of odd behaviors arnt abnormal in blueprint. Things break all the time or become corrupted. When facing these ridiculous errors, its best to do as you said. Just copy paste remake.
rip
What do I have to do to Cast to the Widget Card Hand? I just want to set a variable through a cast.
How do we restore a broken Character BP?
I see the character BP backups in my Autosave folder and copied them over to my content folder but not seeing anything,
Not seeing any options to restore either, what am I suppose to do?
Hi! is there any kind of event for component end overlap with another component inside the same blueprint? (trying to use a sphere and sphere collision, when the sphere goes outside the sphere collision I want the event to activate)
A reference to the actual W_CardHand widget that you want to modify. Again, casting may not be necessary.
Can't figure out how to ragdoll from vehicle collision. If i just run into it with my character it will ragdoll but not if i drive the vehicle into the character.
So weird cause all my parent BP seem fine, just seems to be my child BP that has most of the logic
🥲
would you mind walking me through it? Communicating between blueprints is my weak point right now. I understand Inheritance but I don't know what the game structure is.
What is Blueprint to Blueprint Communication, or how do I call functions or get variables from other Blueprints, in Unreal Engine 4?
Source Files: https://github.com/MWadstein/wtf-hdi-files
You would have saved a ref to it when you made the widget to begin with.
Or you can have the widget bind to some dispatcher on whatever holds the actual hand data
OnHandUpdated or whatever
All of the data representing your deck, hand, graveyard, etc, should live in one object, that's basically the state of a player. A PlayerState if you will.
When the widget gets created, it can find that PlayerState, and bind some event it has to a dispatcher on the PlayerState. That dispatcher is how the PlayerState notifies the widget that it should update.
Widget:
Whattup world, can I get a PlayerState of type MyPlayerState? Thanks. Hey MyPlayerState, lemme know if anything changes, k? (bind an event to MyPlayerState.OnHandChanged)
YourPlayerState:
??? -> the cards in the hand changed -> trigger OnHandChanged
Hey, quick question: does anyone know why the arithmetic for rotators isn't exposed to blueprints? You can do addition and subtraction between vectors, but not between rotators, even though FRotator has the + and - symbols overridden. I went into KismetMathLibrary.h and added blueprint-exposed operations for adding and subtracting rotators, and they work perfectly fine. Is there any reason this isn't implemented into Unreal already?
When you're creating blueprints, you're defining what something can be.
The engine spawns instances of those blueprints when you're spawning actors or creating widgets (not to be confused with making a widget blueprint, but using the "Create Widget" node that spawns the instance), and the engine uses the blueprint as a template for what that thing contains. The spawned instances are the things that you need references to in order to communicate between blueprints - and when you're spawning or creating, the return value is the reference to that thing.
In some instances, like creating a user widget that contains another user widget, it will automatically create the instance and should be accessible as a variable on the parent widget.
Combine and delta
Ahhhhh
are there more advanced shortcuts for wiring in blueprints? things like insert node along an execution wire, place a reroute node but continue to lay down the wire
i would i could drag out, lay down a reroute node, continue dragging, another reroute node, snap it to where it goes
Not out of the box, but you can double click on the wire to create a reroute node and move it into place
while dragging from a node, u can press R to place a reroute node
Yeah forgot about that one
If I remember right, if you drag out from an execution pin that's already connected, you'll be prompted for a new node and it'll insert it between the connections.
Yeah you can insert in already placed execution paths
What I meant was you can’t automatically connect each new node when you first place it, unless you use some plugin
And even then you have to do it afterwards
oh nice i think it only didn't work last time because i was trying to do that for a sequence of two nodes rather than just one
Hello, maybe someone can help me. I did a projectile base class, but the projectile is hitting other projectiles, other enemies. I wanted to avoid this, so I created this function but its not working to make my projectile ignore some classes.
maybe you should try creating your own collision channels and profiles.
ive added a text render component to a bp. i tried adding a new font but it doesnt work. i noted that most fonts don't work except one which uses distance fields. is there some docs on how to make a font work ?
Guys I need help with casting to a widget to get the array the widget is building. Can someone help me encapsulate this widget?
What is Blueprint to Blueprint Communication, or how do I call functions or get variables from other Blueprints, in Unreal Engine 4?
Source Files: https://github.com/MWadstein/wtf-hdi-files
Wow, color me surprised but ChatGPT got better at reading screenshot snippets of blueprint code. Even helped me solve an issue with raycast prediction today
GPT 4 btw, the paid version. Haven't tested it out on the unpaid version
does the unpaid version even have support for pics etc? thought that was just a gpt4 thing
am i crazy or is unreal kinda crashy too? like i only just started using it but already a few crashes?
ah you're right forgot the og doesnt have support
could be user error, could be engine, i had have the engine crash by just creating a new c++ class
i mean i'm sure i am making a lot of errors
I know I've received more errors messing around in UE 5 from Source
but the regular version had errors that were entirely due to my code lol
5$ and I fix it
What is Blueprint to Blueprint Communication, or how do I call functions or get variables from other Blueprints, in Unreal Engine 4?
Source Files: https://github.com/MWadstein/wtf-hdi-files
Correct me if I'm wrong, but I believe you can just use events right
the guys that we are answering is probably just starting out with unreal, bro didnt understand that the pin wasn't connected and there was an error
I understood that. I just didn't connect anything because I'm not sure how to get the reference to the widget I want.
from previous code or reference
I don't know what you're asking.
in the pin, you should put a reference to your widget from previous code
Yup, my issue is getting that reference.
I think i understand what you mean though. Send a reference to the HUD when did the cast to BP_PlayerState.
yea
hi, for my game i need to load hundreds of static and some skeletal meshes at once(a giant robot with lots of parts), in my code it dynamically calls the parts in a certain order to assemble the robot. this functions and works, however, for like a split second upon activating this code logic it freezes/hangs (see vid). could just be from the sheer number of items being called, but after some research, i believe this can be fixed by using async load (correct me if im wrong please). but where in my chain of getting my parts should i call this and where should i create the soft references for the meshes.
i have code that converts my database info into static and skeletal meshes picture "A" - (i think i should make the soft references here instead of the hard references)
i have code that spawns the parts into the scene picture "B" - (i think i should be calling async load here)
and i have code that attaches them to the correct locations picture "C" - (this is probably ok and doesnt need to change)
or will async not fix this and it just has to be
thanks for any input.
using access property how could I either get player controller > is input key down or the enhanced input player subsystem ?
trying to add something to lyra in the same thread-safe fashion
anyone know how the wrap node works in blender? i think it's different than unreals wrap/2/3/4 node
Yes you should async load heavy stuff so that it doesn’t freeze your game
im having an issue with casting to a widget that is creating an array of widgets
I want ot be able to get that array on a button in another widget
so here i create a card with a button on my main hud, that card is made on a widget called my hand, then that card has a button in its widget that i want to be able to press so that it does a function and destroys itself. in order to do that i have to be able to remove it from the array in the hand widget
Show code
thanks, do the locations i mentioned seem like the correct place to implement the async codes. will take a good 4-5hrs to update my code references once i change them. so want to make sure its the correct thing to do
wheres the cast?
there isnt right now im thinking why cant i just use another bpi to remove the child
here i use a bpi to create the child widget card and add it to an array
is it an interface because lots of other widgets might want to respond to AddCard?
cant i just use a bpi on my card button and when i click my button it will activate the remove card event?
no only one button will do it but its just based off a tutorial online
thats how he does it
Where does the card data actually live?
which object contains all the cards, the hand, deck, discard, all that
the card hud
like this. The add card button is here and here the card hand is also where they spawn in
Im not a ui expert so im confused as to how to get it all to communicate
on the event remove card bpi you need to add an input for the card reference
but then what will be my target
it has to be the card hand widget right because that is where I am ussing the event
so then i still need to cast to the hud?
Sure, what you described sounds right, tho I don’t really understand why it would take you 5h to update some code
i have to update structures that are nested quite a bit, and everytime ive changed something before every single structure had to update or it wouldnt work
BP structs?
yes
They are extremely susceptible to breaking when you make changes to them, use cpp structs instead
Updating bp struct is a sure way to break it
is communicating between widgets the same as with casting?
you can call that on whatever the equivelent of Outer or Parent is for widgets
casting and communicating are not the same thing
yeah i remember reading that somewhere, when i get some time ill go and look into how to do that. my project is mainly bp and wasnt sure if the cpp version could blend/ be used in conjunction with my bps
A mostly BP project with structs all jammed into 1 header is legit
It's a good jumping-off point for diving into C++ anyway.
Structs
Function library
Component or Subsystem
That's the order I did things in
thanks for the info, i always knew cpp would be better at doing things but been a while since i coded and bps looked like it could work and so far has been, but yeah things like this are the reason to start switching before i get to deep in.
Hiya! I have 2 maps. I know I can use OpenLevel, but then i see some popping as the level isn't fully loaded. How would I go about waiting till the level is ready, then spawn my character there.
2 separate maps, not sublevels
Load Stream Level doesn't seem to work
Level streaming or using a transition map would prly be your options
I tried level streaming, doesn't seem to work for 2 separate maps.
what's a transition map ?
Is there something like Level Stream, but for OpenLevel? umm... is there a IsLevelLoaded node?
i think Open Level is all I have...
is there a way to tell if the level is fully loaded ?
Hi, Sorry for asking here. If anyone know how a thing that might solve the camera going out of the road, i would really appreciate it. The mesh is set to block camera but camera still goes out on certain car position. Thank you
Something you can use as a loading area like Assassin’s Creed did
yea, but i still don't have a way of knowing if the level is done loading
any tips for that?
Prly a loading screen implementation
See here: https://dev.epicgames.com/community/learning/talks-and-demos/db7/async-loading-screens-and-transition-levels-unreal-fest-europe-2019-unreal-engine and I believe Lyra also has one you can appropriate
watching that now
Slate loading screen is repulsive to me
You can async level asset. Once it's ready u know the level is loaded. That's sort of what I do
Doing open level will load it instantly since it's ready
i shall try..
What r u trying to do anyway
Hard open a level?
If u want multiple levels in a level your only option is sub level isn't it?
Asyn load asset can load a level... that's something
well, now I have a main menu map, and then I click a button and I want it to load and open my game level.
I used OpenLevel, but I see fast pops. Tells me level ain't loaded fully.
so I was looking for a Load..thing
0o
https://m.youtube.com/watch?v=GwCD2WQ7-4U&t=8s&pp=ygUQQXN5bmMgaXBlbiBsZXZlbA%3D%3D
Well this is what I followed
Unreal Engine 5.0.0 Early Access How to async level load (with C++)
UE4/Unreal Engine 4.26.2
Not sure if there is bp node for it. I think there is?
doesn't seem to be anything to load a map, and then tell me that the map is ready.
Cool, checking now...
Just beware that you will end up loading 2 maps. Unreal need to be in a level when you want to load another level. This is why there is a transition map.
If your game is small then don't matter. Otherwise, load to transition map first then async load the map you want to open. Once done u can open level the map
I dont see any thing like that in bp, but i can just copy his cpp
Ye it's only a few lines afaik
I display loading screen, async load level. Then hard travel once the level is loaded
yea, I'll try that! Thanks! It doesn't take long to long, i just see the popping. level has some megascan stuff so it's big
just a test level to learn menus
you can modify CommonLoadingScreen from Lyra to accept a normal user widget as a loading screen btw
I tried reading the Loading screen bit, couldn't comprehend most of it 😭 .
One thing that I followed is making the widget TSharedPtr and that allow the widget to survive hard travel
was told that it's a pretty bad idea, but I haven't crash soo far
you want to save both the UUserWidget and SWidget
UMG always comes in 2 part
one thing is within this widget
remember not to have any outside reference that would be deleted though
I see! Thanks for the heads up
the original implementation has a TSharedPtr to the loading screen, it created one based on your project settings when you show loading screen, you just need to add your own before that
looks like Async Load Asset, with the Level Selected as the thing to load worked
@frosty heron Thanks for the tip!
Anyone knows how to change the post process settings in persona editor by anim notify?
I know how to change it in the preview scene settings but I'd like to do it by the notify. Thanks!
What's persona editor?
It is the editor for you to play with montage/sequencer and etc.
There're settings for the preview scene and one is post processing.
if you have it keyframed in the sequencer imo it will override w/e you have anyway
so even if u changed the value with anim notify the value in sequencer will take over
I'm not really working with sequencer. The case is I'm sure I can make it work in runtime by changing the settings for the player camera, but in the persona editor preview scene, I'd like to do it with the same notify as well instead of manually set it in the preview scene settings.
k, so what's stopping you right now?
you can change the post process setting by getting a ref to it and set members in the post processing setting
i added a watch but it just says "not in scope". why isn't it showing the watch value?
i can see the exec lines that depend on that data pulsing
bp watch doesnt work within a function, thats one
Yeah, but I want to make it happen in the notify like if in this editor, I wish to change the post process settings there but runtime to change the player camera settings. Not sure if it is clear enough...
I'm not sure what you mean sorry, maybe screen shoots will paint a better picture
like with this notify, I'd like to change the post process values in the preview scene settings.
now that is a name i havent heard in ages...
If it’s a function, try print string if your use case allows
the animation editor/preview is called "Persona"
yea it's in a function. what a weird limitation
can you show what you mean by preview scene setting
the preview scene setting is just for preview, you don really change it with anything else
You can always move it to an event, at least temporarily
Functions usually fire in one tick, so that may be why
something like this on the right side of this editor UI layout.
Hmmm, okay. It probably will be a little incovinience for the game designer though.
is there anything else about debugging that doesn't work in functions
I never know you can drop a post process in montage
That's the notify I created😅 To change the post process settings.
as long you have reference to the post process setting, just set the members?
On Anim Notify state begin maybe
The problem is I don't know how to ref the settings for this scene preview ones.
I know just ref the player camera one in runtime.
have you tried doing it on the anim notify state?
I don't have any direction for getting this preview settings. Where I can ref it?
I thought it's something that you created, but now I think I get to piece what this is all about
pretty sure the PP and lighting setting is only for the preview scene
not sure what's that gonna do anyway on top of u prob can't get a ref to it (at least in the bp world)
Yeah, but as long as it is in the editor world, you must can get it somewhere. I wonder how...
I don't think it's in Epic to do list to expose preview stuff to bp users
but not gonna pretend like I know, cuz I don't
Thank you all the same. I wonder if one some knows probably could save the time, but it seems not that obvious. Appreciated your time!
how to select multiple vars and move them to the same category ? why i need to do that 1by1?
Dayum
gotta do that one by one, but why not an array of struct to group them together 😅
i have alot of structures in my project already starting to lose understanding of what is what,
i dont need anouther one to the pile just to store not important"buffer" vars😄
, i hope they will add that ability to select all later
Now that’s spaghetti
already fixed it
Ok but is it still spaghetti
Better
Hey everyone! I wanted to share a bug I solved and to get your thoughts on it. TL;DR: OnComponentEndOverlap was called before OnComponentBeginOverlap.
I have a wall jump mechanic in my game. The player character has a small capsule collider that detects when you're up against a wall. The wall detector's collision is set to OverlapAll. The wall detector sets a boolean true or false on begin overlap and on end overlap, respectively.
There are enemies who shoot projectiles at the player. When the projectile hits, it calls its own DestroyActor.
When a projectile hit the player head on, going through the player's wall detector, the wall detector's OnComponentEndOverlap would be called before its OnComponentBeginOverlap. This means that the boolean would be left on true, allowing the player to wall jump without a wall.
My immediate solution was to call DelayUntilNextTick before the projectile's DestroyActor. My other option was using a different collision channels for wall jumping, hitting the player, etc., which I might do anyway.
Any insights?
Hey This is from a Parent class
and this is called from a Child class of that parent
the 1,2 prints
not the 3 ???
rightclick the EmergeBoss_Event and click add call to parent node
the parent method will only be called if you don't override the event or if you add said parent call
already tried that
then you did something wrong
this is litteraly everything
and i dont have to call parent node if the delegate is empty
right
wrong (probably)
since its fiering a bland event just an event
well this is done the same way without call
and it works
since the "event death child" from parent is empty
??
yeah
exactly
so you want it to only print 1,2?
it's not
From what @steady night said, it's the opposite. It's only printing 1,2 and not 3. So only the parent event is called.
yeah and this is what i mean whit the death
its called the same way
but that works..
without a call from parent since its empty
stay with one method please instead of confusing with another "example"
no, since you don't even do what i said (which is the solution)
then you screwed up somewhere else
you need to call parent every time, yes
recompile all blueprints, parent first, then 1st child, then 2nd child
ok so this is main parent
first child
last child
everything looks right right ?
Maybe cause you call that more than once?
Or is this Multiplayer and you call it maybe on Server and Client?
Any more info would be needed. The code itself shouldn't spawn more than one item.
Has anyone else gotten random infinite loop detected errors on random nodes. I sometimes get random infinite loop detected error on a random timeline node, the weird part is that no other actor ever interact with it and the error persists even if the node isn’t connected to anything at all, if I delete the node it just chooses another node and does the same thing.
Hi fellas, is there any way to make camera shakes affect cameras forward vector? I want them to mess up the players movement-
spawn transform needs a world transform, you are giving it a relative transform, multiple spawn point would probably just spawn in the same place.
Hello. I'm encountering a really strange issue. I'm using a multiline trace to detect several objects that are behind each other. This has (for as far as I remember) always worked for me. But all of a sudden the line trace stops tracing after the first block. 🤔
I'm breaking my head trying to figure out what could possibly cause this
When the multiline trace hits the first object in it's path, everything behind it becomes green (kinda like how a normal linetrace works)
What on God's green Earth could cause this?
Now, I am tracing box collisions. Could this be it? That multiline trace doesn't work with multile box collision components or something?
A line trace will stop when it hits something that blocks it. If you're using the visibility channel, this is most likely why. If it passed through anything that was set to overlap, it should pick them up as well but stops when it hits something that's set to block.
Ok yeah I just found a thread that showed how it indeed doesn't work with a channel. However, when you use a multi linetrace that checks for objects it does work. Just tried it and indeed it works. But why is that?
What's the logic behind that?
Relatively sure both Trace Methods use the same logic deep down
I don't know for sure but from my understanding, trace channels and object channels are a little different. Object channels reflect how it should respond to other objects of the specific channel. As a line trace isn't an object, it wouldn't get blocked.
The trace channels on the other hand are specific to the line trace so if you perform a trace set to visibility, it'll adhere to the visibility trace channel settings which for most things is block.
I think the reason it "works" for object but not for trace is probably due to the Object channel not being blocked
In general, Multi Traces stop on the first Blocking Hit
They use the same method
Yeah, tracing for objects has quite weird behaviour tbh. For example the box collisions that I'm tracing for are set to a custom object channel I made. Inside the component collision settings they literally ignore EVERYTHING though. And yet, still the trace for objects can detect them. Really weird. But it works and it's kinda cool that it ignores everything else, because that is exactly what I need. 😅
If you want the Line Trace per Trace Channel to work, simply make sure the thing you are tracing isn't blocking the Trace Channel ¯_(ツ)_/¯
Yeah setting to overlap would probably have worked too I guess
But the object channel works too, so think I'll just leave it at that
To be fair, tracing for Object vs tracing for Trace Channel, is kinda different
Is there a performance difference?
No, but the usecase.
probally not.
Ok
If you only want to trace for a specific set of objects, then object is fine
If you don't care about the object type and you need a "trace channel", then that is better
There is a logical diff between the two
Yeah that's actually what I need. I just want to trace for building sockets which are box collision components
So I guess only tracing for those specific objects is the best approach
E.g. if you have a Bullet Object Type and a Bullet Trace Channel, then tracing for Bullet Object would give you only Objects that are Bullets (per Collision).
If you trace for Bullet Trace Channel, you would get everything that blocks a Bullet Trace.
So in theory, it's relatively locked what you want to use in your trace based on what you want to trace for. It's not reaaaaally interchangeable
Yeah for my damage raycasts (for my weapons) I use a damage trace channel because I want to detect everything and then check if they implement a damage interface.
Thanks for help! 🙂
my ai move to node doesnt actually return the on success execution! i tried printing a string on success but it doesnt after reaching the player! Dont know how this node works actually, can someone please help me on this?
I believe it never completes unless stop on overlap is ticked.