「Universal/ユニバーサル」は UniversalConstraint というものに該当します。これは、2つのパーツ間の関係を制御するための制約です。この制約は、それぞれのパーツに対して互いに独立した2つの回転軸を持つことを可能にします。これにより、一部の自由度を持った関節、例えば人間の肩のような動きを模倣することができます。

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

-- 2つのパーツを作成
local part1 = Instance.new("Part", workspace)
part1.Anchored = true
part1.Size = Vector3.new(4, 1, 2)
part1.Position = Vector3.new(0,20,0)
part1.Name = "Anchor"

local part2 = Instance.new("Part", workspace)
part2.Anchored = false
part2.Size = Vector3.new(2, 1, 2)
part2.CFrame = CFrame.new(0, 20, -4.5) * CFrame.fromEulerAnglesXYZ(0,0,math.rad(90))

-- UniversalConstraintを作成
local universalConstraint = Instance.new("UniversalConstraint")
universalConstraint.Parent = part1
local attachment0 = Instance.new("Attachment", part1)
local attachment1 = Instance.new("Attachment", part2)
attachment0.Position = Vector3.new(0,0,-1)
attachment0.Axis = Vector3.new(0,-1,0)
attachment1.Position = Vector3.new(0,0,1)
attachment1.Axis = Vector3.new(-1,0,0)
universalConstraint.Attachment0 = attachment0
universalConstraint.Attachment1 = attachment1

アタッチメントの向きは、ユニバーサルの動きに影響します。正しく動作するように、アタッチメントの SecondaryAxis(オレンジの矢印で表示)は互いに垂直でなければなりません。軸の向きが適切な場合、緑色のL字型インジケータが表示されることを確認しましょう。

By schilverberch

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

コメントを残す