[내일배움캠프 본 캠프 74일차] TEXT추출_NPC

2026. 1. 13. 22:41본 캠프

오늘은 기존의 화이트보드에서 단순하게 미션을 보여준 걸 넘어서서 

미션 브리핑/결과 보고용 NPC와 대화를 통해 미션을 받는 걸 연출하고 미션결과에 따라 대사가 나뉘는 부분을 구현했다.

 

 

기존에 팀원이 튜토리얼을 위해 만들어놨던 CSV -> DialogueSO 변환 코드를 활용해서

미션용 NPC와의 대사를 추출할 부분을 나눠둔 건 컬럼(타입)별로 텍스트를 추출해 배열에 보관해야 했기 때문이다.

단순히 순서대로 대사를 읊는 게 아니라 미션에 따라 대사가 달라지고, 성공/실패 여부에 따라도 달라진다.

 

DialogueLine 리스트에서 타입별로 추출한 뒤 missionKey와 Speaker 에 따라서 추출할 부분을 구별할 수 있도록 만든 뒤 

타입별로 대사를 추가한다.

우측상단의 점3개 옵션에서 Generate from CSV 를 통해 에디터 전용 메서드를 사용해서 CSV에서 키/NPC/타입에 맞게 대사를 추출하고 미션용 대사 모음 통합 SO를 만들어서 NPC가 미션 종류에 따라 다른 대사를 출력할 수 있도록 데이터를 준비해둔다.

 

이후 NPC에게 관련 스크립트를 붙여두고 SO를 등록해두면 미션에 따라 브리핑 대사가 달라진다.

 

NPC의 대사를 처리하는 부분은 지금 이런 느낌으로 만들면 되겠지 형식으로 만들었기에 사실 어떤 오류들이 더 있을지도 모르고

생각보다 분기와 예외처리 등 다양한 상황에서 어떻게 멈추는지 모르기 때문에 많이 어려움을 느꼈다.

특히 팀원이 작성한 코드를 온전히 이해하고 어떻게 추출해왔는지에 대한 과정을 추적하면서 내가 제대로 활용할 수 있는지에 대한 부분이 팀 협업에 있어서 추후에도 굉장히 중요하겠구나 라는 생각을 많이했다.

 

주석이라는 건 단순히 기능설명을 위해서 붙여놓는 의미도 있지만, 다른 사람을 위해서 어떻게 작동하는 지 왜 이런 코드가 쓰였는지 에 대해 명시를 꼭 해야겠다는 생각을 많이 했다.

 

특히 지금처럼 코딩에 있어서 지식이 많이 부족한 상태이기에 내가 만든 코드가 다른 사람들이 보기에 난해하고 어떤 용도로 쓰는 지 알 수 없는 경우가 꽤 많았었겠구나라는 생각도 들었다.

 

아직 기능자체가 완성되지 않았기 때문에 내일 마저 마무리하면서 기존의 팀원이 만든 기능에서 UI연출을 위해 책임을 분리해서 깔끔하게 대사연출을 하는 부분이 분리될 수 있도록 마저 작업을 해야겠다.