СПРАВОЧНИКНАСТРОЙКИ
UCFSettings
Blueprint: Crushform
Общепроектные настройки Crushform: Project Settings > Plugins > Crushform.
Функции
Объект настроек Crushform проекта (объект класса по умолчанию).
Настройки одного канала грязи.
Коллизия, которую навесная деталь получает, когда начинает качаться или отделилась: шаблон Loose Part Collision Profile, а если там None или не указан профиль, собственная коллизия плагина. Собственная коллизия плагина не требует профиля или канала коллизий в проекте: физическое тело, которое блокирует мир и игнорирует пешки, автомобили, камеры, трассировки видимости, разрушаемые объекты и другие физические тела, в том числе другие отделившиеся детали. В любом случае шарнир затем делает так, что автомобили блокируют деталь только с одной стороны.
Записывает настройки в их консольные переменные с заданным приоритетом. По умолчанию это приоритет проектной настройки, который консольная команда или профиль устройства переопределяет.
Сколько кадров тяжёлая сборка коллизии может отложить, 0 или 1, как их задаёт Crushform.Collision.DeferFrames: отрицательное значение консоли ничего не откладывает, а значение больше 1 читается как 1.
Могут ли коллизия кузова и деталей следовать за вмятинами в этом проекте, как это задаёт Crushform.Collision.Deform. Выкл. побеждает Deform Collision профиля.
На каком расстоянии от камеры рисуются вмятины и царапины, в см, как его задаёт Crushform.Dents.CullDistance. 0: без предела.
Сколько кузовов рисуют вмятины и царапины, как это задаёт Crushform.Dents.MaxBodies. 0: без предела.
На каком расстоянии от камеры рисуется грязь, в см, как его задаёт Crushform.Dirt.CullDistance. 0: без предела.
Сколько кузовов рисуют грязь, как это задаёт Crushform.Dirt.MaxBodies. 0: без предела.
Свойства
На каком расстоянии от камеры рисуются вмятины и царапины кузова, в см. За этим расстоянием кузов рисуется целым и снова показывает их, когда подходит ближе. Прекращается только отрисовка: решётка, коллизия, репликация и события повреждений продолжают работать. 0: без предела. Действует только на этой машине. Переопределяется Crushform.Dents.CullDistance или профилем устройства.
- По умолчанию
- 0.0f
- Категория
- Culling
Сколько кузовов рисуют вмятины и царапины: ближайшие, причём те, что на экране, первыми; проверяется несколько раз в секунду. У остальных прекращается только отрисовка. 0: без предела. Действует только на этой машине. Переопределяется Crushform.Dents.MaxBodies или профилем устройства.
- По умолчанию
- 0
- Категория
- Culling
На каком расстоянии от камеры рисуется грязь кузова, на нём самом и на его колёсах, в см. За этим расстоянием они рисуются чистыми и снова показывают грязь, когда подходят ближе. Пока грязь отсечена, она стоит на месте на этой машине: не копится и не сходит, а продолжает меняться, когда кузов снова показан. Мойка, заливка и добавление грязи по-прежнему применяются. 0: без предела. Действует только на этой машине. Переопределяется Crushform.Dirt.CullDistance или профилем устройства.
- По умолчанию
- 0.0f
- Категория
- Culling
Сколько кузовов рисуют грязь: ближайшие, причём те, что на экране, первыми; проверяется несколько раз в секунду. Грязь остальных стоит на месте на этой машине, как за Dirt Cull Distance. 0: без предела. Действует только на этой машине. Переопределяется Crushform.Dirt.MaxBodies или профилем устройства.
- По умолчанию
- 0
- Категория
- Culling
Текстура RGBA8, которую читает каждый деформируемый меш, без мипов и sRGB: Render Target или несжатая Texture2D с NeverStream. Её размер определяет число слотов.
- Категория
- Atlas
Текселей по ширине одного слота. Решётка помещается, когда ResX * ResZ <= SlotWidth. Слоты мозаикой заполняют атлас; шейдер читает начало каждого слота из Custom Primitive Data.
- По умолчанию
- 256
- Категория
- Atlas
Строк текселей одного слота. Решётка помещается, когда ResY <= SlotHeight.
- По умолчанию
- 8
- Категория
- Atlas
Первый индекс Custom Primitive Data, в который пишет Crushform; начиная с него используется 18 float-значений. Когда он меняется, редактор пересобирает функции материалов, которые его запекают (Crushform.RebakeOffsets делает это вручную); сохраните их, чтобы результат сохранился.
- По умолчанию
- 0
- Категория
- Atlas
Первый индекс Custom Primitive Data для четырёх каналов грязи меша колеса и их рангов слоёв (CF::WheelData). Это отдельное смещение: колесо никогда не несёт блок деформации, а его шина часто несёт другие данные с индекса 0 (их несёт деформация шин), поэтому по умолчанию это последние два float-значения. Когда он меняется, редактор пересобирает функции материалов, которые его запекают (Crushform.RebakeOffsets делает это вручную); сохраните их, чтобы результат сохранился.
- По умолчанию
- 34
- Категория
- Atlas
Первый индекс Custom Primitive Data для записей контакта меша шины (CF::TireData, 32 float-значения). Шина никогда не несёт блок деформации, но не должна перекрываться с блоком грязи колеса по Wheel Custom Data Offset (по умолчанию 0..31 не задевает 34..35). Когда он меняется, редактор пересобирает функции материалов, которые его запекают (Crushform.RebakeOffsets делает это вручную); сохраните их, чтобы результат сохранился.
- По умолчанию
- 0
- Категория
- Atlas
Первый индекс Custom Primitive Data для трещин стеклянной панели (CF::GlassData, 16 float-значений); панель тоже деформируемый меш, поэтому не должна перекрываться с 18 float-значениями от Custom Data Offset. Когда он меняется, редактор пересобирает функции материалов, которые его запекают (Crushform.RebakeOffsets делает это вручную); сохраните их, чтобы результат сохранился.
- По умолчанию
- 18
- Категория
- Atlas
Отчёты о езде, которые клиент отправляет одним пакетом за кадр; сервер отклоняет остаток более крупного пакета.
- По умолчанию
- 8
- Категория
- Network
Отчётов в секунду, которые сервер принимает от одного компонента. Отправитель тратит из ведра такой глубины; у сервера оно в 1.5 раза глубже, так как сетевой джиттер сбивает в пачки отчёты, которые отправитель разнёс по времени.
- По умолчанию
- 60.0f
- Категория
- Network
Секунды между двумя отчётами о царапинах одного компонента.
- По умолчанию
- 0.1f
- Категория
- Network
Самое длинное скольжение, которое может представлять один отчёт о царапине, в секундах.
- По умолчанию
- 0.25f
- Категория
- Network
Секунды, в течение которых клиент хранит предсказанный удар, который сервер ни подтвердил, ни отклонил.
- По умолчанию
- 10.0f
- Категория
- Network
Секунды, в течение которых тело может не получать удара от другого тела, прежде чем следующий удар засчитается как новый контакт, который может оставить вмятину. Тело, лежащее на другом, получает удар на каждом шаге физики несколькими порциями выталкивания солвера; эти удары составляют один контакт и, после того как прошло его окно удара, оставляют вмятину только на пике. Кадр длиннее этого (подвисание) растягивает его за пределы кадра.
- По умолчанию
- 0.1f
- Категория
- Contact
Во сколько раз удар должен быть сильнее текущего уровня контакта, чтобы снова оставить вмятину в том же контакте: авария поверх покоя. Он открывает собственное окно удара.
- По умолчанию
- 2.0f
- Категория
- Contact
Секунды от начала контакта или от пика в нём, в течение которых каждый удар всё ещё оставляет вмятину: сам удар оставляет вмятину на каждом шаге физики, который он занимает. После этого контакт в покое (лежание, давление) оставляет вмятину только при пике.
- По умолчанию
- 0.25f
- Категория
- Contact
Относительная скорость в точке контакта, м/с, ниже которой устойчивый контакт считается покоящимся и перестаёт оставлять вмятины. Тело, лежащее или давящее на другое, почти не движется относительно него; тело, проносящееся мимо (например, автомобиль, с силой захлопывающий дверь), продолжает оставлять вмятины на каждом шаге, как при аварии.
- По умолчанию
- 0.5f
- Категория
- Contact
Секунды после последнего повреждения тело самостоятельно ремонтируется на каждом инстансе, как это делает Repair; 0 — никогда.
- По умолчанию
- 0.0f
- Категория
- Repair
Одна строка на каждый физический материал: грязь, звук качения и эффект качения каждой поверхности. Без неё ни одно тело не покрывается грязью.
- Категория
- Surfaces
Профиль деформации для тела, которое его не указывает; его читает адаптер автомобиля.
- Категория
- Profile
Render Target RGBA8 размером с атлас: пыль R, грязь G, снег B, влага A, слот в слот с решёткой. Материалы кузова должны использовать тот же самый в MF_CF_Paint.
- Категория
- Dirt
Render Target RG8 размером с атлас: покрытие царапинами R и направление G, слот в слот с решёткой. Материалы кузова должны использовать тот же самый в MF_CF_Deform.
- Категория
- Atlas
Коллекция параметров материала, которую читают функции грязи (MPC_CF_Dirt): внешний вид грязи на каждом автомобиле. Плагин поставляет коллекцию по этому пути, и функции грязи читают её отсюда. Ничто в рантайм-модуле её не загружает: она лежит здесь, чтобы игровой код её находил и задавал её параметры по именам CF::DirtLook.
- Категория
- Dirt
Секунды между двумя обновлениями грязи одного тела.
- По умолчанию
- 0.2f
- Категория
- Dirt
Скорость шины, м/с, при которой ставки поверхности применяются как записано.
- По умолчанию
- 8.0f
- Категория
- Dirt
Максимальный множитель ставок, на который умножаются ставки более быстрой шины.
- По умолчанию
- 2.0f
- Категория
- Dirt
Канал пыли: его имя, то, как он накладывается на другие каналы, и насколько быстро он очищается.
- Категория
- Dirt|Channels
Канал грязи: его имя, то, как он накладывается на другие каналы, и насколько быстро он очищается.
- Категория
- Dirt|Channels
Канал снега: его имя, то, как он накладывается на другие каналы, и насколько быстро он очищается.
- Категория
- Dirt|Channels
Канал влаги: его имя, то, как он накладывается на другие каналы, и насколько быстро он очищается.
- Категория
- Dirt|Channels
Что определяет, какой слой лежит над каким: Z Order каждого канала или слой, который получил грязь последним. Каналы оверлея всегда лежат над каждым слоем. Most Recent On Top требует Dirt Fresh Atlas.
- По умолчанию
- ECFDirtLayerOrder::Fixed
- Категория
- Dirt|Channels
Render Target RGBA8 размером с атлас грязи, который для каждого текселя и канала записывает, насколько недавно канал получил грязь, в порядке каналов Dirt Atlas. Читается, только когда Dirt Layer Order равен Most Recent On Top.
- Категория
- Dirt
Минимальная пауза, с, между двумя событиями изменения грязи одного тела.
- По умолчанию
- 0.5f
- Категория
- Dirt|Events
На сколько должна измениться средняя грязь любой стороны тела в любом канале с последнего события, 0..1, чтобы сработало следующее.
- По умолчанию
- 0.02f
- Категория
- Dirt|Events
Функция материала, которая заменяет вид грязи кузова (MF_CF_Paint) в материалах проекта. Её входы названы по пинам MF_CF_Paint (Base Color, Roughness, Metallic) и MF_CF_DirtAmount, а также Normal (собственная нормаль материала или плоская, если её нет). Её выходы названы по пинам, которые она заменяет, плюс Normal, который занимает место нормали материала. Base Color обязателен. Имена пинов сопоставляются так, как написаны: регистр не важен, пробелы важны. Не задано: встроенный вид.
- Категория
- Look
Функция материала, которая заменяет вид грязи колеса (MF_CF_WheelDirt). Её входы названы по пинам MF_CF_WheelDirt (Base Color, Roughness, Metallic) и MF_CF_WheelDirtAmount, а также Normal (собственная нормаль материала или плоская, если её нет). Её выходы названы по пинам, которые она заменяет, плюс Normal, который занимает место нормали материала. Base Color обязателен. Имена пинов сопоставляются так, как написаны: регистр не важен, пробелы важны. Не задано: встроенный вид.
- Категория
- Look
Функция материала, которая заменяет внешний вид трещин стеклянной панели (MF_CF_GlassCrack). Её входы называются по пинам MF_CF_GlassCrack (Base Color, Roughness, Opacity, Normal) и MF_CF_GlassCrackData, выходы — по пинам, которые она заменяет; Opacity обязателен. Имена пинов сопоставляются как написано: регистр не важен, пробелы важны. Не задано: встроенный вид.
- Категория
- Look
Niagara-система, которая бросает осколки стеклянной панели, чьё определение не называет Shard System. Она должна открывать параметры осколков из NS_CF_GlassShards плагина и слоты мешей от User.CF_ShardMesh0 до User.CF_ShardMesh5 — шесть, которые есть у системы плагина по умолчанию: седьмой отличный меш осколка определения и следующие за ним используют эти слоты заново.
- Категория
- Glass
Профиль коллизии, который навесная деталь получает, когда начинает качаться или отделилась. None (Reset to Default) использует собственную коллизию плагина, которой не нужно ничего из проекта (см. GetLoosePartCollision). Заданный здесь профиль должен блокировать мир и игнорировать пешки. Что бы он ни говорил об автомобилях, шарнир делает так, что они блокируют деталь только с одной стороны: они держат её и отодвигают, но ничего не ощущают в ответ.
- Категория
- Loose Parts
Демпфирование качающейся детали относительно её шарнира, как twist velocity drive джоинта. Оно также демпфирует Swing Spring: у привода одно Damping на оба.
- По умолчанию
- 1.0f
- Категория
- Loose Parts
Пружина, возвращающая качающуюся деталь в закрытое положение, как жёсткость twist-привода джоинта, независимо от её массы (acceleration-привод, масштабируется p.Chaos.JointConstraint.AngularDriveStiffnessScale, 1.5). Chaos масштабирует её инерцией детали относительно её центра, пока деталь поворачивается вокруг своей оси: дверь или капот, навешенные за край, возвращаются примерно с четверти от 1.5, умноженных на это значение, рад/с^2 на радиан открытия (собственная частота примерно половина квадратного корня из 1.5, умноженных на это значение, рад/с), демпфируется Swing Damping. Деталь, которую закрывает её собственный вес, например капот, не нуждается в ней; дверь на вертикальной оси остаётся там, где её качнули, и без неё; деталь, которая висит открытой на одном креплении, например бампер, подтягивается назад пружиной. Джоинты, созданные после изменения, получают новое значение. 0: без пружины.
- По умолчанию
- 0.0f
- Категория
- Loose Parts
Насколько упруги упоры качающейся детали на обоих концах хода (у джоинта один twist-лимит на оба). 0: упор физического движка, который держит деталь намертво. Выше него упор — это пружина, в которую деталь проваливается, прежде чем её отбросит назад: при значении чуть выше 0 проваливание составляет лишь 0.05 её скорости, примерно четверть при 0.66, около половины при 1, где дверь, захлопнутая со скоростью 180 град/с, сначала уходит на 4 град за закрытое положение (15 град при 720 град/с). Открытый конец тоже проскакивает: при 0.66 дверь, распахнутая на 180 град/с, уходит примерно на 1.3 град за свой Open Angle. Капот, лежащий на упоре, немного в него проваливается: 0.2 град при 0.66, 0.9 град при 1. Джоинты, созданные после изменения, получают новое значение.
- По умолчанию
- 0.0f
- Категория
- Loose Parts
Дополнительный толчок, который получает качающаяся деталь, когда кузов дёргается: поворот, который ускорение кузова в точке оси сообщает детали вокруг её оси, умноженный на это число, сверх того, что даёт физика. 0: только физика. Только на инстансе, который симулирует кузов и является его источником ударов: там, где кузов воспроизводится, его сетевые коррекции читались бы как рывки. Читается по движению кузова в game thread: при асинхронной физике толчок следует за рывком с задержкой чтения, в несколько фиксированных шагов (p.AsyncInterpolationMultiplier), тогда как собственная доля физики приходит сразу. Устойчивое ускорение тоже толкает: капот поднимается, пока кузов падает в прыжке. Деталь, которая качается сильнее, быстрее набирает свой Shake Off Travel. Читается каждый кадр: изменение действует сразу.
- По умолчанию
- 0.0f
- Категория
- Loose Parts
Угловая скорость, град/с, которую деталь получает в сторону своей открытой стороны, когда начинает качаться, чтобы она приоткрылась.
- По умолчанию
- 90.0f
- Категория
- Loose Parts
Секунды, в течение которых деталь, только начавшая качаться, сохраняет джоинт, который не может порваться и не может быть стряхнут: авария, которая её расшатала, никогда не рвёт и её джоинт. Это не задерживает вмятину: деталь, смятую сверх порога отделения, отваливается сразу. После этого удар может оторвать джоинт висящей детали, а тряска может её стряхнуть.
- По умолчанию
- 1.0f
- Категория
- Loose Parts
На каком расстоянии, см, другой автомобиль должен быть от закрытого места детали, оторванной вмятиной, чтобы удержать деталь там. Авария вминает кузов раньше, чем другой автомобиль доходит до детали; если отпустить, пока он ещё у детали, она оказалась бы между двумя телами, бесконечно тяжёлыми для неё, и её выбросило бы или заклинило в собственном кузове. Деталь падает в тот кадр, когда тот автомобиль отодвинулся дальше, — за кадр или два при аварии. 0: удерживается, только пока автомобиль касается её места или сближается с ним в пределах Torn Part Hold Lookahead, либо пока в этом месте что-то стоит. Для запаса учитываются только автомобили: земля под низкой деталью или стена, к которой прислонён автомобиль, никогда не уходят.
- По умолчанию
- 20.0f
- Категория
- Loose Parts
Секунды вперёд, на которые автомобиль, сближающийся с оторванной деталью, считается уже у неё: запас растёт на его скорость сближения, умноженную на это значение. Контакт аварии возникает раньше, чем тела встречаются: другая машина может быть всё ещё более чем в 20 см от двери, когда вмятина её отрывает, и оказаться у неё через несколько миллисекунд. Автомобиль, который отъезжает, учитывается только по запасу.
- По умолчанию
- 0.05f
- Категория
- Loose Parts
Секунды, которые отделившаяся деталь лежит, прежде чем уйти в грунт.
- По умолчанию
- 60.0f
- Категория
- Loose Parts
Секунды, за которые деталь уходит в землю на свою высоту и скрывается.
- По умолчанию
- 2.0f
- Категория
- Loose Parts
Коллизия помятого кузова строится заново, когда узел решётки на поверхности бокса или выпуклого объёма либо точка сферы или капсулы сместились на это расстояние, см, с последней сборки.
- По умолчанию
- 2.0f
- Категория
- Collision
Минимальная пауза, с, между двумя сборками коллизии одного тела. Вмятина, пришедшая раньше, ждёт, пока пауза не истечёт.
- По умолчанию
- 0.5f
- Категория
- Collision
Помятый бокс или выпуклый объём кузова разрезается на блоки коллизии там, где решётка изгибает его дальше этого, см, от того, что дают одни его углы.
- По умолчанию
- 1.5f
- Категория
- Collision
Максимальное число блоков коллизии, на которые режутся боксы и выпуклые объёмы одного тела. При этом числе или меньше ничего не режется: по одной оболочке на каждый.
- По умолчанию
- 96
- Категория
- Collision
Следует ли коллизия за вмятинами вообще в этом проекте: блоки кузова, вырез для оторванной детали и помятая оболочка расшатанной детали. Выкл.: каждый автомобиль сохраняет коллизию из ассета, что бы ни говорил его профиль, а вмятины только рисуются. Deform Collision профиля всё равно может выключить её для одного автомобиля. Читается, когда у автомобиля начинается игра. Проектное значение `Crushform.Collision.Deform`; профиль устройства или консоль его переопределяет.
- По умолчанию
- true
- Категория
- Collision
Сколько кадров тяжёлая сборка коллизии может идти вне игрового потока, прежде чем оказаться на кузове, 0 или 1: вырез для оторванной детали, перестройка кузова после вмятины и оболочка оторванной детали. 0 строит всё в кадре удара. При 1 навесные детали рассматриваются в кадре после удара, а перестройка и вырез кузова оказываются на кузове до физики следующего кадра, которая дожидается того, что рабочий поток ещё не доделал; сборка, запрошенная, пока идёт другая, начинается, когда та закончится, и занимает свой кадр, а оболочка оторванной детали ложится после физики. Значение больше 1 читается как 1: шаг физики на формах до вмятины даёт телу, которое прижимает другое к земле, второй толчок. При асинхронной физике удар может дойти до игрового потока после начала следующего шага, при любом из значений, если кадры не короче шага физики. Проектное значение `Crushform.Collision.DeferFrames`; профиль устройства или консоль его переопределяет.
- По умолчанию
- 1
- Категория
- Collision