#development-advanced
1 messages · Page 45 of 1
how come is not whitelisted
do you mean whitelisted by vrchat?
...
if yes
then how i can make my player follow way paths?
https://docs.vrchat.com/docs/whitelisted-world-components
waypoint controller isn't whitelisted
The following is the complete list of scripts usable within worlds. Components that are not in this list will not work. ## Unity Components - WindZone - VideoPlayer - Tilemap - TilemapRenderer - Terrain - Tree - SpriteMask - ParticleEmitter - EllipsoidParticleEmitter - MeshP...
Granted, the whitelist tends to be outdated.
Use Standard Asset waypoint, that works
^
can you name some whitelisted asset that can do that protocol
whit out vrchat limitations?
what?
a Standard Asset?
was just about to link that ^^'
so i can find some tutorial about that asset how to make waypaths?
Look at the example scene
alright then will do thank's a lot
👍
Thanks @proud meadow
This is a prefab that shows one way of how to use the waypoint system. It makes an object look ahead towards a point further along on the waypoint circuit and then when you move the "speed" object forward on the z axis that will determine the speed of the waypoint tracker
yao: I actually have question for hackspanner but I don't think he's here. A while ago he contributed some code to the leap motion codebase for a "matcher" for gestures for the openvr driver for the leap motion Orion driver set
I had one for all of 3 days but I've been asked by someone randomly about it and sent them to the active repo. The question is, I wonder if that's even necessary anymore
So for the most part, you cannot use scripts inside of a VRCWorld right?
Because i need to know if there is a way i can make a gameobject follow the player
without scripts
You cannot use your own custom scripts
but there is a few scripts that a whitelisted
Funnily enough you can do player Tracking without even using any non-native unity script
I have a prefab for that one second
mkay
at the bottom of the page
hmm
so just an idea of what i was trying to do, I wanted the particles to be affected by player movement and their location https://gyazo.com/245db54c1898efe4c48a84b873ce0451
If you want to have one object follow another you can use the "Standard Assets" script FollowTarget.
Set a target, set the offset to 0 and voila. The object with the script now follows the target
Yep, that should be possible
I'll see what i can do
as of right now, the particles are being controlled by a script
You can also just reparent the sphere to the PLAYER_TRACKER object
Well that wouldnt be possible then
Hey guys... I've made an avatar with an inventory of items selectable fro mthe emotes menu using a method I thought worked... but which did not, and I'm now looking for the easiest to implement workaround.
Basically, I've made Ash Williams from Evil Dead. I have a chainsaw which is always on his right hand, and a shotgun, a beer, and a Jacksonville postcard on his left. I also have a bunch of audio sources and eventually I will have particles as well, which need to be triggered with various gestures, and which ones are played should be controlled by which item is in Ash's hand. And so that I do not trigger these sounds unintentionally, I want them to only be able to be triggered when I make a fist.
The way I set this all up was I was working on the assumption that an animation could swap the customoverride in the standing slot of the VRC Avatar Descriptor.
So I made four emotes: Enable Chainsaw (default), Enable Shotgun, Enable Beer, and Enable Postcard. And each of these animatons swapped the custom standing override for its own. Then I made four copies of the gesture animations, and for Fist, I enabled the item and a toggle in the root of my avatar heirarchy which contains all the audio sources for that avatar.
And the root of the heirarchy is set up like so:
Chainsaw Enabled
- Audio Pull
- Audio Start
- Audio Rev
- Audio Quote 1
Shotgun Enabled
- Audio Fire
- Audio Quote 2
Etc etc.
Then the individual gesture animations try to enable the sounds, but unless their parent is enabled by holding the fist, they won't play.
Anyway, none of this works, except the chainsaw which is the default, because it appears VRChat reverts the Custom Override for the animator and/or the Sanding Custom Override to its default as soon as the emote is done playing.
And I know inventory systems on the emote menu exist. I found one by Xiexe, but I don't know what their limitations are. Like they can enable objects, but can they enable more than one object so I can enable the audio toggle object as well? And will it swap my gesture animations, or do I have to make a single set of gesture animations which attempt to enable ALL audio sources associated with that gesture, with the control over which ones actually get animated being delegated to my audio toggle objects?
@scarlet pagoda Are you using Behaviour.Enabled toggles currently? or a different method?
If you're just enabling something in the emote, it's going to revert back to the old state. That's just how Unity Animators with "Write Defaults" work (and that's what vrc uses). That's why you need some sort of latching system like a Behaviour.Enabled toggle.
I'd recommend looking at https://github.com/Xiexe/VRCInventorySystem. You just give it each of your "Shotgun Enabled", "Chainsaw Enabled" etc objects in a list, and it will generate emote gestures for you
it will move things around a bit in your avatar hierarchy though so you'll have to reformat some of your gestures. not really a good way around the reorganization
or else buy an index so you can use the gesture locking system that for some reason only exists on index, and use gestures to turn stuff on
I'm not using Behavior.Enabled toggles. I'm not even sure what those are... Unless you're referring to a special keyframe which disables the animator, which I'm aware of some methods using?
I guess I'll give that Xiexe script a shot, but I'm not sure if it's going to work for my needs. I'm concerned about the chainsaw for example. It needs to always be visible, but I also want to be able to toggle its behaviors. If I just drag it into that script I assume it will hide it. I guess I'll have to try it and look at whatever animations it generates and see if I can devise a workaround. Also it's clearly not gonna enable my audio toggles for me either, so I'll have to see if those can be added to the animations as well. And I guess I'll have to rework all my gestures to use a single set of them. That's a bit disappointing, because having unique gestures for everything meant I could animate the hands differently depending on which object was being held.
Yeah no you can't override your animator lol
The descriptor doesn't react to changes at all. All that happens is the override in it gets placed as the root animator in game.
And even then it's just the animations in it.
@drifting token You say the descriptor doesn't react to changes, but within Unity it appears to. The override changes when I play the animation. And in VRChat, when I trigger the emotes which have only a keyframe on them to change that slot, and nothing else, my avatar momentarily dips into the ground, so something is going on there. As for what, I don't have a clue.
I'll tell you
The emote is missing all the humanoid bone references so the Avatar is defaulting to a "bike pose" as it does during animations.
Nothing else.
It doesn't make any sense to be able to override your animator by just animating the reference in the descriptor since it isn't even used itself just the animations in it.
@scarlet pagoda
@drifting token "since it isn't even used itself just the animations in it"
That doesn't make sense. You can't use the animations within the custom override without accessing the data within it to gain access to them, which would be a "use".
Also, there are slots for both custom standing, and custom sitting animations, and VRChat swaps between these as needed. So it's clearly copying what's in those slots into the animation controller slot when you sit down and stand up. And it wouldn't make much sense for VRChat to copy that animation data to some new data structure when your avatar loads and access it only from there, so presumably it's pulling that data from those slots whenever it needs to.
Of course, something is clearly preventing my animation from changing what's in those slots, at least permanently. I suspect it is in fact changing them, but they're being reset back to the defaults when the animation finishes. That said, I can't prove that's what's happening. And I'm not sure it helps us in any way, since I suspect if I added a keyframe to disable the animator to prevent the reset, well that being the primary animator for my avatar, stopping it entirely... would likely be bad.
But what you say about the bike pose makes sense to me. Well, except the bit where Unity decides the best course of action when playing an animation that's missing keyframes for certain bones is to move them to a default pose instead of leaving them where they were. That bit makes no sense.
I meant that the animator override cannot be updated in-game at all because all it's doing is loading the animations from it into the default controller once
It does indeed swap the animator itself but only when you sit in a station that has an animation override. Otherwise all that's happening is it's swapping between two pre-determined sets of animations depending on whether you're in a station or not. Nothing more.
I'd wager the additional controllers you think you're swapping to don't even get uploaded with the avatar.
@scarlet pagoda
This is coming from experience making my own override when it was possible and a not insignificant portion of the avatar community trying to find a workaround like what you're describing would be.
It's simply not possible because that's not how that works at all.
Okay, well I downloaded Xiexe's plugin and I've tried that out and I guess I can make it work well enough for my needs without too much pain if I move my audio sources to be children of the props. Otherwise I'd have to try duplicating the objects and animations it created which may have hidden special keyframes I can't see so I can activate my audio toggles elsewhere in the heirarchy at the same time as I activate the props, and it shouldn't be too noticable the audio for the voice clips is coming from my hand instead of my mouth.
In other news... The next thing I'd like to be able to do is add a blood spray to my chainsaw. And I guess since I now will be able to activate and deactivate it from the emotes, I don't have to use fist to enable the audio clips and effects. So I could use that to trigger a blood spray. But... I was wondering... Is there a way to make a blood spray trigger automatically when the chainsaw contacts another player? I think I've seen something like this before. Though I'm not sure if it was a local effect which only the player being impaled could see, or global for everyone. I think it was global, which is why I'm interested in it.
Sub-emit the blood particle on playlocal colission
layer 10
you won't ever be able to see it unless they have a collider on them but the person being hit will
Hm... When I select sub emitter, I seen an option for enabling it on collision, but I don't see any place to set which layers the collison can interact with there? As for not being able to see it yourself, well that kinda sucks... I wonder though, could you perhaps place a collider on your own avatar, in front of it, at arm's length, around chest height, so the chainsaw emits particles for you as well when it hits that?
would be awkward if you wanted to cut something in front of you that doesn't bleed
Also I'm not totally clear on the whole "sub emit" blood particles on collision bit. From what I understand, a sub emitter is spawned when a particle hits something. So I guess you're suggesting I have particles which are invisible which spawn around the chainsaw, and when they touch something, it then spawns the sub emitters?
yes
if you already have particles on the chainsaw just add the functionality to those so you dont have to add extra systems
I suppose that's true about the not bleeding bit...
@drifting token Well, yes, but I don't, as it doesn't really make sense to have a chainsaw blade spitting out particles when it's not cutting anything.
Have you ever used a chainsaw? 😄
well yeah but that doesn't mean it doesn't look cool.
I wish I could make it spark when I try to cut metal but alas, I have only so many gestures. 😦
uh you can make it emit sparks on environment and blood on players
combo gestures and stop action tho
Oooh...
they're using xiexe's i doubt they want to additionally learn stop-action
otherwise I'd have plugged the script by now :v)
But how? Like I said, I don't see an option to specify the layer for the collision on the sub emitter.
set it to world
imo its easier to animate with stop action at this point than using that emote toggle script
then you can set the layer
I love learning new things, but Halloween is basically here and I want to have this ready for tonight, so stop action or whatever that is will have to wait for another day.
change that
if you do want to do stuff with stop-action at some point I recommend the script from my asset (;
change it to layer 10 for playerlocal and everything but layer 10 for environment
they probably dont have labeled layers
and the options dont show up in the dropdown there if the labels aren't set up afaik
Ah I see under collision... And yeah, I don't. But I played with that once. I have to like do something to tell the SDK I want to make a world for it to create them.
in the inspector there is a layers button at the top
That'll have to wait for another day I guess, if I wanna have my props working and blood sprays by 9pm world sparks will have to wait. 🙂
actually its just at the top of unity
there is a layers dropdown menu
you can edit layers
find layer 10 and give it a label
Yeah I've seen that, but I have no idea how that stuff is supposed to be set up.
you can only use 10 so theres no point adding any others for avatars
UIMenu on the way out :v)
Ah, so it's just layer 10 and whatever I name it doesn't matter?
yea
ugh are they still going to get rid of uimenu
What's UIMenu useful for?
nothing to the avg user
i was going to use it to make cross avatar animation packages
I use it a bit tho
vrchat ahead of the curve, planning to break things that i plan to make
I use it for my slave chair for flying but it's not necessary 🤷
how does it help the chair flying?
Wait, is layer 10 world, or playerlocal? And why did you say I can only use layer 10 if in one case I want to collide with player local and the other, with the world?
Oh wait. I see this now: "change it to layer 10 for playerlocal and everything but layer 10 for environment"
Though I still don't see why you said I can only use layer 10 if all those other world layers exist. If I recall there's also a mirror layer? Couldn't I make particles do something specifically if they collide with mirrors?
that could result in unpredictable behavior
Doesn't eveything? 😄
also no that doesnt work
mirrorreflection is only useful for cameras and those are obviously problematic on their own
Is there a faster way to add properties to the animation window than having to repeatedly click add property, and open up everything in that tiny heirarchy that comes up to get down to the thing you want to add a property for?
Or is there any way to make that tiny window bigger at least so I can see more of the thing, because it's ridiculous how small it is.
Okay after a quick search, it appears there is. You have to have the animation open, the record button ticked, and check the lock button on the top right of the window so it doesn't switch to another animation when you select an object in your heriarchy. Then you can click objects in the regular heirarchy window and set their parameters and it will add the peoperty if necessary and create a keyframe.
Is Xiexe's inventory remapper supposed to work with the enable animations on emotes, rather than gestures? Because I just set everything up with them in the emote slots, and nothing's working.
I think I may have found the issue. I had my objects all disabled by default because of how I originally set it up. I assumed the script would enable them as needed. But I guess it does that with the other objects it creates above them. At least, that's my guess. I'm uploading now to test my theory.
Yes.
If the parent object turns on and the child object it's meant to show is off, it won't show. xP
I got the props working last night. Xiexe's tool made it easy enough to set up, but he should add the ability to set a prop to disable certain other props, as it would make certiain things even easier. For example, in my case, all the props I have are held in the left hand, and I only ever want one to be active at a time. If more than one is active, my gestures will trigger the sounds for both, so I have to disable all every time I select a new one, which is less than ideal. I think I can modify the animations to do this, copying keyframes from one to another, though I'm not 100% confident it'll copy the special keyframes properly.
My next order of business is adding a blood particle shower to my chainsaw which I can trigger with the fist. I only want it to work when the chainsaw rev sound is active though, and I'm not sure I can use IK Follower for this as the last time I tried to use it it didn't work at all for Vive and Index users. They couldn't see their own particles. That means I'd have to use rigidbodies, but that's going to make things a whole lot more complicated. Or not. I'll have to try to duplicate the objects Xiexe's script created and duplicate the keyframes in the animation which enables the chainsaw and the animation that disables all the items, and hope there's nothing hidden from me that will prevent it from functioning the same way. And again, this would be a great feature for Xiexe to add... The ability to specify multiple objects for each inventory slot, so I can have objects on different parts of my heirarchy which are enabled or disabled when I trigger that inventory item.
your enable emote should disable every other object
how can I make a station/seat focus on the head position? So when someone clicks the station then their head will be inside the enter position of the station
@ me
there are some counter prefabs in the prefabs database pinned in #world-development - if you have the score in an animator as a float, you can use a shader based number display to display it, included with the counter
You know what would be really useful? A script which automatcially sets up rigidbody followers for whichever bones you specify in your model. I know how to do it now, but it's still more work to do it every time than it needs to be. Or I guess the VRChat devs could fix the IKFollower script so that it works properly for Vive and Index users so they can actually see their own particles when it's in use.
Unity 2018 has a component called constraints which will work much better than either rigidbodies or ikfollower
That's good to hear. I hope it's actualy whiteliested for us though!
Wouldn't see the point of upgrading to 2018 if not for better features
Will probably be whitelisted anyway
but there is a canny request for it
Today I'm working on making it so my chainsaw can spray blood particles, and I'd like to set it up so they splat when they land on players and surfaces.
I figure the way I need to set it up so I get the same effect as the Woopers and Nutters is to have my blood particles spawn sub emitters on collision, and have those sub emitter particles be invisible spheres that are unaffected by gravity, which have Rero's projection shader on them, with a blood splat texture.
The only thing I'm not clear on is how to set up the collisions to do this. Do I just set it to world? Or do I need to add that player layer... 10 I think it was? And tell them to collide with that AND the world?
I think that's the case, but I recall in our discussions earlier someone mentioned not being able to have the particle spray dependent on the chainsaw colliding with a player unless the player has colliders, but clearly what the Wooper and Nutter are doing is not dependent on players having colliders, so I'm a bit confused on that point. They are two different things I guess, making particles spray or not depending on collision, or making particle emitters spawn on particle collision... Or maybe they're not that different at all... In which case, I'm wondering how the Nutters and Woopers work on every avatar regardless of whether it has colliders.
It will collide with you locally but I dont imagine you would see the particles collide with other players
Though I haven't really done much with particles for over a year
so it may have changed slightly
But having it set to world collision with all layers set to collide is probably what you want
I know for a fact that I can see other players being affected when someone uses the Nutter avatar.
Yeah things may have changed since I last messed around with particles on avatars
@scarlet pagoda nutter butter is using a shader decal effect combined with the _CameraDepthTexture. You can set particles to collide with any layers btw... Player for other players and some people use UIMenu which lets you open your handheld menu and locally whack particles with it
@proud meadow I don't know anything about _CameraDepthTexture. I'm guessing it's a zbuffer, but what's the purpose of it in this context? Is it used to make the splatter block your vision? Cause I'm not looking to replicate that effect.
It's used to find the 3d position of each pixel on your screen so that the decal can be painted onto its surface
It's kind of like z buffer but drawn separately
The effect shows on players because it hits the floor below them.
Not because it hits their collider.
The depth effect covers an area above the impact.
Playerlocal collision only happens for the person being collided with.
The effect itself is done with a triplanar depth normal "projection" shader like the one here: https://imgur.com/a/FhkpmSC
@scarlet pagoda
@lyric iris can you give me the quick rundown on what i have to move on the button inventory to change it from rigid bodies to ik followers? Thanks in advance since im gonna go sleep.
@drifting token I'm aware of your shader, and that's what I was planning to use, but collision with the ground alone doesn't explain effects like this, where you can see the ground is unaffected:
So is that possible because he has some colliders in his head? And if not, how is that effect achieved?
But you said playerlocal collisions are only visible to the player they happen for...
I see. I was under the impression all colliders on a player were playerlocal colliders.
Well, if that's how the nutter works, then I guess that will be good enough for my needs.
Though I did just have an idea for an alternative method to using particle collisions, or one to supplement them....
I recently learned how to drop static objects in world space. It seems like it ought to be possible to drop a sphere with your shader floating where my chainsaw was when I triggered the fist gesture. So I could force it to be localized where I impale someone.
Yes but if I impale someone with my chainsaw, and the particles won't collide with PlayerLocal, and the player has no colliders in their chest, then none of them will spawn sub emitters at that location with the sphere which I would have your shader applied to that makes anything inside it take on the decal texture...
Just put a collider in front of you in your avatar root
Or maybe don't use collision for the initial particle spawning?
Have them spawn based on an emote instead?
Hm...
Yeah I could just spawn invisible particles without collision or gravity or any velocity where the chainsaw is when I'm holding fist, I guess...
And the blood particles with collision and velocity would collide with the world or additonal colliders on players.
And then those would spawn sub emitters for the splash.
Does anyone know hoe to make voice "Isolation"
example 2 rooms beside eachother, normally the audio bleeds into the other room
withouth changing the falloff for the ENTIRE world, how can i make each room have their own Voice ranges that dont leave the collider
you can't
hmmm.... if you occlusion culling will that cause players' voices to go away?
don't think so
I know if you accidentally toggle off your mesh on your avatar or do something else so it's completely invisible, your voice won't be heard
you can hear people in other rooms in the Pug even though they're occluded
I mean technically that's a bug...and a really bad one at that
Is there's a way to disable rendering of specific layer in main camera? Just like MirrorReflection. I need to make thing, that should not be seen in main camera, should not be seen in mirror, but should be seen in my custom render-texture camera. It seems, game overrides layers set on main camera in editor.
@proud meadow But which one would be the bug? Because if you disable voices by occlusion, then you won't be able to hear people behind you since everything behind the camera is occluded by default (if set up properly)
when your eye cones are also your ear cones
@stoic holly you cannot control what layers players see, but you can use mirroreflection and then shaders are able to detect whether or not they are in a mirror, and disable rendering. Poiyomis toon shader has a drop down for it in advanced settings I believe

I got triplanar particle decals working today with the particles I spawn from a sub emitter on collision, but I've still got one problem. The particles will collide with a quad I have on the ground in Unity, but they refuse to collide with my avatar.
I've gone into my layers menu and gave layer 10 the name "Player". And I see this layer is selected when I check the collider setting for my main particle emitter. But no dice.
And before you say particles can't collide with PlayerLocal... I 've just tested the Spider-Man avatar in game, and it has the same effect as the Wooper and Nutters, and lo and behold, it does in fact collide with and affect the player's whole body. If I am standing on the ground and I trigger the effect it goes only on their feet, and if I'm standing on a ledge above them, I can cover their whole body.
This would seem to disprove one theory I had which is that some of the particles with the effect are placed well above the ground and so affect their head. And I also tested this on a Shiba avatar which I know only has dynamic bone colliders on its hands, and no others, so its not the result of the avatar having extra colliders on it.
It's probably that some of the particles die on their own without collision and above ground while others collide with the ground for their death.
When you're on the ground the particles that would normally die above it hit the ground so the effect doesn't show above where they hit.
Otherwise if you're standing they die in mid-air.
As for playerLocal collision, you can hit yourself with it and you'll see it and the person you hit with it can see it but no one else can see you hitting anything with it.
That's the "local" part.
There is no layer for global player collision.
The only other option is the avatar itself has a collider in front of it that it hits (which is likely)
and easy to do.
If you hit an added collider on your own avatar with a particle everyone can see it.
The player layer has always behaved exactly like the walkthrough layer it will or at least should not collide with anything
Same with playerlocal actually
those layers wont collide with any other layers
Does it matter what I name these layers? And do I have to mess with the collision matrix at all? I mean I get you're telling me they won't collide, but I'm still curious as in researching it I see there is both a Player and PlayerLocal layer and I named layer 10 Player not PlayerLocal and I don't know if that would even make a difference. I also don't know if I'm supposed to be adjusting the collision matrix at all.
Also what layer are the particles even on? I can't seem to find any info on that.
changing the collision matrix wont have any effect in game
and it doesnt matter what the name of the layers is
its the order of the layers or number
I kinda figured that, but I thought maybe for the purpouses of simulation within Unity of what will happen, I should have it set right?
The collison matrix I mean.
It says that you need it setup but from my testing thats not true
VRChat ignores your collision settings
Would be super nice if we could have custom collision matrix though
@drifting token That's a good theory. I'll go test in the game now and see if that's what it's doing. If it is then I should be able to stand on a ledge and trigger it with no one standing behind me, and then have someone walk into the affected region and see them take on the shader over their whole body.
Otherwise I'll just ask grae lol he made the thing.
I sent him a message about it a few minutes ago. 🙂
He'd answer me faster ;v)
Probably. 😄
@drifting token So I tried it out in the game, and sure enough you were right! Graelyth also got back to me just now and confirmed it. I guess that'll work out for the best, as it means I can have my particle emitter inside my chainsaw and the chainsaw won't block the particles but it will be affected by the blood!
Is there any way to get a particle system to have it's speed be dictated by its size? I know you can do the reverse, which is the speed affects the size. I can't use limit velocity based on size because I need the larger particles to go faster, not slower, than the small ones.
You still can use size by speed for that. It doesn't necessarily mean smaller goes faster, you can invert it if you want. Doing speed by size would be something completely different
No I need the size to directly affect the speed of the particle (at least the start speed) as I have the particle inheriting the size of its parent.
if i were to edit the Core Files to enable extended poly limits for the Quest and such, or redefine the rating system entirely would that be ok? or would i be banned/flagged for malicious activity ?
Yeah if you modify the game to do that you would.
not allways
so im using the lookat script, but for some reason, when i get close, the npc's head actually doesnt rotate properly, like, along the x axis, it looks DOWN instead of up at me.
if I mark the x axis rotation value as negative, then the opposite happens, it only rotates upward.
It worked fine before, but im not entirely sure what I did that messed it up
Its set to autotarget player, and that works, its just the rotation that doesnt want to work properly for some reason
Don't use auto target player, it looks at your feet not your head. Also it is not guaranteed to look at you, it can look at other players and there's no way to control who. Disable that and instead look at the playerhandle object from the playertracking prefab from the vrcprefabs toybox package.
And for the axis, don't use negative numbers that will just confuse it.
Is Unity's WWW disabled in VRC?
Does anyone know how this new blendshape system works?
This is with SDK 2019.09.18 which should be the newest
Nevermind the sdk was just broken again
reinstalling fixed it
Sometimes you need to look at this game and really think that this game and all of the evolving sdk was made by people only working off the donations from the community.
And a whole lot of premade assets :v)
@devout rock https://uploadvr.com/vrchat-10-million/
"donations from the community" just fyi
So does anyone else have the problem that lipsync using blendshaped doesn't work properly anymore?
This exact configuration worked before.
Also the blendshapes are working in unity.
Do you have the correct face mesh selected
Yes. I only have one.
@pine depot does it work for you on the newest SDK (2019.09.18)?
Haven't tried uploading an avatar with any recent versions
Okay
But I would be surprised if it was the sdk
Its possible that its not working due to having the sil blendshape set as none
yeah. let me recheck that
I do remember that I had to select something for sil, but I think it was "-none-"
Instead of just having nothing selected at all
I don't think that I ever made an actuall sil blendshape
yes
Okay yeah. apparently you cannot do that anymore with the newer sdks. https://vrchat.canny.io/bug-reports/p/825838-invalid-visemes-result-in-local-mic-echo
This isn't the same bug, but it is kinda related
They did change the way the sil viseme functions to prevent the mouth getting stuck open
My newer avatars have the microphone bug even though their visemes are working.
I feel like they did some broken ass fix to prevent this
I guess I will try an ancient sdk..
one can argue that vrchat is a tech demo funded by some of the investments that is going into udon.
using an older SDK will not fix this problem most likely, you'll have to fix your avatars individually to have a SIL shapekey in all likelyhood
The thing is that my old avatars still work
So it is not a client update that broke them
but yeah no idea how this stuff was broken again
@trim ibex you need a blend shape for every viseme including sil. CATS has a feature to generate these for you, otherwise you have to duplicate shape keys I guess
sil would do nothing or move one vertex like 0.00001
if you get anything wrong or don't set one of the blend shapes then you will hear your own microphone back and visemes may be broken. super weird I know
I guess I will need to make a no-blendshape blendshape then. It is weird though, since I don't have that in my old avatars and they still work.
that's weird. I don't think we've narrowed down the exact case where the microphone bug happens but it won't happen if you set all the blendshapes
I think I might just be misremembering how my old avatars' visemes work. Still cool thing that you still need to set something as nothing
Guess I will make a nothing at some point to set it as nothing. ¯_(ツ)_/¯
Bleh, I put an IKfollower directly under the Head bone, no animatiors at all, and yet the particle system goes flying up into the sky... why =_=
Armature scale most likely
For ikfollower to work properly the root and armature object both need to be scale 1 on all axis
The avatar object itself has a scale of 1.5 but all bones are either 1.0 or like 0.99998
They've both got to just be 1
The component doesn't take the scale into consideration so anything other than 1 will break it 🤷
true vrchat quality e_e
Well it works now compared to when it was first introduced
When it just didn't
:v)
think I'll just use the old method then xD
The avatar root can be scaled whatever. The bones themselves must be 1.
Odd I was getting the same bad behaviour if my root wasn't scale 1.
Hey guys... So this one I'm not sure if it belongs here or in the shaders channel... But I can't figure out how this effect could be accomplished. So there's this joker avatar which can shoot you. And when it does, your screen goes red. But the effect is neither confined to a localized space in the world, or localized to the player that's doing the effect. Nor is it a global effect. Instead, the effect follows the player who was shot, and nobody else sees it. I would suspect a particle is colliding with the player and sticking to them somehow, and it has the shader on it that creates the effect for those inside the sphere but I don't know if that's even possible? Though I seem to recall something about particles and collisions and playerlocal only being able to see them. So maybe this is that, yet I don't know how the particle would stick to them even if the particle system can detect the collision and burst emit a particle with a sub emitter.
do other players see it getting stuck or just the player who was hit.
if it locally subemits only for the player who got hit, then you could have a shader on the subemitted particle that turns your screen red (a good way to think of shaders is that they can do just about anything visual in nature, doesn't technically matter where the object is.
It's not possible for particles to stick to whatever they hit, nor is it necessary for that effect
It's a bit unintuitive but for every single player, they see themselves as playerlocal and everyone else is player. Which means if you make the particle hit playerlocal, then shoot person A, person A will see the impact but person B will just see it go straight through. Once that particle has hit person A and subemitted the particle that does the death overlay, that shader can affect them anywhere. But nobody else saw it collide with playerlocal so that particle never got subemitted for anyone other than the person you shot
So I've been asking around about this issue ive encountered with a VRChat world, in unity as you can see this world looks fine, but unfortunately In game is a very different story
Has anyone ever encountered this strange Pink World issue upon uploading? ive just tried almost about everything
and funny enough its not even the first world this has happened to
its a fairly rare glitch but despite reimporting everything, making sure everything is standard shader, its just a strange mesh issue, it removes mesh colliders, but NOT box colliders, and ALL materials
and only items from the specific pack, cubes and other items seem to work that are unrelated
@tender pivot what shader is that stuff using?
standard 100%
Is it using embedded or external materials?
@near bronze Are you saying that when a particle hits playerlocal, its emitter emits particles which are in that player's local space, rather than in world space? Like a child of the player, which moves with them? I assume if you set them to world space, this would not be true, but I had assumed local for a sub emitter would be the local space of the object the subemitter is a child of, which is the avatar of the player that fired it, not the player that was hit.
no, "local to that player" does not have anything to do with the position of the player or particle, it means that it only exists for that player. Other players never see it get emitted, it just doesn't exist
Okay but then how does the effect follow that player?
it doesn't need to, shaders don't care
they can do screen space effects no matter where the mesh is
Oh I see. So what you're saying is that if the other players could see the particle it would effect them wherever they are in the world. But since only the player that was hit sees a particle be sub emitted, they're the only ones who see the world effect.
yeah
The effect won't work on anybody who has a particle limiter enabled though, as that disables player local collision
anything you do with an avatar can be blocked, but that's a good thing. Keep it fun and lighthearted and people won't block you
Are walk animations of generic avatars still broken ?
Since this bug is now half a year old.
and it breaks every generic avatars
Any one know how to make a fps counter i know its a shader
how would i make a beer tape dispens a liquid. If thats possible how would i make it go in a bottle
Does nobody found an hijack for walk of generic rigs avatars ?
It's breaking every of my monstess from an mmorpg animations
Nope! : D
I can click my ui toggles while in desktop mode but not in vr? I dont get the little pointer that comes from your hand when i try to click the ui toggle in vr? Any ideas?
Make sure you dont have any overlapping triggers that arnt on the mirrorreflection layer, they block VR pointers
it was a collider that I needed to set to reflection, thanks
What's up @tropic wyvern ? Please describe the problem
Ask away, don't need to ask to ask
If I can't help maybe someone else can
Oh I have no experience with that, not sure that's something I would be able to help with
Every time I've tried input it Just Worked(TM)
Have you tried googling
Anything relevant in edit-> project settings-> input?
Edit -> Project Settings -> Input is where you need to be according to google
Some unity versions call it something else so you need to change it to say exactly Mouse X
Ok but then you didn't rename it from Horizontal to Mouse X
So how is it supposed to work
What you type in your code needs to match what you put there
And what are those 9 Fire3 things
So either fix your code or fix the names you put there
I'm just reiterating what a google search told me. But that seems like the obvious answer and it doesn't sound like you tried it
You sent a screenshot of your input setting showing Horizontal and Vertical but your code uses Mouse X and Mouse Y
Those two need to be the same
So either change it in the input or in your code
What would be the easiest and fastest way to make something slowly appear when the closer a player got to it and slowly disappear when they moved away from it?
Shader checking object camera distance
Which reminds me that Cubed had an old distance face shader.
mkay thanks
Any idea on when will the Unity 2018 update will go live in VR Chat? I have so much stuff I wanna do but can't right now because of the current 2017 limitations.
I mean it's not like you're going to be any less limited in 2018 outside of particles...
Prefabs within prefabs will help worlds ¯_(ツ)_/¯
Yeah but that's more QOL not really something that would completely halt development of whatever you're doing I wouldn't think?
Tell VRChat that with the UI menu update 👀
You mean the actual hand menu and not the layer right?
Yes, the long awaited ui menu update was supposedly on hold until nested prefabs.
Hand and in game menu*
Haha when I see UIMenu I instantly think of the layer that's going to be removed :v)
haha...
But it's nice that the menus are getting an update.
There are a ton of things you can't do with Unity 2017. I don't even care much about particles.
One of the many things for instance is using an automatic texture atlas script to remove the hassle of doing it on Blender or Maya.
Also GPU light mapper is not available on Unity 2017. It still uses the obsolete enlighten system.
Same scene in on current 2017 VR Chat unity scene.
Scene on 2018 version
Same settings on both
Except the 2017 uses the old enlighten system, which makes everything a lot less sharp.
And this is like 1% of what I'm looking forward to with 2018 update but idk when will it come up.
Is there a way to have something animate locally without having to rely on particle systems? I tried taking advantage of NetIK breaking locomotion animations, but ironically, they still show up globally.
Which ones did you use and what did you animate?
Please don't ask the same question in multiple channels because it wastes time. Answered in #world-development
@drifting token I tried animating the component and the object, both separately as well as at the same time using idle and/or walk forward.
It was a line renderer for specifics.
But it was always visible globally.
Feeling like I may just have to do the less tasteful thing and put a stencil mesh in front of my viewpoint and just use stencils for the markers.
Didn't wanna be the person with a sphere on their head because their shaders were blocked.
lol
OH. I guess I could try using Final IK without IK_Follower. Doi.
I mean. If you're willing to use shader based approaches, put it in your headbone and display it based on the scale of the unity_ObjectToWorld matrix @static relic
And lol using the Final IK bug to detect local
Imagine when vrc actually fixes it and then people complain it broke their local detectors
Right, "when". xD
I can't see so far into the future sorry 🤷
Idles are synced btw.
Well, that explains Idle, but Idk about the walk forward.
Hehe yea cameras are a great local detector (if on) / friend detector (if toggled on)
Particle system stop action in the neck against collider inside the headbone
Should also work no?
But stop action always ends up feeling so heavy. Even if I know it isn't really. 😩
I might try something funny with a state machine.
It's always shaders with you shader kids. smh
for reference
Guys,do you know how player pipeline is named in Unity editor?
Pipeline?
you mean layers? playerlocal is your avatar with a shrunken head, player is all other avatars, mirrorreflection is you with normal head
so mirrors for example need to reflect player and mirrorreflection (your complete avatar and other avatars)
anyone know how to make a transparent mirror? Ive but a camera on to a quad and reduced the culling and changed the flag to soild but it just shows black
???
This effect is what im trying to recreate
you just see the player
I know its done some how with a camera and a quad
Camera that only sees player layer and apply it to a render texture with cutout on the material
Make the camera clear to a solid color with 0 alpha
that might be just what ive been missing, the alpha and the cutoout, let me try it real fast
well its not showing black anymore its clear but im not seeing the player
is player the only layer that i need for it to work?
let me try again :3
oh my bad layer mirror reflection but what about the culling mask, player only?
Layer the camera is on doesn't matter set culling mask to mirror reflection
hmm in the camera preview it jsut shows white but ill push it out and see what happens
Yeah the avatar doesn't get set to its layers until you're in game
lol
well works kinda
my character is all black in it
im gona try the player and reflection layers maybe?
yeah that didnt work
What kind of settings does the camera have
What about the render texture
Turn on srgb
alright re pushing it out now
I might be missing something else but I'm not sure
Been awhile since I've done that effect
i was gona say this is what my quad setting look like also
Change from diffuse to emission or just use unlit cutout
you talking about the material rendering mode?
ah
I threw it into the emission lets see if that works
the emissions worked, just got to figure out how to adjust the resolution now. I look like pixelated blob lol
But seriously thank you. Been trying to figure this out for a week. this is the furthest ive gotten
Set the resolution of the render texture
Not too high though cause it's expensive
thats through the size of it right?
Yeah it was. Thanks a million again.
Is there any reason why a material change would show up in mirrors and cameras but not outside of mirrors or cameras? To clarify, locally, the material change doesn't show up for me at all, but it only shows up in mirror or cameras for others.
Specifically, animating the emission values doesn't show up while everything else seems to.
nothing you can do about that sadly, it's broken on VRChat's end
No, it's not the VRC bug that deals with material changes not showing up in mirrors. It's that the material change only shows up in mirrors.
I expected to not see the material change in mirrors. But the emission being animated up doesn't even appear in the non reflection version. I thought it was broken but someone cloned my avatar and I noticed it only showing up in the mirror. It still didn't show up on the one that wasn't the reflection.
the keys?
i made them both about the same key if ur talking about the dots in the timeline i think i pasted them 1 to the 2nd one
you obviously didn't or it wouldn't be twitching.
change from cull update transforms to normal in the animator
im dumb i dont see normal for some reason in the cull one https://gyazo.com/5bf07a3c67e59b45623cd97ad344e97f
oh right different things
do you somehow have curves in that animator?
the value is clearly changing when you hit play
yeah i have the curves
set them all to constant
ty! ill remember that
i want to put a gif on my characters hair how do i do that?
@warm niche Poiyomi's toon shader has got you covered
oh yeee i have that already , and ty!
@drifting token Hey one more question about the camera mirror, its showing the opposite of everything at the moment for example if i walk in from the right side it shows me coming in from the left. Im trying to find a setting to flip it but im not having any luck. any ideas?
rotate the camera
easier to invert the object its displaying on?
like upside down?
yes thats what i was trying to figure out how to do
its displaying on a quad
This is why having multiple monitors is a must for me 😉 mood music and unity map building with room to move around ;)
https://vrchat.com/home/world/wrld_4ace1852-f39b-47e8-8c16-363e0e8b5265 check out my newest map let me know what you guys think its small but its for people to just chill without lagging lol but still looks nice 🙂
why do you have so many assets in one project o-O
Probably just has everything in one project, better to keep everything together than spread it out with multiple projects imo
I get the idea, but pray to god you never have to reimport those assets
Oh yeah just nah to that. I do the same concept with every avatar and world in the same project and a project per version
What would cause the need for reimport?
Sometimes upgrading Unity versions will require a reimport but not always. If you switch the build platform to Android/back to PC (for uploading Quest content) you have to reimport everything. And sometimes Unity just hates you and does a reimport but that's really rare
I separate my non specifics into an essentials package that I can import should I need to move projects.
It's got my commonly used scripts and assets and such without individual project specific stuff.
Shaders too
projects should be disposable because unity packages and prefabs exist
not making a unity package and prefab feels a lot to me like you never saved the development you did in your project
and putting everything in one project on top of that is a lot like never saving anything ever
I only package things if I need them in a different project. Not just as a extra measure. I prefab plenty though. lol
I do start new projects as one gets full though.
yeah same. i don't prefab or package things that are just one shot that i don't intend to save
i just move from sandbox to sandbox project
i have a main project for each type of thing that im working on
If anything needs to be saved it can always be retrieved by the .blends before exporting to unity. If something has taken a lot of unity work then yeah it's saved via export as you would. There's no point saving prefabs of avatars that don't have extensive unity work as then it's just another copy.
For moving unity versions it's practically suicidal to try to do the whole project so I usually just do one avatar at a time
I prefab even minor changes so that I don't risk losing a change I made. The prefab takes literally no space and saves crazy amounts of time.
Then, if a change turns out to be a bust, I can just put out the previous prefab.
Ah I getcha. I usually don't make prefabs as exporting over fbx's still effects all prefabs. Usually create duplicates of folders if I want to save an old version
3000 iq zip of entire project for every change :v)
Does anyone know if we can use Lightweight or HD render pipeline now that we can use Unity 2018?
No vrchat runs on forward rendering
how do you guys set up version control for your unity projects? figured i might get into it so i can back up everything i own without losing my head. right now i make a new unity project every yearly quarter (Q3-Q4 etc.) and just archive the old one when i move on
Unity Hub ?
Git + LFS is probably a good way to go.
I probably should sort out LFS for some of my projects since using git for large binary files like images and such isn't the best, but I'm lazy.
@final wigeon @novel frigate We use Git + LFS and it works great. Using LFS for .mp3, .mp4, textures, images etc has worked well for us.
@novel frigate If youre not too comfortable using git bash, you should look at using SourceTree as a visual tool.
Using LFS seems like a terrible idea if you're using the repository to back things up
So I wanted to find a way to make sound effects that can be triggered via a gesture (like a gun shot or something) that plays until the end of the audio clip but that doesn't require me to hold the gesture the entire time. I'm trying to use an animator behaviour toggle on a gesture that essentially enables an animator that enables the gameobject with the audio on it, then freezes the animation at a point after the object is enabled after I let go of the gesture. The first frame of the animator is supposed to turn the audio game object off, but the second frame turns it on, so I can effectively reset it each time I "fire" the animation. For some reason, this isn't working and when I re-enable the animator, the sound effect does not disable and re-enable
Is there something I'm missing?
It seems like the re-enabling the animator doesn't reset the animation from the start. I haven't tested it in game, but it doesn't work in Unity
Fortunately, in game, gestures do restart animators if they're directly animating behavior enabled
If you're still having problems you can use 2 animators
Gesture animates behavior.enabled on first animator, and that animator animates behavior enabled on another animator. That final animator shuts itself off after playing
Doing it this way will prevent the gesture from messing with the default value of behavior enabled on the final animator, which leaves it free to handle it's own disable
You only need one animator and two animations. But proxy adds consistency.
ahhhhh ok thanks!
@vestal lodge Were you aware of a console error with _DependencyChecker.cs?
I was trying to update the tool and the error prevents me from using it.
If not, it may be just me. Or my version of Unity. I'm on 2017.4.15f1 for reference. I didn't feel the need to update to .28
On the latest SDK. I was about to just update Unity to .28 if that's the only reason it's doing it for me and you hadn't noticed it before.
No clue, can double click it and show me the line it opens?
Hold on, did I actually rename the file
One sec. I was using 0.6b, not 0.6.1b. Maybe that's my issue?
Could be
If you join the discord you can grab a newer WIP version
It's in the misc section of the tool
Just put the ones you don't care about in a folder and forget about them :p
Join, get the shit, leave lol
Rude!
Youve put yourself in a corner with this attitude
That's an option too but then you don't get notified if there's an update, if you care about that either way
Make sure to delete the old tools folder before importing the new one
Grab v0.7_8 in wip-releases
im having a slight problem with particles the problem is that at certain angles the the particles disappear anyone know a fix ?
local particles?
what
retro, do you know a proper fix for local particles being culled if not looking at hips?
Where are your local particle systems on your avatar hierarchy and why not use ik follower + world space particles?
Also does local space + ik follower fix anything?
Word particles can't be used for something that you want for it to be a local particle. Local particles been getting culled since 2017 update from what I remember. I've had them on hands and on other parts of body, whenever hips are out of view they get culled (for you and anyone else). Having collision/subemitters doesn't help, have tried also having bigger bounding box and other stuff that might help. So far gotta use fixed joint for local particles, or at times IK follower (tho I don't like using it).
Wow, I haven't used local particles in over a year.
I only ever use local particles for logic systems. Would a custom simulation space set to itself or a parent work?
iirc they fixed initial emission from custom sim space in 2017
from my limited testing that seems to be the case.
so that might work.
I know this is probably nope but I have wondered whether there's a way to detect the user's language preferences to show the right text
Could have an auto which uses geo location from IP lmao
Otherwise I don't believe we can get logic for the language
yeah of course I already know about that approach
just would be nice to have geometry which is visible iff locale == x
You can always have a panel when they first start the world to choose their language
no I can't 🙂
??
I don't control the world
Well that's a totally different problem then
imagine submitting something for elevator vr
but you want to say hi to everyone personally
why can't I do this?
You'd have to ask whoever is the owner of the world for them to set up something like that
@normal aurora if it's a small number of options, you vould either download the text as a vrc panorama (default, And let user override with a builtin text texture later)
Or if you really want different control flow by country, that is possible for a small number of countries using the sync video components and detecting playback start/fail...and a server that either returns a valid url or not
Crazy rube goldberg machines at every turn.
detect china by accessing google kind of strategy
World Wide Workaround
growing grass
how would i have a audio source have mutiple songs that play in a list in background
mix all the songs into one audio file and have it loop. It can't be too big though or else Unity has trouble handling it. The other option would be to use a video player with a playlist but it can be hit or miss at times
Is there a way i can set the --no-vr option for unity test build. Looks like the builder is obfuscated to me
@open lion you can use this: http://secondstrife.com/vrchat-vbs/
thanks you saved me from doing some "BaD ThInGs" lol
Anyway to make a VRC_SyncVideoStream component playing a movie not crash people when they join whilst it's playing?
@terse sage make sure you never call the Play () function
To change a video:
Stop, Clear, AddURL, Next
Next will also start playing but in a way that doesn't cause random client crashes
already do that i think, but will double check
What SyncType do you set?
Also if it's a predefined video you could hardcode it in the playlist. That shouldn't crash
video / normal
and nuh, its custom url
and yeah I have take owner, stop, clear, add url, next
any idea why my unity_builtin_extra is way to big?
@open lion
didn't debug menu use to be Menu + 3? i have no clue how to type this:
backtick should be the top left button below the esc key. looks like this `
k so im taking a shot at something i attempted a long time ago when OnTimer was broken so i gave up
goal: randomly draw a card from a deck, and teleport them to a defined position
my guess: enable a parent that contains 3 children, each having an OnTimer that chooses a random time to enable it's child a cube with a collider that intersects each card respectively, triggering the card to teleport to the position. And then disable the Drawing parent, stopping the process before another timer goes off, as to only draw one each time.
perceived issues with that guess in practice: #1 its possible (seemingly not rare) for some timers to go off at the same time (or at least close enough for it to matter), resulting in more than one card being teleported before the Drawing parent is disabled
(do note that the more cards in a deck, and the lower the high time on the timer the higher this chance)
#2 this isnt instant. which at it's least is a minor problem, but at it's most, it's a large problem because if two players happen to draw at the same time, it could cause complications
it's been a while so, I don't even know if OnTimer is the best way to be doing this anymore. if you have another idea lmk : )
@warm niche Theres a few problems with your system. The timers do cause a bit of lag, so when you have to enable all timers everytime you draw a card theres gonna be some problems. I made a Card System a few months ago, I dont remember how well I maintained it, but if you want to take a look here:
Hey, does anyone know how to configure their home? I want to make a world for people to play in.
@trail jacinth thanks! ill take a look 🙂
ohhh nice. so when you shuffle, each cards uses OnTimer to put itself as the first sibling, which then gives you a random order of siblings, then every time you draw, it rebinds the animator so that it always picks whoever is the first sibling? @trail jacinth
@warm niche Yeah exactly. Only problem is that if you have a lot of Objects, there is a huge lag for that one second where it shuffles
oo yikes
i guess that'll be okay since you only really do it at the start of each game
@trail jacinth oh hey do all the "Card" objects have to be named the same for the animator rebinding to work correctly?
Yes
Animator rebind will bind to objects with the names in the animation. It is looking for a specific object name/path.
right, ty 🙂 @summer berry
does VRchat not like when you try to change a rigidbody's isKinematic bool via UI button?
(checked the log, the press button animation is being played, and the animation does have the Press() function )
ohhhh my god you have to do it through the object sync not the rigid body dont you
btw yes that was the problem
Yeah, if object sync is on the object, you can only change gravity or kinematic through the given RPCs
@summer berry if i remember correctly, you showed me a shuffle / draw system that uses animator rebinding. I got my card drawing working, but not across multiplayer, do you still have that? i'd love to take a look at the broadcast types
i watched your broadcast type video. it got me pretty close, but the animator rebinding part seems to be the only thing broken about my system
Just based on the conversation here, the version helpfulhelper linked was on timer based. If you search for me and the word random, you can find a link to my old prefab using on timers that I never added to the database. @warm niche
Its probably very similar, but Cyan tends to do things more generalised and usually a lot more stable xD
I still think there should be a more protocolised workflow, for public Prefabs.
Like Sourcecode conventions in Programming languages. Maybe we can start doing that when Udon comes out
I never released mine because the Japanese community released a prefab (although it was paid), I didn’t like the 1 second delay in shuffling, and on timers broke.
I’m not sure how you would force a protocol for prefabs since that would require organization.
Im having issues with the IWA video player
it dissapears after i click on video or stream
UI, Screen, everything
looking at Cyan's randomization system helped a bit, but im still very confused as to what on mine should be local / global / have object sync or not
global with object sync
?
I can’t remember if my system had documentation, but that is a loaded question since it means understanding object sync and broadcasts
thanks C: ill read through
does anyone know how to make a world that when press 1 or 2 it changes you into a selfile cam and for 2 thrid person
that probably wont be possible till the UDON code gets added
that's totally doable right now and some words have third person modes already (for desktop though). I think the current japan shrine has it?
@warm niche Check the channel pins for the vrcprefabs link and find the '3rd Person Controller' prefab by Vowgan, I think that's what you're looking for
thanks dude
I misspoke slightly check the pins in the #world-development channel, not this one
how do you check what methods are available for use with SendRPC again?
Have the object enabled in the scene and then check it that way.
The docs might have it listed, but I'm not sure of any good way of finding them all.
I got shuffling and drawing working with my cards 🙂 next goal is to "play" them using OnPickupUse
my idea was to, when you play a card, 1) teleport it to the center, 2) enable something that, when I... broadcast to call that something ,,, it teleports the card away (to discard it).
and when you broadcast to call that something,,, only the card that is currently in play gets discarded, because it's the only card that has that something enabled
i was gonna do this my just broadcasting "press" for ui buttons, but that would also press every UI event at once lol
is sendRPC what im looking to use?
SendRPC is basically call custom VRChat method on object. We cannot define our own and are only limited by what they give. It does not seem related to what you want here other than teleporting an object away (TeleportTo).
If you want to do conditional logic, you should look into animator controllers with states/transitions, OR use custom triggers. With custom triggers, if the trigger is disabled (or the gameobject) it will not fire. You can use this as conditional logic.
Note you can do something similar with buttons by having the button disabled too
awww yeahhhhh!!!!
animator controller works great. you'll notice there's only two cards. this is bc i have to manually make the references for the animators. there are 104 cards 😃 🔫
~ Editor Scripts ~
sounds like black magic
I guess it is then
enticing, but it would take me just as long to learn how to write editor scripts as it would take me to do every reference by hand lol
it's actually not hard. if you use VS Code or Visual Studio, fucntion names will auto complete and it's actually quite easy to write some things. Other things are poorly documented.
using UnityEngine;
using UnityEditor;
public class FunScriptMenuClass {
[MenuItem("FunScriptMenu/Some Script")]
static void SomeScript() {
var obj = (GameObject)Selection.activeObject;
var animator = obj.GetComponent<Animator>();
... some code here ...
}
}
That's a good template to get started. Make sure to save editor scripts in a folder named Editor always. if not, your worlds won't upload and you will get errors.
(All if they understand how to code in the first place)
It will create a menu bar item Some Script in the FunScriptMenu menu
true, but even then, for most editor scripts you only need very basic programming, since most of what you do is simple procedural type stuff: for loops over game objects and calling a function on each one
and yes it's probably true that it would take longer to script. But it's a very valuable skill to learn and I and others here would be able to help if you get stuck, provided you're not trying to do something too complicated and involved
I still recommend anyone who wants to seriously understand Udon to learn standard c# + unity now. Editor scripts could be a good start.
@proud meadow oohh sorry i hadn't seen these messages. that's so cool. idk why I thought editor scripts were much more complicated. seriously cool stuff.
someone in the unity discord was walking me through it earlier. can't wait to get back to work on that after Thanksgiving
Can I upgrade to unity 2018
You could but VRChat might not make it to unity 2018 until around 2020
okay so im learning about making editor scripts. making good progress. is there anywhere i can read documentation of VRC_Triggers? like for scripting purposes not for using them for game behavior
Not that I know of other than watching what fields change in debug mode in the inspector or using autocorrect.
If you have specific questions, I can answer them.
okay well, my goal is to set the reference object of a Triger event via editor script
here's what i got so far
the next thing im confused on is how to reference the contents of one of the elements of that array
i can use triggerArray.GetValue(1) to return the value of that first element, but i can't continue to autocomplete by just putting a "." behind that
oh damn! there's some hot key i keep accidentally pressing while looking in VRC_Trigger in the inspector, it exposes more info about each item
Oops, I said that but didn't look back at discord.
Yeah, holding alt will show that in the inspector
lol no worries
okay gotcha
im trying to find out the right way to say triggerArray> second element > ParameterObjects
holding alt shows me that, but "data" doesnt autocomplete like that...
ParameterObjects is an array. You create a new array and set the elements
ok
Simple example:
lockTrigger.Triggers.Add(
new VRC_Trigger.TriggerEvent
{
BroadcastType = VRC_EventHandler.VrcBroadcastType.Local,
TriggerType = VRC_Trigger.TriggerType.OnNetworkReady,
Events = new List<VRC_EventHandler.VrcEvent>()
{
new VRC_EventHandler.VrcEvent
{
EventType = VRC_EventHandler.VrcEventType.SetComponentActive,
ParameterBoolOp = VRC_EventHandler.VrcBooleanOp.False,
ParameterString = "UnityStandardAssets.Utility.FollowTarget",
ParameterObjects = new GameObject[] {lockFollow},
}
},
}
);
Let me reformat that
ok gimme a sec to like, analyze this
So, you can access parameterObjects like this:
lockTrigger.Triggers[0].Events[0].ParameterObjects
THERE it is
i literally just didn't know that you could get the Nth element of an array by saying someArray[n]
Yeah, that is one way to access elements in container types (like arrays).
Is this your first time coding in c#?
might as well be lol
i just never touched arrays before this
SUCESS
oops
this is black magic
Now imagine all the things you can do with it.
🤯
oh wait i never removed each item itself from the array before i set it
is it possible to remove an item from an array by it's value?
ik you can't change the length of an array, maybe setting each instance of that value to null would do the trick?
https://hatebin.com/vqbygizqeh does this look ok?
You can’t change the size of an array directly, but you can make a new array and copy over the values you want.
@warm niche you are making a copy of the array by calling .ToArray(), so nothing will actually be set.
I also have no idea what your goal with this is. Are you just trying to set a trigger to a group of items for all items?
How can i add buttons to a pickup object
also how can i get a pickup to float without flying away
what do you mean by adding buttons to a pickup? But you can have a pickup float by enabling Kinematic on the rigidbody
Like have a tablet you can pick up, then with your other hand you can select buttons on the tablet
Like I imagined it would be
Tablet (vrc_pickup)
Button (vrc_trigger)
yeah you can do that, it just has be a child object. You might have some trouble working it though because of the colliders overlap. Might be easier to use a UI canvas for that
ehhh trying to setup unity on my macbook so i can continue working on that stuff @summer berry . do you by chance know why code completion in visual studio code only comes up when i type the first letter? i need to see every suggestion :T
Uh, not sure on mac the short cut, but try alt space or command space after typing the first '.'
So close to getting the right key.
I don't code on my mac anymore so it makes sense.
ugh this is so annoying, now im realizing it doesnt show info when you hover over a piece of the code
like i used to hover over like Debug.Log() for example
and it would tell me the parameters you need to put in or something
any idea how to turn that back on?
I'm not sure on how to turn it on or off like that. Normally I would hover over a completed method name and it would tell me the types of the parameters.
You can also use auto complete to give you options. Start typing out the name and after the '(' it should show autocomplete. If there are more than one option, it should show an arrow that you can use your arrow keys.
okay couldnt figure out the hover thing
anyways back to the code
soo now that i am not using ToArray,
its setting parameter objects directly
however, its setting it to all the gameobjects in the itemArray
So, you want to go through all selected objects and update the trigger to point to all other objects but not itself?
From the code, you are reusing the same itemArray and also updating it every iteration.
I would probably code this differently, but an easy “fix” would be to first duplicate the itemArray at the beginning of the loop. GameObject[] items = itemArray.Clone()
Modify the new array and set the parameter objects to it.
I’m worried about the null though.
Also, I can’t remember if .Clone() is a real thing in c# or some other language.
ill see. but, this is just getting the objects, but it throws an error bc it needs animators not gameobjects
One way I would do it would be to create a list, add each element individually, skipping the current element, and set parameter objects to list.ToArray().
Wait, animators?
yeah im trying to refernce the animators
Triggers always reference the gameobject and not any component.
the triggers are animator bool
oh i seeee
so i wonder what this error is about
one sec
Paste it here
Where is that being thrown? Is it your code or somewhere else?
Could be related to the set value
hm not throwing the error anymore
i think i selected something other than the intended objects lol
Ohhh there was something wrong with .net stuff that i had to install
thats why there was no hover functionality
works now 😄
{
GameObject[] itemArray = Selection.gameObjects;
foreach (GameObject item in itemArray)
{
GameObject[] items = itemArray.Clone();
items.SetValue(null,System.Array.IndexOf(items, item));
VRC_Trigger trigger = item.GetComponent<VRC_Trigger>();
trigger.Triggers[0].Events[0].ParameterObjects = items;
}
}```
error: can't convert type 'object' to type 'UnityEngine.GameObject[]' on the first line inside the loop
that doesnt make any sense to me. im making an array, items, of type GameObjects. and setting it to the clone of itemArray, an array of type GameObject?
@warm niche you're assuming that the currently selected objects are all GameObject but maybe you had something selected that wasn't?
oh it's a compile error? I think the Clone method doesn't know what type the final object is so you have to cast
try
GameObject[] items = (GameObject[])itemArray.Clone();
working directly with arrays is a little tricky because you have to know the correct size in advance. I'd suggest considering using a List<GameObject> and convert it with .ToArray() when you are ready to use it as an array.
I'd suggest brushing up a little bit on C# programming. I think you've got a good general idea but you should aim to get to a point where you
are able to figure out some of these errors yourself, especially for things that are built-in to C#. It's really good that you're getting your feet wet with editor scripts. It's a really powerful tool that will stick with you--even if you go on to making stuff outside the realm of VRChat
yeah! i think unity youtube channel has a really good playlist of c# videos. i should go through and brush up
btw your suggestion worked great
does anyone know how i can make an object like a sphere deform around a players hand/object when they touch it. i got it to work a long time ago but i dont remember how i got it to work
ok, lets say you walk up to a wall and you put your hand on it but your hand sinks into it and the wall deforms around your hand
like it makes a dent in the wall and moves the mesh kinda thing
sounds like shader magic. you've accomplished this before but don't know how you did it?
yeah, i did it with just the mesh and settings in unity but its been something like over a year
ok maybe this will be a better analogy: something like pressing your hand to your pillow
sorry if its something simple :T ive been stuck on trying to figure it out for a while
@warm niche any idea?
@shell wagon You're going to have good results with a shader + _CameraDepthTexture
It will be difficult to write yourself: the known good solutions with this technique are paid: by poiyomi and another by naelstrof
ok, would you happen to have the links to them? and thanks for the help
if not its ok
something like https://youtu.be/z7kQpUZXXhw
You walk through a snow drift or throw a grenade into it. How do you deform it so your footprints last? We're going to try implementing that using a Tessella...
That's not an exact implementation for VRC but it's info to get you started.
The gist of what you need is the camera depth texture.
In forward rendering it's only enabled if there are realtime shadows present.
Then it's literally just sampler2D_float _CameraDepthTexture;
ok, seams a little complicated but easy enough to get it to a working state. thanks :U
@shell wagon sorry i didnt have an exact solution, but what are you making this for? sounds interesting
its a escape room for my friends and i
nice
y'all ever try to test and build for two clients and it launches two seperate instances?
this seems to happen like 1/10 times i do it, seemingly at random
i think it has something with be being impatient and spamming alt tab while it loads lol
I think vrchat doesn't allow one account to be in the same instance multiple times... but there's some separate bug that if both people load into the instance at exactly the same time , they bypass that check. So there are basically two bugs cancelling each other out and things happen to work, some of the time. A classic race condition
Test build is not a good way to see how your world works with multiple players. The correct and only officially supported way is to upload the build, open two copies of VRChat with different accounts, and have them both join the world.
ah ok
I miss multiboxing
From igbar:
my method is:
-open vrchat then immediately logout and then close the game
-login to the website and pull up the world
-create a new instance and open it twice so you have two versions of the game running
-login with your steam account on one game and then your vrchat account on the other
-Ta-da now you have two accounts in the same instance on the same computer
This is roughly what I do as well
0.o
Also on steam this means your audio cuts out randomly so you can't do this and enjoy hanging out in VR and conversing with friends except for friends on oculus store version :-p
brilliant
nice
I'm back on my quest to understand broadcast types. I've got my card system working great now, however i tested it with 4 people in the world. and when one person drew a card, it did it like 4 times. I assume this is something like broadcast chaining?
but I have a question that might help me understand
if i have a long chain of triggers / animators and such, isn't it safe to say generally that only one part, should be sync'd? the rest local? so that most of the work isnt networked?
i feel like i understand Broadcast types by definition, but i really don't understand how different broadcast types fall into a system of triggers, animations, and UI events
@warm niche You are on the right track in realizing there should only ever be one part that syncs or broadcasts in the chain. This includes triggers, object sync, animation sync, and data storage. If you have something that happens for each person in the room, then it is over synced somewhere in the chain.
I linked it before but here is our write up on broadcasts: http://vrchat.wikidot.com/world-component:vrc-trigger:broadcasts
can someone explain to me the difference between player and player local layers when it comes to particle collision?
so, I recently used an avatar that summoned a gun with a gesture on the right hand (simple enough), but it switched firing modes and turned the safety on and off based off of the gestures of the left hand. anybody know how they did that? Ive gotten close but can't quite figure it out...
There are a few ways to do something like that, they probably used animators if you didn't have to hold the left gesture after doing something
Not sure if this is the correct place to ask this, but is it possible have an object Push on a player avatar? (example, moving boxes that push an avatar when they come in contact.)
it's very possible, check out the map called meat grinder, it's a slope where the objective is to reach the top while a bunch of stuff is sliding down to push or kill you
That map uses a custom built player controller using physics. It’s not a standard setup.
can you use particles to use in vrchat i made cloads and i want to use them but there not lading in vrchat
you can use particles but you have to make sure it's not using a script. If it's just a normal Particle System component then it should work, if it's something custom then you're out of luck
Is anyone familiar with Error's HUD shader ?
I haven't read the code, but I have used it and I understand the principle. Feel free to ask away
well my camera sometimes disapears when i turn on the hud
and it wont ever reappear even in other worlds
it only occured after turning the hud on and off a few times and only once so far
but it required me to reupload for it to work
do you allow avatar cloning?
if anybody (not on your friends list -- or depending on what type of camera and if an animation turns it on, even friends) clones the avatar, they will actually share a reference to the same asset bundle
yeah i made it public
VRChat will destroy any camera components it finds if a non-friend wears the same avatar. This persists in memory cache until vrchat is restarted
You can see the code in AvatarValidation.cs in the SDK
damn
gotta keep camera avatars private sadly, for this reason
or put a warning in an avatar world
cameras in VRChat have been scuffed for a year and a half now
csn i have the camera local or something ?
Yeah it destroys cameras without render textures if other people are using the avatar to prevent cameras on other avatars overriding other peoples viewpoints
keep upvoting the canny. I don't get why they can't use safety system for this
...i dont know what the canny is.
so hopes for a fix is low.
😢
It was kind of necessary though
they've fixed other several-year-old bugs before... like being able to cancel emotes
so it's not out of the question
well at the time I understand..they didn't have safety system yet
it's just they never revisited the hacky code that removes cameras this way
ok ill try poking around the canny . thanks for your help.
Wasn't necessary at all to do it the way they did.
Several people gave them legitimate solutions that they ignored and they had the perfect opportunity to give the player that control with the safety system and didn't.
Anything contrary has never been communicated with the community so this is what I'm left to believe about cameras.
Hello! I have a question concerning the inventory system in unity 2018.4.13f1, Is there anyway, to allow my Unity to allow breaking prefab? Cause right now its blocking me and preventing me from doing so. I was wondering if there was anything I could do on that level because I feel like its not working cause its attempting to, but it doesn't allow it to.
In a world?
Hello Ladys and Gentleman, is there someone who knows how to edit vsimes? Example: Adding a Piercing to the toung and it will move with the Vrc visimes like (AA) pls PN me if you Knowlege about that.
@hot pebble move it with AH, OH, CH keyshapes and recreate visemes in cats with those 3 selected.
How do you get an extra Camera in a world to render to the main framebuffer? I've got the extra Camera with "clear flags: don't clear", and not rendering to a default texture. It does render to the "display 1" in the game view of Unity, but not in-game (just testing in desktop mode)
Trying to replicate https://www.vrchat.com/home/world/wrld_91805f98-fd56-497a-bf7e-772e434efb84 . I think I understand how the relative tracking and scale work, but not how you get the camera to render in the first place
Testing camera overrides to do a bunch of random tricks․ Read the information panel for more detail․ Also includes the fluid simulator․
VRChat will disable the camera component at runtime so you have to explicitly set it to be enabled with a trigger or an animation
ah, thanks
how i make a gun that shots and kills
I would wait until the unity 2018 update is out of open-beta and on live to do that because it gives OnParticleCollision a way to specify what layers it triggers on.
You'd basically just have a pickup with a particle system on it, and then OnPickupUseDown you'd activate the particle system and then give that system a trigger with OnParticleCollision Local looking for PlayerLocal layer with some action to damage the player, depends if you want to use combat system or not how you do that though. There's some more nitty-gritty details but it's basically that
http://www.aidungeon.io/ Source is available on the net, can this be ported to VRchat somehow?
From the BYU PCCL Lab
you would have to use a set of prefabs and pick them using triggers. Scripts will never be allowed... Until udon comes out, we are limited in logic possibilities, so you would be mostly confined to exporting levels from something like that and having predefined levels in your world. you can be more creative and spawn really small bits of the dungeon at a time from prefabs maybe... but still not generated in the AI Dungeon sense.
I'm looking for somone on Fiver that helps with scripts in Vrchat?
Not sure if any vrchat creator is on fiver. But in vrchat we dont have access to custom scripting. Can only use things vrchat has whitelisted.
What an insanely specific request.
can you toggle a material change with an emote?
you want the material to change and remain that way?
yup
Do you ever need it to change back? The easy way is put an unchecked animator on Body with the material change on it.
In your emote animation, copy the keyframe from this example: https://gist.githubusercontent.com/lyuma/0485f6191357eec03c7fd402768ffc75/raw/3bc55075bce73b5bfcccb179e908b9bc64d3ce06/BehaviourEnabled.anim and press F2 to edit it to say Body
if you want it to change back, you either need the animator on Body to be a cycle: a looping animation that you can pause and resume at will that will go through each state... careful with turning off the Body mesh to reset the animator: as soon as Body is off, your avatar will have no bounds and will be permanently culled. If you want to toggle it off, you will need to have some other invisible mesh with large bounds to keep your avatar enabled
is there a different way to do it so i can change it back?
@gleaming igloo sorry forgot to follow up. To be able to change it back, you must stack another game object outside your Body mesh. You can either do it in Unity (will break the prefab instance) or you can edit your mesh in blender, make a new Empty Axes object inside your Armature, and parent your Body mesh inside that.
it may impact the eye tracking, unless you also keep a skinned mesh called Body outside with the 4 blinking shape keys (can be disabled I think, since you will make your own blinking)
I don't remember the rule but there was something stupid that wants your mesh to be named Body in the top level
there's no way to do that if you want two stacked animators
OuterAnimator (has unchecked Animator that always turns off material swap)
- Body (has uncheked Animator that always turns on material swap)
and so you can make two emotes: one turns on OuterAnimator Behaviour.Enabled (using that anim file)
and one turns on OuterAnimator/Body Behaviour.Enabled
Was messing with alternate eye tracking so you wouldn't have to worry about VRC's hierarchy and naming rules. Worst case scenario, there's always that.
Xiexe also released some nice eye tracking shaders a couple months ago (patreon?)
the setup seemed a bit difficult for newcomers though
does anyone know how the new Camera Test by Merlin work? It's definitely camera work but it's not a flat render texture
there are different modes like minature and seamless portals
no render textures
Just cameras with high depths using magic to position them in cool ways relative to the player
At its core probably yeah
brain hurts
@distant oar of note, it's not using a render texture. If no render texture is used, unity will render in single pass stereo onto the main framebuffer. You can set it to Don't Clear so the depth buffer and color buffer are kept from previous cameras.
The major drawback of doing things this way is if you enable a camera in VR without a target texture, unity will offset the camera game object by the playspace offset, so you have to also use player base tracking to counteract that initial offset.
which isnt even the hard part
hard part is rotation
or more like I have no idea how he fixes the camera rotation lol
If you're interested, I'd suggest reading up on player tracking here. If you get this example working you will go a long way toward being able to build your own system like that: http://vrchat.wikidot.com/worlds:guides:player-tracking
camera rotation? what's the issue?
Or is he just positioning properly with the playspace tracking that the rotation done automatically by the headset works flawlessly?
it's possible to do pretty much all transform math using a combination of SetParent, AutoCam or SceneResetPosition, and animators
no you might need to counteract that
it's definitely a puzzle but for example one way to apply one rotation to another is by reparenting, using Animation.Sample to reset the local rotation to 0 and reparenting again
there are many ways to do things like this
He would still need to set the height properly since the in game playspace isn't the same height as your real playspace.
But if you have the position and rotation of the in game playspace and the proper scale from the combat system, height would be the only issue.
isn't it possible to enable a camera component to learn what the initial playspace offset is, and save the difference between the initial playspace offset using camera component and the initial playspace offset using TeleportPlayer align with view
and that should always be a constant
unless you change avatars
was considering trying that for playspace tracking at least, along with raycasting upwards from below the player or down from above the player to find the capsule origin approximately since I don't need it to be exact for the avatar pedestal
Merlin - "A magician never reveals his secrets"
he does it just sounds like magical incantations to most people
lol yeah I try to explain stuff, a lot of the things are built on other stuff the community has done
the rotation cancelation is just throwing out the head rotation and then finding the difference in rotation from the real player camera and applying that
throwing out the head rotation though? huh
you just track the head position, then cancel the VR head offset out for the position. For the rotation you don't track the head rotation directly, you just put the camera in the scene with some default rotation and apply the difference between the normal camera and the current camera you're using. That difference is usually just the capsule rotation on Y
ah okay
Do you think you'll ever make a tutorial for us mere mortals @split hull
He kind of just did
looking at prefabbing a part of it for the avatar pedestal since people want it for their world, but there are a few things that need to be copied over from scene settings to work right and other stuff to clean up since the stuff is sprawling across my scene hierarchy at the moment
@split hull how many cameras are used when just using one thing like the avatar pedestal?
if it's just the pedestal, it needs 3 extra cameras, one for the main scene + avatars, one for the pedestal, and one for ui elements
for everything to play nice
if you are fine with it just drawing over your UI and having no post processing on the avatar in the pedestal 1 extra is fine
(that ui camera is great when we run out of keywords)
You mentioned that you were discarding the main view?
but your only overriding it so it still has a performance impact?
yeah you pay the performance overhead of rendering the scene twice basically. I wish I could tell the main camera to not render specific layers or just turn off, but I have no idea where it is in the scene hierarchy so I can't animate it
Just set it to have a high near clip thats close to the far clip?
far enough out that it doesnt render anything?
that works sortof if you always have it overridden. But at least in the camera test world, the overrides will be shut down when you turn off all the options
again I could animate the clip plane if I knew where the camera was in the scene
Yeah but do that + have your own controlled maincam
also if you put the far clip plane too close to the view you can't interact with your menus, so it needs to be at least a few meters out
and I mean have it like that by default from the reference camera in your scene when you upload
no thats why I said high near clip that goes to the far clip
pretty sure you can still interact with things in that case
near clip on the main camera gets capped to 0.05
oh it actually does
thats such a weird thing to enforce since they allow for such small far clip values
¯_(ツ)_/¯ the default camera in Unity has a near clip of 0.3 which is way too high for VR so it makes sense
Custom layer visibility when
otherwise people would frequently accidentally set the near clip way too far
Yeah that'd be really nice to have
same issue though people messing it up if its just the main reference camera that controls it
there's stuff that I need to do the culling for in shader because we can't exclude them from the main view. Like the skybox has a second mesh that renders for the portal views, but would have a bunch of overhead in the main view that isn't needed
for that type of thing it could be a toggle on the VRC world I guess
setting what layers are visible has a lot more viable use case than putting the near clip plane out at > 0.05 at least
that seems like a Never™ kind of feature though honestly
Do we even have a canny for them?
not sure
We ask when, but do they even know we want it?
Yeah I thought I had voted on something like that
searched for it when I originally voted on it because I was going to make a canny otherwise
Does anyone know any prefabs out there or methods for displaying slideshows in game from an URL or webpage?
At that point wouldn't it be better to turn the slideshow into a gif/mp4 and then play it via the normal way?
like one slide per frame kind of thing and then just play it frame by frame in a video player?
im seeing all different sorts of things like VRSlide and other VRC_Panorama based systems but its all in japanese and the translations are really bad through google
i believe they can display content from slideshare
its hard to tell as its all japanese
I dunno what any of that is sorry. GL with google translate
alright thanks anyway
@near nymph can you link the prefab? I'm interested in looking at it myself
I would but i cant find any @shadow ruin
The japanese one you were looking at?
Or was it just documentation on it and no prefab?
Still interested in seeing that if you still have the link
I asked The Architect from VRChurch but he did not want to share any info
I found one actual page eith an actual asset on it but it was paywalled
Its called VRSlide
The way it works seems a combination of a php web page and VRC_Panorama
But idk anything else yet
Ahh found it 600 yen isn't too bad atleast
True
not at all
Im talking to the creator now it seems like a interesing thing but i always like trying to do stuff myself before paying