查看: 5949|回复: 45

[原创] 终极引擎,可以延续这个游戏寿命20年

  [复制链接]
发表于 2025-4-3 19:39 | 显示全部楼层 |阅读模式
本帖最后由 红骑士Sakura 于 2025-4-4 16:53 编辑

前言:标题是开玩笑的,但是我觉得最好的引擎应该是可以让玩家自己DIY的。
自从FM2020之后SI把引擎从json格式改成了jsb格式,加大了修改的难度让我这种英语编程都不懂的人没办法进行修改。但是终于今年在AI的帮助下成功的把引擎改回了所有人都看得懂的格式,并且我还给每一行加上了注释,经过测试能够运行生效。现在进行开源。使用方法是解压simatch文件夹,直接放在X:\SteamLibrary\steamapps\common\Football Manager 2024\data 文件夹之下,也就是原来simatch.fmf文件所在的位置(记得把原文件改个名)。本次开源共三个地方momentum_weightings_data,qme_stat_relevant_attribute_data,physical_constraints。前两个我改了一些发现没什么作用,看看有没有大神能发现怎么起作用,最后一个是物理引擎主要是这个。巴西引擎改的评分和换人引擎已经被他们开源了,不过我没有整合进来。
json格式的文件可以直接用记事本打开,看不懂的可以直接复制去问AI。
下载地址:链接: https://pan.baidu.com/s/16VNJqVE4tOf7iltRCk9KCg?pwd=6666  

下面是物理引擎的具体内容:
{
    "version_array": [
        {
            "min_me_version": 2037,
            "speed_scaler": 10000, // 速度缩放因子,用于整体调整球员各种移动速度的系数
            "acceleration_scaler": 10000, // 加速度缩放因子,用于调整球员加速的程度,影响球员从静止到移动的速度变化

            // 速度相关参数
            "very_slow_walk_speed": 4470, // 非常慢速步行速度,极其缓慢的步行速度
            "slow_walk_speed": 8940, // 慢速步行速度,球员缓慢步行时的速度
            "walk_speed": 13410, // 步行速度,球员正常步行的速度
            "fast_walk_speed": 17880, // 快速步行速度,即球员快速步行时的速度
            "slow_jog_speed": 23000, // 慢速慢跑速度,较慢的慢跑速度
            "jog_speed": 26820, // 慢跑速度,球员正常慢跑的移动速度
            "moderate_jog_speed": 31290, // 适度慢跑速度,比普通慢跑稍快或稍慢的速度
            "fast_jog_speed": 35760, // 快速慢跑速度,代表球员快速慢跑时的移动速度
            "run_speed": 44704, // 奔跑速度,球员正常奔跑时的移动速度
            "sprint_speed": 67056, // 冲刺速度,球员全力冲刺时的移动速度
            "top_speed": 89408, // 最高速度,球员实际能达到的最大移动速度
            "base_top_speed": 78000, // 基础最高速度,是球员在理想情况下能达到的最高移动速度的基础值
            "theoretical_max_running_speed": 122700, // 理论最大奔跑速度,是球员在理论上能达到的最快奔跑速度
            "theoretical_min_diving_speed": 50000, // 理论最小飞身速度,指飞身动作时理论上能达到的最小速度
            "theoretical_max_diving_speed": 75000, // 理论最大飞身速度,指飞身动作时理论上能达到的最大速度
            "basic_header_speed": 20000,  // 基本头球速度,指球员头球时球的初始速度,推测值,介于常见头球速度范围
            "soft_kick_speed": 20000,  // 轻柔踢球速度,球员轻柔踢球时球的飞行速度
            "soft_to_medium_kick_speed": 90000,  // 轻柔到中等踢球速度,介于轻柔与中等力量之间的踢球速度
            "medium_kick_speed": 130000,  // 中等踢球速度,球员以中等力量踢球时球的速度
            "medium_to_moderate_kick_speed": 180000,  // 中等到适度踢球速度,介于中等和适度力量之间的踢球速度
            "moderate_kick_speed": 220000,  // 适度踢球速度,适中力量的踢球速度
            "quite_hard_kick_speed": 270000,  // 相当大力的踢球速度,比大力踢球稍弱一点的力量对应的球速
            "hard_kick_speed": 310000, // 大力踢球速度,是球员大力踢球时球的飞行速度
            "very_hard_kick_speed": 350000, // 非常大力的踢球速度,比相当大力踢球更强劲的力量对应的球速

            // 最小延迟相关参数
            "min_delay_for_diving_header": 2000, // 飞身头球的最小延迟,限制球员飞身头球动作的使用频率
            "min_delay_for_normal_header": 1000, // 正常头球的最小延迟,限制球员正常头球动作的频率
            "min_delay_for_slide_tackle_do": 1500, // 主动滑铲动作的最小延迟,防止球员过度使用滑铲动作
            "min_delay_for_slide_tackle_receive": 750, // 被滑铲动作的最小延迟,确定球员被滑铲后再次行动的最短时间
            "min_delay_for_ball_lunge_do": 1500, // 主动扑球动作的最小延迟时间,限制球员主动扑向球的动作频率
            "min_delay_for_ball_lunge_receive": 750, // 被扑球动作的最小延迟时间,规定球员在被对方扑球后的反应间隔
            "min_delay_for_block_tackle_do": 500, // 主动阻挡铲球动作的最小延迟,控制球员主动进行阻挡铲球的时间间隔
            "min_delay_for_block_tackle_receive": 750, // 被阻挡铲球动作的最小延迟,是球员被对方阻挡铲球后再次行动的等待时间
            "min_delay_for_deflect_ball_do": 250, // 主动挡球动作的最小延迟,约束球员主动挡球的频率
            "min_delay_for_deflect_ball_receive": 500, // 被挡球动作的最小延迟,确定球员被球挡后再次做出动作的最短时间
            "min_delay_for_shoulder_charge_do": 500, // 主动肩部冲撞动作的最小延迟,限制肩部冲撞动作的频率
            "min_delay_for_shoulder_charge_receive": 2000, // 被肩部冲撞动作的最小延迟,是球员被肩部冲撞后的反应间隔
            "min_delay_for_force_opponent_to_lose_ball_do": 500, // 主动迫使对手丢球动作的最小延迟,防止球员频繁使用迫使对手丢球的动作
            "min_delay_for_force_opponent_to_lose_ball_receive": 500, // 被迫使丢球动作的最小延迟,规定球员在被对方迫使丢球后的恢复时间
            "min_delay_for_shirt_tug_do": 0, // 主动拉扯球衣动作的最小延迟,控制拉扯球衣动作的使用频率
            "min_delay_for_shirt_tug_receive": 500, // 被拉扯球衣动作的最小延迟,规定球员在被拉扯球衣后的恢复时间
            "min_delay_for_obstruct_do": 1000, // 主动阻挡动作的最小延迟,控制球员主动阻挡其他球员的时间间隔
            "min_delay_for_obstruct_receive": 2000, // 被阻挡动作的最小延迟,是球员被阻挡后再次行动的等待时间
            "min_delay_for_two_footed_tackle_do": 1500, // 主动双脚铲球动作的最小延迟,限制双脚铲球这种较为危险动作的使用频率
            "min_delay_for_two_footed_tackle_receive": 3000, // 被双脚铲球动作的最小延迟,规定球员在被双脚铲球后的反应间隔
            "min_delay_for_trip_do": 750, // 主动绊倒动作的最小延迟,控制绊倒对手动作的使用频率
            "min_delay_for_trip_receive": 3000, // 被绊倒动作的最小延迟,是球员被绊倒后的恢复时间
            "min_delay_for_foot_up_in_tackle_do": 1000, // 铲球时抬脚动作的主动最小延迟,控制铲球时抬脚动作的间隔
            "min_delay_for_foot_up_in_tackle_receive": 3000, // 铲球时抬脚动作的被动最小延迟,是球员在被对方铲球且对方抬脚时的反应延迟
            "min_delay_for_push_opponent_do": 500, // 主动推搡动作的最小延迟,防止球员频繁推搡对手
            "min_delay_for_push_opponen_receive": 2000, // 被推搡动作的最小延迟,是球员被推搡后的反应延迟
            "min_delay_for_violent_act_do": 500, // 主动暴力动作的最小延迟,防止球员频繁做出暴力动作
            "min_delay_for_violent_act_receive": 1000, // 被暴力动作的最小延迟,是球员在遭受暴力动作后的恢复时间
            "min_delay_for_celebrating_a_goal": 3000, // 庆祝进球的最小延迟,防止球员在进球后过早或过于频繁地庆祝
            "min_delay_keeper_save_intentionally_drop_ball": 500, // 守门员故意放下球的最小延迟,防止守门员频繁故意放球
            "min_delay_keeper_save_dive_and_hold_ball": 2000, // 守门员飞身扑救并抱住球的最小延迟,限制守门员这种动作的使用频率
            "min_delay_keeper_save_dive_but_not_held": 750, // 守门员飞身扑救但未抱住球的最小延迟,确定守门员在这种情况下再次行动的等待时间
            "min_delay_keeper_save_no_dive_hold_ball": 500, // 守门员未飞身扑救但抱住球的最小延迟,控制守门员非飞身扑救抱球动作的频率
            "min_delay_keeper_save_no_dive_not_held": 500, // 守门员未飞身扑救且未抱住球的最小延迟,规定守门员在这种情况后的反应间隔
            "min_delay_keeper_drop_ball_for_distribution": 1000, // 守门员放下球进行分发的最小延迟,控制守门员放下球的频率
            "min_delay_keeper_save_with_outreached_foot": 1000,  // 守门员用伸脚扑救的最小延迟,限制守门员伸脚扑救动作的使用频率,推测值
            "min_delay_for_getting_injured": 2000, // 受伤的最小延迟,避免球员短时间内频繁受伤
            "min_extra_delay_for_falling_down_before_injury": 4000, // 受伤前摔倒的额外最小延迟,增加受伤前摔倒动作的时间间隔
            "min_delay_for_player_stop_to_avoid_collision": 500, // 球员为避免碰撞而停止的最小延迟,确保球员在可能发生碰撞时合理停止

            // 理论极限相关参数
            "theoretical_min_acceleration": 2500, // 理论最小加速度,是球员能达到的最小加速能力
            "theoretical_max_acceleration": 89408, // 理论最大加速度,是球员在理论上能达到的最大加速能力
            "theoretical_min_diving_acceleration": 25000, // 理论最小飞身加速度,是飞身动作时理论上的最小加速能力
            "theoretical_max_diving_acceleration": 89408, // 理论最大飞身加速度,是守门员或球员飞身动作时理论上的最大加速能力,应始终与最高速度相同
            "theoretical_min_deceleration": 15000, // 理论最小减速度,代表球员能达到的最小减速能力
            "theoretical_max_deceleration": 44704, // 理论最大减速度,代表球员理论上能达到的最大减速能力,应始终为最高速度的一半
            "theoretical_max_turning_rate": 180, // 理论最大转弯速率,限制球员转弯的最大速度
            "theoretical_max_potential_direction_change_walk": 192, // 理论上步行时最大可能的方向改变量,规定球员在步行时改变方向的最大幅度
            "theoretical_min_potential_direction_change_walk": 52, // 理论上步行时最小可能的方向改变量,限制球员在步行时最少能改变的方向幅度
            "theoretical_max_potential_direction_change_jog": 104, // 理论上慢跑时最大可能的方向改变量,限制球员在慢跑状态下改变方向的程度
            "theoretical_min_potential_direction_change_jog": 15, // 理论上慢跑时最小可能的方向改变量,规定球员在慢跑状态下最少能改变的方向幅度
            "theoretical_max_potential_direction_change_run": 53, // 理论上奔跑时最大可能的方向改变量,约束球员在奔跑时改变方向的能力
            "theoretical_min_potential_direction_change_run": 15 // 理论上奔跑时最小可能的方向改变量,约束球员在奔跑时最少能改变的方向程度
        }
    ]
}
-------------------------------------------------------------------------------
其实这个引擎的数据是用了2020引擎的替换了乱码,但是最主要的不是具体多少,而是你可以自己调整。每1000是1s。
-------------------------------------------------------------------------------
为什么说可以延寿20年:这个物理引擎文件physical_constraints.json是适用于绝大部分FM版本的,可以通过替换老版本的physical_constraints来实现给老游戏换新引擎的效果,比如20的最后一个版本号是2037,那么就把 min_me_version": 20234,这里改成2037保存就可以了,21-23的没测试大概是20214-20234之类的数字,20版本之前的大概是2037这种格式的。
-----------------------------------
4.3发的那个版本漏了几条参数,4.4重新更新补了同时吧每一条的作用补的更详细一点,这个引擎直接用会觉得速度快因为里面有些参数是没有使用原24引擎的,需要自己手动diy。
发表于 2025-4-4 14:28 | 显示全部楼层
如果我想最大幅度加强边锋内切爆射(罗本那种)的出现及入球概率,该设哪些参数?
 楼主| 发表于 2025-4-4 13:17 | 显示全部楼层
bbstimlee 发表于 2025-4-3 23:56
大佬 是吧解压的一堆文件放到data文件夹里吗?我放进去了之后感觉球速奇快,比赛时各种对捅...

用的是2020的参数所以和2024原版引擎还是有不同的,主要还是说可以自己改不是说拿来直接用
 楼主| 发表于 2025-4-4 16:57 | 显示全部楼层
alansmithlzy 发表于 2025-4-4 14:28
如果我想最大幅度加强边锋内切爆射(罗本那种)的出现及入球概率,该设哪些参数?

            "theoretical_max_potential_direction_change_run": 53, // 理论上奔跑时最大可能的方向改变量,约束球员在奔跑时改变方向的能力
            "theoretical_min_potential_direction_change_run": 15 // 理论上奔跑时最小可能的方向改变量,约束球员在奔跑时最少能改变的方向程度
            "theoretical_min_deceleration": 15000, // 理论最小减速度,代表球员能达到的最小减速能力
            "theoretical_max_deceleration": 44704, // 理论最大减速度,代表球员理论上能达到的最大减速能力,应始终为最高速度的一半
            "theoretical_max_turning_rate": 180, // 理论最大转弯速率,限制球员转弯的最大速度
            "hard_kick_speed": 310000, // 大力踢球速度,是球员大力踢球时球的飞行速度
            "very_hard_kick_speed": 350000, // 非常大力的踢球速度,比相当大力踢球更强劲的力量对应的球速
            "run_speed": 44704, // 奔跑速度,球员正常奔跑时的移动速度
            "sprint_speed": 67056, // 冲刺速度,球员全力冲刺时的移动速度
            "top_speed": 89408, // 最高速度,球员实际能达到的最大移动速度
以及所有的防守动作
发表于 2025-4-3 20:40 | 显示全部楼层
神贴留名,感谢楼主的布道!
发表于 2025-4-3 20:48 | 显示全部楼层
非常感谢楼主666666666
发表于 2025-4-3 21:19 | 显示全部楼层
这个是改过的最新引擎?
发表于 2025-4-3 21:37 | 显示全部楼层
场场大比分啊超爽
发表于 2025-4-3 21:47 | 显示全部楼层
都复制进data文件夹里了,但没什么需要替换嘛
发表于 2025-4-3 22:07 | 显示全部楼层
楼主辛苦啦,就怕有些权重数据的底层逻辑咱们不清楚也改不了啊,就比如版本答案前锋就是190CM+80KG模版
发表于 2025-4-3 23:20 | 显示全部楼层
請問紅神,解壓縮這個simatch文件夾之後
之前下載的巴西引擎的simatch.fmf就可以刪除了?
发表于 2025-4-3 23:56 | 显示全部楼层
大佬 是吧解压的一堆文件放到data文件夹里吗?我放进去了之后感觉球速奇快,比赛时各种对捅...
发表于 2025-4-4 00:30 | 显示全部楼层
白激动了,不过大神还是牛逼
可惜现在时间太少了,换以前我肯定狠狠研究下
发表于 2025-4-4 00:31 | 显示全部楼层
感谢大神分享,有几个问题
1、这个文件夹是改后缀名fmf还是直接放进去原来simatch.fmf文件所在的位置,用文件夹取代文件?
2、大概看了下解包的内容,觉得好像能折腾的东西不少啊,比如把吧里面的一些神阵放进tactics文件夹给自己增加点难度?毕竟电脑很多千篇一律的阵容确实挺让人无聊的?这个想法不知道是否有可行性?
3、    "theoretical_max_diving_acceleration": 89408, // 最高跳水加速度 这个系数,在之前您的一个帖子里面说的好像是扑救相关的系数?毕竟跳水这个动作还要啥加速度?
4、qme_stat_relevant_attribute_data.json这个文件从内容描述来看好像是关于一些行为需要参考的属性,但从内容词条来看,技术属性在传球等行为中完全无关。。可能要结合几个jsb一起驱动吧
发表于 2025-4-4 02:50 | 显示全部楼层
不错不错,有空了我也研究研究,感谢大神
发表于 2025-4-4 08:20 | 显示全部楼层
感谢大神分享
发表于 2025-4-4 08:24 | 显示全部楼层
感谢大佬开源
发表于 2025-4-4 11:47 | 显示全部楼层
大佬 是吧simatch文件夹直接放到data文件夹下吗?
 楼主| 发表于 2025-4-4 13:16 | 显示全部楼层
aa66609 发表于 2025-4-3 23:20
請問紅神,解壓縮這個simatch文件夾之後
之前下載的巴西引擎的simatch.fmf就可以刪除了?

对的直接用文件夹不影响使用,原fmf直接删掉或者改名字就行了
 楼主| 发表于 2025-4-4 13:21 | 显示全部楼层
heinrich0825 发表于 2025-4-4 00:31
感谢大神分享,有几个问题
1、这个文件夹是改后缀名fmf还是直接放进去原来simatch.fmf文件所在的位置,用 ...

1是,2没研究,3翻译是AI翻译的这个可能是鱼跃,跳水,摔倒之类的意思,4qme_stat_relevant_attribute_data.json文件目前没有发现具体作用里面的数值也是我瞎写的不是2024原版的期待有人发现作用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|爆棚小组 PlayGM论坛

GMT+8, 2025-4-15 19:12 , Processed in 0.030052 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表