EA DICEの人々はどのようにしてBattlefield Bad Company 2およびBattlefield 3で破壊可能な環境を作成しましたか?
彼らは、爆発やそれに類するものがあったときにばらばらになる、事前に定義されたサブリージョンから建物を組み立てただけなのでしょうか?他に何も考えられません。
EA DICEの人々はどのようにしてBattlefield Bad Company 2およびBattlefield 3で破壊可能な環境を作成しましたか?
彼らは、爆発やそれに類するものがあったときにばらばらになる、事前に定義されたサブリージョンから建物を組み立てただけなのでしょうか?他に何も考えられません。
回答:
簡単に言えば、彼らが何をするかということです。しかし、破壊マスクを使用して直線のエッジをカバーするために余分な長さがかかります。ジオメトリの一部を削除した後、破壊されたセクションの周囲に詳細なメッシュを追加して、見た目を美しくします。
仕組みは次のとおりです。
この家の一部を破壊するとき、彼らはジオメトリの一部を削除することから始めます
次に、破壊されたセクションの周囲に詳細メッシュを追加しました。
最後のステップは、破壊マスクを追加することです。
また、粒子効果とメッシュ破片を使用して、より劇的な外観にします。
(すべての参照は、私がコメントで言及した2つの出版物から取られています)
アルゴリズムが実際にどのように機能するかについてさらに研究したい場合、これはCSG-構成的ソリッドジオメトリ(この場合、厳密に言えば破壊的です)です。
標準的なアプローチは、2つの既存のメッシュAとB(家と減算された「爆発」ボリューム)を使用して、2つのメッシュ平面とエッジが交差する3番目の「メッシュ」(グラフ)を生成することです。彼らは共有する。2Dの場合:
/ \
/ \
/ A \
| |
| /-|-\
| |C| |
--- ----- | ------- G
| B|
\---/
Aは家、Bは爆発量、CはAとBの結合/交差領域です。Gは地面です。
その背後にある数学/ロジックは簡単ではありません。多くのエッジケースを処理する必要があり、このタスクの半分以上は、結果のグラフの可能なタイプのどれがコードで対応する必要がある特別なケースであるかを認識しているだけです。gamedev.netの退役軍人によって「非常に難しい問題」と説明されている問題を見てきましたが、2Dで試してみることもできます。それは小さな仕事ではありません。
より簡単な方法は、ポリゴン分解アルゴリズムを使用し、代わりにジオメトリ破壊の基礎として作成したジオメトリを使用することです。