대사 및 컷씬용 다이어로그를 만들려고 합니다.
지금까지 비슷한 기능이나 렌파이를 만져본 적은 없어서 맨땅에 박치기 식으로 해봐야겠네요.
일단 게임->컷씬->게임 진행 하면 제일 먼저 떠오르는게 헬테이커긴 합니다.
굳이 해당 레퍼런스가 아니더라도 많은 사람들이 2D 다이어로그 하면 떠오르는 구조가 있긴 하겠죠.

일단 제가 떠올리는 다이어로그의 데이터는 이 정도 되는 것 같습니다.
만들다보니 활협전도 꽤나 떠올랐네요.
아무래도 이걸 1행에 전부 몰아넣어야 할텐데, 여기서 이름 및 대사는 key 값만 넣고 value 값들은 로컬라이제이션 테이블에 넣어야겠죠.
통째로 시트로 만들어버릴까 했는데 한번 툴을 만들어보는 것도 좋을 경험일 것 같습니다.
생각하면서 생각해보니 또 생각나는게 있었는데, 게임 테마가 좌/우 캐릭터다 보니 다이어로그를 이렇게 하려고 했던게 기억나네요.

크아악~~~
왼쪽이 대사는 왼쪽부터 시작, 중앙 대사는 중앙에서 펼쳐지는, 오른쪽이 대사는 오른쪽에서 밀려나가는 방식으로 컨셉을 잡았습니다.
솔직히 문장이 오른쪽부터 밀려나가는 방식이라면 보기 불편할건 알지만 이정도 고집은 부려도 괜찮지 않을까 해요.
결론적으로 구상해본 테이블 구조
| 컷씬이름?인덱스든아무튼제목 | |
| int: background | index로 배경 이미지 |
| int: characterIndex | 캐릭터(화자)의 인덱스 |
| int: portrait | index로 초상화 |
| int: portraitChangeType | 해당 portrait으로 스프라이트 전환이 어떻게 이루어질지 |
| int: portaitAnimationType | 뭔가 초상화에 애니메이션 적용해야 할 때(방방 뛰거나, 좌우로 움직이는 등) |
| int: portraitAlphaType | 알파값, float 값을 직접 입력하기보단 index로 해당 값을 float로 파싱하는게 나을듯 |
| bool(0,1): layerIndex | 레이어 순서를 세밀하게 관리하기보단 해당 인물 대사가 나올 때 레이어 맨 앞으로 두느냐/냅두느냐 이것만 관리해도 될듯 |
| string: nameKey | 이름 키 |
| int: namePositionIndex | 0, 1, 2 이것만 있으면 될 듯 |
| string: descriptionKey | 대사 키 |
여기까지 구상하다가 또 잊어먹고 떠올린 것!!!!!!!!

좌우 동시 선택지 시스템을 넣으려고 했었습니다.
내러티브 게임도 아니고 선택에 따른 유의미한 변화는 없겠다만 그래도 나름 스크립트의 여러 결과값을 보는 맛도 있을테니 진행시켜
그럼 이걸 고려해서 다시 구상!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
하다가 다시 떠오른 아이디어

왼쪽이 대사 -> 박사 대사 -> 오른쪽이 대사 -> 왼쪽이 대사 -> ... 기존의 1턴 1대사 형태가 아니라
(왼쪽이/박사) -> (박사/오른쪽이) -> (왼쪽이/박사/오른쪽이) -> (왼쪽이/오른쪽이) 등등 1턴 동시 인물 대사 출력으로 가려고 합니다.
대신 캐릭터는 왼쪽이, 박사, 오른쪽이만 나오고, 나레이터 및 기타 인물 등등은 박사 대사 영역을 대신 쓸 생각입니다.
즉 컷씬(이라는 단어가 걸맞진 않겠지만 찰떡같이 알아들어주셈) 데이터 구조가 이렇게 되겠습니다.
| DialogueTurnData | |||
| Left(DialogueCharacterData) | Doctor(같음) | (같음)Right | Narattor(같음) |
| 및 int: background | |||
| DialogueCharacterData | |||||
| int portrait |
int portraitChangeType |
int portraitAnimationType |
int portraitAlphaType |
int nameKey |
int descriptionKey |
| DialogueSelectionData | |||||||
| LeftUpKey | LeftRightKey | LeftDownKey | LeftLeftKey | RightUpKey | RightRightKey | RightDownKey | RightLeftKey |
| DialogueData |
| int 0: DialogeTurnData, 1:DialogueSelectionData로 형변환 |
| 이하 이어짐 |
| 이하 이어짐 |
크아아악
'무제_LR' 카테고리의 다른 글
| 다이어로그 에디터 툴 - 선택지 툴, Dirty 체크 (0) | 2025.12.19 |
|---|---|
| 다이어로그 에디터 툴 - EditorWindow와 AssetDataBase로 json 생성, 불러오기, 저장, 삭제 (0) | 2025.12.17 |
| 게임 컨셉 결정, 에너지 시스템 추가 (1) | 2025.12.16 |
| 스테이지 별 카메라 설정 (0) | 2025.12.08 |
| Indicator 보강 (0) | 2025.12.07 |