LunaNotes

Download Subtitles for Mastering Matrices in 3D Animation

Mastering Matrices for 3D animation

Mastering Matrices for 3D animation

Jean-Paul Tossings

561 segments EN

SRT - Most compatible format for video players (VLC, media players, video editors)

VTT - Web Video Text Tracks for HTML5 video and browsers

TXT - Plain text with timestamps for easy reading and editing

Subtitle Preview

Scroll to view all subtitles

[00:00]

hello everyone Jean poing here technical

[00:02]

director at poer animation in my

[00:04]

day-to-day work I use a lot of linear

[00:06]

algebra and matrices are a big part of

[00:09]

that and they can be really powerful in

[00:11]

rigging if used correctly everyone using

[00:13]

a 3D software package uses matrices but

[00:16]

most of the time without knowing it when

[00:18]

moving rotating scaling Andor parenting

[00:21]

objects you are basically modifying

[00:24]

matrices up until a few Maya versions

[00:26]

back matrices could not be used directly

[00:28]

to transform objects X without

[00:30]

decomposing the matrices into separate

[00:33]

translate rotating scale values this

[00:36]

made working with them lose a lot of

[00:37]

power due to unnecessary expensive

[00:40]

calculations but since Maya 2020 The

[00:42]

Matrix workflow has been updated and

[00:45]

since then the full power of matrices

[00:47]

has been unlocked but to use this

[00:49]

workflow to your full advantage you have

[00:51]

to understand what a matrix is and how

[00:54]

it works when I first started working

[00:56]

with them it took me a while to truly

[00:59]

grasp the concept of them and I see the

[01:01]

same struggles with people I work with

[01:03]

that start using them so I decided to do

[01:06]

a video about them trying to explain

[01:08]

matrices in the way that makes sense to

[01:09]

me visually I will start with the basics

[01:12]

and build up to how they work you may

[01:15]

already know the basics but I'll advise

[01:17]

you not to skip ahead because there is a

[01:18]

logical buildup I use Maya as example

[01:21]

for this video but this applies to every

[01:23]

3D

[01:24]

DCC the coordinate system let's start by

[01:28]

defining a three-dimensional coordinate

[01:29]

system system we have three coordinate

[01:31]

axis one for each Dimension all

[01:34]

orthogonal meaning they all form a right

[01:36]

angle with one another we call the point

[01:38]

where all three axes intersect the

[01:40]

origin if we have three coordinates X Y

[01:43]

and Z we can visit any position in this

[01:46]

space by starting at the origin and

[01:48]

moving parallel to the coordinate axis

[01:50]

by the amount of each coordinate this is

[01:52]

known as a cartisian coordinate system

[01:55]

let's call this the root coordinate

[01:56]

space this will be the space where

[01:58]

everything we're going to do will be def

[02:00]

find in points and vectors in this

[02:03]

coordinate system we can create points

[02:05]

and vectors points have a position in

[02:07]

space defined by the coordinates vectors

[02:09]

have a direction and a length a vector

[02:12]

starts at the origin and the tip

[02:14]

position is defined by the coordinates

[02:16]

however vectors can be placed anywhere

[02:18]

in the space as only their Direction and

[02:20]

length matters so placing the vector

[02:23]

root at any point in space we arrive at

[02:26]

the vector T position by moving parallel

[02:28]

to the coordinate axis by the amount of

[02:30]

the

[02:31]

coordinates a vector with a length of

[02:34]

one is called a unit

[02:37]

Vector vectors can be added by placing

[02:39]

them root to tip the resulting Vector

[02:42]

starts at the root of the first vector

[02:44]

and ends at the tip of the last Vector

[02:47]

the order of the vectors does not matter

[02:49]

the resulting Vector will always be the

[02:51]

same for now both points and vectors

[02:54]

have three coordinates and have the same

[02:56]

coordinate

[02:57]

notation 3x3 Matrix

[03:00]

now let's define three new unit vectors

[03:02]

one for each axis and call these the X Y

[03:05]

and Z basis vectors if we scale these

[03:08]

basis vectors by multiplying them with

[03:10]

the corresponding Point coordinates and

[03:13]

add them together we arrive at the

[03:15]

resulting Point position in the same

[03:17]

manner we can arrive at the vector tip

[03:19]

using the vector components because the

[03:22]

basis vectors or unit vectors and are

[03:24]

aligned with the coordinate axis we

[03:26]

arrive at the same positions as when

[03:28]

moving parallel to the root space

[03:30]

coordinate axis let's introduce some

[03:33]

point coordinates and plot them using

[03:35]

the scale basis vectors connecting the

[03:37]

points with edges gives us a cube then

[03:40]

add some vectors in the same manner now

[03:43]

look at what happens if we manipulate

[03:45]

the basis vectors if we change the

[03:47]

length of a basis Vector we scale the

[03:49]

space in that direction all points and

[03:52]

Vector tips get transformed because they

[03:54]

use the scaled version of the basis

[03:56]

Vector to arrive at their positions if

[03:59]

we move prove the tips of the basis

[04:01]

vectors in a circular motion around an

[04:04]

arbitrary line the space and all its

[04:07]

points and vectors inside rotate in the

[04:09]

root coordinate space if we break the

[04:12]

orthogonality of the basis vectors the

[04:15]

space they defined get skewed this is

[04:17]

called

[04:18]

share we can arbitrarily change the

[04:21]

basis vectors to deform the coordinate

[04:23]

space all points and vectors inside it

[04:26]

get transformed with it it is all

[04:29]

relative however the local coordinates

[04:31]

of the points and vectors that live

[04:33]

inside the space do not change only the

[04:36]

space itself gets distorted it is when

[04:38]

looking at them from the outside in the

[04:40]

root space that we see the transformed

[04:43]

coordinates of the points and vectors so

[04:46]

with these three basis vectors we have

[04:48]

to find a new space that we can

[04:50]

transform within the root Space by

[04:52]

adjusting the basis vectors if we look

[04:55]

at the three basis factors as rows they

[04:57]

form the 3X3 Matrix ation of this

[05:00]

transformed space to get the root space

[05:03]

coordinates from the points inside the

[05:06]

Matrix space we multiply the points

[05:08]

local coordinates with its respective

[05:10]

Matrix row and add the scaled rows

[05:13]

together this action is called

[05:15]

multiplying a point with a matrix in

[05:17]

other words when we multiply a point

[05:19]

with a matrix we end up with another

[05:22]

point which has the Matrix

[05:23]

transformation baked into its

[05:25]

coordinates multiplying a vector with a

[05:28]

matrix works the same way

[05:30]

with this 3x3 Matrix we can rotate scale

[05:33]

and share the space and its points and

[05:36]

vectors translation but what about

[05:39]

translation with the current Matrix we

[05:41]

cannot move the space as a whole in

[05:43]

other words we cannot move all points

[05:46]

inside the space while maintaining their

[05:48]

absolute distances in the root

[05:49]

coordinate space to accomplish this we

[05:52]

need to add an extra translation factor

[05:54]

to the sum of scaled basis factors as we

[05:57]

have seen before the order ofor vector

[05:59]

addition does not matter so let's

[06:02]

reorder them to get a more visually

[06:04]

pleasing

[06:05]

representation now you could also

[06:07]

visually interpret the translation

[06:09]

Factor as moving the origin of this

[06:11]

space to a new position if we add the

[06:14]

translation Factor as an extra row to

[06:16]

The Matrix we can add it mathematically

[06:19]

to the sum of scaled basis vectors but

[06:22]

now we need an extra coordinate in the

[06:24]

definition of the points and vectors to

[06:26]

scale the translation Vector with this

[06:29]

is called called The W component now we

[06:32]

have an x y z and W component to

[06:35]

respectively multiply with the basis

[06:37]

Factor XYZ and the translation factor

[06:41]

for points transformed by The Matrix the

[06:44]

translation should always be added 100%

[06:47]

and not a scaled amount so the W

[06:49]

component should always be one for

[06:53]

points vectors however have no use for

[06:56]

translation as they can be positioned

[06:58]

anywhere in space and as we have seen

[07:00]

before the vector coordinates Define the

[07:03]

tip position relative to its root in

[07:05]

other words its direction and length so

[07:08]

adding the translation would only change

[07:10]

the tip position of the vector and does

[07:12]

change the length and or its direction

[07:15]

of the vector this is not what we want

[07:17]

when moving the space as a whole the

[07:19]

vectors in it should not change so we

[07:22]

need to ignore the translation for

[07:24]

vectors this can be done by setting the

[07:26]

W component for all vectors to be zero

[07:29]

we can for visual pleasantry set all

[07:32]

Vector roots to the translated origin of

[07:34]

the space this is all arbitrary however

[07:38]

because we can draw the vectors anywhere

[07:39]

in space as long as their Direction and

[07:41]

length remain the same because the W

[07:44]

component should almost always be one

[07:47]

for points and zero for vectors they are

[07:49]

often omitted when writing the

[07:51]

coordinates but they will always be

[07:53]

added before multiplying with a

[07:56]

matrix the 4x4 Matrix so so to construct

[08:00]

a matrix we need three basis vectors as

[08:02]

coordinate AIS and the fourth Vector as

[08:05]

the translated origin but as we have

[08:07]

just concluded vectors and points need a

[08:10]

fourth W component so this should be

[08:13]

true for the vectors making up the

[08:14]

Matrix as well for the three basis

[08:16]

vectors it is clear that the W component

[08:18]

needs to be zero because they are used

[08:20]

as vectors if the translation Vector

[08:23]

would also get a w component of zero

[08:26]

then when multiplying a point by this

[08:28]

Matrix the point's W component would be

[08:31]

converted from a one to a zero and thus

[08:34]

converts a point into a vector this is

[08:37]

unwanted so to prevent this the

[08:39]

translation Factor should have a w

[08:41]

component of one and is in fact not a

[08:44]

factor but a point in itself this point

[08:47]

is the origin of the space defined by

[08:49]

The

[08:50]

Matrix after adding the W components to

[08:53]

The Matrix notation we arrive at the

[08:55]

final form the 4x4 Matrix this Matrix

[08:59]

has the ability to translate rotate

[09:01]

scale and share the space and its

[09:04]

content if we modify the 44 Matrix so

[09:07]

that the basis vectors are unit vectors

[09:09]

aligned with the root coordinate axis

[09:12]

and the translation is zero in all

[09:13]

directions we get what is called the

[09:16]

identity Matrix this creates a space

[09:18]

that is identical to the root space and

[09:21]

does not transform anything when

[09:23]

multiplying local coordinates with the

[09:25]

rows of the identity Matrix and adding

[09:28]

them together the result result is the

[09:30]

same coordinates thus multiplying a

[09:32]

point or a vector with the identity

[09:34]

Matrix will result in the same point or

[09:38]

vector matrix

[09:40]

multiplication let's define two new 4x4

[09:43]

matrices A and B we place Matrix B

[09:46]

inside the space of Matrix a and add the

[09:49]

points Cube to the space of Matrix B if

[09:52]

we manipulate Matrix a the basis vectors

[09:56]

and origin point of the inner Matrix B

[09:58]

get trans formed and the transformed

[10:01]

basis vectors and the origin point of

[10:03]

Matrix B are used to get to the point

[10:05]

positions of the

[10:07]

cube the transformations of Matrix a and

[10:10]

Matrix B get added together so to speak

[10:14]

the points inside Matrix B are

[10:16]

transformed by the matrices combined to

[10:19]

mathematically combine these matrices we

[10:22]

simply transform the innermost matrix by

[10:24]

the outer Matrix knowing the Matrix is

[10:28]

composed of three vectors vectors and a

[10:29]

point we can transform the inner matrix

[10:32]

by the outer matrix by just multiplying

[10:34]

the three basis vectors and the point of

[10:37]

the inner Matrix with the outer Matrix

[10:40]

resulting in four new rows and thus a

[10:42]

new

[10:43]

Matrix because we multiply the basis

[10:46]

factors and the origin Point components

[10:49]

of the inner Matrix with the rows of the

[10:51]

outer Matrix we speak of matrix

[10:54]

multiplication we end up with a new 4x4

[10:57]

Matrix that describes all

[10:59]

transformations of Matrix a and Matrix B

[11:03]

combined be aware that the order of

[11:06]

multiplication matters for example

[11:08]

imagine one point and two matrices the

[11:12]

point P has coordinates of 0 0 0 the

[11:16]

first Matrix a has a scaled y basis

[11:19]

Vector of length two the second Matrix B

[11:22]

has a translation of one in the positive

[11:25]

y direction multiplying a with B we get

[11:29]

the new Matrix C if we multiply point B

[11:32]

with Matrix C we get a point at 0 1 0 in

[11:36]

the root space however if we swap the

[11:39]

matrices and multiply B with a we get a

[11:43]

different Matrix D if we multiply point

[11:46]

B with Matrix D we get a point at 0 to0

[11:50]

at the root

[11:51]

space without going into too much detail

[11:54]

mathematically the notation of C equals

[11:57]

B * a where B lives inside a is only

[12:00]

valid for row matrices some software

[12:03]

uses column matrices instead where the

[12:05]

vector components are written top to

[12:08]

bottom and the vectors of the Matrix are

[12:10]

placed next to each other in this case

[12:13]

the multiplication order flips and C = A

[12:16]

* B I will continue with row matrices as

[12:20]

Maya uses this notation however be aware

[12:22]

that bifrost in Maya uses colum matrices

[12:25]

for

[12:26]

example transformation hierarchy

[12:29]

if you build a parent child hierarchy

[12:32]

every item in the hierarchy is a matrix

[12:34]

so parenting is just placing the space

[12:37]

of that Matrix in the space of the

[12:39]

parent Matrix the content of the lowest

[12:41]

child gets transformed by The Matrix of

[12:44]

the child and all the matrices of its

[12:46]

parents if we multiply all these

[12:49]

matrices in sequence we get what is

[12:51]

called the world Matrix multiplying by

[12:54]

this world Matrix transforms the local

[12:56]

coordinates of the lowest child's

[12:58]

content directly into the root space

[13:01]

coordinates so if you have a hierarchy

[13:04]

of a b c d the world Matrix is

[13:07]

calculated by multiplying the matrices

[13:10]

from bottom to top D * C * B *

[13:14]

a we refer to coordinates inside the

[13:18]

Matrix as local space the coordinates in

[13:21]

the parent Matrix as parent space and if

[13:24]

that space is the root coordinate system

[13:27]

we call it World space

[13:29]

invers Matrix matrices also have the

[13:32]

nice property that you can calculate its

[13:35]

inverse transformation I won't go into

[13:37]

the details of how that's beyond the

[13:39]

scope of this video but most dccs have

[13:42]

notes or functions to do this the

[13:44]

inverse Matrix can be seen as the

[13:46]

transformation that undos the

[13:48]

transformation of the Matrix where it

[13:50]

was calculated

[13:51]

from so multiplying a matrix with its

[13:55]

own inverse Matrix will result in the

[13:57]

identity Matrix

[14:00]

the inverse Matrix of the inverse Matrix

[14:02]

is the original Matrix so why is this

[14:06]

use for you my think well for example if

[14:09]

you have a point in World space

[14:10]

coordinates and you multiply it with the

[14:12]

inverse of a matrix you get the point

[14:15]

coordinates in local space of set

[14:19]

Matrix or if you have two matrices in

[14:23]

World space A and B if you multiply B

[14:26]

with the inverse Matrix of a you get a

[14:29]

new Matrix C where b = c * a or in other

[14:35]

words if C were a child of Matrix a they

[14:39]

would together produce the same

[14:40]

Transformations as B thus multiplying

[14:44]

Matrix B with the inverse of Matrix a

[14:47]

returns Matrix B in local coordinates

[14:50]

relative to Matrix

[14:53]

a the inverse Matrix is used when

[14:56]

parenting an object if an object is

[14:58]

placed under its parent the space is

[15:00]

placed inside the space of the parent so

[15:03]

the Matrix of the child is Multiplied

[15:06]

with the Matrix of the parent to get the

[15:08]

child's world Matrix because of this

[15:11]

after the parent action the world

[15:13]

transformations of the child's content

[15:15]

would change in general this is unwanted

[15:18]

so to prevent this during a parenting

[15:21]

action the child's world Matrix gets

[15:23]

multiplied with the new parents inverse

[15:25]

World Matrix to get the new local Matrix

[15:29]

relative to the parent the child's

[15:31]

Matrix is then updated to this new local

[15:33]

Matrix and when multiplied with the

[15:36]

parent Matrix the Transformations add up

[15:38]

to the same world Matrix as before the

[15:40]

parent action Maya's parenting operation

[15:43]

does this by default but offers the

[15:46]

relative option to not change the chance

[15:48]

Matrix and thus keep its local Matrix as

[15:51]

is I will use this inverse Matrix to get

[15:54]

the local Matrix extensively in a

[15:56]

follow-up video about flat dynamic

[15:59]

control rigs using

[16:00]

guides composing a matrix all 3D

[16:04]

software packages work with matrices

[16:05]

behind the scenes any object that can be

[16:08]

translated rotated or scaled is

[16:10]

basically a matrix a piece of geometry

[16:13]

for example is just a collection of

[16:15]

points and vectors in local space and

[16:17]

when moving the geometry Only The Matrix

[16:20]

is manipulated the unchanged points and

[16:22]

vectors then get transformed by this

[16:24]

Matrix to get their world positions for

[16:26]

drawing them on screen in Maya all

[16:29]

geometry Point data is stored in the

[16:31]

shape node which is a child of a

[16:33]

transform node the shape node has no

[16:35]

Matrix data but the transform node

[16:38]

stores The Matrix however most of the

[16:40]

time the user gets presented with

[16:42]

individual translate rotate and scale

[16:45]

values because directly manipulating a

[16:47]

matrix is not very intuitive when

[16:50]

changing these translation rotation in

[16:52]

scale values to modify an object behind

[16:55]

the scenes a matrix is composed to

[16:57]

transform the object's points vectors

[16:59]

and or child matrices in fact in the

[17:02]

transformation node not one Matrix is

[17:04]

composed but multiple one for

[17:06]

translation three for rotation one for

[17:09]

scale one for share a few for rotation

[17:11]

and scale pivot offsets and one parent

[17:14]

offset Matrix a joint even has an

[17:16]

additional three matrices for the joint

[17:18]

Orient and an extra inverse Scale Matrix

[17:21]

all these matrices get multiply together

[17:23]

in the way I showed earlier in a

[17:25]

specific order to form the final

[17:27]

transformation matrix of the transform

[17:30]

node you could look at this as a whole

[17:32]

hierarchy of matrices inside the

[17:34]

transform node all of these internal

[17:37]

matrices are composed from the values

[17:39]

set on the transform node the basis or

[17:42]

template if you will of all these

[17:43]

individual matrices is always the

[17:45]

identity Matrix now let's look at how to

[17:48]

modify these identity matrices to get

[17:50]

translate rotate scale and share

[17:53]

matrices translation the translation

[17:57]

Matrix can be created by setting the

[17:59]

values directly as the X Y and Z values

[18:01]

of the translation

[18:06]

Vector scale the Scale Matrix can be

[18:09]

created by scaling the basis vectors by

[18:12]

its corresponding scale value but as

[18:14]

these are unit factors in the identity

[18:17]

Matrix we can set them directly to the

[18:19]

value that has

[18:24]

D1 rotation for rotation usually in

[18:27]

Oiler rotation is used where you specify

[18:30]

three rotation values for rotating

[18:32]

around the X Y and Z axis respectively

[18:36]

each value is used to create a separate

[18:38]

Matrix that is rotated by the amount

[18:40]

around the axis all three matrices are

[18:43]

then multiplied together to get the

[18:45]

complete rotation Matrix this is why we

[18:48]

also have a rotation order for this

[18:50]

rotation this determines the order in

[18:53]

which the X Y and Z rotation matrices

[18:56]

are multiplied each combination gives a

[18:59]

different result because the

[19:00]

multiplication order matters for

[19:02]

matrices before creating the three

[19:05]

rotation matrices we first need to take

[19:07]

a look at the S and cosine function the

[19:10]

S and cosine functions Loop every 2 pi

[19:13]

which corresponds with one unit circle

[19:16]

circumference if we rotate the cosine

[19:19]

graph 90° we can use the cosine and S

[19:22]

values as 2D coordinates to trace a

[19:25]

circle with a radius of one the input of

[19:29]

the sign and cosine can now be seen as a

[19:31]

rotation in Radiance of a unit Vector

[19:34]

with coordinates 1

[19:36]

Z because the basis vectors of the

[19:39]

identity Matrix are unit vectors and the

[19:42]

combined s and cosine values also create

[19:45]

a unit Vector we can create any angled

[19:48]

basis vector by using the S and cosine

[19:51]

of the angle in radians as two

[19:53]

components of the basis

[19:56]

vectors to get the rotation xate

[19:59]

we rotate the Y and Z basis factors

[20:02]

around the X basis

[20:04]

Vector so the X basis Vector does not

[20:07]

change and because the rotation happens

[20:10]

in the y z axis plane the X components

[20:13]

of the Y and Z basis vectors also do not

[20:16]

change we can discard the X Dimension

[20:19]

and look at the Y and Z as components of

[20:22]

a 2d Vector this is where the sign and

[20:25]

cosine come in with a rotation of zero

[20:28]

the cosine evaluates to one and the S

[20:31]

evaluates to zero so we can just

[20:34]

substitute the ones with cosine of angle

[20:37]

and the Zer with s of angle the Y basis

[20:40]

Factor thus becomes zero cosine of angle

[20:44]

s of angle the Z basis Factor becomes

[20:47]

zero s of angle cosine of angle because

[20:51]

the sign and cosine needs angles in

[20:54]

radians and the user enters Oiler angles

[20:56]

in degrees internally the the user

[20:59]

angles are converted to radians by

[21:01]

dividing them by 2 pi however when we

[21:04]

now rotate the basis factors by setting

[21:06]

an angle other than zero the bases X's

[21:10]

do not rotate in the same direction so

[21:12]

we have to flip the direction of one of

[21:14]

the components by negating it we cannot

[21:17]

negate a cosine because it is one at

[21:20]

zero rotation and that would flip the

[21:22]

basis Factor the sign is zero at a

[21:25]

rotation of zero so negating that does

[21:28]

not change the not rotated basis Factor

[21:31]

the direction of rotation is based as

[21:34]

far as I know on the following

[21:36]

convention when you align the thumb of

[21:38]

your hand with the x-axis your index

[21:41]

finger with the Y AIS and your middle

[21:44]

finger with the z-axis this can only

[21:47]

match with either your left or your

[21:49]

right hand the coordinate system is thus

[21:51]

said to be right-handed or left-handed

[21:54]

when you take the hand that matches and

[21:56]

make a thumbs up sign and align the

[21:59]

thumb with the positive direction of the

[22:01]

axis you are rotating around for fingers

[22:04]

Arc in the direction of positive

[22:06]

rotation so for a right-handed

[22:08]

coordinate system positive rotation is

[22:11]

always

[22:12]

counterclockwise taking this into

[22:14]

account we have to negate the sign of

[22:16]

angle in the Z basis Vector following

[22:19]

the same logic we end up with a Y

[22:21]

rotation Matrix with a negated sign of

[22:24]

angle in the X basis vector and the Z

[22:28]

rotation Matrix with a negated sign of

[22:30]

angle in the Y basis Vector multiplying

[22:34]

these three rotation matrices in the

[22:36]

specify rotation order results in the

[22:38]

full rotation

[22:42]

Matrix

[22:43]

share in general Shear is not something

[22:46]

that a user would manually set but it's

[22:48]

usually exposed to the user to

[22:50]

manipulate the transformation matrix

[22:53]

there are different ways of implementing

[22:54]

Shear in a matrix in Maya the sheare

[22:57]

values are set directly at the following

[22:59]

positions to introduce the slanted

[23:02]

axis so now you hopefully have a better

[23:05]

understanding of matrices and the way to

[23:06]

visualize what is happening I know this

[23:09]

helped me a lot with the mystifying

[23:10]

matrices when I started working with

[23:12]

them there is still more to discover

[23:15]

like creating a rotation Matrix from a

[23:17]

querian instead of oil rotation or how

[23:20]

to decompose a matrix in its separate

[23:23]

Transformations if you're interested in

[23:25]

this leave a comment and maybe I'll

[23:26]

create a follow-up video I'll also be

[23:29]

doing some practical example videos of

[23:31]

working with matrices so stay tuned

[23:33]

follow And subscribe and let me know in

[23:35]

the comments what you think of the

[23:37]

content

Download Subtitles

These subtitles were extracted using the Free YouTube Subtitle Downloader by LunaNotes.

Download more subtitles

Related Videos

Download Subtitles for Rigging with Matrices - Part 02 FK Tutorial

Download Subtitles for Rigging with Matrices - Part 02 FK Tutorial

Enhance your learning experience with downloadable subtitles for the 'Rigging with Matrices - Part 02 FK' video. Subtitles provide clear guidance, making complex rigging techniques easier to understand and follow along. Perfect for students and 3D animation enthusiasts wanting detailed explanations in text form.

Download Subtitles for The Guillotine Choke Masterclass Video

Download Subtitles for The Guillotine Choke Masterclass Video

Enhance your learning experience with downloadable subtitles for The Guillotine Choke: A Complete Masterclass. Perfect for following along, improving comprehension, and mastering every technique showcased in this instructional video.

Download Accurate Subtitles and Captions for Your Videos

Download Accurate Subtitles and Captions for Your Videos

Easily download high-quality subtitles to enhance your video viewing experience. Subtitles improve comprehension, accessibility, and engagement for diverse audiences. Get captions quickly for better understanding and enjoyment of any video content.

Download Subtitles for The Easiest Way to Scatter Plants Video

Download Subtitles for The Easiest Way to Scatter Plants Video

Enhance your learning experience by downloading accurate subtitles for 'The Easiest Way to Scatter Plants In 3ds Max & Corona or V-Ray.' Subtitles help you follow along effortlessly and improve comprehension of the detailed 3D modeling techniques demonstrated in this tutorial.

Download Subtitles for The 2025 Guide to Rendering in Unreal Engine 5

Download Subtitles for The 2025 Guide to Rendering in Unreal Engine 5

Enhance your learning experience with downloadable subtitles for The 2025 Guide to Rendering in Unreal Engine 5 video. Accurate captions make it easier to follow complex rendering techniques and ensure accessibility for all viewers. Get your subtitles now to master Unreal Engine 5 effectively.

Most Viewed

Download Subtitles for 2025 Arknights Ambience Synesthesia Video

Download Subtitles for 2025 Arknights Ambience Synesthesia Video

Enhance your viewing experience of the 2025 Arknights Ambience Synesthesia — Echoes of the Legends by downloading accurate subtitles. Perfect for understanding the intricate soundscapes and lore, these captions ensure you never miss a detail.

Download Subtitles for Girl Teases Friend Funny Video

Download Subtitles for Girl Teases Friend Funny Video

Enhance your viewing experience by downloading subtitles for the hilarious video 'Girl Teases Friend For Having Poor BF'. Captions help you catch every witty remark and enjoy the humor even in noisy environments or for non-native speakers.

C Language Tutorial Subtitles for Beginners with Practice

C Language Tutorial Subtitles for Beginners with Practice

डाउनलोड करें C Language Tutorial के लिए सबटाइटल्स और कैप्शन्स, जिससे यह वीडियो और भी समझने में आसान हो जाता है। नोट्स और प्रैक्टिस प्रश्नों के साथ यह सीखने का आपका अनुभव बेहतर बनाएं।

تحميل ترجمات فيديو الترانزستورات كيف تعمل؟

تحميل ترجمات فيديو الترانزستورات كيف تعمل؟

قم بتنزيل ترجمات دقيقة لفيديو الترانزستورات لتسهيل فهم كيفية عملها. تعزز الترجمات تجربة التعلم الخاصة بك وتجعل المحتوى متاحًا لجميع المشاهدين.

離婚しましたの動画字幕|無料で日本語字幕ダウンロード

離婚しましたの動画字幕|無料で日本語字幕ダウンロード

「離婚しました」の動画字幕を無料でダウンロードできます。視聴者が内容をより深く理解し、聴覚に障害がある方や外国人にも便利な字幕付き動画を楽しめます。

Buy us a coffee

If you found these subtitles useful, consider buying us a coffee. It would help us a lot!

Let's Try!

Start Taking Better Notes Today with LunaNotes!