Story文件格式:修订间差异
小 (看你的了) |
小 (→vns文件(vn文件夹下): 格式搞定) |
||
第115行: | 第115行: | ||
*文本内容的英文双引号为\",避免json转义 | *文本内容的英文双引号为\",避免json转义 | ||
*分页符为| | *分页符为| | ||
=== | ==vn文件夹== | ||
''总论说一下 文件 排布'' | |||
===res 文件夹=== | |||
===vns文件=== | |||
''看你的了'' | ''看你的了'' | ||
====代码语句1==== | |||
====代码语句2==== |
2019年6月20日 (四) 22:04的版本
此页面本页面为技术型隐藏页面 |
- 这只是对Story文件的格式分析,并不表示任何人可以曲解剧情。
- 本页面将保持孤立状态,严禁链入/引用!
总论
在apk包中,所有关于剧情的部分都在\assets\app-data\story中,包含多个文件。不同的文件(夹)包含不同的作用。 其中paths决定story界面图像排布,entries记录剧情关卡信息,vn记录剧情文字/情景剧信息
文件夹/文件分析
在main和side文件夹下可以看见entries文件,vn文件和一个csb格式文件.
csb格式文件
- csb格式为cocos2dx的UI布局文件,定义了对应分支的界面布局,比较难以编辑(参考:[FlatBuffer https://google.github.io/flatbuffers/])
entries文件
entries文件为每个剧情的信息,包含解锁条件、需求曲包、前置分支关系等
格式
{"entries": [{故事信息1},{故事信息2},……,{故事信息n}]} |
例子
{ "entries": [{ "minor": 1, "requiredPack": "core", "storyType": "nvl", "clearSongId": "lumia", "clearCharaId": 0 }, { "minor": 2, "requiredPack": "core", "requiredMinor": 1, "storyType": "nvl", "clearSongId": "memoryfactory", "clearCharaId": 0 }, { "minor": 3, "requiredPack": "core", "requiredMinor": 2, "storyType": "nvl", "clearSongId": "pragmatism", "clearCharaId": 0 }, ... ] }
归纳
{ "entries": [{ "minor": MinorID, "requiredPack": "requiredPackID", "requiredMinor": requiredMinorID, "storyType": "type", "clearSongId": "clearSongID", "alternateSuffix": "alternateChar", "requirementAnomalyId": "requirementAnomalyID", "clearCharaId": clearCharaId }, ] }
- MinorID(integer):子剧情的ID,引用的基础。
- requiredPackID(ansistring):该剧情所要求的曲包,请移步曲包信息(packlist)格式。
- requiredMinorID(integer):解锁此子剧情所需通过的前置子剧情ID
- 如果子剧情需要多个前置子剧情,则代码如下
"additionalRequires": ["requiredentriesID-requiredMinorID", "requiredentriesID-requiredMinorID",……]
- requiredentriesID(integer):对应requiredMinorID所隶属的entries.
- type(nvl,vn):本剧情的展现模式,如果为nvl则为普通文本剧情;如果为vn则为视觉小说模式。
…… "storyType": "vn", "storyData": "vnChar", ……
- vnChar(ansistring):当本剧情为vn时所调用的情景剧文件夹(\assets\app-data\story\vn)/资源(\assets\app-data\story\vn\res)的名称。
- clearSongID(ansistring):需要通过的曲目ID
- alternateChar(ansistring):如果剧情后面的编号不是MinorID时所采用的字符串。
- requirementAnomalyID(ansistring):需要迷之解锁的曲目ID
- clearCharaId(integer):解锁时需要采用的搭档,ID编号参见曲包信息(packlist)格式
vn文件(story文件夹下)
格式
{"requiredentriesID-requiredMinorID": {对应故事1},"requiredentriesID-requiredMinorID": {对应故事2},……} |
例子
{ "3-1": { "en": "It’s early evening. Outside, ...”", "ja": "それは夕暮れ、黄昏のころ。\n野外にて、...", "ko": "이른 저녁이다. 바깥은 태양이 발하는 호박빛의 황혼이 쉼 없이 하늘을 물들이고 있지만,\n...\"", "zh-Hans": "夜色将至。屋外,太阳所溢出的琥珀色暮光马不停蹄地想要从天际溜走,...", "zh-Hant": "夜色將至。屋外,太陽所溢出的琥珀色暮光馬不停蹄地想要從天際溜走,..." }, "3-2": { ... }, ... }
归纳
{ "requiredentriesID-requiredMinorID": { "en": "English story", "ja": "日本語の物語", "ko": "한국어 이야기", "zh-Hans": "简体中文的故事", "zh-Hant": "正體中文的故事" }, …… }
由于变量名已经在先前阐明,故不再赘述。但需要注明的是:
- 换行符是\n
- 文本内容的英文双引号为\",避免json转义
- 分页符为|
vn文件夹
总论说一下文件排布
res文件夹
vns文件
看你的了