创建自己的杀人凸轮


15

我计划为沙盒工具集创建自己的kill cam系统。但是,在考虑了kill cam本身的机制之后,我就迷失了。我正在尝试重现使命召唤游戏中常见的那些游戏,这些游戏从杀手的角度显示实际的杀戮场景。

我的想法:

-当人们杀死别人时,我不能仅仅保留在记忆中,因为我不知道何时开始“录音过程”。我正在准确地确定某人何时“约”杀死某人。

-到目前为止,我唯一真正的想法是将装满的所有东西完整复制到侧面,以复制原始世界中的所有动作,但要延迟10秒。这样,所有的杀人摄像头将有10秒长,而人员摄影机将被移到杀手的第二世界。

我的问题:

已经有接受的方法可以做到这一点吗?有人对这样的事情有什么好主意吗?谢谢,如果可以!

Answers:


10

存储相关动态对象的最后几秒钟的运动数据。

此数据应足够完整,以便在必要时可用于重建killcam场景,但又应足够不完整,以便您可以以足够短的时间间隔进行检索和存储。

您可能要跟踪的事情示例:

  • 可见玩家以哪种方式移动/观看
  • 杀手是否放大了瞄准镜

您可能需要优化的内容:

  • 凶手看不见的玩家数据
  • 任何人的实际屏幕输出

您的答案有一个大问题,通常您无法预测任何人的死亡,也无法预测谁将导致下一个杀戮。因此,通过优化一些玩家的数据,您最终可能会失去重击某些击杀的能力。
Ali1S232

2
@Gajet我认为在这种情况下,他的意思是剔除所有相关对象,然后仅存储这些对象的数据。换句话说,您已经想要一种存储/更新机制来跟踪所有事物及其实体的位置,但是要在有限的时间内进行。假设您只想在最后10秒钟内拍摄杀人镜头。您只需要一个足够大的数据结构来存储最后的10秒,然后将任何比该旧的东西都旧的东西替换掉,例如在双头队列中。
ChrisC

只是确认赖斯的答案就是我的意思。的确:当您无法预测未来时,请为之做好准备。:)
Anko

1
值得一提的是,实时在线游戏永远不会向玩家展示实际发生的事情;游戏总是在猜测真相是什么,但是由于延迟和其他网络问题,游戏要等到很久以后才能发现“客观真相”是什么。因此,如果您没有可用于重新创建其他人的视点的“杀人凸轮”数据,那么在需要的情况下编造合理的杀人凸轮数据就不会感到不好。
特雷弗·鲍威尔

0

不知道这通常是如何实现的,但是您可以让每个子弹从发射时间到命中目标之间保存一个剪辑。如果仅使用命中扫描进行拍摄,则可以在执行命中扫描时计算是否在同一周期内生成杀伤镜头。


0

您可以每隔几秒钟左右保存一个对象的变换。对所有适用的动态对象执行此操作。交错保存,以使每个帧仅保存几个矩阵。尽可能节省您的时间。

在重播期间,您实际上是在渲染引擎中使用这些变换来对场景进行动画处理,并根据需要为每个帧按时间在变换之间进行插值。

它不是精确的复制品,但是非常接近,它允许您在播放过程中为播放器提供摄像机控制选项,以便他们可以选择从何处查看场景。


仅存储变换矩阵而不保存其他任何东西有一个问题!例如,如果仅为玩家保存变换矩阵,则动画可能会出错,您将无法看到敌人在杀死您之前以及他何时开枪时遭受了多大伤害。您会发现使用您的方法错过的一长串详细信息,可以轻松考虑它们。
Ali1S232

请重新阅读,您将保存所有适当动态对象的变换,而不仅仅是保存播放器的矩阵。保存健康或生命值数据以及其他项目也很容易。关键是,保存太多数据会浪费游戏时间资源(不好)。您可以省去最少的钱,并让渲染引擎在重播期间通过插值来完成尽可能多的繁重工作。这是一个折衷方案,但不是吗?
史蒂夫·H

0

您可以在游戏中实现一些重播功能。使用重播功能,killcam只是从某些特定游戏时间和某些玩家的观点出发进行的重播。稍后,您可以保存重播,并让其他人在游戏结束后查看游戏。

如果您的游戏不消耗高计算能力,那么您的想法就是以10秒的延迟运行具有输入的同一游戏,这是一个不错的方法。


0

这个怎么样...

仅在有可能杀死的情况下记录。

从AIM-BOT的角度考虑。只有在可能发生杀戮时,它才会瞄准/开火。因此,您仅应在敌人处于可杀死/可见范围内时进行记录。


在涉及通过物体射击的情况下该怎么办?相比于其他一些想法,射线转换肯定会占用更多的CPU资源。不过好主意,我可以认为这是解决方案的一部分
Freesnöw

0

在播放器周围设置半径,如果另一个播放器输入半径,则它将开始为两个人进行屏幕记录。然后,您等待看看是否有人被杀。如果是这样,则您可以找到杀手,并录制他们的录像,然后倒带自从杀人以来经过的时间,再加上您想要的视频长度,然后倒带并为被杀害的人播放。如果没有人被杀死,并且人物周围没有其他人,则删除或停止录制。如果杀手将示波器放大,则将射线投射到他瞄准的位置并创建另一个触发半径。如果有人在里面,那么它会记录目标人物瞄准的半径范围内的人物和人物目标的画面。如果有人死于角色瞄准,那么您要花费自杀死事件以来的时间,再加上想要杀死凸轮的长度,然后倒带并为被杀死的那个人播放。如果缩小,则停止录制。这是一个概念,所以我还没有尝试过。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.