캐릭터 스프라이트(표정과 전신)
스프라이트는 기쁨이나 슬픔 같은 감정 하나를 나타내는 캐릭터 그림입니다. Marinara는 이 그림을 채팅 장면 위에 띄워서 보여 줍니다. 직접 만든 스프라이트를 올리거나 AI로 생성하고, 배경을 정리하고, 표시 방식을 조절할 수 있습니다.
시작하기 전에: Marinara가 고를 수 있도록 각 파일 이름을 happy.png처럼 감정 이름으로 지으세요. Roleplay(롤플레이) 채팅에서는 스프라이트를 고르는 보조 기능인 Expression Engine(표정 엔진) 에이전트도 켜야 합니다. 채팅에서 스프라이트가 표시되는 방식을 참고하세요.
스프라이트는 두 가지입니다.
- Facial Expressions(표정)는 기쁨, 슬픔, 분노 같은 감정을 나타내는 인물 그림입니다.
- Full-body(전신) 이미지는 대기, 걷기, 전투 자세 같은 포즈를 나타내는 전신 그림입니다.
스프라이트는 Roleplay Mode와 Game Mode(게임 모드)에서 화면에 나타나며, Conversation(대화) 채팅에서는 나타나지 않습니다. 캐릭터는 모든 채팅에서 자기 스프라이트를 그대로 가지므로, 업로드는 어느 모드에서든 할 수 있습니다. 페르소나에도 같은 Sprites(스프라이트) 탭이 있습니다.
Sprites 탭 찾기
- 캐릭터(또는 페르소나)를 편집기에서 여세요.
- Sprites 탭을 클릭하세요.
- 위쪽에서 Facial Expressions, Full-body, Clips(클립) 중 하나를 고르세요.
아래 절에서는 Facial Expressions와 Full-body를 설명합니다. Clips는 통화 기능의 일부입니다. Conversation 음성 통화와 영상 통화를 참고하세요.
직접 만든 스프라이트 업로드하기
PNG, JPEG, GIF, WebP, AVIF, SVG 이미지를 올릴 수 있습니다. 배경이 투명한 PNG 파일이 가장 보기 좋습니다. 캐릭터 주변의 빈 영역이 비쳐 보이기 때문입니다. 잘못된 교체 이미지는 거부되며, 저장된 스프라이트는 그대로 남습니다.
스프라이트 한 장 이상 올리기
- Sprites 탭을 열고 Facial Expressions 또는 Full-body를 고르세요.
- Add sprites(스프라이트 추가)를 클릭하세요.
- Upload images(이미지 업로드)를 클릭한 다음, 폴더 안으로 들어가 그 안의 이미지를 선택하세요. 여러 장을 함께 선택할 수 있습니다.
- Import images(이미지 가져오기) 창에서 Import(가져오기)를 클릭하세요. Cancel은 아무것도 추가하지 않습니다.
각 파일 이름이 스프라이트 이름(라벨)이 됩니다. 나중에 이름을 바꾸려면 스프라이트를 여세요. 새 스프라이트는 격자에 폴더 없이 나타납니다. 하위 폴더 안은 살펴보지 않습니다. 가져온 스프라이트를 정리하려면 New folder를 쓰세요.
페르소나 편집기에서 스프라이트 한 장을 올릴 때는 Add Sprite(스프라이트 추가)의 이름 입력란과 Upload(업로드) 버튼을 쓰세요.
폴더째 올리기
폴더째 올리기는 페르소나 편집기에서 할 수 있습니다. 캐릭터에서는 위의 Upload images로 폴더 안의 이미지를 선택하세요.
- 페르소나의 Sprites 탭을 여세요.
- Add Sprite 상자에서 Upload Folder(폴더 업로드)를 클릭하세요.
- 이미지가 들어 있는 폴더를 고르세요.
확장자를 뺀 각 파일 이름이 스프라이트 이름이 됩니다. 진행 줄에는 "Uploading X/Y sprites"가 표시됩니다. 하위 폴더는 선택 사항인 스프라이트 폴더가 됩니다. 내보낸 catalog.json이 있으면 폴더와 수정한 라벨도 되살아납니다. 폴더 항목에 문제가 있으면 알려 주지만, 쓸 수 있는 이미지는 그대로 가져옵니다.
작동하지 않는 경우: 가져오기가 실패하거나 일부만 성공하면, 이미지 0장으로 성공했다고 표시하는 대신 실패를 알려 줍니다. 위의 파일 형식을 확인하세요.
이름 변형
| 파일 이름 | 의미 |
happy_01.png, happy_blush.png | 기쁨 그림 두 장입니다. 두 이름 모두 happy_로 시작하세요. |
happy_pajamas.png | 잠옷 차림으로 기뻐하는 모습입니다. 감정을 먼저 쓰고, 그다음 옷차림을 쓰세요. |
angry_formalwear_soaked_01.png | 정장 차림에 흠뻑 젖은 채 화난 모습입니다. 끝 번호는 같은 그림의 또 다른 버전이라는 표시일 뿐입니다. |
Expression Engine은 표정(happy)과 전체 이름(happy_pajamas)을 모두 봅니다. 모든 단어가 일치하는 스프라이트가 없으면 마지막 단어부터 뺍니다. 그래서 happy_pajamas_wounded가 없으면 happy_pajamas를 쓰고, 그것도 없으면 아무 happy 스프라이트나 씁니다.
채팅에서 스프라이트가 표시되는 방식
스프라이트가 언제 어떻게 나타날지는 캐릭터 편집기가 아니라 채팅 설정에서 정합니다.
Roleplay Mode
Roleplay에서는 Expression Engine 에이전트가 스프라이트를 담당합니다. 에이전트는 답변과 함께 실행되는 보조 기능입니다. 에이전트: 채팅을 도와주는 AI를 참고하세요. 이 에이전트는 메시지마다 분위기를 읽고 어울리는 표정 스프라이트를 고릅니다. 채팅에 추가하고, 아직 없다면 Agent Organizer에서 설치하세요. 다운로드 가능한 에이전트 레퍼런스를 참고하세요.
스프라이트가 나타나려면 다음 조건이 모두 충족되어야 합니다.
- 해당 채팅에서 Expression Engine 에이전트가 켜져 있습니다.
- 캐릭터 하나 이상 또는 페르소나가 스프라이트 소유자로 지정되어 있습니다.
- 스프라이트 소스가 하나 이상 켜져 있습니다.
Chat Settings → Agents(채팅 설정 → 에이전트)를 열고 Expression Engine 카드를 찾으세요.
- Sprite Source(스프라이트 소스)는 Expressions(표정), Full-body 또는 둘 다입니다. 기본값은 둘 다 켜짐이며, 최소 하나는 켜 두어야 합니다.
- Expression Avatars(감정 아바타)는 메시지 옆의 작은 아바타를 어울리는 표정 스프라이트로 바꿉니다. 기본값은 꺼짐이며 Roleplay에서만 작동합니다.
- Only show active sprites(활성 스프라이트만 표시)는 마지막으로 완료된 결과에 나온 캐릭터만 보여 주고, 다음 결과를 만드는 동안 현재 스프라이트를 계속 표시합니다.
Game Mode
Game Mode에서는 말하거나 싸우는 캐릭터의 전신 스프라이트가 자동으로 표시됩니다. Expression Engine은 필요 없고, 그 캐릭터의 전신 스프라이트만 있으면 됩니다. Game Mode: 시작하기를 참고하세요.
스프라이트 이동과 크기 조절
스프라이트 소유자를 켜면 Expression Engine 카드에 Sprite Layout(스프라이트 배치)이 나타납니다.
- Arrange(배치)를 클릭한 다음 각 스프라이트를 원하는 위치로 끌어다 놓으세요.
- Done(완료)을 클릭하세요.
Reset(초기화)은 직접 지정한 위치를 지우고 자동 배치로 되돌립니다. Default Side(기본 위치)는 Left(왼쪽) 또는 Right(오른쪽)이며, 처음에는 Left입니다. 이 값을 바꾸면 현재 배치가 좌우로 뒤집힙니다. Apply to(적용 대상)로 모든 캐릭터의 배치를 정할지, 한 캐릭터의 배치만 정할지 고를 수 있습니다.
슬라이더 4개로 크기와 투명도를 정합니다. Expression Size(표정 크기)와 Full-body Size(전신 크기)는 5%에서 200%까지입니다. Expression Opacity(표정 불투명도)와 Full-body Opacity(전신 불투명도)는 0%에서 100%까지입니다. 크기와 불투명도는 모두 100%에서 시작합니다.
AI로 스프라이트 생성하기
시작하기 전에: 이미지 생성 연결을 추가하세요. 움직이는 스프라이트를 만들려면 동영상 연결도 필요합니다. AI 제공자에 연결하기를 참고하세요.
- Add sprites를 열고 Generate Sprite(스프라이트 생성)를 클릭하세요. 페르소나 편집기에서는 이 버튼이 Add Sprite에 있습니다. Generate Sprites(스프라이트 생성) 창이 열립니다.
- 위쪽에서 소스를 고르세요. Expressions (Portrait)(표정(인물)) 또는 Full-body입니다.
- Image Generation Connection(이미지 생성 연결)을 고르세요.
- 필요하면 Reference Images(참조 이미지)를 최대 4장까지 추가하거나, 체크박스를 켜서 현재 아바타를 참조로 쓰세요.
- Appearance Description(외형 설명)을 쓰세요. 이 항목은 필수입니다.
- 필요하면 Transparent sprite background(투명 스프라이트 배경)를 켜세요. Marinara가 배경을 투명하게 만듭니다. 서비스가 이를 지원하지 않으면 Marinara는 Appearance Description의 색과 다른 단색 초록, 마젠타, 청록 배경을 그린 다음 그 배경을 제거합니다.
- Expression Count(표정 수) 또는 전신의 경우 Pose Count(포즈 수)를 정하고, 만들 표정이나 포즈를 고르세요.
- Generate(생성)를 클릭하세요.
이미지가 도착하면 각 이미지를 켜거나 끄고, 이름을 바꾸고, 잘라 내세요. 그런 다음 선택한 이미지를 캐릭터의 스프라이트로 저장하세요. 그 카테고리에서 생성된 라벨과 같은 라벨을 가진 저장된 스프라이트가 정확히 하나라면, 저장할 때 그 이미지가 교체되고 폴더와 핸들은 그대로 유지됩니다. 그 라벨에서 다른 이름으로 바꾼 스프라이트는 그대로 남습니다. 서로 다른 폴더에 같은 라벨이 있으면, 원하는 스프라이트를 직접 교체하세요.
Full-body 소스에서 캐릭터에 이미 인물 표정이 있으면 Match existing expression sprites(기존 얼굴 표정 스프라이트에 맞추기)를 체크하세요. 각 표정 이름에 맞는 전신 포즈가 만들어집니다.
생성에는 몇 분이 걸릴 수 있고, 느린 서비스에서는 더 걸립니다. 처음부터 다시 시작하지 말고 기다리세요. 일부 Android 설치본 같은 몇몇 기기에서는 AI 스프라이트 생성과 배경 정리를 쓸 수 없습니다. 이때는 버튼이 비활성화되고 Marinara가 그 이유를 표시합니다.
애니메이션 초상화
Expressions (Portrait) 소스의 Generate animated portraits(애니메이션 초상화 생성)는 짧게 움직이는 클립을 만들고, 각 클립을 반복 재생되는 GIF 스프라이트로 바꿉니다. GIF는 짧은 애니메이션이 재생되는 이미지 파일입니다. 이 기능은 이미지 연결 대신 동영상 연결을 사용합니다. 애니메이션 표정을 참고하세요.
스프라이트 배경 정리하기
스프라이트는 캐릭터만 보일 때 가장 보기 좋습니다. 생성된 스프라이트는 서비스가 지원하면 자체 투명도를 사용합니다. 그렇지 않으면 Marinara가 이미지에 맞춰 고른 단색 배경을 가장자리까지 부드럽게 제거하고, 머리카락과 옷감처럼 일부가 비치는 픽셀에 남은 그 색까지 씻어 냅니다. 예전의 흰색 배경 스프라이트도 그대로 작동합니다.
한 장씩 직접 정리하기
캐릭터 스프라이트 미리보기를 열고 마법봉 정리 기능을 쓰거나, 페르소나 스프라이트 그림을 클릭하세요. 정리 편집기에서 배경을 지우고, 지운 부분을 다시 칠하고, 어두운 배경, 밝은 배경, 체크무늬 배경에서 결과를 확인할 수 있습니다. 실행 취소와 원본으로 초기화도 할 수 있으며, 끝나면 적용하세요.
여러 장 한꺼번에 정리하기
- 캐릭터 편집기에서 Select(선택)를 클릭하고 스프라이트를 고르세요. 페르소나 편집기에서는 정리 버튼이 선택한 스프라이트에 적용되고, 아무것도 선택하지 않았다면 보이는 카테고리에 적용됩니다.
- Clean Backgrounds(배경 정리)를 클릭하세요.
- Cleanup strength(정리 강도) 슬라이더를 Soft(부드럽게)에서 Aggressive(강하게)까지, 0에서 100 사이로 설정하세요. 처음 값은 35입니다. 값이 클수록 배경을 더 많이 지우지만 캐릭터까지 깎일 수 있습니다.
- 확인하세요.
Marinara가 안전용 사본을 남겨 둡니다. "Last cleanup has a restore point"라는 줄과 함께 Undo Cleanup(정리 취소)이 표시됩니다. 이 버튼을 클릭하면 영향을 받은 스프라이트가 전부 원래대로 돌아갑니다.
정리는 PNG, JPG, JPEG, WEBP, AVIF에서 작동합니다. GIF와 SVG에서는 작동하지 않습니다.
자동 정리는 먼저 이미지를 살펴봅니다. 내장된 빠른 정리는 단색 배경과 예전의 흰색 배경을 처리합니다. 가장자리가 균일하지 않으면, 선택 사항인 AI 배경 제거 기능이 설치되어 있을 때 Marinara가 그것으로 대신 처리할 수 있습니다. 배경이 복잡한 장면이나 캐릭터 색이 배경과 비슷한 그림에는 직접 정리 편집기를 쓰는 편이 가장 안전합니다.
스프라이트 관리하기
캐릭터 스프라이트를 열면 미리보기와 기능이 표시됩니다. 페르소나 스프라이트는 기능이 타일에 있습니다.
- Frame(프레임)은 캐릭터가 원하는 위치에 오도록 이미지를 잘라 냅니다.
- Download(다운로드)는 스프라이트 파일을 저장합니다.
- Replace(교체)는 같은 이름 위에 새 이미지를 올립니다.
- 캐릭터 미리보기의 Rename(이름 변경)은 라벨을 최대 160자로 바꿉니다. 파일 핸들과 URL은 그대로라서 기존 이미지 참조가 계속 작동합니다.
- 캐릭터 미리보기의 Folder(폴더) 또는 페르소나 타일의 Move sprite(스프라이트 이동)는 끌지 않고 폴더나 No folder(폴더 없음)를 고릅니다.
- Delete(삭제)는 확인을 거친 뒤 그 스프라이트를 지웁니다. 페르소나 편집기에서 카테고리 이름이 붙은 Delete All(전체 삭제)은 검색 중이어도 카테고리 전체를 지웁니다.
폴더와 선택
New folder(새 폴더)를 클릭하면 unnamed라는 이름의 접힌 폴더가 만들어집니다. 이름을 더블클릭하거나 두 번 탭하면 이름을 바꿀 수 있고, 꺾쇠 화살표로 폴더를 펼칩니다. 표정 스프라이트와 전신 스프라이트는 폴더가 따로 있습니다. 폴더는 폴더 없는 스프라이트 위에 놓이며, 끌어서 순서를 바꿀 수 있습니다.
스프라이트를 폴더로 끌어 놓거나, 폴더에 든 스프라이트를 폴더 없는 영역으로 끌어 폴더에서 빼세요. 휴대전화에서는 타일을 길게 누르면 끌기가 시작되고, 평소처럼 밀면 그대로 스크롤됩니다. 폴더는 정리만 할 뿐, 활성 세트를 고르거나 채팅이나 에이전트에게서 이미지를 숨기지 않습니다. 폴더를 지워도 그 안의 스프라이트는 폴더 없이 남습니다.
Select를 클릭하면 체크 상자와 Select all sprites(모든 스프라이트 선택)가 나타납니다. 그런 다음 선택한 스프라이트를 함께 끌거나 정리와 삭제를 사용하세요. Cancel(취소)은 선택 모드에서 나갑니다. 검색은 보이는 스프라이트를 걸러 냅니다. 검색 결과가 없다고 해서 라이브러리가 비어 있다는 뜻은 아닙니다.
Character Sheet
캐릭터 편집기의 Character Sheet 줄은 Manage(관리)로 엽니다. 그곳에서 시트를 만들거나 올리세요. 캐릭터의 생김새를 맞출 때 이 시트를 우선 쓰려면 Use as reference image(참조 이미지로 사용)를 켜세요.
스프라이트 내보내기
- Sprites 탭을 여세요.
- 캐릭터 격자 위나 페르소나의 Add Sprite 상자에서 Export(내보내기)를 클릭하세요.
- 현재 카테고리를 내보내려면 Expressions only(얼굴 표정만) 또는 Full-body only(전신만)를, 전부 내보내려면 All sprites(모든 스프라이트)를 고르세요.
스프라이트 파일과, 라벨과 폴더 정보를 담은 catalog.json이 든 zip 파일을 받습니다. 캐릭터와 페르소나를 기본 형식으로 내보낼 때와 프로필 백업에서도 이 데이터가 유지됩니다.
관련 가이드
- 캐릭터 만들기와 편집
- 페르소나
- Roleplay Mode: 시작하기
- Game Mode: 시작하기
- Conversation 음성 통화와 영상 통화
- 애니메이션 표정
- 다운로드 가능한 에이전트 레퍼런스
개발자 참고: 스프라이트 API와 링크
GET /api/sprites/:ownerId는 폴더에 있든 없든 모든 스프라이트를 돌려줍니다. GET /api/sprites/:ownerId/catalog는 폴더를 하나씩 가져오는 도구를 위해 폴더와 배정 정보를 더해 줍니다. 각 스프라이트에는 변하지 않는 expression 핸들, 수정할 수 있는 label, folderId, URL이 있습니다. 배정에는 폴더 ID를 쓰세요. folders 배열은 저장된 순서이며, 편집기는 새 폴더가 맨 위에 오도록 이를 거꾸로 표시합니다. 폴더 순서는 에이전트의 우선순위나 사용 가능 여부를 정하지 않습니다.
채팅의 에셋 브라우저는 수정한 라벨을 보여 주지만, 실제로는 구체적인 card://sprites/<ownerId>/<filename> 링크를 넣으므로 이름을 바꾼 뒤에도 링크가 계속 작동합니다. card://sprites/facial/joy.png 같은 채팅 범위 링크도 수정한 라벨을 찾을 수 있습니다. 일치하는 파일 이름이 이미 있으면 그쪽이 우선합니다.
선택 사항인 메타데이터가 없거나 읽을 수 없어도, 쓸 수 있는 이미지는 숨겨지지 않습니다. 수정 작업은 손상된 메타데이터를 덮어쓰지 않고 거부합니다. 읽기 전용 목록은 접근할 수 없는 라이브러리를 건너뛰며, 내보내기와 쓰기 작업은 연결된 소유자 디렉터리를 거부합니다.