Computer Science, asked by rainbowpanda, 1 year ago

What constraint are welds subject to in Roblox programming?​

Answers

Answered by BROKENKID
5

Answer:-

welds are a type of JointInstance that rigidly holds their parent part and another part in a fixed position relative to each other, such as holding one part 2 units to the right of another part. They can be used in places where parts need to be held together at odd angles, but still be able to move (meaning they will not work with BasePart.Anchored parts), such as for a vehicle.

Answered by bhavyadeep31yad
7

Welds are a type of JointInstance that rigidly holds their parent part and another part in a fixed position relative to each other, such as holding one part 2 units to the right of another part. They can be used in places where parts need to be held together at odd angles, but still be able to move (meaning they will not work with BasePart.Anchored parts), such as for a vehicle.

Basic structure

The weld object is placed inside of a part, and a property is set to determine which other parts should be welded to the original part. Then two CFrames, the C0, and the C1, tell the weld how the parts should be placed.

Setting the values

Figuring out what to set the C0 and C1 to is a bit finicky, but once you get good at it, it can go quite quickly.

For Welds, you don’t have to worry about the C1, it’s automatically set to a “unit” or unrotated CFrame, you only have to deal with C1 when working with motors, so ignore it for now. The C0 will tell the weld how it should attach itself to the other part, eg.

Rotating the CFrame

To rotate the CFrame you must use the following command, which is case sensitive.

LIGHT THEME  CFrame.fromEulerAnglesXYZ(#, #, #)  

Or, alternatively:

LIGHT THEME  CFrame.Angles(#, #, #)

This is used as follows:

LIGHT THEME  weld.C0 = CFrame.new(0, 2, 0)*CFrame.fromEulerAnglesXYZ(0, math.pi, 0)

This tells the weld to attach the part1, two studs above the part0 AND rotate the part1 by 180 degrees relative to the part0

You use math.pi, as the number to rotate by, use it in the following fashion :

math.pi = 1/2 of a turn

math.pi/2 = 1/4 of a turn

math.pi/4 = 1/8 of a turn

Putting it all together

Now that you know how to use the basics of a weld, here’s how you put it all together. Here’s an example:

Let’s say that this is in a script, in a vehicle:

LIGHT THEME  local pln = script.Parent  

 

local w = Instance.new("ManualWeld")  

w.Parent = pln

w.Part0 = pln.Engine

w.Part1 = pln.Wing1  

w.C0 = CFrame.new(0, 0, 6)*CFrame.new(0, -math.pi/5, 0)

Walkthrough

Open Roblox Studio

Insert > Object > Part

Rename Part to “Engine”

Insert > Object > Part

Rename Part to “Wing1”

Group Engine and Wing1 together as “pln”

Click “pln”

Insert > Object > into “pln”

Copy and paste the script in “Putting it all together” above.

Test… Engine should have a “weld” logo in the Explorer menu.

Welding together two existing bricks

Sometimes, you want to just weld together two parts in their current positions, so that they remain in the same relative positions. This takes just a basic understanding of CFrame math and welds. As previously mentioned,

LIGHT THEME  Part1.CFrame * C1 == Part0.CFrame * C0

And understanding that

LIGHT THEME  CFrameA:inverse() * CFrameA

cancels out, we can apply some basic algebra

LIGHT THEME  Part0.CFrame * C0 == Part1.CFrame * C1

Part0.CFrame:inverse() * Part0.CFrame * C0 == Part0.CFrame:inverse() * Part1.CFrame * C1

C0 == Part0.CFrame:inverse() * Part1.CFrame * C1

So this means we can do :

EXPAND  

local function weldBetween(a, b)

--Make a new Weld and Parent it to a.

local weld = Instance.new("ManualWeld", a)

--Get the CFrame of b relative to a.

weld.C0 = a.CFrame:inverse() * b.CFrame

--Set the Part0 and Part1 properties respectively

weld.Part0 = a

weld.Part1 = b

--Return the reference to the weld so that you can change it later.

return weld

end

PLZZ MARK BRAINLIEST


bhavyadeep31yad: HI
Similar questions