.CFrame
プロパティを使用して、パーツを正確な量だけ傾けることができると聞きました。しかし、私はそれを使用する方法については不明です。次のコードは機能しません。
Workspace.Part.CFrame = CFrame.new(90,0,45)
パーツを 90 度と 45 度回転させているわけではありません。私は何を間違っていますか?
.CFrame
プロパティを使用して、パーツを正確な量だけ傾けることができると聞きました。しかし、私はそれを使用する方法については不明です。次のコードは機能しません。
Workspace.Part.CFrame = CFrame.new(90,0,45)
パーツを 90 度と 45 度回転させているわけではありません。私は何を間違っていますか?
まず、CFrame.fromEulerAnglesXYZ 関数を使用して、希望する方向を指す新しい CFrame を作成します。次に、Vector3 演算を使用して CFrame を目的の位置に移動します。例えば。
local cframe = CFrame.fromEulerAnglesXYZ(XRADIANS, YRADIANS, ZRADIANS)
cframe = (cframe - cframe.p) + Vector3.new(XPOS,YPOS,ZPOS)
ドキュメントには、 3 つのパラメーターを受け取る Coordinate Frame (CFrame)コンストラクターが位置オフセットを定義していると記載されています。したがって、サンプル コードはパーツをx軸に沿って 90 移動し、 z軸に沿って 45移動します。試行したとおりに回転を実行するには、CFrame.fromEulerAnglesXYZ
関数を参照してください。
受け取った引数は、回転ではなく位置を指定します
CFrameを始めたときもこの問題がありました。それらは度ではなくラジアンです。ここで、ROBLOX に関する簡単な CFraming ガイドを作成しました。
ラジアンに苦労している場合は、ラジアンに関する ROBLOX wiki ページを参照して、基本的な理解を深めてください: wiki.roblox.com/index.php/Radians
ありがとう!
-pighead10
-- Rotates the part by 90 degrees. If you want to change the axis your
-- rotating it on Use a different placement such as CFrame.Angles(math.rad(90),0,0)
Workspace.Part.CFrame = Workspace.Part.CFrame * CFrame.Angles(0, math.rad(90), 0)