게임에서 구조 분석은 어떻게 이루어 집니까 (예 : 교량 건설, 발굴 또는 다이 및 3D)?


11

내가 이해하는 바에 따르면 일반적인 대화 형 트러스 시스템은 모든 구성 요소가 전체 시스템에 영향을 미치기 때문에 상당한 계산이 필요합니다. 시뮬레이션에서 정확도의 비용으로 주어진 반복 횟수를 임의로 중지 할 수 있다고 생각하지만 이것이 해당 게임이 사용하는 접근법인지 여부는 알 수 없습니다 (브리지 빌딩 게임은 트러스 시스템의 예입니다). 다른 한편으로, Dig 또는 Die와 같은 게임에는 토크와 토크를 고려한 매우 복잡한 구조 시스템이 있으며 매우 빠르며 매우 광범위한 시스템에서 작동합니다. 기본 계산은 비슷할 수 있지만 두 가지 방법 모두에 관심이 있습니다.

이것들이 어떻게 만들어 졌는지 아십니까? 그들은 임의의 제한이 있거나 다른 알고리즘을 함께 사용합니까? 또한, 당신이 생각해 낸 모든 것이 3D 시스템에 적용될 수 있다고 생각하지만, 그렇지 않거나 분명하지 않은 경우 적어도 2D와 3D 모두에 관심이 있기 때문에 3D에 사용할 수있는 방법에 대한 단서를 제공하십시오. 계략.

나는 여기에 감사하지 않을 것을 알고 있지만 적어도 당신의 시간에 대해 미리 감사하지 않는 것이 불공평하다는 것을 알았습니다.이 단락이 제거되지 않기를 바랍니다.

편집 : 추측하면 Dig 또는 Die가 각 블록에 대한 벡터를 저장 한 다음 시뮬레이션의 추가 정확도가 시스템의 한계에 대해 의미가 없다는 점까지 반복 알고리즘을 실행한다고 말하고 싶습니다 (예 : 시스템은 너무 커서 축소되지 않을 것이므로 반 임의 (응용 프로그램에 기반하기 때문에) 반복 횟수에 의해 제한됩니다. 그러나 나는 틀릴 수 있습니다.


간단히 말해서, 일반적으로 속도 대 품질에 맞게 조정할 수있는 시간 단계와 반복 횟수가 반복적입니다. 큰 행렬을 설정하고 모든 제약 조건을 한 번에 충족 할 수도 있지만 일부 상황에서는 훨씬 더 어렵고 비현실적이거나 불가능할 수 있습니다.
Alan Wolfe

답변:


5

나는 Dig 또는 Die의 개발자이므로 게임 물리에 대해 조금 더 자세히 설명 할 수 있습니다.

실제로 가장 중요한 점은 게임에서 수천 개의 물리적 블록을 만들 수 있고 성능이 매우 중요하다는 것입니다. 물론, 비 (물 / 물)를 시뮬레이션하기에 더 복잡한 다른 것들이 있으므로 건물 물리학에 매우 적은 CPU 시간을 절약 할 수 있습니다 .

그래서 저는 실제로 일종의 ... 사용자 정의 개인 알고리즘이 매우 정확하지는 않지만 게임에는 충분하게 작동합니다. 각 블록 교차점에 대해 1 개의 벡터가 있습니다 (따라서 각 블록은 각 측면에 하나씩 최대 4 개의 벡터로 연결됩니다). 각 블록에는 "가중치"가 있으며 그 주변의 벡터를 (동일하게) "푸시"하므로 벡터 크기의 총계는 높이와 같습니다. 블록이지면에 고정되면 블록에 눌려지는 모든 힘 / 무게가 "뒤로 밀리지"않으므로 자연스럽게 충분한 반복이 이루어지면 전체 시스템이 균형을 잡습니다. 무게 / 힘은 고정 점에 일종의 "흐름"을 가지며 구조의 변화를 잘 관리합니다. 게임 내 "Eiffel Glasses"항목에서 결과를 확인할 수 있습니다. 여기에 이미지 설명을 입력하십시오

토크에 대해서는 수평으로 전달되는 힘을 곱하여 시뮬레이션합니다. 완벽하지는 않지만 수평 및 수직으로 건축하는 것의 큰 차이를 느끼기에 충분합니다.

그러나 솔직히 나는 내 시스템이별로 마음에 들지 않습니다. 어떤 경우에는 매우 정확하지 않습니다. 압축 및 확장을 관리하지 않기 때문에 주로 CPU가 많지 않은 것보다 더 정확한 시뮬레이션을 수행하는 방법이있을 수 있지만 내 기술 (및 시간)은 매우 제한되어 있으므로 할 수있는 일을했습니다.

(PS : 당신은 매우 좋았다고 생각합니다 :-))


4

나는 개인적으로 Iterative Relaxation으로 큰 성공을 거두었습니다 . 블록 덩어리로 만들어진 물체를 다룰 때 물리 법칙을 아주 잘 따른다고 생각합니다. BridgeBuilder 시리즈는 이러한 방법을 기반으로 한다고 생각 하지만 소스를 확인할 수는 없습니다.

Iterative Relaxation은 트러스에 널리 사용 되지만 큰 솔리드 객체 (콘크리트)를 성공적으로 시뮬레이션했습니다. 트러스는 조인트가 자유 회전이 아닌 하중을 전달합니다.


흥미로운 것은 이완은 정적 트러스를 해결하는 기술이므로 정확합니다. 이와 관련하여, 구조를 평형으로 만드는 변위를 반복적으로 계산하는 데 사용됩니다.

그러나 정적 평형 구조가 지루하기 때문에 동적 환경에 관심이 있는 게임 의 부가 가치 는 지금까지 계산 된 제약 조건에 따라 각 반복 사이에서 구조의 관절 을 실제로 대체 할 수있는 기회를 얻는 것입니다 . 두 가지 주요 이점이 있습니다.

  • 외부 섭동에 올바르게 반응하는 동적 구조
  • 지지대를 잃어버린 구조에 신속하게 반응하는 구조를 갖습니다 (계획되지 않은 빠른 분해 생각). 체인 이벤트 에서 관절이 부러 질 때 실제로 스트레스 흐름이 움직이는 것을 보는 것은 꽤 즐겁 습니다.
  • 비선형 시뮬레이션이 있습니다! 의미하는 바에 대한 추가 설명 :
    일반적 으로 정적 분석은 구조가 초기 상태에서 멀리 떨어지지 않는 작은 변형 의 가설을 만듭니다 . 이 범위 내에서 관절이 실제로 많이 변위 되지 않기 때문에 정적 분석이 정확합니다 . 그러나 구조가 무너지는 무게로 변형됨에 따라 비선형 시뮬레이션으로 끝까지 정확한 결과를 얻을 수 있지만 선형 솔버에서 유효하지 않은 상태를 얻을 수 있습니다

반복적 완화는 Numerical Stability라는 제자리에 놓는 것이 매우 간단합니다 . RK4 구성표를 큰 conrete 구조로 안정성을 달성하기 위해 성공적으로 사용 했습니다 . 단점은 일반적으로 성능상의 이유로 강성이 매우 작기 때문에 때때로 부드러운 젤리처럼 느껴질 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.