Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
RigidBody2D 사용하기
연체(또는 연체 역학)는 변형 가능한 물체의 움직임, 모양 변경 및 기타 물리적 특성을 시뮬레이션합니다. 예를 들어 천을 시뮬레이션하거나 보다 사실적인 캐릭터를 만드는 데 사용할 수 있습니다.
내보내기 고려 사항
연체에 대한 지원은 일반적으로 GodotPhysics3D에 비해 Jolt Physics에서 더 강력합니다. 프로젝트 설정에서 **Physics > 3D > Physics Engine**을 변경하여 물리 엔진을 전환할 수 있습니다. Godot 4.6 이상에서 생성된 프로젝트는 기본적으로 Jolt Physics를 사용하지만 기존 프로젝트는 수동으로 전환해야 합니다.
또한 :ref:`물리 보간 <doc_physics_interpolation>`은 현재 연체에 영향을 주지 않습니다. 더 높은 프레임 속도에서 연체 시뮬레이션이 더 부드럽게 보이도록 하려면 Physics > Common > Physics Ticks per Second 프로젝트 설정을 높여야 합니다. 이 경우 성능 비용이 발생합니다.
기초 설정
SoftBody3D 노드는 연체 시뮬레이션에 사용됩니다. RigidBody3D 또는 StaticBody3D 또는 MeshInstance3D 자식 노드. 대신 충돌 모양은 노드에 할당된 메쉬에서 파생됩니다. 이 메시는 렌더링에도 직접 사용되므로 기능적이고 시각적인 설정을 위해 자식 노드를 만들 필요가 없습니다.
부드러운 몸체의 설정을 보여주기 위해 탄력 있는 큐브를 만들겠습니다.
만들기 Node3D 노드를 루트로 사용하는 새로운 씬입니다. 그런 다음 SoftBody3D 노드를 만듭니다. 인스펙터에서 노드의 Mesh 속성에 BoxMesh를 추가하고 시뮬레이션을 위해 메시의 세분화를 늘립니다.
세분화 수준은 변형의 정밀도 수준을 결정하며, 값이 높을수록 성능은 저하되지만 더 작고 더 자세한 변형이 가능합니다. 이 예에서는 각 축에서 이를 3으로 설정합니다.
타일셋 편집기를 사용하여 타일 속성을 칠하기
이제 원하는 소프트 바디 유형을 얻기 위한 매개변수를 설정합니다. **시뮬레이션 정밀도**를 5 이상으로 유지하십시오. 그렇지 않으면 연체가 무너질 수 있습니다.
인스펙터에서 SoftBody3D 시뮬레이션 속성 조정
참고
일부 값은 이상한 결과를 초래할 수 있으므로 일부 매개변수를 주의해서 다루십시오. 예를 들어 모양이 완전히 닫히지 않은 상태에서 압력을 ``0.0``보다 큰 값으로 설정하면 부드러운 몸체가 강한 바람에 비닐봉지처럼 날아다닙니다.
시뮬레이션을 보려면 씬을 실행하세요. 다음은 그 모양의 예입니다.
팁
시뮬레이션 결과를 개선하려면 **시뮬레이션 정밀도**를 높이세요. 이는 성능을 희생하면서 상당한 개선을 가져올 수 있습니다.
또는 Physics > Common > Physics Ticks per Second 프로젝트 설정을 늘릴 수 있습니다. 이는 연체 시뮬레이션 품질에도 영향을 미칩니다.
망토 시뮬레이션
Platformer 3D 데모에서 망토를 만들어 보겠습니다.
참고
GitHub 또는 Asset Library 를 사용해서 Platformer3D 데모를 다운로드할 수 있습니다.
player/player.tscn 씬을 열고 루트 노드 아래에 SoftBody3D 노드를 추가한 다음 Mesh 속성에서 PlaneMesh 리소스를 할당합니다.
PlaneMesh의 속성을 열고 크기를 ``(0.5, 1.0)``로 설정한 다음 세분 폭 및 **세분 깊이**를 ``5``로 설정합니다. 평면이 캐릭터의 등에 가까워 보이도록 SoftBody3D 노드의 위치와 회전을 조정합니다. 다음과 같이 끝나야 합니다.
PlaneMesh를 세분화하여 캐릭터 등에 배치
팁
Subdivision은 더 나은 시뮬레이션을 위해 더욱 테셀레이션된 메시를 생성합니다. 그러나 세분화 수준이 높을수록 성능에 영향을 미칩니다. 성능과 품질 사이의 균형을 찾으십시오. 이는 주어진 시간에 활성화될 것으로 예상되는 연체 시뮬레이션 수와 카메라와 연체 사이의 거리에 따라 달라집니다.
BoneAttachment3D 노드를 스켈레톤 노드 아래에 추가하고 목 뼈대를 선택하여 망토를 캐릭터 스켈레톤에 연결합니다.
참고
BoneAttachment3D 노드는 객체를 뼈대의 뼈에 부착하는 데 사용됩니다. 연결된 개체는 뼈의 움직임을 따릅니다. 예를 들어, 캐릭터가 들고 있는 무기를 이런 방식으로 부착할 수 있습니다.
현재로서는 SoftBody3D 노드를 BoneAttachment3D 노드 아래로 이동하지 마세요. 대신 BoneAttachment3D 노드를 따르도록 *고정된 점*을 구성하겠습니다.
인스펙터에서 BoneAttachment3D 노드 구성
고정된 점을 만들려면 SoftBody3D 노드에서 위쪽 정점을 선택합니다. 고정된 점은 3D 편집기 뷰포트에서 파란색으로 나타납니다.
인스펙터에서 SoftBody3D의 포인트 고정하기
고정된 조인트는 먼저 확장해야 하는 Collision 섹션 아래에 있는 SoftBody3D의 Attachments 섹션에서 찾을 수 있습니다. 고정된 각 조인트에 대한 **공간 부착 경로**로 BoneAttachment3D 노드를 선택합니다. 이제 고정된 조인트가 목에 부착됩니다.
팁
속성을 더 빠르게 할당하려면 씬 트리 도크에서 BoneAttachment3D 노드를 공간 부착 경로 속성 필드로 끌어서 놓을 수 있습니다.
첨부 파일 섹션이 나타나도록 하려면 SoftBody3D 노드를 선택 취소했다가 다시 선택해야 할 수도 있습니다.
SoftBody3D 검사기에서 BoneAttachment3D 노드에 부착될 고정된 점 구성
마지막 단계는 SoftBody3D의 상위 충돌 무시 속성에 CharacterBody3D ``Player``(씬의 루트 노드)를 추가하여 클리핑을 방지하는 것입니다.
타일셋 편집기에서 씬 컬렉션 만들기
씬을 재생하면 망토가 올바르게 시뮬레이션됩니다.
프로젝트 메인 씬 실행 시 최종 결과
이는 연체 시뮬레이션의 기본 설정을 다룹니다. 게임을 만들 때 목표로 하는 효과를 얻기 위해 매개변수를 실험해 보세요.
참고
후면 컬링으로 인해 특정 각도에서 보면 망토가 나타나지 않습니다. 이 문제를 해결하려면 새 StandardMaterial3D를 할당한 다음 해당 컬링 모드를 **비활성화**로 설정하여 뒷면 컬링을 비활성화할 수 있습니다. 이렇게 하면 재질이 평면의 양쪽을 렌더링하게 됩니다.
가져온 메시 사용하기
고급 가져오기 설정 대화상자의 파일에 저장 옵션을 사용하면 SoftBody3D 노드에 연결할 수 있는 독립형 리소스 파일에 메시를 저장할 수 있습니다.
SoftBody3D와 함께 사용하기 위해 메시를 가져올 때 LOD 생성을 비활성화하거나 LOD 생성 옵션을 변경할 수도 있습니다. 기본 가져오기 설정은 매우 가까운 렌더 거리에서도 서로에 대해 거의 평평한 인접한 면을 병합하는 LOD를 생성합니다. 이는 정적 메쉬에는 잘 작동하지만 이러한 면을 단일 평면으로 렌더링하는 대신 서로에 대해 구부리고 이동할 수 있도록 하려면 SoftBody3D와 함께 사용하는 것이 바람직하지 않은 경우가 많습니다.
자세한 사항은 가져오기 구성와 메시 세부 수준(LOD) 를 참조하세요.