GDScript를 사용하여 Godot에서 대화 시스템 만들기
홈페이지홈페이지 > 블로그 > GDScript를 사용하여 Godot에서 대화 시스템 만들기

GDScript를 사용하여 Godot에서 대화 시스템 만들기

Jul 06, 2023

효과적인 대화 시스템으로 캐릭터에 개성과 배경을 추가하세요.

게임 개발에서는 매력적인 게임플레이와 매력적인 스토리텔링이 기억에 남는 경험을 만드는 핵심입니다. 이를 달성하는 데 도움이 될 수 있는 강력한 도구 중 하나는 대화 시스템입니다.

잘 구현된 대화 시스템을 통해 캐릭터는 의사소통하고, 정보를 공유하고, 플레이어와 상호 작용하여 게임에 깊이와 몰입감을 더할 수 있습니다.

게임의 기초를 만드는 것부터 시작하세요. 이 예에서는 화살표 키를 사용하여 이동할 수 있는 제어 가능한 캐릭터가 포함된 간단한 2D 환경을 설정합니다.

이 기사에 사용된 코드는 이 GitHub 저장소에서 사용할 수 있으며 MIT 라이선스에 따라 무료로 사용할 수 있습니다.

플레이어 캐릭터에 대한 새로운 장면을 만드는 것부터 시작하세요. 이 장면 안에 필요한 구성요소를 추가합니다. 만들기캐릭터바디2D 플레이어 캐릭터의 신체를 나타내는 노드입니다. 첨부충돌 모양2D플레이어의 충돌 영역을 정의하는 직사각형 모양입니다.

이제 GDScript를 사용하여 캐릭터 움직임과 플랫폼과의 상호작용을 추가해 보세요. CharacterBody2D 노드의 기본 스크립트를 다음 코드로 바꿉니다.

이 스크립트를 사용하면 화살표 키 입력에 따라 캐릭터가 왼쪽, 오른쪽, 위, 아래로 이동할 수 있습니다. 그만큼이동 및 충돌기능은 캐릭터가 플랫폼과 상호 작용하고 충돌에 응답하는지 확인합니다.

이제 대화 시스템 생성을 시작할 수 있습니다. 첫 번째 단계는 캐릭터가 특정 개체나 NPC와 상호 작용할 때 텍스트를 표시하는 대화 상자를 추가하는 것입니다.

당신의캐릭터바디2D스크립트에서 대화 상자와 해당 내용을 처리하기 위한 몇 가지 변수를 추가로 도입합니다.

그만큼대화상자대화 텍스트를 표시하는 역할을 담당합니다.닫기 버튼플레이어는 필요할 때 대화 상자를 닫을 수 있습니다.

에서_준비가 된함수를 사용하여 대화 상자를 만들고 초기화합니다.

이제 대화 상자 내에 텍스트를 표시하는 데 집중할 수 있습니다. 텍스트를 두 줄 이상으로 확장하고 스크롤하여 한 번에 한 줄의 텍스트를 표시할 수 있습니다.

수정하세요_물리_프로세스대사 표시를 처리하는 기능:

이 코드 세그먼트는line_timer 가 0보다 크다. 그렇다면 타이머를 델타 값만큼 감소시킨다. 타이머가 활성화되어 있지 않고 표시할 대사가 더 있으면show_next_dialogue_line기능.

구현show_next_dialogue_line다음과 같이 기능합니다:

이 기능은 대화 상자 내의 텍스트를 현재 대화 줄로 업데이트하고현재_라인 색인. 그만큼line_timer다음 줄로 넘어가기 전에 각 줄이 잠시 동안 표시되도록 합니다.

이제 플레이어에게 대화 상자를 닫고 게임을 계속할 수 있는 기능을 제공할 수 있습니다. 닫기 버튼을 누르면 대화 상자가 숨겨지고 플레이어가 여행을 다시 시작할 수 있게 됩니다.

먼저_준비가 된닫기 버튼을 생성하고 해당 기능을 추가하는 함수입니다.

이 코드는단추 클래스를 선택하고 모양과 위치를 사용자 정의합니다. 그것은 또한누르면에게 신호를 보내다_on_close_button_눌림기능.

이제 구현_on_close_button_눌림 기능. 이 기능에서는 대화 상자와 닫기 버튼의 가시성을 다음으로 설정합니다.거짓 . 이는 플레이어로부터 대화 인터페이스를 효과적으로 숨깁니다.

재설정하는 것을 잊지 마세요.현재_라인다음에 플레이어가 대화를 시작할 때 대화가 처음부터 시작되도록 하려면 인덱스를 0으로 설정합니다.

이러한 변경 사항을 통해 플레이어는 게임 세계를 계속 탐색하거나 상호 작용할 준비가 되면 대화에 참여하고 대화 상자를 닫을 수 있습니다.