Joints: Difference between revisions

From Legacy Roblox Wiki
Jump to navigationJump to search
>Outofspace
mNo edit summary
m Text replacement - "</SyntaxHighlight>" to "</syntaxhighlight>"
Tags: mobile web edit mobile edit
 
(17 intermediate revisions by 5 users not shown)
Line 1: Line 1:
The connection that keeps bricks together when [[studs]] and [[inlets]] are joined is called Joints. You can remove these from a [[model]] or [[part]] by calling the [[BreakJoints (Function)|BreakJoints()]] function. These are called "Connectors" while the game [[Online mode|is loading]]. Another name for Joints is called snaps.
A '''joint''', called a "connection" while a game is loading, is something that connects two parts together. Common types of joints are [[Weld]]s, [[Snap]]s, and [[Hinge]]s. Joints are represented using a [[JointInstance]] object, which has four important properties: [[C0]], [[C1]], [[Part0]], and [[Part1]].


You can view the number of snaps and [[part|parts]] by pressing Ctrl+F1 which calls two boxes that display current [[settings]] and computer stats.
== Automatic creation ==
<!-- mention how they're automatically created here -->


[[Category:Reports]]
 
[[Category:Stubs]]
== Advanced ==
=== Fixed Joints ===
Joints have a conceptual origin coordinate frame, to which both parts are attached.
<syntaxhighlight lang="lua">
jointOrigin == joint.Part0.CFrame * joint.C0 == joint.Part1.CFrame * joint.C1
</syntaxhighlight>
In the case of fixed joints, this origin position is not important. <!--Or do explosions only act on joint origins? -->
 
It is sufficient to make the origin position the center of Part1, and C1 the identity CFrame. For example:
<syntaxhighlight lang="lua">
local cf = ... --The transformation from A to B
local weld = Instance.new("Weld")
      weld.Part0 = workspace.A
      weld.Part1 = workspace.B
      weld.C0 = cf
      weld.C1 = CFrame.new(0,0,0)
</syntaxhighlight>
Will ensure that {{`|=workspace.A * cf == workspace.B}}
 
=== Rotating Joints ===
 
In a rotating joint, the conceptual origin is important. This dictates the position, and in some cases, the axis around which the joint rotates.
 
<!-- Which axis does it rotate around? jointOrigin * Vector3.new(1,0,0), jointOrigin * Vector3.new(0,1,0), or jointOrigin * Vector3.new(0,0,1)? -->

Latest revision as of 06:02, 27 April 2023

A joint, called a "connection" while a game is loading, is something that connects two parts together. Common types of joints are Welds, Snaps, and Hinges. Joints are represented using a JointInstance object, which has four important properties: C0, C1, Part0, and Part1.

Automatic creation

Advanced

Fixed Joints

Joints have a conceptual origin coordinate frame, to which both parts are attached.

jointOrigin == joint.Part0.CFrame * joint.C0 == joint.Part1.CFrame * joint.C1

In the case of fixed joints, this origin position is not important.

It is sufficient to make the origin position the center of Part1, and C1 the identity CFrame. For example:

local cf = ... --The transformation from A to B
 
local weld = Instance.new("Weld")
      weld.Part0 = workspace.A
      weld.Part1 = workspace.B
      weld.C0 = cf
      weld.C1 = CFrame.new(0,0,0)

Will ensure that workspace.A * cf == workspace.B

Rotating Joints

In a rotating joint, the conceptual origin is important. This dictates the position, and in some cases, the axis around which the joint rotates.