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 オブジェクトの位置のコンポーネントも、X、Y、およびZのようなプロパティとして、Vector3のように利用可能です。
旋回コンポーネント
CFrame は、3×3の 回転マトリックス に3D回転データを保存します。これらの値は、x、y、およびzの位置値の後、CFrame:GetComponents()機能によって返されます。このマトリックスは、回転を含む計算を行うときに内部で使用され、 ラディアン を単位として使用します (1つからもう1つに変換するときは、math.rad() または math.deg() を使用します)。Roblox エンジンが回転を行う方法に関する詳細情報は、Enum.RotationOrder を参照してください。
以下の表は、CFrame オブジェクトの回転マトリックスの構成と、LookVector や RightVector などのベクトルプロパティとの関係を示しています。回転マトリックスの個々のコンポーネントは、自体ではほとんど役に立たないものの、それらから派生するベクトルプロパティは、はるかに有用です。
<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ベクトル |
---|
概要
コンストラクタ
- new()
空の身分証明書を返す CFrame 。
最初の Vector3 の位置と向きを持つ CFrame を返し、2番目に向かって指向するオリエンテーションを持ちます。
提供された CFrame 、x 、y 、z コンポーネントで構成される位置を返します。
位置 ( x , y , z ) と四角数 ( qX , qY , qZ , qW ) から CFrame を返し、四角数 ( > , > , > , > ) を返します。
回転マトリックスによって指定された方向性で CFrame から位置 ( x , y , z )を返し、回転マトリックスによって指定された方向性で返します。
最初の Vector3 の位置と向きを持つ CFrame を返し、2番目に向かって指向するオリエンテーションを持ちます。
- fromRotationBetweenVectors(from : Vector3,to : Vector3)
- fromEulerAngles(rx : number,ry : number,rz : number,order : Enum.RotationOrder)
回転した CFrame を角度 rx 、 ry 、 rz でラジアンで返します。回転は、デフォルトで Enum.RotationOrder のオプション XYZ に適用されます。
- fromEulerAnglesXYZ(rx : number,ry : number,rz : number)
返す回転した CFrame は、角度 rx 、 ry 、および rz でラジアンを使用して、Enum.RotationOrder.XYZ でラジアンを使用しています。
- fromEulerAnglesYXZ(rx : number,ry : number,rz : number)
返す回転した CFrame は、角度 rx 、 ry 、および rz でラジアンを使用して、Enum.RotationOrder.YXZ でラジアンを使用しています。
等しい 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 の逆を返します。
自身と goal によって間に挿入された CFrame を用いて、alpha によって返されます。
CFrame の正方形化されたコピーを返します。
1つまたは複数の CFrame オブジェクトを受け取り、オブジェクトからワールドスペースに変換して返します。
1つまたは複数の CFrame オブジェクトを受け取り、世界からオブジェクトスペースに変換して返します。
1つまたは複数の Vector3 オブジェクトを受け取り、オブジェクトからワールドスペースに変換して返します。
1つまたは複数の Vector3 オブジェクトを受け取り、世界からオブジェクトスペースに変換して返します。
1つまたは複数の Vector3 オブジェクトを受け取り、オブジェクトからワールドスペースに回転して返します。
1つまたは複数の Vector3 オブジェクトを受け取り、世界からオブジェクトスペースに回転して返します。
返す値 , , , , , , , , , , , , , , ‑ ‑ が と の位置を表す 3×3回転マトリックスを表す。
オプションの Enum.RotationOrder を使用して生成できる約角を返します。CFrame 。
返す約似した角度は、CFrame を使用して生成できる Enum.RotationOrder.XYZ 。
返す約似した角度は、CFrame を使用して生成できる Enum.RotationOrder.YXZ 。
と の回転を表す数を含むトゥプルを返し、軸-角表現で の回転を表す数を返します。
等しい 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 と回転マトリックスの列を返します。if vZ が除外されると、3番目の列は vX:Cross(vY).Unit と計算されます。
パラメータ
等しい RightVector 。
等しい - LookVector。
プロパティ
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 ユニット前進させて移動します。
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)
方法
ToEulerAngles
オプションの Enum.RotationOrder を使用して生成できる約角を返します。CFrame 。order を提供しない場合、メソッドは Enum.RotationOrder.XYZ を使用します。