You are currently viewing “StaticBody2D 완벽 가이드: 정적인 물리 객체와 동적인 환경 구성의 핵심”

“StaticBody2D 완벽 가이드: 정적인 물리 객체와 동적인 환경 구성의 핵심”

StaticBody2D 소개

StaticBody2D는 Godot 엔진에서 정적인 2D 물리 객체를 구현하기 위한 노드입니다. 외부 힘이나 충돌로 인해 움직이지 않으며, 수동적으로 위치를 변경하더라도 이동 경로에 있는 다른 물체에 영향을 주지 않습니다. 바닥, 벽 같은 고정된 객체부터 컨베이어 벨트나 회전 플랫폼과 같은 움직이는 표면까지, 다양한 게임 환경을 구성하는 데 유용합니다.

StaticBody2D는 일정한 선속도와 각속도를 설정하여 접촉 중인 물체에 물리적인 영향을 줄 수 있습니다. 이를 통해 캐릭터가 컨베이어 벨트 위에서 자연스럽게 이동하거나, 회전 플랫폼 위에서 반응하는 효과를 간단하게 구현할 수 있습니다. 또한, 물리 재질을 재정의하여 마찰력이나 반발력을 조정해 더욱 정교한 상호작용을 만들 수 있습니다.

활용 사례:

  • 정적인 환경: 바닥, 벽, 장애물 등 움직이지 않는 환경 요소
  • 움직이는 표면: 컨베이어 벨트, 회전 플랫폼과 같은 동적 요소
  • 물리적 상호작용: 일정한 속도와 각속도를 활용한 자연스러운 물리 효과

StaticBody2D는 단순하면서도 강력한 기능을 제공하여, 게임의 정적인 부분과 동적인 부분을 균형감 있게 설계할 수 있는 중요한 도구입니다.

정적인 구조물부터 움직이는 표면까지, StaticBody2D로 게임 세계를 완성하세요!

StaticBody2D

상속 구조:
PhysicsBody2D < CollisionObject2D < Node2D < CanvasItem < Node < Object

상속받는 클래스:
AnimatableBody2D

StaticBody2D는 외부 힘에 의해 움직이지 않는 정적인 2D 물리 바디입니다. 직접적으로 위치를 이동시키거나 애니메이션을 통해 이동시킬 수 있지만, 다른 물체에 영향을 주지 않습니다.


설명

StaticBody2D는 정적인 2D 물체를 표현하기 위한 물리 객체입니다. 외부 힘이나 충돌로 인해 움직이지 않으며, 수동적으로 위치를 변경할 수 있습니다. 이때 이동은 텔레포트처럼 이루어지며, 이동 경로에 있는 다른 물리 객체에는 영향을 미치지 않습니다.

만약 이동 시 다른 객체에도 영향을 주고 싶다면, 대신 AnimatableBody2D를 사용하는 것이 좋습니다.

StaticBody2D의 주요 활용 사례:

  • 완전히 고정된 물체: 바닥, 벽, 장애물 등
  • 움직이는 표면: 컨베이어 벨트, 회전하는 플랫폼 등
    (이를 위해 constant_linear_velocityconstant_angular_velocity를 사용할 수 있음)

프로퍼티

타입이름기본값설명
floatconstant_angular_velocity0.0물체의 일정한 각속도. 실제로 회전하지는 않지만 접촉한 물체에 영향을 줍니다.
Vector2constant_linear_velocityVector2(0, 0)물체의 일정한 선속도. 실제로 이동하지는 않지만 접촉한 물체에 영향을 줍니다.
PhysicsMaterialphysics_material_override없음물리 재질을 재정의하여 이 물체에 적용합니다. 다른 물리 재질을 덮어씁니다.

프로퍼티 설명

constant_angular_velocity

  • 설명: 일정한 각속도를 설정합니다. 이 값은 물체를 실제로 회전시키지는 않지만, 접촉 중인 물체가 회전하는 것처럼 반응하게 만듭니다.
  • 사용 예: $StaticBody2D.constant_angular_velocity = 2.0

constant_linear_velocity

  • 설명: 일정한 선속도를 설정합니다. 물체가 실제로 움직이지 않지만, 접촉 중인 물체가 해당 방향으로 밀리는 효과를 만듭니다.
  • 사용 예: $StaticBody2D.constant_linear_velocity = Vector2(100, 0)

physics_material_override

  • 설명: 물체에 물리 재질을 재정의하여 적용합니다. 기존에 상속된 물리 재질보다 이 값이 우선적으로 적용됩니다.
  • 사용 예: var material = PhysicsMaterial.new() material.friction = 1.0 material.bounce = 0.5 $StaticBody2D.physics_material_override = material

StaticBody2D의 활용 팁

  1. 완전히 고정된 물체: 바닥, 벽과 같은 물체를 구현할 때 가장 적합합니다.
  2. 움직이는 표면: 컨베이어 벨트나 회전 플랫폼을 구현해 캐릭터가 그 위에서 자연스럽게 이동하도록 만들 수 있습니다.
  3. 간단한 충돌 처리: StaticBody2D는 이동하지 않으므로 충돌 시 계산이 간단하고 성능에 최적화되어 있습니다.

StaticBody2D를 통해 정적인 환경과 역동적인 움직임을 조화롭게 만들어 보세요!

답글 남기기