-
Notifications
You must be signed in to change notification settings - Fork 91
Tutorial_9(zh CN)
MikiraSora edited this page Jan 4, 2024
·
1 revision
此SVG物件主要分成两种,一个是基于.svg文件的物件(SvgImageFilePrefab);另一个则是基于文本内容生成SVG对象的物件(SvgStringPrefab)。
- 拿到SVG内容
- 解析SVG内容,拿到SVG线段+颜色
- 通过物件参数,过滤掉不合适的颜色+对应的线段
- 对于每一组线段以及对应的线段:
- 4.1 通过物件参数,将此颜色映射成对应的轨道类型
- 4.2 通过物件参数,使用不同的CurveInterpolaterFactory生成线段插值器,塞线段数据进插值器,从后者得到一系列直线
- 4.3 将上面一系列直线,生成对应轨道类型的轨道集合
- 输出添加到谱面中显示
SvgImageFilePrefab:
SvgStringPrefab:
SvgPrefab通用参数:
-
ColorSimilar
: 将SVG物件原来的颜色映射到轨道能显示的颜色,那么此参数则表示颜色映射的容错程度。参数值越低,能转换成轨道的内容越少但越精确。 -
CurveInterpolaterFactory
: 生成轨道并输出到编辑器时,需要将SVG物件一系列(曲)线段转换成一条条直线轨道物件。那么此参数选项将会控制编辑器如何生成轨道物件,比如默认实现,就是将SVG物件直接插值,然后直接转换成对应的物件输出;如果你想实现自己自定义的操作(比如将那些点都限制成横坐标都是整数值的),可以自己实现一个包含ICurveInterpolaterFactory接口的插件 -
EnableColorfulLaneSimilar
: 颜色轨道映射时, 是否支持ColorfulLane轨道。 如果不勾选,则只考虑红绿蓝三色轨道。 -
Opacity
: 透明度,仅用于辅助SVG物件显示,并不会影响轨道输出功能。 -
ShowOriginColor
: 是否显示SVG物件颜色,而不是经过颜色映射后的颜色。 -
Tolerance
: 可以简单理解为SVG线段简化程度,值越低就越接近SVG物件原本样子,生成的轨道物件越多 , 生成轨道输出所花费的时间就越久。
SvgStringPrefab参数:
-
TypefaceName
: 字体名字,比如"Consolas" -
FontSize
: 字体大小 , 和 Scale 没啥实质性区别,生成SVG物件时会用到FontSize, 而生成SVG后则拿Scale进行直接缩放
SvgImageFilePrefab参数:
-
SvgFile
: 需要提供正规的.svg文件