#development-advanced

1 messages · Page 32 of 1

tiny quest
#

If you know more, it's rude to not reach out and talk with him

dusky drift
#

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.

oak pollen
#

Anybody can chime in how are webpanels synchronised/instanced - per player only(local?) or globally synced?

shadow dock
#

it tries to sync the url but what loads up is local.

oak pollen
#

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?)

autumn plover
#

Wondering How can i set up the spawner thats in Toybox?

summer berry
#

It has a readme. He does a good job of explaining but I can help later if you still have questions.

autumn plover
#

well the prefab seems to have a missing script :Tc it might be due to me being a slighltly older version

summer berry
#

Nope, you probably didn’t import standard assets first

autumn plover
#

I dont bother to get that in

#

it breaks

#

its gamepad stuff seems to break

summer berry
#

Well, you need cameras, utility, and vehicles for toybox to work properly

#

I have never had any issues importing everything though

autumn plover
#

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?

summer berry
#

You don’t need them for this, so just don’t import cross platform input?

autumn plover
#

ehh

#

idk what is dependent on that

#

seems to be alot of the scripts just break

#

Why i do i bother

summer berry
#

?

#

I can’t read that on mobile and I’m at work so I can’t really test things.

autumn plover
#

its a crap part of code

#

left from a possible dev or just bad compatibility

autumn plover
#

@summer berry I think i fixed it!

summer berry
#

\o/

autumn plover
#

but

#

idk if i can tell if its workin or not

#

idk if my world updated correctly

summer berry
#

You might need to reimport toybox to fix script references. Also restart unity.

autumn plover
#

oh

#

i havent done that

#

well

#

logically now i have

#

i just need to open it

#

what do i need to do after that?

summer berry
#

What do you mean?

autumn plover
#

nvm :T

robust yarrow
#

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 😛 )

latent hemlock
drifting egret
#

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
#

that could be it, first pass doesn't write to the z buffer

#

no nvm it does

harsh nest
#

@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

latent hemlock
#

Well it’s worth a shot

hollow lotus
#

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.

summer berry
#

Yay, synchronization issues.
What all are you doing in the order it happens and what are the broadcast types for all triggers involved.

hollow lotus
#

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.

summer berry
#

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.

hollow lotus
#

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.

summer berry
hollow lotus
#

It's gonna take a while to read the whole thing, but it's giving me a few thoughts.

#

Thanks.

latent hemlock
#

ok so none of these suggestions helped, looks like the lightmap is drawing on top of my shader materials anyways

hollow lotus
#

Yeah, lightmaps can be annoying.

#

I like how everyone started working on lighting after that Home SDK video.

latent hemlock
#

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

latent hemlock
#

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

bright dragon
#

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)

latent hemlock
#

Iirc compute shaders require scripting support

bright dragon
#

i wonder how the shaders people been using lately work then

#

using attractors, rappelers and everything

latent hemlock
#

I’d have to see one

near bronze
#

They do it by having all the code, including attraction and repulsion, in the shader code itself

latent hemlock
#

Geometry shader?

near bronze
#

that sounds right, but I don't know enough about shaders to say for sure

bright dragon
#

i've heard it its geometry shaders, yes... but how to accomplish something like that? been wondering for weeks xD

latent hemlock
#

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

bright dragon
#

i heard about they using rigid bodies

latent hemlock
#

Doesn’t really explain though

bright dragon
#

yap, i really wish i knew how to explain, looking into this for so long and no results ç_ç

summer berry
#

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.

near bronze
#

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

latent hemlock
#

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

summer berry
#

Using render textures to store values for the shader to use

near bronze
#

I know it was shared among the dancing community quite a lot, you might find it there

latent hemlock
#

Render textures, that would certainly open up a ton of potential for me

#

There’s a dancing community?

near bronze
#

I think it mostly surrounds the streamers, idk if they have a specific discord

latent hemlock
#

I hate being around streamers while they’re streaming tbh

summer berry
#

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

latent hemlock
#

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

normal aurora
#

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

rough sleet
#

@latent hemlock You need to add a custom shadowcaster pass

oak pollen
#

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...

fierce python
#

^ stupid update, should be option to turn off/on

oak pollen
#

Was a good challenge for myself, learned geometry and tessellation pipeline stages..(and how messed quad topology is in unity)

proud meadow
#

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

hearty lantern
#

A buddy of mine has a world that does do it

oak pollen
#

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)

drifting egret
#

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

latent hemlock
#

@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

rough sleet
#

@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.

latent hemlock
#

thankfully I'm not

oak pollen
#

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

fierce python
#

Whats this? Shader or animation that takes values from audio something?

boreal flame
#

i saw an avatar where it would shoot out particles that spawned flowers and trees
how did they do that

latent hemlock
#

Does anyone here know how to detect a non directional light like the ones in avatar testing and the home?

drifting egret
#

@boreal flame was that Kittenji by any chance?

#

I know he did it

#

It's subemitters basically

boreal flame
#

ye but how do

drifting egret
#

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".

boreal flame
#

no like

#

theirs would spawn a tree and it would grow

#

and how u do it on collision

drifting egret
#

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

fierce python
#

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

boreal flame
#

but how do i do the collision part

#

the module says i need to give it things that collide

drifting egret
#

Yeah, set it to collide with Default layer lol

#

Set collision with world rather than plane, in the particle system's collision module

boreal flame
#

with 3d or 2d

drifting egret
#

Wot

boreal flame
#

nvm

#

do i have to change 'collides with'

drifting egret
#

Yes

boreal flame
#

ok i think i get it now

#

lifetime is large right and i use 1 for lifetime loss

drifting egret
#

Ye

boreal flame
#

is there a way to make it not collide with self/players

#

or does it already not do that

drifting egret
#

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

boreal flame
#

how do i remove player collision also

drifting egret
#

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

boreal flame
#

and how do i set up the layers

drifting egret
#

Re-read my earlier comments

#

I told you like a minute ago lol

boreal flame
#

ik

#

but idk what publish window is

drifting egret
#

For that, you need to add a VRCWorld prefab to your scene, in the publish window you set up the layers

#

The upload window

boreal flame
#

?

drifting egret
#

The place where you click "please upload my avatar now kay thanks"

#

I can't explain it any more clearly than that.

boreal flame
#

ya but it shows an error and thats it

drifting egret
#

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

boreal flame
#

then i remove

#

?

drifting egret
#

Y

boreal flame
#

also how do i make it so that

#

they dont disappear immediately when i stop gesture

drifting egret
#

Particle system needs to always be active, then

#

But the emission rate set to 0 or the emission module off

boreal flame
#

but then its going to emit trees still

#

oh ok

drifting egret
#

Then you activate the emission module in a gesture

boreal flame
#

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

drifting egret
#

Wut

#

There is a gravity option

#

It's a number between 0 and 1

boreal flame
#

and it also has a player layer so ima use that

drifting egret
#

Player layer doesn't work probably

boreal flame
#

ok so how do i set up the subemitter thing

#

do i just make an inactive particle system object

#

and use that

drifting egret
#

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.

boreal flame
#

kk

#

i think i set it up tho but now to get flowers to grow

#

its not spawning anything tho

drifting egret
#

Subemitters can only use Burst Emission

#

So no emission over time or distance

boreal flame
#

ohh ok

#

so how do i get it facing away form the surface

drifting egret
#

Dunno

boreal flame
#

and to spawn different flowers

proud meadow
#

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

near bronze
#

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

near obsidian
#

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

near bronze
#

ehhhh

#

that's why you do it on a duplicate

near obsidian
#

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

near bronze
#

now that's weird

#

you sure you left the animation component on the base avatar empty?

near obsidian
#

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

near bronze
#

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

near obsidian
#

uuuuggggghhhhh

#

i hate unity

near bronze
#

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

near obsidian
#

The first avatar is the one that's broken so that's not an option

near bronze
#

no I mean bring in a fresh avatar and copy over the transforms from that onto the one you've already been working on

near obsidian
#

a lot of bones too, not doing that lol

near bronze
#

that's pretty much it

near obsidian
#

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 🤞

proud meadow
#

Or open a backup of an old scene file

near obsidian
#

where does it save backups?

proud meadow
#

By doing save as regularly :-p But if you do unity in a dropbox, dropbox lets you download old versions

near obsidian
#

I saved it before it broke, but apparently it auto saved at some point after cause when I reopened it was broken

proud meadow
#

😦 good luck

near obsidian
#

it is what it is

fierce python
#

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.

oak pollen
silk horizon
#

I'd love to see how that's done :3

hearty lantern
#

Didn't you say you might put it on GitHub when you've refined it a bit?

oak pollen
normal aurora
#

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

oak pollen
#

Other input? Im using _WorldSpaceCameraPos

normal aurora
#

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?

oak pollen
#

I'd reserve some pixels and write to them from the different cameras, but then each cam = +1 pass

normal aurora
#

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

oak pollen
#

Atm 1 does the maths, other is just pass-through to bypass memory block when reading and writing to the same tex

normal aurora
#

I was considering implementing game of life on this as a test heh

oak pollen
#

Yeah, i have an int material property and return some "init value" when that is 0.

normal aurora
#

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

oak pollen
#

Yup either textures or an algo in the same shader

normal aurora
#

admittedly it has been a while since doing a game of life simulation, but the last time it did not run this fast lol

boreal flame
#

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

dusky drift
#

they learn shader code and write it

boreal flame
#

ya ik but does anybody know of a few

dusky drift
#

Stuff like your example isn't easy to make, and likely custom made. I don't think you'll find those shaders anywhere.

boreal flame
#

rip

drifting egret
#

A 3D world?

#

You sure it's not a cubemap?

boreal flame
#

ive seen a few and a couple examples was an ocean and another was a city that would pan around

#

its not a texture

drifting egret
#

Those can look very convincing

#

Ah

boreal flame
#

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

drifting egret
#

Well, I have seen someone spawn a black and white old-timey city

#

And I've seen an Ocean Man avatar

boreal flame
#

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

dusky drift
#

Could also just be 3d models with some simple render queue magic

drifting egret
#

Yeah

boreal flame
#

no it wasnt a lot of people told me they used shaders only

drifting egret
#

Either way you do need to know quite a bit about shaders

#

You could do that with shader magic alone though

boreal flame
#

and they themselves did too

dusky drift
#

You can do it with shaders too, yeah. But that's quite complex stuff

boreal flame
#

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

dusky drift
#

If you want to figure it out, break it in pieces and google them individually

boreal flame
#

idk what 2 look up other than shader tutorials but those are 2 basic

oak pollen
#

Complex stuff, stencils + layers

boreal flame
#

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

dusky drift
#

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

boreal flame
#

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

oak pollen
#

Doing with pictures is ez, geometry though...

boreal flame
#

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

proud meadow
#

The principle there is just stencils and doing things in the correct order using render queues

drifting egret
#

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.

normal aurora
#

this ☝

drifting egret
#

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

normal aurora
#

ZTest Alwa-- yep

#

I don't think I have seen one which completely removes the real world either

#

except

drifting egret
#

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

normal aurora
#

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

drifting egret
#

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.

hollow horizon
#

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

boreal flame
#

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

autumn flame
#

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

near bronze
#

You can change a particle system to be a mesh, yeah. In the renderer tab

autumn flame
#

Doesnt that just render the particles on a mesh? Particle systems elude my understanding

near bronze
#

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

autumn flame
#

Well, that was a much simpler solution than I expected it to be, thanks

coarse kraken
#

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?

near bronze
#

no, istrigger colliders do not interact physically

coarse kraken
#

Is there any way I'd be able to do that?

near bronze
#

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

coarse kraken
#

Alright, looks like I'll be messing around with that then, thank you

summer berry
#

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.

near bronze
delicate harness
#

anyone know how to do gpu particles in vrchat?

rose cloak
#

Question: How do I make a trigger that can be picked up and able to be interacted with? Example: A handheld game show buzzer.

summer berry
#

Pickup with on pickup use down/up?

#

Or you can make something vr only and put an OnInteract button on it.

rose cloak
#

Something that you can click to pick up and it stays in your hand, and then the left mouse button activates the trigger.

summer berry
#

Then my first suggestion. Make an object. Make it like a normal pickup and then add the OnPickupUseDown to do the action you want.

rose cloak
#

Works perfectly! Thank you for your help!

storm vessel
#

Hey has anyone played around with the WebPanel bindings at all? Was wondering if anyone knew the syntax for VRCSDK2.VRC_Trigger.TriggerCustom

normal aurora
#

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.

storm vessel
#

So what about VRCSDK2.VRC_Trigger.Trigger then?

normal aurora
#

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

storm vessel
#

Its no big deal for me, ill move my ui outside of the web entity

#

Just saw thoes calls and was curious

normal aurora
#

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

storm vessel
#

Ah yeah lol same

#

Oh well better mock up some stupid thing in blender with buttons.

normal aurora
#

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

normal aurora
#

@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

oak pollen
#

@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

normal aurora
#

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

oak pollen
#

Wasted too many hors trying to do it with single buffer not realizing it was a memory block...

normal aurora
#

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

oak pollen
#

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

normal aurora
#

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

oak pollen
#

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...

normal aurora
#

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

oak pollen
#

It might be fussy on the format/encodings/framerate since no control of selection of those for now

#

Try checking logs

normal aurora
#

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

oak pollen
#

Ouch, also a fun thing was that livestream player liked to crash on slow wifi but all good on cable 😄

oak pollen
#

Ok, I'm at a loss, my cams don't work even for friends... (added a guy rejoined world, nada) >.<

normal aurora
#

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

oak pollen
#

Nvm, for cameras, gotta toggle the component and not the game object

kind ether
#

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.

storm vessel
#

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.

kind ether
#

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 😛

storm vessel
#

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

kind ether
#

Oh so that it can be displayed in game?

storm vessel
#

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.

kind ether
#

Oh right! Because the going to worlds thing does function.

#

That's a nice idea there.

storm vessel
#

yee

#

That trigger binding not working made it a bit more annoying but hey, its still doable

kind ether
#

You're also using GoToRoom for this?

storm vessel
#

yeah

kind ether
#

Neat :]

storm vessel
#

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

kind ether
#

Hahah people'd probably like it :3

storm vessel
#

yeah lol

#

it will get there

#

Hopefully tomorrow! Its bed time for me at least. Dat 12:30 am

kind ether
#

Haha yeah. That's world development. Just one more change!

#

Night then o/

boreal flame
#

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

hearty lantern
#

It won't move with your head because it is a world particle

drifting egret
#

Which makes sense

#

It might appear like it's rotating up/down in the editor, because the editor "cheats" while simulating particles.

silk horizon
#

anyone able to help me understand linking ui buttons to custom triggers

boreal flame
#

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

shadow dock
silk horizon
#

hankyou i got it

storm vessel
summer berry
#

That looks like what HardLight made with his Traveling Elevator world.

kind ether
#

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.

kind ether
#

@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.

kind ether
#

@solemn sandal what's this 1000's of triggers soft-crash bug? It's not related to the ownership issue above is it?

solemn sandal
#

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

kind ether
#

🤔 Aha. I've definitely got large amounts of triggers happening. To the point where I use editor scripts to generate them.

solemn sandal
#

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

kind ether
#

Haven't tried avatars. But yes everything else happens.

solemn sandal
#

You should try

#

it's actually fun for the first couple minutes

kind ether
#

But it seems pretty reliably to be when the instance owner leaves. Not really any other players from what I can tell.

sharp burrow
#

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

solemn sandal
#

Yes

#

That's is the major trigger

kind ether
#

Haha, same for shrudingers teleporters that I had set up going haywire and tping you infinitely.

solemn sandal
#

It also happens when someone leaves

kind ether
#

😮

#

So other than, reducing number of triggers have you found remedies? Like trying to spread out object ownership?

solemn sandal
#

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.

kind ether
#

Mmmh,

#

What number roughly are you on now that is stable-ish?

#

(HA this game stable)

solemn sandal
#

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

kind ether
#

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.

solemn sandal
#

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"

kind ether
#

Got it. Just to check, are you enabling/disabling the game objects they're on often?

sharp burrow
#

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

kind ether
#

That seems to cause a shitstorm of issues too.

sharp burrow
#

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

kind ether
#

Personally having zero issues with loading. It's when the instance owner leaves it goes unusable.

solemn sandal
#

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

kind ether
#

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.

fast yarrow
#

Anyone here know how I could edit Flat Lit Lite Double Sided so the texture on the back is flipped horizontally

kind ether
#

If I make the instance though and between 10-16 join, no issues.

#

Even if they join and leave.

solemn sandal
#

Also to answer, a lot of my triggers do enable or disable meshes and colliders

#

I've started to avoid changing object states outright

kind ether
#

Ok so you've also switched to toggling the components instead.

solemn sandal
#

That's not because of the bug, that's more of a lag thing

kind ether
#

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

solemn sandal
#

Fuck those loops.

kind ether
#

For example having a toggle button in the form of 2 objects.
A (interact) -> B (interact) -> A

solemn sandal
#

I have a friend who loves showing me how bad my map is by forcing them.

#

On EVERY god damn button XD

kind ether
#

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.

solemn sandal
#

She did that too

kind ether
#

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.

solemn sandal
#

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?

kind ether
#

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.

solemn sandal
#

Well, i'll be going this route later

kind ether
#

Best of luck 👍 do let me know if you find out anything

#

Meanwhile I'm waiting on windows updates to even begin testing ._.

rocky python
#

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?

near bronze
#

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

boreal flame
#

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

hearty lantern
#

Don't ask the same question in multiple channels, it's against the rules

warm niche
#

can anyone recommend a good realtime stitching to record and stream 360 video with multiple cameras synced for amd cards?

near bronze
#

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

eternal agate
#

So I’m looking at VRC_ToggleProps

#

Does anyone know if it’s at all possible to reset the prop with another animation?

near bronze
#

Depends what you mean, you could always just have two gestures both activate the same animation

eternal agate
#

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

near bronze
#

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.

eternal agate
#

I see

near bronze
#

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

eternal agate
#

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

near bronze
#

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

eternal agate
#

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

near bronze
#

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

eternal agate
#

If I could just have some kind of state machine 😂

near bronze
#

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

eternal agate
#

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

near bronze
#

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.

eternal agate
#

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

near bronze
#

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

eternal agate
#

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!

near bronze
#

good luck 😃

drifting egret
#

I know there's a way to have a toggle that always goes from off to on

#

That would sync a lot better

eternal agate
#

Holy shit Phasedragon the particle trigger thing is so cool!

near bronze
#

yes, yes it is 😛

eternal agate
#

I don’t know what I want to do with it

#

But I’m quite a fan!

drifting egret
#

I have a lot of ideas on how that could be used

#

I just can't think of any ways I could use it

near bronze
#

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

eternal agate
#

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?

near bronze
#

possible, but it would have to be super oversized

eternal agate
#

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

near bronze
#

nope, just particles. That's the unfortunate part

drifting egret
#

Yeah

eternal agate
#

Damn

drifting egret
#

It's not like a full-on trigger

#

Would be neat

eternal agate
#

I wish I could trigger sounds with it

#

Having a piano gesture would be amazing

near bronze
#

maybe if they let us use vrc triggers on avatars one day ¯_(ツ)_/¯

eternal agate
#

God I hope so

#

I really really hope so

#

Even if they made a different one with more limitations

drifting egret
#

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

near bronze
#

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

drifting egret
#

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

boreal flame
#

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

eternal agate
#

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?

drifting egret
#

They could but good luck with that

eternal agate
#

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

boreal flame
#

ok so

#

when i try to join my eye mesh with ym skin mesh

#

it makes materails break

drifting egret
#

Are their UV Maps named the same?

boreal flame
#

do they have to be

drifting egret
#

Yes

#

Otherwise you'll end up with two UV maps and that will cause the issue you described

boreal flame
#

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

proud meadow
#

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.

warm niche
#

can anyone let me know what is the button A in oculus controller as what joystick key in the Onkeyup and Onkeydown ?

summer berry
#

Look up the steamvr joystick input names. Can’t link right now.

eternal agate
#

Whoa, PhaseDragon, I can do WAY more with this than I anticipated

#

I’m a fan

warm niche
#

@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

summer berry
#

Supposedly it does work

warm niche
#

yeap but looks like Aev doesn't know about that yet

summer berry
#

Joystick button 9 is apparently jump.

warm niche
#

what could it be A and X?

summer berry
#

Read the link

warm niche
#

saw it

#

A = button 1
X = button 2

summer berry
#

Remember to check for the differences for vive and windows mixed reality

warm niche
#

🤔 it will be some trouble

warm niche
#

well after testing it doesn't exixt in vrchat

eternal agate
#

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?

drifting egret
#

@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.

eternal agate
#

Aha, makes sense

drifting egret
#

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

eternal agate
#

Thanks :)

drifting egret
#

It's possible with shaders but not super easy

harsh nest
#

@eternal agate google unity wireframe peojector

#

however projectors are only usable in worlds not on avatars

eternal agate
#

Oh hey, this is wonderful! Thank you!

proud meadow
#

@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

harsh nest
#

You can probably use that wireframe shader on cone like mesh to simulate the projector shape

hearty lantern
#

I had no idea there is a public shader that simulates the flash light, awesome!

proud meadow
#

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.

hearty lantern
#

Completely agree, the things some of my friends come up with amazes me.

warm niche
hearty lantern
#

That would require changing your animator override controller on the fly which isn't possible.

signal linden
#

could you have different animator overrides for sitting and standing mode?

#

just toggle in between them in the menu

proud meadow
drifting egret
#

@signal linden yes, you do have different slots for standing and sitting, but they're auto assigned by the game

harsh nest
#

@proud meadow oh wow that's cool, I can't figure out how you did that :c

harsh nest
#

@proud meadow are you raycasting from the quad until you hit something ?

proud meadow
#

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.

proud meadow
oak pollen
#

Pretty limited because its using a copy of what you see on screen, with cameras you could do real 3D scanning

harsh nest
#

@proud meadow Woa that's clever, thank you

eternal agate
#

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?

near bronze
#

You need to attach it with a fixed joint or ikfollower, look up how to do world particles in vrchat on youtube

silk horizon
#

Don't know why it's not embedding but ya I'm just gonna repost this for that question

eternal agate
#

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

silk horizon
#

Container? Do you mean parent or you have a game object with both on it

eternal agate
#

Parent

silk horizon
#

Also be sure the empties on the bone and parent of the particle system are in the correct offset

eternal agate
#

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

silk horizon
#

I see

eternal agate
#

But again, only in the mirror

silk horizon
#

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

eternal agate
#

Yeah, I’ll keep playing around with it

silk horizon
#

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

eternal agate
#

I have an idea of something to check. I’ll let you know if it works

fierce python
#

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

eternal agate
#

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

eternal agate
#

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

silk horizon
#

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

eternal agate
#

... I think I figured it out

#

I'm an idiot lmao

eternal agate
#

... I forgot to check "IsTrigger"

#

It'll work now

eternal agate
#

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

near bronze
#

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

eternal agate
#

Yup, that was my mistake

#

I guess I missed that part

#

Sorry for the massive spam

near bronze
#

nah I never mentioned that in a video, I'm surprised you figured it out yourself

eternal agate
#

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

near bronze
#

Yeah, it's because of the way they do mirrors. It must be a duplicate that's already on rigidbodies or something

eternal agate
#

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

warm niche
#

Can someone explain why socket.io is giving me a 403 error on my website

#

blocking easyrtc from working

solemn sandal
#

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.

solemn sandal
#

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.

summer berry
#

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.

frozen pike
#

Been thinking on this too

simple flint
#

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

silk horizon
#

Never seen or heard of that

lethal girder
#

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

simple flint
#

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

lethal girder
#

oh nice, does that collider has 'trigger' checked? or not? maybe try checking it

#

then change the OnAvatarHit to OnEnterTrigger

simple flint
#

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

lethal girder
#

yeah. that should avoid glitching

simple flint
#

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

lethal girder
#

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

simple flint
#

the floor i enable has it's own on avatarhit to teleport people

lethal girder
#

yeah onAvatarHit only works with colliders with 'trigger' unchecked.. so if you check the 'trigger' you will use the onEnterTrigger instead

simple flint
#

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 😃

lethal girder
#

oh nice. looking forward to your Escape room release

simple flint
#

well technicly it's the second

lethal girder
#

what's the name of first one? is it public?

simple flint
#

i already made a first one, that's public "Olphis escapeGame"

lethal girder
#

oh thanks. will check it out

simple flint
#

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

lethal girder
#

well, most of us here touched Unity just because of VRChat. its just great the community is helpful

#

ok note taken 😃

simple flint
#

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

silk horizon
#

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

near bronze
#

It shouldn't. I think if you put objectsync on it they will but I'm still not sure what all that does

silk horizon
#

That's what I'm asking

#

I need that to work

near bronze
#

Is there a reason you can't use a global trigger to enable it?

silk horizon
#

The item to follow is locally owned by each player

near bronze
#

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

silk horizon
#

Hmmm

#

I can do that

#

Sorry I'm so vague

near bronze
#

So the one on each player locally is the real thing and the one they see on everyone else is just a spawned duplicate

silk horizon
#

Trying to develop something special

near bronze
#

I could really use some documentation on objecysync

summer berry
#

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.

near bronze
#

So how would you spawn an object then immediately take ownership?

summer berry
#

I haven't tested this, but I think that the person who initiates the spawn is the owner of the object.

near bronze
#

that would be nice

summer berry
#

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.

near bronze
#

Wait are you saying spawnobject local would still spawn an object to other players?

summer berry
#

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.

near bronze
#

oh you mean the action itself is local, not the trigger type

summer berry
#

Uh, can you explain more?

shadow dock
#

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.

summer berry
#

(Looking at propspawner logic, it wouldn't work if master was the owner as nothing would sync properly)

shadow dock
#

actually i might be wrong

summer berry
#

Master has ownership of all synced objects in the beginning but that's not a spawned object.

shadow dock
#

im trying to remember what happened with my light spawners in my studio.

near bronze
#

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

summer berry
#

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.

near bronze
#

Yeah, I get what you mean in any case

summer berry
#

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.

near bronze
#

what do you mean by waiting on a second event to fire?

summer berry
#

SetGameObjectActive -> OnEnable

#

Basically, anything that isn't ActivateCustomTrigger

#

I think

near bronze
#

I get why it's inefficient and there are better ways, but why is it inherently a bad idea?

summer berry
#

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.

near bronze
#

Oh I see what you mean

silk horizon
#

time to kill myself again XD

fierce python
#

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?

silk horizon
#

clearly the documentation is satire

#

holy shit it worked

fierce python
#

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

silk horizon
#

YEEEEEEEEEEEET

#

i f!@%ing did it

near bronze
#

?

fierce python
#

now you need to test if it breaks at some point :p

silk horizon
#

testing time

robust yarrow
#

what did you do? or what are you testing?

silk horizon
#

:3

#

i cant tell yet gimme a min or find me in game

robust yarrow
#

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

silk horizon
#

i have been for about a week now but youd have alot of reading scrolling to do

robust yarrow
#

oh ok

#

you made the .hack worlds right?

silk horizon
#

mhmm

#

well one of them

#

im not quantity im quality

#

lol

robust yarrow
#

oh XD

#

I went to the cathedral/church one

#

and assumed you made all the other ones

fierce python
#

could pop ingame for a moment, still working on my UI right now :p

#

if you want to test stuff

silk horizon
#

i made the Hidden Forbidden Holy ground and the Aqua Capital Mac anu

robust yarrow
#

cant remember which one aqua capital one is

#

is that the huge city?

silk horizon
#

sec uploading test build

robust yarrow
#

with the bikes you could ride before?

silk horizon
#

its the city but the imoq one not the gu one

robust yarrow
#

oh i see

silk horizon
#

done uploading

#

fml this map is 3 mb

#

XD

robust yarrow
#

any time i see forbidden holy ground in game I'm always expecting Tri-edge to appear

silk horizon
#

lol

robust yarrow
#

and data drain xD

fierce python
#

been working on a map that is 6mb in size now for over 2 weeks

#

:p

silk horizon
#

well if you know kyo then you may have that happen, i made him triedge with blades and data drain

robust yarrow
#

my world is currentl 391 mb 😭

fierce python
#

started from scratch

#

you need to lower that :p

robust yarrow
#

no way mine will ever reach 6mb though XD

#

the size of my world makes sense for whats in it 😛

drifting egret
#

My map is like 1 plane and it's still 23 mb

robust yarrow
#

the content justifies the size

silk horizon
#

see you in the world :3

fierce python
#

well, its kinda a game though so your pardned

drifting egret
#

It's probably oversized but I don't care lol

robust yarrow
#

😁

#

i will do crunch compression on textures when im done though

#

so hopefully that'll help

drifting egret
#

That should help a lot

robust yarrow
#

i think textures make up like 70% of my world size

drifting egret
#

It's insane how much it can bring down the size. I've seen textures go from 6 megabytes to 68 kilobytes.

robust yarrow
#

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

fierce python
#

Ye that would help alot

silk horizon
#

is there a way to enable/disable pickup with send rpc

summer berry
#

Send rpc, no. You can however turn off the collider and you will not be able to pick it up.

silk horizon
#

ty

sand canyon
#

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

drifting egret
#

I don't think so unfortunately

hollow lotus
#

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.

fierce python
#

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.

hollow lotus
#

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.

fierce python
#

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?

hollow lotus
#

Yeah, at least one.

#

You've seen the Courtroom, right?

fierce python
#

Ye was thinking about that

#

You can do that

#

Broadcast for global and broadcast for local

hollow lotus
#

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.

fierce python
#

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

hollow lotus
#

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.

fierce python
#

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

hollow lotus
#

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.

fierce python
#

You. An make it Owner broadcast since the owner can see the object

#

Just my thought

hollow lotus
#

How exactly do you send the broadcast?

fierce python
#

Oh its in the trigger setting

near bronze
#

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

fierce python
#

Wow, why is this not in the Manual

near bronze
#

because all the good stuff is discovered, shared, and documented by players

#

Shame it's not all centralized like a wiki though

hollow lotus
#

Is there a difference between "Always" and "AlwaysBufferOne"?

near bronze
#

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

hollow lotus
#

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:

  1. 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;
  2. User A goes through a metal detector in the hallway on his way to the Evidence Room;
  3. {All the evidence gets activated and the trigger deactivating the items gets disabled} locally only for user A (or whoever enters that area);
  4. User A grabs the prop and goes back;
  5. 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...;
  6. 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;
  7. 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.

near bronze
#

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

hollow lotus
#

Yeah, there are so many props some people reported having 50 FPS instead of 90 while looking in that direction.

near bronze
#

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

hollow lotus
#

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.

near bronze
#

I suppose I could see that causing issues

#

Maybe have the activation/deactivation based on raw distance from player to prop instead of rooms?

hollow lotus
#

Do we have those triggers?

fierce python
#

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

silk horizon
#

What "exactly" does the combat system do

near bronze
#

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

boreal flame
#

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

silk horizon
#

I mean to the characters

#

I know it does something with rigidbodies

boreal flame
#

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

near bronze
#

VRchat normally makes rigidbodies on all your bones and they're iskinematic. Combat system death just turns kinematic off and gravity on

boreal flame
#

ya but needs colliders

silk horizon
#

No