CFrame

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Le taperde données CFrame, court pour cadre de coordonnée, décrit une position et une orientation 3D. Il est composé d'un composant positional et d'un composant 2>rotational2> et inclut les opérations arithmétiques de base pour travailler avec les données 3D sur Roblox.


-- Créer un CFrame à une certaine position et rotation Euler
local cf = CFrame.new(0, 5, 0) * CFrame.fromEulerAngles(math.rad(45), 0, 0)

Pour une introduction au taperde données CFrame, voir CFrames .

Composant positionnel

Le composant positionnel est disponible comme un Vector3 . En outre, les composants d'un objet de position CFrame sont également disponibles dans le X , 1> Datatype.CFrame.Y|Y1> et <

Composant de rotation

CFrame stocke les données

Le tableau ci-dessous représente la rotation de la matrice de rotation d'un objet CFrame et sa relation avec les propriétés de vécteur disponibles telles que LookVector et RightVector. Bien que les composantes individuelles de la rotation de la matrice soient rarement utiles par elles-mêmes, les propriétés


<tbody>
<tr>
<td>R00</td>
<td>R01</td>
<td>R02</td>
</tr>
<tr>
<td>R10</td>
<td>R11</td>
<td>R12</td>
</tr>
<tr>
<td>R20</td>
<td>R21</td>
<td>R22</td>
</tr>
</tbody>
XVector, Vecteur de droiteYVector, UpVectorZVector, -LookVector ^

^ Datatype.CFrame.LookVector|LookVector représente les composantes de colonne négées. Le Datatype.CFrame.LookVector|LookVector est utile parce que de nombreux 1> Class.Instance|Instances1> tels que le <figcaption>4> Class.Camera|Camera</figcaption>4> et le

Résumé

Constructeurs

Propriétés

Méthodes

Opérations Maths

Constructeurs

new

Crée une identité vide CFrame .

new

Retourne un CFrame avec aucune rotation avec la position du fournisseur Vector3 .

Paramètres

pos: Vector3

new

Retourne un nouveau CFrame situé à pos et face vers lookAt, en supposant que 1> (0, 1, 0)1> est considéré comme «décalé» dans l'espace du monde.

Ce surchargement de constructeur a été remplacé par CFrame.lookAt() , qui atteint le même objectif. Il reste pour l'amour de la compatibilité avec l'ancienne version.

À des angles de haut degré (environ 82 degrés), vous pouvez expérimenter des instabilités numériques. Si c'est un problème, ou si vous avez besoin d'un autre force vectorielle« up », utilisez CFrame.fromMatrix() pour plus de précision construire le CFrame . De plus,

Paramètres

pos: Vector3
lookAt: Vector3

new

Retourne un CFrame avec une position composée des composants fournis x, y et 2>z2>.

Paramètres

new

Retourne un CFrame de position ( x , y , 1> z1> ) et quaternion ( 4> qX4> , 7> qY7> , <

Paramètres

new

Crée un CFrame à partir de la position ( x , y , 1> z1> ) avec une orientation spécifiée par la matrice de rotation.

[[R00 R01 R02] [R10 R11 R12] [R20 R21 R22]]

Paramètres

R00: number
R01: number
R02: number
R10: number
R11: number
R12: number
R20: number
R21: number
R22: number

lookAt

Retourne un nouveau CFrame avec la position de at et tourné vers lookAt, optionnellement spécifiant la direction vers le haut ( 1> up1> ) par défaut de 4> (0, 1, 0)4> .

Paramètres

lookAt: Vector3
Valeur par défaut : Vector3.yAxis

lookAlong

Retourne un nouveau CFrame avec la position de at et tourné vers la direction direction , optionnellement spécifiant la direction vers le haut ( 1> up1> ) par défaut de 4> (0, 1, 0)4> .

Ce constructeur est équivalent à CFrame.lookAt(at, at + direction) .

Paramètres

direction: Vector3
Valeur par défaut : Vector3.yAxis

fromRotationBetweenVectors

Retourne un CFrame représentant l'orientation nécessaire pour faire pivoter le premier Vector3 vers le second, avec la position définie à zéro.

Paramètres

from: Vector3

Vecteur représentant la direction "de".

Vecteur représentant la direction "à".

fromEulerAngles

Retourne un CFrame tourné à partir des angles rx, ry et 1> rz1> dans les radians. Les rotations sont appliquées dans le 4> 枚.RotationOrder4> optionnel avec un 7> xyz7> par défaut, équivalent à :


CFrame.fromEulerAngles(rx, 0, 0) * -- X
CFrame.fromEulerAngles(0, ry, 0) * -- Y
CFrame.fromEulerAngles(0, 0, rz) -- Z

Paramètres

rx: number
ry: number
rz: number
Valeur par défaut : Enum.RotationOrder.XYZ

fromEulerAnglesXYZ

Retourne un CFrame tourné à partir des angles rx, ry et 1> rz1> dans les radians en utilisant 4> Amount.RotationOrder.XYZ4>, équivalent à :


CFrame.fromEulerAngles(rx, 0, 0) * -- X
CFrame.fromEulerAngles(0, ry, 0) * -- Y
CFrame.fromEulerAngles(0, 0, rz) -- Z

Paramètres

rx: number
ry: number
rz: number

fromEulerAnglesYXZ

Retourne un CFrame pivoté à partir des angles rx, ry et 1> rz1> dans les radians en utilisant 4> Enum.RotationOrder.YXZ4>, équivalent à :


CFrame.fromEulerAngles(0, ry, 0) * -- Y
CFrame.fromEulerAngles(rx, 0, 0) * -- X
CFrame.fromEulerAngles(0, 0, rz) -- Z

Paramètres

rx: number
ry: number
rz: number

Angles

Équivalent à fromEulerAnglesXYZ() .

Paramètres

rx: number
ry: number
rz: number

fromOrientation

Équivalent à fromEulerAnglesYXZ() .

Paramètres

rx: number
ry: number
rz: number

fromAxisAngle

Retourne un CFrame pivoté d'une unité Vector3 et une rotation en radians.

Paramètres

fromMatrix

Retourne un CFrame d'une traduction et des colonnes d'une matrice de rotation. Si vZ est exclu, la troisième colonne est calculée comme vX:Cross(vY).Unit.

Paramètres

pos: Vector3

La position 3D du CFrame .

Équivalent à RightVector .

Équivalent à UpVector.

Équivalent à - LookVector .

Propriétés

identity

Une identité CFrame avec aucune traduction ou rotation. Cette propriété est une constante et doit être accessible globalement au lieu d'être accédée à partir d'un seul CFrame objet.

Position

La position 3D du CFrame .

Rotation

Une copie du CFrame sans traduction.

La position X.

La position de coordonnée Y.

La position de coordonnée Z.

LookVector

La direction de l'avant du composant de l'objet CFrame , équivalente à la direction négative ZVector ou à la colonne négative de la matrice de rotation.


local cf = CFrame.new(0, 0, 0)
local x, y, z, R00, R01, R02, R10, R11, R12, R20, R21, R22 = cf:GetComponents()
print(cf.LookVector) --> (-0, -0, -1)
print(-cf.ZVector) --> (-0, -0, -1)
print(-R02, -R12, -R22) --> (-0 -0 -1)

Ajouter un objet CFrame à lui-même produit un LookVector qui se déplace en avant dans n'importe quelle direction qu'il soit face à 1 unité.

RightVector

La direction de la pièce de CFrame objet. Équivalent à XVector ou à la première colonne de la matrice de rotation.


local cf = CFrame.new(0, 0, 0)
local x, y, z, R00, R01, R02, R10, R11, R12, R20, R21, R22 = cf:GetComponents()
print(cf.RightVector) --> (1, 0, 0)
print(cf.XVector) --> (1, 0, 0)
print(R00, R10, R20) --> (1 0 0)

UpVector

La direction vers le haut de l'objet CFrame l'orientation. Équivalent à YVector ou la deuxième colonne de la matrice de rotation.


local cf = CFrame.new(0, 0, 0)
local x, y, z, R00, R01, R02, R10, R11, R12, R20, R21, R22 = cf:GetComponents()
print(cf.UpVector) --> (0, 1, 0)
print(cf.YVector) --> (0, 1, 0)
print(R01, R11, R21) --> (0 1 0)

XVector

La X component of the CFrame objet's orientation. Equivalent à RightVector ou la première colonne de la matrice de rotation.


local cf = CFrame.new(0, 0, 0)
local x, y, z, R00, R01, R02, R10, R11, R12, R20, R21, R22 = cf:GetComponents()
print(cf.XVector) --> (1, 0, 0)
print(cf.RightVector) --> (1, 0, 0)
print(R00, R10, R20) --> (1 0 0)

YVector

Le Y de l'orientation de l'objet CFrame. Équivalent à UpVector ou à la deuxième colonne de la matrice de rotation.


local cf = CFrame.new(0, 0, 0)
local x, y, z, R00, R01, R02, R10, R11, R12, R20, R21, R22 = cf:GetComponents()
print(cf.YVector) --> (0, 1, 0)
print(cf.UpVector) --> (0, 1, 0)
print(R01, R11, R21) --> (0 1 0)

ZVector

Le composant Z de l'objet CFrame l'orientation. Équivalent à la négation LookVector ou à la troisième colonne de la matrice de rotation.


local cf = CFrame.new(0, 0, 0)
local x, y, z, R00, R01, R02, R10, R11, R12, R20, R21, R22 = cf:GetComponents()
print(cf.ZVector) --> (0, 0, 1)
print(-cf.LookVector) --> (0, 0, 1)
print(R02, R12, R22) --> (0 0 1)

Méthodes

Inverse

Renvoie le contraire de CFrame .

Retours

Lerp

Retourne un CFrame interpolé entre lui et goal par la fraction alpha.

Paramètres

goal: CFrame
alpha: number

Retours

Orthonormalize

Retourne une copie orthonormalisée du CFrame . La propriété BasePart.CFrame applique automatiquement l'orthonormalisation, mais d'autres API qui prennent CFrames ne le font pas, donc cette méthode est nécessaire occasionnellement lors de l'actualisation d'un 1> Datatype.CFrame

Retours

ToWorldSpace

Reçoit un ou plusieurs objets CFrame et les renvoie transformés du monde dans l'espace d'objet. Équivalent à :

CFrame * cf

Paramètres

Retours

ToObjectSpace

Reçoit un ou plusieurs objets CFrame et les renvoie transformés de l'espace mondial à l'espace d'objet. Équivalent à :

CFrame:Inverse() * cf

Paramètres

Retours

PointToWorldSpace

Reçoit un ou plusieurs objets Vector3 et les renvoie transformés du monde dans l'espace objet. Équivalent à :

CFrame * v3

Paramètres

Retours

PointToObjectSpace

Reçoit un ou plusieurs objets Vector3 et les renvoie transformés de l'espace mondial à l'espace d'objet. Équivalent à :

CFrame:Inverse() * v3

Paramètres

Retours

VectorToWorldSpace

Reçoit un ou plusieurs objets Vector3 et les renvoie pivotés du espaceà l'objet. Équivalent à :

(CFrame - CFrame.Position) * v3

Paramètres

Retours

VectorToObjectSpace

Reçoit un ou plusieurs objets Vector3 et les renvoie dans l'espace de rotation du monde à l'espace d'objet. Équivalent à :

(CFrame:Inverse() - CFrame:Inverse().Position) * v3

Paramètres

Retours

GetComponents

Retourne les valeurs x, y, z, 1> R0

Retours

ToEulerAngles

Retourne des angles environnants qui pourraient être utilisés pour générer le CFrame en utilisant le Enum.RotationOrder. Si vous n'avez pas fourni de order, la méthode utilise 2>Enregistrement.RotationOrder.XYZ2>.

Paramètres

Valeur par défaut : Enum.RotationOrder.XYZ

ToEulerAnglesXYZ

Renvoie des angles environnants qui pourraient être utilisés pour générer le CFrame à l'aide de Enum.RotationOrder.XYZ .

ToEulerAnglesYXZ

Renvoie des angles environnants qui pourraient être utilisés pour générer le CFrame à l'aide de Enum.RotationOrder.YXZ .

ToOrientation

Équivalent à CFrame:ToEulerAnglesYXZ() .

ToAxisAngle

Retourne un tableau d'un Vector3 et un nombre qui représente la rotation du CFrame dans la représentation d'angle.

components

Équivalent à CFrame:GetComponents() .

Retours

FuzzyEq

Renvoie true si l'autre « Datatype.CFrame » est assez proche de ce « Datatype.CFrame » dans les positions et les rotations. La valeur eps est utilisée pour contrôler la tolérance pour cette similitude. Cette valeur est optionnelle et doit être une petite valeur positive si elle est fournie. La tolérance pour la position est comprise dans le composant, et pour la rotation, une approximation

Paramètres

other: CFrame
epsilon: number
Valeur par défaut : 0.00001 (1e-5)

Retours

Opérations Maths


Produit une nouvelle CFrame représentant la composition des deux CFrames .


Produit un Vector3 transformé des objets en coordonnées mondiales.


Produit un CFrame traduit dans l'espace mondial par le Vector3.


Produit un CFrame traduit dans l'espace mondial par le négatif Vector3.