Діалог і розповідь (dialogue and narration)

Текст є основою для візуальних новел і в цілому дуже важливий для ігор, заснованих на оповіданні. Текст може складатися з діалогу з позначенням персонажа, який його вимовляє, і оповідання без подання мовця. (Для зручності, ми сумісний діалог і розповідь, під загальним діалог, за винятком випадків, коли їх відмінності мають важливе значення). Важливо також, що користувач має можливість налаштувати зовнішній вигляд діалогу у відповідності зі своєю грою.

У Ren'Py, більшість діалогів написано за допомогою операторів say. Зовнішній вигляд діалогу може бути налаштований для кожного персонажа за допомогою об'єктів Character.

Оператор say (Say Statement) [ред]

Оператор say використовується в діалозі і розповіді. Оскільки оператор say практично завжди є найбільш часто використовуваних оператором в скриптах Ren'Py, то у оператора say є синтаксис, який мінімізує витрати при його написанні в коді. Ось кілька прикладів операторів say:

Перша форма оператора say є окремою послідовність символів. Ця форма використовується для розповіді, де розповідь є вмістом рядка коду.

Друга форма складається з двох частин. Перша частина - ім'я персонажа, який вимовляє фразу, і друга частина - виголошений діалог.

Третя форма складається з простого вираження, за яким слід послідовність символів. Просте вираження повинно розцінюватися або, як послідовність c зазначеним ім'ям персонажа, або, як об'єкт Character. В останньому випадку, об'єкт Characte застосовується для управління відображенням діалогу.

Остання форма складається з послідовності символів і умови з перехід. В цьому випадку, рядок з'явиться, в той же час, коли затрясеться екран.

Хоча є конкретні відомостей про те, що оператор say визначається використовуваним об'єктом character, стандартний результат оператора say - відображення діалогу на екрані, поки користувач не клацне на нього, щоб припинити, після чого він видаляє цей діалог з екрану.

Певні знаки мають спеціальне значення для Ren'Py, тому їх не можна використовувати в рядках діалогу. Фігурна дужка починає текстовий тег, а з квадратної дужки [починається заміна. Для того, щоб використовувати дужки в діалозі, подвійте їх. Можливо, також буде потрібно поставити перед лапками зворотну косу риску для запобігання їх від закриття рядка. наприклад:

Визначальні об'єкти Character (Defining Character Objects) [ред]

Створюючи об'єкт Character і використовуючи його в операторі say, ви можете налаштувати зовнішній вигляд (і в деякій мірі, поведінка) діалогу. Персонажі створюються за допомогою визначеного оператора, присвоєного змінної Character. наприклад:

Після цього персонажа можна використовувати в операторі say:

Character - функція мови програмування Python, що включає велику кількість ключових аргументів. Ці ключові аргументи налаштовують поведінка персонажа. Заданий оператор say викликає вираз, яке обчислюється і присвоюється до зазначеного імені. Якщо ім'я розташоване не всередині блоку init, що задається оператор буде автоматично запускатися з пріоритетом ініціалізації 0.

Character (name, kind = adv, ** args)

Створює і повертає об'єкт Character, керуючий зовнішнім виглядом інтерфейсу діалогу і розповіді. name Якщо представляє послідовність символів - ім'я персонажа в діалозі. Коли значення name - None, то ім'я персонажа не відображається, також як і при оповіданні. kind Character лежить в основі цього параметра Character. При використання, за замовчуванням значення будь-якого аргументу не надається для даного Character - значення цього аргументу додається в kind. Це може бути використано, щоб встановити значення шаблону персонажа і потім скопіювати цього персонажа зі змінами.

Пов'язане зображення (Linked Image)

Тег зображення може бути використаний з Character. Це дозволяє оператору say, пов'язаному з персонажем, за допомогою тега відобразити зображення, а також дозволяє Ren'Py автоматично вибрати позицію відображуваного зображення, коли персонаж говорить. image Послідовність символів, що задає тег зображення, пов'язаний з цим персонажем.

Голосовий тег (Voice Tag)

Якщо голосовий тег призначається Character, то голосові файли, об'єднані з ним, можна приглушити або програти в розділі Налаштування. voice_tag Послідовність символів, яка дозволяє з'єднати голосовий файл з Character, щоб приглушити або програти його в голосовому каналі.

Префікси і суфікси (Prefixes and Suffixes)

Дозволяє застосувати префікс і суфікс до імені персонажа і відображеним текстом. Це може бути використано, наприклад, щоб додати лапки до і після кожного рядка діалогу. what_prefix Послідовність символів, додана спереду до вимовному діалогу, перш ніж він з'явиться. what_suffix Послідовність символів, додана після сказаного діалогу, перш ніж він з'явиться. who_prefix Послідовність символів, додана спереду до імені персонажа, перш ніж воно відобразиться. who_suffix Послідовність символів, додана після імені персонажа, перш ніж воно відобразиться.

Зміна Імен (Changing Name Display)

Ці параметри дозволяють контролювати відображення імені. dynamic Якщо значення true, то name має бути послідовністю символів, що містять вираз Python. Ця послідовність буде визначатися перед кожним рядком діалогу, і результат використовується в якості імені персонажа.

Контрольоване взаємодія (Controlling Interactions)

Ці параметри здійснюють контроль при відображення діалогу, якщо відбувається взаємодія і режим приступив до висновку на екран. condition При наявності, це повинна бути послідовність символів, що містить вираз Python. Якщо вираз False, то діалог не відбувається, як ніби оператора say не було. interact Якщо значення True, то за замовчуванням, взаємодія відбувається всякий раз, коли показується діалог. Якщо False, то взаємодія не відбудеться, і додаткові елементи можуть бути додані до екрану. mode Послідовність символів, що дозволяє додати режим для введення, коли персонаж говорить. Див. Розділ режими для більш докладної інформації. callback Функція, яка викликається, коли відбуваються події, в той час як персонаж говорить. Дивіться розділ Character Callbacks для отримання додаткової інформації.

Click-to-continue (Натисніть для продовження)

Покажчик click-to-continue відображається, після того, як весь текст виведений на екран, щоб запропонувати користувачеві продовжити. ctc відображається на екрані в якості покажчика click-to-continue, який використовується, якщо немає більш конкретного покажчика. ctc_pause відображається на екрані в якості покажчика click-to-continue, який використовується, коли відображення тексту призупинено за допомогою текстових тегів

або. ctc_timedpause відображається на екрані в якості покажчика click-to-continue, який використовується, коли відображення тексту призупинено за допомогою текстових тегів. Коли значення None, то за замовчуванням встановлена ​​ctc_pause, використовуйте Null (), коли ви хочете застосувати ctc_pause, але не ctc_timedpause. ctc_position Управляє місцем розташування покажчика click-to-continue. Якщо "nestled". покажчик відображається, як частина показується тексту, відразу після останнього символу. Якщо "fixed". покажчик додається до екрану і його положення контролюється за допомогою властивості стилю позиції.

Відображення діалогового вікна використовує екран. Ці аргументи дозволяють вибрати екран і надати аргументи до нього. screen Назва екрану, яке використовується для відображення діалогового вікна.

Ключові аргументи, що починаються з show_ мають віддалений префікс і передаються на екран в якості аргументів. Наприклад, значення show_side_image стане на екрані значенням змінної side_image.

Деякі корисні змінні show_. реалізовані на екранах за замовчуванням є:

show_side_image При наявність, демонструє те, що відображається, коли діалог показаний. Розташування того, що відображається контролюється його властивостями розташування. Часто використовується, щоб показати зображення говорить персонажа з боку від діалогу. show_two_window Якщо true, змінює структуру макета таким чином, що ім'я персонажа поміщається в одному вікні, а текст діалогу в другому вікні. show_layer При наявності, це повинна бути послідовність символів, яка називає шар, щоб показати "say" на екрані.

Оформлення тексту і вікон (Styling Text and Windows)

Ключові аргументи, що починаються з who_. what_ і window_`. мають свій віддалений префікс і використовують стилі для імені персонажа, вимовного тексту і, відповідно, вікна, що включає обох. Наприклад, якщо персонажу присвоюється ключовий аргумент who_color = "# c8ffc8". то колір імені персонажа змінюється, в цьому випадку, на зелений. Window_background = "frame.png" встановлює фон вікна, яке містить діалог цього персонажа. Стиль застосовується з використанням who_style, what_style, і window_style аргументів до імені персонажа, вимовному тексту, і, відповідно, вікна, до якого може таким же чином застосований стиль.

Say з атрибутами зображення (Say with Image Attributes) [ред]

Коли персонаж визначається за допомогою відповідних тегом зображення, оператор say, пов'язаний з цим персонажем, може мати атрибути зображення, розташовані між ім'ям персонажа і другим рядком.

У такому вигляді, якщо зображення з даними тегом показується, Ren'Py видасть команду show, пов'язану з тегом персонажа і атрибутів. Якщо зображення, Ren'Py буде зберігати атрибути для використання бокового зображення, але не буде показувати зображення.