А вот тут я бы сильно озадачился. Ну то есть когда вся сцена расчитана до миллиметра это не кажется сложным, но если задача отловить координаты головы гуляющего в непонятной позе непися... Это вообще решаемая задача?
Ну, если только ранить - то вряд ли. А если нужно убить, тогда killactor и указываешь часть тела, которая отвалится. Никаких сомнений в том, куда именно попала пуля, у зрителей скорее всего не появится.
====================== Мод "Нью-Йорк" на русском: https://modgames.net/load/fallout3/addon/new-york-bolshoe-yabloko/34-1-0-1294 Мод "Нью-Йорк" на английском: https://modgames.net/load/fallout3/kvesty/the-big-apple/23-1-0-19771
если задача отловить координаты головы гуляющего в непонятной позе непися... Это вообще решаемая задача?
В порядке извращения же... Хотя если бы сценка была такая - к неписю в непредсказуемый момент игры подходит убийца, втыкает ему точно в ухо (или в глаз, как КсюXa предлагает) свол револьвера и стреляет, а непись в это время то ли сидит, то ли лежит, то ли крадётся - то да, ловить такую беспокойную голову замучаешься, это точно. А если задача такая, что снайпер должен выстрелить издалека в сторону жертвы и при этом просто не запачкать ему одежду где не надо, то тут миллиметры ловить и не требуется, я так думаю - хватит и IsSneaking. Тем более в срежиссированной сцене примерно известно, чем непись будет занят. Ну будет маркер в двадцати сантиметрах от головы, если напись наклонился зачем-то, кто там заметит полградуса отклонения ствола? Брызги крови, правда, при попадании тогда не вылетят, а взрывать башку нельзя... Ну, в первоначальном вопросе непись как-то собирался показывать, что ему именно в голову прилетело
Изменение репутации для пользователя Ipatow
IpatowOffline
Сообщение №1203
написано: 20 сентября 2014, 15:37
| Отредактировано: Ipatow - 20 сентября 2014, 15:38
к неписю в непредсказуемый момент игры подходит убийца, втыкает ему точно в ухо
Кабы так, я бы сразу сказал - ищи ветра в поле аниматора, который всю эту сцену в три-дэ-максе нарисует...
А так и рост у персонажей отличается (ну, у меня отличается), и с разным оружием в руках они по разному ходят (в стандартном комплекте для некоторых видов оружия имеется собственная анимация ходьбы, а у ж в нестандартном вовсе лес тёмный)... Пусть уж стреляет через UseWeapon из уникального оружия, которому оторван Impact Data Set во избежание подозрительных отметин на жертве, а остальное жертва сама изобразит.
Уважаемые знатоки плиз хелп! В моделях есть параметр BSXFlags как выяснилось весьма важный и он имеет конкретные числовые значения. Подскажите какая цифра что конкретно означает.
Ты бы поведал, в чём именно твоя печаль - а то, может, на самом деле тебя интересует bkhCollisionObject -> bhkRigidBody: Layer
Может конечно и bhkRigidBody но вряд ли. Если уж изливать печаль то... Решил я намедни сделать так, чтобы ракету (гранатометную) можно было сбивать из винтовки как гранату. Замутил ей DestructionData'у. Не сбивается - пули сквозь ракету летят. Дошло, что надо добавить в модель коллизию. Добавил и началось интересное и непонятное: то пули летят сквозь коллизию будто там нет ничего, то ракета исчезает только вылетев из ствола. Наконец догадался сделать коллизию по образу и подобию собственно гранаты - ракета летает, сбивается, но вот дымный след пропал напрочь. А хотелось полноценную ракету, чтобы и дымный след был и сбивать можно было. И выяснилось что работоспособность AddonNode'ов зависит от значения этого самого BSX'а. Да и поведение коллизии тоже. В частности возможность поднять объект зависит не только от типа коллизии, этого самого Layer'а, но и от значения BSX'а. Ну вот так если коротко... Перешел по ссылке и понял, что рано лыжи одел. Снега нет еще асфальт кругом... короче не понял ни фига!
хотелось полноценную ракету, чтобы и дымный след был и сбивать можно было.
Охохонюшки... Должен со стыдом признаться, как те маляры - это, гражданочка, вам к доктору надо! Я помню, что здешние моделестроители над коллизиями измывались, на лифте ГГ катали, ещё какие-то непотребства творили... Но сам я только краями обширных ушей порой какую крупицу истин уловлю. Слыхивал, что по раскраске layer ( http://niftools.sourceforge.net/wiki/Oblivion/Bhk_Objects/Layer ) можно слёту визуально косяки с коллизиями обнаруживать - ну да не твой как бы случай. Слыхивал, что бывают несовместимые сочетания функционала (вроде того, что броня может быть либо анимированная, либо с расокожаным шейдером, но не одновременно) - может быть, ты на такое наступил и нельзя такую коллизию с дымовыми нодами вместе? Опытный тут шаман нужен, чтоб понимал тонкости Gamebryo в вариации BS... Поговаривают, что не все они работают в Bethesda (хотя и там их меньше, чем надо бы).
Изменение репутации для пользователя Quazar
QuazarOffline
Сообщение №1209
написано: 21 сентября 2014, 15:08
| Отредактировано: QuazarX - 21 сентября 2014, 15:12
Столкнулся с таким вопросом, вроде простой как валенок, но как оказалось очень головоломный - как можно осуществить в Fallout 3 динамичную смену скорости плаванья для гг? Перепробовал вроде бы уже все. Функция IsSwimming для игрока не работает (если она вообще работает, т.к. в игре ее нет), на бетсофт рекомендуется использовать GetPos Z, кстати там ошибка, для плаванья нужна высота не 10500, а 10670 (10666,77 - если совсем точно). Но эта функция имеет много ограничений, в частности она не годится в качестве условия для смены значений что SetAv SpeedMult, что SetNumericGameSetting fMoveRunMult, т.е функций который могли бы повлиять на смену скорости гг в воде. И для игрока это сочетание так же не используется в игре. Т.е посмотреть из готовых примеров просто нечего. В сеттингах есть еще настройки по изменению скорости плаванья (вроде бы, судя по названию), но их изменение не дает никакого результата. Возможно это просто хвосты от Обливиона (какая может быть атлетика в fallout?7) Пробовал еще создавать способности на эту же тему, но результат тот же - никакой. Такое впечатление, что разрабы специально обрубили все возможности как-то влиять на плаванье...
Функция IsSwimming для игрока не работает (если она вообще работает, т.к. в игре ее нет), на бетсофт рекомендуется использовать GetPos Z, кстати там ошибка, для плаванья нужна высота не 10500, а 10670 (10666,77 - если совсем точно).
В игре эта функция есть, и моды ей пользуются. Ну, пытаются по крайней мере (например, FWE изо всех сил проверяет Player.IsSwimming - но та же Бриса добросовестно переодевается в купальник, когда доводится свалиться в водоём, и это любой брисофил подтвердит).
Забавный факт - NVSE 4.2 Beta 3 ввела функцию IsPlayerSwimming - так эта беда всех достала... Ну, то в вегасе.
Проверка высоты - ошеломляющая доверчивость. Ну да, мы знаем, на какой высоте автовода в стандартном мире. Но мало того, что каждая ячейка территории может заоверрайдить автоводу в своих пределах, так ещё навалом Placeable Water вокруг...
Кажется, когда в последний раз такого рода проблема тут обсуждалась (кому не лень вбить "IsSwimming" в поиск? где-то в Мастерской вегаса дело было), вроде пришли к выводу, что надо с частотой наглости бросать в ГГ каким-нибудь NPC подходящего роста (с ростом тоже забавно - на глубину, с которой NPC начинает плавать, масштаб влияет, но масштаб базового объекта, а не SetScale на референсе) и проверять - поплыл, нет?
Насчёт атлетики... Не будет вреда, если протестировать, а не работают ли fMoveSwimWalkBase да fMoveSwimRunBase - вдруг работают? Мало ли - ведь сапоги отменили, но fSneakBootWeightBase всякий жив и фурычит.
Изменение репутации для пользователя Quazar
QuazarOffline
Сообщение №1211
написано: 22 сентября 2014, 01:04
| Отредактировано: QuazarX - 22 сентября 2014, 01:14
если после выхода из воды присесть и встать, то скорость восстанавливается сразу до исходного значение, какое было до плаванья
А смена скорости вообще вступает в силу, если способ передвижения не меняется? Попробуй не высоту мерять, а, например, GetPos X и на чётных десятках метров ставь 2.2, а на нечётных 4.2 и беги про прямой - будет на ходу скорость бега меняться? Если не меняется, то, значит, ты поздно поменял скорость на сухопутную (когда ГГ уже успел выйти на сушу), и новая скорость включится после смены способа передвижения (например, сломай ноги и почини или присядь-встань).
Слыхивал, что бывают несовместимые сочетания функционала...
похоже на то... только виновата тут не коллизия. Простой пример: возможность поднять предмет с земли и положить в карман обеспечивают значения BSXFalags 66 и 67 причем коллизия может быть и Clutter и Weapon и Projectile и даже Biped про остальные точно не помню. Так что я надеялся именно на расшифровку числовых значений BSX. Ну примерно такую, как расшифровка цветов коллизии. Ну на нет как говорится...
Спасибо что заморочился...
Изменение репутации для пользователя Quazar
QuazarOffline
Сообщение №1214
написано: 23 сентября 2014, 07:31
| Отредактировано: QuazarX - 23 сентября 2014, 08:19
Если не меняется, то, значит, ты поздно поменял скорость на сухопутную (когда ГГ уже успел выйти на сушу), и новая скорость включится после смены способа передвижения (например, сломай ноги и почини или присядь-встань).
Да, сантиметры в этом деле сыграли свою роль, дело было в координатах. Оказывается верное значение колеблется в диапазоне 10657-10660 (выше уже нельзя иначе начинаются баги), т.е. чтобы гг для нормальной смены скорости, как бы так сказать, не полностью высовывался из воды, а был слегка "притоплен". При этом еще нужно сделать небольшую накладку (в 3-4), на случай погрешности. Вот при соблюдении всех этих условностей, скрипт работает нормально. Как буд-то бы. Однако все равно это шаткая конструкция, тут еще нужно соблюсти много дополнительных условий: чтобы гг не находился в присяди, чтобы не были сломаны руки-ноги, для интерьеров опять же нужно что-то думать (там уровень воды может быть другим + Placeable Water), учесть особенности рас, и т.д. и т.п. Это не учитывая разных косметических мелочей вроде загруженности инвентаря. Да и боюсь многие моды будут конфликтовать с этим.
Честно сказать, задача сложная, особенно меня смущают интерьеры с изменяемым уровнем воды. Конечно, всего этого можно было бы избежать если бы функция IsSwimming на игроке работала нормально. Может все же написать создателям FOSE, а вдруг перекинут таки функцию из Вегаса, а заодно и еще с десяток нужных. Для них это пара пустяков, экстендеры ведь почти однотипные.
p.s.Тут еще что интересно - получается, что для нормальной смены скорости (туда-обратно) игрок должен находится в одном и том же режиме передвижения, в плаваньи, но почему этот же метод не работает если игрок передвигается по суше? Я проверял вариант с осью Х - скрипт не работает вглухую, т.е. только через присядки.
вдруг перекинут таки функцию из Вегаса, а заодно и еще с десяток нужных. Для них это пара пустяков
Это вроде бы и вообще пара пустяков. Ну, пара дюжин пустяков... Если бы у меня не было рвотного рефлекса на язык си - честное слово, давно бы написал плагин для FOSE с нужными мне функциями (у меня установлена пара плагинов разных авторов)... По совести, самая нужная была бы SetLinkedRef - динамическая линковка феерически упростила бы многое и ещё большее сделала бы возможным (подумать только - на ходу создающиеся маршруты патрулей, привязка package к чему угодно... сказка!). Всего-то одна функция нужна... Эх.
Так что, все-таки нашли адекватный способ определить, находится персонаж в воде или нет? Помнится когда когда мы пытались заставить неписей набирать водную радиацию, то для определения нахождения в воде был предложен только абсолютно шаманский способ разбрасывания вокруг персонажа малоразмерных человечков...
когда мы пытались заставить неписей набирать водную радиацию, то для определения нахождения в воде был предложен только абсолютно шаманский способ разбрасывания вокруг персонажа малоразмерных человечков...
Ничего не изменилось с тех пор. Там была немножко другая ситуация - там на первом месте было не locomotion ГГ, а мокрые ли у него пятки. Почему человечков и разбрасывали маленьких - чтоб плавали даже когда воды там ГГ по щиколотку. А тут требуется шаманство сходное, но немножко другое, в духе
SET SwimmerBase TO TempCloneForm Player SET Swimmer TO Player.PlaceAtMe SwimmerBase 1 Swimmer.MoveTo Player SET CheckValue TO Swimmer.IsSwimming Swimmer.Disable Swimmer.MarkForDelete
Очевидна тормознутость и нестабильность приёма (мы 3D-объекты творим да двигаем под ногами), но это как будто всё ещё единственный способ хоть как-то получить нужную информацию...
был предложен только абсолютно шаманский способ разбрасывания вокруг персонажа малоразмерных человечков...
Ну уж прям разбрасывания. Всего-то одного кидали, и вовсе не вокруг, а впереди. А то ещё вот. Взять и поместить (разбросать ) с помощью PlaceAtMe прямо в начало координат игрока что-нибудь легче воды, но тяжелее воздуха. Если игрок стоит на твёрдой земле, то оно, разбросанное, провалится под землю и быстро полетит к центру Земли (вниз), а если игрок уже гребёт ручками-ножками, то оно начнёт всплывать (вверх). Думаю, тут и можно поймать его за дельту Z. Уж по-любому не сложнее, чем живого пловца.
как проверить производится смена скорости на неписях только в зоне активной обработки, или вообще во всей игре?
Повлиять это могло бы только на закадровых путешественников вроде кентерберийских караванов... Даже не знаю, проверяются ли у них модификаторы скорости. Множитель бега по крайней мере караванщики не используют уже просто потому, что не бегают, но станут ли они медленне гулять, если им ноги переломать?.. Не соображу даже сразу, как это можно замерить... Low-Level процессы на то и лоу-левел, что их отодвигает от кормушки всяк желающий, и поди разбери он медленно идёт из-за хромоты или из-за того, что процессор съел кто-то другой
Может быть, стоит вовсе пересмотреть подход к задаче? Ну, скажем... При попадании в воду вешать минус Carry Weight. Да, ГГ в одних трусах будет плавать шустро - но это ведь как раз логично?
Как будто интересный вариант... Взять невидимую деревяшку мувабл статик, MoveTo Player, SetPos Z (5 + GetPos Z) чтоб не встряло в коллизии чего-то придонного - по идее должно начать всплывать. Хотя для стоящего в ванне по колено в коньяке ГГ оно тоже поплывёт... Гмм... Не похоже насчёт плавания, но жидкость как будто должна обнаруживаться. Главное что у меня вызывает сомнения в этой затее - это то, что отлов всплывания дело явно не однофреймовое, то есть о мгновенном результате нечего и думать...
как правильно настроить пакет Засады?И как сделать, чтобы он сработал?
Следовать старому-престарому совету: - посмотреть, как оно уже сделано кем-то ранее. То есть - найти в списке пакетов пакет засады, посмотреть его настройки, обращая внимание на установленные флаги, названия стартовой и "засадной" локаций, на цель засады, кондиции и прочее , посмотреть в инфо, какому неписю пакет приписан, открыть того непися, посмотреть у него настройки, как прописан этот пакет, открыть реф-копию этого непися на локации и посмотреть настройки этой копии и т.д. Заодно почитать про пакет засады на вики.. И повторить всё, но уже со своим пакетом и своим неписем. Указав, естественно, свою локацию, в которой будет ждать непись, локацию засады и цель.
Всем привет,подскажите пожалуйста, можно ли какой нибудь консольной командой заменить папку музыки которая играет в ячейке на другую?Например Dangeous на Base
можно ли какой нибудь консольной командой заменить папку музыки которая играет в ячейке на другую?
Нет, такой функции не имеется ни среди стандартных, ни среди функций экстендера с известными мне плагинами. Если её изготовить, то, вероятно, будет работать по аналогии с SetCellImageSpace, то есть изменение вступит в силу после загрузки изменённой ячейки в игру заново (вход-выход, сохранение-загрузка и т.п.).