Advertisement
  1. Game Development
  2. Programming
Gamedevelopment

Разбирање на управувачките однесувања: бегство и пристигнување

by
Difficulty:IntermediateLength:ShortLanguages:
This post is part of a series called Understanding Steering Behaviors.
Understanding Steering Behaviors: Seek
Understanding Steering Behaviors: Wander

Macedonian (Македонски јазик) translation by Stefan Nikolov (you can also view the original English article)

Управувачкото однесување има за цел да им помогне на автономните ликови да се движат на реалистичен начин, со користење на едноставни сили кои се комбинираат за да произведат животна навигација како импровизирана. Во ова упатство, ќе го покривам однесувањето на лицето, што го прави ликот да се оддалечи од гонителот и однесувањето кое го прави карактерот да забави и да застане додека се приближува до целта.

Забелешка: Иако ова упатство е напишано со помош на AS3 и Flash, треба да бидете во можност да ги користите истите техники и концепти во скоро секоја средина за развој на игри. Мора да имате основно разбирање за математичките вектори.


Бегајќи

Однесувањето на барањата опишано претходно се заснова на две сили кои го притискаат ликот кон целта: саканата брзина и управувањето.

Посакуваната вредност, во овој случај, е најкратката патека помеѓу карактерот и целта. Се пресметува со одземање на позицијата на целта од позицијата на ликот. Резултатот е сила вектор кој оди од ликот кон целта.

Seek steering behavior

Побарајте однесување

Бегајното однесување ги користи истите истите две сили, но тие се приспособуваат за да се направи ликот да избега од целта:

Forces involved in the flee behavior

Бегај однесување

Овој нов сакан вектор на верификација се пресметува со одземање на позицијата на ликот од позицијата на целта, која произведува вектор кој оди од целта кон thecharacter.

Како резултат на силите се пресметуваат речиси на ист начин како и во однесувањето на барањата:

Посакуваната_velocity во тој случај претставува најлесната маршрута за избегнување која карактерот може да ја користи за бегство од целта. Управувачката сила го прави карактерот да се откаже од нејзината тековна рута, придвижувајќи го кон правецот на саканиот вектор на брзина.

Споредувајќи го посакуваниот вектор на брзина на бегство со саканиот вектор на брзина на однесувањето, може да се утврди следната релација:

Со други зборови, еден вектор е негативен од другиот.


Додавање на силите за бегство

Откако се пресметува управувачката сила, таа мора да се додаде во векторот на брзината на ликот. Бидејќи таа сила го турка карактерот подалеку од целта, секоја рамка ликот ќе престане да се движи кон целта и ќе почне да се оддалечува од него, создавајќи бегство (портокалова крива на сликата подолу):

Flee path

Додавањето на овие сили и конечната пресметка за брзина / позиција се постапува на ист начин како и порано. Подолу е демонстрација која прикажува неколку карактери кои вршат бегство однесување:


Движете го глувчето за да ја преместите целта.

Секој карактер е поставен во центарот на подвижното подрачје со случајна брзина. Тие ќе се обидат да побегнат од целта (курсорот на глувчето). Додавањето на сите сили го прави секој карактер непречено да ја напушти сегашната рута и да побегне од целта.

Во моментов целта влијае на секој карактер, игнорирајќи ја растојанието од нив; тоа можеше да биде ограничено на "област на дејство", каде што ликот ќе побегне само ако е доволно близу до целта.


Пристигнување

Однесувањето на барањата, како што видовме, го прави карактерот потег кон целта. Кога ќе стигне до дестинацијата, управувачката сила продолжува да делува врз неа врз основа на истите правила, со што карактерот "отскокнува" напред и назад околу целта.


Барањето однесување. Движете го глувчето за да ја преместите целта.

Однесувањето на доаѓањето го спречува ликот да се движи низ целта. Тоа го прави карактерот да се забави додека се приближува до дестинацијата, на крајот да застане на целта.

Однесувањето е составено од две фази. Првата фаза е кога ликот е подалеку од целта и функционира токму на истиот начин како и однесувањето на барањата (движење со целосна брзина кон целта).

Втората фаза е кога карактерот е близу до целта, во внатрешноста на "полето за забавување" (круг во центарот на позицијата на целта):

Arrival behavior

Кога ликот ќе влезе во кругот, тој се забавува додека не застане на целта.


Успорува

Кога карактерот ќе влезе во полето за забавување, неговата брзина се намалува линеарно до нула. Ова се постигнува со додавање на нова управувачка сила (сила на пристигнување) до векторот на брзината на ликот.  Резултатот од ова дополнување на крајот ќе стане нула, што значи дека ништо нема да биде додадено на позицијата на ликот секоја рамка (нема да има движење):

Со цел да се осигура дека карактерот постепено ќе се забави пред да застане, брзината не треба да стане нула веднаш. Постепениот процес на забавување се пресметува врз основа на радиусот на полето за забавување и растојанието помеѓу карактерот и целта:

Ако растојанието е поголемо од забавувањеRadius, тоа значи дека карактерот е далеку од целта и неговата брзина треба да остане max_velocity.

Ако растојанието е помало од забавениот радиус, тоа значи дека карактерот влегол во областа на забавување и неговата брзина треба да се намали.

Терминот растојание / забавувањеRadius ќе варира од 1 (кога растојанието е еднакво на забавувањеRadius) до 0 (w отпорноста е речиси нула). Оваа линеарна варијација ќе ја намали брзината на брзината:

Arrival slowing factor

Како што претходно беше опишано, движењето на знаците се изведува на следниов начин: 

Ако саканата брзина се спушта до нула, тогаш управувачката сила станува-голема брзина. Како последица на тоа, кога таа управувачка сила ќе се додаде на брзината, тоа ќе резултира со нула, правејќи го ликот да престане да се движи. 

Подолу е демонстрација која го покажува однесувањето на пристигнување: 


Поместете го глувчето за да ја преместите целта. 

, се пресметува сила која ќе биде еднаква на -velocity, спречување на ликот да се движи се додека таа сила е на место. Оригиналниот вектор на брзината на карактерот не се менува и продолжува да работи, но се намалува со помош на управувачот. 

Ако личното придвижување на пристигнувањето е симнато, ликот повторно ќе почне да се движи, користејќи го својот оригинален вектор на брзина. 


Заклучок

се движат подалеку од посакуваната цел додека однесувањето на пристигнување го прави забави и застанува на позицијата на целта.  И двете можат да се искористат за да се создаде непречено бегство или да се следат моделите на движење, на пример. Тие, исто така, можат да се комбинираат за да создадат уште покомплексни движења. 

Ова упатство повеќе опишуваше однесувања за водење, објаснувајќи ги бегствата и однесувањето. Во следните неколку постови ќе дознаеме повеќе однесување. Бидете во тек со следење на нас на Twitter, Facebook или Google+.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.