데이터 입력, 좌표 프레임의 약자로, 3D 위치와 방향을 설명합니다.위치 구성 요소와 회전 구성 요소로 구성되며 Roblox에서 3D 데이터를 작업하는 데 필수적인 산술 작업을 포함합니다.
-- 특정 위치에서 CFrame 생성 및 유클리드 회전local cf = CFrame.new(0, 5, 0) * CFrame.fromEulerAngles(math.rad(45), 0, 0)
For an introduction to the 데이터 입력CFrame 의 소개, see CFrames .
위치 구성 요소
위치 구성 요소는 Vector3로 사용할 수 있습니다.또한, 객체의 위치 CFrame 의 구성 요소도 X , Y 및 Z 속성처럼 Vector3 과 같은 속성에서 사용할 수 있습니다.
회전 부품
는 3×3 회전 매트릭스에 3D 회전 데이터를 저장합니다.이 값은 위치 값 x 및 y 및 z 후에 반환되는 CFrame:GetComponents() 함수에 의해 반환됩니다.이 매트릭스는 회전과 관련된 계산을 수행할 때 내부적으로 사용되며, radians 를 단위로 사용합니다(서로 변환하려면 또는 를 사용하십시오).Roblox 엔진이 회전을 수행하는 방법에 대한 자세한 정보는 Enum.RotationOrder 을 참조하십시오.
아래 표는 CFrame 개체의 회전 매트릭스 구성 요소와 사용 가능한 벡터 속성(예: LookVector 및 RightVector)의 관계를 나타냅니다.회전 매트릭스의 개별 구성 요소는 자체로 거의 유용하지 않지만, 그것들에서 파생된 벡터 속성은 훨씬 더 유용합니다.
<th>Y벡터, Up벡터</th><th>ZVector, -LookVector <sup>†</sup></th></tr></thead><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>
X벡터, 라이트벡터 |
---|
요약
생성자
- new()
빈 정체성을 반환합니다 CFrame .
제공된 CFrame 및 x , y 및 z 구성 요소로 구성된 위치를 반환합니다.
위치( , , , , , , )와 쿼터니언( , , , )을 반환합니다.
회전 매트릭스에 의해 지정된 방향으로 위치(x, y, z)에서 CFrame를 반환하여 방향을 지정합니다.
첫 번째 Vector3 의 위치와 두 번째로 향하는 방향으로 지향된 오리엔테이션을 가진 CFrame 를 반환합니다.
- fromRotationBetweenVectors(from : Vector3,to : Vector3)
첫 번째 Vector3 에서 두 번째로 회전하는 데 필요한 방향을 나타내는 CFrame 를 반환하여 위치가 0으로 설정됩니다.
- fromEulerAngles(rx : number,ry : number,rz : number,order : Enum.RotationOrder)
각도 CFrame , rx 및 ry 에서 회전된 반환 rz 을 라디안으로 합니다.회전은 기본값 Enum.RotationOrder 으로 선택적 XYZ 에 적용됩니다.
- fromEulerAnglesXYZ(rx : number,ry : number,rz : number)
각도 , 및 을 사용하여 라디안으로 회전된 을 반환합니다.
- fromEulerAnglesYXZ(rx : number,ry : number,rz : number)
각도 , 및 을 사용하여 라디안으로 회전된 을 반환합니다.
fromEulerAnglesXYZ()와 동일합니다.
- fromOrientation(rx : number,ry : number,rz : number)
fromEulerAnglesYXZ()와 동일합니다.
- fromAxisAngle(v : Vector3,r : number)
- fromMatrix(pos : Vector3,vX : Vector3,vY : Vector3,vZ : Vector3)
번역 및 회전 매트릭스의 열로부터 CFrame를 반환합니다.
속성
메서드
반대의 값을 반환합니다 CFrame.
자체와 의 소수로 인터폴레이션된 를 반환합니다.
CFrame의 정규화된 복사본을 반환합니다.
하나 이상의 CFrame 개체를 받아 개체에서 세계 공간으로 변환하여 반환합니다.
하나 이상의 CFrame 개체를 받아 세계에서 개체 공간으로 변환하여 반환합니다.
하나 이상의 Vector3 개체를 받아 개체에서 세계 공간으로 변환하여 반환합니다.
하나 이상의 Vector3 개체를 받아 세계에서 개체 공간으로 변환하여 반환합니다.
하나 이상의 Vector3 개체를 받아 객체에서 세계 공간으로 회전하여 반환합니다.
하나 이상의 Vector3 개체를 받아 세계에서 개체 공간으로 회전하여 반환합니다.
값 , , , , , , , , , 그리고 , , , 그리고 , , ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – <4
선택적 Enum.RotationOrder를 사용하여 CFrame를 반환합니다.
반환 대략적인 각도를 사용하여 CFrame를 생성할 수 있는 용도로 Enum.RotationOrder.XYZ를 사용하여 생성할 수 있는 대략적인 각도를 반환합니다.
반환 대략적인 각도를 사용하여 CFrame를 생성할 수 있는 용도로 Enum.RotationOrder.YXZ를 사용하여 생성할 수 있는 대략적인 각도를 반환합니다.
CFrame:ToEulerAnglesYXZ()와 동일합니다.
Vector3 및 축-각도 표현에서 회전을 나타내는 숫자로 구성된 튜플을 반환합니다.Returns a tuple of a CFrame and a number which represent the rotation of the in the axis-angle representation.
CFrame:GetComponents()와 동일합니다.
수학 연산
생성자
new
새로운 CFrame 를 반환하여 세계 공간에서 pos 로 향하고 있고 세계 공간에서 lookAt 로 간주되는 (0, 1, 0) 가 "위"로 간주됩니다.
이 생성자 오버로드는 유사한 목표를 달성하는 CFrame.lookAt() 로 대체되었습니다. 이는 이전 버전과의 호환성을 위해 남아 있습니다.
높은 피치 각도(약 82도)에서는 숫자 불안정을 경험할 수 있습니다.이것이 문제인 경우 또는 다른 "위" 벡터가 필요한 경우 CFrame.fromMatrix()를 사용하여 더 정확하게 CFrame를 생성하십시오.또한, if lookAt 가 직접 위에 있는 pos (피치 각도 90도)는 "위" 벡터가 X축으로 전환됩니다.
fromEulerAngles
각도 CFrame , rx 및 ry 에서 회전된 반환 rz 을 라디안으로 합니다.회전은 기본값인 Enum.RotationOrder 으로 선택적 XYZ 에 적용됩니다. 이는 다음과 같습니다.
CFrame.fromEulerAngles(rx, 0, 0) * -- XCFrame.fromEulerAngles(0, ry, 0) * -- YCFrame.fromEulerAngles(0, 0, rz) -- Z
매개 변수
fromMatrix
번역 및 회전 매트릭스의 열로부터 CFrame를 반환합니다.vZ가 제외되면 세 번째 열은 vX:Cross(vY).Unit로 계산됩니다.
매개 변수
RightVector와 동일합니다.
대체 - LookVector .
속성
LookVector
CFrame 개체의 전방향 구성 요소 방향, 부정 된 ZVector 또는 부정 된 회전 매트릭스의 세 번째 열과 동일합니다.
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)
개체의 를 자체에 추가하면 향하는 방향으로 1 단위 앞으로 이동되어 생성됩니다.
RightVector
개체의 오른쪽 방향 구성 요소의 방향. 회전 매트릭스의 첫 번째 열이나 동등합니다.
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
개체의 상향 방향 구성 요소의 방향. 회전 매트릭스의 두 번째 열이나 동등합니다.
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
CFrame 개체의 X 구성 요소 방향. 회전 매트릭스의 첫 번째 열 또는 RightVector와 동일합니다.
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
개체의 방향의 Y 구성 요소. 회전 매트릭스의 두 번째 열이나 동등합니다.
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
CFrame 개체의 Z 구성 요소 방향. 부정 된 LookVector 또는 회전 매트릭스의 세 번째 열과 동일합니다.
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)
메서드
GetComponents
값 , , , , , , , , , 그리고 , , , 그리고 , , ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – <4
반환
ToEulerAngles
선택적 Enum.RotationOrder를 사용하여 CFrame를 반환합니다.order 을 제공하지 않으면 메서드는 Enum.RotationOrder.XYZ 을 사용합니다.