유저의 관심사를 따라가기(예를 들어 점차적인 옵션)

개시하다


2014년께 GiitHub에 전달된 소스 코드입니다.평가가 좋아서 여기도 전재합니다.
목표물만 따라다니기 때문에 간단하다고 느낄 수 있지만 자연스럽게 보여주기 위해서는 센서와 집행기를 잘 설계해 피드백 이득을 조절해야 한다.

(1) 조금 늦게 일정 속도로 따라간다


적(Enemy, 빨간색)이 자신의 기계(Player, 흰색)를 쫓고 있다.
이 기계는 커서 키로 조작할 수 있다.
적들은 지금 전위 실례화에서 제작하고 있다.

(2) 목표물과 같은 속도로 추종


(1) 늦게 따라다니기 때문에 똑똑한 적으로 보이지 않는다.
그러면 속도를 올리면 어떨까요?목표물과 같은 속도로 진행해 보자.
(1) 흰색과 빨간색 외에 흰색 팔로워스(파란색)도 있다.
follower는 본기와 일정한 거리를 유지하는 동시에 본기를 추적합니다.
follower의 속도는 본 컴퓨터와 같은 값을 사용합니다.
이 컴퓨터의 속도는 Player입니다.cs에서 privte static을 전역 변수로 사용합니다.

(3) 피드백 제어


(2)시 팔로워스의 속도가 0이나 본기와 같은 두 가지 상태만 있으면 동작이 기계적으로 인화되어 자연스럽게 볼 수 없다.
특히 화이트가 정지하는 순간을 주의해 주세요.그 순간 파란색도 완전히 멈췄다.
이런 동작은 현실 세계에서 불가능하기 때문에 부자연스러워 보일 수 있다.
따라서 속도를 지정하여 강제 운동을 하는 것이 아니라 AddForce()를 사용하여 현실 세계와 같은 동작을 피드백 제어한다.
화이트: 오브젝트
적: (1) 일정 속도로 추격
청: (2) 목표물과 같은 속도로 추종
녹색: (3) 피드백 제어를 통해 추종

녹색 팔로워는 본기와 일정한 거리를 유지하고 본기를 추적하는 것은 (2)와 같다.
근데 이번엔 rigidbody2d야.AddForce()를 통한 피드백 제어(PD 제어)
제어력 = 배율 제어력 + 속도 제어력
그렇지만
축척 제어초점=(대상물의 위치-대상물의 위치를 제어)x축척 이득
속도 제어Fource=(대상물의 속도 - 대상물의 속도를 제어)x속도 이득
비례 이득과 속도 이득을 통해 제어 성능을 조정하다.Unity 색인 창에서 다음 두 매개변수를 조정할 수 있습니다.
-controlGainP: 위치에 대한 이득입니다.배율(P) 이득.
-controlGaind: 속도에 대한 이득입니다.미분 (D) 이득.
참고로 포인트(I) 이득이 없기 때문에 잔류 편차를 제어하는 시스템입니다.
잔여 편차가 문제가 되면 포인트 이득을 추가해 PID 제어를 할 수 있다.
(참조)
위키백과: PID 제어

편차 계산


목표물과 제어 대상물의 위치와 속도의 차이를'편차'라고 한다.
편차 계산에서 물체의 방향이나 연산 기호가 잘못되거나 이득 기호가 잘못되면 초점이 반대로 작용한다.결과적으로 컨트롤물의 동작이 이상해진다.
AddForce()로 제어력을 부여하기 전에 편차가 제대로 계산되었는지 확인하는 것이 좋습니다.

이득 조정 절차


제어 이론에 따르면 모델의 공식을 알면 가장 적당한 이득을 얻을 수 있을 것 같지만 공식을 고려하지 않으려는 나는 다음과 같이 조정한다.
[1] 비례 이득에 적당한 수치를 넣어보자. 예를 들어'3'(처음에는 완전히 직각이었다).속도 이득을 0으로 설정하다.
[11.1] 게임 시작 후 대상물의 움직임을 제어하지 않는다
→비례 이득이 너무 적다.비례 이득을 10배로 설정하고 [1]로 재설정하다
[1.2] 게임이 시작되자마자 목표에서 멀리 떨어진 방향으로 날아간다
→ 자세를 제어하는 기호가 다르다.편차의 계산이 정확하면 비례가 이로운 기호를 반전시켜 [1]로 되돌려줍니다
[2] 현재 비례 이득을 고정시키고 적당한 수치, 예를 들어'3'을 속도 이득에 넣으려고 한다(이것도 처음에는 완전히 직감이다).
[2.1] 제어 대상이 스프링처럼 왔다갔다 이동
→ 속도 이득이 너무 적다.속도 이득을 10배로 설정하고 [2] 되돌아오기
[2.2] 제어 대상의 속도가 계속 증가한다.
→ 자세를 제어하는 기호가 다르다.편차의 계산이 정확하면 속도의 이득을 주는 기호를 반전시키고 [2]로 되돌려줍니다[2]
[3] 기도

Licence


GPLv3

Author


도랑의 지덕
https://github.com/mizoe

좋은 웹페이지 즐겨찾기