ゲームでの構造解析はどのように行われますか(例:橋梁建設、掘削または死滅、3D)?


11

すべてのコンポーネントがシステム全体に影響を与えるため、典型的なインタラクティブトラスシステムはかなりの計算が必要になると私は理解しています。シミュレーションの精度を犠牲にして、任意の反復回数で任意に停止できると思いますが、それがこれらのゲームで使用されているアプローチかどうかはわかりません(ブリッジビルディングゲームはトラスシステムの例です)。一方、DigやDieのようなゲームは、非常に複雑な構造システムを備えています。これは、トルク(私は信じています)と圧縮も考慮に入れており、非常に高速で、非常に広範なシステムで動作します。基本的な計算は似ていると思いますが、そうでない場合は両方のアプローチに興味があります。

これらがどのように作られるか知っていますか?それらには任意の制限がありますか、それとも完全に異なるアルゴリズムを使用していますか?また、皆さんが思いついたものはすべて3Dシステムに適用できると思いますが、そうでない場合、または明らかでない場合は、少なくとも2Dと3Dの両方に興味があるので、3Dにどのように使用できるかについて手がかりを教えてください。ゲーム。

ここでは感謝するつもりはありませんが、少なくとも前もってお礼を言うのは不公平だと思います。この段落が削除されないことを願っています。

編集:私が推測した場合、私はDigまたはDieが各ブロックのベクトルを格納し、シミュレーションの追加の精度がシステムの限界に対して意味がない点まで反復アルゴリズムを実行すると言います(たとえば、システムは大きすぎて、とにかく崩壊しない)ので、(アプリケーションに基づいているため)反復の半任意数によって制限されます。しかし、私は間違っている可能性があります。


要するに、はい、一般的にそれは反復的であり、速度対品質のために調整できるタイムステップと反復回数を伴います。また、大きな行列を設定してすべての制約を一度に満たすこともできますが、状況によってはより困難で非現実的または不可能になる場合があります。
アランウルフ

回答:


5

私はDigまたはDieの開発者なので、ゲームの物理特性についてもう少し詳しく説明できます

実際、最も重要なポイントはパフォーマンスでした。ゲームでは何千もの物理ブロックを構築できますが、非常に重要なのは、シミュレーションがもっと複​​雑なため(雨/水)、建物の物理に非常に少ないCPU時間を割くことができます。

それで、実際に私は一種のことをしました...わかりません、カスタムのパーソナルアルゴリズムはあまり正確ではありませんが、ゲームには十分にうまく機能します。各ブロックの交差点に1つのベクトルがあります(各ブロックは、それぞれの側に1つずつ、最大4つのベクトルでリンクされています)。各ブロックには「重み」があり、その周りのベクトルを「均等に」押し出すので、ベクトルの大きさの合計はその高さに等しくなります。ブロックが地面に固定されている場合、ブロックに押し込まれたすべての力/重量が「押し戻される」ことはないため、十分な反復で自然にシステム全体がバランスを見つけます。重量/力は、アンカーポイントへの「フロー」のようなものであり、構造の変化を非常にうまく管理します。ここで結果を確認できます(ゲーム内の「エッフェルグラス」アイテムを使用): ここに画像の説明を入力してください

トルクについては、水平に伝わる力を掛けてシミュレーションしています。完璧ではありませんが、水平と垂直の構築の大きな違いを感じるには十分です

しかし、正直なところ、私のシステムはそれほど好きではありません。場合によっては、あまり正確ではありません。主に、圧縮と拡張を管理していないためです。おそらくCPUを追加せずに自分よりも正確なシミュレーションを行う方法があるでしょうが、それに関する私のスキル(および時間)は非常に限られていたため、私はできることを行いました:-)

(PS:とても良かったと思います:-))


4

個人的には、反復リラクゼーションで大成功しました。ブロックの集合体で作られたオブジェクトを扱うとき、それは物理法則にとてもよく従うと思います。私は信じてBridgeBuilderの私はこれを確認するには何のソースを持っていないものの、シリーズは、このようなA方式に基づいています。

反復リラクゼーションはトラスに広く使用されていますが、大きな固体オブジェクト(コンクリート)のシミュレーションに成功しました。これは、ジョイントが自由回転ではなく、荷重を運ぶ単純なトラスです。


興味深いのは、リラクゼーションが静的トラスを解決する手法であるため、正確であることです。その点で、構造を平衡状態にする変位を繰り返し計算するために使用されます。

ただし、ゲームの付加価値(静的な平衡状態の構造は退屈なため、動的環境に関心がある場合)は、これまでに計算された制約に基づいて、各反復間の構造のジョイントを実際に変位させる機会を得ることです。。次の2つの大きなメリットがあります。

  • あなたは動的な構造を持っています、それはどんな外部の摂動にも正しく反応します
  • あなたは、他のメンバーに緊張を移すことによって、緩んでいる支持メンバーに迅速に反応する構造を持っています(計画外の急速な分解を考えてください)。チェーンイベントで関節が壊れたときにストレスフローが移動するのを見るのは実に楽しいです
  • 非線形シミュレーションがあります!意味の詳細な説明:
    通常、静的解析では、構造が初期状態から大きく離れない小さな変形の仮説が立てられます。これらの境界内では、関節は実際にはあまり変位しないため、静的解析は正確です。しかし、構造が崩壊しつつある重みの下で変形するため、非線形シミュレーションで最後まで正確な結果が得られますが、線形ソルバーから無効な状態が得られるだけです。

反復緩和は、配置するのが非常に簡単です。数値安定性。大きなコンクリート構造で安定性を達成するために、RK4スキームをうまく使用しました。欠点は、通常、パフォーマンス上の理由から剛性が非常に小さいため、ソフトゼリーのように感じる場合があります。

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