CFrame

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

데이터 입력, 좌표 프레임의 약자로, 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 , YZ 속성처럼 Vector3 과 같은 속성에서 사용할 수 있습니다.

회전 부품

는 3×3 회전 매트릭스에 3D 회전 데이터를 저장합니다.이 값은 위치 값 xyz 후에 반환되는 CFrame:GetComponents() 함수에 의해 반환됩니다.이 매트릭스는 회전과 관련된 계산을 수행할 때 내부적으로 사용되며, radians 를 단위로 사용합니다(서로 변환하려면 또는 를 사용하십시오).Roblox 엔진이 회전을 수행하는 방법에 대한 자세한 정보는 Enum.RotationOrder 을 참조하십시오.

아래 표는 CFrame 개체의 회전 매트릭스 구성 요소와 사용 가능한 벡터 속성(예: LookVectorRightVector)의 관계를 나타냅니다.회전 매트릭스의 개별 구성 요소는 자체로 거의 유용하지 않지만, 그것들에서 파생된 벡터 속성은 훨씬 더 유용합니다.


<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벡터, 라이트벡터
다른 사람들과 달리, LookVector는 부정 된 열 구성 요소를 나타냅니다.LookVector는 클래스 InstancesCamera와 같은 많은 클래스 Attachments가 해당 벡터를 인스턴스가 가리키는 방향으로 처리하기 때문에 유용합니다.

요약

생성자

속성

메서드

  • 반대의 값을 반환합니다 CFrame.

  • Lerp(goal : CFrame,alpha : number):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()와 동일합니다.

  • FuzzyEq(other : CFrame,epsilon : number):boolean

    다른 CFrame 가 이 CFrame 에 위치와 회전에서 충분히 가까이 있으면 true 를 반환합니다.

수학 연산

생성자

new

빈 정체성을 생성합니다 CFrame .

new

제공된 Vector3 의 위치와 회전 없이 CFrame 를 반환합니다.

매개 변수

pos: Vector3

new

새로운 CFrame 를 반환하여 세계 공간에서 pos 로 향하고 있고 세계 공간에서 lookAt 로 간주되는 (0, 1, 0) 가 "위"로 간주됩니다.

이 생성자 오버로드는 유사한 목표를 달성하는 CFrame.lookAt() 로 대체되었습니다. 이는 이전 버전과의 호환성을 위해 남아 있습니다.

높은 피치 각도(약 82도)에서는 숫자 불안정을 경험할 수 있습니다.이것이 문제인 경우 또는 다른 "위" 벡터가 필요한 경우 CFrame.fromMatrix()를 사용하여 더 정확하게 CFrame를 생성하십시오.또한, if lookAt 가 직접 위에 있는 pos (피치 각도 90도)는 "위" 벡터가 X축으로 전환됩니다.

매개 변수

pos: Vector3
lookAt: Vector3

new

제공된 CFramex , yz 구성 요소로 구성된 위치를 반환합니다.

매개 변수

new

위치( , , , , , , )와 쿼터니언( , , , )을 반환합니다.쿼터니언은 유닛 길이가 되어 유효한 회전을 나타내도록 예상됩니다.이 경우가 아니면 쿼터니언이 정규화됩니다.

매개 변수

new

회전 매트릭스에 의해 지정된 방향으로 위치(x, y, z)에서 CFrame를 생성하여 방향을 지정합니다.

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

매개 변수

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

lookAt

새로운 를 반환하여 위치 와 향하고, 기본값으로 상승 방향( )을 지정하며, 선택적으로 기본값으로 를 지정합니다.

매개 변수

lookAt: Vector3
기본값: Vector3.yAxis

lookAlong

새로운 CFrame 를 반환하여 위치 at 와 함께 향하고 있으며, 기본값으로 direction 의 상승 방향(up)을 지정하고 선택적으로 기본값으로 (0, 1, 0) 의 방향을 지정합니다.

이 생성자는 CFrame.lookAt(at, at + direction)와 동일합니다.

매개 변수

direction: Vector3
기본값: Vector3.yAxis

fromRotationBetweenVectors

첫 번째 Vector3 에서 두 번째로 회전하는 데 필요한 방향을 나타내는 CFrame 를 반환하여 위치가 0으로 설정됩니다.

매개 변수

from: Vector3

방향 "from"을 나타내는 벡터.

방향 "에"를 나타내는 벡터.

fromEulerAngles

각도 CFrame , rxry 에서 회전된 반환 rz 을 라디안으로 합니다.회전은 기본값인 Enum.RotationOrder 으로 선택적 XYZ 에 적용됩니다. 이는 다음과 같습니다.


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

매개 변수

rx: number
ry: number
rz: number
기본값: Enum.RotationOrder.XYZ

fromEulerAnglesXYZ

각도 , 및 에서 회전된 반환하고 라디안 을 사용하여 라디안으로:


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

매개 변수

rx: number
ry: number
rz: number

fromEulerAnglesYXZ

각도 , 및 에서 회전된 반환하고 라디안 을 사용하여 라디안으로:


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

매개 변수

rx: number
ry: number
rz: number

Angles

fromEulerAnglesXYZ()와 동일합니다.

매개 변수

rx: number
ry: number
rz: number

fromOrientation

fromEulerAnglesYXZ()와 동일합니다.

매개 변수

rx: number
ry: number
rz: number

fromAxisAngle

유닛 Vector3 에서 회전된 CFrame 을 반환하고 라디안으로 회전합니다.

매개 변수

fromMatrix

번역 및 회전 매트릭스의 열로부터 CFrame를 반환합니다.vZ가 제외되면 세 번째 열은 vX:Cross(vY).Unit로 계산됩니다.

매개 변수

pos: Vector3

CFrame의 3D 위치.

RightVector와 동일합니다.

UpVector와 동일합니다.

대체 - LookVector .

속성

identity

번역이나 회전이 없는 식별자 CFrame.이 속성은 상수 이며 개별 CFrame 개체를 통해 액세스하는 것이 아니라 전역적으로 액세스해야 합니다.

Position

CFrame의 3D 위치.

Rotation

번역 없이 CFrame의 복사본.

위치의 X 좌표.

위치의 Y 좌표.

위치의 Z 좌표.

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)

메서드

Inverse

반대의 값을 반환합니다 CFrame.

반환

Lerp

자체와 의 소수로 인터폴레이션된 를 반환합니다.

매개 변수

goal: CFrame
alpha: number

반환

Orthonormalize

CFrame의 정규화된 복사본을 반환합니다.BasePart.CFrame 속성은 자동으로 정규화를 적용하지만, CFrames 를 사용하는 다른 API는 그렇지 않으므로 이 메서드는 점진적으로 CFrame 를 업데이트하고 사용할 때 가끔 필요합니다.

반환

ToWorldSpace

하나 이상의 CFrame 개체를 받아 개체에서 세계 공간으로 변환하여 반환합니다. 동일:

CFrame * cf

매개 변수

반환

ToObjectSpace

하나 이상의 CFrame 개체를 받아 세계에서 개체 공간으로 변환하여 반환합니다. 동일:

CFrame:Inverse() * cf

매개 변수

반환

PointToWorldSpace

하나 이상의 Vector3 개체를 받아 개체에서 세계 공간으로 변환하여 반환합니다. 동일:

CFrame * v3

매개 변수

반환

PointToObjectSpace

하나 이상의 Vector3 개체를 받아 세계에서 개체 공간으로 변환하여 반환합니다. 동일:

CFrame:Inverse() * v3

매개 변수

반환

VectorToWorldSpace

하나 이상의 Vector3 개체를 받아 객체에서 세계 공간으로 회전하여 반환합니다. 동일:

(CFrame - CFrame.Position) * v3

매개 변수

반환

VectorToObjectSpace

하나 이상의 Vector3 개체를 받아 세계에서 개체 공간으로 회전하여 반환합니다. 동일:

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

매개 변수

반환

GetComponents

값 , , , , , , , , , 그리고 , , , 그리고 , , ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – <4

반환

ToEulerAngles

선택적 Enum.RotationOrder를 사용하여 CFrame를 반환합니다.order 을 제공하지 않으면 메서드는 Enum.RotationOrder.XYZ 을 사용합니다.

매개 변수

기본값: Enum.RotationOrder.XYZ

ToEulerAnglesXYZ

반환 대략적인 각도를 사용하여 CFrame를 생성할 수 있는 용도로 Enum.RotationOrder.XYZ를 사용하여 생성할 수 있는 대략적인 각도를 반환합니다.

ToEulerAnglesYXZ

반환 대략적인 각도를 사용하여 CFrame를 생성할 수 있는 용도로 Enum.RotationOrder.YXZ를 사용하여 생성할 수 있는 대략적인 각도를 반환합니다.

ToOrientation

CFrame:ToEulerAnglesYXZ()와 동일합니다.

ToAxisAngle

Vector3 및 축-각도 표현에서 회전을 나타내는 숫자로 구성된 튜플을 반환합니다.Returns a tuple of a CFrame and a number which represent the rotation of the in the axis-angle representation.

components

CFrame:GetComponents()와 동일합니다.

반환

FuzzyEq

다른 CFrame 가 이 CFrame 에 위치와 회전에서 충분히 가까이 있으면 true 를 반환합니다.epsilon 값은 이 유사성에 대한 용량 제어에 사용되며, 이 값은 선택 사항이며 제공되는 경우 작은 양의 긍정적인 값이어야 합니다.위치의 유사성은 구성 요소별로 이고 회전은 각도 차이의 빠른 약식을 사용합니다.

매개 변수

other: CFrame
epsilon: number
기본값: 0.00001 (1e-5)

반환

수학 연산


두 개의 CFrames 구성을 나타내는 새로운 CFrame를 생성합니다.


개체에서 세계 좌표로 변환된 Vector3를 생성합니다.


세계 공간에서 번역된 CFrame 을 생성합니다. by the Vector3 .


부정적인 Vector3에 의해 세계 공간에서 번역된 CFrame를 생성합니다.