「Torsion Spring/トーションばね」は TorsionSpringConstraint に該当します。これは、2つのアタッチメント間の角度を制御するための制約タイプで、Robloxにおける一種の制約です。これは、アタッチメント間でトーション(ねじり)スプリングのような動きを実現します。つまり、アタッチメント間の相対角度によって、復元トルクが発生します。制約されたオブジェクトが回転すると、トーションスプリングは力を発生し、その力が元の位置にオブジェクトを戻そうとします。

以下に TorsionSpringConstraint のプログラム例を示します。このプログラムは単独で動作しますので、Workspace もしくは ServerScriptService に入れて実行してください。

-- ドアとアンカーパーツを作成
local door = Instance.new("Part", workspace)
door.Anchored = false
door.Size = Vector3.new(1, 8, 5)
door.Position = Vector3.new(0, 4, 3)
door.Name = "Door"

local anchor = Instance.new("Part", workspace)
anchor.Anchored = true
anchor.Size = Vector3.new(1, 8, 1)
anchor.Position = Vector3.new(0, 4, 0)
anchor.Name = "Anchor"

-- Hinge用のアタッチメントを作成
local attachment0 = Instance.new("Attachment", anchor)
local attachment1 = Instance.new("Attachment", door)
attachment0.Axis = Vector3.new(0,1,0)
attachment0.Position = Vector3.new(0,4,0.5)
attachment1.Axis = Vector3.new(0,1,0)
attachment1.Position = Vector3.new(0,4,-2.5)

local hingeConstraint = Instance.new("HingeConstraint",anchor)
hingeConstraint.Attachment0 = attachment0
hingeConstraint.Attachment1 = attachment1

-- TorsionSpring用のアタッチメントを作成
local attachment0a = Instance.new("Attachment", anchor)
local attachment1a = Instance.new("Attachment", door)
attachment0a.Axis = Vector3.new(0,1,0)
attachment0a.Position = Vector3.new(0,4,0.5)
attachment1a.Axis = Vector3.new(0,1,0)
attachment1a.Position = Vector3.new(2.5,4,0)

-- TorsionSpringConstraintを作成
local torsionSpringConstraint = Instance.new("TorsionSpringConstraint", anchor)
torsionSpringConstraint.Attachment0 = attachment0a
torsionSpringConstraint.Attachment1 = attachment1a
torsionSpringConstraint.Damping = 4
torsionSpringConstraint.MaxTorque = 100000000
torsionSpringConstraint.Stiffness = 2000

ねじりスプリングのアタッチメントの正しい向きは重要です。拘束は各アタッチメントのSecondaryAxis(オレンジの矢印で可視化)を一直線にしようとします。スイングドアのような機構を構築する場合、二次軸が意図された回転軸に垂直であることを確認してください。

By schilverberch

ROBLOXでゲームを作ろう! 一緒にプログラミングを学びましょう。

コメントを残す