Форум Anivisual закрыт. Вы не можете создавать новые темы или писать ответы. Форум будет работать в режиме архива.
Пользователи · Поиск по форуму · · · Регистрация

Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Ren'Py (Вопрос\Ответ)
Помощь по Ren'Py (Вопрос\Ответ)

Admin

#1
Сюда пользователи сайта могут писать вопросы о тех или иных функциях движка Ren'Py, а мы попытаемся на них ответить:)

Nevilla

#556
Вопрос: может ли кто-то посоветовать доступный гад для чайников по ren'py?
Что конкретно интересует: в англоязычной новелле есть выбор пола героя. При адаптации ее на русский скорее всего возникнет необходимость дополнительно прописывать изменение текста в зависимости от пола. Как подобное решают переводчики? Уверена, там все не сложно через переменную пола, но очень хотелось бы чей-то наглядный пример с объяснениями.
Заранее благодарю.

Ikuku

#557
Nevilla, официальная документация (только та, что вот тут: https://www.renpy.org/doc/html/) - очень годное место, чтобы научиться основам, особенно если умеете в английский. Дальше основ нужно уже брать конкретную задачу и рассматривать ее отдельно, много вопросов решаются на лемме, вконтаче есть русскоязычный паблик.
Конкретно гайды по работе с переменными есть и тут, на анивизе, в блоге в разделе Ren'py.

Насчет вашего вопроса: речь идет о Red Embrace: Hollywood? Если да, то там довольно несложная система, судя по коду демоверсии. Если его вскрыть, то выясняется, что:

1. Пол закладывается при создании персонажа в переменную mc_gender (файл mc_customize.rpy, функция pronoun_change_<next/prev>, используется на 324-5 строках в экране выбора пола).

2. После создания персонажа происходит прыжок на метку post_create (common_intro.rpy), самая первая строка этой метки - вызов функции gender_set. Сама функция лежит в codestuff.rpy, 192 строка. В ней, в зависимости от выбранного пола, заполняются все обращения и гендерно-зависимые штуки - это большой ряд отдельных переменных. Сами переменные описываются в codestuff.rpy, 58 строка.

3. Дальше в диалоговых репликах эти переменные просто вставляются в текст в квадратных скобках: 
Код
u "Dead, you mean? Yes, [brother], I am dead. In any other sense, though, I'd be mighty doubtful."


Т.е. при переводе можно будет использовать уже имеющиеся переменные, а если в каких-то местах будет их не хватать, то можно будет завести свои. Объявить их в блоке объявления гендерно-зависимых штук, инициализировать внутри функции gender_set, и использовать в скриптах точно так же, как и все прочие.

Код
if gen == "male": 
   ....
   globals()["verb_e"] = ""

elif gen == "female": 
   ....
   globals()["verb_e"] = "а"

...
"Я заметил[verb_e], что кто-то следит за мной."


Тут могут возникнуть сложности с "they", в русском все-таки нет настолько агендерной формы. Возможно, придется извращаться и избегать форм глаголов в переводе в принципе, или махнуть рукой и тупо вырезать "they" как класс, оставив "he/she".

(А глобально вопрос с переводом гендерно-зависимого текста решается в зависимости от того, что там накодил автор, конечно.)

СОНЦЕ

#558
Цитата ice_cat ()
Нет ли какого-нибудь способа одной строчкой загнать весь выдающийся текст наклонным шрифтом? Чтобы не долбить каждую строку {i}, а что-нибудь вроде persistent.italic = True и потом весь текст поумолчанию наклонный до фолса.


Не пришло в голову ничего более элегантного чем вот такая загогулина:


Код


init python:
    def ital(bool):
        global narrator
        narrator = Character(None, what_italic = bool)
        return

label main_menu:
    return

label start:
    'test'
    'test2'
    $ital(True)
    'now italic'
    'test 3'
    'test 4'
    $ital(False)
    'now normal'
    'test 5'
    'test 6'
    return

Сообщение отредактировал СОНЦЕ - Четверг, 27/Июн/2019, 12:10

MasUm

#559
Помогите глупому.
Я за компом сижу и туплю уже час третий (спать уже хочу пипец)
В общем, решил я импортировать свой небольшой проектик на андроид, но, сколько бы попыток не предпринял, после завершения сборки apk файла, RenPy выдает следующе
Цитата
Код
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/android.rpy", line 483, in <module>
  File "game/android.rpy", line 269, in android_build
IOError: [Errno 2] No such file or directory: 'C:\\Users\\1\\Downloads\\renpy-7.1.1-sdk\\rapt\\project/renpyandroid/src/main/res/values/strings.xml'

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "launcher/game/android.rpyc", line 483, in script
  File "C:\Users\1\Downloads\renpy-7.1.1-sdk\renpy\ast.py", line 912, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "C:\Users\1\Downloads\renpy-7.1.1-sdk\renpy\python.py", line 2004, in py_exec_bytecode
    exec bytecode in globals, locals
  File "game/android.rpy", line 483, in <module>
  File "game/android.rpy", line 269, in android_build
  File "C:\Users\1\Downloads\renpy-7.1.1-sdk\rapt\buildlib\rapt\build.py", line 561, in build
    sdkpath=plat.path("Sdk"),
  File "C:\Users\1\Downloads\renpy-7.1.1-sdk\rapt\buildlib\rapt\build.py", line 124, in render
    f = file(dest, "wb")
IOError: [Errno 2] No such file or directory: 'C:\\Users\\1\\Downloads\\renpy-7.1.1-sdk\\rapt\\project/renpyandroid/src/main/res/values/strings.xml'

Windows-8-6.2.9200
Ren'Py 7.3.2.320
Ren'Py Launcher 7.3.2.320
Mon Jul 15 00:01:48 2019



В строчках, указанных в ошибке, вроде ничего особенного нет (еще бы понять че там написулькано)

UPD: Все решилось вcелечайшей переустановкой RenPy
Сообщение отредактировал MasUm - Понедельник, 15/Июл/2019, 10:12

AlienXMask

#560
Вопрос скорее теоритический, нежели практический
Возможно ли на RenPy создать игру жанра орбитал?

То есть - есть круг, по которому летить игрок и из центра этого круга в него летят пули/враги и игроку нужно уклоняться.
Что для этого нужно и где почитать?

Сообщение отредактировал AlienXMask - Воскресенье, 21/Июл/2019, 11:19

СОНЦЕ

#561
Цитата AlienXMask ()
Возможно ли на RenPy создать игру жанра орбитал?

абсолютно
Цитата AlienXMask ()
Что для этого нужно и где почитать?

Ключевое - продвинутые ренпишные спрайты. вот эти
Кроме того надо базовое знание python чтобы переварить статью выше.
и немного в аналитическую геометрию, чтобы сочинить формулы перемещения перса и снарядов на свой вкус

СОНЦЕ

#564
Цитата Ubic ()
Как прописать if и elif, зависящий от трех величин?

    
Код
if boolA:
        $ funk_a()
    elif boolB:
        $ funk_b()
    elif boolC
        $ funk_c()
    else:
        $ funk_x()

оно?

Ubic

#565
СОНЦЕ, нет, это четыре разных события, зависящие от четырех разных переменных. А мне нужно одно событие, которое наступает при достижении тремя переменными определенных значений. Можно конечно их описать в подобном корявом вложенном друг в друга элифе, но может есть способ покрасивше?

СОНЦЕ

#566
Ubic, если событие только одно, elif не нужон.
Код

    if boolA and boolB and boolC:
        $ funk_abc()

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

Цитата Ubic ()
четыре разных события, зависящие от четырех разных переменных.

Настаиваю что в том примере переменных было не четыре, а три. Если четвертое событие представить как обусловленное, то условием будет True. Постоянная.

Ubic

#567
Елиф нужон, потому что событий несколько, и одно из них происходит, если три переменные достигли определенного значения. И другое событие, если они достигли другого значения. Без елифа никуда.
И вот это вот "if boolA and boolB and boolC" как пишется, если излагавть не на пальцах, а точными символами. Я и сам не тупой, и догадываюсь, что они должны идти друг за другом. Вопрос в том, как писать код. Сомневаюсь, что нужен "and".

СОНЦЕ

#568
Ubic, and нужен если для выполнения действия нужны правильные все три переменные. более развернутый пример с числовыми переменными и конкретными искомыми значениями

Код
#допустим для участия в гареме героине хватит 5 лавпоинтов, но столько должно быть у всех
if ann_love>=5 and jane_love>=5 and kate_love>=5:
    jump HaremEnding
# для неодиночного рута лавпоинтов нужно как минимум 8 хотя бы у одной
elif ann_love>=8 or jane_love>=8 or kate_love>=8:
    jump RoutesIntersection
# иначе героя отправляют в одиночный рут
else:
    jump SoloRoute

Ubic

#569
О, круто, спасибо! Через and  я бы писать даже не додумался. Я думал может запятая или точка с запятой или еще как-то хитро! А or вообще классно! На будущее может пригодиться.

ProstoiXXX

#570
Всем привет, есть вопрос.
Пытаюсь работать с "вызов call из экрана screen". Но есть маленькая проблема.
Так же, я добавил к примеру, вот такую часть кода.

Код
init:
    image side golova_orka = "Images/golova_orka.png"
    define m = Character("Орк", color="#000000", image="golova_orka")


А так же слегка изменил часть кода, то есть теперь не просто текст, а текст произносит персонаж.


Код
m "Первая фраза"
m "Вторая фраза"
m "Третья фраза"


Но появилась проблема. Когда я, возвращаюсь к диалогу, цвет текста черный, как я и хочу, то что это говорит НПС Орк, тоже видно, а вот "говорящая голова"(изображение) пропадает. При следующей реплике, она конечно опять появляется, но вот при возвращении к диалогу из локации, image="golova_orka" куда-пропадает :(

Подскажите пожалуйста, что делать?
Сообщение отредактировал ProstoiXXX - Пятница, 23/Авг/2019, 18:12
Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Ren'Py (Вопрос\Ответ)
Поиск: