• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

VisualFX

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
Разбираю класс C_PARTICLEFXEMITKEY свойство pfx_sctime, возможно отвечает за время жизни частиц, хотя не уверен, но эффект дает следующий:

Чем больше значение тем больше пожар вокруг меча. Тестировал на ключе SPELLFX_FIRESWORD_KEY_INVEST_1.
Может быть кто-нибудь знает более точное его назначение.
 

Вложения

  • Безымянный.png
    Безымянный.png
    949,6 KB · Просмотры: 282

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
Следующий параметр класса pfx_flygravity_s скорее всего определяет гравитацию частиц по осям XZY, правда почему в такой последовательности, ума не приложу. На рисунке изображен меч с притяжением частиц по оси Y. Вроде бы я не ошибся с определением.
 

Вложения

  • Безымянный.png
    Безымянный.png
    582 KB · Просмотры: 256

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
ось Z третья, это глубина. Y высота, вторая по счету
Также с эффектом землетрясения.

pfx_shpdim_s не понял для чего. Но судя по названию "Размер формы PFX", если я правильно понял. Параметр pfx_shpisvolumechg также ни на что не повлиял, судя по комментарию, включает некую объемную визуализацию PFX. Может кто-нибудь знает как их применять?
 
Последнее редактирование модератором:

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
Также с эффектом землетрясения.
эта истина действительна во всей математике в целом и нигде в игре этот порядок не нарушается.
вообще поставь себе софтину для реалтайм виза частиц, гуглится как dopa parter по моему
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
эта истина действительна во всей математике в целом и нигде в игре этот порядок не нарушается.
вообще поставь себе софтину для реалтайм виза частиц, гуглится как dopa parter по моему
Я знаю, но она не поддерживает некоторые из свойств. В частности работу с Mesh поверхностями.

P.S. Я рассматриваю работу с VisualFX, а не ParticleFX. Они конечно взаимосвязаны, но отвечают немного за разные вещи, вроде как, хотя возможно я и ошибаюсь.

P.P.S. Попробовал Dopa Parter она в VisualFX абсолютно бесполезна.
 
Последнее редактирование:

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
pfx_shpdim_s не понял для чего.
Размер области, в которой генерируются частицы, например, диаметр сферы, на поверхности которой они генерируются. Тут в уроках есть неплохой тутор по pfx-эффектам в переводе Вама.
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
Размер области, в которой генерируются частицы, например, диаметр сферы, на поверхности которой они генерируются. Тут в уроках есть неплохой тутор по pfx-эффектам в переводе Вама.
У него указано shpDim_S или pfx_ это просто приставка ссылающаяся на настройки класса C_PARTICLEFX?

Параметр lightpresetname, как я понял отвечает за шаблон источника света из файла data/Presets/LightPresets.zen. Ну а lightrange за диапазон освещения.
Параметр sfxid ссылается на "MFX_EarthQuake", определяет звук для эффекта из файла SfxInst.D. Меня заинтересовал параметр emcreatefxid я так понимаю он связывает один визуальный эффект с другим, например прописал для ключа SPELLFX_FIRESWORD_KEY_INVEST_1 параметр emcreatefxid = "FX_EarthQuake"; теперь когда NPC экипирует меч, начинается землетрясение. Кто знает, верна ли моя догадка.

Еще возник вопрос по параметру emflygravity (Emmiter Fly Gravity), я думал параметр аналогичен pfx_flygravity_s, но только работает с эмиттером, однако в первом случае используется тип Float, а во втором String. Ввод каких-либо значений ничего не дал.


На рисунке использование параметра lightpresetname и lightrange.

Что касается встроенных эффектов которые можно указать в параметре visname_s, а именно screenblend.scx, time.slw, morph.fov, earthquake.eqk, для настройки используют параметры userString[x].

screenblend.scx - эффект мерцания. С помощью него можно затемнить экран на нужное время или изменить цвет экрана, да и много всего еще.
userString[0] - Длительность одного цикла мерцания
userString[1] - Цвет RGBA
userString[2] - Время затухания эффекта
userString[3] - Можно указать текстуру эффекта TGA
userString[4] - FPS анимации текстуры

time.slw - Эффект замедления времени или движения персонажа
userString[0] - Масштаб с течением времени для игрока
userString[1] - Масштаб течения времени для всего мира

morph.fov - Эффект деформации экрана, такой как при употреблении болотника :)
userString[0] - Сила эффекта
userString[1] - Скорость деформации
userString[2] - Базовая ширина
userString[3] - Базовая высота

earthquake.eqk - Эффект землетрясения.
userString[0] - Возможно диапазон распространения
userString[1] - Время проигрывания эффекта землетрясения в секундах
userString[2] - Смещение камеры по направлениям XZY.

Есть ли еще какие-нибудь встроенные эффекты?
 

Вложения

  • 4.png
    4.png
    310,4 KB · Просмотры: 263
Последнее редактирование модератором:

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
У него указано shpDim_S или pfx_ это просто приставка ссылающаяся на настройки класса C_PARTICLEFX?
А, ты же говоришь о визуальных эффектах. Я этого не учёл. Но твоя догадка, видимо, верна. Мне так кажется. :)

Кстати, спасибо за разобранные настройки эффектов.
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
А, ты же говоришь о визуальных эффектах. Я этого не учёл. Но твоя догадка, видимо, верна. Мне так кажется. :)

Кстати, спасибо за разобранные настройки эффектов.
Возможно с помощью этих параметров можно переопределить исходные параметры PFX эффектов для ключей C_PARTICLEFXEMITKEY.
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
Класс C_PARTICLEFXEMITKEY идем далее...

Все перечисленные параметры опробовал для меча, но никакого эффекта это не дало.

emflygravity - Emmitter Fly Gravity. Так понимаю вектор гравитации для эмиттера. Попробовал на Firebolt. Дописал значение pfx_flygravity_s = "0 0.03 0" для ключа _CAST и моя огненная стрела улетела в облака. Вот ее притянуло :). Однако стрела все равно попала в цель и нанесла урон NPC. На рисунке ниже показана стрела улетевшая ввысь.

emselfrotvel_s - Emmitter Self Rotation Velosity. Возможно скорость вращения эмитера по осям XYZ.

emtrjmode_s - Emmitter Trajectory Mode. Возможно режим перемещения эмиттера (Fixed - эмиттер находится на одном месте, например при инвестировании маны или уже при столкновении с NPC, Target - Перемещается к цели, в нашем случае NPC, Line - ???, Random - Летит куда попало, Follow следует за целью, обычно указывают вместе с TARGET, на этом основан эффект заклинания "Свет", Spline - ??? None - Без траектории).

emtrjeasevel - Emmitter Trajectory Ease Velocity. Скорее всего отвечает за скорость перемещения эмиттера. Имеет довольно интересные значения с экспонентой (1e-006) и без (600). Используется в основном в SPELL эффектах по большей части, как я понял в тех заклинаниях где ГГ запускает в противника какой-нибудь магический шар. Проверил, действительно отвечает за скорость перемещения эмиттера. Это можно проверить в _CAST ключах эффектов.

emcheckcollision - Emmitter Check Collision. Думаю что проверка эмиттера на столкновения. Сначала решил что это BOOL, однако в скриптах параметр принимает значения от 0 до 2. Кто подскажет? Разобрался это тип ENUM. Проверил на Firebolt: 0 - не реагирует на NPC (проходит насквозь), 1 - NPC получает повреждение, 2 - Firebolt ударяется об NPC как об стену и NPC не получает повреждения.

emfxlifespan - Последний параметр отвечает за время жизни эмиттера. При тесте Firebolt полетел в сторону NPC и растаял в воздухе.


Спасибо тому, кто подскажет как использовать данные параметры и для чего их точное назначение :)
 

Вложения

  • Безымянный.png
    Безымянный.png
    215 KB · Просмотры: 261
Последнее редактирование:

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
Интересует следующий вопрос, можно ли расширять класс C_SVM. Я то добавил пару строк, скомпилировал, игра пошла, но может быть это приведет к каким-то багам в дальнейшем?

class C_SVM
{
var string TESTString;
var string MILGreetings;
var string PALGreetings;
var string Weather;
var string IGetYouStill;
var string DieEnemy;
var string DieMonster;
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Не совсем можно, размер класса зашит в двиге.
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
Не совсем можно, размер класса зашит в двиге.
Это как? Не совсем? А какой размер?
Я так понял этот класс можно заполнить своими свойствами var string или убрать вовсе. Сделал тест. Удалил все что было в файле, оставил только класс C_SVM. Игра запустилась. Поговорил с фермером о цене крестьянской одежды, ошибки не возникло. Крестьянин просто ничего не сказал. Знать бы какое максимальное количество свойств доступно для этого класса.
 
Последнее редактирование:

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
Класс CFX_BASE

visname_s
- аналогично параметру из класса C_PARTICLEFXEMITKEY.

vissize_s - размер визуального эффекта. При тесте влиял только на размер текстуры указанной в поле visname_s. На связанные PFX эффекты никакого влияния не оказывал.

visalpha - Прозрачность альфа-канала от 0.0 до 1.0.

visalphablendfunc_s - Применить альфа функции движка ADD или BLEND.

vistexanifps - Количество кадров в секунду для анимированных текстур указанных в visname_s

vistexaniislooping - Цикл для анимированных текстур.

emtrjmode_s - Аналогично параметру из класса C_PARTICLEFXEMITKEY.

emtrjoriginnode - Узел скелета NPC в котором создается VFX эффект.

emtrjtargetnode - Узел скелета NPC в который будет направлен VFX эффект.

emtrjtargetrange - По этому параметр у меня возник вопрос, может кто знает для чего он используется. Пробовал применять разные значения, но визуально ничего не увидел.

emtrjtargetelev и emtrjtargetazi - Тангаж и азимут эмиттера. Пробовал экспериментировать с этими параметрами, но пока не понял как они работают.

emtrjnumkeys - Число ключей эмиттера. Здесь я не понял, что это за ключи. Если имеются ввиду ключи C_PARTICLEFXEMITKEY, то их число для описываемого эффекта не совпадает с количеством ключей указанных в параметре emtrjnumkeys. Просмотрел множество инстанций, но так и не понял для чего они используются. Пробовал изменить их число, визуально не увидел разницы. Подскажите кто знает.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
Это как? Не совсем? А какой размер?
Я так понял этот класс можно заполнить своими свойствами var string или убрать вовсе. Сделал тест. Удалил все что было в файле, оставил только класс C_SVM. Игра запустилась. Поговорил с фермером о цене крестьянской одежды, ошибки не возникло. Крестьянин просто ничего не сказал. Знать бы какое максимальное количество свойств доступно для этого класса.
класс хранится в движке, а скрипты предоставляют доступ к методам, доступным к редактированию. добавляя или удаляя какие-то свойства через сорсер - сам класс останется все равно не тронутым
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
класс хранится в движке, а скрипты предоставляют доступ к методам, доступным к редактированию. добавляя или удаляя какие-то свойства через сорсер - сам класс останется все равно не тронутым

Собственно говоря класс C_SVM можно расширять своими свойствами. Только что проверил.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
Собственно говоря класс C_SVM можно расширять своими свойствами. Только что проверил.
не. в случае с этим классом тут чуть сложнее. фактически у него одно свойство, принимающее строку string.
если я правильно понял, все переменные, которые ты забиваешь в него, тупо считываются менеджером в игре отдавая инструкции непосредственно самому классу.
то есть ты вписываешь не методы, а создаешь список заранее подготовленных обращений передающихся классу по индексу
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
не. в случае с этим классом тут чуть сложнее. фактически у него одно свойство, принимающее строку string.
если я правильно понял, все переменные, которые ты забиваешь в него, тупо считываются менеджером в игре отдавая инструкции непосредственно самому классу.
то есть ты вписываешь не методы, а создаешь список заранее подготовленных обращений передающихся классу по индексу
Своеобразный массив :)
 

HeDeDe

Участник форума
Регистрация
17 Авг 2009
Сообщения
203
Благодарности
79
Баллы
180
Не стоит от скриптов Готики ожидать поведения как от нормального языка.
Движок находит в скриптах нужные ему вещи, и обходится с ними по-разному.

Своеобразный массив :)
Именно так. Для каждого класса записано количество его членов, в случае C_SVM оно используется, чтобы выделить память под массив zSTRING. В общем, C_SVM можно сколько угодно расширять, вернее, не более 2047 (0xfff) записей (больше попросту не влезет в поле с количеством членов класса).

не. в случае с этим классом тут чуть сложнее. фактически у него одно свойство, принимающее строку string.
если я правильно понял, все переменные, которые ты забиваешь в него, тупо считываются менеджером в игре отдавая инструкции непосредственно самому классу.
то есть ты вписываешь не методы, а создаешь список заранее подготовленных обращений передающихся классу по индексу
В Daedalus'е нет понятия «методов». По сути, класс — это обычный struct. Другое дело, что в двжике имеются определенные предположения о содержимом класса — например, что в C_SVM все члены имеют тип var string (хотя можно использовать любой другой тип, например, var int, движок не делает проверок).
 
Сверху Снизу