Умеешь же ты туманно изъясняться :-D Хотя, может, и правильно. Чтоб никто идеи не украл.
Если нужно просто, чтоб один NPC временно пропал нафиг, а на его месте появился другой - это запросто. А вот если нужно, чтоб новый NPC делал то же самое, что делал старый (т.е. имел те же пакеты), и находился в тех же алиасах квестов, то уже сложнее. Без дополнительной информации ответить нечего
Добавлено (02 Июня 2014, 16:48) --------------------------------------------- Ага, понял. Если ты сам мод делаешь и обе версии NPC-компаньона твои собственные, то можно. Например, такой вариант: 1. Есть 2 разных ActorBase: Темный и Светлый. Без пакетов и скриптов. Они куда-то ставятся и один отключается. 2. Есть квест. В квесте алиас. На алиасе все пакеты и скрипты. В алиас засовывается Светлый Актор. Он начинает бегать за игроком, сражаться итп. 3. Происходит какое-то событие. Светлый Актор отключается (Disable). Темный перемещается на позицию Светлого, включается, засовывается в алиас. И дальше путешествует с игроком. Такая схема позволит не добавлять одинаковые пакеты и скрипты разным версиям Актора. И в диалогах полегче проверку сделать было бы.
Добавлено (02 Июня 2014, 16:56) --------------------------------------------- Пфф, не, фигня это всё. Как же перемещение вещей, надетых вещей итп. Усложняется всё.
В общем, я передумал. Не в курсе, как всё сделать. Перенести вещи, надеть те, что были надеты, перенести магические эффекты и еще черт-знает-что. Оно-то возможно, но...
А можно ссылку на этот странный мод "обувь системы HH", который меняет расу? Я очень надеюсь, что у него есть достаточные основания для такого... Иначе, это просто хамский код.
Бандиты, к примеру, бросаются на игрока и на мирных жителей не потому, что фракции враждуют. У них просто Aggression = 3 (Very Aggressive). Но ты, наверное, хочешь, чтоб стражники тоже первыми бой начинали? Не экспериментировал с этим...
Цитата Myprism
Но тут я где-то видел соображения о нежелательности квестов, начинающихся с игрой.
Квесту можно и не ставить галочку "Start Game Enabled". Скрипт все-равно выполняется, начиная с OnInit(). Я тоже не уверен, что это лучший вариант, но можно и скриптом. http://www.creationkit.com/SetEnemy_-_Faction
Технически, запас золота торговцев лежит в их торговом сундуке в виде LeveledItem. К примеру, VendorGoldMisc - это 750 монет у торговцев типа Белетора. Содержимое сундука я бы не редактировал, а LeveledItem'ы - можно. Лут - это инвентарь и DeathItem. К примеру, у курицы в инвентаре ничего нету, но она умирает и из неё выпадает DeathItemChicken. Это тоже LeveledItem. Зелья, которые увеличивают исходящий урон магией разрушения, делают это, изменяя ActorValue DestructionPowerMod. См. эффект AlchFortifyDestruction. Входящий урон от магии тоже зависит от ActorValue - MagicResist. См. эффект AbResistMagic. Вопросы так себе. С таким любой мог бы и сам разобраться, посмотрев ванильные скилы и перки.
Добавлено (03 Июня 2014, 23:51) ---------------------------------------------
Цитата Dsion
Уважаемые, можно ли в интерьере(!) поставить границу воды и погоду? Просто делаю дворец в стиле Снежных Эльфов, а там в окнах все прекрасно видно, хочу сделать какой-нибудь приличный вид.
Так, вроде, в настройках Cell всё есть. Небо с погодой точно работают для интерьера. А воду не проверял, но там есть и для неё настройки.
Да, действительно дождь и снег не работают. Если скриптом вызывать - тоже. В Elder Scrolls так уж завелось, что интерьеры отдельно от всего мира и в окна никогда ничего не видно. Как уже сказали, можно отдельный новый World сделать. Например, у Драконьего Предела свой мир есть, чтоб драконий балкончик работал. Или, при определенных обстоятельствах, наверное, можно и просто так башню воткнуть в мире Тамриэль. Без интерьеров, тоесть. Тут полно минусов, но и плюсы тоже есть: в окна погода видна будет, звук дождя слышен, освещение будет меняться. Можно даже сделать скрипт для тушения факелов днем.
Добавлено (04 Июня 2014, 14:45) --------------------------------------------- Еще бы вспомнить, пробивает ли дождь крышу в Скайриме... Помню, что недавно злился на какую-то игру, что дождь пролетает крышу. Но не помню, был ли это Скайрим.
Вот в открытом мире ни разу такого не было. Сколько не работала с ним, но прямо перед носом объекты ни разу не пропадали. За совет спасибо, попробую им воспользоваться, если решу делать закрытый мир. Надо еще проверить баг с дождем, про который Dsion говорил. Если через потолок будет проходить дождь, нафига мне такой потолок?)
Привожу описание одного из модов: Skyrim's precipitation is an illusion - a 2D textured plane filling the observer's field of view. It's like wearing glasses with an animated rain overlay on the lens. The rain doesn't really exist in Skyrim's world - and is why it falls through everything. Now when shelter is taken Real Shelter determines the weather type and replaces it with a no-precipitation version of itself. Then it activates pre-placed in-world weather effects that surround the shelter. When the shelter is exited the localized effects are turned off and the prior weather is restored.
Смысл такой: Дождь и снег реально не существуют в мире Скайрима. Это просто текстура перед глазами игрока. Потому никакая крыша его не останавливает. Как автор решил проблему? Отключил обычный эффект дождя к черту и разместил вокруг убежища свои собственные погодные эффекты.
Вывод и хорошая новость: Значит, все-таки РЕАЛЬНО сделать дождь в интерьере. И он еще и не будет пробивать крышу. Надо просто разместить этот "дождь" вокруг замка. Что-то такое.
Добавлено (04 Июня 2014, 18:57) --------------------------------------------- Вот еще другой автор мода пишет, что тоже отключил стандартный эффект дождя. И разместил над игроком "порталы", которые плюются реальным дождем, который уже не пробивает крыши.
Смысл этого всего в том, что, если Вы хотите замок с РЕАЛЬНЫМИ окнами и погодой за ними, то нужно создавать свою версию дождя: какую-то текстуру за окнами или projectile-дождь. Второй вариант, скорее всего, негативно повлияет на производительность.
Эффект снега за окнами может включаться и отключаться скриптом, в зависимости от погоды Скайрима. Вроде, все необходимые функции есть. И скрипт простенький. Но я вполне таки понимаю, если Вы за такое браться не хотите.
Бассейн можно делать и не с реальной водой, а с чем-то похожим. Если он не глубже роста.
Нужна помощь. В конструкторе я новичок, умею делать только по мануалам. Интересует такое - как заставить всех компаньонов после увольнения не переодеваться в одёжку по умолчанию? А то достало - оставляешь для охраны поместья, в инвентаре у них лежит шмотка с защитой больше 100, а они в железной броне разгуливают и первый же дракон от них мокрое место на высоком уровне оставляет
У всех NPC есть такая штука, как стандартный комплект одежды. Называется Outfit. Каждый раз, когда загружается их 3D модель, они всё с себя снимают и надевают этот Outfit. Варианты такие:
Вариант 1. Поменять Outfit через CreationKit. Вариант простой, но подходит только для личного пользования. Каждое добавление/удаление вещей из Outfit'а будет требовать снова работы в CreationKit. Вариант 2. Установить для NPC пустой Outfit. Тоесть, без вещей. А потом надевать вещи c флагом "не снимать". Тогда, во время загрузки, NPC ничего не снимет и ничего не наденет. Это можно через консоль делать или в виде удобного мода. Скорее всего, подходит тоже только для личного пользования. Вариант 3. Сделать не-очень-то-простой скрипт, который следит за NPC и, когда тот загружается, надевает на него необходимый комплект.
Если будет нужна дополнительная информация по любому из вариантов, пишите. Вариант 3 я использовал в своём моде. Суть мода была в том, чтоб задавать любому NPC основной комплект одежды, комплект для сна, комплект для текущей локации итп.
А не проще мод поставить на компаньонов? По моему, в нем как раз нпс не переодевались обратно в свою одежду.
Когда я последний раз смотрел, они работали вторым из приведенных способов. А это значит, что, в случае отключения мода, через какое-то время все эти NPC будут бегать голыми. Кодекс, леди Arin! Кодекс не позволяет делать такие моды или рекомендовать их.
Добавлено (05 Июня 2014, 16:35) --------------------------------------------- Да я и не говорил, что модов для решения этой проблемы нет... Только перечислил способы, которыми они работают или могут работать.
на сайте есть плагин - задавать для супруга одёжку, даже если не назначать ему ничего он/она всё равно ходит в том, что на него надели - если бы можно было его на всю фракцию компаньонов распространить Через консоль пробовала - всё равно неведомым образом с полностью удалённым инвентарём outfit переодевается обратно Или такое - можно сам набор outfit отредактировать таким образом, чтобы он отображался в инвентаре и его можно было бы забрать и он бы не возвращался обратно? Почти как первый вариант, но с кучей модов сам набор составлять замучаюсь
Заданный в CreationKit Outfit всегда будет возвращаться обратно... И персонаж всегда будет надевать его во время загрузки. Можно его удалить в CK или заменить на пустой (именно ауфит, не конкретные вещи), а потом надевать вещи с флагом "не снимать". Хм.. А.. Я это уже писал... Проблема только в том, что, при определенных обстоятельствах, NPC будет бегать голым.
Можно ли переделать мод от супруги? Да, может, и можно. Но зачем? Проще новый с нуля написать, выбрав один из способов. Если хотите, попробуйте мой мод на эту тему. Но он чуть более сложный. Там можно 8 разных комплектов создавать и настраивать, когда NPC будет их носить.
Тот, что я уже делал, не заменяет стандартный аутфит. Его можно абсолютно безболезненно отключить в любой момент.
Если нужно, могу сделать еще один максимально простой мод с заменой аутфита (вторым способом,. И всё будет работать гладко. Но если этот мод отключить, NPC останется голым НАВСЕГДААААААААА!
Ну как навсегда... Скорее, он будет снимать все вещи, которые надеты без флага "не снимать". А надеть вещи с этим флагом только мод может или консоль...
т е - компаньон, получив комплект и указание, навеки остаётся в нём даже после увольнения или же всегда сменить можно? Супругов - всегда женским персом играю - и компаньонов не переодеваю часто, в отличие от компаньонш
Конечно, можно менять. Комплект открывается как сундук. Любую вещь можно добавить или убрать. Это именно к моему моду и третьему варианту.
Но мой, наверное, не очень-то Вам подойдет. Он не совсем для этого предназначен и сложнее работает. Можете попробовать, в любом случае. Просто посмотреть. http://www.nexusmods.com/skyrim/download/1000109978 Там будет список зеркал. Выбирайте любое из Normal группы.
После установки мода, можно поговорить с любым NPC-другом и выбрать пункт меню (Outfits)
Если что, я помогу сделать модик... Там всего-то два пункта: заменить стандартный аутфит пустым и сделать, чтоб все вещи одевались с флажком. Запросто.
проверила на Лидке - после увольнения не переоделась. Правда не очень удобно, что мод на английском, который не знаю совершенно, пришлось методом тыка нужный раздел находить. Ещё раз спасибо - теперь хертфайровское поместье под нормальной защитой будет)
Там выбирается любой Аутфит, редактируется (Edit), а потом устанавливается как Основной (Main), для сна (Sleep), для дома итд. Вам он не очень-то подходит. Много лишнего. И он пока не идеально работает компаньонами, которые за игроком следуют. Наверное, лучше, другой вариант выбрать.
Хм... Уважаемые, дурацкий вопрос по поводу воды. А можно как-то триггер настроить, чтобы на его территории вода не действовала? Поставлю его под бассейном и все.
Ничего подобного не видел. А Вы не можете просто сделать static плоскость, натянуть на неё текстуру воды и сунуть в бассейн?
Мда... такое ощущение, что придется от бассейна отказаться.
Неееет. Бассейн со снежными эльфийками. Не надо отказываться.
Добавлено (05 Июня 2014, 23:42) --------------------------------------------- Вроде, получилось сделать воду. Осталось только разобраться, какая именно настройка из тех, что я поменял, помогла
Добавлено (06 Июня 2014, 00:45) --------------------------------------------- О... Вот... Оказывается, информация о глубине воды и о том, что это вообще вода, хранится в NIF'е. Например, Вы планируете использовать активатор Water1024. Его ниф - \Meshes\Water\Water1024.nif
1. Достаем ниф из "Skyrim - Meshes.bsa", переименовываем в Water1024-Arin.nif 2. Копируем активатор в CK, переименовываем в Water1024-Arin. Меняем ему ниф на Water1024-Arin.nif //Теперь есть почти такой же активатор, как и был, но использующий кастомный ниф.
3. Теперь можно изменять новый ниф в NifSkope. Интересует блок bhkSPCollisionObject. 3.1. Если блок удалить целиком, вода теряет все физические свойства. Выглядит, как обычная вода, но на этом и всё. 3.2. Еще у меня как-то получилось ограничить глубину. Кажется, я поменял только 2 атрибута. На скриншоте видно, какие и как.
Толку-то... Мы вникаем, гайды для Вас пишем. А Вы все-равно отказываетесь от всего, с чем нужно хоть немного разбираться. Добавление коллизий выглядит пострашнее, чем ограничение глубины воды.
Изменение репутации для пользователя Dsion
DsionOffline
Сообщение №108
| Тема: Вопросы по скриптам Papyrus
написано: 6 июня 2014, 12:56
| Отредактировано: Dsion - 6 июня 2014, 12:57
1. Конечно, можно. Триггеры же для того и сделаны. Когда что-то в триггер попадает, в его скрипте срабатывает ивент OnTriggerEnter(ObjectReference akActionRef). 2. Тоже без проблем. Можно просто засекать появление предмета в мире. А можно еще сделать дополнительную проверку, появился ли он именно в инвентаре игрока и работает ли игрок в кузне в данный момент. 3. Можно глобальную переменную или обычную переменную в квесте. Но, наверное, лучше было бы создать FormList, который будет содержать список всех существующих в мире колец. Чтоб уж точно исключить добавление одного кольца дважды итп.
Триггерное событие, наверное, срабатывает только один раз в момент попадания кольца. Но можно, на всякий случай, проверять IsDisabled(). Или сразу Delete() кольцо...
Когда выковываешь кольцо со скриптом, у него срабатывают ивенты OnInit и OnContainerChanged. Вот только оба ивента могут срабатывать повторно для того-же кольца. Например, OnInit срабатывает еще раз, если кольцо выбросить на землю. Потому я и подумал, что может быть нужна регистрация каждого кольца в FormList. А если уже было зарегистрировано, чтоб не добавлялось. Ну это не очень-то простая тема... И это если много колец.
А если кольцо только одно, то пусть OnInit устанавливает переменную "кольцоСуществует" в true и всё... Какая разница, сколько раз оно сработает.
А вот с уничтожением дело плохо обстоит. Ведь уничтожение кольца в лаве это только один из способов. Кроме того, ГГ может снять с кольца зачарования, продать его или просто потерять. Или положить в респавнящийся сундук.
А можно ли создать глобальную переменную ObjectReference, присваивая ей ID кольца после получения его главным героем? Тогда при исчезновении кольца там будет Nill. Это и станет условием прекращения респавна назгулов?
А кольцо не будет квестовым предметом? От квестовых особо не избавишься. Ну или ладно. Пусть кольцо - не квестовый предмет. Игрок его случайно где-то потерял, но кольцо продолжает существовать. Придумай, что должно происходить в таком случае: а) удаление кольца с назгулами б) автовозвращение кольца игроку в) включение маркера квеста, указывающего на кольцо г) перемещение кольца на какое-то заданное место итп.
Добавлено (07 Июня 2014, 16:57) --------------------------------------------- Или его хватает назгул, доставляет хозяину и начинается апокалипсис
Я читала то, что вы кидали и приняла ваши сообщения к сведению. Но все описанное в них крутится вокруг уже готовых моделей, а не новых, никак не связанных со Скайримом.Уроки же, которые есть в интернете, я просматривала много раз. Но везде - стырь коллизии с похожей модели, создай коллизии в самом NifTools-е (абсолютно кривые и бесполезные), но нигде нет ни слова, как сделать так, чтобы мои коллизии из 3Д-макса работали в Скайриме. Даже дырку в стене сделать невозможно, персонаж начинает пролетать через нее как приведение.
Или, к примеру, скопировала дефолтные текстуры в абсолютно новую модель Результат - модель блестит, как металлическая. Есть где-нибудь описание подобной проблемы? Нету нигде. Я и про то, как сделать текстуры видимыми вместо сплошной черноты, с грехом пополам нашла на одном никому неизвестном форуме. И это я еще говорю про текстуры стыренные из Скайрима. А если мне свои собственные нужно поставить? Так что в данном случае, остается только искать человека, который уже умеет это делать. В конце концов, я же не собираюсь заставлять его рисовать за себя модель.
Среди прочего, я бросал ссылку и на гайд по созданию собственной коллизии и настройке её материала. Но на английском. Там действительно есть пункт с копированием настроек коллизии с ванильного объекта. Но эта копия используется не как конечный вариант, а как заготовка, в которой потом заменяется меш коллизии и материалы. Как правильно создать меш коллизии тоже написано.
А чем Вы вообще экспортируете модели в NIF? Я вот прочитал описание еще одного из плагинов для этого. Там автор пишет, что уже добавил возможность экспорта коллизий и "всё сразу будет работать и не нужно больше ничего делать в NifSkope". Но в данном конкретном плагине это добавлено только в одной из последних версий 2014 г.
В общем, если кто-то уже объяснил Вам всё на родном языке, то хорошо. Если нет, то, возможно, имеет смысл посмотреть этот плагин или гайд.
А вообще мне очень нравится работать в блендере. Если плагин сможет сожрать файлы блендера - это будет настоящее счастье.
Я очень начинающий тридэшник и как-раз Blender, в основном, и использую
Касательно экспорта в NIF... На сайте NifTools есть и плагин для импорта/экспорта, и много уроков типа "создание стула" именно для Блэндэра. Плагин поддерживает коллизии (можно вручную меш создавать или автоматически создается капсула), можно сразу задавать материалы.
Это было хорошее, а теперь плохое. Всё это создавалось во времена Блэндэра 2.49. Сейчас, как я понял, плагин портируют для 2.6-2.7, но (еще?) не допортировали. Альфа, в общем. Большая часть офигенных уроков, о которых я говорил, написаны под Обливион.
Я на 90% уверен, что, немного разобравшись, это всё можно приспособить и к Скайриму, и к новым Блэндэрам. Сами смотрите, нужно ли оно Вам.
Добавлено (09 Июня 2014, 17:19) --------------------------------------------- Еще, наверное, можно сохранять из Блэндэра в Wavefront .obj, а потом импортировать это в NifSkope, настраивать и сохранять как nif. Только за словом "настраивать" может отказаться скрыта куча работы :-D
В свое время я именно так и делала... Мне очень нравилось ваять в блендере. Более того, я освоила более сложный вариант - экпорт в макс - экпорт в ниф. И вроде тогда даже не задумывалась о коллизиях, почему-то они были. Другое дело, что что у меня деревянная лестница блестела, как стеклянная, и помнится, тогда я так и не поняла, можно ли с этим что-нибудь сделать. Скорее всего, действительно где-то есть параметр отвечающий за блики, который я не заметила.ЗЫ: если Вы начинающий, то я вообще никакой. В первую очередь потому, что иностранные языки - это то, что у меня почему-то никогда не получалось.
В Блэндэре самый примитивный блеск - это Specular в настройках шэйдера. Может, этот шэйдер неправильно экспортируется или вообще не экспортируется. Если хотите, я могу попробовать разобраться с экспортом из Блэндера в Ниф и написать гайдик, если получится. Но только если Вам интересно. Чтоб не тратить время зря. Как я понял, основные проблемы: а) шэйдер б) коллизия и материал
Добавлено (09 Июня 2014, 18:57) --------------------------------------------- В описании плагина к Блэндэру сказано, что блеск тоже экспортируется... А если через obj - черт его знает.
Я была бы благодарна. Но стоит вопрос. Плагин есть только для 2.49. И а) в рабочем ли он состоянии, б) вполне возможно, что достать данную версию блендера уже невозможно. И если поставить нужную версию блендера и настроить плагин невозможно, то и в гайде смысла нет.
Я попробую. 2.49 версия Блэндэра у меня есть в запасах. Но я пока с альфа-плагина для 2.7 начну.
Изменение репутации для пользователя Dsion
DsionOffline
Сообщение №118
| Тема: Вопросы по моделированию
написано: 9 июня 2014, 17:01
| Отредактировано: Dsion - 9 июня 2014, 17:42
Кстати, я знаю на ютубе канал, на котором есть уроки по работе в блендере. Вам случайно не нужны?
Мне? Уроки очень даже нужны, но пока нет возможности их посмотреть. Я на море и интернет только через мобильник.
Добавлено (09 Июня 2014, 21:01) --------------------------------------------- Посмотрел пять разных гайдов по теме "Blender + Nif + Skyrim" и расстроился. Оба плагина для Blender (и старый, и новая альфа) нормально не поддерживают Скайрим. Помучившись, можно таки совершить экспорт, но только меш и экспортируется... Никакого автоматического создания коллизий или настройки материала. Не вижу смысла Вам в этом разбираться, если Вы и так уже умеете экспортировать меш.
Создается отдельный меш коллизии, отдельно экспортируется в nif. А потом в ChunkMerge объединяется видимый меш, заготовка коллизии, меш коллизии. Тут же задается материал (не видимый материал, а тот, что отвечает за звук шагов итп): http://imagizer.imageshack.us/a/img689/1195/chmtut08.png
Видимый материал и его шейдеры тоже ничерта автоматически не экспортируются. Нужно копировать готовый шейдер из другого nif и настраивать.
Это всё касалось Блэндэра... ---------------------------------------------
По 3DsMax. Я им почти не пользовался и на ноутбуке нету. Даже не буду читать гайды. Автор этого плагина заявляет, что сделал автоэкспорт коллизий: http://tesrenewal.com/forums....ax-2013
Блеск - это Specularity в шейдере. Если, при экспорте из 3дМакс в nif, экспортируется и шейдер, то блеск можно настраивать в 3дМакс. Если шейдер НЕ экспортируется, то, наверное, нужно работать уже в NifSkope: копировать откуда-то шейдер и настраивать Specularity в BSLightingShaderProperty. Это же касается прозрачности, свечения итп.
Может, MyPrism вернется и расскажет. Признался же, что умеет :-D ---------------------------------------------
Итоги: 1. Коллизии: Попробуйте плагин к 3дМакс, в котором заявлено их автосоздание. Если не работает или не понравится, разбирайтесь с ручным созданием в NifTools/ChunkMerge. 2. Шейдер (блеск итп.): Попробуйте настраивать блеск в 3дМакс (Specular, Hardness). Если в игре разницы нет, то шейдер не экспортируется. Тогда, опять же, нужно настраивать его в NifTools.
Изменение репутации для пользователя Dsion
DsionOffline
Сообщение №119
| Тема: Вопросы по моделированию
написано: 10 июня 2014, 12:56
| Отредактировано: Dsion - 10 июня 2014, 12:57
Главное, просечь фишку, что меш коллизии и видимая модель - разные вещи. Меш коллизии должен быть максимально упрощен. Именно по этой причине его желательно делать вручную. Что-то говорили про дырку в стене... Если нужно проделать дыру в большом ванильном объекте, то редактируется и видимая модель, и меш коллизии. Ну это я так себе представляю. Сам-то не пробовал.
Добавлено (10 Июня 2014, 16:56) ---------------------------------------------
Это одна из тех, о которых я говорил. Там описан достаточно сложный способ экспорта только видимого меша из Блэндэра + немного о ручном создании коллизий. Не вижу смысла Вам с этим разбираться, если Вы уже и так умеете экспортировать видимый меш (через obj или 3dsmax). А по созданию коллизий есть более полные уроки.
Изменение репутации для пользователя Dsion
DsionOffline
Сообщение №120
| Тема: Вопросы по моделированию
написано: 10 июня 2014, 14:11
| Отредактировано: Dsion - 10 июня 2014, 14:29
Создается меш? Но, возможно, ему не задается материал? Я тут перевел один гайд. Оригинал с картинками тут: http://niftools.sourceforge.net/wiki....nkMerge Честно говоря, над переводом не сильно расстарался... Так что не обижайте.
-------------------------------------------------------------------------------------- Добавление меша коллизии при помощи ChunkMerge. --------------------------------------------------------------------------------------
Меши коллизии хранятся в НИФ файлах в блоке bhkCompressedMeshShape. Они часто используются, к примеру, для объектов архитектуры, в основном, для статик-объектов. В динамических объектах (прим.: тех, на которые влияет физика) используется не меш коллизии, а havok-примитивы (коробка, шар, капсула итп).
Утилиту ChunkMerge накодили для того, чтоб превратить Ваш самодельный меш в блок bhkCompressedMeshShape и сохранить в Ваш НИФ.
Ниф, в которые Вы будете добавлять коллизию в этом туториале будем называть целевым.
- Откройте его в NifSkope - Проверьте, содержит ли он bhkCollisionObject (например, этот блок мог остаться от ванильного объекта, из которого вы создавали свой). Если блок есть, удалите его к чертям (Block → Remove Branch). Сохраните НИФ.
- Создайте свой меш коллизии в любом 3D софте, из которого можно экспортировать в НИФ (3дмакс, Блэндер итп). - Не делайте модель слишком сложной. Если оригинальный объект сложный, не пытайтесь создать точно такой же меш коллизии - упрощайте его везде, где возможно. - Проверьте нормали, чтоб были направлены наружу. - Не добавляйте никаких видимых материалов - они бесполезны. - Не добавляйте модификаторов или трансформаций. - Если Вам нужно несколько разных материалов в меше коллизий, создавайте отдельные объекты для каждого материала. По возможности, объединяйте объекты с одним материалом (прим.: тут говорится про материал коллизии, от которого зависит звук шагов, втыкаемость стрел итп)
-------------------------------------------------------------------------------------- Подготовка НИФ файла с мешем коллизии
Этот файл будет источником меша коллизии, который ChunkMerger превратит в bhkCompressedMeshShape в целевом НИФе.
- Откройте экспортированный НИФ с мешем коллизии (из предыдущей главы) в НифСкоп. - Постарайтесь достигнуть такой же простой структуры НИФ файла, как показано на картинке. http://imageshack.us/a/img189/3743/chmtut03.png А именно: ------ NiNode или BSFadeNode как корень. ------ Все NiTriShape блоки соединены с корневым блоком. ------ Каждый NiTriShape представляет отдельный объект из вашего 3д софта и будет иметь свой материал. ------ Все остальные блоки удалить. ------ На каждом NiTriShape блоке должны быть нормали. Посмотрите в NiTriShapeData каждого блока и убедитесь, что Has Normals == yes. Если нет, клацайте правой кнопкой по NiTriShape, потом Mesh → Face Normals.
- Установите именем каждого NiTriShape блока имя материала, который он будет иметь. Имя материала должно быть одним из материалов Скайрима. (Все начинаются с "SKY_HAV_MAT_", список в конце поста). Чтоб изменить имя NiTriShape блока, левый клик на нем, потом Block Details, найти Name, клацнуть на иконке слева от значения, поменять имя. (прим.: подозреваю, что это делать не обязательно, если используется один материал для всего объекта) - Когда все имена прописаны, сохраните НИФ.
-------------------------------------------------------------------------------------- Подготовка НИФ файла-основы для коллизии
ChunkMerge будет использовать этот файл, чтоб взять блок bhkCollisionObject и скопировать его в Ваш целевой файл.
- Найдите ванильный Скайримный объект с таким же или похожим предназначением, как Ваш объект, и содержащий блок bhkRigidBody с bhkCompressedMeshShape блоком внутри. Откройте его в НифСкоп. - Удалите к дьяволу все блоки, кроме корневого, bhkCollisionObject (с его содержимым) и BSXFlags. - Создайте где-нибудь новую папку и сохраните туда этот НИФ.
Создание этой заготовки - единоразовая работа. В будущем вы можете использовать её снова, когда добавляете коллизии к объекту похожего предназначения.
Если Вы создаете дом, то желательно создать эту заготовку из ванильного НИФа какого-то дома.
Теперь у Вас есть все три файла, которые нужны ChunkMerge: 1. Целевой НИФ с вашим объектом, но без блока коллизии. 2. НИФ файл с мешем коллизии. 3. НИФ файл-заготовка для создания коллизии (в какой-то папке).
-------------------------------------------------------------------------------------- Использование ChunkMerge
- Запускаем ChunkMerge ------ Если программа запускается в первый раз, придется указать nif.xml из папки НифСкоп; папку заготовок (template directory) - та, куда сохранили заготовку; папку Скайрима - не используется, можно указать любую.
- Запускается ChunkMerge. В логе появляются сообщения типа "materials found: XX" (зеленого цвета) и не должно быть никаких ошибок (красного цвета). Если ошибки таки появились, закройте программу, удалите ChunkMerge.xml из её папки и запустите снова.
- Заполняйте поля зоны Files: ------ Nif-file (Skyrim) - сюда целевой файл. ------ Collision-File - сюда НИФ с мешем коллизии. ------ Template (Skyrim) - сюда заготовку. Выбрать из списка файлов в папке заготовок.
- В зоне Collision Material выбирайте "Name of NiTriShape" дабы ChunkMerge уразумела, что нужно задать материалы в соответствии с именами NiTriShape блоков. ------ Можно использовать один материал для всего объекта. Тогда установите Single в Collision Material и выбирайте желаемый материал. (прим.: Ах, так... Оказывается, прописывать имена блокам было не обязательно, если для всего объекта используется один материал.)
- Выбрать Mesh Data в Collision Source. - Теперь ChunkMerge готова делать работу.
- Вы можете проверить целевой файл в НифСкоп. Там должен появиться блок bhkCollisionObject. - Можете так же проверить материалы. bhkCompressedMeshShapeData -> Chunk Materials. Там должен быть список всех материалов, что используются. - Чтоб визуально посмотреть объект коллизии, откройте НИФ в режиме Preview в CreationKit и нажмите F4, чтоб увидеть объект коллизии (черными линиями).
-------------------------------------------------------------------------------------- Проверка в игре
Чтоб проверить, правильно ли задались материалы, Вы можете: - Пнуть объект каким-то оружием и оценить звук. Пните несколько раз, поскольку есть баг, благодаря которому новый материал иногда производит звук материала, который был атакован до этого. - Всадить в объект стрелу, чтоб проверить, застрянет ли она (для материалов типа дерева) или отлетит (материалы типа камня).
-------------------------------------------------------------------------------------- Список материалов:
Light Wood SKY_HAV_MAT_LIGHT_WOOD Wood SKY_HAV_MAT_WOOD Heavy Wood SKY_HAV_MAT_HEAVY_WOOD Stairs Wood SKY_HAV_MAT_STAIRS_WOOD Material Wood As Stairs SKY_HAV_MAT_MATERIAL_WOOD_AS_STAIRS Stone SKY_HAV_MAT_STONE Stairs Stone SKY_HAV_MAT_STAIRS_STONE Material Stone As Stairs SKY_HAV_MAT_MATERIAL_STONE_AS_STAIRS Broken Stone SKY_HAV_MAT_BROKEN_STONE Stairs Broken Stone SKY_HAV_MAT_STAIRS_BROKEN_STONE Solid Metal SKY_HAV_MAT_SOLID_METAL Heavy Metal SKY_HAV_MAT_HEAVY_METAL Material Chain Metal SKY_HAV_MAT_MATERIAL_CHAIN_METAL Grass SKY_HAV_MAT_GRASS Gravel SKY_HAV_MAT_GRAVEL Mud SKY_HAV_MAT_MUD Dirt SKY_HAV_MAT_DIRT Sand SKY_HAV_MAT_SAND Ice SKY_HAV_MAT_ICE Snow SKY_HAV_MAT_SNOW Stairs Snow SKY_HAV_MAT_STAIRS_SNOW Glass SKY_HAV_MAT_GLASS Cloth SKY_HAV_MAT_CLOTH Organic SKY_HAV_MAT_ORGANIC Water SKY_HAV_MAT_WATER Barrel SKY_HAV_MAT_BARREL Material Coin SKY_HAV_MAT_MATERIAL_COIN Material Ceramic Medium SKY_HAV_MAT_MATERIAL_CERAMIC_MEDIUM Material Basket SKY_HAV_MAT_MATERIAL_BASKET Material Book SKY_HAV_MAT_MATERIAL_BOOK Material Bottle Small SKY_HAV_MAT_MATERIAL_BOTTLE_SMALL Material Bone SKY_HAV_MAT_MATERIAL_BONE Material Chain SKY_HAV_MAT_MATERIAL_CHAIN Material Boulder Medium SKY_HAV_MAT_MATERIAL_BOULDER_MEDIUM Material Boulder Large SKY_HAV_MAT_MATERIAL_BOULDER_LARGE Material Blade 1 Hand SKY_HAV_MAT_MATERIAL_BLADE_1HAND Material Blade 1Hand Small SKY_HAV_MAT_MATERIAL_BLADE_1HAND_SMALL Material Blade 2Hand SKY_HAV_MAT_MATERIAL_BLADE_2HAND Material Axe 1Hand SKY_HAV_MAT_MATERIAL_AXE_1HAND Material Blunt 2Hand SKY_HAV_MAT_MATERIAL_BLUNT_2HAND Material Bows Staves SKY_HAV_MAT_MATERIAL_BOWS_STAVES Material Arrow SKY_HAV_MAT_MATERIAL_ARROW Material Armor Light SKY_HAV_MAT_MATERIAL_ARMOR_LIGHT Material Armor Heavy SKY_HAV_MAT_MATERIAL_ARMOR_HEAVY Material Shield Light SKY_HAV_MAT_MATERIAL_SHIELD_LIGHT Material Shield Heavy SKY_HAV_MAT_MATERIAL_SHIELD_HEAVY Skin SKY_HAV_MAT_SKIN Material Skin Small SKY_HAV_MAT_MATERIAL_SKIN_SMALL Material Skin Large SKY_HAV_MAT_MATERIAL_SKIN_LARGE Dragon SKY_HAV_MAT_DRAGON (круто!)