×
Меню
Индекс

NiSkinData

Собственно, здесь, все данные о скине и хранятся.
Skin Transform
Rotation
Translation
Scale
Позиции точки опоры скина.
Имеет существенный эффект на смещение сетчатой оболочки.
 
Обычно, все по нулям.
 
Важно!
Для смещение объекта (triShape) содержащего скин, надо менять его позицию не в настройках TriShapeData, а здесь! Ибо Контроллер!
 
Это может быть полезно для позиционирования объектов содержащих простой скин (с одной костью) приклеенных на другую кость, или вставленных из другого ниф файла.
 
Если менять положение шейпа, в его настройках, то получится, что объект «уехал» и болтается сам по себе, в отрыве от всего остального.
 
Num Bones
кол-во используемых костей
 
Не используется в ниф файлах 4.0 версии!
Т.е. не создается ни Нифтулзом, ни ФФЕ, ни ТесЭкспортерами.
Хотя и может быть сюда добавлен, некоторым "замороченным" способом.
И главное, игра будет его считывать и использовать, т.е. не происходит перезаписи.
 
Если этот элемент был добавлен неправильно (руками через нифскоп) это может приводить к КТД.
 
На данный момент (10 2022) поддержку экспорта SkinPartition, ни в один из 3д Редакторов, так и не завезли.
Хотя есть вероятность, что в плагине к Блендеру, оная возможность появиться.
 
Морровинд принадлежит к ранней версии движка, которая еще не поддерживала, в полной мере, создание niSkinPartition в качестве отдельного элемента.
Вероятно, в этой версии движка только начали внедрять этот элемент и, работает он, полностью в автоматическом режиме.
Разделяя поверхность на участки разделенные между 4-мя костями.
 niSkinPartition  как отдельный элемент появился уже в 4.2 версии ниф файла.
 
Т.е. особенно заморочиваться на создания SkinPartition не стоит, игра все сделает сама, как ей "удобно"(С).
 
This function returns a pointer to the NiSkinPartition object owned by the NiSkinData instance. If the NiSkinData instance has not been partitioned, this function will return NULL.
 
Bone List
Список костей + подробные настройки весов вертексов для каждой из них.
 
Skin Transform
Rotation
Translation
Scale
Начальная позиция кости по отношению к вертексам оболочки.
Надо полагать, что оно как бы запекается в скине.
 
Если  верхний «Skin Transform» влиял на всю модель, то этот, только для локальной кости.
 
Если изменить, произойдет смещение той части на которую кость оказывает воздействие.
В дальнейшем, анимация будет воздействовать на измененную позицию.
 
Например, повернутая на 90* челюсть Алита, через изменения этого раздела, будет двигаться исходя из новых координат.
 
Bounding Sphere Offset
Возможно это envelopes МАХа.
 
Задается некая область вокруг кости для упрощения расчета позиций вертексов.
Т.е. обрабатывается не каждый вертекс, а их пакет.
Здесь задается позиция этой области.
 
Если некое существо, или доспех, имеют слишком большой радиус активации, здесь это можно поправить!
Установив нулевые координаты.
 
This bounding volume is used internally by the skinning system to calculate bounding volumes for skinned objects without actually having to calculate the positions of the vertices in the skinned object. This member of BoneData can be left uninitialized in each entry of the BoneData array that is passed to the NiSkinData constructor.
 
Bounding Sphere Radius
Радиус сферы окружения вокруг кости.
 
Если некое существо, или доспех, имеют слишком большой радиус активации, здесь это можно поправить!
Установив меньший радиус .
 
Num Vertices
Кол-во затронутых вертексов.
 
Vertex Weights
Вес вертексов.
 
Что, по идее, позволяет редактировать вес каждого вертекса вручную.
Но при значениях более 100 штук, это ... слегка затруднительно.
Тем более, они не отображаются в окне рендера и найти, где какой, будет несколько затруднительно.
 
Index
Номер вертекса
 
Weight
и собственно главное, его вес.
Это и есть скин, как он есть.
Сила влияния кости на вертекс.
 
Чем больше значение, тем сильнее будет воздействие кости.
 
Наверное, это могло бы быть весьма полезно, чтобы править отдельные ошибки и воевать с щелями.
Но к сожалению, нет возможности увидеть позицию вертекса! Что делает это занятие не сильно актуальным.
 

 Выдержка из оригинальной справки. (NDL Gamebryo 1.1)
 
NiSkinData contains all the skinning data that can be shared by multiple instances of a skinned object. Skinning is implemented in Gamebryo by attaching an NiSkinInstance object to an NiGeometry object. NiSkinInstancecontains the instance-dependent skinning data and a pointer to an NiSkinData object.