Новости/News | | Туториалы/Tutorials | | Форум/Forum | | ЧаВо/FAQ | | Патчи/Patches | | Файлы/Downloads | | Ссылки/Links | | Авторы/About |

Различные Keypoints

Содержание

Введение

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

PathPoint и ObjectPath - лучшее для оживления уровня

Привлек Ваше внимание? PathPoint - это лучшее "украшение", которое Вы можете использовать для вещей, подобных машинам и шатлам. Они действуют по тому же принципу что и InterpolationPoints с тем лишь отличием, что InterpolationPoints отвечают за движение игрока по "тропинке" (path), а PathPoints - за движение мувера. Если Вы прочитали туториал по InterpolationPoints, то Вы сможете в полной мере оценить пользу этих актеров. Если Вы при создании, например, лодки, использовали простой мувер, то ее движение будет ограничено указанными кадрами-ключами (keys) и она при этом будет выглядеть неестественно - ее движения будут искусственными и "наигранными". Вот в этом случае на помощь приходят актеры PathPoint - с их помощью Вы можете указать "тропинку", вдоль которой будет перемещаться Ваша лодка, и поверьте, это будет выглядеть намного реалистичнее. Наверное, конкретный пример Вам покажется более наглядным, поэтому, не теряя времени, перейдем прямо к делу, например, попытаемся проложить "фарватер" бомбардировщику:

  1. Для начала, создайте комнату размером, достаточным для "крохотной" бомбежки, например, 768x1024x10000 будет вполне достаточно;
  2. Соорудите некое подобие самолета (у кого как получится :) и добавьте его в качестве мувера (mover). Абсолютно не лишним будет решение установить свойство bDynamicLightMover равным true (в разделе Mover) для включения динамического освещения мувера, а также изменить значения атрибутов в разделе Lighting. Для полноты картины, Вы можете залезть в раздел Movement и задать вращение/кручение самолета (для этого поменяйте значения yaw и pitch). Затем дайте муверу имя (tag) и в разделе Object установите InitialState в положение None. Если хотите, можете еще "прикрутить" к муверу AmbientSound;
  3. PathPoint: мувер будет двигаться вдоль дорожки "выложенной" этими актерами (actors). Если Вы хотите, чтобы самолет просто пролетел прямо из одного конца комнаты в другой, то Вы можете воспользоваться стандартными кадрами-ключами (keys) мувера. Но если Вы задумали полет через извилистый каньон, то лучше для этой цели использовать PathPoint.

    ПРИМЕЧАНИЕ:

    На одном уровне может быть максимум 35 актеров PathPoint. Причем первый и последний PathPoint - "фальшивые", т.е. в процессе движения не участвуют. Это означает, что если Вы хотите, чтобы при движении самолета, мувер "пролетел" через 10 узловых точек, Вам необходимо будет установить 12 PathPoint, с учетом первого и последнего. Для нормальной работы, уровень должен содержать как минимум 4 узловые точки.

    Установите необходимое количество PathPoints в Вашем уровне. Например, если Вы хотите, чтобы самолет перемешался сначала слева направо, затем справа налево и спикировал, то просто добавьте во все ключевые положения актер PathPoint. Для пикирования сделайте V-образную траекторию. Первый PathPoint установите вне уровня (впрочем, как и мувер самолета), а следующий в том месте, где Вы хотите, чтобы бомбардировщик начал свое движение.

    Свойства PathPoint:

    Важно помнить, что первый и последний PathPoint не должны иметь CurveSpeed и SpeedU. Для них следует установить только значение Sequence_Number. CurveSpeed следующего PathPoint (номер которого 1) будет отвечать за исходное направление движения, в то время как CurveSpeed предпоследнего - за конечное.

  4. ObjectPath: после установки всех PathPoints необходимо добавить актер ObjectPath (он находится в разделе KeyPoints браузера актеров). Зайдите в его свойства и перейдите к разделу Path. Здесь Вы увидите три группы атрибутов:

    Теперь зайдите в раздел Advanced в свойствах ObjectPath и здесь установите значение bStatic в положение false (странно, что ObjectPath изначально предназначенный для движения, имеет bStatic равный true по умолчанию).

    И последнее: установите в доступном месте датчик (trigger), в поле Event впишите имя (tag) актера ObjectPath и всех PathPoint (их имена должны совпадать) и Ваш мини Перл-Харбор готов к употреблению. Перестройте и потестируйте Ваш уровень - при активации датчика самолет должен прийти в движение.

Заметки на полях:

AmbientSound

Этот актер просто издает звуки. Используйте его как можно чаще на уровне - чувство реальности, которое он добавляет, стоит того. Настройка AmbientSound похожа на установку окружающего звука для любого актера. Откройте его свойства и перейдите в раздел Sound. Затем откройте броузер звуков и выберите необходимый звук. Теперь вернитесь в окно настроек звука и в поле AmbientSound нажмите копку Use. Также, не забудьте настроить высоту звука (pitch), его громкость и радиус. Например, если на Вашей карте присутствует вентилятор, он будет выглядеть, по крайней мере, смешно, если не будет издавать никаких звуков. Вы можете, таким образом, установить для него несколько различных звуков (что намного удобнее, нежели указать один звук для самого актера-вентилятора). Радиус звука играет большую роль. Я обнаружил, что многие мапперы (за исключением профи конечно) вообще игнорируют AmbientSound актеры, но, поверьте, они добавляют столько в атмосферу уровня, что не стоит ими пренебрегать.

ПРИМЕЧАНИЕ:

После того, как Вы установили и настроили актеры AmbientSound на уровне, включите режим реального времени (нажмите иконку в виде джойстика в заголовке окна 3D вида) и "полетайте" по Вашему уровню. Таким образом, Вы сможете оценить озвучку уровня, и, если появится необходимость, подправить соответствующие настройки.

TriggeredAmbientSound

Должен ли я говорить, что он делает? Он начинает издавать звуки при возбуждении события. Какой в этом смысл? Допустим, в качестве задания в Assault уровне, Вам необходимо уничтожить механизм. Для механизма установлен нормальный звук его работы, но после того, как механизм уничтожен, Вы можете включить звук шипения. Для этого установите переменным binitiallyOn и bPlayOnceOnly значения равные false. Отличный эффект!

BlockAll

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

СОВЕТ:

Для того, чтобы точно рассчитать блокирующий радиус, выберите актер BlockAll в окне верхнего вида (Top), откройте меню актеров и включите RadiiView. При этом вокруг актера BlockAll появится красная окружность, которая и покажет Вам текущий радиус.

ПРИМЕЧАНИЕ:

Не смотря на то, что этим пользоваться уже нет необходимости, но актер BlockMonsters блокирует всех Pawn кроме игрока, а BlockPlayer - наоборот, блокирует только игрока.

DynamicAmbientSound

Этот актер издает выбранные случайным образом звуки. Проигрывание самого звука, в свою очередь, зависит от playProbability фактора.

Например, я использовал следующие настройки:

ПРИМЕЧАНИЕ:

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

Earthquake

Создает эффект землятресения. Если, при этом, для переменной bThrowPlayer установлено значение true, то игрока также будет кидать в стороны (неужели? А я и не думал :) Свойство Duration отвечает за длительность землятресения. Переменная Magnitude отражает величину эффекта, а Radius - соответственно, радиус землятресения. Оба эти значения зависят от конкретной ситуации, так что подбирайте необходимые значения самостоятельно. Запускайте землятресения при помощи обычных датчиков. Но имейте в виду, что этот актер "трясет" только игрока.

CH_Earthquake

Этот актер обладает всеми свойствами предыдущего. Единственное отличие - это новая переменная bThrowStuff. Если установить для нее значение true, то при землятресении декорации на уровне будет раскидывать в стороны. Очень эффектно запускать такое замлятресение в комнате, набитой различными декорациями.

ThrowStuff

Повторяет функциональность предыдущего актера.

LocationID

LocationID работает также, как и строка Location у ZoneInfo актера. Единственное отличие в том, что в данном случае нет необходимости ставить зонные порталы, т.к. Вы можете сами настраивать радиус зоны. Очень удобно использовать для огромных уровней. Добавьте этот актер в уровень, откройте его свойства и перейдите в раздел LocationId. Здесь Вы найдете два свойства: LocationName и Radius. В поле LocationName введите имя зоны, а в поле Radius укажите радиус этой зоны. Это используется, например, во время переговоров между игроками для указания своего месторасположения.

SpectatorCam и QuakeCam

Используется только в финальных Assault заставках. Более подробно читайте в туториалах по построению Assault уровней.

ThingFactory и CreatureFactory

Установите датчик (trigger) для включения соответствующей фабрики (factory). Затем установите SpawnPoint (найдите его в броузере актеров, в разделе Navigation) и укажите ему такое же имя (Tag), что и для ThingFactory/CreatureFactory. Затем настройте в свойствах SpawnPoint какой объект Вы хотите породить. Также Вы можете настроить Rotation рождаемого объекта, развернув SpawnPoint актер в необходимом направлении.

Если у Вас возникли какие либо вопросы, либо Вы желаете получить информацию о других актерах из раздела KeyPoint cмело пишите мне на email.

Автор

Indian "Machismo" Fakir
cool_machismo@yahoo.com
Перевод сделан 32_Pistoleta с разрешения автора.

Хостинг от uCoz