회전하면서 커브를 따라 오브젝트 이동


11

커브를 따라 물체움직이고 싶습니다 . 커브의 특정 지점에서 객체가 속도를 변경하고 축을 따라 자체 회전하기를 원합니다.

비행기가 목적지로 비행한다고 상상해보십시오. 그것은 따라야 할 경로를 가지고 있으며 속도와 방향을 모든 방향으로 조정합니다 (제목, 속, 은행).

다음에 대한 시작 정보 를 친절하게 요청할 수 있습니까?

  • 어떤 종류의 곡선을 부드럽게 객체를 보간하는 데 사용할
  • 어떤 신뢰할 내가 oject 이동의 속도를 제어 할 수 보간, 원활하게 될 것이다 곡선 매듭 사이의 전환에 사용하는
  • 어떤 정보 것은 해야 수출 하여 3D 제작 응용 프로그램에서
  • 이것을 위해 쿼터니언 slerp () 를 사용해야 합니까?

이 주제를 효율적으로 다루는 책 에 대해 알고 있다면 가장 큰 도움이 될 것입니다. 감사합니다.

답변:


7

모션 커브의 경우 Hermite 커브를 사용하는 것이 좋습니다. 시작점 / 속도 및 종료점 / 속도를 지정하면이 둘 사이에 멋지고 부드러운 곡선이 만들어집니다. 첫 번째 점 쌍의 끝점 / 속도를 다음 점 쌍의 시작점 / 속도로 사용하면 매끄럽고 길고 구불 구불 한 곡선이 있습니다.

속도를 관리하기위한 요구 사항을 완벽하게 처리합니다. 선택한 속도로 시간 목록을 제공하고 원활하게 보간 된 위치 및 속도 값을 제공합니다. 이 작업을 원한다면 3D 제작 응용 프로그램에서 추출해야 할 것은 원하는 경로의 점과 속도뿐입니다. 사용자 입력에 따라 런타임에 생성 할 수도 있습니다.

방향을 조정하려면 여러 가지 옵션이 있습니다. 비행기가 항상 어디로 향하고 있는지 (이 경우에 해당하는 경우) Hermite 곡선에서 보간 된 속도 벡터를 사용하여 배가 향하는 곳을 찾을 수 있습니다. 위쪽 벡터를 알고 있다면 (평면에서 움직이고 있거나 어떤 방향으로 올라 가야하는지 알고 있다면) 세 번째 축을 십자형 (정면, 위)으로 계산할 수 있습니다.

평면에서 때때로 경로의 정면 방향을 벗어나도록 "비틀린"방향을 원하는 경우 정면 방향을 원하는 방향으로 사용하고 현재 방향과 원하는 방향 사이에서 한 단계 씩 멈춤을 수행 할 수 있습니다.

경로와 관련이없는 사용자 지정 방향을 원할 경우 방향 쿼터니언 목록을 제공 할 수 있습니다. 그런 다음 포인트가 (포인트, 속도, 쿼터니언)이됩니다. 그런 다음 연속 된 두 쿼터니언 사이에서 ler을 사용하여 방향을 설정할 수 있습니다. slerp은 선형 보간법 이라는 것을 잊지 마십시오 . 그러나 일반적으로 괜찮습니다. 이음새에서 회전이 충분히 부드럽 지 않다면 여기 7 장에 설명 된대로 쿼터니언 목록을 베 지어 곡선으로 보간 할 수 있습니다 .

시작하는 데 도움이되는 소스 코드는 다음과 같습니다 . 쿼터니언 (분대, 베 지어 등) 목록을위한 여러 가지 부드러운 보간 기술이 있습니다.

궁금한 점이 있으면 알려주세요!


+1-고맙습니다. 대답은 기본적으로 모든 것을 다룹니다. 그것은 내가 요구 한 모든 질문에 대한 답을 제공하며, 연구 할 추가 자료를 제공합니다. 이제 시작하기에 충분한 자료가 있습니다. 따라서 나는 이것을 Accepted Answer 로 표시하지 않을 이유가 없다 .
Bunkai.Satori

@ Bunkai.Satori는 당신에게 도움을 주셔서 감사합니다 :) 나는 당신이 결국 무엇을 만들고 싶어요.
Gazihan Alankus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.