「Angular Velocity(角運動速度)」は AngularVelocity に該当します。これ は、Roblox で特定の物理的なインタラクションを制御するためのツールの一つです。AngularVelocity は、特定の角速度(回転速度)を維持するようにパーツを強制します。
具体的には、AngularVelocity を使用すると、パーツは指定した向きと速度で一定の回転を続けます。これは AngularVelocity プロパティを使って指定します。そして、RelativeTo プロパティを使用すると、角速度が「World」(世界座標系)に対して適用されるか、または「Attachment0」(アタッチメント)に対して適用されるかを指定できます。
AngularVelocity は、一定の角速度で持続的に回転する動きを作り出したい場合に使用されます。これには、回転する扇風機のプロペラや車輪、さらには惑星の自転など、多くの自然な現象や機械的な動きのシミュレーションができます。
AngularVelocity は、非推奨になった BodyAngularVelocity の代わりに使用可能です。
以下に AngularVelocity のプログラム例を示します。このプログラムは単独で動作しますので、Workspace もしくは ServerScriptService に入れて実行してください。
-- Workspace内に新しいパーツを作成します
local part = Instance.new("Part", workspace)
part.Size = Vector3.new(4, 1, 2)
part.Position = Vector3.new(0,0.5,0)
part.Anchored = false
-- パーツに新しいAttachmentを作成します
local attachment0 = Instance.new("Attachment", part)
attachment0.Axis = Vector3.new(0,1,0)
-- AngularVelocityを作成し、Attachmentを設定します
local angularVelocity = Instance.new("AngularVelocity", part)
angularVelocity.Attachment0 = attachment0
angularVelocity.MaxTorque = 10000 -- 力の大きさ
angularVelocity.AngularVelocity = Vector3.new(0,1,0)
Torque との違い
回転される方法として、AngularVelocity の他に、Torque というものがあります。どちらもパーツを回転させるためのものですが違いがあります。
Torqueはトルクという回転力で、物体に一定の角加速度を与えます。つまり、Torqueを使うと物体はどんどん速く回転していきます。
AngularVelocityは角速度という回転速度で、物体に一定のトルクを与えます。つまり、AngularVelocityを使うと物体は一定の速さで回転し続けます。
例えるなら、Torqueは自転車のペダルを漕ぐ力で、AngularVelocityは自転車のタイヤの回る速さです。ペダルを漕ぐ力が強ければ強いほど、タイヤの回る速さはどんどん増えていきます。でも、タイヤの回る速さが一定になると、ペダルを漕ぐ力は必要ありません。