Котошметик 116 Опубликовано 28 Ноября 2018 Поделиться Опубликовано 28 Ноября 2018 Привет!Как перенести персонажа из игры на движке Source(типа css,half life,left 4 dead) в сталкер тч или чн/зп? Ну, да поможет Вам F1, да сохранит Вас F2, во имя Control`а, Alt`а и святого Delet`а. Enter. Ссылка на комментарий
ed_rez 16 109 Опубликовано 28 Ноября 2018 Поделиться Опубликовано 28 Ноября 2018 @Котошметик [YouTube], привет! Долго и упорно допривязывая, что не привяжется от иного скелета (Source) к Сталкеру. Это если кратчайшим путем, либо полная перепривязка, делается в любом удобном 3Д редакторе. Знание Фотошопа, чтобы исходники для бампа сделать. Знание СДК с настройкой моделей и текстур. https://www.youtube.com/results?search_query=Привязка+меши+НПС+к+костям+сталкера 1 1 Ссылка на комментарий
Котошметик 116 Опубликовано 29 Ноября 2018 Поделиться Опубликовано 29 Ноября 2018 Пипл,хэлп!У меня после переноса монолитовца в тяжёлом бронекостюме из ЗП в ТЧ я словил вылет. Вот часть лога : Скрытый текст [error]Expression : fatal error [error]Function : CSkeletonX::_Load [error]File : E:\stalker\sources\trunk\xr_3da\SkeletonX.cpp [error]Line : 380 [error]Description : <no expression> [error]Arguments : Invalid vertex type in skinned model 'actors\neytral\stalker_neytral_balon_1:1' Я делал по этому гайду. Ну, да поможет Вам F1, да сохранит Вас F2, во имя Control`а, Alt`а и святого Delet`а. Enter. Ссылка на комментарий
Marafon6540 764 Опубликовано 29 Ноября 2018 Поделиться Опубликовано 29 Ноября 2018 @Котошметик [YouTube], а ты его в каком СДК делал? Для ТЧ или для ЗП? Для каждой версии игры - свой СДК нужен. Трилогия Апокалипсис. Упавшая звезда. Честь наемника. v. 1.2 УЗЧН v.1.3 + ОГСРх64 Последний сталкер v. 1.2 ПС v. 1.3 + ОГСРх64 Ссылка на комментарий
Graff46 598 Опубликовано 7 Января 2019 Поделиться Опубликовано 7 Января 2019 (изменено) Пытался перенести Лесника из ЧН в ТЧ (раньше переносил НПС из ЗП в ТЧ с ЗПшными анимками - работали), перегнал модель Лесника через СДК 0.4, анимки все в омф файле (от ЧН), в СДК анимки на НПС работают. Добавил анимки в mob_trader.script Скрытый текст ---------------------------------------------------------------------------------------------------- -- mob_trader ---------------------------------------------------------------------------------------------------- global_animations = { desk_idle = {"idle","idle_1","palci","zatylok"}, desk_talk = {"idle","idle_1"}, desk_to_chair_hack = {"idle_spinka"}, desk_to_listen = {"idle_chitaet"}, desk_to_diagonal = {"perehod_0"}, chair_hack_idle = {"idle_2","idle_2_def_0"}, chair_hack_talk = {"idle_2_talk_0","idle_2_talk_1","idle_2_talk_2","idle_2_talk_3"}, chair_hack_to_diagonal = {"idle_2_to_idle_0"}, chair_hack_to_desk = {"spinka_idle"}, compute_idle = {"idle_1_spec_think_0","idle_1_spec_think_1"}, compute_idle_to_diagonal = {"idle_1_to_idle_0"}, diagonal_idle = {"idle_0_def_0","idle_0_spec_click_0","idle_0_spec_scratch_0"}, diagonal_idle_short = {"idle_0_def_0"}, diagonal_talk = {"idle_0_talk_0","idle_0_talk_1","idle_0_talk_2","idle_0_talk_3"}, diagonal_to_chair_hack = {"idle_0_to_idle_2"}, diagonal_to_compute = {"idle_0_to_idle_1"}, diagonal_to_desk = {"perehod_1"}, first_phrase = {"vstuplenie"}, listen_idle = {"chitaet"}, listen_to_desk = {"chitaet_idle"}, hello = {"hello"}, forester_sit = {"sit"}, forester_beard = {"beard_in","beard","beard_out"}, forester_reaction = {"reaction_in","reaction","reaction_out"}, forester_see = {"see_in","see","see_out"}, forester_talk_1 = {"sit_talk_1_in","sit_talk_1","sit_talk_1_out"}, forester_talk_2 = {"sit_talk_2_in","sit_talk_2","sit_talk_2_out"}, forester_talk_3 = {"sit_talk_3_in","sit_talk_3","sit_talk_3_out"} } head_animations = { normal = {"talk_0","talk_1","talk_4"}, angry = {"talk_3","talk_2","talk_1"}, good = {"talk_glad_0"}, first_phrase = {"vstuplenie_head"}, forester_talk_1 = {"sit_talk_1_in","sit_talk_1","sit_talk_1_out"}, forester_talk_2 = {"sit_talk_2_in","sit_talk_2","sit_talk_2_out"}, forester_talk_3 = {"sit_talk_3_in","sit_talk_3","sit_talk_3_out"}, forester_reaction = {"reaction_in","reaction","reaction_out"} } ---------------------------------------------------------------------------------------------------- function on_start_tutorial_item_1() if db.trader == nil then return end db.trader:external_sound_start("characters_voice\\scenario\\trader\\trader_tutorial_pda_12") end function on_stop_tutorial_item() if db.trader == nil then return end db.trader:external_sound_stop() end ---------------------------------------------------------------------------------------------------- class "mob_trader" function mob_trader:__init(obj, storage) self.object = obj self.st = storage end function mob_trader:reset_scheme() trader_obj = self.object self.st.signals = {} self.object:set_callback(callback.trader_global_anim_request, self.on_global_anim_request, self ) self.object:set_callback(callback.trader_head_anim_request, self.on_head_anim_request, self ) self.object:set_callback(callback.trader_sound_end, self.on_sound_end, self ) -- start global animation self.object:set_trader_global_anim(self:select_global_animation()) -- start sound and head animation if (self.st.sound_phrase) then local snd = mob_sound.pick_sound_from_set(self.object, self.st.sound_phrase, {}) self.object:set_trader_sound(snd, self:select_head_animation()); end if self.st.anim_head == nil then self.st.anim_head = "normal" end db.trader = self.object end function mob_trader:update(delta) if xr_logic.try_switch_to_another_section(self.object, self.st, db.actor) then return end end --------------------------------------------------------------------------------------------------------------------- function mob_trader:select_global_animation() local anim_set = global_animations[self.st.anim_global] local r = math.random(1, table.getn(anim_set)) return anim_set[r] end function mob_trader:select_head_animation() -- random select local anim_set = head_animations[self.st.anim_head] local r = math.random(1, table.getn(anim_set)) return anim_set[r] end --------------------------------------------------------------------------------------------------------------------- function mob_trader:on_global_anim_request() self.st.signals["animation_end"] = true if (not self.st.play_once) then self.object:set_trader_global_anim(self:select_global_animation()) end end function mob_trader:on_head_anim_request() if self.st.anim_head == nil then return end self.object:set_trader_head_anim(self:select_head_animation()); end function mob_trader:on_sound_end() self.st.signals["sound_phrase_end"] = true end --------------------------------------------------------------------------------------------------------------------- function mob_trader:deactivate() self.object:set_callback(callback.trader_global_anim_request, nil ) self.object:set_callback(callback.trader_head_anim_request, nil ) self.object:set_callback(callback.trader_sound_end, nil ) self.st.signals = {} db.trader = nil end --------------------------------------------------------------------------------------------------------------------- function add_to_binder(npc, ini, scheme, section, storage) printf("DEBUG: add_to_binder: npc:name()='%s', scheme='%s', section='%s'", npc:name(), scheme, section) local new_action = mob_trader(npc, storage) -- Зарегистрировать все actions, в которых должен быть вызван метод reset_scheme при изменении настроек схемы: xr_logic.subscribe_action_for_events(npc, storage, new_action) end function set_scheme(npc, ini, scheme, section, gulag_name) local st = xr_logic.assign_storage_and_bind(npc, ini, scheme, section) st.logic = xr_logic.cfg_get_switch_conditions(ini, section, npc) st.anim_global = utils.cfg_get_string(ini, section, "anim_global", npc, true, "") st.can_talk = utils.cfg_get_bool(ini, section, "can_talk", npc, false, true) st.tip_text = utils.cfg_get_string(ini, section, "tip_text", npc, false, "", "character_use") if st.tip_text == nil then st.tip_text = "" end npc:set_tip_text(st.tip_text) if (ini:line_exist( section, "sound_phrase")) then st.anim_head = utils.cfg_get_string(ini, section, "anim_head", npc, false, "") st.sound_phrase = utils.cfg_get_string(ini, section, "sound_phrase", npc, false, "") else st.anim_head = nil st.sound_phrase = nil end --' check if play once animation st.play_once = false if (ini:line_exist( section, "on_signal")) then local str = utils.cfg_get_string(ini, section, "on_signal", npc, false, "") local par = utils.parse_params(str) if par[1] == "animation_end" then st.play_once = true end end if st.can_talk == true then npc:enable_talk() else npc:disable_talk() end end Спавню в игре и получаю вылет! Скрытый текст Expression : motion_ID.valid() Function : CKinematicsAnimated::ID_Cycle File : E:\stalker\sources\trunk\xr_3da\SkeletonAnimated.cpp Line : 136 Description : ! MODEL: can't find cycle: Arguments : sit Но анимация "sit" есть в омф и в СДК играет! Пробовал другие анимки - тоже такой вылет. Внимание! Лесник не НПС, а моб (как Сидорович в ТЧ). Подскажите в чем кроется ошибка? Изменено 7 Января 2019 пользователем Graff46 Ссылка на комментарий
ed_rez 16 109 Опубликовано 7 Января 2019 Поделиться Опубликовано 7 Января 2019 2 минуты назад, Graff46 сказал: перегнал модель Лесника через СДК 0.4 Просто перегнал или перед этим изменил скелет на ТЧ-шный? (Вопрос может быть и ответом) Ссылка на комментарий
Graff46 598 Опубликовано 7 Января 2019 Поделиться Опубликовано 7 Января 2019 @ed_rez, Не менял @ed_rez, Моя не внимательность меня погубит! Спавнил Лесника, а скин Сидора был, хотя в секции менял, а как через нет-пакет сменил, так сразу! Ссылка на комментарий
ed_rez 16 109 Опубликовано 7 Января 2019 Поделиться Опубликовано 7 Января 2019 17 минут назад, Graff46 сказал: Не менял Тогда это объясняет: 29 минут назад, Graff46 сказал: Лесник не НПС, а моб (как Сидорович в ТЧ). Странно, а я помню Лесника стоящим и двигающимся у какой-то избушки. Видимо был перенос на сталкерский скелет. Ссылка на комментарий
Graff46 598 Опубликовано 7 Января 2019 Поделиться Опубликовано 7 Января 2019 9 минут назад, ed_rez сказал: Тогда это объясняет: Зачем менять скелет, если я омф из ЧН использую (родную)? Ссылка на комментарий
ed_rez 16 109 Опубликовано 7 Января 2019 Поделиться Опубликовано 7 Января 2019 @Graff46, тогда смысл перегонять в СДК? Дописать другие файлы настроек косточек? Мне, к примеру, без разницы в каком СДК компилить модель для ТЧ. Это и ввело меня в путаницу, да еще и думал про сталкерский скелет. Ссылка на комментарий
Romann 623 Опубликовано 8 Января 2019 Поделиться Опубликовано 8 Января 2019 23 часа назад, ed_rez сказал: тогда смысл перегонять в СДК? Ну как минимум - шейдер поменять. Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz). Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб). Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
ed_rez 16 109 Опубликовано 8 Января 2019 Поделиться Опубликовано 8 Января 2019 @Romann, и то верно, причем сам же когда-то об этом и писал. Ссылка на комментарий
alexsimm 373 Опубликовано 15 Января 2019 Поделиться Опубликовано 15 Января 2019 Подскажите, где находятся анимации для круглова? "Народная солянка 2016 в UHD" - мод глобального ретекстура мира СТАЛКЕР ТЧ (мод вышел, качайте) Ссылка на комментарий
ed_rez 16 109 Опубликовано 15 Января 2019 Поделиться Опубликовано 15 Января 2019 @alexsimm, stalker_animation.omf 1 Ссылка на комментарий
alexsimm 373 Опубликовано 15 Января 2019 Поделиться Опубликовано 15 Января 2019 @ed_rez, а как узнать какие именно относятся к Круглову? "Народная солянка 2016 в UHD" - мод глобального ретекстура мира СТАЛКЕР ТЧ (мод вышел, качайте) Ссылка на комментарий
ed_rez 16 109 Опубликовано 15 Января 2019 Поделиться Опубликовано 15 Января 2019 (изменено) Логику персонажа смотри. http://stalkerin.gameru.net/wiki/index.php?title=Настройка_логики._Часть_1 Изменено 15 Января 2019 пользователем ed_rez 1 Ссылка на комментарий
Змея 240 Опубликовано 15 Января 2019 Поделиться Опубликовано 15 Января 2019 (изменено) ИМХО до кучи пути в спавне нужно смотреть. А по логике - анимки как анимки. Ничего необычного...Всё как у сталкеров)) Изменено 15 Января 2019 пользователем Змея Ссылка на комментарий
sto1en 420 Опубликовано 9 Июня 2019 Поделиться Опубликовано 9 Июня 2019 В 07.01.2019 в 04:25, ed_rez сказал: Мне, к примеру, без разницы в каком СДК компилить модель для ТЧ. У тебя движек альтернативный? Или есть способ компилить НПС в 0.7 для ТЧ? Do what thou wilt shall be the whole of the Law. Ссылка на комментарий
ed_rez 16 109 Опубликовано 9 Июня 2019 Поделиться Опубликовано 9 Июня 2019 @sto1en, тут не важно какой движок. Важны настройки текстур, а именно шейдеров. Скелет ТЧ отлично съедается СДК ЗП. Галочка HQ geometry не вызывает конфликтов в ТЧ движке. Настройки костей универсальны. Ссылка на комментарий
sto1en 420 Опубликовано 9 Июня 2019 Поделиться Опубликовано 9 Июня 2019 Я компилировал в 0.7 модель под ТЧ. Настройки шейдеров как в 0.4. Скелет - universal.bones подгружал. Компилирует без проблем, но в игре вылет CSkeletonX::_Load Invalid vertex type in skinned model '%s' , увы. Do what thou wilt shall be the whole of the Law. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти