「Rigid Constraint/剛性拘束」は RigidConstraint というものに該当します。これは、Robloxの物理エンジンによって扱われる2つの部品(パーツ)を相互に固定するための制約です。これは2つの部品が動かないようにする、あるいは部品間の相対的な位置や向きを保持するために使用されます。つまり、RigidConstraint を使用すると、2つの部品はまるで一つの固体のように動作します。

RigidConstraint には以下の2つの主要なプロパティがあります。

  • Attachment0 および Attachment1:これらは、制約が接続する2つの Attachment オブジェクトを指定します。それぞれの Attachment は、それが属する部品内での相対的な位置と向きを保持します。

以下に、2つのパーツを RigidConstraint を使用して接続するプログラム例を示します。このプログラムは単独で動作しますので、Workspace もしくは ServerScriptService に入れて実行してください。

-- 2つのパーツを作成
local part1 = Instance.new("Part",workspace)
part1.Position = Vector3.new(10,10,10)
part1.Size = Vector3.new(5,2,5)

local part2 = Instance.new("Part",workspace)
part2.Position = Vector3.new(20,20,20)
part2.Size = Vector3.new(5,2,5)

-- それぞれのパーツにAttachmentを追加
local attachment0 = Instance.new("Attachment", part1)
local attachment1 = Instance.new("Attachment", part2)

-- Attachment の位置を面にする
attachment0.Position = Vector3.new(0,-part1.Size.Y/2,0)
attachment1.Position = Vector3.new(0,part2.Size.Y/2,0)

-- RigidConstraintを作成
local rigidConstraint = Instance.new("RigidConstraint",part1)
rigidConstraint.Attachment0 = attachment0
rigidConstraint.Attachment1 = attachment1

WeldConstraint との違い

WeldConstraintとRigidConstraintは、どちらもRobloxで物体を一緒に固定するために使用されますが、振る舞いと用途にはいくつかの違いがあります。

  • RigidConstraint は、2つのパーツの間の相対位置と向きを保持します。この制約を使用すると、パーツは一緒に移動し、一方が回転するともう一方も同じ回転を追従します。しかし、RigidConstraint はリアルタイムでパーツ間の距離や向きを調節する機能はありません。つまり、制約が設定された時点での相対位置と向きがその後も保持されます。
  • 一方、WeldConstraint も同様に2つのパーツの間の相対位置と向きを保持しますが、パーツが一緒に「溶接」されるため、パーツ間の相対位置と向きは制約が最初に設定された時点のものが保持されます。

結論として、これらの制約は同様の目的(2つのパーツを一緒に固定する)のために使用されますが、それぞれがパーツ間の相対的な位置と向きをどのように取り扱うかに違いがあります。どちらの制約を使用するかは、具体的なユースケースとどのような振る舞いを必要とするかによります。

By schilverberch

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

コメントを残す