Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Game Development
  2. Steering Behaviors

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

by
Difficulty:IntermediateLength:ShortLanguages:
This post is part of a series called Understanding Steering Behaviors.
Understanding Steering Behaviors: Flee and Arrival

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

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

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

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


Позиција, брзина и движење

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

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

Character positioned at x y with velocity a b

Сликата погоре претставува лик позициониран на (x, y) со брзина (a, b).  Движењето се пресметува со помош на Еулер интеграција:

Насоката на векторот на брзината ќе контролира каде се движи карактерот, додека неговата должина (или величина) ќе контролира колку ќе ја премести секоја рамка Колку е поголема должината, толку побрзо се движи ликот.   Векторот на брзината може да се скрати за да се осигура дека тој нема да биде поголем од одредена вредност, обично максимална брзина.  Подолу е тест кој го покажува тој пристап.


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

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

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


Пресметување на силите

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

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

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

Steering forces

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

Овие сили се пресметуваат на следниов начин:


Додавање сили

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

Seek path

Додавањето на овие сили и пресметката на завршна брзина / позиција се:

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


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

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


Заклучок

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

Ова упатство ги опиша основите на однесувањето на управувањето, објаснувајќи го однесувањето на барањата.  Над наредните неколку постови ќе научиме повеќе однесување.  Проверете го следниот пост: Бегај и пристигнувај.

Advertisement
Advertisement
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.