Каталог




Главная » Статьи » Обучающие статьи » Общая » Редактирование анимации Sliding Door в NifSkope


Редактирование анимации Sliding Door в NifSkope




PRIME124



Статус: Offline
Автор статьи: PRIME124



Добавлено: 6 мая 2017
Просмотров: 4070 | Комментарии: 13

Понравилось: 16 пользователям


- - Вступление - -
 
Однажды столкнулся с тем, что найдя необходимую мне дверь меня не устроила скорость её открытия. Хотелось сделать так, чтобы дверь открывалась медленнее и немного с другой анимацией, чтобы она больше походила на основную дверь входа в бункер. Первые попытки достичь этого ни к чему не привели - я только испортил анимацию. Забросив на время это дело, я решил попробовать снова. И вот, после множества попыток мне наконец-то удалось добиться желаемого результата. Именно этим я и хочу с вами поделиться.

Данный способ я рассмотрю на примере секретной двери Убежища 101. Кому интересно - она находится в файле Meshes.bsa по такому пути: Meshes/dungeons/vault/roomu/vurmboothwallsecretdoor01.nif. Её же название в ГЕККе: CG04SecretDoor.
 
- - Алгоритм редактирования - -
 
Первое, что вам понадобится - это извлечь саму модель двери из файла Meshes.bsa. Сделать это можно с помощью программы FO3 Archive Utility. Затем эту модель открыть с помощью программы NifSkope. После открытия модели зайдите во вкладку "View" и в пункте "Block List" выберите "Show Blocks In Tree". Так будет удобнее работать. Вот что примерно вы будете видеть.



Нам нужна вкладка "NiControllerManager". Открыв её нас интересуют две вкладки "NiControllerSequence". Одна отвечает за открытие (Open), другая за закрытие двери (Close).


 
- - NiControllerSequence - - - Open - -
 
Начнем с анимации открытия двери. Откроем вкладку "NiControllerSequence" и перейдем в Block Details. Нам необходима вкладка "Stop Time". Значение в этой вкладке измеряется в секундах и означает через сколько времени анимация двери прекратиться, иными словами, дверь закроется и остановиться. Значение в ней стоит 2,6667 секунды. Поменяем на 5 секунд.



< Важно > Значение "Stop Time" должно быть одинаково для всех вкладок, которые будут редактироваться. В данном примере это 5 секунд. Разделителем между целой и дробной частью должна быть "точка", если вы будете ставить "запятую" значения будут обнуляться. 

Возвращаемся в Block List и переходим на вкладку "NiTransformData". Именно в ней нам нужно будет сделать основной объем работы. 



Переходим в Block Details, во вкладку "XYZ Rotations". Откроем её и все её подвкладки. Должно получится что-то в этом роде:



Ищем значение времени 2,6667. Их три на данном скриншоте. Их все нужно поменять на выбранное вами время закрытия двери, в данном примере это 5 секунд. Закройте вкладку "XYZ Rotations", чтобы не загромождать Block Details.
Далее переходим на следующую вкладку в окне Block Details - это "Translations". Откроем её. Во вкладке "Num Keys" вы увидите значение 80. Это количество точек, в которых задается соответствие времени анимации и координат (X;Y;Z) в пространстве, в которых будет находится дверь при проигрывании анимации открытия. Чем больше этих точек, тем более тонко можно настроить анимацию и, вроде как, сама анимация получается плавнее. Но для примера столько точек не нужно, важно чтобы вы поняли сам принцип. Поэтому уменьшим количество точек до 6. Напротив вкладки "Keys" нажмите правой клавишей мышки на значок двух зеленых стрелочек а затем "Array" и "Update". Количество точек сразу же станет равным шести. Теперь же откроем все подвкладки во вкладке "Translations". Получится следующее:



Нас будут интересовать вкладки "Time" и "Value". Во вкладке "Time" мы задаем время, а во вкладке "Value" мы задаем координаты в пространстве для положения двери во время проигрывания её анимации. То есть, для примера, при времени 0 секунд координаты двери (X;Y;Z) будут 0;0;200, при времени 1 секунда координаты двери будут 0;0;160 и так далее все остальные точки. Последней будет время 5 секунд и координаты двери 0;0;0. После редактирования получится следущее:



Мы изменяем только значение Z, потому дверь открывается/закрывается вертикально. Если бы дверь открывалась горизонтально, то мы бы, соответственно, изменяли значение координаты X или Y (в зависимости от того, относительно какой оси координат дверь симметрична). Почему я выбрал значение Z=200? Чисто для примера. Значение может быть абсолютно любым. Отвечает оно лишь за то, на сколько широко будет открываться дверь. Чем больше значение, тем шире дверь "разъезжается". Также, хоть дверь и открывается вертикально, изменение значения X или Y добавит анимации двери реализма. К примеру, вы подходите к двери, активируете ее и она сначала начинает немного выступать с дверного проема, а только затем раздвигается. Естественно, анимация закрытия будет обратной - дверь сначала закроется, а потом немного утопится в дверной проем. Это создаст ощущение хорошей герметизации двери (как огромная дверь-шестеренка убежища, сначала подкатывается к дверному проему, а потом утапливается в него). Также для создания большей реалистичности двери, зависимость координат в пространстве от времени не должна быть линейной. Наверняка вы замечали, что при активации двери она начинает открываться потихоньку, затем достигает своей максимальной скорости и сразу перед закрытием начинает уменьшать свою скорость. Наверное создание этой зависимости является наиболее сложным, чтобы анимация двери выглядела реалистично.
Далее переходим на следующую вкладку в окне Block Details - это "Scales". Открываем её, все её вкладки и подвкладки. Получится следующее:



Опять ищем значение времени 2,6667. Оно всего одно, меняем его на 5 секунд. Возвращаемся обратно в Block List и выбираем вкладку "NiTextKeyExtraData". Переходим в Block Details и выбираем "Text Keys" и открываем все вкладки подвкладки. Получится следующее:



Ищем значение времени 2,6667. Оно всего одно, меняем его на 5 секунд. Мы закончили работу во вкладке "NiControllerSequence" - - - Open. Теперь переходим к редактированию анимации закрытия двери.

- - NiControllerSequence - - - Close - -
 
Так как редактирование анимации закрытия двери, точно такое же как и открытие, то нет смысла его детально описывать. Сам алгоритм аналогичен. Но есть небольшие отличия. На что необходимо обратить внимание? Первое это значение времени "Stop Time". Для открытия двери оно было 2,6667, тогда как для закрытия двери оно 2,6333. На самом деле это один и тот же параметр и очень часто встречается, что время закрытия двери не совпадают во вкладках Open и Close на какие-то доли секунд. Не обращайте на это внимание и меняйте значение на нужное вам, в данном случае на 5 секунд. Но поскольку вы всё редактируете вручную, то ставьте одинаковые значения в обеих вкладках. Это позволит избежать подергиваний и рывков анимации, особенно, если вы не использовали большое количество точек соответствия времени и координат. Второе это вкладка "NiTransformData". Перейдем в окно Block Details и откроем "Translations". Если для открытия двери мы для значения времени 0 секунд задавали координаты 0;0;200, а для 5 секунд координаты 0;0;0, то при закрытии двери для значения времени 0 секунд мы должны задать координаты 0;0;0, а для значения времени 5 секунд координаты 0;0;200 и так далее. То есть при открытии двери она перемещалась по оси Z от 200 до 0, теперь же при закрытии она пойдет обратным ходом от 0 до 200. Не упустите данную особенность.

- - Заключение - -
 
На этом редактирование анимации заканчивается. Если вы все сделали правильно, то после сохранения файла и последующей его загрузки в NifSkope и нажатии кнопки "Play" в верхней части меню программы, начнется проигрывание анимации и значение времени будет меняться от 0 до 5 секунд и сама анимация будет другой.



И еще пару слов, чтобы подвести черту и избавится от некоторых вопросов: значение времени окончания анимации может быть абсолютно любым, я использовал 5 секунд только для примера, вы же можете использовать любое нужное вам. Так как оно повторяется много раз во многих вкладках, то будьте внимательны, если хотя бы одно вы пропустите и не измените на ваше собственное, то анимация не изменится. Количество точек, по которым вы задаете соответствие времени и координат двери в пространстве также может быть любым. Чем больше - тем лучше для точности и плавности анимации. Чем дольше дверь открывается/закрывается - тем больше должно быть точек. В этом примере, до редактирования времени окончания анимации значению 2,6667 секунды соответствовало 80 точек. При 5 секундах количество точек также должно увеличиться. Я бы сделал ±150. Можете делать больше, если, конечно, вам хватит терпения и усидчивости всех их отредактировать. Данный пример 100% работает для данной двери. По идее, должен работать и для остальных раздвижных дверей, типа межкомнатных дверей в убежищах или прозрачной переборки в здании проекта "Чистота" в Мемориале Джефферсона. Возможно могут отличаться редактирование некоторых вкладок. Но я не проверял, по этому не могу сказать точно.

На этом всё. Спасибо за внимание. Надеюсь статья была для вас интересной и содержательной. 



Теги: Fallout New Vegas, Nifskope, Sliding Door, Fallout 3, Раздвижные двери, анимация
Всего комментариев: 13


 
0
Daahit | Гражданин  | 23 мая 2017 17:44 #8
Большинство просто не знают что это как и про рускую озвучку фалоут нью вегас
Посмотреть профиль Daahit

 
0
Aksyonov | Модмейкер  | 9 мая 2017 19:05 #5
Будет ли какие то подобные примеры работы в Nif scope для скайрима? Можно было бы осветить какие то определенные конкретные задачи, к примеру как сделать стекло, настройка метериалов и так далее, как создать анимацию в Nif scope по средствам текстур и так далее, было бы неплохо, и очень полезно. Спасибо за материал.
Посмотреть профиль Aksyonov

 
0
PRIME124
Автор публикации
| Гражданин  | 9 мая 2017 22:50 #6
Было бы здорово, конечно, если бы я мог. Для меня моддинг это хобби. Я не ставлю перед собой задачу создавать какие-то масштабные аддоны, поэтому и знаю мало, тот минимум, который мне необходим и меня устраивает. Поэтому ответы на более сложные вопросы я не знаю.
Посмотреть профиль PRIME124

 
0
Aksyonov | Модмейкер  | 10 мая 2017 05:24 #7
Ну наверняка вы знаете что то ещё, или можете узнать, напишите пожалуйста об этом в следующий раз, информация важная и полезная, рубрика такая мне нравиться побольше бы статей такого типа, класс.

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

 
0
Gedrial | Пользователь  | 20 августа 2017 18:22 #9
а уже есть какие то книги?... ну или уроки от вас...
сейчас в поисках подобного...
спасибо
...я люблю Скайрим и мне нравится проводить время в этой игре... и я могу ввести изменения под себя в этот мир хоть и с трудом... я не люблю реальность и мне не нравится проводить в ней время она заставляет меня изменятся под нее
Посмотреть профиль Gedrial

 
0
Aksyonov | Модмейкер  | 20 августа 2017 18:24 #11
Ну исчерпывающей инфы по теме моддинга от меня нет пока что, разве что несколько статей на сайте но там ничего конкретного и совсем уж для новичков - как моды установить и т.д.
Посмотреть профиль Aksyonov

 
1
VIPerMX | Модмейкер  | 9 мая 2017 14:02 #3
Мне кажется, будет правильным в названии добавить, что речь идет о Fallout 3/NewVegas. Иначе, никто не поймет о чем речь. Ну и как правило, такие специфичные вещи пишут на форуме в соот. теме.
Посмотреть профиль VIPerMX

 
1
PRIME124
Автор публикации
| Гражданин  | 9 мая 2017 14:43 #4
Возможно, надо было бы. Но я рассматриваю способ на примере двери из Fallout 3 и в самой статье несколько раз упоминаю о Fallout 3. Так что думаю будет понятно к какой игре относится.
Посмотреть профиль PRIME124

 
0
PRIME124
Автор публикации
| Гражданин  | 9 мая 2017 12:58 #2
Рамза, согласен, не для всех. Но меня только данная дверь интересовала. На счет звука тоже верно. Все попытки изменить звук открытия/закрытия двери в ГЕККе не приносят результата . Звук можно поменять только через NifSkope.
Посмотреть профиль PRIME124

 
0
Рамза | Модмейкер  | 9 мая 2017 04:51 #1
тоже долго с этим мучился... :)  но этот способ конечно не для всех анимаций работает, помню с какой то моделью у меня ничего не получилось.
кстати там в том разделе еще можно изменить звуки анимации и время звучания. они там же прописаны)
Посмотреть профиль Рамза

 
0
Gedrial | Пользователь  | 20 августа 2017 18:24 #10
Не могли ли вы написать урок на эту тему если вы в этом разбираетесь, и работает ли это для скайрима?...
я был бы вам благодарен... так как подобные анимации меня интересуют...
...я люблю Скайрим и мне нравится проводить время в этой игре... и я могу ввести изменения под себя в этот мир хоть и с трудом... я не люблю реальность и мне не нравится проводить в ней время она заставляет меня изменятся под нее
Посмотреть профиль Gedrial

 
0
PRIME124
Автор публикации
| Гражданин  | 20 августа 2017 19:45 #12
Сейчас совсем нет времени, да и энтузиазма(( Но, как мне кажется, модели Скайрима ничем не отличаются от моделей Фоллаута. Так что следуйте этому алгоритму и всё должно получится. Хоть данный способ и описывает анимацию раздвижных дверей, но его можно применить ко всем остальным. Разница заключается лишь в координатах точек анимации - будут меняться уже не одна координата, а две или три.
Посмотреть профиль PRIME124

 
0
Gedrial | Пользователь  | 20 августа 2017 22:24 #13
рад что мне так оперативно ответили...
И все же на пример данная модель как я понял по скринам опускается по оси Z.. но не понятно например как открываются двери которые не опускаются а вращаются по оси (то есть на петлях) где указывается это... да и в целом во всех анимированых статиках (я конкретно про двери ящики сундуки) контролери немного отличаются... и я не могу разобраться, на пример как сделать обьект который будет вращаться плавно, и в игре будет казаться что он постоянно вращается
а вы как я понях хоть чуток но разобрались в этом... 
спасибо
...я люблю Скайрим и мне нравится проводить время в этой игре... и я могу ввести изменения под себя в этот мир хоть и с трудом... я не люблю реальность и мне не нравится проводить в ней время она заставляет меня изменятся под нее
Посмотреть профиль Gedrial
Информация
Для того, чтобы оставлять комментарии к данной публикации необходимо зарегистрироваться .
Набор в команду сайта
Наши конкурсы











Ответ на жалобу смотрите в разделе жалоб
Загружается...