
안녕하세요. 여영자입니다 :)
지난 시간에는 게임 엔진 Godot를 처음 실행해서
대기와 걷기의 애니메이션 등록까지 완료했는데요.
[40대 AI 초보 성장 일지] 3편
https://dpg.danawa.com/bbs/view?boardSeq=309&listSeq=6040061

어라??
그래서 이제 뭘 해야 하는 거죠? (멍…)
게임 개발을 한 번도 해본 적이 없다 보니,
캐릭터를 만든 다음 무엇부터 해야 하는지 전혀 모르겠더군요. ㅠㅠ
그래서 ChatGPT에게 물어봤습니다.

애니메이션만 만들면 끝인 줄 알았는데, 아직 아니었군요.
움직이는 애니메이션은 만들었지만
실제로 화면 속을 이동하는 기능은 아직 없다는 뜻이었습니다.

접수 완료! 이해했습니다.
그렇다면 지금부터는 애니메이션 캐릭터를
실제로 조작할 수 있는 플레이어(Player)로 만드는 작업을 해보겠습니다.

처음 만들어진 Node2D는 위치나 크기를 관리하는 기본 노드일 뿐
플레이어를 움직이거나 충돌을 처리하는 기능은 없는데요.
그래서 일단
Node2D를 CharacterBody2D로 바꿔주는 과정이 필요했습니다.

[루트 노드(Node2D)] 선택 후 마우스 오른쪽 클릭,
[유형 바꾸기]를 선택합니다.

검색창에 [CharacterBody2D]를 검색한 뒤 [바꾸기] 버튼을 클릭합니다.
???
유형은 바뀌었는데... 노드 이름은 왜 그대로지?
하고 당황했지만 이름만 그대로일 뿐…(휴 다행이다..)

이렇게 사람 모양의 이모티콘으로 변경이 되었다면
CharacterBody2D로 변경된 것이니 안심하세요.
저는 헷갈리지 않도록 노드 이름을 Player로 변경했습니다.

여기서 잠깐!
Node2D를 CharacterBody2D로 바꿔버리면
Node2D는 이제 사용하지 않는 걸까요?
부모 노드라더니 이렇게 바꿔버리면 대체 어떻게 되는 구조인 거죠?
혼돈에 빠진 여영자…(저만 헷갈린 건가요?;;)
그.래.서
한 장으로 깔끔하게 정리를 해봤습니다. (엣헴!)

플레이어나 배경 등은 각각 하나의 씬(Scene)으로 만들고,
마지막에 Main(Node2D) 씬에서 하나로 조립하는 구조네요.
글로만 보면 이해가 잘 안되었는데 정리된 이미지를 보니
이제서야 전체적인 구성이 잘 이해되었습니다!!!
라고 말하는 순간 또 문제가 생겼습니다.

그럼 모양을 만들면 되겠군요!

CollisionShape2D와 CollisionPolygon2D의 차이를 모르니까
ChatGPT에게 물어봤습니다.

CollisionShape2D가 CollisionPolygon2D보다
상대적으로 쉽고 안정적이라고 하네요.
초보자인 저는 그렇다면 CollisionShape2D로 선택했습니다.

Player 노드를 선택 후 마우스 오른쪽 버튼을 클릭합니다.
[+(자식 노드 추가)] 버튼을 눌러 자식 노드를 선택해 주세요.

새 Node 만들기 검색창에
[CollisionShape2D]를 입력한 뒤 [만들기] 버튼을 눌러주세요.

저 경고창이 보이면 처음엔 깜짝 놀랐었는데
다음 과정을 이렇게 설명해 주니 이제는 반갑기까지 하네요.
CollisionShape2D가 작동하려면 모양이 있어야 한다고 하네요.
모양 리소스를 만들어야 하는데 그게 대체 무엇일까요?

그럼 빠르게 한번 추가해 볼게요!

CollisionShape2D를 선택한 상태에서
우상단 인스펙터 영역의 Shape를 보시면 비었음으로 보이는데요.
[비었음]을 클릭한 뒤 검색창에 [CapsuleShape2D]를 검색해서 클릭해 주세요.
그럼 반투명한 캡슐이 보일 거라고 ChatGPT가 알려줬는데…

없는데요?? 없어요 캡슐…ㅠㅠ

여기저기 눌러보고 찾아봐도 안 보여서 ChatGPT에게 물어봤습니다.

앗!! 그렇다면…설마...
.
.
.
.
.

찾았다..;;;;
캡슐 크기가 너무 작아서 없는 줄 알았더니 처음부터 있었네요.
(이걸 찾는다고 얼마나 시간을 보냈는지 하아….)

캡슐의 오른쪽 핸들은 가로 크기(Radius)
아래쪽 핸들은 세로 크기(Height)를 조절합니다.
인스펙터의 Radius와 Height에서도 수정할 수 있습니다.
이제 캐릭터 그림에 맞게 충돌 범위의 크기와 위치를 조절하면 되는데요.
CapsuleShape2D의 기본 크기는 임시값이어서
캐릭터에 맞게 캡슐을 키우는 것이 일반적이라고 합니다.

하나의 캡슐에 정지와 걷기 동작 모두를 포함해야 해서
처음에는 캐릭터를 최대한 크게 감싸도록 캡슐을 만들었습니다.
하지만 충돌 영역이 캐릭터보다 너무 크면
어색한 움직임이 발생할 수 있다고 해서 수정하기로 했어요.

머리카락 끝이나 장식 요소는 일부 캡슐 밖으로 나와도 괜찮다고 해서
여영자의 머리와 몸통을 중심으로 캡슐을 다시 조정했습니다.
이제 다른 동작도 수정된 캡슐에 잘 맞는지 확인해볼게요.

(1) Player의 AnimatedSprite2D를 선택 후
(2) 애니메이션 영역에서 원하는 동작을 선택하세요.
(3) 우측 인스펙터의 AnimatedSprite2D > Frame에서
각 프레임 번호를 선택해서 프레임마다 확인할 수 있습니다.
프레임 선택 후 다시 Player의 CollisionShape2D를 선택하면,
해당 프레임을 기준으로 캡슐의 위치와 크기를 조정할 수 있으니 참고하세요!

짜잔! 다른 프레임에도 캡슐이 잘 적용되었네요.
드.디.어
캡슐 씌우기까지 성공했습니다. ㅠㅠ
사실 오늘의 제 예상은 스크립트까지 도전이었는데
(역시 계획은 계획일 뿐..)
생각하지 못한 요소들이 생겨서 조금 늦어졌네요.
하지만 여기에서 멈출 수는 없죠.
드디어 첫 번째 스크립트에 도전할 시간이 왔습니다.
캐릭터가 움직이는 모습은 다음 편에서 함께 확인해 볼게요!

그럼 다음 편에서 만나요!
|
오늘의 기록 ✔ Node2D를 CharacterBody2D로 변경하기 ✔ CollisionShape2D 추가하기 ✔ CapsuleShape2D 생성 및 크기 조절 ✔ 캐릭터에 맞게 충돌 영역 설정하기 다음 미션 ✔ 첫 번째 스크립트 작성하기 ✔ 키보드 방향키로 여영자 움직여 보기 |
저처럼 AI와 함께 게임을 만들며 매일 사투 중이신 회원님 계실까요?
함께 으쌰으쌰 힘내서 완성해 봐요!
![]()
댓글과 공감은 여영자에게 정말 큰 힘이 됩니다.







