全てのコストで配達のトレーラー
完全に破壊可能な「Deliver At All Costs」の世界を分解する

誰が夢見ていないのだろう、街を爆撃し、道にあるすべてを破壊すること?
それが全てのコストで配達の基本的な前提であり、Far Out Gamesによって作成され、Konamiによって出版された混沌とした新しいアクションゲームです。プレイヤーは配達員ウィンストン・グリーンとしてハンドルを握り、ありえない配達物を拾い上げ、貨物を目的地に届けるために何でもかんでも突き破ります。
タイトルのハイライトの一つは、完全に破壊可能な世界です – レトロな50年代のビーチバイブのゲームワールドでは、ほぼすべての建物が粉々に吹き飛ばされることができ、プレイヤーの車も同様です。
そこに到達すること(60 fpsの目標を達成しながら)は偉業でした。私たちはゲームディレクターのダニエル・ニールセン、テクニカルディレクター/リードプログラマーのヨナタン・ヨハンソン、Far OutのCEOでレベルデザインリードのラース・オルソンと座って、プレイするたびに異なる崩壊する世界を作る方法を学びました。
Unity:ゲームについて少し始めましょう。
ダニエル・ニールセン、ゲームディレクター:全てのコストで配達では、すべてが破壊可能な世界で気性の激しい配達員ウィンストンとしてプレイします。あなたは想像できる最もクレイジーなものを配達しています – 車の中でひっくり返っている巨大な1トンのメカジキから、車を飛ばす風船まで。すべては物理学に基づいています。
ラース・オルソン、CEO、グラフィックス、レベルデザイン:それは1950年代のアメリカンな世界にあります。私たちは、その時代の一貫した音楽と音で素敵な雰囲気を作るのに多くの時間を費やしました。

このゲームの本当にユニークな側面の一つは、完全に破壊可能な世界です。それをどのように作成したのか少し教えてもらえますか?
ラース:世界の破壊可能性は、私たちがアセットを構築する方法から、使用されるジオメトリやメッシュの量に至るまで、すべてに影響を与えています。すべては二重面でなければならず、何かを破壊すると、内部を見ることが期待されます - それはただの空のシェルではありません。私たちは、世界を非常に反応的で没入感のある場所にしたいと考えたので、あなたが行うすべてのことが環境に影響を与えます。
皆さんは、すべてが崩れるアセットデザインにどのようにアプローチしましたか?
ラース:私たちは、各建物や小道具やアセットをそのことを考慮してモデル化し、3Dモデルのさまざまな要素に関連するメタデータを追加することを確認します。次に、それをUnityに持ち込み、合理的な量の部品に崩れることを確認するために粉砕します。Unityでのセットアッププロセスはかなりのもので、すべてが破壊するのに心地よく感じることを確認します。私たちは通常、各建物を少なくとも20〜30回通過して、あらゆる角度から破壊するのが心地よいかどうかを確認します。
私たちは、さまざまなタイプのアセットのためにカスタムパイプラインを設定しています。
ジョナタン・ヨハンソン、テクニカルディレクター:はい、私たちはBlenderでモデル化されるときに少し壊すようにしています。その段階で、屋根、窓、壁が互いに分離されており、素材に応じて分類し、メタデータを割り当てることができます。
次に、それをUnityに持ち込むと、これらのすべての部分をさらに小さな塊に粉砕するためのカスタムツールがあり、それはBlenderからのメタデータも考慮に入れます。
私たちのパイプラインを使用すると、例えば、どの部分の建物にガラス効果を持たせるべきかを指定でき、それにより自動的にパーティクル効果、音響効果などが設定されます。すべての異なるタイプに対してこれを行い、次に、1つのボタンを押すことで、物理学、最適化、必要な構造を持つ全体のベーキングセットアップを作成できるツールがありますので、すぐにそれに突っ込む感覚を反復することができます。

ラース:破壊のために建物やアセットを設定する際には、環境コンテキストを持つシーンでセットアップをテストする必要があります。私は、しばらくしてから、コースを外れてシーンの別のものを破壊し始めていることに気づくことが何度もありました。言ってみれば、楽しみに流されるのは簡単です。
ジョナタン:最初の破壊のアイデアは非常にシンプルでした:もし私たちが建物を取り壊し、それをたくさんの部品に分解し、すべてに物理を追加したら – どうなるでしょうか?それはただの混沌でした、すべてがどこでも爆発しました。しかし、私たちは不必要な衝突を避けるためのいくつかの前処理ステップでほとんどの問題を解決することができました。
最終的に、私たちは最も大きな問題に直面しましたが、それは正直言って最初から予想していたことです – パフォーマンス。これはこのシステムにとって最大の課題であり、全体の制作を通じて継続的な努力が必要でした。それは私たちにいくつかの基本的なことを再考させることを強いました。そして、おそらく最も重要な最適化の一つは、同時に生きている物理オブジェクトの数を制限するために巧妙なカリングロジックを適用することでした。
パフォーマンスを維持するために、あなたたちが頼った技術のいくつかは何でしたか?
ジョナタン:私たちはたくさんのオブジェクトを持っています。建物は完全にロードされると、各々約100の部品または物理オブジェクトを持つことができ、これはかなりの量です – 通常、複雑な建物では単桁の数しかありません。それは物理エンジンが多くのパフォーマンスを消費する原因となりますが、もちろん多くの描画呼び出しももたらします。
私たちが使用している主な技術の一つは、非常に非常に攻撃的なカリングでした。私たちはカメラの角度から多くのヘルプを得ました、これは現在のこのタイプのゲームには独特です。
それはトップダウンで、ほぼ正投影で、等角的な感覚を与えます。私たちはその最適化においてそれを大いに利用しました。カメラがどの方向を向いているか常に知っているので、例えばカメラの右側または左側にあるすべてのものは表示されないことが確実です。だから、私たちはそれを多く使用して、どの要素が画面外にあるかを判断します。それでも、物理に割り当てられたフレーム予算のかなりの部分が必要であることがわかりました。ゲームには、AI車が走り回っているような他の多くの要素があり、多くのゲームプレイコードが実行されており、それもまた多くのパフォーマンスを必要とします。物理演算を行うために、私たちは可能な限りすべてのビットを絞り出す必要がありました。
私たちは、自分たちのゲームシステムの多くを大幅に最適化しました。しかし、私たちが自分たちで構築していないいくつかのシステムについても最適化を行いました。例えば、ほとんどのシーンの地面メッシュにはUnityの地形システムを使用しましたが、カメラの関係でLODは実際には使用していません。常に同じ距離からゲームを見ることになるからです。地形システムには、フレーム予算から毎フレーム数ミリ秒を消費する組み込みのLOD機能がありますが、私たちはそれを本当に必要としていませんでしたが、オフにする方法はありませんでした。そこで、私たちは独自のハイブリッドソリューションを実装しました。地形を本質的にメッシュにベイクし、それによって数ミリ秒を節約しました。デカールレンダリングの最適化からも大きな節約が得られました。私たちは、さまざまなタイプのアセットがたくさんあるため、テクスチャに追加の詳細を加えるためにデカールに大きく依存しています。

ラース:私たちは、Unityの地形オブジェクトとそのツールを使用することで大きな利点を得ました。ジョナタンが話している最適化はゲームプレイ中に発生しますが、レベルデザイナーとしての私にとっては、Unityの地形ツールで作業を続けることができ、その部分について考える必要はありません。
ダニエル:私たちが行ったもう一つの大きな最適化は、パーティクルシステムの調整でした。それらをアンリットに変更したとき、大きな節約ができました。何年もかけて取り組んできたこれらの小さな部分が一緒になって違いを生み出します。
ジョナタン:私たちは、破壊のために多くのパーティクルを使用しています。もし本当にリアルな破壊を行っていたら、何千ものパーツが必要で、それは機能しません。
破壊にはいくつかの異なるステップがあると言えるでしょう。最初に、全体の建物があり、次に建物が部分に分かれ、各部分がメッシュ粒子に分かれます。これが粒子システムです。それは非常に安価で、私たちはプレイヤーに見せたくない小さな詳細を隠すために多くのほこりを使用しますが、それはすべてを素敵で一貫した方法でまとめます。
Lars:それは遷移を隠します。ほこりの粒子システムを生成することで、実際の物理ボディと粒子に変わる間の遷移を隠すことができるので、できるだけ流動的に感じられます。
ダニエル:私は、PlayStation® 5またはXbox Series Xでゲームをプレイし、見えるものすべてを破壊しても、何をしても60 fpsを維持できるということが、ゲーム全体で最も印象的なことの一つだと思います。
私が最後に尋ねたかったのは物理学についてです。ゲーム内で物理学が本当に興味深くなるいくつかの異なる領域があります。もちろん破壊可能な建物ですが、トラックの荷台で貨物が移動する様子もそうです。
ダニエル:貨物は実際にゲーム全体のすべてのミッションに合わせてカスタマイズされています。巨大な魚、マグロを配達するミッションがあり、それには骨が設定されています。
ジョナタン:私たちには同じ基本的なことがいくつかあります。配達するパッケージのほとんどは、何らかの形で車や運転に影響を与えることを意図しているため、通常は荷物と車の間に物理ジョイントを追加して、その相互作用が興味深い瞬間を生み出すかどうかを確認します。
ゲームプレイで機能をうまく動作させるために、多くのスクリプトが明らかに行われています。魚の場合、例えば、私たちは車に多くの力を加え、長い間それで遊んで、ちょうど良い感覚を得るようにしました。それ自体が興味深い相互作用を生み出します。車に何かクレイジーなものを置いて、物理エンジンにそれを解決させるのは良いスタートです。
ラース:プレイヤーの車自体も物理に大きく依存していますが、物理が少し予測不可能であるため、多くのものを調整する必要がありました。例えば、崖から運転して一定の時間空中にいると、通常は直感が示すよりも少ないダメージを受けることがわかりました。そこで、車が期待通りに反応するようにダメージ係数を増加させました。

ジョナタン:もちろん、すべての車も破壊可能です。プレイヤーの車には約36の部品があり、すべてが変形可能です。
車と部品には物理エンジンと衝突を使用しますが、すべての力を計算し、ダメージがどのようになるべきかを考えます。時々、ダメージの数値を少し誤魔化さなければならないことがあります。そうすることで、あなたがしていることに対応しているように感じさせるのです。
ドアについては、ドアにぶつかると、それを壊してジョイントを追加し、外に振り出してぶら下がるようにできます。そして、再度ぶつかると、完全に落ちて地面に留まります。トラックの車輪を失うこともでき、その場合、金属の上を走ることになるので運転に影響します。前輪2つを失うと、操縦できなくなりますが、運転はできます - もちろん、修理する方法があります。
ダニエル:プレイヤー車で実際に直面した最大の課題は、転倒しやすいことでした。そのため、さまざまなトリックを行う必要がありました。例えば、地面から離れた車輪ごとに、車の重力が増加して安定させ、地面に押し付けます。もう一つの問題は、民間人にぶつかると、車の中の多くのコライダーの間に挟まってしまうことが多かったことです。36の取り外し可能な部品があるためです。これを解決するために、セットアップを少数の大きなコライダーに変更しました。民間人が車に挟まるのを見るのは非常に不快でした。彼らのラグドールのセットアップが狂い始めるからです。
ゲームで最も誇りに思っていることは何ですか?
ダニエル:すべてを破壊可能にすることだと思います。ゲーム内の約95%は破壊可能です。
ジョナタン:そして、60 fpsで動作します。
ラース:資産を繰り返さないように努めたので、プレイヤーは世界を探検し、世界中で新しいものを見つけることができます。そして、すべてが物理的に破壊可能なので、同じ家を100回通過しても、決して同じように崩れることはありません。常に新しい何かがあり、それがゲームを非常に再プレイ可能にしていると思います。
すべてのコストで配信はPCおよびPlayStation 5、Xbox Series X|Sで利用可能です。Unityで作成されたプロジェクトについてもっと読むには、リソースページを訪れてください。
