此插件经过了完全重写(从头开始)。重写基于引擎版本 5.3+
如果您正在寻找一个强大、真实且高效的弹道系统,建议您查看终端弹道学,它与此插件非常匹配。
使用此插件不需要C++;但是,我建议您至少对蓝图有基本的了解,以使用此框架。
文档:
https://github.com/SneakyKittyGameDev/SKGSFExample/wiki
https://www.youtube.com/playlist?list=PLnHeglBaPYu9y8-la1bcz0dV5C9MyQVvR
概述:
性能是所有新系统的一个巨大关注点。与市场上几个流行的使用蓝图的工具包不同,这些工具包在游戏线程上运行所有内容,并/或对几乎所有复制使用多播,我的插件利用推送模型进行复制,在可行的情况下使用工作线程,并且没有蓝图的额外开销。
多人游戏:
复制是我有相当多经验和优化的领域。该系统的核心充分利用推送模型,以改善服务器性能,超越默认的虚幻实现。潜在的大数组利用快速数组序列化器,在更改时减少通过网络发送的数据量。在适用的情况下,变量在发送前被压缩为字节,然后在接收时在本地解压缩。每个类都带有一个 bAutoCallForceNetUpdate 选项,当设置为 true 时,在服务器将变量标记为脏时,它将强制进行网络更新并刷新网络休眠。这使您可以设置非常低的 NetUpdateFrequency,同时仍然拥有响应迅速的复制系统。
动画:
与大多数事情一样,动画系统可能会对性能造成很大影响。为了防止这种情况,动画系统将大量繁重的工作卸载到工作线程上。这种方法允许多个棋子同时并行运行它们的动画数据,而不必等待前一个棋子完成后下一个棋子才能开始处理它的工作。该系统性能的一个示例可以在上面的截图中看到,我比较了使用默认第三人称模板角色的 45 个动画棋子在游戏线程上耗时 13.11 毫秒,而我的系统在所有程序运行时仅耗时 14.34 毫秒。这一切都是在您可以对动画系统和棋子进行的任何额外优化之前,例如动画预算分配器,它可以在我的系统中带来巨大的好处(我为蓝图用户提供了一个辅助函数,以更轻松地利用动画预算分配器)。
程序化:
提供的程序化系统是市场上最深入的。它充分利用了 IK 骨骼(例如 ik_hand_gun,当然您不必强制使用该骨骼),以允许在使用火器时完全自由,例如用右手操作栓动步枪并在左右手之间切换。程序化系统配备了一个新的姿势系统,现在允许无限姿势,例如高位、低位、短托、盲射、肩部交换(如 2023 年底 Tarkov 更新中),以及您想要的任何姿势,因为它们完全由曲线驱动。后坐力(包括火器和控制器)、火器碰撞和运动摆动也由曲线驱动。其余的由值和插座驱动。一些插座驱动的程序化包括瞄准、点瞄准、在单个瞄准器上瞄准多个点(想想带有内置铁瞄具的 Elcan)和非主手 IK(左手和右手)。一些值驱动的程序化包括运动延迟、旋转延迟、死区、基础姿势偏移和第三人称瞄准偏移(左手和右手模式)。
火器:
程序化系统带来了大量火器功能和默认实现的附件。火器组件作为与其余附件的接口,同时持有附件管理器,提供对每个附件及其父组件的直接访问。
火器附件:
该系统配备了多个组件,允许您制作几乎任何火器附件,例如光学、放大光学、灯、激光、前握把、枪口装置、枪管、支架等。示例中提供了几个附加功能,以补充它们,例如枪口温度系统,以实现类似 Tarkov 的消音器烟雾/热量效果(见图片)。
红外线/夜视:
内置红外线/夜视系统允许设备(如灯和激光)仅在您开启夜视时可见。提供的示例内容具有夜视的后处理和覆盖(见图片),可以通过一系列设置和材质功能来实现逼真的外观,以帮助您自己的资产。
附件系统:
附件系统旨在通用,不仅限于火器。它旨在用于任何需要附加组件的东西,例如带有附件的火器和带有服装/装备(背包/护甲等)的角色。它设置为快速高效,完全支持骨骼网格和主姿势组件。
全部评论 0