#blueprint
1 messages · Page 227 of 1
Yeah
Each 'depth' of the gameplaytag
My.tag.is.deep
Becomes an array of 4 strings
So with a fixed way of serring up the tags, it simply just works, in regards to UI
Adding new ancestries just works
As long as you stick to your formatting
Create a bpfl function to do the ancestry formatting, and output them as very readable parameters
It does
sorry man, thank you for the suggestion, idk if it was a communication error or me just being stubborn and dumb
I mean, I didn't give the right node either
out of touch with string manipulation
I used it yesterday luckily
Squize saved the day, but yea don't see the use of enum at all in your context
you gave the right idea though, I sorted out the parse thing on my own but I didn't know what to do with the array
More fan of text formatting but cant always just use that
and then at the end of the day I can just convert string to text (in theory for localization, which is so far removed from where I'm at, but)
you wouldn't want to drop all this node, everytime you want to parse the gameplay tag, so like Squize suggest, create a blueprint function library
will end up with much neater and readable codes
Yeah, I'll make a bfl for TagToText or something
Quickly asking here : how do I attach a spawner to 2 different variables ?
Either name it per 'part' of the tag, or genericly for the entire thing, and output all values as separate ones
My gameplay tag structure, I'll only really ever need the last part of a given tag
I'm trying real hard to do "Category.Thing.Subthing.Sub-Sub-Thing" etc
But i might as well get all the values, for future proofing
This is to generic imo
As you lose touch with what exavtøy you're getting, except which 'section
Say you change your section in 3 weeks
You decide prefixing them with Mamal. Made semsd
I'm not 100% sure how to be more specific - I considered that, but what if I have longer tags or whatever
And now you gotta run around in every bp that uses this. And update the section it uses
I do need to check against the size of the array to avoid accidentally getting a non existant index
Instead of just going into your bpfl to fix the section id
Yes, ofcourse,
"IsValidIndex"
Add a bool for success
The entire point, imo, is to reduce the places you gotta fix it to as few as possible
Hopefully just 1
given that I don't know how my tags will be structured, how could I make it more specific?
Just pick one now, and update it ( the bpfl function) whenever it changes
Just have the return node return every section?
(I could make an enum called tagsections and have one function with a dropdown)
that was a joke
Instead of being specific to the type of tag (GetRaceFromTag) Couldn't I just make a bunch of functions called GetFirstSectionFromTag, GetSecondSectionFromTag
nevermind I'm sure I could, off to work
GetFromTag("section")
Any idea how to make the same vfx spawn from 2 different controllers ?
You could indeed.
be specific with those names. they are for readability. and sanity
"what was the 4th section again?..."
I mean, I'm calling the tag to reference and break apart, I'll see it
if you have a literal on the spot, yes. if you pass it in, you don't see it
Is there a way around this specificity for the fact that each category may have a different tag structure tho? Like, for the races, it's race.nameofrace.nameofsubrace, but weapons may have weapon.ranged.typeofweapon.nameofweapon
Weapons would have its own
I'd have a bfl for each category at that rate (I'm assuming I'm just dumb and wrong)
oh I guess I'm not dumb and wrong
You can internally use whatever function you want
Like the first you suggested with just a section index
You can use that internally
but for ease of use, it would be best to be as specific as possible
And just hardcode what each wrapper use
how come doing it correctly is so much more work 🥲
is the return node on false just best practice
or did you do it for a specific reason
3
if you dont return with explicit values,
they can be retained from last call
which is terrible to debug 😄
I just did this, and I'll do one for each tag "category"
I can reuse TagTitle
as an example
I'll do the work now so in 3 months when I'm trying to update something, I'm not wondering wtf section was what
Its very small work for the QoL it brings
Now
Id mark the internal as private access
To ensure its not used elsewhere
Just mark each function in the library private?
Only the one that shouldnt be used elsewhere
In my case it would be the GetTagSectionAsString one
Ohhhh, I didn't use the generic function
You dont have to
I probably ought to convert string to text in those functions too, seeing as how they're functionally just for UI display
\Attributes: {Attributes}, Entity: {Entity}
why are the braces escaped?
oh wtf are you even trying to do xD
well, that's not even format to begin with, but make literal text
what is the goal with parameters within parameters?
wouldn't you rather want to escape the inner parameters, if any
i wouldn't use format text to make json....
use a json library?!
Idk like to know this normal formatting too, because it's not in std::format, c#'s String.Format, token replacement, etc.
and this format text hackery isn't?
this is a bit cumbersome to use, but it works at least
idk, if there's a better, more intuitive one
jfc?
Jesus fried chicken fucking christ
ofc it is
until your user enters {FuParser}
and your construct of entangled format text nodes claps it's cheeks
make a struct
use struct to json helper
profit
that's like 3 lines of C++
how do i move the points in a spline? i cant figure out how to get their transforms or whatever im supposed to do. i just want to snap the end of it to a positon
So I am not sure if this is corruption or what, but I have a BP actor that contains a bunch of stuff, works fine. But the name is wrong. I named it Land initially and then later renamed the BP to terrain. The BP in the picture still loads and works, but if I remove it or open a new level and drag in a new instance, the name of the BP is Terrain and when I launch the game everything locks up. Any idea what this is?
I have already deleted Intermediate and Saved, didn't resolve anything
Again, as long as I do not replace this particlar instance of the BP, all is well, but I have to use this in other places so its breaking things when I try to launch
Currently running a validation
nvm figure it out
I have a little issue here : the line traced by the node is way too small, but attempts to make it longer (by adding a multiply to the forward vector) only render the debug stationnary. How do I give it a specific size while sticking to the direction of the mition controller (the variable linked here) ?
Multiply the output of forward vector node by like 500 and then plug that into the input of the add node
thanks for sharing
The multiply extends the length of the forward vector to whatever value you input
Currently, it's just spawning and stopping right at the beginning
The issue is, that doing so locks the debug in a singular direction. I did that one before and that's what happened.
multiply by a float
you are only multyplying one of the axis
so what do you expect to happend
yeah, I should have specified that
use a double-precision float
you can right click the input node to change it
It's working now, thanks !
if you wanna get really fancy, promote the bottom input node to a variable, make is visible on spawn, and you can edit it from the editor interface
but thats just me being extra
Sounds fancy indeed, but I shouldn't need that ^^
yeah, no, definitely not lol. 99.99% of the time, you set up a line trace and put the values in and never adjust them
I found it useful when testing out different ranges on my firearms
xD
#blueprint message this isn't?
well, you came here with issues in that
it's probably not made to handle nested argument strings
and other than the json methods, it wasn't intended to generate json...
What's wrong with the struct to json helpers?
Hi all
Wondering if anyone could help me out? I'm trying to make it so when dialogue has ended (from a behaviour tree) something happens such as a work vanishes etc
I've already got the dialogue system working, I just can't seem to make things happen in the world based on the dialogue.
I recommend checking out Flowgraph. It makes things like this a lot easier.
I've heard about that, is that just for a dialogue system? If so, i've already got my dialogue system working
I can do dialog. But Flowgraph is just simply put, a system to control gameplay flow.
Is it a free plugin?
I'm assuming so
It is. There's a discord for it as well. https://github.com/MothCocoon/FlowGraph
Thank you my guy, I'll check it out now
Hey guys, hoping someone smarter than me might be able to help with this vector math:
I have a vector variable which is acting as my custom gravity direction, I want to have my camera tilt to keep this direction as the percieved "down". The idea is to recreate the effect of Super Monkey Ball without actually rotating the whole stage. However, I'm struggling to figure out exactly how to translate this vector into the correct rotation for the camera. Any advice?
I've not used github before, how do I actually download it ?
Is BT based dialogue actually done by any studio? It seems like a giant mess to me
I saw a tutorial on it a while back and recreated it
Youtube tutorial are generally terrible as f
It's actually really simple and works well, so I thought until I'm trying to make the dialogue choices affect the world
How would one begin to learn it then ?
I'm still trying to wrap my head around a few things like, if you press choice A, the Ai runs off and does something and if you press choice B, the Ai does something else
You can learn from them, there are tutorials that serve better purpose, such as matthew videos because he goes over what node does.
Anything else like, how to make a game in 1 week or inventory and dialogue ones. You need to be prepare to unlearn them.
Right now, what sort of data represents a portion of dialogue in your system?
A better way to learn is to look at code done by actual devs.
Mostly the content examples
Understood
If I'm getting what you're asking, nothing
You don't have dialogue working?
Oh yeah I have it working, one sec i'll show you
(ignore the dialogue options, they're place holders I was messing around with)
Thats 1 npc's dialogue
Fully works
it asks you something and you can reply
So you're making an entire behavior tree per dialogue?
In that case this BT IS the dialogue data, just put the ThingToDo inside it
Imagine another 20 more dialogues tho
Yes technically, is there a better way of doing this ?
Feels like spaghetti he'll for me
Data table full of entries?
Do you imagine there being 100 lines of dialogue in this project or 10,000?
I have no clue how to use data tables, this just seemed like the easiest way to do it for me
Yeah it's simple for me
Using BTs is a visual way of seeing your dialogue
you can click on the nodes and add code into them
If you're going that route just add the ThingsToDoWhenDialogueHappens into the BT
it's not scalable but it'll work
I've tried
Let me recreate what I did and i'll send a screen shot
Basically, I was trying to make a wall be destroyed at the end of a dialogue option
1 sec
I'm assuming i'd put the nodes there?
My friend showed me what to do, i'll recreate it now
(it didn't work tho)
Do it before the finish execute?
put the thingtodo in the behavior tree the same as any other behavior
Sequence
Say"Fuck yo wall" Wait DestroyWall
You can't add things like that too it
Tried, it doesn't work either
yes you can
make a task
the task is to destroy a wall
or to call x on x
Do you mean here?
If you're sticking with "I'm gonna make a bespoke BT per NPC and put all their behaviour in it" then keep that energy going
I'm not that advanced with unreal I've only been using it properly for like 2 months, doing this was the easiest most visual way for me
So what would I use to make something happen ?
Ahhh I get you
Start with a move to to prove it out
then make your own task which might be destroy thing
but I'd go more general, assuming you can parametrize tasks, just have it call YourInterface on ActorInQuestion
instead of making a DestroyWall task, make a DoThing task and then you can reuse it for OpenDoor or HaltAndCatchFire or whatever
right click and search, same way you make a new anything
task is an asset
I'll note that down ty
Do I do it in the BT or in the actual object?
Because in the BT I can't make a new task, unless i'm doing it wrong
Theres a plugin i use for this stuff... that feels so much better ( to me, hate BT dialogue trees for some inherent reason 🤣)
Task is a think you make outside
What plugin ?
I'll sort it now
Dialogue nodes
I mean you gotta figure out how to make tasks and how BT work anyway
once you get it you'll understand why you'd want to make this more data driven
Yeah with what everyone is saying I think I'll just switch over to a plugin
The green Code button. Download Zip. Worth noting that I don't know if it requires a C++ project. I don't think so, but I've never had a BP only one.
Yeah seems more customizable
ty
Is the plugin you use free ?
Sort of ? The creator have gone to other avenues and havent clearfied the licence in use..
Forum post suggest one thing, code comment something else
So if you use it in your game they could sue ?
Hello there! I’ve been working for a few months on a new game project for which our team had to develop or use a dialogue system. Turns out no solution satisfied us on the marketplace or elsewhere, thus here I am, making my own! **User experience **and game-agnosticism are very important notions to me, so I designed this pure game-logic syste...
Im not a lawyer but i would think so?
I wanted to reach out to him in private but he got a very private public account
Got you, i'm probs gunna go with flow graph
Makes sense
Its also quite aged at this point. Im not sure how different a codebase must be for no longer being under the originsl licence...
yeah I noticed it's 2018
The game i'm making is really simple, it's just the dialogue affecting the gameplay is whats making this hard
I'm trying to with an undertale type dialogue if you've played that before, where based on what you do you get a different ending
@round geyser We have some dialog stuff planned as well, and it will largely be the same. But I already laid out our new game's tutorial system using Flowgraph. Which is very similar to a dialog system in that it throws a widget on screen, waits for the user to input, then goes on to the next task.
This might be an okay example. It starts the flowgraph. Waits 1 second. Then runs the ShowTutorialPopup until the user dismisses the widget that shows up. That node has data you can specify on it.
Basically binds to the widget being dismissed, requests the widget to display and when suer dismisses, that output pin is triggered, which then stars the 0.1 second timer.
You can branch with it as well and wait for multiple tasks to complete. This shows a tutorial, waits til it's dismissed. Then listens for the player to move their camera in all four directions. The AND only finishes once they've done that.
I'd love to know what game you're making and that seems way more simple and easier to understand
This seems pretty usefulb
That tutorial stuff is from https://store.steampowered.com/app/2805850/Atre_Dominance_Wars/
Far beyond what it explains by itself lol
I'm asumming you're using flowgraph?
Also is that your game ?
Correct. What I just showed above is Flowgraph
We're also planning to create a mission/quest system out of it, and possible campaign dialog stuff.
It is an amazing tool as far as creating game flow.
I'm getting this error when trying to load up unreal with the plugin
Studio's game that I'm working on, yes.
Wow nice! Thats impressive, looking at the game you clearly have experience. I respect that
I used to love playing games like that
Does having a colon in your game title hurt SEO?
🤷♂️
I wouldn't
I'm sorry with all the questions, but do you have any idea why this is showing when loading up unreal with the flow plugin?
gotta build it
You have a C++ project now
How do I do that haha ?
I don't know if you can do a pure BP project with it. I know some plugins allow that. A C++ project isn't hard though. It's mostly just installing VS and starting your editor from pressing F5 in VS.
I'd encourage asking in their Discord if there are ways to do BP only projects with it.
Okay thank you
Thanks for answering all my questions people, I appreciate it and i'm sure i'll be back 🤣
Any clues on this? I have the roll working but not the pitch. Guessing I need the right value for one of the first two vector inputs but not sure where to get it from
So i've asked in the flowgraph discord and apparently people are using the plugin in a BP only projects
Just knowing gravity isn't enough
Gravity defines your down
what defines your forward or right?
try lose the get right vector
that should preserve forward and allow right to "float" to be whatever it has to be to have forward be forward and gravity be down
if it doesn't work, use MakeRotationFromXZ
feed Camera.Forward to X and Gravity to Z
Hello! I want to make several different enemy models freeze in place and turn blue (like being shock frosted) after using an ice weapon. Is there an easy way to turn an enemy blue or add something to its mesh/texture (maybe a decal?) or do I have to build a separate material?
I'm pretty certain the typical approach is to build all this into your master material in some way
if you wanted something that has to be in the surface domain and not just a stencil or post process
Hmm, the thing is, I have several different enemy models with different materials and textures (some use several materials). So I do not have one master material or anything. I thought about maybe some way to add a large decal or is there a way to replace all materials of an enemy with a single material or the same material (maybe some transparent, refracting ice material) that I can apply to any enemy model?
if you want anything translucent/volumetric, you HAVE to implement it in the main material
there's no way to do that in postprocess or overlay
Just found out about Overlay, neat
What is that just a 2nd draw call you pay when that's set?
This may be my mistake. Try this.
- Delete the plugin from your project's Plugins folder
- Then go to https://github.com/MothCocoon/FlowGraph/releases and download the top one, "Flow v1.6 - UE 5.4". You're looking to download the Flow_v1.6_5.4.zip
- Unzip the Flow_v1.6_5.4 folder into your project's Plugins.
Material instances
Will that work on version 5.1 ?
In the long run you'll be better off just having a couple masters and many instances than many masters
Then you can put FrozenNess as a parameter in your master and anything will respond to setting that value
Oh, same steps, but scroll down the list to Flow v1.6 - UE 5.1 and download the zip there.
Or you can use overlays, might be simpler
@faint pasture Thank you. I am still on Unreal 4.27.2, but still.
Thank you, I'd install it here? C:\Program Files\Epic Games\UE_5.1\Engine\Plugins
No, to your Project
Hmm disconnecting the right vector throws everything off and gives me weird diagonal angles, and using MakeRotationFromXZ gives me the exact same roll-only result as before
That's to be expected, you're telling it to preserve your forward facing so the only option it has is to modify roll
HOW do you want it to work?
@round geyser EG My project is on a D Drive, in a folder named Projects. And the project folder is PluginTestProject. So D:\Projects\PluginTestingProject\Plugins
Try use Gravity as Up and Cross(Forward, Gravity) as Right. Swap the inputs to the cross product if it seems backwards
Ahhh thank you, i'm loading it up now with the plugin
Should be able to right click content browser and see if it worked immediately.
Nope it's not working. In the flow plugins folder this is all I have in unreal
And there is no flow section when right clicking
Can you show your windows explorer folder? Where you put it in the project?
yes 1 second bro
C:\Users\kaneb\OneDrive\Documents\Unreal Projects\Dreams\Content\Plugins
Put it in the plugins folder you've highlighted ?
Yeah. If the folder isn't there, just create it.
Should be Dreams/Plugins instead of Dreams/Content/Plugins. 😄 Yeah
My heads working a little slow today i'm too stressed 🤣
OMG it's working!!!
@maiden wadi Thank you so much!
Now you can be even more stressed learning it. 😄
Don't know what this guy from the flowgraph discord was trying to do lol
I won't let scope creep win put it that way
🤣
When you compile, it builds binary folders. But the plugin 'should' already have them and does if downloaded correctly. I guess the main page one doesn't. 🤷♂️
C++ stuff
If I wanted to get an actors location with a delay, how would I do that?
I want to get the location of an actor where they were 1 second ago, but I need the information instantly.
I cant simply ask for the location then wait a second so it is offset, I need the request to receive the old location immediately.
Possibly yeah
Save the location 1 second ago.
Seriously though, thank you for your help, like I said, I will be back with more questions im sure of it 🤣
How would I go about that? I tried saving it as a variable but it doesnt save cleanly. If the one second delay just started, it waits the whole second. Whereas if it is near the end, the position is very close to the actor rather than the right distance.
Still seems to do the same thing unfortunately. This is how it looks currently, what I want is for the camera pitch to reflect the forward/back gravity tilt in the same way the roll currently reflects the right/left tilt.
What is this for exactly?Because the usual case for this is like.. Saving an array of vectors every 0.1 or 0.05 seconds or so with timestamps. Then just picking the closest one.
It is for enemies targeting player position. I need them to essentially follow the player with a slight delay, so they would be moving where the player was rather than where they are.
@maiden wadi Sorry back again, are there any tutorials on the plugin ?
I'm not sure. I just kind of muddled my way through it. I think Mothdoctor did a youtube video on it somewhere though?
I've watched that video, i'll rewatch it again
Essentially, it is createing a component on an actor which houses your FlowAsset and playing it. Very similar in regards to an AI running a BehaviorTree.
You make a FlowAsset, you put a Flow component on an actor and run the FlowAsset.
You can make custom nodes to do things and trigger outputs that you can place in your FlowAssets.
Huh, I will have to look into FlowAssets then, as this is my first time encountering that term. Thanks for pointing me in the right direction
That was to TooMuch. For your issue it's hard to say. The array of locations thing still applies though. Simply start a timer for 0.1 seconds. Make it populate an array with the current location. If Array.Length > 10, remove index 0. When you want to get the location from 1 second ago, just grab the last index. There are some more elegant ways to code it, but this is a quick and dirty way to test it.
@pulsar geode Honestly though, this is a really rare case for targeting. Interpolation is much cheaper and might be easier.
As in simply interpolate current target position directly to the target. But since it's interpolated, it'll take time to reach it.
Thank you, I'm playing around with it now
hi, is there a way to know in BP that if the EQS succeded or not?
I have a system which uses two movement system one with EQS and one withone eqs (nav mesh volume) and I want to only use EQS when close to the player and fail (which it automatically does) when not close to it. is there anyway to check if it failed or not? and then do some stuff from there?
Not sure why Im struggling to get a correct read from this dot product. Trying to compare the up vector of a scene component to the forward vector of the spline and just getting -1 on print or zero
Are you looking for the spline component's rotation, or the rotation of a spot on the spline?
Nvm I dont think the SC is giving transform , just tried it with a Motion controller and itr reading , but think I might try a different method
does sequence wait until the first line is complete to fire the next? or are they fired pretty much at the same time?
Not sure if I should ask this here, but is it possible to play like an intro videoo after I press Start New Game and have the Loaded game paused in the back ground?
I have a rendered MP4 I want to play in this moment. But I'm not too sure how..
Most of what I see oonline is the starting videos from unreal itself which starts way at the opening of .exe that not what I'm lookking for.
the latter, pretty much the same time. The Sewuence node does not know what comes behind it.
bummer. thats what I figured. I hate that functions dont allow delays
just use an event 😄
like a custom event?
I mean I have one that fires in the event graph, but the problem is I need the rest of the code from the function to fire after the event
how does the pin at the end of poison damage in this example work? I take it its like a sequence, it fires the code simultaneously and continues on? It's within a function
So I'm still learning how to get foreachloops to function the way I want, I've got this system, which spawns a spike cluster that is supposed to grow and rotate slightly, with a timeline driving a lerp, however it only ever runs on the first item in the array, when I want it to run on all of them simultaneously.
Try putting the timeline in after the ForEachLoop before the Grow and get rid of the sequence node.
Cos going off that, what you're telling it to do is go through the ForEachLoop and then only once, use the timeline.,
@empty marten just tested that, it's still only operating on the first index of the array
Not sure what I'm missing
I think you're not randomizing the rotation and vector so all of them are in the same exact spot.
they're different spikes, so that would be noticable
it's only operating on the relative rotation
I can see the other spikes, they just aren't scaling
So something you can do is use a print string node quick to see how many times its looping through that array to see if its only get 1 result or all of them.
sure, one sec
So after grow just put a print string
You'd want the loop in the timeline
not the other w ay around
Timeline -> ForEachLoop ->
For each timeline tick you want to loop and modify all items in the array
Man Timeline -> ForEachLoop
I think these guys have a better answer than I.
@gentle urchin that's what I had set up previously, but it didn't work either
But for more elegant way, you can just get the array variable and attach in the "target"
no you didnt
this is not it
Can you clarify please?
Add the For Each Loop here
Would that run off the update pin?
Do you understand what happened for work now? 🙂
this guy is terrible lol
we've all started somewhere
sure but this is ...
someones starting place
You should've seen my first snippet
following some youtube pleb
"oh yeah this is easy!"
anyhow
Wait, I'm confused as to how switching around the timeline and the foreach was the solution?
it would loop and start at frame 1 at all time
@gentle urchin @wicked wraith thanks for the help
starting at the starting point and never moving
especially when "play from start" was used
Because you are starting the Timeline multiple times setting the For Each until the timeline
Think the ForEach will "play" multiple times (following the length of the array)
reading it out loud it sounds like it wouldnt work ..
"For each element in my array, start timeline from the start , do something based on the timelines position on it's curves"
Oh ok. I get it now. I opened MS paint and draw a line to represent the rotation so as it goes round it set the vector.
Any way to have a string map to a byte array than just byte?
huh
guess you'd make a function for it if it doesnt exist
could check LE Extended
there we go
this is for data saving?
my character keeps doing very small "twitches" left and right, when following my mouse movement (yaw rotation) and I have no idea why, is there a way to debug this?
Is there a way to create a dynamic enum?
O.o Why the rudeness?
Oh. You. Nevermind. Carry on.
hi have a probably stupid question but
any way to multiply (or do any other math) with every single value in struct?
in my case struct contains only float values
foreachloop -> *
wait, no
is it a c++ struct
comes down to making a function for it anyways im afraid
Pretty much.
Some functions like Vector have special handling functions already made, but if it's yours, or there is no function, then it's up to you.
In a quest system, would you think it's necessary to store anything beside the static data once it's completed ?
perhaps a timestamp and whatnot if it's that kind of a game, but otherwise not important right?
not even sure what this extra data would be tbh
branching quest chains are simply different quest chains
so..
Depends on the game type I guess. And what you want to display.
probably just that it's completed
quest log could still show each step,
perhaps if some tasks were optional, they'd show that
Anybody have an idea how to properly center the pivot point? There are an odd number of pixels, and I can't set the pivot point to decimals. When I rotate the wheel from blueprints, it wobbles because it's not properly centered. 'Center Center' Pivot Mode produces this same result.
Like after it's finished, It's rare to need much more than the ID, Status(Failed/Completed), and a timestamp. Timestamp sometimes is overkill unless you want to do like non backwards compatible achievement granting and stuff.
Create a widget add your image and your functions (if have) and add the widget in your main widget
me too, but seems like i should to do that
You can set the pivot point as .5 too 🙂
Right, exactly what I'm thinking
Be careful with displaying images in non whole pixel counts. Unreal will blur it by mixing the pixels.
this looks like some design problem
powerof2 is a rule for a reason when it comes to textures @heady lantern
It autocorrects it to the nearest whole number. It won't let me input decimals.
You're saying to make a new object, and make the Sprite object a child of that, and rotate the parent object instead?
It really is better just to make a p2 texture for anything. If you need it that same style, then linearly scale the image, and offset it by one pixel. Then you can display it in Unreal using mips and it'll look better.
haha I fixed it, I had "use controller desired rotation" on! Half a day wasted on this lmao
I've not heard that reference before, p2 texture. Not sure what you mean by that. All of the game logic is done for the vehicle in blueprints using Sprites and Sockets, so if I were to change these to non-sprites, I'd have to change the blueprints quite a bit.
I suppose I could multiply the resolution by 4x, scale it properly, and set the center to the middle of the 4 center pixels, but I'd rather use pixel perfect source textures, mainly for the asset creation workflow.
p2 = Pow(2)
power of 2 size, 2,4,8,16,32,64 etc etc
in your case 32 by 32 would probably work well
32 by 32, can hardly tell the difference
If you have a 31x31 texture and you scale it linearly to 62x62. That's x2 size. Add a pixel on each side. You now have a 64x64 image that will display exactly like your 31x31, except that you can offset it by perfect center now. And Unreal will still display it identically because even though it's 64x64, you can scale it to 32x32 and it should look the same as what you started with. Except centered.
the extra pixel must go somewhere 😛
Perfect, I gotcha. I kind of figured that might be the solution. I wanted to avoid modifying assets after import as much as possible, to streamline the process. But I should be able to have a separate import profile for the tire assets specifically to automatically scale them, that way I don't have to modify the assets I've already creeated, or change my workflow. I think my confusion came from other game engines having different pixel pivot modes, such as Godot you can pivot from pixel center, or from pixel corner. With the Unity system I was using before, it would ignore the pixels for the pivot system entirely and give local coords. That would be a nice feature to add if they ever updated Paper2D, lol.
(cant you here manipulate pixel size or something to get the desired effect?)
found it
turn that off to freely set the pivot
under Advanced
In Unreal? Probably, but I'm least familiar with Unreal. I'm making the basics of the game in Unity, Godot, and Unreal to get a feel for which of the modern engines I like best. Obviously a pixel art game isn't the best use-case for Unreal, but I really just want to learn modern blueprints and stuff.
WOW
but power of 2 texture is still better 🙂
Yeah, that'll work for now at least. Didn't realize that was a setting. It's basically the same setting for Godot that I was looking for initally, lol.
Thanks everyone for the assist! 😛
Hi, i have a question you know is some countries the car when you pass your driver license have shared control over the car like the driver have the full setup and the monitor can also like break etc... how can i achieve this sort of thing in unreal having two players controlling one car (pawn, character or actor i don't know what to choose.).
If you have some idea on how to make this i would like to hear it ^^.
Make a car that has basic controls. Turn, gas, brake. Etc. Make some form of pawn. Most people do this via "seats" since they also attach the old character to them when they enter the car. The player possesses the seat, which is attached to the car. And the seat uses it's inputs to push inputs to it's attached vehicle.
I'm gonna put my head through my monitor messing with this ui
So since I don't need them to exit the car i just make pawn that are attached to the seat and make custom event for each input like gas brake etc... and in the pawn i called those event ?
You could just make a Car. And then make a Seat. In Car's beginplay you spawn two seats and attach them to the Car. Then get both players, and possess the seats.
In the Car you'll make custom events for Gas, Brake, Turn.
In the Seat class, you can put your inputs there. Gas, Brake, Turn. And you'll get the Seats's attach parent, cast it to car, and call whatever correlated Gas, Brake, Turn you need off the input event.
What UI? 😄
well, because I am not happy unless I'm struggling, I decided to flesh out the character creation ui before I redid the code, so I can test it as I go
and, because I am as dumb as an upside down blender, I am entirely befuddled by the concept of anchors
I set up the canvas panel, I set it to view as desired on screen, I position the things where I want them, I hit play, and they are not where I thought they would be
That sound exactly like what i want i will try it tommorow thank you for your help
What are your anchors and such?
have youj tried watching some tutorials on anchors?
it's a pretty simple concept that shouldn't take more than 5mins to understand really
https://www.youtube.com/watch?v=hIz9Ft6a4mY&pp=ygUOdW5yZWFsIGFuY2hvcnM%3D
maybe better to take a step back and learn / understand how the ui system works may help some headaches
I'm just whining, I'm sure it is (like most things I whine about) much easier than I'm making it out to be, and I'll have it sorted in a half hour or so
TBF, anchors take some mindbending for some people. UI layouts in general do. I had it easy when I started doing UI in Unreal, because I had fun making WoW mods. All hand edited XML files that make you get good at visualizing things. Meanwhile Unreal actually visualizes it for you. 😄
maybe it's because i come from web dev where I'm already used to creating reactive UI
Ugh. Web dev. Makes me happy I ditched college for that when I started. I'd need a padded room by now.
what? web dev is great! you just have to install all these dependencies, and frameworks. anod then you have to just simply install and configure transpilers. oh and then theres typescript so that you can write typesafe code! you just have to sometimes look at SO to figure out the correct types to import / use
it's great!
🪓
tah-dah D:
i just have to sneak a button in there for the base widget
I was setting the brush image without setting the image size, so the image was warping all weird, and I was trying to fix it in the vertical box or something so it was then stretching
idk man, I just be clickin' buttons sometimes
it also just looks weird, because I expect the canvas panel to be the "viewport" and so when the widget is outside of it I get confused
I'm having a brain fart - I have the above widget, each box is the same widget, just using a different gameplay tag to populate data from a DT to fill it in. I'm trying to set up an on button hovered event in the master widget (the button is the picture) to display info about the hovered ancestry. On the "hud" widget that is showing all 8 buttons, do I need to make an array of the individual buttons to check for the onhovered event?
No, you expose an EventDispatcher/Delegate for the UnHovered with the Widget that contains the Gameplay tag as a parameter. Then you bind to that Dispatcher in the outer widget
And of course call it in the inner one, passing self along for the param
I think I might have done it backwards, but the only way I'm getting it to work is to get all widgets of class (the box class) in the code before I bind to it, that may just be how you do it I'm not sure
It IS working tho, lol
Aren't these widgets inside of the widget that wants to bind?
so there's a widget called AncestryBox that takes the gameplay tag and builds itself off a datatable, grabs the picture and the name, and then there's a widget called CharacterCreation that has 8 instances of AncestryBox in it where I've set the tags up so it makes the above window
I've named all the instances of AncestryBox (DwarfBox, ElfBox, etc) - I can manually set each individual one's onhovered, but that seemed incorrect
Where do you want to listen to the hovered event?
In charactercreaction?
And are the AncestryBox widgets inside some grid ?
You shouldn't need to get all widgets of class
If you want to bind in the CharacterCreation widget then just grab the 8 AncestryBox widgets
If they are in a grid, grab the grid and loop over its children or so
Or manually pull them into the event graph and add them to an array on Construct
Yeah, there's a textbox in charactercreation that I want to display text stored in the same datatable the texture/name is in
They're in a vertical box with 2 horizontal boxes
I can make an array in preconstruct easily enough
Put them into a geid
Grid*
And loop over the children
Vert + 2 Horizontal boxes is just a grid with 2 rows
Replace the setup and you can use the grid as your container that you just need to loop over to bind to the delegate
+- casting to AncestryBox of course
Or that fwiw. Grid is cleaner though
I just had to fix my positioning on stuff, but I swapped it to grid
Fair enough, that works, and will save me headaches when I add more ancestries
thanks
CommonTileView is best. 😄 But that requires data objects.
how gut I get a listeview entry list item widget and call a custom event on it, or just tell the listview to redraw it?
I've run into an odd one, that I wasn't expecting... Working on some helpful Blueprint Function library stuff, and doing debugging/logging at the moment. I create a function "LogMessage", and I have an ENUM that has message types. Depending on the message type, there is a prefix added to the message, and then the date/time is added, and finally the message. Great, simple and sweet little function. HOWEVER... It only prints to the screen. It won't print to the console log.
If I copy the exact node setup into a specific BP in a function in said BP, for example, "LogMessage", and use that, it works fine printing to the screen and to the console log. Anyone else run into this weird issue, is it a known thing? Or is there something causing this with purpose? It's driving me mad and I've wasted too many cycles trying to figure it out, heh...
I've got some actors in world space displaying text render components above them as navigation aids for the player. Any idea how I can get the text to render "through obstacles" such that it's visible on top of everything except the player? It's already set up for rotation and scale, just need to be able to see it through the trees.
side-quest, what's the easiest way to make the text lit so that it shines through shadows?
It turns out it was a context issue... Not sure how to resolve that elegantly, but a hacky way was to make a "LogMessage" function in my custom GameInstance, and copy the node setup in there for the logging function, and use the Blueprint Function Library version to just pass the message through to the GameInstance function.
Since GameInstance always exists and has a global context, it works... But it feels wrong.
The quickest solution I can think of, is using a custom depth pass. You could also move over to UMG + materials, and then you can have at it concerning making the materials used for elements unlit and even emissive.
Is UMG a blueprint component?
It's the UI system in Unreal Engine
why in allahs name will this static mesh not launch? It's on an Actor so i can't use launch character 😦
Text render components are good for quick and dirty testing and other stuff, UMG is for UI/HUD and what not. But you can also use UMG for elements in the scene, such as a health bar floating above an enemies head, waypoint markers, etc. UMG is a complex part of UE, but something definitely worth breaking ground on
Is the mesh physical and all that?
Cool. Right after I got everything else about it working 😂
try add Impulse?
Yes, the mesh is physical inside the BP, but the mesh is optional to allow for Navigation labelling areas as well as things
no dice, thanks though 😦
i coulda sworn this was working last night... the joys
I'll give that a look. Thanks!
Is there a guide anywhere on setting up configurable mouse settings (sensitivity and raw input).
~~Update... So in regards to my waypoint system that is not changing its units properly I've come to realize that the distance to player system part of it is broken. 🤷🏾
So I guess that is what I will have to fix.~~
edit: FIXED IT! Set the Unit Factor KPC distance, then set the units to LY, redid the < > appropiately...AAAAAAAAAAAAAAND EVERYTHING WORKS! Numbers calculate, and unit switches at the correct distances.. 😄 3:45am
Hi everybody!
Any idea on why this static meshes are not generating navigation?
Generating?
That checkbox makes holes in the navmesh it doesn’t generate one
So what should i check so that the static mesh is viable for nav generation?
I have this other plane and it generates okey
Not sure what is the difference, the plane also has a "static mesh"
I mean normally you just put a navmesh volume but if you want runtime generation use an invoker (they can be expensive afaik)
I do have an invoker on the pawn already, it works okey for the plane
but not for the hexagonal tiles
(First picture)
It’s not usually a good idea to do that (invoke navmesh on a pawn)
I can make it more efficient later, like when zones are created, spawn an invoker that covers all the zone and do it while the screen is loading
that's not my problem at the moment
navigation is just not working at all in the tiles : (
Is this fully proc gen?
The first picture, the ones with the Hexagonal tiles, it's just spawned actors with a static mesh
They are proc generated, yeah.
Ok but I imagine the floor or at least the level exist
Actor:
Yeah, the actor is the hexagon and it has a static mesh for "graphics" and one for walking "Floor".
The floor is supposed to be the one for navigation, just a plain flat hexagon
Ok, so just drop a navmesh volume on it, no invokers needed
But as far as your tiles go, you might be having issues due to step size or if character can step up on is turned off
Try #gameplay-ai if you can’t figure those out
oh, that sounds like a better place, thanks!
So I've got my grid of 8 buttons, I make my array from the grid, I assign onhover functionality to display information outside the grid
I'm trying to set it up so that when I click on one of the buttons, it changes tint, and any other button that may currently be tinted loses its tint, but I think I have a fundamental misunderstanding of foreach loops. I can make them tint on click, but I'm not sure how to untint the rest
so like just "deactivate" all the other buttons then "activate" the button that is selected
my button widgets have states
when they are active (selected) and when they are not
On Button Click -> Get all the buttons -> Deactivate -> Get the selected button -> Activate
I just had to run another foreachloop on the click event, i got it
You run "deactivate" state on each of the button you want to deactivate
I like that "activate" sound
Yeah, I was just using the loop incorrectly
or rather, not using it correctly, lol
perhaps there's a better way if you have hundreds of buttons
which is possible if it's something like items
actually you don't even need to loop...
just store a reference to the last selected button
Last selected button -> Deactive
Current selected button -> Activate
This is the way
@copper chasm exactly what I did for my widget
lol I must have got a brain fart when I suggest the loops
If lastbutton != none -> deactibate last .. etc
this works right now, but I'll try and chip it down to the function to just check against the previous clicked button
I like how I was absolutely zooming along on the data end, and then made a detour to make the ui look a little nicer and now it's been two days and I haven't touched the data 🙃
I would be against doing the loop
if you look above, the code can be much simpler
actually all other buttons are irrelevant
only the one you select and the one last selected matters
Think about other use case too, where you want to play animation on button Unselected
u don't want to run that animation on all buttons, just the one that is last selected
if you don't need to loop through all the buttons, don't
well you know what they say, ask 100 developers the same question and you'll get at least 50 different answers 😛
i'll fix it
I'd just use the "On Added to Focus Path' & 'On Removed from Focus Path'. 😅
"Do you have time to talk about tileviews?" 😂
this discord channel has been one of the most illuminating and frustrating experiences of my adult life, insofar as education is concerned 😂
im thinking you should use GAS
Yeah... It has that effect. 😂
and like, the stuff I'm doing isn't stuff people usually make low level youtube tutorial content for, so it's just me doing it poorly until it looks right, asking here, and slowly retrofitting and re-parsing and trying not to belittle myself lol
funny story, I was originally using GAS for my turn based grid combat, but then I hit a wall because I couldn't figure out how to apply a turn based timer to my GE's without a ton of extra coding just for that, so I stopped going down that road, and then like two months later someone was just like "you could just make the turn manager in BP and use infinite GE's that you toggle on and off" and I unplugged my PC and went to a park
Lol, yeah. 😄 We're using GAS, and all of the gameplay mechanics are designed as turns even though it's technically realtime. As in a turn takes so long and every so often the game "ticks". What we have though is an ability on the GameState which runs when that happens. That ability basically drives the backbone of the gameplay systems.
Interesting approach
Freak 😆
Gotta figure out how to deal with this license thing on the heavily modified dialogue plugin im using...
Unclear license is no good
Creator went a-wall
Moved to china, pursued other interests
Licence for use /modification?
Yeah. Which one is it?
@maiden wadi would it be very important to use tile view? I never venture there but I do plan to display hundreds of items at a given time.
never feel limitation as I am working with very small data atm
Its an optimization
Basically recycles only the visible amount of tiles
Yeah, just hope I don't have to refactor a lot of things
if turns out I need to use tile view
Thats a big refactor
You can manage this yourself with some cheating and creative handywork
Without being forced to uobjects
for multiplayer items, can I just use structs :P?
i mean sure can, but maybe UObject still better
Uobjects have many benefits 🙂
It's not such a major refactor. You're creating widgets and passing them data probably. If that data is not already wrapped in a UObject, then make a new UObject. Make the UObject instead of the widget, give it the data. Then just give all of the objects to the tileview.
Go to the display widget and add the interface, override the object set function, cast to the passed in object to get data, set up widget as you were already doing.
You don't have to change the using system entirely to UObjects at the start, just use them to wrap data for now.
Right, but you would re-create those UObjects from an array of item struct I suppose?
Smart move Auth
Pretty much. And you can pool them if you're worried about object limits.
Instead of itemwidgets, youd create uobjects to wrapp each struct entry
I hate displaying struct inventories. Converted enough struct based stuff to tileview/listview. 😂
😆
Im still on struct inventory 😦
But !
I made my first replicating uobject a few days ago
So the future is bright 😁
Nice. 😄 UE5 made the handling with that so much smoother.
Like you don't even have to do the complicated stuff anymore. Just make the object and add it to the replicated subobject list.
And set it to be consideredfornetworking?
Or is that redundant now?
IsRelevantForNetworking or whatever it was
Ah, yeah in the object itself, you still need the override for that
And also add the bp GetLifetimeReplicatedProps
Aaaand if you want RPCs (i dont, yet) there was another thing to setup
I wonder if they'll ever fix up the outer issue for replication.
What issue is that?
If you Rename an object into a different outer. Like I was doing to transfer one item from one inventory to another. If the original outer is destroyed, item kapoofs. Cause despite being outered to the new object, and added to the new owner's replicated subobject list, it's actually still networked through the original owner.
So to transfer, I started to copy the items into the new outer instead of trying to use the old one.
I believe there's a free plugin for replicating uobjects.
This is the buggy code using rename.
Does the item remain on the server ?
On the server it's fine. If you destroy the old outer, Server stays correct. But every client loses the item from the new outer. 😄
Does it change net id or something when it get renamed?
Hmm interesting tho
Maybe ill give it a shot 😂
Is outer changed on clients aswell?
No idea. I didn't dig deep enough into it. Last thing I need is a tunnel into networking code. 😂 I have enough shit to do and learn as is.
This was my eventual "fix" for it. Just duplicate it into the new outer as a new object.
I need to add more logging to my stuff. Just gonna go bloat classes someday with FFrame::KismetExecutionMessage and FMessageLog("PIE").Error()
Seems i was on the right track
Hmm. I feel like that was a slightly different issue though? Cause I do have an OnRep that does that.
I don't remember what bug this was for. But this doesn't help the item changing hands on the server.
Imagine the onrep not being called
Or was it ?
Should only happen for nulling the old pointer i'd think
It is. This specific issue isn't a rename issue on the clients. This is the server no longer replicating that item at all. So client loses the data to it. Like when I was testing it, both server and clients had the correct outer. Everything seemed perfectly fine. New outer had the item in it's replicated list. Old outer did not. Delete the old outer and it remains on the host, derps on client.
The actor it was on, yeah. I think I had just some replicated box actor.
The use case was drop actors I think? Like loot everything and the actor is destroyed.
Guess ill need to test that scenario
Rename sounds convenient
First id need to rework my inventory 😂
Hopefully they fix it. 😄 But I don't mind the copy. My inventory items are tiny objects anyhow. Literally basically an object with a pointer to a definition and a struct that has an array of Pointer/Floats
Pretty much same as my structs 😆
🥳 Primary weekend projects done. Refactored my plugins into a single plugin with multiple modules and got a good start to a game settings menu that uses the GameSettings plugin from Lyra. Styling is terrible still.
Woop woop! Well done !
Wish i could do such work in a single weekend lol
I gotta spread it across weeks due to time constraints 😂
The above took me ~4 hours. I could probably do it again in about an hour now though. I think the original took me about two days because I was pulling stuff from Lyra and trying to make it more modular without needing Lyra itself.
Once my plugin is done im gonna need to find some volunteer for some feedback om it 🤣
Dont trust my own approval for my own stuff , kinda biased I think 😆
Just gotta complete the refactor and check that it actually works
Oof. The fun part.
Well its almost there now. Switching to Uobjects was less work than i imagined. Now i just gotta setup the correct and logical delegates for the clients
Nested uobjects but lifetimes makes it pretty unusable to have delegates on a per object basis
Which I only realized after i had them setup...
How to stop the sound if the sound is pressed again while its playing
to be exact the flash light has a double click sound
if i press too fast u hear 4 clicks
but i want it to be 3 ( like overrides the previous sound)
Rather than playing a sound. Put a sound component on the character instead and use that to play, so that next call overrides the last on the same component.
this right?
Sorry, wrong wording on my part. AudioComponentis what you're looking for.
TY!!
hey, the OnAudioPlaybackPercent_Event is not triggering even when the audio component is playing a sound. any help?
Likely an optimization. I didn't look at code, but did test a bit in a more simplified manner. This works.
This does not.
so that create event "customevent" is the bottom custom event?
yeah, for it to appear, it needs the same signature.
you can select any events that have matching signature
doneeee!!! thanksss! ❤️
why i can't delete a node?
this started to happen today
when i restart the editor, everything works, and after an hour or two, its like my mouse locked down
i can't move anything in world and can't delete nodes or move them
i sometimes had this bug
reload the BP
(recompile the BP/edit/close/refresh it someway)
restarting the BP fixes the issue only for BP class
the items in world/viewport still don't want to move
thats some weird shit
honestly, at this point try to record when you dev, and as soon as your are stuck stop the record and rewind to see what could of get you stuck
do that multiple times and see if there is a common thing
this happened when i hold lmb for few seconds on world items
but the interesting part is, this only happen when it need to, not all the time
Would anyone be willing to look at one of my functions for my inventory system? I'm having an issue calculating the size of the item versus the available size in the inventory container and pulling my hair out
What determines your sizes?
Just post the code
this is one of the reason i don't use bp for inventory component
this whole function could take just 10 to 15 lines of code in c++
Well… why are there two for each loops with no array to iterate over?
Those are meant to loop through the inventory container X&Y and ensure there's space in the container for the item,
But you are aware that they’re not doing anything right
yeah I know, multiple issues with this bp lol
work in progress
working by myself so I've been using chatGPT
We are in a cursed future
hahaha
Does anyone know how to spawn level instance in a construction script. I’m trying to get them to spawn along a spline, i can get packed level instances to spawn but the level instances themselves won’t spawn in the construction script. Even more frustrating is that using the level instance variable when exposed for references only targets Packed level instances. I’m stumped
Start by breaking it up to little things. Make a function that returns true if the inventory is full or not. Make a function that tries to get the first open coordinate to put an item in.
You don’t do it in construction
Yeah I had this thing commented out but I don't think I saved it. I have bool that returns true if the inventory slot is occupied, if inventory slotX and slotY are < available slots in the slots array then it should be placed
also have stacking functionality
Why and can you be specific because it works with packed level instances fine
After looking at the bp, here's my current issue. I'm trying to loop through the temporaryOccupiedSlots array to ensure the new item fits in the OccupiedSlots array, but my problem is I'm using a vector for the item size and I'm having an issue retrieving those values for the forLoops
Your loops still don’t make any sense. You’re saying for each item: for each slot: for each slot: set the value of item size to 0.
And then you pass this value of 0 to make a struct that does nothing
Like why are you looping over the slots, Twice, and not doing anything with the slots?
You’ll probably get weird life cycle issues even if you manage to force it to load level instances during construct. Note how spawn actor is disabled in construct scripts. Loading level instances is a much slower thing.
At most you want this logic to be callable in editor imo
I think that was me. But this shouldn’t be surprising really. A timer is a timer. A turn timer is not a timer at all. It’s a listener for turn end events. It could go forever.
is there a way to find out what specs are needed to play a game that we created ?
I'm not sure #blueprint is the right channel for this
So I'm setting up seamless travel, and I've read that it will bring the gamemode with it between maps. Given that this makes map-specific gamemode overrides no longer possible, how should I be defining map-specific values?
Can't really do much more than profile and guess. Or test on actual hardware via testers or hardware you have.
It swaps out the game mode. All gameplay actors are replaced. There's just a handoff that happens, like with PlayerState's copyproperties calls and such.
When using seamless travel, it's possible to carry over (persist) actors from the current level to the new one. This is useful for certain actors, like inventory items, players, etc.
By default, these actors will persist automatically:
- The
GameModeactor (server only)
- Any actors further added via
AGameModeBase::GetSeamlessTravelActorList
thanks
Would anybody happen to know a way to implement an array of world location into a material.(I am trying to make a pulsing effect on a laser beam that repeats at a certain frequency) I am currently using a sphere mask and moving the coordinates with Blueprints. But this method only works for one pulse per material. I have tried using a render target but cannot seem to get the value from the texture back into world space. A push in the right direction would be great thanks in advance.
I'm unsure. I don't believe we did anything specific at work, and we use seamless. I fucking hate it, but we do. And we have a completely different gamemode in the combat map than the world map.
This seems overkill for a pulse effect. You shouldn't need much more than a start/end point and to sine the pulses in between them at theintervals.
Sorry I missed a part, the laser can then bounce of a surface creating a new Actor that needs to have the same rythm with the pulses
Oh shit you're right I'm overcomplicating it thanks so much 🙏
Could always go nuts with a niagara ribbon though too.
help, for some reason my pistol when droped doesn't generate hit events with enemy actor, but it does with my character actor.
When dropped, are you simulating physics on the pistol?
yeah
and it flies, touched me (hit event), toches enemy (no hit event)
Do you have this enabled?
now I don't have, but I had it enabled and same result
btw in which actor should it be enabled?
It should be enabled on the component that is the root of the simulating physics.
so my pistol right?
@maiden wadi and there is weird thing, sometimes when I throw that pistol under enemy's feet and he starts bugging on that pistol it generates hit event.
Hi guys
Is there any smart way of getting a 2d isometric outline of a mesh ingame/in runtime?
I think that's two problems in one, the isometric view is a projection technique in this case -- Then the outline is a material or post technique
yes, do you need it as a texture2d?
Yes
Alpha
you can use a Scene Cap Component2d, set to Orthographic
The Ortho width will be how big the Texture is (256x256)
Thanks a lot!!
it will be a bit of setup , but it should get you on track
Help, when pistol collides with enemy it should generate hit events, but it doesn't. Why is that? It generates hit events with my player.
This probably doesnt go here so I might need to ask somehwere else. I'm packaging my game but getting errors. I've read online that a good way to approach this is to migrate maps to a new project. The problem is people keep telling me that if I just migrate the maps I want it should move everything in use over, but when I open the new project after migration the maps are just empty. Anyone have an idea as to what I'm doing wrong here?
What are the actual errors?
Well the error itself is "unknown". But I think its because of me not knowing what I was doing when I started out. I added way too many assets and deleted a lot of them. I believe this is causing the error. But I would have a better Idea if I could figure whats wrong in my first message
You should be able to get an output log of the packaging. If you can, post that in #packaging
I appreciate it, but what I'm looking for at the moment is not packaging. I simply want to know why everyone is saying just migrate the maps and it will bring all depencies with it and mine are blank after migration
I would also like to just clean up my project
Personally, I think migration is a bad idea. If you want to clean up your project, then do it. But even if you got the migration to work, the packaging issue probably still needs to be solved or you'll end up right back here just making a third project next time it happens.
I understand, but I made a lot of mistakes early on and my project is flooded. I force deleted a lot of stuff and just made a lot of bad noob mistakes. I have so many assets that going through it manually would be a serious headache. So i was just hoping I could find a solution to the mentioned issue.
Is there a way I can more gracefully handle falling through the map? Right now there's a bug in my game where when my pawn dies, sometimes the camera falls through the map and after that point, I can't input anything anymore. Is there some sort of event I can use that gets triggered when someone falls through the map so that I can run some logic to reset them?
I mean if your character is falling through the map, is there really a graceful way to handle that?
Its a bad answer, but I would probably start with figuring out why the character is falling through the map
lol, it's really just the camera that's for some reason falling through the map
the character ragdolls and collides with the floor as it should
maybe check collision>
I saw that the camera has gravity enabled so I'm giving disabling that a try
settings in the camera. and maybe character as well if the camera is attached
because why would the camera need gravity
yea. wasn't meaning to come off as rude, but in my opinion at least, dealing with the problem would be the easier solution
yeah for sure
I was just wondering because it seems like falling through the map and into the infinite abyss causes the playercontroller to like
stop taking inputs
so i thought maybe it had some weird properties to it
The closest I've gotten to this issue is purposely jumping off the map before immediately hitting escape in case UE magically explodes
I mean the other solution might be a damage volume under the level, depending on the level. But it shouldnt be too difficult to figure out a fix for the problem in general
or maybe just a trigger box
When your character dies and doesn't fall trhough the floor is input retained?
Yeah it is
Actually I think all it is is maybe the pawn getting destroyed prematurely, so none of my logic runs that would allow me to continue playing the game
because I realized I can still pause the game and stuff, so inputs are still possible
that could be it
normally when the pawn dies, a bunch of stuff happens before the actor is destroyed
I don't know how I would work around that though other than just prevent the actor from being destroyed prematurely lol
can you share the code?
Which code?
Oh shit
there it is haha
yea
I haven't looked at this code in like over a year
I forget why I did this
I probably had a reason
you wouldn't believe how many times I had a problem that I'm sure I cant fix, and right when I'm sharing it realize something isnt set up right
I maybe did it so when the pawn dies, it doesn't block other players' movement and stuff
in fact I think that's exactly why
well, i'm glad you figured out the problem
yeah, thanks for your help!
Does anyone know why deleting a bunch of assets increased my project size by like 10 gb? Does packaging increase your project size if it fails?
Don't know the exact answer but I do know packaging increases your project size by like a gazillion
and the files get created through the process even if it fails
Try deleting all the files that get created when packaging
There should be a Windows folder in your game directory
is that it?
nosir
well windows is under build
yeah not that one
should be in your main directory
It should be a folder called Windows that has an Engine folder, a folder named after your game, an .exe for your game, and then a bunch of txts
my directory looks like this
are you talking about the packaged game?
Yeah, when I package my game for windows all the files go in the Windows directory
yea i dont have any files
in the package destination folder nor the project folder
Oh well. I finally got it to package, so I'll leave ths file size problem for future steve.
New question, what's the best way to design a skill tree system? Mainly looking for it to be easily extendable/scalable
All I can think of right now is having a data table to store the information necessary for the widget like name, cost, description, etc.
The question is a bit broad. there should be a lot of tutorials that will teach you skill tree systems.
at least i would hope so
Yeah I was just about to add some detail, it's for an RTS style system where you have units, and the skill tree might upgrade stats on individual units
I'm trying to brainstorm how I can set up the system such that it's not too hard to add new skills to the tree that modify the units
but am kind of coming up with not much
if I had a data table, one column could be the blueprint class of the unit the skill/upgrade pertains to
but I would need a way to track on the RTS player's pawn what upgrades they've unlocked and I'm not sure how to store that
GAS. Each skill unlock is just a gameplay effect
I really should have learned to use GAS
I was afraid someone would say that
same...
it probably would have saved me a lot of time
lol
i'm too deep now to go back
I have no clue how it works other than this random youtube tutorial I watched that went over the basics
I feel so dumb actually having to ask this, but how would you go about making a widget that is a specific size and the text box inside will adhere to the total widget size
if any of that word salad makes sense
Text boxes have min desired widths. Use that to determine the size of the widget
Scale box is good for scaling to the size of a parent
Where is that in details? This is actually what I was looking for
you would think it would want to limit the max width. How do you achieve this with min width?
You tell it to wrap text
Min desired width is more useful because your text might not be long enough to justify the space you’re telling it to use
Well actually I don’t really get your question. Setting min width will make it that width
I guess yeah wrapping text will stop it from going bigger
is it possible to add a data asset, or swap a data asset during run time ?
Idk about creating one but wdym by swapping
if i have a dataasset that describes how a gun should fire, and then mu character picks up a mod, i want to swap that exisiting datasset with the one that represents the mod.
Well how are you loading the DA at runtime currently?
say the gun initally holds 6 shots, then i add a different dataasset that says the gun can hold 8 shots
this is my question... can I ?
right now i can add a asset before begining the game
but dont know if i can add or swap while the game is running
havn't tried it yet... but I assume "Construct Object from Class" ?
i'll try that 😄
If a property hold that data asset, cant you just assign a different one to that property?
you need a reference to DA. you have a reference to one DA now. you need to swap it to another DA. don't think there's anything magical to happen beyond that
hey guys
Imagine creating one DA per gun per mod. Doesnt sound all that scalable
hey there is anyone able to help me implement the player not being able to do a certain mechanic when its not grounded
here is my character blueprint
i have a component that has an event for healing
it works fine with self reference or witcher reference
but how do i make them both the target?
i created an array variable of type character and wanted to select them in details pannel but i cant
why i cant and how can i make the idea i described?
i can show the code if needed
the whole point of this discord is that you post your issue with as much info as possible, then hope someone knows the answer and responds. so... just post your issue
will do
im currently working on a third person souls like mythology game and ive implemented dashing but whenever the player jumps its able to dash in the air and i would like to only have it dash when on the ground and i dont know how to implement that into my dashing mechanic
you have to have a reference to an actor. and you cannot point from one actor to another from within - this is just a stamp for making actors, no other actor exists yet at that point
Make a function -> CanDash
Include !IsFalling in the check
would have to add a reference manually to this array
or arrange array on the instance in the details after placing in world
thank you am i able to use my isjumping reference as i do not have a isfalling
You have isfalling
You're subclassing Character
Its either directly on char, or on the CMC
oh okay
CMC = CharacterMovementComponent 😉
like this?
wait no its not thats from my anim_bp not for character movement
sort of. just don't add it every time before wanting to heal. unless you clear it as well at some point
what do i add to my candash function to make it work
CanDash was supposed to be a helper function to wrap that logic as a named piece of logic.
Now for the actual issue, look what you tried to do. You tried to SET the value of IsFalling. Does that make sense?
sort off
how would i put a check out for that