Воскресенье, 20 Января 2019, 00:04

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [316]
Статьи об общих понятиях связанных с созданием игр.
Программирование [69]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [124]
Статьи о программах для создания игр, уроки и описания.
Софт [28]
Различные программы, в том числе в помощь игроделам.
2D-графика [11]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [10]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [97]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [74]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Как часто вы играете в социальных сетях?
Всего ответов: 1032
Главная » Статьи » Создание игр

3D RAD-создание "инвентаря" (и системы урона) #2
И снова Здравствуйте. Давайте сразу перейдем к делу.Если вы делали всё, как описано в прошлой статье, то у вас должен был получиться мини проект , в котором можно (напоминаю) подобрать "вещь", и это отразится у нас в инвентаре в виде "иконки".
В этой статье, мы доделаем наш проект, добавив в него "защиту",т.е. мы будем "нажимать" на нашу иконку,и у нас будет появляться (например) на голове шлем.

И так приступим:
Для начала зайдите в редактор(3d rad),нажмите project -open и откройте проект под названием ViewLockedSkinmesh.Когда проект откроется в левом "столбце" найдите
Script: view-locked mesh manager,откройте его , выделите текст "скрипта",и скопируйте его(функция ,COPY).
Затем закройте этот проект,и откройте "наш" проект (new inventory).
(Немного "разъяснения". Теперь у нас есть очень нужный скрипт ,который поможет нам в дальнейшем,а как , вы увидите сами.)
Когда вы откроете "наш" проект, сразу создайте SCRIPT,зайдите в него, и вставьте скопированный текст(текст скрипта*).

Переходим к реальным действиям, соедините" галочкой " SCRIPT с CamChase.
Создайте дополнительно SkinMesh , и тоже соедините его "галочкой" со SCRIPT-том.

Дополнительно зайдите в настройки SkinMesh нажмите "Change",высветится окошко, в этом окошке найдите Andro ,нажмите на него, и потом нажмите "открыть"(open) , и закройте настройки (кнопкой "ОК").
Желательно SkinMesh, куда-нибудь "спрятать", под "землю" ,или в "облака",вообщем сделать так, чтобы ни одна из наших камер не увидела его.
Теперь зайдите в настройки SCRIPT.

Найдем строчку отмеченную мною на "картинке"-

iObjectOrientationSet(OBJ_22,objectOrientation);
iObjectLocationSet(OBJ_22,objectLocation);

Заменим OBJ_3 на OBJ_22.Почему 22? Да потому что номер объекта андро (в моем случае) 22(посмотрите на картинку в "графе" OBJ). А в данной строчке мы должны вписать номер объекта(предмета, это может быть либо SkinMesh либо RigidBody)Этот "скрипт" отвечает за Ориентацию(расположение*) объекта, перед камерой!

В этом SCRIPT нужно следить за двумя строчками ,первая это та ,которую я показал, а вторая это вот, выделенная мною строчка

iObjectOrientation(OBJ_0,cameraOrientation);
iObjectLocation(OBJ_0,cameraLocation);

В этой строчке, всегда должен быть номер объекта "Камера".

Мучаем дальше "текст" "Скрипта".

Поставьте себе такие же настройки как у меня, либо сделайте свои.

iQuaternionFromEulerAngles(DeltaOrientation,0,180,0,"xyz");
Эта строчка отвечается за повороты нашего SkinMesh.Меняйте только "цыфорки".

DeltaLocation = Vector3(0,-1,2);
Эта строчка отвечает за положение в пространстве , по отношению к "камере"*)

Все... если вы выставили все настройки, все сделали правильно, то теперь ,когда вы запустите "игру" в редакторе,и вызовете инвентарь кнопкой, то вы увидете Andro, который будет идти на месте , если вам это не нравится зайдите в настройки SkinMesh
И уберите галочку с Follow at start.

Если вы все сделали правильно у вас должно получится вот так:

Делаем дальше.Теперь создайте еще один SkinMesh и Script(назовем его NEW SCRIPT). В NEW Script вставьте "текст" прошлого скрипта.Соединим наш NEW Script с CamChase и с недавно созданным SkinMesh.

Откроем настройки NEW Script, посмотрите правельно ли написаны строчки,т.е. правильно ли стоят "цыфорки"-(OBJ_22 и OBJ_0).Сверьте,чтобы все было правильно...
(СДЕЛАЙТЕ НОВЫЙ SkinMesh в виде "РЫБКИ")

Мучаем "строчки" :

DeltaLocation = Vector3(0,0.8,2);(или настраивайте так, чтобы у вас получилось как на "скрине")

Это теперь у вас будет появлятся ,при включении инвентаря ( "скин меш " можно заменить на любой другой).

Теперь давайте сделаем так, чтобы эта "рыбка" ,появлялась только после того, как мы нажмем на иконку(спрайт).

Для этого сделаем следующее : зайдем в настройки нашей "рыбки" уберем галочку с Visible at start. Теперь при нажатие инветаря рыбка появлятся не будет...

Теперь создадим EventOnInput(заранее уберите "галочку" с Working At Start) ,соединим наш SkinMesh(или рыбку) с ним,и установите отношение -S/H SWITCH ON LMBUTTON.
(Поместите Mouse Detection Area, прям под иконку нашего "шлема")

Сам EventOnInput соединим с EventOnInput(который отвечает за включение иконки(спрайта) , который(ая) активируется после того, как мы "подбирем" вещь(SkinMesh))

Теперь ,после того как вы соединил "галочкой" - EventOnInput-ы, зайдите в EventOnInput(отвечающий за "иконку"),и поставьте (взаимоотношения) с EventOnInput(отвечающий за "рыбку" на голове) -Start On Input.

Потерпите еще чучуть*) уже почти конец.

* создайте sprite(выберите ему вид курсора,эти мы и будем "водить" по инвентарю) в настройках спрайта поставьте Wark as Full-screen mouse pointer.Уберите галочку
с Visible At start. Поставьте-Render over texts.

Теперь соедините "галочкой" этот спрайт с EventOnInput(который отвечает за спрайт "заднего" фона,или за спрайт инвентаря) и поставьте взаимоотношение -
S/H switch on input
И попутно соедините его с CamChase

Все кульминация :
Создайте RigidBody.Создайте Script (вставьте в него наш "любимый" текст,который мы мучали на протяжение все этой статьи,заранее уберите галочку Working At start ).
Создайте EventOnContact и EventOnInput

Все, работаем дальше.

Когда вы вставите "текст" в новый SCRIPT соедините его с RigidBody и с Cam1StPerson.
В скрипте укажите (в тексте) значения переменных такие, чтобы [b]RigidBody ,"защищал" Cam1StPerson,ну как бы заслонял ее, вы можете выбирать любое физическое тело(RigidBody) подбирать любой ракурс "защиты", голова, ноги...[/b]

SCRIPT -проверьте "настройки" ,заранее уберите галочку c Working at start, напоминаю еще раз, это надо сделать для того, чтобы скрипт не работал с самого начала игры , а только после определенных действий.[/b]

Дальше вы должны создать еще один Script так же вставьте в него (тот же самый текст) ,так же соединить его с RigidBody(который вы соединяли с предыдущим СКРИПТОМ) и соединить с той же Cam1StPerson.

Только в этом скрипте укажите другие настройки например в строчке -
DeltaLocation = Vector3(0,0.8,100);-
это мы делаем ложный скрипт...походу дела объясню зачем он.(уберите "галочку" с Working at start)

Создайте Switch и соедините его с двумя этими (недавно созданными ) скриптами ...
Укажите связь -SECONDARY- на нормальный скрипт(который создан ранее) ,а на наш "ЛОЖНЫЙ СКРИПТ" укажите связь PRIMARY (мы это сделали для того ,чтобы "защита" включалась только при нажатие по иконке, она будет включаться, и на голове нашего Андро будет появляться "рыбка" ) (Найдите нормальный спрайты и скин меши*)

Соедините "галочкой" Switch с EventOnInput

"Зайдите" в EventOnInput и установите взаимосвязь -Switch on LMBBUTTON. Mouse Detection Area - поставьте на место "иконки"(шлема)(уберите "галочку" с Working at start)

Теперь соедините этот EventOnInput с EventOnInput(который отвечает за "иконку"(шлем) и установит связь (START ON INPUT,в EventOnInput который отвечает за "шлем")...

Если вы еще помните ,мы создали EventOnContact, соедините его "галочками" с RigidBody(который отвечает за защиту...*я для наглядности взял сплошную "стену" которая защищает меня от любого удара спереди) и с RigidBody(который служит у нас шариком,бьющим Cam1StPerson... В EventOnContact установите связи :

RigidBody(который служит защитой ) -Monitor
RigidBody ( который служит шариком) - Monitor (HIDE ON CONTACT)

ВАЖНО

*RigidBody(который служит защитой ) - уберите галочку Display Geometry.

* ПРОЕКТ ПОЛНОЦЕННО БУДЕТ РАБОТАТЬ ТОЛЬКО В СКОМПИЛИРОВАННОМ ВИДЕ

* МАЛЕНЬКАЯ ПОПРАВОЧКА - Создайте Switch и соедините его с Cam1StPerson и CamChase.Попутно соедините его с EventOnInput( в котором стоит галочка на Working At Start)...кнопка должна быть назначена такая(INPUT CONTROL) , которая назначена на "запуске" инвентаря. Установите связь между Switch и EventOnInput (В EventOnInput) - Start On Input. И в настройках CamChase поставте "галочку" на Rending At Start.

Категория: Создание игр | Добавил: Nasa13 (03 Февраля 2011)
Просмотров: 6683 | Рейтинг: 4.8/5 |
Теги: урок, AngelScript, скриптинг, RigidBody, Создание игры, Системы урона, инвентарь, урон, Скриптование, 3D Rad
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «3D RAD-создание "инвентаря" (и системы урона) #2», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • IsoEasyEditor
  • Defold
  • WinDoom
  • RuneSword
  • Inform
  • Zelda Classic
  • DarkPlaces
  • Dimension3
  • Quest Soft Player
  • GameStart
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2019 Рейтинг