Добавлен , опубликован
Раздел:
3. Редактор данных

Вступление

Разобравшись наконец с редактором объектов решил написать самую подробную и простую статью для новичков. Эта первая моя статья по редактору объектов, и я хочу рассказать о такой вещи как предметы и инвентарь.
Прежде всего хочу сказать что статья очень подробная, и дабы её понять нужно не только читать но и прямо сейчас открыть редактор и создать там новую карту. Да сделайте это прямо сейчас..

Инвентарь

Откройте редактор объектов и перейдите во вкладку ItemContainers.
Выберите там Wow Character.
Пояснение: Контейнер это некий «ящик» в котором можно хранить предметы. Каждый предмет занимает одну ячейку контейнера. Сами ячейки могут ограничивать свое содержимое классом. Например в первую ячейку можно положить только оружие а во вторую шлем. Забегая вперед скажу что каждый предмет привязан только к одному классу, а ячейки могут хранить предметы любых выбранных классов.
Ячейки имеют несколько примитивных свойств. Первое и главное это положение в ящике. Положение определяется по строкам и столбцам ящика. Например, командная панель с приказами и способностями тоже состоит из такой сетки. Самая верхняя ячейка находится на нулевой строке и нулевом столбце.
Когда вы добавите в ящик новую ячейку вы можете определить не только где она будет находится относительно левого верхнего угла ящика, ну и что в неё можно будет положить.

Итак переходим к практике.

Поставьте в поля Model Width и Model Height значение 0. Это ширина и высота модели персонажа вокруг которого располагаются ячейки. Таким образом, по умолчанию окно инвентаря похоже на его аналог из WoW.
Теперь зайдем в меню slots+
В этом меню можно создать ячейки для нашего ящика (инвентаря).
  • Сначала нужно удалить все уже существующие ячейки.
  • Теперь можно создать первую из них.
Немного отойдя скажу сразу что мы сделаем инвентарь из 6 ячеек, 3 в высоту и 2 в ширину.
У нас получиться такой сундук:
1 2
3 4
5 6
для предметов с классом head (шлем)
для предметов с классом weapon (оружие)
В остальные 4 ячейки можно будет положить любой предмет.
Создайте первую ячейку.
В поле column (колонка) укажите 0.
В поле row (строка) тоже укажите 0.
В поле classes (классы ячейки) нажмите add value и выберите там head.
Это значит что в эту ячейку можно будет положить предметы с классом head, и никаких другие.
Вторая ячейка будет находится в положение column=1, row=0. (т.е правее на одну позицию чем первая).
Третья и четвертая имеют параметры, как и у первой и второй соответственно, но поле row у них равно 1. Это значит что они на одну позицию ниже первой и второй ячейки.
Аналогично создадим и пятую с шестой. Параметры row будут равны 2.
Как вы видите он идентичен тому что есть в варкрафте, за исключением использования классов (которые мы используем чуть позже). На данный момент давайте первой ячейке установим класс head (уже установили ранее), а второй класс (weapon). Остальные оставьте без явного указания класса, тогда в них можно будет положить любом предмет.
Итак, контейнер (сундук) у нас создан. Давайте теперь добавим его герою. Инвентарь в редакторе объектов является способностью.

Способность инвентарь

Перейдите во вкладку Abilitys (способности). Нажмите Add Ability. В поле имя укажите "Инвентарь", в поле Id поставьте HeroInventory.
Найдите значение Ability: Info.
Там у нас хранится информация о используемых сумках. Т.е у одного героя может быть несколько сумок или как я раньше назвал их сундуком с ячейками в которых содержатся предметы.
Удалим там все и добавим только одно поле.
Conteiner – Тут укажите ранее созданный или измененный контейнер (например WoW Character).
Empty Face – здесь можно указать кнопку. Кнопки создаются в соответствующей вкладке. Она отвечает за отображение кнопки с соответствующей иконкой в игре по нажатию на которую откроется наш инвентарь. (предварительно я создал кнопку hero – Инвентарь).
Дайте эту способность (инвентарь) любому юниту и протестируйте в игре.
Если вы все сделали правильно на этом этапе то у вас получится это:

Предметы

С инвентарем вроде разобрались, в него можно помещать любые предметы и все будет работать. Но есть одна проблема у нас нет предметов..
Перед тем как сделать предмет вдумчиво посмотрите на этот рисунок.
Как видно из рисунка предмет состоит с кучи разных составляющих. Но чтобы было понятно, четко разделим, как и что работает.
Все что описано выше создает предмет пустышку. А наделяет его свойствами следующие виды объектов:
  • Эффект – Эффект основной тип объектов в starcraft2, обычно используется для создания всяких способностей.
  • Алгоритм – Некий постоянный эффект. Проще говоря, бафф. Можно сделать общие алгоритмы для предметов и комбинировать их в свойствах предмета. Например, Алгоритм +10 к атаке и Алгоритм +10 к здоровью.
  • Оружие – Оружие это тип атаки боевой единицы. Можно вообще убрать атаку у героя, и добавлять её через это свойство. Например, герой подбирает огненный меч и получает соответствующую стандартную атаку.
Все это только теория, теперь шаг за шагом реализуем первый предмет дающий герою 20 единиц здоровья.

Реализуем наш предмет, шаг-1.

Подготовка

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

Предмет

Сам предмет это невидимый игровой объект, которые может модифицировать любые свойства героя носящего этот предмет. Предмет содержит список эффектов и алгоритмов в виде списка, которые получит герой сразу после того как наденет этот предмет.
Перейдите во вкладку Items. Создайте новый объект.
В поле name (имя) укажите «Нано Броня».
В поле id укажите nanoarmor
В поле ItemType (тип предмета) укажите Generic
В поле itemclass (класс предмета) можно указать chest (туловище).

Кнопка

Второй объект эта кнопка. Она отвечает за иконку и описание предмета, отображается в инвентаре героя. Кнопка можно привязать к предмету через свойства предмета, для этого есть специальное поле.
Теперь создайте в разделе buttons (кнопки) новый объект. Укажите тоже имя и тот же индификатор. Если id у предмета и кнопки будет один, то игра автоматически привяжет этот объект к предмету.
Установите любую иконку, в поле описание можно добавить что-нибудь вроде такого «Дает 10 ед. здоровья.»

Юнит

Третий объект это юнит. Юнит отвечает за то как предмет будет отображаться в игровом мире, например если герой выкинет его из инвентаря. Причем важно знать, что это не юнит привязывается к предмету, а наоборот. Указать какой предмет вы хотите привязать к юниту можно в свойствах юнита (Stats: Item). Также если вы создадите юнит и предмет с одинаковым индификатором то предмет автоматически будет привязан к юниту.
Создавать юнита желательно с таким же id и именем. В поле based on (основан на) нужно указать Default Settings (Item). Это создаст юнита с изначальным наклоном под настройку предмета и со специальными полями. Теперь в поле object type установите Item. Нажмите OK и увидите только что созданный юнит пустышку.
Если вы указали тот же id что и у предмета то сразу увидите связь между ними. В поле описание у юнита автоматически скопируется описание из кнопки.

Актер

Ну и конечно сам юнит это только логика игры, для отображения в мире нужно еще создать актера. В качестве модели для актера можно указать сундук. Юнит к актеру привязывается через актера. В самом верху свойств актера есть поле Unit Token. Именно там нужно указать к какому юниту, вы хотите привязать этого актера.
Создавая актера для юнита (предмет) можно указать тоже имя и id что и везде (в предмете, юните, кнопке). Не смотря на тот же id актер в отличие от остального не будет привязан к юниту автоматически. В самом верху свойств актера найдите поле Unit Token и укажите нашего юнита «Нано Броня».
В поле actor type укажите Unit.
В поле based on укажите GenericUnitStandart
После создания актера в поле art model (модель) можно указать сундук (ShapeTreasureChestOpen).
В поле unit icon скопируйте текстуру иконки из кнопки для предмета.

Заключение первой части

У нас готов полностью рабочий предмет, но он вообще ничего не делает. Можете запустить игру и проверить.
Так как раньше мы уже сделали инвентарь, можно будет взаимодействовать с этим предметом и взять его герою.
Осталось добавить предмету некоторые свойства, так как эта статья затрагивает только создание предметов, вам придется догадываться о работе алгоритмов, эффектов, и орудий самостоятельно.
Мы затронем только алгоритм, дающий герою 10 ед. здоровья.

Алгоритм

Перейдите во вкладку Behaviors (Алгоритмы) и создайте новый алгоритм.
В поле имя укажите Health +10
В поле id укажите itemHealth10
Based on (основан на) укажите buff.
В поле behavior modifications+ найдите Unit -> Vital Max Bonus -> Life и установите значение 10.
Теперь если дать этот алгоритм любому юниту его здоровье увеличится на 10, но мы дадим наш алгоритм предмету.
Перейдите во вкладку Items (предметы), найдите наш предмет Нано Броня и в поле behaviors+ добавьте только что созданный алгоритм.
Пробуем в игре. Без предмета у героя 310 ед. здоровья
Теперь подбираем предмет:
Как вы увидели у героя прибавилось 10 ед. здоровья. Кстати обратите внимание на небольшую иконку, она убирается в свойствах алгоритма. Нужно просто поставить галочку «скрытый». (Flags: Hidden)

Классы предметов

Классы это просто группа предметов. Указать класс можно как предмету, так и ячейку в сундуке (инвентаре героя). Нельзя поместить предмет одного класса в ячейку другого класса, но можно помещать предметы любых классов в ячейки без указания класса у ячейки.
Класс предмета выбирает при создание самого предмета в поле item class. А класс ячейки при создание инвентаря (мы разобрали это в самом начале).
При желание можно создать свои классы предметов, для этого есть специальная вкладка item classes. Хоть в большинстве случаев это не нужно. По умолчанию классы в игре нигде не отображаются и нужны только для правильной работы системы предметов и инвентаря.

Готовая карта

Прикрепляю готовый результат, там есть 3 предмета. первый это наша броня, второй также дает здоровье и третий добавляет атаку герою.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
15
12 лет назад
1
Нормальный гайд.
Добавлю что внешний вид инвентаря/сумок и размеры/пропорции ячеек можно как угодно изменить, покопавшись в соответствующем SC2Layout файле.
А еще - предмет может и не иметь юнита/актера, отвечающего за его внешний вид в мире. Как например в ВоВке.
И нигде не указан автор :)
0
34
12 лет назад
0
Добавлю что внешний вид инвентаря/сумок и размеры/пропорции ячеек можно как угодно изменить, покопавшись в соответствующем SC2Layout файле.
полезно, до этого там не копался )
И нигде не указан автор :)
почему
Авторы: Hellcore
1
8
12 лет назад
1
Вот почему и модмейкинг стара не развевается. Чтобы сделать простой предмет нужно целый гайд.
0
34
12 лет назад
0
deathruler:
Вот почему и модмейкинг стара не развевается. Чтобы сделать простой предмет нужно целый гайд.
больше возможностей подразумевает сложность редактора.
Да сложнее, но не настолько что бы нельзя было вообще понять. Я кстати еще неделю назад по всему рунету такую статью искал, ничего не нашел. Пришлось самому во всем разобраться и написать для остальных.
Если набить руку то предметы создавать не дольше чем в варе, только возможности гораздо шире.
2
37
12 лет назад
2
Как всё просто.
1
29
12 лет назад
1
Все дело в том, что вк3 начинался с модификаций типа "ОЛОЛО СДЕЛАЮ КОГТИ +100500 АТАКИ И ПОСМОТРЮ ЧТО БУДЕТ". И это было просто. Я в 10 лет считал себя богом РО. Те кто хотели больше - шли дальше и занимались кодом. А в ск2 редакторе порог вхождения намного выше, все эти сотни параметров вызывают только отторжение, короче сложно для новичков. Поэтому его модмейкинг так туго развивается - его держат сплошные энтузиасты и нет вливаний новой крови.
0
34
12 лет назад
0
его держат сплошные энтузиасты и нет вливаний новой крови.
ну если ты шарил в wc3, тут проблем не будет. С триггерами вообще.
Что касается РО, то это уже упирается в лень каждого конкретного человека, разобраться не так сложно. В первый раз да, но потом все очень просто и прозрачно. Еще позавчера я не имел понятия как создаются примеры, а сегодня могу спокойно делать любые уникальные предметы. Причем не дольше чем в варе.
1
29
12 лет назад
1
Hellcore, у меня и нет проблем, я же писал статью. Мне лично просто не нравится ск2. Другое дело что не все могут в код, многие даже не понимают основ программирования, т.е. логики. Им проще значения в менюшках поменять. А как поменять, если ничего непонятно?
0
16
12 лет назад
Отредактирован sashoc
0
Hellcore, Doc, Просто у некоторых вобще нет возможности поиграть в СК2, а тем более заняться там модмекейкингом, в виду их слабых компов.
А статья годная)
0
22
12 лет назад
0
Создаем предметы для новичков
мб "для новичков" в скобки?
А вот скажите, сборки в галакси быстрее делаются, чем в ворлд едиторе, или нет? В WE довольно долго...
И нигде не указан автор :)
автор указывается только при переводе
кстати, отличная работа
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.