CFrame

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

CFrame データタイプは、 座標フレーム の略入力で、3Dの位置と方向を記述します。それは 位置 コンポーネントと 回転 コンポーネントから構成され、Roblox で 3D データを処理するための必須の算術操作を含みます。


-- 特定の位置で CFrame を作成し、ユーラー回転
local cf = CFrame.new(0, 5, 0) * CFrame.fromEulerAngles(math.rad(45), 0, 0)

For an introduction to the CFrame データタイプの紹介は、CFrames を参照してください。

位置コンポーネント

位置コンポーネントは Vector3 として利用可能です。さらに、CFrame オブジェクトの位置のコンポーネントも、XY、およびZのようなプロパティとして、Vector3のように利用可能です。

旋回コンポーネント

CFrame は、3×3の 回転マトリックス に3D回転データを保存します。これらの値は、xy、およびzの位置値の後、CFrame:GetComponents()機能によって返されます。このマトリックスは、回転を含む計算を行うときに内部で使用され、 ラディアン を単位として使用します (1つからもう1つに変換するときは、math.rad() または math.deg() を使用します)。Roblox エンジンが回転を行う方法に関する詳細情報は、Enum.RotationOrder を参照してください。

以下の表は、CFrame オブジェクトの回転マトリックスの構成と、LookVectorRightVector などのベクトルプロパティとの関係を示しています。回転マトリックスの個々のコンポーネントは、自体ではほとんど役に立たないものの、それらから派生するベクトルプロパティは、はるかに有用です。


<th>Yベクトル、上ベクトル</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ベクトル、Rightベクトル
他のものとは異なり、LookVector は否定された列コンポーネントを表します。LookVector は、Instances のように、CameraAttachments など、多くのベクトルをインスタンスが指している方向として扱うため、有用です。

概要

コンストラクタ

プロパティ

方法

コンストラクタ

new

new

パラメータ

pos: Vector3

new

パラメータ

pos: Vector3
lookAt: Vector3

new

パラメータ

new

パラメータ

new

パラメータ

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

lookAt

パラメータ

lookAt: Vector3
既定値: Vector3.yAxis

lookAlong

パラメータ

direction: Vector3
既定値: Vector3.yAxis

fromRotationBetweenVectors

パラメータ

from: Vector3

fromEulerAngles

パラメータ

rx: number
ry: number
rz: number
既定値: Enum.RotationOrder.XYZ

fromEulerAnglesXYZ

パラメータ

rx: number
ry: number
rz: number

fromEulerAnglesYXZ

パラメータ

rx: number
ry: number
rz: number

Angles

パラメータ

rx: number
ry: number
rz: number

fromOrientation

パラメータ

rx: number
ry: number
rz: number

fromAxisAngle

パラメータ

fromMatrix

パラメータ

プロパティ

identity

翻訳または回転なしの身分 CFrame 。このプロパティは 定数 であり、個々の CFrame オブジェクトを介してアクセスするのではなく、グローバルにアクセスする必要があります。

Position

3D 位置の CFrame

Rotation

翻訳なしの CFrame のコピー。

位置の X 座標。

位置の Y 座標。

位置の Z 座標。

LookVector

CFrame オブジェクトの前方向コンポーネントのオリエンテーション、否定された ZVector または回転マトリックスの否定された第 3 列と同等


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

CFrame オブジェクトの右向きコンポーネントのオリエンテーション。XVector または回転マトリックスの最初の列と同等


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

CFrame オブジェクトの上向きコンポーネントのオリエンテーション。YVector または回転マトリックスの2番目の列と同等。


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 コンポーネント。旋回マトリックスの 2番目の列または同等のものと同等です。


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 または回転マトリックスの第 3 列と同等。


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 によって返されます。

パラメータ

goal: CFrame
alpha: number

戻り値

Orthonormalize

CFrame の正方形化されたコピーを返します。BasePart.CFrame プロパティは自動的に正方形化を適用しますが、CFrames を受け取る他の API はそうしませんので、この方法は時折 CFrame をインクリメントアップデートし、それらと一緒に使用するときに必要になります

戻り値

ToWorldSpace

1つまたは複数の CFrame オブジェクトを受け取り、オブジェクトからワールドスペースに変換して返します。同等:

CFrame * cf

パラメータ

戻り値

ToObjectSpace

1つまたは複数の CFrame オブジェクトを受け取り、世界からオブジェクトスペースに変換して返します。同等:

CFrame:Inverse() * cf

パラメータ

戻り値

PointToWorldSpace

1つまたは複数の Vector3 オブジェクトを受け取り、オブジェクトからワールドスペースに変換して返します。同等:

CFrame * v3

パラメータ

戻り値

PointToObjectSpace

1つまたは複数の Vector3 オブジェクトを受け取り、世界からオブジェクトスペースに変換して返します。同等:

CFrame:Inverse() * v3

パラメータ

戻り値

VectorToWorldSpace

1つまたは複数の Vector3 オブジェクトを受け取り、それらをオブジェクトからワールドスペースに回転させて返します。同等の:

(CFrame - CFrame.Position) * v3

パラメータ

戻り値

VectorToObjectSpace

1つまたは複数の Vector3 オブジェクトを受け取り、世界からオブジェクトスペースに回転して返します。同等:

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

パラメータ

戻り値

GetComponents

返す値 , , , , , , , , , , , , , , ‑ ‑ が と の位置を表す 3×3回転マトリックスを表す。

戻り値

ToEulerAngles

オプションの Enum.RotationOrder を使用して生成できる約角を返します。CFrameorder を提供しない場合、メソッドは Enum.RotationOrder.XYZ を使用します。

パラメータ

既定値: Enum.RotationOrder.XYZ

ToEulerAnglesXYZ

返す約似した角度は、CFrame を使用して生成できる Enum.RotationOrder.XYZ

ToEulerAnglesYXZ

返す約似した角度は、CFrame を使用して生成できる Enum.RotationOrder.YXZ

ToOrientation

ToAxisAngle

と の回転を表す数を含むトゥプルを返し、軸-角表現で の回転を表す数を返します。

戻り値

components

戻り値

FuzzyEq

返す true は、他の CFrame がこの CFrame に位置と回転の両方で十分に近い場合。epsilon 値は、この類似性の許容度を制御するために使用されます;この値はオプションであり、提供された場合は小さな正の値であるべきです。位置の似似性は、コンポーネントごとであり、回転は角差の速い推定を使用します。

パラメータ

other: CFrame
epsilon: number
既定値: 0.00001 (1e-5)

戻り値

演算機能