Перейти к содержанию

Лидеры


Популярный контент

Показан контент с высокой репутацией 01.05.2019 в Записи блога

  1. 1 балл
    Вот маялся я в своей модификации таким вопросом: как определить, что мой гг в данный момент находится в воде? Казалось бы просто да не очень. Пришлось порыться в профильных модах (к примеру "Купание в Скайриме") и ответ таки нашелся. Для тех, кому интересно, описываю общую механику решения вопроса. Предположим, что у вас есть некий спелл, который должен срабатывать только когда гг находится в воде. К примеру этот спел запускает анимацию купания или пердежа с пузырями... да не важно. Как это сделать? 1. Есть в Ките такая штука, как Condition Functions Это некий набор функций-условий, позволяющих делать с магэффектами, спелами, зачарами всякое интересное Среди этих функций есть такая штука, как IsInDangerousWater. Это первая вещь, которая нас интересует. Данная функция позволяет определить находится ли наш ГГ или НПС в .... лаве Да, в Скайриме она используется применительно к лаве. Но мы ее заюзаем для воды. В чем прикол? А в том, что в Скае лава и вода это по сути одно и тоже только с разными шейдерами и одной любопытной галочкой, которая их отличает друг от друга. 2. Вода. В Скайриме вода это по сути активатор вот такого типа: В параметрах данного активатора нас интересует поле Water Type. Для активатора-воды в нем проставляется объект WaterType, который описывает различные технические и визуальные свойства этой самой воды. Найти эти WaterType можно в ObjectWindow Кита в разделе WaterType Параметры этого объекта выглядят так: Во всей этой чудесной мешанине потенциальных возможностей нас интересуют только две вещи (на скриншоте выше они выделены красным): 1. Галочка "Causes" - определяет тот факт, что активатор-вода с этим типом будет наносить дамаг ГГ или НПС, если он в ней окажется. 2. Поле "damage per second" - указывает на количество дамага в секунду, который наносится ГГ или НПС пока он в воде этого типа. Вы спросите, а на кой икс обычной воде выставлять дамаг? О_о Вот в том и вся хитрость. Суть в следующем: если вы установите обычному типу воды (озера там или реки) галочку Causes, но при этом в поле "damage per second" оставите значение 0, то никакого дамага ГГ получать не будет. А теперь поясню суть приема. Предположим у вас есть озеро МояЛужа с типом воды Вода1. У вас есть Спелл1 который должен сработать только когда ГГ / НПС в озере МояЛужа. Вопрос - как вашему Спеллу1 определить что ГГ/НПС в этом озере? А очень просто. Делаем следующее: 1. Типу воды Вода1 ставим в Ките галочку Causes, но поле "damage per second" оставляем с 0 2. В условиях магэффекта Спелла1 ставим проверку IsInDangerousWater == 1. Все. Теперь когда ваш ГГ / НПС зайдет в воду озера МояЛужа ваш спел сработает. А вне этого озера - нет. Почему так? Функция IsInDangerousWater возвращает значение 1, когда актор находится в воде, типу которой выставлена галочка "Causes", а во всех остальных случаях функция возвращает значение 0. Именно для этой цели мы выставили типу воды Вода1 эту галочку а дамаг поставили в 0. Если же дамаг не 0 то у вас получится лава (только поверх воды придется еще положить шейдер-эффект лавы в Ките) или кислотная лужа, или лужа с кипятком при доп. эффекте пара поверху... Короче дальше полет вашей фантазии Скажем мод "Купание в Скайриме" выставляет эту галочку всем типам воды, которые используются в относительно пригодных для купания водоемах и когда вы кастите спелл-команду купания, то у вас срабатывает соответствующая анимация если гг в воде нужного типа и не срабатывает в остальных случаях. Да, есть еще вопрос о глубине и проверке на то, что ГГ / НПС сечас плывет или просто стоит в воде. Первое решается скриптами путем определения положения ГГ относительно объектов мира, а второе еще одним условием-функцией в нашем магэффекте IsSwimming, которое в нашем случае должно == 0 (это значит что ГГ/НПС не плывет в момент каста спелла). Примерно так:
  2. 1 балл
    Подкинули мне недавно одну любопытную задачку - сделать волколошадь В смысле волка на котором можно ездить верхом. Первая реакция: О_о Но оказалось не все так страшно. (Да, я знаю, что таких модов достаточно, но люди попросили сделать.) По своей сути задачка оказалась довольно простой. Попробую описать ее доступным языком, для тех, кому это может стать интересным. Примечание: предполагается что вы умеете работать с таким софтом, как Nifscope и CreationKit. Это не подробный гайд, а общее описание приема. Практически любое существо в Скайриме можно сделать ездовым. Даже нпс. К примеру можно соорудить Лидку, которую вы сможете хорошенько объездить. При чем и в прямом и в переносном смысле. Для переносного пригодится Секслаб и бурная фантазия, а для прямого следующие нехитрые приемы: 1. Модифицированный скелет 2. Кастомная раса (не обязательно) 3. Специальный кейворд в акторе-представителе этой расы Теперь подробнее. У каждого существа (гуманоидного и не очень) в Скайриме имеется скелет. Можно ли кататься на таком существе верхом по сути определяет одна единственная кость этого скелета. Называется она SaddleBone. Технически для превращения неездового существа в ездовое понадобится в первую очередь скопировать его ванильный скелет, обозвать по своему и потом с помощью нифскопа перенести данную волшебную кость из скелета обычной скайримской лошади в скелет интересующей нас животинки. Делается это несколько муторно но совершенно не сложно. Вот довольно понятный видео гайд по процессу: Едем дальше. После успешной вивисекции можно поступить двумя способами: пересадить новый скелет ванильной расе и тогда каждый ее представитель на просторах Скайрима будет ездовым или же создать копию расы нашего подопытного и прописать новый скелет только ей. В случае если это скажем волк, то вы можете сделать ездовыми либо всех волков скайрима либо одного или нескольких волков своей кастомной расы. Чего и куда тыкать: 1. На скриншоте ниже показан красным пункт, куда нужно прописать новый скелет с SaddleBone для нашей рассы: 2. Теперь в настройках конкретного актора - передставителя нашей ездовой рассы необходимо добавить специальный кейворд ActorTypeHorse Смотрим на скриншот ниже: Наличие данного кейворда у существа позволит активировать его как лошадь и садится верхом / слезать с него по кнопке активации. Глобально это все. Дальше уже идут всевозможные нюансы конкретной реализации и заострять тут на них внимание не имеет смысла. Ну и последнее. Проблемы. Этот пункт весьма важен поскольку вышеописанный фортель не пройдет на все 100% Сложность в том, что собственно полноценные анимации верховой езды в Скайриме существуют только для лошади. Соответственно у вас могут возникнуть сложности разного рода с оседланным питомцем. К примеру при попытке поплавать верхом на звере у вас возникнет баг, при котором гг и зверь будут плыть раздельно. При падении верхом на зверюге с высокой каменюки вы скорее всего вылетите из седла. Возможны сложности с прицеливанием из лука при бое верхом. Кроме того в режиме ожидания новый питомец может отыгрывать анимации ожидания лошади. Как это решить? Сделать нужные анимации верховой езды для соответствующего существа. Других способов я не знаю хотя может они и есть. В общем как-то так
  • Новостная рассылка

    Хотите быть в курсе всех наших последних новостей и информации?
    Подписаться
×
×
  • Создать...

Важная информация

By using this site, you agree to our Условия использования.