Typewriter Text
Посимвольне розкриття діалогу з паузами, що дають репліці голос.
Приклади
Записано з інтерактивного демо нижче на цій сторінці.
Огляд
Друкарська машинка виводить діалоги й нарацію символ за символом замість вивалювання всього рядка одразу — класика RPG і візуальних новел, що задає темп ігровим розмовам з 8-бітної ери.
Це працює, бо швидкість розкриття стає голосом персонажа: рівномірний тік читається як спокійна нарація, швидкий сплеск — як збудження, а витримана пауза після коми чи трикрапки лягає як акторський біт. Те саме речення грає зовсім по-різному на різних швидкостях.
Вона ще й контролює потік інформації — гравець читає рівно з тією швидкістю, з якою гра говорить, тож драматичне відкриття неможливо проскануть по діагоналі. У парі з бліпами на символ (див. Pitch Randomization) це більшість того, що люди пам'ятають як «звук розмови тієї гри».
Інтерактивне демо
Де застосовується
Найкращі практики
Варто
- ✓Тримайте додатковий біт після пунктуації — саме в цій паузі живе «голос»; пласкі посимвольні таймінги читаються роботом.
- ✓Дайте натисканню миттєво показати весь рядок — гравці, що перечитують діалог, зненавидять повільне розкриття без перемотки.
- ✓Розкривайте символи через maxVisibleCharacters у TMP (чи аналог), а не перебудовою рядка, щоб лейаут не стрибав посеред репліки.
Не варто
- ✕Не грайте звук буквально на кожен символ на високих швидкостях — обмежуйте частоту бліпів, інакше вони зливаються в дзижчання.
- ✕Не ведіть розкриття на масштабованому ігровому часі — діалог під час слоу-мо чи меню паузи має жити на власному годиннику.
- ✕Не використовуйте для HUD і системних повідомлень, потрібних миттєво, — це інструмент темпу для діалогів, а не дефолт.
Поширені помилки
- ⚠Дописування рядка посимвольно, через що перенос слів стрибає в міру росту слова, — розкривайте з повністю розкладеного тексту.
- ⚠Ігнорування rich-text тегів при лічбі символів — розмітка <color> видимо друкує сама себе.
- ⚠Перезапуск усього рядка при повторному відкритті вікна замість пам'яті про те, що він уже показаний.
Реалізація
Встав це у свого ШІ-асистента (Cursor, Copilot, Claude), щоб додати ефект у проєкт.
Додай у мій проєкт ефект "Typewriter Text": Посимвольне розкриття діалогу з паузами, що дають репліці голос.
Як це працює: Друкарська машинка виводить діалоги й нарацію символ за символом замість вивалювання всього рядка одразу — класика RPG і візуальних новел, що задає темп ігровим розмовам з 8-бітної ери.
Рекомендації:
- Тримайте додатковий біт після пунктуації — саме в цій паузі живе «голос»; пласкі посимвольні таймінги читаються роботом.
- Дайте натисканню миттєво показати весь рядок — гравці, що перечитують діалог, зненавидять повільне розкриття без перемотки.
- Розкривайте символи через maxVisibleCharacters у TMP (чи аналог), а не перебудовою рядка, щоб лейаут не стрибав посеред репліки.
Чого уникати:
- Не грайте звук буквально на кожен символ на високих швидкостях — обмежуйте частоту бліпів, інакше вони зливаються в дзижчання.
- Не ведіть розкриття на масштабованому ігровому часі — діалог під час слоу-мо чи меню паузи має жити на власному годиннику.
- Не використовуйте для HUD і системних повідомлень, потрібних миттєво, — це інструмент темпу для діалогів, а не дефолт.
Реалізуй ефект у тому рушії/стеку, який уже використовується в проєкті, і дотримуйся наявного стилю коду. Підключи його там, де це доречно.Джерела
- TextMesh Pro — maxVisibleCharacters
- Undertale / Pokémon dialog — canonical typewriter voices
Пов'язані ефекти
Audio Pitch Randomization
Легка варіація тону повторюваних звуків, щоб вони не звучали кулеметом.
Score Ticker
Прокрутка рахунку до нового значення замість стрибка — здобуте відчувається заробленим.
Button Press
Справжній тактильний відгук кнопки в мить натискання.
Коментарі
…