OfficeHours:ProbablePrime:2023-05-02
Audio
Description
In this Office Hours, Probable Prime talks about:
No description available, sorry!
Transcription
(Please note that the transcriptions will not be 100% accurate)
Welcome to Office Hours, it is 4pm so I'll go ahead and get started.
This is a half hour to hour segment, depends how much I waffle about cheese, where I answer
your questions about Neos.
If you want to ask a question, please drop it in the Office Hours text chat, that's
a couple of channels above this one.
We've been absent for a couple of weeks, I was on vacation, and by vacation I mean
I stay at home and people come and stay with me, and then we do vacationy things.
It's like, cool, I actually visited the town I live in.
Excellent.
Anyway, moving on with Office Hours, let's go ahead and get those questions that are
waiting, read and answered before I go off on a random tangent about life.
So Tiki asks, "Joining my headless of hundreds of megabytes of project pictures taken so
long to load, it often times out and just stops loading any further from new users.
I tried moving to 2 gigabit internet connection, and with 8 new users loading, it doesn't
even approach 1 gigabit throughput.
Is there any optimization I'm missing?"
That's probably the asset variance system trying to help you out there, and me being
a bit slow I'm not entirely certain.
I'd have to look into the world itself and some of the late loading stuff there.
There are a bunch of issues open on GitHub for assets loading slowly and gather jobs
getting stuck.
Both of those issues boggle my mind and drive me completely mad, they affect friends of
mine, and all sorts of things make me not fun to play.
So we'll look into that under those two issues.
As for optimizations, don't have hundreds of megabytes of project pictures in your world.
I'm sorry, I'm sorry, I know that's weird, but that is one of the ways to prevent that
from being a problem.
Moving onwards, Tiki has a second question which says "On the same chain of thought,
is there any reason why exporting a picture disk takes multiple seconds instead of maybe
a second or less than I'd expect for a megabyte?"
I have noticed import taking a long time, particularly like normal maps, sometimes they'll
import a normal map and it'll take like a minute to show up.
I haven't noticed export taking a long time.
I have with like a complex mesh, but I'm talking like millions of triangles so I kind of just
give it like a free pass and hope it doesn't crash when I'm exporting a mesh like that.
Make sure there's a GitHub issue launched for that, and I'll take a look at it when
I can get to it.
Lex asks "Any updates on making the native build of Neo's work again?"
There are no updates on that front.
Please continue to read announcements, and be patient on that one.
Next is Unnamed Cyborg Cat says "Is text-based programming a feature yet?"
It is not a feature yet, it's a feature request you can take a look at.
I think there's a couple of GitHub issues for it, but take a look at those, thumbs them
up, and we'll get to them when we are able to.
For the past, I don't know, like four or five questions, it might have seemed like those
are sort of hand-wavy answers.
Do remember the "I can't live debug" because I can't live debug with you guys, it's not
something I'm capable of doing whilst I'm on air, so to speak, in inverted commas.
So do you guys call it like inverted commas or quote marks?
Back in the UK we call them inverted commas, because that's what they are, they're two
sets of inverted commas, they're like upside down commas, but whatever, quote marks.
Anyway, so make sure there are GitHub issues open for them, and we'll look at them when
we can.
I get it's a problem, I just sometimes can't just dive into code.
I do have it open, so sometimes I'll dive in to answer a question, but if it's a bug
that's going to take me longer than a few minutes to look at, it's just not suitable
for this particular environment.
M3-opera-e-m-machine3, I wondered if you were the person who made the machine3 blender add-on,
but probably not.
Maybe, of course though.
Is it possible to use Neos for business applications like an art gallery?
Yeah, you could totally do that.
Do remember that for certain business applications you may need Neos Pro, the best way is to
read the Neos Pro wiki page to understand what that is, and before purchasing Neos Pro,
email hello@neos.com with your request for Neos Pro and see if they get back to you about
their use.
Art gallery, as an example, would not require Neos Pro, and actually would be quite nice
to see, you probably have to have like lockdown permissions, and therefore not many people
would visit it from our community, they would want to have permissions in there, but if
you had an audience they would be able to visit it quite fine there.
Headless server, as Linker says, can handle quite a bit based on performance.
I usually like to say 20 or so is where you start seeing issues, people go up to 30, but
then issues really start to appear.
It also depends on if you're having a full iCade avatar or just a head and hands avatar.
I know that number is quite low, you can push it depending on the specifics without knowing
where you're hosting your headless or what specs of the headless machine you're having.
20 is the number I would start with, and then I would experiment at going higher than 20.
So we have a follow up question from m3rpmmachine who says "Is it possible to automatically
push someone to a specific server for the world?"
As weirdly overloaded term for Neos, it is possible to host a headless session that exists
and is always up, or is up as long as your headless host is up, and make that available
to be easily joined in a variety of mechanisms, yes, it just depends on the exact specifics
of your circumstances.
For example, it's possible to make a headless world and then give everyone that you want
to join a shortcut or batch file for Windows which launches them straight into that world.
You can also use various invite links and things like that to get them in there.
When doing that, make sure that you're utilising custom session IDs, because that way you don't
have to change the session ID in the link that the linker just posted.
As a good example here, the MMC voting system uses the same custom session ID each year,
which means that gadgets or widgets that take you to the voting world that worked last year
will work next year.
But there are no remaining questions in the list, so we can sit here and chill out for
a minute if additional questions come in, that's absolutely fine.
Hope everyone's doing well.
Does anyone know what a foot hammock is?
Because I have a foot hammock and I just repaired it.
I had to buy rope.
Because a foot hammock is like $12 to $15 on Amazon, but I'd ordered two and I broke
both of them.
And then the rope got frayed and then snapped.
So I was like, I'm going to order rope and repair it using rope this time, because that
seems cheaper, because I can just keep repairing it when the rope frays.
So I ordered rope and I thought I got the right size, but the rope's too small, so it's
going to break more frequently.
So now I have to make the choice of, do I want to repair it more frequently with additional
rope, or do I want to get a better foot hammock that's not going to have the fraying problems?
So that's my predicament.
The reason why that's front of mind is because the spool of rope I bought is next to me.
I could have ordered, I don't know, like a small amount of rope, but this large amount
of rope which I ordered was cheaper.
It was like double the rope for a dollar.
Like I'm looking at that spool and I just know that spool's going to be with me for
like five years.
I'd be like a strange sort of pet in the closet somewhere.
It's just a two millimeter diameter natural rope, that's it.
I should have got four millimeter diameter.
Oh well, what are you going to do?
I should always like change up the rigging of the foot hammock as well, like do my own
sort of knots and that way it would last longer.
So I'll do that if the current roping I've got fails.
I know this is random, this is what happens when we have no questions, we talk about rope.
Tabbing back over to take a look at questions.
So we have a non-neos question, I reserve that because we have neos questions coming
in.
As Lincoln says, 21 people in on the office hour, but so little in here.
Do you think I have a general "hey the thread exists", everyone just listening in?
Yeah, if you want to ask questions, go in the thread, ask questions in the thread.
Now an interesting question which is philosophical in nature from Dove here who says "would you
say that VR as a whole is a form of escapism or more a form of a new social interaction
or both?"
It's true, neither.
It can be used for escapism, due to current circumstances it has become less of an escapism
for myself personally, but I get the whole escapism angle, I would encourage people that
are using it in that way to ensure they're doing that healthily.
You can get addicted to basically anything, so try not to get addicted to the escapism
of VR.
A new social interaction is also true, yes, so I'd probably say both.
I think about it this way, right?
So I live in a rental, and in a rental, as I'm sure you're aware, you're limited
in what you can do to decorate, and so most of the time you're gonna find that it's
like, hard wood furniture that you take to each rental that you live in, not much stuff
on the walls, and white walls or beige walls or that horrible grey colour they sometimes
paint apartments, right?
But if I put on a headset, no matter which rental I live in, I can be on the moon, I
can walk along the Great Wall of China, I can go to a nice field, I can touch grass.
That's escapism.
But I can also put on my headset and speak to people from all across the world.
I don't know if, yep, they're here listening, so I see Soap, Admiral Soap, moderator from
our community here, they're in Finland, right?
I don't know anyone in Finland until I walked VR, now I know someone in Finland!
It's cool.
Sorry to call you out, Soap.
Yeah, moving onwards.
Lax says "I found that the OnStartLogix node doesn't fire when I'd like it to when
loading the worldstroke object that it's in.
It fired before the logic's fully loaded, breaking the chain.
Would you know a way to make the logics, to make a logic's pulse, pulses whenever a user
is loaded into the world, just the data without the assets?"
Have you tried OnLoaded?
Is it onloaded?
Am I just forgetting now?
You know how you navigate it to every logic's folder on the planet multiple times, but you
just forget?
You forget what's in each one.
I'd have to look into how OnStart works, and those event nodes in more detail.
I know I always confuse OnStart with OnLoad, which is why I think it exists.
Sometimes I also have fun when I use OnDuplicate, and then I forget, and I duplicate the grab
instancer thingamabobby.
To explain that better without using the phrase "thingamabobby", because that doesn't
make any sense, let's say you have a grab instancer, which is where you grab something
and it makes a clone of something, and then you have an OnDuplicate node on that template,
then it'll run some logic when you grab instancer.
But it'll also run that if you happen to duplicate the template holder.
So let's say you have a bowl of cookies, where the cookie graphic is a baked mesh,
and when you grab on the bowl of cookies it spawns a single cookie, and that's what
you grab with the grab instancer, and I don't know, the cookie makes an explosion noise
when you grab it because of OnDuplicate, if you duplicate the table that the cookies are
on, you'll get an explosion noise, which is often fun.
Try OnStart.
Wait, not OnStart, OnLoaded.
There's also the hacky thing that the playerlist module thing in the mystic-ford, no not mystic-ford,
the polylogics folder does, they see if a localised boolean is true, and use that to
do their playerlist, that might work.
Alright we have a question, good.
Playercovey says "Semi-blender to Neo's question, I made a 3D model of a text and
it was made in a special font where it is more complicated than Times New Roman, but
important to Neo some letters, p's and o's and sometimes a is important to any words
in concave or not to keep the arches.
I can continue to find a way to solve this problem via the question channel but not show
this common issue for Neo's invention where it prefers more flat surface rather than complex
holes in 3D models.
I can absolutely help you out there.
Before you export that piece of text you need to triangulate it.
I predict this is what's happening, I don't know for certain, but try this.
There is an operation you can do in edit mode, or you can use it as a modifier in the modifier
stack of Blender, where it will convert any weird geometry down to triangles before export,
and that will generically help with that kind of thing.
The importer that we use for models and meshes etc doesn't like weird vertex stuff.
I'd love to state that quads are the way of the future, because of course they are, but
in some cases you just need triangles, man.
Some of the export options on Blender will also do an auto-triangulate before export,
I can't remember which ones will do that though.
Triangulation is the problem.
Yeah, try triangulation, and then from there we can try some other stuff.
The other thing you have to check is to make sure that it's not generating any upside down
normals.
If it's doing that, then you might see some oddities as well.
So once you've generated the text you could look at sort of recalculating the normals
as well.
With that, I don't see many additional questions coming in, so do remember if you are listening
and want to ask a question about NES, please drop it in the Office Hours text chat, there's
a few channels about the one you're currently staring at.
I keep forgetting that stages now have chat, so maybe at some point we'll swap to using
the stage chat, because that actually would help the whole "where do we ask questions"
thing.
Thank you for those who are redirecting those things.
Yeah, soap says "don't know if we can archive stage chats the same way" I'm not sure either.
It's really weird how with a handful of additional features or tweaks, Discord could be a really
good app for this sort of things.
For this sort of things, you know what I mean.
For these sort of things.
But it kind of misses it.
Moving forward, we have a question from Lex, who says "how does the world relation enum
on the open world logics node and link component work?"
So that is a holdover from some of the old stuff that we don't really use anymore.
I'm not quite sure we haven't removed that, because it's almost almost better to use independent
these days.
So if you remember the balls in your hand that you would use to switch worlds, if anyone
is new to NES, I apologise, this next like five minutes is going to sound like a fever
dream.
Legacy World Switcher, there you go.
I just called it like the balls in my hands.
I called it much more offensive names occasionally.
Lollipop Menu is something else that people called it.
It's called the Legacy World Switcher.
The Legacy World Switcher formed a sort of branching tree pattern based on the worlds
that you opened, and it was sort of like where they came from, how you linked into them,
and things like that.
Those are what those enums usually control.
So the first one, where were the values?
Whoever deleted the values, I'm going to like shake your fist, because I was going to run
through them in a list, so put the values back, and I'll go through them in a list!
I didn't have them to hand!
Independent Nest and Replace, I think.
There we go, thank you so much, Linker.
So Independent makes an independent branch on that World Switcher, so it'll just be a
new branch that occurs, like a new branch.
Nest will usually make it an extension of an existing branch, so the branch will extend
by one length, and then Replace, I believe Replace will close the session that you're
currently in, and load you into the new session of the OpenWorld Logics node in the same place
in the tree as that one.
Like I said, I don't know why that still exists.
There may be some additional behaviour that happens there, because I do know there is
still an order to sessions.
Even with sessions now being either in the World
or in the
links from messages and contacts and invites and stuff like that, it just -- I'd love to
standardize that down a little bit further so it makes sense.
In fact, you know after a hard night of Neos partying on your legacy World Switcher, it
looks like a complete mess?
In some cases, that's what the World Manager code looks like when you're starting sessions.
Just like, wait, where are we?
Oh yeah, I'm in the code which does it from the website.
I should be in the code that does it from the World Link component.
Okay, here we go, let's go over here.
Ooh, that's a good question there from Player Cody, who says "Is there a component on a
3D model where any all applied materials will fix the stretch size, you need a rectangle
shape to look like a wall?
I see that two out of the four sides will look natural when applying materials with
siding, when the other two sides will look stretched."
That is UV mapping.
We're unfortunately limited in the support that we can provide in-game to edit those
UV mappings of those primitives right now.
So that's what you're experiencing there.
You can mess with on the primitives, usually there's a UV scale input box for UV scale,
so you can try that.
There is also UV scale on, it's usually called texture scale though, on the materials, you
can try that.
If all else fails, you can try a triplanar material.
When it comes to triplanar, I use that as sort of like the last vestige of sanity, because
I believe there is a performance cost to the triplanar one.
There is also the problem with the triplanar, which is if you move the object you'll start
to see the triplanar scrolling.
You can fix that by checking the object space checkbox in the material for that though.
When checking object space into it, it messes up all the scale components because it recalculates
like all the maths and you're like "Ah, my texture scale is wrong now, I need to replace
it with more numbers!"
So I've come across that a lot.
A good example for triplanar that occurs is the convex hole rock brushes, I believe those
use triplanar by default, because they're sort of undefined objects until the convex
hole is drawn.
You can see an in-game UV editor in the future, that would be great, you'd be able to fix
up stuff like that.
I know that's part of the logic from the Ringen and the Nylander that Sloppy made, they made
a lot of custom geometry for that tool, where the UVs were set up in a particular way to
make that sort of problem less prevalent.
Trizes and triangles, yes, playcoding.
That might work.
I haven't personally seen that fix it, but if it works, then it works.
With that, I don't see any additional questions, and we are at the limit.
Well, one of the possible limits that occurs depends on the conversation currently happening.
So any last call for questions?
Anyone got any additional questions?
Thanks, Duff.
Did I miss 4.11?
I'll double check that, because I thought I did 4.11 before I went over to vacation.
I'll get them fixed up and linked.
I know it takes a while, it's just because sometimes I need my computer's resources,
and running the text through transcription is taking a lot.
I do need to do the whole "I'm a nerdy male who lives alone in their apartment, let me
put a server rack in the corner" I need to do that, but I've got time for that, and then
I'll be able to run it on that, but I need PC resources to do stuff sometimes.
So I'll try and get that up to date.
Angry says "Why are Qods better than Trize?"
Qods are easily manipulatable in Blender, using quad-based operations, things like edge rings,
edge loops, various other terminologies for that.
If you just imagine an elastic band around your arm, and you slide that elastic band
up and down your arm, that is what the topology of an arm on an avatar should look like in
Qods, right?
It should look like that, and each time you move that elastic band, that would be a loop
of Qods that are linked together, and you can subdivide those Qods really easily by
just splitting them in half down the midpoint, and then you have two Qods on either side.
The problems that occur with those is that some engine, some importing thing, some shaders,
some textures, some stuff like that, can't deal with them as well.
They need the extra information that occurs from the extra triangles in triangles.
So a Quad is four points, and to represent a Quad in triangles, you usually will double
up each of those points, because then you have a triangle where two of the points overlap
between the two triangles.
With that, I'm going to go ahead and leave off there.
I'll get the notes updated as soon as I can, like I said, and if you have any additional
questions, please drop them in the Questions at Help channel, or direct message me directly.
That's a redundant statement.
And I will see you again next week for more Office Hours.
Make sure to bring your best questions.
Speak to you soon.