Поскольку траектория изначально сильно отклоняется вверх по вертикали, то при корректировке (подъёме) прицела "кружок" оптики верхним краем уходит за границу монитора.
За границу монитора??? Что-то сильно круто... У меня на самой "кривой" анимации максимальное отклонение по вертикали не превышает 5.75 ед. по меркам NifScope а по горизонтали 0.65 ед. но поскольку смещается весь прицел, то отклонения конечно заметны (по вертикали) но не критично и ни о каком уходе за пределы экрана речь не идет даже близко... Что за BulletTime такой я не в курсе. Поэтому тут что-то советовать сложно. Поскольку отклонения разные, то на вскидку могу предположить, что твои "особые режимы" как-то цепляют другие анимации допустим из папки _Male а не из папки _1stPerson. По умолчанию конкретное ружье при виде от третьего лица использует анимации: _Male / 2HRAttack(№атаки).kf _Male / 2HRAttack(№атаки)Down.kf _Male / 2HRAttack(№атаки)Up.kf _Male / 2HRAttack(№атаки)IS.kf _Male / 2HRAttack(№атаки)ISDown.kf _Male / 2HRAttack(№атаки)ISUp.kf Плюс еще столько же с приставкой Sneack итого 12 анимаций. Фактически это разные анимации и каждая может иметь свое собственное отклонение. А режиме оптики использует только одну ружейно-оптическую анимацию _1stPerson / 2HRAttack(№атаки)IS.kf. Либо анимацию _1stPerson / 2HRAttack(№атаки).kf. Если анимация *IS.kf отсутствует. И никаких Up - Down - Sneack...
День добрый граждане. Подскажите как сделать чтобы у напарников при стрельбе рассеивание прожектилей было таким, как указано в параметрах используемого оружия? А то у ГГ и простых неписей все нормально а отдаешь ствол напарнику и все - рассеивание в пределах 5 ед. вне зависимости от ствола...
Использование одного или двух видов анимации - свойство оружия......
Понятно... Но как то не подходит, потому что допустим снайперка и китайский автомат конечно используют разные 2HAAttackLeft/2HAAttackLeftIS и 2HAAttackLoop/2HAAttackLoopIS анимации соответственно, а вот анимация 2HAAim/2HAAimIS с которой можно сказать и начинается стрельба, у них общая для класса TwoHandAutomatic, а как понимаешь из автомата не стоит стрелять только через прицел... Ну а если допустим конкретный NPC с конкретной винтовкой? Может можно при помощи пакета или еще как?
По поводу разделения оружия на 2HR и 2HA - подскажите, какие файлы анимаций отвечают за положение правой руки?
2HRAim 2HRAimDown 2HRAimUp 2HRAimIS 2HRAimISDown 2HRAimISUp Sneak2HRAim Sneak2HRAimDown Sneak2HRAimUp Sneak2HRAimIS Sneak2HRAimISDown Sneak2HRAimISUp 2HRAttack * 2HRAttack * Down 2HRAttack * Up 2HRAttack * IS 2HRAttack * ISDown 2HRAttack * ISUP Sneak2HRAttack * Sneak2HRAttack * Down Sneak2HRAttack * Up Sneak2HRAttack * IS Sneak2HRAttack * ISDown Sneak2HRAttack * ISUP
* - номер конкретной атаки. Плюс некоторое произвольное количество анимаций с приставкой PA то есть для использования с PowerArmor. И так для каждого "огнестрела".
День добрый граждане. Ipatow, приветствую уважаемый.
Сначала про "сказку" о броне.
В том, что идея не интересная я с тобой категорически не согласен. Ну не должна силовая броня (да и многая другая) пробиваться пневматикой. В смысле вообще не должна. К сожалению DT в FO3 нет, так что идею можно было реализовать только таким вот корявым способом. Флажки: Self , Touch, Target стоят одновременно просто чтобы не заморачиваться. BaseEffect должны быть максимально универсальными (мое мнение) и отличаться только Assoc.Item’ами и наличием или отсутствием флажков Recover и Detrimental в том случае если в качестве Assoc.Item’а используются ValueModifier’ы. Тем более что наличие одновременно нескольких флажков на производительности не сказывается. Флажок FXPersist нужен для нормального воспроизведения визуальных эффектов и звуков присвоенных к базовому эффекту (по крайней мере в моей версии игры). Флажок NoDeathDispel нужен для того, чтобы эффекты полностью отрабатывали указанное время. Чтобы подожженный из огнемета персонаж не “потухал” сразу как только помрет. Эффекты брони без этого флажка тоже имеют дурную тенденцию “уходить и не возвращаться” когда персонаж (не ГГ) побывал “в отключке”. Параметр Assoc.Item я действительно забыл вписать, а ведь при написании смотрел в собственные эффекты… Признаю и каюсь. Спасибо.
Теперь про эффекты. Твое предположение про ”одновременность” попадания снарядов показалось мне интересным и я не поленился провести полигонные испытания с “медленными” прожектилями и вот как все выглядит:
Эффекты не блокируются ни 100%-йброней (DR>=100 при fMaxArmorRating>=100) ни параметром DamageMult=0 в BodyPartData. Мощность эффекта присвоенного к оружию или к взрыву прожектиля и основанного на ValueModifier’е зависит от уровня сложности, если оружие применяет ГГ против NPC/Creature либо NPC/Creature против ГГ. В случае если оружии применяет NPC/Creature против NPC/Creature, мощность эффекта находится на стандартном уровне указанном в эффекте. Эффект присвоенный непосредственно к самому оружию срабатывает на цели один раз за выстрел. Попал заряд в цель полностью, допустим при стрельбе дробью в упор (либо в случае если прожектиль в принципе один), или только частично из-за рассеивания дроби – неважно. Если выстрел попадает в несколько целей одновременно эффект срабатывает на каждой цели опять таки один раз за выстрел. Мощность эффектаприсвоенного к оружию действует на цель полностью вне зависимости от того,какая часть заряда попала в цель. Эффект присвоенный к взрыву прожектиля срабатывает на цели столько раз сколько дробин попадает в цель, но не более одного раза за фрейм игры.
ВАЖНО. Эффект присвоенный как непосредственно к оружию, так и к взрыву прожектиля срабатывает на цели не чаще одного раза за фрейм игры. Одинаковые эффекты не накладываются. Если эффект попричине своей большой продолжительности не успел завершить свое действие на момент попадания следующего прожектиля с таким же эффектом, то он прекращает свое действие. При большой скорострельности оружия и маленькой продолжительности очереди, эффект может сработать на цели только один раз за очередь, даже если этот эффект присвоен к взрыву прожектиля.
А вот собственно результаты тестовых стрельб. Каждый пункт каждого эксперимента проверялся 10 раз так что статистические данные достаточно точные:
Игра: Fallout 3 v.10012
Место: MegatonPlayerHouse
Уровень сложности: VeryEasy / Easy / Medium / Hard / VeryHard
Тестовая мишень: Clover Level: 20 Base Health: 435 Calculated Health: 575 Эффекты: Отсутствуют Положение: Горизонтальное у входной двери. Ногами к двери головой к противоположной стене. Состояние задано скриптовым блоком: Begin GameMode if ( GetAV Fatigue >= 0 ) DamageAV Fatigue 1 Endif END
Тестовый Projectile: ShotgunShellProjectile (не разрывной) Speed: 25 Fade Duration: 100 Hitscan (Visible in VATS Only): Снят Остальные параметры стандартные
Число выстрелов необходимое для поражения цели для каждого уровня сложности: С любой дистанции (в грудную коллизию): 6 / 8 / 12 / 16 / 24 ? ? Персонаж считается мертвым когда его HP=0 т.е. в данном случае смерть должна наступать после 23-го попадания, а не после 24-го. Непонятно.
Тестовый Projectile: ShotgunShellProjectile (не разрывной) Speed: 25 Fade Duration: 100 Hitscan (Visible in VATS Only): Снят Остальные параметры стандартные
Число выстрелов необходимое для поражения цели для каждого уровня сложности: С любой дистанции (в грудную коллизию): 2 / 3 / 4 / 6 / 8
Тестовый Projectile: ShotgunShellProjectile (не разрывной) Speed: 25 Fade Duration: 100 Hitscan (Visible in VATS Only): Снят Остальные параметры стандартные
Число выстрелов необходимое для поражения цели для каждого уровня сложности: С любой дистанции (в грудную коллизию): 3 / 4 / 4 / 5 / 5
Тестовый Projectile: ShotgunShellProjectile (не разрывной) Speed: 25 Fade Duration: 100 Hitscan (Visible in VATS Only): Снят Остальные параметры стандартные
Число выстрелов необходимое для поражения цели для каждого уровня сложности: С любой дистанции (в грудную коллизию): Бесконечно
1-2Б
Тестовая мишень: Clover Броня: DR = 105 при fMaxArmorRating = 105
Тестовый Projectile: ShotgunShellProjectile (не разрывной) Speed: 25 Fade Duration: 100 Hitscan (Visible in VATS Only): Снят Остальные параметры стандартные
Число выстрелов необходимое для поражения цели для каждого уровня сложности: С любой дистанции (в грудную коллизию): 3 / 4 / 6 / 8 / 12
1-2В
Тестовая мишень: Clover Броня: DR = 105 при fMaxArmorRating = 105
Тестовый Projectile: ShotgunShellProjectile (не разрывной) Speed: 25 Fade Duration: 100 Hitscan (Visible in VATS Only): Снят Остальные параметры стандартные
Число выстрелов необходимое для поражения цели для каждого уровня сложности: С любой дистанции (в грудную коллизию): 6 / 6 / 6 / 6 / 6
ЭКСПЕРИМЕНТ №1-2 Exp Броня мишени: DR = 105 при fMaxArmorRating = 105 Прожектиль: Разрывной Рассеивание дроби: 0
Тестовый Projectile: ShotgunShellProjectile (не разрывной) Speed: 25 Fade Duration: 100 Hitscan (Visible in VATS Only): Снят Остальные параметры стандартные
Число выстрелов необходимое для поражения цели для каждого уровня сложности: В упор (вертикально в грудную коллизию): 6 / 8 / 12 / 16 / 24 Со стороны головы в сторону ног (под углом 25гр. к горизонтали): 6-7 / 8-9 / 13-15 / 17-20 / 26-30 От противоположной стены (расстояние 4-5 ростов персонажа): 12-15 / 18-22 / 24-31 / 33-45 / 55-70
Тестовый Projectile: ShotgunShellProjectile(не разрывной) Speed: 25 Fade Duration: 100 Hitscan (Visible in VATS Only): Снят Остальные параметры стандартные
Число выстрелов необходимое для поражения цели для каждого уровня сложности: В упор (вертикально в грудную коллизию): 2 / 3 / 4 / 6 / 8 Со стороны головы в сторону ног ( под углом 25гр. к горизонтали): 2-3 / 3-4 / 4-5 / 6-7 / 7-10 От противоположной стены (расстояние 4-5 ростов персонажа): 3 / 4 / 5-6 / 6-8 / 8-11
Тестовый Projectile: ShotgunShellProjectile (не разрывной) Speed: 25 Fade Duration: 100 Hitscan (Visible in VATS Only): Снят Остальные параметры стандартные
Число выстрелов необходимое для поражения цели для каждого уровня сложности: В упор (вертикально в грудную коллизию): 3 / 4 / 4 / 5 / 5 Со стороны головы в сторону ног ( под углом 25гр. к горизонтали): 3 / 4 / 4 / 5 / 5 От противоположной стены (расстояние 4-5 ростов персонажа): 4-5 / 4-5 / 5 / 5-6 / 5-6
Тестовый Projectile: ShotgunShellProjectile(разрывной) Speed: 25 Fade Duration: 100 Hitscan (Visible in VATS Only): установлен * Остальные параметры стандартные
Тестовый Explosion Force: 1 Damage: 1 Radius: 1 Enchantment: Отсутствует Остальные параметры: None либо 0
Число выстрелов необходимое для поражения цели для каждого уровня сложности: В упор (вертикально в грудную коллизию): 3 / 4 / 6 / 8 / 12 Со стороны головы в сторону ног ( под углом 25гр. к горизонтали): 3-4 / 4 / 6-7 / 8 / 12-13 От противоположной стены (расстояние 4-5 ростов персонажа): 6-8 / 8-11 / 12-15 / 16-21 / 23-30
Число выстрелов необходимое для поражения цели для каждого уровня сложности: В упор (вертикально в грудную коллизию): 2 / 2 / 3 / 4 / 6 Со стороны головы в сторону ног ( под углом 25гр. к горизонтали): 1 / 1 / 1 / 1 / 1 От противоположной стены (расстояние 4-5 ростов персонажа): 1 / 1 / 1 / 1 / 1
Тестовый Projectile: ShotgunShellProjectile(разрывной) Speed: 25 Fade Duration: 100 Hitscan (Visible in VATS Only): Установлен * Остальные параметры стандартные
Тестовый Explosion Force: 1 Damage: 1 Radius: 1 Enchantment: Script (DamageAV Health 100) Area: 1 Duration: 1 Magnitude: 1 Остальные параметры: None либо 0
Число выстрелов необходимое для поражения цели для каждого уровня сложности: В упор (вертикально в грудную коллизию): 3 / 3 / 3 / 4 / 4 Со стороны головы в сторону ног ( под углом 25гр. к горизонтали): 1 / 1 / 1 / 1 / 1 От противоположной стены (расстояние 4-5 ростов персонажа): 1 / 1 / 1 / 1 / 1
ЭКСПЕРИМЕНТ №2-2 Броня мишени: DR = 105 при fMaxArmorRating = 105 Прожектиль: Не разрывной Рассеивание дроби: 10
Тестовый Projectile: ShotgunShellProjectile (не разрывной) Speed: 25 Fade Duration: 100 Hitscan (Visible in VATS Only): Снят Остальные параметры стандартные
Число выстрелов необходимое для поражения цели для каждого уровня сложности: В упор (вертикально в грудную коллизию): 3 / 4 / 6 / 8 / 12 Со стороны головы в сторону ног ( под углом 25гр. к горизонтали): 3 / 4 / 6 / 8 / 12 От противоположной стены (расстояние 4-5 ростов персонажа): 3 / 4 / 6 / 8 / 12
2-2В
Тестовая мишень: Clover Броня: DR = 105 при fMaxArmorRating = 105
Тестовый Projectile: ShotgunShellProjectile (не разрывной) Speed: 25 Fade Duration: 100 Hitscan (Visible in VATS Only): Снят Остальные параметры стандартные
Число выстрелов необходимое для поражения цели для каждого уровня сложности: В упор (вертикально в грудную коллизию): 6 / 6 / 6 / 6 / 6 Со стороны головы в сторону ног ( под углом 25гр. к горизонтали): 6 / 6 / 6 / 6 / 6 От противоположной стены (расстояние 4 роста персонажа): 6 / 6 / 6 / 6 / 6
ЭКСПЕРИМЕНТ №2-2 Exp Броня мишени DR = 105 при fMaxArmorRating = 105 Прожектиль: Разрывной Рассеивание дроби: 10
Число выстрелов необходимое для поражения цели для каждого уровня сложности: В упор (вертикально в грудную коллизию): 3 / 4 / 6 / 8 / 12 Со стороны головы в сторону ног ( под углом 25гр. к горизонтали): 1 / 1 / 1 / 1 / 1 От противоположной стены (расстояние 4 роста персонажа): 1 / 1 / 1 / 1 / 1
Тестовый Projectile: ShotgunShellProjectile(разрывной) Speed: 25 Fade Duration: 100 Hitscan (Visible in VATS Only): Установлен * Остальные параметры стандартные
Тестовый Explosion Force: 1 Damage: 1 Radius: 1 Enchantment: Script (DamageAV Health 100) Area: 1 Duration: 1 Magnitude: 1 Остальные параметры: None либо 0
Число выстрелов необходимое для поражения цели для каждого уровня сложности: В упор (вертикально в грудную коллизию): 6 / 6 / 6 / 6/ 6 Со стороны головы в сторону ног ( под углом 25гр. к горизонтали): 1 / 1 / 1 / 1 / 1 От противоположной стены (расстояние 4 роста персонажа): 1 / 1 / 1 / 1 / 1
* Если на “разрывном” прожектиле флажок “Hitscan (Visible in VATS Only)” не установлен, то сам прожектиль повреждений не наносит, а взрыв наносит повреждения только если касается посторонней статики (пола, потолка, стен, земли). Если на “разрывном” прожектиле флажок “Hitscan (Visible in VATS Only)” установлен, повреждения наносят как сам прожектиль так и взрыв, но в этом случае взрыв происходит на поверхности воды.
День добрый граждане. Есть в GECK такие классы оружия OneHandPistolEnergy и TwoHandRifleEnergy, но используют они "общую" пистолетную и винтовочную анимацию. Так вот вопрос: как заставить их использовать собственную анимацию (главное Aim)?
может быть исправлено практически только с перекомпиляцией исполняемого файла игры. То есть практически не может быть исправлено
Понял спасибо. А я так надеялся сделать стрельбу "по македонски"...
Хотел вот еще что спросить: все ли перковые параметры можно присвоить напарникам? Делал все как ты говорил с "секретной" единичкой и вот итог: урон / разброс / дальность зрения - меняются, неподрываемость на минах - не работает. А очень бы хотелось. И еще вопрос, если перк добавляется с "секретной" единичкой, убирать его тоже надо с единичкой или не обязательно?
А не может быть, что проверочные мобы не удовлетворяли условиям перка?
В качестве "проверочного" моба выступает стандартная напарница Кэсс. Перк добавляется собственным скриптом Кэсс когда она становится Teammmate=1 и убирается когда Teammate=0 без всяких дополнительных условий. В перке несколько EntryPoint'ов таких как увеличение урона и расстояния видимости, уменьшение разброса и даже свечение (для проверки что перк вообще работает) и все работает, а вот именно CalculateMineExplodeChance работать не хочет и все...
Вот что делаем 1 идём в GameEffects / ObjectEffect и к нашей броне добавляем IncreaseDamageResistance параметры поставил 1000 чтобы не мелочится 2 идём в Items / Weapon, находим оружие, которое заведомо не должно пробивать нашу броню и устанавливаем: Resist – DamageResist
Хочешь сказать, что при втором способе, Resist в настройках оружия имеет значение? Что если при эффекте брони IncreaseDamageResistance > 100 в настройках оружия поставить допустим Resist - NONE и при этом не вешать на оружие эффект, то все равно будет пробивать??? Оччень инререссно... Вообще-то DamageResist - "общий" эффект, так что если эффект брони IncreaseDamageResistance поставить 100 или больше то такая броня вообще не должна пробиваться оружием на котором нет оружейных эффектов, вне зависимости от того какой Resist установить в настройках самого оружия... Даже если поставить Resist - NONE то пробивать не должно. Если по простому, то из "стандартного" оружия такую броню будут пробивать только дротикомет огнемет и шиш-кебаб, да и то не сами, а только их эффекты.
З.Ы. У меня намедни заработал "реально" светящийся меч типа шиш-кебаб. В смысле он находясь в руке освещает окружающее пространство и умеет разбивать повреждаемые объекты типа мотоциклов, машин, вертибирдов. Так что если интересно и есть хотя бы базовые навыки работы с NifScope'ом (если нет не страшно там все просто) могу рассказать что и как...
Текстуры есть, карты нормалей есть, все есть. Как можно это исправить?
Причина конкретно вот этой фигни только одна - игра не видит текстуры. То что текстуры есть в природе это конечно да, а вот где именно? Я тоже однажды пулемет перенес, в смысле модель перенес а текстуры в Вегасе остались... Игра зачастую использует две разные модели для оружия находящегося в руках и оружия находящегося на земле. Первая ссылка на модель находится непосредственно в оружии во второй вкладке, вторая ссылка находится в разделе Static. В обоих местах сделай ссылку на одну и ту же модель (делается в G.E.C.K.) Посмотри в NifScope какие именно текстуры требует модель (пункты BSShaderTextureSet подпункты Textures). Возьми из оригинальной папки в Вегасе текстуры с приставкой 1stPerson (они как понимаешь получше) переименуй в "обычные" и скопируй в Фолл-3 по указанному в модели пути. Обязано работать.
Изменение репутации для пользователя Veldion
VeldionOffline
Сообщение №134
| Тема: Помощь по G.E.C.K.
написано: 3 июня 2014, 07:33
| Отредактировано: Veldion - 3 июня 2014, 09:02
День добрый граждане. Как и обещал, рассказываю как сделать игровое холодное оружие "реально" светящимся.
Сказка часть 2: СОЗДАНИЕ "СВЕТОВОГО" МЕЧА.
КАК СДЕЛАТЬ ХОЛОДНОЕ ОРУЖИЕ “РЕАЛЬНО” СВЕТЯЩИМСЯ
В данном руководстве будет рассказано, как при помощи NifScope и G.E.C.K. сделать холодное оружие, такое как лазерный меч или Шиш-Кебаб “реально” светящимся. Игровое холодное оружие излучать свет и освещать окружающее пространство не умеет, а вот огнестрельное при выстреле с этой задачей вполне справляется. Поэтому каким бы бредом это не показалось, чтобы заставить холодное оружие светиться его нужно сделать стреляющим. В данном случае в качестве примера будет рассмотрен стандартный игровой Шиш-Кебаб.
Для начала стоит определиться должен ли наш огненный меч наносить урон живым существам при простом касании и дополнительный урон при ударе а также ломать повреждаемые объекты (машины и вертибирды) или он будет просто светиться. Никакой кардинальной разницы при создании обоих вариантов нет, но модель меча, который только светится, несколько проще.
СПОСОБ №1 Меч наносит урон повреждаемым объектам, а также дополнительный урон персонажам при ударе и простом касании.
1).Сначала подготовим модель для меча. В папке Data/Meshes/Weapons/1HandMelee открываем NifScope’ом модель ShishKebab.Nif.
1.1). Открываем пункты BSShaderTextureSet в строчках 39 и 49 (по умолчанию). В подпунктах Textures заменяем имеющиеся текстуры на текстуры с приставкой 1stPerson. Делать это не обязательно, но в данном случае желательно. Закрываем пункты.
1.2). Открываем пункт NiHeader (самый верхний). В строчке NumStrings в столбце Value увеличиваем на единицу текущее значение (было 19 ставим 20) и щелкаем несколько раз левой кнопкой по круглой зеленой стрелочке в строке Strings. Открываем подпункт Strings и в появившейся нижней свободной строчке в столбце Value пишем SKProjectileNode01 (название взято для примера и может быть любым другим). Закрываем пункт NIHeader.
1.3). Щелкаем правой кнопкой мыши по пункту BSFadeNode (вторая строчка сверху) и в появившейся менюшке выбираем: Node / AttachNode / NiNode. Открываем наш новый NiNode и устанавливаем: Name – 19(теперь наш новый Node называется SKProjectileNode01) Flags – 14
1.4). Щелкаем правой кнопкой по SKProjectileNode01 и в появившейся менюшке выбираем: Block / Insert / NiTransformData Открываем пункт NiTransformData и устанавливаем: Translations: NumKeys 5 Interpolation LINEAR_KEY Не забываем потыкать зеленую стрелочку в подпункте Keys. Keys: Time: 0.0000 X: 2.0000 Y: 17.5000 Z: 0.0000 Time: 0.0150 X: 2.0000 Y: 47.2500 Z: 0.0000 Time: 0.0180 X: 2.0000 Y: 51.7500 Z: 0.0000 Time: 0.0195 X:-1.0000 Y: 54.0000 Z: 0.0000 Time: 0.0200 X: 2.0000 Y: 17.5000 Z: 0.0000 Закрываем пункт. Эти координатно-временные данные приведены для меча со стандартной моделью ShishKebab.Nif. Для оружия с другой моделью они будут другими.
1.5). Щелкаем правой кнопкой по SKProjectileNode01 и в появившейся менюшке выбираем: Block / Insert / NiTransformInterpolator Открываем пункт NiTransformInterpolator и устанавливаем: Data: 2(в строчке должно появиться NiTransformData) Закрываем пункт.
1.6). Щелкаем правой кнопкой по SKProjectileNode01 и в появившейся менюшке выбираем: Block / Insert / NiTransformController Открываем пункт NiTransformController и устанавливаем: Flags: 72 Frequency: 1.0000 Phase: 0.0000 StartTime: 0.0000 StopTime: 0.0200 Target: 1(в строчке должно появиться SKProjectileNode01) Interpolator: 3(в строчке должно появиться NiTransformInterpolator) Закрываем пункт.
1.7). Открываем пункт SKProjectileNode01 и устанавливаем: Controller: 4(в строчке должно появиться NiTransformController) Flags: 14 Закрываем пункт.
Сохраняем модель под названием ShishKebabUNIQUE.Nif. или другим уникальным именем.
В данном случае циклическое движение ProjectileNode’а вдоль режущей кромки лезвия с внешней стороны нужно для равномерного распределения дополнительных режущих свойств по кромке клинка. Однако при подвижном ProjectileNode’е свет излучаемый мечом будет неизбежно мерцать.
1.8). Теперь делаем модель для Projectile’я. В папке Data/Meshes/Weapons/Projectiles открываем NifScope’ом модель BBShotProjectile.Nif. (она самая простая) и удаляем все “лишнее”. Должны остаться пункты: NiHeader NiNode NiFooter
Сохраняем модель под названием ShishKebabShot.Nif. или другим уникальным именем.
Дело в том, что для отображения света при выстреле, игровой Projectile должен содержать как модель собственно Projectile’я, так и модель MuzzleFlash’а. Данная модель будет использоваться в обоих качествах, причем очень интенсивно, поэтому она должна весить как можно меньше, чтобы не грузить систему.
С NifScope’ом закончили, переходим в G.E.C.K.
2.1). Сначала создаем свет, который будет излучать наш меч. В данном случае он должен быть похож на свет от огня. Идем в WorldObjects / Light. Щелкаем правой кнопкой по любой строчке, в появившейся менюшке говорим New и устанавливаем: ID – ShishKebabMuzzleFlash01(взято для примера) FallofExponent – 1.0000 Radius – 350 Color:(должен получиться цвет похожий на цвет пламени) R – 250 G – 135 B – 25 Остальные параметры оставляем без изменений.
2.2). Создаем Projectile который будет использоваться в нашем огненном мече. Идем в SpecialEffects / Projectile щелкаем правой кнопкой по любой строчке, в появившейся менюшке говорим New и устанавливаем: ID – ShishKebabProjectile01 Name – не заполняем ProjectileType – Missile ArtFile – указываем путь к нашей модели Projectile’я DetectionSoundLevel – Silent Speed – 10000.00 Gravity – 0.00 Range – 0.1 *** ImpactForce – 0.00 TracerChance – 0.00 FadeDuration – 0.00 Hitscan (Visible in VATS Only) – ставим флажок PassThroughSmallTransparent – ставим флажок MuzzleFlash – ставим флажок и устанавливаем: Light – выбираем из списка ShishKebabMuzzleFlash01(свет который мы создали) Edit – указываем путь к нашей модели Projectile’я Duration – 1.00 BouncyMult – 1.0000 [для New Vegas] Остальные параметры оставляем без изменений.
*** Важно: В идеале значение параметра Range должно равняться 0.0 но поскольку некоторые версии игры (в основном Fallout-3) нулевое значение не понимают (повреждения наносятся объектам которых меч не касается), то значение Range следует установить в пределах от 0.1 до 0.5
2.3). Создаем “виртуальное”оружие, которое будет стрелять из нашего меча и собственно заставит его светиться. Идем в WorldObjects / Static щелкаем правой кнопкой по любой строчке, в появившейся менюшке говорим New и устанавливаем: ID – WeapShishKebabUNIQUELight(взято для примера) Name – не заполняем ObjectEffect – NONE(“виртуальное”оружие использует эффект присвоенный к ”основному” оружию) Вкладка Game Data: Spread/MinSpread – 0.0000 Damage – 1 *** AmmoUse – 0 Resist – FireResist(в данном случае потому что меч огненный) OnHit – DismemberOnly Вкладка Art And Sound: Projectile – ShishKebabProjectile01(выбираем из списка наш Projectile) DetectionSoundLevel – Silent Остальные параметры оставляем без изменений.
*** Важно: Некоторые версии игры (в основном Fallout-3) игнорируют значение параметраDamage “виртуального” оружия. В этом случае урон наносимый мечом при простом касании определяется по формуле Damage = (DM + DH) x GMpS где: DM – повреждения наносимые “основным” мечом DH – повреждения которые может нанести персонаж голой рукой GMpS – “скорострельность” скриптового блока GameMode В тех случаях когда игра (в основном New Vegas) понимает значение параметра Damage “виртуального” оружия, это значение подбирается экспериментально.
2.4). Создаем 1stPerson вид нашего светящегося меча(не обязательный пункт). Идем в WorldObjects / Static щелкаем правой кнопкой по любой строчке, в появившейся менюшке говорим New и устанавливаем: ID – 1stPersonShishKebabUNIQUE Model – указываем путь к нашей модели меча. Остальные параметры оставляем без изменений.
2.5). Создаем “основное” оружие т.е. собственно сам светящийся меч. Идем в Items / Weapon открываем оружие WeapShishKebab и устанавливаем: ID – WeapShishKebabUNIQUE Name – любое отличное от оригинала(чтобы потом отличать в игровом инвентаре) Script – сюда прописывается “стреляющий” скрипт после того как мы его создадим Вкладка Game Data: EmbeddedWeapon – ставим флажок и устанавливаем: Node – SKProjectileNode01(название специального Node в нашей модели меча) ActorValue – RightAttackCondition Вкладка Art And Sound: Model – указываем путь нашей модели меча 1stPersonModelObject – выбираем из списка 1stPersonShishKebabUNIQUE(если был выполнен пункт 2.4) Остальные параметры оставляем без изменений либо настраиваем по вкусу. Жмем “OK”. На вопрос о создании нового предмета отвечаем “Yes”
2.6). Создаем объектовый скрипт примерно такого содержания:
SCN ShishKebabUNIQUEScript Begin GameMode If (Player.GetEquipped WeapShishKebabUNIQUE >= 1) If (Player.IsWeaponOut >= 1) Player.FireWeapon WeapShishKebabUNIQUELight Endif Endif End
При этом меч начинает светиться, когда оказывается непосредственно в руке ГГ.
Если нужно, чтобы меч светился не только в руках ГГ но и в руках других персонажей то создаем “универсальный” объектовый скрипт:
SCN ShishKebabUNIQUEScript Ref WeaponOwner Begin OnAdd Set WeaponOwner to GetContainer End Begin GameMode If (WeaponOwner.GetEquipped WeapShishKebabUNIQUE >= 1) If (WeaponOwner.IsWeaponOut >= 1) WeaponOwner.FireWeapon WeapShishKebabUNIQUELight Endif Endif End
Прописываем скрипт в “основной” меч.
Важно: “Универсальный” скрипт работает корректно на 100% только когда наш светящийся меч существует в игре в единственном экземпляре и находится в руках ГГ. Когда персонаж (не ГГ) просто ходит/бегает с мечом в руке - меч светится нормально. Когда персонаж (не ГГ) в бою бежит атаковать противника - меч гаснет. Меч загорается снова когда персонаж (даже в бою) выходит из атакующего состояния. Попытка передать другому персонажу сразу несколько мечей с “универсальным” скриптом почти всегда заканчивается вылетом игры.
2.7). Размещаем меч в игре, сохраняем плагин.
СПОСОБ №2 Меч просто светится, не нанося дополнительного урона персонажам и не ломая повреждаемые объекты.
1).Сначала подготовим модель для меча. В папке Data/Meshes/Weapons/1HandMelee открываем NifScope’ом модель ShishKebab.Nif.
1.1). Открываем пункты BSShaderTextureSet в сточках 39 и 49 (по умолчанию). В подпунктах Textures заменяем имеющиеся текстуры на текстуры с приставкой 1stPerson. Делать это не обязательно, но в данном случае желательно. Закрываем пункты.
1.2). Открывем пункт NiHeader (самый верхний). В строчке NumStrings в столбце Value увеличиваем на единицу текущее значение (было 19 ставим 20) и щелкаем несколько раз левой кнопкой по круглой зеленой стрелочке в строке Strings. Открываем подпункт Strings и в появившейся нижней свободной строчке в столбце Value пишем SKProjectileNode01 (название взято для примера и может быть любым другим). Закрываем пункт NIHeader.
1.3). Щелкаем правой кнопкой мыши по пункту BSFadeNode (вторая строчка сверху) и в появившейся менюшке выбираем: Node / AttachNode / NiNode. Открываем наш новый NiNode и устанавливаем: Name – 19(теперь наш новый Node называется SKProjectileNode01) Flags – 14
1.4). Щелкаем правой кнопкой по SKProjectileNode01 и в появившейся менюшке выбираем: Transform / Edit и устанавливаем: X: 0.0000 Y: 25.0000 Z: 0.0000 Жмем “Accept” Эти координаты приведены для меча со стандартной моделью ShishKebab.Nif. Для оружия с другой моделью они будут другими. При неподвижном Node, размещать “светлячок” стоит внутри лезвия, в промежутке от 1/4 до 1/2 длины лезвия, если считать от рукоятки. Размещать его слишком близко к острию не стоит, поскольку он не будет равномерно подсвечивать лезвие и может при движении персонажа входить в стены и предметы интерьера.
Сохраняем модель под названием ShishKebabUNIQUE.Nif. или другим уникальным именем.
1.5). Теперь делаем модель для Projectile’я. В папке Data/Meshes/Weapons/Projectiles открываем NifScope’ом модель BBShotProjectile.Nif. (она самая простая) и удаляем все “лишнее”. Должны остаться пункты: NiHeader NiNode NiFooter
Сохраняем модель под названием ShishKebabShot.Nif. или другим уникальным именем.
С NifScope’ом закончили, переходим в G.E.C.K.
2.1). Сначала создаем свет, который будет излучать наш меч. В данном случае он должен быть похож на свет от огня. Идем в WorldObjects / Light. Щелкаем правой кнопкой по любой строчке, в появившейся менюшке говорим New и устанавливаем: ID – ShishKebabMuzzleFlash01(взято для примера) FallofExponent – 1.0000 Radius – 350 Color:(должен получиться цвет похожий на цвет пламени) R – 250 G – 135 B – 25 Остальные параметры оставляем без изменений.
2.2). Создаем Projectile который будет использоваться в нашем огненном мече. Идем в SpecialEffects / Projectile щелкаем правой кнопкой по любой строчке, в появившейся менюшке говорим New и устанавливаем: ID – ShishKebabProjectile01 Name – не заполняем ProjectileType – Flame ArtFile – указываем путь к нашей модели Projectile’я DetectionSoundLevel – Silent Speed – 10000.00 Gravity – 0.00 Range – 0.1 ImpactForce – 0.00 TracerChance – 0.00 FadeDuration – 0.00 Hitscan (Visible in VATS Only) – ставим флажок PassThroughSmallTransparent – ставим флажок MuzzleFlash – ставим флажок и устанавливаем: Light – выбираем из списка ShishKebabMuzzleFlash01(свет который мы создали) Edit – указываем путь к нашей модели Projectile’я Duration – 1.00 BouncyMult – 0.0000 [для New Vegas] Остальные параметры оставляем без изменений.
2.3). Создаем “виртуальное” оружие, которое будет стрелять из нашего меча и собственно заставит его светиться. Идем в WorldObjects / Static щелкаем правой кнопкой по любой строчке, в появившейся менюшке говорим New и устанавливаем: ID – WeapShishKebabUNIQUELight(взято для примера) Name – не заполняем ObjectEffect – NONE(“виртуальное”оружие использует эффект присвоенный к ”основному” оружию) Вкладка Game Data: Spread/MinSpread – 0.0000 Damage – 0 AmmoUse – 0 Resist – FireResist(в данном случае потому что меч огненный) OnHit – DismemberOnly Вкладка Art And Sound: Projectile – ShishKebabProjectile01(выбираем из списка наш Projectile) DetectionSoundLevel – Silent Остальные параметры оставляем без изменений.
2.4). Создаем 1stPerson вид нашего светящегося меча (не обязательный пункт). Идем в WorldObjects / Static щелкаем правой кнопкой по любой строчке, в появившейся менюшке говорим New и устанавливаем: ID – 1stPersonShishKebabUNIQUE Model – указываем путь к нашей модели меча. Остальные параметры оставляем без изменений.
2.5). Создаем “основное” оружие т.е. собственно сам светящийся меч. Идем в Items / Weapon открываем оружие WeapShishKebab и устанавливаем: ID – WeapShishKebabUNIQUE Name – любое отличное от оригинала(чтобы потом отличать в игровом инвентаре) Script – сюда прописывается “стреляющий” скрипт после того как мы его создадим Вкладка Game Data: EmbeddedWeapon – ставим флажок и устанавливаем: Node – SKProjectileNode01(название специального Node в нашей модели меча) ActorValue – RightAttackCondition Вкладка Art And Sound: Model – указываем путь нашей модели меча 1stPersonModelObject – выбираем из списка 1stPersonShishKebabUNIQUE(если был выполнен пункт 2.4) Остальные параметры оставляем без изменений либо настраиваем по вкусу. Жмем “OK”. На вопрос о создании нового предмета отвечаем “Yes”
2.6). Создаем объектовый скрипт примерно такого содержания:
SCN ShishKebabUNIQUEScript Begin GameMode If (Player.GetEquipped WeapShishKebabUNIQUE >= 1) If (Player.IsWeaponOut >= 1) Player.FireWeapon WeapShishKebabUNIQUELight Endif Endif End
При этом меч начинает светиться, когда оказывается непосредственно в руке ГГ.
Если нужно, чтобы меч светился не только в руках ГГ но и в руках других персонажей то создаем “универсальный” объектовый скрипт:
SCN ShishKebabUNIQUEScript Ref WeaponOwner Begin OnAdd Set WeaponOwner to GetContainer End Begin GameMode If (WeaponOwner.GetEquipped WeapShishKebabUNIQUE >= 1) If (WeaponOwner.IsWeaponOut >= 1) WeaponOwner.FireWeapon WeapShishKebabUNIQUELight Endif Endif End
Прописываем скрипт в “основной” меч.
Важно: “Универсальный” скрипт работает корректно на 100% только когда наш светящийся меч существует в игре в единственном экземпляре и находится в руках ГГ. Когда персонаж (не ГГ) просто ходит/бегает с мечом в руке - меч светится нормально. Когда персонаж (не ГГ) в бою бежит атаковать противника - меч гаснет. Меч загорается снова, когда персонаж (даже в бою) выходит из атакующего состояния. Попытка передать другому персонажу сразу несколько мечей с “универсальным” скриптом почти всегда заканчивается вылетом игры.
если на броню поставить IncreaseDamageResistance > 100 или 1000 а оружие не трогать (если я не ошибаюсь Resist - NONE стоит по умолчанию)то не от чего эта броня не зщитит
А параметры fMaxArmorRating и fMaxPlayerResistance в GameSettings не забыл поставить 100 и больше? Если параметры не поменять (по моему они по 85 по умолчанию) то броня действительно защищать не будет. Ну а если ты и параметры поменял и IncreaseDamageResistance поставил больше 100 и все равно не работает пока с оружием не поколдуешь..... ну значит сколько людей столько и мнений сколько версий игры столько и разных реакций на одни и те же параметры. Я поверял и в F-3 и в F-NV, работает и там и там...
Озадачился я твоими ответами и решил проверить вот прям чиста-конкретно: проверил на F-3 v1.0, v1.5, v1.7 и на F-NV v1.0, v1.4 все работает точно-точно как в сказке написано. Согласись это уже не просто совпадение.
Цитата Coss83
...если на броню поставить IncreaseDamageResistance 100 или 1000 а оружие не трогать (если я не ошибаюсь Resist - NONE стоит по умолчанию) то не от чего эта броня не защитит...
А вот тут есть нюанс: если не ставить fMaxPlayerResistance >= 100 то даже при Increase(Любой)Resistance = 1000 броня одетая на ГГ будет пробиваться, а вот NPC'и действительно станут терминаторами т.к. у них максимальное "магическое" сопротивление всегда равно 100.
fMaxArmorRating - ограничитель только максимального значения DR создаваемого броней (не магией), на текущее значение DR (если оно заведомо меньше) он никак не влияет. fMaxPlayerResistance - ограничитель максимального значения только сопротивления (магического, а не DR брони) и только у ГГ. К сопротивлению NPC'ей и DR непосредственно самой брони он никакого отношения не имеет. Так что его можно устанавливать 100 и более совершенно спокойно.
Пример: присвой к любой, самой убогой броне IncreaseFireResistance >= 100 оставив fMaxPlayerResistance = 85 и попытайся пробить эту броню из огнемета. На ГГ броня пробьется, на NPC'е нет. Потом поставь fMaxPlayerResistance >= 100 и попробуй пробить эту броню снова (одетую на ГГ).
Так что создалось у меня впечатление, что либо ты все таки неправильно что-то делаешь, либо другие моды "портят весь праздник".
День добрый граждане. Подскажите как сделать чтобы повреждаемые объекты (машины мотоциклы вертибирды) восстанавливались через некоторое время после того как их взорвешь?
День добрый граждане. Помогите по нескольким вопросам:
1). У холодного оружия есть так называемые CustomPowerAttack'и. Можно ли заставить неписей (напарников) использовать эти атаки или они только для ГГ ? 2). Как убрать "мотание" ствола оружия (не отдачу) при прицеливании в положении стоя и в движении если навык = 100, а сила = 10 ? 3). Как сделать, чтобы здоровье напарников не восстанавливалось по окончании боя? Все строчки про здоровье (ResetHealth) из скриптов напарников убрал и все без толку...
Galko, BigBadBoss, большое спасибо! Оказывается был нужен GS: fWobbleToSkillConvertor именно он отвечает за "мотание" ствола в зависимости от навыка.
Подскажите грамотные граждане еще по паре вопросов: 1). У холодного оружия есть так называемые CustomPowerAttack'и. Можно ли заставить неписей (напарников) использовать эти атаки или они только для ГГ ? 2). Как сделать, чтобы здоровье напарников не восстанавливалось по окончании боя? Все строчки про здоровье (ResetHealth) из скриптов напарников убрал и все без толку...
Специально для CHEBA99, но другим думаю тоже будет интересно...
1). Если эффект присвоен непосредственно к оружию, то радиус "магической сферы" будет зависеть от числа указанного в эффекте. Если эффект присвоить к взрыву и указать ему радиус = 0 то радиус "магической сферы" будет равен радиусу взрыва. Во избежании багов не нужно устанавливать в эффекте присвоенном к взрыву радиус больше 1.
2). Если эффект присвоен к оружию и прожектиль не попадает в "живую" цель (NPC Creature), а попадает в стену или предмет интерьера, то "магическая сфера" не образуется и эффект соответственно не работает, даже если в эффекте указать радиус действия 1000000.
3). В 3-м Фолле есть такой косяк: если взрыв не касается земли (пола, потолка, стен) то урон не наносит ни взрыв ни сам прожектиль и соответственно эффекты не срабатывают. Также не повреждаются разрушаемые объекты (машины вертолеты). Это хорошо видно на примере стрельбы из гранатомета в голову бегемота. Если взрыв касается земли, то урон наносит только взрыв но не само оружие. При этом срабатывает только эффект присвоенный к взрыву, а эффект присвоенный к оружию не срабатывает. Этот косяк устраняется установкой в настройках прожектиля флажка Hitscan "Visible in VATS only". При установке флажка повреждения наносит как само оружие, так и взрыв прожектиля и соответственно срабатывают как эффекты присвоенные к оружию так и эффекты присвоенные к взрыву. Правда в этом случае снаряд будет взрываться на поверхности воды.
4). Не нужно присваивать к оружию и взрыву прожектиля одинаковые по смыслу эффекты (допустим урон здоровью) даже если они разной силы, поскольку удар прожектиля по цели и взрыв, происходят практически одновременно, а эффект может сработать на цели не чаще одного раза за фрейм игры. Так что в лучшем случае один из эффектов не сработает.
Подскажите как при помощи скрипта (желательно без Экстендера) определить в какую часть тела (руку голову) попала пуля, для того чтобы эффект оружия применялся именно к этой части тела?
Существует ли функция которая "отрезала" бы персонажу указанную часть тела, причем не "взрывала" как KillActor, а именно "отрезала"?
Можно ли сделать так чтобы персонаж оставался жить (по крайней мене какое-то время) после того как ему оторвет руки или ногу?
Galko, Artem13, спасибо. Я это к чему спрашивал-то... хотел чтобы конкретное оружие (не обязательно огнестрельное) гарантированно с вероятностью 100% ампутировало у цели часть тела по которой пришлось попадание, вне зависимости от того что там написано в gameSettings и BodyPartData. По ссылке сказано, что "GetHitLocation won't work if used in a weapon's Object Effect" а вроде как наиболее простой и разумный способ реализовать отрывание конечностей именно через объектовый эффект...
День добрый граждане. Подскажите как присвоить определенное действие (включение/выключение ночного видения) к определенной кнопке клавиатуры? Желательно без менюшек, а просто нажал - включил, нажал - выключил (и без экстендера).
День добрый граждане. Помогите с проблемой: GECK глюкнул и перепоганил плагин в котором было много ценных наработок, причем так что плагин перестал открываться, а ближайшая "рабочая" версия ооочень давно... В принципе есть папка Backup но как пользоваться этими фаилами я понять не могу, GECK их не открывает...
День добрый граждане. Уважаемые знатоки помогите!!! с проблемой уже всю голову сломал и две мыши в придачу... Проблема такая: Когда напарник (Кэсс, Бун, ЕД-Е, или кто-то другой не важно) становится собственно напарником в смысле вступает во фракцию ГГ и начинает бегать за игроком, ему непонятным образом добавляется штраф к рассеиванию при стрельбе примерно в две единицы. То есть абсолютно любое (родное или самодельное) оружие в руках напарника начинает стрелять как последний дробовик, вне зависимости от того какие параметры указаны в оружии. Это даже для автоматов не есть хорошо, а для снайперок и подавно... Я пытался решить вопрос через перки: EntryPoint / CalculateGunSpread / SetValue=0 помогает, но возникает другая проблема, если сохранить, а затем вновь загрузить игру то перк перестает работать, в смысле вообще перестает, выгнать/снова взять напарника и забрать/снова выдать перк не помогает. Перк выдавал как положено через единичку. С ЕД-Е я решил вопрос через свойства боеприпаса, а вот человеко-напарники должны уметь стрелять из любого оружия, так что тоже не вариант... Помогите-посоветуйте...
Изменение репутации для пользователя Veldion
VeldionOffline
Сообщение №149
| Тема: ВОПРОСЫ по моддингу
написано: 24 июля 2014, 04:23
| Отредактировано: Veldion - 24 июля 2014, 04:30
не уверен, что понимаю проблему. Насколько процитированное объективно? Два градуса - это довольно маленький угол.
Не два градуса, а две (примерно) единицы,если оценивать по параметру оружия Min/Max Spread. Эта величина добавляется к разбросу, который прописан непосредственно в Spread-параметрах оружия. Так что получается очень не маленькая величина. Причем это именно Spread-разброс, а не то отклонение, которое получается при "болтании" ствола. Определяется просто: ставим в параметрах для чистоты эксперимента неавтоматического оружия Min/MaxSpread=0 (что по определению должно было обнулить разброс) #Projectiles=5 и любой "лазерный" прожектиль, отдаем оружие напарнику и получаем лазерный "дробовик". Разброс видно прекрасно. Оружейные навыки напарника ==100. И еще абсолютно непонятно почему перки присвоенные к напарникам перестают работать после перезагрузки игры. EntryPoint / CalculateGunspread=0 в принципе решает вопрос убирая именно "прибавку" и оставляя Spread прописанный в параметрах оружия.....
Изменение репутации для пользователя Veldion
VeldionOffline
Сообщение №150
| Тема: ВОПРОСЫ по моддингу
написано: 25 июля 2014, 04:39
| Отредактировано: Veldion - 25 июля 2014, 06:00
К чему я клоню, очевидно: эти перки-с-секретной-единичкой гарантированно работают только там и так, где и как их использовали авторы...
Оно тебе конечно виднее, но что мешает сохраниться/загрузиться, когда "стандартный" перк-с-секретной-единичкой только начал работать на "стандартном" персонаже?...
Видимо все-таки придется ограничивать напарников только личным оружием и решать вопрос через свойства боеприпаса. Боеспособность типа важнее разнообразия...