#world-optimization

1 messages ยท Page 10 of 1

hallow sandal
#

No

#

thats the oppposite of what you want

#

you want multiple meshes so you can properly cull them

jagged merlin
#

ok

#

so separate

fierce kernel
#

If you want optimized you want separate meshes so things can be culled separately when you aren't looking at them but otherwise use the same material so they can be batched or instanced

#

If you get that right there's almost no performance cost to the extra meshes but all the performance gain of only rendering what is visible

jagged merlin
#

still confused as when it comes to the batches thing and instanced but i'll get their with determination with a hint of hard work and study

fierce kernel
#

Yeah it's just something unity does for you if you meet all 10 criteria. Someone recently had a list of them . You can look around this channel for information on that when it comes time. But you will want to use a profiler and fix the worst offenders

jagged merlin
#

ok

lilac saddle
#

There is nothing in between the chairs.

flint spruce
#

Question: how would i go about optimizing a world best if it has a day night cycle (which requires realtime lighting)?

coarse tree
#

most day night cycles u would find use scripts so not good for VRchat , you can however record the game objects and setup everything in to an animation looping i see just last week the master runtime recorder has been updated and the limit FPS bug was supposedly fixed , not certain if your question is about setting up or optimizing one you already did ?

maiden monolith
#

thanks @fierce kernel that is great info

rigid fiber
#

hi guys, i added fog to my world but once i upload it the fog get's kinda broken
is there a specific way to add it?

fierce kernel
#

what's broken/what do you expect to happen? In general unity fog isn't going to work with most avatars except those with fog support enabled (most avatar authors don't know they have to turn on fog in their unity project for avatars to render correctly in fog so it doesn't happen)

flint spruce
#

I already have a working day night cycle it uses a shader that uses the rotation of the main directional light as the sun, i just use an animation loop to make it rotate. I need to figure out how to make it as optimized as i can but i have no clue how

fierce kernel
#

@flint spruce A single directional light is processed for free in the base pass, so you get one directional light with no overhead. For each additional directional realtime light, it has to effectively renderi all avatars in the scene again.

flint spruce
#

Oh ok, but what if i use realtime lighting on point lights? Or emissive materials?

fierce kernel
#

All point and spot lights will add a draw call. shadows also add extra draws, though it's not so bad if you keep them hard shadows

#

emissive materials are pretty efficient (AFAIK) so that's a good way to do day/night cycle if you can get it working with the VRC Custom Render Behavior etc

#

because they get mixed in with baked lighting

#

what you really want to avoid is the ForwardAdd pass.

flint spruce
#

Ok so what im getting from this is that i can keep the directonal light as it is and change the shadows of all lights to use hard shadows, and then check up on that link

fierce kernel
#

Base Pass is one per object so everything in the base pass is going to be ok

#

well when you say "all lights" that has me concerned. though you will probably be ok if you keep extra lights to one at a time

flint spruce
#

I have 1 directional and 2 point, will add another point soonish as that room is too dark

fierce kernel
#

yeah that's no good

#

why can't you bake those lights? I understand you are doing a day/night cycle but when you say it's too dark it sounds like you mean night time

#

if so, why not just make them Area Lights or baked point lights and bake the lighting

flint spruce
#

Well it's an indoor and outdoor map, i want to be able to turn on the lights at night

fierce kernel
#

the lights are going to be a lot less bright at daytime than night, so you should be ok with visually turning off the lights but baking them as if they are on

#

the directional light is going to overpower them

#

but i see what you're saying... the only alternative I know of is to use realtime emission

#

the other trick worth trying if it's like overhead lighting is using a single light with a Cookie texture instead of a bunch of point lights. It's hard to make things work and I don't have a really good answer for you. Just try to keep down the maximum number of point lights hitting anything

flint spruce
#

Going to see if i can get emissive textures to work as i have no idea how to use cookies, if i cant get emissive to work I'll try them tho

fierce kernel
#

good luck with emissive. Check out Rokk's post in one of the groups recently. he has a list of the settings you have to enable for that to work

flint spruce
#

Thank you

dreamy drum
#

@flint spruce i did a day and night cycle https://youtu.be/cMk-_S27D8E . To keep it optimized i used hard shadows and set the resolution to low. For people that have low computers i also put a button that would turn off the light. But the ambient light would still light everything up. Then to optimize other objects you can turn off cast shadows for non important objects. Hope that helps a bit.

In the final version, the day will last 10min and night will last 7min. I sped up the cycle for presentation. For those in vrchat will recognize the map as a...

โ–ถ Play video
#

I also animated the emission for the building to come on at night.

icy sage
#

Baking is soo hard to do everytime i try it my unity ether crashes or takes forever to load that i give up

flint spruce
#

Thank you jetdog, will take a look at it once I've got the time

past summit
#

I'm slightly confused about LoD settings, and the scale setting. Currently my LoD groups are only showing at seemingly somewhere around half their intended distance.

#

Anyone know what LoD bias setting I need to use to make it simply match the editor exactly? The Unity documentation on it sounds backwards when I read it.

lean lodge
#

I believe the ingame quality settings may differ from the ones in the editor, meaning that LODs are a bit inconsistent

#

I don't think the ones used ingame have ever been posted here, but if so they should be pinned

past summit
#

Would be very good to know right now. Trying to make a wide area safari world, and balancing being able to see the animals without rendering all of them at once is quite important for it.

hallow sandal
past summit
#

Brilliant. Thankyou.

lilac saddle
#

Is it true post processing v2 removes bloom flash?

#

@dreamy drum

versed lichen
#

Did you just try to ping 20k people for that ?

lilac saddle
#

No

#

I know it doesnt work

lilac saddle
#

at vrlow your lod is tuned all the way down

dreamy drum
#

@lilac saddle sorry for the late ping was a way for a bit. i dont know if pp v2 fixed that issue. that is usually caused with with high bloom or high emission.

lilac saddle
#

O

hollow cape
#

I have a question. Is there a way to increase performance in a level due to the number of people in it? Like I know time scale helps a lot, but would increasing the maximum players also help?

plush crest
#

@lilac saddle the v2 stack has an option to prevent NaN propagation but usually thats not enough - at extreme angles values can get generally really high if unclamped in shader

lilac saddle
#

o ok

snow karma
#

Iโ€™m using the newer Video Sync Steam and is there a way to stop it from loading videos when they are not in the room to help with performance

analog kraken
#

I don't think so, you can locally disable it but then if it get disabled for the master it won't work for anyone. Imo if you don't need a video player in the room then I don't think it should have one

snow karma
#

is there a RPC thing i can use to release ownership

analog kraken
#

someone always has to own it, you can only transfer it to somebody else but someone will always be in control. By default its Master

snow karma
#

ya i know that, thats why i was wondering if there is a known way to "release" or transfer ownership to another user when a user leaves a room. I was thinking of a big colider but don't know whats a good way to keek it from spamming

astral trout
#

I've always assumed ownership is transferred automatically to someone else when they leave the room, is this not the case?

snow karma
#

well i am trying to manualy trigger that when they leave the room where the video player is simular to how i handle cameras

astral trout
#

oh you meant leave the room and not the map itself

dreamy drum
#

@snow karma in my prefabs i have a custom url video player that switches ownership when you enter a url. You would still need to make a system that transfers when the owner leaves the room but the player is set up how you want it.

hazy forge
#

Okay, so I test out a world, only to be unable to move or look left or right. Only looking up and down and bringing up the menu. Any way I can fix this?

#

It would be a testing world that I would have no plans to publish.

astral trout
#

@dreamy drum sorry to bother you, trying to hunt down an elusive bug i have with my video player and i'm comparing setups. I noticed for your owner setup you also have vrc_pickup and a rigid body on the object you call transferownership to get control of the video player, is there a specific reason for this?

dreamy drum
#

in previous projects the transfer ownership wasnt working and needed the pickup script as well. not sure if its still needed but i decided to keep it on. and the rigid body is on cause you have to have it with the pickup.

astral trout
#

ah i see

#

did it just straight out not work or did it occasionally fail?

knotty elm
#

guys is it possible to make a vrcaht world cycle itself? like yume nikki?

fierce kernel
#

Yes, you want something like the yume nikki world in vrchat? though not really an optimization question basically you can make use of a combination of triggers to set game objects active and turn other game objects off, or even better, use an Animator Controller state machine and AnimationTrigger actions to trigger various changes in the world state.
Or, you can make a lot of similar looking rooms and teleport the player between rooms when they do something

#

@knotty elm

knotty elm
#

thank you, ill try to do that
also i was kinda aware it was not an optimization question, but i didnt see the feature requests section

thanks a lot

livid axle
#

is there a way to compress my world?

lean lodge
#

Crunch compress the textures and turn down the quality on any big audio you may have

#

Try not to crunch normal maps though

livid axle
#

how do i crunch compress the textures

lean lodge
#

Go to the textures in assets and enable crunch

livid axle
#

Alrighty

lilac saddle
#

You can crunch a mesh too if it's like half a million polygons or more, but it has lower mesh precision.

#

Not meant to use crunch compression in VRChat because whenever they upgrade to a new unity it might break it. Just reduce the max size of the texture until it's not blurry. I usually settle for 512. Default is 2048.

coarse jay
#

you can also try to atlas your map, will also reduce draw calls in some cases

lean lodge
#

You should crunch anyway

lilac saddle
#

I'm not familiar with that, how would you atlas a map?

lean lodge
#

Pretty much no world entirely survived 5.6 to 2017 simply because of the baked lights

coarse jay
#

@lilac saddle depends on a structure of map, through blender with combining separated small peaces if amount of polys not high, then atlasing ๐Ÿค”๐Ÿคท

lean lodge
#

Don't go crazy and make your whole map one mesh and material though

#

Only atlas small parts together that make sense

#

If you have a bar with some static bottles, you could consider putting the bottles and the shelves on one mesh and material for example

coarse jay
#

how would you proceed with a large map of 50k objects and 6k textures?

lean lodge
#

Holy

lilac saddle
#

You would turn one room on at a time maybe.

#

For my Museum world each room has a 500.000 mesh with 4k texture.

#

Unity splits the mesh up so it's not all in one.

#

I use the teleporter on a door to turn each room off and on.

livid axle
#

how would i put in a button to toggle a mirror

#

and text for a sign

lilac saddle
#

You will also need an OnEnterTrigger next to the respawn location to turn things off. So if someone respawns all but one room will be off.

#

If it's an open world then you would use Occlusion culling and LOD, i guess. In the past, LOD has been a bit iffy in that it works at different distances depending on if you are on desktop or VR. They might have fixed that in 2017, not sure.

coarse jay
#

yes it's an open world, i decided to combine them into big chunks 30 in total, with little camera's view distance+fog, also have atlased all texture into 30 8x8k for each chunk, but it still run in 90fps for vr users, but yeah 5+millions tris for each kinda high, i'm also using unlit shaders to not bake that for weeks, and it uses 2gb of memory just like a hub and low cpu usage

lilac saddle
#

Whatever you do don't put mesh colliders on those . Tried that on a 500.000 polygon mesh, framerate would drop every time i moved around on it.

#

Instead, make it out of box colliders, takes a long time though.

coarse jay
#

you also start to slide when you stay in place if the mesh collider was too high, but i can't use standard unity's colliders because it will took few month or more, heh
if to split it under 65k tris that would be 210 meshes that what i got in old unity

lilac saddle
#

There was about 10 rooms as well.

livid axle
#

how do i make it so mirrors dont lag my world

lean lodge
#

Reduce the number of things they render

#

Set the layers to only MirrorReflection and Player, and optionally "Default" after that if you also wanna render world geometry

#

I believe some maps have a special layer (copied from Default) that doesn't render in mirrors

#

So any other geometry isn't rendered

livid axle
#

thankyou

#

@lean lodge sorry for tagging u but do u also know how i could add a toggle to the mirrors.

lean lodge
#

Add a cube with an on interact trigger (local)

#

Toggle object active

livid axle
#

where do i get cubes

#

nvm lmao

#

do u also know how i could add text?

coarse jay
#

vrc has example scenes where you can see what you are able to do

slate sundial
#

These examles are very rudamentary and only show a glimpse of what can be done...

lilac saddle
#

For mirrors i usually set anything the mirror can reflect to environment layer, then set the mirror layers to nothing but 'environment', 'mirror reflection' and 'player'.

#

That's just for small rooms.

lilac saddle
#

How do you make a world where mirrors and cameras turn off when you spawn in?

dreamy drum
#

have them disabled in your scene when you upload the world.

lilac saddle
#

how

#

in the top left of the inspector next to the name?

dreamy drum
#

that works yes.

lilac saddle
#

how do i add occlusion culling to a world?

lilac saddle
#

this has a good description at 'Setting up Occlusion Culling', you need to set up all your objects before you bake ideally

#

it only turns off individual meshes, not parts of meshes, so you need to split everything up in a sensible way

#

set all mesh objects to occluder static except objects that are fully transparent like a glass or a window mesh, make those occludee static

#

unity will then bake what meshes it can turn off when blocked by other meshes and do that for you each frame automatically saving drawcalls and frames

#

effectively turning off everything that's not seen by the player camera each frame

lilac saddle
#

Tyvm

trim bridge
#

Would someone be able to help me with unity, Ive got all the right betas for the unity and the sdk and everytime I try to drag in the sdk, I get the moving file access denied error, No matter what I try it gives the same error, Dk if anyone else had this issue or could help me, Thanks, Any help is appreciated

coarse tree
#

where are you dragging it from Desktop ?, is that a windows error or a Unity error

trim bridge
#

Unity error, and yes dragging it from desktop

#

@coarse tree

coarse tree
#

try dragging it directly into the project folder window xxx/Asset , then open project

teal mirage
#

how to add clock on world

lean lodge
#

If I leave the Main Camera active on upload, will that cause any issues? Particularly performance

#

It has no render texture assigned and is otherwise unused

foggy thistle
#

Do emissive textures count as light? I noticed my frames going back to 90 after clearing the emissive orbs in my world. I don't know if its just me.

#

Or do emissives require a higher load on the cpu/gpu

#

I do have like 100 emissive orbs.

astral trout
#

real time emissions?

#

For real time emissions they're not as costly as a real time light, but they definitely do incur a higher performance cost than just baked lights or emissions i believe

sly crater
#

emissions are not counted as lights no

#

but they do require a little more oomph to render yes

astral trout
#

real time video emisisons require quite a bit of oomph because of the vrc script that updates the texture used for emissions every tick lol

sly crater
#

oh yeah that reminds me, can VRC avatars have scripts on them?

astral trout
#

nope

#

well, there is a whitelist

#

but its very limited

sly crater
#

aw man, tho i guess thats understandable

foggy thistle
#

So what is gpu instancing and should I apply it to everything. Most importantly, what shouldn't I use gpu instancing on?

#

I get it copy and paste calculations, so shouldn't I just check it off for everything?

#

Or just static items

sly crater
#

GPU instancing is where the GPU stores a mesh that is usually used in many instances, so for example if you want to pour out a big barrel of bananas, you would GPU instance the bananas to help improve performance, otherwise the GPU has to render each and every banana from the beginning

foggy thistle
#

I am just trying to figure out in the end, when shouldn't I use it?

#

I have a dungeon randomizer that reuses a lot of prefabs

sly crater
#

yes so when i say many i mean many

#

like hundreds

#

also

#

this is for when there's a lot of the same mesh on the same screen

#

GPU instancing is used then

#

otherwise, not worth it much

foggy thistle
#

So is there any reason NOT to have it checked off?

winged sinew
#

Only in specific circumstances

foggy thistle
#

Right now I have a randomized dungeon where the ground tiles, the wall tiles, and railings all use the same texture.

winged sinew
#

Keep in mind that Unity will disable instancing if it can't instance, so instancing problems will generally only pop up when making a shader with instancing support

sly crater
#

I havent looked too much into it, but I imagine you could clog up unnecessary uses of the GPU and actually suffer in performance

winged sinew
#

Texture has nothing to do with it

#

It's the entire material and mesh that must be identical before it will be used

#

You won't "clog up" the GPU with just instancing.

#

So, don't worry about it!

#

Turn it on everywhere. In most cases, your issue will be "how do I get instancing to work", not "thing is broken because of instancing"

#

Sidenote: Emission is for all intents and purposes practically free.

sly crater
#

Is that so? then how is it not pre-activated on everything?

#

er why is the better question

winged sinew
#

Instancing requires a special setup and initialisation process that is unnecessary and wasteful if it can't be used.

#

For example, static batching will combine many meshes together into one. If you have static batching and instancing on, then only static batching will apply, because static batching replaces many identical meshes with one unique (combined) mesh.

foggy thistle
#

Right now I am trying to squeeze every bit of frames for my world. The lights are baked, render distance is reduced, occlusion culling is done. Is there any way to playtest my vrchat world to check the numbers under the hood?

#

If I have the option to remove skin mesh renderers, should I do so even if the monster is not animated?

winged sinew
#

From the same place you submit a world in Unity, the VRC window, you can also launch a playtest. You can also use the Profiler to see the performance cost of the objects of your scene in Play mode and the Frame Debugger to see the rendering load.

#

If you have an object with no animation, a mesh renderer is cheaper than a skinned mesh renderer.

#

Another note...

#

Only mesh renderers can be instanced.

sly crater
#

oh yeah, instancing a skinned mesh renderer would be pointless lol

#

and thank you for the explanation, that was super helpful!

foggy thistle
#

Objects that ate turned off would not cost cpu power or load, right? I had a issue with the framerate when i was creating multiple floors, so i am wondering if setting the unused floors as inactive would work.

#

And turn the floors on as needed

sly crater
#

nope, they arent rendered or are considered at all

west zinc
#

They take some amount of cpu, but it is small

foggy thistle
#

Would they still be considered even if i put them 10000 miles away?

sly crater
#

miniscule yeah

foggy thistle
#

And would i have to bake everything with everything turned on

#

I am using bakery

sly crater
#

well they wouldnt be rendered since thats way outside of the far clipping plane

#

for all the cameras

#

idk what bakery is but yeah you'd have to bake with everything on

foggy thistle
#

I have to do more testing, i lose frames when my friends are faraways. I dont know if its more dynamic monsters or ai scripts taking more power

sly crater
#

ya it could be that more things are rendering since each camera is culling more things

#

er, other way around

tame iron
#

hey, will multiple video player but without a render texture effect the performance much? gonna use it just for music to save some MB

sly crater
#

isnt culling

#

I havent used video players much but i would look up how optimised they are

foggy thistle
#

Logically i should maintain 90fps, but when enough monsters spawn i lose frame, even when they are out of render distance

west zinc
#

A lot better than they used to be

foggy thistle
#

I am trying to figure out what affects frames outside of the render distance

sly crater
#

unity has something called a profiler

#

it can be used to find things that cause lag n stuff

foggy thistle
#

Any videos on how to read it? I got stuck there lol

#

Very amateur right now, but i am asking

foggy thistle
#

Thanks!

sly crater
#

3secs of googling my guy

scenic swallow
#

@lean lodge VRChat can definitely stress the GPU even without especially expensive shaders. If a world creator isn't careful it isn't difficult to accidentally end up GPU bound from overdraw.

nocturne furnace
#

any game can stress the GPU enough to make it GPU bound

#

it is just a matter of what is being drawn

#

VRChat will more likely be bound by CPU but doesn't mean the GPU doesn't play a part in regards to fps to some degree

#

VR is technically drawing the scene twice and then if you slap a mirror on top of that you can potentially have the scene being redrawn 4 times

#

so 1 mil polys can turn into 4 mil

lean lodge
#

VRC uses single pass stereo so it's not quite as bad as that

#

Mirrors use a single camera to render the scene twice though rather than using stereo-optimized rendering

nocturne furnace
#

i seem to have mistaken TCLs response as a question i should probably sleep ๐Ÿค”

lilac saddle
#

That's why it's probably a good idea to have a mirror reflect only the layers you want it to reflect.

nocturne furnace
#

Yes

lilac saddle
#

Why does my framerate go up when i disable the baked lights? If i turn them off for VRChat will it save performance?

cedar cape
#

Depends on how you setup the baked lights.

#

I just leave them at default values. Not recommend to change them around unless you know what you are doing.

#

Baked lights are alot better than realtime, which really kills your frame rate as well as using alot of resources

lean lodge
#

@lilac saddle if you haven't baked them yet, they might still negatively affect performance

#

Baked lights essentially don't do anything after baking. I heard some people take them out of the scene entirely, even.

lilac saddle
#

Yeah, they're just baked lights.

#

Is it normal to lose 10fps when enabling one audio source while it's playing in unity?

#

I've lost about 50 fps with some audio sources and i think that's what's causing it.

knotty elm
#

guys, i need some help
im making this world and its not too big, but it just hit 140Mb

i've seen bigger worlds much lighter than this, any ideas on how can i make this lighter?

im still new at this

lilac saddle
ivory garden
#

compress all your textures

#

and force audio to mono

knotty elm
#

how do i do that?

ivory garden
#

select your texture/s and on right side enable crunch compression and set it to 100

#

for audio, select audio and top right checkmark "force to mono"

knotty elm
#

thank you

#

ill do that

lilac saddle
#

So is it okay to turn off light probes as well since they are baked?

lean lodge
#

You should leave those on. I don't recommend turning off your baked lights to begin with

lilac saddle
#

kk

wispy kestrel
#

Does Occulusion zones and portals work?

#

Normally, in an occulision zone with a portal it'll De-render whats not infront of the camera

#

do they work?

#

in VRC

dreamy drum
#

They both work in vrc. For portals you will need to use an animation or button event to open and close it.

wispy kestrel
#

not a regular portal

#

an occulusion portal

#

unless thats what you mean lul

dreamy drum
#

Yes i meant occlusion portals.

cobalt thorn
#

when using the default chairs in vrc sdk my chairs always end up with a big block that says sit. is there a way to make this block smaller?

#

maybe the size of my seat rather than a big invisible cube?

dreamy drum
#

add a box collider. if there isnt one on the chair then the game adds one which ends up as the big collider you dont like. you can shape is as you want.

cobalt thorn
#

awesome! thank you!

#

I use it as a trigger yes?

dreamy drum
#

if you want to not collide with it then yes.

regal sequoia
#

atm VrChat uses Cpu and memory and barely gpu. hence why shaders etc causes massive frame drop

fierce kernel
#

Hmm? Shaders are gpu so I don't understand your point. Also it depends on the world and how you use it. You should be checking with a profiler before guessing

#

Cpu is going to be way better with the dynamic bone limits

lilac saddle
#

Question, how do i limit how many items can be spawned when i click an object

dreamy drum
#

You could have an animation count how many time you click it then deactivate the spawner.

lilac saddle
#

Ive been trying that

#

but i cant seem to get it to work

#

it seems to instantly trigger the animation and im not sure why

dreamy drum
#

How do you have the animator/trigger set up?

lilac saddle
#

i should yes

#

that should be correct yes?

dreamy drum
#

a few questions. What is triggering the animationintsuntract. And why do you have a vrc label.

lilac saddle
#

ignore the label

#

im tired

#

and it's an onInteract

#

im trying to make a vending machine of sorts

#

ive been trying to figure this out for the past like 2 hours

#

and i havent slept in about 16

dreamy drum
#

Getting some sleep might help. Also onspawn i think only triggers on the spawned object that would need to be checked. How is the animator set up.

lilac saddle
#

I just have it set to enable then disable the object

dreamy drum
#

Are the transition conditions right?

lilac saddle
#

i dont know

#

im still new to most of this stuff

#

I would assume this is right

dreamy drum
#

The arrows that transition between animation you can set conditions that only when true will move to the next animation.

lilac saddle
#

Idfk im still pissed about the vrchat team not using playmaker

dreamy drum
#

From what ive been told its a good thing they didnโ€™t go through with it.

lilac saddle
#

how do i add parameters to controllers

dreamy drum
#

On the left top side should be a tab you can click.

#

Donโ€™t have it in front of me at the moment.

lilac saddle
#

I see

#

I'll test if i did it right now

dreamy drum
#

Make sure its an int and the name is correct between it and the triggers.

lilac saddle
#

this animation thing is god awful

#

every time i set a value it sets across both of them

dreamy drum
#

Once you get use to animators they can be powerful. A lot of people use them as logic systems.

lilac saddle
#

I mean like

#

The fact the value change across all them

#

why does it do that

dreamy drum
#

Im not sure what you mean by that unless you have two animators on the same gameobject.

lilac saddle
#

I have animation objects yes

#

They both have the same values and change values

#

2.anims

#

but they both change whenever i change one

dreamy drum
#

In play mode they should hold separate values unless you are setting it for both.

lilac saddle
#

One second

#

So this is normal yes

#

How do i make another one that isnt just a clone of it

#

Because if i add just straight anims, then it duplicates the value across all the animations

#

unless there's something im missing here

dreamy drum
#

I feel like im missing something or not understanding.

lilac saddle
#

How do i add more animations

#

once i add one

#

i cannot make more

#

without making another .anim file

#

and i cannot write values to it

#

without it editing the original .anim's values

dreamy drum
#

On the top left of the animation window should be the name of the animation you are changing the values for. Clicking that will have a dropdown with the create option.

lilac saddle
#

oh

#

why is this so needlessly complex

#

why not just make it so it changes when you click on the animation

#

if you cant tell i dont like unity lol

dreamy drum
#

Its alright it can take some getting use to.

lilac saddle
#

It worked

#

thanks for the help

dreamy drum
#

๐Ÿ‘

hasty merlin
#

If I have too many lights on my world, could that cause weird results with baked lighting? Things like light shining through flat planes and shadows not showing up where they should be for example. Im using Bakery too in case thats important.

coarse tree
#

yes if you have too many lights overlapping it could be problems , for overlapping lights try to keep them less than 4

#

for shining thru issues try using culling layers

#

for shadow issues look at the material settings for casting and receiving shadows

lean lodge
#

@hasty merlin depends on how many. If they are baked it shouldn't matter how many you have

coarse tree
#

as @hasty merlin indicated he has some shadow issues i was thinking he may have shadowmask used or mixed , if you have more than 4 lights overlapping on one object with shadow mask it will not bake correctly, @hasty merlin do u get any console warnings when you bake bakery "out of channels" ? .. turn off shadow mask and test bake again

#

ya other than that the qty shouldn't matter

hasty merlin
#

Thanks guys I'll give that a try when I get home from work

lilac saddle
#

Is 'terrain' more efficient than, say, one large 3d object?

dreamy drum
#

depends what you want to do with it. unity's terrain makes it easy to create terrain.

lilac saddle
#

I'm wanting to make a massive tree, with 'play area' on top. As its not 'pillar' shaped, I don't know if terrain can be made in that shape, but as it's going to be large enough to run around on top of it, i don't know if a large object will cause performance issues.

harsh coral
#

So I just got the status back on a world im trying to upload and I had to do some quick fixing to do it, do I have to reapply it with the form or?

lean lodge
#

Not anymore

harsh coral
#

So I just update the world with the fixes and they will check it again? since its never been public before

lean lodge
#

If you already submitted a public world request, they will check it whenever.

#

If you didn't submit one yet, it won't become public

#

If you submit and quickly fix something in-between, that usually does not matter.

sly summit
#

Hi, i have ran into an issue with my world. Playsers seems to slowly drift to the side. Is this a know issue and if so is there a way to solve it?

lean lodge
#

Are you using mesh colliders? And how far away from the world origin (position 0,0,0) are you?

sly summit
#

Yes, mesh colliders are beeing used. the area where players drift is quite far away.

#

that area is part of a separate mesh. 32,44,238 away

lilac saddle
#

so much cleaner now

lilac saddle
#

Uganda Ebola Crates EbolaKola

snow karma
#

My occlustion data file is like 24 MB, the maps is pretty large but is there anything i can do to decrease that size

versed lichen
#

If all you have is one giant mesh, i don't think so ?

lean lodge
#

Setup occlusion areas, or make sure the giant always-visible terrain is not "occludee static" @snow karma

#

Occlusion areas restrict OC to just the areas

snow karma
#

should i leave my main box one for the entire map and add ones for each house

#

that being occultion areas

sly summit
#

hey @lean lodge i hoped you could give me some insight on the issue from last night, is the slow hoover because of the distance to the centre of the world?

lean lodge
#

I was hoping someone else with a bit more knowledge on the subject could chime in. Unfortunately, your issue is just something that can happen with mesh colliders. That's one of many reasons to avoid mesh colliders and build your world collision out of primitive-shaped colliders instead (such as boxes)

#

There's also the issue of being far away from the world origin that seems to make it worse

#

Make sure your world is as close to 0,0,0 as possible

sly summit
#

ah okay

#

I will do some tests on the issues based on that ๐Ÿ˜ƒ thanks!

sly summit
#

Appears that placing the VRCWorld element on 0,0,0, solved the issue ๐Ÿ˜ƒ thanks for the help!

mellow topaz
#

Ok so my world is being lagged by a thing called

#

Packet Latency

#

or "setup notification hide element"

sweet sinew
#

@sly summit The further away from 0,0,0 you go the worse it gets (floating point errors) And when you start hitting 2,5k meters, the objects at that point start to display floating point errors and shake (barely noticeable at this level)
So i guess your area is 32k meters away.

sly summit
#

@sweet sinew What I found was that the WRCworld element (spawner) was not on 0,0,0 and the float was terrible just a few 100 meters away, having this fixed the problem gone :)

I assume that if the spawner is not centred it gets worse a lot quicker.

sweet sinew
#

The spawner can be anywhere really, it's all about the mesh location.

sly summit
#

oh... well, i guess the meshes were moved as well in relation to the spawn that i placed on zero ^^

steep temple
#

@sweet sinew isn't the shaking fairly noticeable at like 5k?

sweet sinew
#

was supposed to be 2,5 but yea

steep temple
#

Ah yeah typo'd

sweet sinew
#

mobiles ๐Ÿ‘

#

Which is why I want something that can "pin" the players avatars to the world, so you can move the world around instead of the player moving

steep temple
#

That would be fun to implement

lilac saddle
#

.

fierce kernel
#

Please don't post the same thiing in two groups!!!
"
KattsuneToday at 1:48 PM
open up the console tab and see if there is any red text displayed
Kanna-sanToday at 1:48 PM
okay!"
Please reply in #world-development with the answer to that question

trail condor
#

@hidden gulch Update your SDK. It is not recognising the newer VRChat protocols.

north scarab
#

Does anyone else have this component VRC_OscButtonIn working?

sweet sinew
#

It's broken at the moment

misty olive
#

Is it normal for any of these actions to take a long time when building? I've been building for the past while and was wondering if I had messed something up.
-culling
-changing the lighting type on point lights
-changing objects to static objects

#

Currently stuck on light transport in the build player

fierce kernel
#

I think you can choose to bake your lighting manually instead, if you uncheck Auto Generate in the various tabs of the Lighting window

misty olive
#

Will i have to bake again for each build if i don't?

#

I don't mind the auto bake, but if manually baking means i don't have to bake again i think it would be worth it

#

i guess that's kind of a silly thing to say since if i add objects to the scene of course it's going to have to rebake

#

i've been baking since 7 XD

fierce kernel
#

If you don't auto, you can choose when to bake

#

If you're changing lights around and want them to actually work you'll need to bake. No way around that

misty olive
#

that makes sense

#

i guess for whenever i want to launch something quick to test though i can always bypass baking

#

by unchecking auto generate

misty olive
#

Is there a place where I can learn how to bake lights manually? I seen manuals that talk about it, but they don't have screenshots of where manual baking lives

#

I want to say it has to be somewhere in windows>lighting, but I haven't found anything in there yet

lean lodge
#

Basically you set all your lights to "Baked" instead of "Realtime", then go to Window->Lighting, turn off auto generate, and hit "Generate Lighting"

#

You also need to mark all non-moving objects in your world as "static" in the top right of the inspector

misty olive
#

Ahh perfect. I've done just about everything aside from unchecking Auto and hitting generate lighting.
Thanks @lean lodge

lean lodge
#

Once you hit that button you'll see a blue progress bar in the bottom right

#

And once that's done, your scene should be baked and you can find your lightmap textures in a folder next to your scene file

#

But you probably won't have to touch them

lilac saddle
#

How bad is reflection probes on performance?

versed lichen
#

if it's realtime

#

it's real bad

#

baked = perfect

lilac saddle
#

Okay, thank you!

oak flume
#

will baked lighting affect avatars that enter the world?

steel sail
#

Have some lower res hybrid light sources to help light non static objects, such as avatars.

spring kite
#

Use light probes to light up non static objects, like avatars. That is the recommended optimization option.

lilac saddle
#

@oak flume Baked lights will set a base overall lighting area for everything that is lightmap static, this does not include avatars.

In order to bridge that gap, just use Light probes like @spring kite specified.

Additionally, if you want to have much better bounces with even further optimization invest in reflection probes

oak flume
#

Thanks, i'll look into it ๐Ÿ˜ƒ

thick musk
#

Hello

limber lark
#

Export it as a fbx?

#

Just like anything else

#

@thick musk

thick musk
#

when I do that it goes "not responding" (also thanks for replying)

#

I guess it's just for the minecraft scene. Some my blender files worked.

lilac saddle
#

@thick musk Okay! So this process is actually rather simple to be performed. You must do the following:

  • Export different parts of the world as separate objects (Basically break things up like "Tree" "House" "Mountain1" etc. Also, make sure you divide up the files around equally, as this will save you plenty of time in transferring them to unity, and will also give you plenty of room to manipulate and move objects around if need be.

  • Import the separate Fbx's into unity, dragging them onto the hierarchy, then basically just put them in the correct spots once again!

Hopefully this helps.

Also, just incase you aren't aware. The way we export objects separately rather than as a whole is by doing the following:

  • Select the Mesh/object you wish to export, and go to the export menu as you normally would. Now, before you complete the export you will see on the bottom left that theres a small menu with options to choose from. The only aspect you need to worry about in this situation is the checkbox labeled "Selected Objects" Make sure it is ticked, that way we're only exporting the objects that we currently want to take into unity, rather than literally everything at once.
thick musk
#

Noted on this one, Thanks! @lilac saddle

icy ferry
#

@thick musk press window>console to see the process of exporting, 1m polys is not quick to export/or you has not enough ram, most blender' inner addons have a habit to "dying" when not enough ram, so yes separation/etc will help you

thick musk
#

@icy ferry Thanks!

harsh shore
viral marsh
#

This is the wrong channel

steel sail
#

Sometimes I wonder why I will change 2 things and one moment the file size will be HUGE then the next it will be normal again .-. I am bouncing back and forth between 240MBs and 168MBs. So strange. Editor log doesn'e help a ton

thick musk
#

Have you guys encountered this: Assertion failed: Assertion failed on expression: 'j - i == terrainChunksInfo.numChunksInX * terrainChunksInfo.numChunksInY' I just keep on falling down my world.

lean lodge
#

@thick musk you have two scenes loaded which isn't gonna work. Put it all in one scene.

#

Additionally, use a box collider for the floor

thick musk
#

@lean lodge Got it working, thanks! ๐Ÿ˜

lilac saddle
#

How to control the post pruocessing vรญa ui?

fierce kernel
undone swift
#

sooo i uploaded my first world and noticed for vr users its rly laggy.. what reasons could that have and what could i change to prevent it from lagging ?

livid isle
#

What kind of special things are in your world? How big is it? How many objects / what kind of music does it play, etc.

undone swift
#

uhm my world is 70 on 60
only special things are a mirror that u can toggle and a vid screen with bout 5 songs that u can toggle as well . even with toggling its laggy tho
for objects id say around 30-50

hasty marlin
#

If anyone has some time, im having some issues in a world im making, its like 300mb and i have a few mesh issues. If someone could help me reduce the mb from things like textures/songs, and if someone can really take like 30min and walk me through making things with baked lights or whatever is better than real time.
Please dm me if you dont mind helping Dx

livid isle
#

How are the songs played? What happens to the world if you test it out without the vid screen and songs?

undone swift
#

what u mean how the songs are played? sry for stupid questions just new to it :S

dreamy drum
#

It can be hard to tell how to help with just saying there is a problem. Including images of how things are set up will help. We might notice something you could have overlooked.

#

@hasty marlin i cant help you through the whole process but if you click on the files in the assets window there are options in the inspector window to compress the files to reduce the file size. Textures and audio usually take up a-lot of room so compressing those will help.

hasty marlin
#

awesome, thank you!

steel sail
#

If you open the CONSOLE tab go ALL the way to the top right of it, and click the button that is a down arrow and 3 lines, click OPEN EDITOR LOG and scroll down to the bottom, you can find (somewhere, the ones on the bottom are your latest builds) it will break down for you exactly what is taking up space, how much space it is and give you a run down of each item IE meshes, Textures, Audio Etc and finally a final size before and after compression.

#

@hasty marlin

safe karma
#

hi... I am currently making my own world and I am having troubles adding a day/night cycle to it. I already made one that when I play it in unity it works perfectly fine, however on vrchat the cycle doesn't want to play/activate. if anyone can help me please maybe DM me to give me the help if possible. I'm kinda retarded when it comes to some of this stuff so a DM will help out a lot so that i can better understand.

lilac saddle
#

@safe karma

If you are trying to use a script, then it's not going to work, you will have to use the animator/animation from unity.

safe karma
#

@lilac saddle
So thats my problem... so can you do the animation with the script still on the object? I've worked on the script alone for about a hour and a half.

lilac saddle
#

no you have to make an animation loop for the directional light(s) to rotate around the world sadly, unless it's a whitelisted script from vrchat
@spartan.allen#3178

pine blaze
dreamy drum
#

Yes and no. The video players audio tracks are for separate audio tracks in the video file. For videos loaded from youtube its only going to use the first audio track but not any more. The video stream allows for multiple audio sources to be connected to it.

lilac quest
#

I got a question for people who know how to create a URL tabs for a "VRC_Sync_Video_Player" ! ๐Ÿ˜„

pale igloo
#

@lilac quest what is it?

formal estuary
#

Whats the best way optimization wise to add tree's? Unity terrain tree's or do static mesh tree's with lod?

#

Both are same technically i guess but unity does fancy stuff

torpid sphinx
#

You can make a simple model of a tree with a low polygon count (like 1000) and just paste it around the world, try to make this model have one matrtial and one texture.

formal estuary
#

What Iโ€™m gonna probably do. And Iโ€™m going to make my whole word use a texture atlas so there isnโ€™t multiple textures.

#

The unity trees wonโ€™t work since the billboard issue still exists for some reason

#

Might not in the newest unity havenโ€™t done any be stuff on that but canโ€™t use newest for vrchat anyway

loud knoll
#

can anyone tell me why a spotlight would disappear when it gets baked?

fierce kernel
#

Explain what you mean by disappear. It will not shine on objects like avatars which were not baked. you set up lighting probes so that other objects can receive light from the baked lights

loud knoll
#

sorry about the modeling im showing

#

haha

plush crest
#

Seems to be realtime and not baked

loud knoll
#

ya .... right now .. i know that

fierce kernel
#

Lights disappear if you have too many realtime lights. Please make sure all the lights are set to baked, make sure you have lighting probes set up and you have baked them

loud knoll
#

when it bakes it doesnt shine at all

fierce kernel
#

Do you need to make sure objects are marked as static to bake properly?

loud knoll
#

theyre marked static

#

might have to many lights... but i literally need all the lights i have right now

fierce kernel
#

You can't have too many lights if they are all marked baked and you bake them

fleet hill
#

Select your meshes and make sure you checked "Generate Lightmap UVs"

loud knoll
#

well i had them all set to bake... and when they were done baking they dont even show up anymore

dawn vale
#

could someone please help me?

#

I made a vrc world, everything seems to work fine but when i click on the upload button nothing happens...

formal estuary
#

Make sure theres a main camera

dawn vale
#

i have an updated vrcsdk but i have not updated unity

formal estuary
#

I have no idea why but without it it wont let me upload

dawn vale
#

wym?

formal estuary
#

The scene needs a camera

dawn vale
#

i did notice the camera was acting weird, the display scene was always white no matter what i did

#

ye theres a main camera

formal estuary
#

OH if you have one then it could be something else. Thats may hvae not been the only issue i had then.

#

I got around it by making a new project

dawn vale
#

?

formal estuary
#

I basically started from scratch. But with you looks like youve done quite a bit so thats gonna be hard.

dawn vale
#

yeee T-T

formal estuary
#

once my unity opens ill screen shot. For some reason the unity for vrchat hates keeping things in one place and needs a reimport every day

dawn vale
#

okie dokie lokie

#

thank u btw

#

^u^

formal estuary
#

No problem and only thing i can see diffrenct is the vrcworld for you is vrcworld(1)

dawn vale
#

huh

#

what does that mean?

formal estuary
#

OYu just had multiple at some point and shouldnt cause a issue since you only hvae one now

dawn vale
#

what could be the problem then T-T

formal estuary
#

Did you add any compontets to any of the objects on your scene

dawn vale
#

what does that mean XD?

formal estuary
dawn vale
#

im new to making worlds so maybe

formal estuary
#

did you use that button

dawn vale
#

yup yup

formal estuary
#

It could be something with that dpending on what it was.

dawn vale
#

riight

#

what should i look for?

formal estuary
#

Not really sure tbh I just know things that i think may have caused it for me and that was componets and cameras. but make sure playermods componet is on vrcworld

dawn vale
#

theres a warning there^

#

is that important?

formal estuary
#

That ones always there

dawn vale
#

wym playermods components?

formal estuary
#

PLayer mods is like walk speed and jump

#

without it you cant jump or run

dawn vale
#

oh nah i didnt do anything like that

formal estuary
#

But with how it looks nothing should be wrong and its probably vrcsdk or unity bugged

dawn vale
#

i have a mesh collider on base but i think thats about all i really aded

formal estuary
#

What does the upload ui look like

#

Mesh colider shouldnt cause anything i wouldnt think

dawn vale
formal estuary
#

Like when you click build and in the scene it changed to where you name the world etc

#

Cause my sdk looks co,pletley diffrent before i made a new project. Which honestly could be a sdk issue that causes this

dawn vale
#

wayaminute

#

lmao

#

there we gooo

formal estuary
#

Yeahh thats way mine looked before i restarted now it has a green communiy labs bar at the bottom with the logo

dawn vale
#

damn

#

so i should make an entireley new scene? oh laawd

formal estuary
dawn vale
#

awe

#

alright

formal estuary
#

Probably the only way to get it to upload that i know of

dawn vale
#

it has to be a new scene?

formal estuary
#

Completely new project yeah

dawn vale
#

cuz i could make a new project and upload the scene

#

aaaweeee

formal estuary
#

you could make you scnee a prefab

#

and then just drag and drop and do all the mirrors and such

dawn vale
#

ight lemme see

dawn vale
#

YUSH

formal estuary
#

Nicee. So its something with the sdk updating i guess

oak flume
#

Same thing happened to me when i first made my world, it wouldn't upload so i added everything bit by bit into another scene by process of elimination. But it ended up working with everything the exact same lol

lilac saddle
#

@dawn vale doesn't look like you have a spawn point?

#

I can't really see because the 'spawns' droplist isn't down. But usually that droplist should be down if you've added a spawn point.

formal estuary
#

Vrcworld is the spawn point though. But they issue they had was the sdk wouldnโ€™t update and therefor had a different/older version which for some reason wouldnโ€™t allow for upload no matter what they did

lilac saddle
#

Anybody know what would be causing shadows to flicker when moving around in a world I'm working on? It only pops up in certain spots mostly inclines. I tried changing the near plane settings but that didnt help.

dawn vale
#

It uploaded and everything works! Thank uu

#

Having some trouble with some buttons that's all

#

Ill text in here if I need any more help you are all so helpful uwu

wise summit
misty olive
#

When baking light, is there a way to do the bake in parts?

lean lodge
#

I don't think so. But you can cancel the bake process and it will resume when you hit generate again. Just make sure to have auto generate off.

lilac saddle
#

@misty olive What exactly do you mean by "bake in parts"

#

Because depending on what you mean, then yes you can

misty olive
#

I have a few point lights that I use in my world for lighting. When I set them to bake I get 1K jobs which I get the feeling will take a week to do

lilac saddle
#

Sounds like you have bad baking settings

wise summit
#

bakery asset can bake in parts but that cost a bit of money

lilac saddle
#

If you send a picture of the scene you're baking lighting for, I might be able to give you optimized settings for it

misty olive
#

Now that I think of it, I'm using the default settings and not what jetdog recommended

#

Will come back with new settings

lilac saddle
#

Aight

#

Baking lighting at most should take no longer than 15 minutes

#

Unless you're baking over an extremely large scene with multiple lighting setups (an open world scenario, for example. But Im not sure why you'd have such intricate lighting for such a scene.)

limber lark
#

15mins to bake lights?

#

I mean it depends on what ur trying to do

lean lodge
#

Baking lights can definitely take more than 15 minutes.

#

It depends on the complexity of your scene and how well you have everything set up.

#

As well as how large your scene is in surface area, and whether you're using Enlighten or Bakery.

#

And if you have done any bakes before.

#

Enlighten caches a lot of stuff so you can rebake without too much time lost.

limber lark
#

My friend once had to leave his pc on overnight and the world still wasnโ€™t done baking when he woke up, like 12 hours of baking I think he said

#

Rip his pc

lean lodge
#

Oof. That's generally a sign of either a large world or an incorrectly setup one

#

Or a slow PC

limber lark
#

Naw just a big world

lean lodge
#

Light baking can be severely slowed down by having meshes that are huge, too many individual meshes or

#

Ah

lilac saddle
#

Lighting settings can increase bake times considerably. Don't use Final Gather, takes too long. Ambient Occlusion not needed if light range and Intensity is set up correctly. Indirect resolution set to 0.25, Lightmap resolution set to 40 (10 for quick bake)

#

Lightmap parameter set to "default medium" or lower.

#

Not a good idea to set lightmap static on big planes, the kind you would use for the background.

#

Decreasing 'scale in lightmap' on the mesh renderer can also speed things up.

lean lodge
#

Final Gather looks good though

#

I recommend using it once you have everything else set up and are basically doing a final bake

#

Also, having the lightmap resolution at 40 but the indirect resolution so low seems counter-productive.

lilac saddle
#

I sometimes increase it to 1, anything past that and it'll be there all night baking. Can't say i've seen much benefit from Final Gather.

foggy thistle
#

If i am using bakery, how would I approach baking multiple floors? I have a dungeon generator that makes a randomized dungeon floor. Do i just bake one floor, hide it, generate the 2nd floor, and bake it again?

versed lichen
#

@foggy thistle That won't work for what you're trying to do sadly

#

it needs to be static entirely

foggy thistle
#

So i have to bake all 5-6 floors at once?

#

I was hope to bake in pieces

#

Nf4 try baking something smaller to get a hang of it, also the bakery asset works great but cost money

#

And ruuubick, i was hoping to bake the floor and then save the prefab, i guess that would not work

versed lichen
#

nope

#

You can bake them all at once though

foggy thistle
#

Thanks, then I just have to bake overnight lol

coarse tree
#

@foggy thistle you could also look into baking the light map into the prefab

foggy thistle
#

How do I carry the lightmap over to the prefab?

#

The end goal is to bake my floors separately, since it takes 20min to bake one

coarse tree
#

but not certain if it would work in VRchat ?? could need testing .... look fort the prefabbake script in bakery ,, i haven't used my self but they have documentation on in in manual

foggy thistle
#

Just looking to bake the world in pieces than all at once

#

If its more complicated than I just let it run for 4 hours

coarse tree
#

no for that use lightmap group script

foggy thistle
#

I will look into that then, thanks

#

This is group script is in bakery?

coarse tree
#

yes its not too hard to set up just needs a bit of planning to think out what will be in what group

foggy thistle
#

Kk

coarse tree
#

ya should not be hard bake a light map for each floor and use animation to turn on and off so you don't kill the FPS , if you use prefAB baked lightmap not creation if it will work in VRchat as the shader needs to read that from runtime, perhaps it may work should be tested

sharp oriole
#

It took me like 45 minutes to bake flatgrass, while playing vrc in vr, on an i7 2600k

sharp oriole
#

It should be a requirement to not have a real-time light in ANY world. They always kill my frame rate.

winged sinew
#

@lean lodge IIRC, "Indirect resolution" is a misnomer - it controls the resolution for Realtime GI only

#

So you can get away with setting it very low - in fact, if you're not making a theatre or world with dynamic time of day/switch lights, you should just turn off Realtime GI completely.

lilac saddle
#

It does work with baked lighting, i've seen it increase the strength of emissive light.

finite prawn
fierce kernel
#

Go to your scene descriptor and set dynamic materials size to 0 to clear them

#

Other place could be skybox

#

Click the tiny menu icon on the top right side of console and click Editor.log. Then search your Editor log for bundle and there should be one line that has like a table breakdown of your world size in MB

finite prawn
#

What even are dynamic materials?

#

Oh no...

fierce kernel
#

It adds any material you ever had in your scene to the vrc scene descriptor

#

HOLY!

#

That right there might be a problem. Clear those suckers

finite prawn
#

So... what's its purpose? And what puts them in there?

#

If i remove them from other maps, does it cause issues?

fierce kernel
#

Sorry, I don't know enough to answer those questions. I've never had trouble so I have no idea why that list even exists. Anyone know?

finite prawn
#

My worlds are pretty big, and I never kenw about clearing this x.x

lilac saddle
#

Me neither. Not even sure what it's for.

formal estuary
#

Looks like I need to look into finding that and make sure I donโ€™t have any. World size went from like 15mb to 50 on last test

lean lodge
#

Dynamic Materials is included as a way to reference/change materials that don't have a hard reference

#

Because any materials that are not explicitly referenced in your scene, directly or indirectly might not be included on upload

#

Makes sense for dynamic prefabs but I don't know what the use case for dynamic materials would be

past imp
#

probably for either animations or the change material trigger

oblique nova
#

Anybody knows of Post processing v2 works in single pass?

lilac saddle
#

everything works in single pass stereo (vr) except motion blur and some stuff should be avoided

oblique nova
#

Nice! Thanks !

#

Also by default Unity uses Forward rendering with 2x MSAA . Could this be used in combination with ppv2 SMAA?

lilac saddle
#

I wouldn't use any antialiasing or blurring at all, people have their own setting for their headsets

#

it only makes things worse for vr users, like vaseline on the lenses

oblique nova
#

U mean for both ppv2 and and unityโ€™s MSAA?

lilac saddle
#

leave the unity default and don't add extra pps antialiasing

#

you can use them both fine, but it's bad in vr ๐Ÿ˜‰

oblique nova
#

Thanks !

lilac saddle
#

oh i just spotted this Anti-aliasing: This has lots of bugs. SMAA will cause the screen to double up.

#

I guess SMAA doesn't work in single pass properly still

oblique nova
#

Ohh glad i didnt add that

stark bay
#

is occlusion culling correct working for all vr players?

sick raven
#

@oblique nova vrchat uses 8x MSAA by default. You don't need any more AA

#

@stark bay generally - yeah

oblique nova
#

@sick raven does that mean that I have to disable the MSAA even in the Quality Settings of my world project?

sick raven
#

nope. you can't affect the VRChat settings for your world anyhow. It's just 8x on VRHigh and 4x on VRLow

oblique nova
#

I see alright thanks dude

winged sinew
#

I think you should set your quality settings in Unity to the highest ones, as those are closest to what VRC uses

viral elbow
digital ermine
#

is there a max nomber of lights i can put in my world or something? i've got about 10 light objects in my scene and it's having some failed upload issues.

fierce kernel
#

No, if you have them set to baked

#

You need a really good reason to have lighting not set to baked

digital ermine
#

i'm super new to unity, just taught myself this week. thanks for letting me know about that. lol

fierce kernel
#

And you actually make sure to set up light probes and bake

#

Yep ๐Ÿ˜ƒ baked lighting will look way better too

digital ermine
#

baking the lighting may effect the fact that i want to be able to turn these lights on and off though, right?

fierce kernel
#

You want to be able to toggle each light independently? Or all together?

digital ermine
#

each light independantly, but i can make some work arounds if that's not optimal.

#

at minimum i can just have about 2 or 3 total lighting toggles.

fierce kernel
#

That might be an ok place to use realtime if you are considerate. There are ways to bake realtime GI and in theory you could bake lightmaps for on and off and swap them but I don't think vrchat gives us a way to do that

#

The issue for lights are the number of lights hitting a particular spot at a time

#

So if each room has one realtime light and they mostly don't overlap, it might be ok performance wise, though still worse than no realtime lights

digital ermine
#

hmm.. that's no good.

fierce kernel
#

What's failing on the upload? That's probably a different issue

digital ermine
#

unity crashed when trying, but i deleted a few lights and now it's functional

fierce kernel
#

Try disabling Future Proofing in VrChat SDK -> Settings.

#

That can help uploads

digital ermine
#

i'm just gonna have to find a way to get those lights back nicely. i havent even gotten the LEDs i want in yet :p

#

thanks for the tip

fierce kernel
#

The rule is you do not want more than one or two important realtime lights hitting a particular spot at a time.

#

Oh wait I forgot! You can use non important lights

digital ermine
#

non important.. as in set the render settings to that?

fierce kernel
#

Unity supports up to 4 non important lights (they won't be per pixel)

digital ermine
#

oof, they look kinda yucky lol

#

i'll make a good workaround for it then

fierce kernel
#

The really bad lag is caused by realtime per pixel lighting as each light renders another copy of all avatars and object it hits.

#

You need to rethink a bit what you are trying to do. For example small LEDs should be using emission in the shader

digital ermine
#

well it is for sure that i wont have more than 2 realtime lights going at the same time.

fierce kernel
#

And you then create overall halo or glow around it with a single light maybe, and make use of cookie textures to make it look as though it came from multiple individual leds

digital ermine
#

yeah, chances are i'm using emmission for the small LEDs.

#

what are the cookie textures?

#

๐Ÿ˜…

fierce kernel
digital ermine
#

ah.. like projected textures. thanks.

formal estuary
#

Some triggers may need to be remade since a few were updated and possibly changed a little

formal estuary
#

Could just be a unity bug. I noticed yesterday that my scene that used to stay around 150-250fps was stuck around 71-90 bouncing back and forth

#

Or a bug with the new sdk

#

Try uploading and trying in vrchat and see if if itโ€™s normal

#

Its probably a sdk thing then it might gto back to 91 in game

lean lodge
#

There's no hard limit on texture count, but avoid having too many materials. @lilac saddle

steel sail
#

Materials?

#

Whats your file size?

#

Yes, occlusion areas and occlusion culling.

#

Build it locally and look at the editor log.

lean lodge
#

You don't necessarily need occlusion areas

#

Anyway, you should look at the editor log to find out how large the map actually is, and which files take up the most space

steel sail
#

Keep the map under 200MBs and above 45FPS. Also keep your draw calls under like 500 or 600 max. Way less than that if possible.

lean lodge
#

That's just a general guideline. Even 500 drawcalls is a lot

#

Unity profiler

#

As well as the game window info screen

#

If you wanna optimize your map, set up occlusion culling, avoid realtime lights (set them all to baked) then bake your lights, and

#

Well that covers a lot already

lean lodge
#

If it's realtime you should bake it

steel sail
#

Game > stats or in the profiler.

lean lodge
#

Batches is what you're looking at I think?

#

Or maybe setpass calls

steel sail
#

The 'SetPass calls' is the closest thing to a draw call

lean lodge
#

Ah

#

Other than that, mark every non-moving object as Static in the top right of the inspector.

#

The default directional light is realtime, by the way. You should turn off shadows on it or bake the lights.

#

Baked looks nicer and performs better

#

Realtime/Mixed can be used if done right and used sparingly.

steel sail
#

Or at the very least mark it as static lighting and Static batching unless you are using GPU instancing.

lean lodge
#

GPU Instancing is generally almost always worse than static batching

#

It's mostly useful for dynamic objects with the same material and same shader

steel sail
#

In some cases you have to use it though.

#

Yeah

#

Since his map is going to be moving, I guess

#

or spinning

#

he will have to rely on that more than batching

#

as batching doesn't allow for a moving object at all.

#

oh.

#

Then use batching

lean lodge
#

Only 117 setpass calls? That's pretty good

steel sail
#

Is that while playing or paused?

lean lodge
#

You can improve that further by setting up occlusion culling (you can just bake it and test)

steel sail
#

I need to get a faster GPU >.> I hate that baking takes like 20-30 minutes for larger maps.

#

What is your FPS>?

#

in VRC?

#

Oh

#

One day soon we will be able to run games like this at 1100 FPS lol

#

How not soon? There are already computers out there that can crush a game like this at 1100 FPS or more. Just not affordable for the masses yet - but prices go down very quickly.

#

I don't mean in the next year or two, i mean 3-6 years.

#

I need a 2080 lol

#

In Window > lighting

#

If you don't have the add on 'Bakery' you will use your CPU and not your GPU, which for large complex maps could take upwards of 2-9 hours. Small maps an hour or less.

#

My bird world use to take 4 hours to bake it's lighting.

#

kinda big map. yeah.

#

How many light sources?

#

And you are using a custom shader on your terrain?

#

I would, otherwise it may look dark (especially any painted details) in VRChat. couldn't hurt. Use the terrain > Standard I think it's called.

#

In terrain settings.

#

Is it not a stock unity terain?

#

If not you're probably fine. Word of the wise, though. I wouldn't bake your lighting until you're ready to step away from working on it for a little while.

#

Yes

#

Still own it

#

Wow.

#

Shh. We can't about ripping assets from another game in the VRChat discord

#

lol

#

There is a go kart asset pinned in the.. #world-development ..? chat of a working car in VRChat.

#

Oh. Not sure, never tried it.

#

What is

#

I told you, it can take hours;.

#

Yes, by default it bakes automatically. I would turn that off.

#

Window > lighting > lighting settings

#

Yeah.

lean lodge
#

You need a collider on the map if you don't want to fall through, and you also need to spawn up high enough that it won't put you under the colliders.

#

Box colliders and other primitives such as sphere and capsule work well, but mesh colliders can also be used (mesh colliders should be very low poly)

#

Well, you will have to set up collision somehow. You can tick "generate colliders" in assets or just add a mesh collider component to every mesh. This will result in mesh colliders being used for all your geometry, and unless your world is super low poly this is not recommended

#

I don't recommend mesh colliders for geometry anyway as you may get randomly stuck for example

#

If you add a box collider component to an object, the box will automatically try to expand to fill the object. If your object has a fairly simple shape this should work well.

#

My whole world is box colliders except for the roofs

lean lodge
#

If they're marked Convex, unmark it

#

But I do suggest using primitive colliders like boxes for performance reasons, or making low poly mesh colliders yourself

#

And for "getting stuck" reasons

soft crag
#

Im trying to update my worlds cover photo and when I switch to the camera it has what appears to be a foggy look on it like you put a filter over, I cant get it to go away no matter what settings I use and its really bothering me

#

does anyone know how to fix?

#

yeah I'll show how the old image looks and the new issue looks in a second

#

i've toyed with everything I can think of

#

I havent updated it since I dont want to push a weird issue to my public build

#

I tried doing that, the filter persists everywhere on the VRCCam

lean lodge
#

I have the same issue ever since Unity 2017

#

It looks fine on the website and ingame

#

Only the preview in there is fucked but it's still a problem

#

It seems to get more and more white every time I upload it

soft crag
#

dear god

#

it is version 104 lol

#

Guess i'll hope for the best

#

at least were not on 5.6.3p1 anymore

formal estuary
#

Hopefully they will switch to 2018lts in a few weeks

steel sail
#

I have the same issue with it, it doesn't make a difference. I think its an issue with the GUI not the camera.

#

Sometimes the camera doesn't even show.

#

But on the site it looks fine.

#

@fallen delta you need an add on called Bakery

#

Yeah :/ Not cheap.. but it makes baking light go from 1-6 hours to like 10-20 minutes.. and the lighting can look better too as it uses Nvidia's AI to fix lighting artifacts..

#

And I find the file size is much smaller for the lighting.

pale igloo
#

Adjust the VRCCam clipping planes to extreme values solved that problem for me @steel sail @soft crag

steel sail
#

Oh, cool. I'll try that. Thanks!

midnight vine
#

When world optimizing, any way in Unity to select all materials and apply GPU Instancing to all that are supported at once? Seems the instancing check box disappears on certain materials that have the check box in a different location in inspector or if the material doesn't support it when selecting multiple materials at once. Any help would be appreciated. Manually going through 120 or more materials is tedious.

#

Especially if your heading into optimizing 5 worlds (;

lean lodge
#

@midnight vine set the inspector to debug mode in the top right

#

Then you can tick "Enable Instancing Variants" on as many different materials as you want, even if they use different shaders/inspectors.

midnight vine
#

Awesome! Thank you c:

lilac saddle
#

has anyone an idea, how big unity worlds affect performance?

steel sail
#

Depends on lighting, how many polygons are in the models etc.

#

Also how open the world is

#

if its a large closed space, like a maze or a forest where lots of objects can block you from seeing the whole map - you can have a pretty big map, assuming it's under about 200MBs with great performance. If its a big open world where you can see across the whole map, performance will suffer regardless of optimization.

formal estuary
#

Well that depends because if you can see the whole map but you cull objects after a certain distance it will be the same As objects blocking the render of another but it will look really bad

#

But really how big the map is doesnโ€™t matter itโ€™s how many objects and draw calls

simple torrent
#

Hi guys, does anyone know what layers the vrchat players are on? I assume Player right?

teal mirage
#

why is my world moving??

#

slowly moving

spring kite
#

@simple torrent The local player (you) is MirrorReflection(for visual in mirror/camera) and PlayerLocal (for personal collider) All other players you see (not you) are Player

#

@teal mirage Very likely that your world is very far away from x0, y0, z0

cinder wyvern
#

Does distance or object size have any impact on file size or other optimizations? I'm figuring out my options for having an animated planet in the background

formal estuary
#

as long as the poly count dosent change no it shouldnt impact. distance can depending on how many objects are rendered. normally why lods are used and culling etc to hide things at a certain distance.

lilac saddle
#

can i use LOD Groups to hide a mesh when out of range?

lilac saddle
#

@soft crag the pic you posted, how did you get that background?

#

Is it a moded SDK

#

๐Ÿ‘€

languid topaz
#

getting split views when testing world. no shaders that would this.

#

the post processing stack is working. would a setting there or on the reference camera itself cause this?

plush crest
#

Means your using some effect from the stack thats not compatible with VR, this includes antialiasing

#

If you still get that even with no effects active, remove and reimport the stack from project

languid topaz
#

probably the antialiasing

#

will give that a shot

soft crag
#

@lilac saddle you mean the clouds?

#

Because thats just my skybox

#

literally a fresh installed SDK just to update the world with

lilac saddle
#

weard

#

when I upload stuff than it is always grey x3

steel sail
#

It uses your skyboxes as the background

lean lodge
#

Double vision is the anti aliasing

#

Don't ever use that option

median stag
#

If you have 200 different animation states that each have an any state leading to them, is that worse / laggier from a runtime perspective than if you were to have a hierarchy-- say from A to B if greater than X but less than Y

vocal seal
#

are all the primitive colliders the same towards performance?

#

For example, capsule vs box?

analog kraken
#

From what I remember hearing, the primitives are all about the same in performance for calculations. Specifically, capsules were the same or maybe a bit faster than boxes

steep temple
#

Slightly faster with sphere being fastest.

lean lodge
#

How are capsules implemented anyway? Spheres are just distance checks, boxes are a bunch of comparisons with 4 values(?)

#

But I'm not sure how capsules work

steep temple
#

It uses vectors and raycasts apparently.

lilac saddle
#

yo, i made a game for vrchat and added post processing stack, added the post processed camera to my VRCWorld reference camera and now when i go test my world i see black but hear sounds. Please help Im desperate

lilac saddle
#

@lean lodge capsules are a raycast distance check, just like spheres and boxes, and it's a little faster than boxes

nova hemlock
#

how make move cube with pitch sound

lilac saddle
#

Animator?

#

or do it like me, wriite editor scripts for generating an animatorcontroller

#

way easier if you do it on big maps

obtuse grotto
#

Can Anyone be willing to give me optimization Tips on Clubs? Cause i have a 150mb world which is still in progress needing Optimization after placing alot of stuff in it... I have like Plants, Video Player, Booths, Stage, Lighting (animated), Mirrors, bars... What can be optimized?

formal estuary
#

Use some kind of mesh combiner and make sure things that arenโ€™t gonna move are static

obtuse grotto
#

when the meshes are separate

#

they cause more data?

finite cypress
prisma lily
#

any tutorials on how to make optimize mirrors

lean lodge
#

Tick "disable pixel lights", set the anti-aliasing level to 1, and only reflect the Player and MirrorReflection layers. You could also reflect the environment by adding the Default layer on top of that, which is what I prefer to do

#

The most important thing is to turn all those other layers off (unless you need one for a particular reason), because stuff like nameplates adds a lot of drawcalls while not adding value to the mirror.

lilac saddle
#

@obtuse grotto Yes actually, because they're all rendering as seperate entities, rather than a single entity

#

This is why alot of creators of worlds will export a copy of their world, throw it in blender, and then export that as the final map

#

because rather than needing to know say 50 objects and their locations, it only requires like 2

golden coral
#

So question, I'm trying to do occlusion. Now, this is fine. But how do I also make it occlude by distance? I've got several areas in my map, and they occlude fine when the camera isn't looking at them, but look in their direction and they render even when they are far away. So there will be lag, because not only are you viewing that room, but everything beyond it too.

#

How do I fix that so stuff in the distance is culled too?

prisma lily
#

thank you soo much!!! @lean lodge

slate sundial
#

Will the performance be better if I add a toggle button for a lot of chairs in a world? Must be around 90 stations in total...

golden coral
#

Im not sure that those affect performance at all

#

A toggle for chairs is always welcome though

slate sundial
#

Another question maybe? What causes a delay after loading so people are stuck in a black screen for a few seconds? The bazillion of textures and models or the vido_sync panel or all the interactive stuff? Once the black screen goes away everything works fine and with 90fps...

#

Is unity decrunching all textures when the map is loaded or when you see them for the first time? If everything is decrunched after loading in I think I know what causes this delay?

golden coral
#

Dunno. Maybe

slate sundial
#

I think I intuition was right... "Textures compressed with Crunch are first decompressed to DXT and then uploaded to the GPU at runtime."

#

There are hundreds of them. Guess I have to atlas more of them then... ๐Ÿ˜ฉ

golden coral
#

Tbh id rather the black screen than a large download

#

Just me though

slate sundial
#

Saved me at least 100Mb download size, so - YES not only you....

golden coral
#

Lol I know that feel

#

Crunch compression is a lifesaver

slate sundial
#

A shame you can not compress lightmaps without massive quality loss. But the directional map can be compressed and went down to 5.something from over 20Mb.

#

also reflection probes. I did not see any difference but in size...

lean lodge
#

Compressing reflection probes is rarely worth it

#

Cubemaps don't crunch well, they become bigger at 100 quality

slate sundial
#

from 8 down to 5 is to be honest questionable but if you have a lot it may be worth it...

#

reducing the resolution is the better solution for reflection probes I guess.

golden coral
#

I tried using lod, but it did jack all

analog kraken
#

change the Far clipping range on your reference camera

golden coral
#

ahhh, it was that simple... thank you

lean lodge
#

Oh shit, if GPU instancing is broken with different light probes I need to fix my pedestals

#

Does static batching work on meshes that are disabled by default?

plush crest
#

Best to check yourself by using frame debugger while in play mode

calm dirge
#

quick question: should I create / set "Static Lightmap" on meshes that use the basic unity "Unlit/Texture" shader? they shouldn't receive lighting anyway, no?

analog kraken
#

@calm dirge You don't need to mark it as lightmap static because as you said, it doesn't receive any lighting anyway

calm dirge
#

thx

plush crest
#

You do need if you you want those to cast shadows. In that case set lightmap scale parameter on them to 0 so they don't take up lightmap space

calm dirge
#

no, I'm just wondering if it would improve performance, or make no difference

analog kraken
#

I don't think unlit shaders can actually cast shadows?

lean lodge
#

They can

#

Mobile has an Unlit Texture variant that supports lightmaps

#

The default "Unlit" shader that is created does not have a shadowcaster nor a fallback, but nothing is stopping you from adding one

analog kraken
#

that would make sense

calm dirge
#

so I guess it makes no difference in performance cause it doesn't have light calculations in the first place?

lean lodge
#

Alright, apparently Mobile/Unlit doesn't have shadowcasters either

#

For unlit meshes, I recommend turning everything off.

#

No lightmap static, no light probes, no cast/receive shadows

calm dirge
#

reflection probes too?

lean lodge
#

None of those either

#

It won't make much difference though but still

analog kraken
#

you'd want static batching at least

lean lodge
#

Yeah

calm dirge
#

static batching?

lean lodge
#

The static checkbox in the top right, batching static

#

Unity will combine meshes for you if used

calm dirge
#

uhm... is the lightmap supposed to look like a uniform rainbow over my meshes when look at through the "Baked Lightmap" view? cause mine looks very fragmented

#

also it looks weird in normal scene view

lean lodge
#

If you did not make the lightmap UV's yourself, you have to tick "Generate Lightmap UV's" on the mesh in assets

calm dirge
#

ah... that explains things...

#

I'm quite new to the lightmapping thing...

#

also... what's the difference between progressive and enlighten besides the fact that progressive seems to work 10 times faster for me

lean lodge
#

Progressive is in preview/beta

#

Enlighten is generally better in this version and I think progressive doesn't support realtime GI or mixed light shadows

#

If you want a good lightmapper that isn't Synergy you could shell out for Bakery

#

But that may be too much to ask for just a hobby project tbh

calm dirge
#

I mean... I'm trying to make my first world. for now just home world but I want to try to make my worlds as efficient as possible right from the start, should I decide to make things public

warped crow
#

For Mirror optimization, how do I make sure it doesn't kill frames and keeps most things or what you believe what should be kept

analog kraken
#

it's not a bad idea to have multiple mirror options, such as having one that only reflects the local player (MirrorReflection), all players, and then the heaviest performance is reflecting the entire world

lean lodge
#

I don't think you ever want to reflect everything

#

@warped crow start by only reflecting MirrorReflection and Player layers, and also tick "Disable Pixel Lights" if it isn't already ticked

#

These layers will make the mirror only reflect players

#

Then you can add the Default layer on top to reflect the world geometry

#

That's the three layers I pretty much always use. No need for UI stuff, it's only annoying and laggy.

jaunty heron
#

@calm dirge progressive is generally better in my experience, enlighten works very quickly, but when the lightmap is compressed you end up with a lot of artifacts

lean lodge
#

Progressive lacks some features

#

No mixed light shadows and I think no realtime GI either(?)

lilac saddle
#

is this the right place to ask for help?

#

I am having issues with lighting artifacts and materials not displaying correctly

edgy bridge
white ether
#

question. i have a world that needs a sort of "on_player_respawn" trigger. is this possible? can i trigger things to happen when the player hits the respwn button in his menue? and how do i do this? im trying to optimize my world. it has teleports in it. i cant turn the spawn area off with any of the teleports, because if i did, if a player were to hit respawn, he would fall to infinity and have to alt+f4. if i could trigger the spawn on and every teleport location off locally on respawn, then only one area would be loaded for the user, saving precious computing resources and thwarting a bit of lag.

#

i can already toggle things on and off with a button. i just need to know if its possible to do/how to do it when a player hits their respawn button.

strange prism
#

Two things:
You could move the respawn point when you turn off the previous.
You could put a small trigger collider at your spawn point to ensure that spawn is enabled.
We don't have a "OnPlayerRespawn" action, so you have to handle it manually. (They never responded to my feature request for it)

#

Also, be very careful when dealing with trigger occlusion. Broadcasts will fail when someone else has it disabled (making it difficult to sync), animators will reset on enable, and pickups will fall if the owner leaves the area.

white ether
#

i have no animators, or pickups. just buttons that trigger areas on and off and teleport you.

#

luckily only 2 areas can be loaded at once locally for each player

#

with the way i set up the rest of the tpp buttons to trigger off the other areas locally too, that is.

#

there really should add an OnPlayerRespawn trigger. seems like a pretty big missing feature. although i could see people abusing it.

strange prism
#

It is super easy to abuse people in worlds as it is. This wouldn't provide anything new.

white ether
#

true

white ether
#

if they want their damn optimization they need to allow noobs like me to make optimizations lmao

#

upvoted

strange prism
#

Trigger occlusion works, for now, but I suppose you shouldn't rely on it too much. At least look into occlusion culling too

white ether
#

what if i have a player fall through a box with no colliders when they spawn? could i make a trigger happen when they fall through it? or would i have to make an invisible platform inperseptively close to the ground at spawn, so that when they land on it, it triggers with colliders?

strange prism
#

You could put a small trigger collider at your spawn point to ensure that spawn is enabled.

#

You can put a small box where your spawn point is, make it trigger collider, and add OnEnterTrigger to do whatever you need to enable the spawn area

#

The other option would also be to never turn off the colliders around the spawn point but only the meshes.

white ether
#

o so i made a transparent landing cube under the spawn, so that you land on it. added event trigger to the cube. onentercollider>local, and setgameobjectactive>true&false. set the workds i wanted to trigger off to false. set spawn to true.

when i load one of those areas and hit respawn, i land on the invisible cube, but it dosent do anything. dosent trigger that other area off like it should.

strange prism
#

Make it a trigger collider and set it to OnEnterTrigger instead.

white ether
#

i enabled "is trigger" already for the cube

#

ill try changing it to on enter trigger

#

when i land on this invisable cube, i want it to triger the spawn on and every other area off locally for each individual player.

#

now i get to wait another 20 minutes to build/compress lul

#

and if this works i get to update again to change all 7 tp buttons at spawn to turn the pawn area (not the landing cube) off

#

so that when they respawn they land on the cube and the spawn loads

#

if im understanding this right. im drunk. lol

#

nope, didnt work

#

๐Ÿ˜ฆ

#

fuckit

#

fix your shit vrchat, so i can actually optimize my fucking world like you fucking want.

#

insert middle finger here

#

it seems the collider trigger no workey.

finite prawn
#

Wondering if anyone can give advice on network event optimisation. Lately I've noticed that people often get desynced and lag out when there are quite a lot if triggers

#

Of*