#blueprint
402296 messages Β· Page 508 of 403
yep treshhold increase helped
but how much should i increase?
i set it to 1, i gguess thats why to much
i also can simply call a index on a linear segment of my path
I think it's in Unreal Units (or centimeters if you prefer) so you're checking to see if the sphere location is within the distance you entered
of the spline point
so when i enter 1 it looks in the range of 1 Unreal Units?
yeah
so my index is at 0 0 0 so everythin in the range of -1 -1 -1 to 1 1 1 would be legit, if my treshhold is 1?
well... it could be radius-based so 1,1,1, would actually further out than 1cm
I'm just assuming that's how it works
yeah, it would be basically the 'length' of a unit vector. π
ah radius so everything that is within it
you should just get the closest point on the spline to sphere center and compare its length against some arbitrary number
that is not 0,00001
because that is a recipe for a broken algorithm
ok i have no idea what you are talking about, sry
ok is that what the treshhold does?
there is a function that takes a point/vector
that is for a nearly equals threshold, its not actually looking for exactly 0.0001
and gets the closest point on the Spline to that point
if you substract the two and get length, you see how far your point is from the spline
@twilit heath i have a moving sphere that represents my movingplattform.
you are good kano. you are already doing that. π
than increasing my treshhold is all i have to do. I can iamgine the treshhold as a radius around my indexlocation?
correct.
as long as your update per frame does not exceed this threshold, you will match
perfect
so when my sphere crosses the specific index it stops, since it is a physicsActor(Vehicle) it still has some velocity. Can ii set the velocity manually?
BodyInstance|PrimitiveComponent::SetLinearVelocity and SetAngularVelocity for rotation.
i just forget to think at the steering^^
it is natural to break and not instantly stop
you can use a VInterpTo, in combination with GetLinearVelocity and SetLinearVelocity
'slowly' lerp velocity to 0
I made Blue print for animation/Blend space for walk and run cycle. I found character distance and speed using the event graph in animation Blue print. I added Blueprint to Thirdperson character with the skeleton mesh. What is going on?
Need help my character keeps looping through animation
@thorn ermine if i want to make the breaking a bit softer or harder?
will keep that in mind if needed
my vehicle isnt that fast, so a natural break seems fitting
How performant is "GetDatatableRow" node is? Can it create performance issues to call it in a loop to get 50-60 rows back to back? Is the data read from memory or from disk?
I would suggest benchmarking it -- assign it to a button or something that does it 100,000 times lol
type Stat Raw into the console and see what the frametime spike looks like
I still have the problem, that some how the orientation of my Spline and Sphere influence the behaviour of my vehicle π€
my vehicle is following the sphere, that is always the closest point to the splinePath
why does it mater how my path is oriented?
when i rote my path on the Z axis to 0 my vehicles starts to move in slopes, while setting Z to 90 or -90 it just follows the sphere
If I call a custom event, which runs some code in a while loop, if I call that event again, how do I get the original thread to terminate?
nvm I'll just use a timer instead
i guess there is a better solution for this
i want to make subtitles so i made an actor in my Pawn that sets the text according to the timestamps i set in my array
i assume that each subtitle is set depending on the timestamp i have?
anyone know why is this happening
@pale orbit it means that boolean doesn't exist in the BP class you're casting to. Maybe that's the case, or maybe you forgot to compile that BP.
@thorny cedar I don't think you can use a delay in a loop. The loop executes all at once, so the delay is being called however many times in one frame. You should look into a node called Set Timer by Event (or Set Timer by Function Name)
that's like the proper way to do it
yep it always prints the last one thank you for the hint
Guys, my character is skidding in rotation, why does this happen?
@tight schooner so this should work? oh forgot to ad Clear and Invalidate Timer by Handle! or is this only important when looping?
It wouldn't work cuz the timer resets every time you call the Set Timer By node. The problem is the Loop node executes all at once; you can't make the loop happen across frames.
There are a lot of ways to approach what you're trying to do. I don't know the "best" way cuz I've never made a subtitle updating thingy, but off the top of my head
you can make a counter variable (an integer) that keeps track of which subtitle index it's working on
and have an event that updates stuff based on the index, and at the end, it increments the index, and if the index exists, it then sets a timer on itself
so at the end of the event, you have a Branch node and then a Set Timer by Event node
if that makes any sense
yeah, at the end of the event, it sets a new timer on itself (the red line connects all the way back to the event)
if the next index doesn't exist in the array, it doesn't set the timer on itself, and thus ends
(or you can do this check at the beginning of the event if you prefer)
i try to figure it out and post a pic of it
yeah so i dont need any index in my data structure
oh actually i need
i dontjust chek, if i can get the next element
the order of my subs is basically the order of the array
Heyo. I'm not sure if this is the place to ask but my question is this: To those of you who have worked with both Blueprint in UE4 and Bolt in Unity, which do you prefer, which do you believe more powerful, and why do you prefer one over the other? Thanks!
@tight schooner got it working π
you can simplify the index check with "is valid index" node
like is index+1 valid?
you don't have to loop the timer if you're setting it manually each time
(so uncheck Looping and get rid of "Clear and invalidate timer")
you also have LastIndex node which is Length - 1, less clutter
For whatever reason, when using set relative location on the procedural mesh it sets it to world location and not the location relative to the root (scene component). Any ideas?
why are you wanting to move the procedural mesh and not the root?
This is the sliced portion of a procedural mesh. I removed it from its parent and placed it into a new actor. The mesh is off center because of this.
im confused, whe i create functions with some inputs unreal expect me do attach sth to the input
but how can i normally handle if an array for example is empty?
could you send a screenshot of your code for it @winged kettle ?
setting the array before actually calling the function?
and catching if the array is empty before xecuting anything in the function?
@opal pendant Yeah, give me a sec.
k
How could i make a power system that starts at 100% when none of my doors are open i want the power to drain slowly but if i have 1 open a bit faster and 2 very fast how would i do that?
in my case i have Subtitle system and a function called PlayAudio with SubtitlesArrayInput. What is if there isnt a array or the array is empty
you can still plug in an empty array into a function, it's just that the function won't be able to output something
is that common practise? so in my example everywhere where i call play audio and dont need subtitles i can input a empty array? ofc i could make a function without subtitles to
@mortal wharf I would make a door actor that has a function which when it's in the "open" state, it casts to the gamemode and tells it it's open. the gamemode contains a function that uses a looping timer to decrease the power percentage 1 every t seconds, and you could use an if statement to test how many doors are open, and if 2 doors are open then you set t to a lower value (eg. 1 door is open: t = 0.5, 2 doors open: t = 0.2) @mortal wharf
oops sorry for the double ping
No Problem Would You Mind If You Could Explain Step For Step As I Am Very New To The Engine?
@opal pendant
I just did though
make a door actor, then make an event that changes the door's state to "open" and cast its state to the gamemode
in the gamemode, have an event or function that begins a looping timer to decrease the power %
@thorny cedar yeah you can use an IsValid node to check if data exists, and branch some behavior off the result. It's pretty common practice. (Is Valid Index also exists for arrays.)
I was just irritated to have an empty array attached
I'm not sure what the point of calling a function with an array input is if you're deliberately feeding it an empty array. Maybe I'm not wrapping my head around your scenario.
in my case with the subtitles
imagine some sound, that dont have any subtitles
hm maybe changing it to Play voice?
Oh ok. If the function is always called but sometimes there's no data in a certain variable it uses, then checking IsValid is pretty normal.
and attaching an empty array in my case?
Is your array a variable that's sometimes set and sometimes not set?
Hi guys, I'm trying to make a widget utility to change multiple skeletal meshes' materials at once.
It works fine for static meshes, but I can't find a way to set it for skeletal meshes. The node "Set Material" is not available out of a Skeletal Mesh.
when you play an audio you know have to know, if it is an audio with subs or not
so it will be set only for the audios, when called
Is this dialog system built into Unreal or did you build it yourself?
im using my own
i do check if my audio, my array and the audio component is valid, before trying to play
in addition i stop and set the audio component to null, before actually creating a new component and setting it
I'll just say if it works, it works. I can't speak to standard practice as I've never worked at a studio / in the industry. In my current project, there are points where I set array variables with nothing and use them in functions/events
that then check if stuff exists
and I haven't had issues with that
so it's not gonna like, break UE
ok thats what i will do and did in the past, without questioning
as long as you're checking before using, you won't get "accessed none" errors
I'm new to blueprint, where do I start?
thank you π
@trim matrix I can't vouch for it personally (I've been winging it the whole time) but Epic provides its own learning resources @ http://learn.unrealengine.com
ok thanks
and for learning what specific nodes/systems do, there's a very helpful YT series by Mathew Wadstein called "WTF is" / "HTF do I"
everybody refers to it constantly
@trim matrix https://www.unrealengine.com/en-US/onlinelearning-courses/blueprints---essential-concepts This is a good place to start for blueprints
Hello, I would like to toggle visibility of selected foliage inside blueprint, is there any method please?
Simply turn selected foliage on and off
Good time of day. Planning to make weapon craft game. The start of the game should begin from stone age, so we will craft stone weapon. The idea is to make posibility to craft weapon with different shapes by redacting stones, woods and connecting it to each other by ropes.
The problem is that I can't figure out the best way how to make the redactable materials for craft. Have some ideas like using voxel, destructible and maybe procedural mesh component.
Can anybody share by their information how it possible to make?
I want to push a player with a simple block, up (elevator) works fine, but if I push the player to a side it looks very strange.
Made a short video of my problem: https://gfycat.com/deadverifiablegalapagossealion
@odd veldt Are you talking about the camera jumping?
It almost looks like your spring arm throwing a fit.
Multiplayer?
no
Pretty odd then. At 120 fps, that push out of the way should be pretty smooth without network correction.
Does any other moving actor to the side do this, or just that door?
somehow this always fails in my gameState
Heya! How would you guys check if a character has negative velocity and set a boolean?
I'm currently using Get Velocity where I separate the Z, and doing if Velocity Z is Less Than 0 -> Return True and Set Downwards Velocity Bool to True.
However.. it returns True even when all the velocity values are set to 0 in the Character Movement Component.
maybe it's just me thinking in a dumb way when it comes to greater than, lesser than when it comes to negative numbers
@odd veldt Out of curiosity, how are you making the door push the character?
@maiden wadi moving the door with set actor location
im super confused my getplayer pawn get sthe spectator pawn, but why
@maiden wadi if I "walk" while beeing pushed it works. π€
@maiden wadi Testet it with a box with physics, does also work without problem... so the problem is the charakter
Does anyone know of a way to get a reference to a static mesh asset by string in a construction script?
I'd like to use SetStaticMesh but I need to look up an asset programmtically.
@thorny cedar Game States are usually loaded into memory before the Player so your pawn probably might not exist when the game state's BeginPlay is called. To test, try and put a delay node before trying to reference the player.
Hey, I try to use Argument Modifiers for FTest but this doesn't seem to work. Do I need to activate smth for it?
ok my attemp is a bit wierd
it works all functions after casting, but not if i use them in a function
got a text box widget delete error, widget won't compile, how do we get rid of this error?
Binding Null Error keeps coming up.
Still having my problem, need help!
can someone help me whit communicating between gamestate and player pawn?
@pulsar rock I suppose you could build a map of String -> Static Mesh and Find the mesh for your string in the construction script, but maybe there's a better way
@thorny cedar both pawn and GameState know of the PlayerController, I'd start there
What are you trying to communicate?
I'm not a noob, but for some reason I can't understand why by linetrace is not being detected haha. The box is blocking, I can visibly see the debug lines blocking it. But the OnComponentHit or BeginOverlap is not triggering. What am I missing?
I know I usually need a OtherActor, I tried IsValid hooked into it. It's just not allowing me to trigger Hit or Overlap
@gusty shuttle Have checked all collision settings on both actors to ensure their types will collide?
Yeah, once again, the collision box is blocking the right channel. Debug says so. Only on block, not overlap though
However on block, it seems not to allow me to trigger overlap events or hit events
Have you tried changing from Block to Overlap to see if the results change?
@gusty shuttle I don't think a line trace will trigger anything. The on hit and on overlap are for body to body collisions
Yee, I feel like my brain is slipping out of my ears when I deal with collisions haha. I'm going to hook it up to the EventAnyDamage and just adjust the base damage
See if that works
What type of object is the other component? Not another WorldDynamic I hope.
@frail hamlet @faint pasture That worked, all is well
Man, I've been using Ue4 for years and sometimes I forget easy shit hhaha
@keen goblet thanks
Hello ! As for me I am a noob and I may have a easy question for you haha.
I am trying to do a day / night cycle in which I made a particle effect that mimics fireflies...so far it works well, it starts and stops at the right time but with my present setup the particles just...dissapears all at once ? How could I say to my blueprints : When daytime comes / stop emitting and let the particle die out ?
Here's how It looks like at the moment
dont do that, use activate/deactivate
Ok I was dumb, I could not find it while right clicking but I found it in the library
So something like that ? (with the rest connected, said dumbness acted out again and went to fast)
It works ! Thank you @faint pasture
I think the level should be doing the transition but that'll work
The GameMode or GameState tells the level what time it is, and it updates all the actors
That sure sounds way more efficient, I might get into that soon as other effects get made
However you do it there should be one place that sets the time and knows about everything else that needs to know what time it is
does anyone know how to pull the parent code in a child blueprint
if you right click on the event|function node, there should be an 'Add Call To Parent'
good looking out @thorn ermine
so I've added my own custom joystick widget, it currently has an event dispatcher for movement. I'm trying to sort out how I can use it to set the value of a named Input Axis
Is there some way to dynamically register it as a key/joystick and map it to these axes?
Hello guys, is it possible to setup a team death match game mode using BP?
It looks like SVirtualJoystick::Tick has a dirty hack to do this, so I may just expose a C++ function to do it to my blueprints.
// now pass the fake joystick events to the game
const FGamepadKeyNames::Type XAxis = (Control.MainInputKey.IsValid() ? Control.MainInputKey.GetFName() : (ControlIndex == 0 ? FGamepadKeyNames::LeftAnalogX : FGamepadKeyNames::RightAnalogX));
const FGamepadKeyNames::Type YAxis = (Control.AltInputKey.IsValid() ? Control.AltInputKey.GetFName() : (ControlIndex == 0 ? FGamepadKeyNames::LeftAnalogY : FGamepadKeyNames::RightAnalogY));
FSlateApplication::Get().SetAllUserFocusToGameViewport();
FSlateApplication::Get().OnControllerAnalog(XAxis, 0, NormalizedOffset.X);
FSlateApplication::Get().OnControllerAnalog(YAxis, 0, -NormalizedOffset.Y);
However you do it there should be one place that sets the time and knows about everything else that needs to know what time it is
@faint pasture Ok, I'll keep it there for this one as its only a visual shot for a portfolio. I'll try the other way on later work
How do I make my game start on a camera
@dim stump What do you mean start on a camera?
@dim stump you'd want your player controller to possess the camera at the start of your game, and then I assume you'd want to switch to your character in which case you possess the character
so you'd call the Possess node using your player controller and possess the camera actor
does anybody have any information on how to properly import data into the instanced foliage system? ive been trying importing for awhile but always end up with it being somewhat broken, unable to select meshes / crashing editor
most of the stuff ive come across are just working in the editor generating foliage with procedrual foliage system or just painting, i need to be able to import my data seamlessly into that workflow
preferably in bp but if not possible i can do some light c++
Probably not going to get an answer to something like that in this channel, but I'm also not sure where you'd want to ask that either.
though if you're talking about having already created some scene and then want to import a bunch of trees or weeds or whatever... I don't that's the correct workflow to use
where could i ask that i might receive an answer?
the built in tool for generating foliage has some limitations that i have solved with another tool outside the engine
possibly one of the content creation channels. This one tends to fall into probably 80% "I really don't know what the hell I'm doing" kinds of things.
yea theres not many resources for importing data into the engine
I was going to say that if anyone gave you shit, you could tell them I was the asshole that directed you there... but he beat me to it; blame him π
There are definitely a lot of cracks that things fall through.
i posted originally in level design however that seems to be more relegated to more design stuff whereas i would need to use either blueprint or c++ to get my stuff in
idk
Importing definitely seems to be more in the "static asset" category of things
@little garden have you tried using blender as the export platform, using these tools: import low and high obj files, low object: apply multires modifier, subdivide to level 3, add shrinkwrap modifier, select high res object as target
and then import to UE?
generally you want low faces in UE
i have a csv with mesh references and world locations
... so you want to take that data and have it populate the world then?
yes
a great way to go about it is to "paint" in where you want instanced foliage rather than having pre-defined sets like that.
using the landscape tools
then data tables are what you're going to want to be looking for to do that
i see in blueprint there are ways to add / remove from instanced mesh components but im not entirely sure how to interact with it
i have it in a data table but im struggling to properly generate instances
which is why painting the opacity where you want instanced meshes to be is a more common route
takes only a moment to paint in a white opacity map to terrain
so my issue is that i can generate okay looking forests on my landscape, i have all of my layers setup and whatnot
however unreal struggles with doing things like the border of forests
i dont see any decent way of defining them for generation in the static mesh foliage parameters given
for procedural generation
you using sublevels? in the levels panel to break them up?
or you have one large world?
because that adds to overhead
i use another program which can generate very nice forests and have the data for the forests on my landscape however im not sure how to get that data into the instance foliage component used by the foliage painter
i use world composition
its a bit of a niche topic i know
far as i know procedural foliage is best done externally. you have say 10 plants imported in as a group (of 10)
then you select randomly
using instanced meshes
why try to proc gen stuff in UE? ue is not built for that
unless you custom code it
i have and i can generate okay looking forests
but it looks artificial because the border of the forests is the same as the interior of the forest
right from predefined assets, right? does UE actually make the leaves on the trees?
so you would simply paint in layers where you want them to go. i did this all before in my game. if you give me a moment (i'm currently doing a compilation) i can get back to you with details how i did it in my landscape
fairly basic but you get the idea
you paint where the grass is, where the trees are
then UE spawns them in
as an example if you look at the bottom right of the screenshot the forest "stops" and does not have any visible forest border https://gyazo.com/a62cd0f97d63d283b3b767e7647d8b34
unreal doesnt really calculate where a mesh is spawned with the procedural foliage tool except the weight of the layer
so in another program ive generated all of my forests with that information in mind
the edge of the painted layer
to create realistic looking forest borders
i might just watch videos on how instancing works entirely so i have some kind of better understanding
the foliage in the screenshot was generated with the procedural foliage stuff but my issue is outside of the base parameters for that
@little garden something similar to this is what's desired?
I think he is saying he wants forests to generate more densely at the edge of forests.
to create realistic looking forest borders
i believe he wants them to break up and add variance making the forest look more realistic.
any how, the way you would do it is by using the modes options in the top of the viewport @little garden
this is directly from my game build, and i use instanced meshes here
the thing is, you have to create the meshes out side of UE
and then they are painted on based on weights as you said, but the weights are painted by the user
here is a reference on how to do it - Unreal Engine 4 Documentation > Engine Features > Foliage Tool in unreal docs
@flat raft just wanted you to be aware of this - in gameinstance this is what i typically use it for. mostly in app purchases for mobile and menu stuff. if you have stuff related directly to your possessed pawn it's better to use it in PlayerController as Matt said.
i found something that may help me, thank you
well kinda
this is partly the issue im having
and what im doing
what im doing in my blueprint there that is trying to add instances to the foliage is breaking it and trying to interact with it is fucked
the print string is returning all instance components on the instancedfoliageactor
only returns 1 after generating the instances via bp
so all seems well until i try to interact with it in any way
In one tutorial about setting up a Damage system (for example, your player getting damaged), he created a Damageable interface
Why would I want to do that when Unreal already has a built-in "Event AnyDamage" and "Apply Damage" that I can use? Not to mention things like "Pain Causing Volume" that works with it that is provided by UE?
@pale blade it is better to use anydamage / radial damage
as you can see above, i use two features here
AnyDamage and on take point damage
as events
i have a health component i attached to my pawn which takes the damage
which contains the following
if you bind them as events, they do work. i recommend using anydamage / radial damage more than using interfaces for damage
i used to use interfaces but it was not the best choice
AnyDamage has good things like instigators, damaged actor, and other input pins you can utilize and don't have to code yourself
so i recommend that more
that said i still do use interfaces for other things, just not in lieu of AnyDamage
So it's better to just use UE's built-in damage system, rather than making your own (for example Damageable interface), right?
Got it, thanks.
Hm, I guess this guy's tutorial isn't so good
@pale blade, not sure how complex your game is but it might be worth checking out the Gameplay Ability System
I tried taking a look at Epic's Action RPG, it's way beyond me right now, for now
it's a bit rough, yeah. pretty powerful though i was definetely going to implement it in a diablo-rpg clone i wanted to do at some point. something similar to path of exile or diablo
it has a lot of templates you can use for casting and stuff you might find in world of warcraft right redgreenblue?
do you know the depth of it ?
is it mostly not exposed to blueprint?
I'm using it extensively. Most of my gameplay is going through it. It a little bit to do some of the C++ work but once I got all the classes playing together it's mostly implemented in BP.
sweet
Once you get it set up, it's pretty much all BP TBH.
is it fairly good for lowering tick time and cpu optim?
i think i will definetely use it if i decide to create an online arpg
I haven't compared it to doing it all in BP so I wouldn't know. It's mostly to cut down the work on implementing timing systems and having them all coordinate. It does a lot of the work for you.
did you start from the marketplace action rpg epic did or what tutorial or resource did you use to get started if i might ask? i want to get started with it too
Considering the tonedeaf shitshow of Diablo Immortal, I'm pretty sure there's going to be a space for a Diablo-esque game
I did. Then I looked at all the Epic talks on it. Then I got a Udemy course on it that was $10 on sale.
I think that is the same one with a different graphic advertisement.
It's the same instructor.
cool
The best thing about G.A.S is once you launch something like an event everything is done through to the end of the ability. Effects, damage, etc. It's super powerful. You can do buffs, pretty much most stuff you need in a game.
nice. any time saving stuff helps. i am on the order page now π
@pulsar rock Unreal Engine 4: Character Skill System have you seen this one? it's on udemy as well.
different type of character class i think though; probably wouldn't be able to implement it over the gameplay ability system
lol yeah, one is enough
https://i.gyazo.com/854a8a5a72579524abd758e00eb97a8b.mp4
The right is good. Anyone know why the left is not acting right?
@slate osprey Project Settings, Engine, General Settings there's a near clip plane setting if that does not work it's a clipping plane setting somewhere with one of your cameras.
_ restart the editor after changing the near clipping plane_ for the changes to take effect
That was it. Thank you
Hey guys wasnβt sure where to ask this but curious if you know any solution to this, inside the material editor is there any way to create some kind of array? I have a couple of inputs I want fed into one pin, but when I set one switch to true, I want the others switches to disappear in the instance
I can pass it through a bunch of switches but then when I select one, the others downstream are still selectable
Hey guys so I'm trying to rInterpTo between where a head's rotation is currently and its current position. Using this method the head does a full 360 when I go from one side
This is a function in my player BluePrint . I like the player to take damage .
The Explosion Damage variable is from the Bomb_Bp . but not sure what should I connect to the ; Object ;
reference to the bomb bp for example from a collision check
or when the bomb goes off you will manually check any character/player is in the radius then you can call a function or event in any player that is hit
basically you will want your take damage function to either have an input of the bomb object OR the explosion damage number
@tawdry bridge you're talking about the material graph? there's no array but you can for example make floats into a vector
What about shading models? What are they?
When a text binding in the widget designer turns bad, how do we clear the null binding error so we can compile the widget bp ?
@shut hinge refresh the node / remove execution to it / correctly reference a text reference to the node
then try saving and compiling
its in the binding function where you click (bind).
I removed the binding, but the error still remains, and did refresh nodes.
picture? (windows key + shift + s takes a snip)
hold on i have to go to the other machine
Yes that's it....
and I'm also trynig to get Ryan Layley's Levelling Component to work for Party Group screens. It only works for single player screen at the moment.
because I don't how to get the pawns to stay active when switching so their stats don't get lost off the screen.
I rebooted the engine it looks like the restart of the editor has cleared the null binding error. I opened up the widget, its not showing it no more.
save the asset, restart the editor, and try to remove the binding again if it doesn't work.
ah ok
just like i suspected in my comment
save the asset, restart the editor, and try to remove the binding again if it doesn't work.
glad it works
ok, do you know anything about Laley's levelling component? The XP levelling works for it, but only works for one party member at a time.
i haven't used that, sorry. if it's a public github repo, or public marketplace item, or code chunk, you can check the api or online documentation for it as available.
i would imagine if it's working for one party memeber in a replicated network, you would have to set it up to individually replicate for each client.
such that each player has their own instance of the component
its not a marketplace item, its a tutorial Ryan released out for doing the levelling system. But I think its single player levelling, not group levelling. so I can't get all stats to display when each party member wears the component. Their individual stats will show up as you switch pawns though. Good for single player sceren. But not for group displays..
if you can get the data for each individual class and store it in an array and manually bind it to each character on the display it could be a workaround... @shut hinge
other than that you would have to look at the code. i haven't used it before.
each party member's levelling values are stored in their copies of the component
and in each component the party member cast are going to the individual party member that's wearing it.
I have actor components i use to access health information for my enemy AI.. they all work fine. i would simply need to see more information on it.
have you tried setting breakpoints in the blueprint code and watching the values? making sure references are working?
ok I will give you the code, here's how I set up the widgets for each party member to allow toggling of the widget on or off on the screen,
if a reference is not set properly or if a value is null, then it wont work
if it's a public project just give me the name (not URL)
yes
Unreal Engine 4 Tutorial - XP & Levelling - Part 1 ?
could you please re-watch the entire video from the start to the end including all the series videos and re-target or re-code anything you might have missed? there's a lot of information here.
I used Ryan Layley's XP & Levelling He had two videos on this system.
i would double check the steps in the videos.
when I did his system and put the component o all the party members, each party member I possessed showed that party member's value in all of the other party members values. So this is why I had to make copies of the component, put the party's individual levelling values in each one to get their individual values to show up. Now I have to get their stats to all show up.
if the levelling values / individual values are working, reapply this methodology to the stats?
if this does not work i think #umg might have an answer possibly have you tried looking there? i'm assuming the component is a UI component correct?
The component is an Actor Component Blueprint type you attach to your character players.
its a very small system, I'll show rex's code. At the moment its running off the tick.
ok i just done the screnshots. posting them now
this is how I posseed each party member and to bring up their widget using the player controller..
Levelling component code to rex party member part 1
levelling component to rex party member part 2
Levelling component to rex party member part 3
levelling component to rex party member part 4
Levelling component to rex party member final part 5
yes i know
can you DM me please? i can try to help for a little bit. if we can't come to a resolution i again advise #umg
thanks
ok That's the levelling component. I need to get it checked to make sure the component itself is fine. so I can nail down where else the trouble is.
ok how do I DM on here?
Hey, im trying to make a slow motion mechanic but I dont want everything to go slow, only the player.
Ive seen tutorials but they make everything around the character go slower as well as the character.
@hoary gazelle can you lower the players movement speed and/or the animation speed?
i can slower the speed of the player and such, but i want this to work when im falling as well.
For falling I think there's a gravity scale in the character movement component
How can I optimize spline trees?
if I had a bunch of spline trees in my scene, the fps drops alot
What's a way to ignore a row or column csv files for UE4 tables?
@cloud gulch i think there is a plugin that reads csv files, lets you write and more, all in runtime
I think you may have to loop to make arrays of the data
From there you will do whatever
Create a blue print for video capture for all render passes in unreal
Please can u help me
I want to interpolate position values between 2 vector points based on cameras rotation. is this correct?
it doesn't seem to do anything for some reason. the Yaw value comes up as 0
Maybe try GetComponentRotation vs GetTargetRotation
or GetRelativeRotation
but keep in mind Z could be < 0 > 1
still comes up as 0 for some reason
the rest controls other parts of the BP on event tick.
Then it might be your alpha
Try putting in 1 or 0 what happens:?
i guess with add controller input the relative rotation of the spring arm stays the same
the alpha works fine. it moves between the 2 vectors
i guess you should try the control rotaion yaw
Not from the spring arm
hmm well it's done something. it went off map. π
yeah the yaw is now at a value other than 0 now.
Does it need normalising?
if you need it for the alpha you need to
dont know what you try to achieve xd
oh I'm basically making orbit camera but I need to make the position lerp between the 2 vectors so i can view the object from a good angle. Its a bit like the mclaren demo, the livestream on it was pretty vague so i'm trying to recreate it in my own way.
mh
Instead of normalizing you could also try an map range clamped
Yaw Input
0
1
-90
90
or something similar xd
yeah the normalize still seem to increase to crazy values. I clamped it to -1-1 then divide by 2, add 0.5 to make it got between 0-1.
ok i've managed to get what i want but for some reason it switches between 0 and 1 rather than any value between them
you need the map range clamp so it scales down the big numbers to the smaler ones like 0-1
what i wrote above
not entirely sure if the numbers are correct but should be something like this
so basicly if you are at -90 it shows 0
on 0 it shows 0.5
on 90 its shows 1
oh i guess you need to swap them
-90
90
0
1
i have the problem that it wont stop Updating when i call Update Subtitles :/
everytime an audio is triggered the Subtitles should start from the beginning
hm got it ill have to reset my index right?
look complicated xd
Does resseting the index work?
The map range is quite difficult to figure out especially with the rotation values being positive. I was hoping it would have negative values too.
oh wait actually finally got it working yay!
nice
Theres a slight jitter when the values resets from 360 to 0
anyway I'll keep experimenting with the values. Thanks @cunning mirage
@cunning mirage it works, but then my audio is offset
i goes it has sthm to do with my dealy before the timer
maybe it has to be an retrigerable delay if this is like an dialogue you can skip or something
cant realy get how this work from the picture
yep that would be great
so whats is the exact difference?
can you give me an example?
if the value in an delay is 1 it will wait the 1 secound an then moves on
even if it gets the input like 3 times
in an retrigerable delay the 1 secound input does always get resetet to the 1 secound if there is an new input
so for an gun
if you spam left mouse button and there is an delay you can only shootif the delay is done
if there is an retrigerable delay you can never shoot execpt you stop spamming the mouse button and wait the 1 secound
ahhhh
soo if i have a input of 10 and then 1 it shuts some bullets delayed
because the player doesnt assume, he just have to wait 1 econd longer
@cunning mirage finally i got it to work. I used a timeline as a workaround:
If I have a lot of NPC'S (say 30-50), is an anim blueprint inefficient to use?
also what would be an alternative
depends on the anim blueprint and how complex it is
you could use the animation sharing plug in too
epic used it on fortnite br, it is experimental iirc but should work
the alternative is to move things to C++
you'll have to figure that out on your own since there is no documentation for that
Is this Correct for selecting a party member with the construction script? I have to get the construction script to keep party stats up on the screen when switching their pawns. This is Nella's BP Construction script and she is in slot 8. That's why I have all the other slots empty.
But I am unsure if random select is supposed to go in here. Not sure what node to put into the selection pin.
usually, 30-50 characters shouldn't be that problematic, but you'll have to author your content with performance in mind, obviously
there should be some performance related animation documentation for general guidelines
construction script only runs when the blueprint object is created
maybe I'm not getting what you are trying to do, but it seems like a bad place to do this kind of stuff
Trying to get the party pawns to keep their stats on the screen when you switch between the party members, so they don't lost their stats from the screen when you switch. I was told I had to do it in the construction script.
I don't know much about that. I routinely avoid using the get all of anything. All of my UI is spawned and handled through the HUD class. It makes it easier to keep track of both on my singleplayer and multiplayer projects since even on multiplayer only one hud is ever created per machine and is linked through the player controller, which only one exists per machine. I just keep main references to widgets in the HUD and use that to get/create them.
@maiden wadi Sorry for going back to this after a long time, but I'm thinking of re-doing all my UI this way. I can see myself spawning all of my widgets in my HUD class, but how the linkage through the PlayerController is done?
Thanks!
Edit: Is this the way?
https://forums.unrealengine.com/development-discussion/blueprint-visual-scripting/821-communication-between-player-and-hud-blueprints
Hi, I would like to edit selected actor blueprint via utility widget, but it opens the selected instance details tab instead, and without Edit blueprint link. It this possible?
for example, the map includes an instance of MyBlueprint named MyBPInst1, so selecting MybBPInst1 in the map and clicking the widget utility button opens MyBPInst1 details tab. What I want is to open MyBlueprint blueprint
this is the instance selected in the map
hey a quick question i set up BP actor to play effect on key press, but how do I add camera shake ? seems to be not working when I add it to BP actor in the level, does it have to be in some other BP, character and such ?
its empty default project with floating camera btw
hi tried messing with making my own character blueprint so i went with copying the third person character blueprint movement input code however the camera is not moving with the mouse
thats for movement WASD
and not the camera
to move the camera you need to add mouse axis inputs and use add controller yaw/pitch input. that should be inside the example template so take a closer look again
@marsh meadow That's about right. If you want some extra tips on that, I strongly advise making some simple wrapper functions for your common Get nodes. Since you usually extend the defaults for PlayerController, GameMode, PlayerCharacter/Pawn, etc, it'll make your project life a lot easier if you create some simple functions in a library that'll get and cast your new class default. For example I have one that is for PlayerController.
It just saves a little space and cleans up blueprints. As for the HUD part, I do the same thing. On a Client there will only ever be one player controller(sans splitscreen), so you can always use "GetPlayerController 0" for the local player controller. On a listen server PlayerController 0 is always the server's player controller, and on a dedicated server it won't matter, so tldr, GetPlayerController 0 -> GetHUD will always return that machine's HUD reference, so you can do this.
Hello guys my ue4 engine keeps crashing when joining or creating sessions
@nocturne sundial Any Actor that is not currently Possessed by the PlayerController, or the PlayerController itself cannot handle input without having it enabled.
@pastel valley Any specific crash notes?
@maiden wadi aye did spawn and button input in controller and working nicely π
also had to use different node for screen shake to make it global/on camera/controller
works nicely now
It doesn't say which array. But somewhere you're trying to access index 0 from an empty array.
Should I change it to 1
@pastel valley No, cause then you'll be trying to get the second item from an empty array instead of the first one. If you disconnect this line here, does it still crash?
Let me try it
It is not crashing and also not creating a session
It is just searching and searching
I'd try maybe making that Array that's coming from the FindSession node a variable. Set it right after the FindSession node and use that array to check if the current session is valid and to use in the Join node later. If that still crashes, you might have an array somewhere else with an issue that's happening when the map you're loading to loads.
It crashed after adding a variable
This is a BP of a player where when the health = 0 the game pauses and adds a you Lose widget .
Can some one tell me why this doesn't work ? The game is supposed to be Paused after the 0.2 Delay. but nothing pauses.
I remove the Delay Node and It works perfectly . The game pauses
@wind kernel is that chain in a function or event?
@maiden wadi Many thanks for the MEGA tips. I'll put to good use.
@wind kernel is that chain in a function or event?
@faint pasture event
@wind kernel That's weird. Try setting the game speed to zero instead of setting pause, and see if that works with the delay.
Question: I have a character, he has a face, on his face I have mat channels for eyes and mouth. How should I go about animating eye blinks and mouth syncing? Flipbooks? How can I control the flipbooks or mat instances properly or on the fly. Just use a bunch of level sequences? Think Wind Waker for Links facial expression changes
Hi guys. I'm trying to get access to the values displayed on the showdebug VEHICLE debug screen
particularly the slip values
now as far as I can tell, they arent accessible from BP, only C++
so am I better off trying to figure out how to duplicate the math in BP or write a C++ plugin that exposes the values in BP
Does anyone know if a static mesh component set to none cause any overhead in a blueprint?
To clarify, if I had 20 static mesh components but they were all set to none does it incur any render cost?
i need to know if this is correct because I'm not fully understanding how the select node works with classes. I want to see if this is set up is correct for this Nella Pawn.
its to keep her party stats on the screen when switching to another party member
lol just discovered Thumbnail Edit Mode. Where have you been my whole life?
I want to scan for the closest enemy directly in front of where the player is looking (and then display name and distance on the HUD).
Option 1: Every 0.5 seconds, send a sweep of line traces and then calculate distance between actor and each enemy and return the closest enemy. (Screenshot shown)
Option 2: Attach some sort of triangle shape in front of the player. If any enemies enter in the shape, then add it to a list. If they exit the shape, remove it from the list. Every 0.5 seconds, calculate the distance of each enemy on the list and return the closest enemy.
Which option do you guys think is better?
@pale blade if you use Unreal Engine 4 Documentation > Engine Features > Physics Simulation > Traces with Raycasts > Traces How to Guides > Using a Multi Line Trace (Raycast) by Object multi line trace for objects you can get an array of all enemies that hit the trace, then you can use Get Distance To on each one in the array and choose the closest object.
as far as timing, .5 seconds is good. this is what i have in my game
So you'd recommend the tracing method, rather than overlapping trigger method?
yep except sweeping 5000 traces is a bad idea
so use multi line trace instead
it automatically returns an array of hit objects
From my understanding, isn't Multi Line Trace only one line?
it automatically returns an array of hit objects in the trace..
you ever played diablo ?
you know how the armor piercing arrows penetrate multiple enemies? it's like that
lol
multi trace penetrates multiple targets
with ONE trace
I need it to fan out like in a triangle, for example the screenshot shown
I'll need multiple lines at multiple angles
For example, a flying enemy that's slightly above ground level
that's the typical way
your use case of having a fan out triangle of endpoints is not typical
Hm, let me draw out a diagram to better explain:
if you do multi sphere trace for objects you can make the detection more wide though
why does it have to be a cone?
of vision?
Option 2: Attach some sort of triangle shape in front of the player. If any enemies enter in the shape, then add it to a list. If they exit the shape, remove it from the list. Every 0.5 seconds, calculate the distance of each enemy on the list and return the closest enemy.
by the way, if you use a overlapping shape and if the enemies enter into it, you have to make sure the enemy is actually visible, right?
if you have to use a cone why not just do this? use your option 2, and then after you calculate closest enemy, have one line trace going at the enemy. if the line trace hits the enemy (it's visible) mark it as detected?
I'd say the purple is what is realistically what the character can see
Interesting, I hadn't thought about whether they can be visible or not, but yeah I can do that
I was just wondering which is a better option. I actually have option 1 working right now
look at the stat game
the tick on the line traces is probably high
if you want your game to be optimized you're better off either doing multi sphere trace for objects, or making a proper cone in blender or getting a good native cone in unreal and doing your overlap method, and then doing a trace to the enemy to see if it's visible. that takes less cpu cycles.
up to you though.
Okay, so you'd recommend option 2 with the overlapping, rather than option 1 which continuously draws line trace sweeps
I'm not sure spheres are better than lines though for tracing
I just want directly in front of the player, so lines seem better
sphere trace for object, if you set the start and end point correctly, can accomplish somethign similar
Oh, I saw in a tutorial, you mean like having a large sphere with like 0.1 movement
see how the beginning of the sphere has a slight curve?
that curve can be a emulated FOV
it wont be a perfect cone
but it's easier than making an actual cone lol
Yes
you could do a large sphere, sure. just turn set draw debug type appropriately to see a test draw like you see in the red / green lines in the example image i sent
to see the trace
make sure if it's too large it doesn't defeat the purpose of the endpoint. the sphere should not be larger than the view bounds lol
So like this using Multi sphere trace by channel / object
I never cared much for OnOverlap reliance to add things to an Array. Always did a SphereOverlapActors at the player's location, and used it's filters for the classes I needed. Then you can filter the actors that are in whatever degree of cone in front of the player that you want.
@pale blade i actually honestly use perception now. you can use EQS or other ways too
hey someone knows this problem: TravelFailure: PendingNetGameCreateFailure, Reason for Failure: 'Error creating network driver.'. Shutting down PIE.
@maiden wadi Yeah I was thinking how reliable is OnOverlapExit, in case an actor exits but didn't get caught by the exit event somehow or something
@trim matrix I want to be able to see flying enemies too
For example:
then make a big cone in blender, do your on overlap thing, and have a linetrace after its in the cone to see if it's visible.
set the linetrace end point in X Y Z to be the world location of the closest overlapped actor.
noo u erased my Xs
lol
hello
I got a crashed blueprint (cant open the project if it is there, trying to add it after opening the project will show it, but trying to open the bp will crash again). Any tips on how to fix that ?
@pale blade Another approach would be not to have overlaps volumes, but direct line traces from the enemies to the player eye : you dont do random traces in a large area hoping to hit an enemy, but you trace directly to potential targets
@maiden wadi I'll try out your blueprint and see
@sick galleon Something like GetAllActorsOfClasses, right? I read that is an expensive operation though
@pale blade you dont have to call GetAllActorsOfClasses all the time, you can do it once at startup, put that in an array, and only update the array when actors are added or removed
That'd be a lot more annoying than just getting the actors that should currently be in view range. Specially if you spawn anything, that array would need updated and kept current just like a mesh overlap array.
Hmm, that's true.. having to worry about that array
@maiden wadi I tried out your blueprint. From my understanding, it gets all the actors within a sphere centered around the actor. Then filters it based on a cone in the player's direction
It is what I want
But do you think it's too expensive to call every ~0.5 seconds?
I use the same style of math in a custom detection component about ten times a second. I doubt it'll even register. Vector math is extremely cheap.
Performance profiling is definitely something I gotta look into
But thanks everyone
guys, i have a UFUNCTION(BlueprintCallable) but the execution node doesnt appear in blueprints, any idea why?
@pale blade It's worth noting that I just did a statraw check. Without the drawdebug stuff and running that SphereOverlap and filter function, I lose 2fps. That's on tick, and on a for loop 6 times each tick at 70 calls per second.
@brazen elm In a Library, or in an object?
You're dragging off of a pointer to that class type to try and see the function, or trying to use it in a blueprint that inherits from that object class?
ive done a sphere overlap actors (in blueprint) then i want each of the resulting actors in the result array, to call its own function in cpp
Have you done a for each loop and then used the array element to cast to your CPP object class? You should see it if you cast the actor return to your CPP Class.
yeah done that
relunctantly ahah normally wrecks performance. even so, still not working
That's odd. A few casts shouldn't affect performance much.
Does this look right to you guys?
Trying to get the widget now to update when switching to the pawn.
@shut hinge You're setting the leveling component pointer variable to a nullref and then trying to tell that pointer to tell empty space to change variables when nothing exists there.
ok I'll add the variables into the set nodes. maybe that's what I forgot.
@shut hinge I meant the pointer itself. You can't set the variables of a component that doesn't exist.
Well, the component still exists, but your variable pointing to it is empty.
can you show me the correction i need to make because trying to update it by the construction script is all new to me.
In the first image after the switch. The first Set for the LevelingComponent.
i'm adding the level values to the set nodes now from the level component which they are stored in.
Right, but you're telling that pointer to point to nothing before you do that. So it doesn't know what leveling component you want to change variables on. If you don't mean to erase the pointer and only wanted to use the pointer to set the variables, use the Get node instead of the Set node.
get mode? why an array? you can't plug the select straight into the actor node?
okay, it now lets me plug the get array into a make array and straight into the select node.
in the second picture with the 3 select node I added a make array and a get node to it
No, I don't mean for you to use Arrays.
that's how I understood it
that's why I need to see the correct layout to know where I went wrong.
Use the Get for that variable in the first picture before you set all of those variables instead of the Set.
then if we use that, then what use is the 3 select node?
you want me to set it there?
Do you see that blue Set Leveling Component node?
yes i dragged the set nodes out of that
You need to use the Get Leveling Component for that. Because right now you're telling it to set your leveling component pointer to nothing.
i did use the get levelling component to drag out the variables to put into the set nodes. Hold on I do the screenshot update.
i also plugged into the Level Component Ref into the set levelling component node. (pic not updated yet to show that)
Now what's this about null set for the actor set node in the 1st screenshot? I thought the select node was filling it.
or is it just the second screenshot the null issue was in?
change set Leveling Component to get Leveling Component..
That is supposed to solve the problem you've had with widgets not showing their associated character stats?
this is for one pawn Nella. But the pawn is not updating the level counter even though all the progress bars fill up, but the level counter stays always at 1 when I add in XP (all party members progress bars then all fill up with xp) . But for the commander he fills up but he levels up. the rest of the party don't level up.. But I did stick all the pawn values now into the one levelling component so they all are wearing instances of the component. So now all the XP bars increase up for all party members when adding xp to any party member..
So its not quite yet working right. As they don't level up individually when adding in xp.
lol
yeo, trying to get the widgets now to update
I'm in the beginning of making a 'construction/building' mechanic in an FPS game (basically point at the ground, a highlighted object appears at cursor, if green you can build it there, if red you can't), and i've hit a snag
this is my first prototype
okay ill try to help you and tozan
but it yields this error
(ignore the tick)
'Check Look at Test' is just a line trace outputting a transform on hit location
put a is valid check for destory
since the code currently wants to destroy, even though it's not built anything
or put the destroy after one/both of the builds
oh duh
i'm blind. thanks
while I have your attn, I can't seem to get a clean upvector from the trace's hit location
my very basic attempt
well, from which point of view do you want the up to be?
like always world up?
or just up relative from the hit object?
good question, up from the normal
so always perpendicular to the surface
this is what happens with the current setup
you should be able to multiple(vector x float) the hit normal by the offset you want, like 100 units, then add that to the hit location
you might have to inverse the hit normal
so multiple by -100 or something
the issue with party levelling component.
holy programmer art
mines not a multiplayer game. its a single player party system.
hmm okay
so not all associated party levelling stats will show up but the progress XP bars stats all show up.
The first thing to check is - did you fix the "get player character" in the binding?
since I put all party members level values in the same component, now all the progress bars display up on the screen. but not the party widgets stats yet.
the only thing I fixed up with the help of another guy was removing all the duplicates copies of the levelling component so all party members are using just the one levelling component now. so if I add xp to any member they all get the xp, that's the problem remaining and also the bindings not updating. But I did use a toggle with a validated get when switching into different pawns.
so if the party widget don't exist then it creates it, if it exists, it removes it from the parent. Using a flip flop node to to turn each party members widget on and off on the screen using validated get. Would've been useful to clear up clutter on the screen when needing to remove the party stats if you don't want all your party member stats to be showing. so I thought at the time.
howver for one party member Storm, his widget binding is not display up his level counter at all just no text showing and this has me a bit puzzled.....
but for the rest they show their the level counter when i switch to them except storm.
but all their level counters will not update so they stay stuck on always 1. Only the commander updates his counter at level up. Can't figure out why the rest won't update theirs since they are using the same component now.
man, there is so much going on I don't know where to even start. So is the xp in this leveling component a static variable?
a static vairable, what's that? never heard of such a thing.
the party members all have their levelling values all stored in the levelling component itself.
I could be using the wrong terminology, but you say that when one characters gets xp, they all get it. A static variable would be shared between instances, but that requires cpp. Then again, you didn't make this yourself did you?
So if I add xp to the commander then switch off into another pawn, his level value then starts resetting to different level numbers.. which is really weird.... he seens to be storing different level numbers for himself when I switch party members. very strange...
No this was Layley's levellig component.
well, it sounds like the different values when switching is still caused by the "get player character" logic in the binding. Each widget requests the player character, which returns the currently possessed character. Then I want to remember that you casted to the specific character class, which means that only 1 widget will actually update its value.
You need to post a screenshot of that, no point in me guessing here.
here's the values i stored in the levelling component I will hold on
the values for all the party members
Oh, so it's actually just 1 component instance? I thought that each character had a leveling component.
Yes I did have a levelling component for each individual character before (I had multiple duplicates copies of it for each party member and stuck their value in that for each one), but now they are all using the same levelling component with all their values in the same component..
Yep I used get player character for each widget binding because that's all I knew how to do in the engine.... I didn't know how to do the bindings to work for all of the characters.
So this Skynar class holds the leveling component that all the characters share?
No Ch_human is the main class that holds the levelling component. and I added the levelling into the other classes of the party members through add component in their BP's.
sorry, the component is a attachment to your characters.
so you attach the component to CH_Human and the rest of your party member classes.
Wait, so each character has a leveling component, and it has all those variables for each member?
Each character has the same levelling component instance that has all the vairables for each party member.
they all have copies of the component (not duplicate copies of it as in making duplicate copies), but copies of the instances of the same one level component.
Hi, I have a lot of blocking volumes in my game, and they work well in the editor, but when i package the game or play it as a standalone game, the blocking volumes do not do any blocking. Does anyone know why this is happening?
so there's not 10 levelling components anymore in the browser just one, and all ten party members are wearing that one component.
Oh. Hmm well I guess that still makes sense as to why the "get player character" logic only displays the active character.
how do I get around this get player character block.
Instead of using "Get player character ", you need to pass the associated character to the proper widget.
because its blocking the widgets when I switch pawns.
how do you do that?
is get owning pawn? no would only activate one widget. I don't know what the node is
because i did cast to the different party members, but used get player character for their casts.
so if its not get player character, what is the node I need to put in?
There's no single node. One way you can pass the character to the widget when it is constructed. make a variable of the proper class and check instance editable and expose on spawn.
this is why i tried to try to update the pawn values in the widget. (and this is in the pawn, not the widget binding)
the widgets are created in the player controller
but i need to know what class variable to expose on the widget because I don't know, is it character, or pawn?
then we have to change it to a character class reference for the widget?
that purple class node i mean
If you use character and then cast in the binding to the proper type or use the proper class in the first place, either works.
Hey how do you get node wires to be straight angled like this?
Is it an engine setting or a plugin? All my wires look like π
Think it's a plugin
@shut hinge it's going to create a lot of problems having one static instance of a levelling component. Values will be shared between your pawns and you might have execution problems by not be able to run things in parallel (two pawns might try to access the same instance at the same time) which is undefined.
I would recommend attaching a levelling component to each pawn as it's own instance. No need to have all those variables then aswell. The variables would be independent to each pawn and stored and accessed via the pawn->levelling component.
Fundamentally this is a structure problem. Probably solvable, but a huge headache unnecessarily
Its super clean looking compared to native node wires.
I think it might be this: https://www.unrealengine.com/marketplace/en-US/product/electronic-nodes
I might have to pick this up.
@shut hinge It should just be to add the character var to each widget, expose it and connect to it with the appropriate character. probably need to refresh the Create Widget nodes for the pin to show up.
how I had it before I had made copies of the levelling component and store each indvidual party members variables in each levelling component. That worked for single party mode to display their individual stats. BUT Only displays them for one pawn's widget at a time that way. It took two hours for me to decouple all the multiple copies of levelling components from them.
Now that I have got all the party members in the same levelling component, and no longer have copies of the component anymore now they all share the same values.
If I understand it correctly, each member does have its own level component. Just that the class then also have a collection of variables for each member.
each member has got the instance of the one levelling component the same levellng component that the commander is using which works for him, it don't work for the others yet.
which that component is inherited from the parent CH_Human who is wearing it.
so maybe I put the component in the wrong BP maybe it should only go in the Player BP and not the parent BP.
So confusing this engine.
The documentation on how to structure your project, including how the engine structures itself, is very poor. It's a shame
They are written from a perspective seen through the eyes only of advanced programmers.
IMO, the biggest thing it misses, is a tree table of the classes. Instead of the text uobject, aactor, acharacter etc
they are not really docs written up for those who don't have any programming technical background knowledge. You have to have some programming technical knowledge in order to understand the blueprint language used in them. Its a different language to normal laymen language which I'm so used to. That's why I struggle to understand some of these concepts even when reading the docs. Some people struggle and just don't get it, and some get it or it takes others more time. ... It dosen't explain everything all properly in their docs, I find their docs are suited for professionals who already have the knowledge and lack detail in certain things that should be more clearly explained...
Those are docs in other words are geared towards real game developers, not people in the public street.
they are targeted towards those who work in the game industry who know all those things. This is why they give simple surface expalnations without giving you all the depth and details you need to know.
Just gotta get stuck in and figure it out after trial and error and hope you gain some understanding from the hardship. Frustrating as it is
you're saying half of the library is missing from the docs, no wonder people struggle if there's things missing. I been at it for 2 years now with the bread crumbs in those docs.
Guys, good night! I have a problem, how can I disable the hand ik through a boolean and then activate it again?
In the anim blueprint
isn't that done with blend by bool or blend layer by bone?
I've tried and it didn't work
arrgh this engine is a pain. What's worse, not finding what you need, or Shaders are recompiling.
this very much doesn't sound like it's a problem with the engine
figuring out how to manage and share data is essentially the history of programming
you should be able to access the anim bp with the anim instance to get the values and change them..
@astral granite put the nodes that do the IK behind a branch that you only enter if the bool is set
But in anim BP does not have a branch in Animgraph
click in the anim event graph, you can put nodes and branches in there.
you can't put the normal blueprintnodes in the animation graph, the aim graph has its own special set of nodes, You can only put them in the event graph. Just as bad as the widgets BP's, you can't access all the blueprint nodes for those, the widgets are limited in the nodes that they list.... probably for good reason to stop other issues from occuring or conflicts maybe why their node list is limited..
Hello everyone! Before I go to far down the rabbithole, I wanted to know if it possible to dynamically spawn components and then save them as the class/blueprint defaults.
The use case:
Ive an idea to create a utility widget. Hit a button to get all the actors in the level. That information is stored somewhere and then used to create a new BP, with those actors as its components. Essentially making a prefab for later.
In the world space, a level designer may build a small room or section with a combination of blueprints and static meshes. The could of course just use "Convert Selected Components to BP," but that comes with a few headaches I want to see if I can avoid.
sounds interesting
blend poses by bool should have worked so I'm curious what meant when you said it didn't
i'm starting to use custom events as a way to organize my BP's. For example I took the output of a line trace hit to call an event that would enable a different set of actions, instead of just directly hooking it all up together. I figure it will give me more flexibility down the line if I want the event to trigger different things later on. Is this a good practice? Does having a lot of custom events cost any significant overhead?
"I would recommend attaching a levelling component to each pawn as it's own instance. No need to have all those variables then aswell. The variables would be independent to each pawn and stored and accessed via the pawn->levelling component.
Fundamentally this is a structure problem. Probably solvable, but a huge headache unnecessarily"
Is Opollard still there? Ch-Human (The parent) has got the levelling component so all the other pawns are now inheriting it from CH_Human. But it sounds like you're saying just get rid of all of my 90 or so party member variables for each party member and just leave just the 5 default values that are in the one component.
@astral granite
@maiden wadi Is it OK to get these references in "Event On Initialized" of your other Widgets?
@shut hinge i was suggesting that instead of having a level component with variables like storm.currentlevel and loana.currentlevel ... all in the same component, you could try attaching a level component to each pawn. Therefore you would have a level component with 5-6 variables per pawn. Instead of one component with 90. Basically breaking it down into modules
that's how I had it before and when I did it that way split the party members up into their own components, the party members would only activate their stats one at a time when switching their pawns.
that's why I had ten party members with ten level components with each party members variables stored in each one of the components (5-6 variables per party member).. So Skynar had his own component, so did Nella and the all the others, and that woked perfectly for just one pawn at a time to show their widgets. I didn't know when switching pawns because of the limits of player character it would turn off the other party widgets activating only one at a time..
@Adriel#5737 guy it has started working
I had to play the game with an internet connection
That's the best way @shut hinge in my opinion. Can you describe the switching issue a bit more? What's the objective?
I was trying to get the party widgets to stay up on the screen when switching over into different party members. or when you turn on their widgets, because I had used validated get for creating and removing widgets from the screen, that created a toggle effect to allow you to turn on or off all the widgets . I found that useful until I started try to get more than one party members to show all their stats.
But as you said, they all using the same values in the progress XP bars when sticking all their values into the same one component, I get weird results. they can't display all their level counters up on screen because of that player char limit. Validated get does allow the widgets to display up on the screen but their level counters are not all active.
My packaged build is not calling one specific event and I have no idea why. Here, I have bound to an event Enemy Entered Awareness, and expect this to be called. However it is not called.
excuse all the debug prints
[2020.08.07-23.43.41:075][372]LogBlueprintUserMessages: [Command] spotted BP_OP_Unit_Specops3_1
[2020.08.07-23.43.41:075][372]LogBlueprintUserMessages: [Command] post event ```
I also made 100% sure this event is bound
[2020.08.07-23.43.20:059][562]LogBlueprintUserMessages: [BP_OP_AI_Commander_C_2147482113] AI post bind
This is only happening in the packaged build
i'm starting to use custom events as a way to organize my BP's. For example I took the output of a line trace hit to call an event that would enable a different set of actions, instead of just directly hooking it all up together. I figure it will give me more flexibility down the line if I want the event to trigger different things later on. Is this a good practice? Does having a lot of custom events cost any significant overhead?
@simple lantern bumping this bad boy of a q
hey, quick 30 second question, is there a way to do a temporary event tick?
like, i want something to work akin to an event tick for like, 0.5 seconds, but disable after that, any way to do such a thing?
check the time then turn off the tick
ty, i'll look into those solutions
@minor karma uncheck startwithtickenabled.
Then setactortickenabled = true;
Run timer to event/function.
Then setactortickenabled = false;
You can even change how often your actor ticks during that time
@brazen elm that sounds great ty, tho tbh, in this case, i think i timeline would be better lol
but thanks for that info, i didn't know you could do that
π
hello how can i cast to landscape xd
ugh, this problem only happens in packaged game, why is this
standalone player doesn't have this problem
what can cause packaged game to be different?
I'm getting a Shrodinger's boolean situation
a non pure function returns a boolean, I do a branch on this boolean, and call a function
in PIE, everything is normal, the check returns True, function gets called
in packaged game, the check returns True, function is never called
doesn't matter what I call, if I check for the boolean, it's True or False, the program will not continue past that line after checking
Is your branch a development only node?
Anyone familiar with Veh bp?
@brazen elm how do I know this?
it's just an if branch, didn't know it has development
I'm just for kicks trying to make a single wheel spin and nadda - i think i did things right.. got a 2 bone rig, one for the body, one for the wheel. the body has a phys capsule the wheel doesnt.. i start it up a so i can see the wheel which is defined in the bp and animation and such and i see it there
but the set input throttle and steering doesnt do anything.
Some functions, such as print string, can be tagged as development only. They normally say in the bottom of the node in blueprint, can you screenshot the graph?
what alternatives do i have to an any key for a widget
is their a node between a true and a target?
just "branch" does not have development flag
@pulsar moss and you're getting the message 'enemy entered awareness' when you PIE? So you know the execution is working correctly, yet the transition to contact isn't working?
the condition going into the branch will be true
eg, I can check EnteredAwareness, or New Param > 0
and "enemy entered awareness" prints in PIE
does not print in packaged game
of course it won't print in the packaged game
Hmm interesting. I can only recommend removing the print string, connecting the gap together. Edit->RefreshAllNodes.
Try re-packaging in a different mode, you can normally choose your type of package
ok I'll try those, thanks
Is that transition function a cpp function?
no, this is a bp project
Ah kk sorry I couldn't be more concrete with a solution , good luck
no worries thanks for trying π
I'm willing to wager I go to sleep, tomorrow morning the problem will fix itself as it normally does, or I figure it out in ten minutes after breakfast π
still figuring out what various things cost in BP- I have a line trace that returns a hit and spawns an 'ghost' actor at the cursor. On Left Mouse Button, that actor stays there fixed at that location. just a simple point and click building mechanic. In order to allow the Left Mouse Button, I have the option of checking whether or not the 'ghost' object is valid, or more simply if the the line trace has returned a hit. Both would accomplish the same thing, but I feel like one might be better or cheaper than the other. Any tips?
basically, which one of these is cheaper
Ok I've exposed the Char Class now on the widget. If this is right then that takes care of the player controller, now what about the Cast node in the actual widget binding ? with the get player character in it. Do I just replace that with the character of the player?
based on the instructions given me, I don't know if this is correct because I'm now getting a casting error showing up along with a null access error now that I'm no longer using the get player character anymore.
i need some help, I don't know how to reference the cast to the party character variable without getting the null access error.
where does your player controller ref come from?
at the moment i created the variable in the pawn's own widget I'm trying to cast to because I don't know how to reference it from the player controller. If I have to set it from the player controller or not.
in the last screenshot you sent, get rid of the cast node, you can plug the Skynar Char ref straight into the Levelling Component thing
show me in the screenshot don't tell me by text or I will been going through trial and error a dozen times before I get it right.
becaues its like trying to fit something into a place where I can't see and only guessing
look at this screenshot:
https://cdn.discordapp.com/attachments/221798862938046464/741464763250245762/2.png
delete the big blue node that says "Cast to Skynar_CHarChild"
and then plug the blue line that comes out of "My Player Control Ref -> Skynar Char" into the "Levelling Component" node
if I gt rid of the cast node, then I can't reference the party character as its got to plug in somewhere.
this is the binding of the widget.
the node that says "Target Skynar Char" is the reference
you don't need the cast node
the cast node is redundant
alright i will get rid of the cast node.
hi, one more question because i'm a bit stoop. if i have 2 rot values, how would i be able to transition between one to the other? i'm using a timeline for a float going from 1 to 0, but i sorta hit a wall here. if anyone could help out that'd be great thanks!
switching between Character Rot and the one that comes out of the math function?
a switch might work there
@minor karma what are the conditions for which rotator should be used?
okay, so, i'll explain real q, cause i think that'll make my point clearer
this is for a walljump
the bottom rot, is the angle off the wall
so, after a walljump, it'll snap to the reflection angle
but, if you are holding a movement control, it will only snap for one frame
so, over a time range, i want it to go from not being able to rot (locked to the reflection angle)
to transitioning smoothly to the standard movement rotation thing
if you follow
ah yes, that makes more sense to me now
have you tried just a simple if statement that checks if the player is holding any movement keys?
yes, but, the issue with that is: it won't update until a change, which basically eliminates the smooth transition
hmmm I'm gonna need to think about this for a bit
np
ok here's the change I made
that looks correct @shut hinge
to explain what i was thinking, you'd simply use a 1 to 0 or 0 to 1 timeline, then using math, that infulences one effecting the other
i just need to math it somehow
actually, i think i have a way
one sec
i'm thinking somethign like this
i just need to get it to click somehow
Hey, so I am trying to slice every procedural mesh that is to the left and right to the player lining up with the player's left and right as well. Idk if that makes sense. @ me if someone has any idea.
ok lemme make sure I'm still understanding:
if the player is holding a movement key, then after the wall jump they'll snap perpendicular to the wall for one frame, and then transition into movement
if the player is just wall jumping, they'll snap to the wall and that's that
is that right?
@earnest prism like in VR with beat saber?
Yeh I guess.
but not in VR?
Yeh
I think I understand
@earnest prism I'd make thin collision boxes that extend out of the character to the left and right, and every time they collide with a sliceable object, call the slice function and that should work
nah, so like, to explain better, i want the character to snap to a specific rot, but, over time, it'll be less strict until you have full rot control back
it's purely for animation/cosmetic purposes if that matters
have you tried the interp nodes?
I need it to not slice until the player hits a button. So would it still work that way?
@minor karma try the Rinterp node
okey, i was googling it lol
yep, so what you would do is when the player presses a button, you'd test to see if the slicers are touching and object that can be sliced, and if so, call the slice function
also lol sorry
okay, this is close, but, i want it to fade from one to another if that makes sence
I think that makes sense. I'll try it out. Thanks
so this is more or less a quick switch
here's a way to think of it
think of how when a character pushes a sprint button, they don't immediately in some games
ah yeah
they're holding it, but it'll slowly transition from one speed to another
i want that, but with rot
the math will be something like this, but i'm fucking up somewhere
well Rinterp should take care of that, unless I'm forgetting it doesn't have a time input
oh
like, there's no way for me to fade
so, i'm more or less doing what i'm already doing lol
k
well shit
awesome
not 100%, i need to tweak hella values lol
but, it's going smooth enough
if it flops, i'll be back
lol sounds good
i'll hopefully remember to let oyu know if it works lol
okay, i dicked around with the numbers
it seems to just lock it to said rot, until said timer is up
i can't rly seem to get it to work
imma read the manual for it, but i still don't think they're reading it
hmmm that's odd
@opal pendant It does seem to work. But how do I make the slice be aligned to the players rotation? I don't quite fully understand how to input the right 'Plane Normal' to make that happen.
okay, so it seems, no matter what i do with the numbers
it is locked
so unless the time metrics are in frames/ticks, then it seems to be nothign
is the slicer a child component of the player's body?
It is yes
also I got nothin @minor karma , sorry
I've only used it once or twice so Idk why it isn't working for you
yeh, it's alright, no matter what i do with the floats, it's basically all the same
aka, always rotates and starts rotating at the same time
@earnest prism I believe the plane normal should be the face of the plane that is facing the same direction as the player, so forward
And, because my brain is so slow right now, how do I get that information into the slice function?
Wait, can I use a "get forward vector"?
exactly