#blueprint

402296 messages ยท Page 830 of 403

vital aspen
#

That one just adds the Inventory name to the top of the slots

maiden wadi
#

I know. It can go before your loop though. Only needs to happen once.

#

But there is another little red arrow there as well.

vital aspen
#

ok, I changed that.

maiden wadi
#

The other little red arrow should pass your struct in. If you remove your SetText of the ItemCount that you just posted, your binding should run correctly after you pass that struct in.

vital aspen
#

@maiden wadi I don't know why I'm getting errors when I didn't get them before

#

it points right to the add.

maiden wadi
#

Looks like something is wrong with your InventoryComponent pointer.

vital aspen
#

in the pickup master

velvet dagger
#

@trim matrix

vital aspen
#

Hmm, Now it's not seeing the inventory Component. That makes no sense it was work a few minutes ago

velvet dagger
trim matrix
#

oooh

velvet dagger
#

This workkksss

trim matrix
#

oh my gosh

#

lemme do

#

lemme do

velvet dagger
#

Sorry it took a bit, my computer's sorta slow :/

trim matrix
#

you good

#

I am appreciative you took the time to help

#

thank you

velvet dagger
#

Please tell me if it works for youuu

trim matrix
#

gotcha

#

still doin

#

it works

#

thank you so much

#

you are a life saver

velvet dagger
#

: )

vital aspen
#

@maiden wadi I had to put the SetText back where it was. It was causing some of the errors.

mild crystal
#

how can i set up a boolean and tell when is true or false

#

?

maiden wadi
vital aspen
#

Yes, I know

velvet dagger
vital aspen
#

I posted the errors above. This is what I have left

tranquil abyss
#

This one is more of a architecture thing rather then a problem.

So I have my database of items and when I pic up an item it basically copies the row from the database into the inventory, Cool and everything works on that end.

My wonder is how should I handle when drops happen with rarity states (basically dynamic increase based on chance) Once the items is in the player inventory its is not an issue, but when the AI drops something its only an actor on the ground and not going to have this data... Will i need to make a copy of this struc on creation of the the weapon as a variable in the class. Hope this makes sense

mild crystal
velvet dagger
velvet dagger
maiden wadi
tranquil abyss
#

set values tho

#

so keeping the data on the dropped actor would just be setting a variable pretty much

vital aspen
#

if you want to learn more about what I'm doing, watch this from 10:44 This is where I got the idea from https://www.youtube.com/watch?v=4ctSlAdMZF8&list=PLSc29g4OjKUOMwWYdslgKpZRtTJU2jFpZ&index=2

tranquil abyss
#

or a copy of the struct and then transfer that over

maiden wadi
#

That works just fine. ๐Ÿ˜„ But yeah, your dropped actor would definitely need that rarity type.

vital aspen
#

I'm watching it again to make sure everything is right

tranquil abyss
#

I would need to then store in in the data table since my inventory is storing a Class actor reference

#

and not the actor its self

maiden wadi
#

Most likely your inventory component should just have some sort of Spawn code that at the same time spawns an actor, sets that data, double checks that the spawning went well, and then removes that item from the inventory.

tranquil abyss
#

so is it dump to keep some of the weapons variables lets call it in the struct (the ones that can be dynamic)

#

since im creating an actor based on class when I use the item

#

im thinking

#

when the ai dies have that data in the actor

#

then when A player picks it up pull that data into the struct for that spot in the array of the players inventory

#

then when he uses it set the values again in the weapon

#

it would work 100% but im wondering if this is a dump practice type of thing or reasonable

faint pasture
tranquil abyss
#

๐Ÿ™‚

vital aspen
#

@tranquil abyss He does the same thing in the video. He adds it after the forloop

tranquil abyss
#

finally im starting to think like a game dev

#

๐Ÿ™

faint pasture
#

So when stored in the inventory, it's just a struct. Dropping an item into the world removes the struct from inventory, spawns an actor (struct gives the actor class) and sets the variable MyItemStruct on the actor

tranquil abyss
#

makes total sense

#

Also does this run on actor creation

#

I can use it to do that logic initially

#

Im thinking

#

wait no. that would run on each time I "pull the weapon out"

#

so that needs to be somewhere else

faint pasture
#

Depends on what pulling the weapon out entails.

tranquil abyss
#

ill show you

faint pasture
#

I understand the problem, but it just depends on if you are spawning an actor every time you pull a gun out or not. That's a personal choice a

tranquil abyss
#

basically this

#

creating an actor from a Actor Obj ref

faint pasture
#

That's a horrifying event name

#

But yeah, that's basically the same as dropping it.

tranquil abyss
#

item in slot 1 of the inventory is equipped

#

by design

#

well the weapon

#

specially

faint pasture
#

I would use SpawnWeaponForSlot1 but you do you bb

tranquil abyss
#

I think I did that because this

#

basically the first 3 weapon in the inventory array are the active weapons and the ones you can switch between

#

might be dump but it works lmao

vital aspen
#

@maiden wadi I don't know what I did I fixed the errors and Yes I moved that ToText out of the forloop

#

@maiden wadi It's fixed

#

Now I have to work on stacks and so so on. @maiden wadi thanks for your help

hollow inlet
#

i feel like this is dumb: i have two integers, and a map of integers to integers, and i want to set values in the map.. but none of the integer pins connect?

#

i guess 'SET' is trying to set the value of the whole map, isn't it

prime stump
#

Hi, can anyone tell me why this print wont run? everything before Enter and Open works?

tight schooner
#

arrays work in a similar way too

white field
#

is there a way to create something like a stack via bp?

spice smelt
#

how do i put a "infinite" constant in blueprint?

icy dragon
spice smelt
#

lol there is such thing as infinity in float numbers since at least the day IEEE754 was enstablished, and it's supported for floating point operations in any conforming CPU/compiler

#

well nevermind I'll just make a static function that returns it from C++

icy dragon
spice smelt
#

well comparison and arithmetic operations in blueprint should still work, after all it's c++ behind

west wigeon
#

how expensive is it to get the system time/date

white field
#

not

west wigeon
#

torn between using tick for perfect time or a .01 timer thats slightly off

white field
#

don't use tick unless you have to

#

no human knows the difference of .01 in date

west wigeon
#

yeah, but it adds up/is slightly slower over time, at least comparing it to the ticking method

#

time isnt critical, but im maybe just being too focused on it

icy dragon
#

Use looping Timers with large duration.

#

But practically it's not that expensive on tick, so have fun.

white field
#

it should be a cheap call but it also shouldn't drift if you sample it regularly afaik

west wigeon
#

the one with .01 tick always goes 1,2,3,4,6,7 and skips over 5

#

and the text update display refreshes every .1

mint lava
#

a frame is only 16ms

west wigeon
#

or maybe i should just use event tick and increase the actor tick interval

#

or is even that frowned upon

mint lava
#

That is widely recognized as a best practice

spice smelt
#

actors have individual tick intervals? ๐Ÿค” how does the main loop handle that

west wigeon
spice smelt
#

wouldn't you lose any chance of parallelizing the execution for all instances of the same actor?

mint lava
#

If you expand that, they also tick in groups

spice smelt
#

assuming any high level engine even tries doing that, idk

mint lava
#

I have tick disabled in most places but some situations warrant it

#

you can also just enable disable tick as needed

spice smelt
#

interesting

#

if you have something just visual, like a fan's blades spinning, would you do that in tick increasing its interval until it gets noticeable?

mint lava
#

I would use a rotating movement component

west wigeon
#

does the rotating movement component just secretly use a timeline or something

spice smelt
mint lava
spice smelt
mint lava
#

It's a component, it just updates another component

#

IIRC it calls MoveUpdatedComponent

spice smelt
#

I don't see where to tell it which component to rotate

west wigeon
#

ah, so it would be technically better to have a timeline setup along with a render check

spice smelt
#

parent socket?

west wigeon
#

it rotates the whole actor unless specified

mint lava
#

Just add it as a child to the rotated component

#

static or skeletal mesh likely

#

I know this is the BP channel but the C++ is remarkably easy to grok

spice smelt
mint lava
#

sorry yeah it's a move component which are different

#

You can either have your collision shape as a root

#

or you can call SetUpdatedComponent from BP

#

in the movement category

spice smelt
#

but still i'm moving the problem one step away, what is the ideal place to do acceleration-deceleration calculations for the rotator speed? Back to tick? ๐Ÿ˜…

mint lava
#

if you want to interp you have to tick

#

that's perfectly fine

west wigeon
#

agreed, i use it a lot in some of my scenes

spice smelt
#

ok ty

mint lava
#

Like if I'm using scroll wheel to zoom a camera spring arm

#

I will tick while the desired length doesn't match the current length

#

that's ok, move on with your game and sleep tight ๐Ÿ˜„

#

You can say I said so

west wigeon
#

thats fine bc scroll is short

spice smelt
#

sorry another question, are these equivalent?

mint lava
#

I don't believe Delay is callable within functions or other subgraphs

#

You can cancel the timer

dawn gazelle
spice smelt
#

Ok, thanks!

west wigeon
#

is there a way that an int variable can add a 0 if the number is a single digit

#

ie, 08 instead of 8

west wigeon
#

oh wait yeah that exists

glass magnet
#

hey yall

#

sorry im really stumped with something here

#

i just cant wrap my head atound it

#

im trying to get a basic attack range and i have get horizontal distance to between 2 characters but i cant figure out how to translate that into the actual function im trying to achiev

brazen merlin
glass magnet
#

hi conrad FrogWave

brazen merlin
#

hello

thorn trellis
#

Who are the two things you're trying to get distance between?

glass magnet
#

should target be my actual target and other actor be myself?

#

myself and a target- wait x.x

#

i had something for a second wha

thorn trellis
#

Have you printed what the distance is? Or printed the display names of the two things you're grabbing?

glass magnet
#

meaning what exactly

thorn trellis
#

debug / print string the things above

brazen merlin
glass magnet
#

x.x

#

so the target is player pawn and the other actor (me?) is my controller?

brazen merlin
#

no...

#

you want the distance between the player and thing the player is attacking right?

glass magnet
#

yea

brazen merlin
#

so target is thing the player is attacking

#

it actually doesnt really matter which is which

glass magnet
brazen merlin
#

but you are not feeding in the victim

glass magnet
#

target is my target and other actor is my player no?

#

code ๐Ÿ˜Ž

brazen merlin
#

yeah, they're just names for the inputs

glass magnet
#

yeah

brazen merlin
#

if that makes sense then go with that

glass magnet
#

is the get horizontal distance to is greater than attack range float correct?

brazen merlin
#

but you need to get a reference to the thing you are attacking

glass magnet
#

get a reference meaning

#

well like in this sense

brazen merlin
#

well, there's no where in this code that is saying "this is what im attacking"

glass magnet
#

yeah ijust have the distance

thorn trellis
#

what two things do you have the distance between?

glass magnet
#

this is the thing i have down

brazen merlin
#

right, so you'll have to figure out how to get "the thing you are attacking" and feed that in as target

glass magnet
#

ah ok

#

so would

brazen merlin
#

stop pluggin in controllers for this ๐Ÿ˜„

glass magnet
#

you mean i have nothing to show what im actually targeting

#

wait

#

wdym

brazen merlin
#

yeah, there's nothing here that says this is my target

glass magnet
#

ah ok ok lemme get that

brazen merlin
#

you are trying to measure the distance between two actors, controllers dont have a location in the world

glass magnet
#

i actually know what to do in that case SmirkingLulu

#

so get player character would that work in this case?

brazen merlin
#

so long as your player derives from character class

glass magnet
#

yeah

#

it do

#

so lemme go try something

#

ill be back ๐Ÿ˜Ž

harsh coral
#

How do I make a timeline that just goes on forever and goes infinitely higher?

#

Like never stops

thorn trellis
#

you can make a looping timeline, is that not what you're looking for?

harsh coral
#

oh

#

how

#

but i want it to keep on getting higher

#

not go 0 to 1 and then 0 to 1

thorn trellis
#

I feel like having a timeline loop on increasingly larger numbers is a memory disaster waiting to happen

mint lava
#

what's the bigger problem you're trying to solve

thorn trellis
#

^

glass magnet
#

i realize now that with the way i have it set up its only looking for actors that are blocking it not specifically pawns or anythin

brazen merlin
glass magnet
#

wait

#

ok well its slightly working

#

you were right having the and is working the same as 2 branches currently

#

rn its noticing all of the pawns no matter the distance and i believe thats because of the AND?

brazen merlin
# glass magnet

not quite. the distance check is between pawn and character, but both are player

#

also, pawn is a parent class of character

glass magnet
#

so its just catching itself?

brazen merlin
#

yep

#

since you now have the get result under cursor, you can get the actor from that if there is one

#

you should see if it is valid though, before performing the distance check

glass magnet
#

if it is finding the player correctly?

brazen merlin
#

find player is not the problem

#

finding the victim is

glass magnet
#

ah ok ok

glass magnet
brazen merlin
glass magnet
#

oh

brazen merlin
glass magnet
#

so i take the hit actor from

#

break hit result

brazen merlin
#

come to think of it, you'll problably get more actors than you like since actors are almost anything in the game world

#

so you would need to check if the hit actor matches your enemy class or, if you use tags, work that way

glass magnet
#

somehowits set up to get everything but the pawn target-

brazen merlin
glass magnet
#

yeah

glass magnet
glass magnet
#

how can i utilize the is valid node?

brazen merlin
glass magnet
#

wait to see if the target is a valid target

glass magnet
# brazen merlin oof

just a quick question but, is there a way for me to discern pawns based on a team system? in that way i dont catch myself when looking for distance?

brazen merlin
#

yeah, but mp is a whole other layer of stuff to keep in mind on top of this

glass magnet
#

ah thats mb

brazen merlin
#

i usually see enums for teams in mp

glass magnet
#

thats what i just saw when googlin

brazen merlin
#

i dont do much mp so im not the best source

mint lava
#

Tags would be good too

brazen merlin
#

i would try using tags, they should be fine for mp

glass magnet
#

how can i use tags for mp though is my question

#

because

#

at least how i see it is

#

wait

brazen merlin
#

tags are a list of names that any actor can have

glass magnet
#

are you able to assign tags in blueprints or

mint lava
#

Sure

glass magnet
#

yeah i know that i just mean like wouldnt i have to give tags to characters which can then be caught later

#

even by friendlies

brazen merlin
#

yeah, but it sounds like you have team1 and team2

glass magnet
#

yeah

brazen merlin
#

so logic wise you check if they have the same tag or not of their own tag

#

so when you spawn your players or whatever, you give them a tag like "team1"

glass magnet
#

ah ok ol

brazen merlin
#

the logic would check "if my tag is this, and the hit actor has the same tag, they are my friend"

#

you would not be checking for team1 or team2

#

you would check for a match or not

glass magnet
#

but for

#

yeah

#

ok

#

that makes sense

brazen merlin
#

because mp

glass magnet
#

im going to try and build the basis of enemy or player and worry about the mp stuff lattterrrr?

brazen merlin
#

lol later in another project sure

glass magnet
#

i meant later in the project once i know i have this down i will add that

#

honestly

#

actually

#

ig theres not much reason to

brazen merlin
#

you would pretty much rewrite it all

#

either make it for mp or dont

glass magnet
#

mp it is!

#

x.x

brazen merlin
#

you've chosen hard mode ๐Ÿ˜„

glass magnet
#

for now ima just ctrl c + ctrl v my character and give one the team 2 and one the team 1 tag

#

then see if that works

#

then ill do

#

all the hard stuff

#

that sounds like the correct way

brazen merlin
#

sure...

glass magnet
glass magnet
brazen merlin
#

copy pasting... that sounds right...

glass magnet
#

x.x

#

im just taking a character and changing the tag

brazen merlin
#

yeah.... i dont really think thats how it goes

#

your game mode needs to handle assigning teams

glass magnet
#

No ik

thorn trellis
#

Owyn, with your questions you should really take to heart what Conrad said here: #blueprint message

You should focus on some small project to get well acquainted with ue4, even if it's a stupid single player one first

glass magnet
#

Im just trying to figure out the code for noticing enemy team vs same team before I go into all thar

#

Yeah ik stumpy

#

Trust me I do

#

But I am learning bigbrain style

#

I probably will end up doing that but for now I'm going to do this

magic parcel
#

is there no "run editor utility widget" in ue5?

#

right clicked the widget and didnt see the option

#

saved it, closed engine, opened it back up, no option

brazen merlin
#

widget? ue5? i dont think this is the best channel

magic parcel
#

its a BP

#

but sure

hollow inlet
#

how do you get the value of a map from a key? like foo = dict['key'] in other languages?

dawn gazelle
#

Find

hollow inlet
#

ohhhhh thank you

spark steppe
magic parcel
#

yeah, it was something odd

#

if you create a BP > then use the class, it doesnt work

spark steppe
#

it's based on 4.26 so things might be wonky

magic parcel
#

but if you create the class from the menus it works no problem

spark steppe
#

wasn't editor utility widget introduced in 4.27?

magic parcel
#

yeah

#

and, again, it works when you create it via the menus

spark steppe
#

ok

magic parcel
#

but if you create it via the BP > class, no worky

gray chasm
#

Can you somehow call latent nodes from functions?

#

Or is it just still a hard limitation you can only do that from the top level event graph?

brazen merlin
#

you can call timers inside of a function and timers can call functions

gray chasm
#

Binding an event to a function?

#

Or some other way?

#

ie. Something other than BindEvent to ... or is that what you mean?

frozen lava
#

Hi, how can I get the enum class name of an enum variable?
I've tried 'EnumToName' function, but it return - MyEnum:NewEnumerator1.
which I dont know why it added 'NewEnumerator1' at the end.
Is there a way to simple get MyEnum?

echo salmon
#

Any idea why it doesnt teleport my Ball Actor to the new location ?

brazen merlin
#

but you can still call set timer by event in a function, then hook up a create event node to the timer delegate and call it like that

formal dagger
#

hey guys, i've got a question. I would like to let the player choose a folder path where his/her music is located to be played IG (like in sims or space colony), is it doable in BP ? Or do I have to pre-create a folder where to copy the musics ?

marsh hamlet
#

I have a short question about spawning an actor. Can i spawn Actors in shape or something?

candid nest
#

Hey i want to make a system in which when i hit a obsticle one character should born i able to do that but sometimes when i play many characters born how to fix this

river pine
#

HI Guys, i have 20 closets with a camera inside( which is for the Player when he enters the closet) so the fps are 20 when they are in the leevel .. how can i deactivate the cameras? I tried uncheck autoactivate but no effect.

gentle urchin
#

Wouldnt it be easier to override the cameramanager at that time?

#

But you can set them to auto deactive/activate

#

Ah. You tried.

river pine
#

yepp its wierd i dont activate them but they still seem to capture for no reason

#

i tried, hidden in game, visibilitz off, deactivate. uncheck auto activate nothing has a effect

#

the camera goes black, but my framerae is anyway low.. if i delete the camera it goes froom 25fps to 120 fps

spark steppe
#

i don't think that the cameras are an issue

#

they don't render as long as they aren't your view target

river pine
#

yes ben

#

just found it...

#

its the mesh i set visivle.. it seems that skeletal mesh which i use to show the player hidding is causing the issue

torpid hound
#

Is there a node that is basically a Delay, but will also fire off a execution pin every frame until the duration is done?

river pine
#

quick one, how can i destroy exactly this spawned actor? its a flipflop before that.. so was thinking liek this it should work but ope

remote meteor
#

save the actor reference as a variable

#

destroy it from the reference variable

river pine
#

aright

#

thanks

remote meteor
#

also before you spawn

#

you should check if the variable already contains the spawn actor and is valid

river pine
#

yes makes sense

#

dang it, i made a reference in the actor which will be spawned.. annd get ti from here but it doesnt destroy

harsh coral
#

how do i make a loop with a delay?

sturdy gull
#

I have this issue where my character just glides over the ground

#

instead of walking animation

#

Just cant find where it goes wrong

harsh coral
#

where

#

can i have some actual help

gentle urchin
#

Right click the return and promote it to a variable

#

Then replace your flipflop with an isvalid

#

If it is valid, destroy it, if not, spawn it

maiden wadi
# sturdy gull

Have to ask. Why are you bothering with an interface if it has a hard ref to the character? You've went to an extent to avoid casting to the class, only to have the same affect with a slower call.

sturdy gull
#

Am watching a tut, they said this was a better way then casting

#

And somehow he can link this, and I cant.

maiden wadi
#

Youtube...

sturdy gull
#

yea xD

#

feeling so dumb when doing this.

#

yea true

#

But im stuck rn, like it does all the movements

#

But just not the animation

maiden wadi
#

Also you have to make sure that the anim bp isn't showing the editor's instance. Editor always shows another instance of the animbp when you play in PIE.

tight schooner
#

Might need a console command for that...

#

In which case it would be Execute Console Command node

#

to set a fixed frame rate. I don't recall the command offhand.

#

Dunno. I mean, it's whatever you last set it to.

#

If you want the actual live game frame rate as it runs on the device

#

1 รท Get World Delta Seconds = framerate

chrome nymph
#

hi all - wondering if im going about this the wrong way

#

i'm trying to repeatedly spawn actors (that move) based on their inital location in the world

#

i'm unsure how do i access its original location in the world - and not its current one.

#

for context - i'm creating barrels that roll down a corridor (that get destroyed when they hit the wall or player)

tawdry surge
#

You should just make an empty actor BP and use it to spawn the barrel at it's location

#

Then the barrels can roll off and the spawner remains to make another barrel.

chrome nymph
#

or - can i make it so that the spawner is just visible in editor but not in real?

versed sun
#

You can se Hidden in Game to true on your Actor

chrome nymph
#

ah!

#

thank you!

#

also just curious - is there a point in using blueprints if you are very familiar with programming?

tawdry surge
#

Yes

#

Its much faster for iterating logic

#

Once you have a class working as you want it then you can quickly convert to C++ if you like

chrome nymph
#

i see

#

thank you - i'll stick to blueprints for now

#

its quite hard to fight the temptation of writing code ๐Ÿ˜›

tawdry surge
#

Don't worry, you still are

chrome nymph
#

can't seem to call the SpawnActor function because the classes of the actors are different

#

do i need to cast them to a generic Actor of some sort?

#

also - is there a blueprint way to create a repeating timer without having to define an event / function?

tawdry surge
#

Nah you wanna just call spawn actor of class, and use the default scene root transform.

And you can use a timeline then call play from start off the finish pin but timer is more elegant and proper

chrome nymph
#

why is assigning the event like this forbidden?

tawdry surge
#

Probably because it's an engine event and is only supposed to happen once. just make a custom event as the delegate

chrome nymph
#

hmm - what exactly is the Event pin on the timer supposed to represent

#

is it invoking the event?

tawdry surge
#

If you make a custom event it connect to that pin. Assigning it as the delegate event

#

Most often it's used with event dispatchers to listen for function calls

lone arch
#

Hey guys , i wanted to make my game compatible with controller , i got it how i would do that and i applied the blueprint too but i cant find how to make the character walk when the analog is pushed halfway and then when pushed max then to the running / sprinting animation
how can that be done? i saw it in many games and find it pretty cool but i dont understand how to go on doing it

chrome nymph
#

hmm im really not sure what i'm doing incorrectly

#

this isn't invoking at all

#

is there a way i can see the generated C++ code?

tawdry surge
#

No. Plug event begin play straight into the timer by event.
Plug on spawn event straight into the spawn node.
Delete the call node

valid juniper
#

I would like to log with BP all effects added to a GAS, is that possible ?

odd ember
tranquil birch
#

hi

#

im having a hard time trying to let my zombies go true the object that blocks me

#

is there a way ?

chrome nymph
#

i'm trying to create a trigger that will destroy actors of a certain type that hit it

#

the problem is - the actors are being spawned

#

how do i pass a reference of the trigger to the spawned actors?

#

do i need to pass the reference to the spawner, then the spawner passes the reference to the spawned actors?

#

is there a better way to do this?

timber knoll
#

yes, do the logic inside the trigger

#

by either casting/object type/tags etc

chrome nymph
#

so the trigger filters for the overlapped object - and if it matches, then it performs the destroy?

timber knoll
#

exactly

chrome nymph
#

can i delegate that to the overlapped object instead?

timber knoll
#

if it matches your filter on the trigger, you can execute a function on the overlapped object sure

#

it's way more intuitive and flexible to have the trigger basically doing the heavy lifting, with correct setup of the actor to overlap

#

rather than having to manage extra references for these tasks, what you do upon an overlap is up to you ๐Ÿ™‚

tranquil birch
#

tried this to

timber knoll
#

or specific enemies at least, that way you can just ignore them through collision settings

#

you can add new types in your engine settings > collision

#

then assign them to the capsule of your zombie, and on the blocking object set the response to ignore

chrome nymph
#

on a blueprint level - how would this be done?

#

how would the other actors know what function to define?

timber knoll
#

Once you cast, you have access to the functions

#

from the blue As BP Barrel pin

chrome nymph
#

oh - the actors can conform to a protocol themselves

#

i see

#

sorry haha haven't learnt C++ yet

#

thanks for walking through this with me! ๐Ÿ™‚

timber knoll
tranquil birch
#

thanks !

timber knoll
#

Yep so there you have ObjectChannel which can be used to define new ones for your enemy/enemies ๐Ÿ™‚

tranquil birch
#

nice really nice

chrome nymph
#

are events like these always binded by default?

#

or do i need to explicitly assign a binding

#

e.g. on BeginPlay

timber knoll
#

I'd say try it out ๐Ÿ˜› I don't do much blueprinting nowadays

tranquil birch
chrome nymph
timber knoll
#

new object channel

maiden wadi
#

@chrome nymphThey're not 'bound'. They're a BlueprintImplementableEvent. They're called from C++ when Destroy is called on the actor.

timber knoll
#

There we go wise Authaer to the rescue ๐Ÿ™

chrome nymph
#

(completely new to game dev, but have been doing iOS and web for several years)

timber knoll
#

Depends what your goal is

odd ember
#

if you're new to game dev I dunno if it wouldn't be easier to not do VR

timber knoll
#

And if you've gota programming background

odd ember
#

especially as a first project

maiden wadi
#

You'll get away with Blueprint only before you get away with C++ only. Too much of the engine is glued together with Blueprint use. You can get around it, but the point there is that you're going around it. Hard coded assets that don't get updated when you move them in your content browser and such.

#

TLDR, Use both of you want to do things cleanly and easily.

odd ember
#

but also if you're starting from scratch

#

it's not worth doing cpp

chrome nymph
#

gotcha, will stick to blueprints for now. thank you all ๐Ÿ™‚

odd ember
#

unless you have a background as a programmer

chrome nymph
odd ember
#

you'll spend more time figuring out why things are crashing than actually building a game

chrome nymph
#

i'm taking two game dev modules this sem - one to make a VR game and another to make a 3D FPS >_<

#

former in UE and the latter in unity

odd ember
#

maybe I'm showing my age but I will never understand the VR fad

timber knoll
#

Blueprints is way faster for newer people, until you got a grasp of the basics

chrome nymph
#

the learning curve has been quite insane

maiden wadi
#

Oof. I can't even imagine learning two different engines.

timber knoll
odd ember
#

learning two engines at once is not something I'd recommend

timber knoll
maiden wadi
#

Dunno. Zero intention of learning Unity. ๐Ÿ˜„

chrome nymph
#

from my (extremely) inital impressions - it seems like most indie devs gravitate towards unity whereas the pro shops rely on engines like UE more.

#

what are some of the main driving factors?

timber knoll
#

Skill floor being the main thing.

brazen merlin
odd ember
#

so if you're not doing mobile

maiden wadi
#

Also, coding. People are scared shitless of C++. And being a programmer in UE4 requires C++.

odd ember
#

I'd forget unity exists

maiden wadi
#

Unity just caters to solo devs more. Also don't forget that it's been free a lot longer. Much more solo dev oriented community.

odd ember
#

the "free" version of unity is pretty garbo

#

in fact the reason unity isn't great in general is because it is so barebones

#

everything you need is third party

#

so yeah depending on which way you want to go in development I'd recommend picking one engine and sticking with it

chrome nymph
#

hmm, my teams have currently decided to use unity for both projects.
context:
VR = pingpong simulator.
3D FPS = movement based with time dilation as key idea (inverse of superhot - time moves slower the more you move)

#

we're all new to game dev in general - so we dont really have good matrices for deciding which engine

#

do y'all have any directions to share on what we should look further into before embarking dev?

odd ember
#

I guess a unity discord

#

good luck

trim matrix
#

hey what would be the best way to fucking get a pawn reference for the person who owns the player controller?

rose citrus
#

is it better to do 1 branch or no branch but 2 select nodes? I'm not sure if a select that uses a bool variable is equivalent to 1 branch.

trim matrix
#

as get player controller 0 only gets the first player/server

chrome nymph
#

aside: why does the function get executed immediately after BeginPlay fires before the delay kicks in?

tranquil birch
#

hii

maiden wadi
tranquil birch
#

stil having problemns with the collisions,m can i get some help while im sharing my screen ?

tawdry surge
#

Initial start delay is 0

trim matrix
#

that's literally it

maiden wadi
#

GetControlledPawn

trim matrix
#

not a thing

#

like at all

tranquil birch
maiden wadi
chrome nymph
trim matrix
#

in the thirdpersoncharacter

#

wait

#

no

#

uh

#

in the player controller sorry

#

How would I get the controlled player's pawn

maiden wadi
#

GetControlledPawn

trim matrix
#

alright

#

but what if I want to get the person interacting with a widget

#

e.g if I wanted to get the person that is using a widget

#

like this doesnt work in a widget

maiden wadi
#

Confusing naming calling Characters, States. But if you're in a widget, everything is local. So why doesn't GetPlayerCharacter work?

trim matrix
#

because it is using player index 0

#

in the server

maiden wadi
#

Which is the local player's controlled character.

trim matrix
#

but if there are multiple players

#

it just doesnt fucking work

maiden wadi
#

Okay. Lets back up a minute.

tight schooner
maiden wadi
#

If you call GetPlayerController(0) You will get the local player's controller. This is true on Clients and on a Listenserver.

On a dedicated server, it will just be the first player that joined in, which is irrelevant here as widgets don't exist on dedicated servers.

#

So if you call GetPlayerController/Character 0 on a button click, it will get the local player's character.

#

Regardless of machine

trim matrix
#

Uh

#

uhm

#

hold on lemme test that out in my test project

#

one sec

chrome nymph
trim matrix
#

yeah ok @maiden wadi

chrome nymph
trim matrix
#

It works, thanks a bunch ๐Ÿ™‚

chrome nymph
#

this worked - the initial delay variance was being ignored if inital start delay was 0

tranquil birch
#

van someone help me blocking me and let my zombie ai go true the blocking volume ?

#

can*

#

doing this for couple of houres now and im getting frustrated

maiden wadi
#

Recommend reading this. But TLDR, make player capsule block a same channel the volume is, make AI ignore volume blocking channel

spark steppe
#

or use nav modifier volume with an absurde high travel/enter cost

maiden wadi
#

Needs to keep player out. If it was for AI, that would work.

spark steppe
#

oh player, sorry did miss that part

prime stump
#

Hey, does anyone know why this print wont run?

spark steppe
#

swap then0 and then1

#

you may break out of your loop before opening the gate (but this is just an assumption, as BP may behave different than code...)

prime stump
maiden wadi
#

Chances are it's because your overlapping actor was not detected, or it does not have that interface.

prime stump
spark steppe
#

well, he's querying the overlapping actors of the overlapping actor...

#

is this intended?

maiden wadi
#

Then your input isn't enabled in that actor.

prime stump
prime stump
#

all of this is in the player character

#

so the two characters are the same class

spark steppe
#

you may have opened the gate on the wrong character

#

add the character name to your debug messages

prime stump
#

The characters aren't unique to eachother atm they're all the same class so the name would be the same for all of them

spark steppe
#

no

prime stump
#

Im trying to do a revive system where they have to be in the overlap and press the input for it for it to work so the functionality is all running on the character, ive also tried being the downed player and pressing the input but the gate still doesn't open

spark steppe
#

they still have different names

prime stump
#

If it was getting the wrong character wouldn't one of them work?

spark steppe
#

no it wouldn't

#

if you open the revive gate on the wrong one it won't be open if you hit the hotkey on the other character

prime stump
#

hmmm.. so if it is calling the wrong character how could i make sure its getting the correct one?

#

im gonna try it now btw

spark steppe
#

you may just skip the whole for loop and check if "other actor" of the overlap event implements the interface

odd ember
#

that would be too easy

wise swan
#

why does ue automatically convert a get (ref) array into get (a copy) array

spark steppe
#

yea better go with get all actors and iterate over each of them and check if they overlap ๐Ÿ˜›

wise swan
# odd ember show code

i mean there aint anything when i try to make a node as get(a copy) from an array it says alert: modified node to copy node

spark steppe
#

where does the array come from?

wise swan
#

same bp

#

but its initialized on construct

odd ember
#

can't help you if you don't show code

spark steppe
#

local variable? global variable? function return value?

sand bloom
#

Does anyone know why ai move to refuses to move to a location? It only moves to actors

wise swan
sand bloom
#

I tried floats first and then a vector variable but nothing

wise swan
#

this is all its showing, its a BP variable

prime stump
spark steppe
#

because "objects" are always references in some way

#

there's no point in having a reference on a reference

odd ember
#

object references are always pointers

wise swan
#

so if i wanted to modify that reference then?

spark steppe
#

if you modify "the copy" it affects the object if that's what you are curious about

#

and therefor everything that references to the object see's the change, too

wise swan
spark steppe
#

not in case of objects

#

well, it may create an copy of the pointer

#

end of day, it doesn't matter to you

brazen merlin
# prime stump Is that not what i did originally?

Looking at the bp you posted, i dont think you want to get the overlapping actors of other actor, im pretty sure you want to know what this actor is overlapping, so wouldnt self be right and not other actor?

spark steppe
#

i think he doesn't even need to for loop over every overlapping actor for that action^

odd ember
#

get as ref is only relevant for special cases

brazen merlin
spark steppe
#

or keeping a list of them

#

but yea, that will be a fun journey if he struggles on the begin overlap ๐Ÿ˜‰

brazen merlin
# spark steppe or keeping a list of them

Thats what i was thinking of doing... to store each overlapped actor in an array to manage checking if they are still overlapped or not. Dont think for loop is needed still either.

spark steppe
#

yea, i also prefer the list, probably faster than overlap checks for every overlapping thing

brazen merlin
#

I find a lot of ppl forget about sphereOverlapActors which is a great one-off fire check. I remember a long time ago turning on and off my overlap... i was such a noob ๐Ÿ˜…

odd ember
#

"forget"

#

they don't know it exists

#

guaranteed

brazen merlin
#

Correct lol

prime stump
#

Okay so much to unpack i'm confused lmao if there's a better way to do it I'd rather do it that way but the overlap isn't always on cause its set to no collision until the player goes down, then once revived it turns off again.. but this array, how's best to set that up to store all overlapped actors and using it

#

keeping in mind that it only needs to be active while the player is down?

brazen merlin
#

What else should i be keeping in mind about what your trying to do?

spark steppe
#

don't think about the array yet

#

you can't even figure out correct when the overlap is happening

#

have you tried skipping the for loop as suggested?

odd ember
zealous fog
#

I do but I charge ๐Ÿ˜Ž

spark steppe
#

but can you do it in 3 months?

zealous fog
#

Give me 3 months and I'll let you know

prime stump
true valve
#

Can you iterate through a struct? I am trying to create a dynamic table header.

spark steppe
prime stump
prime stump
prime stump
#

Oh yeah.. going in deep lmao

brazen merlin
#

New to bp + mp = i stop helping

prime stump
#

Thats the worst part.. im not even like new new to BP lmao just never touched overlaps until now -.-

brazen merlin
#

You are new to it

odd ember
brazen merlin
#

To put it another way. After making some sp games. Then mp is less of a steep hill. And when i say make sp games, i dont mean an sp tut.

spark steppe
#

which is kinda pretty obvious if you only enable it if the character goes down

#

as it's only enabled for that one then, not the others which are running happy around

prime stump
#

holy shit you're right if both player are downed the gate opens ๐Ÿ˜‚

mild crystal
#

hello, how can i remove the moviment from player when certain animations are playing

#

?

brazen merlin
spark steppe
#

or set the movement mode to none, that may work, too

mild crystal
#

ok ty

obtuse perch
#

how to start unreal without killing brain

icy dragon
obtuse perch
icy dragon
obtuse perch
maiden wadi
spark steppe
#

until you stop feeling

marble warren
maiden wadi
#

Been at this over three years and I still feel overwhelmed. ๐Ÿ˜„

icy dragon
#

It would be more difficult if you have ADHD (which I suspect myself having mentally, due to juggling between project)

mild crystal
#

how can i made this but only if a animation is playing?

icy dragon
spark steppe
#

depends on how you play the animation

#

if it's part of your state machine you can have function callbacks which fire on enter/leaving the state iirc

spark steppe
#

in the details panel of the transition checks

#

all iirc, i'm not 100% sure

stray wagon
#

Hello, I have a fullscreen webview in my UMG, with transparent background to display stuff, but the issue is that even if there's nothing at a place in the webview, it still captures the click and prevent below items to be clicked, any way to prevent this?

mild crystal
#

how can i made when the attack1_far_idle is played my character lose his movement and 1.5sec after he will get him again. help pls been here for a day

spark steppe
#

been here for months, good luck

maiden wadi
#

I like tasks for that. Simple UObjects that can live in an array. When called, do things. Play an array montage, set owner's movement component speed to 0. On montage completed, set movement speed back to what it should be.

spark steppe
#

make custom events in your animation blueprint, and put the name in the transition start/end depending on which edge it should trigger (may also work for the state itself instead of the transition, haven't checked it)

#

so one event to disable movement, and another to enable it

trim matrix
#

If multiple Actors are using the same material, is it possible to change the material instance of a single actor rather for all of them?

#

I have four actors all using same material, but I want to change the opacity of one of those actor's material

#

Not all of them

dawn gazelle
#

Then assign that instance to the character in question.

trim matrix
#

oh I see so treat the amterial as an object, then assign each actor a new instance of that object?

spark steppe
#

kind of yes

dawn gazelle
spark steppe
#

i would slap one more node between

#

but i cant recall it's name, what it does is giving you the real parent

#

like if you call it on a mesh which already has a DMI assigned, it will follow the chain to the real one

trim matrix
#

Ah, thank you. I'll try that!

slow pewter
#

Hey Guys, how you would create an Node System like the Unreal BP editor, Just simple like Connecting two Widgets that was created dynamically with an Arrow/Spline?

mental trellis
#

You should look at EdGraph

#

I think that's the base for all the graph stuff.

slow pewter
mental trellis
#

(and UEdGraph)

trim matrix
#

The function is being called

spark steppe
#

you aren't assigning the material to your mesh

trim matrix
#

Ooh

#

Okay

mental trellis
#

There's a method called like "create and apply" (in c++ at least) might be one for bp as well?

trim matrix
#

No that was just me being dumb. I thought it would automatically apply.

#

if changed

#

Thank you though

#

What is this warning I'm getting? LogMaterial: Warning: MaterialInstanceDynamic /Engine/Transient.MaterialInstanceDynamic_1405 is not a valid parent for MaterialInstanceDynamic /Engine/Transient.MaterialInstanceDynamic_1406. Only Materials and MaterialInstanceConstants are valid parents for a material instance. Outer is /Engine/Transient

mental trellis
#

You can't make a MID from another MID

#

You have to use hte original material. I'm guessing.

vital aspen
#

does anyone here know something about arrays. I'm using a pickup to pickup an item. when it does. it looks threw the array for a match of Row names. If it DOES'T find 1 it makes a new entry. If it does find 1. It needs to update the Qty value in the array, Nothing I tried seems to work.

#

This gets the item from inventory

mental trellis
#

Set a local int var to -1. Look through the list of rows, if it you find the matching row index, store it. Then break the loop. If you have a row index (not -1) update the row, if you don't, add a new one.

vital aspen
#

Ok, I don't have an local Var value = -1. Sorry I don't under stand. Hold on as a Post my BP

mental trellis
#

And use bp breakpoints to check how it's going along the way

vital aspen
#

That part loops threw the data base for a match. If it finds 1. It breaks the loop.

#

and returns this info

mental trellis
#

The problem is your name comparison

#

You're comparing the row's display name against a new struct, so it's going to be blank

vital aspen
#

ok, how is that an issue. what am I doing wrong

mental trellis
#

Unless I'm misunderstanding that node - is it a variable that you've broken apart or osmething?

vital aspen
#

Last part is returns for findstack and does what it needs to do

mental trellis
#

This thing.

vital aspen
#

That gets the Rowname from the datatable. If it matchs the item that is pickup. and the max stack size is <= to the Qty in the Qty. It should find a match

mental trellis
#

Yeah, I get what you're doing, but what is that node, specifically?

vital aspen
#

Ok, again. That's the Item that was pickup.

#

The value of the Item was sent to the findstack from the pickup.

mental trellis
#

Alrighty. Then not sure!

vital aspen
#

I was going to show you a screen shot. Now I'm getting errors I never got before. So it makes no sense why I'm getting them now,.

mental trellis
#

Oh that could be the problem. You're returning the array index of the for loop into your return node, after the loop has ended.

#

That won't work.

#

Probably. It should be out of scope.

vital aspen
#

You mean this

mental trellis
#

Yeah.

vital aspen
#

Hmm, all it should return is the index of the fount item. That's all it should pass.

faint pasture
#

It should just iterate over the inventory and return the slot/index and true if it finds a compatible slot with free space. Is your inventory an array of items or an array of item slots?

#

That is, do you have two structures in play or just one?

vital aspen
#

because it needs something to match it too. ??? your question makes no sense to me

#

Just read the look at the images.

#

2

#

this is my slot structure

#

The last 2 is the structure from a data table

true valve
#

Can you create a table using datatable dynamically?

dawn gazelle
faint pasture
#

I am looking and it looks fucked lol.
Is the input to Find Stack an item definition or a slot definition?

vital aspen
#

Yes they are. I think that part sucks. That's another issue I have

#

slot

true valve
faint pasture
vital aspen
#

That's just what is for

faint pasture
#

But the data table for wow would not include what a vendor is selling, but it would include every item that can exist in the game

tulip mason
#

Or use data assets maybe

vital aspen
#

Nope

faint pasture
#

However you do it, the list of stuff for sale at a vendor should just exist on their inventory component or whatever.

vital aspen
dawn gazelle
# true valve So I want to create a vendor where you can buy or sell stuffs? So what are my op...

Well, you can create their base inventory in a data table, but then you'd have to manage anything else they may have in their inventory probably VIA save games. eg. The first time the player encounters the vendor it reads what they have from the datatable. If a player sells or buys anything, then you have to save the merchant's inventory contents into the save game, and any time the merchant is loaded in, you load their inventory from the save game instead.

tulip mason
#

....

true valve
dawn gazelle
faint pasture
#

I mean all a data table is is a bunch of structs

true valve
#

Ok thanks

faint pasture
#

You're going to want a way to save the contents of an inventory anyway, no need to treat the merchant as special

#

The merchant is just a thing that has an inventory and is willing to sell its contents

dawn gazelle
#

(or buy the player's contents ๐Ÿ˜‰ )

faint pasture
#

A merchant should basically just be like a treasure chest with a little bit more brains.

true valve
#

I am trying to create more likely a trading post. Where players can buy and sell stuffs and only vendors can sell some stuffs as well?

faint pasture
#

That's fine. No reason to treat it special.

#

You'll want some sort of price/bid system

vital aspen
#

This runs when I pickup an item using the pickup master

#

from what I read, the set array elem should update that Qty value

faint pasture
#

@true valve Trading Post would have a regular inventory component but have special rules for the transactions.

#

Or maybe every transaction in the game has a cost and looting is just transactions with no cost. That's how I'd do it. Then you can use the same system for looting, trading between players, giving specific items for recipes, crafting, everything. Just the definition of a transaction includes what trades hands in both directions

dawn gazelle
# vital aspen This runs when I pickup an item using the pickup master

If you're getting these errors, the code you have in your pickup master you're showing likely won't work at all.
It's telling you that the value for "Inventory Component" is not defined. So it doesn't know what inventory component to find the stack on, set the array element on, or add to the array on.

faint pasture
#

Crafting an iron bar might just be a transaction where you give 10 iron ore, and the crafting station gives one iron bar

vital aspen
#

Yes, I know, that's why I change it

true valve
faint pasture
dawn gazelle
# vital aspen

If you mean this, then all you've done is add an inventory component to PickupMaster. Any changes you are doing to the InventoryComponent on the PickupMaster will only happen on the PickupMaster - and you are immediately destroying the PickupMaster after performing the operations you've shown.

if the intention is to update the player's inventory (and subsequently display it in your UI) then you likely need to be changing the Player's InventoryComponent, not PickupMaster's inventory component.

vital aspen
#

I only have 1 inventory component

faint pasture
vital aspen
#

what makes me made is that I didn't get those errors before.

#

Yes. the inventory component is added to the Char

dawn gazelle
#

You understand that components can be instanced, just like any other actor? Like.... This pickupmaster can have an inventorycomponent attached to it, I can have an inventory attached to my character, you can have an inventory attached to your character.

faint pasture
#

Your pickup logic should exist inside the component or in the character, not really on the pickup actor. You really ought to back up and make sure you understand what you're doing

dawn gazelle
#

What you're showing here is you've attached an inventory component to PickupMaster

vital aspen
#

This is how I had it before. I use an interface for it

#

I don't get it. I never gone these errors before. and the inventory system stopped working

#

I don't get it

dawn gazelle
#

Ok, that looks more like it.... Can you show where on your player you're sending the "Pickup Interaction" message?

vital aspen
#

That's it above. or are you asking about the line trace. That's what I use.

dawn gazelle
#

Where you do the line trace, sure. I'm guessing where you press E or whatever to initiate the pickup.

vital aspen
#

This is how I call The Pickupinteraction

#

Yes, I use E.

dawn gazelle
#

Ok so if you have your interaction event on your pickupmaster set up like this, can you try it right now and then screenshot any errors you are receiving?

vital aspen
dawn gazelle
#

ok, can you take a screenshot of the left side of ThirdPersonCharacter Like this:

#

Make sure all variables are showing as well (if they have any categories)

vital aspen
dawn gazelle
#

Need the bit that is usually to the left side of that graph, where it shows the components, functions, variables. Should look similar to what I just posted.

vital aspen
#

This makes no sense at all, now it's working and I didn't do anything

#

That's what it should do

#

Logs have a max stack size of 5

dawn gazelle
#

Run it like 10 times

brazen pike
#

God I hate it when something works perfectly in theory, but will fail one in every 10-20 times randomly

brazen pike
# vital aspen

Btw, is there a reason you start the linetrace ahead of the players head? Surely that would only create problems when too close to something?

vital aspen
#

That I couldn't tell you I saw so many videos on it. everyone has there own way of doing things. and this is what I have and has worked before. @dawn gazelle This is what happens. I can pickup the 1st 5 for the 1st stack. then I try and pickup up more.Then I get all the errors again and the inventory widget won't open any more

dawn gazelle
#

Perhaps you're accidentally deleting the inventorycomponent of your player somewhere?

#

That would be the only thing that makes sense if you're getting errors with both picking up and your UI

vital aspen
#

Not that I know of. This is the only destroy actor I have so far.

#

it destroys the item I'm picking up

dawn gazelle
#

Does it always happen after picking up 5 items?

#

Like... what happens if you pick up 1 item, wait like a minute, then try picking up another?

vital aspen
#

It does now. remember I couldn't get it to work at all.

#

I pickup the 1st items

#

I just tried to pick up item 4 and I got the errors again and the widget won't open.

#

???

#

same thing, I pickup 4 logs and when I pickup the 5th log. is when the widget won't open again and I exit and I get all those errors. I'm stump

#

I need a better inventory system that slots based and that works.

#

well it seems to have a mind of it's own, it stopped working like it did a few minutes ago

#

now I'm thing UE4 is unstable

devout latch
#

How many items are available to pick up?

vital aspen
#

I'm back to 1 now, when I was able to pickup 4.

#

before the inventory widget won't open and when I exited the game I got the inventory component errors

devout latch
#

What happens if you do not destroy the item you pick up?

vital aspen
#

idk, I can try it

devout latch
#

Yeah, let's just see what happens.

vital aspen
#

that's is many as I can get in the stack, The stack size is 5.

#

if I try and pickup number 5. The inventory widget won't open and I get all of the inventory component errors

mild crystal
devout latch
#

So you can pick up to 4 items now again?

mild crystal
#

how can i made when the attack1_far_idle is played my character lose his movement and 1.5sec after he will get him again

vital aspen
#

Yes

devout latch
#

Why don't you make your stack size 6

#

And see what happens

torpid hound
vital aspen
#

why would that matter what size it is, The max stack size for logs is 5

devout latch
#

OK, well, I'm sure you will try different things to get it to work.

vital aspen
#

well I'm out of ideas like everyone else is. No one has any idea why this doesn't work and it should work.

devout latch
#

Yeah, that's why you need to try different things.

mild crystal
devout latch
#

So you control the stack size of the logs?

#

If so, make it 6

vital aspen
#

If you come up with any ideas let me know

torpid hound
# mild crystal i dont know to do that can you explain pls

I'm not at my computer so I can't really grab the details. But you can fire off events from state machines. I think if you click on the state and view the details panel it will have some events in there. Those events can be used in your event graph and so you can run logic when entering / exiting a state, which is what you want

devout latch
#

That's what I use*

lunar solstice
#

Any idea why camera shakes dont blend out properly when theyre stopped?

#

When I go to stop moving

mild crystal
#

how do i create a behavior tree?

thorn trellis
# mild crystal how do i create a behavior tree?

In this presentation, Epic's Paulo Souza uses Unreal Engine's built-in AI features to build smart enemy behaviors for a game with stealth-like mechanics.

By relying on the Gameplay Framework in Unreal, we're able to quickly create convincing AI using Behavior Trees. Behavior Trees are great for creating complex AI that can be presented in a way...

โ–ถ Play video
onyx token
#

and it don't work for me

#

halp

thorn trellis
#

it's been so long that I honestly dont remember what's in the tut

onyx token
#

it's just a super basic AI

#

and it worked yesterday

#

then i saved

#

then i opened it today

#

broken stare

#

all i got is

#

this bt

#

actually nvm

#

not even that

#

i know where the problem lies

#

this doesn't fire rooCry1

thorn trellis
#

I think I can rephrase what I just read:
It worked yesterday
*I did something that broke it without realizing
I saved
It doesnt work today lol.

I'm being snarky cuz BTs for me have been very finicky, super touchy to things you do even outside of them

verbal current
#

Hello, I'm using a decal to draw a circle around an object for selection indication. Is there some way to disable the shadow affecting the decal only?

thorn trellis
#

if you run your game you should see the yellow pins firing on the BT, are you saying the hasTarget key never gets set?

onyx token
#

did i do something wrong here?

#

yea it never gets set because OnTargetPerceptionUpdated doesn't fire

#

like the PrintString doesn't fire

#

and because of that it just does this

verbal current
onyx token
#

no this

verbal current
#

OH

#

I see

#

make it create light

thorn trellis
#

is your class default on the AI set to the right BT? Does your actor that has the AI on it have the right AI in the world settings?

verbal current
onyx token
thorn trellis
#

does that event begin play fire?

onyx token
#

and even if it wouldn't

#

The BT doesn't even matter right now

#

All i want is the AI perception to fire

#

everything else seems to work

thorn trellis
#

right, I was asking because you can set the AI class in the actual world to be different than what you have in actor defaults

onyx token
#

oh i see

thorn trellis
#

so that would show if you had done that

#

on your NPCActor what are the settings on your perceptioncomponent

#

AIPerceptionStimuliSource

onyx token
#

the perceptionStimuliSource goes on my player tho doesn't it?

#

so it gets detected

thorn trellis
#

I do not have that component on my player, it's on my npc

onyx token
#

wut? But why?

thorn trellis
onyx token
#

because you want your boss to be seen?

thorn trellis
#

because you're registering senses through that component to the npc

onyx token
#

ok wait

#

I thought

thorn trellis
#

it's been an actual year since I touched it, so I'm probably wrong, but this is how sight works in my setup

onyx token
#

the NPC
gets the "AIPerception"
Which gets the sense "Sight"

And whoever the AI is supposed to see
Gets the stimuli

#

so it's registered to be seen

dawn gazelle
#

That's correct Joby.

onyx token
#

dangit rooMad

#

that means the error isn't there either

thorn trellis
#

I can only say that's not how I did it, and since it works in mine I would suggest watching that specific part of the tut above to get the right answer

dawn gazelle
#

Make sure your AIPerception is registered on your AI controller:

onyx token
#

ok i made a completely new AI controller blueprint

#

named it NpcController2

dawn gazelle
#

And on your character make sure the stimulus is configured:

onyx token
#

and i gave it to the npc character

thorn trellis
#

Your dominant sense was set to none in your first screen shot, don't know if that would cause what you see

onyx token
#

tried it to none or see - didn't change anything rooCry1

thorn trellis
#

oh uh, wild shot in the dark

#

if you did something that broke a nav mesh you should try recreating it

#

I think the behavior I see is usually that Nav mesh will kill my AI when broken, but that might just be a function of my logic

#

so even if it looks good, kill it and remake

onyx token
#

recreated it - didn't change anything rescBlank

#

maaaaaaan

dawn gazelle
#

Just put your AI through some training and it'll figure it out on its own.

onyx token
thorn trellis
#

"My AI doesn't work" "Okay well time for some neural net work then"

#

that was a good laugh Dat

zealous fog
#

Have you tried debugging your sense with the ' key invame?

#

You can press ' and then press 4 to visualise

onyx token
#

yup

zealous fog
#

Whats happening there