기본값을 이용한 예외처리
외부 이미지는 항상 오류 가능성이 있기 마련입니다. 이를 시스템적으로 막아봅시다.
개요
가능하다면 모든 경우의 수에 대해 전부 뽑을 수 있는 게 좋겠지만, 그렇지 않은 경우도 있습니다.
(예를 들면, 남성향 시뮬레이션에서 남자 캐릭터가 부끄러워하는 장면은 비선호하는 경우가 꽤 있습니다.)
이때 해당 데이터를 누락시켜놓는다면 데이터가 없으니 오류가 발생합니다.
그렇다면 AI에게 이 캐릭터는 예외적으로 ~~와 같이 프롬프트를 짜면 어떻게 될까요?
아쉽게도 해당 프롬프트는 제대로 동작하지 않을 가능성이 매우 높습니다.
롤플레잉을 하면서 동시에 복잡한 시스템을 굴리는 것은 아직까지도 어려울 뿐더러, 성능 이슈도 있습니다.
따라서 이 경우, AI 프롬프트가 아닌 시스템 차원에서 예외처리를 해주어야 합니다.
본 페이지에서는 이미지 서버의 구조적 특성을 이용한 예외처리 기법을 알아봅니다.
규격화
간단히 말해, 모든 데이터를 빈틈없이 채우는 것을 규격화라 합니다.
(정식 명칭은 아닙니다. 제가 임의로 부르는 방법입니다.)
만들지 않을 데이터의 부분을 비워놓지 않는 대신, 무표정이나 기본 에셋을 대신 설정하는 방법입니다.
이렇게만 하여도 복잡한 시스템 없이 꽤 많은 오류를 예방할 수 있습니다.
간단한 예시를 이용해 설명하겠습니다.
예시
아래와 같이 두 명의 캐릭터가 있는 남성향 시뮬레이션을 만들고자 합니다.
각각 아래와 같은 에셋이 존재합니다.
markdown
1. 마법사 히로인
- 무표정
- 웃음
- 슬픔
- 화남
- 부끄러움
- 마법 시연
2. 용사 동료
- 무표정
- 웃음
- 슬픔
- 화남
- 검술 시연전우애를 만들기는 싫어서 용사 동료에서 부끄러움 에셋은 빼고,
마법사가 검술을 시연하거나 용사가 마법을 시연하는 것은 어색하여 제외하였습니다.
규격화를 위해서는 에셋 종류를 통합해야 합니다. 에셋 종류를 모두 모아놓는다면 아래와 같습니다.
markdown
- 무표정
- 웃음
- 슬픔
- 화남
- 부끄러움
- 마법 시연
- 검술 시연이후, 이미 있는 이미지만 먼저 기록해놓는다면 아래와 같습니다.
| 무표정 | 웃음 | 슬픔 | 화남 | 부끄러움 | 마법 시연 | 검술 시연 | |
|---|---|---|---|---|---|---|---|
| 마법사 | O | O | O | O | O | O | |
| 용사 | O | O | O | O | O |
이제 비어있는 이미지를 가장 비슷한 이미지로 중복해서 넣으면 됩니다.
예를 들어 마법사가 검술을 시전하는 것은 다소 어색해 보입니다.
주로 검술을 시전하는 경우 전투를 하고 있을 가능성이 높으니 마법 시연 이미지를 대신 넣습니다.
마찬가지로 용사의 마법 시연 이미지도 검술 시연 이미지를 중복하여 넣습니다.
용사가 부끄러워하는 상황인 경우, 일반적으로는 무표정, 츤데레적인 성격일 경우 화남을 넣는 식으로 대체합니다.
이런 식으로 비어있는 이미지에 대해 기본값으로 예외처리를 시켜줄 경우,
AI가 롤플레잉에 더욱 집중할 수 있게 해주는 장점이 있습니다.
순수하게 적절한 상황에 맞는 이미지 번호만 매핑해주면 되니 오류 염려가 적습니다.
프롬프트 역시 계산이 들어가있지 않으므로 단순화되며, 결과적으로 분량이 줄어드는 효과를 가집니다.