ikemen是目前完成度最高的可联机版Mugen,由日本作者开发,目前还在保持更新

画面元素

画面元素(一)

继续往下看Sysfile,可以看到类似下面这样的文本

image.png

其中TitleBGdef为画面布局区域的开始标志,目前只有两个参数,spr和bgclearcolor,spr指定从下面开始的画面元素使用的SFF文件,如果不指定的话,默认为Files指定的spr,而bgclearcolor指定默认背景颜色

 

TitleBGdef之后便是主界面布局区域

格式为[TitleBG X],其中X为备注文本,也可以省略,直接写成[TitleBG]也可以,备注文本主要是用来在众多文本中了解和区分

 

其中type参数只有三种,normal,anim和parallax,分别是普通元素,动画元素和视差元素,这节只说normal

 

实际上type参数还有一种dummy,但不在教程范围内

 

当type为normal时,则必选参数只有spriteno,指定图像的组号和索引

 

可选参数如下:

 

Start:坐标偏移,默认为0,0

 

Layerno:指定当前元素是否置前,1为置前,0反之,所谓置前的意思可以用PS的图层来理解,当Layerno为1时则绘制在顶层,默认为0,当多个图层时MUGEN会按照Def中元素顺序进行绘制

 

Trans:指定元素透明效果,这是个重要的参数,我们在之后会专门来解释这个参数

 

Mask:指定是否绘制图像色表的第一位色,这是用来透明背景的,因为画面元素默认是绘制第一位色,也就是说默认为0,如果为1的话则不绘制

(此参数会受到Trans的值而改变,具体在Trans的讲解中会提到)

 

Delta:指定元素在镜头移动时移动的水平距离和垂直距离,以像素为单位,这个在画面制作过程中几乎不会用到,而通常在具有缩放的场景中经常用,默认为1,1(与镜头同步)

 

Title:指定图像是否往水平方向或者垂直方向平铺,由两个数字组成,第一个为水平平铺次数,第二个为垂直平铺次数,可以为三种值,第一种为0,表示不平铺,第二种为1,表示全屏平铺,第三种指定为大于1的值,则指定一个固定的平铺次数,默认为0,0

 

Tilespacing:平铺之间的间距,也是由两个数字组成,第一个为水平间距,第二个为垂直间距,只有在Title不为0的时候此参数有效,默认为0,0

 

关于参数的设置方法也很简单,只需要在对应的BG下面添加一个表达式:

参数名=参数值

各个参数的摆放顺序无所谓,而且不分大小写

 

画面元素(二)

 

画面实际上就是由一个个BG绘制出来的,BG的全写就是background

 

上面说了BG Type有三种,我们已经说了普通元素,还有动画组和视差元素,这章先说说视差元素

 

什么是视差,在生活中,经常出现看错了的现象,比如说一张照片,由于角度,以及光度,还有物体的位置的合理配合,或者是个巧合,都可能造成一种视觉错误,这是很常见的幻视,而视差元素就是因此而生,主要就是为了让画面具有视觉错误,从而产生层次感和立体感

 

当Type为Parallax时,则此元素为视差类型,视差类型依旧有一个spriteno参数,指定图像组号和编号,除此之外只有一个专用参数

 

Width:指定与图像具有相同高度的梯形的顶部和底部的宽度,也就是说由两个数字组成,图像就会根据梯形的形状进行扭曲,造成视差效果

 image.png

 

可以看出下图更具有一些说不清楚的奇异感觉,视差是个抽象的东西,最好的理解办法就是手动测试

 

本教程说的是新版的视差元素,旧版参数都已经被弃用

 

普通元素的参数同样适用于视差元素,除了tilespacing

 

在1.1及更高的版本中视差元素还可以指定actionno

 

除此之外视差元素还需要scalestart和scaledelta参数的配合,由于这两个是公有参数,下面说

 

画面元素(三)

 

本章并不说动画元素,而是说说元素的高级的公有参数,这些参数适用所有类型的元素

 

Id:指定元素ID号,用于控制器操作,控制器以后会说,默认为0

 

Positionlink:如果此参数为1,则会将元素的位置与上一个元素的位置紧紧连接,造成连锁反应,则元素移动时,同链接元素会一起移动,为1时则delta参数无效,默认为0

此参数用于大量图像的同步移动

 

Velocity:指定元素每一帧的移动距离,用于将元素动态化,由两个数字组成,第一个为x偏移,第二个为y偏移,默认为0,0

 

Sin.X:为元素进行Sin运动,第一个数字为幅度,第二个数字为周期,第三个数字为初始位置,默认为0,表示刚好从图像中间开始运动

 

Sin.Y:与Sin.X同理,只是在Y轴上进行Sin运动

Sin运动实际就是图像左右来回

 

Maskwindow:指定元素的有效矩形局域,位于区域外的图像将不会显示,由四个参数组成,前两个指定矩形左上角的坐标,后两个指定矩形右下角的坐标,这些坐标相对于屏幕顶部的中点位置(仅1.1及以上版本,1.1以下的请时候window参数,由于参数已经弃用,不在本教程范围)

 

Windowdelta:指定有效矩形区域在相机移动时移动的水平距离和垂直距离,与Delta同理,默认为0,0

 

Scalestart:元素起始比例,默认为1,1

 

Scaledelta:与delta同理,镜头移动时元素移动距离的比例值,默认为0,0

 

Zoomdelta:指定镜头缩放时对元素比例的影响,为0时不改变大小,为1时以镜头缩放比例来缩放元素,默认为1

 

接下来我们要说的是trans参数,以及trans的附属参数alpha

 

Trans参数用于指定图像的透明混合类型,可以为default,none,add,add1,sub,分别是默认值,无透明,颜色聚光,50%颜色聚光,颜色淡化

 

实际上add1已经不被推荐,因为当trans为add时,则又多了个alpha参数

 

Alpha参数由两个数字组成,第一个是颜色数值(src alpha),为0时则全黑,为256时则全彩,add1实际就是alpha为128,128的add

 

第二个是透明淡化数值(dst alpha),两个数字最小都为0,最大为256,默认为256,256

 

画面元素(四)

 

这一章就来说说动画元素,其实动画元素很简单,其主要作用是为了实现动态化,首先要明白一个概念,动画是一张张静态图像快速切换而形成的视觉效果

 

而用来具体定义这个快速变换过程的东西,就是动画元素中的动画组

动画元素是极其常用的

image.png

定义的话依旧是按格式来的,Type设为anim则为动画元素,此时不再有spriteno这个参数了,而是改为了actionno参数,表示动画组的编号,其他参数与普通元素的一致

 

相比其他类型,动画元素则多了一个以[Begin Action X]的格式的定义,称为动画组,也叫动画组,其中X为动作编号

 

动画组是动画元素的核心,我们将重点放在动画组的写法

 

 

首先动画组的编号具有唯一性,也就是说,不允许有两个编号一样的动画组,并且Actionno的编号是什么,就执行对应的动画组

 

一般动画组要放在调用处的下方,推荐将所有动画组放置于布局区域的结尾处

 

动画组的作用范围除了画面,还有人物的AIR文件等等,也是一个综合性的知识

 

首先呢可以看出动画组下面有一行一行的数字,由英文逗号分隔,每一行代表一张图像,每一行最多可以有10个参数

 

前四个参数分别代表组号,索引号,X轴位置和Y轴位置

 

第五个参数为停留时间,一般60为1秒,你还可以设置为-1,但是只能在最后一张图像写-1,这样的话将无限停留

 

前五个参数是必写的,而后两个参数,可以不写

 

第六个参数可以为H,V或者HV,分别是水平翻转,垂直翻转,水平并垂直翻转

 

第七个数字可以为A,A1,S,分别是颜色聚光,50%颜色聚光,颜色淡化

实际上就是trans,或者自行指定alpha数值,格式很简单,比如这样

 

AS255D255,格式就是ASnDm,其中n和m的范围都是0~256

 

其中n是颜色数值,为0时则是纯黑,256时则是全彩,而m是透明淡化数值

 

第八个参数和第九个参数为图像比例,分别是x比例和y比例

 

第十个参数为角度旋转,单位为度

 

最后三个参数只有在1.1及以上的版本才有效

 

除此之外,你还可以在动画组中加上LoopStart,表示循环开始点,比如说这样

image.png

则从loopstart开始将不断循环播放下面的内容

Loopstart上面有内容则上面的内容只播放一次

 

画面元素(五)

 

继续说动画元素,在1.1及更高版本中动画组还支持线性增值

 

支持坐标,透明数值,比例,角度

 

什么叫线性增值呢,假设你面前有一个足球,你眨了一下眼,然后发现它已经变成一栋楼这么大了,这是第一种情况,第二种情况,假设你面前有个足球,这一次它是慢慢地变成一楼栋这么大,而不是直接变成的

 

第二种情况就是线性的体现,线性增值可以让两张图像之间的增值过程体现出来

image.png

左侧有两个动画组,可以看出区别是下面那个动画组中间多了一行Interpolate Offset

 

第一个动画组就是我说的足球的第一种情况,先显示在0,0坐标,然后下一张就直接显示在0,100了

 

而第二种情况就是线性增值,它会从0,0慢慢地往0,100移动

 

线性增值的格式为

 

Interpolate X

 

其中X可以为offset,表示坐标增值,可以为blend,表示alpha增值

还可以为scale和angle,分别表示比例增值和角度增值

 

线性增值仅对上面的一个元素和下面的一个元素生效

当然你也可以在两个元素之间加上多个线性增值,比如这样

image.png

则图像0,0会慢慢地从0,0移动往100,0

 

同时显示比例慢慢地从1,1放大到1.5,1.5

 

多个线性增值的顺序无所谓,而且不分大小写

 

动画组的参数如果不使用时,是留空,逗号依旧要写的,不然的话参数会错误

 

动画组的线性增值会和上一张图像的第五个参数也就是停留时间进行匹配

如果你想让线性增值慢一点,那就加大停留时间,反之减少停留时间

 

最后再说一遍,线性增值仅在1.1及以上的版本有效

 

通过线性增值,可以做出更加精彩的动画,而且还能省去大量的工作

 

Alpha增值时要注意:

image.png

 


你,确定要这么做吗?
正在处理中...