钢铁雄心4 GUI教程 P5进度条
前几p主要介绍的是交互型界面,这一次包括后续的将会介绍gui的另一大应用,即描述数值(通常是某一个变量)的变化情况,其中进度条是一大应用,这一期将会详细介绍伪进度条和进度条的工作原理

首先来看一下伪进度条,为什么说是“伪”进度条呢,因为它实现进度增长的实质是切换帧显示,在制作一些较为简单的变量变化时很好用

素材准备:
以原版美国国会和苏联偏执度为例子,先来看一下它俩的图片素材吧:
首先是美国国会
可以看见它本质是一个多帧长图,通过切换帧显示模拟进度变化

alpha通道则让它能显示出半圆形的形状
注:在dds文件中,alpha通道可以存储图像的“透明度”,游戏的渲染文件会根据alpha通道进行渲染,当alpha为黑色,即完全透明,这部分的rgb内容不会显示;白色则非透明,rbg内容完全显示

然后是苏联偏执度


可以看见原理都是类似的

前端设计
由于可以直接参考原版就直接略过
后端编写
先前介绍过,通过变量计算转换为帧数,切换帧实现进度条增长/减少


好的那么本期教程到此结束

没有那么简单,让我们做一个设想,如果我们需要一个精确1%的数值变化应该怎么处理,显然伪进度条已经不能满足需求了,因为如果继续使用伪进度条意味着制作100帧的进度条长图,这显然是反人类的
接下来将介绍真·进度条
素材准备
比较反常,在介绍素材之前我们需要引入一个新的图像注册格式:

原版游戏自带的进度条着色器可以帮助我们完成进度条图像的注册,它的工作原理是,设定背景图像(空的进度条)与填充图像(填满的进度条),根据frame实时渲染
由于在scripted gui中,后端编写可以令frame为某个我们设置的变量,因此可以实现精确至变量值,从而让游戏渲染生成一个进度条
color/colortwo为纯色填充,四个数据分别为R G B alpha,每个值最大为1最小为0
steps为填充步数,决定多少帧时进度条被完全覆盖,默认值100(即frame = 100 时进度条被填充满)

了解这些后我们就可以准备我们需要的图像了
特别简单,只需要两份图像,一份未填充,一份填充满



前端设计
进度条通常用于决议gui,因此我们设计简单一点,没有背景,只有一个进度条,一个显示数值的文本框

后端编写
依旧从简,窗口类型改为决议窗口,将进度条帧数设置为我们定义的变量
同时在决议类型里引用我们的窗口


然后通过决议设置flag配合on action,令我们的变量每日增或减



最后进入游戏测试:


好的这期教程到此结束…………
才怪!如果你真的只把“进度条”作为进度条使用,那可能你制作的GUI只能停留在原版基础
想要制作出“炫酷”的GUI,我们需要理解深层次的东西,progressbartype(进度条类图像),它本质是一种游戏中实时的图像渲染,将A图像,填充成B图像
它不只可以用作进度条,它可以用作展示任意两张图像交替时的效果变化
以下以TNO对于进度条的使用为例
为什么又是TNO?
因为它带来的改革不只是“阴间ui”,还有许多令你瞠目结舌的奇思妙想

SAMPLE 1
用图标代替传统条形进度条:


游戏内效果:

SAMPLE 2
利用进度条实现图像变更的效果:
素材准备
注,中间的分界条单独做一个icon

前端设计

后端编写
注,此处将分界条的x坐标在properties中关联变量,以此模拟分界条的移动


游戏测试


又一个项目完结了,相信你的gui制作水平应该蒸蒸日上了,那么敬请期待更多花哨的GUI讲解吧!

