В режиме смехуятины есть намёк на то, как получить 3-ю звезду (обязательно скачай последную версию).
Чтобы у каждого персонажа был звук, мне пришлось потратить порядка 5 часов на написание кода для этого и потом ещё баги исправлять постоянно (до сих пор исправляю). Работает он при помощи того, что определённую функцию вставляют в качестве аргумента "callback=" в Character(). Из-за этого, в функцию передаётся параметр event, который передаёт разные строки, обозначающие что сейчас происходит с речью персонажа (какие параметры он передаёт можешь найти на вики). За счёт этого я и сделал, чтобы пока персонаж говорит, работал бы цикл, который проигрывал голос персонажа. Чтобы из Character передавать в функцию (которую передают в качестве аргумента "callback=") имя персонажа или ещё какую-нибудь инфу (любую можно), для этого в Character можно придумать вообще любую переменную (ОБЯЗАТЕЛЬНО чтобы начиналась в "cb_") и приравнять её к нужному значения. После этого, в функцию (которую передают в качестве аргумента "callback=") будет также передаваться эта переменная из Character (только название без "cb_")
Вот пример кода:
init:
init python:
def super_puper_function(event, interact=True, character_name=None, **kwargs):
if character_name == "Супер-пупер персонаж и кто-нибудь ещё":
print(f"Пу пу пу пу пу пу пу, заварю ка кофейку")
else:
return None
define super_puper_character = Character("Супер-пупер персонаж", callback=super_puper_function, cb_character_name="Супер-пупер персонаж и кто-нибудь ещё")(Как работает мой код для проигрывания звуков персонажа, можешь найти в первых 67 строчках characters.rpy). Изначально этот код я написал ещё давно, в прошлой игре из 2-го джопаджема, но в этой игре я его уже доработал до конца.
В этом коде было самое сложное для меня - нормально разобратся с передаваемыми значениями event и то, как не сломать renpy при использовании многопоточности. Думаю, вместо многопоточности лучше бы использовать асинхронность (asyncio), но да и ладно, главное что работает.
Честно скажу, моё решение мне кажется не самым лучшим и можно придумать как-нибудь проще, но это не факт.