自分のキルカムを作成する


15

サンドボックスツールセット用に独自のキルカムシステムを作成する予定です。しかし、キルカム自体の仕組みについて考えた後、私はかなり迷っています。私は、殺人者の視点から実際の殺人シーンを示す、コールオブデューティゲームで一般的に見られるものを再現しようとしています。

私の考え:

-人々が他人を殺したとき、「記録プロセス」をいつ開始するかわからないので、私はただ記憶を保つことができません。誰かが誰かを殺そうとしている時期を正確に判断する方法があります。

-これまでのところ、私の唯一の本当のアイデアは、すべてを完全に複製し、10秒遅れで元の世界からのすべての動きをコピーすることです。そうすれば、すべてのキルカムは10秒の長さになり、人物カメラは殺人者の第二世界に移動するだけです。

私の質問:

これを行う方法はすでに受け入れられていますか?誰かがこのような何かのための良いアイデアを持っていますか?できたらありがとう!

回答:


10

関連する動的オブジェクトの移動データの最後の数秒を保存します

このデータは、必要に応じてキルカムシーンを再構築するために使用できるほど十分に完全である必要がありますが、十分に短い間隔で取得および保存できるほど十分に不完全である必要があります。

追跡したいものの例:

  • 目に見えるプレーヤーがどの方向に動いている/見ている
  • キラーが銃のスコープにズームインされているかどうか

おそらく最適化したいもの:

  • キラーが見ることができないプレーヤーに関するデータ
  • 誰の実際の画面出力

答えには大きな問題があります。通常、誰かの死を予測することはできません。また、次の殺害を誰が受けるかを予測することもできません。そのため、一部のプレーヤーに関するデータを最適化すると、いくつかのキルをリプレイする機能が失われる可能性があります。
Ali1S232

2
@Gajetこの場合、関連するすべてのオブジェクトをカリングし、その後のデータのみを保存することを意味すると思います。言い換えれば、限られた時間内にすべてのエンティティとそのエンティティの位置を追跡するための何らかの種類の保存/更新メカニズムがすでに必要です。たとえば、キルカムの最後の10秒間が必要です。必要なのは、最後の10秒を保存するのに十分な大きさのデータ構造と、それよりも古いものが最後に置き換えられることです(両端キューなど)。
ChrisC

Ricerの答えが私が意図したものであることを確認するだけです。確かに、将来を予測できない場合は、代わりに準備します。:)
アンコ

1
リアルタイムのオンラインゲームは、実際に何が起こったのかをプレーヤーに表示しないことに注意することが重要です。ゲームは常に真実が何であるかを推測しますが、レイテンシやその他のネットワークの問題により、ゲームは「客観的真実」が何であるかをずっと後まで発見しません。したがって、他の誰かの視点を再作成できる「キルカム」データがない場合は、必要な状況でもっともらしいキルカムデータを作成することをまったく気にしないでください。
トレバーパウエル

0

これが通常どのように実装されるかはわかりませんが、各弾丸は、発射からターゲットに到達するまでクリップを保存できます。ヒットスキャンだけで撮影を行う場合、ヒットスキャンを実行するときに同じサイクルでキルカム映像を生成するかどうかを計算できます。


0

オブジェクトの変換は、数秒ごとに保存できます。該当するすべての動的オブジェクトに対してこれを行います。各フレームを数個のマトリックスのみを保存するように保存をずらします。時間をさかのぼって保存します。

再生中に、実際にこれらの変換をレンダリングエンジンで使用してシーンをアニメーション化し、必要に応じて各フレームの時間ごとに変換を補間します。

正確な複製ではありませんが、非常に近いため、再生中にプレーヤーにカメラ制御のオプションを与えて、シーンを表示する場所を選択できるようにします。


変換行列のみを保存することには1つの問題があり、他の何も保存しません!たとえば、プレイヤーのトランスフォームマトリックスのみを保存すると、アニメーションがうまくいかず、敵があなたを殺す前にどれだけのダメージを与えたのか、いつ彼が銃を撃ったのかを見ることができなくなります。メソッドを使用すると見落としがちな詳細の長いリストがあり、それらについて簡単に考えることができます。
Ali1S232

プレーヤーのマトリックスだけでなく、適切なすべての動的オブジェクトの変換を保存してください。また、健康やヒットポイントのデータ、その他のアイテムも保存するのは簡単です。重要なのは、あまりにも多くのデータを保存するとゲーム時間のリソースが消費されることです(悪い)。できるだけ節約し、再生中の補間によるレンダリングエンジンの負荷をできるだけ大きくします。妥協ですが、そうではないのは何ですか?
スティーブH

0

ゲームにリプレイ機能を実装できます。リプレイ機能を使用すると、killcamは、特定のゲーム時間およびプレイヤーの視点から再生されるリプレイにすぎません。後でリプレイを保存し、終了後に他の人がゲームをレビューできるようにすることができます。

また、10秒の遅延で入力を使用して同じゲームを実行するというアイデアは、ゲームが高い計算能力を消費しない場合に適したアプローチです。


0

これはどう...

殺害の可能性がある場合にのみ記録します。

AIM-BOTの観点から考えてください。殺す可能性がある場合にのみ照準/発射します。そのため、敵が殺害可能/可視範囲内にいる場合にのみ記録する必要があります。


物体を撃つ場合の状況はどうですか?レイキャスティングは、他のいくつかのアイデアが述べているよりも、CPUを集中的に使用します。良いアイデアですが、私はそれを解決策の一部と考えることができます。
Freesnöw

0

プレーヤーの周囲に半径を設定し、別のプレーヤーが半径に入ると、両方のユーザーの画面記録が開始されます。次に、誰かが殺されたかどうかを確認します。その場合は、キラーを見つけて記録を取り、キルから経過した時間とビデオの長さを巻き戻し、キルされた人のためにそれを巻き戻して再生します。誰も殺されず、キャラクターの周囲に誰もいない場合、記録を削除または停止します。殺人者がスコープにズームインすると、照準を合わせている場所に光線を投じ、別のトリガー半径を作成します。誰かがそこにいる場合、照準を合わせているキャラクターが照準を合わせている半径内にいる人と、照準を合わせているキャラクターの画面を記録します。キャラクターの照準で誰かが死亡した場合は、キルから経過した時間にキルカムの長さを加えた時間を取り、キルした人のためにこれを巻き戻して再生します。ズームアウトした場合、記録を停止します。これは概念なので、試したことはありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.