开发笔记-魔女兵器-6

上次做了做了一个播放视频的功能,连接:http://blog.csdn.net/u010314160/article/details/79021621,最近配置的时候,策划们反映不能在电脑上播放,无法快速的细致调整(囧,做的时候就问过,只在移动端播放行不行!回答:可以),推到重来,考虑到AVPro Video价格昂贵,就搞了EasyMovieTexture,接入的流程就不详细说了,遇到的一些问题和解决方案,写到前面给出的博客连接地址中。

项目中的引导是使用的NodeCanvas来做的,这段时间也一直都在忙着写相关的指令,项目中对剧情的会话文本采用了一种自动转化的方式

魔女兵器
剧情word文本转化规则说明
这里写图片描述

这里写图片描述

关键词说明:
 word源文件:剧情脚本的word
 ch文件:小节的纯文本txt,一般最后会以小写ch为文件名+ 5位数字编号
 orig文件:小节剧情的程序可读文本,unity将读取分析此文件

word预处理 & ch文件
 word预处理:指word->ch拆分前,应该进行的检查和处理。
 word>ch拆分:指一个章节word源文件转化为多份ch目标文件的过程,该过程中基本上仅仅是对word文本段落的小节部分直接复制粘贴到纯文本txt的过程。

由于拆分应该是个纯粹的复制粘贴过程,所以ch文件内容全部取决于word。如果ch文件基本合格不再重复从work中导出,则直接编辑调整ch文件,否则我们应该去反复修订的是word,而不是ch。

Ch>Orig转化
不识别为speak的分离型特殊开头:
“CH”开头的行: 自动采集为章节信息备注
“背景:”开头的行:自动作为 C_begin 指令, 并将其余信息作为备注

依附型特殊开头
“SE:”或“音效:”开头的行:自动作为PlaySndEff指令,并将其余信息作为备注
“Player”开头的行:根据roleNameList中的映射自动转化,并且会附加头部的roleSpName对该小节内所有Player均生效
“N/A”开头的行:自动识别为C_speakAside,这时默认作为旁白处理。如果该旁白,需要额外显示title, 则需要填写为 N/A@roleSpName( 这时立绘不显示,但人物title显示为roleSpName)

“【”或者”//”或者“==”开通的行:自动作为相关备注信息

人名识别问题
1 在人名的行中,所有中文或英文的括号及其内的文本部分均不视为人名,仅作为备注
2 所有人名
只要是有立绘资源的,都应该是演员对照表的roleNameList里,其语句将作为C_roleSpeak处理;
但是没有立绘资源的,纯龙套,其展现时不调用立绘资源,应该配置为N/A@人名
3要表示人物内心独白且显示该人物时,应该使用 人名@N/A, 这时将高亮人物,但不出现人名框

内容文本识别部分
1 “Player”文本,最终自动替换为玩家角色名

其他特殊问题
1 插入居中图片,有指定命令可实现,
2 特殊文本码,由于有字体和语言级转化问题,不推荐使用普通 宋体无法显示的

经过上面的一系列转化,生成了能在unity中使用的Orig的文件,根据指令将Orig文件生成一系列的行为树,即生成相应的asset文件,考虑到文本过多的问题,额外生成一个 sentence 文件来存储文本,每个节点通过索引来获取文件中的文本内容,若是后面需要国际化,可以直接将这部分文本做国际化处理即可。

猜你喜欢

转载自blog.csdn.net/u010314160/article/details/79246499
今日推荐