소개
현재 페르소나 챗봇이나 AI 캐릭터 챗 서비스들의 천편 일률적인 Chat UI 형태가 몰입감을 방해한다는 생각이 들어 비주얼 노벨 같은 형태의 UI로 만들면 어떨까 해서 만들어 봤습니다.
UI나 기능 개발에 집중해서 정작 중요한 페르소나 챗은 좀 부족하지만 그래도 느낌은 괜찮은것 같아서 공유합니다.
진행 방법
ChatGPT/Claude: AI 페르소나를 만든 경험이 없어서 빠르게 다양한 캐릭터의 설정과 시스템 프롬프트를 만들었습니다.
ChatGPT(Dall-E), Midjourney, Whisk: 위에서 생성한 캐릭터들의 portrait 에셋과 게임의 배경, 인트로 화면 등의 이미지 에셋을 생성했습니다.
Next.js + Cursor.AI: 대략적인 머리속에 떠오르는 아키텍쳐 구조를 PRD.md로 대충 휘갈겨 cursor에 claude-4-sonnet thinking 모드에서 그냥 하나 부터 열까지 만들어달라고 했습니다. 에러와 버그를 하두 내뱉어서 그거 수정하는데 개발기간 일주일중의 대부분을 잡아먹었습니다.
Suno AI: 인앱 BGM 작곡
OpenAI gpt-4.1 api: 실제 AI 페르소나들을 구동하는 LLM으로 사용했습니다.
개발 기능
비주얼 노벨 형태의 UI를 상황별로 그리기 위한 Scene Engine
14명의 다양한 캐릭터와의 비주얼 노벨 형태의 AI 챗
감정별, 음료별 캐릭터 추천
대화 컨텍스트 저장 및 이후 대화에서도 대화 이력 등을 요약해서 프롬프트로 전달
캐릭터 설정을 자세히 볼수 있는 손님 목록 UI와 호감도에 따른 배경 및 설정 해금
도전과제 등
남자가 비디오 게임에서 술집 뒤에 서 있습니다
남자가 비디오 게임에서 술집 뒤에 서 있습니다
테이블 앞에 서있는 남자와 함께 게임의 스크린 샷
테이블과 의자가있는 게임 스크린 샷
테이블과 의자를 보여주는 컴퓨터 화면의 스크린 샷
결과와 배운 점
캐릭터/페르소나 챗에서 UI 보다 중요한건 대화의 품질과 재미라는걸 느꼈습니다. 실제로 다 만들고 내가 해보니까 대화 진행이 제대로 안된다는 느낌을 받았어요
너무 상세하게 캐릭터의 배경과 설정 등을 지정해두면 오히려 답변이나 대화 진행이 유연하지 못하고 재미가 없어지더라구요.
이미지 생성 AI의 성능이 엄청 좋아졌지만 이상하게 pixel art나 도트그래픽에서 결과물의 일관성을 유지하기가 너무 힘듬. 좋은 방법이 있으면 알려주세요 ㅜㅜ
마찬가지로 게임 에셋을 만들때 배경 - 캐릭터 - 오브젝트 등 다양한 레이어로 만들어야하는데 테이블을 만들어달라 했더니 배경까지 같이 만들어주는 바람에 누끼 따는데 시간이 더 걸림 (이것도 좋은 방법 있나요? ㅜㅜ)
기존 대화 기록 + 상황 등의 컨텍스트를 주입해도 갑자기 잊어먹고 캐릭터가 딴소리를 하는 경우도 있음... 프롬프트 최적화에 대해 더 공부해야겠음
결론: AI 캐릭터 챗... 쉬울줄 알았는데 생각보다 만들기 어렵더라구요. 일단 단순히 프롬프트 + gpt api로는 원하는 품질의 대화를 하기 힘든것 같습니다. 또한 컨텍스트나 진행도 유지를 위해 RAG등의 기능도 개발해야하고 처음 구상했을때는 아주 단순하게 재미있는거 만들수 있지 않을까 했는데 컨셉 정도만 개발하는데도 쉽지 않았네요.
캐릭터 대화 품질과 컨텍스트 유지 그리고 재미있는 캐릭터와 상황을 만드는데 좀더 시간을 투자해보려고 합니다.