평범한 대화문으로만 구성된 그래프 노드 에디터입니다.
각 정점을 드래그하여 간선을 만들어 다음 대사 지문으로 연결시켜 줄 수 있습니다.
지문 그래프 생성이 완료되었다면,
데이터 복구를 위해 저장과 로드를 해봅니다.
그래프의 직렬화 데이터는 다음과 같은 형태로 저장이 됩니다.
{
"nodes":[
{
"type":"dialogue",
"id":"9dfeff6bcb6249439025b6532381bc2d",
"name":"Smith",
"text":{
"id":"8aaf4ae5fa9e4e6a84403b2e74d9dca2",
"data":"Hi! how are you?"
},
"pos_x":345,
"pos_y":103,
"entry":{
"id":"338ae489a1174cc291bf85ac321b7f78",
"pos_x":353,
"pos_y":163
},
"exit":{
"id":"ec305494b687482fb3b701529d49b2b0",
"pos_x":457,
"pos_y":163
}
},
{
"type":"dialogue",
"id":"a6ebec34a944486d87e41948e5033680",
"name":"James",
"text":{
"id":"084f9b6c06ca4e21a87c96dcef870f77",
"data":"Hello~"
},
"pos_x":135,
"pos_y":167,
"entry":{
"id":"2d38a9d5ee1241e08ab09770ad3fbfca",
"pos_x":143,
"pos_y":227
},
"exit":{
"id":"a14d463c77da406e949b96a2a371dad6",
"pos_x":247,
"pos_y":227
}
},
{
"type":"dialogue",
"id":"a65e94cf71e948c7a7cf636135bbd8e4",
"name":"James",
"text":{
"id":"0d7fa6f086874512850389a53d44a79b",
"data":"Fine, thanks!"
},
"pos_x":543,
"pos_y":73,
"entry":{
"id":"eb1f78c03b544ca9b95f024e0d2f3b64",
"pos_x":551,
"pos_y":133
},
"exit":{
"id":"ad6d6998bc484629a30a2d6c91927991",
"pos_x":655,
"pos_y":133
}
},
{
"type":"dialogue",
"id":"c9e78976f6434da493d2277cd0e929f4",
"name":"Smith",
"text":{
"id":"c09e5ee1d0384864a7cb8af7f97ab398",
"data":"See ya!"
},
"pos_x":733,
"pos_y":54,
"entry":{
"id":"cd4c6810ed7f4427a6e18cb40c1df6c2",
"pos_x":741,
"pos_y":114
},
"exit":{
"id":"e86127814ca84d2897ad4b3475505ec3",
"pos_x":845,
"pos_y":114
}
}
],
"edges":[
{
"from":"a14d463c77da406e949b96a2a371dad6",
"to":"338ae489a1174cc291bf85ac321b7f78"
},
{
"from":"ec305494b687482fb3b701529d49b2b0",
"to":"eb1f78c03b544ca9b95f024e0d2f3b64"
},
{
"from":"ad6d6998bc484629a30a2d6c91927991",
"to":"cd4c6810ed7f4427a6e18cb40c1df6c2"
}
]
}{"from":"ad6d6998bc484629a30a2d6c91927991","to":"cd4c6810ed7f4427a6e18cb40c1df6c2"}]}
https://docs.godotengine.org/en/stable/tutorials/i18n/internationalizing_games.html
Internationalizing gamesIntroduction: While indie or niche games usually do not need localization, games targeting a more massive market often require localization. Godot offers many tools to make this process more straig...docs.godotengine.org다음으로, 고도엔진의 로컬라이징 기능과 통합시키기 위해서는 적절한 csv파일로 변환이 가능해야 할 것 같습니다.
CSV 추출 버튼을 눌러 저장한 파일은 다음과 같습니다.
keys,kr,en
8aaf4ae5fa9e4e6a84403b2e74d9dca2,Hi! how are you?,
084f9b6c06ca4e21a87c96dcef870f77,Hello~,
0d7fa6f086874512850389a53d44a79b,Fine, thanks!,
c09e5ee1d0384864a7cb8af7f97ab398,See ya!,
최종적으로, 게임에서 사용될 데이터는 적절한 형태로 해석이 가능한 JSON 포맷이어야 할 것 같습니다.
JSON 추출 버튼을 눌러 저장한 파일은 다음과 같습니다.
{
"9dfeff6bcb6249439025b6532381bc2d":{
"type":"dialogue",
"name":"Smith",
"text":"8aaf4ae5fa9e4e6a84403b2e74d9dca2"
},
"a6ebec34a944486d87e41948e5033680":{
"type":"dialogue",
"name":"James",
"text":"084f9b6c06ca4e21a87c96dcef870f77"
},
"a65e94cf71e948c7a7cf636135bbd8e4":{
"type":"dialogue",
"name":"James",
"text":"0d7fa6f086874512850389a53d44a79b"
},
"c9e78976f6434da493d2277cd0e929f4":{
"type":"dialogue",
"name":"Smith",
"text":"c09e5ee1d0384864a7cb8af7f97ab398"
}
}
마지막으로, 고도엔진에서 적절히 스크립트를 짜서 불러온 데이터를 해석해 주면,
완벽하게 자동화되고 독립적인 방식으로 다이얼로그 관리가 가능해 보입니다..
각 분기 관리나 추가적인 연출에 대한 메타 데이터 등은 현재 만들어 놓은 틀에서 살을 조금씩 붙여 가며 완성이 가능해 보입니다.
다이얼로그 줄 지어 놓은거 탱크맨같네
개고수추
혹시 그래프노드 타이틀 커스텀 어찌하셨는지 여쭤봐도 되겠습니까?