간단한 비행 시뮬레이터


10

크림슨 스카이 (Crimson Skies) 수준의 사실감 (실제보다는 아케이드 수준)이있는 3D 비행 시뮬레이터에서 각 게임 시계 틱마다 항공기의 움직임을 어떻게 결정합니까?

(Crimson Skies는 아케이드와 같은 비행 시뮬레이터입니다 : http://youtu.be/OWmYt0LZDnU?t=3m )

나는 게임이 고정 된 단계로 진행한다고 가정하고, 각 단계는 각 움직이는 물체가 현재 위치에서 다음 위치로 일정한 속도로 직선으로 움직입니다.

질량, 속도, 스로틀 등을 결정하는 데 필요한 기본 매개 변수 또한 어떻게 결합합니까?


흥미로운 질문이지만 너무 광범위하지 않습니까? 항공기 시뮬레이션 역학에 대한 구체적 내용을 묻습니다. 토크와 가속도의 수치 적분과는 별도로 답변이 해결되어야 할 것이 있습니까? 나는 개인적으로 궤도를 변경하기 위해 토크와 가속을 피하는 것을 선호합니다. 왜냐하면 궤도를 변경하기가 어렵고 캐주얼 게이머가 싫어하는 경험을 제공하기 때문입니다 (관성 효과를 사용하는 게임 메커니즘은 조정하기가 어렵습니다).
— teodron

"크림슨 하늘 수준의 현실주의"가 실제로 의미하는 바를 정의해야합니다. 왜냐하면 저와 같은 게임을하지 않은 사람들이 있고 이제는 답변을 제공 할 수없는 사람들이 있기 때문입니다.
— Philipp

3
이것이 본질적으로 "물리를 구현하는 방법"이 아닙니까?
— MichaelHouse

1
내 대답 에서 , 이것은이 질문에 대해 제공 한 것과 동일한 조언입니다 : 반복 경험적 테스트. 테스트에 관심있는 다양한 매개 변수를 제어하는 ​​테스트 슬라이더를 GUI에 추가하십시오.
— MichaelHouse

3
"물리"+ "시뮬레이터"+ "단순"두 개를 선택하십시오. 쉬운 비행 시뮬레이터 예제를 찾을 수없는 이유는 만화 비행이 속이고 간단한 캐릭터 컨트롤러로 전환되는 반면 최소한의 시뮬레이션조차도 물리학에 깊이 파고 들어 안정적으로 유지하기가 어렵 기 때문입니다.
— Patrick Hughes

답변:


22

공기 역학 비행을 시뮬레이션하는 방법을 이해하려면 먼저 항공기의 움직임에 어떤 힘이 영향을 미치는지 이해해야합니다. 항공기의 실제 궤도는 이러한 모든 물리적 효과의 합입니다.

뉴턴의 제 1 및 제 2 운동 법칙

  1. 힘에 의해 작용하지 않는 한 물체는 일정한 속도로 움직입니다.
  2. 신체의 가속은 신체에 작용하는 순 힘에 직접 비례하고 같은 방향으로 질량에 반비례합니다. 따라서 F = ma, 여기서 F는 물체에 작용하는 순 힘, m은 물체의 질량, a는 물체의 가속도입니다.

엔진 추력

엔진의 추력은 항공기를 앞으로 가속시키는 힘이며 일반적으로 플레이어가 제어 할 수 있습니다. 가속도는 엔진의 힘을 항공기의 질량으로 나눈 것입니다.

중량

중력은 9,81 m / s²의 속도로 항공기를 지속적으로 아래쪽으로 가속시킵니다. 이론적으로는 높이 올라 갈수록 중력이 떨어지지 만 일반 항공기가 작동하는 높이에서는 무시할 수 있습니다.

공기 역학적 항력

항공기가 빨리 움직일수록 대기 마찰이 더 느려집니다. 이것은 선박이 움직이고있는 현재 방향에 대한 방향으로 가속되는 힘으로 표현된다. 힘은 속도에 따라 2 차 증가합니다 (이중 속도 = 항력의 4 배). 그러나 항공기가 높을수록 대기가 얇아지고 항력이 낮아집니다. 항공기의 최대 속도는 엔진 추진력과 공기 역학적 항력에 의해 생성 된 힘이 서로 상쇄되는 곳입니다.

직관적이지 않은 소리로 들릴 수 있지만 드래그 상수가 더 강하면 실제로 게임을 더 쉽게 플레이 할 수 있습니다. 더 이상 비행하지 마십시오 (곡선을 비행 할 때와 같이). 따라서 더 많은 항력 = 느리고 기동성이 뛰어난 비행기입니다. 비행기의 방향과 이동 방향 사이에 차이가있을 때 드래그를 증가시켜이를 더욱 향상시킬 수 있습니다 (비현실적이지는 않습니다. 비행기의 공기 역학적 프로파일은 비행기의 공기 저항을 최소화하도록 최적화됩니다) ) 똑바로 날고있다 .

공기 역학적 리프트

이것은 실제로 비행기를 비행시키는 힘입니다. 날개에 의해 생성됩니다. 날개 표면이 클수록 더 많은 양력이 발생하고 평면을 위쪽으로 가속합니다 (지면이 아닌 날개를 기준으로합니다. 평면이 옆으로 구르면 리프트도 옆으로 가속됩니다). 대기 항력과 마찬가지로 리프트는 속도 및 대기 밀도에 상대적입니다.

컨트롤 표면

평면은 피치, 요 및 롤에 대해 서로 다른 제어 표면으로 방향을 제어합니다. 제어 표면은 평면이 움직일 때만 작동합니다. 효율은 현재 속도 및 대기 밀도에 비례합니다. 제어 표면은 평면이 이동하는 방향이 아니라 평면을 가리키는 방향 만 변경합니다. 이는 추력 방향과 리프트 방향에 영향을 미치며 점진적으로 이동 방향에 영향을줍니다.


1
작은 것 : 속도 큐브에 따라 전력 (에너지 비율)이 증가합니다. 항력은 속도의 제곱에 비례하며 전력은 항력과 속도의 곱입니다. 그러나 에너지 속도와 관련하여 다른 것을 논의하지 않기 때문에 어쨌든 항력을 의미 할 것입니다.
— Seth Battin

"효율은 현재 속도와 대기 밀도에 비례합니다." 약간 부정확하면, 비행기는 방향을 바꿀 때 공기 흐름을 다른 방향으로 강제하기 때문에 더 많은 공기 저항을 얻습니다. 따라서 최근에 궁금했던 관성과 균형을 이루어야합니다. 최근에 궁금했던 것입니다. 방향을 바꾸는 비행기에서 유체 역학을 단순화하여 대답 할 수는 있지만 좋은 대답을 모르겠습니다. 날개의 크기도 고려해야합니다.
— jokoon

1
@ jokoon 당신이 그것에 대해 맞지만 질문은 간단한 아케이드 같은 비행 시뮬레이터에 관한 것입니다. 최대의 사실성은 필요하지도 않습니다. 현실감을 극대화하기 위해 비행기의 3D 모델 주위의 공기 역학을 정확하게 시뮬레이션 할 때 드래그, 리프트 및 방향타 토크를 통합하지만 현실과 관련하여 Microsoft Flight와 경쟁하지 않는 대부분의 게임의 경우 너무 과도합니다. .
— Philipp

나는 한때 에어쇼에 갔다. 전투기가 회전하는 것을 볼 때, 비행기가 표류하는 것처럼 공기가 아래로 밀리는 것을보고 느꼈다. 나는 당신이 말한 리프트가 내가 이야기 한 세부 사항없이 여전히 나타날지 궁금합니다. 그래, 맞아? 리프트 벡터 만 변경하여 평면이 어떻게 든 드리프트됩니다.
— jokoon

1
@OndrejPetrzilka 비행기가 어떻게 회전하는지 어떻게 알 수 있습니까? 이로 인해 리프트 벡터가 회전 중간을 향하게됩니다.
— user253751
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.