Полезные приёмы в редакторе StarCraft 2

Содержание:
Использование родителей в данных
Рекомендации по работе с данными в редакторе StarCraft 2
Если вы столкнулись с тем, что в ваших данных много повторяющихся данных, например, объекты с одинаковыми свойствами, попробуйте воспользоваться методом обобщения через родительские объекты. Это значительно упростит и ускорит работу с данными.
Шаг 1: Создание родительского объекта
Создайте шаблонный объект, который будет служить основой для всех ваших юнитов. Назовите его, например, "Standard Unit Template". В этом шаблоне соберите все общие данные, которые будут присутствовать во всех юнитах. Это могут быть:
  1. Стандартная панель приказов с кнопками: , , , , .
  1. Стандартные способности атаки, перемещения и движения.
  1. Дефолтная скорость перемещения и другие базовые параметры.
Шаг 2: Наследование свойств от родительского объекта
При создании новых игровых юнитов используйте этот шаблонный объект как основу. Все свойства, заданные в родительском объекте, будут автоматически наследоваться новым юнитом. При этом вы сможете добавлять уникальные свойства и изменять параметры, которые не наследуются.

Преимущества использования родительских объектов:

  1. Отсутствие дублирования данных: Каждый новый юнит будет использовать только уникальные данные, что исключает повторение информации.
  1. Упрощение работы: Все базовые свойства и параметры будут заданы один раз в родительском объекте, что упрощает их настройку и управление.
  1. Гибкость: Вы можете легко изменять общие свойства для всех юнитов, просто отредактировав родительский объект.
  1. Универсальность: Вы всё ещё сможете редактировать каждый объект индивидуально

примеры

  • Как пример, можно создать общего родительского юнита, в котором будут установлены самые базовые настройки.
  • Можно сделать родительского юнита для наземных единиц, наследуемый от общего родителя единиц из пункта 1, настроить в нём только то, что касается только наземных единиц (Флаги выставить, перекрываемые уровни на землю настроить, и прочее)
  • Можно сделать родительского юнита для воздушных единиц, наследуемый от общего родителя единиц из пункта 1, со всеми настройками для воздушных единиц
  • Всё тоже самое можно сделать для зданий, чтобы например родительский объект зданий имел в панели приказов кнопки отмены строительства, смены рабочего, и прочее.

Данные для наземных единиц
    <CUnit default="1" id="CommanderGround">
        <FlagArray index="ArmySelect" value="1"/>
        <Speed value="2.25"/>
        <Acceleration value="1000"/>
        <CostCategory value="Army"/>
        <AttackTargetPriority value="20"/>
        <Collide index="Ground" value="1"/>
        <Collide index="ForceField" value="1"/>
        <Collide index="Locust" value="1"/>
        <PlaneArray index="Ground" value="1"/>
        <AbilArray Link="move"/>
        <AbilArray Link="stop"/>
        <AbilArray Link="attack"/>
        <CardLayouts>
            <LayoutButtons Face="MovePatrol" Type="AbilCmd" AbilCmd="move,Patrol" Row="0" Column="3"/>
            <LayoutButtons Face="MoveHoldPosition" Type="AbilCmd" AbilCmd="move,HoldPos" Row="0" Column="2"/>
            <LayoutButtons Face="Attack" Type="AbilCmd" AbilCmd="attack,Execute" Row="0" Column="4"/>
            <LayoutButtons Face="Stop" Type="AbilCmd" AbilCmd="stop,Stop" Row="0" Column="1"/>
            <LayoutButtons Face="Move" Type="AbilCmd" AbilCmd="move,Move" Row="0" Column="0"/>
        </CardLayouts>
        <CargoSize value="2"/>
        <EditorCategories value="ObjectType:Unit,ObjectFamily:Coop"/>
        <StationaryTurningRate value="990"/>
        <TurningRate value="990"/>
        <Fidget>
            <ChanceArray index="Anim" value="33"/>
            <ChanceArray index="Idle" value="33"/>
            <ChanceArray index="Turn" value="33"/>
        </Fidget>
    </CUnit>
Данные для воздушных единиц
<CUnit default="1" id="CommanderAir">
        <FlagArray index="ArmySelect" value="1"/>
        <Speed value="2.25"/>
        <CostCategory value="Army"/>
        <AttackTargetPriority value="20"/>
        <AbilArray Link="move"/>
        <AbilArray Link="stop"/>
        <AbilArray Link="attack"/>
        <CardLayouts>
            <LayoutButtons Face="MovePatrol" Type="AbilCmd" AbilCmd="move,Patrol" Row="0" Column="3"/>
            <LayoutButtons Face="MoveHoldPosition" Type="AbilCmd" AbilCmd="move,HoldPos" Row="0" Column="2"/>
            <LayoutButtons Face="Attack" Type="AbilCmd" AbilCmd="attack,Execute" Row="0" Column="4"/>
            <LayoutButtons Face="Stop" Type="AbilCmd" AbilCmd="stop,Stop" Row="0" Column="1"/>
            <LayoutButtons Face="Move" Type="AbilCmd" AbilCmd="move,Move" Row="0" Column="0"/>
        </CardLayouts>
        <EditorCategories value="ObjectType:Unit,ObjectFamily:Coop"/>
        <StationaryTurningRate value="990"/>
        <TurningRate value="990"/>
        <PlaneArray index="Air" value="1"/>
        <Collide index="Flying" value="1"/>
        <Mover value="Fly"/>
        <Height value="3.75"/>
        <VisionHeight value="4"/>
    </CUnit>
Данные ваших единиц, созданных по родителю
<CUnit id="Marine" parent="CommanderGround"/>
<CUnit id="Marauder" parent="CommanderGround"/>
<CUnit id="Reaper" parent="CommanderGround"/>
<CUnit id="Firebat" parent="CommanderGround"/>
<CUnit id="Medic" parent="CommanderGround"/>

<CUnit id="VikingFighter" parent="CommanderAir"/>
<CUnit id="Banshee" parent="CommanderAir"/>
<CUnit id="Battlecruiser" parent="CommanderAir"/>
<CUnit id="Medivac" parent="CommanderAir"/>
В данном примере можно наблюдать, что такие параметры, как:
  • стандартные элементы управления движением (перемещение, атака, патрулирование, остановка, удержание позиции)
  • Способности;
  • Скорость;
  • Коллизия;
  • другие базовые характеристики
сосредоточены в едином родительском объекте и НЕ повторяются для всех остальных единиц.
Эта функция позволяет быстро изменять стандартные параметры для всех юнитов, чтобы они соответствовали заданным значениям. Это экономит время и упрощает процесс настройки, делая его более удобным и эффективным.
И не только такое с юнитами проворачивать можно, но и с любыми другими данными

Остались вопросы? Задайте их сообществу! Задать вопрос
`
ОЖИДАНИЕ РЕКЛАМЫ...