地狱之门吧 关注:16,567贴子:162,550

停止重复发明轮子!【游戏修改和mod制作相关】

只看楼主收藏回复

发现一些伙伴投入了大量精力从头开始研究修改文件,并且做着一些实际上许多年前MOW爱好者们已经完成了的工作。为了交流经验提高效率,在此作一个汇总,当然也欢迎提问


IP属地:上海1楼2023-08-09 06:21回复
    以在D盘根目录的SteamLibrary为例,游戏文件的路径为D:\SteamLibrary\steamapps\common\Call to Arms - Gates of Hell
    打开后如下

    第一个binaries,包含二进制文件,游戏本体、编辑器、创意工坊(mod上传工具)在这里面
    第二个localizations,包含各种语言的本地化文件,做汉化,修改显示文本等会用到
    第三个mods,包含你自己手动添加的模组,游戏会自动读取创意工坊内你订阅下载的mod,但是创意工坊下载的在另外的地方,这个文件夹并不会添加文件,它可以用于放置你在其他途径获得的mod
    第四个resource,包含文件资源,后续修改文件,制作mod都主要在这里完成


    IP属地:上海2楼2023-08-09 06:49
    收起回复
      先赞为敬


      IP属地:天津来自Android客户端3楼2023-08-09 07:29
      回复
        进入binaries\x64后如下

        其中
        游戏本身不必说
        _ed.exe是编辑器
        _workshop.exe用于在创意工坊上发布mod
        后者打开以后大致如下

        Create,创建一个内容,打开如下

        在Upload Directory中选择你想要上传的mod的路径,注意mod有相应的格式,可以参考其它在创意工坊中发布的mod。创意工坊的文件夹在SteamLibrary\steamapps\workshop\content,然后找到地狱之门对应的文件夹查看其中的mod。
        Preview Image预览图,选择合适的封面有助于mod传播,注意符合格式
        Tags标签,方便使用者搜索和分类mod,必须要打一个,不过目前看来制作组对地狱之门steam社区的管理基本没有,而且分类奇特,也没有什么作者会用特意使用某种标签,点击左侧框的mod让它进入右侧就可以了
        Title标题,Description描述,这两个放一起说,这里不能写中文和相当多类型的标点符号,否则会发布失败。所以尽量不在mod工具里写大段的描述,发布以后去steam进入创意工坊修改会方便很多,而且可以使用中文
        Visbility可见性,下拉选项公共,隐私和仅好友,依据需求选择。
        记得勾选接受相关协议
        Publish发布,所有项目都填完以后就可以点击发布
        点击发布以后还会有一个类似的窗口弹出,前面标题和描述的输入不合规就会把你拦在这一步,都没有问题就会上传到创意工坊了
        手动tag方便搜索:怎么上传mod/如何上传创意工坊/怎么发布mod/发布mod教程


        IP属地:上海4楼2023-08-09 07:29
        回复


          IP属地:广东来自Android客户端5楼2023-08-09 08:06
          回复
            看来这协议还有标题不是很严格啊


            IP属地:河北来自Android客户端6楼2023-08-09 09:13
            回复
              工具其余按钮不赘述,选择一个你已经发布的mod,点击Edit修改会有一个类似点击创建的界面弹出
              游戏根目录下
              localizations以后介绍新增单位或者修改描述时再讲
              mods,对于一个新下载的游戏来说进入以后是空文件夹,在其中放入你从非创意工坊途径获取的mod,比如你自己制作的mod,游戏会进行读取,注意打开游戏以后再放入这个文件夹的mod要重启游戏才能读取
              自己制作的mod放这里读取测试,同时修改文件如果你不要求获得游戏成就的话最好也以mod的形式放在这,方便管理并且不影响无mod状态的联机

              下面举例说明mod的格式
              mods目录下具体某个mod的文件夹名字是任意取的,随便叫什么自己觉得方便就行,当然最好不要含中文和标点符号

              进入具体的mod文件夹以后,从这里开始,文件的路径应当和前文提到的游戏根目录下的文件路径一样,也就是这下面放如resource,localizations的文件夹,然后依原有文件之序放入你进行修改或者添加的内容
              mod.info表示mod的信息文件,理论上只有这个文件是必须的,你可以创建一个什么都不修改的mod,其内容如下

              name名称,desc描述,会显示为你在游戏中进入额外以后的mod列表中的文字
              min/maxGameVersion最低/高适用游戏版本,可以写具体的版本号,如1.029.0,当mod适用的版本号与你的游戏版本不符时,你就无法加载这个mod。写any代表了任何版本都可用,我为了图方便一般都写这个,但是这并不代表mod是永远可用的,它仍有可能因为后续游戏更新导致报错或闪退
              这也是MOWAS2更新后大量mod失效的原因,那次更新并没有变更什么内容,但是增加了版本号,手动修改无法加载的mod的适配版本后有很大概率可以继续使用
              回到mods文件夹
              你也可以在这里添加一些外部资源,比如使用须知,详细的更新日志,工具应用等
              logo.jpg似乎会被读取为封面,可以用于离线时显示mod封面


              IP属地:上海7楼2023-08-09 10:44
              收起回复
                楼主好人啊,请继续讲解。


                IP属地:四川8楼2023-08-09 10:55
                回复
                  收藏了


                  IP属地:上海来自Android客户端10楼2023-08-09 12:18
                  回复
                    继续继续,支持楼主


                    IP属地:河南来自Android客户端11楼2023-08-09 13:06
                    回复
                      我想知道怎样魔改载具


                      IP属地:江苏来自iPhone客户端12楼2023-08-09 13:30
                      收起回复
                        resource,游戏的资源文件,主要的修改就在这里进行

                        entity实体,所有游戏过程中展现的内容的基础,包含各种武器、载具、人物、地形环境等的模型实体,还有一些用于实现效果的特殊实体,实际上也包含一些贴图纹理
                        interface界面,包含UI界面、光标、按钮、兵种头像等,主要是图片内容,同时还有按钮和UI的工作逻辑,在MOWAS2中我好像见过调整了UI布局的mod,但是在地狱之门中还没有
                        map地图,包含战役、对战、征服等地图,编辑器保存和修改的地图就在这里
                        texture贴图,包含大部分的贴图纹理,各自载具,人物皮肤的图像等
                        gamelogic游戏逻辑,修改游戏时最常用到的压缩包,后续会详细介绍,注意实际路径中并不存在叫gamelogic的文件夹
                        music音乐,sound音效,video视频,不是特化mod几乎不会用到
                        游戏会读取这里所有的文件,不同的压缩包有同名文件夹不影响其中不同的具体文件的读取
                        注意实际读取的路径是对应的文件夹顺序,压缩包并不会影响读取的成功与否,影不影响速度我不能确定
                        比如生效的是resource/entity/-vehicle或resource/set,而压缩包是不必要的,完全可以把entity给压缩了虽然里已经都是压缩文件,并且压缩包叫名字什么也不会影响读取
                        但是如果同时在压缩包内部和外部有同名文件似乎会优先读取压缩包外的文件,也不排除在二进制文件中指明了读取的优先级导致不同文件夹的压缩包有不同的效果
                        总而言之,尽量不要在压缩包内外有同一文件夹路径下的同名文件,导致你不能推断自己的修改是否生效了


                        IP属地:上海14楼2023-08-09 15:13
                        收起回复
                          gamelogic.pak大多数修改都需要用到这个压缩包里的文件,建议解压以后再修改,在压缩包内直接修改有可能是可以生效的,但是也有会遇到点击保存但是实际上并没有保存修改的文件的问题
                          可以直接在resource目录下解压,然后把这个压缩包剪切到其他地方去作备份

                          properties属性,包含人物的骨骼动画以及大量实体会引用到的特性如载具血量,物品栏大小,补给类型等
                          script脚本,包含对战、征服中ai的出兵逻辑和作战脚本
                          set设置,包含武器和弹药的属性数据,征服科技树构成,实体间的互动逻辑等,是这几个内容中最关键也最常用的
                          shader着色器,可以改变游戏色调但是修改这个很难调出阳间效果
                          注意没有叫gamelogic的文件夹,在自己的mod中也不需要增加gamelogic.pak来包括这些文件,直接resource文件夹下包含set等文件夹就行


                          IP属地:上海16楼2023-08-09 16:03
                          回复
                            先看properties

                            animation动画,包含人物骨骼动画,比如各种火炮的转向装填动作,上下载具的动作
                            human_fsm,我不确定fsm是指什么,但是其包含的内容是人类模型在各种状态时调用的动作和这种状态时添加的标签,比如bazooka_stand.inc站立拿着巴祖卡时,board.inc上下车时,die.inc死亡时,inventory.inc使用物品栏(捡起或放下物品)时。

                            注意编辑器中开启显示tag时的标签和在文件修改中出现的tag是不一定相同的,尽管它们可能都叫tag。在这里大概率是不相同的,打开其中的die.inc,可以看到在许多状态下比如state "stand_knock_down"(站立时被击倒),会在这个状态下产生{tag "knock-down"}和{tag "up"},在编辑器中开启显示tag后你可以看到人物被击倒时头上显示的"knock-down",但是没有up,推测从是别的途径添加的

                            seletcion选择,包含你选中单位时地面上显示的选中框大小形态颜色等,其中.ebm文件表示这种选择框使用的贴图类型、颜色、大小,.inc文件中,{visible 0}可以调整选中框的可见性,Sprite指定了某种单位使用哪个.ebm文件进而指定贴图,还有控制选中框大小和旋转角度的乘子,{ground}显示在地表,{dynamic}跟随实体动态刷新等

                            .inc和.ext和.ebm和一些没有后缀的文件等都可以通过文本读取软件打开,notepad、记事本等,这里我使用的是记事本
                            .inc和.ext以及在实体中的.def文件等等其他文件在某种程度上没有区别,时常可以混用。通常来说,.inc表示inclusion/including,它被其他文件引用而产生作用,并且也可以引用其他文件,其自身也可能有对某些属性的定义,比如前述选中框的可见性;.ext表示extension扩展文件,通常是对具体属性的描述,由其他文件引用,并且不会进一步引用其他文件,虽然理论上可以,比如载具的装甲数值,在MOW和MOWAS2中是写在载具的.def内的,地狱之门将其单独分出来写
                            shadow阴影,但是全部是空文件,可能只起占位作用,实际内容编码在二进制文件中
                            abm.inc包含各种单位移动时的扩圈和精度模板的定义,如没有垂直稳定器的的坦克、有垂直稳定器的坦克、无炮塔坦歼等
                            airborne.inc包含飞机所需的基础属性和并且引用了它们共同使用的大部分文件,所有具体的飞机.def都引用这个文件,节省对飞机这种类型所需的特性的定义文本量,其他单位也是同理


                            IP属地:上海18楼2023-08-09 18:21
                            回复