* 본 서평은 제이펍미디어로부터 도서를 제공받아 작성된 서평입니다. 다만, 개인적인 경험과 의견을 최대한 녹여내고자 했습니다.
LEVELIT 유니티와 OpenAI API로 만드는 인공지능 NPC
박재환, 황유라 저자
LEVELIT 유니티와 OpenAI API로 만드는 인공지능 NPC | 박재환 - 교보문고
LEVELIT 유니티와 OpenAI API로 만드는 인공지능 NPC | AI와 게임이 만나면 NPC가 숨을 쉰다고?유니티에 ChatGPT, Whisper, DALL-E, TTS 같은 최신 생성형 AI를 자연스럽게 얹어, 말을 걸면 반응하고 상황에 맞게
product.kyobobook.co.kr
간단 서평
22년 말 ChatGPT의 등장 이후 어느덧 3년이 흘렀다. 그 사이 생성형 AI는 놀라울 만큼 빠르게 발전했고, 이제는 산업 전반을 휩쓸고 있다. 단순한 채팅을 넘어 다양한 분야에 적용하려는 시도가 이어지고 있으며, 게임 개발이나 HCI 연구 분야에서도 NPC에 ‘사람다운 지능’을 부여해 보려는 움직임이 활발하다.
ChatGPT나 Whisper 같은 API를 개별적으로 호출해 보는 경험은 이제 더 이상 특별하지 않다. 튜토리얼을 따라 몇 줄의 코드를 작성하면 텍스트가 생성되고, 음성이 인식되며, 이미지까지 만들어진다. 하지만 이런 정도로는 더 이상 사람들의 반응을 끌어내기 어렵다. 이제는 너무 익숙해졌고, 솔직히 말해 조금 심심해졌다.
그럼에도 불구하고, 이렇게 파편화된 기술들을 하나의 게임 엔진 안에서 유기적으로 엮어 사용자의 목소리에 반응하고, 상황에 맞춰 사고하며, 입 모양을 맞춰 대답하는 ‘하나의 존재’를 만들어내는 일은 여전히 꽤 재미있는 것 같다.
이런 경험을 구현하려면 AI 에이전트를 다룰 줄 알아야 한다. 이때 핵심은 단순히 API를 호출하는 데 있지 않다. 실제 사용자가 상호작용하는 환경에서 얼마나 이질감 없이 작동하느냐가 관건이다. AI가 아무리 유창한 대답을 내놓더라도 립싱크가 어긋나거나 비인간적인 말투가 튀어나오면, 사용자는 즉각적인 불편함, 소위 말하는 ‘언캐니 밸리’를 느끼게 된다. 이런 불쾌감이 쌓이면, 기술적으로 완성도가 높더라도 결국 좋은 사용자 경험으로 이어지지 못한다.
《유니티와 OpenAI API로 만드는 인공지능 NPC》는 바로 이러한 고민에 대해 구체적인 해법을 제시하는 책이다. 단순히 기능 구현 방법을 나열하는 데 그치지 않고, 점처럼 흩어져 있던 AI 기술들을 유니티라는 캔버스 위에서 단계적으로 연결해 나간다.
특히 인상 깊었던 점은 Whisper와 OpenAI API를 병렬적으로 사용하는 데서 그치지 않고, 각자의 강점을 살려 상호 보완적인 파이프라인을 설계한다는 점이다. Whisper가 고유명사나 전문 용어를 놓칠 수 있는 상황에서, 이 책은 막연한 후처리나 추론에 기대지 않는다. 대신 핵심 용어를 사전에 주입해 OpenAI API를 통해 인식을 보정하는 기법을 제시한다. 이는 단순한 API 연결을 넘어, 명확한 어휘 가이드를 통해 결과에 대한 통제력을 높이려는 시스템적 사고를 잘 보여준다. 멀티모달 AI의 신뢰성을 확보하기 위해 꼭 필요한 관점이기도 하다.
책의 중반부에서는 OpenAI TTS와 Google TTS를 함께 다루며, 독자가 서로 다른 API의 특성과 선택 기준을 자연스럽게 비교해 볼 수 있도록 시야를 넓혀준다. 자칫 API 사용법 나열로 흐를 수 있는 부분마다 “그래서 이걸 NPC에 어떻게 적용할 것인가”라는 질문을 놓치지 않고 짚어주는 점도 인상적이다. 덕분에 학습의 긴장감이 끝까지 유지된다.
DALL·E를 활용해 그림을 그려주는 NPC를 만드는 예제 역시 꽤 유쾌하다. 텍스트와 음성을 넘어 시각적인 창작까지 수행하는 NPC를 직접 구현해 보며, 실습 과정에서 자연스럽게 웃음이 나올 만큼 즐거운 경험을 할 수 있었다.
프롬프트 엔지니어링 파트에서는 저자의 꼼꼼함이 특히 돋보인다. LLM을 다루다 보면 코드만으로는 해결되지 않는 미묘한 최적화 문제에 부딪히기 마련인데, 책은 이를 간과하지 않고 프롬프트 설계를 통한 ‘소프트한 최적화’ 방법까지 함께 다룬다. 개발자로서 자칫 놓치기 쉬운 디테일까지 챙겨주는 배려가 인상 깊다.
이 책을 읽으며 가장 좋았던 점은 전체 구성의 기승전결이 분명하다는 점이다. 앞선 챕터에서 텍스트 생성, 음성 인식, 음성 합성, 이미지 생성을 각각 익힌 뒤, 후반부에 이르러 이 모든 요소를 통합한 최종 인터랙션 NPC를 완성하도록 구성되어 있다. 파편화된 기술들이 하나의 캐릭터 안에 녹아들 때 비로소 ‘살아 있는 에이전트’가 된다는 것을 실전 감각으로 체득하게 된다.
이 책은 복잡한 AI 에이전트 시스템을 추상적인 이론 뒤에 숨기지 않고, 직관적인 코드로 하나하나 풀어 보여준다. 단단한 기반을 다지고 싶은 개발자, 프레임워크 뒤에 숨은 AI의 동작 원리를 이해하고 싶은 연구자, 그리고 AI 기술의 가능성을 처음 탐색하는 초보자 모두에게 의미 있는 책이다. 단순히 ‘돌아가는 코드’를 넘어, ‘살아 숨 쉬는 캐릭터’를 만들고 싶은 이들에게 이 책을 추천하고 싶다.
목차
- 추천사 ix
베타리더 후기 xiii
오프닝 xiv
튜토리얼 xvi
학습 가이드 xxii
로드맵 xxiv
LEVEL 1 대표 AI API 비교 분석 1
1.1 생산성 향상에 도움을 주는 AI 2
__1.1.1 생성형 AI 서비스 2
__1.1.2 이미지 생성 AI 8
__1.1.3 영상 생성 AI 9
__1.1.4 코딩 자동 생성 AI 11
1.2 AI API의 특징과 비용 15
__1.2.1 OpenAI API 15
__1.2.2 Google AI API 16
__1.2.3 Meta LLaMA API 17
__1.2.4 Claude API 18
__1.2.5 Naver Clova AI API 18
LEVEL 2 Text generation API를 사용하여 인공지능 대화형 NPC 구현하기 21
2.1 OpenAI API 알아보기 22
__2.1.1 GPT 모델 22
__2.1.2 OpenAI에서 제공하는 API 모델 23
2.2 OpenAI API 시작하기 25
__2.2.1 OpenAI 계정 만들기 25
__2.2.2 API 키 발급받기 26
__2.2.3 API Key 토큰 비용 충전하기 27
__2.2.4 개발 환경 준비 28
2.3 Unity 시작하기 29
__2.3.1 Unity 허브 설치하기 29
__2.3.2 Unity 계정 생성 및 라이선스 획득하기 30
__2.3.3 Unity 에디터 버전 설치하기 30
__2.3.4 Unity 3D 프로젝트 생성하기 31
__2.3.5 예제 리포지터리 사용하기 32
2.4 Unity에서 OpenAI API 텍스트 생성 예제 실행하기 34
__2.4.1 C# 스크립트 파일 생성 36
__2.4.2 네임스페이스 선언 36
__2.4.3 변수 선언 37
__2.4.4 요청 코루틴 정의 38
__2.4.5 JSON 메시지 구조 선언 38
__2.4.6 JSON 데이터 인코딩 39
__2.4.7 WebRequest 생성 39
__2.4.8 응답 처리 41
__2.4.9 결과 확인 43
__2.4.10 모델을 변경하는 방법 45
2.5 OpenAI API 사용하기 실전 예제 46
__2.5.1 스크립트 생성 46
__2.5.2 네임스페이스 수정 46
__2.5.3 웹 리퀘스트 형식 확인하기 48
__2.5.4 URL, apiKey 변수 만들기 51
__2.5.5 웹 리퀘스트 코루틴 만들기 51
__2.5.6 웹 리퀘스트 발송하기 54
__2.5.7 에러 핸들링 60
__2.5.8 응답 데이터에서 메시지 추출 62
__2.5.9 코루틴 함수 작성하기 66
__2.5.10 UI Manager 스크립트 작성 68
__2.5.11 UI에 적용하기 70
__2.5.12 캐릭터 애니메이션 연결하기 71
LEVEL 3 Whisper API 사용하기 77
3.1 Whisper API 소개 78
__3.1.1 Whisper API로 할 수 있는 것들 79
__3.1.2 Whisper 모델별 특징 79
3.2 Whisper API 사용해보기 82
__3.2.1 Transcriptions 엔드포인트 사용하기 82
__3.2.2 Translation 엔드포인트 사용하기 87
__3.2.3 타임스탬프 사용하기 89
__3.2.4 용량 제한하기 91
__3.2.5 Whisper 프롬프트 사용하기 93
__3.2.6 GPT 후처리 적용하기 96
3.3 Whisper API 사용하기 실전 예제 101
__3.3.1 Unity에서 Whisper API로 음성 인식해보기 101
__3.3.2 음성 인식을 활용하여 회의록을 자동 생성하는 예제 115
__3.3.3 Whisper API와 OpenAI API를 사용하여 번역기 만들기 125
3.4 음성 인식 기반 인공지능 NPC 상호작용 구현하기 133
__3.4.1 프로젝트 세팅하기 135
__3.4.2 AI 프롬프트 작성하기 141
__3.4.3 음성 인식 인공지능 NPC 실행하기 142
__3.4.4 확장 가능성 143
LEVEL 4 TTS API 사용하기 145
4.1 TTS 개요 146
__4.1.1 주요 TTS 서비스 146
__4.1.2 TTS의 작동 원리 147
4.2 OpenAI TTS 사용하기 149
__4.2.1 OpenAI TTS 가격 정책 149
__4.2.2 주요 엔드포인트 149
__4.2.3 입력과 출력 150
__4.2.4 OpenAI TTS 사용 제한사항 151
__4.2.5 샘플 음성 들어보기 151
__4.2.6 OpenAI API Text to speech 엔드포인트 사용하기 152
4.3 Google TTS API 사용하기 159
__4.3.1 Google Cloud 가입하기 159
__4.3.2 Google Cloud TTS API 예제 실행하기 169
4.4 TTS API 사용하기 실전 예제 178
__4.4.1 OpenAI TTS API 활용 예제 178
__4.4.2 Google TTS API 사용 예제 189
__4.4.3 TTS를 활용한 음성 녹음기 만들기 201
__4.4.4 음성 내레이션이 나오는 인공지능 NPC 구현하기 226
LEVEL 5 Image Generation API 사용하기 247
5.1 OpenAI DALL-E API 개요 248
__5.1.1 DALL-E API의 Generations 엔드포인트 사용하기 250
__5.1.2 DALL-E API의 Edits 엔드포인트 사용하기 259
5.2 Image Generation API 사용하기 실전 예제 267
__5.2.1 이미지 자판기 만들기 267
__5.2.2 그림 그려주는 인공지능 NPC 만들기 279
LEVEL 6 립싱크 기술로 구현하는 음성 기반 인공지능 NPC 얼굴 애니메이션 291
6.1 얼굴 애니메이션을 위한 립싱크 기술 292
6.2 음성 스펙트럼을 분석하여 발음에 따른 애니메이션을 만들어주는 예제 294
__6.2.1 퀘스트 295
__6.2.2 예제에 필요한 준비물 295
__6.2.3 스크립트 생성 297
__6.2.4 컴포넌트 적용하기 310
__6.2.5 실행하기 311
6.3 오디오 볼륨 감지를 활용한 간단한 립싱크 애니메이션 예제 313
__6.3.1 퀘스트 314
__6.3.2 예제에 필요한 준비물 314
__6.3.3 스크립트 생성 316
__6.3.4 인공지능 캐릭터 준비하기 319
__6.3.5 컴포넌트 연결하기 321
__6.3.6 실행하기 322
LEVEL 7 인터랙션 인공지능 캐릭터 만들기 325
7.1 인터랙션 인공지능 캐릭터 만들기 실전 예제 326
__7.1.1 OpenAIManager.cs 작성하기 327
__7.1.2 UIManager.cs 작성하기 331
__7.1.3 OpenAITTS.cs 작성하기 331
__7.1.4 SetMicrophone.cs 작성하기 332
__7.1.5 SaveWav.cs 작성하기 332
__7.1.6 WhisperManager.cs 작성하기 333
__7.1.7 NPCManager.cs 작성하기 334
__7.1.8 LipsyncSimpleController.cs 작성하기 335
__7.1.9 UI 및 리소스 연결하기 336
__7.1.10 인공지능 NPC 실행하기 337
7.2 인공지능 NPC 기능 구현하기 339
__7.2.1 OpenAIActionManager.cs 작성하기 339
__7.2.2 Manager 컴포넌트 등록 345
__7.2.3 실전 완성 코드 346
__7.2.4 실행하기 348
7.3 확장 가능성 349
LEVEL 8 프롬프트 엔지니어링 351
8.1 프롬프트 엔지니어링의 장점 352
8.2 프롬프트 엔지니어링 기법 354
__8.2.1 제로샷 프롬프팅 354
__8.2.2 퓨샷 프롬프팅 356
__8.2.3 사고의 사슬 프롬프팅 359
__8.2.4 생각의 나무 프롬프팅 361
__8.2.5 후카츠식 프롬프트 프레임워크 364
__8.2.6 프롬프트 캐싱 367
8.3 프롬프트 캐싱이 적용된 인공지능 NPC 만들기 실전 예제 373
__8.3.1 OpenAIPromptCachingManager.cs 스크립트 작성하기 375
__8.3.2 UI 및 리소스 연결하기 379
__8.3.3 실행하기 381
LEVEL 9 AI의 미래, 그리고 진화하는 NPC 385
9.1 생성형 AI의 현 주소와 전환점 386
__9.1.1 AI 에이전트의 등장 387
__9.1.2 낮아지는 AI 진입 장벽 393
__9.1.3 AI가 결합된 콘텐츠 산업의 재편 395
__9.1.4 산업에서 실현되는 AI NPC 사례 396
9.2 언어 모델 변경하기 399
엔딩 402
용어집 403
찾아보기 410
'리뷰 > 도서, 강의 리뷰' 카테고리의 다른 글
| [도서 리뷰] AI 에이전트 엔지니어링 (1) | 2026.03.03 |
|---|---|
| [도서 리뷰] 혼자서도 척척 해내는 AI 에이전트 만들기 with 랭체인 & 랭그래프 (0) | 2026.02.28 |
| [도서 리뷰] 밑바닥부터 배우는 AI 에이전트 (1) | 2026.01.12 |
| [도서 리뷰] 혼자 공부하는 바이브 코딩 with 클로드 코드 (0) | 2025.12.28 |
| [도서 리뷰] AI 엔지니어링 (0) | 2025.10.26 |
댓글