mp_potential_settings 설명서
mp_potential_settings
는 여러 매개변수를 사용하여 mp_potential_functions
의 동작 방식을 설정하는 함수입니다. 이 함수는 목표를 향해 직진하려고 시도하며, 이때 "ahead" 매개변수로 설정할 수 있는 여러 단계를 미리 살펴봅니다. 기본값은 3입니다. 이 값을 줄이면 인스턴스가 방향을 변경하는 시점이 늦어지고, 값을 늘리면 방향을 변경하는 시점이 빨라집니다.
만약 이 과정에서 충돌이 발생하면, 인스턴스는 이상적인 직선 방향의 왼쪽과 오른쪽 방향을 살펴보게 됩니다. 이때 "rotstep" 매개변수(기본값 10)로 설정된 크기만큼 단계적으로 확인합니다. 이 값을 줄이면 인스턴스가 더 많은 이동 가능성을 가지지만, 처리 능력이 더 많이 필요해 속도가 느려질 수 있습니다.
"maxrot" 매개변수는 설명하기 조금 더 복잡합니다. 인스턴스는 현재 이동 방향을 가지고 있으며, maxrot(기본값 30)은 인스턴스가 현재 방향에서 한 단계로 얼마나 방향을 바꿀 수 있는지를 나타냅니다. 예를 들어, 목표를 향해 직진할 수 있더라도 이 최대 방향 변경을 위반하지 않는 경우에만 그렇게 합니다. maxrot 값을 크게 설정하면 인스턴스가 각 단계에서 방향을 많이 바꿀 수 있어 짧은 경로를 찾기 쉬워지지만, 경로는 덜 자연스럽고 보기 좋지 않을 수 있습니다. 반대로 값을 작게 설정하면 경로가 더 부드러워지지만, 더 긴 우회로를 가거나 목표를 찾지 못할 수도 있습니다.
마지막으로, 이동할 수 없는 경우의 행동은 "onspot" 매개변수의 값에 따라 달라집니다. onspot이 true(기본값)인 경우, 인스턴스는 "maxrot"로 지정된 만큼 제자리에서 회전하고, false인 경우에는 전혀 움직이지 않습니다. false로 설정하는 것은 예를 들어 자동차와 같은 경우에 유용하지만, 인스턴스가 경로를 찾을 가능성을 줄입니다.
문법
mp_potential_settings(maxrot, rotstep, ahead, onspot)
매개변수 설명
매개변수 | 유형 | 설명 |
---|---|---|
maxrot | Real | 인스턴스가 현재 방향에서 회전할 수 있는 최대 각도(도) |
rotstep | Real | 인스턴스가 충돌을 확인할 수 있는 각도(도) |
ahead | Real | 인스턴스가 충돌을 확인할 수 있는 단계 수. 값이 클수록 느려짐 |
onspot | Boolean | 경로를 찾지 못했을 때 인스턴스가 제자리에서 회전할지 여부 (true/false) |
반환값
N/A
예제
mp_potential_settings(45, 5, 5, 0);
위 코드는 mp_potential_functions
에 다음 설정을 적용합니다: 인스턴스는 5단계 앞을 바라보고, 매 단계마다 45도 방향을 변경하며, 현재 방향의 양쪽에서 5도씩 충돌을 확인하고, 충돌이 발생했을 때 제자리에서 회전하지 않습니다.
활용 예제
// 자동차의 경로 설정
mp_potential_settings(30, 10, 3, true);
// 로봇의 경로 설정
mp_potential_settings(60, 15, 10, false);
// NPC의 경로 설정
mp_potential_settings(45, 5, 5, true);