본문 바로가기

godot) 코드로 콜리전 생성

2025. 10. 8.
[▼네모 안의 것만 블로그 관리자 광고입니다▼]
[▲네모 안의 것만 블로그 관리자 광고입니다▲]

시작전

 

해당 게시물은 충돌을 감지하는 콜리전을 코드로 생성 하는 법을 설명합니다

 

인게임 내에서 만든 콜리전을 보고 싶다면 

디버그> 보여줄 콜리전 모양을 체크

 

게임을 편집하는 에디터에서도 콜리전을 보고 싶다면

콜리전의 owner를 에디터씬루트로 해놔야합니다 

 

 

생성 노드 종류

 

고도엔진에서 콜리전을 만드는 노드는

convexpolygonshape3d()    [볼록]

concavepolygonshape3d()  [오목]

총 2가지가 있습니다 

 

볼록

볼록은 수학 및 기하학의 볼록성은 두 점을 잇는 모든 선분이 

반드시 그 도형 안에 포함되어 있는 성질을 말합니다 

 

볼록 형태는 수학적으로 매우 단순하게 정의되어 있으므로 

출동감지가 빠르고 안정적이며 속이 차있습니다

 

볼록(convex)은 백터 배열의 인덱스 순서에 상관 없이

속이 찬 상대로 만들어 줍니다

 

오목

오목은 선분이 도형 밖에 나가있는 것을 뜻합니다

 

오목에 들어가는 백터들은 인덱스 순서에 따라

3개씩 짝을 이뤄 삼각형으로 만들어지며

속은 비어있습니다 

 

바닥이나 terrain을 만들 때 사용합니다 

 

ConcavePolygonShape3D()   [오목]

 

콜리전 쉐이프를 사용하기 위해서는

static노드나 리직바디같이

자식에 콜리전 노드를 필요로하는 노드에 코딩을하게 됩니다 

 

concave객체의 setFaces()함수를 사용하여 콜리전을 만듭니다

그 함수 안에는 백터 배열이 들어가며

트라이앵글을 만들어야 하기 때문에

3개씩 짝을 맞춰야 합니다 

 

만든 것을 콜리전.shape에 할당하면 표현됩니다

 

속이 비어있기 때문에 terrain같은 바닥을 만들어 사용합니다 

 

ConvexPolygonShape3D() [볼록]

 

볼록 콜리전은 오목과 똑같은 백터 좌표를 사용하였지만

겉에 있는 백터만을 계산하여 속이 찬 콜리전을 만들어 냅니다 

 

겉면을 알아서 계산해 만들어 주기 때문에

백터를 아무렇게나 넣어도 

속이 찬 볼록 형태로 만들어 줍니다 

 

속이 차있기 때문에 돌이나 지형지물에 사용할 수 있습니다