mugen游戏制作学院吧 关注:625贴子:834

Mugen背景的制作

只看楼主收藏回复

Mugen背景的制作

 

Misamu K Young(Mugen china)

 

今天介绍的是背景的制作,在一个格斗游戏中,背景也肩负了介绍游戏时代背景以及风格等重要任务.如何设计一个适合游戏的背景对于游戏设计者也是很重要,不过我今天介绍的不是背景的设计,而是背景的"移植".

 

就算你没有心情自己设计或移植背景,你有没有想过让kyo和ryu在你家门口对战?呵呵,看完这篇文章至少你可以做到这点。

附图:Terry和麟在广州体育中心决斗 J


 

一:准备工作

 

首先先介绍大家需要准备的东西,

Mcm  编辑sff文件的工具

Sprmaker 官方提供的编辑sff文件的工具

sff2pcx  sff反编译工具

 

以及你需要的图片.

需要注意的几点:

1, 抓背景需要的图片又比抓人物的图片麻烦一点,需要抓好几幅图来拼图.然后使用图片处理软件连起来.

2, 抓背景图应该分近景和远景来抓.因为在屏幕移动时近景和远景的位移是不一样的.

3, 一些含有动态的部分尽量放在同一个屏幕来抓,因为动画的拼接是稍微麻烦些.

4, 抓出来的图片建议分成这么几部分:近景全图,远景全图,以及各个动画环节.

5, 抓图的时候为了之后对准坐标的方便,先不要对图片进行剪切。尽量保持原图大小

 

其他就和人物抓图没有太大区别,按照上一讲的抓图和处理方法来处理即可.

 

二: sff制作.

使用mcm,新建sff,然后加入图片,同时给图片编号.

根据我的一些经验,我建议在加入图片的时候同时也把图片的座标处理好.

 

近景全图的话,x轴坐标建议设成图片长度的一半,y轴坐标建议设成图片高度再减去240的值.

例如我的一张图片的大小为:752*248,我的坐标就设成376,8.

 

远景全图的处理方法也基本类似.

 

然后已这两张图片为基准,对准其他图片的坐标.

之后再保存该sff文件即可.

 

 

三: 编辑背景def文件.

 

3.1;背景基本参数

 

[Info]

name = "**************";把**换成这个背景的名称.0627以后的版本是必须加引号的.

 

[Camera]

startx = 0             ;镜头起始X轴坐标,默认为0

starty = 0             ;镜头起始Y轴坐标,默认为0

boundleft = -188       ;背景左边的空余。计算方法图片宽度除以2再减去160

boundright = 188       ;右边空余,只是正负号问题。

boundhigh = -16        ;背景上边空余,计算方法图片高度减去240

boundlow = 0           ;下边空余,一般都为0

verticalfollow = .2    ;镜头跟随调坐标更高的人物的程度.(取值范围0-1)

floortension = 0       ;人物垂直方向移动多少时镜头开始上(下)移

tension = 60           ;人物水平移动多少时镜头开始左(右)移(取值范围0-160)

 

[PlayerInfo]

p1startx = -70         ;开局时玩家1的X坐标

p1starty = 0           ;开局时玩家1的Y坐标

p1startz = 0           ;开局时玩家1的Z坐标

p1facing = 1           ;开局时玩家1的朝向(1为向左,-1为向右)

p2startx = 70          ;开局时玩家2的X坐标

p2starty = 0           ;开局时玩家2的Y坐标

p2startz = 0           ;开局时玩家2的Y坐标

p2facing = -1          ;开局时玩家1的朝向

 

leftbound = -1000      ;人物左移的空间(不能改)

rightbound = 1000      ;人物右移的空间(不能改)

topbound = 0           ;人物上移的空间(不能改)

botbound = 0           ;人物下移的空间(不能改)

 

[Scaling]

topz = 0               ;Z轴顶部的缩放坐标(一般不要改)

botz = 50              ;Z轴底部的缩放坐标

topscale = 1           ;Z轴顶部的缩放比例

botscale = 1.2         ;Z轴底部的缩放比例

 

[Bound]

screenleft = 15        ;人物到了背景左端边界时,可超出空间大小。



1楼2006-06-08 16:02回复

    screenright = 15       ;人物到了背景右端边界时,可超出空间大小。

     

    [StageInfo]

    zoffset = 220          ;人物在背景上的底线(也就是立脚点) 

    ;zoffsetlink = BG_ID   ;底线绑定图层id

    autoturn = 1           ;人物是否自动转向

    resetBG = 0            ;每个回合背景是否重启

     

    [Shadow]

    intensity = 128        ;影子的明亮程度,数值范围0(最亮)-256(最暗)

    color = 92,92,92       ;人物影子的颜色RGB值

    yscale = .5            ;影子的Y轴缩放比例

    reflect = 1            ;取1的话表示地面有镜面效果. 

     

    [Music]

    bgmusic = sound/xx.mp3 ;背景音乐(也可以播放cd音轨.例如:要播放cd音轨中第三道的话,就是03.da)

    bgvolume = 0           ;声音大小.0-255

     

    [BGdef]

    spr = stages\bg3.sff   ;背景的SFF文件

    debugbg = 0            ;是否调试为背景(选1的话为调试,速度很慢~)

     

     

    3.2图层参数解释

     

    ;普通图片型        该图层就是一幅图片而已.

     

    ;[BG # ]                ;背景层次号(可自定义)

    ;type = normal          ;背景类型(NORMAL-普通,ANIM-动画,Parallax视差)

    ;spriteno = 0, 0        ;在SFF文件中定义的组号。

    ;id = 0                   ;该图层的id号,在使用bgctrl时候有用)

    ;mask = 0               ;是否清除透明色(默认为0,不清除)

    ;start = 0,0            ;图片开始位置(和图片有关,具体的要自己调整)

    ;delta = 1,1            ;图片的相对镜头的移动速度

    ;trans = none           ;图片透明度变化(根据需要可以有add、sub、add1等)

    ;layerno = 0            ;层次属性,在人物后面是0,人物前面是1

    ;velocity = 0,0         ;镜头不动时的移动速度(默认0,0为不动)

    ;tile = 0,0             ;图片是否重叠出现(默认0,0为不重叠)

    ;tilespacing = 0,0      ;重叠图片之间的间隔

    ;window = 0,0, 319, 239 ;该图层的显示范围(默认为全屏)

    ;windowdelta = 0,0      ;整个背景相对于镜头的移动速度

     

    ;positionlink = 1     ;坐标锁定.如果为1的话,该图层将不受delta参数的影响.

    ;sin.x = 4.5, 6.0, 0  ;x 轴摆动.第一个参数是摆动幅度,第二个参数是频率.

    ;sin.y = 4.5, 6.0, 0  ;y 轴摆动.第一个参数是摆动幅度,第二个参数是频率.

                         ;对所谓的摆动不清楚的,可以看看方可兄的subspace这个背景.

     

                         ;那些扭曲的效果是由很多条 摆动的线组成.

     

     

    ;动画型                该图层是动画型.

    [BG anim]

    type = anim           ;动画的类型为anim

    actionno = 55         ;动画编号

     

    其他的id,mask,start等都和普通类型一样

     

    对应的需要定义一个action来阐述该动画

    [Begin action 55]      ;动画组号(和上面的对应)

    1,0,0,0,20,VH,A1      ;前面两个是图片在SFF文件中的编号。

                        ;第三个是X轴坐标,第4个是Y轴坐标,第五个是停留时间。

                                       ;可以使用AIR可用的参数.例如垂直和水平翻转的V,H

                         ;以及透明和半透明的A和A1

    1,1,0,0,20,V

    1,2,0,0,20,,A

     

     

    ;视差型         

    ;视差型就是给图片一种远近不同的视觉效果.不明白的可以看下面这张抓图.

     

                         ;只使用一张图片,墙壁是普通型,地板就是视差型

     

    [BG parallax]         

    type = parallax              ;视差的类型为parallax

    spriteno = 10, 0      ;图片编号

    xscale = 1,1.75             ;视差造成的梯形上下底的缩放比例各是多少.如果用了这个参数,默认是                         ;图片不重叠,即tile为0,0
    


    2楼2006-06-08 16:02
    回复
      2025-05-22 00:34:48
      广告

      width = 40, 80              ;视差造成的梯形上下底的长度各是多少.如果用了这个参数,默认的tile是1,1 

                           ;而且需要注意的这个参数和xscale只要用一个,不要同时使用.    

      yscalestart = 100    ;当镜头在最底下时的y轴比例.这个数值是百分数,100的话即是100%的意思.

      yscaledelta = 1.2    ;当镜头上移时的y轴的缩放比例.计算方法如下:

                           ;当镜头上移一个单元时,y轴的缩放比例为101.2%,同样

                           ;当镜头上移两个单元时,y轴的缩放比例为102.4%.

      ;除了没有trans透明度这个参数外,其他参数和普通型一样.

       

       

      ;背景参数虽然有不少,不过经常用到的还不算太多,下面的范例中用到的就是一些最常用的基本参数.

       

      [BG 0]                  ;最底层(在def中顺序在前的图层,游戏中更靠后)

      type = normal           ;背景类型为NORMAL

      spriteno = 0,0          ;对应图片编号为0,0

      mask = 0                ;不清除透明色

      start = 0, 0            ;开始坐标为0,0

      delta = .8,.8           ;由于前景和背景的移动速度不一样,这样才有背景才有层次感。

                              ;一般计算方法是背景宽度除以前景的宽度。

       

      [BG 2]

      type  = anim            ;背景类型为动画

      actionno = 1            ;动画编号

      start = 0, 0            ;开始坐标为0,0 

      delta = 1,1             ;相对移动速度

       

       

      [Begin action 1]        ;动画组号(和上面的对应)

      1,0,0,0,20              

      1,1,0,0,20

      1,2,0,0,20

       

       

      3.3 背景控制器

       

      有时候背景比较复杂时,光靠前面这些参数处理起来还是比较麻烦的话,这时候可以考虑能否使用下面这些背景控制器.

      不过现在的版本的控制器只能以时间作为触发条件,功能还不够强大...

       

      ;控制器申明 意味着一个控制器的定义开始,然后下面再添加若干个控制器

      [BGCtrlDef controller]

      looptime = 600              ;重启整个事件的时间(以游戏的桢数来算,600的话就是10个60桢,即相当于游戏中的10秒),默认是-1,不重启.

      ctrlID = 1,2,3        ;接受控制的图层id号.填上在前面定义的id即可,支持多个.

       

      ;控制器

      [BGCtrl my_controller_1]

      type = CONTROLLER_TYPE      ;控制器类型.详细见下面说明

      time = START_TIME, END_TIME, LOOPTIME ;控制器开始作用,停止作用,事件重启的参数.这些参数就是触发事件的事件参数.

      ctrlID = ID_1, ID_2, ...;接受控制的图层id号.填上在前面定义的id即可,支持多个.

       

      ;控制器类型有:

      [BGCtrl]

      type = null             ;什么也不做,在bebug时候有用

       

      [BGCtrl]

      type = Visible         ;显示或不显示某些图层,但要注意只是不显示而已,但还是显示时一样运作.

                           ;举例说如果有个动画型的,在visible的时候,动画还是在继续跑,只是你看不见而已.

      value = 0 or 1

       

      [BGCtrl]

      type = Enabled              ;启动或撤销某些图层().同样如果有个动画型的,在disabled的时候,动画就暂停了,

                           ;而且同样也是看不到的,这是和上边的区别所在.

      value = 0 or 1

       

      [BGCtrl]

      type = VelSet          ;改变图层的速度,这个很好理解就不多说了.

      x = X_VELOCITY        ;x轴速度

      y = Y_VELOCITY         ;y轴速度

       

      [BGCtrl]

      type = VelAdd        ;改变图层的加速度.

      x = X_ACCELERATION       ;x轴加速度

      y = Y_ACCELERATION       ;y轴加速度

       

      [BGCtrl]

      type = PosSet        ;定义图层的坐标

      x = X_POS            ;x轴坐标

      y = Y_POS            ;x轴坐标
      


      3楼2006-06-08 16:02
      回复
        • 165.228.129.*
        单只复制文字的教程很难看明白的~~


        5楼2007-05-04 21:36
        回复
          不晓


          7楼2008-02-22 11:18
          回复
            • 220.200.98.*
            msm我下载了,怎么才能加图片进去啊?


            8楼2008-04-07 23:43
            回复
              • 220.200.98.*
              msm加图片进去看不清/
              要怎样做才看的清/


              9楼2008-04-10 20:45
              回复
                • 219.128.28.*
                有没有教程加图片~
                我们全看不明白
                白费你的时间
                晒气~


                11楼2009-09-06 14:20
                回复
                  2025-05-22 00:28:48
                  广告
                  楼主 工具 能给个吗 找不到那玩野


                  IP属地:广西12楼2011-03-07 00:44
                  回复


                    13楼2011-08-18 20:09
                    回复
                      这些工具在那里下载啊、给个地址呗LZ


                      14楼2012-07-07 17:54
                      回复
                        神贴,


                        IP属地:河南15楼2012-08-06 13:17
                        回复
                          Sprmaker 这玩意在那才能找到。。。我无语,。


                          IP属地:广东17楼2013-06-07 14:36
                          回复
                            我的背景一开始人物站在空中怎么改


                            18楼2013-06-27 11:34
                            回复