Поиск сообщества
Показаны результаты для тегов 'урок'.
Найдено: 2 результата
-
Довелось на досуге поиграть во второй сталкер. Зацепил оттуда несколько фишек, которые захотел воссоздать на платформе Зова Припяти. Об одной их них и пойдет речь в этом гайде - создание двери, открыть которую можно посредством разбития замка. 1. Создаем модель двери. Моделируем обычную динамическую дверь, в любом удобном 3D-редакторе, в моем случае это 3DsMAX. Углубляться в детали по созданию двери в данном гайде смысла не вижу, так как такие уроки уже есть (Пример). У меня получилось следующее: 2. Создаем модель замка Этап моделирования и текстурирования пропускаю, так как не сомневаюсь в ваших навыках. Для тех, кто работает с 3Ds MAX - в Command Panel переходим в вкладку Create -> Systems -> Bones. Размещаем кость, даем ей названием link, подгоняем под размер нашей модели. Выделяем наш замок, применяем к нему модификатор Skin. В модификаторе Skin, свиток Parameters, ищем кнопку Bones: Add, в открывшемся листе выбираем нашу кость, все автоматически привязалось. Скриптами ден стеша экспортируем получившуюся модельку. 2.1. Создание обломков замка Тут, опять же, каждый может действовать в рамках своей фантазии и навыков. Я поступил следующим образом. Взял модель замка, создал кривую линию, с помощью булевых операций разрубил модельку замка на два куска. Детачнул один кусок от другого, получил два объекта. К каждому из объектов делаем и привязываем link кость, как расписал выше. После чего экспортируем каждый кусок как отдельный объект. У меня получилось как-то так: 3. Настраиваем модель в Actor Editor Подгружаем дверь, настраиваем по уроку Андрея Непряхина, экспортируем. Подгружаем объект цельного замка. Раскрываем Bones, выбираем кость link, выставляем параметры Shape -> Type -> Box ; Joint -> Type -> Rigid. Затем делаем Generate Shape All. Раскрываем Surfaces, и к текстурам применяем параметры shader: models\model ; compile: default ; game mtl: default_object. Раскрываем Object -> Game Options -> User data вписываем #include "models\objects\door_locker_01.ltx" и экспортируем в .ogf нашу настроенную модельку замка. Таким же образом подгружаем два обломка замка, настраиваем их как цельный замок, но без инклюда в юзер дата, эспортируем в OGF по пути dynamics\door\part\ c названием door_locker_01_part_1 и door_locker_01_part_2. 4. Создаем конфиг для замка В юзер дате мы указали путь models\objects\, по которому лежит специальный файл с настройками нашего замка. Создаем по этому пути файл door_locker_01.ltx и впишем в него следующие параметры: [disable] linear_factor = 0.5 angular_factor = 0.5 ;---------------- [collide] ignore_static ignore_small_objects ignore_ragdoll ;not_collide_parts // наличие это строки определяет колидится ли объект;---------------- [destroyed] dynamics\door\part\door_locker_01_part_1 dynamics\door\part\door_locker_01_part_2 [autoremove_parts] time = 60 ;---------------- [collision_damage] link = 0.004 ;---------------- [particles] destroy_particles = destroy_fx\destroy_wood_00 ;---------------- [particle_bones] link = 0.0, 0.15, 0.0 ;---------------- [sound] break_sound = material\metal_box\collide\big_metal_1 default = 1.0, -1, 0.0 [immunities] burn_immunity = 0.05 ;коэффициенты иммунитета strike_immunity = 0.5 shock_immunity = 0.0 wound_immunity = 0.5 radiation_immunity = 0.0 telepatic_immunity = 0.0 chemical_burn_immunity = 0.0 explosion_immunity = 1.0 fire_wound_immunity = 0.5 [impulse_transition_to_parts] random_min = 5.0 ; величина случайно направленного импульса пропорционально массе нового объекта random_hit_imp = 2.0 ; величина случайно направленного импульса пропорционально разрушающему хиту ;ref_bone ; кость из по которой определяется скорость для частей у который связь не задана, по умолчанию рут imp_transition_factor = 1.0 ; фактор с которым прикладывается хит по исходному объекту ко всем частям lv_transition_factor = 0.5 ; коэффициент передачи линейной скорости av_transition_factor = 0.5 ; коэффициент передачи угловой скорости 5. Размещаем дверь и замок на локации Дело за малым. Остается разместить все это на локации. Итак, ставим в нужном месте physic_door, назначаем ему визуал нашей двери, ставим в fixed bones: link, в custom data пишем [logic] cfg = scripts\location\physics\locked_door_01.ltx [collide] ignore_static В игре создаем файл scripts\location\physics\locked_door_01.ltx в нем пишем: [logic] active = ph_door@locked [ph_door@close] locked = false closed = true snd_open_start = wood_small_open snd_close_start = wood_small_close_start snd_close_stop = wood_small_close_stop on_use = ph_door@open [ph_door@open] locked = false closed = false snd_open_start = wood_small_open snd_close_start = wood_small_close_start snd_close_stop = wood_small_close_stop on_use = ph_door@close [ph_door@locked] locked = true closed = true snd_open_start = wood_small_open snd_close_start = wood_small_close_start snd_close_stop = wood_small_close_stop on_info = {+locker_destroyed} ph_door@close Дверь установили, ставим замок. Размещаем physics -> object, даем ему визуал замка, устанавливаем fixed bones: link, в custom data пишем: [collide] ignore_static [logic] active = ph_on_death [ph_on_death] on_info = %+locker_destroyed% У меня получилось следующим образом: Компилируем спавн, закидываем в игру и проверяем итоговый результат:
-
Стандартный декомпилятор/компилятор SDK 0.6 от Genior. Был использован в старых уроках DrombeysEveryDay по моддингу Clear Sky В архив включены все настроенные батники. СКАЧАТЬ
- 6 ответов
-
- 3
-
- drombeys
- drombeys everyday
- (и ещё 7 )