<?xml version="1.0"?>
<rss version="2.0"><channel><title>&#x41C;&#x43E;&#x434;&#x43E;&#x441;&#x442;&#x440;&#x43E;&#x435;&#x43D;&#x438;&#x435; Latest Topics</title><link>https://test.bestgothic.top/forum/223-%D0%BC%D0%BE%D0%B4%D0%BE%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%B8%D0%B5/</link><description>&#x41C;&#x43E;&#x434;&#x43E;&#x441;&#x442;&#x440;&#x43E;&#x435;&#x43D;&#x438;&#x435; Latest Topics</description><language>ru</language><item><title>&#x41F;&#x43E;&#x43B;&#x43D;&#x43E;&#x435; &#x43E;&#x43F;&#x438;&#x441;&#x430;&#x43D;&#x438;&#x435; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x43E;&#x432; ParticleFX &#x438; VisualFX</title><link>https://test.bestgothic.top/topic/4178-polnoe-opisanie-parametrov-particlefx-i-visualfx/</link><description><![CDATA[<p style="text-align:center;"><img src="https://i.postimg.cc/0j2ppnjM/create.png" alt="create.png" class="ipsRichText__align--block" width="997" height="672" loading="lazy"></p><p></p><p></p><h2>ParticleFX</h2><p>Вот полный список параметров для инстанций класса <code>C_PARTICLEFX</code> из файла <code>PfxInstMagic.d</code>. Этот файл отвечает за визуальные эффекты заклинаний.</p><p>Все параметры сгруппированы по их функции.</p><p></p><h3><strong>Временные параметры излучения</strong></h3><p>Эта группа описывает, <strong>как именно</strong> и с <strong>какой скоростью</strong> рождаются частицы.</p><div class="ipsRichText__table-wrapper"><table style="min-width: 80px;"><colgroup><col style="min-width:20px;"><col style="min-width:20px;"><col style="min-width:20px;"><col style="min-width:20px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p><strong>Параметр</strong></p></th><th colspan="1" rowspan="1"><p><strong>Тип</strong></p></th><th colspan="1" rowspan="1"><p><strong>Описание</strong></p></th><th colspan="1" rowspan="1"><p><strong>Пример</strong></p></th></tr><tr><td colspan="1" rowspan="1"><p><code>ppsValue</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Базовое количество частиц, создаваемых в секунду.</p></td><td colspan="1" rowspan="1"><p><code>ppsValue = 40;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>ppsScaleKeys_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Список коэффициентов для <code>ppsValue</code> во времени. Позволяет менять количество частиц, например, делать "всплески" эффекта.</p></td><td colspan="1" rowspan="1"><p><code>ppsScaleKeys_S = "1.0 0.5 0.2";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>ppsIsLooping</code></p></td><td colspan="1" rowspan="1"><p><code>INT</code></p></td><td colspan="1" rowspan="1"><p>Флаг <code>BOOL</code>. Если <code>1</code>, то цикл изменения (из <code>ppsScaleKeys_S</code>) зацикливается. Если <code>0</code>, эффект умирает после одного прохода.</p></td><td colspan="1" rowspan="1"><p><code>ppsIsLooping = 1;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>ppsIsSmooth</code></p></td><td colspan="1" rowspan="1"><p><code>INT</code></p></td><td colspan="1" rowspan="1"><p>Флаг <code>BOOL</code>. Если <code>1</code>, то изменения между ключами в <code>ppsScaleKeys_S</code> будут сглажены (линейная интерполяция). Если <code>0</code> — переходы резкие.</p></td><td colspan="1" rowspan="1"><p><code>ppsIsSmooth = 1;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>ppsFPS</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Скорость, с которой проигрывается список <code>ppsScaleKeys_S</code> (в кадрах в секунду).</p></td><td colspan="1" rowspan="1"><p><code>ppsFPS = 0.8;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>ppsCreateEm_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Позволяет создать <strong>другой</strong> PFX-эффект одновременно с текущим. Редко используемая, но мощная опция.</p></td><td colspan="1" rowspan="1"><p><code>ppsCreateEm_S = "MFX_Explosion_INIT";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>ppsCreateEmDelay</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Задержка в миллисекундах перед созданием эффекта, указанного в <code>ppsCreateEm_S</code>.</p></td><td colspan="1" rowspan="1"><p><code>ppsCreateEmDelay = 500;</code></p></td></tr></tbody></table></div><p></p><h3><strong>Пространственное распределение (Эмиттер)</strong></h3><p>Эти параметры определяют <strong>форму, размер и положение</strong> источника частиц.</p><div class="ipsRichText__table-wrapper"><table style="min-width: 80px;"><colgroup><col style="min-width:20px;"><col style="min-width:20px;"><col style="min-width:20px;"><col style="min-width:20px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p><strong>Параметр</strong></p></th><th colspan="1" rowspan="1"><p><strong>Тип</strong></p></th><th colspan="1" rowspan="1"><p><strong>Описание</strong></p></th><th colspan="1" rowspan="1"><p><strong>Пример</strong></p></th></tr><tr><td colspan="1" rowspan="1"><p><code>shpType_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Форма эмиттера. Варианты: <code>"point"</code>, <code>"line"</code>, <code>"circle"</code>, <code>"box"</code>, <code>"sphere"</code>, <code>"mesh"</code>.</p></td><td colspan="1" rowspan="1"><p><code>shpType_S = "sphere";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>shpFOR_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Система координат для эмиттера: <code>"world"</code> (мир) или <code>"object"</code> (объект). Влияет на то, будет ли источник двигаться с объектом.</p></td><td colspan="1" rowspan="1"><p><code>shpFOR_S = "object";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>shpOffsetVec_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Смещение центра эмиттера от центра объекта. Задается вектором <code>"X Y Z"</code> в сантиметрах.</p></td><td colspan="1" rowspan="1"><p><code>shpOffsetVec_S = "0 50 0";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>shpDistribType_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Тип распределения частиц на эмиттере: <code>"RAND"</code> (случайно), <code>"UNIFORM"</code> (равномерно), <code>"WALK"</code> (прогулка по форме).</p></td><td colspan="1" rowspan="1"><p><code>shpDistribType_S = "WALK";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>shpDistribWalkSpeed</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Скорость "прогулки" по форме при <code>shpDistribType_S = "WALK"</code>.</p></td><td colspan="1" rowspan="1"><p><code>shpDistribWalkSpeed = 0.0001;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>shpIsVolume</code></p></td><td colspan="1" rowspan="1"><p><code>INT</code></p></td><td colspan="1" rowspan="1"><p>Флаг <code>BOOL</code>. Если <code>1</code> и форма <code>"box"</code> или <code>"sphere"</code>, частицы рождаются по всему объему. Если <code>0</code> — только на поверхности.</p></td><td colspan="1" rowspan="1"><p><code>shpIsVolume = 1;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>shpDim_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Размеры эмиттера. Для <code>"sphere"</code>/<code>"circle"</code> — один радиус <code>"R"</code>. Для <code>"box"</code> — три размера <code>"X Y Z"</code>.</p></td><td colspan="1" rowspan="1"><p><code>shpDim_S = "100 50 100";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>snpMesh_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Имя mesh-файла (например, <code>.3ds</code>), если <code>shpType_S = "mesh"</code>.</p></td><td colspan="1" rowspan="1"><p><code>snpMesh_S = "myMesh.3ds";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>shpMeshRender_B</code></p></td><td colspan="1" rowspan="1"><p><code>INT</code></p></td><td colspan="1" rowspan="1"><p>Флаг <code>BOOL</code>. Если <code>1</code>, сам mesh (из <code>snpMesh_S</code>) будет визуализироваться.</p></td><td colspan="1" rowspan="1"><p><code>shpMeshRender_B = 1;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>shpScaleKeys_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Коэффициенты масштабирования эмиттера во времени (аналогично <code>ppsScaleKeys_S</code>).</p></td><td colspan="1" rowspan="1"><p><code>shpScaleKeys_S = "1.0 0.5 1.0";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>shpScaleIsLooping</code></p></td><td colspan="1" rowspan="1"><p><code>INT</code></p></td><td colspan="1" rowspan="1"><p>Флаг <code>BOOL</code>. Зацикливает изменение масштаба (из <code>shpScaleKeys_S</code>).</p></td><td colspan="1" rowspan="1"><p><code>shpScaleIsLooping = 1;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>shpScaleIsSmooth</code></p></td><td colspan="1" rowspan="1"><p><code>INT</code></p></td><td colspan="1" rowspan="1"><p>Флаг <code>BOOL</code>. Сглаживает изменения масштаба между ключами в <code>shpScaleKeys_S</code>.</p></td><td colspan="1" rowspan="1"><p><code>shpScaleIsSmooth = 1;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>shpScaleFPS</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Скорость проигрывания ключей масштабирования (из <code>shpScaleKeys_S</code>) в FPS.</p></td><td colspan="1" rowspan="1"><p><code>shpScaleFPS = 2;</code></p></td></tr></tbody></table></div><p></p><h3><strong>Движение частиц</strong></h3><p>Здесь задается, <strong>куда</strong> и с <strong>какой скоростью</strong> летят частицы после рождения.</p><div class="ipsRichText__table-wrapper"><table style="min-width: 80px;"><colgroup><col style="min-width:20px;"><col style="min-width:20px;"><col style="min-width:20px;"><col style="min-width:20px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p><strong>Параметр</strong></p></th><th colspan="1" rowspan="1"><p><strong>Тип</strong></p></th><th colspan="1" rowspan="1"><p><strong>Описание</strong></p></th><th colspan="1" rowspan="1"><p><strong>Пример</strong></p></th></tr><tr><td colspan="1" rowspan="1"><p><code>dirMode_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Режим направления: <code>"RAND"</code> (случайное), <code>"DIR"</code> (конкретное), <code>"TARGET"</code> (на цель).</p></td><td colspan="1" rowspan="1"><p><code>dirMode_S = "DIR";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>dirFOR_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Система координат для заданного направления (<code>"world"</code> или <code>"object"</code>).</p></td><td colspan="1" rowspan="1"><p><code>dirFOR_S = "world";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>dirAngleHead</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Угол направления по горизонтали (азимут) в градусах.</p></td><td colspan="1" rowspan="1"><p><code>dirAngleHead = 45;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>dirAngleHeadVar</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Допустимое отклонение для <code>dirAngleHead</code> для создания рассеивания.</p></td><td colspan="1" rowspan="1"><p><code>dirAngleHeadVar = 15;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>dirAngleElev</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Угол направления по вертикали (элевация) в градусах.</p></td><td colspan="1" rowspan="1"><p><code>dirAngleElev = -30;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>dirAngleElevVar</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Допустимое отклонение для <code>dirAngleElev</code>.</p></td><td colspan="1" rowspan="1"><p><code>dirAngleElevVar = 10;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>velAvg</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p><strong>Средняя скорость</strong> частиц (см/мс). <strong>Именно этот параметр отвечает за горизонтальную скорость</strong>.</p></td><td colspan="1" rowspan="1"><p><code>velAvg = 200;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>velVar</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p><strong>Разброс</strong> скорости частиц.</p></td><td colspan="1" rowspan="1"><p><code>velVar = 50;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>flyGravity_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p><strong>Вектор гравитации</strong> <code>"X Y Z"</code>, который влияет на траекторию (например, <code>"0 -200 0"</code> тянет вниз).</p></td><td colspan="1" rowspan="1"><p><code>flyGravity_S = "0 -100 0";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>flyCollDet_B</code></p></td><td colspan="1" rowspan="1"><p><code>INT</code></p></td><td colspan="1" rowspan="1"><p>Включает столкновения с миром. <code>0</code> — нет; <code>1</code> — замедление и отскок; <code>2</code> — ускорение и отскок; <code>3</code> — остановка; <code>4</code> — удаление частицы.</p></td><td colspan="1" rowspan="1"><p><code>flyCollDet_B = 1;</code></p></td></tr></tbody></table></div><p></p><h3><strong>Жизненный цикл</strong></h3><p>Эти параметры отвечают за "время жизни" каждой частицы.</p><div class="ipsRichText__table-wrapper"><table style="min-width: 80px;"><colgroup><col style="min-width:20px;"><col style="min-width:20px;"><col style="min-width:20px;"><col style="min-width:20px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p><strong>Параметр</strong></p></th><th colspan="1" rowspan="1"><p><strong>Тип</strong></p></th><th colspan="1" rowspan="1"><p><strong>Описание</strong></p></th><th colspan="1" rowspan="1"><p><strong>Пример</strong></p></th></tr><tr><td colspan="1" rowspan="1"><p><code>lspPartAvg</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Среднее время жизни одной частицы в <strong>миллисекундах</strong>.</p></td><td colspan="1" rowspan="1"><p><code>lspPartAvg = 2000;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>lspPartVar</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Разброс времени жизни частиц в <strong>миллисекундах</strong>.</p></td><td colspan="1" rowspan="1"><p><code>lspPartVar = 500;</code></p></td></tr></tbody></table></div><p></p><h3><strong>Визуализация</strong></h3><p>Эти параметры управляют тем, <strong>как выглядит</strong> частица.</p><div class="ipsRichText__table-wrapper"><table style="min-width: 80px;"><colgroup><col style="min-width:20px;"><col style="min-width:20px;"><col style="min-width:20px;"><col style="min-width:20px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p><strong>Параметр</strong></p></th><th colspan="1" rowspan="1"><p><strong>Тип</strong></p></th><th colspan="1" rowspan="1"><p><strong>Описание</strong></p></th><th colspan="1" rowspan="1"><p><strong>Пример</strong></p></th></tr><tr><td colspan="1" rowspan="1"><p><code>visName_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Имя текстурного файла (<code>.TGA</code>) для частиц. Обычно путь относительно папки <code>_work/Data/Textures</code>.</p></td><td colspan="1" rowspan="1"><p><code>visName_S = "FX_SMOKE_01.TGA";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>visOrientation_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Ориентация спрайта к камере: <code>"NONE"</code> (всегда к камере), <code>"VELO"</code>, <code>"VELO3D"</code>.</p></td><td colspan="1" rowspan="1"><p><code>visOrientation_S = "NONE";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>visTexIsQuadPoly</code></p></td><td colspan="1" rowspan="1"><p><code>INT</code></p></td><td colspan="1" rowspan="1"><p>Флаг <code>BOOL</code>. Рендерить как полноценный 2D-квадрат, а не как точку. Улучшает вид, но нагружает систему.</p></td><td colspan="1" rowspan="1"><p><code>visTexIsQuadPoly = 1;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>visTexAniFPS</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Скорость анимации текстуры в FPS, если текстура — это последовательность кадров (например, <code>name_A0.TGA</code>, <code>name_A1.TGA</code>).</p></td><td colspan="1" rowspan="1"><p><code>visTexAniFPS = 24;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>visTexAniIsLooping</code></p></td><td colspan="1" rowspan="1"><p><code>INT</code></p></td><td colspan="1" rowspan="1"><p>Флаг <code>BOOL</code>. Зациклить анимацию текстуры.</p></td><td colspan="1" rowspan="1"><p><code>visTexAniIsLooping = 1;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>visTexColorStart_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Начальный цвет частицы в формате <code>"R G B"</code> (0-255). Белый <code>"255 255 255"</code> означает "без изменений".</p></td><td colspan="1" rowspan="1"><p><code>visTexColorStart_S = "255 128 0";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>visTexColorEnd_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Конечный цвет частицы. Цвет будет плавно меняться от <code>Start</code> к <code>End</code> за время жизни частицы.</p></td><td colspan="1" rowspan="1"><p><code>visTexColorEnd_S = "255 0 0";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>visSizeStart_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Начальный размер частицы <code>"Ширина Высота"</code> (в см для 3D-пространства).</p></td><td colspan="1" rowspan="1"><p><code>visSizeStart_S = "50 50";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>visSizeEndScale</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Коэффициент масштабирования к конечному размеру (умножает <code>visSizeStart_S</code>). Позволяет частицам расти или сжиматься.</p></td><td colspan="1" rowspan="1"><p><code>visSizeEndScale = 0.5;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>visAlphaFunc_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Режим смешивания цветов с фоном: <code>"NONE"</code>, <code>"BLEND"</code>, <code>"ADD"</code> (обычно для огня/магии), <code>"MUL"</code>.</p></td><td colspan="1" rowspan="1"><p><code>visAlphaFunc_S = "ADD";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>visAlphaStart</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Начальная прозрачность частицы (0 — полностью прозрачна, 1 — непрозрачна).</p></td><td colspan="1" rowspan="1"><p><code>visAlphaStart = 0.8;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>visAlphaEnd</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Конечная прозрачность частицы. Часто ставится 0, чтобы частицы плавно исчезали.</p></td><td colspan="1" rowspan="1"><p><code>visAlphaEnd = 0;</code></p></td></tr></tbody></table></div><p></p><h3><strong>Специальные эффекты (Следы, Отметки, Стаи)</strong></h3><p>Сюда входят дополнительные эффекты вроде свечения, следов и отметок при столкновении.</p><div class="ipsRichText__table-wrapper"><table style="min-width: 80px;"><colgroup><col style="min-width:20px;"><col style="min-width:20px;"><col style="min-width:20px;"><col style="min-width:20px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p><strong>Параметр</strong></p></th><th colspan="1" rowspan="1"><p><strong>Тип</strong></p></th><th colspan="1" rowspan="1"><p><strong>Описание</strong></p></th><th colspan="1" rowspan="1"><p><strong>Пример</strong></p></th></tr><tr><td colspan="1" rowspan="1"><p><code>trlFadeSpeed</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Скорость затухания следа от движущейся частицы. След включается, если значение &gt; 0.</p></td><td colspan="1" rowspan="1"><p><code>trlFadeSpeed = 0.5;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>trlTexture_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Текстура для следа частицы.</p></td><td colspan="1" rowspan="1"><p><code>trlTexture_S = "FX_TRAIL.TGA";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>trlWidth</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Ширина следа в сантиметрах.</p></td><td colspan="1" rowspan="1"><p><code>trlWidth = 10;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>mrkFadeSpeed</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Скорость затухания "отметки", которая появляется на месте столкновения частицы с поверхностью (например, дым от пули).</p></td><td colspan="1" rowspan="1"><p><code>mrkFadeSpeed = 0.3;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>mrkTexture_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Текстура отметки.</p></td><td colspan="1" rowspan="1"><p><code>mrkTexture_S = "FX_MARK.TGA";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>mrkSize</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Размер отметки в сантиметрах.</p></td><td colspan="1" rowspan="1"><p><code>mrkSize = 15;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>flockMode</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Включает поведение "стая" (частицы следуют за лидером). Требует дополнительных настроек.</p></td><td colspan="1" rowspan="1"><p><code>flockMode = "MODE";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>flockStrength</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Сила притяжения к вожаку стаи.</p></td><td colspan="1" rowspan="1"><p><code>flockStrength = 0.5;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>useEmittersFOR</code></p></td><td colspan="1" rowspan="1"><p><code>INT</code></p></td><td colspan="1" rowspan="1"><p>Флаг <code>BOOL</code>. Если <code>1</code>, то частицы наследуют движение эмиттера (например, вылетают из движущейся руки).</p></td><td colspan="1" rowspan="1"><p><code>useEmittersFOR = 1;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>timeStartEnd_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Интервал игрового времени в часах <code>"Начало Конец"</code>, когда эффект виден. Например, для ночных светлячков.</p></td><td colspan="1" rowspan="1"><p><code>timeStartEnd_S = "22 3";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>m_bIsAmbientPFX</code></p></td><td colspan="1" rowspan="1"><p><code>INT</code></p></td><td colspan="1" rowspan="1"><p>Флаг <code>BOOL</code>. Если <code>1</code>, эффект считается атмосферным и может отключаться в настройках игры.</p></td><td colspan="1" rowspan="1"><p><code>m_bIsAmbientPFX = 1;</code></p></td></tr></tbody></table></div><p></p><p></p><h2>VisualFX</h2><p>Вот полный список параметров для <code>VisualFXInst.d</code>. В отличие от <code>PfxInstMagic.d</code>, где собраны «сырые» частицы, этот файл служит управляющей оболочкой (<code>CFx_Base_Proto</code>) для них: он отвечает за анимацию, прикрепление к модели персонажа и взаимодействие с миром.</p><p></p><h3><strong>Траектория и наведение</strong></h3><p>Эти параметры управляют тем, как эффект перемещается в пространстве, куда направлен и как строит свой путь.</p><div class="ipsRichText__table-wrapper"><table style="min-width: 80px;"><colgroup><col style="width:20px;"><col style="min-width:20px;"><col style="min-width:20px;"><col style="min-width:20px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p><strong>Параметр</strong></p></th><th colspan="1" rowspan="1"><p><strong>Тип</strong></p></th><th colspan="1" rowspan="1"><p><strong>Описание</strong></p></th><th colspan="1" rowspan="1"><p><strong>Пример</strong></p></th></tr><tr><td colspan="1" rowspan="1"><p><code>emTrjMode_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Режим траектории. Определяет, как эффект летит к цели: <code>"FIXED"</code> (фиксированное направление), <code>"TARGET"</code> (на цель), <code>"SPLINE"</code> (по сплайну), <code>"LINE"</code> (по линии), <code>"RANDOM"</code> (случайные точки).</p></td><td colspan="1" rowspan="1"><p><code>emTrjMode_S = "TARGET";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emTrjOriginNode</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Узел-источник. Часть модели (<code>"BIP01"</code> или <code>"ZS_RIGHTHAND"</code>), из которой начинается эффект. Обычно привязан к анимации персонажа.</p></td><td colspan="1" rowspan="1"><p><code>emTrjOriginNode = "ZS_RIGHTHAND";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emTrjTargetNode</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Узел-цель. Часть модели цели, к которой будет лететь эффект, например, <code>"BIP01 HEAD"</code> для попадания в голову.</p></td><td colspan="1" rowspan="1"><p><code>emTrjTargetNode = "BIP01 HEAD";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emTrjTargetRange</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Дальность полёта. Максимальная дистанция, на которую эффект может удалиться от источника, прежде чем исчезнуть (в метрах).</p></td><td colspan="1" rowspan="1"><p><code>emTrjTargetRange = 15.0;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emTrjTargetAzi</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Азимут цели. Горизонтальный угол поворота эффекта при наведении на цель (в градусах).</p></td><td colspan="1" rowspan="1"><p><code>emTrjTargetAzi = 45.0;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emTrjTargetElev</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Угол места цели. Вертикальный угол наведения эффекта (в градусах).</p></td><td colspan="1" rowspan="1"><p><code>emTrjTargetElev = 30.0;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emTrjNumKeys</code></p></td><td colspan="1" rowspan="1"><p><code>INT</code></p></td><td colspan="1" rowspan="1"><p>Количество опорных точек. Минимальное число случайных точек для построения траектории.</p></td><td colspan="1" rowspan="1"><p><code>emTrjNumKeys = 3;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emTrjNumKeysVar</code></p></td><td colspan="1" rowspan="1"><p><code>INT</code></p></td><td colspan="1" rowspan="1"><p>Вариация опорных точек. Дополнительное случайное количество точек (с низкой вероятностью появления).</p></td><td colspan="1" rowspan="1"><p><code>emTrjNumKeysVar = 1;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emTrjAngleElevVar</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Вариация угла места. Диапазон случайного отклонения по вертикали для создания "разброса" траектории.</p></td><td colspan="1" rowspan="1"><p><code>emTrjAngleElevVar = 5.0;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emTrjAngleHeadVar</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Вариация азимута. Диапазон случайного отклонения по горизонтали.</p></td><td colspan="1" rowspan="1"><p><code>emTrjAngleHeadVar = 5.0;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emTrjKeyDistVar</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Вариация дистанции ключей. Фактор случайного расстояния (от 0.0 до 1.0), на который умножается дистанция до опорной точки.</p></td><td colspan="1" rowspan="1"><p><code>emTrjKeyDistVar = 0.5;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emTrjLoopMode_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Режим зацикливания траектории. Что происходит, когда эффект достигает конца пути: <code>"RESTART"</code>, <code>"PINGPONG_ONCE"</code>, <code>"PINGPONG"</code>, <code>"HALT"</code>.</p></td><td colspan="1" rowspan="1"><p><code>emTrjLoopMode_S = "RESTART";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emTrjEaseFunc_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Функция плавности. Определяет характер движения по траектории: <code>"LINEAR"</code> (линейно) или <code>"SINE"</code> (синусоидально).</p></td><td colspan="1" rowspan="1"><p><code>emTrjEaseFunc_S = "SINE";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emTrjEaseVel</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Скорость плавности. Значение, влияющее на интенсивность работы функции плавности.</p></td><td colspan="1" rowspan="1"><p><code>emTrjEaseVel = 1.0;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emTrjDynUpdateDelay</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Задержка обновления динамической траектории. Время в секундах, через которое обновляется позиция движущегося эффекта.</p></td><td colspan="1" rowspan="1"><p><code>emTrjDynUpdateDelay = 0.1;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emTrjDynUpdateTargetOnly</code></p></td><td colspan="1" rowspan="1"><p><code>BOOL</code></p></td><td colspan="1" rowspan="1"><p>Обновлять только цель. Если <code>true</code>, эффект не отслеживает постоянно движущуюся цель, а застывает в точке привязки.</p></td><td colspan="1" rowspan="1"><p><code>emTrjDynUpdateTargetOnly = true;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emAdjustShpToOrigin</code></p></td><td colspan="1" rowspan="1"><p><code>INT</code></p></td><td colspan="1" rowspan="1"><p>Подстраивать форму под источник. Если <code>1</code>, эмиттер (<code>PfxInstMagic.d</code>) поворачивается вслед за узлом-источником, откуда летит заклинание.</p></td><td colspan="1" rowspan="1"><p><code>emAdjustShpToOrigin = 1;</code></p></td></tr></tbody></table></div><p></p><h3><strong>Временные и структурные параметры</strong></h3><p>Эта группа управляет продолжительностью жизни эффекта, его каскадированием и реакцией на столкновения.</p><div class="ipsRichText__table-wrapper"><table style="min-width: 80px;"><colgroup><col style="min-width:20px;"><col style="min-width:20px;"><col style="min-width:20px;"><col style="min-width:20px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p><strong>Параметр</strong></p></th><th colspan="1" rowspan="1"><p><strong>Тип</strong></p></th><th colspan="1" rowspan="1"><p><strong>Описание</strong></p></th><th colspan="1" rowspan="1"><p><strong>Пример</strong></p></th></tr><tr><td colspan="1" rowspan="1"><p><code>emFXLifeSpan</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Время жизни эффекта. Продолжительность существования основного визуального эффекта в секундах. Значение <code>-1</code> делает его бесконечным.</p></td><td colspan="1" rowspan="1"><p><code>emFXLifeSpan = 2.0;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emFXTriggerDelay</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Задержка перед запуском. Эффект начнёт проигрываться только через указанное количество секунд.</p></td><td colspan="1" rowspan="1"><p><code>emFXTriggerDelay = 0.5;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emFXCreate_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Создать дочерний эффект. Имя другой инстанции <code>CFx_Base_Proto</code>, которая запустится одновременно с текущей.</p></td><td colspan="1" rowspan="1"><p><code>emFXCreate_S = "SLOW_TIME_CHILD";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emFXInvestOrigin_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Эффект вложения (источник). Визуальный эффект, который проигрывается у заклинателя во время "инвестиции" (произнесения заклинания).</p></td><td colspan="1" rowspan="1"><p><code>emFXInvestOrigin_S = "spellFX_Sleep_ORIGIN";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emFXInvestTarget_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Эффект вложения (цель). Эффект, который проигрывается на цели после успешного применения заклинания.</p></td><td colspan="1" rowspan="1"><p><code>emFXInvestTarget_S = "spellFX_Charm_TARGET";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emFXCollStat</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Эффект при статическом столкновении. Какой эффект (<code>CFx_Base_Proto</code>) создать при столкновении с неподвижным объектом (стена, земля).</p></td><td colspan="1" rowspan="1"><p><code>emFXCollStat = "FX_IMPACT_EARTH";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emFXCollDyn</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Эффект при динамическом столкновении. Какой эффект создать при столкновении с движущимся NPC.</p></td><td colspan="1" rowspan="1"><p><code>emFXCollDyn = "FX_IMPACT_NPC";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emFXCollDynPerc</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Эффект восприятия цели. Эффект, применяемый к цели, если функция <code>C_CanNPCCollideWithSpell</code> возвращает успех.</p></td><td colspan="1" rowspan="1"><p><code>emFXCollDynPerc = "FX_HIT_SPARK";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emFXCollStatAlign</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Выравнивание статического эффекта. Должен ли эффект столкновения быть выровнен по нормали поверхности.</p></td><td colspan="1" rowspan="1"><p><code>emFXCollStatAlign = "COLLISIONNORMAL";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emFXCollDynAlign</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Выравнивание динамического эффекта. Должен ли эффект быть выровнен по объекту, с которым столкнулся.</p></td><td colspan="1" rowspan="1"><p><code>emFXCollDynAlign = "COLLISIONNORMAL";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>emActionCollStat_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Тип статического столкновения. Должен содержать <code>"CREATE"</code>, чтобы <code>emFXCollStat</code> был создан. Используется для настройки поведения при столкновении.</p></td><td colspan="1" rowspan="1"><p><code>emActionCollStat_S = "CREATE";</code></p></td></tr></tbody></table></div><p></p><h3><strong>Визуальные параметры</strong></h3><p>Здесь задаётся, как именно будет выглядеть эффект, его текстура, прозрачность, размеры и анимация.</p><div class="ipsRichText__table-wrapper"><table style="min-width: 80px;"><colgroup><col style="min-width:20px;"><col style="min-width:20px;"><col style="min-width:20px;"><col style="min-width:20px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p><strong>Параметр</strong></p></th><th colspan="1" rowspan="1"><p><strong>Тип</strong></p></th><th colspan="1" rowspan="1"><p><strong>Описание</strong></p></th><th colspan="1" rowspan="1"><p><strong>Пример</strong></p></th></tr><tr><td colspan="1" rowspan="1"><p><code>visName_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Имя визуального эффекта. Может быть: имя PFX-эффекта (из <code>PfxInstMagic.d</code>), текстура (<code>.TGA</code>), 3D-модель (<code>.3DS</code>), анимация (<code>.MMS</code>), эффекты смены ракурса/замедления времени (<code>.FOV</code>/<code>.SLW</code>).</p></td><td colspan="1" rowspan="1"><p><code>visName_S = "MFX_CHARM_INIT";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>visAlpha</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>Общая прозрачность эффекта. Значение от <code>0.0</code> (полностью прозрачен) до <code>1.0</code> (полностью непрозрачен).</p></td><td colspan="1" rowspan="1"><p><code>visAlpha = 0.8;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>visAlphaBlendFunc</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Режим смешивания. Определяет, как прозрачность эффекта смешивается с фоном. Варианты: <code>"NONE"</code>, <code>"BLEND"</code>, <code>"ADD"</code> (аддитивное смешение), <code>"SUB"</code>, <code>"MUL"</code>, <code>"MUL2"</code>.</p></td><td colspan="1" rowspan="1"><p><code>visAlphaBlendFunc = "ADD";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>visSize_S</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Вектор размера. Размеры эффекта в 3D-пространстве в виде строки <code>"X Y Z"</code> (в сантиметрах).</p></td><td colspan="1" rowspan="1"><p><code>visSize_S = "100 100 100";</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>visTexAniFPS</code></p></td><td colspan="1" rowspan="1"><p><code>FLOAT</code></p></td><td colspan="1" rowspan="1"><p>FPS анимации текстуры. Скорость смены кадров анимированной текстуры в секунду.</p></td><td colspan="1" rowspan="1"><p><code>visTexAniFPS = 24.0;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>visTexAniIsLooping</code></p></td><td colspan="1" rowspan="1"><p><code>BOOL</code></p></td><td colspan="1" rowspan="1"><p>Зациклить анимацию текстуры. Если <code>true</code>, анимация текстур будет повторяться бесконечно.</p></td><td colspan="1" rowspan="1"><p><code>visTexAniIsLooping = true;</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>lightpresetname</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Имя пресета освещения. Позволяет привязать к эффекту определённый источник света или цветовую гамму, например, <code>"REDAMBIENCE"</code>.</p></td><td colspan="1" rowspan="1"><p><code>lightpresetname = "REDAMBIENCE";</code></p></td></tr></tbody></table></div><p></p><h3><strong>Пользовательские строки</strong></h3><p>Эти параметры используются для передачи кастомных данных в сложные эффекты, которые требуют дополнительных настроек.</p><div class="ipsRichText__table-wrapper"><table style="width: 1067px;"><colgroup><col style="width:158px;"><col style="width:133px;"><col style="width:568px;"><col style="width:208px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p><strong>Параметр</strong></p></th><th colspan="1" rowspan="1"><p><strong>Тип</strong></p></th><th colspan="1" rowspan="1"><p><strong>Описание</strong></p></th><th colspan="1" rowspan="1"><p><strong>Пример</strong></p></th></tr><tr><td colspan="1" rowspan="1"><p><code>userString[0-9]</code></p></td><td colspan="1" rowspan="1"><p><code>STRING</code></p></td><td colspan="1" rowspan="1"><p>Пользовательские строки. Массив из 10 строк, предназначенных для хранения произвольных данных, например, для передачи параметров в медленный эффект <code>SLOW_TIME</code>.</p></td><td colspan="1" rowspan="1"><p><code>userString[0] = "0.5";</code></p></td></tr></tbody></table></div><p></p><p>Источники:</p><ol><li><p><strong>World of Players (русскоязычный форум)</strong>:<br><code>https://worldofplayers.ru</code></p></li><li><p><strong>World of Gothic (немецкоязычный форум)</strong>:<br><code>https://forum.worldofplayers.de</code></p></li><li><p><strong>Gothic Wiki (на </strong><a rel="external nofollow" href="https://wiki.worldofplayers.de/"><strong>wiki.worldofplayers.de</strong></a><strong>)</strong>:<br><code>https://wiki.worldofplayers.de</code></p></li><li><p><strong>Gothic Modding Community на GitHub</strong>:<br><code>https://github.com</code> (ищите репозитории по ключевым словам <code>Gothic</code>, <code>Daedalus</code>, <code>PfxInstMagic</code>, <code>VisualFXInst</code>)</p></li></ol><p></p><p>Я собираюсь делать новый мод, пока что не буду о нем говорить. И вот, пытаюсь освоить эту тему с частицами. Это нужно для разного рода визуальных эффектов.</p>]]></description><guid isPermaLink="false">4178</guid><pubDate>Fri, 05 Jun 2026 14:37:11 +0000</pubDate></item><item><title>(Gothic 1/2) Spacer.NET - &#x440;&#x435;&#x434;&#x430;&#x43A;&#x442;&#x43E;&#x440; &#x43C;&#x438;&#x440;&#x43E;&#x432;</title><link>https://test.bestgothic.top/topic/3865-gothic-12-spacernet-redaktor-mirov/</link><description><![CDATA[<p style="text-align:center;"><img class="ipsImage ipsRichText__align--block" data-fileid="2786" src="https://bestgothic.top/uploads/monthly_2026_02/SPLASH.png.c41d03ba09cee3fb1419eb39ff61ef79.png" alt="SPLASH.png" title="SPLASH.png" width="750" height="300" loading="lazy"></p><p style="text-align:center;">Вся информация по проекту была взята из данного <a rel="external nofollow" href="https://worldofplayers.ru/threads/41991/"><strong><span data-i-color="orange">первоисточника</span></strong></a></p><p style="text-align:left;"><strong><span data-i-color="orange">Версия игры:</span> </strong>Готика 1 (1.08k_mod), Готика 2 Ночь Ворона<strong><br><span data-i-color="orange">Страна разработчика:</span> </strong><span style='font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;'>Россия</span><br><strong><span data-i-color="orange">Тип:</span> </strong><span style='font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;'>Плагин для Union</span><br><strong><span data-i-color="orange">Рабочее название:</span></strong><span style='font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;'> Spacer.NET</span><br><strong><span data-i-color="orange">Версия:</span></strong><span style='font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;'> 1.46</span><br><strong><span data-i-color="orange">Язык:</span></strong><span style='font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;'> Русский, English, German, Polish, Czech</span><br><strong><span data-i-color="orange">Размер:</span></strong><span style='font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;'> ~2 МБ</span><br><strong><span data-i-color="orange">Автор:</span> </strong><a rel="external nofollow" href="https://worldofplayers.ru/members/102978/"><strong>LikerGothic</strong></a><br><strong><span data-i-color="orange">Разработчики:</span></strong><span style='font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;'> </span><a rel="external nofollow" href="https://worldofplayers.ru/members/102978/"><strong>LikerGothic</strong></a><span style='font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;'>, Patrix, </span><a rel="external nofollow" href="https://worldofplayers.ru/members/88148/"><strong>Haart</strong></a><span style='font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;'>, </span><a rel="external nofollow" href="https://worldofplayers.ru/members/11723/"><strong>Saturas</strong></a><span style='font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;'>, </span><a rel="external nofollow" href="https://worldofplayers.ru/members/97625/"><strong>Gratt</strong></a><span style='font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;'>, </span><a rel="external nofollow" href="https://worldofplayers.ru/members/58483/"><strong>Jr13San</strong></a><br><strong><span data-i-color="orange">Тестеры:</span> </strong><a rel="external nofollow" href="https://worldofplayers.ru/members/88148/"><strong>Haart</strong></a><span style='font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;'>, </span><a rel="external nofollow" href="https://worldofplayers.ru/members/8748/"><strong>Adept</strong></a><span style='font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;'>, </span><a rel="external nofollow" href="https://worldofplayers.ru/members/58483/"><strong>Jr13San</strong></a><br><strong><span data-i-color="orange">Статус:</span> </strong><span style='font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;'>выходят обновления</span><br><strong><span data-i-color="orange">Требования:</span> </strong>.NET Framework 4.0, Union 1.0m</p><p style="text-align:left;"><strong><span data-i-color="orange">SpacerNET - представляет из себя переработанную версию редактора миров для Готики 1/Готики 2 Ночь Ворона.</span></strong></p><p><strong><span data-i-color="orange">Основные цели проекта:</span></strong></p><ul><li><p>Максимальная автоматизация процесса вобинга</p></li><li><p>Удобство в работе</p></li><li><p>Нелагающий интерфейс</p></li></ul><p><strong><span data-i-color="orange">Основные фишки:</span></strong></p><ul><li><p>Максимально похожий по виду интерфейс на старый Spacer</p></li><li><p>Иерархичное копирование вобов (дети-вобы копируются вместе с родителем)</p></li><li><p>Удобная манипуляция вобом (коллизии не мешают его перемещать и вращать)</p></li><li><p>Изменение родителя для воба</p></li><li><p>Некоторые настройки "под себя"</p></li><li><p>Предпросмотр моделей, PFX-эффектов, итемов</p></li><li><p>Поддержка VobTree</p></li><li><p>Поддержка extended-классов (можно через Юнион создать воб нового типа, и он будет здесь работать)</p></li><li><p>Удобное редактирование содержимого сундуков</p></li><li><p>Настройки отображения FPS, кол-ва вобов и т.д.</p></li><li><p><strong>Поддержка dx11</strong> (минимум SK6 версия) <a rel="external nofollow" href="https://github.com/SaiyansKing/GD3D11/releases"><strong>Скачать</strong></a></p></li><li><p>Новые возможности, по сравнению со старым Spacer<br></p></li></ul><details class="ipsRichTextBox ipsRichTextBox--expandable ipsRichText__no-index"><summary class="ipsRichTextBox__title"><p><strong><span data-i-color="orange">Скриншоты</span></strong></p></summary><p><img class="ipsImage ipsRichText__align--block ipsRichText__align--width-custom" data-fileid="2801" src="https://bestgothic.top/uploads/monthly_2026_02/1.JPG.efe360745cd1b538ad5d396ed7e057de.JPG" alt="1.JPG" title="1.JPG" width="898" height="693" style="--i-media-width: 500px;" loading="lazy"><img class="ipsImage ipsRichText__align--block ipsRichText__align--width-custom" data-fileid="2802" src="https://bestgothic.top/uploads/monthly_2026_02/2.JPG.61b7520848fe0518b4691b5008a00a1a.JPG" alt="2.JPG" title="2.JPG" width="648" height="500" style="--i-media-width: 500px;" loading="lazy"><img class="ipsImage ipsImage_thumbnailed ipsRichText__align--block ipsRichText__align--width-custom" data-fileid="2799" src="https://bestgothic.top/uploads/monthly_2026_02/3.thumb.JPG.6cacc36d2afd39cc73e69768c6bead05.JPG" alt="3.JPG" title="3.JPG" width="1000" height="540" data-full-image="https://bestgothic.top/uploads/monthly_2026_02/3.JPG.7dac467e4169b110692396c985c3e9f6.JPG" style="--i-media-width: 650px;" loading="lazy"><img class="ipsImage ipsImage_thumbnailed ipsRichText__align--block ipsRichText__align--width-custom" data-fileid="2798" src="https://bestgothic.top/uploads/monthly_2026_02/4.thumb.JPG.5c4b0171abf0d91d70da4da254156e11.JPG" alt="4.JPG" title="4.JPG" width="1000" height="625" data-full-image="https://bestgothic.top/uploads/monthly_2026_02/4.JPG.c1a6f333036493b764ea980c7da2b176.JPG" style="--i-media-width: 650px;" loading="lazy"><img class="ipsImage ipsRichText__align--block ipsRichText__align--width-custom" data-fileid="2797" src="https://bestgothic.top/uploads/monthly_2026_02/5.JPG.8ca76d998958b6d155294c33cf5d2137.JPG" alt="5.JPG" title="5.JPG" width="734" height="374" style="--i-media-width: 650px;" loading="lazy"><img class="ipsImage ipsImage_thumbnailed ipsRichText__align--block ipsRichText__align--width-custom" data-fileid="2796" src="https://bestgothic.top/uploads/monthly_2026_02/6.thumb.JPG.4d951b77bbc577d035d868eee0d7db4d.JPG" alt="6.JPG" title="6.JPG" width="1000" height="540" data-full-image="https://bestgothic.top/uploads/monthly_2026_02/6.JPG.ded4fa09894dd91760b621e070ffc2b5.JPG" style="--i-media-width: 649px;" loading="lazy"><img class="ipsImage ipsRichText__align--block ipsRichText__align--width-custom" data-fileid="2795" src="https://bestgothic.top/uploads/monthly_2026_02/7.JPG.bb5b2c2e3b5192be0bf8a2b08c281a23.JPG" alt="7.JPG" title="7.JPG" width="573" height="417" style="--i-media-width: 500px;" loading="lazy"><img class="ipsImage ipsRichText__align--block ipsRichText__align--width-custom" data-fileid="2794" src="https://bestgothic.top/uploads/monthly_2026_02/8.JPG.34eb45900f608c245ed678947b024027.JPG" alt="8.JPG" title="8.JPG" width="571" height="417" style="--i-media-width: 500px;" loading="lazy"><img class="ipsImage ipsRichText__align--block ipsRichText__align--width-custom" data-fileid="2792" src="https://bestgothic.top/uploads/monthly_2026_02/10.JPG.1c4ad1c817c3ec8e870b2e12492dba8b.JPG" alt="10.JPG" title="10.JPG" width="427" height="253" style="--i-media-width: 500px;" loading="lazy"><img class="ipsImage ipsRichText__align--block ipsRichText__align--width-custom" data-fileid="2791" src="https://bestgothic.top/uploads/monthly_2026_02/11.JPG.5e8a178b9a3b99ecf4d5c500dd7bbb6e.JPG" alt="11.JPG" title="11.JPG" width="634" height="395" style="--i-media-width: 500px;" loading="lazy"><img class="ipsImage ipsImage_thumbnailed ipsRichText__align--block ipsRichText__align--width-custom" data-fileid="2790" src="https://bestgothic.top/uploads/monthly_2026_02/12.thumb.JPG.eafb9d426e08936c6c090ebf35fca74e.JPG" alt="12.JPG" title="12.JPG" width="1000" height="541" data-full-image="https://bestgothic.top/uploads/monthly_2026_02/12.JPG.f259eec2c1473e55f32898b8c0fcac6e.JPG" style="--i-media-width: 650px;" loading="lazy"><img class="ipsImage ipsRichText__align--block ipsRichText__align--width-custom" data-fileid="2788" src="https://bestgothic.top/uploads/monthly_2026_02/14.JPG.879c3f28bee5ea60482431f6713bc483.JPG" alt="14.JPG" title="14.JPG" width="604" height="583" style="--i-media-width: 649px;" loading="lazy"><img class="ipsImage ipsRichText__align--block" data-fileid="2787" src="https://bestgothic.top/uploads/monthly_2026_02/1591030518225.png.359759cf5051b3686e85a6ebbb79395e.png" alt="1591030518225.png" title="1591030518225.png" width="481" height="573" loading="lazy"></p><p></p></details><p></p><details class="ipsRichTextBox ipsRichTextBox--expandable ipsRichText__no-index"><summary class="ipsRichTextBox__title"><p><strong><span data-i-color="orange">Видео</span></strong></p></summary><p><a rel="external nofollow" href="https://Spacer.NET">Spacer.NET</a></p></details><p></p><details class="ipsRichTextBox ipsRichTextBox--expandable ipsRichText__no-index"><summary class="ipsRichTextBox__title"><p><span data-i-color="orange">Управление</span></p></summary><p><strong><span data-i-color="orange">Управление можно настроить под себя в специальном окне.</span><br><br><span data-i-color="orange">Камера:</span></strong><br><span style='font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;'>Зажать ПКМ (правая кнопка мыши) + WASD перемещение, вверх - пробел, вниз - X, перемещать мышь для вращения камеры.</span><br><span style='font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;'>Колесико мышки - быстрое перемещение в направлении взгляда (не работает на готике 1)</span><br><br><strong><span data-i-color="orange">Управление выделенным вобом:</span></strong></p><ul><li><p>Выделение воба : ЛКМ, расширенное выделение: левый ctrl+ЛКМ (выделение vobAnimate, некоторой травы)</p></li><li><p>Клавиша 1 - режим <strong>перемещения </strong>воба (WASD)</p></li><li><p>Клавиша 2 - режим <strong>вращения </strong>воба (WASD)</p></li><li><p>Клавиша 3 - соединить/разъединить два вейпоинта (один выделяется через shift+ЛКМ, второй просто выделяется, всё как в старом спейсере)</p></li><li><p>Клавиша 4 - снять <strong>выделение </strong>с воба</p></li><li><p>Клавиша 5 - переместить выделенный воб перед камерой</p></li><li><p>Клавиша 6 - выбрать режим редактирование bbox объекта (для муверов, зон музыки и тд)</p></li><li><p>Клавиши Q/E - вращение воба вокруг вертикальной оси</p></li></ul><p><strong><span data-i-color="orange">Модификаторы:</span></strong></p><ul><li><p>LShift - ускорение перемещения/вращения в 10 раз</p></li><li><p>LControl- замедление перемещения/вращения в 10 раз</p></li></ul><p><strong><span data-i-color="orange">Сочетания клавиш:</span></strong></p><ul><li><p>Shift+F прижать воб к поверхности (работает через динамическую коллизию)</p></li><li><p>Shift+R сбросить поворот воба по трем осям, нажимать можно несколько раз</p></li><li><p>Control+C, Control+V - скопировать воб и вставить</p></li><li><p>Control+Z, Control+V - вставить выделенный воб в нового родителя (изменение родителя)</p></li></ul><p><strong><span data-i-color="orange">Прочее</span></strong><span data-i-color="orange"><span style='font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;'>:</span></span></p><ul><li><p>ПКМ на выбранной модельке в окне поиска визуалов: скопировать имя модели в буфер</p></li><li><p>ПКМ на списке вобов: удалить воб, сохранить vobTree, вставить vobTree</p></li><li><p>F1 - собрать вобы в vobContainer в выбранном радиусе...</p></li><li><p>F2 - вставить вейпоинт со сгенерированным именем (должен быть выделен другой вейпоинт)</p></li><li><p>F3 - скрыть/показать окна</p></li></ul></details><p></p><details class="ipsRichTextBox ipsRichTextBox--expandable ipsRichText__no-index"><summary class="ipsRichTextBox__title"><p><strong><span data-i-color="orange">FAQ</span></strong></p></summary><ul><li><p><strong>После загрузки в Спейсере черное окно и ничего нет. Ответ: </strong>скорее всего вы установили dx11 от обычной игры. Удалите файл ddraw.dll из папки system или установите dx11 для Спейсера. Однако, компилировать миры и свет с dx11 нельзя, поэтому легче тупо удалить его при работе со спейсером.</p></li><li><p><strong>После загрузки спейсера ничего не нажимается, меню неактивно.</strong> <strong>Ответ</strong>: зайти в gothic.ini и проставить там ваше разрешение экрана вручную. zVidResFullscreenX=1920, zVidResFullscreenY=1080 (как пример)</p></li><li><p><strong>Зажимаю правую клавишу мыши, камера не летит/не вертится. Ответ: </strong>зайдите 1 раз в игру (до главного меню), чтобы в <strong>systempack.ini</strong> записались нужные строки и выйдите. Всё заработает</p></li><li><p><strong>В глобальный список вобов локации самостоятельно добавляются какие-то вобы. Зачем?</strong> <strong>Ответ</strong>: это дочерние вобы от PFX-эффектов. Они добавляются, когда камера подлетает к ним или вы делаете предпросмотр некоторых эффектов из меню, и pfx-эффект активируется. Они не сохраняются в ZEN, так что они не опасны.</p></li><li><p><strong>Как сбросить управление на "по умолчанию"? Ответ: </strong>зайти в меню с кнопками и нажать "сбросить по умолчанию"</p></li><li><p><strong>Что за звук падения оружия на землю?</strong> <strong>Ответ:</strong> когда мир загрузился или скомпилился, воспроизводится такой звук-оповещение, потом заменим, если не понравится.</p></li><li><p><strong>После загрузки мира вылет</strong>. Ответ: скорее всего ваши скрипты используют Lego/Ikarus, выключите пункт "Отключать музыку при загрузке" в окне звуков.</p></li><li><p><strong>Спейсер вылетает при каких-то действиях</strong>: отписать в тему, но скорее всего, у вас используются другие плагины Union/Ninja, которые мешает работе спейсера.</p></li></ul></details><p></p><details class="ipsRichTextBox ipsRichTextBox--expandable ipsRichText__no-index"><summary class="ipsRichTextBox__title"><p><strong><span data-i-color="orange">Скачать</span></strong></p></summary><p><a class="ipsAttachLink" data-fileid="2822" href="https://test.bestgothic.top/applications/core/interface/file/attachment.php?id=2822&amp;key=a68b9a3c8586e22b4bb5501dec733c4b" data-fileext="zip" rel="">SpacerNET_G1.zip</a> - версия для Готики 1<br><a class="ipsAttachLink" data-fileid="2821" href="https://test.bestgothic.top/applications/core/interface/file/attachment.php?id=2821&amp;key=46d819a6ec55b3dc200b140b0c3cafff" data-fileext="zip" rel="">SpacerNET_G2NR.zip</a> - версия для Готики 2 Ночь Ворона</p></details><p></p><details class="ipsRichTextBox ipsRichTextBox--expandable ipsRichText__no-index"><summary class="ipsRichTextBox__title"><p><strong><span data-i-color="orange">Установка</span></strong></p></summary><ol><li><p>Установить Готику 2 Ночь Ворона</p></li><li><p>Установить gothic2_playerkit-2.6f/g2mdk-2.6_FULL с распаковкой нужных ресурсов для спейсера</p></li><li><p>Установить Union 1.0m из <a rel="external nofollow" href="https://worldofplayers.ru/resources/136/"><strong>Resource manager,</strong></a> но лучше из <a rel="external nofollow" href="https://worldofplayers.ru/threads/40376/"><strong>Union - Union (патч для Gothic)</strong></a></p></li><li><p>Поместить spacer_net.ini из скачанного архива выше в папку system (это нужно сделать <strong>только один раз</strong>, при обновлении заменять его не нужно)</p></li><li><p>Поместить SpacerNET.mod из скачанного архива выше в папку Data/ModVDF (при <strong>обновлении </strong>версий, просто закидывать этот обновленный файл с заменой)</p></li><li><p>Запустить игру один раз, чтобы появились нужные строки в ини-файлах игры (после установки юниона)</p></li><li><p>Запустить GothicStarter.exe и там выбрать Spacer.NET</p></li></ol><p></p></details><p></p>]]></description><guid isPermaLink="false">3865</guid><pubDate>Wed, 25 Feb 2026 07:49:52 +0000</pubDate></item></channel></rss>
