AI часть 1 - 3D RAD - Конструкторы игр, системы разработки игр
Навигация по сайту
Сайт:

Дополнительно:

Файловый архив:

Каталог статей:

Форум:


Категории раздела
Game Maker [27]
Flash [3]
FPS Creator X9, X10 [1]
Scirra Construct [14]
Multimedia Fusion [0]
001 Game Maker, Map 001 [0]
3D RAD [16]
3D Game Studio [1]
Silent Walk FPS Creator [0]
Blender (Блендер) [1]
Game Editor [0]
Остальное [1]
Все остальное, что не попадает ни под одну категорию.

Мини-Опрос
Вы следите за обновлениями конструкторо игр, движков?
Всего ответов: 377

Партнеры сайта
....

AI часть 1

13:58
Одно из самых главных аспектов хорошего проекта это умение написать в меру своих возможностей правильный AI.
Тема сложная , и развивать её придется на несколько коротких уроков.На каждый урок мы будем разбирать различные случаи применения самого разного AI. В этой части мы рассмотрим AI противника который нас преследует и пытается убить. Пригодится например в погонях.В целом это зависит от вашей фантазии. Прежде чем писать отзыв дочитайте урок до конца. Все мои уроки строятся по одной схеме, для начала я по-шагам рассказываю что делать для того чтобы добиться правильного, работоспособного результата.Затем дабы не возникало вопросов я в конце урока объясняю что же мы черт побери сделали, даю пояснения коду и всем тем действиям что мы совершали на протяжении всего туториала. Так же изволю себя, предупредить что в этом уроке будет использоваться терминология которая вам может быть неизвестна, дабы избежать таких казусов я буду прикреплять внизу статьи ссылки на другие мои уроки, где есть пояснения данным терминам. Весь материал который прописан в данной статье был протестирован на двух версиях движка и гарантированно работоспособный , если у вас возникли неполадки в результате работы это только ваша вина, флуд в теме будет удален.

Приступим к самому уроку - поехали!

В этом уроке мы будем работать с объектами :
Car (x2)
Car AI
Script
Projectile
Right Body
Cam Chase
Terrian
gForce

Для начала как хотим расставляем Terrian, затем добавляем две Car,добавляем Car AI. Теперь вариативность закончилась. Для того чтобы затем не возникало путаницы мы переименовываем вторую Car в Car(Police) допустим.В нашей нынешней Car(Police) в настройках убираем галочку со всех Controls оставляя только Working at Start.Добавляем объект Projectile и ставим его над нашим Car(Police).Под Car(Police) создаем сколько захотим Right Body - но есть условие, объект Right Bodyдля корректной работы Physics обязательно должен быть Ball.И в настройках RightBody ставим галочку на Use bounding sphere as body и ниже в параметре Total mass ставим 1.Соединяем Projectile со всеми Right Body и с Car(Police).В настройках Projectile ставим параметры Car(Police) как parnet , а наши Right Body как Projectile.Затем параметр Projectile velocity изменяем индивидуально, желательно от 50 до 200 , от этого зависит сила projectile и projectile lifetime параметр тоже ставим но уже от 1 до 2 желательно. И на всех параметрах ставим галочки.
Теперь создаем Script и прописываем следующие параметры кода:
Код
void Main()
{
     Vector3  scanOrigin;
     Vector3  scanDirection;
     float  scanLength;
     Vector3  contactPoint;
     Vector3  contactNormal;
     Quaternion cameraOrientation;
     scanLength = 1000;   
     iObjectLocation(OBJ_0,scanOrigin);
     iObjectOrientation(OBJ_0,cameraOrientation);
     iVectorRotate(scanDirection,Vector3(150,170,scanLength),cameraOrientation);
     if (iObjectScan(OBJ_44,scanOrigin,scanDirection,0.005,contactPoint,contactNormal))
     {
        iObjectStart(OBJ_22);
     }
     else
     {
        iObjectStop(OBJ_22);
     }
}

Соединяем Script с Car и Car(Police) а так-же с Projectile.В настройках Projectile устанавливаем Script как Projectile.Ставим над нашим Car - Cam Chase , и добавляем gForce.Соединяем наш Car со всеми Right Body. Соединяем gForce со всеми Right Body и с Car,Car(Police).Соединяем Car AI с Car(Police) и с нашей Car. В настройках Car AI ставим нашу Car как Objective/Target,а вражеский Car(Police) как Drivable vehicle.
Как я и обещал - теперь пояснения:
Что происходит?
Как только мы запускаем проект по средствам объекта Car AI в котором мы установили нашу машину как директиву/цель вражеская машина преследует нас через Car AI. Благодаря скрипту вражеская машина находит нас на расстоянии 1000 метров
Код
scanLength = 1000;

И при входе в более узкий радиус
Код
   iVectorRotate(scanDirection,Vector3(150,170,scanLength),cameraOrientation);
     if (iObjectScan(OBJ_44,scanOrigin,scanDirection,0.005,contactPoint,contactNormal))
     {

Начинает задействовать соединенный с ней объект снаряда (Projectile). Этот объект разгоняет частицы твердых тел (Right Body), которые мы использовали за место патронов , и "выталкивает" их с силой которую мы указали в
Цитата
Projectile Velocity

И она варьировалась от 50 до 200 м/с.Если мы устанавливали время действия Projectile (projectile lifetame) как 2 то вражеский выстрел выглядел как например автоматная очередь. Благодаря тому что мы соединили все физические объекты с нашей Car то мы можем получить правильный результат в виде переворота машины от выстрела. Итого мы имеем уже неплохую погоню.Возможно позже добавлю пример. Это был первый случай использования AI,в этом уроке мы узнали как использовать AI для стрельбы из машины. В следующем уроке мы будем разбирать AI для "зомби". А так же разберем случаи "смерти" мобов и нас соответственно.

Основные параметры и их пояснения в начале статьи ------ Здесь
Если вы новичок то здесь самые начальные параметры и их пояснения ------ Здесь
Некоторые пояснения в F.A.Q ------ Здесь

Категория: 3D RAD | Просмотров: 3776 | Добавил: _¿_ (03.01.2013) | Рейтинг: 5.0/2
HTML ссылка на материал:
BB ссылка на материал:
Похожие материалы :
Возможно вам будет интересно:
Borland Assembler (BASM) уроки для начинающих (уроки 1-4) (0)
Работа с Сетью в Blitz3D: TCP (0)
Создаем платформер. Scirra Construct (4)
Моя первая страница на PHP (0)
Создание 3D игр на Game Maker (3)
Гоночное авто (0)
Функция LIST (0)
Решение проблемы с перевернутыми гранями (1)
PHP - Базовые понятия (0)
Создание многопользовательской(online) игры на Game Maker. (часть 2) (0)
Создание 2D платформера а-ля Ghost Quest (1)
startDrag или как заставить объект двигаться за мышью? (0)
Устанавливаем на машину скин 3dRad (0)
Исключения в C++ (0)
Полиморфизм, Инкапсуляция и Наследование (0)
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Поиск по всему сайту:
Поиск по разделу:

Панель пользователя
Здравствуйте, Гость


Ник:
Пароль:
Запомнить :

Ваш IP: 52.15.59.163

Случайные конструкторы

Случайные движки

Случайные статьи

Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0

На сайте были:

При полном или частичном копировании материалов сайта ссылка на Make-Games.ru обязательна. Make-Games.ru © 2008 - 2024 Хостинг от uCoz
Топ Разработка игр