Новая система веса

В этой статье я описываю принцип расчёта нового веса для экипировки в моде Resolver. Подробнее ознакомиться с результатами исследования можно здесь


Что-бы нормально перебалансировать вес всех предметов, я решил не просто прикидывать что "этот предмет легче этого, а вон тот легче того", а рассчитать реальный вес каждого предмета и потом при необходимости адаптировать их под игру.

Вычисление веса

Итак немного вспомним физику. Как вычисляется масса:

m=V*ρ где m - масса, V - объём, а ρ - плотность
То есть, что-бы узнать вес каждого предмета, достаточно узнать его объём и плотность. Первое можно получить в Blender включив встроенный плагин 3D Print Toolbox. А для второго я просто прошурстил интернет для получения вот такой таблицы плотностей:
Таблица Плотности Кость 2 кг/м³ Шёлковая ткань Сущность* 300 кг/м³ >Лёгкая полупрозрачная 0.060 кг/м² Дерево 400-700 кг/м³ >Обычная с лёгким блеском 0.100 кг/м² Отблески* 600 кг/м³ >Плотная почти глянцевая 0.120 кг/м² Лёд 900 кг/м³ Хлопковая ткань Воск 970 кг/м3 >Лёгкая полупрозрачная 0.070 кг/м² Дублённая кожа 600-1200 кг/м³ >Обычная 0.150 кг/м² Твёрдая дублённая кожа 1000-1400 кг/м³ Льняная ткань Керамика 1800 кг/м³ >Лёгкая 0.150 кг/м² Слоновая кость 1850 кг/м³ >Обычная 0.230 кг/м² Фарфор 2300 кг/м³ Джутовая ткань (иногда + лён) Алебастр 2500 кг/м³ >Сетчетая 0.190 кг/м² Стекло 2500 кг/м³ >Грубая (есть небольшие поры) 0.380 кг/м² Кремень 2600 кг/м³ >Плотная 0.450 кг/м² Обсидиан 2600 кг/м³ Шерстяная ткань Гранит 2600 кг/м³ >Лёгкая 0.210 кг/м² Песчаник 2225—2670 кг/м³ >Обычная 0.360 кг/м² Кварцит 2680 кг/м³ >Толстая 0.600 кг/м² Мрамор 2700 кг/м³ Известняк 800 - 2800 кг/м³ Папирус 0.100 кг/м² Диорит 2720-2920 кг/м³ Пергамент 0.150 кг/м² Нефрит 3000 кг/м³ Бумага Титан 4500 кг/м³ >Обычная 0.090 кг/м² Сталь/Железо 7800 кг/м³ >Плотная 0.120 кг/м² Бронза 8700 кг/м³ Медь 8900 кг/м³ Серебро 10500 кг/м³ Свинец 11300 кг/м³ Золото 19300 кг/м³ *плотность Сущности и отблесков неизвестна и просто взята из головы))

Да для этого необходимо так-же и разделять модель на части там где используется другой материал, а для тканей и бумаги я просто считал поверхность (заранее удаляя лишние полигоны, в некоторых случаях убирая объём модели), и умножал на плотность в м².

Примечание! Все расчёты приблизительные, по множеству факторов: вычисление объёма по Low Poly моделям, не имение точной информации об используемых материалов у некоторых масок, не всегда учитывались материалы запечённые в текстуре и т.д.

Адаптирование веса под игровой баланс

Для адаптации нужно что-бы кривая реального веса стремилась к кривой игрового, при этом чем дальше реальное значение находиться от игрового, тем сильнее оно должно приближаться к нему. Однако адаптированные значения должны сохранять соотношения с другими.

Наиболее подходящий результат дало получение среднего значения между двумя значениями:

Но поскольку тяжёлые предметы всё ещё остались очень тяжёлыми пришлось его ещё раз усреднить к игровым показателям:

Затем я понизил значения на 10% от реального значения, что ещё сильнее приблизило тяжёлые предметы к игровым:

И на конец итоговые значения опустил на 6%, что-бы приблизить значения к игровому балансу, но сохранить соотношения: