Створення моделей з колізіями для skyrim

Створення моделей з колізіями для Skyrim. Частина 2. Підготовка та впровадження колізій.

У першій частині статті ми з Вами створили придатну до використання в грі модель. Але в ній ще не були прописані колізії.
Сподіваюся у Вас все ще відкритий nif-файл, який Ви передали з 3DS Max? Відмінно. Ми будемо використовувати його для створення колізії. Якщо модель не містить дуже великого числа полігонів, то для цього можна використовувати ту ж геометрію, що і для основної моделі.
Для початку розглянемо більш складний варіант, з двома матеріалами.
Програма ChunkMerge при впровадженні колізій може прописувати дані про матеріали або читаючи їх з назви блоків, або, якщо вся модель складається з одного матеріалу, вказується в інтерфейсі самої програми.
Як Ви пам'ятаєте, у нас два матеріали, дерево і бронза. Заходимо в вікно NifSkope, де відкрито Ваш експортований файл. Міняємо імена блоків таким чином, щоб вони містили назви матеріалів, використовуваних движком Havok. (Таблиця буде дана в додатку)

Створення моделей з колізіями для skyrim

Як бачите, блоку відповідає за дерев'яну частину столу, ми присвоїли ім'я SKY_HAV_MAT_WOOD, а блоку отображающему металеву (бронзову) частину присвоєно ім'я SKY_HAV_MAT_SOLID_METAL.
Дуже важливо. щоб в цьому nif-файлі більше не було ніяких інших блоків, крім тих, які містять геометрію, яку Ви збираєтеся впроваджувати як колізію. Якщо з якихось причин у вашому експортованому nif-е затесалися інші блоки (прапори або ще щось) - сміливо їх видаляйте.
Загалом то файл з колізіями готовий. Зберігаємо його з назвою, наприклад, table_c.nif
Тепер запускаємо програму ChunkMerge. Для початку вона запитає файл nif.xml в якому прописані матеріали. Як я зрозумів, дана програма годиться для впровадження колізій в моделі для всіх ігор, що використовують моделі nif, просто для кожної гри свій файл nif.xml
Створення моделей з колізіями для skyrim

У рядку Nif-File вказуємо той файл, який ми підготували в першій частині, без колізій (в нашому прикладі table.nif). До нього вони і будуть додані.
У рядку Collision-File вказуємо файл колізій, підготовлений нами тільки що і названий table_c.nif
У рядку Template вказуємо «шаблонний» файл, витягнуте з ресурсів гри. Це та ж горезвісна бочка, її модель лежить в папці з програмою ChunkMerge.
У розділі Collision Source все залишаємо як є, Mesh Data.
Тепер необхідно вказати метод за яким програма пізнає матеріали. У розділі Collision Material вказуємо Name of NiTriShape, тобто програма прочитає ім'я блоку і присвоїть даний матеріал цієї частини колізії.
Створення моделей з колізіями для skyrim

Все, тиснемо Convert, отримуємо готовий nif-файл table.nif зі впровадженої в нього колізією. Якщо відкрити його в NifSkope і включити відображення колізій, то Ви їх побачите:
Створення моделей з колізіями для skyrim

Наша робота завершена.
Тепер розглянемо окремий випадок, якщо вся модель складається з одного матеріалу. В даному прикладі ми можемо не прописувати бронзовий кантик. Тому в моделі, що містить колізії (table_c.nif) можна видалити блок, його відображає. А при конвертації, в розділі Collision Material, вибрати вручну матеріал Single Wood
Створення моделей з колізіями для skyrim

Додаток: Імена матеріалів Havoc

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

Gamlih. статтю активувала.
Можливо, ви міняли щось в описі, тому вона автоматично пішла на премодерацію. У таких випадках відписуйтеся ласка в цій темі.

Дак я в курсі. Нерідко результат виходить незадовільний; я в ніфскопе збираю з всякоразних детальок "новий предмет" і буває так, що Шейп вилазять далеко за межі колізійного блоку. Або, якщо дефолтний nif підібраний невдало, колізії набагато більше предмета - знову погано.
Якби я вмів в тріде, робив би об'єктів нормальні колізії в максі-блендері. Але в тріде я не вмію, тому доводиться шукати інші шляхи.

Можна спробувати брати готові nif тих же тарілочок і предметів з гри і підміняти в них візуальні Шейп, залишаючи "рідні" колізії. Для цього, як мені здається, досить одного NifSkope.

як я зрозумів, для створення предметів володіють вагою цей спосіб не підходить. Тільки для статичних об'єктів.

Журбинка. Доведеться шукати інший спосіб.
Спасибі за відповідь!

Gamlih, раз ви з'явилися, то питання по суті.
За допомогою ChunkMerge можна робити колізії для будь-яких об'єктів в Скае?
Для статики колізії робляться коректно, здається, все добре.
Роблю колізії для міскітема (всякоразние тарілки-кубки-дрібні предмети etc) - колізії начебто додаються, я їх бачу в СК, але об'єкт починає вести себе як статики: викинутий в світ, повисає в повітрі, не реагує на удари. За логікою, об'єкт мав би впасти на землю або відлетіти від удару, але немає, він висить в повітрі.

Швидше за все, я зробив щось не так, але що саме, поки не допер. Можливо, неправильно підготував модель? - для цього і потрібна була перша частина уроку :).

Та ніби на місці. Спробуйте пряме посилання.

хлопців таке питання можна перенести расу з Облівіона в fallout ??)

Підкажіть, будь ласка, чи можна при завданні колізій вказати "важку" частину - ту, на яку буде падати предмет, якщо його викинути з інвентарю. Може бути, де-небудь у вікні Block Details?
Наприклад, зліпила вазу з квіткою (іграбельних, що не static), хочу, щоб на поверхню вона падала дном вниз (ну, хоча б, щоб вона частіше падала дном вниз), "примальовувала" колізію у вигляді конуса з широкою основою. А "нормальний" спосіб є?

Методом "тику" (документація? Ага, щас. Ай спік Бедлі) знайшла, де поставити реакцію на зіткнення (ура!). А можна, щоб після "викидання" предмет не тонув (плавав) по воді?

А що з текстурами? Текстури натягуються на шейдер, який відображає візуальну частину моделі, а колізія це зовсім інший об'єкт в ній.
Так що якщо хочете в якості колізії використовувати тільки стільницю (як я зрозумів з вашого пояснення), то заради Бога, хто ж проти?
Ніяких видимих ​​проблем не буде.

ЗИ. Ви абсолютно праві, трава це і є моделі позбавлені колізій.

Угу. Що якась стріла пролетіла крізь ніжку якогось столу в бою помітити неможливо, але що з текстурами-то?
Якщо не розтягувати колізії до куба (о жах, невже це хтось робив?), А взяти прямокутник (в місці кришки), на що будуть кріпитися текстури?
Адже через деякі текстури можна пройти. (Трава, наприклад)
(Не чіпляйтеся, в очі не бачив жодну таку програму)

Як готової колізії використовується та-ж модель, яку ви зробили в "максі". Начебто в статті я все докладно описав.

Зрозуміло можна. Але колізії використовуються не тільки при зіткненні з персонажами, а й при зіткненні з предметами, зброєю і стрілами.
Якщо не буде бентежити, що стріла вільно пролетить крізь ніжку, то будь ласка
Можна наприклад, в якості колізії зробити куб, величиною як стіл. Але тоді ті-ж стріли будуть застрявати в порожньому просторі між ніжок.
В принципі, якщо не лінуватися, і якщо модель містить багато полігонів, то краще зробити для колізій спрощену модель. На прикладі того-ж столу: два плоских паралелепіпеда - стільниця і полку, і чотири паралелепіпеда - ніжки. Об'єднати це все в один об'єкт, який не текстурувати, бо не потрібно. І все це впровадити, вказавши в ChunkMerge один матеріал (дерево) для всього об'єкта.

Цікаво, а якщо обробити тільки верхню частину столу, а на найскладніше - ніжки - забити, це буде хоч якось помітно в грі?
Адже в кришку все одно упрёшься, а водити схопленим предметами під столом не кожному в голову прийде.
Або тоді будуть проблеми з накладенням текстур?

200? '200px': '' + (this.scrollHeight + 5) + 'px'); "> У попередніх беседкоіграх типу Обли і Фол3 # 92; Вегас куди простіше, в блендері можна безпосередньо створити 3 різних типи колізії, і відразу після експорту модель пхати в гру

Дайте будь-ласка посилання

Схожі статті