#ue4-general
1 messages · Page 664 of 1
I’m having a tough time rigging the model
@winter zenith default skeleton has those
Every time he just turns into sphagetti 
Is there a way to live check if you’re assigning the correct bone
@hollow tusk that is a weird event, what is it supposed to do and where do you print out the value and where/when do you call it
@next badger how do I know if I’m assigning the right bone?
@grim ore
@winter zenith
assigning the right bone
Where?
I forgot what it was because I wasn’t home but it was when I was migrating animations let me find the tutorial I was doing
(OLD) UE4 Re targeting Guide
https://web.archive.org/web/20180922182734/https://docs.unrealengine.com/en-US/Engine/Animation/RetargetingDifferentSkeletons
UE4 Re targeting Guide
https://docs.unrealengine.com/en-US/Engine/Animation/AnimationRetargeting/index.html
Equipment Up...
and?
@grim ore its supposed to start counting an add 1 every 0.001 second
start counting when the boolean is on, and stop when set it to false
how does it repeat?
i just call it at event beginplay
then it would be called once at begin play and never again
the biggest issue I can see here is you are expecting to run this every millisecond and your game more than likely is taking longer than that to process a frame. well besides the fact that it won't do what you want in th first place
a better approach would be to accumulate delta time on tick
or calculate time passed on demand (but that gets a bit complicated)
Ive been trying to get the counter thingy to work but nothing I tried seemed to work
Just when ever someone presses spacebar the counter goes up by one
Doesnt sound that difficult but cant find it online
you should not need a specific tutorial for that, that is basic variable addition
do you have a thingy for when the space bar is pressed? if not add one
do you have a variable for your counter? if not add one
I have a thing, the ball gets launched when spacebar is pressed
when the thingy for the space bar is pressed get the variable for the counter, add one to it and save it
Also make sure your HUD text is bound to event and/interface is set up
You might be changing the count but not updating a counter/text
How would I go about making a bow?
use a 3d modeling program and model it
Need lots of ribbon.
So here’s a question for something I have coming up on my project.
I’ve got a city builder. Making buildings and roads and walls and all that good stuff.
Suddenly AI attacks city and I want to save the city layout, assign health to those buildings and walls, and spawn soldiers for battle mode.
How would I handle such a drastic change? Change in game state/mode? Or what
Assuming a splash / load screen before battle mode is started etc
you should store th city structure in some kind of struct, and just feed it later to the same construction script to rebuild it
Hi guys, what's actually a primitive?
I see that there are Mesh draw calls and primitive draw calls. Is a primitive like an sub-object that is part of a mesh?
@grim ore whats a better way to do it ?
@brittle gulch PrimitiveComponents are SceneComponents that contain or generate some sort of geometry, generally to be rendered or used as collision data.
Oh okay, so if I have a lot of collision boxes in a mesh, it costs primitives. But those are not drawn righ? So it's not counting as primitive draw calls? Or do they? @next badger
@hollow tusk well you wont be able to update a counter every millisecond probably due to the time for each frame. What is this for?
Well I want to measure the time it takes between two functions
@brittle gulch are you talking about stat SceneRendering?
you can get the elapsed time variable when one function runs and the same variable when the other runs then subtract and get the time between the two if that is what you want. There are a few variables that track time built into the engine.
do you know of any tutorials?
Anyone knows a good way to share my code with my development team?
It's a team I opened
We don't know how we'll share our code
no real tutorials. just look up stuff like get game time in ue4 and save your variables as you run your functions then check them somewhere
@heady moon you will want to set up a source control repository for your team
On github?
I've never made an online repository before because I never needed to so sorry for my bad knowledge about it
It depends, git really isnt ideal for unreal projects
This document overviews the Source Control features.
Oh tysm
@brittle gulch if RHI, it's not just your scene, ue4 has UI around it, at also counted there
you will probably want to use svn as it is the easiest for beginners to set up and admin IME
@brittle gulch you can try stat rhi and then hit f11
don't listen to the naysayers, use git. its fun and easy. fuuuuuun and eaaaaaasy
@sweet relic svn? Never heard of that could you please give me it's link
git tech support:
user: I have <problem>
answer: ok, so you wanna delete your repo and clone it again
@sweet relic thanks
@heady moon also take a look at VisualSVN server as it simplifies setting up the server quite a bit https://www.visualsvn.com/server/
@grim ore Epic not using it internally however, and GitHub only stores source code, not assets
@grim ore if i wunna edit the VR editor pawn where do i start? 😛
@next badger Yes I was talking about stat scenerendering. It tells me that the RenderQueryResult and Init Views are taking over 15ms (when i'm in areas where a lot of things get occluded). Then I go into Stat initViews, and I see here that there are a lot of Processed primitives (around 3000), but I'm not sure what I should optimize to get that number down, and also I'm, not sure that number is that high actually.
@next badger I know, just an attempt at humor on how much people hate on git
@brittle gulch build the game, don't trust stat in editor
use stat for real numbers only in build
should i change the VReditorinteractor class?
present time of 30 ms means it is sitting there idle for 30ms waiting for it to present
@obsidian nimbus I don't know 😦 I haven't messed with the VR editor at all
from what i see its a c++ class walking around changing stuff at editor time
like the sword of a 1000 legends 😛
can i set a randome range for my int here?
from "Silder Range"?
or ValueRange
i want to set my int from 1 -4
@brittle gulch it's cpu stalls...
@plush yew Outline has it's own color and alpha, its basically just the text duplicated and blown up so it's separate
@manic pawn Yeah something's wrong. And you can see that the RenderQueryResult is also very high. But what is the RenderQueryResult? I searched a bit, and it says that i has to do with occlusion culling. Which would make sense because I have a lot of processed primitives.
@next badger And there's no obvious way of finding where it comes from? Maybe it has to do with occlusion again?
@plush yew slider range is just for the UI in the editor, to limit what it could be changed to in the editor
How would you check if an actor exists in a level?
a one off actor (only one of them at a time) or a specific one out of many?
Get all Actor(s) of Class will return back 1 or many actor objects of the class you tell it
type of deal
@next badger Yeah I've just been through this page. Although it didn't really helped. It says it's because of occlusion queries. But I tried enabling HZO, and put r.AllowOcclusionQueries to 0 (and 1), and nothing really helps :/
@grim ore I am looking to check if a spawnpad exists and if there is any more of "redteam".
if a spawnpad is an actor in the world you can "get all actor of class" for the spawnpad and it will return back the spawn pad or nothing. "get all actors of class" for the red team will return an array of how many of those exists and you can see if its greater than 0
great logic. if that is the fastest way that is what I will do
alternately your game mode can track all of that when it happens (spawn spawn pad, let the game mode know) players spawn? let game mode know
@next badger I have to do it in editor right? No way of doing it in the packaged game?
@brittle gulch show quadoverdraw 1
in console
you can see a lot of fancy stuff with show
also it can disable things
like shadows etc
How do i get the edges to be smoother and less blurry ?
reduce density me thinks
that just changes the opacity :/
@next badger I did it in the editor because for some reason it wouldn't do anything in the build. Here it is :
it's everywhere like this, I don't think there's anything wrong
Working on a 1-v-1 3D fighting game prototype similar to Bushido Blade.
Does anyone have a good model and animation asset pack they would recommend for prototyping?
hi
Any way to make skylight not go through landscape? like I got a under ground base
Is getting the class defaults variables resource intensive?
I'm getting it from a unit with lots of variables.
Just wondering, since i'm not really spawning in the unit itself.
Maybe my RenderQueryResult problem comes from the number of lights in my scene? I currently have over 4000 I think (non shadowed and non overlapping, I checked light complexity, it's all green and blue)
@unreal sable shouldn't be, it's just getting property value from the Class Default Object which does always exist
How can I time dialogue with gameplay events?
i found a bug in Unreal
If you zoom out while having your Sky Sphere selected (needs to be default one) with the size metronome, then your metronome is scribbled
@quartz bane t.TargetFrameTimeThreshold XXX sets the frame time threshold which is your budget you see on the graph
is there way to set so actors stop ticking if they are sufficiently far away from player?
use begin overlap @sage silo
make a box collision in the player bp and make it the area of the player where the stuff should act
@plush yew There is no one answer, it would change based on how your systems are designed.
begin overlap to set ticking on and end overlap to set ticking off?
ye
Does culling work on sub-elements?
dont need end overlap
hmmm I thought there will be more "internal way" like entering some numbers in some box but it is worth try
@sage silo there is network relevancy but that would be for networked games. Beyond that you would have to roll your own system assuming they don't get culled anyways
matthewW wouldnt single-player technically be still network game as far as UE is concerned, just with one player?
nope
oh? there is difference?
yep you have a listen server or a dedicated server if using multiplayer
ok, then I guess overlap is best shot
i am stupid, i tried it, i tried😔 @sage silo
there are a few other ways of doing it but it just depends on if it matters or not and how many
well, for my use case I have many static actors (lights) with pretty extensive blueprint and they are surprisingly heavy cpu-wise so I want to disable lights that are too far away
light...with heavy cpu logic...i wonder what they do? haunting player?
pretty close
there is invisible mob and lights flicker and do other shenanigans when mob is close to them
then just make a collisions sphere around mob, make channel just for those lights, and switch them based on overlap status
this is how I detect if lights should change behaviour
there's a "is ticking" node that you can switch on/off
anyway I care only for lights that are sufficiently close since far away ones are visually culled anyway (but these damn things still tick and happily gets game into 10-15 of FPS ;/ )
well, just switch tick off when they are not in range
it is more complicated since they can flash on their own etc
you have to do that from the mob volume...as lights cant "act" when tick is off
This is one way, the actor checks every so often (a timer can check every second for example) and if its in range tick is enabled otherwise tick is disabled
this atleast moves the checking to every so often and disabled the tick when not in range
@grim ore can you set timer and off the tick?
yep you cant see a timer that is set to repeat every second above that screenshot lol
dunno why I didnt screenshot it
hmm that may be simpler than overlap
and I tested th timer still runs even with tick disabled
my actual test BP.
would print TICK every tick when in range, and out of range when out of range every second
thanks for help!
I would put some sanity check in there tho, if tick is already enabled or disabled no reason to re enable or disable it for example
its just POC
nope
aw 😦
if its enabled and you enabled it again it doesnt care, nothing should really happen but wasted cycles
it's an overhead, no need to do that...ue4 can;t event check for nullptrs when it may crash editor
not saying its better but I would feel better just checking rather than setting but I am weird lol
simple sanity check?
yep if its enabled, why enabled it again type stuff
I mean you could get really weird and use a select node instead of the if but... why lol
keep it simple 🙂
not neccesairly....
but logically less is better in programming it has to be better!
If I encountered this in wild I would need comment or think for long while wtf it is supposed to do
why use if (blah == blah) do something else something else when you can (blah == blah) ? bacon : cheese
obviously smaller code is quicker to run, it's less words to process!
I think I am super bored at work lol
you arent very serious arent you 😉
depends on the hour
I mean, some optimisations can be complex and take a lot of code and result is faster 😛
There is no keyFrame
For outlines
so they just stay there i want them to fade out
am confused 😄
the text is working fine it is fading
but not the outline
@plush yew you are correct, I would think someone just missed that when making outlines. If you just want the entire thing to fade out you can use the Behaviour -> Render Opacity property to change the entire opacity of the widget including the outline
alternately you can wrap the text in something like a border (just a single widget holding it) and chang it's content -> content color and opacity and adjust the alpha there which will fade out all the content of that widget (your text block)
Good time of day. Need some tutorials with how to create fish by materials, or by other way.
the tooltips should give you the difference, but basically a copy is a copy so its 2 instances of the same stuff (the original and the copy) while the ref (reference) points to the original so if you do a change on it it will change the original.
if you look at the pin icons they are a diamond (ref) or circle (copy). the Iterator (++) node is a good example of the ref
you plug in a variable, it does something to it (adds +1), and then sets the variable to the new value you put in
I will quote p@t,
"get with ref means you can change the value
get with copy gives you a copy of it
so if you were to change just the X component of a vector with get (copy) it wouldn't apply to the one in the array
get (ref) you'd technically dealing with the actual vector at the memory it lives in within the range of the array
copy is slow too
it takes time to copy where a ref is just an address to where the thing is"
@grim ore you should get paid by UE4 for how many damn questions you answer. lol
pointers and such in C++ exposed to blueprints.. yay!
hate pointers.. hate & and * symbols.... they all can go die in a fire
lol but you like casting
yeah true just wrapping. pointers are pretty easy. just understand memory.
understanding*
easy yep, evil yep
can still be a pain in the butt tho
Am following this tutorial and in function i cant get Player controller to connect to Project world to screen as it look here
its just more of the remembering how many * and & symbols you need to get the proper value from where you want it based on where it's at and how many loops you want to go thru to get it...
@grim ore are you a game designer or is this a hobby?
Not all game devs are game designers but all game designers are game devs
guys I want to backup my project but its so big, I noticed the "saved" folder is 11 gig. Is that folder important ?
@pulsar kraken yes and yes and other stuff too 🙂 education right now mainly
@vast fossil most of that can be removed. If you want to save anything save the Config folder in there. Autosaves, Logs, Backups can be removed without much issue. Collections should stay if you use it.
@grim ore oke thank you
@plush yew that looks like the correct location, it matches where mine are installed. EngineVersionFolder\Engine\Plugins
@plush yew player pawn is not the same as player controller
MathewW
when doing this i should apply this to the player BP some how?
So i can call it
inside the player graph
I dont know how your stuff is set up, no real idea
I did not know that, I don't think I have ever downloaded a plugin from the marketplace so that makes sense
assuming the version matches yes, or if it has the source it should allow you to rebuild
keep a reference to the player/parent that is the correct type then you should not have to cast
use a blueprint interface to generically ask for that info without needing to cast or know the exact type
store all of it in a global object that everyone keeps a reference to at all times... (would not do this)
blueprint interfaces just need something to work with, it doesnt care what. You can use a blueprint interface to tell a dog to explode or a barrel to explode or a car to explode or a llama to explode
so in this case you would just need the player or parent, regardless of type, to talk to
What is a Blueprint Interface in Unreal Engine 4 Blueprints?
Source Files: https://github.com/MWadstein/wtf-hdi-files
@plush yew to rebuild a plugin to new version, the simplest way will be to make a new c++ project, completely empty
then put the plugin in to that project's plugins folder and generate project files again
blueprint interfaces can be functions so they can return values, set up the interface to return values.
the pawn implements the interface, the interface function returns whatever. you ask the pawn to run the function and give you back whatever
how can i mask out areas which should not be affect by subsurface-scattering?
btw i used a subsurface profile
@plush yew as first experience - maybe...=))
There is a marketplace folder, that is neato. weird.. but neato
like bridge can install right to the plugins folder but MP plugins go into their own walled garden lol
@grim ore i can't recall when they've added it...but it's not necessary for plugin to be there...it's just a way Launcher installing plugins
yep I assumed as much, just never installed a MP plugin before so never noticed that
#1 wish at this point from GDC is a reworked launcher. Scrolling thru vault content to find what is updated, what is installed, and what is new when there is a change is.... just bad
I have it open right now yep
nah. just would like some of the lower class features improved is all. I get notifications in email when assets change in Unity, I get a change log on the asset store page with the changes, and the new package manager in the editor lets me see what is installed/needs updating/ and what I can install and filter as needed.
being able to atleast do some of that in the EGL would be nice 🙂
like the modular heros pack updated the other day and I don't know what changed 😦
I found out after updating and having to redo all my characters that the SKM they were using changed heh
Ya the launcher feels like Epic's red-headed-step-child
especially the developer focused parts
Moving the mod tools to the store tab was an odd choice
it makes sense for me...as modding is not same as game development
and mods are like game tools in steam
I gotcha on that but the store is/was disorganized so they basically disappeared into nothing
like how would you find them now if you didnt know they existed
yeeeaah...launcher is kinda mess...it was, it is
launcher still uses Chromium wrapped in ue4
it is better than at launch so +1 to that 👍
@grim ore anything is better than it at launch...
Is there a way to change where movie files (startup movies etc) are expected to be rather than the default Content/Movies directory? I prefer to use the following content directory structure for organizational purposes:
Content/MyGame/...
Content/MyGameEditor/...
@honest rune if you read the docs:
In this example we elected to put our media content inside our project's Content/Movies folder. While this is not a requirement it is recommended in the event that you want to package your project, as this is the only folder that will automatically include the content as part of the packaging/deployment process. You could point your File Media Source asset to folders outside of this location and the media will play, however if you were to deploy this to a mobile device for example, the content would not be included as part of deployment.
ahh cool. I didn't read the very last paragraph lol So its only really an issue for mobile, but desktop should respect paths
@light lintel open a skeletal mesh...there will be a buttom - make static mesh on the toolbar
@honest rune on mobiles you are really limited in terms of deployment files (from store)
is there any tutorials online where they show how i can make a "linetrace" that shows where the bullet will travle/hit (befor i've shot) i hope i made this clear! 😛
Has somebody got an idea how this basicly works? Im just curious.
Doesnt look like regular mesh slicing to me.
https://youtu.be/AAfJe-R5YuY
More work on the tree cutting system. I still haven't implemented radial damage yet, and I still don't have an axe, or any of the animations that would go with it. Mostly just testing a proof of concept.
@half panther Given the meshes on the left, i assume these are precut, then traced and removed.
anything thats not animated should be meshes. some things that are animated should also be meshes.
usually they will be absorbed by whatever you clicked on if its set that way
is this clicks on a button or in like the background of the ui?
The 4.24.3 Hotfix is available—update now!
The 4.24.3 Hotfix is now live!
Feel free to discuss this release on the 4.24 forum thread (https://forums.unrealengine.com/unreal-engine/announcements-and-releases/1695917).
If you experience a bug with the 4.24.3 Hotfix, please follow the How To Report a Bug Guide (https://...
Thanks mathewW render it all out worked
matheww i know i asked you b4
but setting Value range that wil lgive my int a range lets say from 1 t o6?
that is all mainly for Editor use
@light lintel your default panel is probably set to this, you probably want it to visible so it absorbs the clicks
@plush yew so setting the slider will give you a slider in the editor when you click on it in the viewport, setting the value range gives you numbers you can type in between those numbers. Editor only stuff
the slider range limits when you slide it but you can type in a higher or lower value, the value range clamps it to those values but again only in editor
Am trying to give my int a random range but
I dont want to use event tick
any thoughts :D?
what are you trying to do?
whats wrong with what you are doing there?
its not printing out
for some reason
each time i attack which is left mouse click it suppose to change value
so somewhere else your left mouse button is doing the attack?
then you should change the value in there
tell the player to talk to the sword and change it's value when you click
otherwise click on the Left Mouse Button input you have on your player and disable the Consume Input option in the details panel
and make sure your sword can accept player input
this last way is the wrong way to do it, the disabling consume and letting another actor take input as well
there is no reason to use a tick if you are not doing something every frame
you want an action based event to happen. I click the button -> do stuff. Doing stuff when the button is not clicked is wasted resources
yup i get it now
MathewW as you have time check this
is Attacking works when i attack
like this event tick wont be working all the time right? only when i attack
assuming your player has that variable yes but its going to change the value every tick while they are attacking
attacking -> tick -> new value, next tick new value, next tick new values, repeat till not attacking
So assuming i have two meshes assigned to the same material how can i make it so one of the meshes appear opaque, also the UV maps of the two meshes overlap so an opacity mask isn't optional
@hasty osprey you will either need to make a translucent/masked material for one or fix your UVs to allow an opacity mask
I am assuming that by 'same material' you mean 'same texture'?
no i literally mean the material has to be the same😅
What is the goal, maybe it would help understand the problem
but assumind editing UV's isn't possible is there another way?
the goal is for the material to only show one of the meshes
They have to share a material? can you not create a dynamic material instance for each mesh and set the opacity using a parameter?
hey, does ue4.23 support dynamic resolution for pc ?
can that material instance have one parameter value for one of the meshes and one for the other?
@grim ore If your around. I was wondering how do you set a distance that text can be rendered to your screen. I don't want health bar and text visible unless character is within a certain distance.
@hasty osprey i don't think so no,
hmm ok
u can create another instance to change the parameters required for the other mesh,
@woven cliff it doesnt look like it according to the documentation. No platform updates since .19
yep i just wanted to make sure instead of dump trouble shooting, Thanks @grim ore
Dose the damage numbers look bad
it looks fun, no real way of knowing where they came from but depending on the game it works
@plush yew can't tell where most of the numbers came from
You right 😄
neither do i need to work on it a little bit
cant see where the numbers coming from
also, how about adding color coding as i noticed there is a low and mid and high dmg so you can also color the numbers according to their intial dmg 😄
I cant tell half the time in games like Elder Scrolls Online when it's a mass of mobs so no real issue here lol
"D
and MDK i think that would work if knew how
ganna google it
test it out maybe would look better
I have no idea either sorry , 😄
How does it come that i have to download ~5gb when i update the engine from 4.24.2 to 4.24.3 ? 
@maiden sundial have u ever updated Fortnite :D?
I don't play it, so, no xD
each update is in gigs they don't do small patches , maybe they don't know how
@plush yew depends on what uare running, but usually it doesn't eat my cpu
I mean, the bugfixes page don't look ~5gb worthy xD
figure out what part is running at 100%. does it show like shader compiler? or some other part
yep should be a drop down next to it to expand it
100% CPU is normal if you are compiling shaders for example
has anyone updated to 4.24.3?
Lets say normal state
you are not running any program
what should be the cpu at?
no running anything at all
couple percent depending on your idle tasks
but you dont have Hyperthreading on that machine so it's going to run higher % usage even doing normal stuff
has anyone updated to 4.24.3?
Me 5 minutes ago
sorry for the huge screen shot, but can someone please show me what should i optmize ? the scene runs on 40 - 50 fps on gtx 1080
@plush yew it could be. we have no idea what your machine is doing
@woven cliff run command stat unit, if draws bigger than gpu or equal arround then ur should optimize draws first.
@plush yew this is what the default third person template looks like for me on my machine so a very light project
it's behind by 2 ms
AM really worried even so its not doing shader thing it reach 60% to 100%
and am only opening Opera browser with it
you should recude draw calls first
@green sky you would have to update the launcher version of the engine with the launcher.
@plush yew if you have a big project with lots of stuff then sure it can take more CPU. its not abnormal if your project needs it.
Nevermind it just appeared thanks
GPU calculation behind is draw and game (CPU side) so if you reduce them, then you can see GPU ms reduces too.
i used instances, foliage, almost nothing is separately placed
also i thought 2000 draw calls is good for desktop:/
ok i will try to figure out away\
maybe remove lod materials ?
but seem not, everyone have no gtx 1080 or high end cpu
nah google it
"draw calls"
reduce mesh materials
will lod numbers help too ?
like if you have one mesh inside 5 material, then it draws 5 drawcalls(except shadows)
instead of 4 lods using 2 lods would be better?
Hey Mdk im not sure what your project consist of but like Noira saud reduce your draw calls, Check that you dont have alot of Over Draw that would definately kill performance, LOD as much as you can. And Dont have many things Ticking
Lods just reduces triangles, make sure removes some materials within lods.
Exactly and thast what reduces Draw calss
@green sky @frail sail okay i will dig into the scene, thanks guys!
one more tip
iam using world composition as well since this is around 3.5 km map
research also "Actor Merging" with merging material into one
Hey Mdk this is what we use to auto generate LOD;s on entire project all at once https://unrealengine.com/marketplace/en-US/product/easy-lod-maker
wait even skelta meshes @green sky naayce!
itsn't support 4.24
iam using 4.23 😄
thanks for guiding me guys, i thought my draw calls are okay, but eventually that's where i screwed up
well thats another option to upgrade tho, it works if there no errors, or deprecates
I can't, the developer will kill me if i upgraded to ue4.24
yeah never upgrade 4.24
Well honestly 4.24 pretty much sucks and its really broken
and i have another project in 4.24 , it crashes for almost any reason
thats normal
down to enabling two sided material xd
Thats where 4.24 sucks it crashes for no reason
Even epic doesnt recommend upgrading until 4.25
you should enable it for foliage or two side planes
it wastes drawcalls if you enable two sided on all mesh
4.25 when 
i didn't know two sided material increase drawcalls, but i only use them for one sided planes with SSS
thanks for that info xd
Judging by how messed up 4.24 is probably by Next Year
Technically two sided materials will be treated like any other material, as draw calls are acountable to what is within the Frustrum of the View or camera
So if you dont see the otherside it wont be rendered
Anyway Mdk if you see yourself needing to LOD like your entire project and you dont want to have to do each one by one or by folder the link i showed you above that will make your life so much easier because it does it all with one click automatically and unattended. 🙂 Good Luck
@green sky easy lod maker works well with comples meshes? like rocks and so ?
in my current state everything has lods
and trees has billboards
We currently have a 4 city open world survival game in progress wich consist of lots of mountains created by brushify Cars skeletal meshes ect and it works flawlessly
i already bought it, and backing up the project on the source control before i click generate 😄
Id say over 15k assets at the moment and growing and our world comp map is bigger than gta 5
incase it ended up with worse lods than we already have i will revert
how did u handle this ?
i mean optmization wise
and world composition cause hitches for u as well ?
Optimizing is a pain in more like performance versus compromising. Just make sure you dont have lots of over draw usually caused by foliage or sky sphere. If you dont have to use tick dont and if you do try using timers instead and keep your draw callls down
in order to overcome World comp hitches you have to plan out whats going to load in at what distance to the player and agressively Lod
that cause me hitches on load and unload
shortcut for creating this window to sum up all events inside?
@pale ferry the pic is too pixlated
nah i mean the outline
Also make your landscapes into Static meshes they are we faster than landscapes and there is an option to do that along with lods in world comp
The comment bubble? C
with ur nodes celected
thank u very much
Like i say plan it out, where you think grass would be important and were it wont. I do believe theres a way to place grass on static meshes to with foliage tool
manualyl painting
Also if you have alot of logic with lots of math in it try to pass those to C++ and make them into c++ nodes because Blueprints and math = Really bad performance
As for the foliage i havent tried it yet but maybe thru material you could spawn grass on static mesh as you would on landscape. But like i said i havent tried that yet
if this workd, it would be awesome
I really appreciate the time u spent explaining stuff
thanks!
sure thing ! thanks man.
You can vertex paint the mesh and have grass spawn using said channel
hmmm
imagine im in a car doing 70mph, and i throw a tennis ball forward out the drivers window at 20mph, how fast is that tennis ball going?
90mph right, on the "forward vector"
yes?
so, how come if theres a moving pawn in ue4 controlled by character movement, moving a velocity of "2000", and i fire a moving object from it using the projectile movement component, also at velocity 2000, on the forward vector, you' expect the speed of that object to be 4000 yes? nope. it seems its velocity is 2000, it catches up with its own bullet. 😦
is this a bug?
of course i can add my pawns velocity to the velocity of the bullet, but as theyre both "physics assisted" and im just specifying velocities, should i have to?
@placid arrow you will likely need to add the starting velocity explicitly. afaik there is no underlying physics calculations for the projectile spawning, you simply tell it what velocity it should have and it spawns with said velocity
ah
i found that a little strange
didnt notice it was a thing until i caught up with and collided with my own cannonball when moving at speed lol
there is no concept of relative velocity in unreal iirc
its not a stupid assumption though, right?
in physical reality no, but PhysX is not exactly an accurate model of irl physics
true
i'll just be sure to add the firing pawns velocity to my projectiles
if they do that and accelerate into a field of cannonballs, well thats their own stupid fault 🤣
speaking of bullets
today i learned: real life chainguns/large heavy machineguns sound so anti climatic and would be so boring if they sounded realistic in a game.
i went to youtube for some inspiration so i knew what my audio i was going to make should sound like... everything i found was just ass
like this one guy with a chaingun on a tripod, it was just like a long rattle...
and this navy one on an aircraft carrier, it has a fire rate of like 1-2 shells per second.... booo-ring lol
i get the feeling that most audio people when they make these sounds, they base them off portable submachine gun sounds and crank up the volume and add a motor spin-up sound to them... so thats what i did. i think mine sounds cool 🙂
yo i've Been having this problem for a while https://twitter.com/GoodGuy_Kaze/status/1232470238135930880
is there anyway i can fix it?
Hello, does anyone know if there is a way to process a large landscape into smaller world composition levels automatically? I know I can do it manually by selecting components and moving them into their own level, but it's a very tedious and manual process especially for a very large landscape. And unfortunately starting over and importing a tiled landscape isn't an option, as the large landscape is already finished and in one piece...
Would be nice if it was possible to do it by components or groups of components, (2x2, etc).
Any idea why it starts "painting" other areas, too?
I have some blueprint code set up to make my trees fall to the ground when chopped down. It works fine. Its just simple rotate on x. But I was wondering how to make it always rotate opposite to the player. So the tree falls away from the player.
so the direction the player is facing ?
or like tree is here and player is here so the opposite of the player even if he is sideways
yeah exactly. The direction the player is facing.
actually either way doesnt matter. Use the find look at rotation node from the player to the tree and make the tree fall in that direction?
I understand how to get the look direction. But not how to properly convert it to a rotater.
If I just plug the look direction to the set rotation. I don't think it will rotate down to the ground the way I want
There is a get unit direction node, I was wrong on which one to use
this is the basics of something that works in terms of getting a direction. This example grabs the players location (the BP this is in) and the location of another actor (your tree) then gets the unit direction (a vector that represents the direction from player to actor. Then I take it and make it longer so farther away in that direction and add that to the other actors (tree) location so it moves in that direction. You could use this to determine which way it should rotate or fall if you need a direction
Is there a trick to using the Directories to never cook property? I can't get the cooker to ignore a directory by adding it to that array.
Only thing I can think of past it being broken is that maybe you have something on one of the other forced cook lists.
Is the Developers directory in the forced cook list?
It shouldnt be but maybe its being referenced by something, theres no actors in the map or the like?
I'm just getting an unusual cook warning that says "Failed to find a package for cooking path/to/asset" for something in a Developers/user/Collections folder. Worth noting: this asset does not show in the content browser, only in Windows Explorer. Because of that I assume it wasn't updated when I migrated the project from 4.22 to 4.24.
can sphere collisions AND line traces return foliage instance index? or can only line trace do that ?
collision box keeps returning -1
fucking monkie hoops. it shouldnt be this tedious to swap an instance mesh for a actor mesh. its not 1998 anymore.
💯 Can i get the element index from a foliage instance with a box collision ? or only line traces ?
oh that could be and old redirector, if the class was moved to another location you might be able to setup a redirect in the ini then remove it
thats probably why its getting cooked because its referenced somewhere
or wait failed to find hmm, corrupt file perhaps.
Yeah might be. It's a Niagara system, and I do have Niagara enabled in this project, hence the confusion.
But frankly, this warning isn't as important was the unknown cook error that's keeping me from packaging in 4.24. 😦
yeah and you cant see where its referenced since you cant click on it in UE
Indeed.
maybe delete it and replace it with a temporary niagara asset, then you can see where the reference is.
My cook error is very vague. The only lead I get is:
Assertion failed: 0 [File:D:\Build\++UE4\Sync\Engine\Source\Runtime\RHI\Public\RHIDefinitions.h] [Line: 1340]
Unknown FeatureLevel 2
I can only assume it's rendering related. Not sure where to go from there.
Can i get the element index from a foliage instance with a box collision ? or only line traces ?
Sorry, I don't know much about the foliage tool. 😅
Are you trying to get the index of an instance on an Overlap or Hit event, or with a box trace?
i know how to do it with hit even and sphere trace, i was just hoping i could do it with an overlap event instead.
inline int32 GetFeatureLevelMaxNumberOfBones(ERHIFeatureLevel::Type FeatureLevel)
this is the function your error comes from @maiden swift maybe check your skeletons for bone counts if youre doing mobile
ill just monkie rig it, every time my foliage box collision triggers, ill pulse a line trace. ill just kill 1 monkie with 2 stones.
didn't they just remove a feature level from mobile?
Are there any New unreal users that would wanna work on a project with me for fun
They removed it in UE4.25 Im looking at UE4.24
ah
Still has ES2 here and ES3 with a bone count max of 75
@upbeat trench Really appreciate the lead. I never would've guessed because we don't have skeletal meshes in our project, nor is it mobile... but it turns out there's a very old player reference skeletal mesh in my Developer folder.
Like the pre-mannequin one.
Well, I got excited too soon: deleted that skeletal mesh, same error. 😦
oh also does any one have any ideas they could see for a fps or vr game im stumped
That function is def only called from skeletal/skinned meshes
a VR game you play on the toilet. Everytime you wipe, it scores you using various sporting simulations. Starting out with Curling and progressing through DLC to fishing. You're welcome.
yeah 2 flush rating.
@upbeat trench There's no skeletal meshes in my project as of right now. 
Any cloth? because thats the only places its called from
Not that I know of, unless my partner is using cloth as a hack for something. I'll take a look.
It's a first person game with no character models.
Its really odd how Epic have coded this function, it fails on just about everything except PC and Mobile
Does cloth have its own asset type? Or is there a filter parameter that can find it?
Part of Apex so... its probably built into the Skeletal Meshes hmm
I thought so. Just asking because I have zero experience with cloth. 😅
hey my materials all show up as static even after adding metal, normal, albedo, displacement and roughness values
it does this for all materials even starter pack ones
https://pastebin.com/pEYkhUwn this is the function here, its pretty junk lol
@upbeat trench Here's my full cook error log if you're curious: https://pastebin.com/uHwCp5Ku
That's from just trying to cook content, not packaging.
Wow doesnt even get very far does it
Nope, it sure doesn't. 😞
@maiden swift only thing I can think of is you have some corruption in your ini's in regards to what feature level the engine should be running. Its inputting a 2 into the function causing it to always assert
There is that weird line about an ini file.
yeah must be is it not supposed to do that
Failed to find resolution value strings in scalability ini. Falling back to default.
@opal lark I recommend asking #cinematics about that. 🙂
thanks
Theres no good reason for this function asserting like this, its invalid input it shouldnt even be allowed to get through. Return 0 will basically never happen
Sheesh.
but yeah your ini's are feeding it the wrong feature level, Im assuming it should be like SM5, ES3_1 etc but its feeding it 2.
and instead of failing gracefully it just blehs
That is so weird.
Whatever it is, it's new in 4.24.
The same project in the same state packages with no errors in 4.22.
it could be a difference in the way the configs work, perhaps try to regenerate them or copy them over from a 4.24 project
Yeah good idea, I'm looking at the configs and comparing them to a 4.24-generated one.
Also, I wish I knew what this empty warning was.
@upbeat trench FOUND IT!
Ate there any videos you reccommend to start using unreal
This was inexplicably in my project's config after migrating to 4.24.
It was trying to build for Open GL 3 (SM4).
yeah not supported anymore
I don't know where that came from, but I got rid of it and now the project is cooking.
Well, I'm wrong. According to the 4.22 version and our source control, that line has been in our config for a long time.
We may have been targeting that RHI years ago, so I'm guessing that at some point that line was not removed after updating the config through Project Settings.
In Project Settings, everything but DX 11/12 is unchecked.
It is a mystery.
yup makes sense, I tend to migrate the hard way to avoid issues like that. I'll make a new project and repo and migrate the old one into the new, gives me a chance to trim fat but yeah I do lose the repo history
ye they just deleted the checkbox from the UI but the config entry remains
had to remove it manually aswell
Oh man, so glad I had this conversation.
Probably wouldn't have gone down this road otherwise.
Thanks again @upbeat trench.
I was gonna be bummed if I couldn't upgrade to 4.24. 😄
no worries, I might even fix that horrible bone function at some point to save people headaches.
New project → Migrate I get, but a new repo too?
yeah incase I want to open the older one, its easier than checking out and all that crap 😛
sometimes I want both open at the same time
that seems like it would break all your config
I usually go over the config manually and compare my sections to ones generated by a new project
check if there's any changes I don't recognize
hello
im getting the Warning: variable is not initialized properly
when i package my game
how can i get rid of this and whats properly initialized variable ?
all of these variables belong to Uproperties
c++?
TEnumAsByte<enum EAxis> FootAxis;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = EndEffector)
TEnumAsByte<enum EBoneRotationSource> EffectorRotationSource;
/** Tolerance for final tip location delta from EffectorLocation*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Solver)
float Precision;
/** Maximum number of iterations allowed, to control performance. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Solver)
int32 MaxIterations;
/** Toggle drawing of axes to debug joint rotation*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Solver)
bool bEnableDebugDraw;
/** Inverse offset of right foot. Some models need it. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = FabrikBones)
bool bDoInverseRightFootOffset; ```
yeah c++
that warning means you don't have these values initialized to anything
This doesn't mean you should initialize those values to anything
I honestly think most people just ignore that warning
I'd be interested to hear otherwise yeah
pretty sure the memory is always zero'd
for the actors or components that use your struct
if you wanted the warning to go away, you could set these to zero or anything in the constructor
if i want a world created with cubes, give them each a health bar, when health bar is 0 i want them to be deleted, whats the most efficient way of doing that
does the CDO not get zeroed?
no
I think this is for structs specifically
yeah structs that don't have full initialization
they're always zero'd for me but, maybe thats not the case outside of development editor?
in general tho, warning message = fix it 
i always thought that one meant it'd just be zero'd
I haven't fully understood when header initers run, so have avoided them
Doesn't it just memzero the memory?
no
for uobject, it will run your constructor then copy values from cdo for uproperties
for ustruct, your constructor and nothing else
I see, and the CDO has the properties correctly initialized to nullptr etc right
I never checked how those are initialized
I have never had a struct init to anything but all zeros unless it has types with constructors in it
it might for cdo
wasn't talking about structs to be clear
it does not for instances
Yeah already had issues pat IIRC
i think the memory bed is at least groomed before the new () runs
Sure of that Zeb?
But then think about it, when are you really using a new struct outside of on a UObject
i want to know about these ptrs zeb lol
in arrays for example
Then it's obvious it won't be memzeroed/initialized
it will be initialized if you write initializers for the members
ye like usual in C++ lol
ye
yeah but c++ wont init void* to nullptr
unreal does this, and i rely on it to do it frequently without issue
that's why you write = nullptr anyway just to make sure
eh redundant though
It does on UObjects
only for reflected ptrs
But since you use NewObject to init UObjects
it's clear some custom stuff is happening under the hood
FYI @manic pawn
idk, when things like uobject are basically like.. never newed outside of 16 phases of readying
IT IS MEMZEROED
Tada
where is this
StaticAllocateObject
what sets bSubobject
would think it allocs a block of memory for the whole shebang right?
all the subobjects etc
(thus easier to copy)
So the CDO is not memzeroed
other way
if we aren't creating cdo we don't enter the branch
i bet the cdo is mem zeroed
there's two !
bCreatingCDO is true -> else is taken -> bSubObject is true -> Not memzeroed here
and a else zeb
wait what
that if is collapsed
big thinking
convenient
the cdo must be zeroed
ye
it's the only way detection of defaults from native constructors can work
so there has to be more to this branch
the allocator could very well mem zero things
it doesn't
constructor wouldn't run on a sub object, so i'm sticking with zero'd in base class
For the CDO the Obj is going to be null
native constructor always runs
not a copy constructor?
then why run a constructor?
it makes a new one and manually copies the reflected properties
to initialize non reflected values
Well seems you can recycle objects
and then don't need to call the native constructors on them
cursed
lol
Oh snap
@glossy scaffold so it sounds like you can ignore the warning
you never ignore warnings
Pat
so fix it
it's always going to be fine in UObjects
no warnings allowed in build
It's not going to be fine in other code
i think the real fix is
So like
TIsPODType
well ill fix them then...
Yes
so i should just give a value to them somewhere yes?
Yes
i don't get how you'd init a bp
not seeing why it would
Because it's not going to memzero the memory?
these warnings are only from uobject members
structs inside uobjects
I don't think no
what warning are you thinking of?
how do i init this?
TEnumAsByte<enum EBoneControlSpace> EffectorTransformSpace;
yeah but that happens in uobject members only
= EBoneControlSpace::Something
TEnumAsByte<enum EBoneControlSpace> EffectorTransformSpace{EBoneControlSpace::yada};
Well obviously NO since I got that warning without it being a UObject member @normal burrow ?
no fuck that {} notation
TEnumAsByte<enum EBoneControlSpace> enum is wrong here
TEnumAsByte<EBoneControlSpace> EffectorTransformSpace{}; should do the trick
i'm not sure what code runs in c++ where it would complain? is it on the actual struct phy?
When packaging it's instancing several structs
and memcompare them
That's what this warning is
it's telling you structs aren't the same when they should be
that seems like an incredible
method to test it
weird i've not ran into that before outside of specifically members of objects
but don't doubt it could be an issue
Well I haven't look deeply into it zeb
maybe it's just like allocating them on top of allocated random memory
How else would you check the constructor of a struct is correctly initializing every member
I've always written things without initialization and just filled TIsPODType
I'd be upset if i had to start initializing every member lol
is memzero slower than a normal constructor setting all members to 0?
It's way faster
how can it be faster
but if you memzero, you don't init
which is why i'm kinda baffled by the warning
and is optimized for every CPU out there
It's not so much about init pat, but about having deterministic results
it even has virtual calls involved in it for resolving what FMemory is
yeah i get that would be the reason to be redundant
std::memzero is super fast
parallel for is full of virtuals too
@manic pawn wut u saying
Malloc might have a virtual call
Memzero def not
all that stuff is going to be inlined and compiled to a few instructions
#define memset Unreal_Super_MemSet
just kidding
but there are a bunch of different versions of that phy
Is compiled into
std::memset, memmove and stuff are specially handled by the compiler
it's very strange when the compiler ignores constant expressions
but its definitely not ignoring anything there
restrict is weird
no
yeah, just was reminded and am very tired
restrict is only necessary for overlapping args right?+
Malloc is going to be slow anyways
guess it's only the Malloc that is big then
do you not need to restrict both?
No one
If A doesn't overlap anything, then A doesn't overlap B
No need for B to don't overlap anything
After restarting UE?
yes
And recompiling from VS?
can they just delete hot reload already
hehe
I find that stuff amazing tbh
detecting code that basically does a memcpy
and replacing it by real memcpy
if it takes the size dynamically I don't get how it can possibly be faster than unrolling that loop
It's faster above some sizes
If I reduce the 1024 to something lower it's going to be inlined
wym 1024
But above that it's faster to branch into a system specific memcpy
your struct has like 12 floats on it
the other one
Well yeah ur right
Anyways point is it's branching if the data to copy is bigger than X bytes
Which?
yeah nvm it's copying a massive block of data there
So the memcpy will be able to use all the CPU features that can be used, since the memcpy lib is usually system and not app
So in theory even old apps that call memcpy on recent machines will use AVX512 etc
https://godbolt.org/z/KJ6dMc idk why its not running my code
@glossy scaffold More issues? I think using legos is easier than re-creating them..
what's with the __assume
Hax
yeah, fuck
it ignored my assumptions lol
/O2 pat
yeah i got it, thank you
i told it to assume other things
are we playing code golf?
Oh sorry 🙂
(did mean O2 though yeah), just was expecting it to return 1
There was a bracket on the same line as the if, my brain parser died
Well it's retuning 1?
eax is return register
https://godbolt.org/z/hqNshw finally
I think at least
You nerds
good, excellent news, sky is down
what if you combine that assume with restrict
What’s the rbg value of black phy? 😜
SHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
HHHHHHHHHHHHHHHHHHHHHH
HHHHHHHHHHHHH
@manic pawn Assume should not be used
aight time to sleep
unless you really want to imply the fact
bye ill bother you tomorrow lol
why not
like if you dll call into something, want your code to act like it knows something about what it can infer
can you use it to tell the compiler a ptr to something will be aligned
you can tell it anything yeah
but will it pick up on that hint 
it treats that assumption as truth
It might for some stuff
__assume(FColor::Black.A == 0)
SHHHHH

isn't black 1,1,1,0?
no
1,1,1,1?
__assume(ptr==(void ** )((size_t)per)/8) ** 8) zeb
oh right, no color
tricky part is that alpha is still 255
How would I go about making low poly water
