「Hinge/ヒンジ」は HingeConstraint というものに該当します。これは、2つの物体間の回転運動を制限するためのRobloxの制約です。これは1つの軸を中心とする回転を可能にし、その他のすべての運動を制限します。この制約は、ドアやレバーなど、特定の軸を中心に回転する必要がある物体をシミュレートする際に役立ちます。

以下に、HingeConstraintを使用してドアを作成する基本的なプログラム例を示します。このプログラムは単独で動作しますので、Workspace もしくは ServerScriptService に入れて実行してください。

-- ドアとヒンジ(ちょうつがい)を作成
local door = Instance.new("Part", workspace)
door.Name = "Door"
door.Anchored = false
door.Size = Vector3.new(6, 8, 1)
door.Position = Vector3.new(3.5, 4, 0)

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

-- HingeConstraintを作成
local hingeConstraint = Instance.new("HingeConstraint",hinge)
hingeConstraint.Parent = hinge

local attachment0 = Instance.new("Attachment", hinge)
local attachment1 = Instance.new("Attachment", door)
hingeConstraint.Attachment0 = attachment0
hingeConstraint.Attachment1 = attachment1

-- アタッチメントの位置と回転方向の設定
attachment0.Position = Vector3.new(hinge.Size.X/2,0,0)
attachment0.Axis = Vector3.new(0,1,0)
attachment1.Position = Vector3.new(-door.Size.X/2,0,0)
attachment1.Axis = Vector3.new(0,1,0)

-- ドアの開閉を90度に制限
hingeConstraint.LimitsEnabled = true
hingeConstraint.LowerAngle = -90
hingeConstraint.UpperAngle = 90

このプログラムでは、ドアとヒンジ(ちょうつがい)を作成します。ヒンジはアンカーされており、ドアの端に配置されます。次に、新しい HingeConstraint を作成し、Attachment を設定します。Attachment の位置と角度が重要です。位置はヒンジとドアが接する面に設定します。回転する方向はAxisで指定します。最後に、ドア開閉の制限を持たせることで一般的なドアが再現できます。制限しないと360度回転することになります。逆に回転ドアを作成する場合は制限させないということで実現できます。

角速度

ヒンジのActuatorTypeがMotorに設定されている場合、AngularVelocityに到達することを目標にアタッチメントを回転させようとします。この回転はMotorMaxAccelerationとMotorMaxTorqueで制御できます。
ヒンジのActuatorTypeがServoに設定されている場合、TargetAngleで指定された角度まで回転しようとします。この回転はAngularSpeedとServoMaxTorqueの両方で制御されます。

もちろん、プログラムを使用しなくてもドアを作ることはできます。そちらの方が多いでしょう。下記のページに作成方法が掲載されていますので参考にしてください。

https://create.roblox.com/docs/tutorials/building/physics/building-a-hinged-door

By schilverberch

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

コメントを残す