cs起源吧 关注:84,947贴子:1,798,031
  • 7回复贴,共1

CS起源不完全修改教程第四弹 - Loading界面修改

只看楼主收藏回复

CS起源不完全修改教程第三弹 - VGUI颜色修改
https://tieba.baidu.com/p/6656716203
教程2楼


IP属地:山东1楼2020-05-04 21:22回复
    上一弹中我们一起讨论了VGUI界面颜色修改,本来这一弹打算说说VGUI控件、字体等,但是因为Source引擎对中文字体支持很差,说的再细致也没有什么实际效果,所以就放弃了,这一弹我们一起修改一下游戏Loading界面,在修改过程中给大家演示下如何在res文件中添加控件。
    1.Loading界面介绍:

    Loading界面的res文件存放在hl2\resource文件夹下,以loading开头:

    这些文件对应正常的载入界面、不同错误信息的载入界面、VAC载入界面等等。我们以常规界面和VAC界面为例,跟大家分享一下VGUI控件参数的含义和修改方法,其他界面的修改方式相同。
    提取hl2\resource文件夹下loadingdialognobanner.res,放到followme\resource文件夹里。这个文件分别对应常规的载入界面,有VAC图标的载入界面是另一个,后续会提到。
    打开loadingdialognobanner.res,我们先看一下整个文件的结构。在本文件中,每个控件都是独立的,我们只需要知道每个控件对应什么内容,再修改其中的参数就可以了。这也方便我们添加自己的控件。比如一第一个控件为例:

    其中最上边的"LoadingDialog"是控件名,和fieldName中的内容相同,但是在这里的含义,是告诉VGUI系统,要生成一个"LoadingDialog"控件,控件的各项参数在两个大括号中。我们看下基本控件参数:
    "控件名"
    {
    "ControlName" -----控件类型
    "fieldName" -----控件名
    "xpos" -----左上角x坐标
    "ypos" -----左上角y坐标
    "wide" -----控件宽度
    "tall" -----控件高度
    "autoResize" -----自动调整大小
    "pinCorner" -----不清楚有什么用,可选值为0-3,0为左上,1为右上,2为左下,3为右下
    "visible" -----可见
    "enabled" -----启用
    "tabPosition" -----焦点顺序
    }
    对于其他控件来书,还有一些特有参数(常用的)。
    Label控件:
    labelText -----文字内容
    textAlignment -----对齐方式,可选值为north-west, north, north-east,west, center, east, south-west, south and south-east.
    Brighttext和dulltext -----字体明暗,二者选其一即可,0为无效,1为有效
    font -----在主题资源文件中Fonts部分定义的名字
    Button控件:
    labelText -----按钮内容
    textAlignment -----对齐方式,同上
    command -----命令
    default -----默认按钮
    sound_armed -----鼠标滑过的声音
    sound_depressed -----鼠标按下的声音
    sound_released -----鼠标抬起的声音
    ImagePanel控件
    scaleImage -----自动缩放图片
    scaleAmount -----缩放倍数
    tileImage -----平铺
    tileHorizontally -----水平平铺
    tileVertically -----垂直平铺
    image -----图像vmt文件位置,默认为materials/vgui文件夹下
    fillcolor -----背景颜色RGBA值(如果图片是透明的,能看到背景颜色)
    还有很多控件并不常用,所以也就不介绍了,下面我们一起来修改。


    IP属地:山东2楼2020-05-04 21:24
    回复
      2.增加一个自己的图片
      打开loadingdialognobanner.res,在最上边的"LoadingDialog"小节中,给高度增加100,修改为212。

      复制整个"LoadingDialog"小节并粘贴在它的下边,修改控件名为MyImage,控件类型为ImagePanel,x坐标为20,y坐标为20,宽度为340,高度为100,并在最后增加两行参数并保存文件:
      "scaleImage" "1"
      "image" "MyImage"

      接下来我们制作vmt文件,名为MyImage.vmt,放到followme\materials\vgui下边,再制作对应的vtf图片,我们添加的ImagePanel控件尺寸为340*200,因此vtf图片尺寸最好和这个一样,否则会自动缩放变形。vmt文件内容如下:
      "UnlitGeneric"
      {
      "$basetexture""vgui/MyImage"
      "$nolod"1
      }

      实际上到了这里,我们并没有完全修改好,因为原来的控件位置我们并没有改变,这里只是修改了一下主体框架的大小,在上边增加一个图片框而已,我们先进入游戏预览一下效果,才能知道还需要修改什么,哪里还不完美。

      效果已经出来了,图片有点靠上,看来y坐标设置为20有些少了,应该设置为34,下边我们调整一下这些控件的坐标值。这里我们不需要改动控件的x坐标,仅仅给其他控件的y坐标增加100(自己增加的这个图片的宽度)。修改完的预览效果如下:

      这里我们偷点懒,直接将刚才改好的文件(loadingdialognobanner.res)复制一份并改名为loadingdialogvac.res,这样,提示VAC的界面也修改成我们自己的了。当然你也可以自己修改loadingdialogvac.res,使两个界面不同,这里不细说了。


      IP属地:山东3楼2020-05-04 21:27
      回复
        3.修改Loading界面为全屏背景图
        有了上边的基础,再来修改就比较简单了。为了让大家了解游戏修改的过程,我将和大家一步一步来修改这个界面,有些走弯路的地方也会写出来。
        打开loadingdialognobanner.res,将LoadingDialog的x坐标和y坐标都改为0,将这个框架移到游戏左上角。

        竟然没有变化,至于为什么是这样我也解释不清楚,可能是因为VGUI系统中的这行代码:

        我们将x坐标设置为0后,VGUI系统认为没有设置值,VGUI系统自动将Frame的坐标居中设置。如果有哪位研究出来了,希望能告知大家。
        不过我们可以强制其全屏,将LoadingDialog的宽和高全部设置为f0,即自适应全屏:

        保存预览一下:

        现在我们要的效果出来了。
        下面我们要添加一个全屏的图片框,作为loading界面的背景,将下边的代码添加到LoadingDialog的上边(其实添加在任何位置都可以,这里是为了方便):
        "MyBg"
        {
        "ControlName" "ImagePanel"
        "fieldName" " MyBg"
        "xpos" "0"
        "ypos" "0"
        "zpos" "-10"
        "wide" "f0"
        "tall" "f0"
        "visible" "1"
        "enabled" "1"
        "scaleImage" "1"
        "autoResize" "0"
        "pinCorner" "0"
        "image" "MyBg"
        }
        这里增加了一个参数"zpos" "-10",目的是让这个图片框置于所有空间之下,因为VGUI系统默认所有控件都必须在主体框架(frame控件)之上,所以这个图片框很自然地将整个主体覆盖掉了。

        保存,我们进游戏看一下效果:

        图片框成功覆盖掉了主体。下面我们制作一个背景图片,命名为MyBg,放到followme\materials\vgui下边,再次进入游戏预览一下:

        这就对啦,我美美的奶挺姐出来啦!
        不过之前我们添加的个人图片并不和谐,我们制作一个半透明的(具体方法见第一弹补充),并且给MyImage增加一个"zpos" "-5"的参数,将这个图片置于进度条下边,然后将进度条连同图片一起挪到屏幕下边。
        "MyImage"
        {
        "ControlName" "ImagePanel"
        "fieldName" "MyImage"
        "xpos" "0"
        "ypos" "r100"
        "zpos" "-5"
        "wide" "f0"
        "tall" "100"
        "autoResize" "0"
        "pinCorner" "0"
        "visible" "1"
        "enabled" "1"
        "tabPosition" "0"
        "scaleImage" "1"
        "image" "MyImage"
        }
        这里y坐标填写的值是r100,意思是从下往上数100(正好是图片框的宽度),x坐标设置为0,宽度设置为f0自适应,高度100:

        其他控件也将x坐标和y坐标搬到下边,比如:
        InfoLabel 的x、y坐标为r362、r80;
        progress 的x、y坐标为r362、r40;
        CancelButton 的x、y坐标为r92、r40;
        进游戏看一下:

        大工告成。
        当然如果大家愿意的话,还可以再添加一个ImagePanel,把你喜欢的图片加进来。
        不过别忘了,这里还是要偷下懒,将改好的文件(loadingdialognobanner.res)复制一份并改名为loadingdialogvac.res,省的VAC提示界面又变成了默认的。当然如果大家喜欢的话,可以按照教程开头的介绍,提取每一个loading错误提示界面,改成全屏的。
        这一弹教程就到这里吧。


        IP属地:山东4楼2020-05-04 21:34
        回复
          楼主太厉害了,请问cs起源怎么修改生命,护甲,子弹,还有回合时间的颜色和大小,是不是在clientscheme.res文件中,但是不知道修改哪个地方才能修改大小和颜色,有FgColor,BgColor等等


          IP属地:湖北5楼2020-05-06 20:19
          收起回复
            已转


            IP属地:河北7楼2020-05-20 09:57
            回复