CFrames are x, y, z, and three xyz unit vectors to be specific about orientation in 3D space. They are pretty much a matrix calculator. You can probably learn the fundamentals in Linear Algebra (usually after Calculus 2 or 3 in college).
@@byteblox100 also how about sending cframes trough remote event? especially unreliable ones which have 900 byte limit i think, so do you just not send it at all? or send only 1 value of a cframe and construct it on the receiver's end?
@@byteblox100 I know i was talking about how UnreliableRemoteEvents would pass a cframe over the network, considering it's 900 limit which i assume a single cframe exceeds that
@@chibisayori20a cframe is pretty much just a matrix containing 9 numbers. Pretty sure they use double-precision floating point format which is 64 bit. 64*9 is 576, so a single cframe should pass under the data limit.
@@rexuph7242 hes saying that when you individually set each vector to match the goal part youre wasting computation while setting the cframe equal to the goals cframe doesnt waste any calculations and automatically makes the position and orientation properties equal
hi! I think you should talk about run context for scripts! you can turn scripts in the workspace to local scripts and that's very useful! love ur vids!
Extra info: The position has some use as well, for example when you need to teleport a part to some position but don't need it to rotate. The CFrame can also bring character with his rootPart. CFrame stands for "Coordinate Frame". CFrame can have more types in .new function, more in documentation of roblox.
Seriously great tutorials, the only person I've ever seen explain things in the exact way I need them explained lol If it's not too much trouble a Raycast tutorial would be awesome :D (Nah but seriously tho you're one of the only people I've subscribed to recently and the only person who's videos I watch religiously, keep up the great work!)
This is unrelated to the video's purpose itself, but I do want to state that it might be better to teach using modern methods, such as using `task.wait(3)` instead of using `wait(3)` as wait() is deprecated, for good reason.
@@byteblox100 how about global overwrite? like wait = task.wait wait(2) -- will use task library instead of built-in wait but you can still write it as if it's wait()
@@byteblox100 Why is this? How could you possibly even call yourself a teacher if you are using a depreacted method? Wait() is deprecated for a reason. Wait() will literally throttle your script until the elapsed time has passed, and wait() is not even accurate when frames matter (as it updates on 30 fps interval vs task.wait which uses 60 fps)
Hey ByteBlox, I know you've already made a video on ModuleScripts explaining how they work, but I still don't get when I'm supposed to use them over regular server scripts. Can you make a video on organizing/optimizing your games?
normally I use modules just for organization, or even add modular functions, as the name suggest, so i dont fill up my main script and instead have multiple "work spaces" that each module script have, each one with their own function, having better organization and more efficient
Use them when you need functions stored in one spot. Let’s say you have a fighting game, and you have functions for abilities. Making a module for those functions would be smart because now you can access these functions from any script
@byteblox100 I still don't understand why I'd need to access such functions from other scripts, or what having a function stored in one spot could do for me.
I remember when i first started learning and hating on cframe lol, now its the only thing i use and cant even remember the last time i used position/orientation
try The CFrame Class's LookVector Property local part = workspace.Part local endPart = workspace.endPart part.CFrame = CFrame.new(part.CFrame.p, endPart.CFrame.p) -- Point part towards endPart while part.CFrame ~= endPart.CFrame do part.CFrame = part.CFrame * endPart.CFrame.LookVector -- Move part forwards based on where it is facing wait(0.06) end
5:25 Interesting, I thought that to account for orientation you're supposed to do CFrame.new(X,Y,Z) * CFrame.Angles(X,Y,Z)? This is the first time I've seen this approach
Get all of my knowledge in one package: linktr.ee/ByteBlox
nga is this inflation why are you rising it to $84.99???
@@wonsole i didnt change the price, udemy is having issues right now lmao
@@byteblox100 what is the normal price
Like 40 bucks I think
@@byteblox100 bet
Big props to the people who made CFrames a thing. Single-handedly saved my life
Without cframes I would have quit a long time ago
lmao me too@@PranavHuman
CFrames are x, y, z, and three xyz unit vectors to be specific about orientation in 3D space. They are pretty much a matrix calculator. You can probably learn the fundamentals in Linear Algebra (usually after Calculus 2 or 3 in college).
Setting position still has its uses though, of course. If you don’t want to make the part’s rotation change, you can set Position instead of CFrame.
Absolutely. But most of the time it’s just better to use CFrame as it accounts for literally every aspect of location
@@byteblox100 also how about sending cframes trough remote event? especially unreliable ones which have 900 byte limit i think, so do you just not send it at all? or send only 1 value of a cframe and construct it on the receiver's end?
You’re able to just send a CFrame over, it’s just another value like a string or a number
@@byteblox100 I know i was talking about how UnreliableRemoteEvents would pass a cframe over the network, considering it's 900 limit which i assume a single cframe exceeds that
@@chibisayori20a cframe is pretty much just a matrix containing 9 numbers. Pretty sure they use double-precision floating point format which is 64 bit. 64*9 is 576, so a single cframe should pass under the data limit.
Dude, u just appeared in my life so late, I finally understand CFrame after 2 years.
i love these videos, they help me focus while im coding/scripting ❤
in short:
when you using vectors you making a lot of useless calculations to engine,while cframe straight up execute it into matrix
what
@@rexuph7242 hes saying that when you individually set each vector to match the goal part youre wasting computation while setting the cframe equal to the goals cframe doesnt waste any calculations and automatically makes the position and orientation properties equal
Cframe = CoordinateFrame
hi! I think you should talk about run context for scripts! you can turn scripts in the workspace to local scripts and that's very useful! love ur vids!
Dude thank you so much I finally understand what CFrame is!
Even 2x speed isn't enough for this dude
Extra info:
The position has some use as well, for example when you need to teleport a part to some position but don't need it to rotate.
The CFrame can also bring character with his rootPart.
CFrame stands for "Coordinate Frame".
CFrame can have more types in .new function, more in documentation of roblox.
Seriously great tutorials, the only person I've ever seen explain things in the exact way I need them explained lol
If it's not too much trouble a Raycast tutorial would be awesome :D
(Nah but seriously tho you're one of the only people I've subscribed to recently and the only person who's videos I watch religiously, keep up the great work!)
Thanks bro, I did a raycast tutorial a while back lol
This is unrelated to the video's purpose itself, but I do want to state that it might be better to teach using modern methods, such as using `task.wait(3)` instead of using `wait(3)` as wait() is deprecated, for good reason.
I will hate on task.wait() until I die
@@byteblox100 we cant be friends ever
@@byteblox100
how about global overwrite? like
wait = task.wait
wait(2) -- will use task library instead of built-in wait but you can still write it as if it's wait()
@@byteblox100 Why is this? How could you possibly even call yourself a teacher if you are using a depreacted method? Wait() is deprecated for a reason.
Wait() will literally throttle your script until the elapsed time has passed, and wait() is not even accurate when frames matter (as it updates on 30 fps interval vs task.wait which uses 60 fps)
@@twomaddev yeah but thats nerd stuff
pro tip: use transcript to quickly get info and get to parts
Hey ByteBlox, I know you've already made a video on ModuleScripts explaining how they work, but I still don't get when I'm supposed to use them over regular server scripts. Can you make a video on organizing/optimizing your games?
normally I use modules just for organization, or even add modular functions, as the name suggest, so i dont fill up my main script and instead have multiple "work spaces" that each module script have, each one with their own function, having better organization and more efficient
@@techderv3031 I wish there were videos on optimizing your games out there so I could learn the do's and dont's
Use them when you need functions stored in one spot. Let’s say you have a fighting game, and you have functions for abilities. Making a module for those functions would be smart because now you can access these functions from any script
Btw what situation would you use Modules over Bindables?@@byteblox100
@byteblox100 I still don't understand why I'd need to access such functions from other scripts, or what having a function stored in one spot could do for me.
I remember when i first started learning and hating on cframe lol, now its the only thing i use and cant even remember the last time i used position/orientation
woohooo! byteblox!!! cframe!!!! 😁😁😁
help the relationship video didnt tell me how to break up and now im stuck with someone named Rigette
He's gonna get to it just wait
i always use cframes already because i'm traumatized of using positions on characters...
you should do a tutorial about aerodynamics
i love cframes but oh my god the motor6d cframe for the R6 rig is disastrous, what the hell were they thinking when they made the R6 rig????
ur vids are just next lvl
oooh, this maybe explain why my try of door didnt worked, thx bro
I love ur videos im learning so much
why not to use position and orientation? Simply because setting cframes is quicker than position or/and orientation
And also it doesn't have to make a bunch of calculations when you are using vector3
CFrame is literally just Position and Rotation combined.
It has nice uses like offset and pivotto
and also setting cframe will also move constraints, welds, etc with it
Maybe make the goto position invisible
Can you make explanation/tutorial on copylocking, pls?
roblox should add quaternions
try
The CFrame Class's LookVector Property
local part = workspace.Part
local endPart = workspace.endPart
part.CFrame = CFrame.new(part.CFrame.p, endPart.CFrame.p) -- Point part towards endPart
while part.CFrame ~= endPart.CFrame do
part.CFrame = part.CFrame * endPart.CFrame.LookVector -- Move part forwards based on where it is facing
wait(0.06)
end
this video is why i use cframes
CFrame is a Coordinate-frame
If use Cframe for moving object like moving plateform do player fall off plateform?
Player not move with plateform like issue when stand on plateform
you need to use platformstand or some property like that on the player character
The thumbnail broke me 💀
Pls make a vid on how to animate acs 2.0.1
How is it that always when i say to myself i need to learn this the next day you upload a video about that thing.
5:25 Interesting, I thought that to account for orientation you're supposed to do CFrame.new(X,Y,Z) * CFrame.Angles(X,Y,Z)? This is the first time I've seen this approach
He used the deprecated constructor, you are supposed to use Angles.
CFrame stands for Coordinates Frame
Forgot to say "Fun fact:"
@@Scientist_Tv0 schblugbalud this is not a fun fact
@@AzureSpike tho it is a fact
@@Scientist_Tv0 idk why you just randomly assumed, i literally just answered byteblox bc he didnt know what it stands for
@@AzureSpike it sounded like a fun fact tho, but if you're denying it i can't do nun
double upload? gamer
Fianlly... byteblox cframe tutoriall
2nd day of asking how to access the starter player's humanoid using a serverscript
plr.Character.Humanoid
Bro Tween with Frames are much easier
Hey I dont think your emails are working. Last one I got was Jan 23.
very kewl!
c fraune 2 haurd i want yuse positin isead
brother make the ui look better👍🏼 will def help
Miller Sharon Johnson Timothy White Margaret
wait for child in server scripts? 😂
hot
ye
What is that thumbnail😭
Poor no cframe
One of the most powerful abilities of CFrames is ability to offset CFrames from Other CFrames.