#blueprint
1 messages ยท Page 25 of 1
this will give a sequence
based on the logic, which is set in another bp(only animation)
@static charm i can share my screen if it helps
nah it's good, i was just trying to think of how you can get somethign useful from the return
see if you can convert it to a string or get class or get anything from it
yep see what i can do let me what the node does first in cpp!
i think it returns a sequence but it's stuck on previous anim pose
also this node is from Animation locomotion library
not sure what you mean, timers/timelines don't work inside functions.
FSequenceEvaluatorReference UAnimDistanceMatchingLibrary::DistanceMatchToTarget(const FSequenceEvaluatorReference& SequenceEvaluator,
float DistanceToTarget, FName DistanceCurveName)
{
SequenceEvaluator.CallAnimNodeFunction<FAnimNode_SequenceEvaluator>(
TEXT("DistanceMatchToTarget"),
[DistanceToTarget, DistanceCurveName](FAnimNode_SequenceEvaluator& InSequenceEvaluator)
{
if (const UAnimSequenceBase* AnimSequence = Cast<UAnimSequence>(InSequenceEvaluator.GetSequence()))
{
const USkeleton::AnimCurveUID CurveUID = UE::Anim::DistanceMatchingUtility::GetCurveUID(AnimSequence, DistanceCurveName);
if (AnimSequence->HasCurveData(CurveUID))
{
// By convention, distance curves store the distance to a target as a negative value.
const float NewTime = UE::Anim::DistanceMatchingUtility::GetAnimPositionFromDistance(AnimSequence, -DistanceToTarget, CurveUID);
if (!InSequenceEvaluator.SetExplicitTime(NewTime))
{
UE_LOG(LogAnimDistanceMatchingLibrary, Warning, TEXT("Could not set explicit time on sequence evaluator, value is not dynamic. Set it as Always Dynamic."));
}
}
else
{
UE_LOG(LogAnimDistanceMatchingLibrary, Warning, TEXT("DistanceMatchToTarget called with invalid DistanceCurveName or animation (%s) is missing a distance curve."), *GetNameSafe(AnimSequence));
}
}
else
{
UE_LOG(LogAnimDistanceMatchingLibrary, Warning, TEXT("Sequence evaluator does not have an anim sequence to play."));
}
});
return SequenceEvaluator;
}
this confirms it returns a sequence i didn't see any UE logs from this fun
i also logged her it's triggered also just not sure what's causing the character be stuck in pose
How would I attach a spot light component to the character's mesh from inside an actor component? Is that possible?
I was about to tell you to ask in the animation chat but seems it's full of questions and no answer at the moment lol.
yea i've been stuck with this from yesterday
made all of this with "no collision" so the raytrace should pass throu em and hit the world, still no luck, now it doesnt hit nothing ๐ฅฒ
i need the G as my bff
sorry bed time here, goodnight and good luck everyone.
we're doomed Adore!
lol!
i guess i can put aside distance matching for now or do it manually through cpp
wtv we do we are doomed!
can post you ray cast code?
i'm not good at BP but will try to help
im working with BPs
i mean your bp
yes the float number is ginourmous because i was trying to hit the world
and he is so far
they were hitting the "space capsule" before i turned off the collision
now they dont hit anything
can you tell me what your trying to achive?
i wanna be able to click on a country and then go on to another level xD
just that xD
in a certain country, already made a child for it on the world mesh
so your getting location based on mouse cursor?
can you show me the logic for when you click?
still havent one, and i dont need to, like, when the cursor goes through the world it should appear that its hitting it
i only need that logic after
i mean how are you starting to cast ray?
it's always casting and moving with cursor?
@radiant bear
Add a custom event to spawn on the owner actor.
The component can just get the owner and run the event or interface
yes at least it should be
As I said over an hour ago...#blueprint message
You just need to have a mouse click input, Get Hit Result Under Cursor, use whatever channel, filter out what you want and check what actor was hit.
alright so your ray is not hitting anythin that's the issue right?
after i turned off collision for the spaceship it doesnt hit anything
right
if the collision is on for the spaceship it still hits the spaceship
this is also a valid approach
your would has collision enabled right?
of course
the float why do set it manual can you try Casting an endless ray and end it when it hits something?
is that even possible?
how do u cast an endless ray?
its you idk how on bp give me a sec i'll se if that's valid
i mean you have Starting and ending point right?
my starting point is where the camera is at
Is there anything I can add to see if the character is moving? right now holding sprint will drain stamina even if my character isn't moving
actually i dont have a ending point now that i think about it
you can check the character movement variable
like acceleration
alright give me one moment
so i have to increase r.Shadow.Virtual.MaxPhysicalPages to get things to work properly but when i increase it to a cetian point or higher thne whne i try to launch the game after packaging it or whatever it csays it crashes
Told you yesterday. Get the cmc and get the velocity then maybe get the length. See default third person project and open the anim bp where they set the speed
bool PerformLineTrace(AActor* ActorToIgnore, FVector Start, FVector End, FHitResult& HitResult)
{
FCollisionQueryParams CollisionParams;
CollisionParams.AddIgnoredActor(ActorToIgnore); // Ignore the actor that initiates the trace
// Perform the line trace
bool bHit = GetWorld()->LineTraceSingleByChannel(
HitResult, // Output Hit Result
Start, // Start location
End, // End location
ECC_Visibility, // Trace channel (you can define your custom channels)
CollisionParams
);
return bHit;
}
this how you would do it let me see if i can give you a bp version or you can make a cpp file use this function expose it to bp and use it there
you can copy pase this
in your cpp
it's valid
how so? I can paste that in my BP? o.o
i think he know the function in bp
one sec
i have Visual Studio if it helps... x'D
You do have an end point for the trace which is your camera forward vector (so whatever direction the camera is facing) * that really large float (so it'll be a point somewhere that far away in the direction of the camera) + the camera location (so it's in line with where the camera is)
yea you need that
what are we doing here, reinventing line trace? ๐
or any ide
basically xD
me?
Why? What do you need?
ok ill make a new video showing whats goin on
Endless trace? Just shoot a projectile with box collision and give it a long life time
Nothing should be endless imo
what could go wrong ๐
Asking for infinite is asking too much
so you know how to make a cpp class in unreal?
yea but he can stop it when it hit something
U still need beginning and end so what exactly the strategy here
here it is the problem
u can see that when i put my "spaceship" with collision
the ray detects it
when i put it off
it doesnt detect the world
i want it to detect the world!
xD
never did one, but with a little of research ill be able to do it for sure
So Ur issue is u want to do linetrace that doesn't stop at first object it hir?
Then use multilinetrace node
that make literal float is...interesting
i want it to ignore the objects but that doesnt ignore the world
Then use custom channel for the hit test
its a ginourmous number because the world is really far away from the spaceship
i can help you with that wanna vc?
you can't just make a float and change its default value to that?
u can help me? Really? D:
i think the line isn't hitting anything
"No Collision" doesn't do what you think it does.
yea make a custom node with the fun i mentioned above
i'm not fluent in bp
away with you demon ๐
but this for the space ship which he don't want to detect so it shouldn't be a problem
Add custom collision channel
He is tracing for objects, namely "WorldStatic". WorldStatic is blocked by "No Collision"
What u gonna do in cpp anyway? What's the actual start
even if i set it to no collision
Yes. Because it's blocking the trace.
i see
just creating a raycast fun and expose it to bp
and wt hell is cpp? I thought unreal worked with BPs and C++
but this could be the reason too
C++ = cpp
ah, No Collision is just a default preset rather than actual no collision?
ow
I mean your custom raycast function
What's the content to fix his problem
what i intended?
oh right, it's the wrong field
it's casting an endless ray if hit something he get the some info and then you can do what he need to do
it's just a bool you get an idea
How are u gonna cast endless ray? If I may ask
wow.... i wanna be a nerd like u guys, truly
i wanna get into the conversation
and give my ideas
i assume giving it a starting location and direction without a range should do
for now i just know that i must ignore the spaceship totally
Wait wdym
"Get Hit Result Under Mouse Cursor" == "endless" trace.
he wants to start in a location outside the spaceship if im not mistaken
Oh u can do that?
Just need to set collisions up correctly.
I mean the endless trace
your one needing help right?
It basically just tries to get whatever actor is under the mouse cursor but works with collision profiles.
Then maybe should just do this, that's exposed to bp
Actually don't want to butt in, gl
GetWorld()->LineTraceSingleByChannel
for Casting
he can call the bool fun i mentioned above where we wants to cast or just on updated
for testing
so
u want me to replace this
ok guys nvm ive taken 2 much of ur time, i will do it one way or the other grrrrr
xD
Thanks โค๏ธ
Look at how to set up collision channels
And when u trace just give it a long number
I haven't seen anything that define endless trace yet, maybe under cursor just have a maximum range?
Don't know how you can give direction and location but no magnitude
well the camera is static if that helps
in bp you need a endpoint defined
just few mins man i'll see if you can do it in bp or i'll make a custom fun for you
The cpp function also ask for end vector tho
@dawn gazelle how does the get under mouse cursor trace work?
I don't have editor on me rn
wait wait, let me try Datura method and ill come back atcha
Just need to make sure whatever trace channel you have defined on the get hit result isn't being blocked by anything in the foreground before it, and that the thing you want to check overlaps or blocks it on that channel.
yea but i think we can skip that value, let me set something up quick
Right click on the "Hit Result" pin and select "Split Struct Pin"
WORKED
ur a genious!
let me continue with ur bp
aham
i cri eweritiem
i think that everything is how its supposed to @dawn gazelle
Not seeing any mouse cursor on the screen... You need to press your interact input to show it?
You are using the right click input node but you have the print string saying "Left Pressed" Make sure you're actually clicking right click and you should see something printing on screen if this pawn is controlled.
ur not seeing the mouse because of my obs settings
OWWWW
IT WORKS WITH THE RIGHT CLICK
i mean it just says hit actor xD
not sure if im hitting the world
Ok, now you may need to verify that the actor you want to hit responds to the Camera channel.
(Should have Camera blocked)
I'm enabling and disabling camera lag to smoothen out the crouching camera transition. However whenever the camera lag is disabled inside the bp it will cause a slight jitter to the camera in-game. Is there a way to reduce this somehow? I've spend hours trying to make the camera transition smooth. Scratching my head at this point.
You got a response from Hologram2. Again, you need to verify the collision settings on the thing you actually want to register. So if that's your planet or some other actor on the planet or what have you, look at its collision settings.
Not sure if "Default" responds to Camera trace channel.
let me check the hologram one
weird? o.o
it responded to the hologram
however
its set to block all dynamic
weird?
xD
That's different than Default.... Try putting your planet to Block All Dynamic and see what happens.
guess ill have to look into it
its just weird that @dawn gazelle method didnt work
really
It work wtf
not for the planet
Cuz u got meshes that block the cam channel
do i?
He told you to ensure that your meshes don't block it
It detects hologram
yes it does
how the.... its not even in front of the world
its not even big enough for that
and it just responds when i click on it
in the hologram literally
besides
both hologram 1
and hologram 2
respond
Select Ur hologram in the world outliner
Then set the view mode to wireframe
The plane must be bigger than what Ur naked eyes van see
I will just add a custom channel for special need object
And I can forget about all the hologram or w.e u place in the world
Cold Summer, i would do that, i would de really happy to do it if it would help, but im a newb, i needed instructions
is there a tutorial or wtv?
Youtubeable yeah
Sure
Or planets ๐ฑ
im seeing a lot of tutorials but they dont use BPs hmmm
how would the BP be in this case?
Part two of the quick how to's on collision channels. Here I talk about setting up two custom collision channels and set objects in the scene to have varying responses to them.
I opened enough videos today
xD
yeah maybe i should sleep over this x.x
been on this for 2 long and tried lots of stuff
I opened it anyway because u said it's not in bp
my almost 31 year old head cant handle it
But it's in bp so I dunnoe wat u mean
u have a funny personality xD
I'm 32
U create the new channel in project setting
yeah i did
Then u set the channel correctly for your world
Then all that's left in the bp is to do what datura says
But change the channel from camera to earth
OOOOOOO
NOW IT MAKES SENSE
THANK YOU
u.u
in the earth i put block
and the other ones i should set to ignore?
or overlap
i just wanna click in Portugal which is my country, then a second level comes
Then don't make it block for others
Click on random actor in your level and see if the earth is set to ignore
its set to block
Then you have a problem
When you create the custom channel, set the default value to ignore
Try to see what collision look like on static mesh placed in the level
If it's still set to blocked then I dunnoe maybe start over
they r set to ignore
So I have two "levels"
One is just a main menu "level" that spawns in with a UI and some buttons
I have one of the buttons connected like this
https://i.gyazo.com/c66a5a186932d076a402c26a59c98e76.png
However, when I load that level, I don't get anything. What I'm assuming is happening is my character isn't actually spawning
when I try to play the level in the editor it works fine
Do I need to manually initialize the level by spawning in the character myself? or am I using the wrong node
You probably want to do "Open Level".
I just changed the node and it works just fine
Thank you, I was assuming I was just doing something very simple wrong
Is this load level instance for if you need multiple instances of the same level for some reason? Assuming some sorta multiplayer thing?
Level streaming / World Composition.... Basically allowing you to expand the world as needed.
ah.. to save on memory I'm assuming? for very large maps
Well, I'm just doing 2d stuff right now so it's probably fine for me to stuff each level into it's own "level"
I'll learn about level streaming when I get around to needing it
hm... actually just noticing a strange issue now that I reloaded the level
I'm unsure if this actually counts as a blueprint related question but I'll continue here for continuity
so I have two actors that are basically just a collision box, and a "paper tile map component", I got it from dragging a tile map into the viewport
For example, this
however, when I reload the level, the actor sprite disappears and the... (box?) gets strangely enlarged, although it appears to be only visual
on the right there's a normal looking heart, I just dragged that one onto the map and it's just fine
even when I play the level the two actors aren't visible, although one of them is a launch pad and it still works just fine, so the collision box is still there. Also the launchpad collision still appears to be in the proper place and size, which is why I think the box enlargement is only a visual error, or else the collision area would be too large
anyone have any idea what's causing this issue?
If I reload the level again the new heart ends up disappearing as well
Checking the actors themselves, they're not set to "not visible", and changing that setting doesn't make them reappear
@dawn gazelle how do you call a blueprint to a cpp?
I already tried so many things to my bp. Iโm thinking that maybe with cpp I can do the raycast properly
you cant
Ur wrong
your wording is confusing
Im Portuguese ๐
It works?
yes
Then itโs the right way
Time to give myself some well deserved pats on my back.
Good job me for properly programming with blueprints. ๐
Why does unreal allow a Bp reference to have multiple in connections. This caused a crash for me, and I canโt think of a reason to allow it as it seems dangerous, so why have it happen at all? Is the idea that you can have ifs and hope that only one is always sending?
I'm making a card game and using a widget for the hand. I can get the front of the card, but how would I get the back of the card?
That's disgusting tbh
Cpp not gonna save you for this simple problem
And FYI u do it the same way cpp or bp
I found something actually
U are using line trace by channel
Ur job is to ensure that the channel are set right
If I move the earth really close to the spaceship it can detect the earth
But it has to be really close
That's not solution
I just said I found something
Maybe under cursor has range I dunnoe, nothing that I know allow for infinite distance cast
Don't have pc on me to check the implementation
Dw I will check it out tomorrow. Itโs 5:40 here xD
U can do line trace by channel again. Change the channel to earth and make sure that the range is at maximum number unreal allow you to write
Pretty sure u can do that. Ask in cpp I'm sure they know the right answer
(?
Told ya von Carlo
You cant. He is confused/ didnโt understood my statement. Also you meant something entirely different
It does
Have fixed range*
C++ does not know of things made in bp. If you want to call a bp function in c++ it must be decleared in c++ (BlueprintNativeEvent or BlueprintImplementableEvent)
Why is there a sequence + flipflop + 2 set active nodes
Ah 2 cams.
Third + first, gotcha
You could solve this with 1 bool and two set active nodes.
Why are some of my blueprint size maps 200mb? Is this too much and should I somehow try to lower it? I heard about people using soft references, but I've never found why and how to use them
Its to avoid just that
This week Christian Allen will provide an overview of Hard & Soft Object references in Blueprints, why the differences are important to know about, and how you can utilize Soft Object references in your project to help with memory management.
Watch Inside Unreal live at twitch.tv/unrealengine, Thursdays @ 2PM ET
DISCUSSION THREAD
https://forum...
All assets that are hard referenced are loaded along with that class
Including other classes (by casting or storing har references to them)
It's safe to cast to a cpp class in bp land right?
Soft references are loaded on demand with Load Asset Async
Yeah native classes is safe ๐
It will only get bigger if u don't start using soft ref in the right places
Guys I have a theoretical question, if you were to make different types for doors like a sliding door, rotating door, locked door and etc. would you make a base blueprint and then inherit each new type of door off of it and add the new logic or would you just make one big component and add variables to control which type of door it is ?
Make a base door and inherit from it for diff types of door
Base door should handle common logic like loced
Door logic + transform lerps
Sliding door is a lerp of location
While hinged door is a lerp of rotation
So if you make a lerp based on transform, you have your base door bp
Wrap the lerp logic in a function and you can modify it on child bps if needed (double sliding door f.ex )
does GetAllActorsOfClass just look at one big array or is the data more like a class tree?
The former. Look at TActorIterator/TActorIteratorBase in C++ if you want to see how it works exactly
Are your blueprints 200mb? Two of my actor components are 200mb in the size map, I dont know if thats bad
I never check but loading my player in my old project loads the entire game. My loading time is like 1 minute or more.
I don't know if 200mb is bad or not but in my opinion most game should use soft ref. Unless it's a really small game or just a prototype
Whats the point in a soft ref if its going to always be loaded in the game? I have "Item3D" as a blueprint which represents 3d item props in the world. This is a base class that every item uses. Why would I need a soft reference to this?
You don't
U use soft ref for things that is not gonna be loaded right away to the game
Think about icons in your inventory
Sounds in specific levels
If u can change between skeletal mesh for your character that can also be soft ref
Imagine you hard ref everything in your data table
That will load the entire thing once u run the game
he's talking about a base class that should have like a size of a few kb
no need to soft ref that
I have no idea about those maps. He asked about soft ref 3 hours ago
If it's something that gonna be loaded like your player character then don't bother with soft ref
that was their question
I might as well ask about both since they're both confusing.
My Item blueprint is 223mb, 220mb of that is the player blueprint. Why is this not only 3mb?
If u have hard reference to your item bp in your character bp
Then you will load the entire item bp
Downside of blueprint
your base class shouldn't be more than a few kb. It should just contain logic essentially
and let the children do the asset referencing
Or if you just cast to a specific bp class
The bigger problem is that your player bp is 220mb ๐
It's probably okay if your item references the player ,as I assume you want to load the player right away anyway. Now why is player referencing 220mb of assets, thats another story
So there's nothing I can do about that?
Also my "Item description" class has a "StorageImage" variable which is a MaterialInterface, hard reference. Should this be a soft reference since its the icon of an item and it won't always be loaded? How would the game know what icon to load?
This async loading stuff is confusing for unreal engine. In javascript web development, its more easier to understand because of "skeleton UI" and loading spinners, which show by default, then once loaded, the asset replaces that.
In UE you get 'skeletons' too for materials in the form of gray default grid material until the real one is loaded ๐
If your item reference an icon and your player reference the item. The icon will be loaded regardless u need it to show up or not
Use soft ref on your icons, texture, skeletal mesh
Load them as necessary
My player BP is ~200mb because its referencing Manny and Quinn. I don't think theres a way to reduce this?
You can soft reference manny/quinn and either async load or make a loading screen where you would preload your immediately required assets
This is such a micro optimization. If it's the player character's materials that'll always be present (unless they have some customization)
no need for soft refs
I didn't do anything special to the blueprint. It was like that from the thirdpersontemplate
dont worry about it, it's the player character
Agree and that's what I said earlier. If it always gonna be the player character then no need for soft ref
It is unless they want to have different player skeletal meshes down the line
read my whole message please
It really depend on the scenario for example my player character have 20 skeletons to chose from. Which in this case I would totally need soft ref
I didn't say he has to do it but he asked how to not load
Soft ref is the way but Wether u should is different question
So soft references are only for graphics stuff, like meshes, textures, sounds? Its not for logic, like blueprints, actor components, structs, enums, etc.?
U can async load class but don't know if u have to
You can soft reference entire blueprint classes as well
Most of the heavy stuff is like textures sound and material
Yeah thats what I'm thinking, just the heavy stuff that takes up lots of MB/GB I will soft ref. The logic I'm not going to bother with, like the logic for inventory or for handling pickups. They should work, even if the player can't see the actual item (or if the item is just a LOD or placeholder)
You don't need to worry about code/logic size when it comes to loading unless you're worried about cache locality etc but you shouldn't worry yourself with that stuff off the bat
I assumed you used data table for your inventory? In which case u should totally soft ref the icons or material
Imagine loading 200 icons when u don't have to
Or 200 meshes
With materials and all
Even in your manny quinn example
Do you really need them both loaded, always?
How do you make the default player class soft reference the mesh? I don't see an option
No idea the difference between 01 and 02, are they male or female or lods?
Next to the variable type, the little colored ellipse, click it
Actually just checked, depends on where it is
I know that, but there's no option for the Character. I created a new empty third person template project, and the BP_ThirdPerson size map is 200mb
Oh if you want to change the skeletal mesh, you don't put it as a default
Instead you put it in a variable (of a soft ref type) and you can then async load it in your event graph and set it on your Mesh component at runtime
That way your class wont have a hard reference to it and you'll see the size diff
But like I said before, unless you're customizing the character (character creator or different meshes per character) you probably dont need to do this
Because it adds complexity and now you likely need a loading screen etc etc
This is instead useful for things you don't need ALL the time. Like UI icons etc etc
Yeah I'll worry about that later, I was just trying to get the whole soft reference thing to work, that way my other blueprints won't be 200+ mb just because they reference the player
Do note that the blueprints themselves are not "200mb", the skeletal mesh and all its assets are. That means that once that is loaded once, it's not loaded again for each individual thing referencing it
Sent you video earlier by epic on how to do async load.
They actually did the skeletal mesh of the character. So if you need some exercise to get rid off many and Quinn from the map then the video should tell you all you need
Yeah I'm 1 hour in and I still struggle to get it, so I'll have to rewatch. I do understand that they have a default skin, and while the game is running, after the second skin is async loaded, the character changes to the second skin. But I don't know how to implement it myself.
I tried to play around with removing the reference to the quinn mesh in a new third person template project, and it works. The sizemap is only 7mb now. But the player mesh has disappeared. I have a soft ref to a mesh, which is exposed on spawn, but there's no option to set it in the menu, since there's no player blueprint in the game world. Its spawned by a player spawner.
I guess there's no way to set starting variables for the player?
It's only 3 nodes isn't it
Soft ref = address
Think of it as path to the object
U use async load to resolve the path to a hard ref
I kinda made it work on a new third person template project. I can spawn another third person character, with the default mesh as quinn, but the blueprint is still 7mb.
Idk how to make it work for the player that gets spawned by the player spawner
On begin play, get the soft ref, async load , on completed cast to skeletal mesh.
Get mesh-> set skeletal mesh from the cast return value
So naturally Ur mesh should be empty at the start
If u already have Quinn there then it's loaded already
Not working in begin play?
From object to the new mesh
Is the new mesh the Quinn skeletal mesh?
From object cast to skeletal mesh
Then plug it to the new mesh
Do I gotta cast it?
New mesh is Skeletal Mesh
Yeah cast
Still invisible, and thats just for the ThirdPersons I manually place in the world
Print string to make sure it runs
Yeah i put it at the end and it prints, but no show. This is in beginPlay
This doesn't print, so I assume the cast has failed.
If I print the skeletal mesh its an empty string, so nothing
What is New Mesh, what type?
Skeletal Mesh (soft object reference)
And did you maybe forget to set its value to manny/quinn (for example the default value in Details pane)
Then just print the Object to see what it is
For another instance of ThirdPerson (not the player character that gets spawned), I set these details.
"Mesh" is set to none, and "New mesh" is set to Quinn
Can you print string the object
If I set the "mesh" directly (and not "new mesh"), the mesh appears, but that makes the whole soft ref async loading pointless
Which object?
Btw where did you put this code, is it begin play or what?
It gives nothing.
I put it in beginplay
Can you just set a bp breakpoint on the cast to see if it ever actually finishes loading
everytime i visit this channel i see your messages xd
Holiday is boring. I wish I am near my computer to do my game
before i want to start developing my game i want to learn every aspect of the engine (learning for 1 year now)
Show how you print string the object
Imma shower, might take a look later
The learning will never end, just make a small game first 
Gonna take a decade to learn EVERY aspect ๐
Can you show us how you defined the variable? Sc that and the details pane pls
I print string the object instead of Skeletal mesh (output) and its still "" (empty)
Print screen
U gotta do it after completed
New mesh is empty
I do melee traces on weapon actors.
the system is extensive when it comes what needs to be communicated.
Im current interfacing the weapon to a component on the target. And plan on working this into a sort of hub for resolves.
But does anyone have a recommendation beyond** weaponactor > target interface > actor component**?
His new mesh is empty
So for his player character that get spawned it will fail
It's not, he set it on the instance
wtf now it works. But I had to move the async code around
But "PlayerStart" doesn't allow me to set "New Mesh", so the player's version of BP_ThirdPerson is still invisible
You can just set the default value in the BP class
Instead of dragging it into the level and setting on the instance
Yeah that works for the player and the other instances load whatever is preset there. And the sizemap is only 7.1MB which is a lot better than 200MB.
Thanks for the help everyone!
Do note that your character now might be invisible for a couple of moments while its mesh is being loaded
Is that where loading screens come in?
What about for icons? Should there be some placeholder loading icon, then once its loaded, the icons appear properly? Kind of like how websites do it?
Also if you were playing an open world game, and you walk near an enemy area, wouldn't the enemies pop in and look glitchy for a few frames until they're loaded properly? Should you async load when the player is far away?
Depending on your game, yes. Modern games do it by having your character crawl through a crawlspace or climb a long ladder while stuff is being loaded lol
What about for icons? Should there be some placeholder loading icon, then once its loaded, the icons appear properly? Kind of like how websites do it?
Icons typically load very fast
Also if you were playing an open world game, and you walk near an enemy area, wouldn't the enemies pop in and look glitchy for a few frames until they're loaded properly? Should you async load when the player is far away?
That is a whole other can of worms involving level streaming / world partition etc etc. Usually you would stream in adjacent "blocks" of the huge level etc
You would also typically roll your own significance manager or something that will handle updates of things, and loading necessary references a bit out of view
How can I update material parameters from code in my widget?
In this example I'm trying to have some borders around a skill icon in a skill tree change based on unlocks.
Set texture parametre value
Get your material instance dynamic -> set texture parametre value
U will need to use dynamic material
To change something at run time
Create dynamic material instance, pick your material. Add it to the widget.
Then promote that material instance as variable.
From there you can set the texture parametre value
I'm not even sure if I'm formulating this quite right.
I have a skill tree widget. In which I'm using a "skill node" widget I have made.
In this "skill node" widget I have set an image to use my material.
Not sure if this changes anything.
Read what I suggested above
reading
You can change anything from the material. Texture scalar or vector
Just set your parametre name accordingly and with the right type
and Vector will be a Linear Color
Still digesting. Don't worry. ๐
And , FYI, you only need to Create and Set the Dynamic Mat once , after that you can just Set Parameters at will
Think you already tried to tell me, but to set a color I do what?
It wants a float?
Vector
Set Vector Param
ah
my bad
Need to do this for every skill node.
Guess I just collapse this into a function with the inputs to not bloat then code, and the loop through all nodes. Sounds good yeah?
Don't know how you setup your widget but there is a few time where you have to redo something over and over
Is your widget an individual button? Then that's a problem
Your skills node should be a base class widget on its own
With function that create and set the material
It is its own widget yeah.
Then you can move this to the skill node widget to avoid doing it as many times as your skill node
Good point.
Just create an public variable in there I can set from the "skill tree" side.
Thank you very much. Both of you. ๐
I prefer feeding the data into the sub widget
And let it handle itself
When skills are activated i suspect you can grab some identifier of which one got activated
Can someone assist me with this possibly? So I have a spline which I use, I need every 2nd mesh to rotate 180 degrees, which is does but now the location is off and I don't know how to fix it.
Simplify down to this
The sub widget is a button forwarding the "button clicked" event.
I'm thinking when a player click in skill tree, I cast to Game Instance to set it as unlocked.
And the sub widget itself will have a reference to Game Instance already, and update it's parameters based on logic.
Sounds right to you?
I'll give that a try, I only learnt about the Modulo function.
100% cleaner with that, thanks. I just need to figure out the issue with location now
That would be with your Origin point in your mesh
Sorry if I'm asking a stupid question here.
If I cast to Game Instance and make a reference because I want to use a value from it.
Is that like casting to it on every tick to check if it is a new value? (In other words bad performance)
Asking because it would be for every skill node.
I could get around it by casting and checking a value when a node is actually pressed. This just seems easy.
Game instance can never change
I wouldnt worry about casting to GI
Save it once at the start and you are good
Thr othet way around is another issue ๐
I don't mean if GI change. I mean a value in it. Like Player Level in the screenshot
A value changing doesn't cause any additional execution of code unless the event that is changing the value causes additional code to be executed.
Spoken like a true yoda
So if the parameter is set based on Player Level like in the screenshot, it would not update itself if the Player Level in GI changes?
Correct, unless you had some sort of function that you use to update the Player Level to call additional code.
if that is on tick, dont re-make your Dynamic Mat
Or.... You can create a function to update the player level and have it call an event dispatcher in the game instance and call that function in every place that you update your Player Level variable. If other things need to know when that Player Level variable changes, they can bind to that event dispatcher in the game instance so they can do things based on when the value gets changed.
You also don't want to keep recreating your dynamic material instance. You should only need to do that once - you can promote it to a variable and modify when needed.
Yeah, was a bit too quick there.
Same for GI reference. Can do those 2 on construct.
Thank you to all of you.
Event dispatcher is the way to go
Then any class who cares can just subscribe to that, and get the new level whenever it changes ๐
But it complicates, because Player Level is just a quick example to show something here.
Really I need a map with structs (I think) to keep track of node unlocks.
And if I bind to an event all nodes need to listen to that event and update.
Still consider it a better solution?
Dispatcher helps regardless
I just have an array of gameplaytags for unlocks
Well, a struct with tag + int
As some nodes are stackable
You still don't prefer to just run the code on the node that was clicked like this? (still swapping Player Level for something else)
Is there any way to use the "OnNotifyEnd" node when playing a montage? I've tried making a notify named "OnNotifyEnd" but it doesn't seem to work
Id run the node logic in the node, but allow it (or its parent) to register to a dispatcher for when a new skill is learned
Or a level gained etc
Does that work like that ? the Setting Brush , THEN making the dynamic mat ?
No. Working on that right now ๐
ok, Make the Dynamic mat first , then set your brush to it
Works better ๐
Okay. Thank you. ๐
Thank you Ryck0Shae. Saved me time for sure ๐
ooohooohoo....
When playing in New window, if you Ctrl-Z , it will undo changes you made in editor
So, can someone please explain to me how to get Enhanced Input to trigger only once for a key press?????
Thanks for replying, unfortunately I tried Started however it will activate even if a trigger condition is false.
So if I have a chorded action, how could I get a single trigger on press?
sorry , no clue on chorded stuffs
If all else fails, you can always block the tick one with a gate ๐ not something i'd do unless i was desperate
chorded action should only trigger once i believe? ๐ค
if a normal key, the trigger action should be changed to pressed for a single fire of action
Anyone know a way to have my Fishing Bobber Actor get buoyancy applied to it when it's interacted with a Physics Volume with Water Volume enabled?
I have a Buoyancy Component added to it and set its Mass and Linear Dampening but it does not float on my Physics Volume, only the fish can, which are Character bases
(2D Sider Scroller Image, the red/orange sphere is at the bottom, not the top like the fish are)
for UImage, you can get the dynamic material straight, if the brush is a UMaterialInterface, it will create one on the fly when its called and caches it.
Handy
Is that a better way of doing it basically?
Less nodes / upkeep ๐
And where is it getting the material from then? ๐
Whatever I set it to for that instance in the widget?
Y
though i have a feeling this function is kinda forgotten by Epic ๐
though its still works perfectly for a Material brush, it has a comment of some sort of additional feature, has a disable depreciation warning pragma, and also uses a C style NULL
the image
Can't seem to find it unless I untick "context sensitive". If I do that it breaks the connection when I pick it.
Ah, I see.
my bad
So I skip "Create Dynamic Material Instance" and setting brush completely. Everything else is the same? (providing I remember to pick the material in the widget instance ๐ )
you also can handle non material brush with a IsValid check before setting anything
My thanks ๐
what the node does is basically the same as what you had, the difference is, the dynamic material is created on demand and replaces the original material, so subsequent calls of GetDynamicMaterial will return the already created DMI
no need to save a ref / it wont keep making new ones ?
yeah no need to ref save it, as it gets from the image's brush instead
if Material
if !DynamicMaterial
CreateDynamicMaterial
SetBrush(DynamicMaterial)
DirtyTheImageForRedraw
endif
return DynamicMaterial
else
return nullptr
endif
hmm, no version for Mesh Materials ? ๐ฆ
you can always make one yourself ๐
let me check the one that primitive component has
bp would work too
this actually does work
the trick is to leave SourceMaterial empty, if its empty, it created what that index already has, if you set anything to it, it replaces what it already has, so this acts as 2 usage
it would also create a DMI and replaces it
also does the same if DMI, straight return it
you have to know which material index you want ofcourse ๐
interesting
though arguably, saving the DMI ref straight would probably be more performant? ๐ค but this is bp land, i guess it doesnt really matter...
^ word
But , you wouldnt have to keep track of which mesh has which material
just , whatever it has, you can change a param
but you also will need to check your own DMI ref isvalid so its the same in the end
๐
true true
Hi, I have a BP where I have 2 boxes acting as trigger, one for doors, one for drawers. But When I have fired the first boxes, the second become unresponsive (both have different enhanced inputs). Any idea what should be tuned ?
Gona need some pics, what is a Box?
mmmm... obviously component overlap of the second box and the first box do not work at once
box / component overlap sorry
it's two bp asssembled in one.
I used to do this that way cause it was the same control for drawers and doors
When you're confused , show code you used
When in doubt , print it out
and when code is crap , take a nap
Hello, sorry if I'm asking a stupid question, but I'm having a little problem with a blueprint that isn't working.
I'm folowing a playlist of tutorials to generate, but my blueprint isn't generating the landscape properly.
Here is my fuction to generate triangles, what it does, and what it was suposed to do.
what blueprint class is optimal ifi just want to have a base class with some information: image, Text, and a function to override
something like a struct
Depends on the use case but if u don't need to spawn it into the world, you can use the most generic class.
Uobject
Like a struct , but flexable ?
Uobject, aactor, bpfl,
Would just a c++ struct work?
Dependsโข๏ธ
like some memebers and a pure virtual function
you wont be able to use the struct's functions in bp
Can unreal struct have function in it, apart from constructor?
Ok so just UObject as the class?
Good morning, just woke up.
c++ only ๐
Can quite make out code, but make sure you clear the arrays before generating
i recommend UDataAsset if its about a collection of info about something
Ok let me see
can u inherrit from it?
Sounded dynamic in nature
Maybe I have it set up wrong?
If I have Z as the key and the Chorded action is an input action bound to Ctrl
And I press Ctrl + Z
It sends many
How do I do that?
I would use data asset/data table plus a class when it comes to items or weapons
here is the door code
The data table/asset can point to my weapon class which have custom functions depending on the weapon
Triggered is going to spam the Flip Flop
So i just need to add that block before every array?
btw whats the difference between Text and String?
You could manage with only one track and do *-1
no, just once at very beginning of generation code
@hybrid hare better use boolean and stop using flip flop.
Imagine if you enter the level where the door is already opened.
Problem with flip flop is that it remember the state
If you dont clear it , it will remember info from the last time you generated
wait.. its a local Variable?
@trim matrixsummer ok. That's why I have another set of doors for rooms that works so... I used bool . Ok 'ill have a look
The only local vareable that I'm using is the vareable vertex
yah , i think the "Triangles " array needs cleared
right before your first loop
Like this?
It still doesen't work
what's the tutorial you are following?
I'll also give a try with bool and branch instead of flip flop but so far it seems to be working, I've just rewrote my BP so all assets are in teh same and the same overlapping component (it seems overlapping 1 was killing overlapping 2 until I was quiting the overlapping zone and re-enter it)
Learn how to create a procedural landscape in Unreal Engine 5 and then play with it's heights. Enjoy the video)
Next episode: https://www.youtube.com/watch?v=1NAFvW_WhIM&list=PLyL5ZNukfVqskz_OkMdrLamiYg1sITyic&index=3
Source code: https://www.patreon.com/fetis
Full procedural landscape generation tutorial: https://www.youtube.com/playlist?list=...
I don't know why that tutorial is making their own function to make a grid of triangles. The engine has one built in
Imagine if this could be a simple component where you added references to, and just set a few config variables
Once upon a time, it didnt ๐
The tut was only 1 year old tho... hmm
It's been there for way longer than that tutorial existed though
Idm some exercise to make a triangle
well, my imagination is quite limited so far ๐
Next would be a square then rectangle
Cpp basic turorial teach how to make shapes
Fibonacci or w.e it's called
That tutorial sucks. They fast forward through the stuff you need to see, and then don't even show the final blueprint graph before moving on to the next part
Sounds like majority of youtube tutorial
How do i use that function?
How to make rpg in 1 series ๐ค or make your gta
Any tips on updating the text on a Interaction prompt during the interaction? So for a door, when it is closed it says F To Open but I cant get it to change to F To Close until I look away and look back at the mesh. I'm using a Custom Event inside the widget where I do Set Text and then call that event when needed. So far I have it so the text updates wether the door is open or not. But the text won't update itself unless i look away and look back at the mesh
I mean I have my reservations about a tutorial doing full proc gen in bp anyway :P
It was one of the only tutorials i found
You can use delegate to update the information
Have you seen my 1h mmorpg complete tutorial?
what you're asking is not a beginner topic, and assumes experience.
hence you won't find a tutorial
Its 14000 hours distilled into 1
In blueprint too I bet
it's very much one of those things where if you're at that stage to do it, you don't need a tutorial
I saw how to make elden ring combat in short video
He did all the attack anim in anim graph
Real garbage
As in Bind and Call events?
What is a good tut without blueprints
please tell me you do everything in the best blueprint.... the level blueprint
Yup, you can broadcast everytime u finished open or close door
I actually hide it in my ticking native landscape, yes
Oh shit yea, I did try it but I probs didnt do it right. I'm gonna give it a go when I get back to my PC
Is there even any tuts without BP ๐
I assumed u are doing trace every tick anyway right?
So just read the current state of the door
Yes indeed
Just read rhe current state of the door. If open set text to open if close set text to close
Good idea!
There are, some are gem. Not gaining as much subscriber tho
Understandable I suppose. Blueprint is quite friendly to a brand new user. I tend to stay away from tuts unless I'm really looking for something I cant figure out myself
If I must start from the bottom, I would look at these ones
Are there no blueprint node for a simple blur effect in materials?
Trying to find a simple way to create glow effects in UI
glow and blur are different things
and glow is not glow effect
Glow = Emissive
He is trying to do it in UI material tho
But for UI
Download Material lab to see how it's done
blur in UI isnt glowing. its blurring ๐
I can't dechyper most of them cuz I suck
But they covered how to do glow
Where is autheur when you need him ๐
Okay. I'm trying to create a blurring effect simulating glow when I add color later then ๐

How dare he take a day off on sunday ๐
He's been mia
in UI ?
Anyway download material lab
If you need to see how things r done in UI, including glow
Already did. Just wanted to avoid getting new engine version too if I could. On 5.0
Pretty sure 5.0 is fine
Still a good point though.
It's not easy like 3d material
still unclear if this is UI or not ๐
Unless you have plugin you cant directly do glow in UI tho, can you
@young meteor
Are you thinking about radial blur that can work as a glow in 2d software like photoshop ?
I wouldn't even say it's blurring, it's more like an alpha blend out.
There is a "SpiralBlur - Texture" node. Not sure if that is an option yet.
Need to investigate it a bit more. Doesn't seem intuitive.
its double plus good to be very specific ๐
not that its easy but it helps to find solutions eventually
Or gaussian blur is commenly used in Photoshop. Would do the job I think.
ay i used to do neon type effects wth the blur tools
Actually I could just blur it in Photoshop and import a new Texture with blur. Seems stupid though. There must be a better way. ๐
wasnt many special effects here eh eh
Hmm. Are you saying you kinda solved blur with math?
shaders are math
computers are math
life is math
It depends on the "shape" of the glow that you want. Like, if you wanted something like this where it looks like it's glowing from the bottom, that's just a gradient that's being overlayed
Ive been struggling on making glowing font ๐ซ
i end up just use a blur outline as the glow
๐
Gave me idea. I might try that later
It's annoying, because when I open up their "Spiralblur" node the preview is pretty much exactly what I want
Just can't get it to do the same for my texture.
Hello, is there any simple way to get the "UWorld" object as a reference in a bluprint?
Any particular reason to get the world ?
There is a static Blueprint API that needs the UWorld as a paramter
Like "static UObject* GetSomething(UWorld* World);"
Never try to get it in bp. But if I must I prob will make a function that return the world from cpp
Oh it actually does. Just not in my live node previews.
This works with a Texture Object, but I don't have an option to "clamp" values in an object.
Any good ideas on how to get around it?
@frosty heron Ok. I assume you can't get the UWorld in a c++ static implementation?
I mean one way would be to just remove the reference entirely and internally just get it from a global or so.
I don't see why not. Maybe can even do it from static library
GetWorld()
Return
'UObject::GetWorld': a call of a non-static member function requires an object
Where do u get that error?
compiler
How about get the game instance and get the world from there
@dawn gazelle Would know more
You need UWorld to get the game instance
UObject* UCommonFunctions::TestGetter(UWorld* World) {
if (!IsValid(World))
return nullptr;
//GetWorld(); // generates error
UGameInstance* GameInstance = World->GetGameInstance();
return GameInstance;
}
U want to return world
UObjects don't have a world context.
You can give them one, but you have to feed in an object that has one.
Instead of passing?
class MY_API UCommonFunctions : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
UFUNCTION(BlueprintPure, Category = "Common")
static UObject* TestGetter(UWorld* World);
Static functions are similar. They won't have a world context unless you're able to retrieve one from something.
gosh... test again... I got lost in histor
I am using enhanced ability system, I have an E key which interacts with something, I set it as a digital (bool) value type. Problem is if I hold the E key then it will keep interacting again and again. How do I make it so that the key only works once per press, so that holding the key doesnt retrigger the functions?
Ah I need to connect not from triggered but from started
ok thanks... so I have to pass any reference object that has "world"?
it can basically be just a plain UObject*?
If the UObject has a world context. by default they don't
gotcha... thanks I was planning to do a convenience function for GetGameInstance
I always have to convert it into the custom GameInstance and the blueprint just looks very bulky that way
i.e. GetMyGameInstance() in c++
Make a pure function that return your game instance
Yes, that is what I try
Save your self from casting
but to get the game instance I need UWorldd
In blueprint?
c++
Look how the built in one works:
/** Returns the game instance object */
UFUNCTION(BlueprintPure, Category="Game", meta=(WorldContext="WorldContextObject"))
static class UGameInstance* GetGameInstance(const UObject* WorldContextObject);
class UGameInstance* UGameplayStatics::GetGameInstance(const UObject* WorldContextObject)
{
UWorld* World = GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull);
return World ? World->GetGameInstance() : nullptr;
}
All you'd need to do is basically change the return type and cast.
I guess I could dig into the implementation of GetGameInstance
you usually use WorldContextObject isnt it
then get UWorld out of it
in a FunctionLibrary
GetGameInstance is implemented without any UWorld object reference
see the function above
it gets the UWorld from the WorldContextObject
for a bpfl, it will be wherever the function node is used
Yeah if it's being called in an object that has a world context, it shouldn't prompt you for a world context object, but if it is within something that doesn't have the world context, then you'd have to feed one in.
anyway i have another method to handle autocasting
it's just nothing but instead of this
UFUNCTION(BlueprintCallable, meta = (AdvancedDisplay = "ClassType", ClassType = "GameUserSettings", DeterminesOutputType = "ClassType"))
static UGameUserSettings* GetExtendedGameUserSettings(TSubclassOf<UGameUserSettings> ClassType);
the ClassType will determine the return type
just like the GetComponentByClass node does
I just want a "GetPlaformGameInstance()" without requireing the conversion exactly everywhere I need it
/** Returns the game instance object */
UFUNCTION(BlueprintPure, Category="Game", meta=(WorldContext="WorldContextObject"))
static class UPlatformGameInstance* GetPlatformGameInstance(const UObject* WorldContextObject);
class UPlatformGameInstance* UYourLibraryClass::GetPlatformGameInstance(const UObject* WorldContextObject)
{
UWorld* World = GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull);
return World ? Cast<UPlatformGameInstance>(World->GetGameInstance()) : nullptr;
}
if you are too lazy to even select the class you want then i dont know if there is anything that is dynamic
just make one specific casted for the ones you need i suppose
this is acceptable to me as its one node for all possible classes
Maybe this can work?
GEngine->GetWorld();
It worked, cheers man
Since u do it every tick make sure to not do something that's already dobe
Done*
For example if open and if text is already "open" do nothing
Otherwise u might be calling set text every frame
Ahhh! Very true!
Which maybe insignificant but some node is just heavier. If you want to guard Ur fps, it's better to do micro optimisation
All objects have a GetWorld() function, but it doesn't mean they have the world context.
Make a function out of this for your blueprint problem. Plug the cast result and return it
Then you can call getmygameinstance function instead calling getgameinstance function
Note the lack of defining a World Context Object anywhere.
What is happening is that it tries to get the world context automatically from the thing that is calling it.
Only works if called from actor then? Or not really
anywhere where a function library is usable
Basically... or anything that you've been able to give a world context to.
0o ๐
function library only shows up when GetWorld() is resolvable anyway
This is the C++ equivalent of what I have above in blueprints. #blueprint message
I use the kismet library to get the game instance, never dug deeper
And made a function in bfl to return my gameinstance
it looks like this
Mine isn't quite the same ...
How big is your outline size? anything i missed ?
my size is 8
but yeah, more or less thats the closest i have ever gotten to a font glow
๐
Can't believe there is not a default glow option ^^
It's the way she glows...
time to request photoshop feature into unreals
here is one with roboto bold
certainly some weirdness..
and it also affects the widget desired size
i just want glow like this ๐ฅฒ
Theres a plugin
Feel like one could set up a loop function for a translucent material that do X passes of:
Increase UV size by 0,0X (loop integer), set opacity to 0,01 (not sure about value), and add it to final color.
So in other words, expand the texture slightly X times (slightly bigger every time), with a very low opacity, and add them all up in the end, to fake a gaussian blur with X "rings" of glow. Faking a gradient.
Sounds way off?
Hmm, I think there is a gaussian blur panel in UMG which you could put a copy of your text behind in order to get the blur, but it would also blur everything else behind it
Unless you're fine with settling with a blurred box around your text
Hey i have a problem im trying to spawn a player and possess it to the player controller so that the user can controll it the only problem is that the server can not move arround but the client can why is that?
When i do "Get Player Controller > Posses" i can't move and no inputs work, how do I restore inputs to a posses pawn?
Sounds like u have the same problem as the person above
mine isn't server/client, doesn't move at all on client, but interesting it's very similar ๐
Single player yeah?
Perhaps his problem isn't multiplayer related then
Normally possessing a pawn just works. But I'm not sure how inputs are handled with the new input system
Anyone have any ideas for this?
Think that might be it, I'm using the new Enchanced input, if i add a basic "num 5" trigger it works, if i add a Enchanced Input for num 5 it doesn't work when posses..
It should be implemented on begin play, look how they add the maping context etc
Not sure what you mean
You might need to run that after the On possessed event I'm not sure
Look how enhanced input is setup
Oh the assignment of enhanced?
Yeah that is fine
If i enable auto posses everything is fine and dandy
it's when i posses through BP
I can't comment much cuz I'm still stuck with 4.24 lol
Yeah try to run the assignment after posses. See how that go.
OHH
@frosty heron that was it, so on begin play i checked for player controller and map controls, when not auto posses theres no controller so it doesnt set
dohh
thanks for the help ๐
@fervent zenith check out what he do. Sounds like Ur problem too
i threw a print on this after what you said and it was apparent, so now after posses i just re-run this function
might help! @fervent zenith ?
oh you just created a new function inside the player character class and after possess recall it?
how do i access a widget that is one of my actor component ?
Wdym? Try to show some picture
Wooo! and thanks @frosty heron ๐
@frosty heron we love you โค๏ธ
Get HealthBarWidget > Get Widget > Cast to your Widget's Class > Do stuff with your widget.
it works! thxx
the funny part is that my player character class is written in c++
i use ue to avoid coding
:LULW:
what is ue?
Unreal Engine
ya i meant i choose unreal engine over other engine like unity/dogot to avoid coding.
hey folks am I doing this right?
I'm getting "shot" events
but the npc doesn't appear to be recieving the event
i see yea im using mostly c++ because i like it to code and blueprints are sometimes harder and limited
shouldn't u use event any damage( the built-in one)?
the one you using is created by you
don't you need to connect the damaged actor ?
for what, if it recieves the event, it is the damage actor
ah ha, there's also an "anydamage" event which is... the same thing(?)
no idea, but normally if i use apply damage i will use event any damage
i never use the bind event node no idea how it work lol
yeah i slapped that in there and it still isn't firing the print string i'll keep messing with it
i use interface
I dont know what that means
Hi all, anyone got any suggestions on how to do a charge attack and a basic attack from the same input? Not so much the mechanics of it as ive got that figured out, just how would i get it to work from an enhanced input action without them conflicting? Thanks
u can just cast to the enemy blueprint and call any custom function in the enemy bp, or use interface
yeah I could make my own custom event and event dispatcher and build everything from that