#blueprint
402296 messages ยท Page 838 of 403
I only use montages for melee combos or reloading really
what if I already have one round for in drum for example, how should I know from where place to start putting new rounds?
might anyone know whats the mistake in this collision settings?
You still implement the logic, it's just a system to help you
i have a Ball, and a Wall. I'm trying to get the Ball to collide with the wall and have the wall receive its OnHIt event
currently - they don't even collide.
i applied collission to the Ball's Sphere Collision component, and collision to the Wall's static mesh.
@chrome nymph these settings look fine, does your ball and wall have actual collision meshes tho?
the ball seems to collide with the other stuff in the world e.g. geometries
hmm, im not sure about the wall - i merely convered the cube geometry into a static mesh
ah bingo
i had to manually create collisions, oh wow didn't realise that was a thing
thank you
is this the case for every static mesh?
On import, you can let unreal generate these meshes (or you can generate them/create them in the menu you just did)
For more complex things, you usually make them in your 3D software and them import them together with your mesh
But yeah all static meshes will need to have a collision like this if you want them to collide anything
you mean you can use stuff like blender to generate collisions?
Scroll down to collision
v cool! thanks
Hey guys, I tried using a Sequence node to tidy my BP flow up a bit.
The problem is that the Async tasks I have at the end of some of the sections are no longer waited on, the flow starts the task then continues immediately.
Is there any way around this?
Not really. I generally avoid sequences. Most of my BP work are selects, or single function calls. If I need a more complex function in a long function line, I drop it into it's own function or event and call just that.
ok sounds like a good idea
but you might as well use the animBP for that?
is there a reason a pawn doesnt trigger EventTick other than not being auto activated?
lol i know why
its static mesh was there and not the blueprint instance xD
@maiden wadi is there any reason to prefer a BP function over an event? or vice versa.
oh.. I can't call Tasks from functions?
functions can return values and are considered to be instant speed
events don't return anything but can be delayed
Hey Guys, I'm trying to use a movie render queue in blueprint but keep running into an issue of setting the map path
Am I doing something wrong without realizing?
have you debugged it with breakpoints to see what the value is at runtime?
Yes it seems to be set the same as the output log says, which I believe to be a valid path
ah right yeah that makes sense that you can't delay in a function that is expected to return something
does it work?
Nope it crashes out with that error. I just mean to my eyes the path is correct so I think I am missing something
I mean that's not an error, that's a warning
Oh right, well it is crashing out of the editor after, so I would assume that is the reason why ๐ฆ
probably related, if it can't travel to where it wants to travel to. so your paths may indeed be incorrect
Do you know if there is a soft object reference I can store my level in? What would the variable type be
Sorry for these basic questions, but I'm a bit of a BP noob.
I moved some stuff into Events, but I have the same problem, in that I want Update Weightmap to run AFTER the async tasks inside Update Heightmap have finished. I'm not sure how to do this...
At the moment flow just continues right on without waiting for the tasks to complete
soft object reference?
you'll need to use delegates for that. async tasks will perform async
Yeah the variable I'm trying to set is of type 'soft object path structure', therefore I guess I need a soft object reference to get that path
ugh.. ok I'm going for one long flow again then ๐
you have soft object reference options available for each class. it's a type
you'll likely face the same issue
Yeah so I'm wondering which variable type I should use to store a Level
I think it's ok because the output pin from the task is effectively working like a delegate maybe?
I think I can move all the non async stuff into functions, keep the async in the main flow and it will be more readable
... soft object reference. I just told you
ah yeah in that case you'll be fine
Apologies I don't think I understood you. I'm muddling my words, I need to know which class type to store a level, like what am I looking for in here
level is a type
It doesn't seem to appear for me huh?
have you checked all the way through?
Yeah, multiple times. I assumed it was a type so I was looking for it earlier
I think that's why I was confused
Node to convert a float into a formatted time in seconds + milliseconds, EG only to a certain amount of places?
thanks for the help @timber knoll and @runic parrot
This a blueprint Ive created for a fog effect with a custom material, however when I insert it into my map it does not work
Can anybody help? I've been trying to figure it out for the last 1 hour
did you assign it as the material for your static mesh component?
Can't tell if FogPlaneMat is assigned as the naterial for your static mesh component
Yes M_FogPlane is the material file
Ahh I forgot CreateDynamicMaterialInstance also assigns the material to the SM
Is FogPlaneMat a local variable?
yes
That might give some scope issues if you're running it in ConstructionScript
<@&213101288538374145>
Try either making it a Blueprint Variable or do a StaticMesh->GetMaterial
goddamn spam bot interuptign me
How do I make the local variable into a bp variable
Try dragging it from LocalVariables to Variables, failing that make a new one and replace the links
that did not work
It's still the same
Replaced all the link with a bp variable
Does Event Graph need to be modified?
This is what my eventgraph says
Anybody?
LocalVariables are scope limited to the Function you are in.
If you want it outside of it, it depends on what you are doing.
E.g. if the function is called and should return it, you can use an ouput param.
Otherwise, if you simply need a member variable instead of local, create it in the blueprint on the left and set that instead of the local one
Is there any way to use the 'ImageMediaSource' class to display a singular image rather than a sequence of images? I'd like to take advantage of the MediaPlaylist functionality by using it to play images like a slideshow. I've tried using 'FileMediaSource' but this doesn't seem to recognise PNG files
I tried creating a member variable but that didn't change anything
As for the first part, could you please explain what you mean as I'm super super new to this stuff
a local variable is only available to the function that it's part of
it can't be accessed from the outside
and every time you run the function the local variable will be reset to it's default value
a global variable in the blueprint however, will keep it's value as long as you don't change it, or destroy the actor. And you can expose the variable from the blueprint, so that you can change the default to something you like in the details of the actor
@restive oracle flipbook is what you want
Anyone know how to create a volume/area on the map where a set of different items/meshes are spawned randomly and continuously?
use this node
for your randomness
@versed sun Thank you!
Cheers dude, is it possible to display the flipbook inside Widget bps?
In this episode, Emily takes us through the process of setting up and using a UI health bar that is animated and changes speed based on your health amount. The lower your health, the faster the animation. As you get closer to low health, your health bar drops to red and the animation plays quickly.
The first HP Tutorial:
https://www.youtube.c...
How can I bind a class's custom event to another class's dispatcher from within a third class?
https://www.youtube.com/watch?v=ilVlxAfkUFM&ab_channel=WALLZ thanks for helping me out thursday @odd ember @gentle urchin
https://www.youtube.com/watch?v=PMMc4VsIacU&ab_channel=Reducible dfs algorithm helped me make this
Hey I was curious about something. In an Infinite Runner I notice most people just put the Spawn Tiles in the Game Mode and then they reference the Game Mode in the Tile Blueprint. My question is if I didn't want to use the Game Mode but instead wanted to make my own Tile Spawn Class what do I reference back to?
Ooof, this may not be what I'm looking for. I'd need to convert png's to sprites and create the flipbook at runtime, not sure I am able to create all of this at runtime
That's why they usually use the game mode..
But you can get all actors of class if you only have one spawner in the level
@tawdry surge could you help me out with this. Been struggling for the last 3 hours
That bp should be good, is it a post processing material?
But I'm only spawning one Tile Map at once. There has to be a way to get it to work without the use of the Game Mode Blueprint. I'll use the Game Mode if I have to, but I thought it be better organized if I could put them in their own Blueprints.
No it's a fog plane I wanna use in my level
No
I created the material myself as well
Show the fog material
Here it is
Try posting that in graphics, cause i dont see a reason why that bp wouldnt work
@tender gorge you could have the spawner be self contained and then it doesn't need to cast to tile map base.
Spawn with a function inside the tilemapBP
Worst case scenario just use volumetric fog
Yeah man that's what I've been thinking for the last 3 hours ๐ I don't why but I just have a feeling it's smth super basic but yeah I'll take it to the guys in graphics
It likely is, i spent an hour wondering why my zone system wasnt working, then realised i forgot to index them
That is what I originally had (which works 100%), but I wasn't sure if I wanted to keep it there or not. The beginning Tile Map that the Player spawns on is in it's own Spawn Class Blueprint, which is why I wanted to try and get this one in it's own too.
It happens
@tardy kettle My only guess would be that your construction variables are local. So they maybe resetting as soon as it finishes running. Did you make them member variables instead?
Yes I did
All of them
You mean "promote to variable" right? Instead of promote to local variable
Hmmm let's hope somebody in graphics can sort this out
Can't make sense of it myself
@tender gorge you could use the game instance or the level BP if you want but you need a global object to connect the spawner and tile map BP's
Damn. OK. I'll keep it self contained like I originally had, but I'm not sure what to do about the enemies then. The best way I could think is to have arrows to control the spawning but then that would also have to be in the BP_TileMapBase Blueprint. I only want the enemies to spawn on certain levels of the Tile Map.
I'm new but not 100% new to Blueprints so I'm still learning. I know in the end this should probably be easy.
Hey, im working with a food component enumerator that has an enum for each "Component of a burger" (Tomato, Meat, Lettuce etc.)
I need a way too compare the enumerators semi quickly without care for the orders. (As im using the same array type with enum for the order)
(E.g it has 1 bun base 2 patties 2 cheese 1 bun top)
You can pass a reference for the spawner to the tile that was spawned and then have the enemy spawner line trace at the spawn point. Use the trace to access the spawner and tile map to determine if the enemy should spawn there
Is it possable to use 2 data tables in side 1 structure
I'll be honest that flew right over my head. Would you be able to link me to a tutorial that could help on this or tell me what I could type in YouTube to figure some stuff out?
I made a buildables data table and I need to get the recipes for the item data table. That just doesn't seem to work
I didn't want to add all items into 1 data table
Not really, but basically when you spawn the tile. You set a variable inside the tile to reference the spawner/tile map BP. So each tile knows who spawned it.
Then when your enemy spawner tries to spawn an enemy you can do a line/sphere trace at that location. The trace will give you a reference to the tile, which is storing a reference to the tile map. You can then check if that tile should have enemies or not
Okay i finally got this working but now this is not updating to the ADS camera location. any idea why?
small video of whats happening.
Sanity check please... my head is broken...
I have a UI where the player can change input bindings... I've just discovered that it isn't removing items from the input settings correctly.
This is the code that removes part of them
It seems to always remove the "positive" one, but not the negative, e.g. a "W" instead of the "S" for moving forward... I'm sure this is just coincidence... all the crazy lines are for PRINT nodes I have attached to it to debug...
The array two items when it comes into that FOREACH loop, but only one is removed (again using a PRINT node) before it moves on to the next bit of logic (outside of the screenshot)...
Best guess is that because I'm removing something from the array, its getting a bit screwed up... can anyone confirm that this might be the case, and, if so, what would be a better approach to remove all items for a specific mapping?
ooooh... looks like a Reverse Each Loop works...
so I guess it was taking the first item from the array, removing it, index 1 became index 0 which it had already processed, so it assumed it had completed...
Reverse approach takes from the end so the array shrinks but leaves index 0 to last..
yay... my brain works..
@restive oracle Another option would be to create an array of the images and use a manager object to switch the active brush on your ui's image component
Yeah that is the way I am going about it. Just thought it would be nice to be able to use some in-built components to do that for me, thanks anyway
Ok. Thank you for the info. I'll look into that and see what I can do.
anyone got trouble with Array and Inserting?, , When i fill Items to an Array with Add works Good, but with "Insert", its Empty,
only empty indexe's ?
This Test Texte's /// https://puu.sh/IJ7zU/24bcce6ea6.png [see its not empty]
on an Insert Array, and even if i Debugg it its absolutley Empty // its an Specified Index and atm its about the Current Used Reference # 1
https://puu.sh/IJ7BO/f0367814c3.png
basically i add Rows of Textes into an Array, and that Array, gets into another Array in a structure
done but it doesnt help me that much more, still empty
Hey guys how can i add animations to that box?
how can i change the skeleton on the other animation ?
It happend outa nowhere and i am stuck with that
mhh which one you mean ?
its an Specified Index and atm its about the Current Used Reference # 1
thanks ๐
you can lead a horse to the trough...
length is 2
you can explain the theoretical concept of a trough to a horse...
i redone it again with Set Array Element that it works flawless
ok thats weird, i try to insert on Index 1
but the length is 0
i mean on Set array Element u can Size to fit, but here not
Is ther elike an Size to Fit option too?
Ahh so i want to Update with Insert, but at this Moment the Array have No Indexes, and i was bypassing it everytime with Size to Fit, because i need it dynamically
don't BP arrays automatically resize ๐ค
doesnt look like
'Add' appends the element into the array automatically increasing its size by one.
'Insert' inserts the element into an existing index, moving every latter element by one thus also automatically increasing its size by one.
'SetArrayElem' sets the element of a specific index to a specific value. If the index is out of range and you checked 'SizeToFit' it will automatically fill every index between the former last index and your specific index with the default variable value.
๐๏ธ ๐ ๐๏ธ
hahaha
ah wait
you mean on set elem
I thought you were talking about the set variable type
hi so i have this problem where I have a working ai but if I put another one in the exact same spot it just doesnt work and if I duplicate working one it works
make sure you have controller set
no I just found the problem when I spawned my ai I setted its state to roam so the ai that i spawned had state roam but ai that was in folder had default state if that makes sense
Anyone knows how to properly set up Steam Achievements? I'm going crazy with this issue:
- Added the required code in DefaultEngine.ini using the test AppID for Spacewar.
- Activated the Steam Subsystem Online plugin
- Added in level blueprint a test bp: when you press 1 - cache achievements - on success - write achievement progress and connected a "get player controller" to both of these BPs.
- Added print string in the end just to make sure.
- Double checked DefaultEngine.ini for same name of achievements like the ones in Spacewar.
On test: Print String shows the achievement code successful.
My steam shows I"m playing Spacewar.
However' I'm not getting the achievements.
sounds like a steam issue
Another dev told me the same thing, I reached out to Customer Support, but they haven't replied yet.
Hello guys, how to make an animation of holding the trigger before firing and unclenching after firing? I need 2 anim montage?
welp there's your answer
I miss doing ue4 stuff, i was not a pro but i did enjoy it. Unfortunately i will not be able to make a decent project due to alzheimer !! ๐ฆ
Hello everyone, I got some imported texture like that(I'm in progress of making horizontal compass) and compass works perfectly(I'd attached my blueprints), the thing is I don't quite understand how it rotates the texture(raw image), I've this x_offset variable that usually in range of (0, 1) but when I'm hard-coding these values inside of TexCoord[0] and set UTilling from 1 to for instance 1.8 my image get stretched. Could someone explain how this UVs work?
Does anyone know how I would do or what I should look into for randomly spawning pickups across a fairly large terrain?
I want pickups randomly placed along the terrain the player can pickup to replenish health
Does anybody know a good pattern for getting a widget blueprint animation's value inside of BP? I'm changing the location of a WBP based on some camera/location data and would like to drive an animation on that. I can do some vector math to accomplish what I need but don't have a good way at getting an animation track's value over time
was there a version that let you not do that?
Macro libraries are always tied to a class.
TuesdayTank in #blueprint??? Does #cpp know about this? ๐คฃ
Semi surprised that's not in UE5 for as much as it's requested.
dunno never used macro libraries
Can't say I've ever created macros other than for Actor parent class.
Its like a for loop but it doesnt actually loop, you still have to write the code x amount of times
Well, in that case you could probably drop it in Object. Only need Actor if you're dropping the delay or whatever into the macro itself like most people do.
you mean like... an iterator? ๐
Hey, I basically want to add to the inputs that cause the update tooltips to fire, notably the key B, How can I go about this since it doesnt seem to let me do such inputs in this UI blueprint
Put some flags and read the variables
I'll try that, Thanks!
Does anyone else just figure out whats wrong seconds after asking for help. Despite searching for half an hour
fuk
hello, is there a way to update blueprint Structures without breaking previous get Structure nodes?
you can't, but you can quickly udpate them by click on the node and "refresh"
Hey folks, trying to set up a feature on our characters to move them naturally to an 'interact' point (defined by the interactable actor) to prepare the character for interaction animation
I have this setup, but I can't see why it's not working?
I have tried debugging the path points, and they are created/set correctly as well.
I have a Nav Mesh correctly set up, but no movement input appears to be made. Perhaps there is a better way to do this without handing over control to an AIController?
I should add that this is running on a dedicated server setup
That's bad... Should switch to c++ structure if it can't be helped
I really wish you could Control or Alt click on an empty input to split it without needing to right click
bp is okey for prototype, if you are changing your structures (changing names or types instead of adding new ones) too often, probably something is wrong with your design
Hello every one, i am have been tried to make the character look at a specific object in the level, i did this, but not work ... some one can help me ?
i tried this ....
but not worked
Does anyone know why this isn't working for me?
just delete the output and add a new one
If ur extra cool you use external bool for break aswell. Makes the use of it a lot cleaner (but requires a bool ofc)
Not externally?
I have a question regarding approaches for picking things up in an FPS... anyone have a bit of experience with that?
Yes!. Screen space agnostic easily resizable and movable widgets via drag drop operations from a plugin that fully stay on screen at all times. Victory. ๐
me?
oh... lol.. (that's why I find Discord challenging!) ๐
ok... so current issue is that the picked up is triggered from an animation notification... so it actually gets picked up at the "right time" and looks ok... the problem is, some of the player's tend to move away from what they are trying to pick up too quickly, and because they are then not line tracing to the object when they've moved, the pickup code runs but doesn't give them anything...
I've tried a few tweaks... increase the animation playback speed, bringing forward the animation notification in the animation... changing the line trace to a sphere trace (really didn't work)... I'm running out of ideas other than to say to the playtesters "JUST STAND STILL FOR HALF A NANO SECOND AND IT'LL BE FINE!" ๐
thanks again Bro, works now all flawlessy!
my last thought would be to store a reference to the last object the player looked at, which they could pick up, then, when the anim notify triggers, pick up whatever it was they were looking at... but for that I feel I'd need a time limit, other wise they could be on the other side of the map, hit pickup and grab the thing they looked at 10 minutes ago... and it would have to expire really quickly... and feels just wrong.... I figure thats pretty much the same as speeding up all the other bits..
Can you get how long the animation is? If so you could just code a timer to run to clear the pointer after the timer and call the animation at the same time. Animation should run it's notify long before it fully finishes the animation, so their pickup time would still be directly linked to the animation.
true, it does. thats the downside of it
but the returning wire is also ugly af ๐
I did the same thing with the wait macro, but felt weird when you already have this control over the loop
like... if you wanna break, you can just skip going to next body ๐
Potentially, yes, but I just wondered if this was a bit of a weird way to do it... and what other people would do... I think part of the challenge is that the objects they pick up are quite small (mushrooms - you'll probably remember this from the other week)... so its easy to move and no longer have the cross hair over it... because the game has a sense of urgency, they are moving rapidly...
..there's actually a large part of me that doesn't really want to change it, because most of the play testers only played about 3 times, not really long enough enough to get the hang of those little intricacies imo... but because they are all stating its too hard I feel compelled to throw them a bone...
Any other thoughts on different approaches? I've removed the anim notify from the equation completely, but then it feels kinda too fast and the animation swings around after you're already holding the object, which then looks daft... but you do typically grab the things more often..
Okay so i rewrote this ads code for MP standards but i can not figure out for the life of me why this is spins when the button is being pressed and its driving me crazy!!
just linetrace when the grab starts?
if it hits something grabable grab that, otherwise grab the closest
hi guys, im having this issue
im setting it with Set Master pose but it clips in a weird way when i sprint :/
Already doing that... there's a line trace to highlight the objects that they are "looking" at, then, when they hit pickup, it fires off another line trace and if its something that can be picked up it picks it up... but the animation is played on the act of picking up (regardless of whether they actually pick something up or not)... there's a notify in there which then runs the code to do the actual attaching of components... only 8 frames in... but because they can still move in the game, if they do, when the line trace is run (from the anim notify) is misses
(because they moved)
Macro libraries are tied to a class. When you create a macro library, it's asking you for the class that you want to use that macro library in. It should be able to be used in the class defined as well as any of its child classes. If you want to have a macro accessible basically everywhere, then the class to select is Object. If it's to be used with actors, then you should use Actor as the class. If it's only needed in your characters, use character as the class.
The idea is that macros are supposed to be able to support the class they are made for - so if you had custom variables in your character class, your macro library could then be able to use and change those variables if it your character class was selected for the macro library.
to me, thats just feels like "tough sh!t"... kinda like a darts game where you decide to look at the door when throwing a dart and wonder why it didn't hit the board...
but I might be being a bit savage..
that seems silly
That's how it works
same with other sprinting animations, if anyone could help me ><
Hard to say, honestly. Really just comes down to what you want in the end. I do admit that running away after starting interaction is odd. Animations on character or UI usually get halted when looking away, or the camera view is locked into that direction until animation finishes. Or the pickup is instant. So I suppose it just comes down to the intended gameplay.
hey, i am trying to find a way to do level stream but do not have them loaded at the editor, so i can run large maps in a weak computer... i can not figure out how to do it with Level Stream build options, so i tried this; i am doing something deadly wrong if i upscale this?
Yeah, its just because the game creates a sense of urgency and pressure, so they are all responding rapidly, more than they need to really, but thats only something you learn as you play the game more and adapt your style... 3 playtests doesn't afford that...
Ref the animations halting... we have it set up so that you can throw/pickup and those animations play regardless of whether you have anything in your hands, or whether you successfully targetted something to pickup, e.g you can flail your arms around just like in the real world (if you want to)...
The camera lock is an interesting suggesting, I'd not thought of that... they'd still be able to move, but briefly would be force to look at the thing they were trying to pickup... hmm... the only issue that might occur is if they walked far enough away that the line trace was then out of range... we have a "reach" distance etc...
I did try the instant pick up, but it just looks a bit, well, odd... seems far to fast etc.. intended is effectively what I have... but the people are being all, well, peopley... ๐
Just thinking about the locking camera thing... I've had to trigger than when the animation starts, e.g. the act of picking up... which means there'd potentially be a lot of locked camera stuff going on... even if they weren't actually picking something up... not sure if that would work or not now... like the idea though..
Like a blueprint function library is more meant to help support any class with common functions, but you lose out on direct variable support within the function library, so at best you can send inputs and return values and then have to set the values where needed in the class receiving the return value. Macro libraries are the antithesis of this - they're meant to support a specific class as they will have direct access to read and set the variables within that class but you can only use them within the defined class or its children.
yeah but this just doesn't make sense. maybe it's just because of the limitations of BP and the absence of generics
Personal experience from both sides. People are going to cry. Specially playtesters. As the person who plays games and enjoys them, and having played quite a few beta tests, people really just want attention. If their fix gets implemented, they get to go around saying that "they" told the devs that was definitely the best way to handle it. Or they get a feeling of a pat on the head. Y'know, egos and shit. That isn't to say dismiss everything on that basis, but just take play tester critique with a grain of salt. Or five. Take their ideas into consideration, but if it doesn't line up with what you have in mind, it doesn't line up. If it's not something easily changed without ruining what you as the developer want, probably not worth considering at this moment. Could be reconsidered at a later date if your game changes and stuff, but if it's not in your vision now and you're at odds with it, don't do it.
what do you want to happen design wise
Thanks, appreciate the suggestions and the feedback.. ๐
Well, let's say you wanted to have a macro that you can use everywhere... Then you can create that macro library at the "object" class - then you can create special for-each loops and other fun stuff and it'll be able to be used everywhere. This is the ideal use case. It makes less and less sense to use the library the more specific you get, especially if you start to make your own child classes of the primary object types as you could then just put the macros in the class itself and all children will be able to use it anyway. Like... Macro Library for GameMode? Makes sense as then those macros would be made available to all game modes. Macro Library for BP_MyGameMode? Doesn't make sense to do, especially if you have child classes of BP_MyGameMode - you may as well have put the macros in BP_MyGameMode.
I think it could perhaps be a little more responsive, but at the same time, I dont think things should just magically appear in their hand if they've spun around and walked away either...
If you or @maiden wadi wanted to have a quick go I could upload a copy somewhere and you could see what you thought etc... but I don't want to take up lots of your time
I think maybe increasing the playback speed of the animation, and maybe moving the notify forward a couple of frames might be the middle ground...
I don't think it makes sense at all to not just have everything available from the top. it just seems silly and weirdly restrictive. I could understand it if it was based on limitations, but if it's not, it goes against every OOP principle
do quite like the idea of locking the camera, would forced them to pick up successfully, but needs to not happen everytime etc..
I don't know what you're talking about. I didn't follow your conversation entirely. I'm just asking, broadly speaking, what do you want to have happen
Any idea when its paused i got those shiny lightings in the scene ?
eye adaptation probably, try asking in #graphics for a solution
ahh, okey dokey, not a problem ๐
Hey, How can I get my project input height up key into this node in a widget bp?
input... height?
Wouldnt it make sense to instantly trace -> hit the object, trigger the anim, and just pick it up regardless of player movement ?
yeah, my bad
Ah ok, thanks a ton!
I have a constant trace firing out for a "look", this is what highlights objects if they are interactable, and within reach...
If the player press the button to pickup, then the animation starts, 8 frames in the notification fires and that calls the function which runs a trace to see if the object can be picked up etc. If so, it is.
So, you're suggesting I swap the trace and animation around the other way yeah?
So they press pick up, I do the trace, if it hits, fire the animation (we want to run that animation in either case whether they pick something up or not)... and then what, use the notify to do the actual "attach" part of it all?
thus if they'd moved after the initial press of the key and trace, it would still get grabbed...
When using Detour, how do I set a minimum distance the NPC's should stay from eachother?
Atleast you dont need to re-trace during animation! The trace already hit the thing they intended to pick up. If the player has clicked, this item should be picked up, regardless if you lock the animation part or not ^^ Atleast thats how i see it. The players intent, and percieved action was that it was gonna be picked up . Especially if this game has some pace, i'd say thats important to keep in mind ๐
I shall give this a whirl, it'll mean unstiching a few bits and swapping it around, but shouldn't be too challenging... thanks...
You'd fire that pickup trace from the pickup action still though right? e.g. wait for them to press the button to do it...
I'd "lock" the item for pickup as soon as the interactable trace has hit the object AND the player has pressed the interaction button
if you got a lot of attention on the animation, perhaps some simple lerp magic would be in place .. just to toss an idea out there ๐
the item basically just sliding towards the hand or whatever
I did actually review the Stranded Deep game a little while back, trying to work out what they did, and it did have that kinda feel to it, like it was being "drawn" to the players hand...
Its been a while since i played it, gotta check a video about it to see how that was ๐
heh
not even remotely close
they litteraly teleport it at a given frame
I think I picked up a rock/coconut or something, I was trying to work out stuff about scale too... e.g. whether you just attach the object "as it was" from the level to the hand or not... because in FPS view it looks massive when close to the camera..
So that's kinda what we're doing already then...
I must admit, I didn't check to see if they lock you on the target or not etc..
the smoke here
is that the item is not even in his hand
it just vanishes
sorta as expected
his hand is just a distraction
Yeah, I was wondering whether we should scale down the objets a bit when they are held, so they dont look so big, but they still all need to look right again when dropped, which then means managing all the state of those scales...
anyway you can insinuate an animation even without playing it if you just make e.g. the leaves rustle as you pick a fruit etc.
it's just two scales
Yeah, I guess, the original and the held and then swap back... just wasn't sure if that is what people typically do or not...
^Exactly. They do some sound and location specific 'hit' thing
We have sound also, there's a tearing sound as its pulled from the ground etc..
Out of interest, if you were making something like that, would you reduce the scale of the held objects? Some of ours block the main view of the camera which is a bit crappy... but I wanted to get a feel for the common approach before really doing anything specific.
I toyed with having separate "held" meshes etc... but that did't go down too well..l
I'd do whatever seemed natural
hmm, no hard and fast rule then really
no point trying to understand it through a technical lens
unless you know exactly what you're doing you'll find that there's very few hard rules in design
I guess I just didn't want anything to seem too jarrying... e.g. if you pickup something that looks big in the world, but then appears smaller when held, thats a bit odd... but having it mahooosive when its close to the camera kinda screws the pooch too
have you tried it?
accidentally yeah, I had a bug in my code where it ignored the actors scale, so it defaulted to 1,1,1 - some of the objects in questions were 1.5, 1.5, 1.5 - they looked ok at 1,1,1 whilst held... but then, if I pick up something thats already at 1,1,1, it would need to be reduced so conform with the difference between that first object etc... so there was some form of consistency... so I guess I'd need to calculate that somehow and then it could be applied to everything equally..
try it
you're going to get more done if you stop overthinking it and just try to see what works and what doesn't
if you're thinking about something that might be jarring without even testing that it is jarring you're going to overcorrect and waste time
it's the same as optimization
you only optimize when you have something to optimize
probably true, just trying to source the experience from others who may have already encountered these things to help me along that journey thats all ๐
most of design can't be readily translated
it's like giving you a fish versus teaching you how to fish
I can see what you're saying, thanks. ๐
will give it a whirl and see what happens... ๐
I'm trying to make the player take damage whenever they are in darkness. Is there a way I can fire a trace out in every direction from a light?
I'm pretty sure sphere collider would still register them if they are around a corner but still inside the sphere, so I don't think that will work. I could fire a line trace out in every direction but I'm pretty sure that would be too system intensive if I have more than a few lights in the scene and probably highly inefficient. Is there something built in that would work for that?
attenuation radius of lights are your best bet. you don't have access to detailed light information
Wouldn't that pick them up even if they were around the corner from the light? I don't think I'll be able to put the attenuation where the collider should be then crank up the intensity till it meats that line, all while keeping the light dim and looking like a candle.
well you can trace for walls etc. additionally
anyway it's what you got to work with
What kind of trace would I use? I was thinking I could fire a line trace out in every direction using a looping blueprint, but idk if that would be really resource intensive
I'd trace only once inside attenuation radius and then only a line trace towards the light in question
Oh, I see. Maybe I'm coming at this from the wrong angle. I was trying to give every light a detector script to tell if the player is inside their sight, but I should only be putting one detector on the player instead?
I don't know what you mean by detector scripts, sound very unity based
if you're this new I'd suggest you spend some time familiarizing yourself with the engine
I am coming over from Unity but I've done about 8 or 9 hours of tutorials and projects.
I was just wondering if there was an alternative trace type or something better I could do
there is collision
and that's basically it
but if you're only 8-9 hours in I'd do more tutorials
at least a week's worth or so you're familiar with the systems
So there is no way to have a detection radius that doesn't see through walls? How am I suppose to do enemy vision cones?
by using math
So if I shouldn't get help here, where is a better place?
well you should but if you don't even know what the engine is you're basically using the channel as a google search. try learn.unrealengine.com
Ooooohhhhh. Mb, didn't realize this channel was a last resort kinda thing. Sorry ๐
it isn't. if you have concrete issues you usually get help. but if what you're asking could easily be googled...
I mean I have been working on this mechanic for 2 or 3 days on and off... I found a bunch of videos and posts on pointers and that sounded like what I needed so I thought I'd try it. I didn't just have an idea and come post about it
sure but you haven't looked into even what kind of detection exists. which is my point, you could google that
I gave you the how
it's up to you to figure out the "what"
Yeah that's what I thought. I just don't know how resource intensive it would be to fire a bunch of them from all the light sources
I mean that's why I said look into how the engine handles that
I even gave you an example that could work
with light attenuation and tracing
and mention collisions
if that's not enough keywords
then I really suggest some more familiarization
The documentation doesn't really say anything in particular about line traces and performance.
I would assume as a singular event shouldn't be extremely overwhelming even if there's like, 10-20 or so.
Requiring them to be called every frame however, is a different story.
Of course, there's only one way to find out.
Consider MultiLineTrace for this purpose
I did say learn.unrealengine.com
which is a great place to start at least
You gave me A sentence, then refused to elaborate and told me to google it
Sry if I didnt take in your every word
I run 1,500 a frame with no problem. The tracing will never be the performance bottleneck in blueprint, it'll be the math to feed and handle the trace results. But if you're trying to do something really crazy, you're going to need to step into C++
Make sure you understand collision and Trace channels and stuff like that.
I've definitely hit on the limits of BP myself, though for a different reason; I've been doing a lot with Character Movement and found that it is not built to accomodate bespoke modifications through BP
Sweet. Seems like I'll be doing a real basic detection, so it wont be anything wild haha
Character Movement can be worked with in BP, but past a certain point it feels like grabbing a bramble by the thorns lol.
And some parts of it, like friction or deceleration, just absolutely cannot be interfaced with in BP outside of adjusting default values.
I keep getting a bunch of "Accessed none trying to read property ..." errors from my animation blueprint when I start playing in editor, but nothing seems to be malfunctioning. I'm guessing I'm not making assignments before the animBP is updated for the first time, but I make all my assignments off of the BeginPlay event. Should I be assigning initial values somewhere else?
Is it like, the engine can't detect your AnimBP at all?
I think this requires some screenshots to debug
no it's working fine, I just get a bunch of error messages when I start playing
you have a reference being null somewhere
use breakpoints to debug
I know what the error means, I just don't know how they're null if I'm assigning the necessary things in BeginPlay event
screenshots incoming
maybe add a Delay 0.0 before you assign the variables
you could check if the weapon is valid
and that's going to ditch the error, but
your weapon related stuff will never work
what I suggest is that you weapon registers itself to the player
The character should have a IsValid check on the update as well.
and in doing so, you can have the animBP register that its state has been updated
that way any time you switch weapon (to any weapon/no weapon), you can have the animBP work accordingly
I already do that
well then no problem, just have the delegate register with the animBP
Haven't implemented weapon swapping, that's one of the next things i'm working on
I'll see if that breaks anything with the animation
How can I get a reference to the AnimBP in c++?
that's uhh
a bit harder
I think you have to go by (asset) path or something like that
I'd ask in #cpp
alternatively if you're wanting to work in bespoke logic for the animBP parent I believe you can derive from AnimInstance
the way I have it set up is the character class spawns a weapon, and attaches it to its skeletal mesh, and as part of that process the character and weapon get references to each other
that happens in BeginPlay
I'm thinking what might happen is the BeginPlay for the AnimBP is called before the character's BeginPlay
so basically once the character spawns the weapon, have the weapon call back that it is spawned, and have that register on beginplay in the animBP
otherwise, yes, you'll experience race conditions
Put an IsValid check on the FPSCharacter on the update and watch as your problems disappear!
Hello every one, how can i connect two different nodes in Animation Blueprint ?
Which node would that be? I don't see an isValid node for actor types
Hi. Why is it that the console command Viewmode Unlit works in Editor but not in a binary version of the runtime?
it's called IsValid
one of these guys. it'll take any object.
This one I'm not so sure it will fix. From what I gather it's a bad idea to use direct calls in the animgraph as it then puts it into the game thread slowing things down.
Try connecting it, I guess
Not sure what's the hold up here.
Unless I'm missing something obvious because lack of caffeine.
The solution to that would be to capture the data on begin play or on update and use variables in the animBP instead to feed the values into the animgraph.
what do you mean by direct calls
calls to c++ functions?
No, calls to variables in other blueprints.
i think that doesn't apply to events
they run in the gamethread anyways if im not wrong
that's still in the Anim BP, in a state machine. Does that count as a separate blueprint?
Second image is pulling data from another actor. First one is using a variable from the anim graph.
how can i get the name of a folder a file is in? I feel like it should be easy but I can't figure it out
I think there's a function to get the path of a file (not sure what it's called nor what class is it came from).
If you can get the path, you could the found the first slash from the end and omit the rest of the characters.
does it also apply to events?
or only to animation graph / layers?
Don't think so. Just animgraph and layers as far as I'm aware.
i have the path, but I dont know what to do to get just the folder name
Find the position of the last slash in the string and omit the rest backwards.
That makes sense, how do I do that in blueprint?
There is Right Chop function for strings, use the position of the last slash as the number of characters to the left.
how can I find the slash?
or use regex ๐ ((.)*\/)
figured it out, thanks for the help!
https://docs.unrealengine.com/4.27/en-US/AnimatingObjects/SkeletalMeshAnimation/Optimization/#animationfastpath
Here's the real answer.... It prevents animation from having to run anything in the blueprint VM. Any time there is any blueprint logic (including reading values from a separate blueprint other than the AnimBP) then it needs to go into the blueprint VM slowing things down. So better to read the values and set them within the AnimBP then use the variables from the AnimBP in the AnimGraph (transitions or states). If you need to use an object reference such as the sequence you're trying to get out of the "Anim Data" object, then the variable that would be set for it should always have a default value in the AnimBP since it requires it in order for your AnimGraph to function.
might be worth it to add that state transitions are also more costly than not having them if we're talking about pure optimization
you should only play that if the weapon is valid anyway, so your blend or transitions needs to be updated appropriately
What is the line above the nodes? Is that just a couple of reroute nodes?
Yea that's the blueprintue scrambling reroute nodes.
Basically, the set should connect up to the "Break" on the For Each Loop with Break.
how do i get my enemy character to stop whatever it's doing and do something else?
you tell it to
yeah but how, jon?
You could try offering it more money to do the other thing.
For a real answer, you'd probably call a function on the character to rerun whatever you have set up for it to determine what it should be doing.
Ah thank you, I shall look into this!
you might also have trouble if they keep having awareness of your character or other such stimulus
so first thing is to remove the object of stimulus
in that case
Hmmmm, nope it's still just continuing to do what it's doing.
I need it to stop and do something else.
I need to interrupt what it's doing somehow.
okay actually I've managed to do that bit!
so it must be my blueprints of what I'm trying to get it to do that's wrong.
I want it to just keep moving forwards in the direction it's currently going.
Here's what I've got so far.
Yeah I tried that and it works at getting it to stop.
Is there a reason to use Interfaces over binding events and vice versa ?
But then it doesn't do the thing I'm trying to get it to do.
@odd ember Which is move forward haha.
This looks like a get (a copy) in the BlueprintUE
But wouldn't it be get (a ref), since that's what lets you save the changes back to the original?
It doesn't matter in this instance as we're not changing the actual reference - we're using the values that are stored in the array at that location, then reinserting a new version at the array index with the updated values.
Yeah, noticed that as I kept going through
And I'm guessing this = Set Array Elem?
Yep
You can copy and paste from BlueprintUE
Only thing that wouldn't directly paste is the structures since that's not necessarily defined.
Is it normal that we can't use Switch Cases and Select node inside a RepNotify function ? ๐ค
Using event dispatchers allow multiple actors to react to the event. The actor calling the event can do so without caring who is listening in that regard. The actors needing to know about the event would need to know about the actor that has the event of course. A good use case is UI - your UI can easily grab the owning player's controlled character, cast to it and bind to events on the player's character or playerstate to make changes to values that are displayed on screen without the character having to pass those values to the UI directly.
Using an interface requires the actor making the call to know about the receiving actor, and that receiving actor needs to implement the interface. It's not practical to use an interface if you have multiple things that need to know about the thing that happened, especially if the actor that would be calling the interface doesn't really know about those actors. A good use case is an "Interact" interface - you would likely be doing a line trace to try and interact with something ahead of you, so then you can feed it the "interact" interface - if it implements it, then it can do whatever it needs to do, no binding required.
Works fine on my end.
In this case I have multiple actors (being box collision) but having 2 different enums and base on my timer I need to enable at certain hour the triggers with that certain hour in its "starting hour" property and disable it at certain hour the actors with "ending hour" property, is this a good use case of interface over event ?
Thank you got it working by truncating my "hours" variable being a float to an int before doing the Switch. So it looks like you can't make a switch on a float
That would be alot of switching options
If you define those options it won't be alot of options ๐ Like first option could be 1.0, second option could be 2.0, ...
๐คฃ
Coding like Yandere ? ๐
Unreal doesn't let you do that in BP.. forces sequential. .000001, .000002, etc..
I see, thank you ๐
Afaik anyway
Yes, any time system is definitely a candidate for using an event dispatcher. Events for whenever timed events happen, the manager just fires an event dispatcher and anyone listening to it can do what they need to do based on the current time.
but in this case I used an Interface instead of an event, is it the wrong way to go for ? ๐ค
Just depends if you want the timer to tell the actor or the actor to listen for the timer.
They do the same thing in the end
But is there one optimized over the other ?
No
Man i totally read the ending of that question wrong. But ya, it'll work either way, but if it makes more sense for the individual things to handle what they need to - so if they need to know about the time, then they should bind to it. It doesn't make sense that your time necessarily knows about those things that need to know about it.
otherwise your clock is going to end up being filled with a whole bunch of unnecessary references to objects, or having to do heavier calls to functions like "Get All Actors of Class" to get a reference to the objects that need to change whenever you're trying to send out time updates to all the actors that need to know about it.
No like I have an interface called BPI_TriggerTime and it has 2 functions : OnEnable and OnDisable and as a parameter I have an enum "Time" (going from 00:00 to 23:00) and I just call that Interface each time an hour passes with the Time as an argument,
and in the BP of my Triggers (those are the ones receiving the time as they use the Interface) I do a check to see if the starting time property they have on them is the same as the one sent through the Interface and if it's the case "Enable the Collision of the Trigger Box" otherwise don't do anything.
Same thing for "OnDisable" with the property "Ending Time" on the actor to compare it with the "Time" argument sent through the Interface, if they're the same "Disable the Collision of the Trigger Box", otherwise do nothing
Maybe I am wrong but for me I feel like Interfaces are more performance optimized as it's only called each time the function of a specific Interface is called and the actors having that interface receive the call when the function of the Interface is called so they can do what they need to do at that time compare to "Binding Events" where each frame a check is called to see if that event is called or not.
I don't know how it works behind the scene so it's only my assemption.
Also I want to use my "hours" variable as an index to return an enum (as it's in the same order from 0 to 23 so I want to return
00:00 when hours = 0,
01:00 when hours = 1,
...
23:00 when hours = 23
I don't know how to do that using the left node (Switch on EN_Hours which is an enum), and I don't know if there's a better way to do that than doing what i'm doing with the right node
Or a Select node will be better in this case ?
Just use Modulo
Also, no need for that kind of monolithic enum, unless you hate yourself.
why modulo ?
Because modulo returns the remainder of last division.
We went through this a few days ago already.
I don't understand why and what's the relation between that and multiplication ๐ค
Hey so my character using flying character movement is working, but when it gets hit my launch pawn it gets launched, then falls to the ground and cant fly anymore and starts just moving on land or not moving at all.
1st image working, 2nd image stuck
36 % 24 = 12
That's the example.
Also the time formatting is purely cosmetic, you can assemble it from two integers representing hours and minutes respectively.
But the conversion into Minutes, Hours, Days is already done, but still don't understand why using that here ๐ค
Okay, skip that.
Also the time formatting is purely cosmetic, you can assemble it from two integers representing hours and minutes respectively.
True, but wanted an enum for that for an easy use in the editor when selecting a box collision to set it's starting hour and ending hour
Doesn't matter. The enumerator is not necessary.
Unless you hate yourself and want to make it even more difficult to program than it should be.
I think it's necessary as I need to send that as an argument for the Interface function to compare it with Box Collision Starting / Ending Time in its properties
Is that bad to do it this way ? ๐ค
got it working
I don't know if using struct of integers and conversions like this doesn't look more elegant and efficient to you, because this is actually works and not complicated.
Nope as this kind of work is already done somewhere else, having seconds being multiplied by x1 is useless and in this case your code is returning a "Seconds" value which is not what I need as I already have a variable for that
For fuck's sake.
? ๐คฃ
FFS, I'm suggesting to compare with the world second parameter instead, as what I'm getting from your logic is time sensitive trigger.
But fine, I'm not going to argue anymore. God-fricking-speed with that enum monstrosity. I'm out.
I already explained why I can't use the World Seconds multiple time
and I already solve my issue with the timer
now I'm implementing the Triggers being enabled and disabled at the right hour depending on what I set in the Enum of each Trigger
Ok, I'm having an issue with my groom for my wolf and an animation I made for the wolf. Not 100% sure if it's a UE problem or a Blender problem (everything about the wolf I made in Blender). This is how it looks in UE 4.27. Any suggestions?
#graphics
Also please use direct screen capture instead as opposed to taking photo of the screen with your phone.
Ok, one sec then
Anyone have an idea as to what might be going on? Should I also send a picture of what it looks like in Blender?
Still, it's a #graphics question. There might be some binding option in Groom for it to work correctly, which I'm not aware of as I'm not using Groom.
I have a question about main menu. so, I am watching these tutorials and they add it to viewport to the level BP is that right? it seems off and weird.
I won't do it in Level BP (doing it in the main menu pawn is more preferrable to me), but to be fair it's nondetrimental if you have the main menu level as a separate persistent level.
wait
I can have it as a separate it level?
that makes sense
when I was in the shower thinking. I was thinking how to make it like a certain level like picture
by golly
Yes. Which is exactly what I did, because I have the game map using World Composition, so I put main menu in a separate map to reduce memory usage and increasing startup load time.
oh
that's smart
wait
you said something about "main menu pawn"
there is a thing for the main menu besides using a widget?
The bespoke main menu pawn is just an auto possess Pawn actor with a camera, and it creates the widget and add it to viewport immediately.
oh
This way you can also have 3D background, maybe a dumbed down version of your game world, containing only meshes for certain angle.
Can you show how you call your interface? How you've explained it sounds like you're calling from your time keeper actor, and you're trying to call it on the triggers, but in order to do that you need to feed in a reference to an actor that implements the interface. There's no "global" interface call that sends out a call to the interface to all actors that implement it that I'm aware of.
where you do it is kind of irrelevant, but the point is that add to viewport is a function for the widget concerning a player controller
Yeah I'm stuck on that part right now ๐ค I thought like I just call the Interface and all actors having that interface react to it ๐ฆ
Yep, interface is 1 to 1 and you need a reference to the actor that implements the interface that you want to call the message on. That said, you can feed in an array into an interface message too and I believe it will call the interface on all relevant actors in the array.
So you do have a few options.
-
On Begin Play of the Game State you can do a get all actors of class to get an array of your triggers which you can then save on your gamestate. When the time changes, you can call your interface on that stored array of actors. Each of the triggers will then receive the message. This means if you happen to spawn any new triggers, they won't automatically register, so this is the least practical.
-
Alternative instead of using get all actors of class, on the Begin Play of your triggers, you can have your triggers report into the game state and your game state adds them to that same array, and call the interface the same way as described in 1. Whenever a trigger begins, it'll register itself into the array so it'll end up receiving the updates.
Both options 1 and 2 require the gamestate to keep track of something that it may not need to in an array.
- Have an event dispatcher on game state that gets called when you want the time change message to go through. On Begin Play of your triggers, you bind to the event dispatcher by getting your Game State and casting to your appropriate game state to get the event dispatcher to bind to. This could potentially be considered easier to manage as you no longer have an array you need to maintain in the game state. Whenever a trigger begins, it automatically starts listening for the clock events.
In Option 3, the Triggers just need to be able to get to the game state (which is easily accessible via Get Game State) in order to bind to the time changing, and no additional array is required.
I'm really curious to understand how to do the Option 3
Gamestate:
(You can add inputs into your events as well to pass along information through the event)
Trigger:
Example with an input on the dispatcher:
I figured out my problem, so I'm saying this just in case anyone else had the same problem as me. It turns out that in Blender my mesh origin and skeleton origin wasn't in the same spot, which is why it caused my groom to look weird.
@icy dragon is the main menu pawn called something else? I cannot seem to find it. I would like to do it the way you explained.
What difference would it make what the point object is rotated at? It would give the exact rotation to look at point B regardless. It's based on location.
If your comparing multiple look at rotations, the only difference is the location. Whatever rotation point A is matters nothing.
If you're gonna compare directions you probably want dot product anyways
Alright, I've got the add function set up and working
Though it looks like I might be making a mistake in setting up the widgets? It's pulling the information from the datatable, but in-game the widgets' appearance doesn't change. And when I have two items with similar tags, it only shows one widget for them. (In this case, I picked up 3 Item.Consumable.HealthPotion and 3 Item.Consumable.MagicPotion, but it only shows one widget under the Consumable category)
(Items = Item.Consumable, Weapons = Item.Weapon, Armors = Item.Armor, Accessories = Item.Accessory, and Other = Item.Material)
Each section has its corresponding list, this is how the list is set up for the Items tab (the others are just referencing a different inventory component)
And this is in the widget that the list spawns
Hi all. I want to create something similar to this system in GTA sa ...like you go to the gym operate the equipment by pressing buttons as shown in screen,so that player strength will increase. Any idea how to do that.
how to get refrence of level script actor ?
Have a somewhat random delay which shows button on UI, set a variable so you know which button is shown. (you ofc choose which buttons to show, can also be somewhat randomized with a random int and select)
Then when the player presses this button within an interval (another delay after showing the button), or however you want it to work... (can have stats drop when pressing the wrong button etc)
You give the player some stats / a percentage of a stat.
what means default constructed ?
Hey guys, is there any way to add an Array as an input argument to a function?
Specifically an Array< Texture Render Target 2D > but I just can't figure out how to pass any array...
Secondly, does anyone know if it's possible to add a Math Expression for Log2() ?
Hello, I'm doing a blueprint where the tether mechanics behaves like a rubber band ( like a Bungee). I did this blueprint but it doesn't rubber band from both characters when one character is far away. is there a way to fix that? I showed a video example and blueprint. @timber knoll
Reference:
In need of help storing variables as part of game instance
In the main menu my game gets your Steam profile picture and name. It then stores these in a structure variable in the game instance
Here:
Main menu player controller:
Game Instance:
I can verify that this has definitely retrieved and set the data correctly as I've got an image and text binding in the main menu
here
The plan is to then set a replicated variable to these values once a player joins a server, to save constantly asking steam to retrieve the info
This can be seen here
I've specifically made "Get Player Info" run on owning client, because their Game Instance variables are obviously not going to exist on the network
So on the owning client they retrieve the "Player Info" variable, and then execute a custom function "Set Nametag On Server" which is set to run on the server
My understanding of this is as follows:
1: RUN ON MY CLIENT - I get my info from my own game instance
2: "Set Nametag On Server" - I pass this info through a custom event set to run on the server
3: "Set nametag On Server" - Sets "Player Info" (A replicated variable) to the value of the passed info
In my head this should work correctly, and to make it even stranger the "player name" variable passes perfectly and is replicated to all clients, however the "profile picture (texture 2d)" is not and appears as a white box
This has stumped me for a month now
Hi. I am trying to spawn a niagara system at a specific location, but as soon as I pass my location to the SpawnSystemAtLocation node and inside of the function the spawnlocation is 0 0 0 although its printed correctly before calling SpawnSystemAtLocation.
Any idea what could cause this ?
@winged holly you can't reference the level blueprint
@ocean bluff you're only adding force to one of them. (Side note, just do it on tick. .05 duration timer is less efficient)
I did what you said but it pushes the player instead of rubber banding (bringing back together). I want player 1 character to have a limit of distance when it's far away from the player 2 character
You pry have to invert the force for one of them. Pushing them both in the same direction isn't gonna make them get closer
Sorry, what do you mean by "invert the force", How can i implement that in my blueprint?
Is on "make array" the 0 Input the Index 0, or means it just source 0 and i could add from an Source 1 too?
0 is index 0
I'd have to play with it for a minute. Off top my first thought would be a second add force node and multiply the force vector by -1
ok Thanks !
how to output/debug this vector inside of material?
Right click any node and start previewing, or make an instance so you can test it real-time in the level
is it not possible to watch values in functions?
just print them
works better ever
previewing aint exactly what I need, I want to monitor values of the vector
didn't really get part about an instance
could you maybe talk me through a lil more>
?
If you right click on the material you can create a material instance. If you assign the instance to a mesh in the level you can mess with the exposed parameters and watch the effect in real-time.
I'm not 100% sure, but don't think you can "print" values
dang, I just need to get an access to an uv rect but there is no such func or whatever
You mean texture coords?
yea
If you do the instance, you can mess with the offset x parameter, and offset it in the level
right
I know how to do that
but I can't figure out one
wait a sec i'mma reply with my prev message
check this out
I just wanna figure out why the texture looks different if I set tex coords manually
compared to how it looks while"shifting" with another vecor
vector*
Thank you! I made it work, just had to times by minus. do you know a way where the second player moves slowly towards player 1 direction if it's far away enough
@gentle galleon I don't understand what you're trying to do
uploading a vid
@ocean bluff add a second force node, use the other player cmc as the target
Where do I connect it from?
Grab the vector from the subtract node output, multiply by a positive number and plug into the force node, then connect the execute pins
@gentle galleon I'm not sure why it's doing that. Maybe someone in #graphics will have a better idea
So I've been having an issue that hasn't happened since I made these, but all of a sudden today I have constant issues. The first image is suppose to spawn a new Starting Tile Map to start the level, it worked 100% when I made it two or three weeks ago, but now it will randomly stop spawning maps with no pattern.
The second image is suppose to spawn a new Tile Map based off a Box Collision Overlap and spawn on an arrow. It also worked 100% when I did it two weeks ago, but now today it will randomly crash due to infinite loops.
The third image is the Begin Overlap for the Box Collision to spawn a new Tile Map. I started my enemy spawn yesterday and everything worked fine, but then today it all went down hill. I deleted everything I did yesterday to see if that would fix it and nothing was fixed. I cannot understand why this is happening. Was wondering if others would know.
I thought of doing Arrays for the Tile Maps but it is unstable and doesn't always spawn a new Tile Map for some reason which is why I have individual variables.
I really don't want to start over from scratch but will if I have to.
mhh ok Im trying to Insert Items in the Array on Specified Index, im Update the Array, but looks like its duplicating, is it possible that it Clones that Index'es?
I'm not sure what you mean by clone the indexes. In theory it shouldn't be cloning anything since it suppose to only spawn one per overlap.
I tried that but it still doesn't move the second player when player 1 is far away moving. Unless I did something wrong
is that something like an Follow script?
It was about my Dialogue System sry
OK.
follow script?
i got some Problems too with Infinites Loop, i created an Widget what was already in that Widget, [because i made an Mistake on Default Variable] so it was an Infinite Loop
yeha like you Moving and a NPC follows you
Ouch for sure.
I really don't understand how it can work perfectly and then two weeks later not work perfectly even though I got rid of everything I did.
mhh, i got this also , like i deleted some Functions, and i dont know why but it was days later, that in an different Blueprint got an Error like this not anymore there, looks like its an Update Problem, that could be on Time
What do you mean that could be on time?
that it only Worked because it doesnt updated the BP , and now, because Opening or changing, the Compiler finds now that Problem
as i said i got troubles days ago after i deleted that Functions
OK.
I wish I could figure it out. It's probably something simple. I'm still learning Blueprints. I'm a artist going to this.
Yeah but u can totally do it
I honestly cannot see how without restarting entirely. I really don't want to.
Just look at the Entire Flow, like u just need to take care about that Infinite Problem
Also the problem where at random a Starting Tile Map won't spawn on start. No idea on that one either.
technically yes, this is mostly for multiplayer so If the second player doesn't move but the first player still does - it'll follow the player slowly, like dragging the second player to your direction if you know what i mean.
I was in trouble and get at anytime Infinite Loop error on all, where it Was on that "infinite" loop, thankfully i got help here from @trim matrix so i just was reminding what i was editing the last time
Ok. I'm going to make a copy of the project and redo the sections for the spawning and see what happens. It won't take me long to do those parts thankfully.
wouldnt be easy just to Copy the entire Inputs at this moment? , so it copys that movement?
yeah just start to Break Linkes, and see wheres no Infinite Loop anymore
Already did that it keeps happening in the second image for the Spawn Tile Map On Overlap of the collision box.
Copy which inputs/Movement? and where to?
I did that and there is no loop, but there is also no attempt of spawning a new Tile Map.
hard to say , i would need to see the entire BP Flow, too see where it gets Infinite , also like on my Problem it was out of that BP
Well there would be More Ways to solve it, i guess u want exactly like in BDO like u can Follow an Player , whitout any Keyboard input
alright will do that, thank you very much
for me thinking as the easist why is just Copying the Input , so that Players that is Moving controls the AFK player too?
That is the entire Flow. It goes from Begin Play to those and then to a Delay and Destroy Actor. UE4 keeps saying the infinite loop is in the Spawn Tile Function.
Sorry it starts off Begin Overlap for thed Collision Box.
Dammit. Sorry.
Begin Overlap (Collision Box) to Cast to BP_PaperCharacter to Spawn Tile Map to Delay and then to Destroy Actor. That is it
try to remove the Destroy actor, and looks if only Spawning is Working, i dont see that problem outthere tbh
Ok. I'll try that.
Tried that and it did nothing. I attached an image for you where it does state the problem is in the function Spawn Tile Map.
The reason I had the Destroy Actor there is so when it Overlaps it will destroy the previous one as it spawns a new one in. This worked 100% as well, but now I have no idea since the Loop keeps happening.
For me was thinking u spawn and destroy infiniteable
Yeah I could see that potentially being an issue, but taking it out and it still happening means that's not the case.
I just have no clue on why that would cause an infinite loop.
try an Input Action or Like Press Num9 to spawn this and look if u got the same problem, probably its about the Triggerbox
@tender gorge infinite loop is prolly from the spawning triggering the overlap again?
You mean each spawn is triggering a new overlap??
What are you trying to do gameplay wise here, this all looks weird. You use child actor components in one version. It then just spawn actors in the other.
Could be. I don't see any loop anywhere.
If I create a map.. or lets say array variable on a class, make it instance editable/expose on spawn so i can set it, is it being set (on spawn) as a reference to the array or is it just a copy of the array... meaning if I change a value in the array in the class that spawns the actor, will it reflect in the array in the spawned actor without having to update it in the spawned actor?
No. Instances are seperate.
yeah try a Inputaction , probably Infinite Triggerin on overlap
OK. So it's an Infinite Runner game. I'm still learning Blueprints so I chose this as something to do.
So the image where there is the Child Actor is to spawn a Starting Tile Map on spawn. I used a Child Actor because this is what a lot of sources online and in videos said to us.
The Collision Box is set to spawn a new Tile Map off the arrow in the Blueprint.
That is literally it for the gameplay. Simple Infinite Runner.
What is Inputaction?
Like if u start it with an Keypress or something, not on overlap
Oh I see now. Input Action. I seen it as one word not two. Sorry.
Problem is if someone is playing it you can't use that to spawn a new one every time.
Also I followed many online tutorials for Infinite Runners and they all use a Collision Box for overlaping to spawn a new tile.
its just for finding the problem
Ok. I'll do that now.
Tutorials usually suck. Do you turn in this runner or just run straight forever?
Straight forever. A lot of tutorials suck, but I watched 6 different ones. Some are different and give different ways of doing things.
Everything worked 100% until today and I deleted everything I've done since then and still does this.
I'm gonna do the input action and see what happens.
just look if its not an Inifte loop anymore , than u need to redesign that flow
Yea. I have no idea on how to do this in another way., I figured following tutorials and learning what different things do would work especially when they are videos and lessons I watched from Unreal themselves.
Just have some manager (could even start in the character) keep track of the characters position and spawn/destroy tiles in front/behind them.
Not sure how to do that or even begin to do it.
How many tiles exist at a time, 10?
1 to 2 max.
In the beginning and then after the Start Tile Map is destreoyed only 1 at a time.
Should be at least 3 but anyway
Why 3?
probably its not the Problem its just for Testing.
If only one tile ever exists at a time, how do you step on the next tile where you're already standing on the previous tile. Does it just disappear right when you hit the edge between tiles?
is there a way to make default character movement component to hover ? Or perhaps there is hove movement component available out of the box? By hover I just mean to either keep capsule over the surface at set distance, nothing fancy as with "real" hovering vehicles
The Box Collison that spawns the next tile is half way through the first tile. So once the player gets to the halfway point of that Tile Map it spawns the next one and destroys the one behind it. So I guess 2 are always in existence at one time. Sorry for my mistake.
I apparently am too stupid to even do that. I made an Imput Action and hooked up the function but in game I press the button and nothing happens.
I seriously have no business trying to use UE.
delete the hit event and readd it, by rightclicking the component in the hierarchy
it looks like it's still referencing the old one "static mesh" while you renamed it to "random mesh"
then just Type Num8 or something in The Search field
Still not working. Do I have to use it in the Player character BP?
Yeah Try like on your BL where u get Input Num4-> This Event; and create This Event in your Spawn BP
Like creating an event dispatcher?
Custom Event
So create a custom event in the player character bp or the bp that handles the tile map spawn?
Custom Event in your BP with TIlemap Spawning, and Than on your Player BP just -> Num 4 Press -> "Custom Event" ,
Ok.
I'm sorry. I'm clearly doing something wrong. It won't let me use a custom event off the Num 4 press.
I created the custom event in the BP for spawning new TileMap, went to the Player BP and did the Num 4, but won't let me do a custom even off that, which makes sense.
You need an Reference for that, if u placed it into the World that Handler just Use that, Or Cast that Self reference to your Player BP
If someone writes a hack for your game that uses pointers, what is the fastest way to change / update something to break it temporarily?
Probably another variable, or copy the actor and destroy the current one
Okay Why the hell i have trouble with "Inserting" everytime when i Use it,
https://puu.sh/IJkJY/eb8d0c05cf.png
on Inserting i get my Specified Index, and i replace it with New Item at that INDEX , (yes the Index is existing already) , but looks like it duplicates Items in my Array, and on Set Array Elem, it works flawlessy, thats so strange
but blueprint isn't really made for that anyways (for reallocating memory that is)
Assuming changing the name of the BP doesn't readdress anything right?
there are tools that make cheating in unreal games kind of easy
so i don't know if it's worth your effort
I don't even think that's possbile
If it's singleplayer you shouldn't really care
It's multiplayer
if it's multiplayer just add server checks
And I know it's impossible to stop hackers in general, my issue is that one hacker publicly released a hack for my game, and a bunch of people are downloading it and using it, so I just want to break the public download
A player want's to pick up an item? Server checks if the item is in range and only if it is, it adds the item to your inventory
Hey guys, I am trying to keep my player inside the camera view. I can detect if it's out of the view, but now I need to know the point to move it back to. (basically move it along the Y axis to a point at the edge of the view.) I'm not sure how to accomplish this.
fix your game, if a simple pointer hack can give benefits
e.g. run game logic on the server, don't trust client data, etc.
Lol if only it was so easy, CoD/Battlefield/Overwatch would have done that already
aren't their problem mainly aim bots?
yes
Mine is too.
or think of ways to detect that specific cheat
well aim bots are kind of a diffrent story
and ban the players
I am. I'm just curious about ways that would make a compiled .exe style hack stop working until the developer updates the addresses
e.g.: duplicate the data, when the client sends only one modified value you can be certainly sure that it was altered by the cheat
still if he has problems with aim bots there wont be any altered data
depends on how the cheat works
if it sends modified data it may work, if it aims on the client then it might be more hard to detect
but as soon as the aim bot is moving the actual mouse to aim then yeah
For sure, that's it's own huge thing to work towards. I just want to figure out how to break the current one that is publicly downloadable.
you could only allow as many kills in a minute or something
There are far, far fewer people who make cheats than those who download and use them, ya' know?
that is true
My game is pretty small still, so spending a bit of time every now and then to break currently available downloads would go a long way.
did you thought about adding easy anti cheat?
Yes, working towards moving everything over to EOS and EAC.
You could always give pixel streaming a look if you're that concerned about cheating
But that isn't a full solution either, nothing really is. EAC has many bypasses available, so again I just want to learn how to break hacks until they are updated by their devs.
I'll check that out.
Oh, no that wouldn't work for my game, haha. My game is FPS/TPS.
but you'll never really be able to stop hackers
For sure
I don't know really how most of the pointer hacks work so I can't help you there
maybe #multiplayer knows more
Would be a waste of time to try
How would you hack a stream?
You don't
I wasn't saying you could; just that pixel streaming doesn't work in FPS style games, it's too slow.
Depends on your set up.. what you mean is it would be too expensive
It's not an expense issue, or the main players would do it
no, he probably means latency
If it was possible to do it without it feeling terrible, CoD would be doing it.
Regardless of money.
Valorant put a ton of effort in to stopping cheaters, and Riot is VERY aware of streaming vs not (that's why League has basically no hackers), they would have done it.
When you say pointer cheat, is that aimbot? Or is it obtaining unavaliable objects through ram manipulation ?
Pointers as in references to data in the game. Info to draw ESP, speedhack, aimbot, etc.
Right ok
It's not hard for a hack developer to update their hacks when they change, but the developer has to do it, not regular jo shmo who is downloading a hack and running it
Would be nice, right now I just want a solution to break the readily available .exe that is floating around
pixel streaming is just tooo expensive
and works only with some gamepass style payment model
remember google stadia?
yes
because I don't
Trying to play any latency-dependent game was so brutal lol
Impossible haha
I'm just curious what changes make hacks stop working until the hack is updated. ๐ค
I guess I'll have to download the sketchy ass hack and test how to break it.
xD
you should understand how it works, then it might be easier to break it
e.g.: is the address hardcoded or does it do some "smart" lookup
But like.. server verification would solve most hacks wouldnt it ? Except client help tools like aim bot etc ?
yes
Yes, for sure. I'm specifically talking about ESP and aimbotting.
but I think we are currently only talking about aim bot
Right right, just wanted to verify :p
So to avoid esp hacks youd need to heavily limit what data is avaliable on the client
As in basically as close to "only whats currently visible for the player already" as possible
Not really possible without hindering gameplay with latency
I'm not trying to reinvent the wheel with new methods of stopping hacking; I just want to break the hacks that are currently available until they are updated by their developers
Right, just wanted to explore it some more, even if just in theory. Figured you already had a plan on what to do(testing the hack and going from there)
Yeah for sure. There's a lot that can be done in general, it's just very hard to do without messing with the gameplay experience. If there was an option, at least some AAA game would be doing it.
that will be a never ending circle of updates on both sides
Indeed. I update my game with a new patch 2-3 times a week to add content right now, so assuming it's not some massive rewrite to change the addresses to stop current hacks I will definitely be doing it.
add some data to the blueprint and hope that the compiler offsets the address of your problematic variable
but that's just brute forcing an solution
Brute forcing is fine at the moment, I just figured someone would know how to force the addresses to change haha
maybe you want to give the plugin 'SCUE4' a look
it consistently shows first the best match, but highlights the most useless one it finds, any way to fix that behaviour? It'd save a lot of time if i could just presss enter after typing lol
Still stuck with getting my test NPC pawns to take damage. No idea what I'm doing wrong here.
Yeah I've been looking at that for a minute, probably going to use that as well.
how do you apply damage?
Event AnyDamage in the pawn/character blueprint, and LineTraceByChannel and ApplyDamage in the weapon blueprint
multiplayer or singleplayer?
Single player
can you show me your nodes?
ok
first thing to try is if your pawn actually receives any damage
also I belive you need to set a DamageTypeClass
(add a print node to Event AnyDamage)
Tried that, and they seem to be taking damage
But not from the player's weapon for some reason
Ok, did you check that your linetrace actually works?
Hey guys, hope you are well. How can I properly attach a magic staff for the wizard?
What I'm doing? I'm trying to pickup a magic staff from the ground and attach it for the actor. But, when I'm attaching it, the rotation of staff in kinda weird (see in screenshot). I've tried several approaches from diff youtubers, but with the same results. Please, help me)
Also, Animation in preview mode (in SM socket), seem to be correct
Tested; seems like it goes straight through them
well then here is your problem
your trace channel is set to visibility
which should work out of the box
go into your enemy pawn and make sure that the skeletal mesh overlaps visibilty inside the collision preset
Hey, is it possible to reparent a component class?
If you add a SkeletalMeshComponent to your actor, is it possible to change the change the component to CustomSkeletalMeshComponent without losing all the values?
oh, and you probably need to enable 'trace complex' to trace your skeletal mesh collision
Changing the visibility to Overlap didn't seem to work; the line trace still went straight through them
Did you enable 'Trace Complex' on your LineTrace node?
Yep, same result.
check if your skeletal mesh has collisions
it's inside the physics asset
looks like setting it to PhysicsActor or the two Block presets worked
intressting
which makes me wonder why it's not working with Overlap
yeah me too
what was your collision enabled enum set to before?
It needs to be query only or collsion enabled to work
Pawn on the capsule component, None on the skeletal mesh
No I mean the bottom enum
oh right
Collision Enabled on the capsule and Query Only (but disabled) on the mesh
Set it to blocking instead of overlap
ah yeah
I may be stupid actually
yes
set it to block
only multi trace care about overlaps
I have a tank (attached image below) that has a root, and head bone. In my character blueprint, when a/d is pressed, it adds a rotation of -1/1 to the Z axis of the whole mesh, and the head bone is set to track to an object (my mouse pointer) in the scene. Everything works perfectly fine until I rotate, afterwards it offsets the head rotation by how much I've rotate. This makes perfect sense due to how the hierarchy of bones work.. although I've really been struggling to find a solution
how can I check if an int is negative?
my tanks don't have bones, I just do the stuff to separate components
subtract the tank rotation from the head rotation
watch for world or relative rotations also
Look into quaternions. Default rotation is euler and wont work for your needs since you want to control a specific axial rotation as an update. Euler is fine for setting rot, but you run into rotation order problems that quaternions are better suited to solve.
The "function" for lack of a better word that's pointing the head towards the mouse pointer runs every frame, and overrides the bandaid fix of subtracting it
I guessed a few ways to fix that, but it just felt.. too.. scrappy
aye
Ahh, smart..
if you ditch the bones you can add transforms to your hearts delight
or use world rotation instead of relative rotation
I'd help you out here but i don't got unreal open
I have anims
ah
yeah I could just check if it's less than zero I guess, derp
nice
you could do those animations directly in unreal but I can understand not wanting to redo them
quats are good for avoiding gimbal lock but don't seem a requirement here to me
good luck
Workflow is super important to me, those kinda things require i look back and change a lot of steps
If i had planned out my workflow better yesterday i wouldn't had wasted so much time ๐ฎโ๐จ. Basically have to fully restart
pew pew
I've kinda been avoid the anim graph but it's certainly there in the editor
do your treads work?
tracks
Has anyone had any issues with getcomponentbounds with construction script and splines?
The bounds aren't being calculated properly for splines edited outside of the blueprint (once placed into the level)
it's good secondary action on the lid
Don't think i'ma have them work
Probably just going to make an animated texture
The uvs are laid out in such a way to make that possible
can anyone tell why the first blueprint works fine, but the one for drawing the second cards gives me kind of random results?
Whats the id on the second card array index? Are you sure its 1?
yeah, it starts at 0
Yet it seems ur picking the same card as the first card
it should be choosing the right one in the compare int node
how do i drag a BP line so its not in the way x) ? https://gyazo.com/aa83ef383300056a8aa260235c3bdf06
Ur comparator is different atleast
but the second bp seems to be random
Doubletap it to add a reroute
like, it'll say its found the 2nd card on different values each time
squize ty
this is how it's finding the value
I still dont see how thats related to what you show above
the array is made of values 0-6, and it's shuffling and picking the top one
Also id suggest doing this a tad different than get all actors of cards
and the card bp is looking for when itd ID is drawn
yeah i realise thats quite hacky but i dont know a better way
so each card is a seperate blueprint, when the event is called each bp will check to see if their number is called basically
But the compare value is hardcoded?
How does it know its id if the comparator is hardcoded?
which works perfectly fine with card 1 for some reason
it takes it from the array and compares it
And why does it need to check what id got picked?
Like
If you have stack of cards
The actor representing the stack would have an array of all cards (their id's)
Player clicks the stack actor, stack actor picks a random index from its array, passes it on to the player(whatever handles the actual players cards) , and removes the picked index from the stack array
The compare doesnt make sense in such a scenario
how else will it know if its the right card though?
oh i've fixed it... i had to use a find instead of a get off the ID array
it was trying to find it in a place that gets shuffled
what is "the right card" ?
u cant convert a float to int ?
is there a wrong card?
truncate, round, ceil, floor
yeah. card1 will be looking to see when card1's ID gets called
if any other ID is called and the blueprint carries on it'll be the wrong rules etc
but like.. why does card 1 need to know if id 1 was picked?
perhaps this isnt a regular card game, and i got no clue ๐
ty ๐
cards will mostly get resolved one at a time, so i only need to check for 1 card
and i want all cards on seperate blueprints
what would be the alternative tho?
doesnt the ID already represent an actor in some way ?
its just an int
this way made sense to me lol. its probably very wrong
The actor doesnt need to be spawned untill use of the card tho
What i'd probably do(never done a card game) is have the data intel in a database
so the card ID (or a neat GameplayTag) would be a row name,
hmm yeah. they all have to be in the scene already annoyingly
Oh ?
ah, you can do that?
So what i'd do
is have a "template" card
which is what exist in the world, that the player looks at
which has some widget with all the details of the card
(btw assuming heartstone ish) ?
or are there another game "like" yours?