추종 조향 동작에서 궤도 피하기


9

나는 (고정적인) 목표를 추적하고 충격을주기 위해 행동을 추구 하는 미사일을 가지고 있습니다 .

미사일을 발사 할 때 밟지 않는 한 잘 작동합니다 . 당신이 싸우고 있다면, 미사일은 목표를 선회하는 경향이 있습니다.

여기에 이미지 설명을 입력하십시오

먼저 목표에 접선 방향으로 가속 하고 속도의 접선 구성 요소를 먼저 종료 한 다음 대상에 대해 beelining하여이 문제를 해결했습니다.

여기에 이미지 설명을 입력하십시오

따라서 vT가 거의 0이 될 때까지 -vT로 가속합니다. 그런 다음 vN 방향으로 가속합니다.

그것이 작동하는 동안, 나는 미사일이 접선 구성 요소를 먼저 명시 적으로 죽이지 않고 대상에 영향을 줄 수있는보다 우아한 솔루션을 찾고 있습니다.


스티어링 알고리즘이 무엇인지 설명하지 않고 만족스러운 답변을 얻을 수 있다고 생각하지 않습니다. 문제가 휴리스틱에 있다고 확신합니다.
— sam hocevar

1
실제로 이것은 내가 사용한 답입니다
— bobobobo

답변:


5

문제는 미사일이 현재 속도에 관계없이 목표물을 가리키고 있다는 것입니다. 미사일에 추력이 운동 선을 벗어날 수있는 최대 각도를 지정하십시오.

각 안내 반복에서 대상에 수직 인 속도를 계산합니다. 속도의이 구성 요소를 제로화하기 위해 엔진을 얼마나 기울여야하는지 파악한 다음 엔진을 기울일 수있는 최대 값으로 자릅니다.

비행 중 첫 번째 부분은 그림 2에서 직선의 오른쪽으로 약간 이동하지만 엔진이 날아 가면 엔진 이이 구성 요소를 제로로 만들고 대상으로 곧장 향하게됩니다.

이 시나리오에서는 엔진에 0 또는 최대 값 이외의 변형이있는 프레임이 하나만 있습니다. 움직이는 목표물을 추적하는 경우 목표물이 움직일 때마다 모든 사이클에서 더 적은 처짐을 얻을 수 있습니다.


4

그것은 당신이 추구하는 우아한 해결책이 아닐 수도 있지만, 미사일을 늦추면 미사일을 놓치면 목표물에 접근 할 때 효과적으로 추적하고 더 빠르게 회전하고 목표물에 부딪 칠 수 있음을 발견했습니다. 속도를 줄이지 않고 미사일의 회전 속도를 높일 수는 있지만, 플레이어는 '놀랐을 것입니다'라는 놀라운 놀라움을 줄 수 있습니다.

이것은별로 좋아 보이지 않을 수도 있지만, 연료가 다 떨어질 때까지 미사일의 궤도와 적의 미사일 발사를 확실히 막습니다.

여기 내 구현을 결합한 데모가 있습니다 (세 번째 또는 네 번째 미사일이 이것을 보여주고 다시 1:05로 보여줍니다) : http://www.youtube.com/watch?v=9uiGMC_nH2w

또한 미사일이 목표물에 접근 할 때 정확도가 향상 될 수 있습니다 (잠금 할 서명이 더 가깝기 때문에). 비디오에 약 1 분 정도 표시됩니다. 빨간색 원은 미사일의 실제 목표를 나타냅니다. 이것은 장거리에있을 때 혼란스러운 비행 경로를 제공하고, 가까워 질수록 곧게 펴게됩니다.

내가 말했듯이, 그것은 당신이 찾고있는 대답이 아닐 수도 있지만, 조금이라도 도움이되기를 바랍니다.


꽤 멋지다. 나는 (당신이 "트릭 미사일"을 호출하면 사용할 수 있습니까?) 최대 가속 가고 있지만 미사일 천천히 아래로있는 것은 깔끔한 트릭
— bobobobo

4

직관

한 가지 방법이 있습니다 : 다이어그램을 회전 시키십시오.

원래 문제 삽화의 회전

이제 로켓은 대포입니다 !

물리학

발사 위치에서 목표까지 벡터에 수직 인 고정 된 가속 "하향"을가집니다. 나는 그것을 파선으로 그린 ​​선으로 그렸습니다. 이를 reference horizon 이라고합시다 . (이 기준 수평선은 일정합니다! 로켓은 고정 위치에서 목표 위치로 고정 위치에서 발사되었습니다.)

우리는 ( wikipedia에서 ) 공기 저항이없는 대포에 대해 알고 있습니다 d = v^2 * sin(2 * theta) / g.

  • d 수평으로 이동 한 거리 (발사 위치와 목표 사이의 거리)
  • v 발사체의 발사 속도는
  • theta발사체가 발사 된 수평선의 각도 ( 기준 수평선 에서 발사 방향 벡터 )

의 방정식을 재정렬하여 g제공합니다 g = v^2 * sin(2 * theta) / d.

슛 방정식의 정수, g인 중력 가속도로 인해 . 로켓 추진으로 인한 가속도 를 의미 할 수 있습니다 . 그것도 괜찮습니다 – 그것은 여전히 일정한 방향으로 일정한 가속 입니다 .

이제 뭐?

g로켓을 발사 할 때 그 방정식을 실행하십시오 . 목표물을 맞추기 위해 기준 수평선을 향해 수직으로 로켓을 얼마나 가속해야하는지 알려줍니다. 그 가속 방향은 일정하기 때문에 궤도가 형성되지 않습니다.

팔.


이것은 깔끔한 접근법입니다. 나는 이것이 로켓이 원을 추적 하게 할 것이라고 생각한다 . 당신은 목표에 영향을 미치는 원을 선회하는 데 필요한 구심력을 공급하고있다. 나는 이것이 마리오 카트에서 붉은 껍질에 사용 된 접근 방법 이라고 생각합니다. 왜냐하면 나는 그것이 항상 원호 모양을 그리는 경향이 있다고 생각했기 때문입니다.
— bobobobo

여기에 적용된 힘은 구심력이 아닙니다. 힘의 방향은 기준 수평선에 수직이며, 대상이 정지되어 있으면 변경되지 않습니다. 이것은 궤도 동작이 일어날 수 없음을 의미합니다.
— Anko

더 명확하게하기 위해 답변을 편집했습니다.
— Anko

@Anko : OP의 경우에 대한 트리거 인 것처럼 움직이는 수학에서 수학이 효과가 있는지 확실하지 않습니다.
— Mooing Duck

@Mooing 당신이 맞습니다. 목표물이 예측 가능하게 움직이고 예측 물을 목표로하는 경우에만 목표물을 움직일 수 있습니다. 질문 은 구체적으로 첫 번째 문장에서 목표가 고정되어 있다고 언급합니다.
— Anko
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.