#development-advanced
1 messages · Page 32 of 1
UNET better? Good joke. HLAPI is severely neglected still and requires a lot of hacks to make somewhat basic stuff to work correctly whereas with Photon it works as it should.
Anybody can chime in how are webpanels synchronised/instanced - per player only(local?) or globally synced?
it tries to sync the url but what loads up is local.
Alright, any insights on latency? Brainstorming if it can be used for audio + custom data streaming (video got separate asset due instabilities, what about audio?)
Wondering How can i set up the spawner thats in Toybox?
It has a readme. He does a good job of explaining but I can help later if you still have questions.
well the prefab seems to have a missing script :Tc it might be due to me being a slighltly older version
Nope, you probably didn’t import standard assets first
Well, you need cameras, utility, and vehicles for toybox to work properly
I have never had any issues importing everything though
its been a thing from all of 5
:Tc
Never know why it breaks
its crossplatform stuff that breaks its self
:Tc
Idk why
things meant to help with cross platform porting i think?
You don’t need them for this, so just don’t import cross platform input?
ehh
idk what is dependent on that
seems to be alot of the scripts just break
these two break https://i.imgur.com/NYGqrr9.png @summer berry
Why i do i bother
@summer berry I think i fixed it!
\o/
You might need to reimport toybox to fix script references. Also restart unity.
oh
i havent done that
well
logically now i have
i just need to open it
what do i need to do after that?
What do you mean?
nvm :T
I have a shader that turns black whenever its used / imported into my main project. By this i mean, the default colour in the asset panel shows it as black, adding albedo, specular, normals etc is still displayed a little but really dark. The same shader works fine in other projects.
(edit: seems like it might be related to lighting settings for the project, nvm 😛 )
https://cdn.discordapp.com/attachments/423295033337315329/466840231283261470/unknown.png
Does anyone know why this happens in the geometry render queue?
The only thing I can think of is that the Z testing or render queues on the background are wrong @latent hemlock
Or perhaps it's the shader you are using. Does it also happen with something like Standard?
Ohh wait, right
Forgot which channel I was in, sorry.
Maybe it's a ZWrite or ZTest issue?
It seems like it's not writing to the Z buffer properly
@latent hemlock I think what you are seeing are shadows or lightmaps, this happend to me when my shader didn't have some required pass
Try to add something like FallBack "Standard" to the bottom, so it takes missing passes from Unity's Standard shader
Well it’s worth a shot
Okay, something super weird is going on. I have several triggers on each of 9 buttons for 9 cameras, one of them disables all the cameras, another one enables only one specific camera/screen.
What's weird is that it works totally fine for me when I'm alone.
But as soon as someone joins the instance, the screen will turn black in a second only for the one who pressed the button.
Yay, synchronization issues.
What all are you doing in the order it happens and what are the broadcast types for all triggers involved.
I'm absolutely sure none of them are local, and it's bugging me real hard.
Sorry for asking, Cyan, was that a question?
I'm sure it's got something to do with custom triggers. I just made a couple of them in order to get rid of old bugs, and now I have this new huge one.
Mine was a question, but typing on mobile is slow and I make mistakes...
you should minimize broadcasting triggers and make most things local, but there’s an order to it.
Hm, I see..
PhaxeNor said something about custom local triggers that should work for everyone somehow, but I just don't know how to do that.
Pasting this again even though it’s still a rough draft.
https://cdn.discordapp.com/attachments/424536392459223044/464125930525294608/Ownership_and_Trigger_Broadcasts_V0.2.txt
It's gonna take a while to read the whole thing, but it's giving me a few thoughts.
Thanks.
ok so none of these suggestions helped, looks like the lightmap is drawing on top of my shader materials anyways
Yeah, lightmaps can be annoying.
I like how everyone started working on lighting after that Home SDK video.
Honestly I began this shader about a month before the VRChat home was a thing, but only today after I made it properly use the geometry render queue did this <wonderful> issue show up
ok I figured it out
it's the ambient occlusion
if I disable it it goes away
however I've not solved the underlying issue
So, anyone willing to teach or something the GPU particle shader? i've found something super similar to what some people are using on shadertoy, but i have no clue how to convert GLSL shaders to Cg/HLSL (and the fact that i dont know how they work exactly)
Iirc compute shaders require scripting support
i wonder how the shaders people been using lately work then
using attractors, rappelers and everything
I’d have to see one
They do it by having all the code, including attraction and repulsion, in the shader code itself
Geometry shader?
that sounds right, but I don't know enough about shaders to say for sure
i've heard it its geometry shaders, yes... but how to accomplish something like that? been wondering for weeks xD
Well technically you can create geometry wherever you want in a geometry shader but what perplexes me is how it follows the points, how does it know where it was last frame
i heard about they using rigid bodies
Doesn’t really explain though
yap, i really wish i knew how to explain, looking into this for so long and no results ç_ç
Not sure if it applies to the same thing, but I remember talking to someone who made particles like this and they said they made 1 million particles and position them in the shader based on a camera capturing depth and color. That was more for a '3d printer' but they also made something like the video Phasedragon posted.
I wouldn't be surprised if it involved cameras, they can do all kinds of stuff. Not the least of which being value storage, which might explain what you were wondering about
I bet the solution is on someone’s blog and if you just can name it you’ll be able to look it up easily on the net
Using render textures to store values for the shader to use
I know it was shared among the dancing community quite a lot, you might find it there
Render textures, that would certainly open up a ton of potential for me
There’s a dancing community?
I think it mostly surrounds the streamers, idk if they have a specific discord
I hate being around streamers while they’re streaming tbh
After starting map making, I
... After starting map making, I'm rarely in public worlds so I never see streamers.
I guess most people still play the game rather than trying to figure out weird new things you can do with the sdk
I write shaders mostly so I’m pretty much in the same boat you are
Well, I mostly focus on one shader
However I found out custom render textures are what to look into
How it knows where it was last frame is cameras
That new particle world today, I wonder if that will be a similar thing. It will be a while until I can get on
I haven’t thought about how to do attractors though, that just seems like magic to me still
Maybe that’s just another camera
@latent hemlock You need to add a custom shadowcaster pass
Regarding GPU particles - I've figured them out. Cameras + rendertextures to store state + regular shaders to do the maths
To do attraction, you grab camera pos from built-in unity var in HLSL. Bilboards constructed in world coordinates on geometry shader
But since cameras on avatars are local-only now...
^ stupid update, should be option to turn off/on
Was a good challenge for myself, learned geometry and tessellation pipeline stages..(and how messed quad topology is in unity)
Ooh so you basically capture the output of your shader in order to pass state in from one frame to the next? That’s cool I was wondering how you can keep memory
I thought vrc camera was very limited, like it only shows on your and friends’ avatars. Is that the case here too?
But worlds should be able to do it
A buddy of mine has a world that does do it
Cameras are now removed from other peoples' avatars in-game. Can be used on worlds, calculations still done locally. Got the field reacting with a pickup object, not sure how to do manipulations. (Hmm, gotta lookup how world pens draw only with trigger held down, might be the solution)
They're geometry shaders
Compute shaders will not work in this game unfortunately, needs to be called from a script.
@oak pollen the ones I've seen only "attract" while held because the camera is only active at that point
@rough sleet I ended up using a usepass for the shadow pass, should I still implement my own?
Also I just turned off ambient occlusion in my world for now and the problem is out of sight
@latent hemlock You only really need to specify a custom one if you are making noticeable changes to the geometry in the vertex or geometry shaders.
thankfully I'm not
Ok so video sync players add a lot of delay, did not like 64x64@60fps stream and liked to freeze n crash for me 😭
https://streamable.com/8huxc
Whats this? Shader or animation that takes values from audio something?
i saw an avatar where it would shoot out particles that spawned flowers and trees
how did they do that
Does anyone here know how to detect a non directional light like the ones in avatar testing and the home?
@boreal flame was that Kittenji by any chance?
I know he did it
It's subemitters basically
ye but how do
Not sure
But in theory, uh
You have a particle system that spawns a tree wherever it activates, and does so once
Through burst emission
You set that as the subemitter for another particle system
On death, you subemit the tree thing
And those subemitters can have emitters themselves. So on birth, it could spawn a particle that travels upwards and makes the "leaves".
Subemitters
They can emit on death or on collision
You just make the initial particle die
I thought you were talking about like a stylized tree. If it's an actual growing tree, it could just have been a mesh particle that increased in size.
Size over lifetime
best way i think is to move the Particle systems individual and make them parent to one that should trigger them on the particle collision death.
and have delays on the systems themselves to simulate growth
but how do i do the collision part
the module says i need to give it things that collide
Yeah, set it to collide with Default layer lol
Set collision with world rather than plane, in the particle system's collision module
with 3d or 2d
Wot
Yes
Ye
is there a way to make it not collide with self/players
or does it already not do that
It collides with yourself unless you turn off PlayerLocal collision
For that, you need to add a VRCWorld prefab to your scene, in the publish window you set up the layers
Then you remove it again
how do i remove player collision also
Set up the layers and it speaks for itself. I don't think you even can collide with other players no matter what you do.
Unless the other player has a specific setup and you have too
and how do i set up the layers
For that, you need to add a VRCWorld prefab to your scene, in the publish window you set up the layers
The upload window
?
The place where you click "please upload my avatar now kay thanks"
I can't explain it any more clearly than that.
ya but it shows an error and thats it
Should have said that first lol
The error is telling you that you have an avatar and a world in your scene
Disable your avatar for a sec
Y
Particle system needs to always be active, then
But the emission rate set to 0 or the emission module off
Then you activate the emission module in a gesture
i think i tried doing that
but it wouldnt let me deactivate while in play mode
hld on i think i fixed
do i use force over lifetime for gravity
and it also has a player layer so ima use that
Player layer doesn't work probably
ok so how do i set up the subemitter thing
do i just make an inactive particle system object
and use that
I think you need to read up on how Unity particle systems work first
Because I can answer this question, but then you would be left with at least 10 more.
kk
i think i set it up tho but now to get flowers to grow
its not spawning anything tho
Dunno
and to spawn different flowers
You might be able to do some of the things you ask for with custom shaders. Particle systems basically just create polygons and points at the right place and from there you can set a custom material and let the shader do the real magic
But i think you can probably do what you want without a custom shader if you think about it and get familiar with the settings . Lots of tutorials
Like different flowers can be done by making like 3 particle systems in the same position with 1/3 the spawn rate
Better off doing randomization through a texture sheet
For facing the same way every time, it would be easy to just set the billboard alignment to world
how do you undo an animation applied to the base avatar (the one that you upload). Unity's stupid animation system left my avatar stuck in the pose it goes into when you create an animation for it
I didn't create an animation on the base avatar though, I created it on an object outside of it's hierarchy and when I brought that into the avatar it broke it
Now I can't undo it
now that's weird
you sure you left the animation component on the base avatar empty?
yup
it's stuck in that default animation pose, hunched over with the arms out
ive already done a bunch of animation overrides, audio and particles for it I DO NOT want to redo that again
not sure why it did it in the first place, but depending on how much you've already done and how much work you want to do now, you can either bring in a new version of your avatar and start from scratch, you can copy over all your additions to that manually, or you can copy over the transforms of each and every bone from the one you just brought on onto the one you already have
For the last option, just select a bone, click the gear icon for the transform component, copy component, and find the same bone on your first avatar and same gear icon, paste component values
The first avatar is the one that's broken so that's not an option
no I mean bring in a fresh avatar and copy over the transforms from that onto the one you've already been working on
a lot of bones too, not doing that lol
that's pretty much it
god fing damit
thanks for the help
just bringing in a fresh one and transferring the particles and audio from the animated ones
hopefully nothing breaks 🤞
Or open a backup of an old scene file
where does it save backups?
By doing save as regularly :-p But if you do unity in a dropbox, dropbox lets you download old versions
I saved it before it broke, but apparently it auto saved at some point after cause when I reopened it was broken
😦 good luck
it is what it is
You could just prefab the stuff you have on the avatar, and then drag it back out to the scene. When i create an avatar nowdays, after i am finished with my dynamic bones and happy with how the avatar looks i prefab it.
I'll just let this get buried... (shader particle fields) https://streamable.com/ujpyh
I'd love to see how that's done :3
Didn't you say you might put it on GitHub when you've refined it a bit?
Yeah, but its not there yet, teaser: https://imgur.com/a/A2SXsKa
I've been trying to figure these things out. passing the state between frames is easy enough but it isn't as clear how to get the other input in
Other input? Im using _WorldSpaceCameraPos
what if there's two attractors
two separate cameras for those plus one more camera doing the state?
shader on each camera just renders the location to a 1x1 texture and then both of those are input into the third?
I'd reserve some pixels and write to them from the different cameras, but then each cam = +1 pass
yeah :/
and I guess if I wanted a reset switch the straightforward way is a bool property that I just set from an animation somewhere
Atm 1 does the maths, other is just pass-through to bypass memory block when reading and writing to the same tex
I was considering implementing game of life on this as a test heh
Yeah, i have an int material property and return some "init value" when that is 0.
for game of life, I'd even have multiple input textures for the initial states potentially, and reset to those known values. the texture could even be 1bpp
Yup either textures or an algo in the same shader
admittedly it has been a while since doing a game of life simulation, but the last time it did not run this fast lol
how do people make those shader renders
like people have made shaders where if ur inside it it will render a 3d world around u
and its not using textures
they learn shader code and write it
ya ik but does anybody know of a few
Stuff like your example isn't easy to make, and likely custom made. I don't think you'll find those shaders anywhere.
rip
ive seen a few and a couple examples was an ocean and another was a city that would pan around
its not a texture
its a 3d render
u can walk around in it and u can see
and it has height and etc
it can clip through ur body
Well, I have seen someone spawn a black and white old-timey city
And I've seen an Ocean Man avatar
not what i meant
its literally a shader
u go inside the sphere and u can be in the city that pans around
and its generated so its like
a long road and 3d buildings on the side
and the ocean example if u stand in it it goes to ankle level and rises with waves
Could also just be 3d models with some simple render queue magic
Yeah
no it wasnt a lot of people told me they used shaders only
Either way you do need to know quite a bit about shaders
You could do that with shader magic alone though
and they themselves did too
You can do it with shaders too, yeah. But that's quite complex stuff
ya thats y i wanna figure out how they do it
its rlly cool looking
like theyre making actual 3d renders just by using shaders not using world objects
and how do they make that clipping thing also
bc ive seen people use a shader or something where
it can clip things in/out
i.e. u look through a window and u can see a different world (rendered by shader) as well as their avatar
and portals where it hides the other half
If you want to figure it out, break it in pieces and google them individually
idk what 2 look up other than shader tutorials but those are 2 basic
Complex stuff, stencils + layers
know any resources in specific?
cuz 1 thing i wanted 2 do was
there would be a different world where if u walk into the picture frame u can be a part of it
and u can see it from in front
You're gonna have to work your way up from the basics. There's no tutorial that's going to tell you what to do for what you want
cuz i wanted to render a world like this
through the picture frame
that u could see when u look into it or walk into it
i would probably use images tho
if nto ill just make simple render
Doing with pictures is ez, geometry though...
there we go
found the shader
or at least one of them
but now i need 2 figure out how 2 make it so that u can see when ur inside also
example
o nvm they did some cheap workaround i think
but it also helps reduce poly count if using shader only
The principle there is just stencils and doing things in the correct order using render queues
Oh yeah, that's also something I forgot. You can just actually spawn the models in the world, and use stencils to make sure that it's only visible from inside.
this ☝
Although I don't know of a way to prevent the world from getting in the way, though.
Well, I can think of one way, but it would make everything render over other players and yourself
ZTest Always
ZTest Alwa-- yep
I don't think I have seen one which completely removes the real world either
except
I did that for an effect once, was bummed out when I realized it would mess with other people
Didn't affect me due to render queues
the VR headset sort, where it's sort of plausible for it to overwrite everything
but then when I've seen people try to do it on those, half the time it shows through the headset too lol
Hmm, maybe if you put the fake world on an earlier render queue?
Oh wait nvm
Ugh, there is no way to differentiate between players and the world other than their layers.
Which you can't test for in any way.
willing to pay for advance blender and unity lessons hit me up ( i don't want to screw up my model, so i need help) @ me
also theres a trick where if u zoom in a lot with the camera its going 2 lower the near clipping pane and get rid of that supper annoying clipping when too close
I'm currently working on an animation for an avatar and running into a problem. The issue is that I've got a hemisphere object with a shader on it to simulate the night sky on a rigidbody, but it still is constrained to my avatar's armature and therefore turns with it. Is it possible to instead basically have the night sky shader I'm using render as a hemisphere mesh but with a particle system instead of an object, so I could make it a world particle? I have seen people drop animations down before with this method but have no idea on how to go about it
You can change a particle system to be a mesh, yeah. In the renderer tab
Doesnt that just render the particles on a mesh? Particle systems elude my understanding
You could do either. If you wanted to emit the particles from a mesh as a shape, you can plug that into the shape tab. If you want the particles themselves to be a mesh, you can do that in the renderer tab
This video is a really nice overview on particles https://youtu.be/FEA1wTMJAR0
Well, that was a much simpler solution than I expected it to be, thanks
Would putting on trigger collides in my legs allow me to move things with collides with full body, say kick a soccer ball for example?
no, istrigger colliders do not interact physically
Is there any way I'd be able to do that?
probably, by setting it to a collision layer that doesn't hit your character. I'm not sure if the sdk messes with that, though, it might
Alright, looks like I'll be messing around with that then, thank you
All avatar colliders will be local and set to Player Local. If you have an object in your world, you will be able to detect it if it collides with Player Local. The issue is that your capsule collider will still be there and get in the way.
Yeah that's what I thought. However somebody has figured out this, so there's definitely a way around it.... https://youtu.be/zAUVQSYdIB8
anyone know how to do gpu particles in vrchat?
Question: How do I make a trigger that can be picked up and able to be interacted with? Example: A handheld game show buzzer.
Pickup with on pickup use down/up?
Or you can make something vr only and put an OnInteract button on it.
Something that you can click to pick up and it stays in your hand, and then the left mouse button activates the trigger.
Then my first suggestion. Make an object. Make it like a normal pickup and then add the OnPickupUseDown to do the action you want.
Works perfectly! Thank you for your help!
Hey has anyone played around with the WebPanel bindings at all? Was wondering if anyone knew the syntax for VRCSDK2.VRC_Trigger.TriggerCustom
the syntax is not really the problem, the problem is you can't get the GameObject you need to pass into it because other stuff is broken
if you ever figure out how to get access to a GameObject from JS, I would like to know, but I figure that it's such an obvious way to implement custom scripting that if a way existed, someone would have figured it out by now.
So what about VRCSDK2.VRC_Trigger.Trigger then?
I don't have my dev environment in front of me at the moment but I think the first parameter to that was GameObject also
depending on what changes you want to have happen in the world, it might be possible to do them without support for triggers too
the sort of stuff I was trying to do was moving clock hands, but I eventually figured out I could do it with a shader
Its no big deal for me, ill move my ui outside of the web entity
Just saw thoes calls and was curious
one of my other projects was trying to use a web panel as a remote control for the video player
that one is basically doomed until we can use the web panel fully
I have been trying to do it as straight UI but it's a lot harder
ah, I'm using UI, so I don't get the luxury of a nice way to build the thing. 😐 at least not as far as I've found
at the moment I have a bunch of C# code build it programmatically so that I don't have to do it over and over
I nearly got it working and then suddenly the video player just started refusing to play videos at all
@delicate harness totally working on that at the moment
so far I have the inputs sorted and the feedback loop is easy stuff. next is packing the data I want to store into the texture (still not quite sure of the best way) and figuring out how to actually display them at the right position
assuming right now that a geometry shader will be required, but IIRC there was a limit to how many things you are able to spit out of the geometry shader per input triangle... so I'm kind of stuck on that
but it's at the point now where I've spent enough time learning all the pieces that I will continue writing the thing myself even if someone drops a fully working one within a week of now
@normal aurora Feel free to dm me if you want to save on the frustutration on trying things that dont work 😉
Tweaking it for avatars atm
sometimes finding out what doesn't work is useful info in itself
but I've spent so much time doing that with web panel that I'm just about sick of it
Wasted too many hors trying to do it with single buffer not realizing it was a memory block...
ah, I'm aware of that trap from someone else talking about it...
at this point I have the looping stuff working well with one but I'm sure some problem will hit me at some point 😐
also since I don't have a solid use case for the tech it's being handled at lower priority than video player related stuff
but I got a nice game of life running so maybe I should try to hammer that into a usable world heh
Wanted to do stage lighting to music but at current video player state, too buggy, latency too high... I'll rather continue on my c++ node engine for real life performances
yeah that's the one big killer with the video player - the audio isn't even in sync with the video 😐
one of those "fixed in a later version of unity" things
Not a problem with live streams, you can offset audio at the source (did a live stream with color encoded data), but having 10s+ latency...
yeah........I'm not working with live data 😦
I would have to edit the actual video to offset the streams
at the moment I'm in a situation where the video player works fine when someone else's playlist is in it, and then when I put my playlist in it, white screen
even without any of my fancy automation around it 😐
I can accept one or two urls maybe being broken somehow, since the world I created is essentially for checking videos for support in the player... but the whole list being unplayable seems pretty unlikely
It might be fussy on the format/encodings/framerate since no control of selection of those for now
Try checking logs
have been 😦
I put all the videos through transcoding except the ones which were already in the right format
because some of the older stuff was in flash formats still
now it seems, one test world does play the first video, while the other one does not
so it's a spot the difference game from here, except that the video player in one was literally copied from the other world lol
Ouch, also a fun thing was that livestream player liked to crash on slow wifi but all good on cable 😄
Ok, I'm at a loss, my cams don't work even for friends... (added a guy rejoined world, nada) >.<
and, my video player works again even though the settings didn't change
I copied the old prefab back in and used that as-is, and that works lol
then I went through every setting and it's all identical
so I guess there is some difference that is hidden in the UI
anyhoo, my work here is done. time to IN
Nvm, for cameras, gotta toggle the component and not the game object
https://cdn.discordapp.com/attachments/438267689916432385/468415842661433354/unknown.png
I've got a large trigger box collider to detect whether the local player is in this room or not.
But when I do this, every button in the room stops working, it seems obscured by this trigger.
Anyone know if I can fix this by setting it to a particular layer? 🤔
The only thing that's still interactable is the pens. Maybe because of the script or rigid body. Not sure.
I tried changing buttons to the pickup layer but no luck.
@storm vessel The only things I've got working with engine.call() are getting the game time and joining different worlds. VRCSDK2.Networking.GoToRoom This is probably the only useful thing I found. Everything else I got stuck on the game object references too.
Yeah i've been having a prod at it today and couldn't really get much from anything else. Bit of a shame too had a few random fun ideas that i could have done haha.
Same here. It was the first thing I tried to build: a search engine for avatars and being able to spawn the pedestals from the web panel. But no go.
Being able to sync /any/ kind of data from the browser across clients would be nice as well.
Hoping Udon will provide some salvation 😛
Yeah same,
At least i can get my offline Favorites to hook into a world with whats there, just wont be as elaborate as i wanted it to be lol
made that a while back, making a little api for it to hook into a web entity, i can at least do that with whats there lol
Oh so that it can be displayed in game?
yup
saves you having to close vrchat to load another world
You can just jump to this one, use the in world menu, and then make a portal and all that.
yee
That trigger binding not working made it a bit more annoying but hey, its still doable
You're also using GoToRoom for this?
yeah
Neat :]
lol i was going to make some cheesy Monsters inc Door room for it and stuff but might have to be for another time haha
Hahah people'd probably like it :3
yeah lol
it will get there
Hopefully tomorrow! Its bed time for me at least. Dat 12:30 am
ok so i tried attaching a particle with fixed joints to my head but its still not working as wanted
its a world space particle but it will not look up-down when my head does
It won't move with your head because it is a world particle
Which makes sense
It might appear like it's rotating up/down in the editor, because the editor "cheats" while simulating particles.
anyone able to help me understand linking ui buttons to custom triggers
yes but how do i make it move up/down with my head
its rotating with it
just not rotating up and down
idk y bc like
i alreayd have world particles parented to my hands
those work just fine
@silk horizon https://i.imgur.com/FWash41.jpg
hankyou i got it
@kind ether https://i.tcmeta.net/img/5b4d6597e89a1.gif if you're interested in the progress lol
That looks like what HardLight made with his Traveling Elevator world.
Nice @storm vessel 😄
My world just went public yesterday.
Though it seems to have a nasty issue with ownership transfer.
Oh @storm vessel if you want to try some advanced trickery, I think you should be able to put the portal image on the cube.
The webpanels have a list of materials in "Duplicate Screens". It will render to those and respect UVs.
So you could split your webpanel between a left and right half. Display your selection on one side, menu on the other. Put the selection with UVs on the portal. Menu elsewhere.
@warm niche @naive crag I did some grave digging in the chat. Looks like you've run into very bugged out worlds when the instance owner leaves too.
Did you find any clues what that was about? I'm also finding that basically every VRC_Trigger in the map, plus (re)spawning, plus dropping portals and whatnot are breaking when the owner leaves.
@solemn sandal what's this 1000's of triggers soft-crash bug? It's not related to the ownership issue above is it?
Basically, at some point I've found the bug appears. It's not guaranteed due to triggers, but when i reduced triggers themselves i came to a point it disappeared. Atfter this, i reached a point where i could trigger it very reliably -- when my map's complexity started to increase
🤔 Aha. I've definitely got large amounts of triggers happening. To the point where I use editor scripts to generate them.
If it's the same issue, you'll see it in the logs. Otherwise, symtoms in game are triggers break entirely, you can't drop portals, changing avatars messes you up in many ways
Haven't tried avatars. But yes everything else happens.
But it seems pretty reliably to be when the instance owner leaves. Not really any other players from what I can tell.
We have actually seen this happen with a world that doesn’t have triggers too. At least not being able to see other people’s portals
Haha, same for shrudingers teleporters that I had set up going haywire and tping you infinitely.
It also happens when someone leaves
😮
So other than, reducing number of triggers have you found remedies? Like trying to spread out object ownership?
None. Zero.
For myself anyway
I have been playing the simplicity game, condensing triggers best i could.
I've had issues with tons of rigidbodies too, but that was a different issue.
1000, when i got to around 2000 the game started working, but it still bugged out and was unreliable
below 1000 was there it finally came to the point i could publish the map and actually let it get a following of players
Every now and then, i add features and the map breaks again
so i have to adjust
I used to have 20 houses for players on my map, now it's down to 16
Hmm, I should be well below 1000 though.
I made keyboards similar to Tell Your Word. So it has triggers for every button + when it's shifted + some overhead + OnKeyDown for all of it. Times 9 keyboards.
They're probably the bulk of it.
Things add up pretty fast.
This is my issue though, it could be something else similar to what triggers cause
I can only point to what reliably causes it for me, and that VRChat's Devs know about the issue, and are "working on it"
Got it. Just to check, are you enabling/disabling the game objects they're on often?
Don’t think you can just blame it on triggers. @summer berry and I did a test with over 1500 triggers and the world loaded fine (with a few seconds of black screen). It was the same triggers for all objects, but still worked
That seems to cause a shitstorm of issues too.
So I guess it all depends on the set up for them and how much else that needs to be synced up when you load in
Personally having zero issues with loading. It's when the instance owner leaves it goes unusable.
It always is triggered by a player joining or leaving, and i've also had it happen only when multiple people join
For example, i've had 2 people join, no issue messing with things, one person leaves and it bugs out
Yeah my world went public yesterday, so it was on the new worlds list. About 30 people joined and half the public instances were just bugged out.
Anyone here know how I could edit Flat Lit Lite Double Sided so the texture on the back is flipped horizontally
If I make the instance though and between 10-16 join, no issues.
Even if they join and leave.
Also to answer, a lot of my triggers do enable or disable meshes and colliders
I've started to avoid changing object states outright
Ok so you've also switched to toggling the components instead.
That's not because of the bug, that's more of a lag thing
It's a different issue, but Kanata pointed out to me that toggling the object caused issues with the triggers on it. They would fire even if conditions aren't met.
So for example OnKeyDown or OnInteract triggers would fire because you enable the object, not because it was interacted with.
And yeah also has a big performance hit.
Especially when you get into loops because of this xD
Fuck those loops.
For example having a toggle button in the form of 2 objects.
A (interact) -> B (interact) -> A
I have a friend who loves showing me how bad my map is by forcing them.
On EVERY god damn button XD
Ahaha
Yes, I fixed that for some parts of the map by disabling the collider component instead (in case of buttons / triggers)
But before that, even doing it on your own was possible. Just use 2 hands in VR to spam the buttons.
She did that too
Well on the plus side that was easy to reproduce and not too hard to fix. Tedious, but doable.
And it's better for perfomance anyway 😄
Let me boot to windows and see if I can spot null references for the people leaving soft crash thing.
Lately i've considered using animators and toggles to reduce things further, to 1-trigger each function... how performance problemy will this be do you think?
Well I've been using animators to toggle objects because there's no other option to get it synced. But because those are my syncing objects they're not huge amounts of objects. It's mostly a number of state related objects that do their things on OnEnable and the likes.
I haven't tested for performance differences there.
But I would expect enabling game objects is less performant than enabling game components even in animations.
Well, i'll be going this route later
Best of luck 👍 do let me know if you find out anything
Meanwhile I'm waiting on windows updates to even begin testing ._.
So I've got a question, if I want a more complex animation that lasts much longer than 1 frame and don't want it to bleed into other gestures I'll need to attach said animation to an object (like a tiny invisible cube) and need to activate said object with another animation triggered by the avatar so the avatar activates the object and triggers the complex animation at the same time
Did I understand that procedure correctly?
yes, except that it doesn't need to be a cube. It can be an empty gameobject. Everything is a gameobject in unity, and you add components to them to determine how that object behaves and looks, like meshes, colliders, particle systems. So if it's only being used as a folder or an animation, it doesn't need to also have something like a cube
and also to be clear, you're not also triggering the second animation; it's just set up to play as soon as it's active. That happens to be the default behavior of animation controllers
also animations have 2 be attached 2 somewhere where its descendants are usable
i.e. if ur using character bones in ur animation then it needs 2 have the character bones as descendants in order 4 it 2 work
so u would need 2 use legacy animations or the animator object and
u would need 2 place them on the character or bone or etc
Don't ask the same question in multiple channels, it's against the rules
can anyone recommend a good realtime stitching to record and stream 360 video with multiple cameras synced for amd cards?
What trigger type are you using?
It needs to be something that buffers for late joiners
If it's a toggle, it won't sync up properly, and you need to use a trigger type that plays back every time it was ever triggered so they have the same number of times toggled back and forth
Which should be always, which you can access by enabling advanced mode
So I’m looking at VRC_ToggleProps
Does anyone know if it’s at all possible to reset the prop with another animation?
Depends what you mean, you could always just have two gestures both activate the same animation
I don’t have a full enough understanding of why the prop toggle works to know if I’m just beating my head against the wall there
Well, basically I’d prefer on and off buttons to a single toggle button
All the prop toggle does is allow you to pause an animation. That's it. When you do, it gets stuck on activating whatever it was currently on. The next time you activate it, it resets to the beginning. So it's not necessarily a toggle button, more like hold to turn on, tap to turn off.
I see
You could have two separate animations and two separate gestures, both controlling the same object, but I'm not sure how it behaves when you have two animations controlling the same thing when one is paused. It might just overwrite, in which case you're good to go. It's worth a shot
Yeah, that’s the hope. I’ve got a very complicated system in mind, and if I can just consistently turn off the prop from either the on or off state and have it stay off, then I’ll be all set
Basically, I have a functioning snail trail marker that allows for multiple colors, and can keep the drawings of one color while drawing in each other color
But it relies on keeping specific animations active
So I need to enable empty objects which loop those animations
oh yeah, there are a couple of ways to do that. The trick is that everything always needs to be active, otherwise the trails disappear when you switch. So instead you'll need to have a couple different layers of setting their position to 1000 meters out or something
Right now I have it working so that if I hold a gesture in my left hand while drawing in my right hand, I use a different color. But I want the changes to be “sticky”
Yup, that’s what I have. I figured someone had done it before, but I didn’t find any written solutions so that’s what I had came up with
It seems like you're going for a different control scheme than what I did, but still, I ended up not really liking the end result because it was just so annoying to control. If I were to redo it, I would base it off of this mechanic instead: https://youtu.be/guUpGjEMqa8
If I could just have some kind of state machine 😂
The only problem with that is that alllll of it needs to be particles. So they would have to be lots of little dots (or stylize it with cubes)
and once you're down the path of particles, that would allow you to erase too
Here’s what I would like, ideally:
One gesture shows a circle of the default drawing color. Each color would loop by, second by second, until I turn the gesture off
Whatever the last color displayed was is the color that got activated
If I can consistently turn props off from on and I don’t run into any animation duration issues, then I’ll be fine
But I suspect both of those could be problems
yeah that's basically what I had, except I didn't have a color wheel, it just changed the brush directly. That's probably the main reason it was awkward to control, but still, it can be really annoying just waiting for it to go around. Keep in mind, every color needs to be a minimum of 1 second long to account for ping differences between users and making sure everything is synced up.
Oh nice
I’m still pretty new to Unity but I think I’ll be able to pull it off eventually
I’ll just keep experimenting, but even knowing that it is possible is the motivation I need to keep trying
another thing to know is that vrchat has an inherent issue with gestures in that when you do one gesture, stop, then go to another gesture, it will play the first gesture for a fraction of a second. When doing an inventory system like this, that means it will reset back to the beginning. Ingame, you can instead go straight from your inventory cycling gesture into another empty gesture before letting go, which will bypass the issue. But if you want to be fancy, you could fix the issue by having a third animation between the gesture and the cycling which is just a small delay so that the bug never gets a chance to touch the paused animation
Oh yeah, that’s a good point! I hadn’t thought of that
I’ll be checking out your particle trigger video so I can consider all of my options :)
Hard to believe I only started on this stuff two weeks ago 😂
Thank you for the advice and the video! I’ll update you on how I end up doing it!
good luck 😃
I know there's a way to have a toggle that always goes from off to on
That would sync a lot better
Holy shit Phasedragon the particle trigger thing is so cool!
yes, yes it is 😛
I have a lot of ideas on how that could be used
I just can't think of any ways I could use it
right? That was my problem with the marker thing. It's the first thing I thought of for an inventory system, but I'm hardly an artist so I never use that particular avatar
Yeah XD
I might do my quick and dirty solution for drawing instead of the complex one
So I can just kinda... abandon it more quickly instead lol
Because the particle trigger thing is nuts and I want to do that lmao
Not sure what I’m gonna do with it but I’ll figure it out!
Keyboard?
possible, but it would have to be super oversized
Oh wait
This might be a dumb question: I’ve barely dipped my feet into particles here
Can you trigger anything else on a particle trigger?
Animations, sounds, etc
nope, just particles. That's the unfortunate part
Yeah
Damn
maybe if they let us use vrc triggers on avatars one day ¯_(ツ)_/¯
God I hope so
I really really hope so
Even if they made a different one with more limitations
Triggers on avatars is unlikely
Unless they find a way to make it super controlled
Actually, what I would like to see
Custom animators, and the ability to set parameters in those animators somehow.
That should be completely harmless, but it would allow for stuff like that.
Just a new component to set a parameter in an animator
yeah, I've been messing with animator states lately in my world and I see why people say animation state machines are more than enough to tide them over till udon
I've seen amazing things be done with animators in worlds yeah
But I would like something similar for avatars
We could do so many good things with that
can u guys help with making eye bones from scratch bc like the face is kinda flat so idk where i should set the bones up so it doesnt clip out of the head
YEAH, if we can just control animator state parameters, that would be PERFECT!
They could certainly make a custom script for that quickly and whitelist it, yeah?
They could but good luck with that
Oh, I’m not saying they will. I’m just saying that it would be a very ideal thing for me 😅
I’m a low-level developer at heart, so state machines make me very happy
Are their UV Maps named the same?
do they have to be
Yes
Otherwise you'll end up with two UV maps and that will cause the issue you described
o ok thx
why
this happened when i joined meshes and its not rotating correctly either
before joining meshes the eyes would rotate correctly and also the eye tracking id bugged
i have no idea
its 100% weighted
Did you join meshes from different armatures?
Can you check if somehow there are two bones with weights on the eye (not normalized). For example Both Eye_L and LeftEye.
can anyone let me know what is the button A in oculus controller as what joystick key in the Onkeyup and Onkeydown ?
Look up the steamvr joystick input names. Can’t link right now.
@summer berry Aev just response to me that the "Controller buttons are not able to be used for OnKeyDown and OnKeyUp, you'll need to use keyboard button"
LOL
yeap but looks like Aev doesn't know about that yet
Joystick button 9 is apparently jump.
what could it be A and X?
Read the link
Remember to check for the differences for vive and windows mixed reality
🤔 it will be some trouble
well after testing it doesn't exixt in vrchat
Quick question: in Avatar Testing, there are those wire frame flashlights that expose the polys of any models they’re pointed at. Does anyone know how that’s done?
Is a similar item uploaded publicly anywhere?
@eternal agate they use Projectors to accomplish the effect. They project a material onto any mesh they're pointed at.
These are not available on avatars, in case you were wondering.
Aha, makes sense
You can use shaders to get a similar effect. Geometry shaders that use a depth texture. Good luck if you wanna make something like that
Thanks :)
It's possible with shaders but not super easy
@eternal agate google unity wireframe peojector
however projectors are only usable in worlds not on avatars
if you want something like that on your avatar you could use https://github.com/netri/Neitri-Unity-Shaders
Oh hey, this is wonderful! Thank you!
@harsh nest woah. Just after I gave up hope on using some sort of projector. Sampling the _CameraDepthTexture opens the door to some projector effects
You can probably use that wireframe shader on cone like mesh to simulate the projector shape
I had no idea there is a public shader that simulates the flash light, awesome!
I was really confused at first. I was like ok just another outline shader and boring set color to v.position and then like it was showing the outline or position (or normal!) of the object behind it! The vrchat community continues to blow my mind. It’s so awesome what people here manage to come up with.
Completely agree, the things some of my friends come up with amazes me.
Can anyone help me get a grip on getting an avatar to have multiple animation gesture sets? One user told me it was hitting a button to switch animation sets like this https://media.discordapp.net/attachments/451924435092373515/469428442451017740/unknown.png?width=1253&height=702 another user has told me they thought it was more like playing an emote to load another gesture set until a different emote is played
That would require changing your animator override controller on the fly which isn't possible.
could you have different animator overrides for sitting and standing mode?
just toggle in between them in the menu
@harsh nest ❤ used your shader to make a hologram. https://cdn.discordapp.com/attachments/466519992620285952/469662355316539403/video.mov
@signal linden yes, you do have different slots for standing and sitting, but they're auto assigned by the game
@proud meadow oh wow that's cool, I can't figure out how you did that :c
@proud meadow are you raycasting from the quad until you hit something ?
No it’s not completely right yet. I bet it will look wrong in VR because it doesn’t do any proper raycasting. Just a simple GrabPass shader and I compute src position and dest position (=src pos + normal * scale) in the vertex shader and clip pixels not close to the world position of the source pixel. I think using the world position should make raycasting possible so it can be projected properly in vr and with your world normals might even be possible to recompute lighting but that’s way beyond my ability atm.
@harsh nest I put up a gist so you can see what I did. So far pretty simple but I think it isn’t technically at the correct angle https://gist.github.com/lyuma/dd016e567fd07f7398317fdeb86c49f4
Pretty limited because its using a copy of what you see on screen, with cameras you could do real 3D scanning
@proud meadow Woa that's clever, thank you
Hey, I have a weird issue
So I'm creating a particle with my avatar
Just a single particle
And for some reason, it ONLY appears in mirrors
I can't see it unless I'm looking in a mirror
I think it might just be invisible to me for some reason. Any ideas what might be up?
You need to attach it with a fixed joint or ikfollower, look up how to do world particles in vrchat on youtube
Don't know why it's not embedding but ya I'm just gonna repost this for that question
Huh
That's... what I was pretty sure I did...
I'll review
The container for my particle emitter is in a fixed joint attached to the bone I want to attach it to
Container? Do you mean parent or you have a game object with both on it
Parent
Also be sure the empties on the bone and parent of the particle system are in the correct offset
Like I said, I can see it just fine in the mirror
I haven't tested it with another player
It seems to be aligned to my hand appropriately
I see
But again, only in the mirror
I'm at a loss unless I was in front of it
I guess test it with others and see but if it's imortant you see what's happening then try more
Yeah, I’ll keep playing around with it
If I'm in the office tomorrow and you're still working on it I can help more 1 on 1 with direct details but ya I'd need to see it
I have an idea of something to check. I’ll let you know if it works
You have to either use the IK_Follower script from VRC on the game object you have the particle system or you will need to have the particle system outside the armature and attach it with a joint to your body with Rigid bodies, remember having the rigid body on your armature as Kinematic when you so this
Alright, so here’s where I’m at right now
I can physically see the particle in my hand in the mirror
It follows my movements just right
I can even use my deletion animation to destroy it
But for some reason, the particle is invisible from my own camera
There’s a game object parented to the root avatar object that has a fixed joint attached to my wrist
My wrist is a rigid body, no gravity, kinematic, etc
And just to make sure I’m clear on my setup, I have a local particle system with a second particle system as a subemitter, and a third one under that. 1 and 2 are local, 3 is global. If that makes any difference.
I've seen guides that place the fixed joint object under the armature and some that place it under the root avatar object, but neither have worked for me
Hmm. I added a second particle effect from scratch with a similar hierarchy and have no issues! Sorry for the massive rant about this; it's just an experience I haven't been able to find ANYONE else having
You should get into the habit of using an empty with the rigidbody on the bone instead of using the bone since it allows you to offset the system location
OKAY
It still isn't working
But I've isolated the issue
I'm using the triggers that PhaseDragon sent me the video of
One collider works
One collider does not
Wasn't attached to a rigid body
If you're putting a collider on a bone in order to use it for summoning particles like in that video, you need to put the collider on a rigidbody too, just like with world particles
nah I never mentioned that in a video, I'm surprised you figured it out yourself
I ran tests until I isolated what single error caused that problem, and then googled the solution
Protip: if you don't do that, it'll only work in mirrors
In case you want any spooky effects on your avatar
I imagine SOMEONE might have a use for that
Yeah, it's because of the way they do mirrors. It must be a duplicate that's already on rigidbodies or something
Yeah, something like that. It'd be kinda cool to have an avatar that looks super creepy in the mirror, but normal outside of it
In the meantime, I'm gonna go show off my new "prop" menu once I add an extra item or two
Can someone explain why socket.io is giving me a 403 error on my website
blocking easyrtc from working
Going to pose my question here as well, in case anyone else knows more. If there's some way to change the master of a room, or if there could be a theoretical script approved to allow a person to be the new master of a room.
To elaborate, i don't want the control of vote/kick to fall to a player, but instead the person that is sync'd to.
Lol, no idea if it would work for your purposes, but you could try replacing the animation sync with an object sync, add the pickup script, disable pickup, and then do a transfer ownership on the object.
Been thinking on this too
hello, i've been creating an escape game map, and i've had something weird happen and i was hoping someone here might have an idea of what could be the cause.
My probleme is that i have an object that when you touch it it makes the floor become a teleporter to take everyone in the room out
only probleme is that when a desktop user does it, it teleports their avatar out but not there camera view, and they can still move to some extent in the room and interact with objects
also to note it works fine with people in VR
Never seen or heard of that
maybe because the floor is a collider? i had that problem before way back.. maybe try instead of using the floor as collider, use another object that occupies the whole room but with a collider with trigger checked, then animate the collider trigger going from under the floor up to ceiling. that was the solution i made in my "Bomberman Arena" world
actually i probably didn't explain it right but there is a disabled obkect that's just a bit above the floor level that gets enable when i need to tp people out
but for some reason it's working now and the only thing i did was to move the receiver a few meters when i wanted to do something else ....
but still don't know what was wrong or if it will go weird again
oh nice, does that collider has 'trigger' checked? or not? maybe try checking it
then change the OnAvatarHit to OnEnterTrigger
so remove the collider from the object and instead use on entertrigger ?
to be honest i'm scared to change anything now that it works
yeah. that should avoid glitching
worried i'll break it again
but your probably right, the viewpoint might get stuck on a collider and doesn't tp with the body
if it doesn't work, make sure your onEnterTrigger targets the playerLocal and player layer
plus animate the collider with checked trigger from below floor to surface. iirc just enabling the trigger collider doesn't trigger it
the floor i enable has it's own on avatarhit to teleport people
yeah onAvatarHit only works with colliders with 'trigger' unchecked.. so if you check the 'trigger' you will use the onEnterTrigger instead
ok, that makes sence, and i might try your methode by duplicating the world so if i screw things up i'll still have the current working version 😃
oh nice. looking forward to your Escape room release
well technicly it's the second
what's the name of first one? is it public?
i already made a first one, that's public "Olphis escapeGame"
oh thanks. will check it out
it's the first map i ever created so i was learning everything i could while making it
i'll be happy to show you around if you want at some point
just a word of advice the sundaile puzzle in the second room can often be buged, but you can get what you need from the chest in VR by sticking your hand through the lid
well, most of us here touched Unity just because of VRChat. its just great the community is helpful
ok note taken 😃
yeah, spetially since tutorial on world creation are fairly rare unlick avatar creation 😃
and also this one is really close to beeing finished so i'll probably get it public in a few weeks
If I set a pickup object up with a disabled follow target script but then locally turn it on with everyone in the room see the object following the target
It shouldn't. I think if you put objectsync on it they will but I'm still not sure what all that does
Is there a reason you can't use a global trigger to enable it?
The item to follow is locally owned by each player
Oh yeah I was trying to figure out something similar too. I think you'll need to spawn an object for each player, hide it locally, but object sync it so other players see it on everyone else
So the one on each player locally is the real thing and the one they see on everyone else is just a spawned duplicate
Trying to develop something special
I could really use some documentation on objecysync
Just ask questions about it and I’ll see if I can answer. Object sync makes the object ownable, meaning that one player in the room owns this object. The owner then sends the current transform information to everyone else. Child transforms are not sent, but just because the parent moved, the child does too. For pickups, it automatically calls transfer ownership on pickup. If it is not a pickup object, ownership will not be transferred unless you call it manually. (There is also a bug that transfer ownership does not work unless the pickup script is also on the object. You can disable pickup in the script) People can locally move synced objects, but only they will see the new position as the owner will just overwrite it on the next update. Object sync also adds an animation sync to the gameobject, which can be annoying as doing both animation sync and syncing with triggers can cause a transition fade bug that breaks it. If you use triggers to sync animations, make the animator on a parent object instead of the object with the object sync. Another strange thing with object sync is that if it is not a standard pickup object, but something that moves with follow target, there is a bug that causes it to stop sending updates after a few seconds. I don’t know the full details but have experienced it. Thankfully HardLight made an animation that forces object sync to update and it’s included in ToyBox.
So how would you spawn an object then immediately take ownership?
I haven't tested this, but I think that the person who initiates the spawn is the owner of the object.
that would be nice
Just make sure the action spawning it is local, otherwise every person will also spawn an object! That only matters when you are chaining triggers though.
Wait are you saying spawnobject local would still spawn an object to other players?
When you add the spawn object action to any trigger, it forces that trigger to be "Always"
This being changed to always can cause weird results when you have multiple actions. I typically use a custom trigger just for the spawn object action so it doesn't affect anything else I'm doing. Then again, the only time I have ever used spawn object is with propspawner since I try to avoid spawning objects thanks to the network id limit.
Also, there is no spawn local.
oh you mean the action itself is local, not the trigger type
Uh, can you explain more?
if i remember correctly the instance master has ownership of spawned objects at the start. you could set a trigger or have a user pick up the object to transfer the ownership.
(Looking at propspawner logic, it wouldn't work if master was the owner as nothing would sync properly)
actually i might be wrong
Master has ownership of all synced objects in the beginning but that's not a spawned object.
im trying to remember what happened with my light spawners in my studio.
If I understand you correctly, you're saying that to make absolute sure only one object is spawned, the trigger itself is only active to the owner, so even if another player were to meet the conditions of the trigger, it still wouldn't activate for them because the trigger is inactive for them
I guess it all depends on how you are triggering the spawn object trigger. If it is a simple on interact, the action itself should be local, but I haven't messed with it enough. If you plan to do other things to trigger a spawn object, say something moving into a collider, then you need to be absolutely sure that only one client is calling the spawn trigger. This can be done through making it so that the colliders are only activated on one client or you can make it so the trigger itself is master only. . . Not sure on the last one since that would be a chained broadcast......
And this is why I try to avoid spawn object.
Yeah, I get what you mean in any case
So there are some things that I haven't explored much within triggers. Each trigger knows who was the one to activate it, even if it is a broadcast trigger. Spawn object might consider this when activating and not do anything if you aren't the one to activate it. When you chain broadcast triggers, everyone individually activates the new triggers changing that value. Using Master Only should work as only the master initiated it. It's when you do things like OnEnable that things get bad as that then sets the local user to the initiator.
Chaining broadcast triggers and waiting on a second event to fire to do things are both bad ideas. Only do this if you know exactly what is going to happen.
what do you mean by waiting on a second event to fire?
SetGameObjectActive -> OnEnable
Basically, anything that isn't ActivateCustomTrigger
I think
I get why it's inefficient and there are better ways, but why is it inherently a bad idea?
Triggers will fire multiple times during the inital load of the world. I've seen OnEnable and OnNetworkReady fire 3 times for the same object within the first second of the world load.
The other issue is what I was describing as the trigger instigator. OnEnable itself isn't really that bad. I over reacted there and started thinking about the times I've been required to use it. I try to avoid it within animations because I had a short 10 frame animation that caused the OnEnable to fire in each frame. The instigator part can be abused with OnEnable (in a good way) to force people to do things, like enter/exit stations or drop objects.
Oh I see what you mean
time to kill myself again XD
Why cannot VRC update their VRC_"skript" guides with examples and not just 1 word or link to another scrip that says nothing, very bad documantation on the Manual page. Most of what Cyan is saying should be written down, the same with those small interesting facts popping up.
How do you create something? Read the manual. What manual?
I would like to have someone who has some understanding who cares for this update the manual page and then you can just link to the documentation every time someone asks for it instead of writing it, and have the Unity packages linked on the Manual as guides and examples
Maybe some default setup pictures
?
now you need to test if it breaks at some point :p
testing time
what did you do? or what are you testing?
oh ok, i assumed you had asked for help above and explained it already so was lazy to scroll up
was reading your messages out of context
I'm at work so cant go in game
i have been for about a week now but youd have alot of reading scrolling to do
oh XD
I went to the cathedral/church one
and assumed you made all the other ones
could pop ingame for a moment, still working on my UI right now :p
if you want to test stuff
i made the Hidden Forbidden Holy ground and the Aqua Capital Mac anu
sec uploading test build
with the bikes you could ride before?
its the city but the imoq one not the gu one
oh i see
any time i see forbidden holy ground in game I'm always expecting Tri-edge to appear
lol
and data drain xD
well if you know kyo then you may have that happen, i made him triedge with blades and data drain
my world is currentl 391 mb 😭
no way mine will ever reach 6mb though XD
the size of my world makes sense for whats in it 😛
My map is like 1 plane and it's still 23 mb
the content justifies the size
see you in the world :3
well, its kinda a game though so your pardned
It's probably oversized but I don't care lol
😁
i will do crunch compression on textures when im done though
so hopefully that'll help
That should help a lot
i think textures make up like 70% of my world size
It's insane how much it can bring down the size. I've seen textures go from 6 megabytes to 68 kilobytes.
I might need to re-atlas the entire world though
and increase max size from 1024 to 2048
to cut down on draw calls
full world right now isnt hitting 90fps
although i'll try optimising the npc's first and see if that helps
Ye that would help alot
is there a way to enable/disable pickup with send rpc
Send rpc, no. You can however turn off the collider and you will not be able to pick it up.
ty
Just thinking...there isn’t a way to apply FinalIK to station animations is there?
To players feet etc
I haven’t tried making a station controller that is complex
I don't think so unfortunately
Hey, I have a question about triggers. It's really hard to explain it simply, so I'll try to give you an example.
Let's say we have users A and B sharing the same instance. On the other end of the world there's a specific item that is deactivated for everyone unless someone enters the room where the prop is supposed to be, then it becomes visible locally for those who entered that room.
Now, the big problem is, I need to make those items appear for everyone else (particularly, user B) by using OnExitTrigger or OnEnterTrigger while only user A can see the prop in his hands.
Well, you are talking about Local Triggers, those activate only for the client, though if you want to broadcast it to a certain group of players then it is a but harder. I do not know if the object sync will work with the mesh both turned on and off.
Or it that may be the answer, that the mesh is turned off and not the object
You could make an "advanced" animator that activates a certain direction for objects to appear for players choosing a certain team or color.
But you will have to make an animation for each object with this setting, but you could easy prefab it and it would bot be that difficult later on.
Animations might be a bit too much for now. There are about 50–70 unique props, and doing that may require a lot of time.
I already tried applying triggers for disabling them locally for those who are far away and enabling the props for them when a player drags the item out of the hidden area, but it didn't work out.
Well, it will be harder to make a trigger system for each and every object, since you cannot copy paste that without changing the reference objects on each of them, if you have an animation with an Animator it only looks for certain hierarchy and will change the values if the props have them in the same place. Witch is mostly copy paste. But you will still need some type of triggers on it to detect the changes.
Well, we aint getting far are we? :p
You need 1 item to show up for everyone when taken out of a room
But stay hidden for everyone but the persons going into the room?
Ye was thinking about that
You can do that
Broadcast for global and broadcast for local
I need to hide all the evidence that is in the Evidence Room, but what I don't know how to do is, enabling the evidence.
I may need to take another look at the list of triggers.
You only need those settings
The rest should be up to you with collision triggers and buttons and such.
I think Buffer once with Master or Owner is good enough for the Global and Local is Local brooadcast
If someone will join the instance late they trigger the latest trigger for themselves
The rest is triggered/synced/activated from the Master or Owner of the Object to everyone
Hmm... People really like switching roles; besides, it's always hard to determine who's the Master in a public instance with 20 different people.
Ye, so you could make an button to take the ownership of all items
The best fitted would be a high performance PC with stable network since it will most likely not screw up one of the trigger events
Every pickup item changes owner to the one who picks it up if i remember correct
Master is set to the one who made the instance and then randomly elected if the Master leaves
Is it possible to activate OnDrop for others if the prop is disabled for other people?
I mean, if you hold an object and then drop it, but only you can see it while you're holding it.
You. An make it Owner broadcast since the owner can see the object
Just my thought
How exactly do you send the broadcast?
Oh its in the trigger setting
I think pretty much everything except for local is a broadcast of some sort
If the conditions to activate a trigger are met on the owner's client, and it's a broadcast trigger, then everyone will see the results. Likewise if the conditions are met on everyones client, and it's an always trigger, then the same trigger will be activated multiple times, depending on how many people are in the instance. So you could have one person doing a thing, and then another person observing it, and if you're not careful the person observing would activate triggers too, causing the thing to happen twice on both
Wow, why is this not in the Manual
because all the good stuff is discovered, shared, and documented by players
Shame it's not all centralized like a wiki though
Is there a difference between "Always" and "AlwaysBufferOne"?
yes, owner, master, and always triggers will activate for late joiners all the past times they've been activated. So if you press a button 5 times, then someone joins, they will immediately be told to activate that trigger 5 times. BufferOne means it will only activate one time, and unbuffered means that late joiners don't get anything at all
Hm. I see.
I just spent the last 10 minutes writing down a huge list of actions in this system, and I just figured out what was probably wrong.
Okay, okay, okay
Here's what I just wanted to say
"Well, so far, I made a system that is supposed to work like this:
- Users A and B enter the world, all of the evidence is active, but it immediately gets deactivated by a huge trigger that disables all of these props on collision;
- User A goes through a metal detector in the hallway on his way to the Evidence Room;
- {All the evidence gets activated and the trigger deactivating the items gets disabled} locally only for user A (or whoever enters that area);
- User A grabs the prop and goes back;
- On his way out of the evidence room, he goes back and... that's where I realized OnExitTrigger won't work because THERE IS NO TRIGGER, as it is disabled for user A...;
- User A goes through the metal detector, nothing's changed yet because its sole purpose is to enable all the evidence and remove that one trigger;
- User A steps on the ground in the courtroom and the trigger responsible for deactivating hidden items appears again (only for user A)."
Step No. 5 is where the object had to appear for user B in this case.
I'm gonna use another trigger that will be always enabled for everyone.
Is there a reason why everything needs to get deactivated when people are not near them? I can't imagine performance would be that bad unless you're talking upwards of 500
Yeah, there are so many props some people reported having 50 FPS instead of 90 while looking in that direction.
wait are props rigidbodies set to iskinematic? That'll make them not drop to the ground or collide with eachother, should help with lag a ton
Nope, just regular objects with custom models.
Overall, I think they might have up to 150K polys overall.
I mean, not individually, only if you combine them all together.
I suppose I could see that causing issues
Maybe have the activation/deactivation based on raw distance from player to prop instead of rooms?
Do we have those triggers?
i have proximity triggers for local only, for all my lightsources and some other stuff, i even have some that is pickup with proximity
but all those are Area based with collider triggers Enter
What "exactly" does the combat system do
Keeps track of health, gives you easy damage/heal triggers, respawns, and the whole drop to the ground thing
cyan made a good video about it, it's pretty straightforward
the combat system is rly glitchy tho
some ragdolls flop around, if u leave while damaged the damage UI stays, and the damage effect is a 3d object
just play the battle discs or steel and gold and whatever games
its rlly poorly made system but u can get an idea of what it does
VRchat normally makes rigidbodies on all your bones and they're iskinematic. Combat system death just turns kinematic off and gravity on
ya but needs colliders
No
