Add Sepia Filter To LayeredImage?

Discuss how to use the Ren'Py engine to create visual novels and story-based games. New releases are announced in this section.
Forum rules
This is the right place for Ren'Py help. Please ask one question per thread, use a descriptive subject like 'NotFound error in option.rpy' , and include all the relevant information - especially any relevant code and traceback messages. Use the code tag to format scripts.
Post Reply
Message
Author
User avatar
lking22
Regular
Posts: 50
Joined: Sun Dec 03, 2017 3:33 am
Projects: Grey Feather
itch: freefall-games
Contact:

Add Sepia Filter To LayeredImage?

#1 Post by lking22 » Fri Jul 15, 2022 4:56 am

Okay, there HAS to be an easier way to do this than what I have. So far I've got something like this:

Code: Select all

layeredimage ply:
    always:
        Null(width=1)
    group expr:
        attribute flat default:
            Null(width=1)
        attribute anxious:
            Null(width=1)
    group arms:
        attribute down default:
            Null(width=1)
        attribute up:
            Null(width=1)


layeredimage side ply:
    if memory:
        im.Sepia("side_ply_base.png")
    else:
        "side_ply_base.png"
    group expr:
        attribute flat default:
            ConditionSwitch(
                "memory == True", im.Sepia("side_ply_expr_flat.png"),
                "True", "side_ply_expr_flat.png")
        attribute anxious:
            ConditionSwitch(
                "memory == True", im.Sepia("side_ply_expr_anxious.png"),
                "True", "side_ply_expr_anxious.png")
    group arms:
        attribute down default:
            ConditionSwitch(
                "memory == True", im.Sepia("side_ply_arms_down.png"),
                "True", "side_ply_arms_down.png")
        attribute up:
            ConditionSwitch(
                "memory == True", im.Sepia("side_ply_arms_up.png"),
                "True", "side_ply_arms_up.png")
Which is unwieldy already and she's barely got any expressions at all. Also it doesn't actually work half the time? Basically, if I open the game and start it from the main menu, the images don't display at all when I get to the scene where 'memory' is true. Not even an error or silhouette or anything. However, if I shift+R to reload at any point in the game (even outside of memory scenes), then it displays perfectly fine?

Honestly I'm just very confused.
Releases:
Image

Current projects:
In the Ashes of Dawn
Split Psyche
Savestate Gambit

philat
Eileen-Class Veteran
Posts: 1853
Joined: Wed Dec 04, 2013 12:33 pm
Contact:

Re: Add Sepia Filter To LayeredImage?

#2 Post by philat » Fri Jul 15, 2022 9:36 am

You can use matrixcolor transforms instead of image manipulators now. That said, assuming you would be showing the whole "memory" scene in sepia, wouldn't it be simpler to just filter the whole scene?

Code: Select all

transform sepia:
    matrixcolor SepiaMatrix() #https://www.renpy.org/doc/html/matrixcolor.html#SepiaMatrix

label start_memory:

    camera at sepia #https://www.renpy.org/doc/html/displaying_images.html#camera-and-show-layer-statements
    scene your_background
    show your_image
    "This is a memory."
    camera
    "Memory over."

User avatar
lking22
Regular
Posts: 50
Joined: Sun Dec 03, 2017 3:33 am
Projects: Grey Feather
itch: freefall-games
Contact:

Re: Add Sepia Filter To LayeredImage?

#3 Post by lking22 » Fri Jul 15, 2022 9:52 am

Oh my god, the 'camera at sepia' thing is so much simpler! Honestly I just started using RenPy again today after a few years' break, so idk if that's new or not, but it's going to be a huge help. Thanks so much!
Releases:
Image

Current projects:
In the Ashes of Dawn
Split Psyche
Savestate Gambit

Post Reply

Who is online

Users browsing this forum: No registered users