A Cadre C, ou Coordinate Frame, est un DataType contenant des données de position et de rotation. Il peut être utilisé pour positionner avec précision les BaseParts via leur propriété CFrame, qui, contrairement à Position, permet de faire pivoter la pièce.
Vous pouvez positionner une pièce comme vous le feriez avec la propriété Position.
part.CFrame = CFrame.new (1, 6, 2) -- Place la pièce au point {1, 6, 2) dans l'espace de travail
Pour créer un CFrame pivoté à l'origine, utilisez :
part.CFrame = CFrame.Angles(math.rad(45), math.rad(90), math.rad(180))
Il est à noter que les rotations ne sont pas appliquées simultanément, mais séquentiellement. Ainsi, la commande précédente tourne dans l'axe X de la pièce, puis l'axe Y de la pièce, puis l'axe Z de la pièce.
Pour une explication des paramètres, voir radians.
Un fait intéressant est que toute instance avec une propriété de type CFrame, par exemple, la propriété CFrame d'un objet BasePart, est masquée dans le panneau des propriétés. La propriété "Value" d'un CFrameValue est également masquée et doit donc être modifiée à partir d'un script, d'un plugin ou via la ligne de commande.
Contenu
- 1 Constructeurs
- Propriétés 2
- Méthodes 3
- Opérateurs 4
Constructeurs
Les CFrames sont l'un des nombreux types de données disponibles dans Roblox Lua. Un CFrame peut être créé en utilisant l'un des nombreux constructeurs. Cependant, notez que contrairement à la propriété d'orientation d'une BasePart, les arguments de rotation sont exprimés en radians au lieu de degrés.
Constructeur | Détails |
---|---|
CFrame.new( ) |
Crée une identité CFrame |
CFrame.new (Vector3 v) |
Crée un CFrame à partir de l'offset v |
CFrame.new (Vector3 v) |
Crée un CFrame à partir de l'offset v |
CFrame.new ( nombre x, nombre y, nombre z) |
Crée un CFrame à partir d'un décalage (x, y, z) |
CFrame.new( Nombre x, Nombre y, Nombre z, |
Crée une CFrame à partir de l'offset (x, y, z) et du quaternion (qx, qy, qz, qw) |
CFrame.new( Nombre x, Nombre y, Nombre z, |
Crée un CFrame à partir d'un décalage (x, y, z) et d'une matrice de rotation (R00, R01, R02, R10, R11, R12, R20, R21, R22) |
CFrame.fromEulerAnglesXYZ( Nombre x, Nombre y, Nombre z) orCFrame.Angles( Nombre x, Nombre y, Nombre z) or CFrame.fromOrientation( Nombre x, Nombre y, Nombre z) |
Crée un CFrame tourné à (0,0,0) tourné autour des trois axes dans l'ordre (par rapport au CFrame). Angles en radians |
CFrame.fromEulerAnglesYXZ( Nombre rx, nombre ry, Nombre rz) |
Crée un CFrame à (0,0,0) tourné autour des trois axes dans l'ordre Y, Z, X |
CFrame.fromAxisAngle( Vector3 v, Number r) |
Crée un CFrame pivoté à partir d'un vecteur unitaire et d'une rotation en radians |
CFrame.lookAt (Position Vector3, Number lookAt) |
Crée un CFrame dont la position est position, et dont lookVector est dirigé vers, ou regardant lookAt |
Propriétés
Membre | Détails |
---|---|
Position du vecteur3 | la composante positionnelle du CFrame |
Numéro X | la composante positionnelle du CFrame sur l'axe X |
Numéro Y | la composante positionnelle du CFrame sur l'axe Y |
Numéro Z | la composante positionnelle du CFrame sur l'axe Z |
Vector3 LookVector | le vecteur directionnel orienté vers l'avant du CFrame |
Vecteur3 DroitVecteur | le vecteur directionnel orienté vers la droite du CFrame |
Vector3 UpVector | le vecteur directionnel vers le haut de la CFrame |
Vector3 XVector | la première colonne de la matrice de rotation du CFrame |
Vector3 YVecteur | la deuxième colonne de la matrice de rotation du CFrame |
Vecteur3 ZVecteur | la troisième colonne de la matrice de rotation du CFrame |
Méthodologie
Méthodologie | Détails |
---|---|
CFrame CFrame:Inverse( ) |
renvoie l'inverse de la CFrame |
CFrame CFrame:ToWorldSpace( CFrame c) |
renvoie un CFrame transformé des coordonnées Object en World. Fonctionne aussi avec des tuples |
CFrame CFrame:ToObjectSpace( CFrame c) |
renvoie un CFrame transformé des coordonnées World en Object. Fonctionne aussi avec des tuples |
Vector3 CFrame:PointToWorldSpace (Vector3 v) |
renvoie un Vector3 transformé des coordonnées Object en World. Fonctionne aussi avec des tuples |
Vector3 CFrame:PointToObjectSpace( Vector3 v) |
renvoie un Vector3 transformé des coordonnées World en Object. Fonctionne aussi avec des tuples |
Vector3 CFrame:VectorToWorldSpace (Vector3 v) |
renvoie un vecteur3 pivoté des coordonnées de l'objet aux coordonnées du monde. Fonctionne aussi avec des tuples |
Vector3 CFrame:VectorToObjectSpace (Vector3 v) |
renvoie un vecteur3 pivoté des coordonnées du monde aux coordonnées de l'objet. Fonctionne aussi avec des tuples |
Tuple CFrame:GetComponents( ) orTuple CFrame:composants( ) |
renvoie tous les composants du CFrame dans l'ordre suivant :
x, y, z, R00, R01, R02, R10, R11, R12, R20, R21, R22 |
Tuple CFrame:VersOrientation( ) orTuple CFrame:ToEulerAnglesYXZ( ) |
renvoie les angles approximatifs de l'orientation de la pièce |
Tuple CFrame:ToEulerAnglesXYZ( ) |
renvoie les angles approximatifs de l'orientation de la pièce ordonnés comme Z, Y, X |
Numéro CFrame:ToAxisAngle( ) |
renvoie l'orientation du CFrame dans la représentation axe-angle |
CFrame CFrame:Orthonormaliser( ) |
renvoie une CFrame qui est passée par le processus Gram-Schmidt |
Les opérateurs
Opérateur | Détails |
---|---|
Cadre CF * Cadre CF | renvoie la composition de deux CFrames |
Cadre CF * Vector3 | renvoie Vector3 transformé de l'objet aux coordonnées mondiales |
CFrame + Vector3 | renvoie CFrame traduit par Vector3 |
CFrame - Vector3 | renvoie CFrame traduit par -Vector3 |
Types de données | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Types Lua de base | nul · booléen · nombre · un magnifique · fonction · données utilisateur · table | ||||||||||||||||||||||||||||||
Types de Roblox |
| ||||||||||||||||||||||||||||||
types C++ | bool · double · flotter · int · int64 · annuler |