The Sims 3, Gran Turismo и MUGEN

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » The Sims 3, Gran Turismo и MUGEN » M.U.G.E.N. » M.U.G.E.N. Руководство по созданию Арены


M.U.G.E.N. Руководство по созданию Арены

Сообщений 1 страница 2 из 2

1

          Руководство по созданию арены         
Информация предоставлена с официального сайта Elecbyte


            Введение

            Данное руководство, содержит краткую инструкцию по настройки фонов, для более подробного описания, читайте следующий пост в этой теме, а это можете пропустить. Наиболее очевидное использование заднего фона в M.U.G.E.N - это то, что вы видите за персонажами во время боя (называемое «Ареной»). Кроме того, фоны используются почти везде где-либо в M.U.G.E.N, это то, что вы видите на титульном экране, на Versus экране или на экране заставки, и т.д. Они называются «системными фонами».

            Фоны Арены - это фоны в файлах в папке Stage, например stage/kfm.def. Системные фоны можно найти в папке data/system.def. В этом руководстве мы рассмотрим, как сделать Арену, и мы увидим, как применить ту же процедуру к созданию системного фона.
Примечание автора: Иногда Арену называют уровнем, сценой, фоном, или задним фоном арены.


            Что необходимо знать

            В этом документе предполагается, что вы уже знакомы с тем, как создавать файлы формата SFF. Чтобы сделать анимированные фоны, вам нужно знать о файлах формата AIR. Прежде чем начать наше обучение, вы можете ознакомится с первыми уроками Руководства по созданию персонажа, чтобы понять некоторые основы.


            Что создает задний фон?

- Один или несколько фоновых спрайтов, оттянутый с задней части на перед, с маскировкой или без, с эффектами смещения (параллакса) или без них
- Спецификации того, как эти спрайты должны двигаться по отношению к камере
- Анимационные данные для фоновой анимации
- Спецификация ширины и высоты игрового поля
- Спецификация «уровня земли» для Арены
- Больше дополнительных настроек
- Определения фонового контроллера для более продвинутых эффектов.


            Давайте начнем

            Первое, что нужно решить, это координатное пространство, которое вы хотите использовать для фона. Это влияет на разрешение спрайтов, которые вам нужно сделать. Задайте параметр localcoord в группе [StageInfo] одному из «320 ,240», «640, 480», «1280, 720» или Full HD «1920, 1080».
Примечание автора: На самом деле можно задать абсолютно любой формат, даже кривой, если вам это надо, еще также популярен формат 400, 240.

            Простейший вид сцены просто будет иметь всего один элемент на заднем фоне. Элемент обычно является спрайтом или анимацией. Здесь мы начнем с помещения спрайта на арену. Предположим, у вас есть одиночный файл изображения, который вы хотите использовать в качестве фонового рисунка. Создайте файл с именем stage1.sff в каталоге stage/, с этим изображением в качестве спрайта 0,0. Поместите ось в центр нижнего края изображения. Теперь скопируйте data/stage0.def в data/stage1.def и откройте stage1.def в текстовом редакторе.

            В группе [Info] вы можете настроить имя сцены. Имена сцен должны быть заключены в двойные кавычки.

            Чтобы как можно быстрее запустить сцену, просто перейдите в группу [BGDef]. Измените параметр файла спрайтов, чтобы указать stage1.sff, и установите для параметра debugbg значение 1. Теперь перейдите в группу [BG 0]. Убедитесь, что параметр type установлен в состояние normal (поскольку это не элемент параллакса фона). Убедитесь, что параметр spriteno установлен на 0, 0. Установите для параметра layerno значение 0, чтобы предотвратить изображение фона перед персонажами. Наконец, установите начальный параметр start в желаемое начальное местоположение фона. Координаты измеряются от центра нижнего края экрана. Если вы разместили ось для спрайта 0,0 в нижнем центре, как было предложено, вы можете просто установить start = 0, 0.

            Для этого элемента BG могут быть установлены другие параметры. Комментарии, которые вы видите в stage1.def, дают описание функций параметров. Вот те, которые вы обычно используете:

delta = xdelta, ydelta
            Xdelta и ydelta являются масштабирующими факторами: Для каждого пикселя камера перемещается горизонтально, элемент фона будет перемещать пиксели xdelta и т. д. Если у вас есть только одно фоновое изображение, вам обычно нужно устанавливать delta в 1, 1. Использование меньших дельт для задних фоновых элементов может создать иллюзию глубины, когда у вас есть несколько элементов.

trans = none, add, add1 или sub
            Управляет прозрачностью фонового элемента.

mask = 0 или 1
            Если у вас несколько элементов, установите mask = 1 в элементах переднего плана, чтобы предотвратить рисование цвета 0 для них. Если маскирование не требуется, установите mask = 0.

tile = x, y
tilespacing = x, y
window = x1, y1, x2, y2

            Если вы не используете небольшое изображение, которое вы хотите разместить, чтобы заполнить весь фон, вы должны установить tile на 0,0.

            Ваш раздел [BG 0] будет похож на следующий (показан без комментариев):

[BG 0]
type = normal
spriteno = 0, 0
layerno = 0               
start = 0, 185
delta = 1, 1
trans = none
mask = 0
velocity = 0, 0
tile = 0, 0
tilespacing = 0, 0
window = 0,0, 319, 239

            Наконец, удалите или закомментируйте блок [BG 1], так как у нас нет других фоновых элементов.


            Настройка параметров арены

            Теперь пришло время протестировать вашу арену:
mugen kfm kfm -s stage1

            Попробуйте походить и попрыгать. В зависимости от размеров спрайта 0,0 вы можете не увидеть весь фон, иначе вы можете прокручивать мимо края фона и видеть сплошной цвет пурпурного цвета (результат настройки debugbg = 1). Чтобы устранить эту проблему и для дальнейшей настройки арены, вы можете настроить параметры, перечисленные ниже.

            В группе [Camera] параметры boundleft и boundright определяют, как далеко камера может прокручиваться влево и вправо от начала стартовой позиции. Вы должны настроить их так, чтобы камера не могла прокручиваться дальше края фона. Например, если фоновое изображение имеет ширину 1000 пикселей, а разрешение камеры составляет 640 пикселей, тогда вы должны установить boundleft на -180 и boundright = 180.

            Аналогично, параметры boundhigh и boundlow влияют на то, как далеко камера может прокручивать вертикально. Поэтому в большинстве случаев значение boundlow должно сохраняться равным 0. Если фоновое изображение имеет высоту 750 пикселей, а экран имеет высоту 480 пикселей, то значение boundhigh должно быть равно -290.

            На данный момент вы можете оставить только verticalfollow, floortension, и tension. Они используются для настройки режима камеры в соответствии с комментариями в stage0.def.

            На данный момент группы [PlayerInfo] и [Scaling] также могут оставаться без изменений.

            Группа [Bound] содержит параметры screenleft и screenright, которые управляют тем, насколько персонаж может выступать с края экрана. Этим параметрам обычно задано около 15.

            Группа [StageInfo] содержит параметры zoffset, autoturn и resetBG. Zoffset определяет наземный уровень сцены. Он измеряется в пикселях от верхней части экрана, когда камера находится в исходном положении. Вы должны настроить это значение, чтобы игроки действительно стояли на нужном уровне земли вашего изображения (чем больше значение, тем ниже стоят персонажи). Параметр autoturn заставляет игроков поворачиваться лицом друг к другу, если необходимо, и их следует оставить на 1. Параметр resetBG, если установлен в 1, сбрасывает анимацию сцены и фоновые контроллеры в исходное состояние. Поскольку в этом примере мы не будем использовать анимации или фоновые контроллеры, вы можете оставить resetBG без изменений.

            Группа [Shadow] определяет, как тени игрока отображаются на сцене. Тени игроков - это только вертикально масштабированные копии игровых спрайтов. Параметр yscale управляет коэффициентом масштабирования (где 1 означает отсутствие масштабирования). Параметр intensity может быть установлен следующим образом: intensity = N, где N - темнота тени (от 0 до 256). Чем выше число, тем темнее тень.

            Группа [Reflection] позволяет вам контролировать вид отражения на полу. Параметр intensity - это то, как видно отражение (от 0 до 256). Чем больше число, тем больше отражение.

            Как только ваш BG заработает, обязательно отключите debugbg.


            Добавление дополнительных элементов

            Чтобы добавить другой элемент фона, просто скопируйте и вставьте группу [BG 0], переименуйте группу соответствующим образом, а затем настройте параметры для нового элемента. Нужно помнить, что элементы рисуются от конца до начала в порядке их появления в фоновом файле.

            Следующий пример состоит из двух элементов: BG Sky и BG Floor. BG Sky рисуется за BG Floor и имеет меньшее значение дельты, чтобы оно выглядело так, как будто оно далеко.

[BG Sky]
type = normal
spriteno = 0, 0
start = 0, 185
delta = .25, .25

[BG Floor]
type = normal
spriteno = 1, 0
start = 0, 185
delta = 1, 1


            Элементы анимации

            Анимированные элементы фона имеют синтаксис, похожий на обычный. Параметр «type» является «anim» вместо «normal», и вместо параметра «spriteno» используется параметр «actionno». Анимированные BG всегда маскируются (это означает, что цвет 0 спрайтов - прозрачный цвет) и должен иметь действие анимации в том же файле.

[BG Anim]
type = Anim
actionno = 10       ;Номер здесь
start = 50, 0
delta = 1, 1

[Begin Action 10]  ;Номер должен быть такой же, как номер там
10,0, 0,0, 5
10,1, 0,0, 5
10,2, 0,0, 5


            Элементы параллакса

            Элементы параллакса BG могут использоваться для создания трехмерного эффекта. Основные работы элемента параллакса аналогичны нормальным элементам (спрайтам), за исключением того, что элемент параллакса имеет добавленную способность косо горизонтального вида по мере перемещения камеры.

            Чтобы представить, как это работает, мы возьмем пример - спрайты плоского пола. Представьте, что при медленном перемещении камеры верхняя часть пола прокручивается прямо на экране с одинаковым темпом (delta = 1). Теперь предположим, что нижняя часть пола прокручивается с удвоенной скоростью (delta = 2), перекручивая спрайты пола по мере его перемещения. Это создает 3D-эффект, используя двух-мерные спрайты!

            Здесь клип из stages/kfm.def (это образец арены персонажа KFM в M.U.G.E.N)

[BG Parallax Floor]
type = parallax
spriteno = 10,0
start = 0, 181
delta = .78, .75
xscale = 1, 1.75
yscalestart = 100
yscaledelta = 1.2

            Как вы заметили, параметр «type» имеет значение «parallax». Большинство других параметров такие же, как и обычные элементы BG (за исключением того, что вы не можете использовать параметр «trans»). Линией, которая делает работу параллакса, является параметр «xscale». Эти числа масштабируют значение x-delta вверху и внизу спрайта соответственно. Таким образом, для «xscale = 1, 1.75» это означает, что верхняя часть спрайта перемещается на 0,78 * 1 = .78 пикселей/единица камеры. Нижняя часть спрайта перемещается на 0,78 * 1,75 = 1,365 пикселя/единица камеры.

            Существует два необязательных параметра: «yscalestart» и «yscaledelta». Они создают вертикальную часть 3D-иллюзии. yscalestart - это процент, который представляет начальный вертикальный масштабный коэффициент, когда y-позиция камеры (назовем это Y-камеры) находится на уровне земли. yscaledelta - это количество, которое нужно добавить к коэффициенту масштабирования для каждой единицы камеры, которую камера перемещает вверх. В приведенном выше примере, если камера движется вверх на одну единицу, масштабный коэффициент будет 101,2%, а если он переместится на другую единицу, масштаб составит 102,4% и так далее. Вы можете попробовать различные значения yscalestart и yscaledelta в kfm.def, чтобы увидеть эффект.

            При разработке спрайта для элемента параллакса вы обычно хотите сохранить такую перспективу, чтобы проектируемая ширина в верхней и нижней частях спрайта соответствовала соотношению двух значений в параметре «xscale». В качестве примера вы можете взглянуть work/stage/kfm/floor0.pcx (все файлы рабочих арен KFM находятся в work/stage/kfm/).


            Системные фоны

            Системные фоны - это такие же фоны арен, только без каких-либо дельта-значений (предполагается, что камера находится в фиксированном положении). Вот и все! Data/system.def имеет несколько фонов, которые можно изменить. Приятно поиграть с ними, чтобы ознакомиться с тем, как работают фоны.


            Что делать после этого обучения

            Обязательно прочитайте полную документацию к фонам (это далее по теме). Есть много дополнительных параметров, которые вы можете использовать, чтобы ваши этапы и фоны выглядели лучше. Научитесь использовать фоновые контроллеры для создания более сложных анимаций. То, что вы узнаете о фонах, может быть применено и к заставкам storyboards.


Материал перевел и подготовил Sceletron

0

2

          Подробная документация по созданию фона/арены         
Информация предоставлена с официального сайта Elecbyte


            Введение

            Фон в M.U.G.E.N состоит из одного или нескольких фоновых элементов, и из, ноль или более фоновых контроллеров. Они объединены с настройками арены, чтобы создать внешний вид и функциональность арены для использования в M.U.G.E.N.

            Настройки арены определяют общие параметры, такие как размер фона, перемещение камеры, начальное положение персонажей и камеры по отношению к арене, цвет тени, отражение пола и т. д. Большинство боевых игр поддерживают согласованные значения этих фоновых параметров на своих составляющих этапах, особенно в отношении размера сцены и движения камеры.

            Фоновый элемент - это отдельная единица графических данных, которая показана на экране. Все видимые части сцены формируются из фоновых элементов. Каждый элемент фона имеет индивидуальные настройки для данных спрайта, прозрачности, местоположения, эффекта кафеля, скорости прокрутки относительно камеры и анимации (если применяется). Элементы «Параллакса» добавляют растровый эффект при прокрутке камеры. Фоновые элементы могут иметь любой размер, хотя на практике фоны обычно собираются вместе из нескольких элементов умеренного размера.

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

            При создании арены вы должны убедиться, что видимая область на экране «покрыта» фоновыми элементами все время. Оставшиеся отверстия на фоне вызовут эффект зеркального зала в этом месте. Включение параметра debugbg заполнит все отверстия ярким оттенком пурпурного цвета, что поможет вам найти ошибки и исправить их.

            Помимо очевидного использования на аренах, фоновые объекты используются в M.U.G.E.N для фонов во всех системных экранах, таких как титульный экран или экран выбора персонажей, а также для использования в заставках персонажей. Такие типы фона называются «системными фонами» и «фоны сюжетной линии (заставок)» соответственно. Фоновые объекты, используемые для этапов, называются «фоном арены». Помимо их предполагаемого использования, по существу нет разницы между различными типами фона. Этот документ охватывает настройки арены, а также формат фонового объекта.


            Описание настроек арены

            Настройки арены определяют связь фона с уровнем. Настройки фона должны быть в том же файле, что и арена. Есть несколько групп, которые являются обязательными настройками. (Все параметры требуются, если только они не обозначены как «необязательные»)

            Группа Info

[Info]
name = "название_арены"
            Этот параметр задает имя арены. Параметр должен быть заключен в двойные кавычки. (Русский язык не поддерживается).

displayname = "display_name"
            Этот параметр устанавливает имя для отображения названия в списке выбора арен. Параметр должен быть заключен в двойные кавычки. Если этот параметр отключен, по умолчанию используется значение name.

versiondate = version
            Этот параметр устанавливает версию арены. Принимаемые форматы - это дата (месяц, день, год) или номер версии x.xx, например. 1,23. Этот параметр предназначен для информационных целей и в настоящее время не используется движком.

mugenversion = mugen_version
            Этот параметр устанавливает номер целевой версии M.U.G.E.N, для которого предназначена данная арена. Допустимые значения: 2002,02,14 или 1.0 и 1.1. По умолчанию старые арены имеют версию - 2002,02,14.

            Номер версии 2002,02,14 ограничивает движение камеры ко всем единицам координатного пространства арены, тогда как 1.0 позволяет позиции камеры принимать дробные значения.

author = "author_name"
            Этот параметр задает имя автора арены. Параметр должен быть заключен в двойные кавычки. Этот параметр предназначен для информационных целей и в настоящее время не используется движком.

            Группа Camera

[Camera]
startx = pox_x
            Устанавливает начальное положение камеры по оси X. Должно быть установлено значение 0.

starty = pos_y
            Устанавливает начальное положение камеры по оси Y. Должно быть установлено значение 0.

boundleft = min_x
            Это минимальное значение оси X, к которому камера может перейти. Оно должен быть отрицательным. Отрегулируйте это значение, чтобы ограничить, насколько далеко может прокручиваться камера.

boundright = max_x
            Это максимальное значение оси X, к которому камера может перейти. Оно должно быть положительным. Отрегулируйте это значение, чтобы ограничить, насколько далеко может прокручиваться камера.

boundhigh = min_y
            Управляет минимальным значением оси Y, к которому камера может перейти. Оно должен быть отрицательным. Отрегулируйте это значение, чтобы ограничить, насколько далеко может прокручиваться камера.

boundlow = max_y
            Управляет максимальным значением оси Y, к которому камера может перейти. Оно всегда должен быть установлен на 0.

verticalfollow = closeness
            Это значение влияет на вертикальное перемещение камеры, чтобы уследить за самым высоким игроком. Оно должен быть установлен между 0 и 1. Значение 0 означает, что камера вообще не перемещается вверх. Более высокое значение заставляет камеру отслеживать ближе более высокого игрока. Значение 1 делает камеру отслеживающей за игроком как можно ближе.

floortension = v_dist
            Это минимальное вертикальное расстояние, которое должно быть над самым высоким игроком от пола (должно быть положительным значением), прежде чем камера начнет двигаться вверх, чтобы следовать за ним.

tension = h_dist
            Это горизонтальное расстояние, которое игрок может делать до краев, прежде чем камера начнет следовать. Допустимые значения: от 0 до 160. (для версии 1.1 значение может быть до 2 раз больше)

            Группа Bound

[Bound]
screenleft = min_dist_left
            Минимально допустимое расстояние между игроками и левым краем экрана. Должно быть положительным.

screenright = min_dist_right
            Минимально допустимое расстояние между игроками и правым краем экрана. Должно быть положительным.

            Группа StageInfo

[StageInfo]
zoffset = v_dist
            V_dist - это вертикальное расстояние уровня земли от вершины экрана, заданное в пикселях. Параметр zoffset некорректно назван, но оставлен без изменений для целей совместимости.

zoffsetlink = elem_ID
            Если этот параметр указан, он связывает значение zoffset с Y-позицией фонового элемента с указанным ID номером. Например, вы можете связать это значение фиктивного элемента (dummy) (см. другие типы фоновых элементов) с параметром sin.y, чтобы символы отображались вверх и вниз синусоидальным образом.

[Stage info]
zoffsetlink = 2      ;Ссылка на dummy объект с id = 2

;И тогда нужен контроллер Dummy

[BG Dummy]        ;Объект dummy для zoffset игрока привязан к
type  = dummy
id = 2
positionlink = 1
sin.y = -4, 120

autoturn = turn_flag
            Оставьте этот параметр равным 1, чтобы персонажи автоматически поворачивались лицом друг к другу. Установка этого значения на иное приведет к нежелательному поведению.

resetBG = reset_flag
            Если установлено значение 1, фоны будут сброшены между раундами. Если установлено значение 0, фон будет продолжать воспроизведение.

localcoord = width, height
            Размеры координатного пространства арены. По умолчанию задано значение 320, 240, если не указано.

xscale = xscale
            Горизонтальный масштабный коэффициент смещений, скоростей, спрайтов и анимаций.

yscale = yscale
            Вертикальный масштабный коэффициент смещений, скоростей, спрайтов и анимаций.

            Группа Shadow

[Shadow]
intensity = darkness_val ;(необязательный)
            Это контролирует темную тень. Допустимые значения варьируются от 0 (самый светлый) до 256 (самый темный). Значение по умолчанию равно 128, если оно отключено.

color = r,g,b ;(необязательный)
            Этот параметр влияет на цвет тени. R, g, b - цветовые компоненты (от 0 до 255) теней игроков. Чем больше число, тем меньше соответствующего цвета в тени. Чем меньше число, тем светлее появятся тени. По умолчанию 0,0,0, если не указано.

yscale = scale_y ;(необязательный)
            Это вертикальный масштабный коэффициент тени. Используйте увеличенный масштаб scale_y, чтобы увеличить длину тени. Вы можете использовать отрицательный scale_y, чтобы заставить тень падать на другую сторону игроков. По умолчанию 0.4, если отключено.

fade.range = top_y, bot_y ;(необязательный)
            Этот параметр позволяет установить диапазон видимости тени. Он используется для создания эффекта теневого замирания, когда игрок отдаляется подальше от земли. Первое значение - высокий уровень, а второй - средний. Оба представляют собой Y-координаты игрока. Тень невидима, если игрок находится выше высокого уровня и полностью отображается, если ниже среднего уровня. Тень исчезает между двумя уровнями. Если отключить, по умолчанию эффект не действует (тень всегда полностью видима). Обратите внимание, что значения Y-координат отрицательные, а TOP_Y должно быть меньше BOT_Y.

            Группа Reflection

[Reflection]
reflect = reflect_flag ;(необязательный)
            Установите reflect на 1, чтобы включить отражения теней, 0, чтобы отключить их. Отражающие тени создают эффект «блестящего пола». По умолчанию 0, если не указано.

            Группа Music

[Music]
bgmusic = bgm_filename ;(необязательный)
            Bgm_filename - это название музыкального файла для воспроизведения на арене. Музыкальные файлы обычно помещаются в каталог sound/. Если оставить bgm_filename пустым, это не приведет к воспроизведению музыки. Если музыкальный файл не существует, музыка не будет воспроизводиться. Чтобы воспроизвести аудио CD, введите номер дорожки, а затем «.da». Использование номера трека 0 будет воспроизводить случайную звуковую дорожку. Например, чтобы воспроизвести трек 3 с музыкального компакт-диска, используйте bgmusic = 3.da. Если отключить, по умолчанию не будет музыки. Файлы mp3 также спокойно проигрываются.

bgvolume = volume_offset ;(необязательный)
            Этот параметр регулирует громкость воспроизводимого звука BGM. 0 является нормальным, отрицательное значение для более мягкого, и положительное для более громкого (только для mp3, модов и CDA). Допустимые значения: от -255 до 255. Если не указано, значение по умолчанию равно 0.


            Описание фоновых элементов

            Чтобы определить фоновые элементы вашей сцены, вы должны сначала создать группу BGDef в конце вашего файла DEF. Формат выглядит следующим образом:

[BGDef]
spr = stages/my_stage.sff
debugbg = 1

            Вы должны заменить stages/my_stage.sff на путь файла SFF, содержащего ваши спрайты. Чтобы обеспечить хорошую скорость работы, не забудьте установить debugbg = 0, когда ваша арена будет завершена.

            После определения BGDef все под ним в файле DEF считается принадлежащим разделу BGDef. В разделе BGDef вы должны указать один или несколько фоновых элементов. Фоновые элементы рисуются в том порядке, в котором они появляются в файле DEF (с последующим перечеркиванием предыдущих элементов), поэтому сначала необходимо определить самые задние элементы.

            Статические элементы фона

            Формат указания элемента статического фона выглядит следующим образом.

[BG my_element_name]
type = normal
spriteno = 0,0
id = 0
layerno = 0
start = 0,0
delta = .5, .5
trans = none
mask = 0
tile = 0,0
tilespacing = 0,0
window = 0,0,319,239
windowdelta = 0,0

            Многие параметры можно отключить. Мы рассмотрим этот пример по строкам.

[BG my_element_name] ;(обязательный)
            На самом деле требуется только [BG]. My_element_name может быть любым, каким вы хотите (русский язык не поддерживается). Как правило, это помогает дать каждому элементу четкое и описательное имя, поскольку «my_element_name» - это то, что будет написано в сообщениях об ошибках.

type = normal ;(обязательный)
            Это указывает, что этот фоновый элемент является статическим спрайтом, ни анимированным, и не параллаксом.

spriteno = 0,0 ;(обязательный)
            Это указывает, какой спрайт в файле SFF будет отображать для этого фонового элемента.

id = 0 ;(необязательный)
            Указывает ID номер для ссылки на этот фоновый элемент. Это используется, чтобы позволить фоновым контроллерам определять, какие элементы они контролируют. При необходимости различные элементы фона могут совместно использовать один и тот же ID номер.

layerno = 0 ;(необязательный)
            Если layerno = 0, то этот фоновый элемент рисуется за персонажами. Если layerno = 1, то этот элемент рисуется перед персонажами. Внутри каждого слоя фоновые элементы выводятся назад в порядке, указанном в файле DEF. Layerno по умолчанию равно 0, если отключено.

start = 0,0 ;(необязательный)
            Задает исходное положение фона в отношении верхней центральной части экрана (положительные значения Y идут вниз). В этом исходном положении помещается ось фона fs (указанная для назначенного спрайта в SFF). Если отключено, начнется по умолчанию 0,0.

delta = .5,.5 ;(необязательный)
            Определяет, сколько пикселей элемент фона должен прокручивать для каждого пикселя движения камеры в горизонтальном и вертикальном направлениях, соответственно. Установка delta = 1,1 приведет к перемещению фонового элемента с той же скоростью, что и камера. Это хорошо для вещей, таких как земля под ногами персонажей. Для элементов, находящихся на расстоянии, используйте меньшие значения дельты для создания иллюзии глубины. Аналогично, элементам на переднем плане (использующих layerno = 1) обычно следует задавать delta больше 1. Установка delta на отрицательное значение возможна, но может получится непреднамеренный эффект. По умолчанию delta равна 1,1.

trans = none ;(необязательный)
            Указывает, должен ли этот фоновый элемент быть прозрачным или нет. Режимы прозрачности - none (нет), add (добавить), add1 (добавить 1), sub (под). Они не определяют прозрачность (по умолчанию), a добавление цвета add (добавляет эффект прожектора), добавление цвета add1 делает 50%, и вычитание цвета sub (создает эффект тени).

mask = 0 ;(необязательный)
            Если для маски установлено значение 1, цвет 0 спрайта не будет обрисован. Это используется при рисовании объектов, которые не имеют прямоугольной формы. По соображениям скорости маска должна быть установлена на 0, когда это не требуется. По умолчанию - 0.

tile = 0,0 ;(необязательный)
            Эта строка указывает, следует ли повторять фоновый элемент (принцип черепицы или плитки на полу) в горизонтальном и/или вертикальном направлениях соответственно. Значение 0 указывает отсутствие разбивки, значение 1 задает бесконечную черепицу, а любое значение больше 1 приведет к тому, что элемент будет чередоваться столько раз, сколько было указано. Если эта строка отключена, то не будет выполняться разбивка.

tilespacing = 0,0 ;(необязательный)
            Если разбивка включена, в этой строке указывается пространство между отдельными экземплярами плитки (tile) в горизонтальном и вертикальном направлениях соответственно. Нет эффекта, если режим плитки не включен. По умолчанию равно 0, 0. Данный параметр дословно переводится как межстрочный интервал, эффект не будет работать если параметр tile выключен

window = 0,0,319,239 ; (необязательный)
            Укажите окно с четырьмя координатами x1, y1, x2 и y2 соответственно. Учитывая верхний левый угол экрана как (0,0), эти координаты берутся для формирования прямоугольной коробки с (x1, y1) и (x2, y2) в противоположных углах. В любой момент времени будет выделена только та часть элемента фона, которая входит в этот квадрат («окно»). В этом примере указанное окно - (0,0) - (319,239), которое представляет собой весь экран. Если вам не нужен эффект окна, отключите эту строку полностью.

windowdelta = 0,0 ;(необязательный)
            Задает дельту окна элемента фона. Оно работает аналогично параметру delta для самого фона. В ограниченных ситуациях некоторые интересные эффекты могут быть достигнуты с использованием разных значений для delta и windowdelta (в сочетании с окном). Windowdelta по умолчанию равно 0,0 (без движения), если не указано.

            Анимированные элементы фона

            Формат для указания анимированного элемента фона почти точно такой же, как и для обычного элемента фона. Есть только три заметных различия, которые будут объяснены ниже.

[BG my_animated_element]
type = anim
actionno = 55

(Все остальные параметры, кроме spriteno, такие же, как для статических элементов фона).

            Во-первых, для анимации элемента необходимо указать тип anim. Во-вторых, необходимо указать «номер действия» (actionno). Это заменяет параметр spriteno, который будет использоваться для обычного элемента фона. Значение actionno должно быть для определённой анимации, в файле DEF. В этом примере, поскольку actionno равно 55, то и действие action 55 должно быть определено следующим образом:

[Begin Action 55]
0,0,0,0,5
0,1,0,0,5

            Формат такой же, как указание анимации в файле AIR, поэтому детали здесь не будут показаны. Определение действия можно разместить где угодно ниже исходной группы [BGDef]. Типичными стратегиями являются либо определение действия сразу после элемента, к которому он принадлежит, либо сбор всех действий арены в начале или в конце группы [BGDef]. Обычно собирают все действия в конце арены.

            Обратите внимание, что каждый спрайт, указанный вами в анимации, имеет свою собственную ось (указанную в файле SFF). Во время воспроизведения анимации ось каждого спрайта будет выстроена в линию, чтобы соответствовать оси самого элемента фона.

            Эффект параметра tilespacing различен для элементов типа anim по сравнению с элементами типа normal. Для элемента normal значение X этого параметра указывает горизонтальное расстояние между правым краем первой плитки и левым краем второй плитки. В случае элемента anim значение X задает горизонтальное расстояние между левым краем первой плитки и левым краем второй плитки. Аналогично это относится к значению Y. Причина разницы в том, что размер анимации не обязательно постоянный. Для элементов типа anim, использующих параметр tilespacing, требуется параметр tile.

            Последнее различие между анимированными и нормальными элементами состоит в том, что анимированные элементы всегда имеют mask = 1.

            Элементы фона параллакс

            Чтобы увидеть пример элемента фона параллакса, посмотрите на пол на арене игрока KFM. Параллакс фоновых элементов, как следует из названия, дает иллюзию параллакса (явление, что близкие объекты движутся быстрее, чем удаленные объекты, когда камера движется). Параллакс фоновых элементов должен состоять из одного спрайта (они не могут быть анимированы). Они также не могут быть прозрачными.

[BG my_parallax_element]
type = parallax
spriteno = 10, 0
xscale = 1,1.75
yscalestart = 100
yscaledelta = 1.2

            Все остальные параметры аналогичны статическим элементам, за исключением того, что trans отключен.

            Первый и второй параметры xscale масштабируют горизонтальную дельту (delta) верхнего и нижнего края фонового элемента, соответственно. (Дельта для остальной части элемента линейно интерполируется между этими двумя значениями.) Например, если мы указали delta = .78, .75, то верхняя часть спрайта будет двигаться на 0,78 * 1 = .78 пикселей на единицу камеры, а нижняя часть будет двигаться на 0,75 * 1,75 = 1,3125 пикселей на единицу камеры. Xscale отвечает за создание эффекта параллакса в горизонтальном направлении.

            Yscalestart - это инверсия вертикальной шкалы спрайта, когда камера находится на уровне земли, представленная в процентах. Например, значение 100 соответствует масштабному коэффициенту 1, а 50 соответствует масштабному коэффициенту 2. Значение по умолчанию равно 100.

            Yscaledelta - это сумма, которую нужно добавить из инвертированного масштабного коэффициента для каждой единицы камеры, которую камера перемещает вниз, представленная в процентах. Конечный масштабный коэффициент рассчитывается по следующей формуле:
scale = 1 / (yscalestart/100 + yscaledelta/100 * camera_y)

            В приведенном выше примере, если камера движется вверх на одну единицу, коэффициент масштабирования будет 1 / (1,00 + 0,012 * -1) = 1,012, а если она перемещается на другую единицу, масштаб будет равен 1 / (1,00 + .012 * -2) = 1,025 и так далее.

            Не интуитивное поведение параметров yscalestart и yscaledelta объясняется историческими причинами.

            Расширенные параметры

            При необходимости эти параметры могут быть добавлены в любой элемент фона.

id = id_number
            Это указывает ID номер для фонового элемента. Несколько элементов могут использовать один и тот же идентификационный номер. Цель ID номера - дать возможность фоновым контроллерам указать, с какими элементами они работают. По умолчанию 0, если не указано.

positionlink = link_flag
            Установите positionlink на 1, чтобы зафиксировать позицию этого элемента в позиции элемента, непосредственно предшествующего ему в файле DEF. Если установлено значение 1, значения параметра start для текущего элемента рассматриваются как смещение от позиции предыдущего элемента. В этом случае параметр delta не будет иметь никакого эффекта. Это полезно для того, чтобы заставить большие группы элементов двигаться согласовано; Если вы редактируете start и delta значения первого элемента в цепочке positionlink, эффекты будут видны по всем элементам этой последовательности. По умолчанию значение positionlink равно 0, если оно не указано.

velocity = vel_x, vel_y
            Определяет начальные X- и Y-скорости для фонового элемента (по умолчанию они равны 0). Эта функциональность также включена в фоновый контроллер VelSet.

sin.x = amplitude, period, phase
            Определяет синусоидальное движение элемента в направлении X. Первым параметром является амплитуда, второй параметр - период движения в игровом счете (ticks), а третий параметр указывает начальный фазовый сдвиг синусоидального движения (по умолчанию 0, т. Е. Элемент будет начинаться в точную середину его синусоидального диапазона). Этот параметр в основном заменяется фоновым контроллером SinX.

sin.y = amplitude, period, phase
            Работает так же, как и параметр sin.x, но в направлении Y.

            Другие типы фоновых элементов

            Помимо normal, anim и parallax типов фона, существует также dummy тип. Как следует из его названия, фон фиктивного dummy типа не имеет связанной графики. Позиция dummy элемента затрагивается так же, как и любой другой тип элемента. В настоящее время единственным средством для фиктивного элемента является использование в качестве заполнителя эффекта параметра zoffsetlink в группе StageInfo.


            Фоновые контроллеры

            Фоновые контроллеры работают с интервальным таймером, который начинается с 0, когда начинается раунд, и увеличивается на 1 для каждого игрового счета (tick). Когда таймер достигает времени запуска контроллера, контроллер становится активным. Когда таймер достигает конечного времени контроллера, контроллер отключается. Если для контроллера задано положительное время цикла, тогда внутренний таймер контроллера сбрасывается до 0, когда достигается время цикла.

            Фоновые контроллеры должны быть сгруппированы под родительским BGCtrlDef. Вы можете использовать несколько BGCtrlDefs для разделения контроллеров на несколько групп. Каждый блок BGCtrlDef и фоновые контроллеры могут быть размещены в любом месте раздела [BGDef] файла DEF. Общий формат этих блоков выглядит следующим образом.

[BGCtrlDef my_controller_name]
looptime = GLOBAL_LOOPTIME
ctrlID = DEFAULTID_1, DEFAULTID_2, ...

[BGCtrl my_controller_1]
type = CONTROLLER_TYPE
time = START_TIME, END_TIME, LOOPTIME
ctrlID = ID_1, ID_2, ...
;(параметры controller-specific здесь)

[BGCtrl my_controller_2]
;(и т.д.)

            GLOBAL_LOOPTIME указывает количество игрового времени (тиков), после которых BGCtrlDef должен сбросить свой внутренний таймер, а также внутренние таймеры всех содержащихся в нем BGCtrls. Чтобы отключить цикл, установите его в -1 или отключите параметр.

            START_TIME, END_TIME и LOOPTIME - это время, когда фоновой контроллер должен начать действовать, прекратить действие и сбросить свой внутренний таймер соответственно. Если LOOPTIME отключено или установлено на -1, тогда фоновый контроллер не сбросит свой собственный таймер. (Его таймер все еще может быть сброшен его родительским BGCtrlDef, если будет указан GLOBAL_LOOPTIME). Контроллер фона будет постоянно активен между START_TIME и END_TIME. START_TIME требуется, но если END_TIME отключено, то по умолчанию будет установлено значение START_TIME (поэтому контроллер будет активен только для 1 тика).

            ID_1, ID_2, и т.д., указывают идентификаторы фоновых элементов для этого контроллера. Этот список, если задан, переопределяет список по умолчанию, указанный в BGCtrlDef. Максимальное количество идентификаторов - 10.

            Ниже приведен список типов (type) BGCtrl и связанных с ними параметров.

- null
            Как следует из названия (ноль), этот контроллер ничего не делает. Это полезно в основном для отладки, когда вы хотите быстро отключить контроллер, не комментируя все это. Просто измените тип на null и закомментируйте старый тип (type). Этот контроллер не имеет дополнительных параметров.

- Visible
value = visible_flag
            Устанавливает статус видимости элементов.

            В то время как активный, этот контроллер устанавливает, чтобы затронутые элементы фона были невидимыми (0) или видимыми (1). Время по-прежнему будет проходить для невидимых элементов (что означает, в случае анимированных элементов, что анимация будет продолжать развиваться, даже если ее не видно).

- Enabled
value = enabled_flag
            Устанавливает активированный статус элементов.

            Этот контроллер отключает (0) или разрешает (1) затронутые элементы фона. Когда элемент отключен, он невидим и время для него не проходит (поэтому в случае анимированных элементов любая анимация приостанавливается, когда она отключена).

- VelSet
x = vel_x
            Устанавливает скорость элементов по оси X.

y = vel_y
            Устанавливает скорость элементов по оси Y.

            Этот контроллер установит скорость x/y затронутых фоновых элементов на указанные значения. Скорость измеряется в пикселях за игровое время (tick). Вы можете указать один или оба параметра x и y. Или если отключить, скорость элемента в этом направлении не изменится.

- VelAdd
x = vel_incr_x
            Изменяет скорость элементов по оси X на vel_incr_x.

y = vel_incr_y
            Изменяет скорость элементов по оси Y на vel_incr_y.

            Этот контроллер добавит указанные значения к скорости x/y затронутых фоновых элементов. Вы можете указать один или оба параметра x и y. Или если отключить, скорость элемента в этом направлении не изменится.

- PosSet
x = pos_x
            Устанавливает положение элементов по оси X.

y = pos_y
            Устанавливает положение элементов по оси Y.

            Этот контроллер установит координаты x/y затронутых фоновых элементов на указанные значения. Вы можете указать один или оба параметра x и y. Или если отключить, то координаты элемента на этой оси не изменятся.

- PosAdd
x = x_displacement
            Вытесняет X-координату элементов.

y = y_displacement
            Вытесняет Y-координату элементов.

            Этот контроллер будет замещать координаты x/y затронутых элементов фона на указанные значения. Вы можете указать один или оба параметра x и y. Или если отключить, то координаты элемента на этой оси не изменятся.

- anim
value = action_no
            Изменяет анимацию, отображаемую затронутыми элементами, на указанный номер анимации.

- SinX
value = амплитуда, период, смещение
            Изменяет амплитуду, период и смещение фазы для синусоидальных движений затронутых элементов в направлении X. Эти значения имеют тот же эффект, что и для sin.x параметра элемента фона.

- SinY
value = амплитуда, период, смещение
            Изменяет амплитуду, период и смещение фазы для синусоидальных движений затронутых элементов в направлении Y. Эти значения имеют тот же эффект, что и для sin.y параметра элемента фона.


            Простой пример

            Предположим, мы хотим, чтобы человек шел туда и обратно от (-300,0) до (300,0), прямо за главными персонажами. Для выполнения этой задачи мы будем использовать фоновые контроллеры.

            Сначала определите ходячую анимацию. Скажем, что гуляющие спрайты персонажа составляют от 10,0 до 10,3, и они обращены направо.

; Прогулка направо
[Begin Action 10]
10,0,0,0,6
10,1,0,0,6
10,2,0,0,6
10,3,0,0,6

; Прогулка налево
[Begin Action 11]
10,0,0,0,6,H
10,1,0,0,6,H
10,2,0,0,6,H
10,3,0,0,6,H

            Теперь запустите персонажа на крайнем левом краю его диапазона.

[BGDef]
(...)

[BG Peregrinator]
type = anim
actionno = 10
id = 10
start = -300, 0
delta = 1,1

            Давайте дадим Peregrinator комфортную скорость передвижения 2 пикселя за игровой тик (tick). Одностороннее расстояние для его прогулки - 600 пикселей, что займет 300 тиков. Всего потребуется 600 тиков, чтобы совершить дорогу туда и обратно. Используя эти знания, настройте фоновые контроллеры соответственно: поскольку вся ситуация повторяется каждые 600 тиков, мы можем установить глобальное время цикла на 600.

[BGCtrlDef Peregrinator]
; Сбросьте все событие на каждые 600 тиков
looptime = 600
ctrlID = 10

; Установите скорость 2 пикселя в секунду направо на момент времени 0.
[BGCtrl Walk Right]
type = VelSet
time = 0
x = 2

; Установите скорость 2 пикселя/сек налево в момент времени равным 300.
[BGCtrl Walk Left]
type = VelSet
time = 300
x = -2

            Вот и все! Вы можете сделать прогулку лучше, если Peregrinator замедлит работу и отобразит поворотную анимацию на каждом конце своей прогулки. Это потребует использования контроллеров VelAdd и Anim. Если вы хотите, чтобы Peregrinator останавливался и поворачивал через равные промежутки времени, когда он переходит с одного конца на другой, вы бы могли создать больше контроллеров VelSet и Anim со своими индивидуальными циклами (чтобы повторять поведение через равные промежутки времени).


Материал перевел и подготовил Sceletron

0


Вы здесь » The Sims 3, Gran Turismo и MUGEN » M.U.G.E.N. » M.U.G.E.N. Руководство по созданию Арены


Рейтинг форумов | Создать форум бесплатно