Привет всем! Я неплохо освоил 3Д Макс, в Фотошопе тоже разбираюсь нормально, со Скайримовским конструктором хорошо подружился . Практически любые текстурированые статики для Скайрима могу создать.... Ну так вот, у меня не получается НИ КАК создать анимированую модель(открывающиеся двери, опускающиеся мосты например), спрашивал у Antona, он от меня отмахнулся (понимаю, у каждого своих проблем хватает), да я не в обиде. Может кто-нибудь мне подсказать как эти анимированые модели в Скайрим экспортировать??? В долгу не останусь. Просто это уже дело принципа.
Столкнулся со странным явлением. Делаю броню и там у меня есть 2 варианта - с юбкой и без. Броня на базе стеклянной с эффектами прозрачности и преломления. Это требует двух идентичных по данным нитришейпа, которые различаются только настройками отображения текстуры. Из экономии размера файлов появляется соблазн использовать в обоих нитришейпах один и тот же NiTriShapeData и, соответственно, один и тот же BSDDismemberSkinInsnance для него. Так вот, для кирасы без юбки (и для других элементов брони) это проходит на ура, всё работает. А вот для кирасы с юбкой происходит вылет на рабочий стол при одевании. Это лечится созданием и использованием дубликата BSDDismemberSkinInsnance. Т.е. по-прежнему можно использовать в двух нитришейпах один и тот же NiTriShapeData, но BSDDismemberSkinInsnance в них должны быть разделены, хотя они и совершенно одинаковые. Это увеличивает размер файла. Две модели различаются только набором костей (юбка и рукава). Закавыка - хочу понять, почему в одном случае можно объединять данные и скины, в другом скины должны быть раздельными?
Myprism, сразу говорю, что ответа не знаю. Интересно посмотреть, чем это закончится, особенно если в будущем встретится похожая проблема. Не понял, что значит "BSDDismemberSkinInsnance в них должны быть разделены". Используются два BSDDismemberSkinInsnance в одном NiTriShape? Думаю излишним будет повторять, что и так известно и о чём я писал здесь недавно, но вдруг это оно: если тягать блоки Нифскопом, то вставляются они с другим именем, часто используется имя одной из костей. Из-за этого может вылетать при экипировке. У меня был вылет когда я решил "оптимизировать" один доспех. В нём несколько шэйпов из разных вариаций этого доспеха, почти все ссылались на одну текстуру но использовались разные (по номеру) BSShaderTextureSet. И подумал, что не будет ничего плохого, если BSShaderTextureSet у этих частей будет одна. В оригинальной броне это работает. И результат такой оптимизации - вылет на рабочий стол.
Изменение репутации для пользователя anton
antonOffline
Сообщение №1509
написано: 3 ноября 2014, 21:42
| Отредактировано: anton - 3 ноября 2014, 21:49
Myprism, Cardboarddog, особо не обращал внимания, поэтому не встречал НИФ-ов, в которых на один блок существовала бы ссылка из нескольких других блоков. Сам однажды попробовал так сделать, получил CTD и забросил это дело. Нельзя так нельзя. Хотя сейчас перечитал пост и не понял, как можно на разные NiTriShape (с юбкой, и без) цеплять одинаковый BSDDismemberSkinInsnance ? Скин же по любому разный будет...
А вот насчёт копирования некоторых блоков Нифскопом с последующим CTD встречался ооочень часто. Даже программку думал написать, которая бы сканировала все НИФ-ы в папке и это фиксила.
Проблема заключается в том, что при копировании блоков, Нифскоп сохраняет индексы на строки имён для блоков неизменными. И часто получалось так, что копирую какой то [NiTriShape]имеющий имя "model_1" с индексом 60 в другой НИФ файл, а в нём индексы строк заканчиваются на 20. Но скопированный блок так и будет иметь индекс 60 указывая в никуда, а в итоге в игре мы получим долгожданное CTD при вызове такого НИФ-а.
Трудность поиска такого бага заключается в том, что сам Нифсоп, не находя имени в массиве строк с подходящим индексом, подставляет туда строку с индексом "0", и вы в упор смотреть будете и не увидите проблемы. Можно только косвенно догадаться, зная что самая первая строка в вашем НИФ файле не может иметь индекс больше нуля, или заранее зная размер массива строк в вашем НИФ-е.
Cardboarddog, anton, видимо я недостаточно подробно описал свою проблему. Попробую разъяснить. Есть две отдельные модели:
1.) Кираса, состоящая из двух нитришейпов. Два потому, что один отвечает за текстурирование модели, а второй за преломление лучей в прозрачных участках. (На самом деле, сложнее, там у меня три нитришейпа. Ещё один - маска для обеспечении разницы блеска металлических и стеклянных деталей, но дело не в этом третьем шейпе.) Эти два нитришейпа имеют совершенно идентичную форму и должны двигаться совершенно одинаково. Поэтому они оба имеют идентичные таблицы вертексов треугольников, нормалей и текстурных координат, т.е. одинаковые NiTriShapeData. А так как двигаться они должны одинаково, то и скины их (BSDDismemberSkinInsnance) тоже идентичны. 2.) Кираса с юбкой и рукавами. Юбка и рукава находятся в одном шейпе с кирасой, но нитришейпа опять два. И, точно так же, как и в первом случае, эти нитришейпы имеют одинаковые NiTriShapeData и BSDDismemberSkinInsnance.
Оба случая отличаются только тем, что нитришейпы второго больше и завязаны на большее число костей. В частности на кости юбки.
Когда два нитришейпа внутри одной модели имеют одинаковый BSLightingShaderProperty, то можно вместо двух использовать только один BSLightingShaderProperty, ссылаясь на него дважды (указывая один и тот же BSLightingShaderProperty в обоих нитришейпах). Это я проделывал несколько десятков раз и проблем не имел никогда. Но это мало влияет на размер файла, так как запись BSLightingShaderProperty содержит мало информации.
А вот когда два нитришейпа имеют одинаковые NiTriShapeData, то использование одного вместо двух одинаковых даёт уже большой эффект, так как таблицы NiTriShapeData содержат много информации и занимают много места. Использование ссылок на один и тот же NiTriShapeData вместо двух одинаковых NiTriShapeData, у меня тоже не вызывает проблем. Вот это уже экономит место значительно.
BSDDismemberSkinInsnance тоже занимает много места, так как тоже содержит большие таблицы. А вот ссылка на один и тот же BSDDismemberSkinInsnance вместо двух одинаковых BSDDismemberSkinInsnance уже может создавать проблемы. Когда-то раньше я уже пробовал, получил вылет и забросил. А тут попробовал снова - всё работает (кираса №1). На самом деле, так у меня сейчас работают сразу несколько элементов брони (штаны, пояс, наплечники и т.д.). Но вот для кирасы №2 у меня это не работает, получаю вылет на рабочий стол при использовании одного BSDDismemberSkinInsnance вместо двух одинаковых. Вот и хочу понять, в чём дело. Раз есть случаи, когда работает (и не один), то значит, этот приём возможен. Но тогда надо понять, почему вылетает кираса №2.
anton, обнаружился один глюк при использовании SkinInjector. При внедрении нового BSDDismemberSkinInsnance в НИФ-файл происходит "размножение" Children у NiNode. Не оправдано возрастает их число и там появляются дублирующие записи - повторяющиеся ссылки на одни и те же кости. На работоспособности НИФа это не сказывается и может быть исправлено вручную, но всё равно не порядок А утилита по выявлению пустых названий шейпов была бы очень полезна. Сейчас я выявляю их открывая диалог переименовывания. Тогда там обнаруживается пустая строка.
А вот тут поподробнее пожалуйста ! ))) Чего это там дублируется, у меня такого не было. Хотя нет, я догадываюсь в чём дело. Если сделать импорт в НИФ файл один раз, а потом в него же импортировать второй раз, то тогда да, будут дубли всех костей и их имён т.к. их присутствие моя программка не проверяет, а просто создаёт всё что ей нужно заново. Моему способу работы с НИФ-ами это абсолютно никак не мешало, т.к. скин переношу в самый последний момент и всегда использую для этого другой файл, а фактически работаю с НИФ-ом где скина нет. Ну или же в крайнем случае просто удаляю руками из НИФ-а все ноды скелета и скина.
Это те то чтобы глюк, просто особенность у программки такая (код проще выходит, если не заморачиватся поиском существующих элементов).
Как можно отредактировать скелет в Nifsckope? Хочу изменить положение колчана для XPMS32, что бы не наезжало на двуручный меч. Положение на пояснице мне не особо нравится. Если им нельзя, то чем можно?
Я с тобой соглашусь, если тебя не затруднит показать результат. Например поменять расположение кости через Transform Edit, скажем меч от тела отодвинуть, заскринить в нифскопе, а потом в игре. Может просто я чего то недопонимаю.
Ну @perture, даже не знаю тебя в чем в чем а тебя в понимании упрекнуть у меня язык не повернется ^^ в общем я просто делал уже мод помню перемещал кости и все успешно работало, может чего то забыл но вот если руку у скелета переместить (кость) она будет на боку ) вот помню что так делал поэтому и сказал, попробую снова обязательно покажу результат ) модельки скину вместо скрина заменишь и посмотришь, может я чего дополнительно делал об этом не помню проверю на днях и отпишусь.
Я новичек в этом деле, посему обращаюсь за советом. Я хотел подредактировать для себя кое-какую одежду для скайрима, а точнее одежду из мода Neo_Slave_Leia_for_Skyrim Нужно всего-то убрать один элемент одежды (ничего более). Я открыл файл через NifSkope - выбрал нужную ветку модели (она сдержит в себе 3 компонента: NitriShape и два, начинающихся на BS). Удалил через ctrl+del, сохранил и вставил в игру.
ВВсе работает замечательно, но только от третьего лица. От первого лица одежда пропадает (видны одни кисти рук), хотя до моих изменений этого не наблюдалось.
Jukoman, в игре за вид от первого лица и от третьего обычно отвечают разные модели. В одежде Лейи должно быть больше нитришейпов. Как минимум 2 - одёжка и тело.
Изменение репутации для пользователя Aksyonov
AksyonovOffline
Сообщение №1522
написано: 6 ноября 2014, 16:36
| Отредактировано: Aksyonov - 6 ноября 2014, 16:40
Как можно отредактировать скелет в Nifsckope? Хочу изменить положение колчана для XPMS32, что бы не наезжало на двуручный меч. Положение на пояснице мне не особо нравится. Если им нельзя, то чем можно?
В общем просто - сейчас проверил изменил кости скелета их место расположение и вправду не работает, значит как то делал по другому нашел видео урок по тому которому делал вот Февраль, возможно поможет по нему получалось изменить расположение оружие у меня помню что работало ! - вроде для этого нужно было двигать родительскую кость экипировки а не сому кость в видео там все показано хоть и качество так себе:
Модераторы чего то я забыл можно ли видео с ютуба вставлять в форум извините если что, и удалите ссылку по необходимости.
Добавлено (06 Ноября 2014, 19:36) --------------------------------------------- @perture, ты был прав ) вводил в заблуждение я человека каюсь, но вводил лишь частично - так как все таки помню что по существу там ничего сложного нет и изменить положение колчана можно в nif scope, я видео прикрепил по которому все это делал - помню что руку у костяшки руки увеличивал масштаб и в игре она была как у мутанта так же как и положение колчана ) сейчас проверял на стандартном скелете почему то не работает - но может дело в том что в примере там не стандартный - но как раз тот что нужен Февралю ? нужно проверить в общем - @perture а ты сам то знаешь как менять положение колчана и других костей ? я думаю что их можно сместить все таки простой манипуляцией в nif scope, если что то знаешь по этой теме больше расскажи пожалуйста мне пригодиться.
Aksyonov, в игре для скелета используются два файла: "skeleton.nif" и "skeleton.hkx", так вот в последнем файле тоже надо менять координаты костей, чтобы всё правильно заработало.
Aksyonov, в игре для скелета используются два файла: "skeleton.nif" и "skeleton.hkx", так вот в последнем файле тоже надо менять координаты костей, чтобы всё правильно заработало.
Все понял ! да уверен теперь что это именно так ввел человека в заблуждение и вправду ) но не намерено правда правда хотел помочь, а по поводу HKX радует что с помощью твоих утилит anton, все это перемещение стало хоть возможно ) всех костей и так далее, для анимации (её создания) в игре скайрим ты привнес свой большой вклад, за что мы все модмейкеры тебе всегда будем благодарны
Добавлено (14 Ноября 2014, 10:13) --------------------------------------------- Помогите с nif scope требуется отобразить несколько частей 3d объекта в качестве ножен - ножны состоят из разных частей с разными текстурными картами и разверткой, можно ли вообще отобразить в игре скарим несколько (мешей) в качестве ножен ? или в любом случае нужно создавать ножны одной частью ? применение значение Value -> SCB помогает отобразить только одну часть определенную в игре в качестве ножен, вписав каждой части ножен SCB отображается в игре лишь первая часть к которой был применен Scr.
Изменение репутации для пользователя @perture
@pertureOffline
Сообщение №1527
написано: 18 ноября 2014, 17:04
| Отредактировано: @perture - 18 ноября 2014, 18:45
Aksyonov, в игре для скелета используются два файла: "skeleton.nif" и "skeleton.hkx", так вот в последнем файле тоже надо менять координаты костей, чтобы всё правильно заработало.
Сейчас как раз делаю новый (редактирую ванильный) скелет для персонажа. Вношу изменения в координаты костей в оба файла - результат в игре нулевой. Причем заметил такую особенность: если skeleton.hkx оставить в формате xml то изменения в игре отображаются, но анимации не работают. А если его конвертировать в бинарный файл, то изменения не отображаются. Что ещё изменить???
Но данный момент мне известны два способа редактирования скелета: это масштабирование костей, и ввод в иерархию костей дополнительных позиций. Масштабировать кости можно только для новых скелетов, к которым еще только предстоит скинить модели, поскольку при изменении масштаба костей изменится и масштаб заскиненой к нему модели. А вот ввод в иерархию дополнительных костей даёт некоторую гибкость, поскольку добавленную кость можно трансформировать в любых пределах, позиционировать, вращать, масштабировать. Но опять же, следует учитывать, что если добавить доп. кость с иерархию костей участвующих в скине, то это отразится и на модели. А вот вводом таковых в иерархию костей оружия, колчана, щитов можно добиться любого положения последних. Сам лично делал для скелета Демоники.
Как кости не двигай, анимация вернет все на свои места. А так как анимация почти на задействует масштабирование, то потому оно и работает. Поэтому же работают и добавленные кости, так как в анимации их нет.
Myprism, помнится у тебя был интерес к программке, которая бы обрабатывала проблемы связанные с индексами имён и пустыми именами в НИФ файлах ?
Так вот, вчера у меня дошли таки руки, и набравшись вдохновения я написал немножко кода, призванного облегчить отлов этих незаметных багов. Если интересно, то вот сама утилита: "СКАЧАТЬ" (инструкция внутри). Позже оформлю её как положено, отдельным модом.
А сейчас мне интересно, может ей чего добавить или исправить надо ? В общем хочу собрать первые впечатления у знающих людей
Как кости не двигай, анимация вернет все на свои места. А так как анимация почти на задействует масштабирование, то потому оно и работает. Поэтому же работают и добавленные кости, так как в анимации их нет.
Согласен, приблизительно так и есть, однако анимации не управляют координатами костей, так же как и их масштабом. Анимации управляют только поворотом костей. И почему масштаб отображается а координаты нет - непонятно. И достоверной информации пока не нахожу. Если же предположить, что анимации возвращают положение костей, то судя по редактору они должны возвращать и масштаб.