#blueprint
402296 messages ยท Page 797 of 403
Oh good heavens
For the love of God just bind your functions to function calls
Set up a boolean for "can matchmake" with rep notify that enables and disables your button
I dont think I have ever done that actaully
Well there is no don't rep and notify
Replicate Notification?
This would only be happening on client anyways, it's just a convenient way to run a function on a bool update
Could you show me a simple example?
Never used it like that x)
That or event binding are the easiest options
clever hack i guess
yeah lol
Not so much clever as lazy
event binding is my preference
Fair enough
but sounds like alot for this thing
i'd just make a function for updating the bool and having the option to react to it
Well the event would just bind to the widget event which internally then handles its visibility and such
but oh well, dont mind me, you know about his stuff xD i should stop interfering ๐
Nah, more opinions are always good
The more the merrier lol
I need the honest opinions and the best ways to do something ๐
The way I would essentially set it up is just having the button disable itself and then having it dispatch an event which starts the matchmaking
If it fails or is cancelled, send an event which re enables the button
-_-
Id recommend to not stop the search after the first failed attempt but rather to continue searching and only stop it after (either a certain time has passed or x failed attempts * or obviously the user cancels the search)
Could be annoying to re-initialize the search again and again after a failed attempt for the user
But thats just nitpicking I guess
Have it run an infinite loop with a cancel button
Worst thing is sitting in queue and it randomly stop searching
isnt part of the problem with the default system that it mostly return servers close by, and will return them over and over?
meaning looping beyond the first result list is wasted ?
Not familiar with the system itself but filtering the full ones anyway would circumvent that issue?
My guess would have been if two players just connect at the same time for example (if only one slot is available) on the following search it would be filtered out anyway
I guess you'd just get all valid ones, add unique to array, pick with lowest ping, on failure remove and chose next best
If all fail, rerun original loop since by now there should be a fresh list
And expand number of searches
i dislike reroutes backwards but cba ๐
I suppose the list could be fresh yes, assuming enough players are playing (always a criteria)
I remember having issues finding a game across the pond when i tried the default subsystem
some regional filtering was going on (or based on ping?)
I mean for a truly robust system you'd need to set up your own system for this and such, but at that point it's time for c++
True that
Theres a free plugin tho
Which worked quite alot better
Advancedsessions plugin i think its called
A lot of extra options
Yeah, no need to reinvent the wheel when this guy did it
How to make trigger that prints "Hello" pls
did you try to right click and type "print" in search
ah you want the trigger logic too
I did, I copied several tutorials exactly, but the trigger doesn't do anything
maybe your issue is that you copied several tutorials
No I copied one, didn't work, deleted it, copied a different tutorial, didnt work either
show your OnBeginOverlap
blackboardkeyselector
thanks ๐ณ
then you have an issue with your collision
show the collision settings of your character and your triggerbox2
wait so how do I set the blackboard of the selector?
the trigger is "Box Trigger" from "Basic", and the character is the default one that comes with sample project and it collides with floor correctly so why not trigger
that's strange, it actually should overlap
Cant use it
I plan to upload this to marketplace for free, and well... I cant upload stuff I didnt make
Also I just threw this together and plan to test it here soon.
make sure this is like this for the triggerbox
Yep that looks exactly like mine
I have used advanced sessions, I have a few templates with it since I cant seem to get the one they supply working xD
did you modify the collision presets perhaps?
Nope I didn't change anything at all
ah but that's only for BTTasks and other BT blueprints
I have an AI manager class that assigns stuff to the AIs
sorry I really don't know what's wrong with your project
consider doing a zip up and sharing it here if it's not too heavy maybe someone can take a peek
(only if you don't have starter content or a sample project's assets)
(it'll be too heavy if you have assets)
as a variable. you can expose it so it shows up on your nodes in the BT. If you don't know this then I would suggest looking up some tutorials for BTs
no I understood what you were talking about when i looked it up, I'm working on an external blueprint that manages AIs (in fact I was on the AI controller in my screenshot)
the key selector only works inside the BT right?
It works as a storage unit for the blackboard. you can break it for names but you can also set values directly on it. But a tutorial will tell you all this and more
I already watched multiple tutorials but I can't find anything on using blackboard key selectors outside of BTS/BTT/BTDs
take a look at MathewW's video for blackboards maybe
๐
Thanks for your help, it's working now
I don't think you're understanding my question, all of these usages only show how to do it from inside a BTS, BTT or BTD but I want to set a blackboard value from an outside blueprint (the AI controller or a manager BP)
I just watched his video out of curiosity and it doesn't have my answer either
A blackboardkeyselector is the type of variable that the blackboard uses, independently of any BT.
Oh ๐ i had good success with it ! After a few head scratches and whatnot
you said you wanted to have a different way of doing names of values for BBs. Blackboardkeyselectors are just that
yeah but they don't work if it's not a parameter of a BTT, BTS or BTD no?
I read it but it still doesn't tell me how to functionally use it on an AI controller BP it just doesn't work
BTs can easily expose these. But the BB data structure exists on its own. If you want value transfer, blackboardkeyselectors are... key
it's a struct
it has built in BP functionality
again if you took a look at a tutorial for blackboards they would tell you this
it doesn't ๐ ๐ ๐
it only shows for BTS, BTD and BTT
not how to set it from the controller
are you watching them all the way through or just skimming? they are set the same way no matter where you have them
doesn't matter if it's inside a task or in the controller
doesn't matter
I watched several hours of (sleep inducing) official tutorials on BTs and AI
Make BlackboardKeySelector
but that would make me have to write the FName as a string literal all the same
so what's the point?
my whole question was if I can use the fact that I know which blackboard it's running to use select the FName (or key) instead of writing it down as a string literal
the FName is the variable name in the BB. you can either use FName or you can use a blackboardkeyselector. Those are your options
Fair enough
but I would still have to make a blackboardkeyselector struct by writing down manually the FName of the variable
so in all cases I'll need to have a string literal somewhere
which is what I want to avoid
or you could store a BB key on its own and move it from one BB to another
Ive never had to use FName for any of my BBs
store it where?
you mean store it as a BKS?
Has anyone else worked with User Game Settings? I havent been able to get my working...
you mean getting it from the BT to the AI Controller through a service and storing it there right?
how you get it is up to you
because you can't select the value on the class defaults (since it doesn't know which BB it is)
it's a struct
Hi, is there any guarantee about the order in which construction scripts are called? In particular between an actor and its components
Why are you doing this now again?
I just don't want to copy paste the FNames from my blackboard but I guess I should simply do that
and avoid myself all this pain
Why don't you just make a map
instead of using a blackboard?
No as in from key to fname
the key already contains the fname
you'll never be able to set up stuff like that for class defaults. what are you even trying to do? it sounds like you're trying to hack BBs to work in a way the aren't supposed to
@odd ember I just want to have a manager BP that assigns some values in the blackboard (task location and such)
of managed AIs
It sounds like you're after a similar functionality to easy utility ai
but like... why handle this outside the BT?
because it sucks at handling multiple task locations that can be fulfilled by multiple AIs (and that need to switch from time to time)
if you're trying to make an AI director type thing you are better off considering subsystems
Paid plugin, don't own it, but friend who has it describes it as what you're after
it's not supposed to be anything mind blowing but I'm already hitting walls
no thanks, I don't really like using plugins
and to be honest you can wrap stuff like this in a BT
anyway this is more #gameplay-ai at this point
I guess the answer for my question is that I should just copy paste the string literal of the FName ๐ค
yeah but it sounds like you're trying to hack the architecture. which is probably why you're in the situation you're in
not really I mean it's pretty common
as I showed on that screenshot, for instance when hooking the perception system they make string literals
never seen anyone do it like this before
I personally query the director from inside the BT, and the director sets up appropriate roles
I thought about it but I don't really like that approach
setting BB values directly seems like a strange way to do it
well then you're kinda painting yourself into a corner, no?
I mean I don't see any issue in setting BB values from outside as it's always done in one way or another (example being the perception system)
and that's not even really the question here
but I guess if Epic Games copy pasted the string literal it means I should as well
I think most people would use a service... That's kinda why they are there
your question has been answered
but why use a service that is going to keep asking if there is a new task available when I could just tell the AI directly when it is
but well, thanks anyway @odd ember and the others that hopped in
I don't use a service to query tasks, I use a service to move BB values. you're conflating the two
yeah but the service will just keep checking for no reason if the BB value doesn't need any changing
Once again, plugins are made by people who have these issues and find another way to fix them
you would be better off having a discussion about setting up your ai architecture in #gameplay-ai. It sounds like you're trying to do things that are going to be difficult for you
You could also code your own plugin
I was doing other stuff so sorry for late reply. You might know a better way to do it. In the first picture, you can see I am making different units when the buttons are clicked and there's a macro called "breedable check" which checks if the player can make the units. If not, the game follows the specific exec pins. In the second picture, I am displaying with a text box the reason why the player can't make the units. Also I can't do the entire thing with functions is bcoz I have to check differently with different types of unit. See the breedable check macro takes a pin called "Ant Type" which determines the type of unit I'm trying to make. So is there a better way to arrange it?
@unreal quail
I asked a question in there and got no answer already (and really I'm fine with the way my system works currently, in fact I remember someone advising me specifically to use a manger bp)
a manager isn't bad, AI directors work. but it doesn't sound like you're using it the way you would ordinarily use one. which is why I recommended #gameplay-ai
but it's up to you. If you prefer painting yourself into a corner I'm not going to stop you
I didn't really think about how I should use the manager, but you might be right a service could be better
we can continue in #gameplay-ai if you want
sure!
speaking of manager, does anyone know of a good way to have an array of locations in editor that can be moved from the level editor?
Use empty actors
custom actors or regular actors that need to be attached to the "manager"
only the manager BP needs to know the locations
see #gameplay-ai
Hey can anybody help me i want to spawn actor bheind my player character when game begin i dont know how to do it pkz help
Look up how to unreal 101
Well all jokes aside, on player spawn send request to world to spawn actor
Well, on begin play
Hey i want to ask something i am making my level inside the blueprint actir as it will spawn when my game mode will run so can i add navmesh there the level is infinite never ending how can i do that
I would create a button widget that contains your desired appearance using exposed variables, including for your Ant Type. You can create an event dispatcher that you call when then button is clicked that returns the ant type.
On Constructions of the widget that would hold these buttons, you loop through an array of your ant types, creating and adding the new button widget to whatever parent needs them and also bind to their event dispatchers.
The bound event will return the ant type, allowing you to feed it into your macro, which you can then hook up into the 3 different output options you have.
As you're now using an array, it's also much easier to expand -- all you have to do is add another ant type to your array and it'll automatically have the button and logic created for it.
is there a way i can constraint a vector to be within the bounds of another? I essentially want the spawn location to always be inside the boundaries, and if not move to the nearest location that is inside
@winged sentinel If your spawn bounds are a box, you could use RandomPointInBoundingBox. Otherwise, you could use some combination of other random functions, like RandomUnitVector for direction and RandomFloatInRange for distance
i see, i beleive random point in navidable radius works, seems like its always spawning with in the nav mesh. thank you!
is there an easy method to scale something in only one direction? I'm trying to create a dynamic hitbox that spawns and I can plug in how long it is based on the X, but I want it to scale only from the right or left side...if that makes sense.
it might be a stupid question, but i like asking stupid questions so...
what is the threshold of a "While" loop in UE? (or any other loops)
Hello everyone, Iโm currently facing problem with loop in blueprint scripting. First, I set max loop iteration in project settings to 1 000 000 000. Iโm using loop to build 8 646464 cubes. The result should be a total of 2 097 152 iteration but I have an inifinite loop detection error when I start the project. The same script works when I c...
Make a vector plugging in a float var that you change?
the problem is when I scale it, it scales on the x-axis on the left and right side, so the hit box goes through the player. I want it to only scale away from the player
thank you thank you. i didn't know what to google for, i tried searching for while loop threshold but it didn't work so thank you!
I think you'll have to offset its location the same value you scale it
that's what I'm thinking of. Just trying to find out how to add scale to location
Offset by its halfsize in the direction you want it to move out from
HalfSize is its size*scale/2
How can I get a callback to a previously spawned actor? Right now I'll spawn said actor, but then destroy all actors of class which can obviously be problematic.
wait
I have an idea
You're using its location to set its new location
You should use the owner to do it i think
Hey everyone, I'm trying the much used Playstation over the shoulder type of 3rd person camera and I'm happy with the way it looks but it's messing with a few of the mechanics I've set up that rely on the camera being in the center of the screen. I have this dash that is now launching the character in a diagonal where as before it was launching the character directly straight ahead. Wondering if an offset would fix the problem and also wondering where it would go in the launch velocity. Thanks!
well IMO it's a design question: should camera direction matter for which way your character should dash?
I think it's a bit confusing for the player when it's not directly ahead, especially when dashing a long distance then trajectory changes a lot
not directly ahead of the player mesh*
what if the player character is facing to the side?
the player gets rotated towards the direction of camera
that may complicate things?
they get rotated before launching
if the player gets rotated to the direction of the camera, why not use the direction of the character?
Hi im trying to make a blueprint where if i click E actors will follow the player and then all stop following if E if pressed again. Anyone know why this aint working?
I feel like that line from the ForEach to the FlipFlop cannot possibly be doing what you want
you can't mix two execution paths like that
Also yeah. Just store the list as a variable on BeginPlay, and then get it when you press E
Also that Sword Fighter Ref, I have no idea what it points to but it's definitely not going to iterate through all your sword fighters in that list
hmm okay i'll try change this up a bit then
Im getting a "pending kill" error on a node that destroys an actor. The actor gets destroyed multiple times but the function cannot be called unless the actor has been spawned in again. Why is this?
Wait what do you mean it gets destroyed multiple times? I'm pretty sure an actor can only be destroyed once
I can see your confusion
In fact that's why. "Destroy Actor" is a function that requires the actor to be alive. If it's already destroyed, then it isn't alive to BE destroyed
UE's way to avoid beating a dead horse
The "actor" is actually just a variable for an actor that is spawned in
So it's a pointer that can point to different instances of the actor
Yes essentially
Pretty much this ^
Thing is I'm already doing that
This is the part where we ask to see the code, I think ๐
you need to show your where you get the error then
Sure
From an actor component's event graph perspective, is the owner guaranteed to always be valid (not null)?
it sounds like you're trying to operate on an actor that is already dying
not null, sure. but might be pending kill. in which case you'd still get an error
Fair enough. Thanks!
I don't see the isValid call?
well you're not checking is valid
isDelivered ai
not the same
^
How?
I have no idea what that even is, that's just a boolean you're setting
is valid is a low level check that determines whether your actor is still alive
it has nothing to do with your custom bool check
I guarantee that if you convert the Spawned Actor Get to a Validated Get, the problem will vanish
ah yeah, validated gets are great
@gentle urchinThank you! I multiplied the size of the hitbox by the scale and halved it and now it works properly
Sweeet !
I never even knew such a thing existed; thank you
Yes indeed
I'm trying to attach Player to Car but its not working.
Hi! i'm having a little problem when i update a widget within my HUD.
If i change the design of this widget, then i have to go into HUD to update the reference to it gets the new version of the widget (right mouse click - Replace with ***)
sometimes that breaks all the reference, any way to bypass this?
A soft reference? What exactly is it you're replacing each time?
Hello, so I got an question. So right now I have this piece of code where the actor rotates towards the player only problem is he teleports does someone has an idea to make him rotate smoothly.
Lerp
most of the time that's the case, but something i get this "_C" added next to the class i try to replace, in order to update the reference, and it breaks everything : (
I'm unsure then, maybe another wizard knows what's up
tried a lot of thing but it just didnt work also tried lerp
could you maybe go a little more indepth with lerp?
I tried somethings on internet with lerp
but didnt help
lerp on tick or every "X" secs, or maybe a timeline.
@crimson hornet did you connect the the node with anything? ๐
yes
can you show where you connected it?
okay ill try
Is that cast to a cpp class?
Just cast to generic actor
Or skip casting completely
You don't want to cast to bp
im casting to bp actor
uhm, why don't you just have this on the actual actor that you want to rotate?
how often do you call the event?
dont need to cast either
?
this current setup fires once, or whenever this notify fires. Rotating to look at something happens over time
im more interested what the "IceBoss" is supposed to do. player comes near, ice boss rotates?
and again, why did you not implement the code that clearly is meant for your ice boss ON the iceboss?
he does an attack an mid attack he rotates towards player
tick, timer, or timeline are the options for this - based on whats comfortable for you
if you go with a tick, you'll be using a gate and events to open and close it
or if its poormansanimation use a timeline ๐
seeing as it's one value, a lerp could work, otherwise an interp
lerp for timeline, rinterp with the tick (and the delta seconds)
I cant use timeline or tick in anim bp
true, but you do have anim notify ๐
Is this singleplayer?
yes
Just root motion it then, easy fix
but he doesnt rotate then
Are you using blackboards and such?
yes
Oh no not literally look at function
I think it's look at actor or something like thay
That*
Find look at rotation?
Or rotate to actor
Manne is referring to the LookAt Task in BT
Thank you
oh
I'm not by my pc and it's been a while
but how call it from an anim notify?
I think its called RotateToBBEntry
because you are using notify events, i would think to have one event which allows it and another which stops it and those BT Tasks are setup to watch that BB key
fwiw, i handle this look at concept within my controller bp
and I use my own Tasks to call the look at events to start/stop
I'd just deal with this using gas tbh but since its singleplayer no need to dive into the deep end
im lost tbh
Uhh, just like stick to how you were thinking of implementing it with transform
You learn as you go
@crimson hornet Start over, what are you trying to do?
a look at player over time function
No need to force advanced concepts on you if this is new
still think it would be better to do it not in the anim bp
Yes, nothing regarding time should be happening in the anim bp.
The anim BP should just have as data a Look Direction. The actor should modify that over time.
so should I call an function in the animbp and that function is getting handled in the bp?
Anim BP reads pawn data
Not the other way around
So if pawn has a variable LookDirection, anim BP can use it.
Now you could maybe do some time related stuff in the animBP like
AnimLookDirection = RInterpTo(PawnLookDirection)
Or whatever
Depends on how "over time" you want this to be
this is c++ right?
And if you want the ACTUAL look direction to be used for gameplay purposes like firing weapons etc.
No it's b******* pseudocode to make a point.
But since you're asking, don't do that. Animate LookDirection over time in the pawn
Hello, I'm using Atan2 to get the angle of my attack angle in degrees, but I only want it to print the string if the joystick is pushed > 0.25f, but I can't figure out how to do it while using Atan2, would anyone have any ideas?
branch on axis value > abs(.25f)
Add a > condition to your axis value and add a branch to it
Or even your return value just before the print
I did try that first, but for some reason it wasn't working correctly, I tried a few things after that and didn't find another way, I must have not connected something earlier because now it's working, thank you for your quick replies
how do i get in line?
in line for what?
to ask for help
Just ask
Attach component to component or attach component to actor
And remove from parent to detach
So what happens if you just Get Player Pawn and Attach Actor to Actor with the vehicle as the parent?
(without all the Cast To and Get All Actors in between)
If you're doing this in the level blueprint, you may as well use the Sedan reference you have already instead of doing a "Get all Actors of Class" call for it.
You're calling "Player Parent" function from within the "Player Parent" function - causing an infinite loop.
I'm feeling stupid but I cannot get arrays to work, is this debug lying to me?
yes i'm doin this in the level blueprint.
Yes, sometimes the output debug won't show the right value. If you print that value on to the screen, then it should show you the correct value stored in the array.
ahh alright, thank you
Debug should show the right value no? I haven't run across this issue before at least ๐คทโโ๏ธ
@glacial granite have you checked you have the right debug filter selected?
Maybe it has to do with the Editor Symbols not being installed
I know in cpp at least you get wonky values on debug if you don't have them installed
How can I disable collision on an object (Trigger) for only one actor?
If you're going to be doing this a lot, you can create a new collision mask
always?
No just temporarily
when do you want it off?
maybe just check against that particular actor, and don't proceed with logic if it matches then?
As it is now, when the player does one thing it gets turned off but when they do another it should be turned back on again
That could work but I was wondering if theres a better method to doing it
I don't believe you can turn it off on a per actor basis
I needed to drag it in from the World outliner
there's plenty of ways to check if it is that actor however.
still not very clear ๐
you can do interface calls, tags, casting, type checks, etc
If you want to turn the whole thing off, you can just set the component to disabled as well
Kind of a design question here, but for a Lego-style vehicle building mechanic, does an odd or even unit size feel better?
like an engine, would you prefer it be 3x3x3 units or 2x2x2 bigger units? should the centerline of a vehicle be at a coordinate or between them?
even? lol
The only problem I see with even is that a 1 wide part can't be centered
Odd so that you can have a middle
Ye
i thought the same for odd too, that there is a middle, but the same would be for even, just not a pip but between
odd does sound nicer for granularity
maybe if things come in multiples of 20cm but can be place in multiples of 10cm
i think that'll settle both
for a middle with even you'd have to do 6x6 and turn middle two into the middle piece
which might be too wide sometimes? ๐คทโโ๏ธ
The lego analogy would be that my smallest piece is 2x2 and everything is in multiples of 2
so no 3x3 piece
i think its a matter of detail/granularity that you want
How deep does the mechanic go? Is it similar to a game like stormworks where you build everything yourself or is it more simple?
seems like the same sort of thing to handle, 1x1 would just mean smaller bits, but you'd still be managing chunks of blocks no less
It's the core mechanic, building a vehicle out of parts. The vehicle basically has a grid so parts snap to 10cm grid.
I just want the grid to be fine enough to not feel cramped but course enough to do by mouse really quickly
I'm leaning towards 10cm grid and part sizes multiples of 20cm
In that case I think 10 cm would work better
part size being the size of their bounding/collision box
certain things snap together like driveshafts and pipes etc so it needs to be on a neat grid
the banjo kazooie game had it rather small, lego games as well - and people will go as crazy as they like in minecraft
I suggest you look at a game called stormworks in terms of grid design. It has very similar mechanics to what you described
Is it possible for a child class to inherit its parent's macros?
Can't use functions for this purpose as they contain latent nodes that won't work in them.
do they not pop up when you search for the macro in the child? or as an override option?
2:10 for the part movement mechanic
https://youtu.be/WAZWfSwHFXk
Nope.
odd 100% to allow for symmetry when placing items that don't need to symmetrically go on both sides
also, damn that looks cool
I cant get the sedan > sitPoint to attach
sit point is probably a component, and you're trying to attach actor to actor
Oh
How do some of y'all sculpt your connections between blueprints?
Functions?
Having a lot of trouble figuring out what's going on here. It's supposed to be adding 5, but it's adding 11. This is in the parent class of my enemy characters.
Nah I mean like the visual connections between blueprints
kinda like this
I stack up inputs to execute node as much as possible, and dont run wires everywhere
Like This?
Oh are those macros?
thats probably the most effective way of doing it
can I access timeline point? I want to dot to start on any position depending on the players location.
like this
the purpose is to zipline. I vinterp between two location and depending on where the player is i start on that location and interp the rest of the way
if you understand?
IMO it's always better to use floats as an alpha and lerp
then you can also do multiple things with a single alpha value
what is alpha
a 0..1 float
is there a node for checking which actor (In this case being multiple triggers) was overlapped?
it's an exposed pin on the OnComponentBeginOverlap
how do i get the alpha node what do i search for?
I tried overlapped component and other component and neither worked
For a variable length zipline interpto might be easier?
overlapped component is the component that got overlapped locally
yo guys thanks for the help but im still lost what is an alpha thingy
is it a node
is it inside of timeline
you can interpto with a lerp later on, but tbh a lerp will likely be fine on its own
inside your timeline. create a float track
yes
then just add point as you want. keep it between 0 and 1
over however long duration you want
thats what i aldready did, wasn't it?
True with playrate
that's it
The timeline goes from 0 to 1 over 1 sec
your lerp value goes into a lerp node!
Hey there, not mean to get into anybody's conversation. If anybody has a moment with me, I'd like to ask for some help on sorting out with Enumations and structures cause I'm trying to create a attack impact behavior though I'm a little confused how to make such a possibilities along with enumerations and structures together
I think a little more detail is necessary
what do you have to account for? is it a finite amount of data?
Well, it will be a little complicated to say but I'll try to explain the best I can do and I may need to give much of my structures in image.
0 to 1 over 1 sec
yes, but keep in mind: usually alphas run from 0..1, and yours runs in reverse. just means you have to invert your vectors in your lerp
oh ok
Playrate = 1 / (zipspeed / zipdistance)
is playrate delta time
No
playrate is the scale of your timeline duration

Seems I can't modify a rep notify variable in an interface
is the best bet just to create an event to do so intead?
To avoid superspeed on long ziplines you slow down the timeline
have you asked in #multiplayer ?
๐คฆโโ๏ธ my b
may want to start with what you're trying to accomplish instead of your code
zip speed is that lerp or what is that
zip speed is what was posted earlier. it's a function of the playrate
Ok, I've tried to gather what information I could get because my little question involves a lot of detail. I've settled up elements and weaknesses using Enumerations and Structures to sort out. I have damage structure in my actor unit and I'm trying to sort out a way to make what kind of reactions occur on what element attack is used. I've already figured maybe the switch would work but how to connect the reactions with structure and enums from the attack and unit to the element.
Desired speed while ziplining
Should be a variable of yours
To define how fast the actor ziplines
is this what you mean
i mean for @odd ember
I meant this @feral ice
this means that wherever you are you will still have the same speed
I think this is where GAS could come into play ๐ค
GAS?
You could adjust it by decline on the zipline @feral ice
ok so if you're doing resistances, you'll probably need a map between your type (enum) and the value (float)
Gameplay Ability System
It does involve some C++ tho
gas requires CPP to function though, no?
yeah so it's not really viable for this channel
I don't use C++ I'm sorry to say.
you can get mostly by without CPP if you use something like GASCompanion
So start with the timeline, lerp vectors and set location
planning for this to by multiplayer?
well tbh instead of acting like gas salespeople let's try and solve this issue
So, I might need a map between my type enum and value float. I'm not sure how to do that. Can you explain or even show me a structure of it?
a map is a type of collection, like an array
No, I'm remaking a game I really loved cause I refused to move on from it yet.
then yeah, gas may be overkill ๐คทโโ๏ธ if you're not experienced in cpp. go listen to CE
surprisingly (or not) the UE4 documentation is sparse on this
I'll look into this, thanks!
now I'm wondering if there is such a thing as an individual map pairing as a variable ๐ค
So im changing the delta time and not interp speed? Need to know what im supposed to know before getting into the good stuff
You're changing the alpha on a lerp node
use a lerp!
Which is how far from A towards B we are
Swsp the node
the value you call lerp is an alpha value
okay i will chnage the name to alpha
lerp is a node
yes but for vectors
oh yeah i see didn't that one existed
just for full transparency, lerp is a short for linear interpolation
ok sorry for the trouble
linear polation
yes ik this but like vinterp to i tought that meant vector linear interpolation to
interp works differently
idk myabe im stupid haha
interp takes e.g. a distance, cuts it into Interp Speed segments, and then moves towards the end of the first segment
One of them handles delta time, the other does not ๐ง
hmm i see much to discvoer after all
I want to believe this is an obscure reference, but I'll leave it
yeah the next step is pretty "simple". i need to now the distance from where the actor is to the end loc and then skip interp until the actors position
that way i dont start from the begining
yeah thats true
Start loc would typically (tomb raider style) be some jump distance away from the lines nearest point to the jumping platform
But thats way down the line
well yes i can see how they did that
Start with just getting it to slide ever so ugly from point a to point b
idk im getting tired haha just gonna do tha ugly shit first. haha. 23:33
Yeee waiting for kiddo to sleep so i can hit the bed lol
hahaha
Zipdistance is just the two vectors in with a 'distance' node between em
So playrate should be set to
1/(zipspeed(your float variable)/distance)
Hey all! Thanks for all the help so far, but quick question: how can this cause an infinite loop?
Uuuuuh, please hold.
could be recursive
Negative, the widget just has a variable that the character updates via casting.
I mean infinite loops in BP aren't really infinite
For sure they are not
it's just the editor deciding when to stop
lower
like 10k
maybe 100k
something like that
you can change it in the project settings afaik
Update health, pure functions..
Yes you can^
I usually just tenfold it when i need to
I've never had to
but yeah it's just a number
anyway yeah those pure functions are suspect
Along with death
What does that do
Respawn?
Theres the loop then
Beginplay -> is dead -> destroy actor -> spawn actor -> beginplay ->>>>>>>>>
I don't know if it's something to do with the issue
but those pure functions can't be pure
they wouldn't be
Okay, so it's definitely something to do with the damage:
I added in the damage cooldown to test it
probably those pure functions will be at the core of it
Can you unpack that for me?
functions that set variables cannot be pure
pure functions are usually reserved for function that get variables, or calculate a result without modifying state
So something like this would be better?
I would kill the update health functions
those are the ones that shouldn't be there
but otherwise, yes
Im not sure i follow this formula. Im not sure what to do with ziplinespeed.
What in gods name...
Okay done. Still looping tho.
Alpha goes directly into alpha
are you familiar with breakpoints?
Show the death function please
I am, but I've forgotten how to set them.
F8
thats why im confused cuz im skipping the first interpolation like im taking away the part that i dont need to zipline
Alpha into alpha
Thats all for the loc
Sorry if i'm interrupting. but does anyone know if there was ever a fix to this?
https://answers.unrealengine.com/questions/1049560/view.html
I'm having the same issues that these guys are discussing.
no bc if im in the middle of the zipline i will teleport to the start and start gldiing
Lets handle that afterwards
Thats the event call that needs to be fixed
The interpolation here should have a pretty simple job
ok now its like this
Sweet
Before play from start
Get the timeline reference from your variable list
Set playrate
should probobly rename it haha
No worries about that now :p
what does playrate mean? how fast it will go from 0 to 1?
Yeah
Playrate = 1 means 1 second of timeline lasts for 1 actual second
Playrate of 2 would mean twice as fast, or half the time if youd like
The reason for the math is to compensate for the distance , and keep a steady speed regardless of length
yeah cuz when i thought about making a zipline i knew the speed would differ and thats what i didn't know how to change or how the timeline really worked
but its like this now
is the zipspeed way to high?
Start and end
3120
Wouldn't the "start location" be the same as the actor location? Meaning it's distance is always = 1?
Start loc should really be ziplines point closest to player location
But thats another story
Zipline being a spline would have a node for this
But..
Yiu are righr about the dist part , ish
Not sure why actor loc is plugged in
When theres a vector in from the event
Also
Its distance/speed
Im a moron, tired
@odd ember @gentle urchin I figured it out.
I had put an Apply Damage node in for testing the widget, but had left it in there after making an enemy, so when the enemy did damage it also triggered the internal Apply Damage node, which in turn triggered the AnyDamage Event, which triggered the Apply Damage node, etc.
so it would be a static playrate?
No
But i mixed up distance and speed in my formula
Its distance / speed
Not speed / distance
good find. did the breakpoints help?
And test๐
They did! Probably would have taken me hours or a couple days to find it otherwise ๐
Thanks for the tip!
15 sec to traverse ^^ is slow
an underused feature
what should be the next step?
increase zip speed?
Increase speed ^
Figure out how to input the correct start pos
Add another curve to lerp the z value of the actor ? Many things to do depending on desired outcome
Probably best with some montage and proc jump height?
Never played with details like this before
Just spitballing
Maybe its just a anim transition to grab the line
Then a cycle , just like jump,
And a let go
yeah gonna save this for tomorrow gotta go to bed
Smart
tomorrow is a workday ๐
grid snapping?
tried google?
I did
Hello, I am having an issue with the getter and setter with numbers. I have a setup with the setter but when I put the getter in the other function thing it does not work. pic for reference
even when I try to test it with the print string it doesn't print the random numbers that I used for the setter
it displays the number that is determined in the getter
I know I am doing it wrong and want to understand how to fix it
please help
oh
you know
that makes sense
lol
any clue what can go there?
gotcha
but like
yeah, I get that now lol
thank you lol
but
I will show you
I need it to be apart of the multiplication part
would I event start to the branch
then exec from setter to function?
hol up
let me try that
uhhhh
Why that stray setter node?
ok
so
what I want to do is have the numbers be either multiplied by neg 1 or 1 not 0
so when I set it to zero and it becomes true I want it to reroll till it picks not 0
any time?
lol
I am sorry
I am being stupid
ok
so the object I am working with is a ball
it starts in the middle and I want something to fling it to either side of a board
when the game initially starts that's when this fires off and it has done it's job
I cannot have it hit 0 or else nothing happens
if I have the random integer straight in there then there is a chance of a zero
people say I am difficult to help
it's ok
ok
i will try tthat
it worked
thank you
I didn't need to have another thing after the random bool
pic proof
appreciate thank you sooooo much
Is there a quick way to encumber movement in a character? I was thinking of changing the movement mode from walking to whatever and have a smaller speed threshold. Begin/end overlap events in the volume.
Anyone has a better idea?
make sure that your code is robust enough that you don't get the encumber effect applied multiple times
I'm personally handling this through a debuff system
@trim matrix its fps, no need for more anims.
@odd ember i was thinking of having it as a on end overlap also check if still overlapping but good point.
Sinve it will set the speed rather than apply a debuff i wouldnt be worried about stacking
Ty
Hey folks, I have this setup where I'm trying to rotate an object (bottom) to face the middle point between two vectors. I've got this calculation together, but the problem is that the rotation of the object isn't quite right.
I want to stop it from twisting around the new forward vector (dotted line). Here is a video to display the issue. The wooden block in the center should always be nicely perpendicular to the direction between the two points (A/B)
You can see that not only does it snap 180 degrees at certain angles, but it also starts twisting strangely. Any idea on how to correct for this?
Hey so do yโall know of any advanced advanced articles or documentations on missions and quest tracking with navigation and more, for like missions and then tracking these missions with a wide range of details you can do a very throughl documentation on one?
@indigo bough can we see the bp? Gonna guess it uses a construction script
@indigo bough best i can tell is that you get a resulting rotator and that your normal vector either has its angle influenced inversely or you are adding rotators incorrectly. Without bp i can only guess
Unfortunately, it's not that simple ๐
This is a skeletal mesh, and I'm doing most of this inside an anim blueprint:
Root is what I'm setting the rotation of the wooden block on, though (you can see that in the first image at the very start)
And the calculation for that Root rot is in the second image
The way it works, is that AEnd and BEnd bones are moved to their target locations (as shown in the video), and then I use their locations in this calculation for the mid-point (which becomes the look-at target for the wooden block/Root bone)
The chain of bones either side can be ignored for this, those are just to account for the bend of the rope (the latter half of the first image)
guys, im trying to shoot a projectile from a characters wand
im using the wands world location
but the projectile only goes forward for some reason
heres my bp
Image
pls @ me
@indigo bough i am very confused by 2 things
Why do you break your rot into 2 and make it up again?
Why do you add your midpoint vector to the AEnd?
for some reason, if i use a get tranform the initial rotation is off, and if i use get location, it doesnt rotate
My understanding is to find the midpoint between two vectors you do:
(A - B) /2 + A
Is that incorrect?
As for the breaking the Rot into 2/and back again, it's not necessary, I was just trying something before this screenshot
Hi all,
I am using the third person BP but have changed the camera to be first person. I'm trying to figure out how to get my camera to move down when I crouch. I've got the animations setup on my mesh, but the camera doesn't move down when I crouch. All the tutorials I've found are specific to either third person or first person, but I can't seem to figure out how to just get the camera to move down with the crouch. Any direction to a video or forum on this would be sincerely appreciated!!
Yeah the +A part doesnt sound right
Hmm, fair point, the midpoint is correct, though. It's just the rotation that I'm struggling with
@trim matrix dat cat
@indigo bough well the rotation break actually explains why you get a weird result. The Z local is flipping and you built your rota without a z vector so the engine guesses
Ahh okay, I did think this, but I can't seem to build a rotation with X, Y and Z ๐ฆ
@raw karma attach the camera to a bone like the head
I still can't wrap my head around quaternions ๐
@trim matrix i havent had issues so far. Typically it was my limited aloof mind forgetting a arc cos or something :-P
@indigo bough since you are using anim graph you can actuallyc heat it
You can impose rotation limits to each bone
oops accidently clicked blueprint, instead of marketplace, sry
I forget the node. Not t computer atm
Yes
And you can limit the bone rotations
It is great for realistic character movements
Ahh wonderful, do you know if I apply limits before/after the applied modifications? I don't suppose it matters
guys pls help
Havent done this in a while. I have notes somewhere
No worries, I'll do some digging. Thank you for the help! (Also @trim matrix !)
You probably want to get the wand's forward vector, and use that. ๐
Ok well then where can I start to learn and weโll I atleast need something in the next 6 months?
Did that, but wut fixed it was getting the pawns aim rotation
???
I've got my camera nested in a spring arm which is already socketed to the head, sadly it doesn't work.
What does work is when I look at the ground and crouch the camera goes down, but when I'm looking up straight (normal level), the camera doesn't move at all.
No like where do I start
Nvm I will probably just find a basic article on it and somehow build up from it
It needs to be rigged for multi player and can do anything I want example for pick up this and that
And at the begging of the game it has to play a cutscene if itโs a new user
what exactly would be the different between running something in the Construction script vs Begin Play?
Begin play is when you click play
So it triggers immediately
Never messed around with construction script
the construction script is called very quickly in the editor but also on begin play
such as moving while in the editor
Construction script fires when you place the actor in the editor or when you move it around in the editor.
There's also limitations to what you can do in the construction script. Like begin play you can fire latent events, etc. Construction script acts more like a function in this regard.
also when the actor is changed, via variable
ah ok thats interesting. Thanks!
Something i use it for is for editor utilities and tools for development.
Also if anyone could give me tips on how to use blueprints cause as I said in another channel, I keep having amazing ideas but I never know how to implement them
If you want i can help you out.
dm me.
Do Hits take priority over Overlaps?
they can both happen?
Yeah, I figured that. Right now I'm having an issue where neither my player pawn nor the enemy pawn are generating Hits on eachother.
they may not because they dont use Physics ๐ค
They'll generate hits from running into the tilemap, but not eachother.
oh, then nvm, they can respond to their collision channels?
i assume both are pawn, both can block pawn, and both have generate hit on?
their object types are Pawn so they should be blocking Pawn in the Object Responses
Ah, are Hits only generated when blocked?
yes
Is this right for making sure its the player that Hit the enemy?
so this is called in the player bp?
This is in the enemy's BP
getting player pawn works for enemy because the enemy needs to know if they hit the player
but for the player to know when they hit an enemy is not right, but i dont think you need both anyways
Is there a way to know when a value is assigned to a variable via details panel ? Like a hook to which we can listen to when value changes ?
you can "watch" a variable if thats what you mean, so while the game is running you can hover over it to see its current value, otherwise you could print string it
My current system works fine, but thanks for your reply. I'd use it in the future.
Okay so here's my scripting for the player damaging enemies. The enemy class inherits from BP_Enemy_Base, but the casting is failing for some reason.
Not for debugging purpose. How do we validate a data that is assigned via details panel ?
uhhh, i dont quite follow.... isValid?
if it inherits, then it is not the same thing to cast as
you want to compare if this actor has the same parent class and use an isEqual class
Can we not BP subclass StaticMeshComponent?
I want a component with a visual element to it, what's the ticket here?
huh?
Like how would one pull off a DoorknobComponent, that is, basically a mesh + some functionality
or ButtonComponent, etc
Okay, but that's my problem: even with an isEqual class it still reads false when the actor inherits from BP_Enemy_Base
wait wtf i guess we can subclass StaticMeshComponent, I coulda swore we couldn't before
Should be purple to check class type
isnt that what you asked lol?
I asked if there was a way to do it, because I could swear you used to not be able to
Still nothing :T
โฃ๏ธ โฃ๏ธ
This is greater than 0, right?
Depends on the checking function. But generally yes.
they trip me up too
Yeah, but 0.42 is still > than 0, yeah?
well its printing when it is false
Right, but I don't want it to be false.
0.3 is greater than 0.0. So 0.3<= false
Hey. At least you're not ==ing floats. ๐
is it possible to rotate this mesh in my blueprint so I don't need to redo it in modeling software?
Did you define the mesh as the root in your BP?
I think the easiest way is to reimport your mesh with modified rotation
(or directly rotate it in the mesh itself)
Otherwise you could add a scene component as the root of your BP, then you are able to rotate the mesh directly in your BP
*By reimport with dif. rotation I refer to the import window of UE, not the modelling software
nice
I appreciate all your tips ... I decided to build again
these are very basic shapes and I want to ensure I get in the habit of doing it right in blender, lol
is it possible to filter this array by the last 2 text fields (arrays)?
I guess i misunderstood what you wanted
you'll have to do a manual loop to figure out if an array item has the desired values
You wouldnt want to retrieve the Category and Tags directly fromt he BuildID I suppose right
If you want to filter based on this information, or am I missing something
well, I plan to group by Category (different buildable object pages), then on each page have separate groups (formed by tags)
Oh and the BuildID defines the tags?
each build thingy can be part of several categories, and several tags?
build ID I think defines which mesh is active from my BuildablesDB
I think
this is being tweaked after following a tutorial
trying to build it up ๐
oof
I alwauys see you off when it comes to data, lol
lol
damn it UE
even when I have created a new asset and not even done anything with it yet, still won't let me move directories
damn big oof