#blueprint

402296 messages ยท Page 802 of 403

gentle urchin
#

This part should be fixed regardless

#

To be event driven, and dont create a billion widgets

trim matrix
#

Sodrfjhfglksdjfgdklsjfghslkdfjghsdklfjghf

#

What

#

All I want to do, is to be able to fucking click on a list view item

gentle urchin
#

Ye

trim matrix
#

And nothing is working sob

gentle urchin
#

But as i see it

#

Youre creating new widgets every frame

#

So even if you hit an item last frame

#

It wont be there this frame

#

How this even worked is beyond me

trim matrix
#

Dude this logic has worked amazingly before like yesterday

gentle urchin
#

At the very least

trim matrix
#

It works fine

#

And the logic is fine

gentle urchin
#

Doesnt mean its golden.

#

No its not

#

At the very least

trim matrix
#

IDC I JUST WANT IT TO BE FUNCTIONAL joyous

gentle urchin
#

Do some check

#

For amount of players

#

Vs amount of widgets in your array

#

If they are equal, dont update it.

trim matrix
#

But nothing is fucking firing in the first place

#

Bruh

gentle urchin
#

Would it tho

#

Im not convinced it would

#

Just.. add the frickin check ๐Ÿ˜…

#

Its a branch

#

Simple as that

flat coral
#

Foxxy my strat for debugging stuff this frustrating is to GRADUALLY rebuild it from scratch. Start with just a completely basic component and gradually turn it into your list view, checking that it works at each step

gentle urchin
#

Also.

#

The button

#

Show me the widget setup.

#

The widget tree

gentle urchin
#

And visibility there is ofc visible?

trim matrix
#

Dont worry the text is hit test invisible

gentle urchin
#

With no event overrides for mouse button down?

trim matrix
#

So that wouldnt do any overriding

gentle urchin
#

The graph aswell ^^

trim matrix
#

This is the entirety of the graph for the PlayerButton widget.

gentle urchin
#

Noice.

trim matrix
#

Thats the data playerbutton btw

gentle urchin
#

Looks fine

trim matrix
#

Wait hold on

#

Wrong thing

#

Thats the DATA_PlayerButton

#

Just literally has PlayerState and a HelpRequested? Variables

gentle urchin
#

Ye

trim matrix
#

Squize do you mind like VCing or something so I can show you my screen

#

Because not gonna lie, I have been focusing HARD on this for like 5 hours and I cannot see an issue anywhere

#

Maybe a fresh pair of eyes would help

gentle urchin
#

Wait wait

#

Dont you miss a function?

trim matrix
#

What do you mean

#

Miss a function?

gentle urchin
#

GetListItemObject

#

In the entry widget

trim matrix
#

Huh

#

Sorry what

#

Where would I have that function?

gentle urchin
#

In the.. data?button thingy

#

With the listviewInterface

trim matrix
#

The data is just a class that holds variables so I can pass through some stuff

gentle urchin
#

Yeah but its the one being pressed, yes?

novel rock
#

I tried setting the camera boom rotation to zero and it didn't help

trim matrix
brazen merlin
trim matrix
#

At least I dont think so

novel rock
brazen merlin
novel rock
gentle urchin
brazen merlin
gentle urchin
#

So am I.

#

But baby is crying so i cant VC ๐Ÿ˜‚

#

Nor be at pc

#

The entry widget you have in your listview

trim matrix
#

FUCK

novel rock
gentle urchin
#

Has a listview interface

brazen merlin
gentle urchin
#

Which should have a function for get listview object

trim matrix
#

Uh

gentle urchin
trim matrix
#

Idk wtf that means

gentle urchin
trim matrix
#

I have that if it helps

#

Like I do have that interface

gentle urchin
#

Yes

#

So you need the function

#

Override it

trim matrix
#

I do here

#

Tf

gentle urchin
#

No

#

Thats not the one

#

Thats the reciever

#

Theres a sender aswell

#

In the function list

#

Override

trim matrix
#

I am so lost

gentle urchin
#

Atleast, thats where i think it is, rven if its from an interface..

ocean geyser
#

Hey, is leaning in the event graph or the construction script in The first person character?

novel rock
#

like this?

brazen merlin
trim matrix
#

Dude

#

Run through with me

#

What the fuck do I do

gentle urchin
#

Sleep

trim matrix
gentle urchin
#

๐Ÿคก

novel rock
#

Its not giving me set controller rotation as an option

trim matrix
#

Not that time of day yet

gentle urchin
brazen merlin
gentle urchin
#

I mean.. i'm trying to walk through it but... there's so many bumps along the way

trim matrix
#

Yeah

novel rock
#

found it

trim matrix
#

Hold on @gentle urchin, do you want me to record a video of me in VR demoing it

gentle urchin
#

Sweeet, thats good atleast

trim matrix
#

And showing you what the fuck it looks like and if it is working or not

gentle urchin
#

Sure

trim matrix
#

Alright be right back - will take like 5 ish mins

novel rock
#

yep that worked

#

why was that so hard to find

#

it wasn't even an option

brazen merlin
novel rock
trim matrix
#

That should give some indication to what the fuck is going wrong ๐Ÿ˜‚

#

Oh its still uploading

#

There you go - that should give a slight indication into what is going wrong

gentle urchin
#

Not hovering, not clicking

trim matrix
#

Mhm

brazen merlin
trim matrix
#

Almost like it is not fucking there

trim matrix
brazen merlin
#

SCPavlov?

trim matrix
# brazen merlin SCPavlov?

Pavlov vr is a multiplayer shooter in VR with heavy focus on community. Set in both modern and WWII era's, you can choose a variety of ways to play the game how you want it.FeaturesCommunity hosted dedicated servers.Quick-starting developer hosted lobby system.Search And Destroy, Deathmatch, King of the Hill, and Gun Game game modes.Multi-crew r...

Price

$24.99

Recommendations

26653

โ–ถ Play video
brazen merlin
trim matrix
#

Lmao alr

gentle urchin
#

And this was working yesterday

trim matrix
#

Yuh

#

You can see it is not an issue with my interactor, widget or anything

gentle urchin
#

Well

trim matrix
#

It is SOMETHING to do with the list view

gentle urchin
#

I sort of agree

#

Yes, widgets are working,

#

And the interaction is working

#

But something with the list and or button is not

#

Or how the interaction happens

#

What did you change since yesterday anyways?

trim matrix
#

I added the logic which makes the button blue if any player requests an admin

gentle urchin
#

What logic is that

trim matrix
gentle urchin
#

Sounds related

trim matrix
#

One sec

gentle urchin
#

Very related

trim matrix
#

Ok so first - I added a new empty class (DATA_PlayerButton) with PlayerState and HelpRequested?

sage heron
#

How would you create a grand strategy game with borders and counties/duchies? Trying to find something that I can combine with pre existing real life shapefiles/vector maps

trim matrix
#

Then I adjusted my Event On List Item Object Set

#

In the playerbutton

gentle urchin
#

This sounds like 97% related

#

And as cause of it..

trim matrix
#

Then I changed this part

#

And then uh

#

Thats it I think

#

Oh no accomodated this to it

#

So it actually passes the player state and help requested

gentle urchin
#

But... what

trim matrix
#

Thats it

gentle urchin
#

Set list items..

#

Is this how the original list is made?

trim matrix
gentle urchin
#

Listview items set directly to players?

trim matrix
#

No

#

Oh idk how I had it

#

It was a lot simpler than this photo tho

trim matrix
blissful cloud
#

Hi. I want to implement the character shake effect. and that too effectively replicated. Any resource on how can I do that.

gentle urchin
#

I'd still argue updating on tick is close to insanity, but that'll be up to you

trim matrix
#

OH SHIT

#

FOUND THE OG

#

Looked like that

#

Thats an old screenshot

#

Thats what it looked like in the buton

gentle urchin
#

Exactly

#

Try it like that again

trim matrix
#

Alrighty

#

Will make a backup of this shit mess tho before I "revert" back

#

Brb while I do this

gentle urchin
#

Just keep the current method in a function or commented but unconnected

trim matrix
#

Nah I just backed up the folder joyous

#

Right, brb

gentle urchin
#

๐Ÿ˜…

crystal mural
#

Hi all!

#

Is this node funky in 4.27.2?

gentle urchin
#

Funky how

brazen merlin
gentle urchin
#

Been fine since beginning of times

crystal mural
#

It's not printing what I'm giving it though. This looks right hey?

brazen merlin
crystal mural
#

LOL OK let's check.

brazen merlin
#

its a matter of milliseconds to make my advice concise when i see that your typing

brazen merlin
#

thats what you get for trying to be so thorough

brazen merlin
#

danke

crystal mural
#

Why use many word few word do trick.

brazen merlin
#

but still readable..

gentle urchin
#

Why many, few ok

crystal mural
#

LOL thanks guys! It must have been getting a value from somewhere in between calculations. It matches now. It didn't do this in the last version.

gentle urchin
#

Fixed. One word.

crystal mural
#

I thought my code was wrong for the last week!!

#

Technically ja.

brazen merlin
crystal mural
#

I decided to spam print the values so I could see what was going on. Lead me here not 2 mins later. HAHA!!

#

Thanks everyone.

#

Thanks, I will. I just trusted that what I was seeing was what was actually happening.

#

Oh yes I've made that mistake!

#

I'm sure there's a joke somewhere about a VFX artist walking into a coding bar and slipping on spaghetti.

gentle urchin
icy dragon
gentle urchin
#

Damn thats harsh

zealous fog
#

What does this mean?

zenith trout
#

onother blueprint for is coliding than an event?

#

?

trim matrix
#

Fuck it, going back to an old version and just gona try and add stuff i did recently @gentle urchin

#

๐Ÿ˜‚

gentle urchin
#

Soo

#

It didnt work?

trim matrix
#

Nah

gentle urchin
#

Or it did?

#

Ouf

zenith trout
#

is there another way to check collision than an event?

trim matrix
#

Reverted all last night stuff, did shit all squize

#

Thanks anyway ๐Ÿฅฒ

zealous fog
#

Ah I see (altho in this case wouldnt you get an error because of a null reference when you play?)

gentle urchin
#

Displayname is also safe for nullptr i think

#

Just doesnt print anything

#

Wasnt there some warning ealier when you crossed between exec paths?

#

Or was it just what people said... cant recall

winter kettle
#

the only way to reach the Exit pin of a Gate node is through the Enter node while the gate is open right?

gentle urchin
#

Ye

winter kettle
#

I thought functions could have a output pin of type Exec

odd ember
#

they cant

winter kettle
#

I have multiple gate nodes that I need to open at the end of some code, instead of doing an event for each gate, and calling each of those events at the end of the code, what is the alternative ๐Ÿคฆ

zenith trout
#

what is wrong in here

#

?

pseudo narwhal
zenith trout
#

it still doesnt destroy it

pseudo narwhal
#

You need to have that cast node in between the other nodes, nothing is triggering it

pseudo narwhal
#

You have to put the Get Player pawn in the Cast node

zenith trout
#

lol thx im kinda new with unreal sry

pseudo narwhal
#

You can always search for the node in google, that will bring you lots of answered questions regarding the problem

zenith trout
#

uh it still does not destroy me

pseudo narwhal
#

Set an Event for that, like pressing a key or entering a trigger box

#

You should watch a tutorial on youtube on how to destroy actor

#

Its better than joining nodes without really knowing what you are doing, you'll get used to it pretty soon

novel rock
#

"Hypothetically" how do i get the spawned player on start?

zenith trout
#

this does not work @pseudo narwhal

pseudo narwhal
#

Try to replicate it, and then apply it to your project

odd ember
#

better to teach them about blueprint communication

zenith trout
#

still....

zenith trout
#

?

icy dragon
zenith trout
#

to destroy the player

zenith trout
odd ember
icy dragon
odd ember
#

it's a way of thinking that you need to integrate for doing programming

zenith trout
#

if i prees F i should be destroyed

icy dragon
maiden wadi
#

KEELIT

icy dragon
#

As opposed to paying respect?

flat coral
#

It's great because you can just rapid tap it again to pay respects

#

DAMMIT you were slightly faster ๐Ÿ˜›

icy dragon
zenith trout
#

but idk what to do and why it is not working

maiden wadi
#

First guess is that you've put your input in a class that doesn't have it enabled. The second would be that your pawn is not a ThirdPersonCharacter.

smoky marsh
#

Well you gotta hook up F to suicide your character first

maiden wadi
#

Also. The cast is pointless.

smoky marsh
#

CE linked the basics for blueprint communication, I suggest looking through the whole thing

#

Then figuring out how actors in a world interact

rigid fractal
#

guys, im trying to change the resolution according to the option the player has chosen, it works even in windowed mode, it decreases and increases the window width, but in full screen mode nothing happens, it was supposed to be blurry if i selected one resolution lower than the monitor
this is my bp:

gentle urchin
#

Atleast commandline works

rigid fractal
#

i will try

timid rune
#

I have a blueprint that works properly when I play in the viewport, but not when I launch the game. Does anyone know why this might be happening? Also I don't know if this helps or not but it involves 2 actors overlapping.

smoky marsh
#

Any more details?

timid rune
#

There is an event dispatcher being bound and unbound

icy dragon
# zenith trout yes

That's a weird mechanic, but that depends on your game's definition of being freaking dead.

#

Because often in games, being dead is just another state an entity can get into. Not actually wiping from existence

gentle urchin
#

To be clear: destroy actor wipes it from existence.

#

Which leaves the controller in an awkward state with no pawn. Poor controller

trim matrix
#

Can we use AnimSequence/Blendspace variable in anim graph ?

trim matrix
#

?

#

This is bp stuff

#

but k

odd ember
#

bUt iT's tHe SaMe gRaPh

timid rune
#

@smoky marshI found something out: for some reason a component only gets destroyed when playing in the viewport but not when I launch the game.

zenith trout
#

can you reset an object? for example a trap`?

gentle urchin
#

You can do mostly anything

timid rune
#

I also tried setting the relative location and that didnt work

gentle urchin
#

Atleast the perseption of it

novel rock
timid rune
#

It seems that while the game is launched the component wont move in any way

pseudo narwhal
#

I made this for panning my camera, but I want to set a limit for its movement, I tried including a Clamp (Float) node but its not working, any ideas? ๐Ÿ˜•

odd ember
timid rune
#

I cant set the relative location, destroy it. Move component to doesnt work

novel rock
# odd ember whose?

Blueprint Communications | Live Training | Unreal Engine video I'm watching.

zenith trout
#

how can you reset a blueprint ?for example a trap`?

odd ember
#

it's worth it

maiden wadi
novel rock
odd ember
#

๐Ÿคฃ

timid rune
#

@zenith troutI would just try to build it in a way that resets certain parts when an event is called

odd ember
timid rune
#

or despawning and spawning a new one if you cant do that

novel rock
#

I like tutorials where the person shoeing me how to use blueprints swears at least twice.

maiden wadi
#

You want professional developers to swear on youtube? O.o

odd ember
maiden wadi
#

I'm exceptionally profane myself, but definitely would not be if making developer tutorials. ๐Ÿ˜„

odd ember
#

I would at the very least mutter neath my breath

high ocean
#

I'm making some structs now for a collectible system. I want to have Something like
BookTitle
-> Chapter 1
-> Verse 1
-> Verse 2
-> Verse n
-> Chapter 2
-> Verse 1
-> Verse 2
-> Verse n
-> Chapter n
-> Verse 1
-> Verse 2
-> Verse n
BookTitle2 [...]
What kind of variables would you recommend? (Book & Chapter = name/string?) The verses are going to be of type text since they will basically be paragraphs.
I want all of these in data tables to be able to create all widgets from them.
Any suggestions? Maybe the whole system is poorly thought of.

maiden wadi
#

GameplayTags

gentle urchin
#

GameplayTag

high ocean
#

wow, that was fast...uhm... what now ๐Ÿ˜ญ never used them before ๐Ÿ˜

maiden wadi
#

Chapter1.Verse1
Chapter1.Verse2
Chapter1.Verse3
Chapter2.Verse1
Chapter2.Verse2
etc

high ocean
#

i know they exist, but have no idea on how to actually profit from them

gentle urchin
#

they're easy to use, can be stuffed in containers, and has a bunch of check functions

high ocean
#

๐Ÿ˜ฎ

gentle urchin
#

In this case you can even query entire chapters ๐Ÿ˜„

high ocean
#

that's like auto-making my sistem lol

gentle urchin
#

Atleast, I think that can be done

maiden wadi
#

It can.

gentle urchin
#

not that versed with it myself yet, but i love it so far

high ocean
#

ok, i'll look into them, and see how I might use them. I also need to bind them to droppable/findable loot

gentle urchin
#

As a tag in anyActor ๐Ÿ˜„

#

easily droppable

high ocean
#

my whole game is procedural

gentle urchin
#

collectible

#

if you want "several" items to exist in one you can use the container, again ๐Ÿ˜„

#

basicly a stack of tags

#

or a .. .container... of tags

flat coral
#

Wait am I a dumbshit for NOT using gameplay tags for my dialog system? I've just got like a struct with an array right now

gentle urchin
#

This looks familiar

high ocean
#

@flat coral๐Ÿคฃ that's copy-paste my conv system from 3 years back - how deep did u make it go? mine was only 4

#

lost myself in my own convolution of structs lol

#

and selectors

gentle urchin
#

I had an awesome system for it, but it got convoluted in the datatable ๐Ÿ˜„

#

the pointers to new id's became... messy

#

no clear visual connection between row 1 which pointed to row 17, row 41 and row 123

#

so in my latest endeavor I found a plugin. good times

#

some prefer the more generic flowgraph one

high ocean
#

Ok, lemme see if i get this straight:
I need a struct for my DB:

  1. GameplayTag (for classification)
  2. Text (the actual "verse")
    and basically that's it? I just run my drop chance rolls on the whole table if this item type is selected? Am I thinking clearly? That simple? ๐Ÿ˜ฎ
gentle urchin
#

GameplayTag is rowname

flat coral
#

This can grow to have SOME metadata on dialog steps but I think if I need wildcards it will crumble

high ocean
gentle urchin
flat coral
high ocean
#

and 4 options too

flat coral
#

I guess in practice my depth limit is however long an array can be in ue

#

I'm not really worried though, my game isn't really suited for long conversations

high ocean
#

so, (Q->A = 1). Had 4 of these. But I was more of a beginner then then I am now so ๐Ÿคทโ€โ™‚๏ธ it did its job ๐Ÿ˜„

gentle urchin
#

my db ended like this

high ocean
#

but...how would I create the widget structure from gtags? break them into strings or smt?

gentle urchin
#

felt safer with row handles for the pointers atleast

gentle urchin
#

Book1.Chapter1.Verse1

high ocean
#

Amazing! so glad I asked u guys before headbutting into this. Would've never thought of it! Thanks! I'll go learn some GT then ๐Ÿฅณ

gentle urchin
rigid fractal
maiden wadi
#

@high oceanOn a side note. If you have any C++ ability, one function for GameplayTags I find rather invaluable(Specially when dealing with Datatables), would solve your issue of needing to double the tag in the table. GameplayTags has a static function to get them from an FName. You can do FGameplayTag::RequestGameplayTag(FNameValueHere) Cause then the table's names would serve as Tags as well.

#

Oddly it's not BP exposed, C++ only, would need your own library static for it.

high ocean
#

@maiden wadiAlas, I have no cpp knowledge and it'll convert my whole project to cpp. If I pack like this, I can track my problems (so far I did). If it's converted, i'm not so sure anymore... What should I call it... I'm scared of cpp I think ๐Ÿ˜ฎโ€๐Ÿ’จ

#

But after I finish the EA for this game, I want to take a month to get the basics of cpp so that I can feel a little confident and at least expose useful stuff to bps.

maiden wadi
#

Haha. I feel you. Was there myself sometime a little over a year ago.

odd ember
#

I mean it's not like it'll convert everything to cpp

#

cpp influence creeps in under the skin

#

first it's just a library with some functions

#

then it's a base class for BP

#

then before you know it half your project is in cpp

#

you're out there making subsystems

high ocean
odd ember
#

no no, he was a pro gamer

#

๐Ÿ˜Ž

maiden wadi
#

Not really. Before that I had a little over a year and a half in blueprints. Few months of Lua messing with WoW addons a decade ago.

high ocean
#

@maiden wadi๐Ÿค” So unless I'm way dumber than you (ofc if ur not some genius) it's not THAT scary... This gives me hope actually ๐Ÿ˜„

maiden wadi
#

I think I first picked up UE right at the end of 4.24 if memory serves.

odd ember
maiden wadi
#

It manages all of the hard stuff for you if you just follow a few simple rules.

high ocean
#

so, even if you type in 10x as much and can't instantly test what you did, it's still "faster"?

odd ember
#

it's not just that it's faster

smoky marsh
#

Length =/= performance drop necessarily

odd ember
#

it opens up avenues that aren't available otherwise

#

like subsystems for instance are a godsend

smoky marsh
#

Don't be afraid of long code

maiden wadi
#

Honestly, even just being able to override the default framework is godly.

high ocean
#

@maiden wadiwhere did u start?

maiden wadi
#

Like 95% of the framework is virtual and not even BP exposed. There's a ton of things you can do.

high ocean
#

maybe it would work for me too

flat coral
maiden wadi
#

static library functions.

odd ember
#

they made it feel more like modern programming languages

#

because standard cpp is ๐Ÿ˜ฉ

flat coral
#

I could do an interview in like 6 programming languages but UE4's cpp made me go to blueprints right away

high ocean
#

so...wait.... should I NOT learn standard cpp? I was thinking of taking a course of cpp unrelated to ue.... wtf?!

#

u know, learn the basics from scratch

odd ember
#

there are some crossover, but like you don't need any of the standard libraries

flat coral
#

I'd learn C, then learn UE CPP

odd ember
#

you still need to manage pointers and addresses to some extent, but nowhere near how much you need it in cpp standard

#

and memory management is automatic for UPROPs

high ocean
#

and i've seen in some cpp stream a long time ago that references aren't "a thing" in cpp like they are in bps? And it doesn't throw all of them into the memory?

odd ember
#

they are

#

references in BP are pointers in cpp

high ocean
#

so, it's basically the same then

#

in this regard

odd ember
#

it's just a different way of handling the data, but what you get out of it is the same

flat coral
#

Learning C will teach you all the tricky memory and pointer stuff. IMO you don't need to learn the parts of standard C++ that are in neither C nor UE C++

maiden wadi
#

There are fundamentals, and then there's basic C++ and then Unreal wrapped C++.

Fundamentals cannot be skipped. This is stuff like the difference between a float and integer. The different between an unsigned integer(uint8) and an signed integer(int32). Knowing what a pointer is and the difference between a pointer and passing a value by reference.

Basic C++ is knowing what an std::vector is. Hint, it's not a location. std::vector is an array. And knowing this is entirely useless inside of Unreal.

odd ember
#

it's been ages since I did C and I remember nothing of the memory management, yet I've done some decently high tech stuff in UE4's cpp

#

subsystem for saves, subsystem for AI

zealous moth
#

@maiden wadi what the hell is a uint????

high ocean
odd ember
#

unsigned int

#

basically without the sign, so it can only ever be positive

flat coral
#

I think every coder should learn C, but I don't think they need to like be proficient in it. The idea is just that learning C teaches you what every other language is doing in the background for you

zealous moth
#

@odd ember oh cool! Whats that?

maiden wadi
#

int8 is -128 to 128. uint8 is 0-256

odd ember
#

but you get twice the range for the same memory, but only positive range

high ocean
#

y not just use integer? wtf

twilit gull
#

if actor made on listening server is being replicated and made on client not, where is probably mistake?

maiden wadi
#

Same memory space, larger numbers.

#

uint8 and int8 are both bytes.

high ocean
#

oh

odd ember
zealous moth
#

Wait int has a max range of 128? I thought it was 256

flat coral
zealous moth
#

Gosh.... refactoring tiem

odd ember
#

like when's the last time you needed 65535 different combinations of anything?

zealous moth
#

I got 200 missiles

#

As int

odd ember
flat coral
odd ember
#

2^32, 32 bits

zealous moth
#

Oh thank god

#

65k missiles it is

#

Pew pew

fervent temple
#

trying to make a vigilante asset tank driveable. when i hit play this is what happens

#

just completely spases out

supple dome
#

32bits is like 4 billion

smoky marsh
#

Looks like a meme image

odd ember
zealous moth
#

Where tank???

odd ember
#

I failed

fervent temple
odd ember
#

which of them?!

supple dome
#

i saw a cat at first

odd ember
#

I thought it was an impressionist painting

#

like a shader

#

shoutouts to kuwahara

fervent temple
flat coral
#

I wonder if somehow your motion blur settings are messed up

odd ember
fervent temple
#

no it spawns in and tries to rip itself apart

#

its not supposed to move yet

flat coral
#

these are like photos of bigfoot lol

supple dome
flat coral
#

I bet it's colliding with itself or the ground

zealous moth
#

@fervent temple sounds like a collider issue

fervent temple
fervent temple
#

its not my asset

odd ember
#

try to drop it from up high

fervent temple
#

its some super advanced vigilante one that i saw

odd ember
#

and see if it lands ok

zealous moth
#

If you raise t above ground does it fix it?

flat coral
fervent temple
#

ok yeah its fine when gravity gone

odd ember
#

so it is a collision issue

fervent temple
#

thx guys!

zealous moth
#

@fervent temple disable the collision for the mesh and use a collider as your collider

flat coral
#

I'd also try just spawning it slightly above ground and letting it drop onto ground, and see how it performs like that

trim matrix
#

does anyone know if AnimBP live recompilation is still in experimental ?

#

i dont find the setting anymore ๐Ÿค”

odd ember
trim matrix
#

no since its not a setting in the anim graph ๐Ÿคก

#

but in the editor itself

charred grove
#

Hello guys

#

I need someone to help me mesh two marketplace systems together

#

Rpg inv and combat system

#

I have a problem on connecting wrapons from inv get triggered with the vombat system attacks

#

Idon really knoe where the problem is i just cant put them together

#

If anyone is interesting in giving me a hand please let me know

novel rock
odd ember
#

trace from camera.location to camera.location + 10000 * camera.forwardvector, get hit result

novel rock
#

how do i find actor or character who spanned in world, using blueprints.

odd ember
#

spanned?

spring nebula
#

How do I get the "Parent: Tick" node?

#

Found it. Right click tick node -> Add call to parent function

#

Are events more efficient than Functions in BP?

true marsh
#

Is there a way to force base aim rotation to replicate? A few sources I'm seeing say it is automatically replicated but my aim offset only works on the controlled client

zealous moth
#

@spring nebula no they serve different purposes. Events have no outputs but can use timelines and timings.
Functiins can input and output but cannot use timings.

#

@true marsh i would ask in the replication channel. It is possible but i forget how

spring nebula
# zealous moth <@105062331498655744> no they serve different purposes. Events have no outputs b...

I know that much. I was just wondering if there was performance difference. I was watching this tutorial. Is using delay with a very short delay time better than using the tick function as this video suggests? https://youtu.be/jJbYr7eqd4I?t=810 13:30 is the timestamp.

Hey guys, in today's video, I'm going to be showing you how to create a dynamic crosshair with changing colours in Unreal Engine 4. In this system, the cross-hair will turn red when you hover over an enemy, blue when hovering over a teammate, ally or friendly, and white for neutral when hovering over nothing.

Crosshair Images: https://drive.goo...

โ–ถ Play video
zealous moth
#

@spring nebula delay is best used for static logics such as damage invulnerabilities and such. Otherwise you should use a timer when possible and finally tick if not expensive.
Do note that many folks have a misconception with tick being bad. It is fine as long as you dont overdo it. Like dont do 10 nested loops per frame.

#

@spring nebula raw c++ will always be better than bp but the magitude also matters. Do you want to spend an hour coding and testing for 0.001s improvement? Not worth it.

spring nebula
#

So to answer my question, there's no real reason to initiate an event loop with a delay small enough that it's called every tick over just using the tick event. Thanks. I appreciate it.

zealous moth
#

@spring nebula and if it doesnt need o ve done every single frame: use a timer and loop it.

#

To be done**

bright harbor
#

i'm probably being stupid, but how would one move the camera on a boom arm behind the player and raise it a bit, almost like a camera position/rotation reset event

#

nvm i got it

brazen merlin
bright harbor
#

i sent it, then i googled for the solution and found a tutorial for it ๐Ÿ’€

brazen merlin
#

SetControlRotation ๐Ÿ™‚

#

sounds like you found a fix though, hope its not a hulking bandage

sour ridge
#

Anyone know with blueprints how I press a button and it either open discord link or copy to clipboard text (which is the discord link)

timber berry
#

This picture is from Unreal engine 4 but in Unreal engine 5 there is no vector * int, what changed??? How can I get that in unreal engine 5

faint pasture
timber berry
faint pasture
#

Are you dragging off a float or vector pin? I highly doubt ue5 is missing vector x float

timber berry
supple dome
#

you can right click and convert

#

the pins

rain egret
#

Question,
I have walls, their normals point in different directions, there are ones that point inwards and there are ones that point outwards.
I always want to calculate an artificial normal that points outwards, depending on the linetrace

How can I do that? Kinda late and my head steams

tawdry surge
#

@timber berry ue5 doesn't have type specific math nodes. Its just a multiply node

brazen merlin
rain egret
#

Lemme make a quick video that should explain it

#

the pannel with a arrow shows the normals direction and how it changes

#

id like the arrow to always face inwards,

brazen merlin
#

ahhh, i dont know the math, by i think you might have a better result by aiming with bias to player position

rain egret
#

thats what the linetrace is for, it gives me a start and end point

brazen merlin
#

what about have it bias towards the root transform of the actor these are all attached to?

rain egret
#

i thought of that as well, however this would have to work for cases where, lets say you place a helm inside the ship, and the floor you are placing it on just so happens to be below the root of the ship.
wouldnt work properly

brazen merlin
#

mhm

#

give the player the ability to flip it?

rain egret
#

flipping turning will be added for sure, however players are lazy and i dont expect them to figure out you need to turn it, because if the arrow faces outwards it creates a very ugly mesh

#

and i dont want to include the arrows in the polished version

brazen merlin
#

thats what i see in most of these kinds of things, and yours is fairly open ended that its hard to account for the number of edge cases

rain egret
#

exactly

#

like you can make your ship any shape, as long as its with the given amount of freedome the editor gives

terse elm
#

is there an easy way to cast to the current level to get a target point set within the level?

spark steppe
#

no, you can't access level bp from outside

#

what you might want to do is make an actor which represents your target point, and spawn it in the level

timber kite
#

Guys, does anyone knows, how to make the components of a blueprint instance editable?
I have created a blueprint containing paper grouped sprites as components which are defining my layers for parallax, as i am using orthographic camera.
I can duplicate the blueprint to change the layers but in case i need to make some changes i will have to edit all the layers of all my levels which is verry inconvenient.
Can anyone guide me?

terse elm
#

gotcha yea that was my other option: re: @spark steppe thx

#

i guess i could also just use spawn points with tags

storm vigil
#

Hi. I would like to make a list of bone names (spine_01, spine_02, spine_03, pelvis, head, neck, etc) and I want to compare it to the break hit result hit bone name so if it is == to one of the list then I would have a logic of a larger damage (branch is true), but if its not included in the list I will have the false as a lower damage. It is easy to == per bone name variable. However, I am not sure how to make a list (list of bone names) using arrays and compare or == it to the hit bone name (not array). The other alternative is making a lot of branch per bone name variable but it involves a lot of bone names. Thank you

gentle urchin
#

you could make a map for it

#

BoneName as key, float as damage scale

eternal reef
#

Just wondering, wouldnt it be easier to use the physics body?

brazen merlin
#

lol i forget about find, could do it with array too ๐Ÿคฆ

gentle urchin
#

Tmap is faster ๐Ÿ˜„ I think

#

and array.. dont ahve a key to it

#

how'd you compare it

#

a struct?

#

2 arrays?

brazen merlin
#

wait, is there two values being checked?

#

i was just thinking a name array with a find return into the branch

#

@storm vigil lol no wait

#

advice removed

#

do Squizes lol

#

not sure if bone maps with damage float, but yeah

#

use Find

#

basically

storm vigil
#

Hi. thanks for the advices. I think the output of the find float I can place on the damage input float i have in the return float?

#

hehe

gentle urchin
#

You'd probably want to multiply them

brazen merlin
#

its bone | damage, so if Spine_01 is hit, this is the damage, etc.

gentle urchin
#

damage multiplier *

brazen merlin
#

i dont think thats what is wanted

#

ah

gentle urchin
#

Anything else would be.... interesting

#

'sadly' the damage event doesnt directly tell you which bone was hit

brazen merlin
#

that's where you make your own damage bpi

gentle urchin
#

Or ramp it up pre apply damage

#

some trace is probably happening, pick it up and at it there

#

or custom damage type, which includes bone name hit

#

Custom is probably easier ye

#

๐Ÿ˜„

brazen merlin
#

still yet to mess with damagetype clases

gentle urchin
#

same, havnt touched them yet

brazen merlin
#

tried them, but i wanted a certain damage formula and ended up doing that elsewhere before damage happens

gentle urchin
#

sounds about right yes ๐Ÿ˜›

trim matrix
#

i have a very generic issue i was wondering if anyone could help? basically everytime when i rotate my character using the Mouse the camera rotation after 2 seconds will snap back to its original rotation

after reviewing my logic for rotating the camera i see no logic at fault here is there a setting im forgetting to check?

storm vigil
#

Hi. I think I did not need to use the find for the map (name/float) variable but due to your recommendation it led me to using the variable CONTAINS for the array of the bone names and compare it with the hit bone name. I connected it to my branch with two separate return nodes, one for the normal damage and the other I have logic for reducing damage. Thanks ๐Ÿ™‚

eternal reef
onyx token
#

i have problems with vectors

#

i'm calling a forward vector based on my character.

#

why does this happen?
Why does the red needle not rotate with the character, but goes to 90ยฐ, and then back, and then to -90ยฐ and back?

#

why does the vector only cover half the circle? not the whole circle?

trim matrix
#

i feel like there is a setting thats causing this i could be wrong but ill keep looking

trim matrix
eternal reef
#

Huh, the rotation might be derived from the one not moving?

trim matrix
eternal reef
#

Good question.. I guess you should definetely be able to define that somewhere but no clue where

trim matrix
gentle urchin
onyx token
#

but it only covers half

gentle urchin
onyx token
#

i'm just getting the velocity and taking the Y rotation

gentle urchin
#

why velocity ?

#

are you showing the magnitude aswell

onyx token
#

well it doesn't matter whether i'm taking the character rotation or the velocity

#

both vectors only cover half the circle

#

wait actually- nvm

#

i have to take the velocity

#

because i've set my character movement to not rotate based on my WASD

#

so i can strafe

gentle urchin
#

what was the logic

onyx token
#

logic?

gentle urchin
#

in that

onyx token
#

oh you mean what i'm trying to do?

gentle urchin
#

No..

onyx token
#

I'm trying to make my characters head always face the direction of the camera, but have the feet rotate, while the capsule component also faces the camera

gentle urchin
#

so there's a target rotation

#

or a move rotation/direction

#

and a look rotation/direction

onyx token
#

i have the velocity of my character
and i have the camera rotation (= character rotation)

#

and i'm rotating my character mesh based on the velocity

gentle urchin
#

camera forward is look direction , while key input is move direction

#

what happens when the move direction breaks the law of physics?

#

do the pawn turn then?

#

or to they swap to backwards?

onyx token
#

WAIT

#

hang on

#

i'm dumb

#

i'm supposed to use this

#

not just break the vector

gentle urchin
#

(Y)

pseudo narwhal
#

Do you know how I can limit my panning camera? I can drag it to the infinity. Tried the Clamp nodes but didnt work ๐Ÿ˜•

gentle urchin
#

panning camera?

pseudo narwhal
#

I mean, I created a model viewer similar to sketchfab, so I can rotate over my object an pan X/Y axis

#

But I'd like to have a limit on the X/Y dragging

gentle urchin
#

what did you try to clamp

pseudo narwhal
#

This is my BP

gentle urchin
#

aand you tried to clamp what?

pseudo narwhal
#

I set a Clamp node just right after X Pan and Y Pan

gentle urchin
#

How would that work really

#

think about the values being passed on here

#

is the output from Pan Axis X the absolute rotation?

pseudo narwhal
#

It worked in the rotating camera section

gentle urchin
#

Walk through it logically

#

why would it work for the camera but not for the spring arm offset?

pseudo narwhal
#

To be honest I dont really have a clue ๐Ÿ˜… , I tried following some tutorials and Im really lost at it

gentle urchin
#

Let me give you a hint

#

the input coming from the Axis is in the range 0.0 to 1.0 (assuming scale is set to 1 in input settings)

#

you're also using two different nodes for rotation vs panning

#

The upper one is not on the screenshot but i bet its not addLocalRotation

pseudo narwhal
#

Thats the rotating part, I adjusted the Clamp to a min/max so it doesnt fully rotate around the object

gentle urchin
#

Which is fine

#

it's very clear why that would work

#

not sure what you rmacro clamp is but doesnt matter much

pseudo narwhal
#

But as for the Pan Camera I dont really know what else should I change or add

gentle urchin
#

If you walk through it im sure you will

#

Whats different between pan and rotation

pseudo narwhal
#

Ive been trying it since wednesday, looking everywhere but Im totally stuck ๐Ÿ˜ฆ

gentle urchin
#

For your rotation you're checking the current rotation, adding some value to it, and setRotation

#

while for your pan you're adding offset based on the input

#

not checking the current location

#

so there's no way you can clamp it

#

Think of an example;
Input is 1.0
PanSpeed is 2.0

So 1 * 2 = 2, then *-1 = -2

#

Then if panning "AddLocalOffset" recieves 0,-2,-2 as the input

#

which is what you're trying to clamp to -130, -70

pseudo narwhal
#

That -130, -70 its just the rotation limit, not the panning

gentle urchin
#

well i couldnt guess that ๐Ÿ˜›

#

Still it ends with the same thing

#

no matter what you try to clamp here

pseudo narwhal
#

Thats the full BP

gentle urchin
#

there's nothing to clamp

#

because you're working on the delta vector

#

the "amount of change" if you'd like

pseudo narwhal
#

So, ignoring the clamp, is there any specific node I can use for just limit my camera movement, instead of moving it infinitely

gentle urchin
#

Clamp.

#

Clamp is what you want here

#

that or some boolean check, but it results in the same thing anyway

pseudo narwhal
#

Where should I put it? Before the Make Vector node?

gentle urchin
#

Did you not read or was my explanation that horrible

pseudo narwhal
#

Im just an environmental artist, dont really know a lot about this ๐Ÿ˜ฆ

gentle urchin
#

xD

#

Its additive math, im not sure how much there is to know about it really

pseudo narwhal
#

All that BP took me like 7 days

gentle urchin
#

you need to check the Spring Arms current offset

#

add your input to it (like the rotation),

#

then clamp

pseudo narwhal
#

There? In the AddLocalOffset ?

gentle urchin
#

you also need to swap the node

#

to a SetLocalOffset.

#

Add is additive

#

internally it adds whatever input comes in to the current offset

pseudo narwhal
#

Cant add a SetLocalOffset , only lets AddLocal or AddWorld

gentle urchin
#

Pretty sure there's a set

pseudo narwhal
#

Even deactivating Context Sensitive

gentle urchin
#

see, there it is

pseudo narwhal
#

Then SetRelativeLocation, thats it

#

Now all I need is a Clamp node before that? ๐Ÿค”

gentle urchin
#

Perhaps you get away with clamp vector,

#

if not just clamp the 2 or 3 floats individually if need be

#

i'd think doing the vector itself would work fine

pseudo narwhal
#

Oh thanks, Im testing that !

#

Its starting to work ๐Ÿ™‚ , I bit choppy movement but at least is working, thanks

gentle urchin
#

you could interpto if you want to smooth things out

pseudo narwhal
#

I'll try the interpto

gentle urchin
#

requires an extra variable

#

targetLocation

pseudo narwhal
#

This is working fine, copied your BP, it only pans in X axys though

#

Guess I have to figure out where to add the Y axys and its done

gentle urchin
#

yeah i didnt have the correct inputs laying around

#

but the idea is the same for Y

pseudo narwhal
#

Do I have to duplicate that for Y ?

gentle urchin
#

Adding it to the X i assume

pseudo narwhal
#

Let me try

gentle urchin
pseudo narwhal
#

Oh I see

#

Still not working on Y ๐Ÿค”

zealous fog
#

I have this object reference variable on my enemy base class, but when I place the enemy in the world, I cant seem to change it

remote meteor
#

try searching for it

#

the details menu is also arranged based on your variable category

zealous fog
#

Oh wow... sometimes the solutions are so simple hahaha

#

Thanks man

#

Been looking for like 15 minutes lmao

crisp lance
#

If you use a delay right after the click, any additional click will be absorbed by the delay.

remote meteor
#

save the timer handle

#

if timer handle is active

#

dont shoot

primal tangle
#

hello guys I'm trying to Package my project for android. and it succeeds but I can't open it on my phone it keeps saying "it has stopped"

#

so I check my log in saved folder and there are a few lines like this : Log file open, 01/08/22 15:46:20 LogWindows: Failed to load 'aqProf.dll' (GetLastError=126) LogWindows: File 'aqProf.dll' does not exist LogWindows: Failed to load 'VtuneApi.dll' (GetLastError=126) LogWindows: File 'VtuneApi.dll' does not exist LogWindows: Failed to load 'VtuneApi32e.dll' (GetLastError=126) LogWindows: File 'VtuneApi32e.dll' does not exist

#

could these be the problem ?

#

I found some approaches on the internet like delete intermediate and saved folders and try to open again but these won't disappear

#

it is the same for all my projects even if it's an empty new one

#

I think these are why the android apk keeps stopping and jumping out. have any of you come across this b4 ?

#

It's been a few days since I'm tryna get a clean package that's working but no success..

remote meteor
#

here's one way to do it

sand bloom
#

I have a stupid question but uh what's the name again for the kind of variable that acts similar to an integer but using text/names/words

#

enum something I think

#

๐Ÿค”

#

so I could make a list of words instead of using numbers

#

afaik there was a easy way to do this

#

I guess I can just use a name switch
Edit: turns out i'm dumb and it's not just a variable but something I create as a blueprint thing ignore this

rain egret
#

okay turns out the vectors do point always outwards (blue forward vector), but i am using their up vector (red) to orient things along its surface which causes issues

#

why cant i just use the forward vector as rotation aaa

smoky marsh
#

would there be any issues with a setup like this since the events run on every frame?

remote meteor
#

the example in thirdperson template

smoky marsh
#

i more meant that im feeding two on frame events into the same node, im not super familiar with how blueprints would deal with it

remote meteor
#

feeding 2 just means it would call twice

#

depends on how you insert the World Direction and the other parameters

#

as long the values are correct, there wouldnt be issues

smoky marsh
#

awesome

#

thanks!

coarse lava
#

Hi guys! I have a weird problem at hand. There might be an easy fix for it but I can't seem to find it. So...

  1. I have chairs in my game. These chairs spawn invisible "sitting pawns" on top of them at the beginning of the game. This works.
  2. When I click the chair I will possess the "sitting pawn" and there's a smooth transition between the camera of the actual character and the camera of the "sitting pawn". This works.
  3. When sitting, I want to limit the camera angle so that the player can't look around like an owl (or like the girl from the movie Exorcist). This... works and doesn't work at the same time.

So... I've used PlayerCameraManager for the camera-angle-restriction but it only works correctly when the chair is facing a specific direction and fails when the chair is rotated to face any other direction. It feels like the PlayerCameraManager pitch/yaw/roll are based on the actual world and not relative to the situation. How should I work around this problem?

glossy bane
#

How would I go about sending an interface message from one BP to multiple others? Since both INT message node and does implement interface can only take 1 object reference, how would it make sense to call an interface implemented in numerous BP's?

remote meteor
#

you need to calculate the limit based on the camera rotation

#

since the values are absolute and not relative

remote meteor
coarse lava
#

So should I get the world rotation of the pawn and then, based on that rotation, do the same thing as I did above but with some math?

remote meteor
#

rotation of the camera

glossy bane
coarse lava
#

@remote meteor Oh yeah. Ok. I figured doing it with some math-stuff might be the case but I'm not sure how to go forward with it. With my stupid-brain I think I'd have to make the same mouse-restriction for at least four different directions before I'd be starting to "get the picture" of how I'd implement it for every direction.

remote meteor
#

this both means the same thing underlying the blueprint graph

#

performance is more or less the same, the more important part is the how you would like to structure your object relationship

#

event dispatcher requires the exact reference to bind them

glossy bane
remote meteor
#

in my opinion it doesnt really matter

#

if you really want the best performance, full cpp is the only way

glossy bane
#

If I understand correctly, if I have something that should happen in 5 different bp's, using the interface to loop trough 5 objects and call the function should logically be better then calling out to all blueprints for it to find the 5 that have a binding?

remote meteor
#

say you have a manager and some spawned objects

#

lets say event A happens on the manager and you would want to tell your spawned objects to do something

#

if the relationship is like this, you probably already have the reference of the spawn objects in your manager

#

you can straight away for loop the stored reference and call the respective functions

#

this is one way

#

say you have a pawn and your game state

#

you want your pawn to listen to some event in your game state, for example, OnCinematicViewChange which the ED belongs to the game state

#

your game state might not have all the reference of pawn on hand

#

in this case it makes more sense for the pawn to get the game state

#

bind the OnCinematicViewChange delegate

#

and when someone else calls the delegate

#

your respective pawns can do it such

#

it really depends on the use case which one is better

#

for interface, it would be extremely useful for Interact event for example

candid nest
#

Hey i have a static mesh something like this

#

But when i import it in my actor bp it becomes this can anybody help me

glossy bane
#

I see, it's abit confusing as I'm trying to min-max any performance I can get, in most cases the interface is a simple way of solving it, but in this specific case I'm literally checking if the player should be dead, this check or message has to come from multiple BP's, and it should call events in multiple others

remote meteor
glossy bane
#

So it just wasnt as straightforward what would be best, because calling the message requires me to have an established reference to all BP's that implement the event

candid nest
#

@remote meteor I didn't touch that

maiden wadi
glossy bane
maiden wadi
#

I hate youtube so much.

remote meteor
glossy bane
#

so what I've been using is a simply ED call everywhere he should die, and I would bind it everywhere I need something to happen whenever he does die

#

not sure if it makes sense

remote meteor
#

oh

#

right i get you

#

for killing the player

#

your actors can call an interface to the player pawn to kill it

glossy bane
#

yeah like one is " not rendered for X s", other is has overlapped a mechanic that kills him, etc

remote meteor
#

or you can use apply damage event that is already implemented in all actor and have like a hp system

#

for after the player is dead

#

and other other actor to do things

#

you can make use of the game state

#

player tells game state im dead

#

calls a delegate

#

and other actors binds the player dead delegate on game state to do other stuff

glossy bane
#

I mean I havent been using apply damage and such because there is no health pool, player has 1 life and everything that does "damage" is an instant kill

glossy bane
remote meteor
#

yeah it makes sense to do this

#

because your game state doesnt need to know every other actors that needs to perform some action after player is dead

glossy bane
#

what was mainly confusing is if going over to an interface with a for loop everytime the player died events should be called is going to be better for performance vs calling and binding

glossy bane
remote meteor
#

in unreal engine theres like a few key design

#

game mode

#

game state

#

player state

#

player controller

#

game instance

#

to name a few

#

for each persistent level

#

you have a game mode and a game state

#

you can make use of either one as a hub to communicate between all the actors in your level

glossy bane
#

yeah I have set up my own game mode, player controller game instance but I havent touched game state

remote meteor
#

as everyone can access them

#

as for what is the exact difference, it doesnt matter that much in a single player game

#

you can use either

#

but it will matter when it comes to multiplayer

glossy bane
#

I understand so it's another blueprint I can use because it is always consistent troughout a persistent level, like the gamemode

#

It's 100% singleplayer

remote meteor
#

yes

#

i will just give you the example

#

game mode will only exists in the server

#

but game state exists in both server and client

glossy bane
#

right so your suggesting I make a custom game state, and inside it have the function that should do everything whenever the player dies

#

instead of having them be spread out trough different bp's

remote meteor
#

for simplicity, you can use game mode

#

have a delegate OnPlayerDead

#

when your player dies, calls it

glossy bane
#

a delegate is the custom event that comes off of the ED binding right?

remote meteor
#

these ones

#

they are called a delegate

glossy bane
#

right but you mean have a dispatcher with a binding that delegates to an event?

#

inside the gamemode

remote meteor
#

the binding can be placed in your BPs that needs to perform task after the player is dead

#

game mode is just to hold the delegate

glossy bane
#

so just create the event dispatcher?

#

I think I understand

remote meteor
#

some other blueprint that needs to do stuff after player death

#

for example

glossy bane
#

I mean this is essentially how I have it setup now

#

I perform the call everywhere the player dies, and have the bindings that do stuff in different blueprints

#

I was just wondering if this can be optimized with an interface instead of the delegate

remote meteor
#

that should be the ideal way to do it

glossy bane
#

I understand thanks

remote meteor
#

to do it the interface way

crude dew
#

Hi, How could i get a text render component to always face the camera please.

remote meteor
#

your bps need to submit themselves to the game state and stored in an array

#

when things happens

crude dew
#

This is what i have at the moment it kinda works but it rotates the text in world.

remote meteor
#

game mode will call the interfaces

glossy bane
maiden wadi
#

@glossy bane
People who do not understand how the engine actually works are under the impression that Interfaces are the godsend of all because it can help them dereference their project's classes from one another. If you interface everything, nothing has a hard pointer to another class besides the interface. This avoids casting.

The reason why casting is "bad" is because is because of how Unreal handles loading objects. Lets say you have three classes. You have a custom Character, an Apple which inherits from Actor, and a Datatable.

You have three hierarchies.
UObject->Actor->Character->MyCustomCharacter
UObject->Actor->Apple
UObject->Datatable->MyDatatableAsset

When Unreal creates an object it has to have that object's class default object loaded up to copy from. So lets say you have an empty map with nothing but a SpawnActor node on beginplay. You specify Apple's class here. When that map is loading, it also has to load up Apple from hard disk to memory long before that node is ran. Of course UObject and Actor already existed because other things loaded them up as they're used in the things that have to start the map.

Now you add a Datatable pointer to Apple as a blue variable in it's variable list.

The moment you load the map, before Apple's default can be loaded into memory it has to check if Datatable is loaded and load it if it's not.

Now you specify your own Datatable in that pointer.

Now loading the map has to not only load up the tiny Datatable class, but also load the custom datatable you made into memory.

Now you put on Apple's beginplay a GetPlayerCharacter->CastToMyCustomCharacter.

Now when you load the map, before Apple can load it has to make sure that Character class as well as your CustomCharacterClass are both loaded and ready for use in memory before Applie can be instantiated. Note that a custom character does not exist yet, you've only cast to it.

#

The reason I explained that is because that is how hard pointers work, hard pointers are the usual medium blue variables in BP you use to call functions or interfaces on objects. Now, if you only call an interface function on MyCustomCharacter from the Character pointer instead of casting to MyCustomCharacter, no hard pointer to the type of MyCustomCharacter ever exists you only load the interface instead of the MyCustomCharacter when loading Apple.

This thought process is fine, until you realize that over 85% of a game's memory use has nothing to do with core classes. Memory use is largely taken up by assets. Assets being models(Static and Skeletal Meshes), textures/materials, sounds, etc. If you have a lot of these hard pointed to on a character and you cast to that character, you load ALL of these, which can make it seem like that character is huge when in reality it's just the stuff the character is pointing to. Learning how to handle your hard pointers, and learning how to use SoftObjectPointers will not only make you a better programmer but eliminate the useless need for interfaces.

Also to note about interfaces, calling an interface function in BP is processor speed wise slower than either event dispatchers or casting to and calling a function on an object. So when someone tells you that interfaces are "more performant", what they really mean is that they're too lazy to manage their project.

crude dew
#

The top image is what I have being output at the moment and the bottom image is what I was looking to achieve.

maiden wadi
odd ember
#

is this one of those "find 5 differences" images

maiden wadi
#

Only four!

crude dew
#

@maiden wadi Yes ๐Ÿ™‚

maiden wadi
#

Three names and size.

crude dew
#

LOL

#

The top image shows the text "Looking at the player and rotates to keep looking" kinda creepy lol

#

but i want it to be flat facing camera text render.

#

i know im using the wrong node with "Look At Rotation" but not sure how i set the rotation to always face camera.

maiden wadi
#

That's semi complex to do well. You can start by using a screen space widget component. That gets costly after a while though when you have a bunch of objects. Also harder to manage the distance display.

crude dew
#

I tried using a screen Space widget but the positioning of the widget goes all weird when the player moves around

meager spade
#

Depending on camera almost all you have to do is set Z rotation of the widget to camera + 180 no?

odd ember
#

a sprite already has the look at functionality

glossy bane
maiden wadi
#

Personally, I would probably consider writing a ui manager for it. Let the objects register themselves. and let the manager decide what's shown. But that's also costly in BP because of loops

meager spade
#

I have this to make sure a component is always facing my camera, it's cpp but basically all math

FRotator NewRotation = CameraControllerRef->GetSpringArmRotation();
NewRotation.Pitch = FMath::Abs(NewRotation.Pitch);
NewRotation.Yaw += 180.0f;
NewRotation.Roll = 0.0f;
NotificationManagerComponent->SetWorldRotation(NewRotation);```
crude dew
#

Ok i think i can understand that code.

#

Not even looked at CPP tbh I tried looking at CPP a few years ago trying to display some images through SDL and omg..... I never went back lol

meager spade
#

If I'm not mistaken Pitch = Y, Yaw = Z and Roll = X

#

Basically all you should have to do is get your camera rotation, take Z + 180 and take the abs value of Y and set that rotation on your widgetcomponent

odd ember
#

ehh

#

pitch x, yaw y, roll z on the axes

#

a good way to remember this is pitch is "nodding". yaw is "shaking your head" and roll is "tilting your head"

meager spade
remote meteor
#

its not

meager spade
#

Okay mb then

remote meteor
#

unreal Z faces upwards

meager spade
#

I almost never do rotation stuff in UE so that's why I said I'm not sure ๐Ÿ˜„

remote meteor
#

so rotating on Z is like "shaking your head"

crude dew
#

This is waht i think the conversion looks like

meager spade
#

Apparently not, since I said the wrong axis'

#

๐Ÿ˜‚

crude dew
#

on the tick event

meager spade
#

They will help you figure it out, yeah on tick

odd ember
#

the trap with rotations is: the direction you rotate around is different from the rotation direction itself

meager spade
#

Nvm that looks good I think

crude dew
#

Seems to keep it facing the camera but now just seems to "wander" from location XD

#

This is the master item I created the others from i changed to world display so you can see the widget location

main lake
#

Simple question : Is it possible to have a cube render only the faces visible to the player and not the others ? Like if you have 1 cube next to 1 another cube, the adjacent surfaces between the 2 cubes don't render to not waste resources.
How would I go about that as I don't know how to make each face has its own texture and how to not render a surface

maiden wadi
# glossy bane Thanks for the great explanation, it makes alot of sense that casting to an acto...

Even simply casting is enough to force that thing to be loaded. You don't have to save the pointer. There is a small difference with Asset types and other classes. Asset types have their own class of course, Static Mesh, Skeletal Mesh, DataTable, Material. These are all classes. But those classes are infinitely tiny. The data they represent is large though. This is why if you have a character class that has a skeletal mesh, and three static meshes. You start off incredibly small. The space it would take in memory is nearly nothing. Now add a single static mesh to that character, and the space it takes goes up by x5 to x500. Multiply this by every single different asset you use. The trick is that once you load an asset though, it's loaded. So having 300 of the same character with the same assets is nothing compared to having even 10 characters with all different assets when it comes to memory management.

For using SoftObjectPtrs, you use them on the assets themselves. You make datatables or maps of soft object pointers to meshes and load them in when they're needed.

odd ember
main lake
odd ember
#

3d package

#

like blender

main lake
#

But how would I do that in Blender ?

odd ember
#

ask people in a blender discord

main lake
#

But the thing is I need to code that through blueprint too like : if cube 1 is next to cube 2 do not render this face

odd ember
#

then you're looking at the engine renderer

remote meteor
#

then make the cube out of plane

odd ember
#

nah making 6 planes is more costly than making a cube

main lake
maiden wadi
#

@glossy bane Consider this. You have a skeletal mesh in a character, gun for instance. You have 100 guns in your game. If you specify these as hard pointers, you load all of those meshes into memory at once. Putting them in a datatable of softobjectptrs to skeletal/staticmeshes and only loading them to set them on the skeletal/staticmesh component ensures that only one weapon mesh is loaded per character at a time. Along with that mesh are all of the materials, this also applies to particle effects. It all adds up fast.

main lake
#

Or at least being able to expose those 6 faces in the editor and choose with a boolean if each face renders or not

odd ember
#

nope

tawdry surge
#

It's not a worthwhile thing to do anyway

main lake
odd ember
#

because you're not going to be better at optimizing the renderer than the people who have made the renderer

#

don't you think they have thought of this?

glossy bane
odd ember
#

nevermind how slow it would be to have any of this done through blueprints

tawdry surge
#

Well nanite is their answer to it, but unless you have thousands of cubes on screen at once the benefits will be slight

odd ember
#

the renderer is one of the most optimized parts of the engine, because it has to deal with everything

main lake
# odd ember don't you think they have thought of this?

I don't know but if they did then I don't need to do it then. I know they did that for each object (as a whole ) to render or not depending on the visibility and the cull distance, but I'm not sure they did that for each face of static mesh, so that's why I'm asking on how to do that.

odd ember
#

can you accept that you are out of your depth here?

maiden wadi
#

@glossy baneYou can do it in the variable selection. Sec. Editor wasn't open.

main lake
odd ember
#

that you're trying to do things without having an idea of the implications

main lake
#

I'm just trying to do good to have my game optimized, is that a wrong thing to do ? ๐Ÿค”

odd ember
#

if you don't know how to optimize, yeah

#

it is

#

you're going to cause more harm than good

remote meteor
main lake
#

ok then I will have each cube next to each other with all the faces being rendered (if the engine doesn't handle that)

remote meteor
#

ops i forgot to link the targets