Майнкрафт. Какая сущность кроме лодки имеет коллизию и не привязана к сетке или как сделать лодку невидимой
Мне нужна сущность по которой можно ходить, она не должна быть привязана к сетке 1 на 1 блок и можно было изменять видимость этой сущности, я проверял с лодкой но ее нельзя сделать невидимой
Любую сущность можно сделать невидимой при помощи редактирования ванильных шейдеров в наборах ресурсов. Так, для твоих задач оптимально использовать шалкера, так как он имеет довольно небольшие размеры (всего 1×1×1 вместо 0.5×1.5×1.5 у лодки) и может быть отвязан от сетки блоков, если призвать его командой, сидящим на маркере или стенде (телепортация маркера/стенда тянет за собой пассажира-шалкера).
Однако даже если наложить на него невидимость, голова всё равно будет видна, для этого нам и нужен набор ресурсов с изменённым ванильным шейдером. Сделать это можно следующим образом:
1. Удаляем текстуру шалкеру в файлах его текстур (их там несколько, на каждый цвет, удаляй тому, который будешь использовать). Сами текстуры расположены здесь:
assets/minecraft/textures/entity/shulker
После чего получим примерно следующее:

Голова всё ещё видна (хоть и без текстуры) из-за особенностей рендеринга игрой некоторых сущностей.
2. Чтобы это исправить, создаём в ресурспаке файл с именем
rendertype_entity_solid.fsh
... и помещаем его по адресу
assets/minecraft/shaders/core
3. открываем его в любом текстовом редакторе и вставляем туда следующее:
#version 150
#moj_import <fog.glsl>
uniform sampler2D Sampler0;
uniform vec4 ColorModulator;
uniform float FogStart;
uniform float FogEnd;
uniform vec4 FogColor;
in float vertexDistance;
in vec4 vertexColor;
in vec4 lightMapColor;
in vec4 overlayColor;
in vec2 texCoord0;
in vec4 normal;
out vec4 fragColor;
void main() {
vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator;
if (color.a < 0.1)
discard;
color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a);
color *= lightMapColor;
fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor);
}
Это заставит игру поддерживать прозрачность даже у текстур тех мобов, которые её не поддерживают, за счёт небольшой нагрузки (чем больше пространства на экране будет занимать такая текстура, тем выше будет нагрузка). Об этом способе я узнал от dartcat25 , оставляю на него ссылку.
4. Перезагружаем ресурсы при помощи F3+T и наслаждаемся результатом.
Примечание: при помощи возможностей оптифайна или Entity Texture Features удалять текстуры сущностям можно и более простым способом, однако такие наборы ресурсов не будут совместимы с немотивированной игрой, что плохо. Но при желании можно покопаться в документации этих модов и сделать через них.
Если лень делать байду сверху, то лодка нвидимой делается через команду /effect give @e[type=boat] invisibility 9999 1