Skip to content
Перейти к содержимому
Вернуться в блог
nmsr-rs: Рендеринг Minecraft Скинов с Точечной Перспективой

nmsr-rs: Рендеринг Minecraft Скинов с Точечной Перспективой

Alexandru Maftei
Alexandru Maftei
@ice
Обновлено
19 просмотров
TL;DR:nmsr-rs - это рендерер скинов Minecraft на Rust, создающий высококачественные 3D-аватары с перспективой. Самостоятельно размещайте его за минуты для вашего сервера, Discord бота или инструментов сообщества. Бесплатно и открытое с поддержкой брони и плащей.
GitHub · Проект сообщества Minecraft

nmsr-rs (NickAcPT/nmsr-rs)

Рендерер скинов Minecraft от NickAc - рендер скинов Minecraft с реальной перспективой

Добавить в избранное на GitHub ↑
★ 100 звезд👾 Rust📜 Apache-2.0

Вам когда-либо нужен был рендер скина Minecraft с реальной 3D-перспективой вместо плоской текстуры? Exact это и делает nmsr-rs. Разработан на Rust Ником AcPT, это сервис рендеринга скинов, преобразующий скины игроков Minecraft в высококачественные изображения из конкретных углов с правильной глубиной и освещением.

Что делает этот проект

nmsr-rs - это движок рендеринга, который берет скин игрока Minecraft и преобразует его в изображение. В отличие от базовых 2D просмотрщиков скинов, которые просто растягивают текстуру плоско, этот движок на самом деле строит 3D-модель вашего персонажа (включая броню, плащи и слои оборудования) и поворачивает его под любой запрашиваемый вами угол.

Существует два варианта. Используйте бесплатную размещенную версию на nmsr.nickac.dev на основе «попробуйте и увидите», или самостоятельно размещайте весь сервис, используя Docker или компилируя из исходного кода. Оба пути дают вам REST API, который принимает параметры, такие как режим рендеринга, уровень масштабирования и варианты наложения, а затем возвращает PNG.

Разработано с учетом производительности, это быстрое решение. Нет процессов Java, нет тяжелых графических библиотек, которые занимают вечность для инициализации. Только эффективный скомпилированный код на Rust, который обрабатывает сотни одновременных запросов без колебаний.


Почему вы бы использовали это

Если вы строите что-либо, связанное с Minecraft, и нуждаетесь в аватарах игроков, вы, вероятно, заметили, что большинство альтернатив либо медленные, либо неточные, либо и то, и другое.

Запускаете сайт списка серверов? Вам нужно показать голову или всю фигуру оператора сервера, когда они загружают свою запись. Базовый просмотрщик скинов ломается, если у игрока есть плащ или кастомная броня. nmsr-rs обрабатывает оба варианта без дополнительной настройки.

Строите лидерборд, отслеживатель статистики или бота сообщества? Вы хотите быстрый и последовательный рендер аватаров для каждого игрока без дополнительной нагрузки на вашу инфраструктуру. Честно говоря, это делает именно это.

Возможно, вы пишете кастомный лаунчер. Вы хотите приятные внешне рендеры игроков по требованию без беспокойства о производительности. Структура API делает это простым.


Начало работы (Два пути)

Репозиторий делает настройку действительно простой. Выберите Docker или сырой Rust.

Подход с Docker:

bash
git clone https://github.com/NickAcPT/nmsr-rs.git
cd nmsr-rs
cp example.config.toml config.toml
docker build -t nmsr.
docker run -p 8080:8080 nmsr

После этого у вас есть локальный API по адресу http://localhost:8080. Никаких других зависимостей, никаких конфликтов версий, прячущихся в вашей системе.

Подход с Cargo, если вы предпочитаете компилировать напрямую:

bash
git clone https://github.com/NickAcPT/nmsr-rs.git
cd nmsr-rs
cargo run --release --bin nmsr-aas

Тот же результат на localhost:8080. Оба пути занимают пару минут, если ваш интернет не борется с загрузкой Rust.

Файл config.toml - это то место, где вы бы調стили номер порта, настройки кэша или ограничения ресурсов, если вы планируете масштабировать это. Для локального тестирования стандартные настройки работают хорошо.


Режимы рендеринга и когда использовать каждый

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

FullBody показывает классический изометрический вид 45 градусов - вашего игрока примерно на уровне колен, повернутого так, чтобы видеть переднюю и боковую части. Идеально подходит для списков серверов или карточек игроков. FullBodyIso использует другую математику перспективы, но достигает подобного вида.

BodyBust обрезает туже, показывая торс и голову. Хорошо подходит для профильных фотографий в Discord или окон лаунчера, где ограничено место. HeadIso и Head дают вам только голову игрока, а версия iso выглядит лучше для баннеров.

Face рендерит только переднюю часть лица - редко полезно, если вы не делаете что-то конкретное. Вы также можете перевернуть любой рендер, чтобы показать заднюю часть вместо передней, полезно, если вы хотите отобразить детали брони с обеих сторон.


Советы, которые спасут вас от проблем

Одна ловушка ловит людей: файл parts.zip из последнего релиза. Рендереру нужны эти 3D-модельные части на диске. Пропустите этот шаг, и вы получите ошибки или пустые рендеры. Загрузите parts.zip со страницы релизов GitHub и извлеките его правильно в вашу директорию установки.

Для самохозяйственного размещения в производстве реализуйте кэширование. API перерендерит тот же скин каждый раз, если вы не кэшируете вывод. Простой кэш Redis, ключом для которого является (uuid_игрока, режим_рендеринга, параметры), предотвращает избыточную работу и экономит CPU.

Производительность солидная. Один экземпляр легко обрабатывает сотни одновременных запросов. Если вы ожидаете тысячи рендеров в день, запустите несколько экземпляров за балансировщиком нагрузки.

Если вы строите инфраструктуру вокруг этого, вам, возможно, также захочется настроить правильный DNS для вашего сервера Minecraft. Посмотрите наш бесплатный инструмент DNS для Minecraft, если вы занимаетесь серверными операциями.


Броня, Плащи и Настройки

Что отличает это от skinview3d (просмотрщик на JavaScript, работающий в браузерах) - это рендеринг на стороне сервера. Поддержка брони встроена. Работают обрезки брони из Minecraft 1.20+. Работают плащи из официальной службы или кастомные. Работают также кастомные уши от мода Ears.

Параметры рендеринга передаются через строки запроса URL. Укажите уровень масштабирования, углы вращения,是否 показывать второй слой и какие аксессуары включить. Примеры:

  • ?model=FullBody&zoom=1.5 для изометрического вида с масштабированием
  • ?model=Head&scale=2 для большего рендера головы
  • Соедините параметры для кастомных видов без перекомпиляции

Хостованная версия на nmsr.nickac.dev позволяет экспериментировать. Вставьте UUID игрока и переключайтесь между режимами, чтобы увидеть, как выглядит каждый из них.


Быстрое сравнение с альтернативами

Вы, вероятно, слышали о skinview3d. Это решение на JavaScript, работающее в браузерах, отлично подходит для интерактивного 3D-обзора. Но это рендеринг на стороне клиента. Медленные машины или мобильные устройства могут испытывать трудности. nmsr-rs предварительно вычисляет PNG на сервере и отправляет статические изображения, поэтому они загружаются мгновенно везде.

Старые сервисы Minotar и Crafatar существуют, но они устарели или требуют много обслуживания. nmsr-rs активно разрабатывается и специально построен для самохозяйственного размещения без сложной настройки.

Торговля: nmsr-rs дает серверную скорость и простоту API. Skinview3d дает интерактивность в реальном времени. Выбирайте на основе ваших реальных потребностей.

А если вы управляете сервером Minecraft и хотите убедиться, что ваша инфраструктура надежна, наш инструмент поиска блоков может помочь быстро проверить вашу среду.

Об авторе
Alexandru Maftei
Alexandru MafteiВедущий автор

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

Поделитесь с друзьями!

Комментарии

Пока нет комментариев. Станьте первым, кто поделится своим мнением!

Похожие статьи

We use cookies to improve your experience. By continuing to use this site, you agree to our use of cookies. Read our Privacy Policy