Open WatlerJe opened 2 years ago
Было бы хорошо сюда линкануть все похожие ишуи, к примеру про жир, оверлеи крови поверх отрезанных рук, и т.д. Можно было бы сделать большим заданием, и навесить баунти (когда-нибудь)
Такая же штука с отображением предметов в руках. Дальние спрайты перекрывают по какой-то причине те, что ближе к зрителю
Как по какой причине. всё просто. слои рук и ног не меняются. как и слои инхэндов при повороте куклы. даже по логике представьте себе ситуацию. Когда хуман смотрит направо - его правая рука ближе к нам, а левая дальше. Когда хуман смотрит влево - его правая рука дальше от нас, а левая ближе. Но это визуально. По факту же от дира не зависит расположение слоёв куклы. Надо сделать чтобы при смене дира кукла пересобиралась или некоторые слои только.
var/list/bodypart_layer_by_dir = list(
BP_HEAD = list(
NORTH = HEAD_LAYER_NORTH,
SOUTH = HEAD_LAYER_SOUTH
)
вот такое надо выходит
Ммм. нет, наверное. Ты хочешь чтобы противоположный дир вообще вырезался чтоль?
возможно красивее было бы
var/list/bodypart_layer_by_dir = list(
"[BP_HEAD][NORTH]" = HEAD_LAYER_NORTH,
"[BP_HEAD][SOUTH]" = HEAD_LAYER_SOUTH,
)
Я вам напомню, но руки так-то корректно отображаются
Нога же почему-то даже поверх руки рисуется..
Гусев выше правильно написал, кукла склеивается в определенном порядке и стейты фиксируются один поверх другого, не зависимо от dir-а. Возможно, что проблема не решаема вовсе.
С руками схитрили - левые стейты у правых рук почти отсутствуют в самом dmi, но с ногами так не получится - если у нас нет одной из ног, нам нужно показывать другую. У рук мы по этому поводу не волнуемся из-за всегда присутствующего туловища. Единственное что, руки так подогнаны под тощее тело, и на толстом заметен косяк с тремя пикселями через пузо.
Можно попробовать делать для определенных dir-ов конечностей оверлей с BLEND_SUBTRACT (вычетание из одного спрайта другого по маске) от определенных dir-ов других конечностей. Я, правда, не представляю, как оптимально это сделать, не плодя операций с иконками на сервер-сайд и не клепая кучу оверлеев на оверлеи. Возможно альтернативой blend_mode
могли бы стать фильтры в режиме альфа-маски.
И нужно будет смотреть это с 3 парами, руки и ноги в https://github.com/TauCetiStation/TauCetiClassic/blob/2fbdc98a4121a10a42be32117ac65aa5cdefcad1/code/modules/mob/living/carbon/human/update_icons.dm#L222-L226 +учитывать для рук туловище, для ног возможно хвост
И инхенды предметов в правой и левой руке в https://github.com/TauCetiStation/TauCetiClassic/blob/2fbdc98a4121a10a42be32117ac65aa5cdefcad1/code/modules/mob/living/carbon/human/update_icons.dm#L396-L397 которым так же стоит скорее всего учитывать туловище
Всмысле не решаемая. Я ж кидал месяцев 3 назад ТГ фикс отображения....
Могл бы и сюда кинуть, https://github.com/tgstation/tgstation/pull/66607
но они как раз блендят (серверсайд), хоть и кэшируют - это будет затратно для инхендов. Сужу по PR-у, нужно смотреть последнюю ревизию.
Я подумал еще немного, запишу на полях.
Для дальней пары можно брать appearance из overlays_standing ближней пары (руки/ноги не в overlays_standing, но им нужен свой массив для порядка), выставлять ему нужный dir, и в качестве фильтра или оверлея с BLEND_SUBTRACT каким-то образом применять именно к 4-му из 4-х dir-у иконки дальней пары. Не могу придумать, как делать последний шаг. Если получится, то была бы генерация всего на лету без дополнительных затрат ресурсов.
не важно, оно работает не так
Можно отслеживать смену дира, думаю, поворот перса. И на повороте пересобирать только руки-ноги + инхенды, меняя их лееры.
Сюда же отображение вещей в руках вокесов. Там тупо спрайтов не хватает и поэтому все выглядит убого. А еще разница в высоте рук. Поэтому вещи где-то не в руках у воксов, а рядом с ними.
Подробное описание проблемы
Ноги у всех кукл в билде прорисовываются неправильно, а точнее неправильно накладываются слои друг на друга, в результате чего протез на правой ноге находится поверх левой ноги при направлении на запад (скрин ниже).
Хотел отрисовать протезы, а тут такое. В общем надо фиксить, ибо такая же беда и с руками которые видно сквозь пузо у толстиков.