OfficeHours:ProbablePrime:2022-08-09
Audio
Description
In this Office Hours, Probable Prime talks about:
- Animj
- Slot counts
- Optimization
- Networking
- Tool Anchors
- Materials
- Redprints
Transcription
(Please note that the transcriptions will not be 100% accurate)
Hello, okay, we're gonna get started welcome to office hours with prime. That's me. Hello
If you have any questions about Neos, please drop them into the office hours text chat
There is a few above the one that you're currently in. That's the community meetings channel
I will answer them in the order that they appear if you have any questions
Please drop them in if you think of any questions any point that is not during the office hours free filtered
Fit there. Yeah, feel free to DM me or asking questions and help. Thank you
Alright, so we're gonna start with some questions that were pre-loaded in from specs at like half an hour before
So I appreciate that. Thank you queuing those in so specs asks
Would you consider the performance cost of a no collision mesh collider to be significant?
I was taking steps to optimize collisions for a world and I wasn't sure it was worth removing some mesh colliders
Even if they weren't were in effect only colliding the lasers. Ah, yeah, don't worry about that
No collision doesn't mean like no collision no collision. It is you this means no collision
events
This particular filters that occur with the physics events when it comes to colliders and saying it to no collision will avoid as many
Collision events as possible. But of course, we'll still have some because it exists. So
Yeah, moving onwards to storms question storm asked. How is the voice mode sync component used and see any documentation on it?
So voice mode sync, I just looked it up because hey, I don't know so I looked up the code for it
First of all, it will only work in user space. That's cool
And then in user space is basically an indicator for which voice mode you're on. So there is an output which is a
enum, which will list your voice mode and
Then there's a couple of booleans that will list like hey, this is the voice modes that you're allowed to use
So I think it's used in part of the construction of the voice mode indicator in the top left of your dash
But I have seen some other uses for it in particular. I used it
Recently like a few months ago etc to make a custom voice mode facet, which was very very particular about how mute was undone
I think it was like you had to hold or double click or do some like really more intentional
Matter to try and unmute things because they were worried about being accidentally unmuted as their unmute user. So that's cool
Alex is building the thing interesting recently. Let me see what's in my screenshots
Yes, I'm working on
anxiety exposure experiments with Hamish SHFR and
We have like anxiety exposures and one of them is this thing which Hamish keeps doing and I always find amazing
Which is if you like play with the IK of a non avatar model like a skin mesh model
You can actually put like a look at user component on their head and it will swivel and look at you
it's the idea here being hey give a presentation in laboratory to a bunch of scientists and
It gets kind of freaky
Let me get the screenshots of that because if you don't limit it, you can basically just snap the heads off
And it looks it just it looks really creepy
Lego creator says why does the logics node browser and
Create menu ATC have sliding animations, but attached component menu does not the attached component menu was really made just quickly, right?
it's a really complicated menu and it was just made quickly to like work and it got more and more complicated as we added to
it and
It's actually quite a good example of that problem
Which you'll hear freaks talk about if you speak to him about like hey
Why don't you do this like one quick fix for this one particular feature?
The attached component menu is one of notable examples about that. There are many other examples, right?
The attached component menu just needed to keep getting more and more complicated
It's like we do this feature this feature that feature this feature this feature and it just kept getting more and more complicated
And so it hasn't grown with time and that's why I want to completely rework it
So it can grow with time and so when you are thinking in your head
Oh take me like five minutes if I had access and I could make a code change to the menu
Yes, it would but then you'd add that to like the pile
Like a house cards, it'll come it'll come toppling down. So the attached component menu is is showing that age and showing that
rigidity
I'm moving downwards past my creepy creepy doctors for you toes
Yeah, they're creepy
We also had what she once we had an auditorium for the people who are experiencing performance issues because of course they had you know
Legs arms etc. And so we just removed everything except their heads
Their heads follow and I do believe it's still in my memes folder is quite intensive to load but in my mean folder
There's a sphere of those heads
That sphere aligned and it will animate to the me channel music
I was I don't remember why I built that but hey
It's in the memes folder. It is terrifying
Okay, moving downwards. Where are we?
Cobalt crusher. Thank you. Oh crusader. I'm so sorry. I've read that as crusher for like three weeks and it's not that
Anyway, is there a way to better layout or organize for logics such as maybe a plain like component tools
That nodes could all make snap to there are a variety ways of doing it and they usually have colors associated with them as you
Can see from the reactions to your message
There are blueprints which is the older version of what people use these days, which is called a red print
Really the the reason for the naming and color change is just to distinguish them. There is also a green print
There is also a green print. There's also a black print, but I haven't released that that's prime's print. I don't use it
That's why it's not released
You know, my avatar is like 90% black. So I tend to use that color as like a
branding thing
It's kind of like a weird brand though
But yeah, I haven't released that one and I won't be it was just experiment
And I got it to work a little bit better than all of the other prints, but it was pretty flaky
So I didn't release it
Those work in aligning the nodes and
And
Various other techniques and tools for them. There is a good tutorial series on the red print from business lawyer
I do want to call out that there are other printer systems out there though
Because I don't want to like, you know do any sort of favoritism like things. So do try them all
additionally for that there are actually ways in which you should be building your
Things in logics to to not require redprints like people always like weirded out when I'm like, yeah
I don't use them ever and there are some for some users like that
um, I understand that like the red print is really good for some people particularly those who
Who need that plane to sort of lay out and focus on the logics is great for that
But I just don't find them necessary. One of the reasons for that is that I don't
I don't make large collections
Like I see pictures in screenshots or in the logics channel all the time of like logics
That's like the size of a building and it's just like pack early often and modular modular
A
Lots of things that are being created. Um
You'll see that in if you poke around in like any of the the jp team's um stuff
You'll see that they do it the sort of modular way that I tend to do it
If you poke around in like really really polished stuff probably even the red print
You'll see a lot of stuff that's sort of like packed early and often and that way you'll see hey
There's like 10 nodes in this pack. Do we really need a red print for that?
Nope, these 10 nodes connect to a another 10 nodes in another pack. Do we need a red print for that?
No, we just unpack and pack different things that you can never get like functions
They don't really like communicate similar to like a function snack would in a game instead
They communicate via dynamic variables dynamic impulses in some cases just like copious uses of fire on true
um, but that is what I recommend and you can
totally use redprints with that system, but like think about
Like both approaches so think about how you can use red print to organize your logics and also
How you can break your logics up such that you can pack it early and often
Um that helps a lot and that way you won't have like a chaotic mess everywhere
Like I am constantly making packs like constantly like it's like oh i've made two nodes
I'll pack it and i'm like another two nodes are here and pick that pack that
Um, just get it out of your screen if you don't need to if you don't need to do that. Um
Um, do take a look at those printy things. So there are multiple ones and multiple colors
Uh moving forwards
Plush
I don't know how to pronounce that. I'm sorry. I'm doing a terrible bad job. I'm also just rereading cobble's name
I'm, so sorry about that one. I'm just I read it incorrectly. Anyway, moving on
Uh, they say how much data does the host process through itself?
Like if someone imported model from his pc
Does it mean that it would have to go through the host first and then everyone will see it since it mentions about the host
About mesh networking plans on github. It's really difficult to explain
um
unless
Um, we talk about the data model for a bit. So we'll talk about the data model for a bit
For that though, we're going to need to talk about sort of data storage and to avoid technicalities
We'll just sort of use an analogy and the analogy is an excel spreadsheet
So this is going to be terrible, I know it's going to be terrible but here we go
If you imagine that there is a google excel spreadsheet whatever like system you use to share spreadsheets with your with your office workers
Whatever you want to use multiple people can view that spreadsheet and make changes to it
Now you can view that spreadsheet just by loading the page and then you'll see you know
The numbers and the rows on the spreadsheet
It's only when you change a number like a change a number in a cell change a cell's value that
A message needs to go from your computer
to
Google docs or office docs whatever you want to call its server and it tells everyone else that is looking at that spreadsheet
This cell a1 on your spreadsheet has changed from three to four and that's sort of highly analogy specific
How uh, Neos works there is a giant spreadsheet in the cloud hosted on the host's computer
So it's not even in the cloud
It's not a host computer and when you join a session you get the most recent copy of that spreadsheet and it's like cool
I've got the most recent copy of that spreadsheet
I know that there is an a1 there's a cell that says three and because that set is three
There is a floating cube in the left here shaped like a cheese piece of cheese when you move that around as a user you are
sending um
Messages to the host and saying I am moving this I am moving this and that is then updating the host and saying hey
This this number that is three is now whatever position you're moving it within the world
And then that message is then relayed out to the other people, uh that are in the session
So when you're desynced, it's actually caused by those updates not going through and then there's some sort of numeric queuing and snacking that happens there
So, you know, I move a cube two minutes to the left and then two minutes to the right cool
You missed that two minute units to the right message because you're desynced the cube will still be in its original location
Because you haven't got the message yet that it is moved. So that's basically how Neos works
It's a lot more complicated than that
I was trying to analogy it down to sort of be generic for everyone if that was a terrible analogy. I do apologize
Uh, Jason, if you know the language Jason synced over the internet is basically what it is. But anyway, um
Moving towards the actual question then based on that foundational knowledge when you create a model
Um, you will update you will upload the data from your computer into the session
Once it's uploaded into the session and complete in a way that we can transmit it across
It will then be transmitted the host and then load it to everyone else
So a good example here being I don't know a picture like people spawn pictures in Neos all the time
You take the picture find it. It's a meme a picture of the hat or whatever you put it in the world
You'll see it first and Neos will do some processing to make it a little bit faster for other people to see it
Um, but sometimes other people won't see it and that's because it has to go for like via the host to you guys backwards and forwards
Etc. And again that does depend on the URL of the image if it's like a
Web address, then it will be faster if it's in the nearest db link
It'll be faster because everyone else can fetch that like in an isolated way
But the actual like there is a picture here and the URL of the picture is this has to go through the host
As for the mesh networking plans that you mentioned at the end there, um mesh networking would be basically
A host user is also known as the authority user
In fact, the host user is often not referred to in code as host user
Like if you looked at the source code of Neos a lot of times it's just like world authority
And that means host user so the world authority is like who has authority over the session like if something's happening
Who is the authority to say? Hey, that's not happening
Um, and that's usually the host right now mesh networking that would more be a sort of consensus based algorithm
Or maybe some sort of like brown robin or something like that and it would basically be hey
There is a collection of authorities and they are syncing the information around them in a sort of ring or chain
Whatever sort of structure fits your sort of visualization there and trying to make it a little bit faster
Trying to figure out sort of how to synchronize all that data across that would also allow things
Uh, like larger worlds as well because like hey, you know
This part of the mesh could do this part of the world this part of the mesh could do that part of the world
It would be cool. Uh
Not specifically related to like it's like only like partially related to your like question though mesh networking. That's more sort of different
Uh moving forwards yellow asks. I saw people put materials as components
What are some reasons to do that over not having it the default way? Um materials are components
Uh, everything is components even logics is components
Um, hence why when people like i'm avoiding logics because I heard logics is slow
I want you to like quote this everywhere on the internet logics is just components use it. It's not slow
It's not bad. Don't avoid it. Just use it dash prime 2022
um
so materials as components
Yeah
So, um, I tend to do this now as well and the reason behind that is because uh a lot of times when i'm using materials
I know exactly what I want to do with it
I know where I need it and therefore I don't want the ball floating around like when you use the material tool tip to create
A material it'll create a ball as well. And sometimes I just don't want balls hanging around and you can quote that as well. Um
When you create a material the material will be created on that sphere and that sphere will have a component on it
Which is that material?
Uh, and sometimes you'll lose a reference to that material because if you delete it it'll end up into the asset system
Where it's sort of kept as a sort of like table key value storage up there in the asset system
Uh, but if you want to be sure exactly where that material is
You can put it directly onto a slot using the components
either way works and doesn't really have any like benefits or downsides but doing it the second way as a component definitely allows you to
Control it a lot more having said that you should only do what I just said
If you need to change the properties of the component using logics or other components
If you do not need to change the material once it's in stop putting on your avatar
Let the asset system handle it video on that one when I get around to it because I see that all the time
People are like I will put the material on my avatar and all the textures on my avatar and i'm like
Thank you for invalidating the entire asset systems deduplication method. Thank you. Thank you for doing that great
Optimization that you've just ignored and completely disabled. Um more on that one if there are any questions about that one
I guess um dorky says that they're like, uh, ryvi's logic tip that snaps nodes in a flat plane. I like that one, too
Um, that one makes it easier to sort of keep notes together on the same
Um, I guess z level like the same depth level. I don't really mind about that
Sometimes i'll tidy up but like I like using the 3d space if you look at the logic setups
I do you'll see more sort of like semi circles and the reason behind that is just naturally because i'm turning in the vr space
We end up with semi circles. Whereas if we look at someone with a red print or ryvi's tool tip, then you'll see uh squares or rectangles
Uh, salazu says, how are you doing today? I have the biggest mug of green tea
I think I put too many leaves in because it's very strong
I don't really know how much loose tea you're meant to put in
Last time I looked it up
It was like two to three grams a cup and then I like put two grams of like
Loose leaf tea into like a weighing scale. I'm just like that's a lot. That's like that's a lot of tea
So I need to look it up again. Yep. Erin says why not take advantage of 3d space?
I totally agree as well. There's sometimes where I go like completely parallel to what i'm doing with the logics
Comes up with like right nodes a lot and in some cases relays as well
I'm like, hey this ribbon's in the way i'll do a relay and then i'll just like shove it in the z direction behind my
Nodes and then it looks great
I know people do the whole thing where they're like i'm going to wrap it around the outside like it's some sort of like network
Cable in a data center that's cool, too
But it usually uses like five relays or if I just add one relay shove it in the z direction that it's like out the way
Thinker says they use a sphere line on their logic sometimes. Yep. I sinned that one totally sinned that one
Don't advise doing it
Specs says if bits of logics don't need to talk to each other keep them modular need to pass data between logics dynamic impulses
And dynamic variables, maybe your friends cannot agree more dynamic variables the parent data system even value fields
This is what we used to use before dynamic variables. They're all fine
They're all ways to think about logic more modular when you're building your next data center
They're all ways to think about logic more modular when you're building your next logic thing also think about a concept called the separation of concerns
Um, you see this coming up a lot in um sort of website design and stuff like that
You'll see uh things like mvc mvvm
Throwing around model view control and stuff like that. I do want to do a video on that one
But again, it's a difficult topic because it's like it's basically computer science theory
Um, and so it's just like hey, i'm not building a space laser here
I'm, just talking at you and showing you empty objects and talking about them
So i'm trying to think of a good way to do that. I guess an example here
um, I could probably try and explain would be like, um
Uh, like a flip book or like a slideshow or like a powerpoint that you might have inside neos
um, what I would see a lot of times is uh, people would have maybe a variable value register in logics and then they would have
um button
Event nodes hooking up to that variable
Uh, and so if they add a next and previous button
Um, they've got two button events nodes two right nodes modifying that variable that then drives which page we're on on this powerpoint or whatever
Uh instead if you just made a dynamic variable or even a value field you won't need any objects
You could just use the common ui button value set or button value, uh cycle or delta components to just do that. And um
Then when you're referring to the uh, the slide the powerpoint slide, which would use a boolean switcher
You can just again use a dynamic variable and then you won't even have a logic connecting to that
You just have like everything's just wireless. It's great. Maybe i'll build that that's a good example
We'll build it two ways. I can build it in the tutorial like how I would build it in 2019
And then how I would build in 2022 that might be a good example
I should like put a black and white filter on the camera and be like back in 2019. Here's how I would build this slide
System now, it's 2022. Here's how I would build it
Maybe get a mustache for the 2019 version as well. Uh, anyway, let's move on before I giggle too much. Um,
Lego, uh asks how much of Neos is logics and how much is components? Um, everything is components because logics is components
blinks and smiles
No, um
It depends what you're looking at. So a good example here might be the world browser
So the world browser is 100 percent components
But the reason it can be 100 percent components is that there are components that are specifically, uh targeting fetching world information
World information and you can actually take a look at them just inspect the world browser
It's actually kind of cool seeing how that works because that's how I learned how dynamic variables are meant to work because I saw how
Fricks was using them, basically
Then when it comes down to things that people make it really does depend there are um
Some component purists who refuse to use logics and seem to be miss spreading the misinformation that logic is bad and I hate them
So please stop doing that if that's one of you if you're using components because they're helpful you don't use logics
That's great. But please don't go around telling people that logics is bad. Tell them that it is useful for certain
aspects
Um, I noticed that most of the people
Um, I speak to these days are those people they're like, hey you lose whatever you need to do
What's gets gets doing but there are still people I meet who are like, yep
So and so told me that logics is bad and I shouldn't use it and i'm just like I don't know who you are or where
You're from but stop telling people that please please
Um, just take a look around as well like the default headset avatar. For example, it has some logics on it
Um that controls the uh, the voice range
Some of the the profile pictures look at the recent video I published about the profile picture
Um getting that the same piece of logics I demonstrate on that
Um is actually in place on that default avatar to uh, get that picture onto the front of it. For example
Uh kobold says, uh, what in the hell is a color print or backing i'm still getting started with logics
Uh yuki for anyone else there that is in game. Could you drop a screenshot of a red print in the game?
and then if anyone has a um
Link to business lawyers tutorial series on the red print
Please go ahead and link the the like first episode or the playlist for that so we can get that into the chat for kobold
moving
forwards, um
Foxworth talks about mono packing do not mono pack. So mono pack came from this um information that slots are bad
And therefore we should put all the logics onto one slot and I believe it's a plug-in or a mod
I don't really care these days. It's bad. Whatever it is, and it will collapse all of the logics components into one slot
It is terrible. Do not use it
one of the reasons why logics needs to be on multiple slots is so that um
Us as neos can understand it when you're loading it a little bit easier
And we can figure it out and we can do stuff with it. Um
You may sometimes see for example
Uh a node which is named injective for backwards compatibility
That is what's happened when I think it's the fine char by name node got an additional field which changed its meaning
We put in code which looks for old fine char by name nodes when it's loaded and adds that boolean such backwards
Compatibility is preserved if you mono pack it's more difficult for us to do stuff like that. It probably still work
But because we need to add a node to your setup
It's like well how we we don't understand where it goes because the the the what like what it will make a mess. Um
Adding on to that slots do not cause performance issues
Here's a good way to think about it before you look at the slot count of your avatar look at the functionality count
So as an example here, um, oh look my avatar is five thousand slots. That's bad
actually, it's not the that's a symptom not the cause the cause is you have a
nuclear
orbital defense platform on your avatar that floats
7000 meters above your avatar and can summon nuclear missiles down to the floor when you push
Uh when you do the finger gun gesture because you know hand gestures are cool these days
Um, that is the problem that is causing your avatar to lag not the slot count if you remove your nuclear
Missile defense orbital platform your avatar will not lag anymore. So it's the last thing to look at on the list
Uh slots don't inherently cause performance problems. So don't worry about it
We do have some optimizations to do on that place
But if you're going to start bullying people because their slot count don't don't bully anyone for any reason
I mean
But like if you're going to start looking at someone's avatar and advising them performance
Start with what the avatar does or does not do you'll get a lot more benefit if you reduce the texture scale
If you reduce the material count if you reduce the amount of blend shapes or if you remove their nuclear missile defense orbital platform
Like you don't need if you don't need it
Ideally, like maybe shouldn't be on your avatar. So yellow now asks. Can you move the origin of a mesh in game?
No, not currently
You can do what's called create pivot center and you can also do that sort of manually if you want other style of pivots
What that does is it creates a slot above the avatar above the mesh
And then parents the mesh to that slot and then you can move them around separately
so if you've got the parent slot in this case the pivot you can then move the mesh relative to that and change its pivot and
Then when you move that parent slot it becomes the pivot create pivot center is really good
That reminds me if you're a 3d modeler, please look at origins on your models
I am tired of importing like an axe and the origin being like 50 000 meters to the bottom left of the axe
The origin of an axe model should be in the middle of the handle blade. Thank you model creators
Uh ozi asks, how does max texture set max max texture setting and a textures inspector work? I was really confused on
Who who does the process compression for it?
If it's locally completed in the cloud you do it and then you submit it back to the cloud to do the work
As far as i'm aware, that's the one that like, uh changes the size, right?
Not get me a screenshot if i'm mistaken. I might be mistaken there. Anyway, moving on. Uh
Uh rameon asks on the topic of networking a significant desync with users connecting with high latency, uh, e.g
NZ AU client european host does need to have some kind of prioritization with at least a higher paying users
Accumulating mobile queue packets over time. Uh
Not quite sure what causes the queued packets on like a network level
um, I do know is that what we'll see a lot in sessions like that is um what I call
Consider it's the wrong word because it's like weird. Um
We'll just call it noisy playing, right?
So if you're in a session with people that are on the other side of the planet
Maybe don't spawn 7 000 youtube videos into the world because they'll end up desyncing
Maybe don't spawn half your inventory into the world because they'll end up desyncing if you spawn like one object per minute
They'll probably keep synced if you spawn 10 objects per minute
They're probably going to desync so so do keep that in mind when you're when you're interacting with nz and au from europe
From europe, I see that a lot. Um, especially with new players are maybe having trouble learning the game
Um, I mean spawning lots of stuff for new players that are new to the game is is bad for other reasons
As in you're overwhelming them, but it's also bad for performance reasons, right? You're unloading like half the inventory into the world
It's a lot of data to to sync and remember they've never seen that object before
So whilst it might load instantly for you because it's never been sinned by them before
Everything's going to load so for them, especially if it's got like 4k textures on it or whatever
Because like crusher's got a uh, a decent github issue. So do take a look at that one as well
Uh another question from pooshka. Um
Follow up question. Are there any plans for double precision support for physics transform rendering?
That should allow for less glitches when you're extremely small when you're further. Yeah, it's in it's in issues. Um
I don't know what the approach there would be
I know that uh for x's plans to sort of completely upgrade the data model that we're using that's that giant spreadsheet in the you know
Google docs. That's the spreadsheet. It's called the data model
Um to make that more efficient and have more features that might then allow for double precision
I'm, not entirely sure what our priority on that one would be or the process of that one
It seems like it'll be quite big. I have to dig in and take a look at that one
And then you say how far is it from implementation? We don't give etas currently see the announcements channel. I'm, so sorry
uh moving forwards
Forwards, um
Tony says which of the compression methods for textures is most optimal to be used on avatars
That's again a point of contention, right? So if you put it on an anisotropic I can never pronounce that
Sometimes I call it anisotropic and i'm like that's not how it's pronounced anisotropy
Whatever that one is that one will give you the best result but is technically the least performant
And then trilinear or bilinear are are good
Generally bilinear is better for performance than trilinear because bi means two tri means three. Um, so bi will do its
Processing twice and tri will do it three times anisotopic will do it differently. And so therefore there's more effort there
Uh, so if you want to do most optimal point, yeah there I said it if you want to do most optimal point based compression
Your avatar is going to look terrible, but that's the most optimal
Cool woohoo moving forwards, uh, asin says we know logic components
It's just easier to claim to do two separate things. I do agree
Um, it's just when questions come up about which is like more optimal
The answer is is both right if you're like I want to learn logic or i'll learn components great
I'll help you out if you're like which is more optimal both
um oracle says i'm only a week in and people have told me that logic is a bit of a thing to jump into but
It's pretty amazing thing once you get the hang of it. Have you had anyone say logic is bad fantastic
That might be dying. I don't know. Um
One of the problems I see when people learn logic is they go too big for example
It's like I want to learn logic so I can make a gun. That's a big project
I want to learn logic so I can add two numbers together. It'll take you 20 minutes
Like I don't I don't know how other people are teaching logic
But i'm just like here is the plus node adds two numbers together once you've got the hang of that
We'll go on to some more complicated stuff
But what I want to do by doing that is to get used to the ui like when we're doing advanced spaghetti everywhere
On a red plinth blue plinth purple print whatever print you want for or not doesn't matter
But when we're doing really complicated logics, I don't want us to be thinking about how we connect ribbons how we disconnect ribbons
So I show people the plus node and I say look you can connect numbers to the plus node and get a result
Get used to the ui get used to the ribbons get used to like the the visuals
and then we'll cover other nodes and that way the the the ui shouldn't be a barrier there because I do see that problem as
Well, it's like ah and to make a gun
We're getting a ribbon here and a ribbon here and a ribbon here and the user doesn't even know how to make one ribbon
That's a problem. Thanks to alex who has linked the uh, the youtube playlist with uh business lawyer and uclop. Thank you for that
Uh, so take a look at that. Uh
Cobalt probably best if you meet up with someone in game to take a look at the red print
Uh in game someone can show you it and then olin has a picture of the red print. Um, so you'll see in um,
Um alan olin's oden's picture. There is a red print in the world there and you'll see it's a grid
Um that grid is expandable and when you put nodes near it
Those nodes will snap onto a surface surface of it
you can think of it a little bit like doing a jigsaw puzzle or playing dominoes rather than what logics usually is which is like
Ah, yes, this magical floating card will connect to this other magical floating card, which is ever so slightly off rotation
And so therefore the ribbons look terrible
Electronus says nuclear launch detected if anyone adds a missile platform to their avatar. I will I will I will be angry
I did this avatar this avatar idea once of being like could I mess with the lasers?
You know the lasers that come out of your hands when using tools, etc
Etc. Could those come from really high up? I wouldn't like model a spaceship or whatever and put it up there
But it'll be like law wise like yeah a satellite does my logic, right?
So the laser would come from a high point position in the world
And that would be where the like the nodes and everything is moved from i'll keep it the same
So like you yourself using it wouldn't have any sort of adaptation, but it would just look like
Satellites moving your objects around etc. All right moving onwards to erin's question
Whatever your way to prevent people from reading a lot of dicks or getting assets from the creation of yours. Um
Assets, so when you're talking about assets, you're talking about avatar stealing
And so when you're talking about avatar stealing, we will do our best to continue to add improvements to that system
Our next best improvement to this asset theft and stuff like that is the license system having said that though
There is no way to 100
Guarantee that something will not be stolen from you if you think that that's possible
I want you to look at the latest triple-a game that has launched and has its assets in neos already because someone has ripped them
Um, you know these triple-a games are having their assets ripped
There's even things now which can like dump gpu memory to rip assets
So it's like oh you've got this drm in your game. Everyone hates great. I'll just dump the gpu memory
When it goes beyond that like hey, maybe someone's going to actually just get like some tiny copper wires
Solder them to an active graphics card and dump it that way
Like, you know a certain point the graphics card gets told there is a triangle here and it looks like your character's colors, etc
And if they can pull that data out the graphics card, they can reconstruct that into a model
We will do our best the way that we're doing actually puts us a slight benefit from
Other places in that you can't really export an avatar once it's in it sort of gets garbled
So, um what that allows us to do is if there is a theft that occurs
You can report it to moderation and we do have the ability to sort of see where it's gone and track its progression
That will get better with that license system
I talk about that will enable us to sort of find manage and and spot thefts a lot easier
As for modifying the logics on your avatar
there is a system called hard permissions which sort of interplays with the license system a little bit and sort of says like
Hey, maybe you can't access this part of the world and the license system is like hey
You can't modify this avatar and that will kind of lock it down and bake it up a little bit
It's similar to how um
Like the the the verbal rules of a session might work, you know in in a session might be like hey
Don't don't do this. So i'm going to kick you out like but more enforced in terms of technicalities
We don't know the final way that that's going to work
What the ui will look like what the protections look like how to apply or anything like that because we're still designing the system
but once it's there you can bet that uh
There'll be tutorials from a certain someone so cobalt says so tdr on the slot thing. The slots aren't the issue
It's what's in those slots perfect analogy there at a certain level the slots become an issue
But the amount of slots there before you need an issue is because you've added that launch platform
So just remove that remove remove the launch platform. Yeah
I think it says my avatar is not laggy as a quote and then says proceeds to have 8k psd or tiff textures
uncompressed in direct load in every logic system known to man
exactly what i'm referring to
If you have 8k textures
You better have a good reason for it and it better look fantastic
It better not just be a two color palette that has 8k textures for no reason
So alan says how to improve forward speed or sloshy avatar. No delete all systems
Okay, if you want to really really really perform with avatar delete your systems. It should just be a character, right?
It can have gestures it can you know look like you it can have blend shapes but bake the ones you don't need
But does it really need?
um
Your heart rate in the name badge above you. Does it really need like your favorite sandwich in the name plate above you?
Does it need a gun which summons?
Noah's ark and all the animals come off noah's ark and make their animal noises and then kill someone
It doesn't need that like let's remove that
Like that that's like remove that sorry says should make a macro that pays blend shape baking tutorial when erect joins i've tried that. Um,
It doesn't work like there's I sometimes when I host a session there's like information at the spawn about how to bake blend shapes
Zek asks
Is it possible to edit the lasers to come off your hands the ones that you select with this?
I tried finding an inspector but had no luck
My only thought was it might be possible if someone accidentally soft locked themselves somewhere there it is possible. Those are called tool anchors
Um, i'll get the video for that that is if someone hasn't beaten me to it
Actually, i'll just say please go for it get the the tool anchor video that I have and link it to um
And get to zek for me cobble says there's a model. Please. Please do that. Yep. That's referring to to origins
I am so far behind on the text here because i'm just answering questions and wittering on. Um
Okay, uh epic eastern has a question. Is this an optimized emote system?
Hmm. So, uh, that's an interesting idea like I did think about having a segment where we're like let's review logic
But I didn't want anyone to feel bad, but I will take a look just just don't feel bad if it's bad
Okay, let me take a look. Uh
found true
Okay, he's a self alpha
right latch
Right, let's try that. Try that looks good to me particularly like the use of right latch
Do you remember right latches there? Sometimes I see people do boolean latch of a um, a ternary node
I'm, like it's kind of the same thing as a right latch. So maybe use a right latch
Uh dorky says on the topic of having a lot of blend shapes
I recall hearing that the impact is when it's over zero due to vertex calculations
There are multiple types of of impact with having multiple blend shapes. So
Yes, if it's over zero, there's some cost for doing that if it's moving
There's some cost to doing that but there is also some cost to have that data in there
I don't know exactly the specifics internally, but imagine it like, um
I guess like a mask, right? So imagine that each blend shape on top of your face is a mask
So the smiling blend shape is a mask on top of your non-smiling shape and then your frowny blend shape is another mask on top
Of that right? So by the time you get to like 50 facial blend shapes, you're wearing 50 masks
That's kind of difficult. Like, you know, there's videos where the youtuber's put on t-shirts and keep putting them on
That's body blend shapes for you. You're wearing 50 t-shirts
So when you load into the world neos has to load those 50 t-shirts and that's why there's a hitch
Like there is a cost for that data being there wherever it's on or not. It's in memory, etc
electrona says opinion using something like value copy with right back to make fields local for things like set global transform
As far as testing is shown it means the rights never get synced. Uh,
It depends what you're doing. I don't know what you're doing. If you tell me what you're doing
It might be like a better way of doing it
Specs asks is there a known cause for the infinite loading bug referring to you and users intimate the joint sessions and experience and asset
Loading count that grows forever never goes away. Um
There's something up with asset loading. I don't know what's causing it and I see like multiple things there where I want to look into
them
um, I keep talking to um
Fruits, etc about like improving the logging there. So we know what's going on. Um, I did see a commit from fruits
That hit the source code recently that may help with that a little bit
But I do know that that still happens
I don't think that I know enough about it to say that there is a known cause though. No egg roll for says anisotropic
Thank you. I'm gonna forget that though. Maybe I should like print that and frame it. I might print that and frame it anyway
Um, ozi says i'm talking about filter options not compression methods. Oh, i'm, sorry. Um, so
Point filtering
Texture compression. I don't remember what the texture compression options look like on a texture
I'm, sorry if it'll get me a picture of the static. I'm sure I remember I just can't like visualize it
Hamish is trying to trick me up here because I pronounce stuff weirdly. Um, they're asking how would you iterate through a bunch of anisosopic?
I can't I can't I can't like either of those words are just difficult. Um, you don't need to there's no such thing as an anisosopic
Um, whatever that is. Yeah, cool
Uh elo says i've asked a person to walk me through making a laser gun. It sounded like a really really nice experience
That's it depends on attitude. There's a lot of again problems I see in um, like how
um
How people approach systems so if you approach neos as I need to learn I want to learn please help me learn
You'll have a lot better time and then maybe making a gun is a good experience
But if you approach it with logics is hard. I don't know it. I want to learn it
Please make a laser gun then you'll have a worse time
That's why I usually go with the like let's learn the the specifics
You know in in in education where you learn the theory before you learn the application a little bit like that
Le cvr says why is neon so hard to get the hang of but chill out is easy to use depends on your perspective. So
Um chill out is more aligned to how the the vr chat experience works
And so it's a it's a better sort of jumping off point for vr chat users. Um neos isn't
Hard in some avenues it is hard in other avenues. I do admit it's just again like an attitude thing though
So you need to like look at neos as a completely different beast to vr chat cvr and stuff like that
You're not comparing the two as much when you're comparing how they are to use
You're just learning them in isolation. So an example might be hey bring in avatar in
Yeah, the first time I brought an avatar and it took me like two hours, but the now it takes me five minutes
It's like it's an attitude and learning thing
Like I know the first time's hard
We've got mentors standing by in game all the time to help you get an avatar in but once you've done it like
A few times it's going to get easier once you've been doing it for almost four years like me
It's just like yeah, sure. Come on, whatever erin says have you done the satellite laser thing?
No, I did get close to it. But like not there yet spec says photogrammetry avatar theft
You could technically do that right if you captured your screen
And went around the avatar and then somehow filtered out the background you could photogrammetry recreate the avatar
And then people say oh just block screenshots. Yeah, i've got a camera pointed at my screen. What are you going to do now?
What are you going to do now? Um
It's it's an interesting question
if you do notice asset theft do report it to moderation team at moderation.nes.com we will do our best to figure out why that is and
Act appropriately epic. Eason says what can you do with hard missions?
Is making a map
That you uh paid on gumroad or some other websites and people give builder and builders not be able to modify or export
Any assets in the ah, that's hard permissions. Yeah, so the easiest way I can think of hard permissions is um
Right now if you look at a world imagine it's a circle
And you can edit everything inside that circle so you can just if you're a builder
You can inspect that part of the world. You can inspect the floor. You can unpack the floor
You can look at the logics in the floor with hard permissions
Split that circle into two and you've got a venn diagram stuff
You can edit and stuff you can't edit and then put various things in one of those circles
So hey, maybe the floor you can't edit the floor for some reason there's proprietary technology in this floor
You can't edit it. But hey, maybe the wall you can that's in the candidate circle
That's the sort of way I visualize it
Like I said again, it's not going to be a literal circle in game or the ui for it
But that's the way you should like think about it. Like here's what you can and cannot do aaron says you
Uh, I think you should do logics with you ask for permission if you feel you need it
But I think it'd be a fantastic way to teach people
A good example of that one is the hermit meter
I recreated the hermit meter and halved the logics nodes that were used in the hermit meter
I just looked at it and I went really and I halved the nodes that were at use
I don't remember who made the original hermit meter. I do believe the one aaron has is my one. So
Alex says yo active development hype. Yeah, there's there's still stuff happening
Um, if anyone who thinks we're on strike, we're not if we're on strike. I wouldn't be here. I would be like in bed
Uh, okay. We got i'm finally catching up to the the the compression stuff. Fantastic
Oh the bc3 ragb stuff and then let's go pitch it. Yes. I have no idea
Um, there are so many options there and some of them make my textures change to just blue so I don't know
And then a just says neos will not be running if we weren't. Yeah, if it like of all people
I want you to think about shifty. She tirelessly every day answers patron inquiries every single day
Like it it's got to the point where she's had to like draw the line and set like start and end times for her day
Just have some sort of sense of normality. That's not on strike. That's we care about the community
We're doing what we can again. I've been sat here for 48 minutes answering random questions and saying the word
orbital defense platform several times over we're not on strike, um
Moving forwards miss kitty says, uh, how does one go learning logics for the first time?
Um, I was talking about that earlier. Um, the best way I think is to keep things simple
So your first logic project should be adding two numbers together. Maybe learn the ui right learn how to spawn a node how to
um connect those nodes together how to disconnect those nodes how to view that result do that first
Um, if you're not tech savvy the adding numbers together is it should should be quite easy it resembles
Like how you were taught addition?
Um, once you've got that going there are videos from other critters. I haven't done a beginner logics tutorial
and that's the reason behind that is just because like
I don't know how to approach tutorials for absolute beginners. Lots of my tutorials aren't for beginners. I do apologize for that
It's just like there is a certain level of detail that you need to know
before you watch one of my tutorials and that makes it easier to like
Make them. Um, but basement has an amazing introduction to logics tutorial
um, so if someone can link that whilst I look at some other questions, then uh,
That should help you out there
But I do think that you should keep things, uh as simple as possible to start adding numbers together. Great
Then once you learn how to add numbers together, maybe do some multiplication
And then once you've done some multiplication, maybe do some division, right?
And then once you've done all of the mathematical operators, you should end up with some logics that you can do
I seem to remember zane people know zane. They're the sort of blue wrecks that runs around wearing a hat and sunglasses
Well, like glowy visor. It's not really a sunglasses, but it's glowing that brightly. I gave him a
Uh subset of the node browser, which I have somewhere in my log public folder, I think and it
um has
Only mathematical notes and I just said play with these and um, he's playing with them
They were cool
And then I gave him the t node and the t node is it counts the number of seconds the world has been open
And he started putting those together
And eventually he got like a number that was just doing something and he's like, oh
I wonder if I could make the number bigger and he like, you know added a multiplication node, etc
So that that was cool. Like, you know, he just kept playing with maths until he got there
Uh, dre says I will jump up to uh, dorky's question in just a second. But dre says, uh, what if you're bad at math?
Uh, you can add two numbers together
It's it's more like honestly, it's more about learning the ui
Like if you learn the ui you'll have a lot better time when you start looking at other nodes
Let's start looking at other concepts, but I again see a lot of times is I want to make a gun
Well, okay. Can you link two nodes together? I can't and it's like, okay
Let's let's try one plus one equals two in logic form just to learn the ui
like i'm not trying to insult anyone's intelligence and say like
You don't know how to add those numbers together. We all know how to do addition
It's just that the ui and placing those nodes in the world and linking them up that I want you to learn
Jumping up to dorky says can you explain anim j like i'm five?
Uh, I keep seeing it mentioned try to understand it for all the wiki. I can't wrap my head around it
Lex and I are working on updating the animation for that
I spent four hours yesterday trying to figure out how matrix matrices work in nmj and my conclusion is they don't
So that was fun. Um, but we are figuring bits of it out
I'm going to go ahead and try though and the reason behind that is because I have a very simple nmj file
I don't believe we've got any like shareable nmj files that we've shared before
There are a couple of examples on the wiki, but they're like complicated or not easy to use
Let me just go get my my sample nmj file
I'm, not even gonna upload that as a file or I will provide it if you need it
I'm going to just give it to you as a screenshot
Um, simply because then we can talk about it a little bit easier and I should uh, i'm gonna go ahead and remove the top bit there
Uh, and then load my screenshot a screenshotting tool, please load and then i'm gonna say to visual studio that this is jason
There's that jason coming up by the way if you want to get ahead in the game
if you want to get ahead in the game when it comes to um, basically any form of programming like if you're a
Programmer who's looking to get you know, a new programmer who's looking to make a career in programming or learn programming learn. Jason
Jason is is amazing and used pretty much like everywhere. So learn. Jason if you don't know. Jason learn. Jason. So, uh, here is a
Particular
Anim j file. So if you're not looking at it and in the the notes here i'll try and get a link to it in the notes on on sounder etc.
This anim j file, um will
Change the position of a slot at various times
And so you'll see that there is a list of keyframes and so it will then animate between those keyframes to those values
And that's really all there is to anim j but you can do so many complicated things to it
Um, so if you look at that file, you'll see at time index zero the key the the the left cube is at zero zero zero
If you look at time one, I've moved the cube or whatever to not point two to the left
Why are there so many red lines here expected comma? Did I make an error problem with my
My jason's fine value expected very confused. That's valid. Jason, but it's saying it's not unless i'm just missing something. Anyway, um,
um, so you put that stuff into an animator component and then you hook it up to various properties and then you're able to
Animate it. Um
It's it's basically a way of describing translations. Um, it's it's it's if you look at that that that script above
I put in the screenshot of and you don't see what's happening
Um, then you'll have to wait for the tutorial unfortunately
Moving, uh up because there are questions I missed. Um,
I also keep a hard limit of this at five or as we've gone over by half an hour, but we'll
Stop at five. So we've got six more minutes questions. Uh, so
second
Asks do shared items i.e given to you in a public folder take up storage of safety in your own world. I
Don't know. I think I have an answer there, but I don't want to be proven wrong
I know storage space is a hot topic right now. So
Try it if you save a public folder in your inventory. No
No, but if you save it in your own world and save that world, there is a reference to that item
But it should deduplicate the assets on that item, but there still is a storage cost for saving that item in the world
So, I don't know
Pushka says can you choose to save reference to object individually and saving instead of saving entire object to the cloud?
No, although we'll sometimes do that for you. You just don't know that we're doing it. Easton shows an example of
Adding numbers together again, that's perfect. Uh
Olin says instructions unclear and then shows the adder node
So the adder node I can't remember which folder the adder node is in but we actually have what's called a binary adder in
um in logics, um, I learned that back at university but like, uh
adding together two numbers in binary is like
Magic and that's because it's binary and so adding them together is very very complicated moving forwards Easton says it's possible to make an anim
J animator tool inside a Neos probably not but possibly yes, but also no
Um, the reason behind that is you'll need to construct a json file
Which is technically possible with a lot of string matching and string nodes, etc
But once you've got that json file
You then need to create a file from that save that file to somewhere which is not inside Neos and then re-import it
Like you have to re-import it into Neos as an anim. J file for Neos to kick in and be like, ah
It's an animation. I'll do the anim j processing on it great
Uh double six is what is an mjs and uses animation library?
No, it's a way of representing animations that are compatible with Neos's animation library as json outside of Neos
Uh codices so basically deconstructing a dope sheet into json and bring it into Neos. Yes
Absolutely. Um
Uh
Vrc refugee ghoul or the ghoul. Okay. There we go. Your name is confusing
Sorry, uh the ghoul is there a way to fix the little shelves on my wrist? Those are tool anchors
Those are the tool shelf anchors, um scroll up in this chat a little bit
You'll see the tool shelf or tool anchor tutorial that shows you how to uh move them around and play with them
If you don't want them there, you can also turn them off that way as well
But just I think turning off the anchor will do it. Um, they are great though
Maybe I should do a tool shelf tutorial because people don't understand them and then they struggle to equip tools and i'm just like
Look how fast I can equip tools using my tool shelf and then people are like, oh, that's what those are for
And i'm like, yep, that's what those are for math binary for the adder. Thank you
The adder is is really cool. Zach asks an interesting question about how does um,
Lex's anim j that he shared compared to
Changing it using logics. You could also change it using logics, but sometimes um, it might be better to use uh,
Anim j if you know how to do it. Um, it just depends on what you'd like to do. So
um
in anim j
Lex has the ability to
Do things in a little bit more of a structured way
Where there's the way that would that would happen in logics is is maybe more complicated
Um in some cases what you're doing in logics for animations is writing mathematical equations
Which result in the animation that you want and for anyone that just got scared by that
Don't worry about that. I know that was a scary sentence. It's honestly not that bad
There is a video I have about uh reciprocal motion which uses maths to make an animation
And it is quite easy. Once you get the hang of it, which i'll paste here. We are at 16 59
So specs dorky if you have a question go for it. Otherwise, no more questions
Immediately dorky stops typing. I'm sorry dorky. Is there a difference between the term as oscillating and reciprocating?
Like is that difference? I don't know probably that's a good way of phrasing it spec says animating via logics procedural
You're calculating animation in real time animating via anim j is baked. The animation is a preset of known values. Yep. That's great
It is now 1700 canadian gets you better finish your typed message quickly, or I will send you an angry cat gift
Okay, well cut it there
If you have any further questions
Please drop them in the questions and help section of the uh, neos discord direct message me find me in game
Send me a homing pigeon hopefully with a cheese reward, but uh, I will see you guys around. Bye. Bye
It sounded vaguely mickey mousy. I'm not going to do a mickey mouse impression, but there you go. Bye. Bye