×
Меню
Индекс

Замена модели оружия в полете и не только

Создание вращающегося в полете метательного оружия.
С помощью пинка и танца с бубном это возможно!
 
Примечание.
Равно можно заменять модели стрел в полете.
Или выключать лазерные мечи когда те выложены в мир.
Принцип везде одинаков.
Установить контроллер невидимости и скрыть деталь которую не нужно видеть в статичном положении.
Далее все сделает движок игры.
Когда оружие окажется в руках, или в полете.
 
Примечание!
Возможно будет плохо работать у существ использующих свою уникальную анимацию!
Т.е. оружие будет периодически переходить в фазу вращения раньше положенного!
Или вовсе останется крутить в руках, когда существо "забудет" убрать оное и перейдет в позу простоя.

ВАЖНО!
Деталь оружия в активном состоянии обязательна должна иметь флаг Hidden!
Т.е. недостаточно только добавить контроллер невидимости, важно скрыть эту делать по умолчанию!
Иначе она не будет правильно работать, отображаясь при размещении оружия на земле.

И так!
1. берем (например) метательную звездочку.
Создаем, в нифскопе, копию ее сетки.
Получаем два шейпа.
Первый нужен для статичного отображения в мире, второй будет вращаться в полете.
Второй, "вращетальный" шейп ставим в желаемую позицию.
А первый оставляем как есть.
 
2. Отредактируйте второй шейп, поставив его перпендикулярно исходному и поместив центром в нулевые координаты.
Это нужно, чтобы звездочка летела в той же плоскости, что и лежала в руке.
Если желаемо, чтобы оружие летело в другой плоскости, просто ставим в нулевые координаты центром опоры.
Если этого не сделать, объект будет "плясать", но это тоже бывает полезно!
1. второй шейп, отверстием в нулевых координатах, это то что будет вращаться.
 
2. первый шейп, только уголком в оных, это то, что отображается в руке.
Т.е. игрок обычно держит звездочки за "ушко".
ВАЖНО!
Обязательно поставить флаг HIDDEN на этот объект!
т.е. второй шейп, который будет виден только в полете, должен иметь значение по умолчанию СКРЫТО!
Одного контроллера невидимости недостаточно, нужно ОБЯЗАТЕЛЬНО установить флаг (обычно это флаг 3)
Флаг можно сменить после завершения всех настроек в файле, либо использовать опцию Нифскопа Show Hidden.
Первый шейп, который виден в мире и в руках игрока, сменит свое состояние через действие контроллера, по умолчанию он ВИДЕН!
 
3. Добавьте niRoll и niVisController-ы с их Датами.
Первый будет вращать, второй будет скрывать.
 
4. Отредактируйте Roll и назначьте на второй шейп.
Хватит одного ключа в niFloatData.
Time 5 = 25 (к примеру)
Скорость вращения может быть любой, см. описания niRoll.
 
5. Отредактируйте VisData у  первого niVisControllerа.
Time 0 = 0
Time 0.0667 = 1
Time 3.2000 = 1
Time 7.3330 = 0
Здесь это важно!
Поскольку происходит синхронизация анимации в файле с анимациями игрока!
Если поставить неправильные значение, звездочка будет вращаться в руках игрока.
Если хотите получить "бензопилу", или "мистическую живую звездочку" - можно ставить иные значения.
 
6. Назначьте этот niVisController на второй шейп.
Скопируйте его и вставьте на первый шейп!
В VisData инвертируйте ключи.
Time 0 = 1
Time 0.0667 = 0
Time 3.2000 = 0
Time 7.3330 = 1
Теперь первый, исходный шейп, будет отображаться в руке игрока.
А второй только в полете.
 
7. Все, не забудьте поставить флаг Hidden на второй (вращающийся в полете шейп) и сохраняйте!
 
Собственно все довольно просто, путем подмены деталей модели и синхронизации с анимацией можно добиться того, чего не способен сделать движок.
Также можно подменять стрелы и болты.
При этом, стрелам хватит и одного контроллера невидимости, т.е. заменить стрелу в луке, на что-то другое в полете.
 
Примечание.
Вместо niRoll можно пользовать и KeyFrame, но для этого потребуется создавать анимации в МАХе.
Также, niRoll, будучи пофреймовым контроллером, работает более плавно.
 
Примечание.
Однако, есть небольшое ограничение.
Слишком далеко летящие и медленные снаряды возвращаются к исходному виду.
Т.е. в какой-то момент они перестают вращаться.
Это не критично, но есть такой момент.
На самом деле, надо очень постараться чтобы получить такое, но тем не менее это есть.
Связано это со временем. Если установить Time больше 7.3330 то пойдет кручение оружия в руке.
В теории можно поправить анимацию в файле базовой анимации с видом от первого лица, тогда можно получить больше времени и снаряды могут пролететь весь острова весело вращаясь.
Но это создаст не нужные сложности с заменой файла этой анимации.
7.3330 вполне достаточно для красивого и длительного полета анимированного снаряда.
 
Вращающееся в полете метательное оружие можно видеть в этих плагинах:
Improved Thrown Weapon Projectiles
https://www.nexusmods.com/morrowind/mods/44763
 
The Symphony
https://www.nexusmods.com/morrowind/mods/43790
 
В обоих плагинах применен обычный КейФреймКонтроллер.

И обе звездочки, в Нифскопе включено отображение скрытых объектов. Т.к. второй, вращающийся в полете, шейп скрыт по умолчанию флагом, а также значением в своем контроллере!