Ren'Py 7.4.0 Prereleased

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.
Message
Author
User avatar
PyTom
Ren'Py Creator
Posts: 16096
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

Re: Ren'Py 7.4.0 Prereleased

#46 Post by PyTom »

7.4.0.1079)

This prerelease re-adds Steam support to Ren'Py 7.4. It's now set up that you can install Steam support yourself, by choosing "preferences", "Install libraries", "Install Steam Support" in the launcher.

This prerelease also benefits from more testing with Live2D, improving correctness and making it more practical to use. The changes include:
* Changing the way masks are implemented so that the Alpha state of the mask doesn't apply to the layer being masked.
* Adding support for multiple masks.
* Supporting fading expressions.
* Fixing alpha shading for layers used for masks.
* Adding callbacks for filtering attributes given to Live2D displayables, allowing for complex logic, like having multiple sets of exclusive expressions, or selection a motion based on the expressions that are shown.
* Motions continue when not explicitly changed.

Window XP support has been officially dropped. Ren'Py will now produce an error if started on a Windows XP computer.

The new config.quit_callbacks variable allows functions to be called when Ren'Py quits.

Hardware video is no longer used on Android or iOS.

If people - especially those who depend on Steam - could test the new support, I'd appreciate it. Still up is checking some reported issues with fonts and controller support, but my feeling is we're close to a release.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

User avatar
gas
Miko-Class Veteran
Posts: 842
Joined: Mon Jan 26, 2009 7:21 pm
Contact:

Re: Ren'Py 7.4.0 Prereleased

#47 Post by gas »

NikStory wrote: Wed Dec 09, 2020 1:31 am
uyjulian wrote: Mon Dec 07, 2020 11:32 pm It looks like you are missing dll. Try installing missing dll
If everything were that simple, this library has been used since Windows Vista and is not supported in 32-bit XP. I have tried several versions with no success.
Hey, ME, those geeks want to force the use of such modern, cheap and freak technology on Kyouma. Mwah ah ah. They doesn't know, but they'll face a cruel destiny by my hand.
Here, in 2026, I'm still using XP with good avail. I'm typing this reply on a 2006 netbook.
YOU know it can be done.

EL
PSY
CONGRO
If you want to debate on a reply I gave to your posts, please QUOTE ME or i'll not be notified about. << now red so probably you'll see it.

10 ? "RENPY"
20 GOTO 10

RUN

User avatar
Imperf3kt
Lemma-Class Veteran
Posts: 3794
Joined: Mon Dec 14, 2015 5:05 am
itch: Imperf3kt
Location: Your monitor
Contact:

Re: Ren'Py 7.4.0 Prereleased

#48 Post by Imperf3kt »

PyTom wrote: Wed Dec 16, 2020 9:43 pm Hardware video is no longer used on Android or iOS.
What does this mean for config.hw_video, is it only software rendering now? It should be removed from Android builds or set to False?
Warning: May contain trace amounts of gratuitous plot.
pro·gram·mer (noun) An organism capable of converting caffeine into code.

Current project: GGD Mentor

Twitter

User avatar
PyTom
Ren'Py Creator
Posts: 16096
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

Re: Ren'Py 7.4.0 Prereleased

#49 Post by PyTom »

What does this mean for config.hw_video, is it only software rendering now? It should be removed from Android builds or set to False?
It's set to False by default. It still works, but it's probably not as useful as it used to be - most mobile devices are powerful enough to play a fullscreen video in software, and videos in visual novels are short enough that battery life isn't a huge concern. On the other hand, supporting the same set of video formats is nice.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

User avatar
akakyouryuu
Regular
Posts: 162
Joined: Fri Nov 30, 2012 10:29 am
Contact:

Re: Ren'Py 7.4.0 Prereleased

#50 Post by akakyouryuu »

I have some questions about Live2D attribute_function document.

https://www.renpy.org/dev-doc/html/live2d.html#Live2D

Code: Select all

attribute_function
    If not None, this is a function that takes a tuple of attributes, and returns a second tuple of attributes. This can be used to replace attributes for the purpose of display only - the attributes it returns are not used when showing an image. It should ensure that at most one attribute corresponding to an expression is given.
    
    .
    .
    .
    
    The difference between attribute_function and attribute_filter is that the former is generally used to compute replacement - the presence of two attributes means one should be replaced by a third. The latter is used to resolve conflicts between attributes, like having a group of attributes where only one is valid.
I can't understand the below english sentences.
This can be used to replace attributes for the purpose of display only - the attributes it returns are not used when showing an image.

The difference between attribute_function and attribute_filter is that the former is generally used to compute replacement - the presence of two attributes means one should be replaced by a third.

- means negative attribute like "show hiyori -wave"?
Could you show a sample about "replacement - the presence of two attributes means one should be replaced by a third"?

User avatar
akakyouryuu
Regular
Posts: 162
Joined: Fri Nov 30, 2012 10:29 am
Contact:

Re: Ren'Py 7.4.0 Prereleased

#51 Post by akakyouryuu »

I found the Ren'Py v7.4.0.1079 can't display in windowed mode at 1x normal size when display scaling is used.

1 Change display scaling setting from 100% to 150%.
(https://www.windowscentral.com/how-set- ... windows-10)
2. Open Ren'Py v7.4.0.1079 lancher.
3. Start tutorial or the_question.
4. Chose preference and full screen window.
5. Chose preference and window.

at 5 Ren'Py display in window mode, but window size isn't 1.x.

And window size isn't stored when relaunch a game.

windows 10 v2004

Andy_kl
Newbie
Posts: 18
Joined: Sun Apr 09, 2017 12:00 pm
Contact:

Re: Ren'Py 7.4.0 Prereleased

#52 Post by Andy_kl »

akakyouryuu wrote: Fri Dec 18, 2020 7:52 pm I have some questions about Live2D attribute_function document.
...
Simple example when and how it indended to be used

Code: Select all

init python:
    def attribute_filter(attrs):
        mood_exprs = {"mood_happy", "mood_vhappy", "mood_sad"}
        for attr in attrs:
            if attr in mood_exprs:
                rv = list(attrs)
                for remove in mood_exprs - {attr}:
                    while remove in rv:
                        rv.remove(remove)
                return tuple(rv)
        return attrs

    def attribute_function(attrs):
        def replace_attrs(suffix):
            rv = []
            for attr in attrs:
                if attr in {"motion1", "motion2"}:
                    attr = attr + suffix
                rv.append(attr)
            return tuple(rv)

        if "mood_happy" in attrs:
            attrs = replace_attrs("_happy")
        elif "mood_vhappy" in attrs:
            attrs = replace_attrs("_vhappy")
        elif "mood_sad" in attrs:
            attrs = replace_attrs("_sad")
        return attrs

image some_l2d = Live2D("Live2d_model/some.model3.json", attribute_function=attribute_function, attribute_filter=attribute_filter, nonexclusive=["mood_happy", "mood_vhappy", "mood_sad"])
So here attribute_filter used to make sure only one expression from the "mood" group exists, so if one was used in prev show this removes the past expression of this group without having to explicitly minus other expressions. And renpy.get_attributes will return a tuple of attributes returned by this function.

Whereas attribute_function replaces the actual displayed motion depending on which mood expression is used. I.e. if mood_vhappy is used, the game will display motion1_vhappy, but renpy.get_attributes will still return motion1.

A sample about "replacement - the presence of two attributes means one should be replaced by a third" maybe "having some specific expression AND another specific expression should be both replaced with third specific expression". It's actually all quite specific to the conditions of the particular model and how it was made.

User avatar
akakyouryuu
Regular
Posts: 162
Joined: Fri Nov 30, 2012 10:29 am
Contact:

Re: Ren'Py 7.4.0 Prereleased

#53 Post by akakyouryuu »

Thnak you, Andy_Kl.
I understood.

User avatar
Tayruu
Regular
Posts: 141
Joined: Sat Jul 05, 2014 7:57 pm

Re: Ren'Py 7.4.0 Prereleased

#54 Post by Tayruu »

What's the status on seeing what's up with the change in font rendering behaviour? (Though I realise you said it may be caused by the library Renpy uses.)

User avatar
Syrale
Regular
Posts: 101
Joined: Sun Oct 25, 2015 10:28 am
Completed: Robot Daycare, Deep Sea Valentine, Locke(d)
Projects: Artificial Selection, Artificial Fashionista, rei_carnation
Github: kigyo
itch: kigyo
Discord: kigyodev
Contact:

Re: Ren'Py 7.4.0 Prereleased

#55 Post by Syrale »

There seems to be an issue with LayeredImage poses. Even though I add the pose when first showing an image, Ren'py declares it as "ambiguous" whenever I change expressions without specifying the pose again.

Previously, this wasn't an issue, because it assumed the pose stays the same unless stated otherwise.

Code: Select all

While running game code:
  File "game/script/prologue.rpy", line 104, in script
    pdi o "Did you have to wait long?"
Exception: Showing 'diven o' is ambiguous, possible images include: diven one o sur, diven two o sur

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

Full traceback:
  File "game/script/prologue.rpy", line 104, in script
    pdi o "Did you have to wait long?"
  File "renpy/ast.py", line 706, in execute
    renpy.exports.say(who, what, *args, **kwargs)
  File "renpy/exports.py", line 1384, in say
    who(what, *args, **kwargs)
  File "renpy/character.py", line 1108, in __call__
    old_attr_state = self.handle_say_attributes(False, interact)
  File "renpy/character.py", line 951, in handle_say_attributes
    if self.resolve_say_attributes(predicting, attrs):
  File "renpy/character.py", line 894, in resolve_say_attributes
    new_image = images.apply_attributes(layer, self.image_tag, tagged_attrs, wanted, remove)
  File "renpy/display/image.py", line 943, in apply_attributes
    return self.choose_image(nametag, required, optional, name)
  File "renpy/display/image.py", line 1003, in choose_image
    raise Exception("Showing '" + " ".join(exception_name) + "' is ambiguous, possible images include: " + ", ".join(" ".join(i) for i in matches))
Exception: Showing 'diven o' is ambiguous, possible images include: diven one o sur, diven two o sur
ImageArtificial Selection (ongoing) |ImageDeep Sea Valentine | ImageRobot Daycare (NaNo19)
| ImageArtificial Fashionista (NaNo24)

My Developer Tools: Ren'Py Minimap/Location System | Ren'Py Word Counter+

User avatar
Triority
Regular
Posts: 185
Joined: Fri Jul 20, 2018 1:28 pm
Completed: Welcome To... Chichester 0, 1,2 OVN 1, OVN 2, OVN 3, No Regrets For The Future
Projects: Welcome To... Chichester series
Organization: Triority
Tumblr: Sku-te
itch: triority
Location: England
Discord: sku_te
Contact:

Re: Ren'Py 7.4.0 Prereleased

#56 Post by Triority »

I've noticed that when reloading a scene, often a "Performance Warning" message screen pops up

User avatar
PyTom
Ren'Py Creator
Posts: 16096
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

Re: Ren'Py 7.4.0 Prereleased

#57 Post by PyTom »

Tayruu wrote: Sun Dec 20, 2020 6:57 pm What's the status on seeing what's up with the change in font rendering behaviour? (Though I realise you said it may be caused by the library Renpy uses.)
Sorry, this took me way too long. The problem came from this change in Freetype, that changes the set of font metrics that are used. In the case of sawarabi-gothic-medium.otf, the two sets of font metrics are different, and that change uses bit 7 of fsSelection to pick the one it uses.

I was able to use the ttx tool to decompile the font, change the bit, and recompile it. http://share.renpy.org/sawarabi-gothic-medium.otf
has the changed font, which appears to render the same way as it did in 7.3.5. It's probably an issue with this font, as it doesn't appear in other fonts I've looked at.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

User avatar
Tayruu
Regular
Posts: 141
Joined: Sat Jul 05, 2014 7:57 pm

Re: Ren'Py 7.4.0 Prereleased

#58 Post by Tayruu »

I did have half the mind that the problem could be the font in itself. Unfortunate. I'll have to consider looking to some other fonts to avoid possible problems in the future, depending on what metadata is causing the problem, exactly.

User avatar
PyTom
Ren'Py Creator
Posts: 16096
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

Re: Ren'Py 7.4.0 Prereleased

#59 Post by PyTom »

7.4.0.1156)

I've just made another prerelease of Ren'Py. This fixed controller support. Most notably, it uses the hidapi to talk to the most common controllers (game console controllers and close clones), which means it works with things like the Switch pro controller. Game controller support was improved in general, with new support for repeating bindings.

* Updates several translations.
* Fixes a crash when the HTML5 version of Ren'Py loses focus oin itch.io.
* Keeps Ren'Py from crashing if config.mouse is changed.
* Fixes problems that would, some of the time, prevent music from being played before the main menu is shown.
* Fixes problems where show statements (and related things, like side images) could be reported as ambiguious when not.
* Fixes a problem with focus masks on AMD GPU.
* Fixes an issue where "use expression" in a screen would prevent copy on change from working.
* Made Ren'Py respect config.side_image_only_not_showing more consistently.
* Fixed a very subtle issue in rollback that probably goes back 15 years, that manifests when an object is changed and then made unreachable.
* Fixed OpacityMatrix.
* Made the open() function respect the "rpy python 3" statement. It will now default to Python 2 semantics, and will change to Python 3 semantics when "rpy python 3" is in use.
* Made image bounds optimization play better with mipmaps.
* Fixed Android builds on macOS Big Sur.
* Indicate that installing Expansion APKs is broken on Android 11 (A fix will be coming to A11 soon.)
* Fixed showing the splashscreen on Android.

Thanks go to everyone who reported issues. I'm hoping to make a final release, if no show-stopping bugs appear.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

User avatar
yukinogatari
Newbie
Posts: 10
Joined: Thu Jul 16, 2020 5:26 am
Github: yukinogatari
Contact:

Re: Ren'Py 7.4.0 Prereleased

#60 Post by yukinogatari »

PyTom wrote: Tue Dec 29, 2020 11:41 pm 7.4.0.1156)

I've just made another prerelease of Ren'Py. This fixed controller support. Most notably, it uses the hidapi to talk to the most common controllers (game console controllers and close clones), which means it works with things like the Switch pro controller. Game controller support was improved in general, with new support for repeating bindings.
That fixed my Switch Pro Controller issues! Thank you so much~

Post Reply

Who is online

Users browsing this forum: No registered users