시작하기
중급 튜토리얼

회전하는 물체 만들기

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

회전하는 물체는 3D 공간 내에서 하나 이상의 축을 중심으로 회전하는 물체입니다. Roblox의 시뮬레이션 엔진의 내장 기능을 사용하여, 물체가 회전하고 플레이어에게 친숙하고 직관적인 실제 세계의 물리적 동작, 예를 들어 중력, 공기역학 및 마찰과 같은 방식으로 환경과 상호작용하도록 만들 수 있습니다.

회전하는 물체 .rbxl 파일을 참조하여 이 튜토리얼은 스튜디오에서 물리적 힘이 각 운동에 미치는 영향을 설명하고, 다양한 회전 동작을 사용하여 경험에서 물체를 회전시키는 다양한 기술을 보여줍니다. 여기에는 다음과 같은 안내가 포함됩니다:

  • AngularVelocity 이동 제약 조건을 사용하여 전체 조립체를 일정한 각속도로 회전시키기.
  • HingeConstraint 기계적 제약 조건을 사용하여 나머지 조립체가 정지한 상태에서 조립체 내의 부품을 일정한 각속도로 회전시키기.
  • ApplyAngularImpulse 메서드를 사용하여 조립체에 초기 각 힘의 임펄스를 적용하여 조립체가 시간이 지남에 따라 서서히 감속하도록 만들기.

각 운동과 물리적 힘

Roblox Studio는 물리적 동작을 실시간으로 시뮬레이션하는 엔진으로, 경험에서 회전하는 물체의 동작을 예측하기 위해서는 실제 생활에서 물체가 각 운동으로 회전하는 방식을 높은 수준에서 이해하는 것이 중요합니다.

각 운동 또는 회전 운동은 고정된 점이나 축을 중심으로의 이동입니다. 예를 들어, 프로펠러가 각 운동을 할 때, 프로펠러의 중심 축을 중심으로 회전합니다.

각 운동은 물체가 회전하게 하려는 외부 물리적 힘이 없어서는 존재할 수 없습니다. 뉴턴의 운동의 첫 번째 법칙에 따르면, 정지된 물체는 정지한 상태를 유지하고, 움직이는 물체는 외부 힘이 작용하지 않는 한 일정한 속도로 계속 움직입니다. 예를 들어, 정지된 프로펠러는 바람과 같은 물리적 힘이 작용하지 않으면 정지한 상태를 유지합니다.

토크는 물체를 회전하게 하는 물리적 힘의 척도이며, 물체가 각 가속도를 얻는 데 책임이 있습니다. 이 개념은 스튜디오에서 물체가 회전하는 데 특히 중요합니다; 물체에 가할 수 있는 토크가 많을수록 더 빨리 가속할 수 있습니다.

이는 토크가 중력이나 마찰과 같은 물체에 반대 방향으로 작용하는 물리적 힘보다 커야 하기 때문입니다. 예를 들어, 프로펠러를 흙에 놓으면, 바람의 물리적 힘이 흙의 마찰을 이겨야 프로펠러가 계속 가속할 수 있습니다. 바람의 힘이 흙의 마찰보다 크게 크지 않으면 프로펠러는 이전 예보다 느리게 가속하게 됩니다.

각속도는 물체의 회전 비율을 측정하는 것으로, 일정한 시간 동안 물체가 고정된 점이나 축을 중심으로 얼마나 빠르게 회전하는지를 나타냅니다. 스튜디오는 물체가 초당 몇 라디안으로 회전하는지에 따라 각속도를 측정합니다. 하나의 회전에는 2π 라디안(6.283)이 있으며, 물체가 초당 한 번의 전체 회전을 하려면 대략 6 라디안을 회전해야 합니다. 각속도를 이해하는 것은 게임 플레이를 설계하는 데 중요합니다. 각속도를 바탕으로 회전하는 물체의 특정 가속도를 달성하기 위해 필요한 토크의 양을 결정하는 데 도움이 됩니다.

다음 섹션에서는 이러한 개념에 대해 자세히 다루며, 환경 내의 모든 물리적 힘에 반대되는 토크를 초과하는 필요한 토크로 일정하거나 초기 각속도로 물체를 회전시키는 방법을 배웁니다. 이러한 물리학 개념과 함께 나오는 기술들을 검토하면 원하는 회전 동작을 스튜디오에서 달성하기 위해 속성 값을 조정하는 방법을 보다 정확히 예측할 수 있습니다.

일정한 각 힘 유지하기

물체가 일정한 각속도에 도달하고 이를 유지하기 위해서는 물체의 각속도를 감속시키거나 정지 상태를 유지하게 하는 반대 방향의 물리적 힘을 이겨낼 각 힘이 필요합니다. 예를 들어, 스튜디오에서 물체의 각속도를 [0, 12, 0]로 설정하고 싶다면, 환경의 Y축을 따라 초당 12 라디안에 도달하고 이를 유지하기 위해 충분한 토크가 필요하며, 이는 초당 약 두 번의 전체 회전을 의미합니다.

물체에 적용할 수 있는 토크의 양은 중력과 마찰과 같은 환경 내 반대 방향의 물리적 힘뿐만 아니라 물체 자체에도 의존합니다. 예를 들어, 같은 축에서 회전하고 있는 두 개의 동일한 형태의 물체가 있다면, 더 큰 물체가 더 큰 관성 모멘트를 가지므로 동일한 각 가속도를 달성하기 위해 더 많은 토크가 필요합니다.

작은 삼각형 부품은 모멘트 관성이 낮아 동일한 가속도를 달성하기 위해 필요한 각 힘이 적습니다.
큰 삼각형 부품은 모멘트 관성이 크므로 동일한 가속도를 달성하기 위해 더 많은 각 힘이 필요합니다.

다음 하위 섹션에서는 다양한 형태와 크기의 조립체를 사용하여 전체 물체를 회전시키거나 물체의 일부만 회전시키는 방법을 학습합니다. 다양한 속성 값을 실험하면서 경험에서 조립체에 필요한 최대 토크를 추정하는 방법을 배우게 됩니다.

AngularVelocity 제약 조건 사용하기

AngularVelocity 객체는 전체 조립체에 토크를 적용하여 일정한 각속도를 유지하는 이동 제약 조건입니다. 조립체를 회전시키기 시작하려면 AngularVelocity 제약 조건이 다음과 같은 정보를 알아야 합니다:

  • 각 힘을 적용할 점과 양의 방향 또는 음의 방향.
  • 조립체가 초당 회전하길 원하는 라디안 수.
  • 조립체가 일정한 각속도에 도달하기 위해 엔진이 적용할 수 있는 최대 토크.

이 과정을 시연하기 위해, AngularVelocity 제약 조건을 참조하여 블록을 6 라디안의 초속도에서 세계의 Y축을 따라 일정한 각속도로 회전시키는 연결점을 가진 블록을 작업 공간에 추가합니다.

연결점 추가하기

조립체를 회전시키기 위한 고정점을 지정하려면 조립체에 Attachment 객체를 추가하고, 3D 공간에서 연결점의 위치를 구성해야 합니다. 샘플 회전하는 물체 경험은 제약 조건이 부품의 중심에서 시계 반대 방향으로 회전할 수 있도록 부품의 중심에 연결점을 배치합니다.

연결점에는 회전 축을 시각화하는 데 도움이 되는 시각적 보조 도구가 포함되어 있습니다. 노란색 화살표는 연결점의 주요 축을 나타내고, 주황색 화살표는 연결점의 보조 축을 나타냅니다. 이 기술의 단계에서 두 축 모두 블록의 회전에는 영향을 미치지 않지만, 이러한 시각적 보조 도구를 이해하는 것은 향후 다른 유형의 제약 조건, 예를 들어 다음 기술의 HingeConstraint에 대한 이상적인 동작을 결정하는 데 도움이 될 수 있습니다.

연결점을 추가하려면:

  1. Explorer 창에서 블록 부품을 작업 공간에 삽입합니다.

  2. 새 부품에 연결점을 삽입합니다.

    1. Explorer 창에서 부품 위에서 마우스를 올리고 ⊕ 버튼을 클릭합니다. 문맥 메뉴가 나타납니다.
    2. 메뉴에서 Attachment를 삽입합니다. 연결점이 부품의 중앙에 나타납니다.
    3. 연결점의 이름을 SpinAttachment로 바꿉니다.

제약 조건 구성하기

이제 블록에 블록을 회전하기 위한 고정점이 생겼으므로, 회전 방향, 목표 일정한 각속도에 적용할 축을 지정하고, 블록이 초당 회전할 라디안 수, 그리고 블록이 일정한 각속도에 도달하기 위해 엔진이 적용할 수 있는 최대 토크를 구성할 수 있습니다.

샘플 회전하는 물체 경험은 블록을 세계의 Y축을 따라 일정한 각속도로 초당 6라디안으로 회전시키기 위해 최대 1000 Rowton-studs의 일정한 각 힘을 적용합니다. Rowton-studs는 토크를 측정하기 위한 Roblox의 주요 물리 단위입니다. Roblox의 물리 단위와 메트릭 단위로의 변환 방법에 대한 정보는 Roblox 단위를 참조하세요.

AngularVelocity 제약 조건을 구성하려면:

  1. 제약 조건의 회전 방향을 참조할 수 있도록 뷰포트에 제약 조건을 표시되게 하려면, 스튜디오의 View 메뉴에서 Show Constraint Details를 활성화합니다.

  2. 부품에 AngularVelocity 제약 조건을 삽입합니다.

    1. Explorer 창에서 부품 위에 마우스를 올리고 ⊕ 아이콘을 클릭합니다. 문맥 메뉴가 나타납니다.
    2. 문맥 메뉴에서 AngularVelocity를 삽입합니다. 제약 조건의 시각적 보조 도구가 부품의 중앙에 나타납니다.
  3. 부품의 연결점을 새 제약 조건에 할당합니다.

    1. Explorer 창에서 제약 조건을 선택합니다.
    2. Properties 창에서,
      1. Attachment0SpinAttachment로 설정합니다.
      2. AngularVelocity0, 6, 0으로 설정하여 부품이 Y축을 따라 초당 6라디안으로 회전합니다. 이 속성을 0, -6, 0으로 설정하면 블록은 시계 방향으로 회전할 것입니다.
      3. MaxTorque1000으로 설정하여 목표 각속도를 달성하기 위해 초당 최대 1000 Rowton-studs의 일정한 각 힘을 적용합니다.
      4. RelativeToWorld로 유지하여 블록을 세계의 위치와 방향에 따라 회전시킵니다.
  4. 설정한 토크의 양이 블록을 세계의 Y축을 따라 초당 6라디안으로 회전시키는지 확인합니다.

    • 메자닌의 드롭다운 메뉴에서 Run 시뮬레이션 모드를 선택하고 Play 버튼을 클릭하여 시작합니다. 스튜디오는 현재 카메라 위치에서 당신의 아바타 없이 경험을 시뮬레이션합니다.

      스튜디오 메자닌의 테스트 모드 드롭다운에서 실행 옵션.

블록의 크기와 환경 내의 모든 물리적 힘에 따라 토크를 조정해야 할 수도 있습니다. 예를 들어, 샘플 경험의 AngularVelocity 제약 조건의 속성은 기본 크기가 4, 1, 2인 블록 부품에 평평한 플랫폼과 플라스틱 재질에서 잘 작동하며, 클레식 프리셋 중력 환경을 가지고 있습니다.

그러나 블록의 크기가 더 크고 잔디 지역에 있다면, 블록의 질량과 환경에서의 마찰을 극복하기 위해 AngularVelocity.MaxTorque 속성을 늘려야 합니다. 예를 들어, 샘플 부품의 네 배 크기의 큰 블록 부품은 설정된 각속도를 달성하기 위해 최소한 300000 Rowton-studs의 일정한 각 힘이 필요합니다!

HingeConstraint 제약 조건 사용하기

HingeConstraint 객체는 두 가지 연결점이 하나의 축을 중심으로 회전할 수 있게 하는 기계적 제약 조건입니다. HingeConstraint.ActuatorTypeMotor로 설정하면, 이 제약 조건은 두 연결점에 토크를 적용하여 일정한 각속도를 유지하도록 합니다.

또한, 조립체에 두 개의 물체가 있는 경우 연결점을 배치할 때, 이 물체는 서로 잠기고 연결점의 고정 주축에 따라 함께 회전하려고 합니다. 이 중 하나의 물체를 고정하면, 각 힘은 나머지 물체를 일정한 각속도로 회전시킵니다.

예를 들어, 조립체 내 특정 물체를 회전시키기 시작하려면 HingeConstraint 제약 조건이 다음과 같은 정보를 알아야 합니다:

  • 연결점이 중첩될 위치.
  • 각 힘을 적용할 점과 방향 (양 또는 음).
  • 연결점이 초당 회전할 라디안의 양.
  • 연결점이 일정한 각속도에 도달하기 위해 엔진이 적용할 수 있는 최대 토크.

이 과정을 시연하기 위해, 두 개의 객체가 있는 프로펠러 조립체를 작업 공간에 추가하고, 두 객체에 있는 연결점이 HingeConstraint 제약 조건을 참조하여 프로펠러를 초당 3 라디안 (약 매 초당 반 회전)으로 Y축을 따라 일정한 각속도로 회전시키도록 합니다. 프로펠러의 바닥은 정지 상태를 유지합니다.

프로펠러 자산 가져오기

Creator Store는 Roblox가 만든 다양한 자산을 찾을 수 있는 Toolbox의 탭으로, 모델, 이미지, 메시, 오디오, 플러그인, 비디오 및 폰트 자산을 포함하여 프로젝트에서 사용할 수 있는 모든 자산을 찾을 수 있습니다. Creator Store를 통해 개별 자산이나 자산 라이브러리를 열린 경험에 직접 추가할 수 있습니다.

이 튜토리얼은 HingeConstraint 기술의 각속도를 회전시키기 위한 각 단계를 복제하는 데 사용할 수 있는 프로펠러 모델을 참조합니다. 이 프로펠러 자산을 인벤토리에서 경험으로 가져오려면:

  1. 프로펠러를 인벤토리에 추가합니다.

    1. 자산의 세부정보 페이지로 이동합니다.
    2. 오른쪽 상단 모서리에서 Get Model 버튼을 클릭합니다. 프로펠러 자산이 이제 인벤토리에 추가되었으며, 플랫폼의 어떤 프로젝트에서도 재사용할 수 있습니다.
  2. 스튜디오에서 Home 탭으로 이동한 다음 Toolbox 버튼을 클릭합니다. Toolbox 창이 열립니다.

    스튜디오 툴바에서 강조된 툴박스。
  3. Toolbox 창에서 Inventory 탭을 클릭합니다. 내 모델 정렬이 표시됩니다.

  4. Propeller 타일을 클릭합니다. 모델이 뷰포트에 표시됩니다.

연결점 구성하기

조립체 내 특정 물체를 회전시키기 위해 연결점이 겹치는 위치와 회전 움직임의 방향을 지정하려면 두 개의 Attachment 객체를 조립체에 추가하고, 3D 공간에서 그 정렬과 방향을 구성해야 합니다.

샘플 회전하는 물체 경험에서는 고정되지 않은 프로펠러가 고정된 기반과 겹치는 위치 근처에 두 개의 연결점을 정렬하고 그들의 주 회전 축을 위쪽으로 설정하여 시계 반대 방향으로 회전하도록 구성합니다. 이 예에서 기반 연결점은 고정되어 있기 때문에 회전할 수 없습니다.

힌지 제약 조건을 위해 연결점을 구성하려면:

  1. HeadBase에 각각 Attachment 객체를 삽입합니다.

    1. Explorer 창에서 Head 위에 마우스를 올리고 ⊕ 버튼을 클릭합니다. 문맥 메뉴가 나타납니다.
    2. 메뉴에서 Attachment를 삽입합니다.
    3. Base에 대해 이 프로세스를 반복합니다.
    4. 각 연결점의 이름을 HeadAttachmentBaseAttachment로 바꿉니다.
  2. HeadAttachmentBaseAttachment를 회전시켜 각 연결점의 주 축이 Y축을 따라 위쪽을 가리키도록 합니다. 이는 스튜디오에 연결점을 시계 반대 방향으로 회전시키라는 것을 알려줍니다.

  3. BaseAttachmentBase의 상단으로, HeadAttachmentPropeller의 하단 가장자리로 이동시킵니다. 이는 스튜디오에 힌지를 연결하는 위치를 알려주며, 실행 시간 동안 두 연결점이 겹치도록 합니다.

제약 조건 구성하기

이제 연결점에 중첩할 위치와 회전 움직임의 방향이 있으므로, HingeConstraint 제약 조건의 속성을 구성하여 연결점이 초당 회전할 라디안의 양과 연결점이 일정한 각속도에 도달하기 위해 엔진이 적용할 수 있는 최대 토크를 설정할 수 있습니다.

이전 기술과 유사하게 샘플 회전하는 물체 경험은 연결점이 Y축을 따라 3라디안의 각속도를 유지하기 위해 최대 1000 Rowton-studs의 일정한 각 힘을 적용합니다. 그러나 기반에 연결된 연결점이 고정되어 있기 때문에, 프로펠러의 연결점만 회전할 수 있습니다.

힌지 제약 조건을 구성하려면:

  1. HeadHingeConstraint 객체를 삽입합니다.

    1. Explorer 창에서 Head 위에 마우스를 올리고 ⊕ 아이콘을 클릭합니다. 문맥 메뉴가 나타납니다.
    2. 문맥 메뉴에서 HingeConstraint를 삽입합니다.
  2. 프로펠러의 연결점을 새 제약 조건에 할당하여 프로펠러가 고정된 기반에 상대적으로 회전하도록 합니다.

    1. Explorer 창에서 제약 조건을 선택합니다.
    2. Properties 창에서,
      1. Attachment0BaseAttachment로 설정합니다.
      2. Attachment1HeadAttachment로 설정합니다. 힌지가 뷰포트에 표시됩니다.
  3. Explorer 창에서 제약 조건을 선택한 후, Properties 창에서,

    1. ActuatorTypeMotor로 설정합니다. 새로운 속성 필드가 표시됩니다.
    2. MotorMaxTorque1000으로 설정하여 목표 각속도를 달성하기 위해 최대 1000 Rowton-studs의 일정한 각 힘을 적용합니다.
    3. AngularVelocity3으로 설정하여 프로펠러의 머리를 초당 3라디안으로 회전시킵니다.
  4. 설정한 토크의 양이 프로펠러를 Y축을 따라 초당 3라디안으로 회전시키는지 확인합니다.

    • 메자닌의 드롭다운 메뉴에서 Run 시뮬레이션 모드를 선택하고 Play 버튼을 클릭하여 시작합니다. 스튜디오는 현재 카메라 위치에서 아바타 없이 경험을 시뮬레이션합니다.

      스튜디오 메자닌의 테스트 모드 드롭다운에서 실행 옵션.

초기 각 힘 적용하기

물체의 각속도를 변경하는 또 다른 방법은 각 힘의 임펄스를 적용하는 것입니다. 각 힘의 임펄스 후, 물체는 마찰과 같은 반대 힘이 있을 경우 정지 상태가 될 때까지 감속하거나, 반대 힘이 없을 경우 일정한 속도로 계속 움직입니다.

이 기술은 강한 바람과 같은 중요한 게임 플레이 또는 기상 이벤트 이후에 물체를 회전시키는 데 유용합니다. 왜냐하면 즉각적인 피드백을 플레이어에게 제공하기 때문입니다. 이 과정을 시연하기 위해 다음 하위 섹션에서는 새로운 값을 사용하여 자신의 게임 플레이 요구 사항을 충족하도록 조정할 수 있는 초기 무작위 각 힘으로 조립체를 회전시키는 방법을 배웁니다.

ApplyAngularImpulse 사용하기

ApplyAngularImpulse 메서드는 전체 조립체에 토크를 적용하여 초기 각속도를 얻은 후 서서히 정지하게 합니다. 조립체를 회전시키기 시작하려면 메서드는 다음 정보를 알아야 합니다:

  • 회전시킬 조립체.
  • 초기 각속도에 도달하기 위해 토크를 적용할 축.
  • 각 축에 적용할 토크의 양.

이러한 모든 값을 스크립트에서 정의할 수 있습니다. 예를 들어, 샘플 스크립트는 회전할 조립체를 스크립트의 부모로 정의한 후, Y축에 대해 0에서 100 Rowton-studs 사이의 무작위 각 힘의 임펄스를 적용합니다.

ApplyAngularImpulse를 사용하여 조립체를 회전시키려면:

  1. Workspace 부품을 삽입합니다. 샘플은 구에 MaterialVariant을 사용하여 구의 움직임을 명확히 시각화할 수 있습니다.

  2. 새 부품에 스크립트를 삽입합니다.

    1. Explorer 창에서 부품 위에 마우스를 올리고 ⊕ 버튼을 클릭합니다. 문맥 메뉴가 나타납니다.
    2. 메뉴에서 Script를 삽입합니다.
  3. 기본 코드를 다음 코드로 바꿉니다:


local part = script.Parent
local impulse = Vector3.new(0, math.random(0, 100), 0)
part:ApplyAngularImpulse(impulse)
©2026 Roblox Corporation. Roblox 및 Roblox 로고, 'Powering Imagination'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.