Вышел первый релиз GameMaker: Studio 1.4. Основные изменения относительно версии 1.3.1386:
Изменения в IDE
Фильтрация в дереве ресурсов позволяет искать ресурсы и также отображать только совпадающие результаты.
Вкладки в скриптах позволяют разбить большие скрипты во вкладки и вызывать каждую вкладку подобно обычному скрипту, но при этом скрипт будет отображаться как один элемент в дереве ресурсов.
Теперь можно добавлять закладки в строки кода скриптов и в действия. Ctrl+Shift+[число] для установки закладки и Ctrl+[число] для перехода к закладке.
Создание расширений теперь в стиле “мастера”. Создайте расширение, выберите необходимые платформы, нажмите правую кнопку мыши и выберите “Add Placeholder”.
Шрифты теперь могут быть установлены как подключаемые файлы в проекте при экспорте и т.п.
Объекты теперь отображают список всех детей в своей форме. Теперь можно делать быстрое переключение между детьми и родителями.
Если в редакторе комнат, в списке порядка создания экземпляров объектов, выбрать какой-либо экземпляр, камера будет перемещена на позицию этого объекта.
GameMaker: Marketplace (магазин)
Теперь у вас есть бета доступ к магазину. Вы увидите новый пункт меню.
Любой пользователь может просматривать и покупать ресурсы.
Для регистрации издательского аккаунта и продажи собственных ресурсов, вам нужна лицензия Pro или выше (также подойдёт платная версия Standard).
Процесс создания расширений был немного изменён в сторону стиля «мастера».
Если вы выбираете iOS/Android, заполнители и структура папок будут созданы автоматически.
Далее код выбирается через файловый диалог и копируется в правильную папку проекта.
Если расширение не указано корректным для выбранной платформы, при компиляции будут автоматически сгенерированы «заглушки».
Изменено редактирование значений функций Init и Final на выпадающие списки, наследующие от заданных функций.
Внимание!
Из-за магазина, расширения сейчас содержат гораздо больше защиты, чем ранее – в частности, для разработчика расширения и тех, кому разрешено использовать
Если вы не автор расширения и вы его не покупали, то вы не сможете создать исполняемый файл из этого проекта!
Редактор изображений
Теперь можно создавать пользовательские палитры. Чтобы задать пользовательский цвет, нужно нажать MMB на палитре. Палитры можно сохранять и загружать.
Сделан режим onion-skinning (калькирование) для отображения предыдущих/последующих кадров одновременно с текущим, что очень удобно для анимаций.
Можно изменять масштаб предпросмотра двойным кликом на нём.
Правая кнопка мыши может быть настроена в качестве ластика, вместо фонового цвета. RMB на ластике.
Нажатие J переключает на запасную страницу для редактирования изображения (для обратного переключения нужно повторно нажать J).
Можно перемещать вид при нажатых MMB или пробеле.
Обновление SVN инструментария
Теперь поддерживается рабочая среда и 1.7, и 1.8. Переключение используемых инструментов можно выполнить в File > Preferences.
Также можно задать свои собственные SVN инструменты.
Внимание: Если вы используете версию 1.6, либо более старую, то у вам будет предложено обновиться.
Интеграция SVN теперь происходит только в случае, если в глобальных настройках проекта указано использование SVN.
Физика Liquidfun
Помимо обновлённого Box2D, вы теперь можете использовать физику частиц и несколько новых форм.
Внимание: Пожалуйста, тщательно проверьте физику в игре после обновления!
Разное
Теперь можно отменить локальное уведомление. Также можно получить список ожидающих уведомлений и перескакивать их.
Добавлено сглаживание для SWF файлов. draw_enable_swf_aa… (требуется лицензия Pro).
Множество обновлений и исправлений для импорта Spine, добавлены новые функции skeleton_animation_list(), skeleton_skin_list(), skeleton_slot_data().
Буферы для поверхностей.
date_get_timezone()/date_set_timezone() переключает время между локальным и UTC для всех остальных функций даты и времени.
Обновления и исправления в новом отладчике.
audio_play_music() является устаревшей, используйте audio_play_sound() вместо неё.
Большое количество исправлений в звуковой системе HTML5, в частности – при использовании эмиттеров.
Добавлена проверка, гарантирующая генерацию маски спрайта размером каждого отдельного изображения, а не одного фиксированного размера.
Игры iOS 8 Beta больше не используют каталог Documents для сохранения, теперь используется область Application Support.
Примечание: Поддержка iOS 8 Beta в данный момент сделана только в runner. Xcode Beta не тестировалось.
Фоны, добавленные через drag’n’drop, теперь будут содержать только имя файла, без указания оригинального местоположения.
Если в Android вы укажете только одну ориентацию landscape, либо landscape-flipped, теперь она снова будет работать корректно.
buffer – буфер для использования; surface – поверхность для взятия; mode – режим пока что всегда равен 0; offset – смещение при добавление в буфер; modulo – дельта, которая будет добавляться в конец каждой строки к смещению.
Пока что нет никакой дополнительной документации.
Разное
Подходит для использования с Ad Provider Demos v2 (аналогично v1354).
Большое количество оптимизаций при загрузке в IDE звуков, спрайтов и т.д, для уменьшения использования памяти.
Большое количество оптимизаций компилятора для ускорения создания сборки.
Были удалены пробелы из названий всех примеров и уроков. И многие из них были также обновлены. Пожалуйста, удалите и скачайте их заново.
Был добавлен новый пример изометрической игры.
Xcode и ваше хранилище ключей теперь изящно освобождаются после сборки iOS / iOS YYC.
Версия 1.99.170
Изменения (относительно EA161)
IDE
ВНИМАНИЕ! Если вы загрузили в магазин пакет с пользовательскими шрифтами используя EA161, обновите его с помощью этой версии!
Шрифты: опция “Include in asset package” (Включить в пакет ресурсов) теперь требует от вас предоставление исходного файла шрифта.
В настоящий момент разработчики, которые хотят использовать импортированные шрифты, должны установить их вручную в папку проекта [имя расширения]fonts
Клик правой кнопкой на расширении и выбор “Create Asset Package” (создать пакет ресурсов) теперь корректно добавляет его в менеджер пакетов.
Шейдеры, загруженные из маркета, теперь будут корректно прочитаны при импорте.
Теперь возможно создание пакета расширения, содержащего только код.
Steam IDE
К сожалению, это в настоящее время невозможно использовать Marketplace пользователям с лицензией Steam.
Таким образом, он не будет появляться в IDE для Steam установок, пока эта проблема не будет решена.
Если да, то вы поймёте, зачем я сделал эту небольшую программу.
После запуска программа висит в трее и позволяет через горячие клавиши уменьшить чувствительность мыши примерно в три раза.
Горячие клавиши:
Alt + N – замедление происходит только во время нажатия и при отпускании скорость восстанавливается.
Alt + M – однократное нажатие включает/отключает замедление.
При закрытии окна свойств объекта также будут закрыты любые окна с кодом этого объекта (чтобы исключить возможность дублирования окон).
Окно компилятора теперь должно быть более отзывчивым при отображении большого количества отладочного текста или информации о построении.
Исправлено частое запрашивание лицензии, происходившее в некоторых случаях.
Окно лицензирования теперь определяет не свои ключи и не даёт использовать их (с пояснением, почему).
Исправление изображения для Windows 8 таргета в случае, если этот модуль отсутствует.
Переработанные примеры использования рекламы (версия 2)
Вы могли заметить, что мы выпустили обновлённые примеры категории Ad Providers – они теперь содержат «v2» в описании.
Для обновления уже установленной версии, вам нужно сначала удалить старую версию из %appdata%GameMaker-Studiodemo и после скачать новую версию.
Вы увидите обновлённые описания функций, гораздо больше функционала и некоторое расширенное описание в readme и комментариях.
Так же, как и прежде – протестируйте, используя пример, затем экспортируйте его в .gmez и после импортируйте в свой проект.
Более подробная информация и некоторые подробности о реализации здесь.
Изменения в документации
В связи с тем, что версия Standard стала бесплатной, внесены правки в документацию.
Обратите внимание на то, что справка предполагает, что все лицензии Standard – нового бесплатного типа. Если у вас уже есть Mac и Windows 8, то они сохранятся.
Многочисленные исправления по описаниям функций.
Несколько небольших исправлений примеров и уроков.
Когда первый раз попробовал подключить внешние библиотеки в VisualD, возникали ошибки при компиляции (при этом в Mono-D всё работало хорошо). На случай, если у кого-то возникнут те же самые проблемы, делаю эту пошаговую инструкцию (на примере библиотеки DSFML).
Создаём проект с помощью dub init dsfml_test (здесь dsfml_test – это имя нашего проекта)
Путём редактирования файла dub.json, добавляем в него необходимые зависимости
Генерируем проект для Visual Studio с помощью dub generate vstudio
Открываем получившийся проект в Visual Studio
Открываем свойства проекта
Указываем путь к директории, в которой находятся нужные lib-файлы
Собственно, это всё, что нужно сделать. Далее можно подключать необходимые модули и собирать проект. В моём случае это
application_surface_enable() может отключить новую систему рисования 1.3. Полезно для устройств, которые плохо работали с сурфейсами. При этом также отключится aspect ratio и все исправления GUI из 1.3.
Помните, что вы можете включать и выключать её многократно, если захотите. Включение вернёт обратно aspect ratio и т.д.
с помощью application_surface_is_enabled() можно узнать, какая система – старая или новая – используется в текущий момент.
Изменения в IDE
Теперь нет долгой загрузки аудио при запуске IDE, что экономит много времени и памяти в случае проектов, нагруженных аудио.
Исправлена серия проблем с импортом проектов GM8.1
В неё вошли почти все изменения из EA 1.99.97, поэтому весь список повторять не буду.
Отличия с EA:
Нет табов и закладок в редакторе скриптов.
Не используется новый физический движок LiquidFun.
Добавлено по сравнению с EA97:
Теперь запоминается последний выбранный пользователем каталог при сохранении ресурсов.
В настройках добавлены кнопки очистки кэша и временных файлов. Также можно задать автоматическую очистку с помощью галочки.
Внимание: в глобальных настройках игры обновлены иконки Андроид в соответствии с требуемыми. Вам необходимо заново добавить иконки в проект, иначе они окажутся либо испорченными, либо заменятся дефолтными изображениями.
Примеры и уроки
Добавлено несколько уроков по application surface, а также множество других примеров было обновлено.
Все примеры и уроки были переименованы, чтобы в именах не осталось пробелов. Это означает, что вам нужно будет либо переименовать свои файлы, либо скачать их заново.
Имейте в виду, что некоторые старые примеры и уроки были обновлены и переименованы, либо просто убраны, так как их заменили другие.
И, конечно же, как обычно – исправлено множество ошибок.
Author: Mark Alexander
Перевод: Dmi7ry
Оригинал здесь
Version: GameMaker: Studio 1.3+
Создание натуралистичных спрайтов с помощью скелетной анимации – очень мощный инструмент.Идея заключается в том, что вы создаёте базовый “скелет”, а затем двигаете “кости”, чтобы создавать позы.Затем эти позы могут быть превращены в ключевые кадры анимации, где позиции костей интерполируется между каждым кадром анимации, что создаёт гладкую и очень естественно выглядящую анимацию.На эту анимацию можно натянуть любую “шкурку” (то есть текстуру) и отображать на экране, как любой спрайт.
GameMaker: Studio теперь поддерживает этот тип анимации спрайтов – можно импортировать файлы, созданные с помощью программы Spine, которая является фантастическим инструментом для создания скелетной анимации (вы можете узнать больше о Spine здесь ).Обратите внимание, что Spine – это очень мощная программа с огромными возможностями и для того, чтобы объяснить, как это всё работает, одной короткой статьи совершенно не достаточно!Однако, мы дадим краткий обзор некоторых ключевых моментов, которые связаны с реализацией скелетной анимации в Gamemaker: Studio.
Spine позволяет создать «скелет», а затем менять его позу для создания анимации.Скелет состоит из “костей”, которые могут быть соединены и перемещены относительно друг друга в установленный период времени, а на окончательную анимацию может быть натянута “шкурка” (то есть текстура) для финальной анимации.Для добавления в ваш проект GameMaker: Studio, эта анимация может быть экспортирована или в виде стрипа растрового спрайта, или в виде Spine JSON файла.
Если вы просто экспортируете растровый спрайт, то можете прекратить чтение здесь, так как в действительности больше сказать особо нечего, так как методы создания и использования “нормальных” спрайтов хорошо известны. Но если вы экспортируете анимацию с помощью формата Spine JSON, это позволит вам сделать гораздо больше вещей с Spine анимацией по сравнению с простым стрипом спрайта.
Например, вы можете иметь один спрайт и создать несколько анимаций для него (например, набор анимаций из ходьбы, бега и прыжков). Можно создать несколько скинов для вашей анимации, так что один скелет может быть использован для разных персонажей (с теми же движениями, конечно), и вы также можете присоединять к своим спрайтам “вложения”, чтобы в дальнейшем менять их внешний вид.Также все эти вещи доступны для использования в GameMaker: Studio при импорте JSON спрайтов.
Прежде чем изучать GameMaker: Studio с этой стороны, пройдёмся по некоторым ключевым принципам, используемых в Spine.Первый из них – это то, что вам нужно дать название вашим костям и некоторым другим вещам. Эти имена будут использоваться для управления анимациями при работе с ними в GameMaker: Studio, поэтому старайтесь делать их запоминающимися и последовательным.
Также вам нужно обратить внимание на то, где находится центр вашей анимации (то есть её основа, корень, root). Центр анимации – это точка, относительно которой Spine анимация будет закреплена в мировом пространстве. При импорте вашего спрайта в GameMaker: Studio, она будет переведена как координаты центра спрайта (orign), которые нельзя редактировать в этом типе спрайта.Большинство ваших расчетов для движущихся частей скелета также будут зависеть от этой точки.
При создании анимации, вы устанавливаете позу, а затем создаёте ключевой кадр из неё.После этого вы перемещаетесь по таймлайну для анимации и создаёте ещё один ключевой кадр.После выполнения этого, Spine будет интерполировать данные кости между ключевыми кадрами, чтобы получить плавную анимацию, которую затем можно назвать и сохранить.Вы можете создать несколько наборов анимаций для одного спрайта, и дать каждой из них отдельное название. Затем это название может быть использовано в GameMaker: Studio для установки позы скелетной анимации вашего импортированного спрайта.
Также к вашим Spine спрайтам можно прикрепить “слоты” – это точки, где вы можете отображать отдельное изображение, который не имеет костей.Оно будет перемещаться вместе с родительской костью, что позволит вам добавить вашим анимациям несколько под-изображений, для крепления в пределах одного спрайта.Эти прикрепляемые слоты также должны быть названы в соответствии с изображениями, которые они содержат, так как эти имена будут использоваться в GameMaker: Studio для изменения изображения слота во время игры.
Импорт спрайта Spine
При экспорте спрайта со скелетной анимацией из Spine как JSON, вы на самом деле создадите три отдельных файла. Основной JSON, который содержит все данные костей и анимации, файл атласа, который содержит данные о том, как упакованы текстуры и файл PNG, который содержит непосредственно текстурный атлас. GameMaker: Studio требуются все три файла для создания вашего Spine спрайта, поэтому при импорте они все должны быть в той же папке.
Добавление таких спрайтов в GameMaker: Studio практически идентично добавлению обычных растровых изображений: нужно создать новый спрайт, и вызвать обычный диалог загрузки спрайта. Перед тем, как выбрать место, в которое вы сохранили ваши spine-спрайты, нужно убедиться, что тип файла в нижней части выбран *.json и далее просто выбрать спрайт, который вы хотите импортировать.
После импортирования анимации, вы можете установить свойства столкновения, но учтите, что здесь вы ограничены использованием либо просто точных столкновений, либо ограничивающим прямоугольником, и что данные по столкновениям для скелетной анимации явно берутся из предоставленных данных.GameMaker: Studio не сможет сгенерировать маску столкновений, если в импортируемом файле отсутствуют данные. То есть, если в Spine маски настроены не правильно, то столкновения просто не будут работать.Помимо этого, в отличие от растровых спрайтов, импортируемый спрайт со скелетной анимацией не может быть изменен в редакторе. Это означает, что любые изменения, которые нужно внести, должны быть сделаны в Spine, а затем нужно повторно импортировать спрайты в вашу игру.
ПРИМЕЧАНИЕ: В связи со сложностью скелетных анимаций, полученное изображение, показанное в редакторе спрайта, не предназначено для точного представления анимации, а всего лишь даёт вам простой образ, представляющий анимацию, для визуализации в редакторе комнаты.
Использование спрайтов Spine в GameMaker
После загрузки спрайта в GameMaker: Studio, вы можете использовать его так же, как и любой другой спрайт.Вы можете назначить его объекту, или установить его для экземпляра в коде, и они также будут реагировать на большинство переменных экземпляра спрайта: во время игры их можно масштабировать, вращать, смешивать с цветом и задавать прозрачность.Также их можно рисовать с помощью расширенных функций draw_sprite (за исключением draw_sprite_pos и draw_sprite_part), как и любой другой спрайт.
И всё же основной смысл в использовании Spine – это создание спрайта со скелетной анимацией с несколькими позами и скинами, что достаточно сильно отличается от обычного растрового спрайта.Для этого GameMaker: Studio имеет множество новых функций skeleton_*, а также новое событие “Animation Update” (обновление анимации) событие для поддержки такого типа спрайтов.Далее в этой статье будут рассмотрены эти функции и описано, что они делают, но вы можете найти более полное объяснение каждой из них в документации.
Этими функциями можно получить имя (в виде строки) установленной в данный момент анимации или установить спрайт, используя имя анимации.Например, если у вас есть анимации “бег” и “ходьба”, то вы бы могли переключаться между ними с помощью этих функций, когда игрок нажимает клавишу (или что-нибудь ещё).
Это похоже на предыдущие функции, но немного сложнее.Spine позволяет вам задать костную анимацию для части скелета, а затем создать отдельные наборы анимации для этих частей и проигрывать их вместе.Каждая анимация присвоена треку, и при этом track0 всегда является основой, анимацией по умолчанию.Таким образом, вы можете иметь, например, фигуру с присвоенной ей анимацией “ходьба” и эта анимация влияет только на ноги.Далее вы можете иметь различные другие анимации (где перемещаются, например, только руки, или голова, или верхняя часть туловища и т.д.) и назначить одну из них на трек 1, используя эти функции.И GameMaker: Studio будет играть обе эти анимации вместе.
skeleton_animation_mix
Эта маленькая функция, возможно, одна из наиболее важных, когда дело касается окончательного внешнего вида вашего импортированного спрайта.Вы можете изменить анимацию в любое время с помощью упомянутой выше функции skeleton_animation_set(), но при этом image_index будет сброшен в 0, что может сделать “скачок” при переходе, так как одна поза меняется на другую. Для растровых спрайтов это вполне ожидаемо и может быть даже желательным, но со скелетной анимацией спрайтов это выглядит странно и багнуто.Однако это можно исправить это с помощью функции skeleton_animation_mix(), которая будет интерполировать данные наборов анимаций, чтобы они плавно перетекали друг в друга естественным образом.Например, вы можете установить смешивание вашей анимации “бег” в анимацию “прыжок”, затем установить следующее смешивание – теперь анимацию “прыжок” в анимацию “бег” – и теперь ваш спрайт будет плавно анимироваться между двумя этими наборами естественным образом.
Скины
skeleton_skin_get()skeleton_skin_set(skinname)
Отдельная скелетная анимация может иметь одну или несколько шкурок, и они могут переключаться с помощью вышеуказанных функций.Это означает, что вы можете иметь несколько различных персонажей в вашей игре, использующих один и тот же базовый спрайт анимации.Важно отметить, что Gamemaker: Studio поддерживает только один текстурный атлас на спрайт, и поэтому, когда вы создали свой Spine спрайт, вы должны учитывать целевую платформу, чтобы использовать подходящий размер текстуры.Например, если вы ориентируетесь на мобильные устройства, вы можете установить размер текстурного атласа Spine как 1024×1024.
Как упоминалось ранее, вы можете “прикрепить” (зафиксировать) изображения к скелетной анимации спрайта, и они будут вести себя так, как будто являются частью структуры костей в этой анимации.Для этого используются данные функции – просто задав имя слота и имя вложения для него (в соответствии с тем, как это задано в Spine).Также у вас есть возможность использовать один из спрайтов, используемый в вашей игре – либо как часть основных ресурсов, либо как подключаемый файл, что даёт этим спрайтам еще более гибкие возможности для игр.
Отображение
skeleton_collision_draw_set(flag)draw_skeleton_collision(sprite, animname, image_index, x, y, xscale, yscale, rot, colour)draw_skeleton(sprite, animname, skinname, image_index, x, y, xscale, yscale, rot, colour, alpha)
Обычно для рисования спрайта со скелетной анимацией используется функция draw_sprite, но бывают случаи, когда вы можете захотеть рисовать какие-то дополнительные вещи, либо только один кадр анимации (например, для экрана паузы, специального эффекта и т.д).Почему были добавлены эти функции. Первая из них просто задаёт, нужно ли отображать данные столкновения или нет.Если флаг установлен в true, то вы увидите ограничивающий прямоугольник и точную маску, нарисованную на спрайт, на экране (эти данные задаются при создании спрайта в Spine). Вторая функция при этом позволяет вам рисовать данные столкновения для отдельного кадра любой анимации.
Заключение
Исходя из написанного выше, вы можете понять, что скелетная анимация – это невероятно мощный инструмент.Это позволяет получить естественные анимации с минимальными усилиями, и (спасибо функции смешивания) эти анимации плавно перетекают друг в друга, чтобы пользователи получали только положительный опыт в ваших играх.Функции скинов и фиксации, доступные в GameMaker: Studio также означают, что вы можете упростить создание нескольких спрайтов из одного источника, и также позволяют игроку настроить их прямо во время выполнения игры.Очевидно, что это система не применима ко всем играм, но если вы проверите веб-сайт Spine и демо, вы увидите, что это на удивление универсально и определённо стоит времени и усилий, необходимые на создание спрайта и его импорта в GameMaker: Studio.