Все хотят играть красиво-2! Шейдеры и ресурспаки.

8 апр 2016
Все хотят играть красиво-2! Шейдеры и ресурспаки.
  • Все хотят играть красиво! Часть II. Неистребимое стремление к прекрасному. Шейдеры и ресурспаки.

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

    Скриншот_01.png Скриншот_02.png Скриншот_03.png Скриншот_04.png Скриншот_05.png Скриншот_06.png Скриншот_07.png Скриншот_08.png Скриншот_09.png Скриншот_10.png Скриншот_11.png Скриншот_12.png Скриншот_13.png Скриншот_14.png Скриншот_15.png Скриншот_16.png Скриншот_17.png Скриншот_18.png Скриншот_19.png Скриншот_20.png Скриншот_21.png Скриншот_22.png Скриншот_23.png Скриншот_24.png Скриншот_25.png Скриншот_26.png Скриншот_27.png Скриншот_28.png Скриншот_29.png Скриншот_30.png Скриншот_31.png
    Комбинируя различные ресурспаки и шейдеры можно добиваться поразительных по красоте эффектов.
    Краски жизни-2_01.png Краски жизни-2_02.png Краски жизни-2_03.png Краски жизни-2_04.png Краски жизни-2_05.png Краски жизни-2_06.png Краски жизни-2_07.png Краски жизни-2_08.png Краски жизни-2_09.png Краски жизни-2_10.png Краски жизни-2_11.png Краски жизни-2_12.png Краски жизни-2_13.png Краски жизни-2_14.png Краски жизни-2_15.png Краски жизни-2_16.png Краски жизни-2_17.png Краски жизни-2_18.png Краски жизни-2_19.png Краски жизни-2_20.png Краски жизни-2_21.png Краски жизни-2_22.png Краски жизни-2_23.png Краски жизни-2_24.png Краски жизни-2_25.png Краски жизни-2_26.png Краски жизни-2_27.png

    Также вы можете скачать красочные Minecraft-обои на рабочий стол с нашего сайта.

    Установка шейдеров и ресурспаков.

    1. Находим %appdata%\.minemoscow\MM Classic\shaderpacks\ и копируем туда архивы шейдеров. Для ресурспаков это будет папка resourcepacks. Архивы распаковывать не нужно.
    2. Для выбора шейдера запускаем игру и заходим в настройки>настройки графики>Shaders... Выбираем шейдер из списка. Нажимаем Done. Обратите внимание, в Shaders есть еще ряд настроек, которыми можно поиграть, но будьте осторожны, большинство из них для мощных видеокарт.
    3. Для выбора ресурспака запускаем игру и заходим в настройки>пакеты ресурсов. В списке доступных ресурсов (слева) кликом мыши выбрать нужный, при этом он переместится в список справа на самый верх. Для удобства, при наведении указателя мыши на иконке ресурса появляется пиктограмма в виде стрелки. Таким образом, выбранные ресурспаки можно сортировать в списке выбранных пакетов ресурсов.
    4. Как установить дополнение (add on) к ресурспаку?
      Сначала устанавливаете ресурспак, поверх него устанавливаете дополнение.
      На изображении пакетом ресурсов является Default 32x32, а Dramatic Skys - дополнение. Получится так, как на первом скриншоте в подборке "Краски жизни 2".

    Справка: %appdata% - это скрытая (по умолчанию) системная папка, подкаталог папки Users с личными файлами всех зарегистрированных пользователей. Папка содержит всю информацию, порожденную установленными программами на компьютере и невидима для пользователей, потому что (по крайней мере, в теории) хранящиеся в ней файлы не должны представлять для них никакого интереса. Написав %appdata% в строке пути проводника вы попадете точно в папку c:\Users\ЮЗЕР\AppData\Roaming\, где лежат интересующие нас папки minecraft.


    Где скачать шейдеры и ресурспаки?

    Подборку ресурспаков можно скачать здесь.
    Наиболее известные шейдеры можно скачать здесь.


    Справка: аббревиатура DOF в названии означает, что шейдер использует эффект фокусировки на изображении, как в фотоаппарате. При этом область изображения не попадающая в фокус - размыта. Этот эффект виден на последних кадрах подборки "Краски жизни".

    Тест наиболее известных шейдеров при одинаковых настройках графики

    Конфигурация компьютера:
    • Процессор Core i3-2120
    • Оперативная память 10 Гб
    • Видеокарта Geforce GTX 750 ti
    • Win 7 x64
    Ресурспак стандартный, сглаженный. Все используемые шейдеры и ресурспаки можно скачать по ссылкам выше.

    Результаты теста

    Таблица.png

    Выводы делайте сами.
    По моим ощущениям при FPS 35-45 играть еще можно, ниже 30 уже не комфортно.
    В неглубоких пещерах на некоторых шейдерах наблюдается эффект просвечивания света под/над блоками. Выглядит иногда просто чудовищно.
    Эффект просвечивания_01.png Эффект просвечивания_02.png Эффект просвечивания_03.png Эффект просвечивания_04.png Эффект просвечивания_05.png Эффект просвечивания_06.png
    Этого недостатка точно нет у шейдеров Sildurs, SEUS, TME.
    Пробежался по карте с разными шейдерами. Для стабильной игры хорошо подходит SEUS. Этот шейдер самый сбалансированный по цвету/свету, комфортно и днем и ночью.
    Для прогулок по пещерам наиболее удобен chocapic13 и SEUS, с натяжкой MrMeepz.
    Ночные прогулки будут наиболее "вкусными" с SEUS, MrMeepz, Continuum.
    Еще один замечательный "дневной" и "дождливый" шейдер Robobo, однако он столь же тяжелый, сколько и замечательный (его работу можно увидеть на последних трех скриншотах в подборке "Краски жизни 2").


    Создание и редактирование пакетов ресурсов.

    Наверняка многие из вас задавались вопросом - как изменить или немного доработать любимый ресурспак?
    На этот вопрос вам поможет ответить утилита RPW (Resource Pack Workbench).

    Долой кустарные способы создания и редактирования ресурсов!!!

    Что позволяет делать эта утилита?
    • Создавать, модифицировать и смешивать ресурспаки
    • Редактировать ресурсы с использованием ваших любимых редакторов (GIMP, Audacity, Photoshop и пр.)
    • Редактировать ресурсы модов (только не для ванилы)
    • Добавлять пользовательские звуки для "/playsound"
    • Экспортировать пакет непосредственно в вашу папку Minecraft для легкого тестирования
    Ссылка на официальный ресурс здесь.
    Программа на английском языке, но черновой перевод встроенной помощи готов, качайте (чуть позже доработаю).


    Запуск утилиты.
    При запуске RPW у вас может появиться сообщение о том, что не существует папка .minecraft. Ничего страшного. Дело в том, что RPW использует в качестве базового ванильный (по умолчанию) пакет ресурсов. Этот пакет ресурсов должен находиться в стандартной папке .minecraft. В связи с этим у вас два пути:
    1. Устанивить актуальную версию minecraft с официального сайта.
    2. Скопировать папку .minemoscow из %appdata%, переименовать ее в .minecraft и переместить обратно в %appdata%.
    Я выбрал второй путь - все работает.


    Программа запущена.
    В момент запуска программы происходит считывание стандартного пакета ресурсов из папки майнкрафта.
    Перед нами главное окно программы.
    В правой части отображается активный проект (которого пока нет). В левой части область отображения структуры файлов.
    Для начала попробуем посмотреть некоторые опции и произвести минимальные стартовые настройки.
    Программа умеет работать с внешними редакторами. Чтобы их настроить необходимо зайти в меню Options>Configure editors
    В открывшемся окне можно настроить внешний редактор изображений (я прописал фотошоп), аудио редактор. По умолчанию (галочки внизу) для редактирования текста и метаданных используются встроенные редакторы (на ваше усмотрение).
    Для интересующихся работой в Photoshop, материалы здесь.
    С редакторами разобрались. Едем дальше...

    В меню Help (помощь) находится джентльменский набор практически любой программы.

    Меню Options (настройки).

    • Use "fancy" tree structure - как написано в помощи, эта настройка показывает расширенную структуру дерева файлов или стандартную.
    • Warn about orphaned files - предупреждение об "осиротевших файлах" (выдавать предупреждение, когда Fancy Tree будет препятствовать показу некоторых файлов)
    • Preview when mousing over - судя по всему, это предварительный просмотр при наведении мыши
    • Show hidden files in file pickers - показывать скрытые файлы в указателях файлов.
    • Use Nimbus theme (needs restart) - включенная по умолчанию тема оформления (Nimbus) самой RPW, если отключить будет выглядеть старомодно (требуется перезагрузка)
    • Try to use system theme (needs restart) - пытаться использовать системную тему оформления
    • Auto save on close (don't ask) - автосохранение по выходу без запроса
    Не буду утверждать, что я на 100% понимаю полный смысл некоторых настроек, но у себя оставил все по умолчанию. Будем разбираться, так сказать, "по ходу пьесы".

    Меню Library (библиотека)
    Ну, очень полезная штуковина! Незаменима вааще. Если создать "скелет" (файловую структуру, дерево фалов, основу) нового ресурспака очень просто, то наращивать на него "мясо" в виде текстур, звуков, анимации и прочего вам придется долго и мучительно, используя различные редакторы. Однако, можно нагло "передрать" (позаимствовать;)) их у других отмучившихся. Вот тут нам и придет на помощь библиотека.
    Технически - это директория (хранилище) RPW с распакованными ресурспаками, которые вы импортируете. При необходимости, можно в любой момент заменить текстуру на необходимую из любого ресурспака в библиотеке.
    Опции библиотеки.

    • Import resource pack... - импортирует ресурспак в библиотеку (со всеми его настройками, метаданными и пр.)
    • Manage library - управляет библиотекой (импортирует, удаляет и переименовывает ресурспаки в библиотеке)
    • Reload library - перезагружает библиотеку
    • Re-extract Minecraft assets - заново извлекает ресурсы из Майнкрафта (может быть полезно при изменении версии или добавлении модов с пользовательскими текстурами и настройками, например Mo'Creatures).
    • Fancy Tree mod support - редактирование настроек для групп и фильтров

    Создание проекта. Экспорт готового ресурспака.

    Все ваши разработки RPW хранит в виде проектов. Это наиболее распространенная форма хранения информации в современном программном обеспечении, например Photoshop хранит свои проекты в файлах PSD и т. п. Это очень удобно для дальнейшего редактирования и изменения. При этом конечным результатом работы будет экспорт готового ресурспака.
    Все проекты хранятся в отдельных директориях с соответствующими именами в %appdata%\.mcRPW\projects\

    Чтобы создать новый проект необходимо зайти в меню Projects>Create new project.
    В появившемся окне New Project (новый проект) доступны следующие операции:

    • Blank project - создать пустой проект (на основе ванилы, разумеется)
    • Project from resource pack - при активации этого радиобаттона, вам необходимо будет выбрать архив ресурспака, на основе которого вы будете создавать свой, установленная галочка Keep original title оставит оригинальный заголовок ресурспака (можно изменить позже), в противном случае, необходимо будет ввести свой заголовок внизу в поле Title (заголовок).
    • Name - название вашего проекта.
    Нажимаем кнопку Create (создать).
    Небольшой совет - имя и заголовок должны быть осмысленными, не слишком длинными, лучше с использованием латинского алфавита. Если основой послужил чужой ресурспак, то корректнее будет оставить оригинальное название (или его часть) с припиской типа "remastered by НИК" (обновлен), "remixed by..." (миксован, смешан) или "reforged by..." (перекован), дабы не обидеть создателя. Не лишним будет добавить в название и размер использованных текстур, например 32x32 или 32x (только не x32, а то подумают, что это для 32-битной системы:)) и т. д.
    Итак, проект создан. И вот что мы видим.
    В области отображения структуры файлов появилась какая-то древовидная структура (напоминаю, она создана на основе ванилы) с узлами (плюсы и минусы). Справа появилась информация о проекте и его иконка.
    По порядку:
    1. Если вы оставили включенной настройку Use "fancy" tree structure, то у вас отобразится расширенная структура, если отключили, то стандартная.
    2. Project info или информация о проекте (справа). Кнопка с изображением гаечного ключа показывает окно Project details (детали проекта). Здесь можно посмотреть свойства (properties) - это имя и заголовок и изменить заголовок. Маленькая подсказка гласит - используйте диалог "My Projects" для переименования проекта. Также можно поработать с иконкой проекта, а именно: редактировать (Edit), импортировать свое изображение (Import), сбросить на настройки по умолчанию (Default), обновить (Refresh). Ниже кнопка Open in file manager... откроет папку вашего проекта в проводнике.
    На скриншоте видно, что я задал имя "111", заголовок "222" и импортировал свою иконку (изображение 850x850).
    Теперь можно первый раз сохранить свой проект. Открываем меню Projects и выбираем нужную нам команду Save project или Save project as... для сохранения проекта под другим именем. Урря! Первый проект сохранен! Только проект, ресурспаком он станет чуть позже;).

    На мой взгляд, начать работу следует с изменения текстур объектов, поскольку подавляющему количеству игроков важна именно графическая визуализация. В связи с этим немного расскажу об изображениях.
    В стандартном варианте ресурспака, еще называемом Ванила, используются изображения текстур размером 16x16 пикселей. Чтобы улучшить вид объектов, увеличивают размер изображения. Каждый последующий размер изображений увеличивается в два раза по каждой стороне, таким образом ряд размеров будет следующим 16x, 32x, 64x, 128x, 256x, 512x, 1024x и т. д. Самые большие текстуры, встреченные мной на сегодняшний день были рамером 512x512. Естественно, чем больше размер, тем выше качество изображения. Творцы высококачественных текстур создают свои детища, руководствуясь исключительно творческой необходимостью, забывая при этом о нас, простых пользователях. Дело в том, что мир майнкрафта изначально кубический и сверхнатуральные текстуры смотрятся в нем довольно гротескно. Помимо этого такие текстуры сильно нагружают видеокарту. Подключение текстур большого размера сопоставимо с работой некоторых шейдеров (специально проверял). Но есть и плюс - такие текстуры можно использовать в качестве поставщиков готовых изображений для дальнейшего редактирования. По моим прикидкам, для высококачественных текстур оптимальным вариантом будут изображения размером 128x128. При хорошем "железе" такой ресурспак будет довольно сносно работать с шейдерами.
    Примечание: не стоит забывать, что все изображения текстур для ресурпака лучше приводить в единому размеру. Также учитывайте, насколько часто может встречаться та или иная текстура, возможно, некоторые из них стоит оставлять ванильными, например траву или камень. Это позволить немного снизить нагрузку на видеокарту.

    На данном этапе нас будет интересовать директория Textures (текстуры) в структуре файлов. Вы также видите, что сама структура находится в колонке Resource File (файл ресурса), еще существуют колонки Assigned (назначенный вами ресурс), Resolved (ресурс, используемый для экспорта), PROJ (ресурс, скопированный в директорию проекта), META (ресурс, имеющий "McMeta" файл в директории проекта).

    Попробуем изменить какую-либо текстуру. Раскрываем директорию Textures, нажав на узел (плюс). Я выбрал Blocks (блоки)>Crops (урожай)>Carrots (морковь). Морковь имеет четыре стадии роста, поэтому ей соответствует четыре текстуры (индексы от 0 до 3). Щелкая мышью на каждом файле (один щелчок), справа вы увидите саму текстуру в окне просмотра. Обратите внимание, что в колонке Resolved показан статус Vanilla. Также для этих четырех файлов имеются пустые чекбоксы в колонках PROJ и META. Это означает, что на данный момент текстура моркови не изменена и не будет экспортирована в пользовательский ресурспак.
    Над окном просмотра есть кнопки для редактирования изображения (Edit), метаданных (Meta) и замены текстуры на пользовательскую (Replace). Аналоги этих команд есть в контекстном меню.
    Попробую открыть в редакторе изображение морковки, нажимаю Edit. Появилось сообщение To edit a file, it must first be copied to your project. Shall it be copied? (чтобы редактировать файл, он должен быть сначала скопирован в ваш проект. Скопировать?). Нажимаю ОК. Файл открывается в редакторе (у меня фотошоп) и меняется статус файла в колонках на PROJECT, а в колонке PROJ появляется галочка, т. е. файл скопирован в директорию проекта и будет использован для экспорта (не содержит метаданных). Соответственно, если мы преобразуем изображение в редакторе и сохраним его, то уже это изображение будет присутствовать в нашем проекте, а потом и в ресурспаке.
    С заменой, я думаю, все понятно. Есть готовый файл, нажимаем Replace, выбираем и заменяем.
    Другим способом изменения текстуры является загрузка из библиотеки ресурсов.
    Если вы еще не загрузили в библиотеку несколько ресурспаков, то самое время сделать это. Для примера я загрузил несколько паков, выглядит это так:
    Изменяем текстуру моркови, назначив ее из библиотеки. Для этого выделяем первую текстуру, зажимаем клавишу Shift и щелкаем по четвертой текстуре. Выделились четыре текстуры.
    Примечание: в программе работает выделение как с использованием клавиши Shift , так и Ctrl (выделение нескольких файлов с пропусками). В дальнейшем я буду называть эти действия "выделение через Shift" или "выделение через Ctrl".
    На выделенной группе вызываем контекстное меню (ПКМ). В нижней части находятся команды для назначения источников текстур и свойст. Если в библиотеке загружены ресурспаки, то в самом низу контекстного меню будут выведены их названия. Выбираем ресурспак из которого будет назначен ресурс. В окне просмотра сразу произойдут изменения. Также эти текстуры поменяют статус в колонках Assigned и Resolved (будет выведено название ресурспака из которого они взяты).
    На выделенной группе опять вызываем контекстное меню и выбираем пункт Copy to project (копировать в проект). Теперь мы видим уже знакомый нам статус PROJECT и галочку в колонке PROJ. Текстура назначена и скопирована в проект. Ее можно отредактировать по вашему усмотрению.
    Мне пока не до конца понятна работа команды Copy to project, skip VANILLA (копировать в проект, пропустить Ванилу), но со временем разберусь.
    Может возникнуть ситуация, когда вам будет необходимо переназначить уже измененную текстуру. Опять выделим группу или одну измененную текстуру (по обстоятельствам)>контекстное меню>Delete copies in project (удалить копии из проекта)>ОК (подтверждаем удаление). Копии удалились, статусы поменялись на исходные. Повторите процедуру назначения ресурса из другого пака.
    Добавляйте в проект только копии измененных текстур (не добавляйте ванильные), следуйте совету разработчиков. Неизмененные текстуры Minecraft автоматически прочитает из ванилы.
    Теперь вы можете сохранить свой первый ресурспак. Пусть там изменена только морковка, зато свое:grinning:. Опять нам поможет меню Project. Команда Export pack to... произведет экпорт готового ресурспака в указанную вами папку, Export pack to Minecraft экспортирует ресурспак в стандартную папку .minecraft\resourcepacks\ (удобно для пользователей лицензионной копии). Посмотрим, что получилось.
    В контекстном меню, которое мы с вами уже неоднократно использовали, есть еще инструменты для назначения источников ресурсов.

    • INHERIT (наследование) - берет источник от родительской директории
    • VANILLA (ванила) - использует файл из стандартного ресурспака
    • SILENCE (тишина) - использует тихий аудио файл (виден в контекстном меню аудиофалов)
    • PROJECT (проект) - использует файл, расположенный в папке вашего проекта (предполагается, что его заранее скопировали в папку проекта с нужным именем)
    Помимо этих, есть еще команды
    • Assign Resolved - назначить используемы для экспорта
    • Assign Resolved, skip VANILLA - назначить используемы для экспорта, пропустить Ванилу.
    Все эти команды ускоряют процесс назначения источников текстур.
    Поэкспериментируйте! Обращайте внимание на статусы в колонках Assigned и Resolved. Не плодите копии ванильных текстур в проекте. Сохраненный мной ресурспак по сути является дополнением (add on) для ванилы, все его текстуры в понимании майнкрафта прозрачны за исключением морковки. Именно поэтому не рекомендуется сохранять копии стандартных текстур в ресурспак.
    Есть хороший способ подсмотреть правильность компоновки ресурспака. Создайте проект на основе проверенного пака и внимательно изучите структуру файлов.


    Меню View, Tools и Project.

    Меню View (вид).
    Это меню становится доступным при наличии загруженной файловой структуры, содержит набор стандартных фильтров и команды работы с деревом.
    Команды меню View:
    • Show textures - показывать текстуры
    • Show sounds - показывать звуки
    • Show text files - показывать текстовые файлы
    • Show language files - показывать языковые файлы
    • Show unicode font - показывать шрифты в кодировке UNICODE
    • Show shaders, models etc. - показывать шейдеры, модели и пр.
    • Show obsolete (useless) files - показывать ресурсы, которые больше не используются игрой
    • Collapse tree - закрыть все раскрытые узлы файловой структуры (дерева)
    • Expand tree - раскрыть все узлы файловой структуры (дерева)
    • Refresh tree display - обновить область отображения фаловой структуры

    Меню Tools (инструменты).
    Это меню содержит набор общих инструментов.
    Команды меню Tools:
    • Project summary - резюме проекта (обзор ресурсов проекта в отдельном окне)
    • Manage custom sounds - управление пользовательскими звуками (открывает окно Sound Wizard)
    • Open project folder - открыть папку проекта (открывает папку проекта в проводнике)
    • Delete unchanged vanilla copies - удалить неизмененные копии ванилы
    • Manage packs in MC - управление ресурспаками в стандартной папке Minecraft %appdata%\.minecraft\resourcepacks\. Из функций управления доступно только удаление
    Немного подробнее остановлюсь на удалении копий ванилы. Допустим, вы случайно загрузили в проект копию ванильного ресурса, эта команда найдет ее и удалит (!Полезно). Но есть один нюанс - если вы редактировали и сохраняли это изображение, то удаление не произойдет. Я специально проверил все логи и файлы конфигурации RPW и не нашел записей о том, что ресурс был взят из ванилы, текстура копируется в проект с текущей датой/временем. Таким образом, программа, очевидно, отслеживает размер файла и сопоставляет с размером ванильного. Вероятность совпадения размеров пользовательских и оригинальных файлов очень мала, но существует. Просто будьте внимательны. Наличие McMeta файла для RPW в этом случае не существенно.

    Меню Project (проект).
    Это меню содержит команды работы с проектом.
    Команды меню Project:
    • Create new project - создать новый проект
    • My projects - мои проекты (управление проектами)
    • Recent projects - последние проекты
    • Close project - закрыть проект
    • Save Project - сохранить проект
    • Save Project as... - сохранить проект под другим именем
    • Revert all changes - отменяет все изменения в проекте с момента последнего сохранения, даже изменения выполненные внешними программами
    • Export pack to... - экспортировать ресурспак в папку, указанную пользователем
    • Export pack to Minecraft - экспортировать ресурспак в стандартную папку майнкрафта %appdata%\.minecraft\resourcepacks\
    • Export stitched PNG to... - экспорт сшитых PNG файлов в папку, указанную пользователем
    • Import stitched PNG from... - импорт сшитых PNG файлов из папки, указанной пользователем
    • Project properties - открыть свойства проекта
    • Exit - выход из программы

    Простая анимация в minecraft или файлы "McMeta".


    Для того чтобы разобраться, как создать анимацию возьмем анимированный ресурспак. На это раз в роли подопытного будет выступать Faithful Revenge V1.15.4. Создаем новый проект на основе этого ресурспака. Открываем текстуру нашей морковки. Сразу бросается в глаза, что против stage 2 и stage 3 в колонке META стоят галки.
    Это означает, что эти стадии роста будут анимированы.
    В помощи сказано, чтобы сделать текстуру анимированной, необходимо поместить все кадры анимации в файл изображения. Открываем текстуру в редакторе.
    В изображение помещены 9 кадров текстуры. Если сильно увеличить это изображение, то будет видно изменение положения отдельных пикселей.
    (!) Примечание: если вы будете использовать такое изображение при создании своего ресурспака, то вам придется скопировать и данные из McMeta, либо оставить из раскадровки одно изображение. В противном случае вы увидите в игре текстуры, окрашенные в черно-пурпурные квадраты в шахматном порядке.
    Количество кадров не регламентировано и подбирается вами. Размер изображения раскадровки будет Шх(ШхN кадров), в нашем случае - это 64х(64х9) или 64х576 пикселей.

    Файлы метаданных "McMeta".

    Файлы метаданных используют формат JSON, имеют расширение *.mcmeta и являются текстовыми документами, таким образом, их можно изменять в любом текстовом редакторе (в RPW текстовый редактор встроен).

    Справка: JSON (англ. JavaScript Object Notation - текстовый формат обмена данными, основанный на JavaScript и обычно используемый именно с этим языком.

    В нашем "разборе полетов" мы имеем дело с несколькими кадрами - задаем их порядок, длительность, эффекты. Поэтому появляется такое понятие как индексирование. По простому - это присвоение индексов (номеров) нескольким однотипным объектам (строкам, числам, кадрам и пр.). Нужно знать правило - индексы в программировании присваиваются с 0 по n-ый, в нашем случае 9 кадров индексируются с нулевого по восьмой (порядок сверху-вниз).
    Любой скрипт имеет порядок описания инструкций для выполния их программой. Это порядок называется синтаксис. К синтаксису могут относиться различные служебные символы, например "", ', !, #, [, ], {, } и др., также важно соблюдать порядок написания команд, отступы и пр. Для самоконтроля лучше использовать шпаргалку в виде готового ресурспака.

    Описание синтаксиса "McMeta" из встроенной помощи.

    Секция Анимация (animation).
    Секция animation может быть использована только для блоков и объектов.
    Пример:
    ====================
    {
    "animation": {}
    }
    ====================
    Если оставить пустыми {}, будет использоваться выбор времени и порядок кадров по умолчанию. Однако, это можно использовать только для некоторых блоков, таких как часы или компас.
    Секция Анимация может содержать две части frametime и frames:
    "frametime"
    Число квантов времени на кадр (20 квантов = 1 с), если не указано, используется выбор времени по умолчанию.
    Пример:
    ====================
    {
    "animation": {
    "frametime": 2
    }
    }

    ====================
    "frames"
    Список номеров кадров для создания цикла, если не указано, используется установка кадров по умолчанию (если применимо)
    Пример:
    ====================
    {
    "animation": {
    "frames": [
    0, 1, 2, 3, 4, 5
    ]
    }
    }

    ====================
    Чтобы определить продолжительность отдельных кадров, нужно использовать следующую конструкцию:
    { "index" : 2, "time" : 40 }, где index - это номер кадра, time - время, очевидно в квантах времени (40 квантов = 2 с).
    Пример:
    ====================
    {
    "animation": {
    "frames": [
    0,
    1,
    { "index" : 2, "time" : 40 },
    3,
    4,
    5
    ]
    }
    }

    ====================
    (!) Примечание: еще одним правилом в программировании является равное количество открывающих и закрывающих скобок. Обращайте на это внимание!
    Надо сказать, что разработчик RPW подумал о нас с вами - в редакторе существует кнопка Check JSON, по нажатию на которую происходит проверка синтаксиса. Также, при установке позиции курсора на скобку подсвечивается соответствующая ее парная скобка (скриншот внизу). Работает автоотступ. Очень удобно. Респект товарищу!

    Для создания спецэффектов используется секция Текстура (texture).
    Секция Текстура (texture) работает только для некоторых текстур, таких как тыква и подводный экран перекрытия изображения. Невозможно использовать одновременно секции animation и texture.
    Пример:
    ====================
    {
    "texture": {}
    }
    ====================
    Для секции texture существуют две возможные логические (булевы) опции:
    Пример:
    ====================
    {
    "texture": {
    "blur": true,
    "clamp": false
    }
    }

    ====================
    true - истина, false - ложь, по смыслу то же, что - да/нет или разрешить/запретить.
    Blur (размытие) делает текстуру размытой, clamp (зажим) используется для предотвращения плиточного отображения текстуры, применяется в shadow texture (текстуре тени).
    Работу этой секции можете испытать сами.

    Рассмотрим пример метаданных на нашей любимой морковке.

    Открываем в редакторе carrots_stage_3.
    Сразу обращаем внимание на первую и последнюю строки - в первой позиции фигурными скобками определены начало и конец нашего макроса.
    В секции animations определены параметры frametime и frames через запятую. Для параметра frametime выставлено значение 2, т. е. длительность каждого кадра будет составлять 1/10 секунды, иными словами частота 10 кадров в секунду. Но для некоторых кадров сделаны исключения и описано это параметром frames. Параметр устанавливает очередность кадров по их индексам и длительность отдельных кадров. В данном случае смена кадров будет происходить в следующем порядке - 4, 3, 2, 1 (с измененным временем), 0 (с измененным временем), 1 (с измененным временем), 2, 3, 4, 5, 6, 7 (с измененным временем), 8 (с измененным временем), 7 (с измененным временем), 6, 5. На скриншоте также видно, что синтаксис допускает перенос части строки при описании продолжительности времени для отдельных кадров, например { "index" : 0, "time" : 4 }.

    Шаблоны для метаданных.

    Для удобства автор программы разместил несколько готовых шаблонов для секций animation и texture.
    Шаблоны открываются по нажатию на кнопку Tamplates в редакторе метаданных.
    На скриншоте видно, что для анимации предусмотрено несколько шаблонов раскадровок (от 8 до 64 кадров) с прямым порядком кадров (Linear), обратным порядком (Reverse), и зигзагом (сначала прямой, затем обратный порядок). Также есть шаблоны ванилы для особых типов блоков (часы, компас, огонь, лава, портал, вода).
    Шаблоны просты и удобны для использования в качестве основы будущих макросов. Также могут служить подсказкой.


    Еще небольшое напутствие - не увлекайтесь набиванием лишних пробелов, далеко не все программы реагируют на это адекватно, а визуально отследить лишние пробелы во встроенном редакторе довольно трудно. Особенно это касается любителей по два-три раза жмякнуть пробел в Word. Вырабатывайте в себе культуру программирования[hello].

    По вопросам Java скриптинга сюда.



    Sound Wizard и замена звуков.

    Однако, веселая это штука - Sound Wizard! Побаловался от души. Но, обо всем по порядку.

    В minecraft существует команда, способная проигрывать звуки, это команда /playsound. Работает она из консоли и с командными блоками. Формат команды и описание работы на скриншоте.
    Также существует файл sounds.json, который используется звуковой системой в ресурспаках и показывает звуковой системе, какой звуковой файл должен проигрываться при наступлении определенного события.
    Для запуска любого звукового файла из консоли необходимо знать его точное имя, которое понимает программа.
    Описание файла sounds.json и имена фалов на вики (имена в колонке sounds used). Для правильного запуска звукового файла необходимо заменить "слеш" на точку в командной строке. Номера указывать не следует.

    Пример: mob/cow/say1 запишется как mob.cow.say

    Для параметра <игрок> помимо ника можно использовать следующие маски:
    @p - выбор ближайшего игрока
    @r - выбор случайного игрока
    @a - выбор всех игроков.
    Необходимый минимум я вам рассказал, едем дальше.

    Заменить или отредактировать звуковой файл в RPW не составляет труда. В контекстном меню звука существуют две команды Open in editor и Import replacement.
    Первая открывает звуковой файл в редакторе, который вы предусмотрительно назначили, вторая предлагает выбор файла который нужно импортировать. Разумеется, пользовательские файлы должны быть заранее подготовлены и иметь формат *.ogg.
    У вас может возникнуть желание, например заставить волков мяукать. Легко! Для этого необходимо сохранить звук-донор (в нашем случае кошка). Открываем в дереве файлов звуки мобов>cat и копируем нужные звуки моба в проект (предварительно прослушав). Там же открываем папку Wolf и с помощью команды Import replacement заменяем звуки на кошачьи, которые сохранились по этому пути %appdata%\.mcRPW\projects\ИМЯ_ПРОЕКТА\project_files\assets\minecraft\sounds\mob\cat\. Других вариантов у вас не будет потому что с некоторых пор minecraft не хранит в явном виде звуковые файлы, они проиндексированы и хранятся в виде файлов хеш без расширений.
    Окно Sound Wizard вызывается из меню Tools>Manage custom sounds.
    В правой части окна расположены звуковые файлы в привычной вам, древовидной структуре. Там присутствуют все звуки ванилы, а также папка Custom sounds для звуков пользователя. В эту папку звуковые файлы необходимо добавить вручную, находится она по этому пути %appdata%\.mcRPW\projects\ИМЯ_ПРОЕКТА\custom_sounds\. Формат звуковых файлов *.ogg. Для конвертирования файлов в этот формат я использую программу Audacity, она же редактор.
    В левой части отображаются созданные пользователем треки. Для создания трека нажимаем кнопку New, при этом центральная часть окна становится активной. Из правой части перетаскиваем нужный файл в поле Selected files, задаем имя, категорию (не принципиально какую) и нажимаем Save. В левой части отобразится сохраненный вами трек. Звуковые треки могут содержать несколько звуковых файлов. Если необходимо проигрывать все звуковые файлы в треке, установите галочку Streamed, иначе звуки в треке будут выбираться случайным образом. На скриншоте видно, что я создал трек с именем My_music в который поместил песню. После выполнения всех необходимых операций закрываете окно кнопкой Close. Теперь можете сохранить проект и ваш ресурспак. Запускаем игру. Заходим в режим одиночной игры. Чтобы запустить свой трек я набираю в консоли команду /playsound My_music @a. Для тяжелого файла может понадобиться некоторое время на загрузку. На основном сервере запустить команду /playsound не получится, поскольку это запрещено.

    На этой оптимистичной ноте я завершаю обзор.



    С пожеланиями добра и света!

    Pashaoff

    Все хотят играть красиво! Часть I. Посвящена работоспособности клиента и настройке Java.
    Ссылка на обсуждение статьи в форуме.

    Для просмотра оффлайн
    Скачать PNG-версию статьи.
    Скачать CHM-версию статьи.
  • Загрузка...