OfficeHours:ProbablePrime:2022-07-05

From Neos Wiki
Jump to navigation Jump to search

<< Previous Next >>

Audio

Description

In this Office Hours, Probable Prime talks about:

  • World transitions (and Stargate)
  • Security(The ToString node... again :) )
  • Builder only zones/cultural issues involved with being able to build everywhere
  • Horse Manure
  • The Streaming Camera

Transcription

(Please note that the transcriptions will not be 100% accurate)


So now we're recording fantastic. So welcome again to office hours. If you have any questions, please drop them in the office hours chat

There is two channels above this one

Office dash hours drop any questions you have in there. I did just check the

Question sheet as well. I keep forgetting to check and there are no questions locked there. So we're good on that

Until there are any questions, we're gonna sit here in unimaginable pain and silence

So get those questions in for those just joining welcome to office hours

If you have any questions, you'd like to ask me about news, please drop them in the office hours channel

That is two above the current one that you're in

Any questions go for okay, so we have some questions coming in. That's great

So I have a question from epic Eastern that says what's stopping you from working on news

Is it legal mumbo-jumbo? And what if your modifications are completely local? There's still problems of that

There are no problems of either of that like I can technically work on this if I would like to

We just can't release it right now. I do still work on here

So I have the code base open most days to just answer questions here

Someone's like how does XYZ component work and I've never heard of that could put it in my life

You bet I'm gonna go to the code and read how it works

It's really useful in that case to sort of you know, just be like cool. I can open the curtain take a look

I have some local changes as well. I keep seeing for those who use version control systems

I go into the code base and I look at my git changes and I'm just like whoa

There's a lot of changes and some files here and I'm forgetting what those are. So sometimes I commit them

Into branches so that I've got a list of branches

I need to push once we're able to make updates like I just saw one which was another invalid default

corner quaternary and quaternion

Made a bunch of components which would default to invalid quaternions

Float is they were default to invalid float queues and

We were fixing up a bunch, but we missed some and people reported that and I'm like, that's an easy fix

I've got like a bunch of those that I was just seeing I'm like, what did I change in this file?

I'm like, oh I changed that to make it a valid float queue

cool

Okay

Next question now, I've stopped saying that terrible word

q

From Lex who says what be a good way of setting up a seamless transition between worlds for larger experiences

So the open world and focus world node are great when you combine them together because the open world node allows you to sort of

Detect when a world is loaded. It's the only way that you can do that. I'm not quite sure how reliable that is

But you can totally do that

What I would recommend there is

Thinking about how you have someone

Start that transition is very important

I see lots of people who want world portals, you know similar to to VR chats world portals those work

Well what I suggest you do for those though is that you when someone hits the portal

Instead of just opening the world they are doing anything there teleport them like under the map or something

put something on their head that looks like a loading screen then trigger the load and

Then focus the world once that loading has has concluded that way you emulate the process of them

Disappearing when they enter the portal even if they're just sort of under the map

You know flailing their arms around etc, but then you can put that visual effect on top

I've seen a couple of sort of experiments. We're doing that with with various visual effects

I'm sure I would love to see if you there's a few I'd like to see is hey

Remember the original long stargate transition they stopped doing it after like the first few episodes on

The stargate TV show they did it both times

There was a stargate trip on the original film because it was very impactful

But on the actual show it made no sense because they just kept doing it

If you watch stargate as well you'll notice the first couple of episodes they have a frosty effect

When people come through they're like oh, they're they're like skin is frosty like they've been out in a snowstorm or whatever

But they remove that afterwards and they never really explain that I mean you can just sort of hand-babe and say they fixed it

But that doesn't make sense for an outgoing trip because the outgoing trip is like how it was intended to work

Yeah, everything about like the the stargate command base is like hacked together because they didn't have like a complete system

But everything off world should be perfectly fine, so if it was like yeah, they fixed it doesn't make any sense anyway

So yeah, I a good stargate transition would be cool. I know that the

Always forget the name of it, but it's like open every day the headless session

Which has swap spheres made by Ray V would be another way to do dual-world transition

They're great swap spheres come from the game abduction. You could also just do a standard loading screen

Just try some stuff out

Maybe I'll add that to my tutorial list

But you will need to use the node for that there are components that can do world portal openings

But what they will do is load you into the world immediately, so what you'll see there is basically

Similar to this is another random tangent, but as we never know there were questions. It's tangent prime time with prime

If you just do a portal with the components for a while transition

They will instantly shell out the moment they they touch the portal and so it

resembles that

veil, I think it's called in

Harry Potter it's order the Phoenix where it happens where Sirius black is down in the department of

mysteries, I think it is

in the Ministry of Magic and

He just accidentally I think he sort of knocked into it in the films, but in the book

I think he like accidentally ends up being sort of pushed into there

He falls into the veil and immediately turns into a ghost and just disappears

And there's no real explanation of what magic is at play there, but like they know he's dead

That's what it looks like they're just sort of like they touch the portal and then they instantly turn transparent

It's like cool, and then they hang around there until they decide to close the world

Whereas if you manually use the the open world and focus world nodes you can actually do a full-on transition

You can start opening the world to teleport them under the ground wait for it to load once

It's loaded close the world that they were in focus the new one a lot a lot cleaner

Something that could also be cool is if you did like a level transition like I know some games do level transitions weirdly

Where they I could example being like one of the early Resident Evil games

They have that door opening animation that was both to say like hey you're going through a door and also to load another part of

The map other games do it with you know corridors you walk down this corridor

And they realize like hey you're on like the cusp between two levels here

So we can load the next level and if you turn around just panic and unload that next level and load the previous level

But the corridor is like in both so you can link those together so again. You can make something seamless there. There's the

The Metal Gear Solid ladder climbing world that'd be a good example like if you're halfway up the ladder like

Load the top of the ladder, but if you're not done moving onwards to more questions here

Specs says the desktop view in the dash is great, but it gets pretty hard to read of screens

I have especially wide resolutions the dash seems to be hard coded best fit

16.9 screens is anything I could do as a user to make my admittedly silly

32.9 screen fit better in the dash or more readable the the problem that you have is that the headset itself

Isn't isn't anywhere near 32.9

I guess making the dash bigger would allow for that

But you'd probably need like a non a non 16.9 dash size. There's probably a way to like resize the dash temporarily

I'm not sure if it would save but that would give you the resolution there

What I wouldn't want to do is any sort of ladder boxing where we try and squeeze that in and narrow it down

She's just gonna lose more detail

That's all I got for you make make the dash bigger

You might be able to do that in-game without any sort of modifications or anything like that

Just go ahead and inspect and use this base see if it saves

Otherwise, you'll have to go into Nia's modding land. See if you can get it done there. You basically need like a better like

a

Better rectangle that can then fit that in and I think changing the size of the dash is probably any way you can to do

that

Rampers just asked for an RSS feed. I've got to scroll back because we actually I linked one a

While ago, I linked one. Yeah, it's here. I'll add it to the wiki if I remember. Oh

Froppy is like so fast. Yeah, there's the RSS feed. I will see if I can like put that on the wiki or something

I'll take a note and then inevitably forget, but I will take a note where I what is it Tuesday? It is Tuesday. I

Had RSS link to office

It's on my to-do list like ultrawides are always causing strange

Strange problems. I know them like some professional

Esports they're banned because the game handles them and and does them really really well

But the peripheral vision that you get is then an advantage and then because not all people have them

They've just like banned them or something which seems strange

I mean if it's like pro pro pro eSports just buy everyone a giant monitor has a benefit go for it

I'm actually dealing with that problem right now in another sense as well, which is

during the steam sale a game called Hydra near was on sale and

It has multiplayer, but it doesn't have online multiplayer

So you have to do steam remote play with a split-screen or to play and so a friend has

Purchased the game and I was about to purchase it until I realized there's no online multiplayer

So I saved my money and now we play it split-screen over steam remote play

but it's a split-screen and so they have an ultra wide and they were trying to fit like

This split-screen game on an ultra wide and it looks terrible

We got some solutions and I'm mostly used to it. It's kind of strange

Sometimes I forget it's split-screen and end up trying to control both characters, even though I'm only one character

If the Hydra near devs are listening, please add proper multiplayer, please

They've quoted that they don't they're not able to add proper multiplayer right now to you to sort of resource constraints

Which is perfectly understandable. It's a lot of of endeavor to take

but you know

Try please cry. So ramp is is remote play and the tech there is great. I agree. The tech is there is great

What are the only thing I don't really like about remote play is it kind of feels like I lose control of my computer

If I'm the host, well, it's it's a it's a it's an exchange like it's it's something you have to get used to

But like, you know, there's always a point where I need to like maybe alt tab and look something up

And if I alt tab the other player loses control of the game

And so it feels like you're kind of holding your computer hostage a little bit

So it's a little bit weird, but it's really nice saves people money stuff like that

Next we have a question from Lex who says the dash uses modal overlays on uix

Would it be a good idea to use those components for own uix pop-ups?

Yes, and no

The pop-ups are great, but you have little control over how they work because they use a couple of sort of delegate II things

Now I know mods can get you access to that

But like I wouldn't be sure if you would have the ability to control exactly how you would like to

what I did for the MMC voting system, which does use a modal overlay is I

Created a modal in the regular world browser and then like pulled

quite brutally the entire modal out of the world manager and

Converted it to my own system that was powered by dynamic variable

So it's still like loads and looks exactly like the same modal that you have but it doesn't use those those modal components

It does use a lot of the sort of visual components of a modal. It just doesn't use the like Neos modal component

Whatever it's called

your

Approach might vary but that's what I ended up doing

I did speak to fruits at the time of developing it and they said the modal could be expanded to allow

Other users to do you know have modals use modals etc, but that that wasn't supported right now. Keep those questions coming

We have about 10 or so minutes left on the the office hours happen

sometimes I run over that huge because I'm ranting about cheese or something, but

Carry on. Hey Kip as a question. Is there a way to use a material as a texture input for another material?

The only way I've seen to do that is to use a camera that happens a lot like a lot more than you realize

Trying to think of some examples

Like neoto shop in the polylogics folder is a good example of that that uses a camera to

render the

like the final composition

Neota shop is basically stacked brush pixels

so they usually they have the sort of base texture at the back and then in front of that or any number of sort of

Brush layers and then on the front of that is a camera that's looking at all those layers combined

And so you remove that 3d effect of those stacked layers and get back to a flat image like says any curved UX really?

Yeah, um the actual dash does that same concept?

What we do is we take a flat version of the dash and then project it on to the curved

Curved plane mesh so it can be curved

I have the curvature set to zero on my dash because I can't really stand it

I know other people like it, but like I'm just like what?

So have a look at those. There's a couple of worlds that do it as well

Using the same concept as like build as a neoto shop building a key to an early

World by myself that let you sort of customize what your a key to model by zap uses it

my MMC

2022 entry entitled on purpose uses it for the well poles are in both sides of that room check that if you like

It's an artistic piece that is open for interpretation art is always subjective so have fun

That uses it various other places use it vigil abo's water droplets

I know other people have done it but like vigil abo's is the one that comes to mind if you go into their public folder

They've got a water example where you can kind of like put your hands in the water and it splashes a bit that

Again uses a camera. Oh

and

snow globe of working snow

That also has it that's how we do the the like footprints in the snow thing moving onwards to hack 13s question

Who says I?

Wanted to know if I wanted to hide a string inside of Neos that I want to pass to a web socket or something

I've seen the cloud bears don't show their data to someone who isn't on the allowed list which consider that a good way of hiding

Something like that example in a bi key. No, I do not recommend any form of authentication in logics or Neos at all right now

The only way I would like say it's acceptable is if you have a private world with one person in it

Otherwise like who knows what they're doing. You've also got the problem there of like however secure

It is if it's let's say it's an API key. Let's say it's in a cloud variable at a certain point either via

components or maybe a logics ribbon

that value is extracted from that sort of in quotes secure environment only one person can read and

Passed to a field which anyone can read and so that's why it's not secure like example area like if say you did

I don't know read cloud variable and of course require variable can only read like a user's value for example that

You might think that's secure right because only this user only has this value and due to the cloud very permissions

I've set up so only the user can read their own value that sounds kind of secure

But it's not because that read cloud variable node

Then outputs just a standard string with no protection and so let's say we then plug that require variable node

It's output into on a regular write node to then write it into a string registrar ever that string register is just

Publicly readable there are advancements in sort of the feature called hard permissions

Which may allow for more sort of secure related things, but anything that has authentication

I don't recommend doing or trying to sort of work around it good example here being the

MMC voting world in the MMC voting world I disable cloud avatars

I disable all locomotion except one I disable two shelves

I disable like basically everything and even with that

It's still not secure, and that's why we have logging up the wazoo right I

At the end of every MMC voting I go through the logs

And I pair things up a good example being I can go through the logs of the session from the header server

And I can say like oh hey look

prime joined at

1624 and then I look at my list of votes on the voting server, and I'm like prime joined at 1624

And then he made three votes at 1624 great

I can I can match those up and still be unsure because there's still some issues that might occur there

But I can still audit that and be like ah it looks like that makes sense right that makes sense

But like if I see prime joins at 1624 and then Fruxius made a bunch of votes

But Fruxius wasn't actually in the world at the time then I'm like hmm looks like prime was doing something weird

Better throw those votes out so hack 13 has gone to say that they have an intermediary API that holds the key and

The in the issue just pass request to it that is good because

You are in control there again

You can add like additional security for example the outgoing service that you're trying to connect to that needs an API key

Might have rate limits that you know you usually won't exceed, but maybe you put like slightly more

strenuous or strict rate limits on your intermediary API because there is that level of sort of

Ambiguity about who's doing it and that way you can protect

Your API key and your network from having

Too many requests compared to just going direct and stuff like that

You can always put that layer in the middle there and add a little bit more sort of scrutiny

Moving on to Lex's question is there a good way of detecting when someone is live through components

I believe that there is a component for it excuse me moment

The component is what drives the live badge above someone's head the problem with that though

is that if they are not using the mirror to display option on the streaming camera or

Something like that or forcing that live badge on which is another option then they could be they could be live

Just using the Steam VR mirror or the direct output of the of the monitor view the desktop view of it

Kip says good idea to like always assume that you're on camera

Absolutely always assume you're on camera. I'm kind of sort of

indoctrinated into that which is

Strange that came from the sort of the mixer days when I worked at mixer

It was like hey, you know everything you do wherever you are assume

You're being recorded in the sort of streaming space less so in games, but like everywhere. I use the name probable crime

I'm like yep. I'm marine recorded. You don't know about my old accounts. Yeah, I'm gonna hack the matrix of my old accounts

Moving forwards

to

Lexie says

Same question as Bob

But detecting permission levels in world for example if you want to set up a builders only zone

You can't do that right now now. I know that someone in here is going to start typing about the two-string node

And I get tired of talking about the two-string node

But I'm going to talk about it again because hey this is being recorded and anyone that listens will hear this feel

Before a certain update the two-string node would allow you to receive a text based output from a user

that included their permission level to string is a

debug process on

Much much of programming on second was a cough off Mike

And so in programming you use a two-string operator lock for debugging and logging

So two-string would be like I don't know what this is dot to string it and it gives you lots of details

That process is designed to give you a text based representation of the object at its current moment

It's not designed to pass that data back out into any other form

but what users were doing is running a bunch of substring operations on that two-string output and

It was causing a problem that is not intended way to use to string it

Never was so the fact it worked was actually just a miracle like it's just a miracle right it was just random

Frukes made edits to the two-string output to include that and had forgotten that he'd done that and it was purely for logging as

We changed that such that the two-string output is now more stable and will never change and

the

Response to that was you remove the role information and it's like yeah

You shouldn't have had that in the first place and people go like well why and the reason is because again the security principle

You take a known object which has a known property permission and you change it to a string and then you start doing operations on

that string

substring

Index of string etc. And then out of that you get a single string which shows their permission level that string could be intercepted

By any number of mechanisms points at the modding community who are mostly good by the way

This isn't a modding community is bad

This is just the modding community have the ability to do this

So should a bad actor and again not accusing the modding community of being bad actors

They are fantastic with the mods that they are producing but a modding person could

Theoretically edit that string in place using a mod and give you a different output

So let's say you had a system where you're like, oh if they're a builder show this really sensitive piece of information

Or allow this sensitive access to the world they could

Theoretically again not using anyone don't take this out of context

Bypass something important

So that's why it's not allowed in the future when it is a secure option that we can allow you to receive the permission level

Of someone securely and take a look at it securely. We will allow you to do it until then it is not secure

So we're not allowing you to do it specs has a question here, which isn't marked with the emote. So it was a marking

But I guess it doesn't have a question mark, but we'll go to it

So we'd love to hear about making builder on his own

So although it's restricting errors for using things like deb sips within the only surefire way to do that right now is

Socially or like community wise a good thing

That I've seen a lot of people do is they put more rules in the rules and we have had some issues with that

But they put more rules in their world. It can be anything like going back to that

That world the headless what I can't remember the name of it

But it's again the one with swap spheres that rahivi did there is a big sign there

With the truth Ozi and next Ozi is like please do logics in the nerd dome or some sort of phrasing like that

I knew it was something simple like the sandbox, but I didn't want to be incorrect and

That is a perfectly reasonable way of doing it, right? It's a sign that says please do logics in the nerd dome

And like I will do logics in the nerd dome if I ever want to do logics in that world

And if I'm not doing logics in the node

The the nerd dome then cool. I would expect someone for example Ozi to come over and be like

Yo, take it to the nerd dome

That's a cultural way of doing it if you want to restrict it technically or functionally right now

There are some things you can do, but I'm probably not going to recommend any of them because they will all break

Depending on what as a community we need to come up with sort of like ways of I'm gonna cough again one second

I hope I'm not getting sick, but maybe today is just a coughing day. I'll go drink some water later

I hope as a community we can come up with ways of basically being more reasonable about rules

I have had lots of problems of having rules in my sessions with people being like hard done by or

Problematic about them or arguing about them, but it's just like if I go to your house not peeking anywhere here

but Ozi if I go to your house and

I come in with a bag of horse manure, and I start throwing it everywhere

You're going to be quite annoyed of me and kick me out

You don't have a rule on the wall of your house that says don't throw horse manure in my in my property

But I know that that's unacceptable

It's so if we start with that level of foundation we can then move forwards, which is I now know

What is unacceptable in general society? Oh look? There's actually rules posted?

I will add to add these rules to my general understanding of what is acceptable in this world, and then I will follow them

That's all it requires

Sometimes rules don't make sense like I was watching

Like a border security TV show there's lots of them depending on which country you want to watch and the border security UK one seems

Very concerned with cigarettes right you can only bring a certain number of cigarettes back into the UK

Before you have to pay duty on them, and I don't understand like that rule. I would respect that rule

I don't smoke, so I have no reason to break that rule, but I would respect that rule without understanding it

But I might ask what it's about, but I'd ask about it politely. I'm like

Why I don't understand like I get the whole like don't bring guns in don't bring drugs in

But I'm just like they didn't pay tax, but they brought it elsewhere like why are they paying tax when it crosses the border?

I don't understand

So I would go I would go look that up. I've been meaning to do that

It's on my to-do list by just having that time

Moving onwards because I'm now ranting about horse media for a long time for no reason um

Repices there's now community a list of safe modes. I did read that you've got the

Like compatibility checking the the hashing checking beautiful job again

I'm not accusing the modding community of doing anything wrong

I'm just saying like there is the ability for an unknown actor to

Intercept that string value and it would use something similar to the the tools which the modding community use

Moving on to questions and not talking about horse manure. I'm gonna regret that are they um

Zenny welcome to the discord as you're new welcome to me as they wanted to ask since I'm rather new to Neos relating to cameras

Is there a way to get a third-person camera if I were to stream as I could never figure that out?

Yes, you need to use the streaming overlay

Thingy, I know that doesn't make sense because issues what thingy with a new user give me a second here

And I will get you the information that you need and properties faster. That's totally fine, too

So there is a button on your home screen that is called camera streaming and opens up this very big confusing UI

But I don't want you to worry about it. I will not type steaming into my tutorial searcher. I will

Find the correct video that isn't steaming. It's streaming

And then just give you some it's up to see froppy beat me and I'm just typing the word steamy and

Into my video search so all I want you to do for the third person camera is to open the overlay which is that?

Camera streaming button and then click two buttons on it

I want you to click mirror to display which is the first button to click and then I want to click third person

They're very big

They're on that UI very clearly and then I want you to peek underneath your headset at your main monitor

what the mirror to display will do is it will mirror the camera output to your actual display and

then by clicking that third person button what you're saying is for the

desktop window is in them the actual physical monitor display third person, but for the

For the headset still display third person and that's actually what you see happening in that thumbnail as well, which is

Hey, I am in first person inside that headset with my hand up to my face and

I see first person but I'd mirror it display third person and I can see that if you are in desktop though

F5 is like says I got it better about not wittering on sometimes. Well, anyway next question and we are over time now

So as any if you have another question, please feel free to type it. Otherwise, no more questions. So as any it's the last question

Thank you. Ah

Rizzo says does the on saving node have an opportunity to affect the asset being saved or is it too late when the notice fight?

Impact the asset being saved. That is a good question. I will take a look

Okay, so there is an event flow

Which is approximately?

Let me take a look

control

Save control here. It is save control reference on before save start saving

Okay, so there are two there are two events that happen

On saving there is the on saving node, which is technically under the hood called

On on before save start so you should be able to use the on saving node to affect the world

Basically, the the plot the the thing goes I'll type this so user presses say we'll just use a press to save on saving fires

Saved fires and then you know, the object is saved so like that

There's the order of operations. So on saving should give you an opportunity to do something

What is important there though?

Is that you can't have any nodes which will delay execution till the next update because that might cause problems

So avoid that the delay node the updates delay node and anything like that

Because that will will have problems there. That is a whole topic for another tutorial though

It's like yeah

cool

The update delay nodes and stuff like that very very complicated

If in doubt a update delay of two usually fixes stuff that requires an update delay

so zenny has an update which says

I'm actually asking something related to my hardware. So I got a new headset

I got a g2 omni on set from a buddy of mine

I wanted to know because in the past you to have problems if able to use it foul off config

I think you are I'm not entirely sure there are other people in the community that have a g2 omni

Sep so please ask them questions and help just say like I have a g2 omni sept anyone got any updates or

Information for me and they'll be happy to help you out is the omni sept the one that has eye tracking that we don't currently

Support I think it is

If it is then it is the headset that doesn't have eye tracking and it's for a very strange reason

No, it doesn't have mouth tracking yes, that's the one so the omni sept has mouth tracking

But it doesn't export the data in any way that makes sense for us

What it will give you is basically a picture of the user's mouth, which is completely useless

I mean it isn't useless for like people who want to develop custom mouth tracking algorithms

But what we want is a similar SDK to the vive mouth tracker

Which is it does all the logic for you and outputs a list of weights like is the mouth open and when I say weights

I mean the mouth trickle output. I am 50% sure that the user's mouth is open and then we can act upon that

Whereas the omni sept mouth tracker is like here's a picture of your users face like thanks. That's

very useful

We could put open c-face on that. It just sort of like it's a

It's a foundational approach about Neos is like do we?

Do we want to start doing that and the reason behind that is because like doing that is sometimes like quite

Resource intensive and we are not experts in that we could of course get

Amazing amazingly experts at that we could do a bunch of research. We could do a bunch of work. We could spend months

Prototyping it we could even submit scientific papers or we could just like use existing things like open c-face and stuff like that

But then we have to maintain that I don't know what g2s

Goals are with the mouth tricking like if we knew that it might be better to sort of say like oh hey

We actually need to stand in here, but it's a lot more work than adding another device

Which already does that let's say prime comes out with a prime face tracker, and it outputs weights

That would be like I don't know a couple of days work

Outputting the mouth camera from the g2 omni sept through all that stuff

That's more like a week to like half a month depending on how complicated it is

I believe that's all the questions we have so I'm gonna go ahead and end things off here quick reminder

Go ahead drop in the questions and help channel if you have any other questions direct message me directly

Knock me about things call me Susan. Whatever you'd like to do totally fine by me. I will see you guys next week

If you have anything else you want to add please feel free to do it

But this will be the end of the office our segment. Goodbye