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

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

Admin

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

Джейсон

#376
dmit, спасибо уже сам нашел, даже псевдорандом, вот теперь осталось окно подтверждения запилить.
С радостью приму любую помощь и в долгу не останусь(-^_^-)
https://vk.com/id89069104435ss

Джейсон

#377
Пытался запилить окно yes no, но ничего не получилось. Хотел дать игроку возможность передумать, но думаю надо делать через старое доброе меню.
Сообщение отредактировал Джейсон - Воскресенье, 09/Июл/2017, 15:19
С радостью приму любую помощь и в долгу не останусь(-^_^-)
https://vk.com/id89069104435ss

Dgirael

#379
Сап. У меня два вопроса:
1 можно ли меню сюжетного выбора сделать с помощью image map?
2. можно ли, и если да, то как сделать dressup игру внутри (не нужно, чтобы в итоге игра запомнила результат, важен сам процесс - интерактивные элементы, которые можно брать и перетаскивать на персонажа)

Brenor

#381
Есть такой вопрос. В файле 00gui я отредактировал реплики message (добавил пару переносов \n во фразы), но на игру это никак не повлияло. Скажите, что нужно сделать, чтобы изменения вступили в силу?

dmit

#382
Я бы не стал трогать файлы движка, а просто в игре добавил к примеру:
Код
init -1 python hide:
    config.translations[u"Are you sure you want to quit?"] = u"Are \nyou sure \nyou want to quit?"
планета FOREVER!!!      Unkenbro team

Orinoku

#383
Здравствуйте.
Стучусь с совершенно абсурдной проблемой: после build distributions и последующей распаковки архива - игра не запускается. Вот вообще. Путь к ней англоязычный, уже сохраняла несколько раз и все бестолку. Даже пыталась на другом компе.
Главное, что никаких ошибок мне не выбивает, то есть, просто крутится колесико загрузки рядом с мышью, когда клацаешь по иконке и все. И все раннее сохраненные новеллы запускаются без проблем, а эта - нет. В самой программе все работает хорошо.
С чем это может быть связано, как исправить?

Надеюсь, проблема адекватно обозначена, просто я сама не могу оправиться от того, с чем столкнулась, так что могут быть неясности в изложении ^^"

dmit

#384
Посмотрите параметры build в файле options.
Не использует ли игра какие-либо не традиционные файлы и места их нахождения?
Обновлён ли renpy?
планета FOREVER!!!      Unkenbro team

Orinoku

#385
Цитата dmit ()
Посмотрите параметры build в файле options.
Не использует ли игра какие-либо не традиционные файлы и места их нахождения?
Обновлён ли renpy?

С параметрами все в норме, а вот обновление упустила ^^"

Сейчас обновила и теперь все загружается.
Огромное вам спасибо, премного благодарна happy

mrWebster

#387
Ludius, да. Лично я вообще выпилил из главного меню "навигацию". Если не хочешь выпиливать, то приглядись, там где-то проверка на условие была, которая решает, на паузе игра или в главном меню. От нее пляши в нужную сторону :)
Добро пожаловать во Мрак!

mrWebster

#389
Доброго времени суток.
Не совсем разобрался в документации с этой темой. Вообще очень интересует, как можно работать с цветами отдельных изображений. Можно ли перекрасить только фон на программном уровне? А отдельный спрайт или спрайты?
Добро пожаловать во Мрак!

Ikuku

#390
Если коротко, то да: любое отдельное изображение можно перекрасить с помощью im.MatrixColor (но только целиком).

Работает он примерно следующим образом: берет каждый пиксель изображения, и вместо текущего цвета/прозрачности ставит новый, в соответствии со вторым полученным параметром (matrix). Второй параметр может быть либо матрицей/кортежем (это для тех, кому не хватает дефолтных возможностей и кто хочет сделать все руками), либо объектом типа im.matrix (собственно, набор готовых "матриц", каждая из которых заранее сконструирована, чтобы десатурировать, менять цвет, и т.д.)

Если у нас второй параметр - матрица (физически записанная, как список из 20-25 чисел), то измененные цвета каждого пикселя считаются по формуле из документации (переменные от a до t берутся из списка, R, G, B и A - из параметров пикселей оригинальной картинки). Если второй параметр - один из готовых матричных объектов, то о формулах волноваться не надо.

Матричные объекты можно перемножать. Пример из документации: im.matrix.desaturate() * im.matrix.tint(0.9, 0.9, 1.0) читается как "сначала обесцветь, потом покрась (синим, т.к. в tint передан кортеж, обозначающий оттенок синего)"

Список встроенных матричных объектов (МО) (вкратце, из документации):

im.matrix.brightness(b) - МО для изменения яркости. Параметр b принимает значения от -1 до 1, чем меньше, тем темнее.

im.matrix.colorize(black_color, white_color) - МО для покраски "темных" и "светлых" пикселей. "Темные" красятся цветом black_color, светлые, соответственно, white_color. NB: не чисто черные и белые, а именно темные и светлые.

im.matrix.contrast© - МО для изменения контраста. Параметр c должен быть больше нуля, от 0 до 1.0 - понижение контраста картинки, больше 1.0 - увеличение.

im.matrix.desaturate() - МО для обесцвечивания. Краткая запись для im.matrix.saturation(0).

im.matrix.hue(h) - МО для изменения цветности. H - градус смещения цвета по цветовому кругу (круг). Т.е. если изначально цвет пикселя был желтый, и h = 45, то новый цвет станет темно-оранжевым.

im.matrix.identity() - МО для того, чтобы ничего с картинкой не делать. ¯\_(ツ)_/¯

im.matrix.invert() - МО для инвертирования цветовых каналов. "Негатив".

im.matrix.opacity(o) - МО для изменения альфа-канала (прозрачности). Параметр o принимает значения от 0 до 1.0, чем меньше, тем картинка прозрачнее.

im.matrix.saturation(level, desat = (0.2126, 0.7152, 0.0722)) - МО для изменения насыщенности. Параметр level (от 0 (черно-белый) до 1.0 (без изменений)) отвечает за цветность, параметр desat (в скобках приведены дефолтные значения) дополнительно корректирует RGB-уровни картинки для обесцвеченного изображения.

im.matrix.tint(r, g, b) - МО для изменения значений цветовых каналов. Параметры принимают значения от 0 до 1.0, измененный цвет считается в виде доли от оригинала. Т.е., скажем, если значение красного было 70 (из 255 возможных), а в r мы передали .1, новый красный будет равен 7.

Пара примеров того, как это использовать - ниже. Для наглядности создайте новый проект, киньте туда любую картинку и посмотрите, как это все выглядит.

Код
image bg test = "image.jpg"
image bg test0 = im.MatrixColor("image.jpg", [.5, .5, .5, .5, 0, .2, .2, .2, .2, 0, .3, .3, .3, .3, 0, .1, .1, .1, .1, 0])
image bg test1 = im.MatrixColor("image.jpg", im.matrix.colorize((255, 0, 0), "#00f"))
image bg test2 = im.MatrixColor("image.jpg", im.matrix.hue(45))
image bg test31 = im.MatrixColor("image.jpg", im.matrix.saturation(.5))
image bg test32 = im.MatrixColor("image.jpg", im.matrix.saturation(.5, desat=(0.1, 0.1, 0.722)))
image bg test4 = im.MatrixColor("image.jpg", im.matrix.tint(0.4, 0.4, 1.0))
    
label start:
    show bg test
    "Оригинальное изображение."
    
    show bg test0
    "Случайное изменение цветов с помощью матрицы в параметрах. \n\n \[.5, .5, .5, .5, 0,\n.2, .2, .2, .2, 0,\n.3, .3, .3, .3, 0,\n.1, .1, .1, .1, 0\]"
    
    show bg test1
    "Светлые цвета будут синими, темные - красными. Синий передан строкой (hex-код цвета), красный - кортежем. \n\n im.matrix.colorize((255,0,0), \"#00f\")"
    
    show bg test2
    "Цветность. Поворот цветового круга - 45 градусов. \n\n im.matrix.hue(45)"
    
    show bg test31
    "Обесцвечивание, desat задан по умолчанию. \n\n im.matrix.saturation(.5)"
        
    show bg test32
    "Обесцвечивание, desat задан вручную, со смещением в синюю сторону. \n\n im.matrix.saturation(.5, desat=(0.1, 0.1, 0.7))"
    
    show bg test4
    "Изменение оттенка: красный и зеленый каналы - в .4 от оригинального, синий - без изменений. \n\n im.matrix.tint(0.4, 0.4, 1.0)"


Плюс, изображение, которое возвращает im.MatrixColor(...), можно использовать как любую другую displayable, например, в операторе add в кастомном экране: add im.MatrixColor("image.jpg", im.matrix.hue(45))

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