1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

UnrealEd: как с ним работать

Тема в разделе "Мастерская", создана пользователем LipSheZ, 8 июн 2008.

?

Какой редактор Вы предпочитаете?

  1. UnrealEd 1.0

    10,9%
  2. UnrealEd 2.0

    95,7%
Можно выбрать сразу несколько вариантов.
  1. LipSheZ Пахан

    LipSheZ

    Регистрация:
    1 окт 2007
    Сообщения:
    908

    Тема, в которой можно задавать вопросы и делиться мастерством по редактированию карт для Unreal и UT99


    Расскажите, пожалуйста, как в UnrealEd делать SkyBox'ы. Там слева в окне редактора столько кнопок - голова кругом идёт... P. S. Скринcшоты не возбраняются! :)

    Следующие сообщение добавил unreal doom

    Многим может пригодиться дополнительный набор строительных брашей.
    Нужная штука зовется UE2 Extrabuttons.

    Русскоязычные ресурсы по редактированию Unreal

    Сайты о серии игр Unreal

    Советы из этой темы, которых нет в туториалах

    Темы с форума Unreal-Level.ru и статьи с этого сайта

    За оформление шапки отдельное спасибо A.P.$lasH!
     
    Последнее редактирование модератором: 7 дек 2023
    Gadavre, GreenEyesMan, mp38 и 3 другим нравится это.
  2.  
  3. FACH

    FACH

    Регистрация:
    31 окт 2009
    Сообщения:
    663
    Стримминг не юзался, в видео видно, что ничего не прогружается.
    Очень глупо делать сразу хайполи модель, если до этого был все-таки сделан лоуполь. Накинуть потом модификатор не составит труда. А оптимизировать, особенно если модификатор слит...
    Кто внимательнее, какая команда?
    До сих пор некоторые крутые разработчики юзают альфу, лишь некоторые кусты делают мешами и то плоскими. Тут вот на Морру делали любители. Полный набор, приправлено вершинным шейдером, кривовато, но эффектно.
    Самый действенный способ - ручками.
    Во 2-м есть настройка в материалах с добавлением мешей на ландшафт, колыхание шейдером задается. Аналогично в 3-м и далее.
    Я б на это посмотрел)
    Оно видно.
    Нашел ту тему с Нивой. Какая убогая картинка))
     

    Вложения:

    • 1.jpg
      1.jpg
      Размер файла:
      221,8 КБ
      Просмотров:
      628
    • Facepalm.jpg
      Facepalm.jpg
      Размер файла:
      916,9 КБ
      Просмотров:
      589
    Последнее редактирование: 8 фев 2014
    unreal doom и rendensh нравится это.
  4. FACH

    FACH

    Регистрация:
    31 окт 2009
    Сообщения:
    663
    Закинул ее во второй двиг, как статик. Стекла не удалял, просто сделал материал прозрачный - так тоже можно) и не надо никаких брашей
    [​IMG]
     
    Последнее редактирование модератором: 19 июл 2015
    rendensh нравится это.
  5. rendensh

    rendensh

    Регистрация:
    22 янв 2011
    Сообщения:
    180
    Просто у меня альфа не импортировалась, черные фоны отрезать не хотел. Выяснил, что импортировать надо как DDS DXT5, не DXT1 или что-то другое. Может кому полезно будет из новичков. Иначе ни прозрачность, ни отрезания ненужных фонов не произойдет.

    ---------- Сообщение добавлено в 05:42 ---------- Предыдущее сообщение размещено в 05:33 ----------

    Вообще-то я другой унреал использую, что на базе Postal 2. И как я выяснил, там все-таки не унреал 2, а унреал 1.2 или унреал 1.5. Да и в обычном ут2004 должен же быть хавок. Но тогда они другой физдвиг использовали, "карма" называется (в играх Postal 2, первых Splinter Cell). Почему это тебя удивило, российское модерское сообщество ничего не знает о физдвигах и их настройки в унреалах? Если да, то удивлен. Халф-лайфское (из программеров, конечно) знает больше, чем разработчики ориг. движка, включая заимствованные Stupid Quake Bug, сейчас целый Volatile 3D делается на основе кода первого ХЛ с совершенно другим редактором карт (другое дело, что на мой взгляд они повторяются и не вводят улучшения из других движков, что сделано уже несколько лет в 2004-2005-х, пока что показывает на уровне графически навороченной игры 2001-2002)
    Имхо, в постале 2 карма криво настроена, граната вообще летит рандомно, а не туда, куда ее бросают. Возможно, что бросок это анима, а потом падается дропанием на близжайший браш, пока я это не выяснял, но выясню. О результатах напишу (импортировал 3 пушки, заменил аниму на свою, занимаюсь первым уровнем, по идеи вообще своя игра производится, а не какой-то мод)

    ---------- Сообщение добавлено в 05:49 ---------- Предыдущее сообщение размещено в 05:42 ----------

    И какой лучше вьюпорт выбрать для этого, если это вообще можно рассматривать как способ? Ландшафт отличается спереди, отличается сзади (может уйти выше или ниже), отличается по сторонам.
     
    Последнее редактирование: 8 фев 2014
  6. FACH

    FACH

    Регистрация:
    31 окт 2009
    Сообщения:
    663
    Я без сжатия кинул TGA текстурку. DXT5 - с поддержкой градиента в альфа-канале. DXT3 - альфа без поддержки градиента. DXT1 - без альфы, самый ужатый. Существует еще DXT5NM - для карт нормалей.
    Да-да, я в курсе, что там хавок, карма - доделанный и адаптированный хавок под игровой движок. Мы также делали физические объекты - сделали передвижной респаунер)
    Смотри код.
    Перспективу. Контрол и ЛКМ с ПКМ - передвигать выделенные объекты
     
  7. SkaarjZR

    SkaarjZR

    Регистрация:
    28 май 2011
    Сообщения:
    48
    Не надо его использовать, если не делаешь мод для P2. Хотя это и UE2, но довольно раняя версия. Из UE2 лучше использовать UT2k4. И там используется собственный физический движок, не Havok.
     
    rendensh и unreal doom нравится это.
  8. Alexys

    Alexys

    Регистрация:
    20 янв 2014
    Сообщения:
    341
    Можно ли в Ed1 произвести интерполяцию точек какого-либо мувера также, как и в заставках, когда плеер летает вокруг замка ? Известно, что в EventTrigger установлен PlayerPath и связан тэгами с точками интерполяции, которые являются также точками пути. Можно ли то же самое сделать с чем-нить другим ??
     
  9. Alien3674

    Alien3674

    Регистрация:
    1 июл 2011
    Сообщения:
    477
    Alexys, поэкспериментируйте со скриптом Keypoint => ObjectPath или посмотрите карту NaliBoat.
     
  10. Alexys

    Alexys

    Регистрация:
    20 янв 2014
    Сообщения:
    341
    Спасибо, Alien3674 ! Этот способ действительно очень хорош !! Но у меня не получается подключить к муверу другой объект, если это вообще возможно. Т.е. в NaliBoat сам мувер выглядит как лодка и он является Attach мувером. Если я использую Attach мувер и по тегу свяжу его, например, с ящиком, смогут ли они двигаться вместе ?
     
  11. unreal doom

    unreal doom

    Регистрация:
    1 мар 2006
    Сообщения:
    4.933
    У меня с AttachMover'ом тоже че то не получилось ничего связать :(. Все сделал по учебнику, а результат отрицательный. С обычным мувером и простейшим движением вниз актор прекрасно привязывался.
     
  12. Alexys

    Alexys

    Регистрация:
    20 янв 2014
    Сообщения:
    341
    Создается такое впечатление, что мувер способен двигаться только по поверхности, недаром его применили только к лодке. Такое заключение я сделал, посчитав точки пути и, хоть они и находятся на разной высоте (по Z), лодка не "ныряет" и не "выпрыгивает" относительно поверхности воды.
     
  13. unreal doom

    unreal doom

    Регистрация:
    1 мар 2006
    Сообщения:
    4.933
    На уровне с налийским замком есть скриптовая сценка с летательным аппаратом скаарджей, который на бреющем полете (то есть и крен имеется) бомбит несчастного нали, который зачем-то повел игрока в хлев к "коровкам". Так вот там тоже PathPoint'ы.
    Очень похожий момент только без бомбежки имеется в первом ледяном уровне Return to Na Pali, а также конечно финал самого Unreal когда мы улетаем на шлюпке королевы.

    Статья о Keypoints, в том числе и о PathPoint - http://www.unrealscript.narod.ru/tutorials/editing/keypoints/keypoints.html
     
  14. Alien3674

    Alien3674

    Регистрация:
    1 июл 2011
    Сообщения:
    477
    AttachTag мувера должен совпадать с AttachTag'ом ящика.
    И на всякий случай во вкладке Advanced переключите bMovable = True и bStatic = False.
     
    Последнее редактирование: 3 мар 2014
  15. unreal doom

    unreal doom

    Регистрация:
    1 мар 2006
    Сообщения:
    4.933
    Alien3674 Опыт на карте NaliBoat не дал нужных результатов, как я писал несколько сообщений назад.
     
  16. Alien3674

    Alien3674

    Регистрация:
    1 июл 2011
    Сообщения:
    477
  17. unreal doom

    unreal doom

    Регистрация:
    1 мар 2006
    Сообщения:
    4.933
    http://www.old-games.ru/forum/showpost.php?p=735454&postcount=262

    Вот тебе и не копируй :rtfm:, статья по поведению анриловских существ может быть безвозвратно утеряна :facepalm:.

    ---------- Сообщение добавлено в 12:50 ---------- Предыдущее сообщение размещено в 12:23 ----------

    Alien3674 странно. А ты попробуй конкретно на карте NaliBoat объект к лодке привязать :hmmm:.
     
  18. Alien3674

    Alien3674

    Регистрация:
    1 июл 2011
    Сообщения:
    477
    А я копию сохранил :rolleyes:.

    unreal doom, :hmmm: и мне не удалось привезать объект к муверу. Возможно это связанно с тем, что мувер двигает скрипт.
     
    Последнее редактирование: 5 мар 2014
    unreal doom нравится это.
  19. unreal doom

    unreal doom

    Регистрация:
    1 мар 2006
    Сообщения:
    4.933
    Alien3674 будь добр, размести копию статьи прямо в этой теме, в виде сообщения.
     
  20. Alexys

    Alexys

    Регистрация:
    20 янв 2014
    Сообщения:
    341
    Вот засада, я же тысячу раз так делал !! Шо мы дурней американцев штоли ??
    Причем, MoverTest все равно не пошла в моем 224м, даже загружаться не захотела, а в 226 пошла !! Я даже покатался на шкелетике ! :))
     
  21. FACH

    FACH

    Регистрация:
    31 окт 2009
    Сообщения:
    663
    А я тоже сохранил - UE1 - UnrealGold - Creatures
    У меня ничего не пропало, все есть)
    Будь добр, оставлять все копирайты в подобном случае:spiteful:
    Вряд ли, просто бросай этот двиг и переходи на более новый. Там таких проблем нет)
     
    Последнее редактирование: 6 мар 2014
    unreal doom нравится это.
  22. unreal doom

    unreal doom

    Регистрация:
    1 мар 2006
    Сообщения:
    4.933
    Уход за тварями в Unreal и руководство по питанию

    ИИ и примечания по физике

    Автор: Стивен Полдж 05.05.98

    Перевод: FACH




    НОВЫЕ ФУНКЦИИ, НАЧИНАЯ С ПОСЛЕДНЕГО ОБНОВЛЕНИЯ:


    Декорации (Decorations), включая тушки (carcasses), при уничтожении инициируют событие (event).

    У FearSpot keypoint есть атрибут bInitiallyActive, который может быть включен и выключен, при его инициализации.

    Для всех человеческих трупов в Ваших картах, убедитесь, что Вы не использовали MaleBody, MaleBodyTwo, MaleBodyThree, FemaleBody и Female2Body. Совсем недавно (для производительности в сети) я добавил некоторые новые подклассы - MaleOneCarcass, MaleTwoCarcass, MaleThreeCarcass, FemaleOneCarcass, и FemaleTwoCarcass.

    Они используют регулярные меши, поэтому используют меньше памяти (плюс у них нет дополнительных поз). Проверьте свои карты, и удостоверьтесь, что Вы не вставили Body.



    Изменен Damagetype для триггеров SpecialEvent и pain. Теперь можно вписать собственное сообщение, установите тип повреждения special, и введите сообщение в damagestring (при смерти будет сообщение "Player was xxx”, где xxx - сообщение в damagestring).



    Атрибуты AI


    Как правило, Вы будете использовать значения параметров по умолчанию, но со следующими исключениями:

    Tag, Orders, Ordertag,TeamTag, bTeamLeader, AlarmTag и иногда Aggressiveness. AttitudeToPlayer и Combatstyle.



    Атрибуты меню Actor:


    OddsOfAppearing - вероятность, что создание (или другой актер) появится в соответствующих игровых режимах. Диапазон - 0.0=никогда к 1.0=всегда (значение по умолчанию 1.0).



    Атрибуты меню Pawn:



    Атрибуты меню Display:


    DrawScale - если drawscale создания изменен от его значения по умолчанию, его свойства коллизии (collisionheight и collisionradius) и здоровья будут масштабироваться этим значением в начале геймплея.



    Атрибуты меню Movement:


    JumpZ - как далеко может прыгнуть пешка. Если Вы не хотите, чтобы пешка прыгала, которая обычно может прыгать (например, Вы хотите оставить определенного Skaarj на выступе), установите JumpZ к -1.



    Атрибуты меню AI:


    bHasRangedAttack: определяет, может ли создание атаковать за диапазоном схватки.??

    bMovingRangedAttack: определяет, может ли создание использовать его дальнюю атаку при перемещении (при условии, что создание поддерживает этот режим).

    bCanStrafe: определяет, может ли создание использовать Strafe.

    bFixedStart: если это правда, создание всегда запускается с того места, куда оно было помещено. Если ложь, то может запуститься с альтернативной позиции в зависимости от ее orders (см. ниже).

    bQuiet: если это правда, существо не шумит при перемещении.

    bTeamLeader: лидер команды (в определенном TeamTag). Должен быть только один на команду.

    bIgnoreFriends: ложно по умолчанию. Если правда, создание не реагирует на шумы (вопли, рыки) друга.

    bDelayedPatrol: если это правда, и в orders создания стоит Patroling, тогда создание начнет патрулировать только, когда это инициировано. Однако, существо будет прекращать свой патруль и реагировать на игрока, если увидит его. Вынудить создание продолжать патрулировать к месту назначения, определить патрульное место назначения в alarmtag создания.

    bHateWhenTriggered: существо изменит свое отношение на ненависть к игроку при инициализации игроком.

    TeamTag: команда существ к которой принадлежит это создание. Пока лидер команды живой, создания в той же самой команде координируют друг с другом. Если существа могут говорить, тогда они будут говорить друг с другом.

    Skill: добавочный навык создания. Значение по умолчанию 0. Например, если Skill = 1, то создание будет действовать на уровне сложности (difficulty) 2, если уровень сложности = 1.

    SightRadius: максимальное расстояние зрения. Видимость существом других пешек зависит от того, как далеко другая пешка по относительному радиусу зрения, а так же видимости другой пешки, и (скоро – уже никогда?) насколько хорошо освещена другая пешка.

    PeripheralVision: косинус максимального угла периферийного зрения. Создание, которое может видеть по 90 градусов в каждую сторону (в общем на 180 градусов) значение PeripheralVision = 0.0. Также, насколько далеко другая пешка в периферийном видении существа, влияет на шанс увидеть ее.

    HearingThreshold: минимальная масштабируемая шумовая громкость, которую существа могут услышать. Точность шумового диапазона зависит от настороженности существа, хорошее правило - создание может услышать типичный громкий шум, если угол обзора направлен к шумовому расположению, и HearingThreshold <200 / (расстояние до шума в Unreal units (UU)). Например, создание с HearingThreshold = 0.4 может услышать обычный шум, если он не больше, чем в 500 UU. Порог слышимости 0.2 преобразовывает максимальный диапазон слуха до 1000 UU. Создание никогда не смогут услышать шумы, которые более чем за 2800 UU от них.

    Orders: смотреть раздел Orders ниже.

    OrderTag: смотреть раздел Orders ниже.

    TimeBetweenAttacks: время в секундах между использованием дальней атаки (которая может включать многократные выстрелы).

    MeleeRange: максимальное расстояние от цели (не включая радиус коллизии этого существа или его цели), перехода в ближний бой.

    Aggressiveness: Обычно в диапазоне 0.0 до 1.0. Прежде всего, влияет на изменения отношения к игроку (больше агрессивные создания будут продолжать бороться, даже против более сильного игрока, менее агрессивные создания будут быстро убегать). Может также влиять на тактические боевые решения. Отметьте, что существа будут отступать, если у них есть home base (за исключением Nali и cow)

    Visibility: насколько видима эта пешка другим созданиям (примечание - не влияет на рендеринг!) 0 = невидима, 128 = нормально, 255 = ну очень видима.

    AttitudeToPlayer: Начальное отношение к игроку (может измениться в зависимости от действий игрока, и агрессивности существа).

    -ATTITUDE_Fear - существо попытается убежать

    -ATTITUDE_Hate - существо атакует игрока

    -ATTITUDE_Frenzy - неизбирательная, неистовая атака (нет страха, пониженная точность)

    -ATTITUDE_Threaten - существо будет угрожать игроку

    -ATTITUDE_Ignore - существо игнорирует игрока

    -ATTITUDE_Friendly - существо будет бороться с врагами игрока

    -ATTITUDE_Follow - существо не будет следовать за игроком (не реализовано).



    Intelligence: интеллект существа

    -BRAINS_None – как амеба - реагирует только на раздражитель

    -BRAINS_Reptile

    -BRAINS_Mammal

    -BRAINS_Human

    ReFireRate: готовность к стрельбе снова сразу после выстрела (оценивается от 0 до 1, более высокое значение соответствует более высокой вероятности).

    CombatStyle: тактическое принятие решений во время боя. Значение между 0.0 и 1.0. Высокое значение, повысит вероятность, что существо перейдет к рукопашной схватке, и т.д.

    AlarmTag: если AlarmTag будет установлен, когда создание увидит игрока, то оно (любой ценой) сначала пойдет к актеру с тем же самым Тегом как и его AlarmTag. Дружественные существа будут ожидать игрока, по мере продвижения к этому актеру. Это может использоваться, чтобы дружественное создание приводило игрока к некоторой области или объекту, или для недружелюбных созданий, чтобы попытаться инициировать события или установить начальные формирования атак. Например, у Вас три Кралла в комнате. Два атакуют Вас, в то время как другой пойдет нажимать на кнопку, которая заблокирует дверь позади Вас и поднимет тревогу. Альтернативно, Вы могли сделать, чтобы они разбежались, ища укрытие или выгодные позиции, когда увидят Вас. AlarmPoints (см. ниже) разработаны, чтобы предоставить обширное управление сценариями, когда используются AlarmTag.

    SharedAlarmTag: для каждой группы созданий, у которых есть такая же строка в этом поле, одно из этих существ будет выбрано, чтобы исполнить этот alarmtag. Вы можете использовать это, чтобы обеспечить некоторую случайность, в которой одно создание выполнит некоторое важное действие.

    DropWhenKilled: создание выбросит выбранный актер, когда будет убито.

    FirstHatePlayerEvent: создание инициирует это событие в первый раз, когда оно решает атаковать игрока.



    Orders (приказы)


    Следующие начальные приказы могут быть даны всем существам. После уничтожения врага они будут продолжать выполнять эти приказы. Некоторые приказы (патрулирование, охрана) связаны с другими актерами в уровне. Для них Вы должны установить OrderTag создания в tag связанного актера.


    Waiting

    Значение по умолчанию для всех существ. Существо будет стоять на месте, проигрывая различные анимации ожидания, пока оно не увидит кого-то или услышит.


    Patroling

    Существо будет патрулировать вдоль ряда Patrolpoints (подкласс NavigationPoint) установленными разработчиками уровня. OrderTag создания должен содержать tag первой Patrolpoint. Когда существо достигнет Patrolpoint, оно приостановится на PauseTime, определенного в Patrolpoint и повернется в направлении Patrolpoint. При приостановке существо будет играть анимацию ожидания или назначенную в актере. Если PatrolAnim будет определена, то создание будет играть эту анимацию такое число раз, сколько определено в NumAnims. Каждый раз, когда существо играет анимацию, оно также будет играть PatrolSound, если Вы его поставите. Отметьте, что количество времени паузы зависит от количества раз NumAnims по времени анимации PatrolAnim. Однако PauseTime должно быть установлено в положительное число. Существо тогда будет следовать к Patrolpoint определенной в NextPatrol текущего Patrolpoint. Если создание не сможет достигнуть следующего Patrolpoint, ооа будет ожидать в своей текущей позиции. Если bFixedStart будет ложью, то создание запустится в некоторой случайной точке вдоль его патрульного маршрута (еще не реализовано).


    Guarding

    Существо будет охранять актер, тег которого написан в OrderTag. Существо будет рядом, и попытается возвратиться к защищаемому актеру после боя. Если их начальное отношение - ATTITUDE_Threatening, они будет угрожать игроку, и пытаться остаться между игроком и защищенным объектом. Если игрок касается этого объекта, существо начнет атаковать.


    Ambushing

    Существо будет ждать в более настороженном состоянии, чем в ожидании (и, возможно, проигрывать различные анимации). Если bFixedStart - ложь и есть актер Ambushpoints (подкласс Navigationpoint) с тем же самым тегом что у существа, то существо может произвольно занять одну из них. Направление Ambushpoint определяет ориентацию существа. Ambushpoints могут также использоваться существами, которые решат заманить в засаду, а не преследовать игрока.


    Порождение ИИ Пешек

    Horseflies, biterfish, и blobs все используют вариации порождения ИИ. Не размещайте отдельных Horseflies и biterfish в Вашей карте. Лучше поместитео horseflySwarms и biterfishSchools, и определите в их свойствах, сколько отдельных созданий они должны содержать. Для blobs добавьте parentBlob и много bloblets, и дайте им один и тот же тег.


    Размещение PathNode

    Вы можете поместить pathnodes вручную, или Вы можете вписать PATHS BUILD LOWOPT в консоли, чтобы получить первичное размещение автоматически. В любом случае Вы должны ввести, PATHS DEFINE в консоли, чтобы создать соединения между pathnodes.

    Чтобы использовать навигационную систему, создание должно сначала выбрать лучший соседний узел, чтобы "войти" в сеть. По причинам производительности, создания ограничивают свой поиск узлов пути в пределах радиусом 800 unit (см. FSortedPathList:: FindVisiblePaths в UnRoute.cpp). Этот тест, определяющий, может ли создание достигнуть путей, очень дорог. Однако, как только создание "в сети", перемещаясь от pathnode к pathnode, они используют reachspec таблицы в каждом pathnode, чтобы определить достижимые узлы. Нет никакого предела расстояния для reachspecs, таким образом, пути могут быть определены между двумя pathnodes, которые находятся на любом расстоянием. По причинам производительности, пути между удаленными pathnode, у которых есть подходящий альтернативный путь, используют промежуточные узлы пути (с низкой добавленной стоимостью), выбирая в сети пути.

    Я рекомендую, чтобы пути были на расстоянии меньше чем 700 unit, так, чтобы создания никогда не начинали идти в неверном направлении, чтобы они всегда были в сети. Кроме того, пути на лестницах и рампах должны быть ближе (на расстоянии <350), Учитывая, что, Вы должны использовать минимальное число путей, должна быть покрыта область, в которой Вам нужна интеллектуальная навигация. Отметьте, что все точки навигации одинаково используются в качестве путей, таким образом, не нужно помещать избыточные pathnode рядом patrolpoints и т.д.

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

    В UnrealEd смотрите в меню Properties в окне вида карты. Есть опция, чтобы показать дорожки пути. На них лучше всего смотреть на виде «сверху». Отметьте, что соединение между двумя точками Навигации указывает, что, по крайней мере, некоторые создания могут использовать этот путь. Однако большие создания, или создания, которые не поддерживают определенные режимы перемещения (например, bCanJump, bCanSwim, и тр. атрибуты пешек), возможно, не в состоянии использовать эти пути.



    Thing Factories и Creature Factories


    Thing (вещь) и Creature, фабрики могут быть инициированы триггером, событие которого равняется тегу фабрики, или инициируются сами, если игрок коснется ее. Так как зоны могут вызвать событие, Вы могли бы, например, заставить creature factory начинать производить razorfish, как только игрок зайдет в воду. Первое создание создается немедленно. Thing и Creature, фабрики используют расположение Spawnpoint (тип navigation point), чтобы создать актеров. До 16 spawnpoint могут быть связаны с данной фабрикой. Spawnpoint и фабрики созданий связаны одним и тем же тегом. Если у Spawnpoint будет тег в поле Event, то событие будет запускаться, когда создание будет порождено от этой spawnpoint. По умолчанию фабрики являются скрытными, что означает, что они только рождают актеров в spawnpoint, которые не может видеть игрок. Если установить созданию фабрики событие равному тегу фабрики, то смерть существа активирует фабрику. Фабрики имеют следующее свойства:


    prototype: класс агентов порождаемых этой фабрикой.

    maxitems; максимальное количество актеров от этой фабрики за все время. Если эта фабрика производит создания все сразу или постепенно, когда существо умрет, возвращается значение maxitems, пока емкость (capacity) фабрики будет не достигнута.

    Capacity: максимальное количество актеров, которое фабрика может когда-либо произвести (-1 = нет предела). По достижению этого предела фабрика завершает работу.

    AddedCoopCapacity: дополнительные актеры, для производства, если игровой тип - CoopGame.

    Interval: средний временной интервал между спавнами.

    timeDistribution: распределение интервала между спавнами.

    -DIST_Constant - постоянный интервал (всегда равный Interval).

    -DIST_Uniform - случайный интервал (случайное время между 0 и 2-ным интервалом)

    -DIST_Gaussian - распределение Гаусса, со средним значением = Interval


    bOnlyPlayerTriggered: только игрок может инициировать эту фабрику (правда по умолчанию).

    bCovert: спавнит в точках, на которые не смотрит игрок (истина по умолчанию для фабрик Созданий, ложно по умолчанию для вещевых фабрик).

    bStoppable: остановка производства, когда не инициируется (untouched).


    Orders: (только для фабрики созданий) у существ этой фабрики будут эти приказы.

    OrderTag: у существ будет этот OrderTag, по умолчанию они атакуют инициатора фабрики.

    ItemTag: данный тег дается всем существам, произведенных этой фабрикой.

    AlarmTag: (только для фабрика создания) дается всем существам, произведенных этой фабрикой.



    Точки навигации


    У всех точек навигации есть атрибут bPlayerOnly. Если это правда, то только игроки (боты) будут использовать этот путь для навигации. Не совершенный, но если Вы поместите две точки подряд вдоль прихожей с поворотами, то, вероятно, это будет препятствовать существам проходить через это зал. Исключения - если существо близко к игроку и идет за ним по «горячим следам», или если оно уже очень близко к пути, когда попытается использовать навигацию.

    Homebase: основная база существ, тег которых - такой же, как у актера Homebase. Создания, которые боятся игрока, сбегут на свою основную базу, если она есть у них. Там, они развернуться, и будут драться до последнего процента ХП.

    Или когда создание достигнет своей основной базы, оно повернется в направлении, определенном ориентации основной базы. Кроме того, оно проверит соседние ambushpoints чей тег = тегу создания, и если какой-то будет найден, пойдет к нему.


    Ambushpoint: См. приказы - Заманивания в засаду.

    InventorySpot: автоматически устанавливается во время постройки путей, чтобы указать расположение инвентаря (для ботов).



    Teleporters:



    PlayerStart:



    SpawnPoint: См. Фабрики Вещей и Созданий.



    PatrolPoints: См. приказы - Патрулирование.



    LiftCenter: поместите эту Навигационную точку в место на лифте, в которой создание находилось бы при использовании лифта. Его LiftTag должен быть равен тегу лифта - мувера.

    LiftExit: должен быть в местах, в которых создания ожидало бы посадки на лифт. Их LiftTag должен быть равен тегу лифта, с которым они связаны.


    AlarmPoints: разработаны, чтобы использоваться с тегом alarmtag, чтобы вызывать существ выполнять сложные действия после того, как они увидят игрока. Если событие Алармпоинта будет запущено, то оно вызовет всех созданий с тегом аварийного сигнала. Параметры:

    -NextAlarm: следующий alarmpoint, после этого. Если none, создание вернутся к нормальному AI после завершения действий, определенных этой точкой.

    -PauseTime: время приостановки на этом alarmpoint.

    -DuckTime: время приостановки после проигрывания AlarmAnim (используется, если AlarmAnim определен). Называется ducktime, потому что типичное использование должно был бы заставить создание нырять, ожидать ducktime, и затем встать и охотится (если bAttackWhilePaused - истина). Если Вы хотите, чтобы создание отследило игрока при нырянии, установите bAttackWhilePaused.??

    -AlarmAnim: если определено, создание будет проигрывать эту анимацию после достижения alarmpoint, а так же AlarmSound, если определено.

    -bStrafeTo: если это правда, и существо может использовать стрейф, тогда оно будет идти боком к этой AlarmPoint, смотря на вражеского игрока. Если существо может стрелять при движении, то оно будет обстреливать игрока.

    -bAttackWhilePaused: если правда, существо будет стрелять в игрока, во время паузы (если у него нет ShootTarget). Если игрок не видим, существо будет стрелять, туда, где оно в последний раз видело игрока.

    -bNoFail: если правда, существо никогда не бросит пытаться добраться до этого Alarmpoint (так же, как же никогда не бросит пытаться добраться до других актеров с этим alarmtag). Если ложно, и существо сбили с пути, оно может сдаться и убегать, если больше не сможет легко добраться до alarmpoint.

    -bStopIfNoEnemy: если правда, и враг не видим, создание остановится на этом Alarmpoint, пока не увидит врага снова. Иначе, оно будет продолжать выполнят цепочку сигналов.

    -bKillMe: любые существа, которые поучат сигнал от этого alarmpoint (тег существа = событию alarmpoint), будет ненавидеть и уничтожать существо, которое активировало тревогу, даже если они были в нормальных отношениях.

    -bDestroyAlarmTriggerer: когда создание достигает этого alarmpoint (и его alarmtag место назначения создания), создание сразу уничтожается (destroyed, пропадает).

    -ShootTarget: если bAttackWhilePaused - истина, и у ShootTarget есть тег некоторого актера, создание будет стрелять в того актера, а не в игрока.

    -AlarmSound: если AlarmAnim будет определено, то AlarmSound проиграется вместе с AlarmAnim.



    Примечания физики


    Существа могут пройти по любому открытому пространству в 3 раза шире их CollisionRadius. Если Вы хотите, чтобы что-то определенное не прошло, или не прошло без обхода, сделайте коллизию больше. Кроме того, убедитесь, что большинство коридоров, а особенно пересечения и углы, по крайней мере - 4 x CollisionRadius + 10 самого большого существа, чтобы Вы могли обойти существо (и так, чтобы два существа не зациклились друг с другом). Идеально, коридоры должны быть, по крайней мере, 6 x CollisionRadius самого большого существа, которое может переместиться по нему. Также WarpZones должны быть, по крайней мере 70 UU глубиной, чтобы AI обрабатывал их должным образом.



    Инициирование существ


    Создания, которые не имеют врага, могут быть инициированы триггером, событие которого равняется тегу создания. Инициатор, будет врагом создания. Вы можете использовать, это, чтобы иметь создание, игнорирующего игрока (использующие ATTITUDE_Ignore), до определенного события, такие как, пересечение некоторого порога - если bHateWhenTriggered будет истинно, то инициатор будет врагом создания. Создания также запускают свое событие, когда они умрут. Вы можете использовать триггеры, связанные с bDelayedPatrol, чтобы заставить создание запускать заданный сценарием набор действий, без замечания игрока.



    Триггеры


    Были добавлены два новых типа триггера. TT_PawnProximity - позволяет любой пешке, не только игрокам, использовать триггер. TT_ClassProximity - только позволит актерам класса ClassProximityType использовать триггер. Например, Вы могли бы сделать определенный триггер действующий только на Nali. Кроме того, к триггерам с типом TT_Shoot сделали, дополнительное DamageThreshold значение. Это - минимальное повреждение (мгновенное, не в сумме), требуемое для инициации. Дополнительный атрибут ReTriggerDelay, определяет минимальное время перед повторной возможностью запуска триггера.

    RepeatTriggerTime, если установлено в значение, больше чем нуль, заставляет триггер отсылать свое событие в интервале RepeatTriggerTime секунд, в то время как инициатор остается в пределах радиуса триггера.



    EarthQuake:


    EarthQuake keypoint используется для тряски вида игрока в указанной продолжительности, так же возможно кидание игроков из стороны в сторону. Не применяется на других актеров. Для бросания вокруг других актеров используйте ThrowStuff keypoint. Свойства землетрясения:

    -magnitude: определяет количество, колебаний тряски вида и самого игрока, если bThrowPlayer - истинно. Величина в 2000 - довольно сильное землетрясение.

    -duration: время землетрясения в секундах.

    -radius: радиус влияния на игрока. Игрок вне радиуса будет видеть тряску на всей продолжительности землетрясения, но его не будет бросать вокруг.

    -bThrowPlayer: если это правда, игроков будет кидать из стороны в сторону во время землетрясения.


    ThrowStuff:


    ThrowStuff keypoint может использоваться, для толчка актеров, тег которых соответствует событию ThrowStuff keypoint. Актеры получат импульс по вектору, определенному в throwVect. Если Numthrows больше чем 1, толчок будет снова после указанного интервала. Если bRandomize - истинно, throwVect будет случайно изменен для каждого толчка. Наличие Numthrows> 1 и bRandomize может быть полезным для бросков объектов вокруг во время землетрясения. Также ThrowStuff keypoint запускают существ по указанному направлению когда инициировано игроком, или включение физики актеров, опрокидывать их, когда они находятся на браше или скользить/падать (в этом случае, используйте ThrowVect (0,0,0), и они будут только установлены в падение).??


    MakeNaliFriendly:


    Когда инициирован этот keypoint, все Nali на уровне становятся дружественными. Это полезно для случаев, когда игрок, возможно, испугал nali ранее, или устанавливать ситуации, где Nali вознаградит игрока после того, как он сделает что-то (например, уничтожит skaarj, который угрожал Nali).


    Jumper:


    Этот триггер заставит существо прыгнуть в направлении этой точки. Можно ограничить использованием только один раз, или влиянием на определенный класс существ. Переменная JumpZ, определяет, как высоко инициированное существо (наступившее на точку) должно подпрыгнуть (дает Вам контроль, где существо приземлиться).


    FearSpot:


    Этот триггер заставляет создания убегать с области (не идеально). Если, Вы используете его, убедитесь, что нет никаких других путей, проходящих через эту область, с которой Вы хотите, чтобы они убежали. У FearSpot keypoint есть атрибут bInitiallyActive, который может быть включен и выключен, при его вызове.



    Муверы


    Две новых булевы переменные были добавлены к муверам. bUseTriggered - указывает, что браш активирован игроком, делающим его использование (exec захват). BDamageTriggered - повреждение браша запускает его. Дополнительный атрибут DamageThreshold определяет минимальное (мгновенное, не в сумме) повреждение, которое запустит брашь с bDamageTriggered.

    Типы удара (bump types) мувера теперь поддерживают определение, типа актера, которые могут инициировать мувер, касаясь его (только для муверов, которые активируются касанием).

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



    Специальные функции Существ


    Mercenary (Наемник):

    У наемника есть несколько специальных наборов неактивных анимаций, доступных через следующие атрибуты - bButtonPusher, bTalker, и bSquatter. Если один из этих атрибутов будет установлен в true, то эти анимации будут проигрываться всякий раз, когда наемник остановиться (при ожидании, или приостановка при патрулировании, и т.п.). Отметьте, что для bTalker и bSquatter, наемник должен говорить с товарищами по команде (так, чтобы разговор был синхронным).

    bHasInvulnerableShield, bCanFireWhileInvulnerable, и invulnerableCharge - параметры, которые могут использоваться для настройки неуязвимости Наемника.


    Skaarj (Скаардж):

    У Skaarj есть специальный набор анимации, доступных через атрибут bButtonPusher, которые работают как у наемников. bFakeDeath говорит skaarj лечь и притвориться мертвым, пока он не увидит игрока. Skaarj, использующий bFakeDeath, должен быть помещен немного выше пола, иначе, произойдет корректировка положения на полу при первом обнаружении игрока (будет заметно, что это не туша).


    Krall (Кролл):

    У Кроллов есть специальный набор анимации, доступных через атрибут bDicePlayer. Кроллы,, использующие эти анимации, должны быть объединены в команду и эти несколько Кроллов должны быть близко расположены по кругу. Не забудьтеАтрибут bSleeping заставит Кролла играть анимацию сна и не реагировать на тревогу при ожидании.


    Nali (Нали):

    Nali с приказом «Guarding» будет проигрывать анимации молитвы. Nali с приказом "Ambushing" будет проигрывать анимацию медитации.

    Добавленный новый атрибут к Nali, bNeverBow. Это должно использоваться с Nali, у которых есть homebase (и только в хорошо протестированных ситуациях). Когда включено, Nali не будет останавливаться и кланяться при отступлении.


    Birds (Птицы):

    Хотя птицы - flockpawns, они добавляются отдельно. У них есть выбор нескольких поведений. По умолчанию они будут произвольно летать в области, определенной атрибутом CircleRadius. Отметьте, что эта область должна быть относительно свободной, без преград, поскольку птицы не умны. Если bCircle будет установлен, то они парить по кругу с радиусом CircleRadius. Если GoalTag будет установлен, то они не будут перемещаться пока не будут инициированы, а при инициации, быстро полетят в свой GoalActor. Птицы теперь неосвещены (unlit) по умолчанию. Если Вы хотите, чтобы птица освещалась/затемнялась, то установите ее bUnlit свойство в ложь. Птицы, которых Вы не видите больше, не рендерятся. Однако, убедитесь, что они не используются на больших открытых пространствах, где они могут быть замечены издалека, поскольку идет полный рендер их меша, даже если они меньше чем пиксель на экране.


    Cow and Rabbit (Корова и Кролик):

    Атрибут bStayClose (по умолчанию) определяет, будет ли создание блуждать в пределах его WanderRadius, вместо того, чтобы произвольно блуждать где угодно.


    Pupae (Куколки – личинки скаарджей):

    Куколки могут быть повернуты и помещены на любую стену или потолок. Когда они увидят игрока, они пойдут по стене/потолку к игроку.


    Brute (Скот, «Бегемот»):

    bTurret если истина будет стоять на месте и стрелять в игрока.


    Warlord (Военачальник):

    Приказы Mutilating один из центров интереса.?? У Военачальника есть новый атрибут, bTeleportWhenHurt, который заставит его телепортироваться куда-то, а не умереть.


    BiterFishSchool (Караси):

    Если bNonAggressive - истинно рыбы будут игнорировать игрока.

    У BiterFishSchools есть атрибут fishcolor. Значения от 0 до 6 делают всю стаю рыб одним цветом, а значение больше чем 6, дает им случайные цвета.



    Carcasses (Туши)


    Вы можете добавить неизменяемое тушу (carcasses - подкласс decoration) существа или человека. Если у существ есть несколько анимаций смерти, Вы можете выбрать позу, изменяя AnimSequence в свойствах Display.

    Примечание управления каркасом: каркасы будут быстро удалены в зонах, в которых достигнут предела каркасов. В зонах, где не достигнут предел, каркасы никогда не будут исчезать или изменять форму на Ваших глазах. Атрибут MaxCarcasses у зон, устанавливает предел для "загромождения" каркасами в зоне. Значение по умолчанию теперь 3, которое должно быть оптимальным для большинства ситуаций.



    Зоны


    ZoneTag используется, для тега зоны, которая может быть инициирована ZoneTrigger’ом. WarpZones могут быть инициированы в последовательности через массив мест назначения, определенных в их свойствах.?? Другие зоны переключаются при инициации - bPainZone. Свойства ZoneFog и ZoneFlash в ZoneLight позволяют Вам изменять цвет/затуманивание дисплея игрока для данной зоны.

    Атрибут ZoneTerminalVelocity устанавливает максимальную скорость падения игроков в зоне.

    Есть также EntrySound, EntryActor, и ExitSound для зон. Зоны с bWaterZone набором звуков будут играть их, когда пешки вводят/выходят из зоны. Они изменяются для специальных водных зон, таких как лава или слизь.

    Когда игрок входит в TeleporterZone, он телепортируется в место, определенное в TeleporterTag.



    Вспышки на экране


    Есть два компонента, используемые для создания вспышки экрана. ViewFog используется, чтобы перекрасить экран. Это - вектор, компоненты которого - значения RGB между 0 и 1. Поскольку ViewFog увеличивает яркость экрана, Вы должны использовать ViewFlash, чтобы препятствовать изменению яркости.

    ViewFlash - вектор, компоненты которого должны быть между 0 и –1 (например (-0.5,-0.5,-0.5). Это уменьшает яркость экрана. Как правило, у всех компонентов будет то же самое значение, которое равно средней величине компонентов ViewFog, чтобы препятствовать изменению яркости экрана.



    Различия сложности в AI


    Scripted Execs and Cheats

    Execs (действия)


    Используется в нормальном игровом процессе - могут быть связаны с ключами в Вашем Autoexec.mac файле:

    FeignDeath - притвориться мертвым.

    Grab – взятие декорации (decoration) или использование (use) мувера

    Say "xxx” – посылает сообщение всем игрокам, где "xxx” - сообщение

    RestartLevel – перезапускает уровень

    ThrowWeapon – выброс текущего оружия

    Kick "name” - отключает игрока с именем "name" от сервера (только из bAdmin)

    Pause - пауза

    SwitchWeapon n – переключение на оружие группы «n»

    Fire – основной режим стрельбы

    AltFire – альтернативный режим стрельбы

    Jump - прыжок

    Suicide - самоубийство

    AlwaysMouseLook b - если b=1, включен обзор мышью и отключена SnapToLevel и LookUpStairs. Если b=0 выключает AlwaysMouseLook

    SnapView b - если b=1, обзор переводится в горизонтальное положение, когда MouseLook не нажато (отключает AlwaysMouseLook). b=0 выключает его

    StairLook b - если b=1, включает автоматическую ориентацию обзора вверх и вниз на лестницах/склонах

    SetDodgeClickTime f - изменяет dodgeclicktime (время между нажатия кнопок для Dodge «f» должно быть меньше 0,3, а отрицательное значение отключает Dodge

    SetName "xxx” – меняет Ваше имя на "xxx”

    SetTeam "xxx” – меняет Вашу команду на "xxx”

    PlayersOnly – только игроки допускаются на уровень

    ViewPlayer "xxx” – смотреть глазами игрока с именем "XXX". Можно смотреть только если Вы имеете право видеть глазами этого игрока (например, товарищ по команде в командной игре или Кооперативном режиме)

    SetAutoAim f – регулировка автоприцела. Значение 1.0 – отключает его

    SetHand xxx – устанавливает руку с оружием xxx= left, right, или center

    Taunt xxx – дразнящие анимации xxx =wave, victory1 или taunt1

    NeverSwitchOnPickup b - по умолчанию 0. Если установлено в 1, то не будет автоматического переключение на подобранное оружие

    PrevWeapon – переключение на оружие ниже по приоритету

    NextWeapon - переключение на оружие выше по приоритету

    InvertMouse b – по умолчанию 0, если 1 – инверсия мыши

    ShowScores – включает таблицу очков в мультиплеерных играх

    ShowMenu – вызов отображения меню

    SetSensitivity f – изменяет чувствительность мыши на f - дробное число

    SetBob f – изменяет значение покачивания при ходьбе на f (по умолчанию 0.016).

    AddBots n – добавляет ботов на уровень (тип игры должен быть DeathMatchGame или его подклассы).



    Коды


    ViewClass xxx – вид из глаз класса XXX. Последовательное выполнение этой функции будет выполнять итерацию по классу. Например, ViewClass class'SkaarjWarrior' - покажет Вам что видят Скаарджи на уровне, если такие есть

    KillAll xxx - убить всех актеров класса XXX (включая их подклассы)

    Amphibious - делает Вас амфибией (никакого ограничения на время под водой)

    Fly – режим полета

    Walk – режим ходьбы по земле

    Ghost – режим призрака, тоже как Fly, но с возможностью пролетать сквозь стены

    ListInv – печатает Ваш инвентарь в log.

    AllAmmo – дает Вам 999 патронов ко всем имеющимся у Вас оружиям.

    Invisible b - b=1 делает Вас невидимым. b=0 делает Вас видимым

    TempStatus b - b=1 включает временную строку состояния (в верхней части экрана). b= 0 выключает

    God – включает/выключает режим неуязвимости

    BehindView b – переключение между режимами от первого/третьего лица

    SloMo f - изменяет скорость времени в игре. 1,0 - нормальная скорость. 2,0 в два раза выше нормальной скорости. 0,2 - одна пятая нормальной скорости

    Players - печатает список игроков и их текущий счет

    JumpZ – изменяет Ваш прыжок в высоту (260 по умолчанию)

    KillPawns - удаляет все пешки в игре.

    CheatAdd class’xxx’ - добавляет актер класса "XXX" перед Вами. Это может быть что угодно (оружие, боеприпасы, существо и т.д.), пока актер этого класса существует или ссылается на Ваш уровнь

    RememberSpot - запоминает Ваше текущее местоположение (см. ShowPath ниже)

    ShowPath - показывает рекомендованный путь обратно к расположению RememberSpot. Указывает путь. Когда Вы касаетесь, этого пути, показывается следующий

    SetDesiredFOV f - устанавливает Ваш FOV в значение f (значение между 1 и 179).

    ---------- Сообщение добавлено в 18:59 ---------- Предыдущее сообщение размещено в 18:53 ----------

    FACH спасибо :ok:.
    Но где ты взял её? В разделе с туториалами статьи нет :hmmm:.
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление