Как сделать куклу в Ren'Py с атрибутами, одеждой, анимацией и морганием (How To Doll in Renpy, with attributes, clothes, animation and blinking)
Перейти к навигации
Перейти к поиску
Недавно я потратил немало времени, пытаясь выяснить "how2doll" в Ren'Py.
"Кукла" означает, что у вас есть персонаж, и вы можете одеть его или раздеть, сменить одежду, чередовать выражения лица и жесты рук, используя только набор компонентов вместо предоставления отдельного файла для каждой возможной композиции. После того, как я все понял, вопрос о том, как это было сделано, возникал неоднократно, и я решил написать быстрый пример игры, чтобы показать основы для дальнейшего использования. Я также добавил моргание и анимацию, чтобы показать, как эти понятия взаимодействуют друг с другом.
# Как сделать кукол с переменными и атрибутами изображения,
# используя атрибуты изображения ("show eileen happy")
# и переменные ("eileeniswearingclothes")
#
# Ваши лучшие друзья
# LiveComposite (возьмет несколько отображаемых изображений и объедините их в одно)
# ConditionSwitch (оценивает переменные и
# отображает изображение на основе первого, что верно)
# Transform (чтобы увеличить и расположить куклу так, чтобы она подходила под сцену)
image eileenhead: # Теперь с подмигиванием
LiveComposite (
(360,720), # при условии, что ваши куклы имеют формат 360x720
(0,0), "eileen_head_base.png", # Предполагая, что у вас есть "base head"
(0,0), "eileen_neutral_face.png" # и вы просто накладываете на него лицо
)
pause 4.0 # Это ATL. В течение 4 секунд покажет основу головы ...
LiveComposite (
(360,720),
(0,0), "eileen_head_base.png",
(0,0), "eileen_neutral_face_blink.png" # затем мигать в течение 0.1 секунды
)
pause 0.1
repeat # и повторит
image eileenhead happy:
LiveComposite (
(360,720),
(0,0), "eileen_head_base.png",
(0,0), "eileen_happy_face.png"
)
image eileenbody:
LiveComposite (
(360,720),
(0,0), "eileen_body_base.png", #
(0,0), ConditionSwitch ( # evaluates expressions
"store.eileeniswearingclothes == True", "eileen_body_clothes.png",
"True", Null() # if eileen is not wearing clothes according to the
) # global, don't show anything additional.
) # ConditionSwitch requires ONE of the conditions to
# always turn out true, so it's a good idea to have
# a "True", Null() at the end. Otherwise you get the
# most useless error message in all of ren'py
image eileenbody armsflailing: # Now with animation!
LiveComposite (
(360,720),
(0,0), "eileen_body_base_armsflailing.png", #
(0,0), ConditionSwitch ( # evaluates expressions
"store.eileeniswearingclothes == True", "eileen_body_clothes_armsflailing.png",
"True", Null() # see above
),
)
pause 0.4
LiveComposite (
(360,720),
(0,0), "eileen_body_base_armsflailing2.png", #
(0,0), ConditionSwitch ( # evaluates expressions
"store.eileeniswearingclothes == True", "eileen_body_clothes_armsflailing2.png",
"True", Null() # see above
),
)
pause 0.4
repeat
image eileen: # neutral, boring eileen
LiveComposite (
(360,720),
(0,0), "eileenhead", #neutral expression on face
(0,0), "eileenbody"
)
image eileen happy:
LiveComposite (
(360,720),
(0,0), "eileenhead happy",
(0,0), "eileenbody" # still no arms flailing
)
image eileen superhappy:
LiveComposite (
(360,720),
(0,0), "eileenhead happy",
(0,0), "eileenbody armsflailing" # now she flails
)
image eileen sarcastic: # neutral face but arms flailing?
LiveComposite (
(360,720),
(0,0), "eileenhead", #neutral expression on face
(0,0), "eileenbody armsflailing" # now she flails
)
image bg tokenbackground:
"tokenbackground.jpg"
zoom 2.0
transform halfright: # Halfright is zoomed out, making the doll smaller
xpos 0.7
xanchor 0.5
zoom 0.7
transform fullcenter: # приближается
xpos 0.5
xanchor 0.5
zoom 1.0
transform wayclose: # масштабирование полностью
xpos 0.5
xanchor 0.5
zoom 1.5
define e = Character('Эйлин', color="#c8ffc8")
label start:
scene bg tokenbackground
$ eileeniswearingclothes = True
show eileen at halfright
e "Наверное, сейчас я чувствую себя очень нейтрально."
e "Понаблюдайте немного, я действительно иногда моргаю."
show eileen superhappy at fullcenter with move
e "Хорошо, теперь я взволнована или что-то в этом роде!"
$ eileeniswearingclothes = False
e "Давай разденемся YAAAY"
show eileen sarcastic at wayclose
e "Ты не выглядишь таким впечатанным, как я надеялась"
- Сссылка на архив с тестовым проектом: script.rpy
Источник[править | править код]
Статья "How To Doll in Renpy, with attributes, clothes, animation and blinking" на английском языке.
На главную страницу | Книга рецептов Энциклопедии Ren'Py | Форумы Lemma Soft | Вернуться к началу статьи |