Итак,
откроем наш временный проект, в нём трек Nylon-Str.
Gt,
уменьшим размер нот значками «+ и - » внизу окна справа (или I,
O),
чтобы можно было скопировать такты с 1 по 20:
Выделяем курсором ноты,
копируем ноты из трека временного проекта (Ctrl+C).
Переходим в наш проект, трек гитары, и вставляем ноты из буфера обмена (Ctrl+V).
Проверьте темп проектов! Окно:
. Если Вы
хотите изменить темп композиции, то введите другие цифры.
Под
треком Piano Roll расположен трек CC
(Controller Curve,
трек контроллеров огибающей).
Контроллеры, это устройства, управляющие свойствами ноты в
процессе проигрывания.
Например, контроллер громкости, баланса, панорамы, Expression
(выразительность), ну, и так далее. Создадим контроллер Expression.
Щелкаем правой кнопкой по СС треку, Add New CC Trek…
и, в открывшемся окне, выберем контроллер Expression.
Разворачиваем трек, нажимаем “Ins”,
и выделяем курсором область справа налево.
Получаем нечто похожее на:
Подведите курсор к огибающей, и можете изменить её форму. В
данном случае наша гитара начнёт играть тихо, а затем громкость
(выразительность) постепенно увеличится. Таким же образом можно использовать и
другие контроллеры.
Добавим еще два трека (почему два, расскажу ниже), канал 2 и 3. Делаем это так. Кликаем правой кнопкой по треку – Add Pattern Part(s)…
откроется окно свойств нового трека. Назначим ему канал 2, и нажмем Create New Part.
Так же добавляем третий трек на канал 3.
Но к новым трекам еще не подключен ни один инструмент! Попробуем
подключить инструмент из банков Готики. Проще всего это сделать перетаскиванием
банка в наш проект:
Перетащим банк струнных
инструментов __DLS_Celli.dls.
Обратите внимание, что банк автоматически преобразуется из RunTime
(*.dls)
в файл проекта __DLS_Celli.dlp (*.dlp).
Подключаем новый инструмент, кликая по полю над «клавишами
пианино», и, в открывшемся окне выбираем из списка банк __DLS_Celli. Поняли,
почему два новых трека? Почти все инструменты Готики состоят из двух «половинок»
левый и правый. Назначаем их, соответственно на второй и третий трек.
Теперь попробуйте нарисовать ноты в новых треках сами, или скопируйте их из
образца сегмента: Terra_std.sgt.
Band
Editor мы уже
рассмотрели выше. Он нужен для изменения панорамы и громкости инструментов в
ансамбле.
Поскольку у нас всего 10 тактов, проверьте в свойствах Pattern1
(F11)
количество тактов:
Обратите
внимание на параметры Groove Range Low и Hi,
и кнопки Intro,
Fill,
Break и End,
они в будущем нам пригодятся!
Теперь создайте еще два Pattern’a,
и назовите их Fight и Trans.
Заодно переименуйте для удобства Pattern1
в Terra_Std. Это будут будущие «боевой» и «переходной» и «основной» сегменты. В
свойствах сегментов (F11)
назначьте длительность Fight – 4 такта, Trans
– 1 такт.
И
добавьте еще один банк Готики, так, как уже писалось выше (перетакиванием),
например DLS_Percussions.dls из папки NewWorld.
Теперь отвлечемся немного, и разберем такое понятие, как канал – Pchannel.
Pchannel,
это канал вывода звука для назначенных инструментов. Поэтому, если Вы хотите,
чтобы у Вас в проекте звучали разные инструменты, назначайте их на разные Pchannel,
иначе ничего не получится, будет звучать только какой-нибудь один инструмент.
Pchannel в DirectMusic можно назначить до 99, так что
недостатка в каналах не будет.
Теперь мы приблизились к завершению нашего проекта.
Посмотрите, что у нас получилось:
Terra.stp, это будущий runtime
файл -_Terra.sty.
Вообще, трек стиля можно сравнить с папкой, в которую свалены различные мелодии.
А для того, чтобы упорядочить их, нужен сегмент, *.sgt.
Два
сегмента у нас уже созданы. Terra_Std
и Fight.
В
правой части окна показаны все Patterns,
входящие в наш проект. Проверьте их свойства (F11).
Свойства хорошо видны в правом окне на рисунке сверху. Все значения должны быть
именно такими, как указано (разумеется, за исключением длительности паттерна (Lenght)
и размерности такта (Time
Sig)). По значению Groove Range звуковой движок игры определяет, когда какой
сегмент воспроизводить. Буквы F
и Е говорят, что данный
Pattern является «проигрышем» (Fill)
и «концовкой» (End).
Рис. ниже:
Надеюсь, все более или менее понятно. Не будем
углубляться в дебри.
Теперь
предпоследний этап, сохранение проекта в Runtime формате. Кликаем правой кнопкой по _Terra.stp
и сохраняем как _Terra.sty
(соответственно Fight.sgp - Fight.sgt
и Terra_std.sgp - Terra_std.sgt)
в директорию Music Готики. Можно создать отдельную папку с
названием Вашего мода, например: \Gothic II\_work\data\Music\Terra. Но тогда Вам
необходимо поместить в эту папку ВСЕ Runtime файлы проекта.
Теперь можно послушать готовые сегменты с помощью
Segment_Player или установив
плагин для
Winamp’a,
но Winamp чаще «вылетает».
Вот так выглядит готовый проект:
Немного о том, как включить Ваши сегменты в игру.
Текст ниже, перевод из немецкого тутора с
http://wiki.worldofgothic.de/
Музыкальные зоны
Какая музыка звучит в игре Gothic в фоновом режиме,
определяется объектами класса oCZoneMusic. Они имеют следующие важные свойства:
Bounding Box определяет размер музыкальной зоны.
Символ за последним подчеркиванием в Vobname обозначает
музыкальную тему.
Например, OREBARONS_OR - означает музыкальную тему "OR",
NEWCAMP_NCO относится к теме "NCO". Предшествующая часть названия выбирается
свободно, и не имеет никакого воздействия на выбор фоновой музыки.
С помощью приоритета возможно определять приоритет одной зоны над
другой.
Если игрок находится в Bounding Box больше, чем одной
музыкальной зоны, то зона с наивысшим приоритетом получает контроль. Пример:
Внутренний замок (тема OR) в старом лагере (тема OC)
Посредством объекта класса oCZoneMusicDefault, определяется
стандартная музыкальная зона, которая имеет значение для всего уровня. Хотя для oCZoneMusicDefault и имеются свойства приоритета и Bounding Box, но они не имеют
никакого значения (смысла).
Музыкальная тема состоит не из отдельной мелодии, а из шести,
которые выбираются в зависимости от текущих сценарных ситуаций.
Может назначаться стандартная тема для дня или ночи, а также
фрагменты для боевых и экстренных ситуаций соответственно.
Это определяется в скрипте MusicInst.d (system/MUSIC/musicinst.d
инстанциями в system/_INTERN/Music.d)
Определен класс C_MUSICTHEME (существует прототип C_MUSICTHEME_DEF со значениями по умолчанию) со следующими именами:
<Musikthema>_Day_Std (Стандартный
днём)
<Musikthema>_Day_Thr (Опасность днем)
<Musikthema>_Day_Fgt (Сражение
днём)
<Musikthema>_Ngt_Std (Стандартный
ночью)
<Musikthema>_Ngt_Thr (Опасность ночью)
<Musikthema>_Ngt_Fgt (Сражение ночью)
Нет необходимости определять каждую из этих шести инстанций.
Если отсутствует инстанция, то Gothic (если в есть наличии) использует
подходящую стандартную инстанцию музыкальной зоны.
Он должен находиться в в подкаталоге _work/DATA/Music. В Mod'ах
должен использоваться подкаталог с именем Mod'а. Возможно, необходима коллекция DLS (*.dls) и стилей (*.sty), которая также должна находиться в _work/DATA/Music.
Gothic может работать только с Runtime файлами, *.sgp, *.dlp или *.stp не должны
находиться в папке MUSIC!
vol - число от 0 до 1, которое определяет громкость музыки.
Обычно оно стоит на 1 (максимуме).
loop указывает, должен ли проигрываться файл сегмента только
однажды (0) или в бесконечном цикле (1).
С trans Type и transSubType можно управлять видом перехода к
завершающей мелодии.
Возможные значения находятся как константы (TRANSITION_TYPE_* и,
соответственно, TRANSITION_SUB_TYPE_ *) в Music.d.
Значения по умолчанию от reverbMix и reverbTime обычно не должны
быть изменены.
Теперь
последний штрих, включение Ваших сегментов в файл Music.dat
Готики и создание музыкальной зоны в
Spacer’e.
Теперь в Spacer’e
назначайте зону oCZoneMusic
с таким, например названием: MYTHEMA_TER
и определяйте её
размер. Теперь, при входе в зону, в ней будет звучать Ваша музыка. Если Вы
хотите назначить Вашу мелодию, как oCZoneMusicDefault, соответственно,нужно это
отразить в скрипте MusicInst.d
(instance DEF_DAY_STD(C_MUSICTHEME_STANDARD))
Ну,
вот, в основном, и все про создание музыки для Вашего мода. Все остальное
зависит от Вашей фантазии, вкуса, музыкальных способностей и желания более полно
изучить DirectMusic Producer.