#✅ | transitions between screens

1 messages · Page 1 of 1 (latest)

bitter thunder
#

I was wandering if there is a way to make a smooth transition between screens with fancy menu

flat bayBOT
#

Hi! 👋 Please first click the button below to start this support ticket.

⚠️ It is not possible for anybody to send messages in this ticket before it has been started, so you need to click the button for others to be able to help/answer you.

flat bayBOT
# bitter thunder I was wandering if there is a way to make a smooth transition between screens wi...

Do you prefer to talk in Russian 🇷🇺? 🙂

About your question: FancyMenu does not document a built-in smooth transition effect between normal screens.

What FancyMenu does support, from the docs:

  • Popup Mode for Custom GUIs, they can open like a popup over the previous screen.
  • Element fading and the Element Animator, useful for animating parts of a layout.
  • Screen Opened / Screen Closed listeners, you can trigger actions when a screen changes.

So the closest workaround is usually:

  1. animate a full-screen overlay or element out,
  2. then open the next screen,
  3. or use Popup Mode if you're switching to a Custom GUI.

If you want, I can help you design a simple “fade out → open next screen” setup using FancyMenu actions and elements 🙂

bitter thunder
#

I wanted to make an animated 8 bit transition between screens, like in old rpg games

flat bayBOT
# bitter thunder I wanted to make an animated 8 bit transition between screens, like in old rpg g...

Yes, but not as a built-in “screen transition” feature in FancyMenu.
You’d usually fake it with a full-screen transition screen/overlay 🙂

Best approach:

  1. Create a Custom GUI or a universal layout that covers the whole screen.
  2. Put an animated pixel-art image on it:
    • AFMA/FMA is best for bigger/cleaner animations
    • APNG also works if it’s uncompressed and not interlaced
  3. Use an Action Script:
    • show/open the transition screen
    • wait a short time with a Delay Block or Execute Later Block
    • then open the next screen with opengui

If you want it to feel like an old RPG transition, this is the usual way to do it:

  • black screen / wipe / pixel-scan animation
  • then switch to the next menu

If you want, I can help you build a simple example setup for:

  • a “fade to black” transition
  • a retro 8-bit pixel wipe
  • a full-screen animated Custom GUI transition 👀
bitter thunder
#

i would prefer to continue on russian.

Да, я хочу чтобы переход между экранами как раз-таки был retro 8-bit pixel wipe. Но я без понятия как это делать, могу ли я попросить подробно расписать инструкции для того чтобы добиться такого результата

flat bayBOT
# bitter thunder i would prefer to continue on russian. Да, я хочу чтобы переход между экранами ...

Да, конечно, можно сделать такой retro 8-bit pixel wipe переход 🙂
Но важный момент: в FancyMenu это делается не как “настоящий встроенный переход между экранами”, а через промежуточный переходный экран.

Ниже, рабочая схема, которую реально собрать.

Что мы будем делать

  1. Создаём анимированный пиксельный файл для вайпа
  2. Делаем Custom GUI под переход
  3. Вешаем на кнопку скрипт:
    • сохранить, куда надо перейти
    • открыть transition GUI
    • подождать чуть-чуть
    • открыть следующий экран

Шаг 1: Сделай сам анимированный вайп

Проще всего использовать APNG.

Вариант попроще: APNG

По документации FancyMenu:

  • APNG должен быть uncompressed
  • не interlaced
  • файл должен заканчиваться на .apng

Как собрать

  1. Сделай кадры своего pixel wipe в любом pixel art / frame editor.
  2. Открой ScreenToGif.
  3. Зайди в Editor.
  4. Закинь туда кадры.
  5. В Save As выбери:
    • формат: APNG
    • отключи Detect Unchanged Pixels
  6. Сохрани файл как, например:
    • retro_wipe.apng

Куда положить

Положи файл сюда:
/config/fancymenu/assets/

Шаг 2: Создай переходный Custom GUI

  1. Открой FancyMenu

  2. Перейди в:
    Customization -> Custom GUIs -> Manage Custom GUIs

  3. Нажми New GUI

  4. Дай ему ID, например:
    retro_wipe_transition

  5. Открой этот GUI

  6. Создай для него обычный layout

  7. В layout editor поставь анимацию как:

    • Menu Background -> Image
    • выбери твой retro_wipe.apng

Если хочешь, чтобы переход выглядел как наложение поверх текущего экрана, можешь попробовать Popup Mode для этого Custom GUI.

Шаг 3: Сделай кнопку, которая запускает переход

На кнопке, которая ведёт на другой экран:

  1. Right-click button
  2. Edit Action Script

Добавь действия в таком порядке:

1) Сохраняем, куда надо перейти

Set Variable Value

  • Value:
    transition_target:ИД_ЦЕЛЕВОГО_ЭКРАНА

Пример:

  • transition_target:title_screen
#

Если это другой экран, используй его настоящий screen identifier.

2) Открываем экран с вайпом

Open Screen or Custom GUI

  • Value:
    retro_wipe_transition

3) Делаем паузу

Delay Block

  • например 300600 ms

Лучше подогнать под длину твоей анимации.

4) После задержки открываем следующий экран

Open Screen or Custom GUI

  • Value:
{"placeholder":"getvariable","values":{"name":"transition_target"}}

Шаг 4: Как узнать ID нужного экрана

Если это не Custom GUI, а обычный экран Minecraft или модовый экран:

  1. Открой этот экран
  2. Нажми CTRL + ALT + D
  3. Кликни по identifier в debug overlay, чтобы скопировать его

Важные замечания

  • Это работает не как “настоящий переход”, а как сценка между экранами
  • opengui не открывает каждый модовый экран, некоторые экраны FancyMenu просто не умеет открыть автоматически
  • Если переход должен быть красивым, делай сам вайп коротким:
    • обычно 8–20 кадров хватает
    • не делай слишком длинную анимацию, иначе будет ощущение тормоза

Самая простая рабочая логика

Если очень коротко, то схема такая:

  • кнопка → сохраняет target screen id
  • кнопка → открывает retro_wipe_transition
  • задержка 0.3–0.6 сек
  • открывается целевой экран
    Если хочешь, я могу следующим сообщением написать тебе уже готовый пример action script по строкам, прямо в том виде, как его надо собрать в FancyMenu, без лишней воды 👀
bitter thunder
#

давай

flat bayBOT
# bitter thunder давай

Да, давай соберём рабочий вариант 🫡

Ниже будет схема для кнопки, которая:

  1. запускает retro 8-bit pixel wipe,
  2. ждёт конец анимации,
  3. открывает нужный экран.

1) Подготовь анимацию вайпа

Сделай файл, например:

/config/fancymenu/assets/retro_wipe.apng

Важно:

  • APNG
  • uncompressed
  • not interlaced

Для короткого пиксельного вайпа APNG обычно хватает. Если потом будет лагать, лучше перевести в AFMA.

2) Создай переходный Custom GUI

Открой:

Customization -> Custom GUIs -> Manage Custom GUIs -> New GUI

Назови, например:

retro_wipe_transition

Потом открой этот GUI и сделай в нём простой layout:

  • чёрный фон на весь экран
  • поверх него, твой retro_wipe.apng

Если хочешь, чтобы старый экран был виден под анимацией, включи у этого Custom GUI Popup Mode.

3) Сделай кнопку-переход

На кнопке, которая должна вести на другой экран:

  1. Right-click button
  2. Edit Action Script
  3. Собери скрипт вот так:
Set Variable Value
  transition_target:options_screen

Open Screen or Custom GUI
  retro_wipe_transition

Delay Block (например 450 ms)
  Open Screen or Custom GUI
    {"placeholder":"getvariable","values":{"name":"transition_target"}}

4) Что тут важно

  • transition_target, это временная переменная, куда ты кладёшь ID целевого экрана.
  • Внутри Delay Block должна быть именно команда открытия следующего экрана.
  • Если убрать её из Delay Block, экран откроется сразу, и вайпа не будет.

5) Что подставлять вместо options_screen

Туда нужно писать реальный identifier экрана.

Например:

  • для кастомного GUI, его ID
  • для ванильного/модового экрана, его screen identifier

Если не знаешь ID:

  • открой экран
  • нажми CTRL + ALT + D
  • скопируй identifier из debug overlay

6) Как подобрать время

В Delay Block поставь длительность, которая примерно совпадает с длиной анимации.

#

Обычно:

  • 300–600 ms, нормальный диапазон
  • если вайп длиннее, ставь больше

7) Самая простая готовая логика

Если совсем коротко:

  • кнопка нажата
  • запустился retro_wipe_transition
  • через 0.45 сек открылся следующий экран
    Если хочешь, я могу следующим сообщением дать тебе ещё и:
  1. вариант для возврата назад,
  2. вариант для перехода между двумя custom GUI,
  3. или точную схему layout-а для самого pixel wipe экрана.
bitter thunder
#

я правильно понял, что анимация проигрывается когда я просто нажимаю пкм?

flat bayBOT
# bitter thunder я правильно понял, что анимация проигрывается когда я просто нажимаю пкм?

Нет, не так 🙂

ПКМ в редакторе, это просто чтобы открыть меню настроек кнопки.

Анимация перехода должна запускаться так:

  • ты нажимает левой кнопкой по кнопке в игре/меню
  • FancyMenu выполняет action script
  • открывается твой retro_wipe_transition
  • и уже внутри этого GUI проигрывается APNG/AFMA

То есть логика такая:
клик по кнопке → открыть transition GUI → анимация видна

Если хочешь, я могу прямо сейчас показать тебе:

  • как выглядит правильный action script для этой кнопки,
  • и как сделать, чтобы переход работал именно при ЛКМ, без лишних настроек 👀
bitter thunder
#

а анимация успееть перекрыть сначала одно окно, перед тем как появится другое, переход сам по себе же происходит моментально в самой игре

flat bayBOT
# bitter thunder а анимация успееть перекрыть сначала одно окно, перед тем как появится другое, п...

Да, если сделать переход правильно, то он успеет перекрыть старый экран до появления нового 🙂

Ключевая идея такая:

  1. Ты сначала открываешь transition GUI
  2. В нём сразу лежит полноэкранный фон, лучше чёрный
  3. Поверх него проигрывается твой pixel wipe
  4. Только после задержки открывается следующий экран

То есть новый экран открывается не сразу, а только когда переход уже почти или полностью закрыл старый экран.

Важно

Если ты просто сразу откроешь следующий экран, тогда:

  • старый экран закроется моментально
  • перехода не будет

Поэтому нужен именно промежуточный экран с задержкой.

Как сделать, чтобы выглядело правильно

Лучший вариант:

  • в retro_wipe_transition сделать чёрный fullscreen background
  • поверх него поставить твой анимированный retro_wipe.apng
  • а в анимации сделать так, чтобы она:
    • либо сразу начиналась с полного перекрытия,
    • либо очень быстро закрывала экран в первые кадры

Самая рабочая схема

  • кнопка нажата
  • открывается retro_wipe_transition
  • анимация начинается
  • через 400–600 ms открывается следующий экран

Если хочешь прям “старый RPG вайп”

Тогда анимация должна выглядеть примерно так:

  • сначала почти весь экран уже закрыт
  • потом остаётся маленькое окно/шахматка/пиксели
  • потом новый экран появляется

Если анимация начинается с маленькой точки и долго расширяется, старый экран будет слишком долго виден, и это может выглядеть не так, как ты хочешь 🤓

Если хочешь, я могу следующим сообщением помочь тебе сделать именно:
“чёрный экран → pixel wipe → новый экран”
и расписать прям по элементам, что куда ставить в layout editor.

bitter thunder
#

а как открыть редактор custom gui, чтобы добавить apng

flat bayBOT
# bitter thunder а как открыть редактор custom gui, чтобы добавить apng

Да 🙂 Вот как открыть редактор Custom GUI и добавить туда APNG:

  1. Открой обычное меню Minecraft.
  2. В верхней панели FancyMenu нажми:
    Customization -> Custom GUIs -> Manage Custom GUIs
  3. Если GUI ещё не создан:
    • нажми New GUI
    • задай ему уникальный identifier
  4. Выбери свой GUI в списке и нажми Open GUI
  5. В открывшемся GUI создай/открой для него layout, если он ещё не создан.
  6. В layout editor:
    • для fullscreen-вайпа лучше всего: ПКМ по фону → Menu BackgroundsImage → выбери свой apng
    • если хочешь не фон, а обычный элемент: ПКМ по фону → New ElementImage → выбери apng

Для перехода лучше именно Menu Backgrounds -> Image, потому что это будет на весь экран.

Важно:

  • файл должен лежать в /config/fancymenu/assets/
  • имя должно оканчиваться на .apng
  • APNG должен быть uncompressed и not interlaced 🙂

Если хочешь, я могу следующим сообщением расписать прям совсем пошагово:
“какой фон поставить, какой элемент добавить и как сделать fullscreen transition GUI” 👀

bitter thunder
#

всё, а нормально то что анимация зациклена? Это же никак не помешает?
И как вставить этот скрипт?

flat bayBOT
# bitter thunder всё, а нормально то что анимация зациклена? Это же никак не помешает? И как вста...

Да, зацикленная анимация сама по себе не сломает переход 🙂
Но для такого эффекта это не лучший вариант.

Что лучше делать

Для one-shot transition лучше:

  • выключить loop у APNG
  • чтобы вайп проигрался один раз
  • и потом открылся следующий экран

Если оставить зацикливание, то:

  • переход всё равно может работать
  • но если следующий экран откроется не сразу, анимация может начать повторяться и будет выглядеть странно

Так что мой совет: сделай анимацию без цикла. Это самый безопасный вариант.

Как вставить action script в кнопку

1) Открой кнопку

  • Right-click по кнопке
  • выбери Edit Action Script / Manage Action Script

2) Добавь первый action

Внутри редактора:

  • right-click по тёмно-серой области
  • выбери Add Action
  • добавь Set Variable Value

В значение вставь:

transition_target:ИД_ЦЕЛЕВОГО_ЭКРАНА

Например:

transition_target:title_screen

3) Добавь открытие transition GUI

Снова:

  • right-click по тёмно-серой области
  • Add Action
  • добавь Open Screen or Custom GUI

В value укажи:

retro_wipe_transition

4) Добавь Delay Block

  • right-click по тёмно-серой области
  • Add Statement
  • выбери Delay Block
  • поставь, например, 450 ms

5) Внутрь Delay Block добавь открытие следующего экрана

Важно: это действие должно быть внутри Delay Block, а не просто ниже него.

Добавь туда ещё один Open Screen or Custom GUI и в value вставь:

{"placeholder":"getvariable","values":{"name":"transition_target"}}

Итоговая логика скрипта

Должно получиться так:

#
  1. Set Variable Value → сохраняет нужный экран
  2. Open Screen or Custom GUI → открывает retro_wipe_transition
  3. Delay Block → ждёт конец вайпа
  4. внутри Delay BlockOpen Screen or Custom GUI → открывает нужный экран

Важно

Если хочешь, чтобы переход выглядел правильно:

  • сделай transition GUI полноэкранным
  • добавь туда чёрный фон
  • а уже поверх него, твой retro_wipe.apng

Если хочешь, я могу следующим сообщением написать тебе готовый скрипт в виде списка “что нажать по кликам”, без абстрактных пояснений 👀

bitter thunder
#

там нет вкладки add action

flat bayBOT
# bitter thunder там нет вкладки add action

Да, это нормально 🙂
В FancyMenu нет отдельной вкладки Add Action как в некоторых других редакторах.

Как добавить действие

  1. Открой кнопку
  2. Right-clickManage Action Script
  3. Внутри редактора ПКМ по большой тёмно-серой области
  4. В контекстном меню выбери:
    • Add Action / Add new action, чтобы добавить действие
    • Add Statement, чтобы добавить Delay, If, While и т. д.

Быстрый способ

В этом же редакторе можно нажать:

  • A, быстро открыть Action Chooser и добавить действие

Если меню не видно

У FancyMenu контекстные меню скроллятся.
Если не видишь нужный пункт, покрути колёсико мыши над меню 👀

Для твоего случая

Тебе нужны 2 вещи:

  • Set Variable Value
  • Delay Block
  • потом внутри Delay Block, Open Screen or Custom GUI

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

bitter thunder
#

я не совсем понимаю о какой кнопке ты говоришь, о той, что находится в качестве основного layout?

flat bayBOT
# bitter thunder я не совсем понимаю о какой кнопке ты говоришь, о той, что находится в качестве ...

Нет 🙂 Не о самом layout.

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

Что к чему

  • Layout = весь экран/набор элементов
  • Button = один кликабельный элемент внутри layout
  • Transition GUI = отдельный экран, который показывает сам вайп

В твоём случае

Тебе нужно:

1) На обычном экране

Добавить или выбрать кнопку, которая будет запускать переход.

На ней и открываешь:

  • Edit Action Script
  • потом уже туда добавляешь действия

2) В transition GUI

Там кнопка не нужна вообще.
Там должен быть просто:

  • fullscreen фон
  • APNG вайп поверх него

Если у тебя нет своей кнопки

Тогда сделай так:

  1. Открой layout нужного экрана
  2. ПКМ по пустому месту
  3. New Element -> Button
  4. Размести кнопку
  5. ПКМ по ней → Edit Action Script

И вот на этой кнопке будет скрипт перехода.

Если хочешь без видимой кнопки

Можно сделать скрытую кнопку, но для начала лучше использовать обычную видимую, так проще проверить, что всё работает.

Если хочешь, я могу следующим сообщением дать тебе прямо схему: “какую кнопку создать, какие действия туда добавить и в каком порядке” 👀

bitter thunder
#

а если это ванильная кнопка?

flat bayBOT
# bitter thunder а если это ванильная кнопка?

Да, если это ванильная кнопка, то на неё нельзя повесить Action Script напрямую 🙂
По документации FancyMenu у vanilla/mod widgets можно менять текст и текстуры, но не их action script.

Что делать вместо этого

Самый нормальный вариант:

  1. Оставить ванильную кнопку на месте.
  2. Создать Custom Button поверх неё.
  3. На этот custom button повесить твой скрипт:
    • открыть transition GUI
    • delay
    • открыть следующий экран

Если хочешь сохранить поведение ванильной кнопки

Тогда есть вариант с Mimic Vanilla/Mod Button, но для твоего smooth transition это обычно менее удобно, чем просто сделать свою custom-кнопку поверх ванильной.

Коротко

  • Vanilla button → action script нельзя
  • Custom button → action script можно

Если хочешь, я могу дальше прям пошагово расписать, как:

  • поставить custom button поверх vanilla,
  • сделать её прозрачной/невидимой,
  • и повесить на неё transition-скрипт 👀
#
Thread Marked as Solved

This support thread has been marked as solved by @bitter thunder.

The AI helper is now disabled.