Добавлено (18 Ноября 2014, 22:09) --------------------------------------------- anton, не удержался и проверил сразу. Прежде всего, очень удобно, что утилите можно подсовывать дерево каталогов. Я обнаглел и сразу сунул ей всю папку Meshes Небесного Замка, а это почти гигабайт моделей. Пыхтела утилита над этим добром порядка пол минуты. И выдала мне два файла - толстую и тонкую модификации одной одёжки. Посмотрел - так и есть - в НИФскопе там показывается название, но при попытке переименовать его обнаруживается, что в исходном файле названия нет совсем. Твоя утилита дала название DummyString_1. Так что вот, несмотря на все мои проверки, ошибки у меня оставались.
Myprism, я сам её на всё свою папку "meshes" запустил, 6 гигов за ~3 минуты прошуршало и тоже нашло пару ошибок. В теле одежды одной компаньонки _0 была нормальная, а _1 содержала баг индекса. И один блок модели был без имени вообще. Теперь на два CTD в игре будет меньше Жаль только , что BSA архивы распаковывать для проверки надо.
@perture, анимации могут всем управлять, но их можно создавать и на отдельные части тела (для факела на левую руку например), или используя анимационные ключи только для поворота или только для масштабирования.
@perture, анимации могут всем управлять, но их можно создавать и на отдельные части тела (для факела на левую руку например), или используя анимационные ключи только для поворота или только для масштабирования.
Я понимаю, как работают анимации. Я говорю о том, что для анимации персонажей используется только поворот костей. Позиции и масштабы костей остаются величинами постоянными. CemKey предположил, что анимации возвращают значения позиций костей, если мы их меняем в скелете. Но почему тогда не возвращают масштаб? Если посмотреть на анимацию в нифскопе, то видно, что для всех костей установлены значения позиции, поворота и масштаба такие же, как в скелете
и то, что управление костями происходит только вращением костей, позиции и масштаб не затрагиваются.
Однако при этом изменение масштаба костей в скелете отражается в игре, а позиции - нет. Загадка. Приходится пользоваться пока только масштабированием. Или вводом дополнительных костей.
Добавлено (19 Ноября 2014, 11:29) --------------------------------------------- anton, а программка проверки имен блоков проверяет совпадение имен?
Други, лень мне перелопачивать сотни страниц форума Если кто знает - киньтесь линком на урок/алгоритм адаптации одёжки/брони под нужный реплейсер тела. Желательно на русском или с русскими комментами. Но в принципе, прокатит и аглицкий.
<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a> Да, мы бандиты и бродяги, как злословит молва, Мы попадаем в передряги, помня эти слова. Смотри вперед и не сдавайся ты на милость судьбе! Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
@perture, сказать трудно, нужно экспериментировать. Я создавал анимацию, используя все три вида ключей, и они все работали. Но скелет я никогда не менял, использовал или ванильный или XPMS.
Совпадение имён программой не проверяется т.к. это не вызывает ошибок, на сколько я знаю. Но если есть данные что вызывает, могу встроить.
Также можно ещё чего нибудь попроверять, давайте идеи
совпадение имени любого дочернего блока с именем корневого нода
Проверю, но мне кажется это не в совпадении имени дело, а в неправильном трактовании Нифскопом ошибочного индекса. Просто когда индекс выходит за пределы массива строк заголовка НИФ файла, то Нифскоп подставляет вместо имени строку с нулевым индексом, таким образом маскируя ошибку, приводящую в дальнейшем к вылету из игры.
@perture, по моим наблюдениям, дублирование названий не создаёт никаких проблем. Но дело в том, что отсутствие названия ВЫГЛЯДИТ как дублирование названия. Если названия нет, то НИФскоп поставит туда некоторое из имеющихся у него в таблице. (Все, когда-либо дававшиеся этой модели названия, составляют её таблицу названий и сохраняются). Таким образом, происходит дублирование, т.е. повторение одного из уже имеющихся или существовавшего ранее. Наиболее вероятно использование корневого названия. Подумайте сами, ведь не существует другого способа получения дублирующих названий. Ведь если название будет давать сам мододел, то он даст уникальное, просто для своего удобства. Фальшивость названия выявляется при его редактировании. Если там реальное название, то оно будет показано в окне редактирования с возможностью изменения. Если же там на самом деле пусто, то в окне редактирования будет пустое поле. Вот пустое название и приводит к вылетам. Что интересно, иногда эти вылеты происходят с вероятностью ниже 100%.
Кстати, таблица сохранённых названий часто является причиной различия веса файлов двух одинаковых моделей (например, худой и толстой).
anton, может, добавить утилите ещё функцию чистки таблицы названий нодов? Удалять неиспользуемые названия. А то удалять лишние в конце списка легко, просто изменяя там число записей, а вот из середины - фиг
Myprism, думал над этим, но там для меня очень много работы. Ведь придётся описать в программе все блоки, способные иметь индексы имён и потом перелопачивать их. У меня же описаны всего лишь около 20 основных, с которыми мне приходилось работать. К тому же выгода маленькая, просто НИФ файл станет опрятнее выглядеть.
Напомните пожалуйста, где мы тут писали, как сделать модель прозрачной и/или полупрозрачной в нифскопе? Точно помню, что об этом писали, а где - потерял , перелистал по полсотни страниц здесь и в соседней теме. Вот понадобилось и... и выяснил, что ничего не помню. Или, м.б. кто знает напишет коротенькую или не очень инструкцию, как оно делается? Буду благодарен.
УЛЫБНИСЬ МИРУ И МИР УЛЫБНЁТСЯ ТЕБЕ!
Изменение репутации для пользователя @perture
@pertureOffline
Сообщение №1544
написано: 24 ноября 2014, 04:32
| Отредактировано: @perture - 24 ноября 2014, 04:35
В настройках шейдера атрибут Alpha. При значении 1 модель полностью непрозрачна, при 0 полностью прозрачна, промежуточные значения определяют степень прозрачности. Это если надо управлять прозрачностью всей модели равномерно, а так, альфа канал диффузной карты вкупе с NiAlphaProperty обеспечивает необходимую прозрачность.
а так, альфа канал диффузной карты вкупе с NiAlphaProperty обеспечивает необходимую прозрачность.
Это знаю, работал с таким, кружевные скатерти и растения рисовал :); но для текущих дел вариант не вполне меня устроил. Alpha в настройках шейдера дала лучший результат. Спасибо за помощь, очень помог!
Ведь придётся описать в программе все блоки, способные иметь индексы имён и потом перелопачивать их. У меня же описаны всего лишь около 20 основных, с которыми мне приходилось работать. К тому же выгода маленькая, просто НИФ файл станет опрятнее выглядеть.
Может, такой подход поможет. Очистить этот список можно и вручную. Просто ставится его длина равной 1. Тогда там останется только название корневого нода. Все остальные станут пустыми, но НИФскоп будет показывать для них название корневого нода. Если теперь их все переименовать вручную, то получим чистый список. Разумеется, это очень муторно, а с большим количеством костей совсем в каторгу превращается. Что, если автоматически делать так же. Т.е. отделить функцию очистки списка от функции проверки. Сначала проверка так, как она у тебя реализована. В результате все потерянные узлы получают названия. А вот после этого уже не разбирая узлы по типу просто составить в утилите сквозной список их названий. Дальше очистить список НИФскопа и забить туда созданный список. Т.е. не проверять список НИФскопа на наличие его названий в модели, а создать ему новый. Вопрос только в том, не нарушится ли порядок названий в списке.
Это не очень нужно, просто так мой перфекционизм проявляется
Продолжаем расспросы В нифскопе в каком блоке настраиваются и/или добавляются блеск/свечение материала? Например, если на айсберг нацепить непрозрачную скальную текстуру, то новая "скала" всё равно будет блестеть. Следовательно, дело скорее всего в настройках модели?
@perture, давно хотел задать пару вопросов: 1. Зачем ставить в модели Vertex Colors белый для всех вертексов, устанавливая и шейдерный флаг SLSF2_Vertex_Colors? Это сильно отличается от случая, когда цвета вертексов и соответствующий флаг совсем не стоят? 2. Есть ли смысл ставить флаг 4097 для модели тела, если нормали там всё равно не используются?
Myprism, странно подобные вопросы слышать от модмейкера с твоим опытом. 1. Разницы между использованием белого вертекс колора и неиспользования его вообще я не заметил. 2. Флаг BS Num UV Sets для моделей тела должен содержать первый бит, отвечающий за использование UV развертки, остальное не принципиально, поскольку нормали, как замечено, не используются.
@perture, спасибо. Эти вопросы возникли у меня из рассмотрения тел куда более известного модмейкера, чем я. Настолько авторитетного, что я должен был перепроверить эти факты, почему и спросил
Myprism, всё равно не получится, ведь чтобы знать используется данная строка или нет, нужно открыть каждый блок, содержащий поле для индекса имени, и проверить куда он указывает.
Меня по началу тоже это беспокоило, а потом привык Где не лень, просто чищу руками.
1. Зачем ставить в модели Vertex Colors белый для всех вертексов, устанавливая и шейдерный флаг SLSF2_Vertex_Colors?
Для движка нужен массив куда он запишет оттенок, для этого и нужно создать белые вертекс колоры. А можно порисовать в максе и делать более темные участки подмышками, между ног, будет еще реалистичней выглядеть (правда ... первые версии экспортера не умели экспортировать разукрашенную модель, по этому никто не использовал эту возможности ... надо бы теперь проверить это дело).
Для движка нужен массив куда он запишет оттенок, для этого и нужно создать белые вертекс колоры.
Оп! Интересный способ выделения памяти под массив Поистине, неисповедимы пути твои, Господи! А какой оттенок и зачем туда заносить? Белый цвет в VertexColors это 4 коэффициента, равные 1. Т.е. это значит, что никакие величины на эти единицы умножать не надо. Отсутствие соответствующего шейдерного флага говорит видеокарточке о том, что обрабатывать эти цвета не надо.
На самом деле, цвета вертексов это одна из оптимизирующих технологий. Дело в том, что хороший программист всегда оптимизирует свой код. Он не положит большую текстуру, где достаточно маленькой и не положит две, где достаточно одной. Так вот, цвета вертексов придуманы для того, чтобы использовать одну и ту же текстуру на многих объектах. Так как объекты имеют разную форму, то тени на них будут разные и их (тени) нельзя включить в одну текстуру. Это старая технология возникла на самой заре 3D-графики, когда винчестеры были ещё маленькими, а видеопамять очень дефицитной. Это позволяло положить в игрушку только одну текстуру вместо многих и в видеопамять грузить только одну текстуру вместо нескольких. Так В Скайриме устроены скалы. Там много разных скал и все они используют VertexColor и только одну текстуру. Интересно посмотреть, что там сделано с ЛОДами для них. Дело в том, что вид на дальних расстояниях есть не для всех скал, а только для некоторых и текстуры для видов на расстоянии намного меньше. Так вот, для ЛОДов первого уровня ещё допускается использование VertexColors и одной общей текстуры для скал. А для всех менее детализированных ЛОДов использование VertexColors уже не допускается (опять оптимизация скорости рисования) и используется десяток индивидуальных маленьких текстур. Тени нанесены уже на эти отдельные текстуры. Таким образом, использовать технологию VertexColors для тел имело бы смысл только в том случае, если бы в игре одна и та же текстура использовалась как для людей, так и (например) для лошадей и для зайцев. Тогда бы текстура была одна, а карта теней была бы вынесена в VertexColors моделей.
Изменение репутации для пользователя anton
antonOffline
Сообщение №1555
написано: 29 ноября 2014, 10:54
| Отредактировано: anton - 29 ноября 2014, 10:54
Я вообще всегда считал, что VertexColors это просто альтернативный способ покрасить модель В своём самом первом моде про личинок я так и делал, а ещё видел ванильную бутылочку у которой текстура бесцветная, но при этом в игре она зелёная, с переливом цвета, как раз за счёт VertexColors.
В ранних 3Д играх так и раскрашивали модели, обходясь без текстур и экономя память. Есть мнение, что в дальнейшем, с ростом производительности железа, будут обходиться без текстур. Имеется в виду без диффузных. А в скайриме цвета вершин используются для раскрашивания моделей использующих одну текстуру (кроме скал вспоминается сосуд данмерского напитка из Драгонборна) и для раскрашивания некоторых монстров, призрачных.
Доброго времени суток, господа. Нужна помощь от знающих людей. Собственно проблема в следующем: Склеиваю броню из нескольких кусков (собственно, одежду в данном случае, но, думаю это значения не имеет) так вот, добавляю к робе кое какие детали, потом пытаясь экспортировать это дело, начинаются проблемы. Сначала мне выдавалась ошибка о том, что какая-то из моделей не привязана к скелету, оно то понятно, так и есть. Почитав на форумах, решил попробовать приатачить через editable mesh. После этого при экспорте уже выдавалась другая ошибка, после чего 3d max напросто вылетал, предлагая сохранить перед закрытием результат. Использую я max 2009 32bit. Пробовал Импортировать и сразу же без изменений экспортировать модель, все получается.
Собственно чего надобно: скажите, правильно ли я делаю вообще, возможно, я что-то упустил. А так же пришлите пожалуйста скрины рекомендуемых настроек импорта и экспорта, может в них проблема. В моделировании я еще разбираюсь плохо, так, что буду благодарен за любую помощь.
И еще одно, скорее всего это мне уже к текстурщикам, но решил заодно задать вопрос, зачем нужны текстуры cubemaps, как их создавать, и что они вообще собой представляют? Может, знающие люди подскажут.
А у нас все как обычно, все друг друга грабят, убивают, глотки друг другу грызут, в общем стандартный цивилизованый мир...
Час в радость люди добрые у меня таки весьма шкурный вопросик суть которого в следующем, есть 3ДС Макс 2010 на 32х битной оське раньше на соответствующем ПК стоял - ПК тот приказал долго жить - Макс остался архивом вопрос: как его под 32 заточенный на 64х установить/переточить, вообще возможно ли такое ???
GreyFox447, подробностей мало. Что значит "склеивать броню"? Объединение кусков нескольких видов брони в один меш (в один NiTriShape, если смотреть в Нифскопе) или же что-то иное? Я отрезал от разных видов брони необходимые части, но не объединял их. Можно было бы и объединять, если бы эти куски использовали один материал и текстуры, в противном случае при экспорте эти куски не будут одним целым, будет несколько шейпов. И любая добавленная часть без скелетной привязки (любой предмет до этого не являющейся частью одежды\брони) естественно будет требовать оную. Подсказать по настройкам не могу, у меня не Макс. По кубмапам есть статейка на английском. Там же в разделе много хороших обучающих уроков.
Cardboarddog, благодарю, посмотрю. Я как раз таки имел ввиду обьединение не в один шейп, а так сказать добавление. Простой пример, что бы вы поняли, например есть роба мага, дефолтная, импортируем например книжку из того же скайрима, и череп скажем, все это благополучно двигаем куда нам нужно, и потом в NifSkope черепу отдельная текстура, книжке отдельная, робе отдельная и тд.
А у нас все как обычно, все друг друга грабят, убивают, глотки друг другу грызут, в общем стандартный цивилизованый мир...