#blueprint

402296 messages Β· Page 865 of 403

long whale
#

I'd say 20-30%

faint pasture
#

Just do some sphere traces

#

you'll hit landscape like 50% of the time, that's plenty

#

or use Try to Adjust Location in the spawning

#

depends on how close to a tree you consider "too close"

#

all up to you bb

long whale
#

I'll give it a try

long whale
# faint pasture Just do some sphere traces

Another way I can think of with very complicated landscape and various landscape objects is to run a simulation of a large number of capsules falling from the sky, and record their final location, store them in a data file and loads it when the game really begins.

faint pasture
#

yeah you can prebake it if you want

#

A capsule is just a swept sphere

#

Ye i'd prebake and curate to rule out the gimped spawns like a dude on the peak of a mountain etc

long whale
#

yeah

#

the simple sphere or capsule trace can place players on slopes where they'll start falling immediately

faint pasture
#

You can filter all that out with normals etc but yeah.

long whale
#

oh sure that's another way

faint pasture
#

It's sorta like a query
select from landscape where normal.z > 0.8 and z < 2500 and etc and etc and etc

dreamy yacht
#

Hi, I am asking for help. Created a simple activator based on on hit event. This is the arcade racing I am working on. I want to make UE4 change "on the fly" the default vehicle pawn Car_Player_Cop to somewhat of crushed vehicle variant Car_Player_Cop_Crushed - for 5 seconds and then back to the default one.

odd ember
dreamy yacht
faint pasture
#

@dreamy yachtOr just scale it

#

that looks hilarious btw

dreamy yacht
#

I have created secondary BP for crushed vehicle version

faint pasture
#

nah

dreamy yacht
#

yeah, it is meant to look as it looks πŸ™‚

tight pollen
#

hello, can anyone boast of how much MS the plot of the game takes?

faint pasture
#

just scale the mesh when crushed

dreamy yacht
#

this will be a game with some humorous vibe

faint pasture
#

You can do it with a timeline.
Event -> Play timeline
Timeline scales the mesh down then back up

tight pollen
#

I don't know if this result is okay: /

dreamy yacht
#

the scale is not the effect I look for

#

I have rigged the variant, so it looks and works exactly how it's meant to work

faint pasture
#

do not spawn a whole new actor

#

I'd use scale or animation though, so it can happen over a short time and have bounce etc

tight pollen
dreamy yacht
#

hmmm

#

I don't think this is the way to go in this case

#

This should work for static, unmovable mesh

odd ember
dreamy yacht
#

but this is the skeletal mesh

faint pasture
#

@dreamy yachtWhy are you casting other actor to cop? Which actor is the pawn and which one should be getting flattened?

#

Should it be "When the player's pawn hits a cop, the player's pawn gets flattened"?

dreamy yacht
#

i am casting from the test object ( some activator in form of actor, placed in world )

#

look

#

maybe, this should be more straightforward

#

I activate group of rocks, which fall down on the road

faint pasture
#

ok got it. The player's pawn is the cop car. You should check if the other actor is the ROCK, and then flatten itself.

#

or the rock can check if it hits the COP then flattens the COP

#

what you showed last is checking if the other actor is the COP, then flattening itself.

dreamy yacht
#

If any of the rocks is hit by player car ( or any other car, but let's keep it simple and limit it to player_cop_car for this moment ), then the code is fired and the car mesh gets swapped to flattened one

faint pasture
#

I would make an Event Flatten that handles all the flattening stuff

#

Then just call it when it makes sense.

faint pasture
#

easy

unique cloud
#

had to move away for the kid, The valid doesn't register, it seems the Character don't want to read the variable

dreamy yacht
#

You can 100% accomplish this with scaling though. - the effect using scalling will be similar, but wheels will stay on their position, so there will be no real difference seen from the top down camera

#

I have to swap the skeletal mesh tho

small halo
earnest tangle
#

successfully sensed will be false when sight is lost

jaunty drum
#

How can I plug spherical coordinates into the procedural mesh generator? πŸ€”

earnest tangle
#

It... just is?

#

the perception updated event gets the value as a parameter from the perception system

#

the value is false if the update was caused by loss of line of sight

small halo
#

yeah i know

#

but where do i put the code

earnest tangle
#

just connect the value to the set value as bool thing

small halo
#

yeah i have this

#

but i dont know where to link it

#

is what im asking

earnest tangle
#

to the bool value pin

trim matrix
#

So I have a Boolean that indicates whether the player is jumping or not. I set it when the jump action is pressed. I've linked it in my animation event graph in order to play the jump animation. I'm running into an issue where if you hold it, the character jumps correctly initially and then it loops the animation. Turning off looping causes the character to freeze in pose when holding jump down. I've tried using the Can Jump function but that did not work either.

dreamy yacht
#

hey!

#

works like a charm when I test it out manually by pressing 1

#

I need to find out what to cast in order to make rock fire the flattening code

faint pasture
dreamy yacht
#

2 nd question: at the end of the chain I want to add some vertical force to the car, which will make car hop up a bit ( 2-3 meters )

dreamy yacht
#

2 nd question: at the end of the chain I want to add some vertical force to the car, which will make car hop up a bit ( 2-3 meters ), how to?

faint pasture
#

If you're using physics, just add an impulse

dreamy yacht
#

damn

#

i never know if it's physics or chaos

#

4.27.2

#

LOLed so hard !!!

#

LMAO πŸ™‚

#

Holy moly! Everything works! Thanks guys πŸ˜„

#

activator ( rock ) falls down on car and flattens it, then after 3 seconds the skeletal mesh comes back to normal one and the pop sound is played, next the little hop works aswell

onyx token
#

okay

#

is there like a "set multiple booleans" node?

#

this is probably not healthy.

#

i'm not feeling happy

odd ember
# onyx token

there is node that will uniformly do that for you unless you put them all into a boolean array

stray island
#

Hi i asked this in animation and i guess its related to blueprints too

I want my animation to play a portion of it when i press a button then pause and continue from wheres its paused when i press that button again , and print string if its done

onyx token
#

i guess an array could work but damn would i need some documentation blank1

#

because sadly all of those booleans are actually needed

odd ember
#

using enums

onyx token
#

hm. i could maybe indeed do that...

#

thanks!

dreamy yacht
#

one more question regarding the flattened and normal cars

#

I want to temporarily change the controlls and vehicle parametres ( torque, mass, steer angle etc. ) when the flattened mesh is active

#

can I cast somehow to normal vehicle MovementComp

#

?

odd ember
#

use states

faint pasture
#

So flattening the car would look like

UpdateCarState(ECarState=Flat)

Then the UpdateCarState event would change the mesh, swap stuff around, change the movement component properties etc.

drowsy folio
#

hey guys, would someone be able to point me in the right direction with playerstart? i created this space level, and put a player start on the plattform but it keeps bringing me to 0,0,0 and doesnt spawn in the character

faint pasture
drowsy folio
#

i have it targeted there on the picture

odd ember
#

those look like some big numbers

drowsy folio
#

they are lol is that too big?

odd ember
#

yeah

#

so

#

it's UE5

#

I'm not sure what the deal is with world partition

#

but ordinarily

#

you could rebase the origin

#

you'd have to do that in the game mode

drowsy folio
#

ah, so if i can do that ill be good? im trying to get to the point where i can add a ship into it and fly it around but i need to get it to spawn correctly first

odd ember
#

it really depends on your setup

#

you could also fake the earth if you never use it for anything but a backdrop

#

you could also try world partition and see if that actually works

#

but other than that, yes you can rebase it, if the option exists in UE5

long schooner
faint pasture
faint pasture
#

We have a system somewhat similar where the player travels from orbit to the surface. We just put the surface toward the bottom of the level bounds and the orbit toward the top and it worked out for us. But we're not doing anything fancy with really big levels.

odd ember
long schooner
odd ember
#

game mode is responsible for spawning, not level/world settings

long schooner
odd ember
#

it's not my question πŸ˜‚

#

I was trying to answer their question

long schooner
#

Lmao

long schooner
odd ember
#

I mean I'd still like to know what you mean just out of mere curiosity

drowsy folio
#

thats the inside of the earth there lol

long schooner
faint pasture
odd ember
long schooner
drowsy folio
long schooner
drowsy folio
#

thanks for the help guys 😁

long schooner
drowsy folio
long schooner
drowsy folio
long schooner
vestal acorn
#

is there anything that I can use for names to check if anything is inside/its empty/default value?

odd ember
#

maybe that will work

#

(maybe)

vestal acorn
odd ember
vestal acorn
#

thats a relief, thanks for the help

jovial dirge
#

How do I add a variable to a call?

dawn gazelle
jovial dirge
#

Where do I find that? Sorry

#

Actually I think I found it πŸ™‚

#

Why is it giving this note?

#

@dawn gazelle

wicked osprey
#

Guys, why doesn't the E button work at all in the crouch? I changed the button in Action to another one and everything works, but it doesn’t want to work with E

dawn gazelle
# jovial dirge

The value passed through it will be a copy, not a reference to the original object - so it's ok to read the values from the structure from anything that is bound to the event dispatcher, but you can't expect to write back to it.

jovial dirge
#

I'm using a for each loop to get a string setting, is this okay?

dawn gazelle
#

Should be fine

thick marsh
#

Ahh! I finally figured out the thing!

#

...that is all

mild crystal
#

anyone know why i cant select this??

dawn gazelle
mild crystal
#

i cant

#

it does not appear there in green space

#

when i select

dawn gazelle
small halo
#

what do the 2 for loops exactly do?

true valve
#

How can I attach a player to a character without moving the player’s camera?

odd ember
icy dragon
#

Okay, maybe not

icy dragon
#

So it spawns actors on the spawn points for 10 times?

icy dragon
small halo
#

it is perfect on my screen when i click on it

icy dragon
odd ember
#

from what I can read

small halo
#

yeah its a spawner

#

but i dont understand the first 2 for loops

icy dragon
#

Second for loop is spawning the actors on spawn point actors' location

odd ember
#

the first for loop seems to be based on whatever is in the SpawnerActor array. I would assume they would be different types of actors

#

but the logic is very error prone

#

the first array is set to be 0..9 always but the amount of actors could be less than that, causing errors

#

or more than that, and not be counted

icy dragon
#

It's weird that the first For Loop is not For Each from the Spawner Actor array.
Seems like sloppy translation from C++ code

small halo
#

its a spawner for the same eneimes to spawn in a circle around me

#

in 9 different locations

odd ember
#

okay but

#

why the first for loop?

small halo
#

in each of the 9 locations i spawn 5 actors which is spawn amount

odd ember
#

why not use a foreach loop on the array?

small halo
#

this is old code, i coverted it to c++

icy dragon
#

I KNEW IT

odd ember
#

okay so what are you asking?

small halo
#

what the first for loops are essentially doing

icy dragon
small halo
#

because i forgot why i did this

odd ember
#

it's running over the array of SpawnedActors from slot 0 to slot 9 and taking their locations as spawn points

#

but again, you'd be better off with a foreach loop in this case

icy dragon
#

I suspected it was a sloppy translation from C++ code, I was right lol

odd ember
#

or if you need to spawn exactly 9 locations, have that done mathematically instead of using actor locations

small halo
#

i coverted the bp code to c++

icy dragon
#

Oh, whoops

#

So it was the other way around

small halo
#

so the second for loop is spawning the actors on the spawn point right?

odd ember
#

yes

small halo
#

i seee

#

thanks πŸ™‚

odd ember
small halo
#

ill show u the C++

#

ill send it in cpp

quiet bramble
#

i was wondering if someone can help me with something

#

i'm making a 3d platformer and i'm practically brand new to blueprints but i was wondering if there was a way that i can implement a double jump that carries momentum on the second jump instead of just jumping twice and trying to drift the other way

#

kinda like banjo kazooie

torpid mulch
#

Guys, can I normalize a vector to make it have a magnitude of 1? I found the "Normalize In Place" node but I'm not sure if it does that.

short pawn
long whale
#

how to get simple variables stored in the level blueprint?

#

I tried interface calls ,doesn't work

torpid mulch
short pawn
jaunty summit
long whale
jaunty summit
#

So a vector that has a length smaller than the tolerance will have a magnitude of 0

#

You can leave it as it is

small halo
#

what is VolumetricFog in gpu profiling

torpid mulch
#

Thank you so much Wizard :D

quiet bramble
#

i dont think i could find what i was looking for

#

literally all it is is carrying momentum in a second double jump

torpid mulch
#

I'm doing this vector with two axis of movement, vertical or horizontal if held alone equals to 1, which can be a problem if I'm walking diagonally with my character, as it gets faster. That is why I asked about the Normalize, so it would normalize both axis if held together, even if walking diagonally. Somehow it is returning this amount, which is smaller than 2 for sure, but still faster than going only on one direction. Shouldn't it return X=0.500 Y=0.500?

#

Walking horizontally adds 1 to Y and vertically adds 1 to X on the vector

#

This is the blueprint that I'm testing this situation. πŸ€”

jaunty summit
true valve
torpid mulch
true valve
#

When the player is running in the 3rd person template, if I move the mouse left and right the player moves left and right. How can I prevent that?

jaunty summit
true valve
true valve
jaunty summit
jaunty summit
#

You might wanna show code

river herald
#

is there something like random integer in range that instead gets all integers in range?

jaunty summit
#

You want to return a new random integer each time?

river herald
#

i want to change all element index with one set material

jaunty summit
#

Ah so you want to iterate

#

Check For Loop

#

Well note that: Last Index = Get Num Materials - 1

river herald
#

it worked thanks! πŸ˜„

plain helm
#

drawable/icon_round exists in that folder destination.

#

but gives this error.

#

I enabled ads plugin

#

How to solve this?

jaunty summit
river herald
#

i keep getting accessed none error when trying to use this new player controller reference for multiplayer, anyone know why (this is on event begin play in character bp)

maiden wadi
#

Beginplay runs on every client. Every client only has one single controller and that is their own. So if another player's pawn runs this, controller is null.

#

Normally for client side information you send game wide things through PlayerState, and pawn related things through the pawn.

river herald
maiden wadi
#

When you start a multiplayer game with three people. Lets assume a dedicated server. There are four machines running the software. Server, Player1, Player2, Player3. On the server, there are three player controllers, and three pawns. As you would expect. One for each player. On each client though. Player 1 has three pawns, but only one controller and that is Player1's controller. Player2 has three pawns but only Player2's controller.

#

So when you run code in the pawn for Player1, on the machine for Player2. GetController is null.

jaunty summit
#

That's why he should use IsValid node

jaunty summit
river herald
maiden wadi
#

You shouldn't use that node in anything related to networking.

jaunty summit
river herald
#

this is for spectating, so its asking which player controller wants to possess the camera, and when i had get player controller (0) it was only working for client 1

jaunty summit
#

Well yeah, it's a dirty fix

maiden wadi
#

Because of exactly what I said above. GetPlayerController0 gets the local controller. And sometimes on listenservers it can fail and get a client's controller. But even assuming it works correctly, you will not get a controller associated with a pawn. You'll get the local controller. Stuff that requires the local controller already has access to it. UserWidgets have their own call. AHUD has it's. It's all client side only stuff and there's no use for it.

jaunty summit
maiden wadi
#

In networking, trying to use the local controller just confuses the code structure.

river herald
maiden wadi
#

Are you trying to make a death cam where the camera follows another team member after death?

river herald
#

yes

jaunty summit
#

Well I have a similar system already implemented in our game, but it can't be done in BP.

river herald
#

everything works perfectly for client 1, but not the others, im assuming because it's controller id 0, but if i try other things for my controller object reference it does access none

maiden wadi
#

All you have to do is get a list of pawns you can focus. Get the index of the current target. If none use zero, Add one with a wrap around check for max index. SetViewTargetWithBlend

#

It's probable that you could filter the list of pawns through their playerstates, all contained in the GameState's PlayerArray

jaunty summit
#

^ Also you shouldn't be caring about saving a reference to the PlayerController in your Character BP as you should be using the PlayerState as Authaer noted and you can get the PlayerController from the PlayerState using GetOwner()

maiden wadi
#

Random fun fact. I have no idea why it is not accessible to BP. But Epic already has this entire system in PlayerController.

jaunty summit
#

Haha yeah I had no idea when I first created the system either

#

Look like they wanna force people to use C++

maiden wadi
#

Would probably be as simple as putting a BlueprintCallable tag on ServerViewNextPlayer, and converting GetNextViewablePlayer to a BlueprintNativeEvent I think.

jaunty summit
#

Yep

river herald
#

making the reference in the playerstate got it working, you guys are heroes

jaunty summit
maiden wadi
#

To be honest, I'd be shocked if it went through. They're really pushing hard for the new GameplayAbility stuff. I'd be amazed if it wasn't moved to that.

jaunty summit
#

Yeah probably. I think the system was mads since the early days of ue4 and they barely touched it since then.

#

The system got some flaws, but overall it's nice how it works out of the box

maiden wadi
#

I haven't used it much yet. It did inspire me to make a small system of my own to make some better organizable code though. They're blueprint async nodes that can pick a blueprint subclass. Basically each node spawns a tiny UObject and runs it. Has tickability and latent access. They're more or less AI Behavior tree tasks, but usable in normal blueprint.

#

Personal project is all singleplayer though. πŸ˜„ GAS is very heavily intended for multiplayer stuff.

jaunty summit
#

I see. It's cool to use the async stuff if you really know what to do with them. I haven't touched them much, neither did I touch GAS. Though πŸ”œ GAS

white elbow
#

How do I get a boolean of (is the certain button pressed)? Or do I need to make it myself?

jaunty summit
#

By button you mean Button in a widget or a key in the keyboard?

white elbow
#

a key, sorry

jaunty summit
#

Then there is an event just for that

#

But that's not what you asked

#

This is what you want though

white elbow
#

maybe I'm just doing it wrong, but I want to do a function every tick the key is down

strange urchin
#

Hey folks
What is the best way to manage game UMG widgets? should I manage it in character or controller, or should I do it in HUD class? Which one is more standard and does it make any difference in performance?

maiden wadi
#

Performance, no. At least not directly. Generally I advocate for people using AHUD. Gameplay classes should never be aware of UI.

jaunty summit
#

It doesn't make any difference in performance, it's more of a best/bad practices

#

PlayerController would still have to talk to HUD, so it will have some UI-specific functionality

maiden wadi
#

PlayerController is a networking class. It's already going to have a ton of stuff in it. Cluttering it with UI stuff isn't a good idea. Not to mention it can cause bad practices with UI where networking is concerned.

PlayerPawn/Character is never a good place for UI. For the same reason any other gameplay class is. Gameplay classes should just exist and do their own thing. The framework that uses them and they themselves can use delegates. UI can use these delegates to handle itself.

HUD is local only. There is no networking here and there is one per machine per player. It is also very easily globally accessible from anything that can get world because you can get the local player controller and GetHUD on it. You can make a library function out of that for easy HUD access.

#

UI should generally always be an abstract layer above your gameplay core and entirely separate for a few differing reasons. One is ease of use. If you've ever modded a game, you'll know what an API is and why that is important. The other reason is asset references. If some gameplay class has a reference to a widget class, it also references all of that widget's assets even if that widget is never used. Which means those assets always stay loaded as a CDO. Bad memory management, and UI can take a decent amount of memory depending on game scale.

jaunty summit
maiden wadi
#

I think that it depends on the state. If it's an authoritive state, you'd usually just have the networked class(PlayerController, Pawn, etc, no matter) replicate, or RPC the state and set it and then call a delegate. It's up to your UI/HUD to set itself and bind those delegates on beginplay/construct and then set up the state of the current game that it knows about.

#

For network related UI. You'll be doing a ton of GetSomeActor->BindDelegateToMyFunction->CallMyFunctionWithCurrentState

jaunty summit
#

Yes exactly, it only changes a state/calls a delegate in the HUD, and the HUD does the rest

maiden wadi
#

No, not bad. Just common.

#

There's usually nothing wrong with gameplay classes calling HUD even to do specific calls. But me personally I'd still have them do that for a code only base class with zero widget references. I hate having references tied to other things that don't need it. C++ base classes with BlueprintImplementableEvents are great for that. Just as long as the actor itself doesn't spawn a widget and use it.

#

Above point is also the reason I have zero issues with casting to whatever I need and why I advocate regularly for people to NOT avoid casting, but just use it correctly.

jaunty summit
#

Exactly, that's it, storing references to widgets in gameplay classes is bad. I just wanted to make sure they aren't 100% UI agnostic

jaunty summit
white elbow
#

I have a problem, I created a player pawn for a FPS project but forward/backward movement speed depends on where you look. How do I disable that? FP character in FPS template doesn't have that but I still can't find the setting

maiden wadi
#

That's not a UE default I don't believe. I'd check Tick or the InputEvents for it

#

UE default as in I don't think the CMC can do that. At least not that I'm aware of. Usually it's the character handling it based on control rotation versus velocity in a tick function.

white elbow
#

I think I found the problem

#

yeah lmao I was getting a forward vector of camera instead of capsule component

earnest tangle
#

You'll still need to do some maths on it if you want it to work on slopes

#

unless you plan on rotating the capsule to match the slope I guess :)

lone arch
#

Hi, I got some data for the mannequin it is in JSON format what i want to know is how to send those values to my skeleton via gamemode and make it move accordingly

gentle urchin
#

dot product absolute up vector would be 1 to -1 , allowing you to have some constant factor to multiply it by

#

So Speed = Speed + (RateOfChange * (DotProduct * -1))

earnest tangle
#

You can also use map range clamped or such

#

Eg. you can map angle range -90 to 90 into -1 to 1 with one node :)

quiet bramble
#

i'm trying to implement a camera that makes it so it zooms in on the player's head when the camera is pushing against the wall to prevent it from clipping through, how would i make that blueprint? i can't find a video or anything

maiden wadi
quiet bramble
#

i know about spring arms but i can't find an option so it does that, it zooms in but it's over the character's head. i think it has something to do with the rotation of the camera but i tried it and it doesn't work

royal trellis
#

can someone explain or send me a link where i can find explanation on what "Consume input" is? I can't find any videos on youtube nor explanation about this in the documentation

maiden wadi
#

All a spring arm does is a trace that lowers it's endpoint based on trace length. If you want it to zoom to the player's head, the start point of the spring arm has to be at the player's head with the camera facing it.

spark steppe
#

consume input does take the input and nothing else can react to the input

#

but it's kinda pointless as you can't really tell what gets the input first

#

unless it's UMG where there's a hierarchy

maiden wadi
#

There's a gameplay class hierarchy as well.

spark steppe
#

there is?

#

well ok, the player controller ticks before the actor, so it could consume an input which the actor then wont get

#

ah in inheritance there's also a pre defined order, yea

#

if that's what you meant by gameplay class hierarchy

royal trellis
#

so once that input action is taken inside an actor its consumed and can only be used inside that context..but how do i unconsume it?

spark steppe
#

well, you can't puke it out, so don't consume it in the first place

maiden wadi
#

Nah. Only tick that matters is the PlayerController. Player controller houses an array of UInputComponents. Called the InputStack. PlayerController ticks and builds an array of components to tick through. It organizes these in a particular order. Starting with anything that has had input explicitly enabled like a trigger actor. Then the Level blueprint, Then the Controller's own input component, and last is the controlled Pawn. Input will always be processed in that order. InputEnabledActors->LevelBP->Controller->Pawn. And InputEnabledActors go in order of the latest one to have enabled input.

spark steppe
#

wouldn't the pawn be in the group of inputEnabledActors?

maiden wadi
#

Nah. It's explicitly put last. One sec.

#

Er, I was backwards on the controller and level. Goes Controller->Level->Pawn

spark steppe
#

until now i wasn't even aware that the levelbp can take input actions

maiden wadi
#

Note that these are functions pushing their components to the top of the stack. So Pawn. Then Level pushes itself above Pawn, Then Controller pushes itself above Level, then starting from the latest to newest enabled actors, they push themselves to the top of the stack.

#

The third one there is controller's own.

royal trellis
#

when the actor is destroyed...does it unconsume the input?

maiden wadi
#

It's Input component is destroyed, along with all other components.

earnest tangle
#

Non monospace fonts always look so weird in code samples lol

maiden wadi
#

InputComponent on Actors is Transient, so not all of them actually have one. It only gets populated at EnableInput call.

royal trellis
#

im not entirely sure what that means

spark steppe
#

that means that it wont consume input if it doesnt exist

#

as it wont be pushed on the stack

maiden wadi
#

They have a pointer property for the InputComponent, but it's null until used. It's not used until you call EnableInput on an actor, where it will create an input component on that actor and send it's reference to the controller for storing on the InputStack.

spark steppe
#

however your questions are pretty vague, maybe it's better to explain what you try to archive or what isn't working as expected

royal trellis
#

im just looking at some systems i got from the store

#

and some of them have consume input on some actors

#

and i was wondering

#

like theres a gun

#

who consumes "fire" action input

#

because i was confused i didnt find it in the player character itself

spark steppe
#

yea see, if your actor can interact with items on left mouse button, but not while holding a gun (because the player would assume it to fire) then the gun consumes the input

#

so that the actor won't get the input to interact with something

royal trellis
#

yeah, which is why i was trying to understand when it is "unconsumed" πŸ˜„

spark steppe
#

when you unequip the gun it's pretty likely that the gun actor gets destroyed and put to your player inventory

#

at this point it wont listen for input anymore and the player character can receive the button click again

royal trellis
#

gotcha

#

thanks for the explanation! much appreciated

#

now it makes a lot more sense

gentle urchin
#

Consumed is also an equivalent to "handled" in widgets

#

If you leave a mouse button override unhandled, widgets in the lower layers get a chance to pick it up :)

dense mica
#

I've been working with UE for 3 years and never heard of it before

spark steppe
#

i should use that more often^

dense mica
#

Feels like it has a similar implementation of Anim Graph's Fast Path implementation, because you also able to use boolean operators?

#

Weird tbh

onyx token
#

is there anything i can do that's not... Creating my entirely custom self made character controller? rescBlank

#

(they're both already set to "no" on the "can character step up on")

odd ember
dense mica
#

Until 4.19 I was in high school

odd ember
odd ember
onyx token
odd ember
#

you can ignore collisions but it's just going to be a mess

onyx token
#

Because i still want the animation to go on, i just don't want the collision to be buggy

odd ember
onyx token
#

I want the collision to act as if you just pushed 2 spheres against each other

#

not into each other

#

just against

odd ember
#

yeah but it's not a property of the collision

#

it's a property of the animation

onyx token
#

rooMadCry dangit

#

so there's no way to convert root motion into like... root... "add force" ?

odd ember
#

the collision just tries its best to make it work

#

nope

onyx token
#

crap

odd ember
#

I'd ask in #animation to see if there's anything you can do to improve the root motion

#

also try testing it with e.g. walls etc.

onyx token
#

i already googled up and down the internet...

#

seems like it bugs out only when 2 root motions meet

odd ember
#

that makes sense

onyx token
#

sadly that's exactly happening when 2 characters try hitting each other

odd ember
#

well

#

someone, somewhere

#

has solved this issue

#

so there's bound to be info on it

onyx token
#

i guess i'll just have to delete root motion then and replace it with some scuffed "add force" node setup that just has the animation lengths hardcoded...

odd ember
#

are you using animBP?

onyx token
#

yea

#

oh wait no

#

i'm using character BP

odd ember
#

well maybe now is the time

onyx token
#

and montages

odd ember
#

because maybe it's something to do with how montages work

onyx token
#

i got told tho that for stuff like hitting you're supposed to use montages...

odd ember
#

by whom?

onyx token
#

Problem with animBP is that i can't add events

#

which i need

odd ember
#

you can

#

you have more options with animBP than you have with montages

#

plus it's faster since you're not running animations on the game thread

onyx token
#

oh you don't mean the anim graph, you mean the blueprint editor in the animation thingy

odd ember
#

yes both sides of the animBP are essential

onyx token
#

well in the anim graph i did do it, but i couldn't really use it for much

#

like for instance - at some point in my animation i set my sword to "activated" so it does damage on overlap - and deactivate it 3 frames later so it doesn't always do damage but only on my swing

odd ember
#

that's why anim notifies exist

#

I would never handle that outside of animations

#

but for everything else, the anim notify can bind itself to events in the character BP

#

so that when a specific player action is invoked the animation automatically follows

onyx token
#

so i don't have to use montages at all? rooThink1

odd ember
#

you dont

onyx token
#

but i'd have to play the animation in the anim graph right?

#

and not in the BP editor

odd ember
#

montages are a cheap option but if you're making something like a combat system you really want to build a solid foundation

#

and montages don't allow for that

odd ember
#

but you want that

#

you don't want any animation to be played outside of the animgraph ideally

onyx token
#

hmm rooThink1

#

that sounds reasonable

#

i did try to do that, but i remember there was some limitation in the anim graph that kept me

odd ember
#

the way that state machines are build there are going to be some limitations, but if you know what you're doing they're not a problem

onyx token
#

so you're saying i can still use anim notifies while playing animations in the anim graph?

odd ember
#

I've on a few occassions seen anim programmers do masterful animBP state machines and I hold that as the gold standard for how you should setup animations generally

onyx token
#

OhIPanda i see

odd ember
onyx token
#

are there any ressources to get like... yknow, to the next level in terms of blueprints?

#

So many tutorials on youtube are for beginners...

#

there's hardly any ressources where people talk about actually indepth stuff

odd ember
#

not really. what I can recommend is that you setup an enum for anim states, and use blend pose by enum

#

let me show you my current animgraph

onyx token
#

or do you think it would be best to just get a budget and hire a mentor?

#

or idk... give favors

#

or something v1

odd ember
onyx token
#

dangit rooMadCry

odd ember
#

even among people who work in the industry I've seen it done wrong more times than I've seen it done right

onyx token
#

i guess there really is a divide between professionals and hobbyists...

odd ember
#

this is my current state machine

onyx token
#

smol

odd ember
#

exactly

#

it handles everything by blendposes

#

so the way to think about it is to understand where poses can come together

#

e.g. running mostly requires the lower part of the body

#

so you can blend that with anything that requires the upper part of the body

onyx token
#

sure, i started doing that too

sly loom
#

Is the Interface for GameplayTags built in or is there an interface i need to add to my BP's? Things like "Get Owned Gameplay Tags" Show a message but i can't see an actual interface for them

odd ember
#

and basically this also ensures you get the best performance, as this is 100% on the anim thread instead of running on the game thread

onyx token
odd ember
#

note the lightning bolt

odd ember
#

but think about it more from the pose

onyx token
#

yea till now the most i've done was use the animgraph to rotate my characters body in order to look at stuff while still doing animations

odd ember
#

christ

#

I have some extra stuff outside of the state machine itself, but that's just to do with IK and nothing else

onyx token
#

ey- it wΓΆrks ok? rescVVV

#

i'm taking every spine bone and rotate it a lil bit around the z axis

#

since i only need a z axis rotation

odd ember
#

note again

#

lightning bolts everywhere

onyx token
#

lightning bolts = animation thread right?

odd ember
#

yes

#

so the best way to do this is to understand what basic stances you have, and then do poses based on. any time the stance changes. e.g. if you're having something like climbing, flying etc. (no longer just standing), you'll want to add another animation state

#

in the end, you'll have a starburst pattern

#

which then may have nested starbursts inside of it

onyx token
#

i see
so like the basic one is "idle / walk / run"
And from those i get
"hitting"
or
"dodge rolling"
or
"interacting with a thing"

And in the character blueprint i do shit like "if blocking is true - disable damage"

#

or "if dodge rolling is true- enum can't change into hitting or interacting"

odd ember
#

you're still standing on the ground

onyx token
odd ember
#

it's just a blendspace of how you're standing at most

onyx token
#

exactly

#

okay so

#

When i leftclick - i wanna hit with my sword.
Or when i press R - i wanna draw my sword.

How do i do it so when an animation is finished, my anim graph send a signal to my character BP saying "Yo, the animation is done, you can change the enum now"

odd ember
#

animnotifies

onyx token
#

for everything?

odd ember
#

yes

onyx token
#

oof

#

i hadn't thought of that...

#

that's the main reason why i moved to montages

#

because i started doing some dumb shit like delays...

odd ember
#

well consider it like this

#

no matter where you put it

#

it's always the animation controlling when it's finished

#

so it should be the animation telling when it's finished

onyx token
#

ooooh i get it
you mean i have 1 animation notify that just says "animation done"

#

and sends it to the owner
and then i can do stuff with that in the owner

odd ember
#

it doesn't send

#

it just says "I'm done"

onyx token
#

no?

odd ember
#

to whomever listens

onyx token
#

with an event dispatcher?

odd ember
#

really important distinction

#

yes

onyx token
#

hmm

#

big brain territory

odd ember
#

the idea is indirection

onyx token
odd ember
#

the animation doesn't care about who is listening

onyx token
#

right because you don't want the animation doing shit

#

you just want it to animate

odd ember
#

exactly

onyx token
#

that's smart

#

god damnit who the hell came up with the term "code monkey" and why does anyone ever think it's "not a big deal" to learn this stuff

odd ember
#

I mean this is kind of like the tip of the iceberg

#

but to be fair this is more code architecture than anything else

#

setting up solid architecture before you start doing anything is key to making good systems

onyx token
#

so having this kinda stuff inside an animation notify is big poop and it should be an event dispatcher

odd ember
#

I have no idea what you're doing there tbh

onyx token
#

activating and deactivating my weapon rescVVV

odd ember
#

I don't know what that means

#

perhaps explain it in game actions

onyx token
#

basically in order to do damage, i do an overlay event.
But if i do that overlay event all the time, and i just walk by an NPC - i would do damage.

I only wanna do damage in the 3 frames where i'm actually hitting

#

so i thought to myself "alright, gonna make an anim notify in my montage - and cast it to my weapon, neato"

odd ember
#

yeah so you have a window you can do

#

you start the window with a notify

#

and end the window with a notify

onyx token
#

exactly

#

beginning activates it, end deactivates it

#

But i didn't know that anim notifies can be used outside of montages

#

which is very neat OhIPanda

odd ember
#

there's also other things that you can do to minimize that code

#

for instance if you set it up correctly you can assert that the animation can only trigger if you have a weapon

#

and save the weapon variable early on

odd ember
onyx token
#

yknow, like make sure it's not doing this... or this... or this... or this... before running something

odd ember
#

all of that could probably be handled by delegates in some form

#

and automated that way

onyx token
#

delegates?

#

oh that's outside of blueprints

odd ember
#

event dispatchers

#

are delegates

onyx token
#

oh

gentle urchin
#

Thats one way of reseting bools.. πŸ˜…

onyx token
#

suffer

odd ember
#

it's not pretty πŸ˜”

onyx token
#

i feel like i'm at the stage of unreal engine - where people are when they learn blender and they have a bunch of vertices layering above each other and they don't know why the shading is scuffed

#

but there's no tutorials really anymore, and the only way forward is to be lucky and find awesome big brains who have some free time and are willing to help kek

So for that- thank you so much! @odd ember

odd ember
#

If you have the time, look into OOP architecture

#

if you learn that well you'll have a much easier time programming

onyx token
#

i wish i didn't have adhd that i have to fight every single time i see these kinds of graphs

#

adhd just goes NOOOO rooScreaming

odd ember
#

oh yeah UML is hell

#

but think of it more like "who is responsible for what"

#

most of the time you'll want classes to be responsible for themselves

#

with some exceptions, when a class is being managed by another class

#

but even that management is more directive based than implementation based

#

for instance I have an AI director that gives my AIs high level directions (e.g. this is your task now). but it doesn't care about how that AI implements the task

onyx token
#

yeah... so like the perfect example of how not to do OOP is if someone puts literally all their code into the level blueprint or the character blueprint?

onyx token
#

right.

#

not me. of course. nuh uh.

#

no sir, not here.

odd ember
#

welp

#

yeah god classes are frowned upon

#

it's too much responsibility for a single class

#

think of it like this: if you built a car, you wouldn't put the steering of the car directly on the engine

onyx token
#

that is... a very nice way of visualizing it

odd ember
#

once you understand the mindset of "everything is a system" you'll have an easier time too

#

because you can always break the system down into components

#

and understand how they need to interact

onyx token
#

another question - So every time i show my spaghettio - people say i should use functions and i'm a big noob.

Problem is - a ton of my shit is stuff like this, where i'm slowly changing something over time (like this is for example my character transitioning from walking speed to running speed smoothly once i've drawn my weapon)

#

but i can't put time stuff into functions

odd ember
#

when you're steering a car, you don't need intimate knowledge of how the engine works for instance. you just know that rotating the wheel left or right is going to turn the car, and pressing the brake is going to brake for you

odd ember
onyx token
#

states as in enum?

odd ember
#

then you could also make those states be events that are delegated

odd ember
#

a state is an abstraction

#

it could be anything, but the concept of a state machine is that you switch between different states

onyx token
#

wait i'm confused.
So i delegate the state of my character speed? To what?

#

you mean stuff like my sword has the state of "i'm drawn" and shoots an event dispatcher into space

And my character picks it up?

odd ember
#

your character could say "entering state X now" and have everyone listening to that adjust based on that

onyx token
#

I didn't think event dispatchers were this often used, i always thought they were kinda expensive OhIPanda

odd ember
#

they're fairly cheap and cost isn't something you should be concerned about at this stage anyway

onyx token
#

fair

odd ember
#

if you would use enums for states (which BP is kind of skewed towards), you can use switch on enum for functionality and select nodes for data

onyx token
#

i see... Well maybe the character speed is a bad example.
For instance, when looting something, i do it via an Interface

#

like i shoot a line trace towards my chest and send an interface to it as in "i'm looting you now"

And the chest opens and gives me a UI for it

odd ember
#

interfaces are sadly also overabused in BP due to misinformation

onyx token
#

should i instead send an event and the chest should listen in?

odd ember
#

in the case of interaction, who is interacting?

onyx token
#

my character or well- me is looking at the chest, and i'm clicking to interact with it.

odd ember
#

your character is

onyx token
#

sure

odd ember
#

so who should have the interaction logic?

onyx token
#

i guess my character should have the interaction logic?

odd ember
#

correct

onyx token
#

with looting and everything? Like pulling whatevers in the chest into my character inventory?

odd ember
#

well the chest has the data of what's inside the chest

#

it also has the data of what kind of interaction it is

#

all of which can be used by the character to propagate the correct response

onyx token
#

Well right now i'm sending an "i'm looting you" signal to the chest

The chest contains an inventory component, and that component has code that say "i'm getting looted, here's my stuff, i'm putting it into your inventory"

odd ember
#

who is doing the looting?

#

again keep asking yourself questions like these

#

because the location of the logic matters

onyx token
#

i see... So the character should have the "i'm taking items and putting it in" - because the character is acting

balmy parcel
#

Hey! Learning Blueprints and have the following question: Currently looking around in third person is controlled by X and Y mouse input. What i'm trying to achieve is something like Runescape, if Middle mouse button is being hold, execute x/y mouse tracking to rotate camera accordingly. In my mind it should look like this but don't know how to make it work exactly. Had a look around on YouTube but not much luck. any pointers would be great πŸ˜„

odd ember
#

for every class you have

#

interacting with another class

#

find out what the relationship is

#

the only thing the chest has to do is "exist"

#

or maybe, at worst tell the player "I'm here" within a certain radius

onyx token
#

i used to think i had stuff figured out-

#

big mistake

#

Right, so it's not necessarily a bad thing to have A TON OF CODE inside a class like the character class-

It's just bad if it's code that's not supposed to be in there

odd ember
#

sorry not events, the functions

odd ember
#

because it has to account for every single case that it can be used in

onyx token
#

alright then. Welp, time to rewrite a whole bunch of stuff 9452_lul

thin panther
onyx token
#

but this is really nice, thank you so much for taking the time and teaching me v1 @odd ember

odd ember
#

but generally if a class gets too full of stuff, it's worth considering putting stuff into smaller components. e.g. interaction could be handled by a component

#

inventory can be handled by a component

onyx token
#

ooh that's smart.

#

true

odd ember
onyx token
odd ember
#

or if you're prepared to rewrite a bunch of code

onyx token
#

i'm doing this project to learn, i'll rewrite it 10 times if it means i'll get better at it vvShrug

odd ember
#

but first, figure out how to lay down the foundation

onyx token
#

i literally decided to not use any new ideas and just "make a skyrim prototype" because that way i know what i'm trying to do is possible and i know it has been done in the past.

And then i can just do it a bunch of times until it's at a level where it's clean and works and is nice

#

atleast that was my idea of how i could learn ue4 efficiently rooThink1

odd ember
#

these are general programming principles

#

it doesn't matter which engine you use

#

or even what language

#

you'll always be able to use this in some capacity

balmy parcel
odd ember
dusk ember
#

i accidentally deleted a level and i was wondering if i could get it back using the built data?

odd ember
#

unless it's in your recycle bin

#

no

#

the built data isn't the level, it's just some lighting data

dusk ember
#

ah

#

damn

faint pasture
dusk ember
#

and i thought you could only use like 1gb with github? and ik about git lfs but i didnt think that it would be enough

faint pasture
#

Idk, I use plastic and you can go to 5gb for free

astral epoch
#

That said; my PC fried itself when I was at University and I lost a lot of files because I didn't have any good backups.

#

If you aren't routinely backing your stuff up manually to another storage device then using Source Control works amazingly just for that purpose.

#

Also kinda amused at the "help I lost important data" followed by "I do nothing to prevent this loss from being reversible".
Use source control, if only to correct your own mistakes.

dusk ember
astral epoch
#

I don't know about larger games but I've never had an issue with LFS.

odd ember
#

there are other types of VC than git

astral epoch
#

^

dusk ember
astral epoch
#

I think its everyone's go to thought when they hear about VC to be fair.

odd ember
#

perhaps

dusk ember
#

thankfully the map was just a whitebox testing map for different features but this was probably the sign to start using version control

odd ember
#

but it's certainly not the best tradeoff for something like gamedev IMO

dusk ember
#

ik that we should bein the source control channel but which VCs would you recommend?

#

i saw plastic earlier

odd ember
#

depends on what you have available

#

anything that has decent hosting, does checksums, and allows large file commits without timeouts is good

dusk ember
#

do you think that git would do the job for now?

odd ember
#

possibly?

#

you won't know until you try

#

I can't give you an answer to that

dusk ember
#

mk

astral epoch
#

Okay quick question, the linetrace for objects can have objects specified. Is this an expensive operation because to me that sounds like its basically just casting for each hit?

odd ember
#

casting isn't expensive per se

#

but line traces are generally expensive because of the computations

#

not because of what they look for

astral epoch
#

For context; constant linetracing in front of player camera to determine if what they're looking at can be interacted.

#

Aah right.

odd ember
#

I personally wouldn't do it like that

#

I'd gate that off behind interaction availability first

astral epoch
#

What do you mean?

odd ember
#

only trace like that when you know there's an interaction nearby

astral epoch
#

Aah

#

Okay I think I got an idea there

#

Trigger volume around the interactable object that will tell an overlapped player they have something nearby they can use.

odd ember
#

basically

#

you can then decide when you want to give the prompt

astral epoch
#

Righto.

#

Still worth using the Linetrace for Objects, or should I go with something else in that case?

odd ember
#

I'd just do visibility

#

check if the interaction is behind a wall or not

#

basically

astral epoch
#

Right

odd ember
#

you could even gate all of that behind a dot check

#

and on interaction input only

#

optimization isn't always about finding the cheapest solution, it's about making the expensive solutions only when necessary

astral epoch
#

That makes sense.

#

Wouldn't a linetrace on visibility fail if an interactable was invisible?

odd ember
#

correct

astral epoch
#

Hypothetically. I'm trying to make an abstract here so I can make a variety of different objects that could be interacted with this.

dusk ember
#

i went to connect git to my project but for some reason i cant find my git install folder, only git lfs

astral epoch
#

Any way to get around that?

odd ember
#

use another trace channel?

#

make your own trace channel?

astral epoch
#

oh right

#

That'd be under project settings right?

odd ember
#

I'd generally use visibility because it's preconfigured

#

but if you have special needs you'll have to make bespoke solutions

astral epoch
#

Naturally

odd ember
#

yes it's under collisions I believe in project settings

astral epoch
#

Oh, there's an "InvisibleWall" trace that is described as "WorldStatic object that is invisible"

#

That could work instead

#

Or InvisibleWallDynamic

#

I'll try a few see what works

odd ember
#

just out of interest, what are you trying to do in terms of gameplay?

#

because generally you'd want interactions to be visible

astral epoch
#

Third Person Shooter, though the interactables isn't necessarily unique to that genre. I just thought at some point an invisible interactable might be of use.

odd ember
#

I'd personally never use invisible interactions

astral epoch
#

Keep the option open so I don't have to go back and adjust stuff later down the line ya know

#

But yeah, probably wouldn't get used

slow pewter
#

Mhh i got a Trouble my Game Crashes, And my Crash,Text file have not Important Information in it, is there an other way to find the Problem?

wintry pike
#

I need help
im the Unreal Engine 5 Blueprints - First Person Shooter (FPS) tutorial
I cant find a certain section

#

mine doesnt have that

wintry pike
#

but isnt that the general chat?

#

am I allowed to post in there

odd ember
#

what do you think a general chat is?

wintry pike
#

talking about random things

jaunty summit
odd ember
#

maybe take a look

wintry pike
#

well ok thanks

thin panther
wintry pike
#

its the same thing

thin panther
#

No it isnt

wintry pike
#

oh

thin panther
#

You literally have sky sphere above it

wintry pike
#

ohh wait

#

bruh

odd ember
#

B R U H

wintry pike
#

well thanks

jaunty summit
slow pewter
jaunty summit
#

Again this doesn't help, send files/pics so we can take a look

slow pewter
slow pewter
#

And if i would remove that Cap Function, it Crashes again, and just show the Other Same Stuff, but nothing what is like pointing to an Crash, or Error.

jaunty summit
#

This isn't not the crash dump

#

The crash dump is called UE4Minidump.dmp

slow pewter
jaunty summit
#

Visual Studio

slow pewter
rough jungle
#

hi I'm new to unreal engine so can anybody tell me what I type to get this

thin panther
#

Thats a 3 vector it seems

#

Also a material question not bp

#

Just hold 3 nand click and you get one

rough jungle
#

ok

#

thanks for your help

thin panther
#

Np

slow pewter
solar sequoia
#

Aside from just getting the rotation of the sequencer camera and setting the controller's rotation to match it?

#

I'm not well-versed in how the sequencer works, but I'm sure that's possible

faint pasture
#

Set view target with blend

#

So the camera goes from End of playback -> Beginning of playback -> pawn?

#

IDK much about sequencer, maybe it treats cameras differently. We just directly control the viewpoint in PlayerCameraManager and don't even use camera components.

thorn trellis
#

Aaack, need some smart people help. I am soft referencing a data table of widget animations that are inside the same widget as this bp graph. When I run in editor everything works fine. When I run in a Launch or Packaged build the soft reference fails to load the object.

The black circle below returns valid on every pin, the blue circle successfully casts in editor and fails cast in package, the red circle always completes load, but produces a null object in packaged build (it returns the correct object in-editor). There are no errors in the log or build logs for this asset.

What causes Async Load Asset to not load the soft reference?

faint pasture
#

Assuming you can get the sequencer camera's transform at the end of playback, you need to move the player's camera to that then do the target swap

#

or close to that, at least match the orientation or whatever

#

Might be as simple as get sequencer camera rotation -> set control rotation on pawn, whatever. IDK how you're driving your pawn camera.

faint pasture
#

That looks super fucky. Why are you binding events etc? But anyways if it works it works lol

#

Maybe that's a sequencer thing, I'd think it'd already have an on finished delegate

orchid geode
#

Question: I got a couple of colisiΓ³n boxes/spheres components that stops the player on their tracks, the player has to release the key/thumbstick and press it again to continue, it seems to happen only once per actor through the Level.

Any idea of why this happens? And how to Solve it?

*Colissions are set to Overlap only with pawn too, can't Remember about "can affect navMesh" wich i don't use at all for player (no enemies either un gameplay...)

thorn trellis
orchid geode
thorn trellis
#

If it works once I would assume you have a do once or a set collision off somewhere in your overlap

#

so the actual execution pins for overlap

orchid geode
#

At no point the actors takes the player control, only when interacting: sets the input to UI only, but you have to see it and interct with it to happen.

Overlap only sets a boolean on the player πŸ€”

thorn trellis
#

Show the collision execution pin for one of your overlap boxes, if you set it to ui you might not be setting it back to something useable

orchid geode
#

There are 3 collisions:
1 on the area fot a notification to show
2 a reachable Γ‘rea that sets a boolean only, this Is the One the stops the player.
3 a collision for the camera to ease the interacciΓ³n.

All collisions are set to Overlap only...

orchid geode
#

Here we go, just a sec

remote belfry
#

I'm creating a widget from class, and then adding it to the viewport and having its position follow the mouse in viewport. It works, but as soon as I click in the viewport the widget disappears. I should be able to figure this out, but apparently, I took my stupid pills today. Any ideas?

#

Z Order is set to 1000 too lol

orchid geode
#

Here is how the 3 spheres are set, all children of a static Mesh (Dynamic in nature)

thorn trellis
orchid geode
#

This is the second circle, only sets a boolean...

#

Collision presets, custom with overlap only..

remote belfry
thorn trellis
orchid geode
#

Second: if you run and the player happens to collide with it, player stops running and begins to walk, and if you are walking you stops.

Is a minor bug, since you can continue walking if you release the directional keys and start again, but it could be frustrating if you have several NPC you can talk to arround...

remote belfry
#

@thorn trellis I had forgotten to attach it to my player controller.Thanks for the duck. lol.

thorn trellis
#

you should add a print statement and see if those two are firing exactly once like you're thinking @orchid geode

orchid geode
#

Oddly enough, it doesn't create Error/warning either... just stops the player for a moment for no reason πŸ€·πŸΌβ€β™‚οΈ

thorn trellis
#

you added a print statement to your overlap and it didnt fire?

orchid geode
#

it fires all right

thorn trellis
#

just once?

orchid geode
#

Yup, I removed it since the systems it uses are working just fine except for that minor bug πŸ˜…

#

I readd it again, and it doesn't seem to fire, but sstitll works somehow? 😳

#

UE4 is weird hahaha

thorn trellis
thorn trellis
orchid geode
#

Could it be something about being a collission insde a coslission?

thorn trellis
#

You could try moving them apart and seeing if they function like you think they should

orchid geode
#

I just play tested it and the Print string doesn't fire, but the dialogue system still works fine, if you collide by walking it doesn't stops you but if you run it can either stop you i your tracks completely or put you to walk (depending if you use a controller or a keyboard)

#

For example, running with W, it completely disables W until you release it and press it again

solemn bramble
thorn trellis
orchid geode
#

Putting actors side to side breaks the interaction system, witch makes sense since you can only set 1 interactible item on the player πŸ€”

thorn trellis
orchid geode
#

Step on, on it...

solemn bramble
thorn trellis
#

That's how I was originally using it, it retunrs None "when not loaded into memory"

#

So I've tried loading it into memory too but that doesnt return a useable object

#

And that's the weirdness of this problem: It should already be in memory because the animations are part of the widget that this bp code is in

solemn bramble
thorn trellis
thorn trellis
thorn trellis
solemn bramble
#

πŸ™‚

thorn trellis
#

data table has path to widget animation, all the bp stuff is inside the TextAnimation widget along with the animations.

orchid geode
#

Same, it still stops the player on its tracks, once but it stops it...

thorn trellis
#

I think you need to track down what is stopping it. If it's not the overlaps you thought it was then you're setting your bool somewhere on accident

orchid geode
#

I think I will re-write the notification and interacting system... it works per item if they are separated but if they collide with each other it breaks.... The bug that stops the player on Overlaping might be because the input is on the player instead of in the object....

#

I will try to enable the input on the object by approach and compare actors the player looks at to set the notification and enable the interaction... if done correctly, it should not distrrupt player movement and clean the Player Blueprint in the process

coral lance
#

I bought an weapon pack and how it is held does not conform to the current socket I have set up for my skeleton. Can I change their rotation and how they are situated so they can conform to the current socket I have?

thorn trellis
thick marsh
#

Hello, does anyone know how I may manually feed certain controller inputs to a non-player character in an FPS game? (the overall goal is to record and replay the player's actions on a different character) Right now, I can spawn a new AI character with a blank decision tree, and call onMoveForward and that function works well, but trying to use the "aiming" functions, like turn and aim up/down, throw an error on trying to call "Add Controller Yaw Input" or "Add Controller Pitch input". For Yaw, I can sort of work around it using SetActorRotation instead, but for pitch this literally flips the whole character upward.

coral lance
coral lance
#

I am trying to get that first pistol to conform like this second pistol

odd ember
coral lance
#

skeletal meshes

odd ember
#

in which case you can just rotate the skeletal mesh within the actor anyway

#

but if you're hellbent on not doing this for some reason

thick marsh
# odd ember you can possess that character

If I would like to manually move a character in the game (from a blueprint program instead of actual player input), should it be possessed by AI controller or player controller?

odd ember
#

you can spawn a scene component rotated 180 and attach it to that socket, then attach your guns to that components

odd ember
coral lance
#

i just realized that they are spawning in as actors how would I fix this then

thick marsh
odd ember
odd ember
coral lance
#

would I be able to use a static mesh rather than a skeletal mesh?

thick marsh
coral lance
odd ember
odd ember
thick marsh
odd ember
#

I mean it won't magically appear

thick marsh
#

The recording is not actually per-frame, it's per delta time since spawn, so some frames will naturally have more than one input

odd ember
#

so it is per frame

#

in either case you don't need to concern yourself with per frame input in this csae

thick marsh
#

At the moment I am able to call onMoveForward and onMoveRight, with my replay program, on an AI character, and these work successfully.

#

I'm just trying to fix the aiming and turning

#

But I'm not sure if I should even be using an 'ai' character or not

odd ember
#

like I said

#

if you, during a replay, ensure that the other character is spawned by the first character and creates event dispatchers to the first character for its input, that's all you need to do

#

or if it's in the player controller that you have the inputs, that the player controller spawns it

thick marsh
#

@odd ember Let me try to explain again the actual sequence of events: for 10 seconds, player 1 moved forward, spins around, jumps, then goes off to continue playing the game for 10 more minutes doing whatever. At 5 minutes of game time, I'd like to spawn in a second character, not at all controlled by player 1, which will repeat the actions that they did for those first 10 seconds. Maybe the real player 1 will even be standing there looking at them replay all of the prior actions, while not touching their inputs at all.

#

So I don't want to copy actions to two characters in real time, which is what it sounds like you are suggesting.

odd ember
#

in that case you'll need to create an input buffer

thick marsh
#

yes, I've done that part, I'm just having trouble getting it to replay certain actions.

#

because there is no "controller" assigned to the spawned character

odd ember
#

which actions? and how does your input buffer work?

thick marsh
#

jump, moveforward, move left/right, crouch work

odd ember
#

and what class is the second character?

thick marsh
#

Aim and turn so not, because they give an error trying to call the function "Add controller yaw input"

#

It's the same class

odd ember
# thick marsh

as you can probably understand this all goes through controllers. I'm just checking if the AI controller has that function

#

so no, the AI controller does not have a direct equivalent. how have you setup your input buffer? how are you buffering mouse movement?

thick marsh
#

@odd ember I'm sort of new at unreal tbh, but it seems like if I use an AI controller instead it doesn't have a "real" controller behind it. So it feels like what I need is some kind of "fake player controller" instead, because really I don't want any actual AI either.

odd ember
#

which is a fairly advanced thing to setup

#

so I'm asking how you've set it up

thick marsh
#

So I have events for all inputs, onMoveForward, inputAxisTurn, etc. And if these are called, then the inputs are sent to the player character as well as pushed to an array with their timestamp.

odd ember
thick marsh
#

And then on the replay characters, if the timestamp is above, it calls the "onMoveForward" that would have been called like the player character.

#

yes, I've actually written a c++ function for that part which I verified worked well already with debug strings and tests with basic movement etc.

odd ember
#

can you show the code for what exactly you're adding to the buffer? just so I'm clear with what you have to work with

#

that's fine you can copy the cpp code here if you want

thick marsh
#

This only works with one action per frame atm I still need to fix that

#

but it's not related to this current issue

odd ember
#

I think you'll have a hard time getting more than one action per frame btw

#

input controls only execute once per frame afaik

thick marsh
odd ember
#

okay first things first, it's probably wiser to use the built in UE4 functionality for this. try with TArray instead of making your own

thick marsh
#

This is the replay tick function

#

so all that's being added to the actual buffer is an "action ID" like 0, 1,2 ,3 whatever for jump, moveforward, whatever, and the axis value as a float.

odd ember
#

your actionIDs are all ints, it'd be a bit easier to understand what they are if you used enums, as well

thick marsh
#

none of that matters for the current error the problem is that I can't tell a spawned character to turn, say, 10 degrees to the left , manually

odd ember
#

that's true but it makes your code more readable

#

right now it's not

#

which doesn't help me trying to debug it

thick marsh
#

indeed. This is for a class so maintainability wasn't yet top priority >.>

#

but I might try to take it beyond that (if it's fun) so I understand the suggestion.

odd ember
#

I mean it'd be minor changes just to make it readable

#

anyway yeah I can see where you are coming from

#

what I'd try to do is probably make a new type of controller

#

derived from a player controller

#

that has those inputs, but does not automatically assign a player

#

the other option you have is trying to translate your input values via the controller functions to an AI controller

#
void APlayerController::AddYawInput(float Val)
{
    RotationInput.Yaw += !IsLookInputIgnored() ? Val * InputYawScale : 0.f;
}```
#

e.g. rewriting these functions for the AI controller

thick marsh
#

which of these two options would you recommend? It sounds like the former is a little less work for the time being?

#

It seems like in most documented things I only have the options to possess as AI or Player

odd ember
#

the former is potentially less work but more risk, the latter is definitely more work but you run less of a risk of unreal not accepting the approach. I haven't looked into how player input would work if no player is assigned, and we may be in crash territory if it doesn't work out

odd ember
#

to be clear, neither approach is impossible

blissful grail
#

Is there a way in BP to determine if we are in a shipped build or not? (I know I can go into C++ and do a custom function. Just want to know if there is an option out of the box)

odd ember
#

even IsPIE has to be made custom

blissful grail
#

Womp womp. Thanks.

vale pasture
#

Hello everyone

thorn trellis
#

Hello