아 뭐 체크포인트저장이랑 NPC랑 상호작용을 해야한다고한다.
1. 플레이어가 NPC의 일정거리안에 들어오면 ui 생성
1. 위젯블루프린트 생성
캔버스-> 버티컬박스 안에 png 이미지랑 텍스트로 만들어줌
2. NPC 에서 위젯이랑 콜리전 설정
shpere 콜리전은 플레이어랑 접촉이 있을 시 비긴오버랩으로 위젯 띄울려고 만든것
widget의 설정은
일단 기본옵션은 보이지않도록 visible 체크해제
생성한 WBP넣어주고 space는 플레이어가 바라보는 곳에서도 동일하게 보이도록Screen 으로 설정해줌
3. NPC 에서 콜리전 블루프린트설정
스피어 콜리전에서 우클릭 Add Event on component Begin overlap이랑 end overlap 이벤트를 불러온다
위젯 변수 겟으로 들고와 visible 시작엔 켜지고 오버랩끝나면 꺼지게 설정해주면 됨
NPC뿐만이 아니라 스폰 포인트 등 상호작용하는 오브젝트에 다 적용이 가능하다.
4. 결과물
2. npc 대사 생성
뭔가 다양한 대사와 상호작용이 구현되는 영상중 이것이 적합해보여 따라해보겠음 부분적으로 내가 필요한 부분은 수정하며 쓸 예정이니 기본 베이스는 이 영상을 토대로 작업한다고 생각하면 됩니다.
https://www.youtube.com/watch?v=88xikHeYQDA
내가하고싶은거 Q누르면 다이얼로그 ui나오고 상호작용ui는 사라지고 엔터나 스페이스로 대사 넘기는 시스템이었으면 하는데....
1. 인풋맵핑
이제 Q를 누르면 상호작용하는 스크립트를 띄우고 싶은데 가능할까
일단 인풋앱핑 먼저 해보자
Q를 bool값을로 설정하고 IMC에서 Q를 키보드 입력 할당해줌
2. 이넘 생성, 컴포넌트 추가
이넘 블루프린트를 생성해서 PassTrough 단계와 Updated 로 분기설정하기 편하게 만들어둠
액터 컴포넌트를 만들어 준다. 기능을 다른액터에 반복해서 적용하고 싶을땐 액터컴포넌트 블루프린트로 생성해서 넣어주는것이 효과적이기 때문 AC_Dialogue의 함수와 변수 생성은 아래 사진을 참조하자
참고로 DialogueWidget은 위젯 블루프린트를 먼저 생성 후 변수로 넣어준 케이스
OpenConversation의 함수노드
WBP_Dialogue에서 변수로 OwningDialogueComponent 를 만들어주고 노드를 새로고침해서 핀이 생성된 것
closeConversation은 지울때 remove from Parent 해서 위젯 제거
ProgressDialogue에서 set DialogueIndex -1로 받는 이유는 0부터 시작시킬려고 하는것
AddDialogue에서는 변수 3개를 만들어주는데 전부 Text로 하지만 Option Text는 선택지가 여러개일 수 있기때문에 배열로 만들어주기
대사 추가할때마다 인덱스 1씩 올려주기
인덱스에 해당하는 대사가 있는지 확인 후 중복되거나 중복안된다면 브렌치로 넘어가거나 대사 생성하기
WBP_Dialogue 에서 함수 만들어주고UpdateDialogueText 만들어서 인풋 4개 생성
다시 AC_Dialogue_Base로 돌아와 이번엔 대사 넣을때 분기점 생성
플레이어가 옵션 선택하면 저장하고 다음대사로 넘어가는 함수
저장이력 전부 지우는 함수
일부 지우는 함수
대화트리 설정하면서 기존의 대화 기록 지우는 함수
여기까지가 튜토리얼 1 의 영상이었다. 하.. 나 뭐 잘못된걸까
다시 만드는 중인데 힘드네진쨔.. 눈물 줄줄
이렇게 대사띄우고 옵션에따라 분기점 나눠지는거 나도 하고싶다고요.
으엉어엉엉 눈물이 앞을 가려요.
'Unreal' 카테고리의 다른 글
[언리얼 5] esc를 누르면 게임 종료 물어보는 창&&게임 일시정지 기능 구현/ Tab키누르는 동안 창 띄우기 (0) | 2025.04.02 |
---|---|
[언리얼 5] 시뮬레이션 esc 버튼 종료 안되게 하는법 / 게임 메인 메뉴 만들기 / 눈속임용 게임 로딩창 만들기 (1) | 2025.04.01 |
팀 프로젝트1. 강의 듣고 요약하기 (1~5강) (0) | 2025.03.07 |
2D 퀵드로우 게임 제작 필수기능 정리 1 (1) | 2025.02.20 |
『인생 언리얼 5 프로젝트 교과서』복습 이동방향 추첨 / 충돌처리 /파티클 생성 (0) | 2025.02.18 |