So welcome to office hours. This is the half hour, sometimes an hour, sometimes 45 minute segment.
Depends how long we are on the questions, where I answer your guys's questions,
whatever you want to ask, up in the office hours text chat.
So go ahead and drop those questions in there, and I'll get to them as soon as I can.
No main announcements today or anything like that, so we'll just get straight into questions.
We have a big question from Specs. Thank you for a big question.
I will skip over some of your message here, so we'll just get to the actual questions.
But I will read them out for the benefits of the recording.
I'm also going to like cough or hiccup, just give me a second here.
Okay, that's better. I just did like all the mouth noises at once whilst muted.
So Specs asks, beside network latency stroke reliability, is there any reason mounting
a Neos cache on a network drive like an NFS or SMB share wouldn't work or might cause problems?
Um, it depends on like how those things handle the ownership of those files.
I have seen issues with other applications, not Neos, where when I, I think I was running
like a Node.js program inside a folder that was being synced by Google Drive,
which is a terrible idea, don't do that.
Node was just like, oh my god, I hate you.
And Google Drive was like, I know, I hate you too.
Uh, so that's the only thing I can think of that would cause a problem.
I'm not sure why you would share the cache though.
Like the cache really is just meant to be like junk temporary data.
If you mean like the data directory and not the cache directory, then maybe,
maybe that might be worth it.
I don't know though.
That's really the only thing I can think of is like file contention.
Um, you know, if NFS or SMB are like, this file's changed, I'll change it whilst Neos is going,
but I'm changing it, mommy, you can't change it without me changing it first.
Then you'll end up with the problems.
I'll move on to the second question, which is bigger question in bold.
Interesting.
This is, would you also be able to have several headless servers of any kind of Neos client
share a network storage for a centralized cache, allowing for shared cache across say
a household machine that runs Neos?
No, no, don't do that.
Um, so the cache is, um, like again, it's meant to just be temporary files that, uh,
can be thrown away if necessary.
You shouldn't be syncing them across multiple clients.
I know that that seems like it would save space and stuff like that.
Um, but I think at that point where you've got multiple copies going, um, they'd probably
fight each other, uh, you know, uh, uh, as an example here, let's say both servers just
happened to load the same user.
So I don't know, Mr.
Mr.
Pro will prime and his into a headless session on both of those servers within a couple of
minutes or whatever, perhaps, um, both servers would then be trying to write the cache of
my texture at the same time.
And they would just fight.
Uh, I don't know how that would work out.
Certainly not something that we have programmed for.
So it might work.
It might not work.
Feel free to try it.
I don't know why you would, but there we go.
Moving towards to Haz's question.
I was wondering if there's a Wiki page that lists all the supported protocols, strict
formats that the Neos video player supports.
Uh, yeah, so we use, uh, YouTube, uh, YouTube DL dash P or something.
It's like, like, Oh, it's YouTube dash DLP.
Um, YouTube, it's just like DLP.
Oh yeah.
That's what they call it.
Um, so anything that's, uh, that supported here should theoretically work.
Um, but, uh, I can't find easily because this is like the most complicated thing ever.
It's like the best library ever, but also incredibly complicated.
I can't easily find the supported, uh, doobly-doos for it.
Supported doobly-doos.
Yes.
That is a phrase.
I don't know.
There's a list somewhere on that page.
It's like one of the longest read me files I've seen in a long time.
But, uh, take a look at that.
Uh, sometimes we need to add additional options to that.
Uh, Oh, there we go.
Alex has got it for us.
Thank you.
Sometimes we need to add additional settings to some of those so that they actually work.
Uh, I seem to remember Pico live being a thing.
Um, I haven't opened the code base yet, so I'll get that opening and take a look where
that code is and maybe I can get a list and add a Wiki page or some kind.
And then one of it, uh, no, no, uh, has, uh, YouTube DLP does a bunch of stuff.
Like I know, I seem to remember it as Pico that we did it or as Picato or something.
Yeah, Picato.
That's the one.
Um, Picato is like a stream platform usually used more for artistic purposes.
So you get lots of people doing art there.
I know people do art on Twitch too, but, uh, Picato is kind of set up to be, um, more of
an art community.
So we had to do something to make Picato work.
And then I think we also had to do something to make a couple of, um, Eastern streaming
platforms work as well.
Uh, let us move forwards.
Uh, UKS is full body work.
Full body does work.
Yes.
Next question.
Uh, Kintron says, I've noticed some video players spawned from TikTok links refused
to load the issue of TikTok platform.
Most likely TikTok platform.
Yep.
So, uh, I don't really know what to do about that.
I'd probably have to get a log file.
Um, maybe open up actually a GitHub issue for that.
It'll be good to sort of track any platforms that don't work.
Even if you think that they, you know, if you think that they should, and then they
don't go ahead and open one up, you'll probably search the issue list for Picato and see that.
Cause I'm quite, I might be misremembering.
It was a long time ago, but I think we had an issue, um, with Picato.
That was a GitHub issue.
And then, um, it got fixed.
Let me see.
Sure.
It was an issue.
Uh, tell you what, I'm going to find in files through the entire Neo source code for Picato.
Matched none.
Okay.
Might actually be in the unity, um, project.
Let's go ahead and take a look at that one.
Uh, that will be up a folder from here into there and then search differently.
No, no, no.
Um, I'm, I'm, I'm using Picato as like a case study for, um, something that we fixed.
Uh, and so if you want to get, uh, TikTok fixed, uh, maybe look for how we got Picato
fixed or who reported Picato being broken or that, I don't think we've got any additional
questions.
So if I look for the video player code and do that scene, there's no questions.
If a question appears, I'll get to it.
I'm just going to tab back to the question list every now and then.
Make sure I don't miss it.
Whilst I'm basically just reading Neo source code.
Uh, video texture provider.
Yup.
Um, playback.
There's a lot of code for this stuff.
That's totally fine.
Yeah.
Um, we just called into, uh, DLP.
Oh, we've got questions.
So I'll go back to those.
Alex says, what's your favorite part of the source code of Neos?
Uh, I like all the random stuff that's in there that doesn't make sense.
And you have to ask people like, um, I was looking into the, uh, IK code, for example.
Uh, let's go by pedrig.
Um, and I was reading through like the bone, um, the bone matching.
And this is like how we figure out what a bone is.
And I was a little tired.
And so I misread this line several times here is.
So this line basically says that if the lower case, uh, name of your bone contains neck.
And the lower case name of your bone does not contain necklace.
Then it's a neck, right?
That makes sense.
It's a neck.
We found a neck, but I kept reading it as, and the lower name contains necklace.
So I'm like, what is going on here?
Like why do neck bones have to also be necklaces for this to work?
Cause I just missed that, that singular character, but it makes sense.
However, what I like is the story behind that though.
At some point, either naturally thinking about it before it happened,
although most likely when someone brought in a character that had a necklace bone,
uh, Fruits had to make an update to Neos such that it ignored necklace bones.
Which is just, uh, I don't know.
It's, it's, it's interesting, but there's multiple cases of that.
That one's just front of mind because that's what I was doing last.
So moving onwards, um, has asked what exactly is the reason for Neos sessions
starting having starters desync when there's more than 24 players.
There isn't one actual reason.
There are multiple reasons.
Um, the easiest way to answer that though is optimizations that we have not done before.
Um, there are multiple optimizations to Neos that we need to do.
Um, uh, and they all add up in a, uh, a session that's 24 players.
Like one thing being the IK, that's why you'll see in larger sessions,
users are usually being asked by the host, particularly in Creator Gems,
to go into avatars that don't have IK, um, head and hands avatars,
Flatties is what, uh, Mentor sometimes calls them.
Um, and that removes the IK of sort of, you know, the whole body and the legs.
There's just hand positions and head positions.
So that's a lot smoother.
Uh, sometimes it's just sheer load of, of players there at which point
that's sinking the data between all of those players.
Sometimes that's what's causing the lag.
Um, and then sometimes it is, uh, assets or stuff like that.
Bake your blend shapes, that'll help in very busy sessions.
Uh, and various other things along that line.
So there is a bunch of optimizations that we need to do to make that better.
And each one that we do will make it a little bit better, a little bit better.
So, uh, yeah, take a look.
I think we've got an optimization list somewhere on the, on the hub.
So take a look at that one too.
Crusher says, is there anything in particular to look out to help, uh, to, to look out for,
to help prevent worlds from not saving, uh, slash assets not being synced?
Um, yes.
So what I've noticed a lot is that people are overly paranoid about saving
because of that sync issue.
And so they might save an object or a world multiple times a minute.
And that, um, is potentially problematic.
So only save like break up your saves as well.
Um, in particular for worlds, something which I, I don't understand is when people make
a complicated world and then they just save the world over and over again.
What I do is like, I make like a segment of a world and then I save that.
Now, uh, 72 Groove Lake is just fresh in my mind.
So we'll use it as an example here.
Um, 72 Groove Lake is essentially a, um, hillside or mountainside road
that leads into a, um, 1960s, 50s space age, uh, house.
Now inside that house is a bed.
And someone might put that, that bed, you know, import that bed, set up its textures,
position it in the world and then save the entire world because they added a bed.
Instead, I save the bed.
I save the bed, right?
And then it basically means, well, if the world doesn't save, I've saved the bed.
I can just spawn the bed out again.
Um, a more complicated object might be the drinks cabinet that's downstairs in that world.
I save the drinks cabinet.
And then if the world doesn't save, I've got the drinks cabinet saved.
And that will also like reduce down that, right?
I don't need to do that.
Modularity, um, so I rarely save worlds sometimes when I'm working on stuff.
Like I always make sure it's portable.
I'm working on some stuff right now where I basically sort of like open up my tool bag
and I just like throw stuff out of it.
And I'm like, there we go.
The world created, um, that's usually just like scientific tooling and stuff.
And therefore I don't, I don't save the world because I have no need to.
Everything's in my inventory.
Um, on top of that though, it's, uh, figuring out the, um, the best strategy for you to,
to, to get things saving.
Um, as other people are saying, don't delete the local database.
Like I, I am still amazed every time I look at questions and help or Twitter or the steam
or the Reddit and someone has a problem, any problem.
And it could be like completely inane problem.
Help, I stubbed my toe and someone's first response is delete your database.
I'm like, no, no, do not, do not delete your database.
That is the last thing that you should be doing to explain it in a better way.
Your car breaks down and you pop the hood and you don't know engines.
You don't immediately like remove the engine from the car.
You poke around a little bit.
You're like, is something disconnected?
Do I have any idea what I'm doing?
Let me touch the oil cap whilst the car has been running and spray hot oil in my face.
Don't do that either.
But you don't chuck out the entire engine on the side of the road and go, oh, that'll
fix my car.
You just stop deleting the database.
Yeah, I need to, uh, I need to get that updated.
Oh, it is a valid fix for some issues.
Um, but in computing, there are three things you can do for a problem.
You can fix the problem.
You can ignore the problem or you can delete the problem.
Send me that Google result.
And so, you know, when people say restart your computer, if you try to turn it off and
on again, that actually does deleting the problem.
Restarting your computer just flushes out everything, right?
Clears RAM back down to zero.
You completely refresh the computer.
And so everything has to be loaded from disk space again into the CPU, into the memory,
into the RAM.
And therefore, you know, intermittent bugs disappear.
And that's exactly the same for deleting your database.
Everything just gets deleted and it can start afresh.
Now, is that a valid fix for some problems?
Yes, but you don't learn anything in that.
You don't learn anything.
So I've had a problem with my computer for many years, where for a year or two, where
logging in at the lock-in screen, you know, you start your computer, you enter your password.
It would take like 10 minutes to get to the desktop.
And I had no idea what was going on.
And everyone's like, just reinstall windows.
And I'm like, no, no.
What did I do?
I updated windows and it got fixed.
It got back down to two minutes.
It is increasing now, though.
So I probably need to take a look at it again.
But the point is, I will never reinstall windows.
I'll always fix it.
I've had the same issue of windows for longer than I've been in this country.
That's a long question answer, I know.
Or go ahead and move on.
Specs says, pinky works for bone mapping, but the spelling pinky doesn't.
Well, I am actually at that part of the code, so I could take a look.
Uh, yes, confirming pinky doesn't.
However, if your bone name contains P-I, P-I-N, or P-N-K, it should work.
If I check out a different branch, I can actually test it.
Open up again, I'll do it later.
Git changes going.
I don't want to disrupt the Git gods by stashing and changing branches at this time.
Yeah, you get an issue and then we'll take a look at that.
I've got, it's something like 112 tests of our bone naming now, because I was just...
I want to make some changes here, but I don't want to break anything.
So I added just a boatload of tests.
I also did it in a really good way.
I learned some stuff about how you can write data-driven tests using a annotation.
I will paste these into the text chat so you can see them.
Oh yeah, the hip and hip one.
I figured out why that is.
Oh, your message is 6,000 characters long.
We don't support it.
Okay, I'll just delete a few.
Um, I'm just sharing this because I'm kind of like happy about it.
So this is how those tests work.
So I can basically say like, hey, hips, why does hips, left thigh is tagged as left thigh.
Those attributes are just beautiful for testing large bits of programming.
So the reason why hips doesn't work, I know we're jumping around a lot,
and I will get back to questions in a bit.
I know some people get annoyed with that.
I'll get back to questions in just a bit.
Is that we support right hip and left hip.
You actually see it in the middle of that text I did.
We support right hip as the right upper leg and left hip as the left upper leg.
And so that's why we can't do hip as the hips bone right now.
There is a way for us to do that most certainly,
particularly with what I call the ambiguous matching.
But we needed a test workflow like this in place before we did that.
So I can certainly look at that now.
I do believe there is a GitHub issue for that.
But those attributes let me do that.
They let me make changes and ensure that we aren't breaking anything.
All right, moving forwards to additional questions.
I don't actually see any additional questions.
The last one was about pinky versus pinky.
We got that one.
I talked a long length about that one.
That's a good question, Aaron.
That's a very good question.
So Aaron asks, how do we get more people to stay in public worlds?
There's 30 users out of 200 users in public right now, and it's pretty sad.
I agree, but we need to do that on several levels.
So one of the first things that we need to do
is to stop judging people for being in private worlds.
I know that's like counterintuitive,
but just imagine that you are shy or use private worlds a lot.
And your first experience with coming out of your private world bubble
is a lot of people nagging at you for being in private worlds.
Aaron, you've been in private worlds all day.
What the fuck's wrong with you?
That's rude.
It's not going to do a productive conversation.
Instead, you need to make it, oh, hi, it's great to see you.
I'm happy to see you.
Let's make this a good experience for you.
Let's show you that you can be in public worlds a lot.
Let's give you a good experience.
Let's wine and dine you so that you understand that this is a good experience.
That's like a cultural thing that doesn't require any code updates.
That just requires people to sort of change their behavior
about how they react to private worlds.
That's why I don't usually use the hermit meter in my world,
because again, the hermit meter is like a big, giant finger.
It's like you guys in private worlds are wrong, is wrong.
Actuarinus puts it greatly, which is, oh, look who came out of their cave,
which is the introvert way.
I mean, I'm an introvert, so I spent a lot of my teenage years in my bedroom
and my mother was always like, why are you in your bedroom so much?
And I couldn't explain, no matter how many times I tried,
I want to be alone with my thoughts.
Couldn't explain it.
I remember a particular Christmas where she insisted that I come downstairs
to watch the Father Ted Christmas special that I had seen five times in a row.
And I was installing a MySQL database at the time.
And I just tried explaining that instead.
She's like, come downstairs with the family, it's Christmas.
And I'm like, but I'm installing a MySQL database.
And she just didn't understand.
And I'm like, OK, fine, I'll come downstairs
and watch the Father Ted Christmas special.
Anyway, that's the cultural one.
Pretty much that image as well.
But past the cultural one is there are some other cultural issues that you need to do.
So the next ones are reading the room, being considerate,
asking for consent, fixing how you help people,
fixing how you interact with people, and stuff like that.
Just trying to be a better person in that way.
There is that guide being considerate on my user page of my wiki.
The reason it's there is because it's very ranty and slightly rude.
But that's got a lot of stuff that can happen.
Next is safety.
So things like knockback guns, crashing, funky stuff.
They're scared of that.
And then sometimes it's focus.
So if they're building stuff, which is great,
if they're building a really complicated thing,
they usually can't be in a public world.
I'm sure, Mr. Aaron, you will identify with that when we try to build our Jeopardy game.
And I had to draw a red circle around the Jeopardy game
because I just couldn't get anything done.
Just a quick reminder, if you see someone having inspector panels in front of them
or logics in front of them, don't go AFK inside their logics panels
or put a whisper bubble on or in their logics panels.
It's like, just don't do that.
So and then above that are actual features.
So hard permissions, the license system, the license system will help.
But honestly, I think a lot of it is cultural.
There is a side of it, which I can't talk too much about.
There is a side of it, which is to do with adult content.
But, you know, nothing really can really do about that one.
In summary, though, other than the technical issues, it's really behavioral.
It's like, give people a reason to come out.
Did they have a good time in your public world?
In your public world, I'll catch up with all the conversation here.
Zach talks about freezing and public worlds.
Yeah, that's optimization, which is another technical issue.
When we scroll through all the memes, Specket says it's decent.
Yep, the Australians need to host more Australian content
and more Australian public worlds.
And if I start speaking Australian accent, it's entirely accidental.
I have no control over it.
Zinka talks about unwinding and being in private.
I get that. So there are, I guess, the sort of colloquial term over in VRChat.
It's friend groups. People just want to hang out with their friends.
I get that.
You know, in history, there are some of you that won't have ever actually done this
because you've just grown up doing it on the Internet.
But historically, it would be like people physically come to your house
and then they sit on your physical couch and watch films of you.
And maybe there's a bucket of popcorn somewhere.
That happened.
And of course, you know, the Internet, COVID, VR.
No one needs to do that in the real world these days.
But that's the replacement of that is hanging out with smaller groups of people.
I understand that.
Films being another one, I've seen that as well.
People are watching films and they're like halfway through a really complicated film.
Let's say like The Matrix, right?
So imagine you haven't seen The Matrix before
and you have a public world open and someone comes in halfway through.
They'll just be like, who's he?
What's he doing?
Why is he flying?
It's not a good look.
Specs says just hosting more public worlds is a good way to get that going.
Yes.
Now, the hermit meter is a percentage value of private to public users
and it's usually around 70 to 80 percent.
When the VR chat issues happened, I mean, a lot of players that went all the way down to 40 percent,
mostly because it was new players who didn't know what private worlds were.
So they weren't in private worlds.
It was great.
We will steamroll onto questions as we've got more questions coming on.
And I'm just wittering on now.
What is my phone is doing something?
Oh, I've got two packages have arrived downstairs.
I'll have to go get this.
I know what one is.
I don't know what the other one is.
Cool.
Getting trans, is there a way to toggle my torso back and forth to ragdoll as a dynamic bone?
I know torsos are driven by the IK.
The nearest thing I can think of there is to temporarily swap to a duplicate copy of your
avatar that has dynamic bones on but has the head driven.
That might work.
Tony says frame rates are a big deal.
Yep, that's optimization.
That is a technical one.
As Lincoln says, mostly for me, it was bring your Xbox 360 over.
Let's have some Halo.
Yep.
I once took my Xbox and my TV to someone else's university dorm room.
And we had four Xboxes set up next to each other.
And we played through the campaign like that.
That was cool.
Ozzy says here's a random question I've been curious about.
I noticed the IK component.
We're messing with it.
Terrifying start.
Yep, messing with it is always terrifying.
When I'm driving its references, it still controls the undriven slots.
The bones as in the position and rotations are still being changed, but actually pink
indicate it's driven.
Yeah, some components just need to do that and aren't meant to be messed with in that
way.
DNS cannot cause connection issues or problems like that.
DNS is literally just a path to go.
DNS issues can cause latency when attempting to look up a new domain record.
But once a DNS system has given you an IP address, you don't need DNS anymore.
You just find your own route there.
Sometimes DNS can help with that route, but DNS cannot cause as many things as people
say it can.
They're like, I'm de-synced in this world.
It must be my DNS.
I'm like, no?
Especially once the connection's established.
It doesn't touch DNS.
It's just a connection.
Anyway, moving onwards to Kazu who says,
regarding the description of Neosyn, the current situation has not changed for more than half
a year since it was described, so I'm thinking of removing it from the wiki to avoid confusion
until it's actually implemented.
Is that okay?
No, no, just leave things as they are.
I'm not quite sure what you're referring to, but please just leave things as they are in
terms of Neosyn and the vulture, et cetera.
Lord Tremor says, is there a way to fix dissident and broken IK?
That's not a word I expected in this office hours, but thank you for using it.
It's a good word.
Dissident and broken IK, specifically hips about re-uploading it, throwing it to the
editor, that is situational and depends on what the problem is.
You describe the problem sort of, but I don't know what the problem is until I have some
more details.
For example, there is a bunch of problems I've seen.
Just going through a random list of ones that appear in my head is sometimes the hip bone
is disconnected from the spine bone, and so people have like a long snake body because
when they move up, like the hips lag behind, that's funny.
Sometimes the hip is flipped upside down.
If your model has a flipped hip, the creator of that model needs to get with 2022.
Flipped hips is such like a 2018 thing.
No more flipped hips, please.
That would also cause problems.
If it's a naming issue, that will need to be Blender.
It really does depend on the specifics of the issue.
Feel free to ask them questions and help whenever you have an actual, you know, a worked example
or get it done.
I just need more information.
No user found says, will the Steam Deck eventually get full support for the non VR mode like VR
chat?
Because today I tried it on the SVR on the Steam Deck and it didn't run great experience
glitches.
Hardware is a really tricky one.
It's basically we need to make sure that the engineering team has that hardware and that
they have time to look at it.
So right now we don't, but we might in the future.
Same thing goes with the all the VR headsets that are meant to be announced at the end
of this year.
If we don't have them, we can't really integrate them.
And if they haven't been officially released, we can't integrate them.
I know some people are like, can you support the quest that's been leaked?
I'm like, no, I don't know what it is.
It's like, yeah, I've seen the leak, but as a company, we need to wait for it actually
be to be released because that's when the, you know, the SDKs, the technical manuals,
the integration guides get released.
So we are at 33.
So the people that are typing right now, if you have questions, please get them in and
we'll close questions very shortly.
Lex says, would you be able to try out the transcription API for this office hours?
Yeah, sure.
I mean, the recording's downloadable.
Just go for it.
Well, Tremor says, basically I have no spines, it registers my chest bone as my spine sending
my pelvis thrusting.
Yeah.
You're going to have to look at the humanoid rig requirements Wiki page and maybe adjust
the bone naming of your model before you get going.
Specs ask, what's the current version number?
For bug reports right now, I just put in latest because of the situation.
I shouldn't do that, but I do.
But if you just do 1.28, that'll be fine.
2022, 1.28.
I know that will bite me, but whenever I log a bug and it's logged by me, I know what I
mean.
I can do it.
It's terrible behavior, but yeah.
Okay, good, good.
Yeah, 128 or 2022, 128 will be good.
I know we've got 1310 and 1335.
That's just how our processing worked.
That is all the questions I see.
No user found.
Kazu and Zlinka, you are the last questions.
Please type them or stop.
And we'll get on with those questions and then stop.
And then I'll upload the recording and then we'll make noises.
No user found says, how's my holiday?
Good.
Yeah, tabbing back.
Yeah, go the OZ stuff.
I was tabbed out to another location for a second.
I believe we are done.
Although I do see Tiki, please feel free to type a question if you have it.
Otherwise, that will be the last.
Good.
We have a question.
Just in time, Tiki.
Just in time.
Inlogics, is there a way to operate on the X of a rotation without going through XYZ
data types?
Yes and no.
Depends on the situation.
So you shouldn't be unpacking a quaternion.
Unpacking those is weird.
Basically, the XYZW components of a quaternion interrelate because they all need to add up
to a number.
I think it's one.
And so operating on them directly via the data type isn't advisable.
You can drop it into Euler angles using the Euler angle node.
Then I'll change a cot back into a float 3.
And then you can operate on just the X.
However, what I would like to suggest that you do is start learning quaternion mathematics.
So if you want to operate on just the X component, then what you can do is let's say you have
an existing quaternion, you can if you want to add an X component, you can multiply it
by a float 3 that has a value in the X and then 0 in the rest of them using the multiply
operator.
Now, I know that's confusing that when you want to add two quaternions together, you
need to multiply them.
But that's just the way it works.
You can also use the wonderful node axis angle, which should be used literally most of the
time when composing quaternions, because it's beautiful.
Axis angle will let you create a quaternion in a particular axis.
Otherwise, you have to bump it out to Euler space, make your adjustments, and then convert
it back to a quaternion.
And with that, that'll be the last question.
To give you any more updates on that one or questions on that one, do let me know.
I'm happy to do stuff.
Quaternions aren't complicated.
You just need to spend some time to learn them.
I know that's difficult.
So I'm trying to do that, though.
Whenever I feel myself going for the Euler nodes, I'm just like, nope, I will learn the
quaternion way of doing this.
And it's working quite well.
I will see you guys next week.
If you have any questions, please ping me, DM me questions and help.
And I will see you next time.
Bye bye.
I need to push the special buttons to end the stage because I changed it recently.