#development-advanced

1 messages ยท Page 9 of 1

sterile cipher
#

Hummm.. Anyone have a decent, free water shader? Nothing crazy, nothing complex. Just simple. For something like pool water.

warm niche
#

Curious about this as well^

#

I've just been using a cloth with a 10,000 polygon flat plane. Probably uses too much CPU for your needs though.

autumn hatch
#

We totally need to made a world with a hallways of all the IRL faces of us

warm niche
#

Trying now ๐Ÿ˜„

#

Dang O.O

prisma pilot
#

inb4 we'll have everyone using avatars with their real faces

#

"is that youuu?"
"I dunno"

autumn hatch
#

Hm, doesn't seem to show the vertex colors in blender when importing

runic mauve
autumn hatch
#

Importing it in meshlab did it

final wigeon
#

@autumn hatch I find .ply handles vertex colours better than obj. If you want it over in blender I'd export it as that.

autumn hatch
#

Sure, thanks

#

Yup, that did the trick

runic mauve
#

it work on anime faces lol

final wigeon
#

To really see how well that software has done look at it without the vertex colours. Good textures can make a bad model look better than it is.

runic mauve
#

yea

#

just need place the head pic you use over it

#

maybe make it better

ancient wing
#

How do you disable VR at launch when starting VRChat? i know there is a parameter to add to a shortcut but i forgot what it is

final wigeon
#

--no-vr I think

ancient wing
#

Thanks man!

royal moss
#

So, what am I supposed to do about this.. Unity says I can't upload .blend file types to the asset store, but I can't extract the meshes from the .blend file, so how am I supposed to get the mesh of the model I want to upload?

final wigeon
#

@royal moss to get meshes & other stuff out of a blend file open it in blender then do fileโ†’export and pick your filetype exporter.

royal moss
#

Hm.. I exported as fbx but now when I apply the meshes inside of it everything disapears

#

nvm, they were just.. incredibly small

humble marlin
#

how do you make seats in worlds invisible?

oblique ember
#

Turn the mesh render off in the inspector.

sterile cipher
#

either do that, or just remove the cubes from the seat prefab

#

after you position it

royal moss
#

So pill said that one of my spawning things wouldn't stop spawning, but I checked and they are all on "alwaysUnbuffered", so I'm not sure what was causing them to spawn?

minor drum
#

is the process of bringing SFM models too unity hard?

lucid flax
#

Nope!

#

Just requires a few programs

minor drum
#

ok

#

ty

runic mauve
#

it alot work with SFM

#

i think mmd and xps much easier to find lol

#

not that many steps

lucid flax
#

sfm is a bit easier to work with than mmd tho

minor drum
#

i ask cause theres a specific model i want

lucid flax
#

if you have the mdl file it's easy

runic mauve
#

@lucid flax you need convert the texture as well

lucid flax
#

CrowbarTool to extract the model -> blender source tools to get it into blender

#

Then VTFEdit to get the textures

runic mauve
#

xps and mmd you just put in blender

#

just fix bones lol

#

bone easier for me

#

most the time SFM is a model from xps and Mmd

#

they just remove the bones

#

in them add SFM type

runic mauve
#

i do alot research on different file type

lucid flax
#

Probably not going to find mmd versions of source game models

runic mauve
#

dont say that lol

#

i maybe can

#

i find alot stuff

#

even people say they cant lol

minor drum
#

can you find huntress?

runic mauve
#

huntress for Dc?

#

there many model base on huntress?

minor drum
#

dead by daylight

#

thats the only one i saw that you can grab

minor drum
#

would that be simpler than the sfm route?

runic mauve
#

yea you dont need deal with the texture

#

coverting

#

or download 2 different program

minor drum
#

kk

runic mauve
#

just need xps plugin for blender

blissful walrus
sterile cipher
#

Awesome idea mimi, upboated

warm niche
#

Hmmmm

#

I'm having problems with custom animations lol

#

the tutorial doesn't help me much with what i want to do

autumn hatch
#

What problem exactly?

warm niche
#

Like, I have not much idea of how to start even after reading the tutorial

#

lol

runic mauve
#

watch morgus video

#

it give you example what you have to do

oblique marlin
#

Seconded, Morgus' video is great
I had no idea what to do but he walks you through the whole process

#

I still want to thank him but I never see him when he's not AFK in game
@rare seal thanks~

novel seal
#

Is there a way to enable hand controllers out of VR mode? im doing some experimenting and want to enable Razor hydra controllers without being in VR mode

rare seal
#

@oblique marlin no problem, @inland salmon deserves the most credit, he taught me with his google doc

oblique marlin
#

I didn't know there was a Google Doc... :c

autumn hatch
#

There are a lot of good stuff in #tutorials if you haven't checked yet

runic mauve
#

@novel seal unplug your vr headset

#

from your pc

#

then just have razer hydra plugin

novel seal
#

i dont have one

#

im trying something using freepie

#

but cant seem to be able to activate the hydra controllers

runic mauve
#

i think vr chat support razer hydra

#

or they disable it

novel seal
#

it does but i cant seem to activate the controller ingame

runic mauve
#

last time i put in my razer hydra switch to

#

it start to work

novel seal
#

So there is a way to use hand controllers in desktop mode?

runic mauve
#

did you install the razaer hydra driver

#

for steam

novel seal
#

i did

austere lark
#

should i be concerned? type is not a supported string value UnityEditor.SerializedProperty:set_stringValue(String) VRCSDK2.<RenderTriggerEventsEditor>c__AnonStorey4:<>m__1(Object) (at Assets/VRCSDK/Dependencies/VRChat/Editor/VRC_TriggerEditor.cs:442) UnityEditor.GenericMenu:CatchMenu(Object, String[], Int32)

hasty bison
#

if I made a VRChat development enviroment in Unreal, would it be possible to submit my own assets directly to the asset server like Avatars? as long as I follow all the formats / rules?

autumn hatch
#

If you're asking if you can set things up in unreal and then submit worlds/avatars, no.

#

The SDK is unity only

hasty bison
#

I know the SDK only exists for Unity, but is it ok for people to make custom SDKs?

autumn hatch
#

No, very highly doubt it. If you're trying to find a way to make stuff in unreal for VRchat, you might want to abandon that idea. It's made in unity, you have to use it.

#

It's like trying to make a CD player play a casette.

novel seal
#

Exactly. It's because they are totally different game engines

novel seal
#

I don't think we found an answer to my question

#

Is there a way to enable hand controllers outside of vr mode?

warm niche
#

like using a screen

#

and hand controller?

#

with no vr headgear

novel seal
#

I'm experimenting with emulating be hand controllers but have no VR headset

warm niche
#

Ohh

#

Well no idea

#

what are you emulating the hands with?

#

I'm curious

novel seal
#

Free pie

#

And a wiimote script to start woth

warm niche
#

I mean device

#

oh

#

oki

novel seal
#

Wiimotes with the motion tracking plus can track rotation movement so they are required for the script but in both VR and non VR mode I can't activate controllers

warm niche
#

I just have one

#

lol

#

it came with the wii sports resort pack

novel seal
#

I have multiple scattered around the house but I'm not putting effort into finding them if it's not gonna work

#

My hope is to create a cheap temp be solution using Google cardboard

#

VR*

#

I'm hoping for hand distance tracking the it sensor will help a little

#

Ir* ffs

warm niche
#

I know someone who uses Kinect

#

and it's pretty nice

#

but you need room for using it

#

lol

runic mauve
#

@novel seal @worn cypress. Use kinect and phone vr

novel seal
#

Don't have a kinect

worn cypress
#

i'm using VRift RiftCat (about $15usd) paired alongside Driver4VR (another $15usd) i'm also using a Leap Motion Sensor to emulate controllers by tracking your hands (doesn't work all that great) and the KinectOne sensor (which i'm still having some issues setting up calibration due to lack of room scaling) for full body tracking (downside to using both KinectOne and Leap Motion is that they're both USB 3.0, but can't run off the same USB 3.0 Card, so i use 2 cards; KinectOne is a USB 3.0 Bandwidth Hog X'D)

i've been trying to get this bluetooth controller set up for navigation here https://www.amazon.com/Bluetooth-Controller-ELEGIANT-Portable-Wireless/dp/B06Y99D8C9/ref=sr_1_3?s=electronics&ie=UTF8&qid=1503547563&sr=1-3&keywords=vr+phone+controller
it's kind of a pain to set up, especially trying to know how to map buttons as if it were an HTC Vive controller (I don't have one so i'm not too familiar with how it's mapped XD)

I think i might actually prefer to use a Wii-Mote controller since i have one on hand (WiiMote+Wii Motion Plus built-in) as it might actually track things better, especially since that bluetooth controller i mentioned doesn't have any built in motion tracking sensors (accelerometers, etc.) @novel seal, do you think you might be able to set up a tutorial on what you need to set up the wiimote with Driver4VR in the Full-Body-Tracking Section and maybe under Tutorials?

#

you can also use a Kinect360, and they're super cheap; you can find them on ebay or elsewhere for around $20 give or take

#

RiftCat works as a Google Cardboard with your phone

ruby python
#

wait can i use wii controller on pc?

#

or did i understand that wrong?

worn cypress
#

it's bluetooth capable, so yes you can pair it

novel seal
#

That's what I'm working on

ruby python
#

๐Ÿ˜ฎ

worn cypress
#

but like Remu said, you need to use FreePie

ruby python
#

gotta try tomorrow

novel seal
#

I'm working with a script I found to use wiimotes to emulate Hydra or rift controllers

ruby python
#

nice

#

im kinda getting tired of just using riftcat and 360 controller

worn cypress
#

i agree with that statement completely XD

ruby python
#

plus i have two phone vr headsets and both got pros and cons

#

still looking for better headset

worn cypress
#

if only VR headsets weren't so expensive ๐Ÿ˜ฆ

ruby python
#

for phone or pc?

worn cypress
#

PC

ruby python
#

true

worn cypress
#

otherwise we wouldn't need to use our phones

#

i can't just throw away $500 freely, and then another $400+ on trackers

ruby python
#

my situation is too broke for pc vr

#

school over 36km away so gotta use car which eats fuel because 1.8L, then theres the food i sometimes by for myself because people at school cant do it right and the only income for me is from goverment (90โ‚ฌ)

worn cypress
#

exactly; the cost of living ain't cheap

#

especially when you don't make a decent enough income

#

like personally i could try saving up here and there, but that would probably take me many many months..... ain't nobody got time for that X'D

sterile cipher
#

don't forget about the PC to power VR. You can't buy a headset and expect your 2007 emachines with a pentium 4 to power your headset ๐Ÿ˜ƒ

#

VR is very much an expensive niche hobby right now.

worn cypress
#

Sadly Money and... well, "Power" is key X'D

runic mauve
#

I use to be hombrew vr in vrchat lol

novel seal
#

WATCH ME RUN VR ON A PENTUIM 4

#

I did it last night actually using riftcat

prisma void
#

Is there a way to search a scene for a specific component and show what objects have it?

warm niche
#

Idk why that message was red ๐Ÿ˜ฎ

#

But it's t : followed by the object type, no spaces^

prisma void
#

Thats object type.

#

This is a component on the object

#

That video shows how ๐Ÿ˜ƒ

#

I wanted to double check I don't have Skinned Mesh Renderers on any random objects that should just be meshes.

rough flame
#

I thought I saw someone mention in this channel how to turn mirrors local only so that they don't cause framerate lag? is that a thing?

runic mauve
#

Just make trigger make turn off render

#

Only can go room with that

#

Button

warm niche
#

Ahh fair point Owlboy ๐Ÿ˜ƒ

ivory jacinth
#

For some reson my texture's in my work arn't working

#

doe's anyone know why

warm niche
ruby python
#

how can i use wii controller on pc?`

ruby python
#

yes it is

warm niche
#

but I customize her

humble tree
#

When you download it from the vrchat website, it should give you the option to import.

warm niche
#

Pinning this to channel. Docs (in progress) on SDK https://vrchat.readme.io/docs/

warm niche
#

Development meetup in 1 hour. We will be meeting in Dev Meetup Room. (aka vrpill room renamed)

trim hound
#

aww i missed it? :(

warm niche
#

Thanks for all that showed up to the Dev Meetup! Had a huge crowd. We went to a cafe by @digital grove , the "police box" by @granite pilot , @autumn hatch's avatar room, and got a sneak preview of @warm niche 's new art gallery. (sorry if I forgot a room think I got em all)

weary mica
#

Okay unity user I need help. I have had many issues with the Reflection node, and This is by far the worst. Everything is fixed but the node apperently decided to make the texture on my Drone 144x144 or some shite. The drone is the only one with this problem, the texutres themselves are fine.

maiden crescent
#

@weary mica it looks like lightmapping issue. Try enabling Generate Lightmap UVs in model import settings.

hollow lotus
#

Can someone help me out with audio triggers? I'm sure the script should be working, but nothing happens.

warm niche
#

If you have any rooms for tonight's meetup, please let me know now

pale violet
#

@hollow lotus what's the problem?

hollow lotus
#

@pale violet Can I PM you in an hour or so?

pale violet
#

anytime. i may be asleep soon and also i may not know your specific issue, but i've used some audio triggers and am glad to help if i can.

hollow lotus
#

All right, then I'll text another time, thanks.

sterile cipher
#

What is the typical solution used for Unity project version control and backup?

#

Is just git sufficient? Even with all the binary files?

prisma void
#

I use it. And have for 7 months now.

#

I pay for github just for this.

sterile cipher
#

I may set up a local solution. I have a large NAS that I might utilize for backup and VC

prisma void
#

Yeah. That would work well too. I just didnโ€™t wanna manage that Stuff ๐Ÿ™‚

sterile cipher
#

On a vaguely related subject: I've been using GitLab due to (for my purposes) unlimited private repos. If I'm going to pay for a service, would you recommend github or gitlab?

prisma void
#

I have no experience with Gitlab. But I thought github had unlimited private repos too?

#

With pay.

#

Hmm

#

Maybe Iโ€™m confused on the question ๐Ÿ˜…

#

Iโ€™m also very much not a git expert. I treat it as a fancy backup service. And itโ€™s saved my butt a few times already. And helped debug issues in the way VRC was doing things in the 5.6 beta.

#

I do the simplest things with it.

#

I hope other Git users can chime in. @rough sleet ? @subtle charm ?

sterile cipher
#

Hm, ok. I think that answers most of my questions. My question regarding Gitlab is generally "GitHub vs Gitlab, go"

prisma void
#

Ah ok ๐Ÿ˜…

sterile cipher
#

here we go, this answers my question

rough sleet
#

I use Git but I've not really used GitHub or GitLab.

#

There's also BitBucket.

subtle charm
#

i've used github and bitbucket

rocky cobalt
#

do quite like gitlab

wheat bough
#

A quick question, I am trying to update my avatars. And I have messages like: "Spine hierarchy missig elements"

#

The issue is that I have to rename by bones?

#

where is the guide book for all these changes?

#

It was all go before and I loved VRC SDK because it was pretty much plug and go.

#

Now I have to re-rig my avatars.............

#

*crickets

lilac atlas
#

I know you need to reassign chest bone 1 to chest bone 2 with the 5.6 update

wheat bough
#

I had a very diferent hierachy that I use for my game, so yeah I just re-rigged the hole thing. Testing now

#

is there like a "checklist" somewhere? the wikia is pretty bare

#

ie: a picture of a skeleton with the names etc...

#

but it's okay I figured it out (probably)

lilac atlas
#

That is a pretty comprehensive google doc

#

The only difference I am aware of is using chest bone 2 instead of 1

minor drum
#

i now gota shave off 36k

wheat bough
#

there is a poly limit in VRC now?

#

how much?

#

My Iron Giant is 80K...

minor drum
#

20k im told

#

did they change it?

#

the tutorial im following from then is from 7 days ago

#

oh oops a month and 7 days

#

so i dont need to delete alot of stuff?

oblique marlin
#

The hard limit is 20k

#

The preferred limit is 10k but a lot of people don't abide by that-- under 20k is necessary, though

minor drum
#

@oblique marlin its tris i need at 19,999 or under right?

oblique marlin
#

Exactly

#

When I decimate in Blender, just to be a good citizen, I usually do my best to get as close to 10,000 as possible, but it'll let you import it either way

minor drum
#

ok

#

welp, 29.5k to go now, got rid of unneeded objects... now to see how i can even get that much off of just the polygons

oblique marlin
#

Is this an MMD model?

minor drum
#

yeah

autumn hatch
#

Please do merge your meshes aswell. That is more important to optimization than just counting polygons.

oblique marlin
#

^

autumn hatch
oblique marlin
minor drum
#

managed to bring myself down too 41k total tris, 21k to go

oblique marlin
#

For the record if you guys want to specifically talk about avatars, you should probably do it in #336764636156264450
I think this channel is more for generalized development

brazen lotus
#

Does anyone know why this keeps popping up? The avatar I'm trying to upload has been uploaded before but now I can't with the new update. I asked this in the Avatar chat as well but havn't gotten any help yet.

low delta
#

make sure the joint that is the parent of those two things is plugged into this slot

#

"chest" @brazen lotus

brazen lotus
#

@low delta checking that now but it seems to have worked! Thanks!

low delta
#

๐Ÿ‘

brazen lotus
#

I get it now, the direct parent had to be the chest, and not upperchest

low delta
brazen lotus
#

It worked thanks!

oblique marlin
#

@sterile cipher, @median flare, @autumn hatch, @sudden smelt, @strange fable (sorry if either of the admins are not the right admins to bring into this conversation, I was told to ask you guys)

I want to make a tutorial to cover the topic of reducing material count and mesh combination so that everyone realizes both that they need to do those things and has clear instructions on how to do them.

Misaki Ki brought up that I should also talk about the Unity game stats window, and I think that's a great idea.

I was wondering if you guys had any ideas about what are some acceptable values for the various stats that are available in that window, so that I could quickly run down and mention about where you should aim to be and what's a red flag that you're not optimized to an acceptable degree.

#

Also @mental narwhal should probably be part of this conversation haha

rough sleet
#

Show the Rendering Profiler too

#

In my opinion it presents everything in a clearer way.

oblique marlin
#

I would love to, that's also something I have a similar question with though: what are acceptable values for the many things in there when you're looking at your avatar in Unity, and what kind of values would be clear red flags something is not okay?

#

Other than obvious things like tris which have defined limits

#

I just don't want to spread misinformation about it because this topic is one that seems important, especially as the userbase expands

rough sleet
#

Ideally we want to keep the number of SetPass/Draw Calls as low as possible.

#

A single SetPass/Draw call is optimal but isn't practical for a lot of people and avatars.

oblique marlin
#

Is that achievable with a single mesh and a single material?

median flare
#

Yes

rough sleet
#

Yes

#

One skinned mesh renderer using a single material is the optimal case. Literally nothing is the only thing with a lower performance cost.

#

Except maybe a single non-skinned mesh renderer but that isn't particularly useful.

oblique marlin
#

Noted. You say it's not viable for some people/avatars and I assume the reason for this is some people might want to apply different material renderers to different parts, I assume?

rough sleet
#

It's difficult to combine materials using different shaders.

#

Especially if one material has transparency.

#

You need to write a custom shader that combines the different shaders and uses some sort of mask to determine how to shade each part of the mesh.

#

So not really practical.

oblique marlin
#

I see what you're saying, but so then would this be sensible advice:
To combine as many of your textures as you know you'll use a single material renderer on into a texture atlas, but if you know you'll want an alternative material renderer on another texture, leave it as a separate material?

rough sleet
#

One material per shader is reasonable.

#

The standard shader's Opaque, Cutout, Fade, etc. modes effectively count as separate shaders too.

oblique marlin
#

Right, so, an example, pulled out of nowhere:

If, say, I have a model which has 10 materials, and I know that on the eyes I want this specific shader, but on everything else I'd like to use toon shaders or whatever, then the optimal thing to do would be to bake every texture that isn't the eyes into the texture atlas and use that for one material, and have the eyes as separate

#

I just want to make sure I have a full grasp on what you're saying-- if that's the case I'd like to cover leaving certain textures out of the texture atlas for that reason

rough sleet
#

That sounds right based on my current understanding.

oblique marlin
#

Okay, great

rough sleet
#

If you have 9 toon shaded materials then you can combine them into a single atlas and leave the 10th un-atlased.

oblique marlin
#

Sounds great, that will definitely be a part of the tutorial if whomever else wants to weigh in also agrees that that's the best way to handle it

#

I just want to make this tutorial because I've heard people talking about texture atlasing for performance but following the currently pinned tutorial was a major headache as a one week beginner to Blender, but it would be nice if everyone knew how to do it ahah

rough sleet
#

If you're using colour tints in your materials you'll need to tint the Blender material and bake the tint.

oblique marlin
#

Noted

runic mauve
#

yea better have somone figure out and make tutiroals just tell people to do. only way going get people to do this lol

rough sleet
#

Are you going to cover baking all of the texture maps?

#

Like normal maps and metalness/specular?

runic mauve
#

no way tell how to do then wont care to do it

oblique marlin
#

I would love to cover that, though I'd have to learn it first ahah

#

The extent of my knowledge is what I just learned tonight about unwrapping the UVs of a mesh and baking the textures to an atlas for that single material renderer call

#

Is there a good technical tutorial that you know of covering doing the same thing with normal maps and specular, so that I can research it myself and write a script for that as well?

#

Write a script = a script for the tutorial not a script for Unity lmao

runic mauve
#

yea we need a normal map one to but less info on that as well

#

for mmd way lol

oblique marlin
#

@runic mauve if you can help me locate some models which need that done to them, I'd love to research it and find out more about it so that I can also tutorialize that

#

I may have some actually, I'll have to look

#

Just DM me about that

runic mauve
#

most any high girl popluar models do lol

#

for mmd

oblique marlin
#

Noted

mental narwhal
#

Normal baking and combining is very similar to the color textures. The complicated one is the metalness/specular because of the alpha channel behavior

oblique marlin
#

Also noted-- literally, I'm trying to gather topics so I can research them all tomorrow/in the coming week and get a good understanding so I can talk about it from a point of knowledge ahah

#

I feel like with some good editing and writing, even though this can be a complicated topic, even beginners could do it with some explanation about what exactly it is they're supposed to be doing and how it works

rough sleet
#

Also are you going to do the baking with Cycles or Blender Render/Blender Internal?

oblique marlin
#

My knowledge of it currently is limited to doing it in Blender, is there a benefit to doing it otherwise?

#

Also maybe if the normal map baking is similar to the texture baking, I can cover that simultaneously, but maybe save specular for another more advanced tutorial

mental narwhal
#

I'd say avoid Cycles because that's another level of complexity. Need to keep this as simple as possible.

oblique marlin
#

Yes, I would love to make it accessible to anyone, otherwise nobody will do it haha

#

Which seems to be sort of the current situation at least with material combination

ornate pine
#

I'm willing to do it just so my model doesn't put a damper on anyone's frames

#

that's why I've been asking so many questions
(Sorry, @oblique marlin ><)

sterile cipher
#

The problem I'm running into with Blender render is that its not giving me a pixel for pixel same color as the original model

#

its much darker:

#

that's when I bake with shadeless

ornate pine
#

and yet the hair is the same... weird...

sterile cipher
#

the hair is a seperate material. It is a strange shader.

#

My model requires 3 materials

oblique marlin
#

@ornate pine I'm about to go to bed but if you DM me at my next convenience I'll help walk you through what I learned tonight

ornate pine
#

oh, that explains it. My bad.

mental narwhal
#

It could be the gamma setting. Linear or sRGB

sterile cipher
#

I also hope that the existence of such a tutorial doesn't motivate VRC to mandate some super-low material limit >_>

ornate pine
#

@oblique marlin thank you, since I still don't quite get how to add my UV texture to a material ^^;

sterile cipher
#

this is not for the average user

oblique marlin
#

P'ahaha

mental narwhal
#

@sterile cipher yeah maybe we could make these into Blender scripts at some point

oblique marlin
#

That would be great

#

It would also eliminate the need for a tutorial ahah but hopefully it would be of use in the mean time

sterile cipher
#

maybe, but i feel like those scripts might not be versatile enough-- for example, I want my wings to remain seperate because I put a shader on them, but if the script just mashes everything into one texture atlas, that's no fun

median flare
#

As always, wouldn't mind seeing a higher polygon limit if you did reduce your materials and meshes to like 1

sterile cipher
#

i'm actually not really a fan of that

mental narwhal
#

@rough sleet has been dying to show off his coding skills, and he knows Python, so....

oblique marlin
#

Hahaha

#

If you guys do work on a script for it I'd love to help anyway I can, I'm working on my CS Bachelor's so maybe I could be of some kind of use

sterile cipher
#

a higher polycount limit should be baseline, since it has been long established that polycount (up to 65535) is essentially a non-bottleneck on current VRC performance

oblique marlin
#

I am not a programming genius though, forewarning

sterile cipher
#

one skinned mesh renderer is easymode-- but only having one material? i mean, if we're all going to be 65535 tri floating spheres with one material, sure, sounds great ๐Ÿ˜ƒ

median flare
#

It's not as hard as you make it sound - it's just new to people. Decimating is much harder, and yet people took to it

oblique marlin
#

That's why I was saying I think it's important to try and trivialize the process of combining all materials that you know you'll only use one material renderer for as much as possible

sterile cipher
#

i've been at it for about a week or so now misaki, dealing with various issues-- only now have i gotten it to pop out a usable model, and now the colors are all screwed

#

so, I get that it isn't herculean (i'm not exactly horrible with computers), but it also isn't really a perfect process

mental narwhal
#

The Unity Standard material is extremely flexible. I wish people would focus on using that with all its texture inputs than immediately jump to a different and usually less capable shader.

oblique marlin
#

I didn't understand at all before tonight but through fiddling I got it to work well, it wasn't a difficult process but the existing tutorial wasn't very helpful compared to watching Misaki's video helped me to at least understand the workflow which set me on the right track

sterile cipher
#

Yes, that video helped quite a bit

median flare
#

M-my notes!

sterile cipher
#

the one in #tutorials is a little.. not quite right

oblique marlin
#

Lmao yeah I was like this couldn't be less helpful

#

I was also worried it was a Herculean task after watching it but it turned out to be pretty simple as long as you know what to do

sterile cipher
#

pretty much any task is simple if you know what to do, to be fair :S

oblique marlin
#

@mental narwhal perhaps that's a topic for another vid that could be covered? How to use the standard material to achieve a lot of different effects instead of jumping to another shader

sterile cipher
#

can the standard shader do refraction and chromatic abberation?

#

if I can use it to replace my wing shader, I'd gladly do it-- but even then, it'd still have to be a seperate material

#

or, yes, TCL

#

i could write a shader that has a mask

#

but i have literally zero idea how to do that

oblique marlin
#

Ahaha

rough sleet
#

That really isn't a practical solution.

mental narwhal
#

The question is actually does your refraction shader support all the nuances of unitys PBR rendering? @sterile cipher

sterile cipher
#

dunno, it doesn't seem to be all that much of an issue in performance in profiler as far as I can tell ยฏ_(ใƒ„)_/ยฏ

rough sleet
#

Does it need to? It's part of a toon shaded avatar.

oblique marlin
#

Shader fight

#

Everyone get out your favorite shaders and hit eachother with 'em

sterile cipher
#

its a relatively simple shader

mental narwhal
#

@rough sleet that's a whole nuther debate. Lol

sterile cipher
#

i mean, hold on

#

we're getting way off track I think

rough sleet
#

lol

sterile cipher
#

I think the baseline is this: If VRC ever puts a hard limit on materials in the future, what's going to be the number?

#

What would be reasonable?

oblique marlin
#

Well since I've heard people talking about how different shaders can have highly different performance costs, a base material limit seems like an inefficient solution

sterile cipher
#

1 is obscene. You can't expect the average Joe to want to do all this. They'll likely give up-- or worse, have their creativity stifled by a relatively arbitrary limit

#

Sure, they can learn, but unless there's a pushbutton solution, 80% of people are just gonna say "fuck it"

oblique marlin
#

That being said, I have to go to bed because I have school in the morning ahaha
BUT anyone who wants to weigh in on what are good topics that should be covered in an avatar optimization tutorial I would love to hear it
I will definitely read the conversation through in the morning tomorrow and make notes

mental narwhal
#

@sterile cipher "creativity challenged by arbitrary limits" fixed that for you. Hehe

sterile cipher
#

challenge is a pain in the ass to Joe, hack ๐Ÿ˜›

#

not something to be fun

oblique marlin
#

@mental narwhal that is the best mindset ahah

#

Good night guys

mental narwhal
#

That's my definition of Art, btw

rough sleet
#

There's line between challenged and stifled, and that line is in a different place and has a different width for each person.

mental narwhal
#

@oblique marlin good night! Thanks for your efforts!

sterile cipher
#

exactly. I think of this as kind of an analogue of IT support, right? There's users who will gladly troubleshoot their own PC, or even go so far as to install their own OS and tweak settings for optimal performance

oblique marlin
#

Yeah! I'm really enjoying VR Chat and I want to help make it better if I can, whatever way that may be
This was just a topic I noticed needed covering. See ya around, fellas

sterile cipher
#

and then there's people who want to push the button, get results, and be done

#

neither of them are wrong

#

I just don't want a crazy low limit on materials, basically

#

that's all

#

nor do I want to be effectively shamed/punished for not optimizing every bit of my FBX before I upload ๐Ÿ˜›

lucid flax
#

I don't think we need more limits on avatar creation
A large portion of users already have trouble figuring out even basic manipulation of models, or bone structure
Putting more limits only reduces the amount of people who can figure that shit out

mental narwhal
#

@sterile cipher neither way is wrong, but what I think is wrong is when people push the button and expect the same results as someone who has toiled for weeks (months) to make something unique and cool.

sterile cipher
#

I don't think anyone expects that

#

nor do I, considering the time I've spent on my own avatar

rough sleet
#

The skeleton issues alone are already a significant barrier for the average user.

autumn hatch
#

Select all > CTRL + J regarding merging meshes I think people should be able to figure out, seeing if they manage to upload avatars then they should have the skillset to do that atleast

rough sleet
#

I've seen multiple people asking about how to fix the chest/upper chest issue.

autumn hatch
#

Especially with us probably making some sort of guide for it, should it become mandatory

mental narwhal
#

@rough sleet you hit the button. Lol.

rough sleet
#

Someone literally asked about it immediately after someone had just finished explaining it to someone else.

sterile cipher
#

I agree with both of the above-- I think the difficulty "line" should be drawn a little bit after rigging/mesh merging. And mesh merging is EASY compared to some of the rigging shenanigans you've got to deal with, let alone weight painting

#

atlasing is a great optimization technique, but basically what I'm arguing is that it should never be required except in extreme cases

rough sleet
#

We need something like the MeshBaker asset except tailored for VRChat.

sterile cipher
#

Agreed, that looks promising aside from that one issue

rough sleet
#

Something that merges materials and tiles their UV spaces.

sterile cipher
#

Oh. neat. @rough sleet converting to cycles rendering breaks my hair

#

joy

rough sleet
#

Of course it does...sigh

sterile cipher
#

oh wait

#

hmm

#

it renders it like how unity does. I just had to swap textures.

#

Intredasting

rough sleet
#

lol

mental narwhal
#

VRChat has kind of opened a can of worms because we allow you to import anything. I mean how many videogames in the real world do you think actually support as many rig configurations and setups as we do?

sterile cipher
#

very true

#

in the end can we just agree to blame Unity and have you guys whip up a rendering/networking engine from scratch? cool thanks, beta in a week right?

mental narwhal
#

Well no one seems to use our template rig which is reasonably painless.

rough sleet
#

Well, almost nobody rigs their avatars themselves.

sterile cipher
#

the vast majority of users import models that are already rigged

rough sleet
#

They're either already rigged, or they auto-rig it.

#

All of the MMD based avatars are already rigged.

sterile cipher
#

and usually have quite a bit of "optional" rigging already done, such as skirts, ribbons, hair, etc

rough sleet
#

My Fuse avatar was generated rigged.

mental narwhal
#

@rough sleet exactly, so they have an expectation that a model rigged for a completely different system by an unknown person with unknown requirements is an easy drop into Vrchat

rough sleet
#

Well, they're end users.

sterile cipher
#

^^^

rough sleet
#

Their entire existance is defined by the hard parts being done by someone else.

#

๐Ÿ˜›

autumn hatch
#

A "push button recieve bacon" kind of guy

sterile cipher
#

They might learn how to use the tools, but they may or may not have the "dig into the guts" attitude devs tend to have

autumn hatch
#

Personally I think they should just head to one of the avatar gallery worlds then

rough sleet
#

I think part of the issue is that there isn't a comprehensive avatar creator. Morph3D is/was supposed to satisfy this but for now we have non-technical users using technical tools which rarely goes smoothly.

mental narwhal
#

The other side of this is to just have a system like Morph where you can set some sliders and out comes your model. But there would be a huge outcry of not being able to use your favorite anime character off some arbitrary site right?

rough sleet
#

That's why we need both systems.

#

People will self-select based on their willingness to put in the effort.

mental narwhal
#

I argue that's not true

rough sleet
#

I should clarify that they might not be happy about it but they will inevitably self-select.

mental narwhal
#

If the advanced way produces cooler more unique results everyone will want to use it

sterile cipher
#

@autumn hatch what if they can't find anime girl #0429 that they want to be? They go through the process, spend days figuring out rigging issues, getting help, figuring out how to merge meshes, get to upload, and find out they can only upload if they're under 3 materials. They look up how to combine stuff, and get overwhelmed. I'm just saying that I think that "overwhelmed" line is going to be right after rigging, and a good bit before atlasing.

mental narwhal
#

Def before weight painting...

sterile cipher
#

the key here is that this imaginary "overwhelmed" line is, as TCL said, of various positioning and width.

#

And you can't just dismiss people based on where you or I think that line should sit

rough sleet
#

Yeah, but most of them won't bother. They might complain but most people won't complain loudly enough to matter.

sterile cipher
#

that's gonna stifle people that could, potentially, go on to eventually learn how to do all this stuff. It's taken me about 2.5 months to finally get to the point where I'm willing (and able!) to try atlasing and to get as far as I have

rough sleet
#

You see it in real life all the time with all sorts of stuff. For example some people want to get in shape but its hard so they don't and just complain about it.

sterile cipher
#

if I'd run into that limit right after my first upload? yeah uh, guys, i'm gonna go play Anyland

#

Keep in mind that the vaaaaaaaaaaaaaaaaast majority of players come into VRC with literally zero blender/unity knowledge

mental narwhal
#

Well, how many non VRChat created morph avatars do you see here. I also recommend other systems like Autodesk. But no one uses them.

autumn hatch
#

Suppose you're right, but a newbie giving their hand at a MMD avatar is more often than not bad news compared to "other" models. It is going to be way harder to fix those pretty much always

warm niche
#

Hey guys as a lot of you have some serious skills in here wanted to make you aware of a Discord in #353285911322034177 that @austere lark has started called VRC Traders (not affiliated in any way with VRChat). It's a Discord where people can find others and pay them to model etc for them in VRChat.

sterile cipher
#

"newbie giving their hand at a MMD avatar is more often than not bad news" Zarni, that's 100% personal standpoint and honestly a little bit... uh... what's a few levels below "offensive"? ๐Ÿ˜›

#

You can't just dismiss people because of what kinda avatar they wanna wear. That's next level shit man

rough sleet
#

@mental narwhal To be fair there's an overwhelming majority of video game and anime avatars.

autumn hatch
#

If I gave out a vibe I'm dismissing people, than I didn't mean to do it

sterile cipher
#

Oh. unless you're talking about the model's complexity itself. In which case I took it entirely wrong

#

whoops ๐Ÿ™ƒ

rough sleet
#

Avatars that you'd make in a tool like Morph3D, Fuse, or the Autodesk one are a minority.

sterile cipher
#

don't discriminate against the anime kids zarni god

#

Yeah, most people are gonna reach for the popular-in-context-of-VRC (and free) tools right off the bat.

autumn hatch
#

Just saying that newbies expecting to push button, recieve bacon with MMD models, it's not going to happen. They need to learn at least a few new stuff and it's going to be an uphills battle at the start

sterile cipher
#

There's always people learning new stuff in there.

autumn hatch
#

Not talking about them!

sterile cipher
#

It gets a bit repetative with the bone parenting issues, but hey-- they're working their way up just like I did 2 months ago

mental narwhal
#

@rough sleet that's my point. The simplified systems are extremely unpopular. I think it's just you and me. Lol

sterile cipher
#

and yeah Pill, I saw that discord-- I think I'm at my server limit, so I'm gonna have to find a server to cull before I join it lmao

autumn hatch
warm niche
#

Just remember that everyone was new at some point in VRChat. A lot of people joining get super excited seeing all these cool custom avatars and are very enthusiastic about making one of their own. We'll have much better documentation soon so they can be directed somewhere easily for this stuff

autumn hatch
#

It's the sorts of people who refuse to install blender for example I have been talking about.

sterile cipher
#

Oh. Yeah, in those cases, you just continually respond with "You need to do this in Blender." I don't think those people are who we're talking about.

#

The discussion originated from us talking about an imaginary future material limit.

autumn hatch
#

I seriosuly hope you don't think I've been shitting on people actually trying to learn.

sterile cipher
#

no no, I do not

#

not at all

#

I watch the avatars channel probably the most out of any other channel on here. I know you help people a lot

#

all that being said, I guess just remember not everyone's a years-old VRChat veteran or a grizzled Unity/Blender master, nor do they necessarily want to be-- they just wanna be a cool videogame guy or cute anime girl or something. ยฏ_(ใƒ„)_/ยฏ

#

Although ideally they will stick around to be a veteran ๐Ÿ˜„

warm niche
#

I think all of you are extremely helpful! Really happy everyone is helping all these new people out.

mental narwhal
#

Who you calling grizzled? ๐Ÿ˜€

sterile cipher
#

๐Ÿ˜‡

#

its a term of endearment, I assure you

mental narwhal
#

@warm niche while you are here... maybe we should divide these channels into skill level. I think some of the newbie questions get overrun by expert debates and vice versa

sterile cipher
#

@rough sleet FYI, baking in Cycles mode has its own whole set of issues.

rough sleet
#

lol

sterile cipher
#

Agreed.. when pill was typing I was afraid we were about to get chewed out D:

rough sleet
#

That sounds like a good idea.

sterile cipher
#

Oh yeah I upvoted that a while ago

runic mauve
#

more Tutorials the much easier make vrchat have better performance lol

mental narwhal
#

Yeah that feature can't get here soon enough

sterile cipher
#

After seeing you guys use it so effectively in Slack, I definitely would love to see it in Discord

autumn hatch
#

I seriously can't imagine bigger communities doing well without threads, unless you adapt to the twitch chat lifestyle

sterile cipher
#

That's essentially what huge servers turn into

rough sleet
#

@sterile cipher That's awesome in a horrifying way.

#

I think you've found your halloween costume.

sterile cipher
#

lmao

runic mauve
#

i remember it was like maybe 40 of use lol

#

in vrchat

sterile cipher
#

"what did you come as?" "A TEXTURE ATLAS"

runic mauve
#

had hard time find people at that time

mental narwhal
#

We need a #leave-upper-chest-blank

warm niche
#

@mental narwhal good idea. Making sub channels now

sterile cipher
#

holy shit lmao

autumn hatch
#

lol

median flare
#

The population sized (over?) doubled and is still growing fairly rapidly

#

And yes, yes!

warm niche
#

I'll make two channels:

development - Beginner

development - Advanced

#

this one will remain advanced one

sterile cipher
#

๐Ÿ‘Œ

runic mauve
#

@mental narwhal is there way disable upperchest lol in unity

#

with vrcsdk

#

lol

mental narwhal
#

Same with avatars please @warm niche

sterile cipher
#

@warm niche Actually, suggestion-- make a #worlds channel, and rename this to #advanced-development

autumn hatch
#

tbh there should be a #faq channel in official with the most common asked questions and answers

sterile cipher
#

"development" was always pretty ambiguous

mental narwhal
#

Oh actually @sterile cipher idea is really good

autumn hatch
#

I like it

mental narwhal
#

Just leave this for the grizzlies

autumn hatch
#

need to complain about todays youth

sterile cipher
#

๐Ÿป

mental narwhal
#

This can turn into a forum for advanced topics as well as ideas for improving workflow

autumn hatch
#

I feel #development-beginner should just be renamed #world-making or something to that effect

#

and just keep the advanced name here

#

Like questions about triggers, optimisation, light baking and such would fit in #world

warm niche
#

I prefer to keep it simple. There are many users here who don't have English as their first language

sterile cipher
#

"development" does seem a little ambiguous

#

ยฏ_(ใƒ„)_/ยฏ

autumn hatch
#

yeah. Like if I wanted to ask a question about triggers and bake lights in my world. do I ask it in beginners or advanced?

#

Compared to "I'm making a world. I will ask this in #worlds"

warm niche
#

@autumn hatch I'm open to suggestions if it's short enough to fit in with beginner and advanced

autumn hatch
#

"#world-creation" would fit perfect in my view

warm niche
#

if I name them world-development-advanced and world-development-beginner the advanced and beginner will get cut off on mobile

sterile cipher
#

ahh

autumn hatch
#

Skip the beginner-advanced bits with this one though

sterile cipher
#

unless you want to keep worlds and avatars split at both levels.

warm niche
#

prefer to keep worlds and avatars split

sterile cipher
#

ahh 10-4

warm niche
#

as we get bigger there is going to be a much larger divide upon development

#

actually let's do that

autumn hatch
#

avatars-beg
avatars-adv
world-creation
dev-adv
is my suggestion

median flare
#

I second Zarni's

prisma void
#

Hmm

warm niche
#

It hasth been done. We'll try this for a while and see how it goes

#

In a few weeks I'm open to re-evaluating the naming

mental narwhal
#

Okay so where were we? @rough sleet are you done with those Blender scripts yet?

rough sleet
#

lol. I'm stress testing how many instanced triangles Unity can handle

#

In a scene with only a directional light without shadows, and 4096 ~45K triangle spheres it's able to render 195.0M triangles at ~250-300FPS.

#

Only 11 draw calls.

mental narwhal
#

In VR mode though? Singlepass?

rough sleet
#

No, just the editor.

#

Let me check in VRChat while in VR.

#

Also with two instances of Destkop VRChat running in the background.

mental narwhal
#

Pointing at the same world?

rough sleet
#

No, different worlds.

#

I tried the 4096 sphere case in desktop mode and it ran under 31 FPS.

mental narwhal
#

No object sync right?

rough sleet
#

Just non-static meshes floating in an empty world.

#

Dialed it back to 512 spheres and it hits 90-91 FPS in desktop.

mental narwhal
#

Did it generate the same # of draw calls? Sounds like instancing isn't happening

rough sleet
#

512 spheres is 24.4M triangles in 2 instance batches according to the profiler.

#

5 Draw calls

#

Trying 1024 now.

mental narwhal
#

Is SS set to 1?

rough sleet
#

I was in desktop for that one.

#

I'll try VR once I find desktop's limit.

mental narwhal
#

Let's take this to Pm. I think people may be interested in the results but not the process ๐Ÿ˜ฌ

rough sleet
#

Sure.

warm niche
#

Anyone could help me with this? I made an effect i want to put on a death animation

#

but the effect doesn't play after i recorded it on first frame

#

neither do sounds

lucid flax
#

MY PEOPLE
..anyway is the particle set up to play when it is enabled?

#

also sounds and effects won't play if you don't click the play button in the editor
if you're just using the animation play button it will just modify the muscles

warm niche
#

Oh

#

and yes

lucid flax
#

so the effects still dont show up when you click the play button?

warm niche
#

nope

#

it's weird

#

And I fixed the sounds

#

i forgot to copy them to the original model

lucid flax
#

I'd check to see that the particles have play on awake on, and that they have bursts set up

warm niche
#

OH

#

thanks

#

โค

#

i did not have it on normal avatar

sterile cipher
#

@rough sleet So I successfully atlased something reasonable, the color difference is just gonna have to be something I live with. But despite only having 3 materials, 1 mesh (of course), and using standard shaders, profiler shows me having 23 draw calls.

rough sleet
#

What does it do when you toggle the avatar off?

#

Make sure the directional light doesn't have shadows enabled.

sterile cipher
#

Oh, that must be it.

#

Yep, down to 3 draw calls with standard shaders

#

๐Ÿ‘Œ

#

Let's test this refraction shader..

#

Still just 3. Neat

#

So also I think I figured out what the blender shader is doing. The first texture is just a "highlight" of sorts, just a diffuse map. It honestly doesn't look all that different when I turn it off. The second texture isn't UV mapped-- it uses vector normals to project UVs onto the texture, and colors according to that, hence the neat "highlight" effect. I think I can recreate it relatively easily in Amplify/ShaderForge. I'm just concerned about handling shadows/lighting correctly.

#

If I can find a way to do it with the Unity Standard shader, I'll gladly do it, but I don't get many results for "unity normal projection texture" or something like that

#

@rough sleet thoughts on that? If you're around @placid current you wanna chime in on this weird vertex normal coordinate shader?

rough sleet
#

If you output it to the diffuse output in Amplify it'll get lit normally. However that effect seems like it's trying to simulate a specular highlight.

sterile cipher
#

Yeah, sorta. And god dammit I forgot to fix the weirdass eyebrow spike UV maps

rough sleet
#

From the gif you showed me it looks like it highlights when the normal is pointing towards the camera

sterile cipher
#

Yeah. that's just a consequence of how the texture looks I guess.

rough sleet
#

Ah.

sterile cipher
#

It almost looks like a spheremap, but they painted over it?

rough sleet
#

Scroll down to Flat

#

@sterile cipher It projects that texture onto the surface of the model as if it was a flat plane in front of the camera

sterile cipher
#

Hmmm.. gotcha

#

I'm trying to replicate it in shaderforge at the moment

#

not quite sure how to go about it :S

sterile cipher
#

I've asked the people that hang out in the Unity Discord shader channel, we'll see if I get anything back from that. Someone took a look, understands the effect, but doesn't know how to replicate it

#

Welp no dice for the moment but they know about VRChat in there apparently ยฏ_(ใƒ„)_/ยฏ

rough sleet
#

lol

#

You're probably not the first.

sudden smelt
sterile cipher
#

Neat

#

I'd like to see a more in-depth diagram in this style for various common types of shaders

sudden smelt
rough sleet
#

All non-multipass shaders basically have the same process when you look at them at that level.

#

You'd need to take a look inside the vertex and pixel shaders to see the interesting bits.

rough sleet
warm niche
#

You can just use a web link with an ID or the modified steam shortcut that effectively sets a different world as your hub ๐Ÿ˜„

#

@warm niche does that work for private worlds though? Could you give an example so I can test?

#

It does, let me shoot over one of mine for ya!

sudden smelt
#

just replied with all the options

warm niche
#

@warm niche nm ๐Ÿ˜ƒ

#

thanks Euan

#

Whoops!

#

Sorry, just sent over XD

harsh bay
#

cheers guys! don't know what happened, but the website is very slow and bugs out for me atm, i'll check it tomorrow ^^

sterile cipher
#

I'm gonna have to read this book euan. Looks good

warm niche
#

I am trying to set up a Cascading Timer based trigger system, anyone have anything setup like this... Interaction happens.... Certain amount of time happens..... then triggers initiate (or a few actions).... and it should be able to be reset. I havnt used the timer system, anythin gI should look out for?

quaint wedge
#

Any experienced programmers willing to help me with the logic behind world/terrain generation algorithms or can point me in a good resource?

marble root
#

@quaint wedge you looking for something like World Machine? The free version limits your resolution output to something like 512x512, but if you're not looking to make a large landscape it might be good enough for what you're looking for.

quaint wedge
#

i am :l but its probly good enough to test to see if somthing like that would work , Idealy it would happen in game when a player enters a new chunk

#

if i can understand teh logic of how a algorithum like that works i could make my own but ya :l

marble root
#

the basic logic is real easy to understand, i kind of see it like 3D photoshop in a sense. Displace the flat plane with an Advanced Perlin Node (modify the values as you need), plug that into an Erosion node to then naturally erode your displacement (the volume of the terrain will actually move itself downwards, outwards like real erosion), plug it into whatever else if you want, export, you're done. You can use Layout Generators which essentially act like masks if you want to start to control stuff more, for example, erode only a certain area of your terrain. The basics are real easy

#

then you can plug that logic into different outputs if you want to export a static mesh out of it instead of a heightmap, diffuse textures, etc.

quaint wedge
#

hmm, have to say havent had much experience with creating/drawing objects in C/C#/C++, the little that i have used it has always been backend so new teritory is always fun :]

#

you ever made one yourself?

#

but thank you for the advice :]

marble root
#

well, i know nothing about programming but plugging nodes into other nodes through a visual interface is a lot more my thing. This is what you see if you start a new World Machine terrain, only three nodes, passing information from one to another. And when you click on the nodes you get to modify values and that's all you got to do to get going.

sterile cipher
#

Yuuki if you're intending to make procedurally generated terrain in VRChat, that isn't going to work right now without scripting. You'll have to wait for scripting to release-- and even then, it'll be relatively complex.

marble root
#

oh i see, procedurally generated while in game is a different thing, i guess i missed that

#

but, if you or anyone else wants to do procedural stuff before hand and then export, World Machine would definitely be my recommendation

royal moss
#

I have a procedural generation algorithm for biomes, I need a new data structure and my old libraries won't import and no one on the unity forums responds EVER, but it still works with any array as long as it's indexable. You give it a list of biome classes and then tell it what area to generate. Example of biome map: (You can change the general spread size and smear effect as well) https://i.imgur.com/Pdgeg8a.png

sterile cipher
#

tl;dr: As long as the meshes are the same material, it batches them

#

so in other words, material count is the most important thing. which we kinda already knew, but still useful. Mesh count reduction is actually secondary to reducing the number of materials used.

#

So, optimization priority IMO:

  1. Reduce the number of materials used to an absolute minimum
    1a) Try to use shaders that only utilize one pass
  2. Merge all meshes into one
  3. Limit the number of dynamic bones/colliders you use as much as possible (set refresh to 60, as well)
    large void
  4. Keep polycount low
oblique marlin
sterile cipher
#

if I'm interpreting that correctly, you've got 29+ skinned mesh renderers, and you're at 74 draw calls in the first one. In the second, you have one mesh renderer, and still have74 calls

oblique marlin
#

Correct

#

40 skinned mesh renderers

sterile cipher
#

Can you SS the number of material slots you have in the merged one?

#

in the skinned mesh renderer component

oblique marlin
#

There are 22, nothing has been combined yet because I was planning on fixing this model as my tutorial

#

I can go forwards with my texture atlasing tutorial anyway and see what kind of draw call count I end up with

sterile cipher
#

Interesting

oblique marlin
#

Also yes I turned the shadows off lmao
Before they were off I had 238 draw calls

sterile cipher
#

Try changing the shaders for all those mats to standard

oblique marlin
#

The amount of reported tris also decreased by 10K for some reason

#

Note that 3 of them are the cube, skybox and that other random thing, so there's 40

#

Which is how many meshes there are not taking into account that they're combined

sterile cipher
#

So too shaders isn't that efficient basically

#

Toonshader, rather

oblique marlin
#

Clearly

sterile cipher
#

It appears to use two draw calls. Then again, cubed's uses 3

oblique marlin
#

It's interesting to me that there are exactly 40 draw calls

#

If I deleted one piece of mesh and reimported it, still combined, I wonder if it would become 39?

#

Does merging meshes in Blender even effect draw calls?

sterile cipher
#

It does if the meshes have different materials?

#

Maybe?

#

Important note: Multi-pass Shaders break batching.

#

so TSF/Cubed's shaders will break batching, and VR used to break batching, but now we use single-pass stereo, so.

oblique marlin
#

I'm not missing something am I?
Am I just stupid and didn't realize when people were joining their meshes they weren't talking about ctrl-J?
Is there another step

warm niche
#

Uhhh

#

how do I make a sonund delay on the animation tab?

#

I have been trying stuff but nothing

oblique marlin
#

You could add a delay to the beginning of the sound you're using with an audio editor ahah

warm niche
#

Well

oblique marlin
#

I think you could delay the sound by placing the sound activation later in the animation

warm niche
#

I did

oblique marlin
#

Oh yeah you did

#

Welp

warm niche
#

and it just doesn't plays a t all

oblique marlin
#

That's the extent of my knowledge on animations

#

I tried

warm niche
#

Nah i'll just use audacity

#

i need to calculate the time

oblique marlin
#

That would be my ghetto work around

warm niche
#

But how do i calculate it

#

if when it reaches30

#

next number is 1

#

. - .

sterile cipher
#

Nah @oblique marlin , joining meshes is literally "hit ctrl-J"

oblique marlin
#

@sterile cipher this answer seems to imply to me that combining meshes of different material and texture will not reduce draw call at all, only combining meshes of the same material and texture, or merging them via an atlas

#

@warm niche what about the timing at the top of the animation, it looks like right now it's playing at round about 23 seconds or something right

warm niche
#

yes

oblique marlin
#

So just add a 23 second pause at the beginning of the sound I guess

sterile cipher
#

Yeah. I agree, Life-- it looks like, once again, the tl;dr is to reduce material count

oblique marlin
#

If that's the case I've been misinforming people about joining their meshes for awhile lmao

#

Though I think as a general rule it's still good because some of them may naturally share materials

sterile cipher
#

Joining meshes should be default regardless.

#

It probably reduces calls sometimes and it is near zero effort.

oblique marlin
#

Agree

maiden crescent
#

"Unity optimizes animation using visibility culling and bounding volume updates and these optimizations are only activated if you use oneย Animation componentย and one skinned Mesh Renderer in conjunction."

sterile cipher
#

Ah, there we go.

maiden crescent
#

No one said that one skinned Mesh Renderer will reduce draw call count :)

#

This is different optimization

oblique marlin
#

What DOES combining meshes effect if not the draw call count?

#

An unsarcastic and maybe stupid question-- I'm genuinely asking

maiden crescent
#

Probably cpu usage for skinning

oblique marlin
#

Do you think the CPU profiler in Unity would reflect that difference?

maiden crescent
#

Not sure because Gpu Skinning enabled in vrchat

oblique marlin
#

@mental narwhal

Let's just ask lmao

#

I'm gonna just move forward with my tutorial and consider combining meshes to be part of this process for right now instead of pretending I understand why we do it, the focus is on texture atlasing anyway

rough sleet
#

@oblique marlin As far as I know there is a cost to do the skinning above the actual cost to draw the mesh. Multiple skinned mesh renderers can increase the skinning costs but I haven't been able to figure out how significant it is. @sterile cipher

#

Unity dynamically batches small meshes (a few hundred vertices max if I recall correctly) but I'm not sure if that is done for skinned meshes.

#

Combining the mesh should in theory reduce skinning costs but I don't know by how much.

#

The frame debugger will let you see what each draw call is doing and will sometimes explain why a call wasn't batched.

warm niche
#

@oblique marlin @sterile cipher by the way it wasn't 23 secs it was 0.23 secs

#

XD

#

but i got it done

#

thanks for the help

#

โค

sterile cipher
#

Combining the mesh sounds like a generally good idea, mostly due to the culling optimization when you've only got one skinned mesh renderer.

#

I think we should still suggest it as an easy way to optimize your avatar. However, combining materials and atlasing is still the best way to reduce draw calls.

rough sleet
#

Dynamic batching is limited to 900 vertex attributes so the vertex limit depends on the shader. Also dynamic batching is done on the CPU so it is still better to avoid it, especially since it's so easy to merge meshes.

#

Also skinned mesh renderers are not batched.

valid hemlock
#

tried using 3dsbs shader and it came up white in my world when i used a vid

harsh bay
#

So for a quick and dirty jaw flap blendshape, what is the naming convention for that blendshape? tried vrc.JawBlendShape or something like that, but figured i would save time asking if anyone know about this ๐Ÿ˜ƒ

sterile cipher
#

Whatever is assigned to Jaw in the Unity rig configuration.

harsh bay
#

thought so too, but it's not working

rough sleet
#

You might need to make the blendshape open wider. I used to use the jaw flap blendshape and it was a really subtle movement.

sterile cipher
#

yeah, that. The blendshape very rarely gets turned to 100 by the speaking animator.

harsh bay
#

ah interesting, i'll give that a try thanks !

runic mauve
#

i just stay with Viseme jaw flaps some time dont work right

harsh bay
#

ah alright

warm niche
#

dev meetup this Saturday is cancelled but will resume the following week

oblique ember
#

Hey guys, I am wondering what layers vrc uses , like a list of them. Any ideas where I can find them?

slim apex
#

If you select build control panel there should be a button asking you to set up layers. If you click it it will set up all vrc layers for you.

oblique ember
#

Omg you're amazing!

sterile cipher
#

I'm starting to think that Dynamic Bones are the main issue BY FAR with performance in heavily populated instances.

#

And this was with 60 update rate!

warm niche
#

Dann. Should we use cloth instead? My model that'll be working on has a nice long dress id want physics for

sterile cipher
#

Cloth has its own problems-- one of which is that it is not even remotely as easy to set up.

warm niche
#

I hate this phone auto correct

#

Mhm

sterile cipher
#

It also hits CPU likely just as hard.

warm niche
#

Darn

#

Well, anything dynamic like that would

sterile cipher
#

And this is with all the bones disabled:

warm niche
#

Holy shit imgue sucks now

sterile cipher
#

yeah something's going on with imgur.

warm niche
#

Imgur

sterile cipher
#

basically my CPU outruns the GPU when I don't have any dynbones

#

but as soon as I turn them on? blam, fucked

warm niche
#

Made it into a bs media platform instead of a simple image site

#

Alright, thanks for the heads up

sterile cipher
#

Yeah. Avoid dynbones if possible, and if you use them, minimize them.

warm niche
#

Ill start working on the model tomorrow, get it imported and translated

final wigeon
#

@sterile cipher I wonder how it'd do with a really low update rate. Like 15-30 or so.

oblique marlin
#

Aw man but I love dynamic bones

#

Don't tell me that

#

@final wigeon that's a question I'd like to know the answer to

#

It'd be nice if there was a lite solution to doing the same thing it does but I imagine any physics simulation is going to be CPU heavy

final wigeon
#

Yeah, since even when my framerate has gone as low as 30 or so, while my movement often borders on painful, sitting still and watching other people move still seems okay.

oblique marlin
#

I wonder if anyone could potentialy come up with a GPU-based physics solution

#

Not that I know anything about how that works but I know they exist

final wigeon
#

I think the current issue with gpu physics is that implementation is kinda fragmented. There's nvidia's stuff, and do AMD even have something comparable?

oblique marlin
#

I saw some implementations of GPU physics someone whipped up in Unity but again don't ask me anything about how that works

#

I was just thinking that since it's always the CPU that caps in VR Chat, that might offset some load

rough sleet
#

@sterile cipher Yeah, they're extremely expensive. We might find that once Patch 1 is out and they get culled when they're out of view that performance isn't so bad.

oblique marlin
#

That's not a bad solution either

#

Rather I should say that's a much more sensible solution lmao

rough sleet
#

There is a GPU based asset available but it's a lot more expensive than Dynamic Bone.

oblique marlin
#

Interesting

rough sleet
#

It does general soft-body simulation

final wigeon
#

If possible and if it'd help, a client-side option to cap dynamic bone at a low update rate would also be nice. Especially for users with less capable CPUs.

runic mauve
#

why not have setting that disable it setting menu

#

or force set to lower fps

#

with that client side setting

median flare
#

The performance with it is actually one of the reasons I don't use dynamic bone, save for one or two avatars. With the plans for a patch dealing with it, I'm not too worried about others using it at the moment save for people who abuse it (usually unknowingly though)

#

A menu option to disable it locally is one of the ideas I thought of and honestly want - it'll help so much for the larger crowds when the population of a room is extremely high

harsh bay
#

For now, maybe just keep a duplicate of our characters that we use for events and such.

quaint vale
#

Good idea Carl, im using dynamic bones and want too add more effet to see whats can i do, i didnt thinks a can make 2nd avatar "simple" without any of this shit

mental narwhal
#

It's possible to replicate Dynamic Bone using Unity Physics joints. It's quite a bit more complicated, but free, and runs on GPU. I've been experimenting with it a bit.

autumn hatch
#

Do share if you figure out a nice way to set it up

prisma pilot
#

I've heard that maybe using the cloth thing that Unity uses, and being able to manipulate how it works or how intense it is, it could replicate Dynamic Bones

mental narwhal
#

Will do @autumn hatch maybe even a setup script!

autumn hatch
#

๐Ÿ˜

warm niche
#

Ooh yes!

#

So,this could work for things like skirts and suck?

#

Suxh

#

Fukthisphone

median flare
#

Yes

runic mauve
#

you would need make script simple if to hard no one what want to do it lol

sterile cipher
#

Interesting. @mental narwhal where might I find documentation on physics joints specifically related to characters? I'm seeing stuff for ragdolls, but I'm unsure if that'd work in this case.

mental narwhal
#

@sterile cipher not much other than the unity docs.

sterile cipher
#

hum, ok

#

This is all new to me so I'll go digging later today.

quaint vale
#

Cloth use a lot of ressource no ?

runic mauve
#

clothes does same thing to cpu

mental narwhal
#

All unity physics joints and Colliders are whitelisted for use on avatars btw

sterile cipher
#

I'm just concerned about using colliders due to the effects of accidentally walking into your own collider (and flying off into the sky)

mental narwhal
#

Cloth is only expensive when you use it on a high density mesh or have a ton of Colliders

median flare
#

Set them to triggers

runic mauve
#

@sterile cipher oh i hear they fix that

#

no more flying with collider

#

in next update

warm niche
#

Aw, I loved the name. "Bootstrap trick"

sterile cipher
#

Mainly I'm concerned about being able to physics joint bones that already exist in the model... hm

#

it looks like a hinge joint is what i'm looking for

#

or maybe a character joint? they seem to.. be similar? but Character joint docs say they're mostly for ragdolls. ๐Ÿค”

median flare
#

I've used them before, ages and ages ago

sterile cipher
#

I imagine you just skip the parts including scripting. ๐Ÿ˜›

#

and the layer shenanigans

mental narwhal
#

Physics joints on bones that participate in IK will result in wackiness

sterile cipher
#

makes sense. What about bones that are children of IK bones? i imagine that won't be an issue

mental narwhal
#

Nope shouldn't be an issue

sterile cipher
#

gotcha. this looks like something fun to play around with. thanks for bringing it up, hack

maiden crescent
#

no more flying with collider
Really??!!!

runic mauve
#

it was bug not feature lol

#

bug need to be fix

maiden crescent
#

extremely disappointed if true...

lucid flax
#

^

#

would be like if they removed stutter stepping

runic mauve
#

well they want use collider for somthing else it hard to do that if person fly away lol

maiden crescent
#

There is avatars that relies on collider jump mechanics. Such as UFO, flying boards and others.
And some worlds easier to explore too. Or recover from stuck state without respawning

autumn hatch
#

Imagine being able to create proper 3D platforming worlds ๐Ÿ˜ป

sterile cipher
#

From what I understand, you can still put colliders on avatars. I have not read anything that indicates that the "collider flinging" behavior has been changed

#

I'd wanna see a yellow or red name say it first before I believe it

runic mauve
#

because no one post that info yet lol

#

i just hear it

sterile cipher
#

frrrrom? ๐Ÿ˜›

warm niche
#

Rumint

#

fun

runic mauve
#

just ask snail @sterile cipher

sterile cipher
#

snail isn't a dev, jaz

runic mauve
#

yea but was told in hub one day lol

sterile cipher
#

like i said, i'd want to see it from a yellow or red name first

#

but who told him

runic mauve
#

cube was in the room when it happen

#

lol

sterile cipher
#

you gotta learn to listen to the correct sources, lmao

#

you can't just repeat hearsay randomly

runic mauve
#

well i know some people didnt want to keep because there room were easy bypass

#

with them

maiden crescent
#

What do you mean by bypass?

runic mauve
#

go behind somthing no one really want go in world like pug

#

if you stick coillder in your chest area and push your self in wall you can bypass that door

maiden crescent
#

Proper colliders or teleport triggers always can stop flying avatars. This is not the reason to disable this

runic mauve
#

to many of them break room to

#

maybe reason was disable as well

#

there limit on how many trigger actally till dont break a world

#

to many trigger will lag it as well

#

i been in room with so many trigger it just crash it

mental narwhal
#

@lucid flax stutter stepping is on track to be removed

lucid flax
#

Darn D:

runic mauve
#

we need double jump script for worlds

autumn hatch
#

I was literally writing a canny post for its removal

mental narwhal
#

Yup we should see flying, swimming and my fave roller-skating in the future

autumn hatch
#

I hope there will be options to toggle each of those on-off for each world, or having items you can equip to temporary enable, like flying, for X units of time or until switching world

mental narwhal
#

Yeah I'd imagine they are world-specific locomotion options

runic mauve
#

yea that be cool

rough sleet
#

We need a Climbey locomotion option too.

#

Even better if it works in zero gravity.

runic mauve
#

instead use controller you move with your hand or walk in place

forest osprey
#

I wonder, would a possible way to fix the sunken VR view on some avatars be if there was a way we could add like an extra bone, or little dot [like the one that determines where the player camera is] that can be set to determine where the bottom of it is at?

runic mauve
#

@forest osprey i think hackspanner say he fix the avatar description

#

best way for now just get in middle between and adjust to your arm in right and can see your chest in vr

forest osprey
#

What you mean?

runic mauve
#

if you see your hand shurking

#

it camera to close front face

#

or you talk about in worlds

forest osprey
#

I was talking about how sometimes your VR pov sinks into the ground with some avatars

runic mauve
#

sound like your avatar not center

#

every try t-pose controller

forest osprey
#

It works fine when standing still, or in desktop

#

but in vr mode, my pov is noticably sunk, and when I move with touchpad, it moves like it's crouching

runic mauve
#

t-pose controller will keep your body in right postion and check deceription if it move

#

oooh

#

because your leg to short

#

why does that

forest osprey
#

but that's what confused me, cause my little hyena avatars are rather short too

#

but they're fine

runic mauve
#

copy how the bone layout

#

from them legs

forest osprey
#

Could the position of the hip bone effect it?

runic mauve
#

to other avatar

#

yea it could be

forest osprey
#

I did make some adjustments to shorten the hip bone upward, just haven't gotten around to testing it proper

runic mauve
#

i would make it same size what you did with other model

forest osprey
#

but it's meant to be towering over my hyenas

runic mauve
#

maybe leg to far apart have problem moving

#

them leg on hyenas more human then the legs on your lion

#

one

#

i think it big space what effect and the hip far down the legs

forest osprey
#

ya I was wondering if the hips was doin it, that's why I shortened it. I guess I just need to import it and give it a try

exotic tree
#

Hey, does anyone know how to make objects like swords, guns, etc that are enabled by custom hand gesture animations permanent after doing the gesture? Every time I move, the objects are automatically disabled. I've been told this is a quirk of how the vive's controllers work, and occulus touch users dont have this issue. Is there some way to work around this? I was thinking if i could have the animation trigger another animation on an intermediate object which would handle enabling/disabling the actual object, I could get around this problem. But animations only support doing transformations and disabling/enabling objects. Is there a way to have a default animation on an object so that the moment it is enabled the animation plays?

runic mauve
#

@exotic tree only rift controller can do that

#

they would need update the vive tracking pading code to let do that

#

you will have to sit in chair with animation press in vrchat then enable but it break your animation tell you swap avatar

warm niche
#

failure to upload anything all day, extremely slow upload speeds

#

going to run network diag, but man, im getting slow up/down and this exception error

#

"Exception while posting the result object"

forest osprey
#

Sadly altering the hips had no luck on fixing my issue @runic mauve

mental narwhal
#

@forest osprey make sure you try your avatars with latest beta. There have been fixes in this area.

forest osprey
#

I'll give it a go!

forest osprey
#

For some reason the beta build still has older test uploads of the avatar I'm having trouble with

#

which aren't very useful to me for testing because those didn't have the ik stuff in em

warm niche
#

Anyone mind explaining me how to setup dynamic bones colliders correctly?

sterile cipher
#

Just FYI, setting your Hips as a Dynamic Bone root has a lot of weird side effects.

warm niche
#

Oh

#

Wel

#

that's fixable

#

Still i want to know what can I do about the colliders

#

; (

rough sleet
#

You need to add each collider to the Dynamic Bone script's colliders list. Also you may need to oversize the colliders and/or fix the positioning of the bone relative to the mesh. It is the bone itself that will collide with the colliders so if the mesh is large relative to the collider or the bone isn't centered inside the mesh then mesh won't collide properly.

warm niche
#

I don't want the "skirt" to go through her legs

rough sleet
#

Also to fix the hip issue Tupper mention you should create a new parent bone for the skirt rather than use multiple separate Dynamic Bone scripts.

warm niche
#

I am on it

rough sleet
#

Have you added the colliders to the Dynamic Bone's colliders list?

warm niche
#

I had to reset the model

#

because of bone parenting

#

@rough sleet where do i need to put the bone colliders?

rough sleet
#

In the dynamic bone script there is a field called colliders, set the number to the number of colliders and drag the collider objects into the slots that get added.

warm niche
#

I mean as where do i set a bone as bone collider

#

and about the range

#

i'm not really sure

#

how it works

rough sleet
#

You don't set a bone as a collider. You need to add an empty game object as a child of the bone and add a dynamic bone collider component to it.

warm niche
#

Oh

rough sleet
#

Then add that game object to the Dynamic Bone script's colliders list.

warm niche
#

for example with that skirt where would i need to put the object?

#

on her legs?

rough sleet
#

Yes.

warm niche
#

And about positioning it

#

and the range?

rough sleet
#

The colliders render as two spheres but they're actually capsules.

warm niche
#

kinda like that?

sterile cipher
#

You can place the collider component directly on the bone, for future reference

rough sleet
#

Oh? That's a bit cleaner.

warm niche
#

TCL told me not to lol

sterile cipher
#

๐Ÿคท

rough sleet
#

Lol, it's news to me.

sterile cipher
#

Either works. I just try to avoid extra gameobjects sitting in my armature. It doesn't really matter.

warm niche
#

Uhh

#

now i need to know

#

wich range is correct